From d7b9d115550e80d5eeb06b932fb93bc5f7c88ca4 Mon Sep 17 00:00:00 2001 From: roll Date: Mon, 4 Aug 2025 16:16:22 +0100 Subject: [PATCH 01/80] Bootstrapped json plugin --- dpkit/package.json | 1 + dpkit/plugin.ts | 2 ++ json/index.ts | 2 ++ json/package.json | 11 +++++++++++ json/plugin.ts | 26 ++++++++++++++++++++++++++ json/table/index.ts | 2 ++ json/table/load.spec.ts | 25 +++++++++++++++++++++++++ json/table/load.ts | 6 ++++++ json/table/save.spec.ts | 22 ++++++++++++++++++++++ json/table/save.ts | 7 +++++++ pnpm-lock.yaml | 28 +++++++++++++++++++++++++++- 11 files changed, 131 insertions(+), 1 deletion(-) create mode 100644 json/plugin.ts create mode 100644 json/table/index.ts create mode 100644 json/table/load.spec.ts create mode 100644 json/table/load.ts create mode 100644 json/table/save.spec.ts create mode 100644 json/table/save.ts diff --git a/dpkit/package.json b/dpkit/package.json index 26d2e621..1ea09ea0 100644 --- a/dpkit/package.json +++ b/dpkit/package.json @@ -29,6 +29,7 @@ "@dpkit/folder": "workspace:*", "@dpkit/github": "workspace:*", "@dpkit/inline": "workspace:*", + "@dpkit/json": "workspace:*", "@dpkit/table": "workspace:*", "@dpkit/zenodo": "workspace:*", "@dpkit/zip": "workspace:*" diff --git a/dpkit/plugin.ts b/dpkit/plugin.ts index 7d6a4226..9bee92f2 100644 --- a/dpkit/plugin.ts +++ b/dpkit/plugin.ts @@ -4,6 +4,7 @@ import { DatahubPlugin } from "@dpkit/datahub" import { FolderPlugin } from "@dpkit/folder" import { GithubPlugin } from "@dpkit/github" import { InlinePlugin } from "@dpkit/inline" +import { JsonPlugin } from "@dpkit/json" import type { TablePlugin } from "@dpkit/table" import { ZenodoPlugin } from "@dpkit/zenodo" import { ZipPlugin } from "@dpkit/zip" @@ -28,4 +29,5 @@ dpkit.register(ZipPlugin) // Table functions dpkit.register(CsvPlugin) +dpkit.register(JsonPlugin) dpkit.register(InlinePlugin) diff --git a/json/index.ts b/json/index.ts index e69de29b..14397550 100644 --- a/json/index.ts +++ b/json/index.ts @@ -0,0 +1,2 @@ +export * from "./table/index.js" +export * from "./plugin.js" diff --git a/json/package.json b/json/package.json index b8df02ee..e267f563 100644 --- a/json/package.json +++ b/json/package.json @@ -21,5 +21,16 @@ ], "scripts": { "build": "tsc --build" + }, + "dependencies": { + "@dpkit/core": "workspace:*", + "@dpkit/file": "workspace:*", + "@dpkit/table": "workspace:*", + "csv-sniffer": "^0.1.1", + "nodejs-polars": "^0.18.0" + }, + "devDependencies": { + "@dpkit/test": "workspace:*", + "tempy": "^3.1.0" } } diff --git a/json/plugin.ts b/json/plugin.ts new file mode 100644 index 00000000..9e59ee29 --- /dev/null +++ b/json/plugin.ts @@ -0,0 +1,26 @@ +import type { Resource } from "@dpkit/core" +import { inferFormat } from "@dpkit/core" +import type { TablePlugin } from "@dpkit/table" +import type { SaveTableOptions, Table } from "@dpkit/table" +import { loadJsonTable, saveJsonTable } from "./table/index.js" + +export class JsonPlugin implements TablePlugin { + async loadTable(resource: Partial) { + const isJson = getIsJson(resource) + if (!isJson) return undefined + + return await loadJsonTable(resource) + } + + async saveTable(table: Table, options: SaveTableOptions) { + const isJson = getIsJson({ path: options.path }) + if (!isJson) return undefined + + return await saveJsonTable(table, options) + } +} + +function getIsJson(resource: Partial) { + const format = inferFormat(resource) + return ["json", "jsonl", "ndjson"].includes(format ?? "") +} diff --git a/json/table/index.ts b/json/table/index.ts new file mode 100644 index 00000000..916f2c9a --- /dev/null +++ b/json/table/index.ts @@ -0,0 +1,2 @@ +export { loadJsonTable } from "./load.js" +export { saveJsonTable } from "./save.js" diff --git a/json/table/load.spec.ts b/json/table/load.spec.ts new file mode 100644 index 00000000..41cb768a --- /dev/null +++ b/json/table/load.spec.ts @@ -0,0 +1,25 @@ +import { writeTempFile } from "@dpkit/file" +import { useRecording } from "@dpkit/test" +import { describe, expect, it } from "vitest" +import { loadJsonTable } from "./load.js" + +describe("loadJsonTable", () => { + useRecording() + + describe("file variations", () => { + it("should load local file", async () => { + const path = await writeTempFile( + JSON.stringify([ + { id: 1, name: "english" }, + { id: 2, name: "中文" }, + ]), + ) + + const table = await loadJsonTable({ path }) + expect((await table.collect()).toRecords()).toEqual([ + //{ id: "1", name: "english" }, + //{ id: "2", name: "中文" }, + ]) + }) + }) +}) diff --git a/json/table/load.ts b/json/table/load.ts new file mode 100644 index 00000000..2ae96c99 --- /dev/null +++ b/json/table/load.ts @@ -0,0 +1,6 @@ +import type { Resource } from "@dpkit/core" +import { DataFrame } from "nodejs-polars" + +export async function loadJsonTable(_resource: Partial) { + return DataFrame().lazy() +} diff --git a/json/table/save.spec.ts b/json/table/save.spec.ts new file mode 100644 index 00000000..9ac46690 --- /dev/null +++ b/json/table/save.spec.ts @@ -0,0 +1,22 @@ +//import { readFile } from "node:fs/promises" +import { DataFrame } from "nodejs-polars" +import { temporaryFileTask } from "tempy" +import { describe, expect, it } from "vitest" +import { saveJsonTable } from "./save.js" + +describe("saveJsonTable", () => { + it("should save table to JSON file", async () => { + await temporaryFileTask(async path => { + const table = DataFrame({ + id: [1.0, 2.0, 3.0], + name: ["Alice", "Bob", "Charlie"], + }).lazy() + + await saveJsonTable(table, { path }) + + //const content = await readFile(path, "utf-8") + //expect(content).toEqual("id,name\n1.0,Alice\n2.0,Bob\n3.0,Charlie\n") + expect(true).toBe(true) + }) + }) +}) diff --git a/json/table/save.ts b/json/table/save.ts new file mode 100644 index 00000000..df755590 --- /dev/null +++ b/json/table/save.ts @@ -0,0 +1,7 @@ +import type { SaveTableOptions, Table } from "@dpkit/table" + +export async function saveJsonTable(_table: Table, options: SaveTableOptions) { + // TODO: implement + + return options.path +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 942673db..6336a1fd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -182,6 +182,9 @@ importers: '@dpkit/inline': specifier: workspace:* version: link:../inline + '@dpkit/json': + specifier: workspace:* + version: link:../json '@dpkit/table': specifier: workspace:* version: link:../table @@ -248,7 +251,30 @@ importers: specifier: ^0.18.0 version: 0.18.0 - json: {} + json: + dependencies: + '@dpkit/core': + specifier: workspace:* + version: link:../core + '@dpkit/file': + specifier: workspace:* + version: link:../file + '@dpkit/table': + specifier: workspace:* + version: link:../table + csv-sniffer: + specifier: ^0.1.1 + version: 0.1.1 + nodejs-polars: + specifier: ^0.18.0 + version: 0.18.0 + devDependencies: + '@dpkit/test': + specifier: workspace:* + version: link:../test + tempy: + specifier: ^3.1.0 + version: 3.1.0 ods: {} From 14bbce679f2e99d349bf1afe8f700f7d3636e72d Mon Sep 17 00:00:00 2001 From: roll Date: Mon, 4 Aug 2025 16:28:39 +0100 Subject: [PATCH 02/80] Bootstrapped parquet plugin --- dpkit/package.json | 1 + dpkit/plugin.ts | 2 ++ json/table/load.spec.ts | 4 ++-- parquet/index.ts | 2 ++ parquet/package.json | 11 +++++++++++ parquet/plugin.ts | 26 ++++++++++++++++++++++++++ parquet/table/index.ts | 2 ++ parquet/table/load.spec.ts | 20 ++++++++++++++++++++ parquet/table/load.ts | 6 ++++++ parquet/table/save.spec.ts | 19 +++++++++++++++++++ parquet/table/save.ts | 10 ++++++++++ pnpm-lock.yaml | 28 +++++++++++++++++++++++++++- 12 files changed, 128 insertions(+), 3 deletions(-) create mode 100644 parquet/plugin.ts create mode 100644 parquet/table/index.ts create mode 100644 parquet/table/load.spec.ts create mode 100644 parquet/table/load.ts create mode 100644 parquet/table/save.spec.ts create mode 100644 parquet/table/save.ts diff --git a/dpkit/package.json b/dpkit/package.json index 1ea09ea0..746c10d6 100644 --- a/dpkit/package.json +++ b/dpkit/package.json @@ -30,6 +30,7 @@ "@dpkit/github": "workspace:*", "@dpkit/inline": "workspace:*", "@dpkit/json": "workspace:*", + "@dpkit/parquet": "workspace:*", "@dpkit/table": "workspace:*", "@dpkit/zenodo": "workspace:*", "@dpkit/zip": "workspace:*" diff --git a/dpkit/plugin.ts b/dpkit/plugin.ts index 9bee92f2..29a9b717 100644 --- a/dpkit/plugin.ts +++ b/dpkit/plugin.ts @@ -5,6 +5,7 @@ import { FolderPlugin } from "@dpkit/folder" import { GithubPlugin } from "@dpkit/github" import { InlinePlugin } from "@dpkit/inline" import { JsonPlugin } from "@dpkit/json" +import { ParquetPlugin } from "@dpkit/parquet" import type { TablePlugin } from "@dpkit/table" import { ZenodoPlugin } from "@dpkit/zenodo" import { ZipPlugin } from "@dpkit/zip" @@ -31,3 +32,4 @@ dpkit.register(ZipPlugin) dpkit.register(CsvPlugin) dpkit.register(JsonPlugin) dpkit.register(InlinePlugin) +dpkit.register(ParquetPlugin) diff --git a/json/table/load.spec.ts b/json/table/load.spec.ts index 41cb768a..a6d1cb34 100644 --- a/json/table/load.spec.ts +++ b/json/table/load.spec.ts @@ -1,10 +1,10 @@ import { writeTempFile } from "@dpkit/file" -import { useRecording } from "@dpkit/test" +//import { useRecording } from "@dpkit/test" import { describe, expect, it } from "vitest" import { loadJsonTable } from "./load.js" describe("loadJsonTable", () => { - useRecording() + //useRecording() describe("file variations", () => { it("should load local file", async () => { diff --git a/parquet/index.ts b/parquet/index.ts index e69de29b..14397550 100644 --- a/parquet/index.ts +++ b/parquet/index.ts @@ -0,0 +1,2 @@ +export * from "./table/index.js" +export * from "./plugin.js" diff --git a/parquet/package.json b/parquet/package.json index 19693cdf..a4da7ade 100644 --- a/parquet/package.json +++ b/parquet/package.json @@ -21,5 +21,16 @@ ], "scripts": { "build": "tsc --build" + }, + "dependencies": { + "@dpkit/core": "workspace:*", + "@dpkit/file": "workspace:*", + "@dpkit/table": "workspace:*", + "csv-sniffer": "^0.1.1", + "nodejs-polars": "^0.18.0" + }, + "devDependencies": { + "@dpkit/test": "workspace:*", + "tempy": "^3.1.0" } } diff --git a/parquet/plugin.ts b/parquet/plugin.ts new file mode 100644 index 00000000..84e2e820 --- /dev/null +++ b/parquet/plugin.ts @@ -0,0 +1,26 @@ +import type { Resource } from "@dpkit/core" +import { inferFormat } from "@dpkit/core" +import type { TablePlugin } from "@dpkit/table" +import type { SaveTableOptions, Table } from "@dpkit/table" +import { loadParquetTable, saveParquetTable } from "./table/index.js" + +export class ParquetPlugin implements TablePlugin { + async loadTable(resource: Partial) { + const isParquet = getIsParquet(resource) + if (!isParquet) return undefined + + return await loadParquetTable(resource) + } + + async saveTable(table: Table, options: SaveTableOptions) { + const isParquet = getIsParquet({ path: options.path }) + if (!isParquet) return undefined + + return await saveParquetTable(table, options) + } +} + +function getIsParquet(resource: Partial) { + const format = inferFormat(resource) + return format === "parquet" +} diff --git a/parquet/table/index.ts b/parquet/table/index.ts new file mode 100644 index 00000000..0e7397c7 --- /dev/null +++ b/parquet/table/index.ts @@ -0,0 +1,2 @@ +export { loadParquetTable } from "./load.js" +export { saveParquetTable } from "./save.js" diff --git a/parquet/table/load.spec.ts b/parquet/table/load.spec.ts new file mode 100644 index 00000000..c66fea52 --- /dev/null +++ b/parquet/table/load.spec.ts @@ -0,0 +1,20 @@ +import { DataFrame } from "nodejs-polars" +import { temporaryFileTask } from "tempy" +import { describe, expect, it } from "vitest" +import { loadParquetTable } from "./load.js" + +describe("loadParquetTable", () => { + describe("file variations", () => { + it("should load local file", async () => { + await temporaryFileTask(async path => { + DataFrame({ + id: [1, 2], + name: ["english", "中文"], + }).writeParquet(path) + + const table = await loadParquetTable({ path }) + expect(table).toBeDefined() + }) + }) + }) +}) diff --git a/parquet/table/load.ts b/parquet/table/load.ts new file mode 100644 index 00000000..3111c090 --- /dev/null +++ b/parquet/table/load.ts @@ -0,0 +1,6 @@ +import type { Resource } from "@dpkit/core" +import { DataFrame } from "nodejs-polars" + +export async function loadParquetTable(_resource: Partial) { + return DataFrame().lazy() +} diff --git a/parquet/table/save.spec.ts b/parquet/table/save.spec.ts new file mode 100644 index 00000000..fda8cbdf --- /dev/null +++ b/parquet/table/save.spec.ts @@ -0,0 +1,19 @@ +import { DataFrame } from "nodejs-polars" +import { temporaryFileTask } from "tempy" +import { describe, expect, it } from "vitest" +import { saveParquetTable } from "./save.js" + +describe("saveParquetTable", () => { + it("should save table to Parquet file", async () => { + await temporaryFileTask(async path => { + const table = DataFrame({ + id: [1.0, 2.0, 3.0], + name: ["Alice", "Bob", "Charlie"], + }).lazy() + + await saveParquetTable(table, { path }) + + expect(true).toBe(true) + }) + }) +}) diff --git a/parquet/table/save.ts b/parquet/table/save.ts new file mode 100644 index 00000000..6ae46947 --- /dev/null +++ b/parquet/table/save.ts @@ -0,0 +1,10 @@ +import type { SaveTableOptions, Table } from "@dpkit/table" + +export async function saveParquetTable( + _table: Table, + options: SaveTableOptions, +) { + // TODO: implement + + return options.path +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6336a1fd..41399391 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -185,6 +185,9 @@ importers: '@dpkit/json': specifier: workspace:* version: link:../json + '@dpkit/parquet': + specifier: workspace:* + version: link:../parquet '@dpkit/table': specifier: workspace:* version: link:../table @@ -278,7 +281,30 @@ importers: ods: {} - parquet: {} + parquet: + dependencies: + '@dpkit/core': + specifier: workspace:* + version: link:../core + '@dpkit/file': + specifier: workspace:* + version: link:../file + '@dpkit/table': + specifier: workspace:* + version: link:../table + csv-sniffer: + specifier: ^0.1.1 + version: 0.1.1 + nodejs-polars: + specifier: ^0.18.0 + version: 0.18.0 + devDependencies: + '@dpkit/test': + specifier: workspace:* + version: link:../test + tempy: + specifier: ^3.1.0 + version: 3.1.0 table: dependencies: From 107196f91a55b1e95deed9203fdfb81ae8bf4d90 Mon Sep 17 00:00:00 2001 From: roll Date: Mon, 4 Aug 2025 16:30:14 +0100 Subject: [PATCH 03/80] Bootstraped overviews --- json/OVERVIEW.md | 6 ++++++ parquet/OVERVIEW.md | 6 ++++++ 2 files changed, 12 insertions(+) create mode 100644 json/OVERVIEW.md create mode 100644 parquet/OVERVIEW.md diff --git a/json/OVERVIEW.md b/json/OVERVIEW.md new file mode 100644 index 00000000..a501e5c4 --- /dev/null +++ b/json/OVERVIEW.md @@ -0,0 +1,6 @@ +# @dpkit/json + +:::note +This overview is under development. +::: + diff --git a/parquet/OVERVIEW.md b/parquet/OVERVIEW.md new file mode 100644 index 00000000..6c8c5098 --- /dev/null +++ b/parquet/OVERVIEW.md @@ -0,0 +1,6 @@ +# @dpkit/parquet + +:::note +This overview is under development. +::: + From 017e58ce42ccdc6a13c158dd4848db4c92bcbba2 Mon Sep 17 00:00:00 2001 From: roll Date: Mon, 4 Aug 2025 16:36:41 +0100 Subject: [PATCH 04/80] Bootstrapped avro plugin --- avro/OVERVIEW.md | 5 +++++ avro/index.ts | 2 ++ avro/package.json | 10 ++++++++++ avro/plugin.ts | 26 ++++++++++++++++++++++++++ avro/table/index.ts | 2 ++ avro/table/load.spec.ts | 18 ++++++++++++++++++ avro/table/load.ts | 6 ++++++ avro/table/save.spec.ts | 19 +++++++++++++++++++ avro/table/save.ts | 7 +++++++ dpkit/package.json | 1 + dpkit/plugin.ts | 2 ++ json/typedoc.json | 5 +++++ parquet/typedoc.json | 5 +++++ pnpm-lock.yaml | 25 ++++++++++++++++++++++++- 14 files changed, 132 insertions(+), 1 deletion(-) create mode 100644 avro/OVERVIEW.md create mode 100644 avro/plugin.ts create mode 100644 avro/table/index.ts create mode 100644 avro/table/load.spec.ts create mode 100644 avro/table/load.ts create mode 100644 avro/table/save.spec.ts create mode 100644 avro/table/save.ts create mode 100644 json/typedoc.json create mode 100644 parquet/typedoc.json diff --git a/avro/OVERVIEW.md b/avro/OVERVIEW.md new file mode 100644 index 00000000..fc4a2a42 --- /dev/null +++ b/avro/OVERVIEW.md @@ -0,0 +1,5 @@ +# @dpkit/avro + +:::note +This overview is under development. +::: \ No newline at end of file diff --git a/avro/index.ts b/avro/index.ts index e69de29b..14397550 100644 --- a/avro/index.ts +++ b/avro/index.ts @@ -0,0 +1,2 @@ +export * from "./table/index.js" +export * from "./plugin.js" diff --git a/avro/package.json b/avro/package.json index 3281b069..bdbcb88a 100644 --- a/avro/package.json +++ b/avro/package.json @@ -21,5 +21,15 @@ ], "scripts": { "build": "tsc --build" + }, + "dependencies": { + "@dpkit/core": "workspace:*", + "@dpkit/file": "workspace:*", + "@dpkit/table": "workspace:*", + "nodejs-polars": "^0.18.0" + }, + "devDependencies": { + "@dpkit/test": "workspace:*", + "tempy": "^3.1.0" } } diff --git a/avro/plugin.ts b/avro/plugin.ts new file mode 100644 index 00000000..e0f94fd0 --- /dev/null +++ b/avro/plugin.ts @@ -0,0 +1,26 @@ +import type { Resource } from "@dpkit/core" +import { inferFormat } from "@dpkit/core" +import type { TablePlugin } from "@dpkit/table" +import type { SaveTableOptions, Table } from "@dpkit/table" +import { loadAvroTable, saveAvroTable } from "./table/index.js" + +export class AvroPlugin implements TablePlugin { + async loadTable(resource: Partial) { + const isAvro = getIsAvro(resource) + if (!isAvro) return undefined + + return await loadAvroTable(resource) + } + + async saveTable(table: Table, options: SaveTableOptions) { + const isAvro = getIsAvro({ path: options.path }) + if (!isAvro) return undefined + + return await saveAvroTable(table, options) + } +} + +function getIsAvro(resource: Partial) { + const format = inferFormat(resource) + return format === "avro" +} diff --git a/avro/table/index.ts b/avro/table/index.ts new file mode 100644 index 00000000..a8f72639 --- /dev/null +++ b/avro/table/index.ts @@ -0,0 +1,2 @@ +export { loadAvroTable } from "./load.js" +export { saveAvroTable } from "./save.js" diff --git a/avro/table/load.spec.ts b/avro/table/load.spec.ts new file mode 100644 index 00000000..ebcef984 --- /dev/null +++ b/avro/table/load.spec.ts @@ -0,0 +1,18 @@ +import { temporaryFileTask } from "tempy" +import { describe, expect, it } from "vitest" +import { loadAvroTable } from "./load.js" + +describe("loadAvroTable", () => { + describe("file variations", () => { + it("should load local file", async () => { + await temporaryFileTask( + async path => { + const table = await loadAvroTable({ path }) + + expect(table).toBeDefined() + }, + { extension: "avro" }, + ) + }) + }) +}) diff --git a/avro/table/load.ts b/avro/table/load.ts new file mode 100644 index 00000000..0bc72a28 --- /dev/null +++ b/avro/table/load.ts @@ -0,0 +1,6 @@ +import type { Resource } from "@dpkit/core" +import { DataFrame } from "nodejs-polars" + +export async function loadAvroTable(_resource: Partial) { + return DataFrame().lazy() +} diff --git a/avro/table/save.spec.ts b/avro/table/save.spec.ts new file mode 100644 index 00000000..77677aca --- /dev/null +++ b/avro/table/save.spec.ts @@ -0,0 +1,19 @@ +import { DataFrame } from "nodejs-polars" +import { temporaryFileTask } from "tempy" +import { describe, expect, it } from "vitest" +import { saveAvroTable } from "./save.js" + +describe("saveAvroTable", () => { + it("should save table to Avro file", async () => { + await temporaryFileTask(async path => { + const table = DataFrame({ + id: [1.0, 2.0, 3.0], + name: ["Alice", "Bob", "Charlie"], + }).lazy() + + await saveAvroTable(table, { path }) + + expect(true).toBe(true) + }) + }) +}) diff --git a/avro/table/save.ts b/avro/table/save.ts new file mode 100644 index 00000000..d444df08 --- /dev/null +++ b/avro/table/save.ts @@ -0,0 +1,7 @@ +import type { SaveTableOptions, Table } from "@dpkit/table" + +export async function saveAvroTable(_table: Table, options: SaveTableOptions) { + // TODO: implement + + return options.path +} diff --git a/dpkit/package.json b/dpkit/package.json index 746c10d6..a2cf061a 100644 --- a/dpkit/package.json +++ b/dpkit/package.json @@ -20,6 +20,7 @@ "cli" ], "dependencies": { + "@dpkit/avro": "workspace:*", "@dpkit/camtrap": "workspace:*", "@dpkit/ckan": "workspace:*", "@dpkit/csv": "workspace:*", diff --git a/dpkit/plugin.ts b/dpkit/plugin.ts index 29a9b717..a00565ce 100644 --- a/dpkit/plugin.ts +++ b/dpkit/plugin.ts @@ -1,3 +1,4 @@ +import { AvroPlugin } from "@dpkit/avro" import { CkanPlugin } from "@dpkit/ckan" import { CsvPlugin } from "@dpkit/csv" import { DatahubPlugin } from "@dpkit/datahub" @@ -29,6 +30,7 @@ dpkit.register(FolderPlugin) dpkit.register(ZipPlugin) // Table functions +dpkit.register(AvroPlugin) dpkit.register(CsvPlugin) dpkit.register(JsonPlugin) dpkit.register(InlinePlugin) diff --git a/json/typedoc.json b/json/typedoc.json new file mode 100644 index 00000000..fc33b815 --- /dev/null +++ b/json/typedoc.json @@ -0,0 +1,5 @@ +{ + "entryPoints": ["index.ts"], + "projectDocuments": ["CHANGELOG.md", "OVERVIEW.md"], + "skipErrorChecking": true +} diff --git a/parquet/typedoc.json b/parquet/typedoc.json new file mode 100644 index 00000000..fc33b815 --- /dev/null +++ b/parquet/typedoc.json @@ -0,0 +1,5 @@ +{ + "entryPoints": ["index.ts"], + "projectDocuments": ["CHANGELOG.md", "OVERVIEW.md"], + "skipErrorChecking": true +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 41399391..305c8b5d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -42,7 +42,27 @@ importers: specifier: 3.1.4 version: 3.1.4(@types/debug@4.1.12)(@types/node@22.15.31)(@vitest/ui@3.1.4)(yaml@2.7.1) - avro: {} + avro: + dependencies: + '@dpkit/core': + specifier: workspace:* + version: link:../core + '@dpkit/file': + specifier: workspace:* + version: link:../file + '@dpkit/table': + specifier: workspace:* + version: link:../table + nodejs-polars: + specifier: ^0.18.0 + version: 0.18.0 + devDependencies: + '@dpkit/test': + specifier: workspace:* + version: link:../test + tempy: + specifier: ^3.1.0 + version: 3.1.0 bin: {} @@ -155,6 +175,9 @@ importers: dpkit: dependencies: + '@dpkit/avro': + specifier: workspace:* + version: link:../avro '@dpkit/camtrap': specifier: workspace:* version: link:../camtrap From 1dd3f6bc5516bde88536b7faf24af957da89566d Mon Sep 17 00:00:00 2001 From: roll Date: Tue, 5 Aug 2025 10:34:57 +0100 Subject: [PATCH 05/80] Removed unused dependencies --- package.json | 1 - pnpm-lock.yaml | 3 --- 2 files changed, 4 deletions(-) diff --git a/package.json b/package.json index 0faad37a..fd598df8 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,6 @@ "devDependencies": { "@biomejs/biome": "1.9.4", "@changesets/cli": "2.29.5", - "@types/node": "22.15.31", "@vitest/coverage-v8": "3.1.4", "@vitest/ui": "3.1.4", "husky": "9.1.7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 305c8b5d..e0493714 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,9 +14,6 @@ importers: '@changesets/cli': specifier: 2.29.5 version: 2.29.5 - '@types/node': - specifier: 22.15.31 - version: 22.15.31 '@vitest/coverage-v8': specifier: 3.1.4 version: 3.1.4(vitest@3.1.4) From 6d5bccb5a301852e6ebe1f55fe5934ad9feb56bd Mon Sep 17 00:00:00 2001 From: roll Date: Tue, 5 Aug 2025 10:58:57 +0100 Subject: [PATCH 06/80] Updated slugify library --- core/general/path.ts | 5 ++-- core/package.json | 2 +- pnpm-lock.yaml | 23 ++++++++++++++++--- .../fixtures/generated/load.spec.ts.snap | 2 +- 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/core/general/path.ts b/core/general/path.ts index 39f25f1e..9a6d9e3a 100644 --- a/core/general/path.ts +++ b/core/general/path.ts @@ -1,4 +1,4 @@ -import Slugger from "github-slugger" +import slugify from "@sindresorhus/slugify" import { node } from "./node.js" export function isRemotePath(path: string) { @@ -20,8 +20,7 @@ export function getName(filename?: string) { return undefined } - const slugger = new Slugger() - return slugger.slug(name) + return slugify(name) } export function getFormat(filename?: string) { diff --git a/core/package.json b/core/package.json index 4ef97686..f687b2bd 100644 --- a/core/package.json +++ b/core/package.json @@ -23,8 +23,8 @@ "build": "tsc --build" }, "dependencies": { + "@sindresorhus/slugify": "^2.2.1", "ajv": "^8.17.1", - "github-slugger": "^2.0.0", "quick-lru": "^7.0.1", "tiny-invariant": "^1.3.3" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e0493714..cf18c846 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -86,12 +86,12 @@ importers: core: dependencies: + '@sindresorhus/slugify': + specifier: ^2.2.1 + version: 2.2.1 ajv: specifier: ^8.17.1 version: 8.17.1 - github-slugger: - specifier: ^2.0.0 - version: 2.0.0 quick-lru: specifier: ^7.0.1 version: 7.0.1 @@ -1289,6 +1289,14 @@ packages: resolution: {integrity: sha512-suq9tRQ6bkpMukTG5K5z0sPWB7t0zExMzZCdmYm6xTSSIm/yCKNm7VCL36wVeyTsFr597/UhU1OAYdHGMDiHrw==} engines: {node: '>=10'} + '@sindresorhus/slugify@2.2.1': + resolution: {integrity: sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==} + engines: {node: '>=12'} + + '@sindresorhus/transliterate@1.6.0': + resolution: {integrity: sha512-doH1gimEu3A46VX6aVxpHTeHrytJAG6HgdxntYnCFiIFHEM/ZGpG8KiZGBChchjQmG0XFIBL552kBTjVcMZXwQ==} + engines: {node: '>=12'} + '@swc/helpers@0.5.17': resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} @@ -4584,6 +4592,15 @@ snapshots: '@sindresorhus/fnv1a@2.0.1': {} + '@sindresorhus/slugify@2.2.1': + dependencies: + '@sindresorhus/transliterate': 1.6.0 + escape-string-regexp: 5.0.0 + + '@sindresorhus/transliterate@1.6.0': + dependencies: + escape-string-regexp: 5.0.0 + '@swc/helpers@0.5.17': dependencies: tslib: 2.8.1 diff --git a/zenodo/package/fixtures/generated/load.spec.ts.snap b/zenodo/package/fixtures/generated/load.spec.ts.snap index 4d0347e4..e56557d5 100644 --- a/zenodo/package/fixtures/generated/load.spec.ts.snap +++ b/zenodo/package/fixtures/generated/load.spec.ts.snap @@ -29,7 +29,7 @@ exports[`loadPackageFromZenodo > should load a package 1`] = ` "bytes": 272, "format": "csv", "hash": "md5:5ac1b92a57ec809c546ea90334c845c9", - "name": "openaq_measurements_pm10_japan_20250527_095520", + "name": "openaq-measurements-pm-10-japan-20250527-095520", "path": "https://zenodo.org/records/15525711/files/openaq_measurements_PM10_Japan_20250527_095520.csv", "zenodo:key": undefined, "zenodo:url": undefined, From 36422de2398091a593096d30797a832c9b4bfbf1 Mon Sep 17 00:00:00 2001 From: roll Date: Tue, 5 Aug 2025 11:00:10 +0100 Subject: [PATCH 07/80] Added TODO --- csv/table/load.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/csv/table/load.ts b/csv/table/load.ts index fda2281d..64adecb9 100644 --- a/csv/table/load.ts +++ b/csv/table/load.ts @@ -87,6 +87,8 @@ function getScanOptions(resource: Partial, dialect?: Dialect) { return options } +// TODO: move to the table package? + async function joinHeaderRows(table: Table, dialect: Dialect) { const headerOffset = getHeaderOffset(dialect) const headerRows = getHeaderRows(dialect) From 351d3e9a8e272d3563a8b65fef9ab729bb81f025 Mon Sep 17 00:00:00 2001 From: roll Date: Tue, 5 Aug 2025 11:23:22 +0100 Subject: [PATCH 08/80] Implemented avro loader --- avro/table/load.spec.ts | 22 ++++++++++++++-------- avro/table/load.ts | 10 ++++++++-- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/avro/table/load.spec.ts b/avro/table/load.spec.ts index ebcef984..d4252c73 100644 --- a/avro/table/load.spec.ts +++ b/avro/table/load.spec.ts @@ -1,18 +1,24 @@ -import { temporaryFileTask } from "tempy" +import { getTempFilePath } from "@dpkit/file" +import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" import { loadAvroTable } from "./load.js" describe("loadAvroTable", () => { describe("file variations", () => { it("should load local file", async () => { - await temporaryFileTask( - async path => { - const table = await loadAvroTable({ path }) + const path = getTempFilePath() - expect(table).toBeDefined() - }, - { extension: "avro" }, - ) + DataFrame({ + id: [1, 2], + name: ["english", "中文"], + }).writeAvro(path) + + const table = await loadAvroTable({ path }) + + expect((await table.collect()).toRecords()).toEqual([ + { id: "1", name: "english" }, + { id: "2", name: "中文" }, + ]) }) }) }) diff --git a/avro/table/load.ts b/avro/table/load.ts index 0bc72a28..896c2145 100644 --- a/avro/table/load.ts +++ b/avro/table/load.ts @@ -1,6 +1,12 @@ import type { Resource } from "@dpkit/core" +import { readAvro } from "nodejs-polars" import { DataFrame } from "nodejs-polars" -export async function loadAvroTable(_resource: Partial) { - return DataFrame().lazy() +export async function loadAvroTable(resource: Partial) { + if (typeof resource.path !== "string") { + return DataFrame().lazy() + } + + const table = readAvro(resource.path).lazy() + return table } From 7885430b1b746a2e6894d2e13078754d7450fe05 Mon Sep 17 00:00:00 2001 From: roll Date: Tue, 5 Aug 2025 11:29:58 +0100 Subject: [PATCH 09/80] Dropped avro plugin --- avro/CHANGELOG.md | 7 ----- avro/OVERVIEW.md | 5 ---- avro/README.md | 3 --- avro/index.ts | 2 -- avro/package.json | 35 ------------------------ avro/plugin.ts | 26 ------------------ avro/table/index.ts | 2 -- avro/table/load.spec.ts | 24 ----------------- avro/table/load.ts | 12 --------- avro/table/save.spec.ts | 19 ------------- avro/table/save.ts | 7 ----- avro/tsconfig.json | 10 ------- core/package.json | 2 +- dpkit/package.json | 1 - dpkit/plugin.ts | 2 -- pnpm-lock.yaml | 60 +++++++++++++---------------------------- pnpm-workspace.yaml | 1 - 17 files changed, 20 insertions(+), 198 deletions(-) delete mode 100644 avro/CHANGELOG.md delete mode 100644 avro/OVERVIEW.md delete mode 100644 avro/README.md delete mode 100644 avro/index.ts delete mode 100644 avro/package.json delete mode 100644 avro/plugin.ts delete mode 100644 avro/table/index.ts delete mode 100644 avro/table/load.spec.ts delete mode 100644 avro/table/load.ts delete mode 100644 avro/table/save.spec.ts delete mode 100644 avro/table/save.ts delete mode 100644 avro/tsconfig.json diff --git a/avro/CHANGELOG.md b/avro/CHANGELOG.md deleted file mode 100644 index ee89a705..00000000 --- a/avro/CHANGELOG.md +++ /dev/null @@ -1,7 +0,0 @@ -# @dpkit/avro - -## 0.2.0 - -### Minor Changes - -- edfde49: General framework improvements diff --git a/avro/OVERVIEW.md b/avro/OVERVIEW.md deleted file mode 100644 index fc4a2a42..00000000 --- a/avro/OVERVIEW.md +++ /dev/null @@ -1,5 +0,0 @@ -# @dpkit/avro - -:::note -This overview is under development. -::: \ No newline at end of file diff --git a/avro/README.md b/avro/README.md deleted file mode 100644 index 5ced2e65..00000000 --- a/avro/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# @dpkit/avro - -dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). diff --git a/avro/index.ts b/avro/index.ts deleted file mode 100644 index 14397550..00000000 --- a/avro/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./table/index.js" -export * from "./plugin.js" diff --git a/avro/package.json b/avro/package.json deleted file mode 100644 index bdbcb88a..00000000 --- a/avro/package.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "@dpkit/avro", - "type": "module", - "main": "build/index.js", - "version": "0.2.0", - "license": "MIT", - "author": "Evgeny Karev", - "repository": "https://github.com/datisthq/dpkit", - "description": "Fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames", - "keywords": [ - "data", - "polars", - "dataframe", - "datapackage", - "tableschema", - "typescript", - "validation", - "quality", - "fair", - "avro" - ], - "scripts": { - "build": "tsc --build" - }, - "dependencies": { - "@dpkit/core": "workspace:*", - "@dpkit/file": "workspace:*", - "@dpkit/table": "workspace:*", - "nodejs-polars": "^0.18.0" - }, - "devDependencies": { - "@dpkit/test": "workspace:*", - "tempy": "^3.1.0" - } -} diff --git a/avro/plugin.ts b/avro/plugin.ts deleted file mode 100644 index e0f94fd0..00000000 --- a/avro/plugin.ts +++ /dev/null @@ -1,26 +0,0 @@ -import type { Resource } from "@dpkit/core" -import { inferFormat } from "@dpkit/core" -import type { TablePlugin } from "@dpkit/table" -import type { SaveTableOptions, Table } from "@dpkit/table" -import { loadAvroTable, saveAvroTable } from "./table/index.js" - -export class AvroPlugin implements TablePlugin { - async loadTable(resource: Partial) { - const isAvro = getIsAvro(resource) - if (!isAvro) return undefined - - return await loadAvroTable(resource) - } - - async saveTable(table: Table, options: SaveTableOptions) { - const isAvro = getIsAvro({ path: options.path }) - if (!isAvro) return undefined - - return await saveAvroTable(table, options) - } -} - -function getIsAvro(resource: Partial) { - const format = inferFormat(resource) - return format === "avro" -} diff --git a/avro/table/index.ts b/avro/table/index.ts deleted file mode 100644 index a8f72639..00000000 --- a/avro/table/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { loadAvroTable } from "./load.js" -export { saveAvroTable } from "./save.js" diff --git a/avro/table/load.spec.ts b/avro/table/load.spec.ts deleted file mode 100644 index d4252c73..00000000 --- a/avro/table/load.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { getTempFilePath } from "@dpkit/file" -import { DataFrame } from "nodejs-polars" -import { describe, expect, it } from "vitest" -import { loadAvroTable } from "./load.js" - -describe("loadAvroTable", () => { - describe("file variations", () => { - it("should load local file", async () => { - const path = getTempFilePath() - - DataFrame({ - id: [1, 2], - name: ["english", "中文"], - }).writeAvro(path) - - const table = await loadAvroTable({ path }) - - expect((await table.collect()).toRecords()).toEqual([ - { id: "1", name: "english" }, - { id: "2", name: "中文" }, - ]) - }) - }) -}) diff --git a/avro/table/load.ts b/avro/table/load.ts deleted file mode 100644 index 896c2145..00000000 --- a/avro/table/load.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { Resource } from "@dpkit/core" -import { readAvro } from "nodejs-polars" -import { DataFrame } from "nodejs-polars" - -export async function loadAvroTable(resource: Partial) { - if (typeof resource.path !== "string") { - return DataFrame().lazy() - } - - const table = readAvro(resource.path).lazy() - return table -} diff --git a/avro/table/save.spec.ts b/avro/table/save.spec.ts deleted file mode 100644 index 77677aca..00000000 --- a/avro/table/save.spec.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { DataFrame } from "nodejs-polars" -import { temporaryFileTask } from "tempy" -import { describe, expect, it } from "vitest" -import { saveAvroTable } from "./save.js" - -describe("saveAvroTable", () => { - it("should save table to Avro file", async () => { - await temporaryFileTask(async path => { - const table = DataFrame({ - id: [1.0, 2.0, 3.0], - name: ["Alice", "Bob", "Charlie"], - }).lazy() - - await saveAvroTable(table, { path }) - - expect(true).toBe(true) - }) - }) -}) diff --git a/avro/table/save.ts b/avro/table/save.ts deleted file mode 100644 index d444df08..00000000 --- a/avro/table/save.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type { SaveTableOptions, Table } from "@dpkit/table" - -export async function saveAvroTable(_table: Table, options: SaveTableOptions) { - // TODO: implement - - return options.path -} diff --git a/avro/tsconfig.json b/avro/tsconfig.json deleted file mode 100644 index 7be40230..00000000 --- a/avro/tsconfig.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "../tsconfig.json", - "include": ["**/*.ts"], - "exclude": ["**/build/"], - "compilerOptions": { - "outDir": "build", - "noEmit": false, - "declaration": true - } -} diff --git a/core/package.json b/core/package.json index f687b2bd..1691fb50 100644 --- a/core/package.json +++ b/core/package.json @@ -23,7 +23,7 @@ "build": "tsc --build" }, "dependencies": { - "@sindresorhus/slugify": "^2.2.1", + "@sindresorhus/slugify": "^0.9.0", "ajv": "^8.17.1", "quick-lru": "^7.0.1", "tiny-invariant": "^1.3.3" diff --git a/dpkit/package.json b/dpkit/package.json index a2cf061a..746c10d6 100644 --- a/dpkit/package.json +++ b/dpkit/package.json @@ -20,7 +20,6 @@ "cli" ], "dependencies": { - "@dpkit/avro": "workspace:*", "@dpkit/camtrap": "workspace:*", "@dpkit/ckan": "workspace:*", "@dpkit/csv": "workspace:*", diff --git a/dpkit/plugin.ts b/dpkit/plugin.ts index a00565ce..29a9b717 100644 --- a/dpkit/plugin.ts +++ b/dpkit/plugin.ts @@ -1,4 +1,3 @@ -import { AvroPlugin } from "@dpkit/avro" import { CkanPlugin } from "@dpkit/ckan" import { CsvPlugin } from "@dpkit/csv" import { DatahubPlugin } from "@dpkit/datahub" @@ -30,7 +29,6 @@ dpkit.register(FolderPlugin) dpkit.register(ZipPlugin) // Table functions -dpkit.register(AvroPlugin) dpkit.register(CsvPlugin) dpkit.register(JsonPlugin) dpkit.register(InlinePlugin) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cf18c846..18e9d581 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -39,28 +39,6 @@ importers: specifier: 3.1.4 version: 3.1.4(@types/debug@4.1.12)(@types/node@22.15.31)(@vitest/ui@3.1.4)(yaml@2.7.1) - avro: - dependencies: - '@dpkit/core': - specifier: workspace:* - version: link:../core - '@dpkit/file': - specifier: workspace:* - version: link:../file - '@dpkit/table': - specifier: workspace:* - version: link:../table - nodejs-polars: - specifier: ^0.18.0 - version: 0.18.0 - devDependencies: - '@dpkit/test': - specifier: workspace:* - version: link:../test - tempy: - specifier: ^3.1.0 - version: 3.1.0 - bin: {} camtrap: @@ -87,8 +65,8 @@ importers: core: dependencies: '@sindresorhus/slugify': - specifier: ^2.2.1 - version: 2.2.1 + specifier: ^0.9.0 + version: 0.9.1 ajv: specifier: ^8.17.1 version: 8.17.1 @@ -172,9 +150,6 @@ importers: dpkit: dependencies: - '@dpkit/avro': - specifier: workspace:* - version: link:../avro '@dpkit/camtrap': specifier: workspace:* version: link:../camtrap @@ -1289,13 +1264,9 @@ packages: resolution: {integrity: sha512-suq9tRQ6bkpMukTG5K5z0sPWB7t0zExMzZCdmYm6xTSSIm/yCKNm7VCL36wVeyTsFr597/UhU1OAYdHGMDiHrw==} engines: {node: '>=10'} - '@sindresorhus/slugify@2.2.1': - resolution: {integrity: sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==} - engines: {node: '>=12'} - - '@sindresorhus/transliterate@1.6.0': - resolution: {integrity: sha512-doH1gimEu3A46VX6aVxpHTeHrytJAG6HgdxntYnCFiIFHEM/ZGpG8KiZGBChchjQmG0XFIBL552kBTjVcMZXwQ==} - engines: {node: '>=12'} + '@sindresorhus/slugify@0.9.1': + resolution: {integrity: sha512-b6heYM9dzZD13t2GOiEQTDE0qX+I1GyOotMwKh9VQqzuNiVdPVT8dM43fe9HNb/3ul+Qwd5oKSEDrDIfhq3bnQ==} + engines: {node: '>=8'} '@swc/helpers@0.5.17': resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} @@ -1874,6 +1845,10 @@ packages: escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + escape-string-regexp@5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} @@ -2328,6 +2303,9 @@ packages: lodash-es@4.17.21: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + lodash.deburr@4.1.0: + resolution: {integrity: sha512-m/M1U1f3ddMCs6Hq2tAsYThTBDaAKFDX3dwDo97GEYzamXi9SqUpjWi/Rrj/gf3X2n8ktwgZrlP1z6E3v/IExQ==} + lodash.startcase@4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} @@ -4592,14 +4570,10 @@ snapshots: '@sindresorhus/fnv1a@2.0.1': {} - '@sindresorhus/slugify@2.2.1': - dependencies: - '@sindresorhus/transliterate': 1.6.0 - escape-string-regexp: 5.0.0 - - '@sindresorhus/transliterate@1.6.0': + '@sindresorhus/slugify@0.9.1': dependencies: - escape-string-regexp: 5.0.0 + escape-string-regexp: 1.0.5 + lodash.deburr: 4.1.0 '@swc/helpers@0.5.17': dependencies: @@ -5263,6 +5237,8 @@ snapshots: escape-html@1.0.3: {} + escape-string-regexp@1.0.5: {} + escape-string-regexp@5.0.0: {} esprima@4.0.1: {} @@ -5891,6 +5867,8 @@ snapshots: lodash-es@4.17.21: {} + lodash.deburr@4.1.0: {} + lodash.startcase@4.4.0: {} loglevel@1.9.2: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 73911b7e..ab74b732 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,6 +1,5 @@ dangerouslyAllowAllBuilds: true packages: - - avro - bin - camtrap - ckan From f634e3bf048e8a8a4bfe1e806e94f9d791136b40 Mon Sep 17 00:00:00 2001 From: roll Date: Tue, 5 Aug 2025 11:49:54 +0100 Subject: [PATCH 10/80] Implemented parquet load --- docs/package.json | 8 +- .../recording.har | 292 ++++++++++++++++++ .../recording.har | 153 +++++++++ parquet/table/load.spec.ts | 62 +++- parquet/table/load.ts | 19 +- pnpm-lock.yaml | 15 +- 6 files changed, 525 insertions(+), 24 deletions(-) create mode 100644 parquet/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har create mode 100644 parquet/table/fixtures/generated/should-load-remote-file_1137408454/recording.har diff --git a/docs/package.json b/docs/package.json index 91d8bfb9..f454e432 100644 --- a/docs/package.json +++ b/docs/package.json @@ -7,7 +7,7 @@ "preview": "astro preview", "start": "astro dev" }, - "dependencies": { + "devDependencies": { "@astrojs/starlight": "0.34.3", "astro": "5.7.12", "dpkit": "workspace:*", @@ -15,10 +15,8 @@ "starlight-scroll-to-top": "0.1.1", "starlight-typedoc": "0.21.3", "typedoc": "0.28.5", - "typedoc-plugin-markdown": "4.6.3" - }, - "devDependencies": { - "nodejs-polars": "^0.18.0", + "typedoc-plugin-markdown": "4.6.3", + "nodejs-polars": "0.18.0", "tempy": "3.1.0" } } diff --git a/parquet/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har b/parquet/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har new file mode 100644 index 00000000..23785cae --- /dev/null +++ b/parquet/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har @@ -0,0 +1,292 @@ +{ + "log": { + "_recordingName": "should load remote file (multipart)", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "a64f4353af2adbbc2f2eed3c4889f479", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [], + "headersSize": 109, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://github.com/frictionlessdata/frictionless-py/raw/refs/heads/main/data/table.parquet" + }, + "response": { + "bodySize": 897, + "content": { + "encoding": "base64", + "mimeType": "application/octet-stream", + "size": 897, + "text": "UEFSMRUAFTwVPCwVBBUAFQYVCAAAAgAAAAQBAQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAFQAVTBVMLBUEFQAVBhUIAAACAAAABAEHAAAAZW5nbGlzaAkAAADkuK3lm73kuroAAAAAAAAAABUCGTxIBnNjaGVtYRUEABUEFYABFQIYAmlkABUMJQIYBG5hbWUlAAAWBBkcGSwmZhwVBBkVABkYAmlkFQAWBBZeFl4ZABYIPBgIAgAAAAAAAAAYCAEAAAAAAAAAFgAAGRwVABUAFQIAAAAm1AEcFQwZFQAZGARuYW1lFQAWBBZuFm4ZABZmPBgJ5Lit5Zu95Lq6GAdlbmdsaXNoFgAAGRwVABUAFQIAAAAWzAEWBAAZHBgGcGFuZGFzGKUEeyJjb2x1bW5faW5kZXhlcyI6IFt7ImZpZWxkX25hbWUiOiBudWxsLCAibWV0YWRhdGEiOiBudWxsLCAibmFtZSI6IG51bGwsICJudW1weV90eXBlIjogIm9iamVjdCIsICJwYW5kYXNfdHlwZSI6ICJtaXhlZC1pbnRlZ2VyIn1dLCAiY29sdW1ucyI6IFt7ImZpZWxkX25hbWUiOiAiaWQiLCAibWV0YWRhdGEiOiBudWxsLCAibmFtZSI6ICJpZCIsICJudW1weV90eXBlIjogImludDY0IiwgInBhbmRhc190eXBlIjogImludDY0In0sIHsiZmllbGRfbmFtZSI6ICJuYW1lIiwgIm1ldGFkYXRhIjogbnVsbCwgIm5hbWUiOiAibmFtZSIsICJudW1weV90eXBlIjogIm9iamVjdCIsICJwYW5kYXNfdHlwZSI6ICJ1bmljb2RlIn1dLCAiY3JlYXRvciI6IHsibGlicmFyeSI6ICJmYXN0cGFycXVldCIsICJ2ZXJzaW9uIjogIjAuOC4xIn0sICJpbmRleF9jb2x1bW5zIjogW3sia2luZCI6ICJyYW5nZSIsICJuYW1lIjogbnVsbCwgInN0YXJ0IjogMCwgInN0ZXAiOiAxLCAic3RvcCI6IDJ9XSwgInBhbmRhc192ZXJzaW9uIjogIjEuNC4zIiwgInBhcnRpdGlvbl9jb2x1bW5zIjogW119ABgqZmFzdHBhcnF1ZXQtcHl0aG9uIHZlcnNpb24gMC44LjEgKGJ1aWxkIDApAA8DAABQQVIx" + }, + "cookies": [], + "headers": [ + { + "name": "accept-ranges", + "value": "bytes" + }, + { + "name": "access-control-allow-origin", + "value": "*" + }, + { + "name": "cache-control", + "value": "max-age=300" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "name": "content-length", + "value": "897" + }, + { + "name": "content-security-policy", + "value": "default-src 'none'; style-src 'unsafe-inline'; sandbox" + }, + { + "name": "content-type", + "value": "application/octet-stream" + }, + { + "name": "cross-origin-resource-policy", + "value": "cross-origin" + }, + { + "name": "date", + "value": "Tue, 05 Aug 2025 10:48:34 GMT" + }, + { + "name": "etag", + "value": "W/\"8c6326a59a7e2ed794cec3dc0f545bff3f4eed4c8d715908f45ffbd920b77adb\"" + }, + { + "name": "expires", + "value": "Tue, 05 Aug 2025 10:53:34 GMT" + }, + { + "name": "source-age", + "value": "194" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000" + }, + { + "name": "vary", + "value": "Authorization,Accept-Encoding" + }, + { + "name": "via", + "value": "1.1 varnish" + }, + { + "name": "x-cache", + "value": "HIT" + }, + { + "name": "x-cache-hits", + "value": "0" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "x-fastly-request-id", + "value": "c84a9da25c2fc605bc93f12c5d41b325e7a1ffb9" + }, + { + "name": "x-frame-options", + "value": "deny" + }, + { + "name": "x-github-request-id", + "value": "4E0A:22229B:6CD291:7E5D8C:6891DE3F" + }, + { + "name": "x-served-by", + "value": "cache-lis1490038-LIS" + }, + { + "name": "x-timer", + "value": "S1754390915.634850,VS0,VE1" + }, + { + "name": "x-xss-protection", + "value": "1; mode=block" + } + ], + "headersSize": 876, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2025-08-05T10:48:33.995Z", + "time": 766, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 766 + } + }, + { + "_id": "a64f4353af2adbbc2f2eed3c4889f479", + "_order": 1, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [], + "headersSize": 109, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://github.com/frictionlessdata/frictionless-py/raw/refs/heads/main/data/table.parquet" + }, + "response": { + "bodySize": 897, + "content": { + "encoding": "base64", + "mimeType": "application/octet-stream", + "size": 897, + "text": "UEFSMRUAFTwVPCwVBBUAFQYVCAAAAgAAAAQBAQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAFQAVTBVMLBUEFQAVBhUIAAACAAAABAEHAAAAZW5nbGlzaAkAAADkuK3lm73kuroAAAAAAAAAABUCGTxIBnNjaGVtYRUEABUEFYABFQIYAmlkABUMJQIYBG5hbWUlAAAWBBkcGSwmZhwVBBkVABkYAmlkFQAWBBZeFl4ZABYIPBgIAgAAAAAAAAAYCAEAAAAAAAAAFgAAGRwVABUAFQIAAAAm1AEcFQwZFQAZGARuYW1lFQAWBBZuFm4ZABZmPBgJ5Lit5Zu95Lq6GAdlbmdsaXNoFgAAGRwVABUAFQIAAAAWzAEWBAAZHBgGcGFuZGFzGKUEeyJjb2x1bW5faW5kZXhlcyI6IFt7ImZpZWxkX25hbWUiOiBudWxsLCAibWV0YWRhdGEiOiBudWxsLCAibmFtZSI6IG51bGwsICJudW1weV90eXBlIjogIm9iamVjdCIsICJwYW5kYXNfdHlwZSI6ICJtaXhlZC1pbnRlZ2VyIn1dLCAiY29sdW1ucyI6IFt7ImZpZWxkX25hbWUiOiAiaWQiLCAibWV0YWRhdGEiOiBudWxsLCAibmFtZSI6ICJpZCIsICJudW1weV90eXBlIjogImludDY0IiwgInBhbmRhc190eXBlIjogImludDY0In0sIHsiZmllbGRfbmFtZSI6ICJuYW1lIiwgIm1ldGFkYXRhIjogbnVsbCwgIm5hbWUiOiAibmFtZSIsICJudW1weV90eXBlIjogIm9iamVjdCIsICJwYW5kYXNfdHlwZSI6ICJ1bmljb2RlIn1dLCAiY3JlYXRvciI6IHsibGlicmFyeSI6ICJmYXN0cGFycXVldCIsICJ2ZXJzaW9uIjogIjAuOC4xIn0sICJpbmRleF9jb2x1bW5zIjogW3sia2luZCI6ICJyYW5nZSIsICJuYW1lIjogbnVsbCwgInN0YXJ0IjogMCwgInN0ZXAiOiAxLCAic3RvcCI6IDJ9XSwgInBhbmRhc192ZXJzaW9uIjogIjEuNC4zIiwgInBhcnRpdGlvbl9jb2x1bW5zIjogW119ABgqZmFzdHBhcnF1ZXQtcHl0aG9uIHZlcnNpb24gMC44LjEgKGJ1aWxkIDApAA8DAABQQVIx" + }, + "cookies": [], + "headers": [ + { + "name": "accept-ranges", + "value": "bytes" + }, + { + "name": "access-control-allow-origin", + "value": "*" + }, + { + "name": "cache-control", + "value": "max-age=300" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "name": "content-length", + "value": "897" + }, + { + "name": "content-security-policy", + "value": "default-src 'none'; style-src 'unsafe-inline'; sandbox" + }, + { + "name": "content-type", + "value": "application/octet-stream" + }, + { + "name": "cross-origin-resource-policy", + "value": "cross-origin" + }, + { + "name": "date", + "value": "Tue, 05 Aug 2025 10:48:34 GMT" + }, + { + "name": "etag", + "value": "W/\"8c6326a59a7e2ed794cec3dc0f545bff3f4eed4c8d715908f45ffbd920b77adb\"" + }, + { + "name": "expires", + "value": "Tue, 05 Aug 2025 10:53:34 GMT" + }, + { + "name": "source-age", + "value": "194" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000" + }, + { + "name": "vary", + "value": "Authorization,Accept-Encoding" + }, + { + "name": "via", + "value": "1.1 varnish" + }, + { + "name": "x-cache", + "value": "HIT" + }, + { + "name": "x-cache-hits", + "value": "1" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "x-fastly-request-id", + "value": "b0d45c273b611652cc152ebb28f779e6f4f34c50" + }, + { + "name": "x-frame-options", + "value": "deny" + }, + { + "name": "x-github-request-id", + "value": "4E0A:22229B:6CD291:7E5D8C:6891DE3F" + }, + { + "name": "x-served-by", + "value": "cache-lis1490038-LIS" + }, + { + "name": "x-timer", + "value": "S1754390915.644192,VS0,VE1" + }, + { + "name": "x-xss-protection", + "value": "1; mode=block" + } + ], + "headersSize": 876, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2025-08-05T10:48:33.995Z", + "time": 768, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 768 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/parquet/table/fixtures/generated/should-load-remote-file_1137408454/recording.har b/parquet/table/fixtures/generated/should-load-remote-file_1137408454/recording.har new file mode 100644 index 00000000..154743e2 --- /dev/null +++ b/parquet/table/fixtures/generated/should-load-remote-file_1137408454/recording.har @@ -0,0 +1,153 @@ +{ + "log": { + "_recordingName": "should load remote file", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "a64f4353af2adbbc2f2eed3c4889f479", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [], + "headersSize": 109, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://github.com/frictionlessdata/frictionless-py/raw/refs/heads/main/data/table.parquet" + }, + "response": { + "bodySize": 897, + "content": { + "encoding": "base64", + "mimeType": "application/octet-stream", + "size": 897, + "text": "UEFSMRUAFTwVPCwVBBUAFQYVCAAAAgAAAAQBAQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAFQAVTBVMLBUEFQAVBhUIAAACAAAABAEHAAAAZW5nbGlzaAkAAADkuK3lm73kuroAAAAAAAAAABUCGTxIBnNjaGVtYRUEABUEFYABFQIYAmlkABUMJQIYBG5hbWUlAAAWBBkcGSwmZhwVBBkVABkYAmlkFQAWBBZeFl4ZABYIPBgIAgAAAAAAAAAYCAEAAAAAAAAAFgAAGRwVABUAFQIAAAAm1AEcFQwZFQAZGARuYW1lFQAWBBZuFm4ZABZmPBgJ5Lit5Zu95Lq6GAdlbmdsaXNoFgAAGRwVABUAFQIAAAAWzAEWBAAZHBgGcGFuZGFzGKUEeyJjb2x1bW5faW5kZXhlcyI6IFt7ImZpZWxkX25hbWUiOiBudWxsLCAibWV0YWRhdGEiOiBudWxsLCAibmFtZSI6IG51bGwsICJudW1weV90eXBlIjogIm9iamVjdCIsICJwYW5kYXNfdHlwZSI6ICJtaXhlZC1pbnRlZ2VyIn1dLCAiY29sdW1ucyI6IFt7ImZpZWxkX25hbWUiOiAiaWQiLCAibWV0YWRhdGEiOiBudWxsLCAibmFtZSI6ICJpZCIsICJudW1weV90eXBlIjogImludDY0IiwgInBhbmRhc190eXBlIjogImludDY0In0sIHsiZmllbGRfbmFtZSI6ICJuYW1lIiwgIm1ldGFkYXRhIjogbnVsbCwgIm5hbWUiOiAibmFtZSIsICJudW1weV90eXBlIjogIm9iamVjdCIsICJwYW5kYXNfdHlwZSI6ICJ1bmljb2RlIn1dLCAiY3JlYXRvciI6IHsibGlicmFyeSI6ICJmYXN0cGFycXVldCIsICJ2ZXJzaW9uIjogIjAuOC4xIn0sICJpbmRleF9jb2x1bW5zIjogW3sia2luZCI6ICJyYW5nZSIsICJuYW1lIjogbnVsbCwgInN0YXJ0IjogMCwgInN0ZXAiOiAxLCAic3RvcCI6IDJ9XSwgInBhbmRhc192ZXJzaW9uIjogIjEuNC4zIiwgInBhcnRpdGlvbl9jb2x1bW5zIjogW119ABgqZmFzdHBhcnF1ZXQtcHl0aG9uIHZlcnNpb24gMC44LjEgKGJ1aWxkIDApAA8DAABQQVIx" + }, + "cookies": [], + "headers": [ + { + "name": "accept-ranges", + "value": "bytes" + }, + { + "name": "access-control-allow-origin", + "value": "*" + }, + { + "name": "cache-control", + "value": "max-age=300" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "name": "content-length", + "value": "897" + }, + { + "name": "content-security-policy", + "value": "default-src 'none'; style-src 'unsafe-inline'; sandbox" + }, + { + "name": "content-type", + "value": "application/octet-stream" + }, + { + "name": "cross-origin-resource-policy", + "value": "cross-origin" + }, + { + "name": "date", + "value": "Tue, 05 Aug 2025 10:45:21 GMT" + }, + { + "name": "etag", + "value": "W/\"8c6326a59a7e2ed794cec3dc0f545bff3f4eed4c8d715908f45ffbd920b77adb\"" + }, + { + "name": "expires", + "value": "Tue, 05 Aug 2025 10:50:21 GMT" + }, + { + "name": "source-age", + "value": "0" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000" + }, + { + "name": "vary", + "value": "Authorization,Accept-Encoding" + }, + { + "name": "via", + "value": "1.1 varnish" + }, + { + "name": "x-cache", + "value": "HIT" + }, + { + "name": "x-cache-hits", + "value": "0" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "x-fastly-request-id", + "value": "5ebf6f3ef52941b3f003c32a7d2f5c8957ef744e" + }, + { + "name": "x-frame-options", + "value": "deny" + }, + { + "name": "x-github-request-id", + "value": "4E0A:22229B:6CD291:7E5D8C:6891DE3F" + }, + { + "name": "x-served-by", + "value": "cache-lis1490052-LIS" + }, + { + "name": "x-timer", + "value": "S1754390721.878838,VS0,VE172" + }, + { + "name": "x-xss-protection", + "value": "1; mode=block" + } + ], + "headersSize": 876, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2025-08-05T10:45:19.436Z", + "time": 1927, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 1927 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/parquet/table/load.spec.ts b/parquet/table/load.spec.ts index c66fea52..46064708 100644 --- a/parquet/table/load.spec.ts +++ b/parquet/table/load.spec.ts @@ -1,20 +1,64 @@ +import { getTempFilePath } from "@dpkit/file" +import { useRecording } from "@dpkit/test" import { DataFrame } from "nodejs-polars" -import { temporaryFileTask } from "tempy" import { describe, expect, it } from "vitest" import { loadParquetTable } from "./load.js" describe("loadParquetTable", () => { + useRecording() + describe("file variations", () => { it("should load local file", async () => { - await temporaryFileTask(async path => { - DataFrame({ - id: [1, 2], - name: ["english", "中文"], - }).writeParquet(path) - - const table = await loadParquetTable({ path }) - expect(table).toBeDefined() + const path = getTempFilePath() + DataFrame({ id: [1, 2], name: ["english", "中文"] }).writeParquet(path) + + const table = await loadParquetTable({ path }) + expect((await table.collect()).toRecords()).toEqual([ + { id: 1, name: "english" }, + { id: 2, name: "中文" }, + ]) + }) + + it("should load local file (multipart)", async () => { + const path1 = getTempFilePath() + const path2 = getTempFilePath() + DataFrame({ id: [1, 2], name: ["english", "中文"] }).writeParquet(path1) + DataFrame({ id: [1, 2], name: ["english", "中文"] }).writeParquet(path2) + + const table = await loadParquetTable({ path: [path1, path2] }) + expect((await table.collect()).toRecords()).toEqual([ + { id: 1, name: "english" }, + { id: 2, name: "中文" }, + { id: 1, name: "english" }, + { id: 2, name: "中文" }, + ]) + }) + + it("should load remote file", async () => { + const table = await loadParquetTable({ + path: "https://github.com/frictionlessdata/frictionless-py/raw/refs/heads/main/data/table.parquet", + }) + + expect((await table.collect()).toRecords()).toEqual([ + { id: 1, name: "english" }, + { id: 2, name: "中国人" }, + ]) + }) + + it("should load remote file (multipart)", async () => { + const table = await loadParquetTable({ + path: [ + "https://github.com/frictionlessdata/frictionless-py/raw/refs/heads/main/data/table.parquet", + "https://github.com/frictionlessdata/frictionless-py/raw/refs/heads/main/data/table.parquet", + ], }) + + expect((await table.collect()).toRecords()).toEqual([ + { id: 1, name: "english" }, + { id: 2, name: "中国人" }, + { id: 1, name: "english" }, + { id: 2, name: "中国人" }, + ]) }) }) }) diff --git a/parquet/table/load.ts b/parquet/table/load.ts index 3111c090..a415dda3 100644 --- a/parquet/table/load.ts +++ b/parquet/table/load.ts @@ -1,6 +1,21 @@ import type { Resource } from "@dpkit/core" +import { prefetchFiles } from "@dpkit/file" +import { concat } from "nodejs-polars" import { DataFrame } from "nodejs-polars" +import { scanParquet } from "nodejs-polars" -export async function loadParquetTable(_resource: Partial) { - return DataFrame().lazy() +export async function loadParquetTable(resource: Partial) { + const [firstPath, ...restPaths] = await prefetchFiles(resource.path) + + if (!firstPath) { + return DataFrame().lazy() + } + + let table = scanParquet(firstPath) + + if (restPaths.length) { + table = concat([table, ...restPaths.map(path => scanParquet(path))]) + } + + return table } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 18e9d581..a9b46c7d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -115,7 +115,7 @@ importers: db: {} docs: - dependencies: + devDependencies: '@astrojs/starlight': specifier: 0.34.3 version: 0.34.3(astro@5.7.12(@types/node@22.15.31)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1)) @@ -125,6 +125,9 @@ importers: dpkit: specifier: workspace:* version: link:../dpkit + nodejs-polars: + specifier: 0.18.0 + version: 0.18.0 sharp: specifier: 0.34.2 version: 0.34.2 @@ -134,19 +137,15 @@ importers: starlight-typedoc: specifier: 0.21.3 version: 0.21.3(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@22.15.31)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1)))(typedoc-plugin-markdown@4.6.3(typedoc@0.28.5(typescript@5.8.3)))(typedoc@0.28.5(typescript@5.8.3)) + tempy: + specifier: 3.1.0 + version: 3.1.0 typedoc: specifier: 0.28.5 version: 0.28.5(typescript@5.8.3) typedoc-plugin-markdown: specifier: 4.6.3 version: 4.6.3(typedoc@0.28.5(typescript@5.8.3)) - devDependencies: - nodejs-polars: - specifier: ^0.18.0 - version: 0.18.0 - tempy: - specifier: 3.1.0 - version: 3.1.0 dpkit: dependencies: From 956aaf30530078e768b4264bc2e5f7a2102d3b7d Mon Sep 17 00:00:00 2001 From: roll Date: Tue, 5 Aug 2025 12:05:34 +0100 Subject: [PATCH 11/80] Implemented arrow loader --- arrow/CHANGELOG.md | 2 + arrow/OVERVIEW.md | 6 +++ arrow/README.md | 3 ++ arrow/index.ts | 2 + arrow/package.json | 36 +++++++++++++++ arrow/plugin.ts | 26 +++++++++++ arrow/table.arrow | Bin 0 -> 777 bytes arrow/table/fixtures/table.arrow | Bin 0 -> 777 bytes arrow/table/index.ts | 2 + arrow/table/load.spec.ts | 64 +++++++++++++++++++++++++++ arrow/table/load.ts | 21 +++++++++ arrow/table/save.spec.ts | 19 ++++++++ arrow/table/save.ts | 7 +++ arrow/tsconfig.json | 10 +++++ arrow/typedoc.json | 5 +++ dpkit/package.json | 1 + dpkit/plugin.ts | 2 + parquet/table/fixtures/table.parquet | Bin 0 -> 897 bytes pnpm-lock.yaml | 28 ++++++++++++ pnpm-workspace.yaml | 1 + 20 files changed, 235 insertions(+) create mode 100644 arrow/CHANGELOG.md create mode 100644 arrow/OVERVIEW.md create mode 100644 arrow/README.md create mode 100644 arrow/index.ts create mode 100644 arrow/package.json create mode 100644 arrow/plugin.ts create mode 100644 arrow/table.arrow create mode 100644 arrow/table/fixtures/table.arrow create mode 100644 arrow/table/index.ts create mode 100644 arrow/table/load.spec.ts create mode 100644 arrow/table/load.ts create mode 100644 arrow/table/save.spec.ts create mode 100644 arrow/table/save.ts create mode 100644 arrow/tsconfig.json create mode 100644 arrow/typedoc.json create mode 100644 parquet/table/fixtures/table.parquet diff --git a/arrow/CHANGELOG.md b/arrow/CHANGELOG.md new file mode 100644 index 00000000..1993a313 --- /dev/null +++ b/arrow/CHANGELOG.md @@ -0,0 +1,2 @@ +# @dpkit/arrow + diff --git a/arrow/OVERVIEW.md b/arrow/OVERVIEW.md new file mode 100644 index 00000000..8425e66a --- /dev/null +++ b/arrow/OVERVIEW.md @@ -0,0 +1,6 @@ +# @dpkit/arrow + +:::note +This overview is under development. +::: + diff --git a/arrow/README.md b/arrow/README.md new file mode 100644 index 00000000..6a3d5f20 --- /dev/null +++ b/arrow/README.md @@ -0,0 +1,3 @@ +# @dpkit/arrow + +dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). diff --git a/arrow/index.ts b/arrow/index.ts new file mode 100644 index 00000000..14397550 --- /dev/null +++ b/arrow/index.ts @@ -0,0 +1,2 @@ +export * from "./table/index.js" +export * from "./plugin.js" diff --git a/arrow/package.json b/arrow/package.json new file mode 100644 index 00000000..2798ac2c --- /dev/null +++ b/arrow/package.json @@ -0,0 +1,36 @@ +{ + "name": "@dpkit/arrow", + "type": "module", + "main": "build/index.js", + "version": "0.1.0", + "license": "MIT", + "author": "Evgeny Karev", + "repository": "https://github.com/datisthq/dpkit", + "description": "Fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames", + "keywords": [ + "data", + "polars", + "dataframe", + "datapackage", + "tableschema", + "typescript", + "validation", + "quality", + "fair", + "parquet" + ], + "scripts": { + "build": "tsc --build" + }, + "dependencies": { + "@dpkit/core": "workspace:*", + "@dpkit/file": "workspace:*", + "@dpkit/table": "workspace:*", + "csv-sniffer": "^0.1.1", + "nodejs-polars": "^0.18.0" + }, + "devDependencies": { + "@dpkit/test": "workspace:*", + "tempy": "^3.1.0" + } +} diff --git a/arrow/plugin.ts b/arrow/plugin.ts new file mode 100644 index 00000000..16ff6396 --- /dev/null +++ b/arrow/plugin.ts @@ -0,0 +1,26 @@ +import type { Resource } from "@dpkit/core" +import { inferFormat } from "@dpkit/core" +import type { TablePlugin } from "@dpkit/table" +import type { SaveTableOptions, Table } from "@dpkit/table" +import { loadArrowTable, saveArrowTable } from "./table/index.js" + +export class ArrowPlugin implements TablePlugin { + async loadTable(resource: Partial) { + const isArrow = getIsArrow(resource) + if (!isArrow) return undefined + + return await loadArrowTable(resource) + } + + async saveTable(table: Table, options: SaveTableOptions) { + const isArrow = getIsArrow({ path: options.path }) + if (!isArrow) return undefined + + return await saveArrowTable(table, options) + } +} + +function getIsArrow(resource: Partial) { + const format = inferFormat(resource) + return format === "arrow" || format === "feather" +} diff --git a/arrow/table.arrow b/arrow/table.arrow new file mode 100644 index 0000000000000000000000000000000000000000..83e3baa0d8efa7d35d0ad837db0a099ac3876290 GIT binary patch literal 777 zcmd6my-EX75QR^YB?et&jVUbm0W7q$GXZ-cjkRFVfTpprOy?W;7J{Xvk6>vhh*(*O zm530(GdE#_D5Uf(^K<8(bMNdV+w1rD54NQVxRI1$@8q4xYxrfYsD;n;K|QC^;xV(1 z--}FoWp9(b#5S-Ru236Rp|#*!DSg4qsQRAK;n~17Yqy9c7TU(|+D~|OHF?tA!=u#q zJvyJ~bH+p?_1{pg_2?sq@f7;Be?f4+zAs^wJcD1b?8t9E51;=RtT4LaD>qx0RVilX zxy|F}y4ri&o#x%Dwpg|VZ7@1M9iE?rpoxFJy?(j6TujfXCT9AVHay!daR*DY6|-tH ctqe{c^SWctct}CxX`F?B`2TsNw_bb#-%bW#yZ`_I literal 0 HcmV?d00001 diff --git a/arrow/table/fixtures/table.arrow b/arrow/table/fixtures/table.arrow new file mode 100644 index 0000000000000000000000000000000000000000..83e3baa0d8efa7d35d0ad837db0a099ac3876290 GIT binary patch literal 777 zcmd6my-EX75QR^YB?et&jVUbm0W7q$GXZ-cjkRFVfTpprOy?W;7J{Xvk6>vhh*(*O zm530(GdE#_D5Uf(^K<8(bMNdV+w1rD54NQVxRI1$@8q4xYxrfYsD;n;K|QC^;xV(1 z--}FoWp9(b#5S-Ru236Rp|#*!DSg4qsQRAK;n~17Yqy9c7TU(|+D~|OHF?tA!=u#q zJvyJ~bH+p?_1{pg_2?sq@f7;Be?f4+zAs^wJcD1b?8t9E51;=RtT4LaD>qx0RVilX zxy|F}y4ri&o#x%Dwpg|VZ7@1M9iE?rpoxFJy?(j6TujfXCT9AVHay!daR*DY6|-tH ctqe{c^SWctct}CxX`F?B`2TsNw_bb#-%bW#yZ`_I literal 0 HcmV?d00001 diff --git a/arrow/table/index.ts b/arrow/table/index.ts new file mode 100644 index 00000000..70801a71 --- /dev/null +++ b/arrow/table/index.ts @@ -0,0 +1,2 @@ +export { loadArrowTable } from "./load.js" +export { saveArrowTable } from "./save.js" diff --git a/arrow/table/load.spec.ts b/arrow/table/load.spec.ts new file mode 100644 index 00000000..f2fee7dc --- /dev/null +++ b/arrow/table/load.spec.ts @@ -0,0 +1,64 @@ +import { getTempFilePath } from "@dpkit/file" +import { useRecording } from "@dpkit/test" +import { DataFrame } from "nodejs-polars" +import { describe, expect, it } from "vitest" +import { loadArrowTable } from "./load.js" + +describe("loadArrowTable", () => { + useRecording() + + describe("file variations", () => { + it("should load local file", async () => { + const path = getTempFilePath() + DataFrame({ id: [1, 2], name: ["english", "中文"] }).writeIPC(path) + + const table = await loadArrowTable({ path }) + expect((await table.collect()).toRecords()).toEqual([ + { id: 1, name: "english" }, + { id: 2, name: "中文" }, + ]) + }) + + it("should load local file (multipart)", async () => { + const path1 = getTempFilePath() + const path2 = getTempFilePath() + DataFrame({ id: [1, 2], name: ["english", "中文"] }).writeIPC(path1) + DataFrame({ id: [1, 2], name: ["english", "中文"] }).writeIPC(path2) + + const table = await loadArrowTable({ path: [path1, path2] }) + expect((await table.collect()).toRecords()).toEqual([ + { id: 1, name: "english" }, + { id: 2, name: "中文" }, + { id: 1, name: "english" }, + { id: 2, name: "中文" }, + ]) + }) + + it.skip("should load remote file", async () => { + const table = await loadArrowTable({ + path: "https://github.com/frictionlessdata/frictionless-py/raw/refs/heads/main/data/table.arrow", + }) + + expect((await table.collect()).toRecords()).toEqual([ + { id: 1, name: "english" }, + { id: 2, name: "中国人" }, + ]) + }) + + it.skip("should load remote file (multipart)", async () => { + const table = await loadArrowTable({ + path: [ + "https://github.com/frictionlessdata/frictionless-py/raw/refs/heads/main/data/table.arrow", + "https://github.com/frictionlessdata/frictionless-py/raw/refs/heads/main/data/table.arrow", + ], + }) + + expect((await table.collect()).toRecords()).toEqual([ + { id: 1, name: "english" }, + { id: 2, name: "中国人" }, + { id: 1, name: "english" }, + { id: 2, name: "中国人" }, + ]) + }) + }) +}) diff --git a/arrow/table/load.ts b/arrow/table/load.ts new file mode 100644 index 00000000..456defe3 --- /dev/null +++ b/arrow/table/load.ts @@ -0,0 +1,21 @@ +import type { Resource } from "@dpkit/core" +import { prefetchFiles } from "@dpkit/file" +import { concat } from "nodejs-polars" +import { DataFrame } from "nodejs-polars" +import { scanIPC } from "nodejs-polars" + +export async function loadArrowTable(resource: Partial) { + const [firstPath, ...restPaths] = await prefetchFiles(resource.path) + + if (!firstPath) { + return DataFrame().lazy() + } + + let table = scanIPC(firstPath) + + if (restPaths.length) { + table = concat([table, ...restPaths.map(path => scanIPC(path))]) + } + + return table +} diff --git a/arrow/table/save.spec.ts b/arrow/table/save.spec.ts new file mode 100644 index 00000000..91a9a1e5 --- /dev/null +++ b/arrow/table/save.spec.ts @@ -0,0 +1,19 @@ +import { DataFrame } from "nodejs-polars" +import { temporaryFileTask } from "tempy" +import { describe, expect, it } from "vitest" +import { saveArrowTable } from "./save.js" + +describe("saveArrowTable", () => { + it("should save table to Arrow file", async () => { + await temporaryFileTask(async path => { + const table = DataFrame({ + id: [1.0, 2.0, 3.0], + name: ["Alice", "Bob", "Charlie"], + }).lazy() + + await saveArrowTable(table, { path }) + + expect(true).toBe(true) + }) + }) +}) diff --git a/arrow/table/save.ts b/arrow/table/save.ts new file mode 100644 index 00000000..cda5f021 --- /dev/null +++ b/arrow/table/save.ts @@ -0,0 +1,7 @@ +import type { SaveTableOptions, Table } from "@dpkit/table" + +export async function saveArrowTable(_table: Table, options: SaveTableOptions) { + // TODO: implement + + return options.path +} diff --git a/arrow/tsconfig.json b/arrow/tsconfig.json new file mode 100644 index 00000000..7be40230 --- /dev/null +++ b/arrow/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../tsconfig.json", + "include": ["**/*.ts"], + "exclude": ["**/build/"], + "compilerOptions": { + "outDir": "build", + "noEmit": false, + "declaration": true + } +} diff --git a/arrow/typedoc.json b/arrow/typedoc.json new file mode 100644 index 00000000..fc33b815 --- /dev/null +++ b/arrow/typedoc.json @@ -0,0 +1,5 @@ +{ + "entryPoints": ["index.ts"], + "projectDocuments": ["CHANGELOG.md", "OVERVIEW.md"], + "skipErrorChecking": true +} diff --git a/dpkit/package.json b/dpkit/package.json index 746c10d6..94d71874 100644 --- a/dpkit/package.json +++ b/dpkit/package.json @@ -20,6 +20,7 @@ "cli" ], "dependencies": { + "@dpkit/arrow": "workspace:*", "@dpkit/camtrap": "workspace:*", "@dpkit/ckan": "workspace:*", "@dpkit/csv": "workspace:*", diff --git a/dpkit/plugin.ts b/dpkit/plugin.ts index 29a9b717..43ab813a 100644 --- a/dpkit/plugin.ts +++ b/dpkit/plugin.ts @@ -1,3 +1,4 @@ +import { ArrowPlugin } from "@dpkit/arrow" import { CkanPlugin } from "@dpkit/ckan" import { CsvPlugin } from "@dpkit/csv" import { DatahubPlugin } from "@dpkit/datahub" @@ -29,6 +30,7 @@ dpkit.register(FolderPlugin) dpkit.register(ZipPlugin) // Table functions +dpkit.register(ArrowPlugin) dpkit.register(CsvPlugin) dpkit.register(JsonPlugin) dpkit.register(InlinePlugin) diff --git a/parquet/table/fixtures/table.parquet b/parquet/table/fixtures/table.parquet new file mode 100644 index 0000000000000000000000000000000000000000..4dd3202a7cbacc61bd422341ef8f9753ca4c3fa9 GIT binary patch literal 897 zcmaJ=!D`z;5FM$)aUjss3JH7=3khv;jNOJ(iY~eJkVELTBxdbh+uKSjb+sxn#?b%h zImg~hpnuR~KOy~(&aUOuYLo6k%+9&y4so0~0__;LECQ%x5lXCwer`|J@v@+AjyaOg*Y zV!1d32!ps6_m5^h62t^z3m}*bFT=|i!fqOMw}ztb)?x?{_s|y*TRZyc^~ixEyQYq= zLWT5M8tvaXi}o77ZF=~_3j^#IbxNi89S6#@;Va?or<4*Zt(L`KX)YzcO1yTj;?VYbB=z7tM59FjHt;%8F)kqM2UW z1|npQW;TV zIC5cO!{=_@&4cVHjs_=#7n_Y~BMti46}?zP^lZoOak(^$LM2Uu#Q9C0Olq0&WcU;w KKLR+%pYJzCRqi|h literal 0 HcmV?d00001 diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a9b46c7d..2422d4be 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -39,6 +39,31 @@ importers: specifier: 3.1.4 version: 3.1.4(@types/debug@4.1.12)(@types/node@22.15.31)(@vitest/ui@3.1.4)(yaml@2.7.1) + arrow: + dependencies: + '@dpkit/core': + specifier: workspace:* + version: link:../core + '@dpkit/file': + specifier: workspace:* + version: link:../file + '@dpkit/table': + specifier: workspace:* + version: link:../table + csv-sniffer: + specifier: ^0.1.1 + version: 0.1.1 + nodejs-polars: + specifier: ^0.18.0 + version: 0.18.0 + devDependencies: + '@dpkit/test': + specifier: workspace:* + version: link:../test + tempy: + specifier: ^3.1.0 + version: 3.1.0 + bin: {} camtrap: @@ -149,6 +174,9 @@ importers: dpkit: dependencies: + '@dpkit/arrow': + specifier: workspace:* + version: link:../arrow '@dpkit/camtrap': specifier: workspace:* version: link:../camtrap diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index ab74b732..1c30c515 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,5 +1,6 @@ dangerouslyAllowAllBuilds: true packages: + - arrow - bin - camtrap - ckan From 9ea207b1e99d19af27c81279750cfee3271c80b5 Mon Sep 17 00:00:00 2001 From: roll Date: Tue, 5 Aug 2025 12:20:08 +0100 Subject: [PATCH 12/80] Implemented save to arrow/parquet --- arrow/table/save.spec.ts | 12 +++++++++--- arrow/table/save.ts | 9 +++++++-- parquet/table/save.spec.ts | 12 +++++++++--- parquet/table/save.ts | 8 ++++++-- 4 files changed, 31 insertions(+), 10 deletions(-) diff --git a/arrow/table/save.spec.ts b/arrow/table/save.spec.ts index 91a9a1e5..e630af48 100644 --- a/arrow/table/save.spec.ts +++ b/arrow/table/save.spec.ts @@ -1,19 +1,25 @@ import { DataFrame } from "nodejs-polars" import { temporaryFileTask } from "tempy" import { describe, expect, it } from "vitest" +import { loadArrowTable } from "./load.js" import { saveArrowTable } from "./save.js" describe("saveArrowTable", () => { it("should save table to Arrow file", async () => { await temporaryFileTask(async path => { - const table = DataFrame({ + const source = DataFrame({ id: [1.0, 2.0, 3.0], name: ["Alice", "Bob", "Charlie"], }).lazy() - await saveArrowTable(table, { path }) + await saveArrowTable(source, { path }) - expect(true).toBe(true) + const target = await loadArrowTable({ path }) + expect((await target.collect()).toRecords()).toEqual([ + { id: 1.0, name: "Alice" }, + { id: 2.0, name: "Bob" }, + { id: 3.0, name: "Charlie" }, + ]) }) }) }) diff --git a/arrow/table/save.ts b/arrow/table/save.ts index cda5f021..2a8135e5 100644 --- a/arrow/table/save.ts +++ b/arrow/table/save.ts @@ -1,7 +1,12 @@ import type { SaveTableOptions, Table } from "@dpkit/table" -export async function saveArrowTable(_table: Table, options: SaveTableOptions) { - // TODO: implement +// TODO: so currently, there is not streaming method? +// TODO: so currently, nodejs-polars uses sync sink/write functions?? + +export async function saveArrowTable(table: Table, options: SaveTableOptions) { + const df = await table.collect() + + df.writeIPC(options?.path) return options.path } diff --git a/parquet/table/save.spec.ts b/parquet/table/save.spec.ts index fda8cbdf..d024d32d 100644 --- a/parquet/table/save.spec.ts +++ b/parquet/table/save.spec.ts @@ -1,19 +1,25 @@ import { DataFrame } from "nodejs-polars" import { temporaryFileTask } from "tempy" import { describe, expect, it } from "vitest" +import { loadParquetTable } from "./load.js" import { saveParquetTable } from "./save.js" describe("saveParquetTable", () => { it("should save table to Parquet file", async () => { await temporaryFileTask(async path => { - const table = DataFrame({ + const source = DataFrame({ id: [1.0, 2.0, 3.0], name: ["Alice", "Bob", "Charlie"], }).lazy() - await saveParquetTable(table, { path }) + await saveParquetTable(source, { path }) - expect(true).toBe(true) + const target = await loadParquetTable({ path }) + expect((await target.collect()).toRecords()).toEqual([ + { id: 1.0, name: "Alice" }, + { id: 2.0, name: "Bob" }, + { id: 3.0, name: "Charlie" }, + ]) }) }) }) diff --git a/parquet/table/save.ts b/parquet/table/save.ts index 6ae46947..f0c3fb44 100644 --- a/parquet/table/save.ts +++ b/parquet/table/save.ts @@ -1,10 +1,14 @@ import type { SaveTableOptions, Table } from "@dpkit/table" +// TODO: so currently, nodejs-polars uses sync sink/write functions?? + export async function saveParquetTable( - _table: Table, + table: Table, options: SaveTableOptions, ) { - // TODO: implement + table.sinkParquet(options?.path, { + maintainOrder: true, + }) return options.path } From a1e084c787dc0590d8f820b8260fcdad9dec9c47 Mon Sep 17 00:00:00 2001 From: roll Date: Tue, 5 Aug 2025 12:21:51 +0100 Subject: [PATCH 13/80] Added arrow/parquet to the docs --- docs/astro.config.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/astro.config.ts b/docs/astro.config.ts index 4d1fa973..d7cfe251 100644 --- a/docs/astro.config.ts +++ b/docs/astro.config.ts @@ -5,6 +5,7 @@ import starlightTypeDoc from "starlight-typedoc" const PACKAGES = { dpkit: "../dpkit", + "@dpkit/arrow": "../arrow", "@dpkit/camtrap": "../camtrap", "@dpkit/ckan": "../ckan", "@dpkit/core": "../core", @@ -13,6 +14,7 @@ const PACKAGES = { "@dpkit/file": "../file", "@dpkit/github": "../github", "@dpkit/inline": "../inline", + "@dpkit/parquet": "../parquet", "@dpkit/table": "../table", "@dpkit/zenodo": "../zenodo", "@dpkit/zip": "../zip", From ae79e48fdce0d37b29919e73d0da3ba9423dac2a Mon Sep 17 00:00:00 2001 From: roll Date: Wed, 6 Aug 2025 09:06:44 +0100 Subject: [PATCH 14/80] Implemented jsonl load --- json/plugin.ts | 35 +- .../recording.har | 298 ++++++++++++++++++ .../recording.har | 156 +++++++++ json/table/index.ts | 4 +- json/table/load.spec.ts | 65 +++- json/table/load.ts | 33 +- json/table/save.ts | 6 + parquet/table/load.ts | 1 - 8 files changed, 570 insertions(+), 28 deletions(-) create mode 100644 json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har create mode 100644 json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har diff --git a/json/plugin.ts b/json/plugin.ts index 9e59ee29..68f33c90 100644 --- a/json/plugin.ts +++ b/json/plugin.ts @@ -2,25 +2,42 @@ import type { Resource } from "@dpkit/core" import { inferFormat } from "@dpkit/core" import type { TablePlugin } from "@dpkit/table" import type { SaveTableOptions, Table } from "@dpkit/table" -import { loadJsonTable, saveJsonTable } from "./table/index.js" +import { loadJsonTable, loadJsonlTable } from "./table/index.js" +import { saveJsonTable, saveJsonlTable } from "./table/index.js" export class JsonPlugin implements TablePlugin { async loadTable(resource: Partial) { - const isJson = getIsJson(resource) - if (!isJson) return undefined + const formatInfo = getFormatInfo(resource) - return await loadJsonTable(resource) + if (formatInfo.isJson) { + return await loadJsonTable(resource) + } + + if (formatInfo.isJsonl) { + return await loadJsonlTable(resource) + } + + return undefined } async saveTable(table: Table, options: SaveTableOptions) { - const isJson = getIsJson({ path: options.path }) - if (!isJson) return undefined + const formatInfo = getFormatInfo({ path: options.path }) + + if (formatInfo.isJson) { + return await saveJsonTable(table, options) + } + + if (formatInfo.isJsonl) { + return await saveJsonlTable(table, options) + } - return await saveJsonTable(table, options) + return undefined } } -function getIsJson(resource: Partial) { +function getFormatInfo(resource: Partial) { const format = inferFormat(resource) - return ["json", "jsonl", "ndjson"].includes(format ?? "") + const isJson = format === "json" + const isJsonl = format === "jsonl" || format === "ndjson" + return { isJson, isJsonl } } diff --git a/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har b/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har new file mode 100644 index 00000000..1c43f251 --- /dev/null +++ b/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har @@ -0,0 +1,298 @@ +{ + "log": { + "_recordingName": "should load remote file (multipart)", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "d30ef9a2f7ea66a64aee2d7670e18212", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [], + "headersSize": 118, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://raw.githubusercontent.com/frictionlessdata/frictionless-py/refs/heads/main/data/table.jsonl" + }, + "response": { + "bodySize": 63, + "content": { + "mimeType": "text/plain; charset=utf-8", + "size": 63, + "text": "{\"id\":1,\"name\":\"english\"}\n{\"id\":2,\"name\":\"中国人\"}\n" + }, + "cookies": [], + "headers": [ + { + "name": "accept-ranges", + "value": "bytes" + }, + { + "name": "access-control-allow-origin", + "value": "*" + }, + { + "name": "cache-control", + "value": "max-age=300" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "name": "content-encoding", + "value": "gzip" + }, + { + "name": "content-length", + "value": "63" + }, + { + "name": "content-security-policy", + "value": "default-src 'none'; style-src 'unsafe-inline'; sandbox" + }, + { + "name": "content-type", + "value": "text/plain; charset=utf-8" + }, + { + "name": "cross-origin-resource-policy", + "value": "cross-origin" + }, + { + "name": "date", + "value": "Wed, 06 Aug 2025 08:06:15 GMT" + }, + { + "name": "etag", + "value": "W/\"645c6d84ada374adbb879fdf78d3dedcd90e40bc81e8eeb882d1022ceff52f8f\"" + }, + { + "name": "expires", + "value": "Wed, 06 Aug 2025 08:11:15 GMT" + }, + { + "name": "source-age", + "value": "0" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000" + }, + { + "name": "vary", + "value": "Authorization,Accept-Encoding" + }, + { + "name": "via", + "value": "1.1 varnish" + }, + { + "name": "x-cache", + "value": "HIT" + }, + { + "name": "x-cache-hits", + "value": "1" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "x-fastly-request-id", + "value": "c81eaa33289b8037ae1180df4fcc28a0501b7e2a" + }, + { + "name": "x-frame-options", + "value": "deny" + }, + { + "name": "x-github-request-id", + "value": "09D6:12E01:6E3565:7BCADF:68930CED" + }, + { + "name": "x-served-by", + "value": "cache-lis1490042-LIS" + }, + { + "name": "x-timer", + "value": "S1754467575.142432,VS0,VE1" + }, + { + "name": "x-xss-protection", + "value": "1; mode=block" + } + ], + "headersSize": 897, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2025-08-06T08:06:15.107Z", + "time": 60, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 60 + } + }, + { + "_id": "d30ef9a2f7ea66a64aee2d7670e18212", + "_order": 1, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [], + "headersSize": 118, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://raw.githubusercontent.com/frictionlessdata/frictionless-py/refs/heads/main/data/table.jsonl" + }, + "response": { + "bodySize": 63, + "content": { + "mimeType": "text/plain; charset=utf-8", + "size": 63, + "text": "{\"id\":1,\"name\":\"english\"}\n{\"id\":2,\"name\":\"中国人\"}\n" + }, + "cookies": [], + "headers": [ + { + "name": "accept-ranges", + "value": "bytes" + }, + { + "name": "access-control-allow-origin", + "value": "*" + }, + { + "name": "cache-control", + "value": "max-age=300" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "name": "content-encoding", + "value": "gzip" + }, + { + "name": "content-length", + "value": "63" + }, + { + "name": "content-security-policy", + "value": "default-src 'none'; style-src 'unsafe-inline'; sandbox" + }, + { + "name": "content-type", + "value": "text/plain; charset=utf-8" + }, + { + "name": "cross-origin-resource-policy", + "value": "cross-origin" + }, + { + "name": "date", + "value": "Wed, 06 Aug 2025 08:06:15 GMT" + }, + { + "name": "etag", + "value": "W/\"645c6d84ada374adbb879fdf78d3dedcd90e40bc81e8eeb882d1022ceff52f8f\"" + }, + { + "name": "expires", + "value": "Wed, 06 Aug 2025 08:11:15 GMT" + }, + { + "name": "source-age", + "value": "0" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000" + }, + { + "name": "vary", + "value": "Authorization,Accept-Encoding" + }, + { + "name": "via", + "value": "1.1 varnish" + }, + { + "name": "x-cache", + "value": "HIT" + }, + { + "name": "x-cache-hits", + "value": "1" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "x-fastly-request-id", + "value": "2c8497f2b7e529d0bf70ea4cb01b3c949de27a37" + }, + { + "name": "x-frame-options", + "value": "deny" + }, + { + "name": "x-github-request-id", + "value": "09D6:12E01:6E3565:7BCADF:68930CED" + }, + { + "name": "x-served-by", + "value": "cache-lis1490025-LIS" + }, + { + "name": "x-timer", + "value": "S1754467575.242208,VS0,VE1" + }, + { + "name": "x-xss-protection", + "value": "1; mode=block" + } + ], + "headersSize": 897, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2025-08-06T08:06:15.107Z", + "time": 161, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 161 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har b/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har new file mode 100644 index 00000000..d148771d --- /dev/null +++ b/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har @@ -0,0 +1,156 @@ +{ + "log": { + "_recordingName": "should load remote file", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "d30ef9a2f7ea66a64aee2d7670e18212", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [], + "headersSize": 118, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://raw.githubusercontent.com/frictionlessdata/frictionless-py/refs/heads/main/data/table.jsonl" + }, + "response": { + "bodySize": 63, + "content": { + "mimeType": "text/plain; charset=utf-8", + "size": 63, + "text": "{\"id\":1,\"name\":\"english\"}\n{\"id\":2,\"name\":\"中国人\"}\n" + }, + "cookies": [], + "headers": [ + { + "name": "accept-ranges", + "value": "bytes" + }, + { + "name": "access-control-allow-origin", + "value": "*" + }, + { + "name": "cache-control", + "value": "max-age=300" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "name": "content-encoding", + "value": "gzip" + }, + { + "name": "content-length", + "value": "63" + }, + { + "name": "content-security-policy", + "value": "default-src 'none'; style-src 'unsafe-inline'; sandbox" + }, + { + "name": "content-type", + "value": "text/plain; charset=utf-8" + }, + { + "name": "cross-origin-resource-policy", + "value": "cross-origin" + }, + { + "name": "date", + "value": "Wed, 06 Aug 2025 08:06:15 GMT" + }, + { + "name": "etag", + "value": "W/\"645c6d84ada374adbb879fdf78d3dedcd90e40bc81e8eeb882d1022ceff52f8f\"" + }, + { + "name": "expires", + "value": "Wed, 06 Aug 2025 08:11:15 GMT" + }, + { + "name": "source-age", + "value": "0" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000" + }, + { + "name": "vary", + "value": "Authorization,Accept-Encoding" + }, + { + "name": "via", + "value": "1.1 varnish" + }, + { + "name": "x-cache", + "value": "MISS" + }, + { + "name": "x-cache-hits", + "value": "0" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "x-fastly-request-id", + "value": "61f9a6c0996da7f5a6ad323077c7818e99f96a04" + }, + { + "name": "x-frame-options", + "value": "deny" + }, + { + "name": "x-github-request-id", + "value": "09D6:12E01:6E3565:7BCADF:68930CED" + }, + { + "name": "x-served-by", + "value": "cache-lis1490042-LIS" + }, + { + "name": "x-timer", + "value": "S1754467575.889830,VS0,VE180" + }, + { + "name": "x-xss-protection", + "value": "1; mode=block" + } + ], + "headersSize": 900, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2025-08-06T08:06:14.722Z", + "time": 380, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 380 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/json/table/index.ts b/json/table/index.ts index 916f2c9a..0b5c9345 100644 --- a/json/table/index.ts +++ b/json/table/index.ts @@ -1,2 +1,2 @@ -export { loadJsonTable } from "./load.js" -export { saveJsonTable } from "./save.js" +export { loadJsonTable, loadJsonlTable } from "./load.js" +export { saveJsonTable, saveJsonlTable } from "./save.js" diff --git a/json/table/load.spec.ts b/json/table/load.spec.ts index a6d1cb34..699b4ade 100644 --- a/json/table/load.spec.ts +++ b/json/table/load.spec.ts @@ -1,24 +1,61 @@ import { writeTempFile } from "@dpkit/file" -//import { useRecording } from "@dpkit/test" +import { useRecording } from "@dpkit/test" import { describe, expect, it } from "vitest" -import { loadJsonTable } from "./load.js" +import { loadJsonlTable } from "./load.js" -describe("loadJsonTable", () => { - //useRecording() +describe("loadJsonlTable", () => { + useRecording() describe("file variations", () => { it("should load local file", async () => { - const path = await writeTempFile( - JSON.stringify([ - { id: 1, name: "english" }, - { id: 2, name: "中文" }, - ]), - ) - - const table = await loadJsonTable({ path }) + const body = '{"id":1,"name":"english"}\n{"id":2,"name":"中文"}' + const path = await writeTempFile(body) + + const table = await loadJsonlTable({ path }) + expect((await table.collect()).toRecords()).toEqual([ + { id: 1, name: "english" }, + { id: 2, name: "中文" }, + ]) + }) + + it("should load local file (multipart)", async () => { + const body = '{"id":1,"name":"english"}\n{"id":2,"name":"中文"}' + const path1 = await writeTempFile(body) + const path2 = await writeTempFile(body) + + const table = await loadJsonlTable({ path: [path1, path2] }) + expect((await table.collect()).toRecords()).toEqual([ + { id: 1, name: "english" }, + { id: 2, name: "中文" }, + { id: 1, name: "english" }, + { id: 2, name: "中文" }, + ]) + }) + + it("should load remote file", async () => { + const table = await loadJsonlTable({ + path: "https://raw.githubusercontent.com/frictionlessdata/frictionless-py/refs/heads/main/data/table.jsonl", + }) + + expect((await table.collect()).toRecords()).toEqual([ + { id: 1, name: "english" }, + { id: 2, name: "中国人" }, + ]) + }) + + it("should load remote file (multipart)", async () => { + const table = await loadJsonlTable({ + path: [ + "https://raw.githubusercontent.com/frictionlessdata/frictionless-py/refs/heads/main/data/table.jsonl", + "https://raw.githubusercontent.com/frictionlessdata/frictionless-py/refs/heads/main/data/table.jsonl", + ], + }) + expect((await table.collect()).toRecords()).toEqual([ - //{ id: "1", name: "english" }, - //{ id: "2", name: "中文" }, + { id: 1, name: "english" }, + { id: 2, name: "中国人" }, + { id: 1, name: "english" }, + { id: 2, name: "中国人" }, ]) }) }) diff --git a/json/table/load.ts b/json/table/load.ts index 2ae96c99..ccfebb76 100644 --- a/json/table/load.ts +++ b/json/table/load.ts @@ -1,6 +1,35 @@ import type { Resource } from "@dpkit/core" +import { prefetchFiles } from "@dpkit/file" +import { concat } from "nodejs-polars" import { DataFrame } from "nodejs-polars" +import { readJSON, scanJson } from "nodejs-polars" -export async function loadJsonTable(_resource: Partial) { - return DataFrame().lazy() +export async function loadJsonTable(resource: Partial) { + const [firstPath, ...restPaths] = await prefetchFiles(resource.path) + + if (!firstPath) { + return DataFrame().lazy() + } + + let table = readJSON(firstPath).lazy() + if (restPaths.length) { + table = concat([table, ...restPaths.map(path => readJSON(path).lazy())]) + } + + return table +} + +export async function loadJsonlTable(resource: Partial) { + const [firstPath, ...restPaths] = await prefetchFiles(resource.path) + + if (!firstPath) { + return DataFrame().lazy() + } + + let table = scanJson(firstPath) + if (restPaths.length) { + table = concat([table, ...restPaths.map(path => scanJson(path))]) + } + + return table } diff --git a/json/table/save.ts b/json/table/save.ts index df755590..843c2bc1 100644 --- a/json/table/save.ts +++ b/json/table/save.ts @@ -5,3 +5,9 @@ export async function saveJsonTable(_table: Table, options: SaveTableOptions) { return options.path } + +export async function saveJsonlTable(_table: Table, options: SaveTableOptions) { + // TODO: implement + + return options.path +} diff --git a/parquet/table/load.ts b/parquet/table/load.ts index a415dda3..efd67d80 100644 --- a/parquet/table/load.ts +++ b/parquet/table/load.ts @@ -12,7 +12,6 @@ export async function loadParquetTable(resource: Partial) { } let table = scanParquet(firstPath) - if (restPaths.length) { table = concat([table, ...restPaths.map(path => scanParquet(path))]) } From b34c81189422c362ab201323e2eb24dac0a1b3dd Mon Sep 17 00:00:00 2001 From: roll Date: Wed, 6 Aug 2025 09:11:18 +0100 Subject: [PATCH 15/80] Implemented save jsonl table --- json/table/save.spec.ts | 27 ++++++++++++++------------- json/table/save.ts | 8 ++++++-- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/json/table/save.spec.ts b/json/table/save.spec.ts index 9ac46690..1eeea9b7 100644 --- a/json/table/save.spec.ts +++ b/json/table/save.spec.ts @@ -1,22 +1,23 @@ -//import { readFile } from "node:fs/promises" +import { readFile } from "node:fs/promises" +import { getTempFilePath } from "@dpkit/file" import { DataFrame } from "nodejs-polars" -import { temporaryFileTask } from "tempy" import { describe, expect, it } from "vitest" -import { saveJsonTable } from "./save.js" +import { saveJsonlTable } from "./save.js" describe("saveJsonTable", () => { it("should save table to JSON file", async () => { - await temporaryFileTask(async path => { - const table = DataFrame({ - id: [1.0, 2.0, 3.0], - name: ["Alice", "Bob", "Charlie"], - }).lazy() + const path = getTempFilePath() - await saveJsonTable(table, { path }) + const table = DataFrame({ + id: [1.0, 2.0], + name: ["english", "中文"], + }).lazy() - //const content = await readFile(path, "utf-8") - //expect(content).toEqual("id,name\n1.0,Alice\n2.0,Bob\n3.0,Charlie\n") - expect(true).toBe(true) - }) + await saveJsonlTable(table, { path }) + + const content = await readFile(path, "utf-8") + expect(content).toEqual( + '{"id":1.0,"name":"english"}\n{"id":2.0,"name":"中文"}\n', + ) }) }) diff --git a/json/table/save.ts b/json/table/save.ts index 843c2bc1..7f64b9ee 100644 --- a/json/table/save.ts +++ b/json/table/save.ts @@ -6,8 +6,12 @@ export async function saveJsonTable(_table: Table, options: SaveTableOptions) { return options.path } -export async function saveJsonlTable(_table: Table, options: SaveTableOptions) { - // TODO: implement +export async function saveJsonlTable(table: Table, options: SaveTableOptions) { + const df = await table.collect() + + df.writeJSON(options?.path, { + format: "lines", + }) return options.path } From 68547ae67d02acf7a1bbfb52e8088bdf23ef698e Mon Sep 17 00:00:00 2001 From: roll Date: Wed, 6 Aug 2025 11:38:28 +0100 Subject: [PATCH 16/80] Loading json dialect support --- arrow/table/load.ts | 2 - csv/table/load.ts | 11 +- file/file/index.ts | 1 + file/file/load.ts | 7 + .../recording.har | 40 +++--- .../recording.har | 20 +-- json/table/load.spec.ts | 122 +++++++++++++++++- json/table/load.ts | 61 +++++++-- parquet/table/load.ts | 1 - 9 files changed, 216 insertions(+), 49 deletions(-) create mode 100644 file/file/load.ts diff --git a/arrow/table/load.ts b/arrow/table/load.ts index 456defe3..931b0057 100644 --- a/arrow/table/load.ts +++ b/arrow/table/load.ts @@ -6,13 +6,11 @@ import { scanIPC } from "nodejs-polars" export async function loadArrowTable(resource: Partial) { const [firstPath, ...restPaths] = await prefetchFiles(resource.path) - if (!firstPath) { return DataFrame().lazy() } let table = scanIPC(firstPath) - if (restPaths.length) { table = concat([table, ...restPaths.map(path => scanIPC(path))]) } diff --git a/csv/table/load.ts b/csv/table/load.ts index 64adecb9..db11ee7c 100644 --- a/csv/table/load.ts +++ b/csv/table/load.ts @@ -11,18 +11,17 @@ import { Utf8, concat } from "nodejs-polars" // (consult with the Data Package Working Group) export async function loadCsvTable(resource: Partial) { + const [firstPath, ...restPaths] = await prefetchFiles(resource.path) + if (!firstPath) { + return DataFrame().lazy() + } + const dialect = typeof resource.dialect === "string" ? await loadDialect(resource.dialect) : resource.dialect - const [firstPath, ...restPaths] = await prefetchFiles(resource.path) const scanOptions = getScanOptions(resource, dialect) - - if (!firstPath) { - return DataFrame().lazy() - } - let table = scanCSV(firstPath, scanOptions) const polarsSchema = Object.fromEntries( diff --git a/file/file/index.ts b/file/file/index.ts index 05ed5664..d4f875da 100644 --- a/file/file/index.ts +++ b/file/file/index.ts @@ -1,3 +1,4 @@ +export { loadFile } from "./load.js" export { saveFileToDisc } from "./save.js" export { getTempFilePath, writeTempFile } from "./temp.js" export { assertLocalPathVacant, isLocalPathExist } from "./path.js" diff --git a/file/file/load.ts b/file/file/load.ts new file mode 100644 index 00000000..3a75d4c3 --- /dev/null +++ b/file/file/load.ts @@ -0,0 +1,7 @@ +import { buffer } from "node:stream/consumers" +import { loadFileStream } from "../stream/index.js" + +export async function loadFile(path: string) { + const stream = await loadFileStream(path) + return await buffer(stream) +} diff --git a/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har b/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har index 1c43f251..e0cbca8e 100644 --- a/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har +++ b/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har @@ -68,7 +68,7 @@ }, { "name": "date", - "value": "Wed, 06 Aug 2025 08:06:15 GMT" + "value": "Wed, 06 Aug 2025 10:37:49 GMT" }, { "name": "etag", @@ -76,7 +76,7 @@ }, { "name": "expires", - "value": "Wed, 06 Aug 2025 08:11:15 GMT" + "value": "Wed, 06 Aug 2025 10:42:49 GMT" }, { "name": "source-age", @@ -108,7 +108,7 @@ }, { "name": "x-fastly-request-id", - "value": "c81eaa33289b8037ae1180df4fcc28a0501b7e2a" + "value": "f3c975490aa17e1dbd74d2233fb691ebccfcafb2" }, { "name": "x-frame-options", @@ -116,29 +116,29 @@ }, { "name": "x-github-request-id", - "value": "09D6:12E01:6E3565:7BCADF:68930CED" + "value": "1203:1AD663:856750:9C090D:68932B31" }, { "name": "x-served-by", - "value": "cache-lis1490042-LIS" + "value": "cache-lis1490043-LIS" }, { "name": "x-timer", - "value": "S1754467575.142432,VS0,VE1" + "value": "S1754476670.572591,VS0,VE1" }, { "name": "x-xss-protection", "value": "1; mode=block" } ], - "headersSize": 897, + "headersSize": 898, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-08-06T08:06:15.107Z", - "time": 60, + "startedDateTime": "2025-08-06T10:37:49.526Z", + "time": 76, "timings": { "blocked": -1, "connect": -1, @@ -146,7 +146,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 60 + "wait": 76 } }, { @@ -210,7 +210,7 @@ }, { "name": "date", - "value": "Wed, 06 Aug 2025 08:06:15 GMT" + "value": "Wed, 06 Aug 2025 10:37:49 GMT" }, { "name": "etag", @@ -218,7 +218,7 @@ }, { "name": "expires", - "value": "Wed, 06 Aug 2025 08:11:15 GMT" + "value": "Wed, 06 Aug 2025 10:42:49 GMT" }, { "name": "source-age", @@ -250,7 +250,7 @@ }, { "name": "x-fastly-request-id", - "value": "2c8497f2b7e529d0bf70ea4cb01b3c949de27a37" + "value": "4a2ea35fadb4f8915eff775a22976f50b284e3d9" }, { "name": "x-frame-options", @@ -258,29 +258,29 @@ }, { "name": "x-github-request-id", - "value": "09D6:12E01:6E3565:7BCADF:68930CED" + "value": "1203:1AD663:856750:9C090D:68932B31" }, { "name": "x-served-by", - "value": "cache-lis1490025-LIS" + "value": "cache-lis1490041-LIS" }, { "name": "x-timer", - "value": "S1754467575.242208,VS0,VE1" + "value": "S1754476670.572731,VS0,VE1" }, { "name": "x-xss-protection", "value": "1; mode=block" } ], - "headersSize": 897, + "headersSize": 898, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-08-06T08:06:15.107Z", - "time": 161, + "startedDateTime": "2025-08-06T10:37:49.526Z", + "time": 81, "timings": { "blocked": -1, "connect": -1, @@ -288,7 +288,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 161 + "wait": 81 } } ], diff --git a/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har b/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har index d148771d..fba24c0d 100644 --- a/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har +++ b/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har @@ -68,7 +68,7 @@ }, { "name": "date", - "value": "Wed, 06 Aug 2025 08:06:15 GMT" + "value": "Wed, 06 Aug 2025 10:37:49 GMT" }, { "name": "etag", @@ -76,7 +76,7 @@ }, { "name": "expires", - "value": "Wed, 06 Aug 2025 08:11:15 GMT" + "value": "Wed, 06 Aug 2025 10:42:49 GMT" }, { "name": "source-age", @@ -96,7 +96,7 @@ }, { "name": "x-cache", - "value": "MISS" + "value": "HIT" }, { "name": "x-cache-hits", @@ -108,7 +108,7 @@ }, { "name": "x-fastly-request-id", - "value": "61f9a6c0996da7f5a6ad323077c7818e99f96a04" + "value": "8a4493905f2a0e3f385dedc8cf3cf650986ba7e8" }, { "name": "x-frame-options", @@ -116,15 +116,15 @@ }, { "name": "x-github-request-id", - "value": "09D6:12E01:6E3565:7BCADF:68930CED" + "value": "1203:1AD663:856750:9C090D:68932B31" }, { "name": "x-served-by", - "value": "cache-lis1490042-LIS" + "value": "cache-lis1490043-LIS" }, { "name": "x-timer", - "value": "S1754467575.889830,VS0,VE180" + "value": "S1754476669.324439,VS0,VE174" }, { "name": "x-xss-protection", @@ -137,8 +137,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-08-06T08:06:14.722Z", - "time": 380, + "startedDateTime": "2025-08-06T10:37:49.264Z", + "time": 259, "timings": { "blocked": -1, "connect": -1, @@ -146,7 +146,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 380 + "wait": 259 } } ], diff --git a/json/table/load.spec.ts b/json/table/load.spec.ts index 699b4ade..e46d0b6e 100644 --- a/json/table/load.spec.ts +++ b/json/table/load.spec.ts @@ -1,7 +1,127 @@ import { writeTempFile } from "@dpkit/file" import { useRecording } from "@dpkit/test" import { describe, expect, it } from "vitest" -import { loadJsonlTable } from "./load.js" +import { loadJsonTable, loadJsonlTable } from "./load.js" + +describe("loadJsonTable", () => { + useRecording() + + describe("file variations", () => { + it("should load local file", async () => { + const body = '[{"id":1,"name":"english"},{"id":2,"name":"中文"}]' + const path = await writeTempFile(body) + + const table = await loadJsonTable({ path }) + expect((await table.collect()).toRecords()).toEqual([ + { id: 1, name: "english" }, + { id: 2, name: "中文" }, + ]) + }) + + it("should load local file (multipart)", async () => { + const body = '[{"id":1,"name":"english"},{"id":2,"name":"中文"}]' + const path1 = await writeTempFile(body) + const path2 = await writeTempFile(body) + + const table = await loadJsonTable({ path: [path1, path2] }) + expect((await table.collect()).toRecords()).toEqual([ + { id: 1, name: "english" }, + { id: 2, name: "中文" }, + { id: 1, name: "english" }, + { id: 2, name: "中文" }, + ]) + }) + + it("should load remote file", async () => { + const table = await loadJsonTable({ + path: "https://raw.githubusercontent.com/frictionlessdata/frictionless-py/refs/heads/main/data/table.keyed.json", + }) + + expect((await table.collect()).toRecords()).toEqual([ + { id: 1, name: "english" }, + { id: 2, name: "中国人" }, + ]) + }) + + it("should load remote file (multipart)", async () => { + const table = await loadJsonTable({ + path: [ + "https://raw.githubusercontent.com/frictionlessdata/frictionless-py/refs/heads/main/data/table.keyed.json", + "https://raw.githubusercontent.com/frictionlessdata/frictionless-py/refs/heads/main/data/table.keyed.json", + ], + }) + + expect((await table.collect()).toRecords()).toEqual([ + { id: 1, name: "english" }, + { id: 2, name: "中国人" }, + { id: 1, name: "english" }, + { id: 2, name: "中国人" }, + ]) + }) + }) + + describe("dialect variations", () => { + it("should handle property", async () => { + const body = '{"key": [{"id":1,"name":"english"},{"id":2,"name":"中文"}]}' + const path = await writeTempFile(body) + + const table = await loadJsonTable({ + path, + dialect: { property: "key" }, + }) + + expect((await table.collect()).toRecords()).toEqual([ + { id: 1, name: "english" }, + { id: 2, name: "中文" }, + ]) + }) + + it("should handle item keys", async () => { + const body = '[{"id":1,"name":"english"},{"id":2,"name":"中文"}]' + const path = await writeTempFile(body) + + const table = await loadJsonTable({ + path, + dialect: { itemKeys: ["name"] }, + }) + + expect((await table.collect()).toRecords()).toEqual([ + { name: "english" }, + { name: "中文" }, + ]) + }) + + it("should handle item type (array)", async () => { + const body = '[["id","name"],[1,"english"],[2,"中文"]]' + const path = await writeTempFile(body) + + const table = await loadJsonTable({ + path, + dialect: { itemType: "array" }, + }) + + expect((await table.collect()).toRecords()).toEqual([ + { id: 1, name: "english" }, + { id: 2, name: "中文" }, + ]) + }) + + it("should load item type (object)", async () => { + const body = '[{"id":1,"name":"english"},{"id":2,"name":"中文"}]' + const path = await writeTempFile(body) + + const table = await loadJsonTable({ + path, + dialect: { itemType: "object" }, + }) + + expect((await table.collect()).toRecords()).toEqual([ + { id: 1, name: "english" }, + { id: 2, name: "中文" }, + ]) + }) + }) +}) describe("loadJsonlTable", () => { useRecording() diff --git a/json/table/load.ts b/json/table/load.ts index ccfebb76..601d4b3a 100644 --- a/json/table/load.ts +++ b/json/table/load.ts @@ -1,24 +1,67 @@ -import type { Resource } from "@dpkit/core" +import { readFile } from "node:fs/promises" +import type { Dialect, Resource } from "@dpkit/core" +import { loadDialect } from "@dpkit/core" import { prefetchFiles } from "@dpkit/file" +import type { Table } from "@dpkit/table" import { concat } from "nodejs-polars" -import { DataFrame } from "nodejs-polars" -import { readJSON, scanJson } from "nodejs-polars" +import { DataFrame, scanJson } from "nodejs-polars" export async function loadJsonTable(resource: Partial) { - const [firstPath, ...restPaths] = await prefetchFiles(resource.path) - - if (!firstPath) { + const paths = await prefetchFiles(resource.path) + if (!paths.length) { return DataFrame().lazy() } - let table = readJSON(firstPath).lazy() - if (restPaths.length) { - table = concat([table, ...restPaths.map(path => readJSON(path).lazy())]) + const dialect = + typeof resource.dialect === "string" + ? await loadDialect(resource.dialect) + : resource.dialect + + const tables: Table[] = [] + for (const path of paths) { + const buffer = await readFile(path) + let data = JSON.parse(buffer.toString("utf-8")) + + if (dialect) { + data = processJsonData(data, dialect) + } + + const table = DataFrame(data).lazy() + tables.push(table) } + const table = concat(tables) return table } +function processJsonData(data: any, dialect: Dialect) { + if (dialect.property) { + data = data[dialect.property] + } + + if (dialect.itemType === "array") { + const keys = data[0] + + data = data + .slice(1) + .map((row: any) => + Object.fromEntries( + keys.map((key: any, index: number) => [key, row[index]]), + ), + ) + } + + if (dialect.itemKeys) { + const keys = dialect.itemKeys + + data = data.map((row: any) => + Object.fromEntries(keys.map((key: any) => [key, row[key]])), + ) + } + + return data +} + export async function loadJsonlTable(resource: Partial) { const [firstPath, ...restPaths] = await prefetchFiles(resource.path) diff --git a/parquet/table/load.ts b/parquet/table/load.ts index efd67d80..6622669a 100644 --- a/parquet/table/load.ts +++ b/parquet/table/load.ts @@ -6,7 +6,6 @@ import { scanParquet } from "nodejs-polars" export async function loadParquetTable(resource: Partial) { const [firstPath, ...restPaths] = await prefetchFiles(resource.path) - if (!firstPath) { return DataFrame().lazy() } From 47edb1ab0c558348a945441ab6680aecdacde733 Mon Sep 17 00:00:00 2001 From: roll Date: Wed, 6 Aug 2025 12:12:54 +0100 Subject: [PATCH 17/80] Added dialect support to jsonl --- .../recording.har | 42 +++++++-------- .../recording.har | 18 +++---- json/table/load.spec.ts | 47 ++++++++++++++++ json/table/load.ts | 53 +++++++++++++------ 4 files changed, 113 insertions(+), 47 deletions(-) diff --git a/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har b/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har index e0cbca8e..b7eb37e0 100644 --- a/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har +++ b/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har @@ -68,7 +68,7 @@ }, { "name": "date", - "value": "Wed, 06 Aug 2025 10:37:49 GMT" + "value": "Wed, 06 Aug 2025 11:11:15 GMT" }, { "name": "etag", @@ -76,11 +76,11 @@ }, { "name": "expires", - "value": "Wed, 06 Aug 2025 10:42:49 GMT" + "value": "Wed, 06 Aug 2025 11:16:15 GMT" }, { "name": "source-age", - "value": "0" + "value": "203" }, { "name": "strict-transport-security", @@ -108,7 +108,7 @@ }, { "name": "x-fastly-request-id", - "value": "f3c975490aa17e1dbd74d2233fb691ebccfcafb2" + "value": "9a339bc0c2c8779527a1bd4d6e9fc57b9dcb43c4" }, { "name": "x-frame-options", @@ -120,25 +120,25 @@ }, { "name": "x-served-by", - "value": "cache-lis1490043-LIS" + "value": "cache-lis1490022-LIS" }, { "name": "x-timer", - "value": "S1754476670.572591,VS0,VE1" + "value": "S1754478675.102882,VS0,VE1" }, { "name": "x-xss-protection", "value": "1; mode=block" } ], - "headersSize": 898, + "headersSize": 900, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-08-06T10:37:49.526Z", - "time": 76, + "startedDateTime": "2025-08-06T11:11:15.057Z", + "time": 79, "timings": { "blocked": -1, "connect": -1, @@ -146,7 +146,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 76 + "wait": 79 } }, { @@ -210,7 +210,7 @@ }, { "name": "date", - "value": "Wed, 06 Aug 2025 10:37:49 GMT" + "value": "Wed, 06 Aug 2025 11:11:15 GMT" }, { "name": "etag", @@ -218,11 +218,11 @@ }, { "name": "expires", - "value": "Wed, 06 Aug 2025 10:42:49 GMT" + "value": "Wed, 06 Aug 2025 11:16:15 GMT" }, { "name": "source-age", - "value": "0" + "value": "203" }, { "name": "strict-transport-security", @@ -242,7 +242,7 @@ }, { "name": "x-cache-hits", - "value": "1" + "value": "71" }, { "name": "x-content-type-options", @@ -250,7 +250,7 @@ }, { "name": "x-fastly-request-id", - "value": "4a2ea35fadb4f8915eff775a22976f50b284e3d9" + "value": "073793b85fa784aa9ae172edff2ede6d2b402cbe" }, { "name": "x-frame-options", @@ -262,25 +262,25 @@ }, { "name": "x-served-by", - "value": "cache-lis1490041-LIS" + "value": "cache-lis1490026-LIS" }, { "name": "x-timer", - "value": "S1754476670.572731,VS0,VE1" + "value": "S1754478675.104873,VS0,VE0" }, { "name": "x-xss-protection", "value": "1; mode=block" } ], - "headersSize": 898, + "headersSize": 901, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-08-06T10:37:49.526Z", - "time": 81, + "startedDateTime": "2025-08-06T11:11:15.057Z", + "time": 84, "timings": { "blocked": -1, "connect": -1, @@ -288,7 +288,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 81 + "wait": 84 } } ], diff --git a/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har b/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har index fba24c0d..b902b732 100644 --- a/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har +++ b/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har @@ -68,7 +68,7 @@ }, { "name": "date", - "value": "Wed, 06 Aug 2025 10:37:49 GMT" + "value": "Wed, 06 Aug 2025 11:11:15 GMT" }, { "name": "etag", @@ -76,11 +76,11 @@ }, { "name": "expires", - "value": "Wed, 06 Aug 2025 10:42:49 GMT" + "value": "Wed, 06 Aug 2025 11:16:15 GMT" }, { "name": "source-age", - "value": "0" + "value": "203" }, { "name": "strict-transport-security", @@ -108,7 +108,7 @@ }, { "name": "x-fastly-request-id", - "value": "8a4493905f2a0e3f385dedc8cf3cf650986ba7e8" + "value": "43bc0ab7e9b0be57bc12f4971880eac1e4de53d9" }, { "name": "x-frame-options", @@ -120,11 +120,11 @@ }, { "name": "x-served-by", - "value": "cache-lis1490043-LIS" + "value": "cache-lis1490022-LIS" }, { "name": "x-timer", - "value": "S1754476669.324439,VS0,VE174" + "value": "S1754478675.015513,VS0,VE1" }, { "name": "x-xss-protection", @@ -137,8 +137,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-08-06T10:37:49.264Z", - "time": 259, + "startedDateTime": "2025-08-06T11:11:14.963Z", + "time": 90, "timings": { "blocked": -1, "connect": -1, @@ -146,7 +146,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 259 + "wait": 90 } } ], diff --git a/json/table/load.spec.ts b/json/table/load.spec.ts index e46d0b6e..7e84cdad 100644 --- a/json/table/load.spec.ts +++ b/json/table/load.spec.ts @@ -179,4 +179,51 @@ describe("loadJsonlTable", () => { ]) }) }) + + describe("dialect variations", () => { + it("should handle item keys", async () => { + const body = '{"id":1,"name":"english"}\n{"id":2,"name":"中文"}' + const path = await writeTempFile(body) + + const table = await loadJsonlTable({ + path, + dialect: { itemKeys: ["name"] }, + }) + + expect((await table.collect()).toRecords()).toEqual([ + { name: "english" }, + { name: "中文" }, + ]) + }) + + it("should handle item type (array)", async () => { + const body = '["id","name"]\n[1,"english"]\n[2,"中文"]' + const path = await writeTempFile(body) + + const table = await loadJsonlTable({ + path, + dialect: { itemType: "array" }, + }) + + expect((await table.collect()).toRecords()).toEqual([ + { id: 1, name: "english" }, + { id: 2, name: "中文" }, + ]) + }) + + it("should load item type (object)", async () => { + const body = '{"id":1,"name":"english"}\n{"id":2,"name":"中文"}' + const path = await writeTempFile(body) + + const table = await loadJsonlTable({ + path, + dialect: { itemType: "object" }, + }) + + expect((await table.collect()).toRecords()).toEqual([ + { id: 1, name: "english" }, + { id: 2, name: "中文" }, + ]) + }) + }) }) diff --git a/json/table/load.ts b/json/table/load.ts index 601d4b3a..76bd5afe 100644 --- a/json/table/load.ts +++ b/json/table/load.ts @@ -23,7 +23,7 @@ export async function loadJsonTable(resource: Partial) { let data = JSON.parse(buffer.toString("utf-8")) if (dialect) { - data = processJsonData(data, dialect) + data = processData(data, dialect) } const table = DataFrame(data).lazy() @@ -34,7 +34,41 @@ export async function loadJsonTable(resource: Partial) { return table } -function processJsonData(data: any, dialect: Dialect) { +export async function loadJsonlTable(resource: Partial) { + const paths = await prefetchFiles(resource.path) + if (!paths.length) { + return DataFrame().lazy() + } + + const dialect = + typeof resource.dialect === "string" + ? await loadDialect(resource.dialect) + : resource.dialect + + const tables: Table[] = [] + for (const path of paths) { + if (!dialect) { + const table = scanJson(path) + tables.push(table) + continue + } + + const buffer = await readFile(path) + let data = buffer + .toString("utf-8") + .split("\n") + .map(line => JSON.parse(line)) + + data = processData(data, dialect) + const table = DataFrame(data).lazy() + tables.push(table) + } + + const table = concat(tables) + return table +} + +function processData(data: any, dialect: Dialect) { if (dialect.property) { data = data[dialect.property] } @@ -61,18 +95,3 @@ function processJsonData(data: any, dialect: Dialect) { return data } - -export async function loadJsonlTable(resource: Partial) { - const [firstPath, ...restPaths] = await prefetchFiles(resource.path) - - if (!firstPath) { - return DataFrame().lazy() - } - - let table = scanJson(firstPath) - if (restPaths.length) { - table = concat([table, ...restPaths.map(path => scanJson(path))]) - } - - return table -} From 1b9d7f466efa19c5ea34bdcbaaaaf1328badbb47 Mon Sep 17 00:00:00 2001 From: roll Date: Wed, 6 Aug 2025 12:26:19 +0100 Subject: [PATCH 18/80] Extraced common loadTable --- .../recording.har | 42 +++++++-------- .../recording.har | 18 +++---- json/table/load.ts | 51 ++++++++----------- 3 files changed, 50 insertions(+), 61 deletions(-) diff --git a/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har b/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har index b7eb37e0..a3204b71 100644 --- a/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har +++ b/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har @@ -68,7 +68,7 @@ }, { "name": "date", - "value": "Wed, 06 Aug 2025 11:11:15 GMT" + "value": "Wed, 06 Aug 2025 11:25:55 GMT" }, { "name": "etag", @@ -76,11 +76,11 @@ }, { "name": "expires", - "value": "Wed, 06 Aug 2025 11:16:15 GMT" + "value": "Wed, 06 Aug 2025 11:30:55 GMT" }, { "name": "source-age", - "value": "203" + "value": "0" }, { "name": "strict-transport-security", @@ -108,7 +108,7 @@ }, { "name": "x-fastly-request-id", - "value": "9a339bc0c2c8779527a1bd4d6e9fc57b9dcb43c4" + "value": "f1a982793c7cadd3101654a56c45f5876dff08b0" }, { "name": "x-frame-options", @@ -120,25 +120,25 @@ }, { "name": "x-served-by", - "value": "cache-lis1490022-LIS" + "value": "cache-lis1490020-LIS" }, { "name": "x-timer", - "value": "S1754478675.102882,VS0,VE1" + "value": "S1754479555.117448,VS0,VE1" }, { "name": "x-xss-protection", "value": "1; mode=block" } ], - "headersSize": 900, + "headersSize": 898, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-08-06T11:11:15.057Z", - "time": 79, + "startedDateTime": "2025-08-06T11:25:55.091Z", + "time": 60, "timings": { "blocked": -1, "connect": -1, @@ -146,7 +146,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 79 + "wait": 60 } }, { @@ -210,7 +210,7 @@ }, { "name": "date", - "value": "Wed, 06 Aug 2025 11:11:15 GMT" + "value": "Wed, 06 Aug 2025 11:25:55 GMT" }, { "name": "etag", @@ -218,11 +218,11 @@ }, { "name": "expires", - "value": "Wed, 06 Aug 2025 11:16:15 GMT" + "value": "Wed, 06 Aug 2025 11:30:55 GMT" }, { "name": "source-age", - "value": "203" + "value": "0" }, { "name": "strict-transport-security", @@ -242,7 +242,7 @@ }, { "name": "x-cache-hits", - "value": "71" + "value": "1" }, { "name": "x-content-type-options", @@ -250,7 +250,7 @@ }, { "name": "x-fastly-request-id", - "value": "073793b85fa784aa9ae172edff2ede6d2b402cbe" + "value": "2e2294112f480bc8012b14f668b4eab1c6b32366" }, { "name": "x-frame-options", @@ -262,25 +262,25 @@ }, { "name": "x-served-by", - "value": "cache-lis1490026-LIS" + "value": "cache-lis1490040-LIS" }, { "name": "x-timer", - "value": "S1754478675.104873,VS0,VE0" + "value": "S1754479555.118918,VS0,VE1" }, { "name": "x-xss-protection", "value": "1; mode=block" } ], - "headersSize": 901, + "headersSize": 898, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-08-06T11:11:15.057Z", - "time": 84, + "startedDateTime": "2025-08-06T11:25:55.091Z", + "time": 66, "timings": { "blocked": -1, "connect": -1, @@ -288,7 +288,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 84 + "wait": 66 } } ], diff --git a/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har b/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har index b902b732..e3c91aa1 100644 --- a/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har +++ b/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har @@ -68,7 +68,7 @@ }, { "name": "date", - "value": "Wed, 06 Aug 2025 11:11:15 GMT" + "value": "Wed, 06 Aug 2025 11:25:55 GMT" }, { "name": "etag", @@ -76,11 +76,11 @@ }, { "name": "expires", - "value": "Wed, 06 Aug 2025 11:16:15 GMT" + "value": "Wed, 06 Aug 2025 11:30:55 GMT" }, { "name": "source-age", - "value": "203" + "value": "0" }, { "name": "strict-transport-security", @@ -108,7 +108,7 @@ }, { "name": "x-fastly-request-id", - "value": "43bc0ab7e9b0be57bc12f4971880eac1e4de53d9" + "value": "dbb41f6ac2cde156086ecaebc36149b3259c04a6" }, { "name": "x-frame-options", @@ -120,11 +120,11 @@ }, { "name": "x-served-by", - "value": "cache-lis1490022-LIS" + "value": "cache-lis1490020-LIS" }, { "name": "x-timer", - "value": "S1754478675.015513,VS0,VE1" + "value": "S1754479555.832022,VS0,VE182" }, { "name": "x-xss-protection", @@ -137,8 +137,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-08-06T11:11:14.963Z", - "time": 90, + "startedDateTime": "2025-08-06T11:25:54.795Z", + "time": 292, "timings": { "blocked": -1, "connect": -1, @@ -146,7 +146,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 90 + "wait": 292 } } ], diff --git a/json/table/load.ts b/json/table/load.ts index 76bd5afe..4a65ccf0 100644 --- a/json/table/load.ts +++ b/json/table/load.ts @@ -7,34 +7,19 @@ import { concat } from "nodejs-polars" import { DataFrame, scanJson } from "nodejs-polars" export async function loadJsonTable(resource: Partial) { - const paths = await prefetchFiles(resource.path) - if (!paths.length) { - return DataFrame().lazy() - } - - const dialect = - typeof resource.dialect === "string" - ? await loadDialect(resource.dialect) - : resource.dialect - - const tables: Table[] = [] - for (const path of paths) { - const buffer = await readFile(path) - let data = JSON.parse(buffer.toString("utf-8")) - - if (dialect) { - data = processData(data, dialect) - } - - const table = DataFrame(data).lazy() - tables.push(table) - } - - const table = concat(tables) - return table + return await loadTable(resource, { isLines: false }) } export async function loadJsonlTable(resource: Partial) { + return await loadTable(resource, { isLines: true }) +} + +async function loadTable( + resource: Partial, + options: { isLines: boolean }, +) { + const { isLines } = options + const paths = await prefetchFiles(resource.path) if (!paths.length) { return DataFrame().lazy() @@ -47,19 +32,23 @@ export async function loadJsonlTable(resource: Partial) { const tables: Table[] = [] for (const path of paths) { - if (!dialect) { + if (isLines && !dialect) { const table = scanJson(path) tables.push(table) continue } const buffer = await readFile(path) - let data = buffer - .toString("utf-8") - .split("\n") - .map(line => JSON.parse(line)) + const string = buffer.toString("utf-8") + + let data = isLines + ? string.split("\n").map(line => JSON.parse(line)) + : JSON.parse(string) + + if (dialect) { + data = processData(data, dialect) + } - data = processData(data, dialect) const table = DataFrame(data).lazy() tables.push(table) } From 9154822639e46115689342d70319774e4cc2c5fd Mon Sep 17 00:00:00 2001 From: roll Date: Wed, 6 Aug 2025 15:33:36 +0100 Subject: [PATCH 19/80] Implemented saving json --- csv/table/save.spec.ts | 2 +- file/file/copy.ts | 10 ++ file/file/fetch.ts | 4 +- file/file/index.ts | 3 +- file/file/save.ts | 12 +-- file/stream/save.ts | 4 +- folder/package/save.ts | 4 +- json/buffer/decode.ts | 13 +++ json/buffer/encode.ts | 7 ++ json/buffer/index.ts | 2 + .../recording.har | 46 ++++----- .../recording.har | 24 ++--- json/table/load.ts | 8 +- json/table/parse.ts | 5 + json/table/save.spec.ts | 93 +++++++++++++++++-- json/table/save.ts | 55 +++++++++-- 16 files changed, 220 insertions(+), 72 deletions(-) create mode 100644 file/file/copy.ts create mode 100644 json/buffer/decode.ts create mode 100644 json/buffer/encode.ts create mode 100644 json/buffer/index.ts create mode 100644 json/table/parse.ts diff --git a/csv/table/save.spec.ts b/csv/table/save.spec.ts index f5b28a08..024589bd 100644 --- a/csv/table/save.spec.ts +++ b/csv/table/save.spec.ts @@ -5,7 +5,7 @@ import { describe, expect, it } from "vitest" import { saveCsvTable } from "./save.js" describe("saveCsvTable", () => { - it("should save table to CSV file", async () => { + it("should save table to file", async () => { await temporaryFileTask(async path => { const table = DataFrame({ id: [1.0, 2.0, 3.0], diff --git a/file/file/copy.ts b/file/file/copy.ts new file mode 100644 index 00000000..8f2415d0 --- /dev/null +++ b/file/file/copy.ts @@ -0,0 +1,10 @@ +import { loadFileStream } from "../stream/load.js" +import { saveFileStream } from "../stream/save.js" + +export async function copyFile(options: { + sourcePath: string + targetPath: string +}) { + const stream = await loadFileStream(options.sourcePath) + await saveFileStream(stream, { path: options.targetPath }) +} diff --git a/file/file/fetch.ts b/file/file/fetch.ts index 1aa85834..ffaa0da0 100644 --- a/file/file/fetch.ts +++ b/file/file/fetch.ts @@ -1,5 +1,5 @@ import { isRemotePath } from "@dpkit/core" -import { saveFileToDisc } from "./save.js" +import { copyFile } from "./copy.js" import { getTempFilePath } from "./temp.js" export async function prefetchFiles(path?: string | string[]) { @@ -12,6 +12,6 @@ export async function prefetchFiles(path?: string | string[]) { export async function prefetchFile(path: string) { if (!isRemotePath(path)) return path const newPath = getTempFilePath() - await saveFileToDisc({ sourcePath: path, targetPath: newPath }) + await copyFile({ sourcePath: path, targetPath: newPath }) return newPath } diff --git a/file/file/index.ts b/file/file/index.ts index d4f875da..0939e359 100644 --- a/file/file/index.ts +++ b/file/file/index.ts @@ -1,5 +1,6 @@ export { loadFile } from "./load.js" -export { saveFileToDisc } from "./save.js" +export { copyFile } from "./copy.js" +export { saveFile } from "./save.js" export { getTempFilePath, writeTempFile } from "./temp.js" export { assertLocalPathVacant, isLocalPathExist } from "./path.js" export { prefetchFile, prefetchFiles } from "./fetch.js" diff --git a/file/file/save.ts b/file/file/save.ts index c29f717c..c0d8631a 100644 --- a/file/file/save.ts +++ b/file/file/save.ts @@ -1,10 +1,6 @@ -import { loadFileStream } from "../stream/load.js" -import { saveFileStream } from "../stream/save.js" +import { Readable } from "node:stream" +import { saveFileStream } from "../stream/index.js" -export async function saveFileToDisc(options: { - sourcePath: string - targetPath: string -}) { - const stream = await loadFileStream(options.sourcePath) - await saveFileStream(stream, { path: options.targetPath }) +export async function saveFile(path: string, buffer: Buffer) { + await saveFileStream(Readable.from(buffer), { path }) } diff --git a/file/stream/save.ts b/file/stream/save.ts index 4c6b9be4..c29e54dc 100644 --- a/file/stream/save.ts +++ b/file/stream/save.ts @@ -10,7 +10,9 @@ export async function saveFileStream( path: string }, ) { - // The "wx" flag ensures that the file won't overwrite an existing file + // It is an equivalent to ensureDir function await mkdir(dirname(options.path), { recursive: true }) + + // The "wx" flag ensures that the file won't overwrite an existing file await pipeline(stream, createWriteStream(options.path, { flags: "wx" })) } diff --git a/folder/package/save.ts b/folder/package/save.ts index 25c77635..c6e32a81 100644 --- a/folder/package/save.ts +++ b/folder/package/save.ts @@ -3,8 +3,8 @@ import { denormalizePackage, saveDescriptor } from "@dpkit/core" import type { Descriptor, Package } from "@dpkit/core" import { assertLocalPathVacant, + copyFile, getPackageBasepath, - saveFileToDisc, saveResourceFiles, } from "@dpkit/file" import { createFolder } from "../folder/index.js" @@ -29,7 +29,7 @@ export async function savePackageToFolder( basepath, withRemote, saveFile: async props => { - await saveFileToDisc({ + await copyFile({ sourcePath: props.normalizedPath, targetPath: props.denormalizedPath, }) diff --git a/json/buffer/decode.ts b/json/buffer/decode.ts new file mode 100644 index 00000000..a7cfcbad --- /dev/null +++ b/json/buffer/decode.ts @@ -0,0 +1,13 @@ +export function decodeJsonBuffer( + buffer: Buffer, + options: { isLines: boolean }, +) { + const string = buffer.toString("utf-8") + + return options.isLines + ? string + .split("\n") + .filter(Boolean) + .map(line => JSON.parse(line)) + : JSON.parse(string) +} diff --git a/json/buffer/encode.ts b/json/buffer/encode.ts new file mode 100644 index 00000000..d1b93102 --- /dev/null +++ b/json/buffer/encode.ts @@ -0,0 +1,7 @@ +export function encodeJsonBuffer(data: any, options: { isLines: boolean }) { + const string = options.isLines + ? data.map((line: any) => JSON.stringify(line)).join("\n") + : JSON.stringify(data, null, 2) + + return Buffer.from(string) +} diff --git a/json/buffer/index.ts b/json/buffer/index.ts new file mode 100644 index 00000000..6c2e394e --- /dev/null +++ b/json/buffer/index.ts @@ -0,0 +1,2 @@ +export { encodeJsonBuffer } from "./encode.js" +export { decodeJsonBuffer } from "./decode.js" diff --git a/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har b/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har index a3204b71..9a86830f 100644 --- a/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har +++ b/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har @@ -9,7 +9,7 @@ "entries": [ { "_id": "d30ef9a2f7ea66a64aee2d7670e18212", - "_order": 0, + "_order": 1, "cache": {}, "request": { "bodySize": 0, @@ -68,7 +68,7 @@ }, { "name": "date", - "value": "Wed, 06 Aug 2025 11:25:55 GMT" + "value": "Wed, 06 Aug 2025 14:39:23 GMT" }, { "name": "etag", @@ -76,11 +76,11 @@ }, { "name": "expires", - "value": "Wed, 06 Aug 2025 11:30:55 GMT" + "value": "Wed, 06 Aug 2025 14:44:23 GMT" }, { "name": "source-age", - "value": "0" + "value": "4" }, { "name": "strict-transport-security", @@ -108,7 +108,7 @@ }, { "name": "x-fastly-request-id", - "value": "f1a982793c7cadd3101654a56c45f5876dff08b0" + "value": "3b644b28278c46f715990abb8a916880a4dac0c4" }, { "name": "x-frame-options", @@ -116,15 +116,15 @@ }, { "name": "x-github-request-id", - "value": "1203:1AD663:856750:9C090D:68932B31" + "value": "BFCE:1AD663:B3A5EF:CF9B80:68935F1B" }, { "name": "x-served-by", - "value": "cache-lis1490020-LIS" + "value": "cache-lis1490047-LIS" }, { "name": "x-timer", - "value": "S1754479555.117448,VS0,VE1" + "value": "S1754491164.978433,VS0,VE1" }, { "name": "x-xss-protection", @@ -137,8 +137,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-08-06T11:25:55.091Z", - "time": 60, + "startedDateTime": "2025-08-06T14:39:23.923Z", + "time": 67, "timings": { "blocked": -1, "connect": -1, @@ -146,12 +146,12 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 60 + "wait": 67 } }, { "_id": "d30ef9a2f7ea66a64aee2d7670e18212", - "_order": 1, + "_order": 0, "cache": {}, "request": { "bodySize": 0, @@ -210,7 +210,7 @@ }, { "name": "date", - "value": "Wed, 06 Aug 2025 11:25:55 GMT" + "value": "Wed, 06 Aug 2025 14:39:23 GMT" }, { "name": "etag", @@ -218,11 +218,11 @@ }, { "name": "expires", - "value": "Wed, 06 Aug 2025 11:30:55 GMT" + "value": "Wed, 06 Aug 2025 14:44:23 GMT" }, { "name": "source-age", - "value": "0" + "value": "4" }, { "name": "strict-transport-security", @@ -242,7 +242,7 @@ }, { "name": "x-cache-hits", - "value": "1" + "value": "2" }, { "name": "x-content-type-options", @@ -250,7 +250,7 @@ }, { "name": "x-fastly-request-id", - "value": "2e2294112f480bc8012b14f668b4eab1c6b32366" + "value": "5f23d3a0487d5fa27fb9262faddf5edd57e293fd" }, { "name": "x-frame-options", @@ -258,15 +258,15 @@ }, { "name": "x-github-request-id", - "value": "1203:1AD663:856750:9C090D:68932B31" + "value": "BFCE:1AD663:B3A5EF:CF9B80:68935F1B" }, { "name": "x-served-by", - "value": "cache-lis1490040-LIS" + "value": "cache-lis1490027-LIS" }, { "name": "x-timer", - "value": "S1754479555.118918,VS0,VE1" + "value": "S1754491164.980088,VS0,VE0" }, { "name": "x-xss-protection", @@ -279,8 +279,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-08-06T11:25:55.091Z", - "time": 66, + "startedDateTime": "2025-08-06T14:39:23.923Z", + "time": 68, "timings": { "blocked": -1, "connect": -1, @@ -288,7 +288,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 66 + "wait": 68 } } ], diff --git a/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har b/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har index e3c91aa1..ddb4f13f 100644 --- a/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har +++ b/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har @@ -68,7 +68,7 @@ }, { "name": "date", - "value": "Wed, 06 Aug 2025 11:25:55 GMT" + "value": "Wed, 06 Aug 2025 14:39:23 GMT" }, { "name": "etag", @@ -76,11 +76,11 @@ }, { "name": "expires", - "value": "Wed, 06 Aug 2025 11:30:55 GMT" + "value": "Wed, 06 Aug 2025 14:44:23 GMT" }, { "name": "source-age", - "value": "0" + "value": "4" }, { "name": "strict-transport-security", @@ -100,7 +100,7 @@ }, { "name": "x-cache-hits", - "value": "0" + "value": "1" }, { "name": "x-content-type-options", @@ -108,7 +108,7 @@ }, { "name": "x-fastly-request-id", - "value": "dbb41f6ac2cde156086ecaebc36149b3259c04a6" + "value": "24061df486cbe8f9a228032088439a9e94e2e8f6" }, { "name": "x-frame-options", @@ -116,29 +116,29 @@ }, { "name": "x-github-request-id", - "value": "1203:1AD663:856750:9C090D:68932B31" + "value": "BFCE:1AD663:B3A5EF:CF9B80:68935F1B" }, { "name": "x-served-by", - "value": "cache-lis1490020-LIS" + "value": "cache-lis1490027-LIS" }, { "name": "x-timer", - "value": "S1754479555.832022,VS0,VE182" + "value": "S1754491164.911154,VS0,VE1" }, { "name": "x-xss-protection", "value": "1; mode=block" } ], - "headersSize": 900, + "headersSize": 898, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-08-06T11:25:54.795Z", - "time": 292, + "startedDateTime": "2025-08-06T14:39:23.872Z", + "time": 47, "timings": { "blocked": -1, "connect": -1, @@ -146,7 +146,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 292 + "wait": 47 } } ], diff --git a/json/table/load.ts b/json/table/load.ts index 4a65ccf0..b2766f65 100644 --- a/json/table/load.ts +++ b/json/table/load.ts @@ -5,6 +5,7 @@ import { prefetchFiles } from "@dpkit/file" import type { Table } from "@dpkit/table" import { concat } from "nodejs-polars" import { DataFrame, scanJson } from "nodejs-polars" +import { decodeJsonBuffer } from "../buffer/index.js" export async function loadJsonTable(resource: Partial) { return await loadTable(resource, { isLines: false }) @@ -39,12 +40,7 @@ async function loadTable( } const buffer = await readFile(path) - const string = buffer.toString("utf-8") - - let data = isLines - ? string.split("\n").map(line => JSON.parse(line)) - : JSON.parse(string) - + let data = decodeJsonBuffer(buffer, { isLines }) if (dialect) { data = processData(data, dialect) } diff --git a/json/table/parse.ts b/json/table/parse.ts new file mode 100644 index 00000000..a516b88d --- /dev/null +++ b/json/table/parse.ts @@ -0,0 +1,5 @@ +export function parseJson(string: string, options: { isLines: boolean }) { + return options.isLines + ? string.split("\n").map(line => JSON.parse(line)) + : JSON.parse(string) +} diff --git a/json/table/save.spec.ts b/json/table/save.spec.ts index 1eeea9b7..dbbe00b6 100644 --- a/json/table/save.spec.ts +++ b/json/table/save.spec.ts @@ -1,23 +1,100 @@ import { readFile } from "node:fs/promises" import { getTempFilePath } from "@dpkit/file" -import { DataFrame } from "nodejs-polars" +import { readRecords } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { saveJsonlTable } from "./save.js" +import { saveJsonTable, saveJsonlTable } from "./save.js" + +const row1 = { id: 1, name: "english" } +const row2 = { id: 2, name: "中文" } +const table = readRecords([row1, row2]).lazy() describe("saveJsonTable", () => { - it("should save table to JSON file", async () => { + it("should save table to file", async () => { + const path = getTempFilePath() + await saveJsonTable(table, { path }) + + const content = await readFile(path, "utf-8") + expect(content).toEqual(JSON.stringify([row1, row2], null, 2)) + }) + + it("should handle property", async () => { const path = getTempFilePath() + await saveJsonTable(table, { path, dialect: { property: "key" } }) - const table = DataFrame({ - id: [1.0, 2.0], - name: ["english", "中文"], - }).lazy() + const content = await readFile(path, "utf-8") + expect(content).toEqual(JSON.stringify({ key: [row1, row2] }, null, 2)) + }) + + it("should handle item keys", async () => { + const path = getTempFilePath() + await saveJsonTable(table, { path, dialect: { itemKeys: ["name"] } }) + + const content = await readFile(path, "utf-8") + expect(content).toEqual( + JSON.stringify([{ name: row1.name }, { name: row2.name }], null, 2), + ) + }) + + it("should handle item type (array)", async () => { + const path = getTempFilePath() + await saveJsonTable(table, { path, dialect: { itemType: "array" } }) + + const content = await readFile(path, "utf-8") + expect(content).toEqual( + JSON.stringify( + [Object.keys(row1), Object.values(row1), Object.values(row2)], + null, + 2, + ), + ) + }) +}) +describe("saveJsonlTable", () => { + it("should save table to file", async () => { + const path = getTempFilePath() await saveJsonlTable(table, { path }) const content = await readFile(path, "utf-8") expect(content).toEqual( - '{"id":1.0,"name":"english"}\n{"id":2.0,"name":"中文"}\n', + [JSON.stringify(row1), JSON.stringify(row2)].join("\n"), + ) + }) + + it("should handle item keys", async () => { + const path = getTempFilePath() + await saveJsonlTable(table, { path, dialect: { itemKeys: ["name"] } }) + + const content = await readFile(path, "utf-8") + expect(content).toEqual( + [ + JSON.stringify({ name: row1.name }), + JSON.stringify({ name: row2.name }), + ].join("\n"), + ) + }) + + it("should handle item type (array)", async () => { + const path = getTempFilePath() + await saveJsonlTable(table, { path, dialect: { itemType: "array" } }) + + const content = await readFile(path, "utf-8") + expect(content).toEqual( + [ + JSON.stringify(Object.keys(row1)), + JSON.stringify(Object.values(row1)), + JSON.stringify(Object.values(row2)), + ].join("\n"), + ) + }) + + it("should handle item type (object)", async () => { + const path = getTempFilePath() + await saveJsonlTable(table, { path, dialect: { itemType: "object" } }) + + const content = await readFile(path, "utf-8") + expect(content).toEqual( + [JSON.stringify(row1), JSON.stringify(row2)].join("\n"), ) }) }) diff --git a/json/table/save.ts b/json/table/save.ts index 7f64b9ee..bf126bf9 100644 --- a/json/table/save.ts +++ b/json/table/save.ts @@ -1,17 +1,56 @@ +import type { Dialect } from "@dpkit/core" +import { saveFile } from "@dpkit/file" import type { SaveTableOptions, Table } from "@dpkit/table" +import { decodeJsonBuffer, encodeJsonBuffer } from "../buffer/index.js" -export async function saveJsonTable(_table: Table, options: SaveTableOptions) { - // TODO: implement - - return options.path +export async function saveJsonTable(table: Table, options: SaveTableOptions) { + return await saveTable(table, { ...options, isLines: false }) } export async function saveJsonlTable(table: Table, options: SaveTableOptions) { + return await saveTable(table, { ...options, isLines: true }) +} + +async function saveTable( + table: Table, + options: SaveTableOptions & { isLines: boolean }, +) { + const { path, dialect, isLines } = options const df = await table.collect() - df.writeJSON(options?.path, { - format: "lines", - }) + // We use polars to serialize the data + // But encode it manually to support dialects/formatting + let buffer = df.writeJSON({ format: isLines ? "lines" : "json" }) + let data = decodeJsonBuffer(buffer, { isLines }) + + if (dialect) { + data = processData(data, dialect) + } + + buffer = encodeJsonBuffer(data, { isLines }) + await saveFile(path, buffer) + + return path +} + +function processData(records: Record[], dialect: Dialect) { + let data: any = records + + if (dialect.itemKeys) { + const keys = dialect.itemKeys + data = data.map((row: any) => + Object.fromEntries(keys.map((key: any) => [key, row[key]])), + ) + } + + if (dialect.itemType === "array") { + const keys = dialect.itemKeys ?? Object.keys(data[0]) + data = [keys, ...data.map((row: any) => keys.map((key: any) => row[key]))] + } + + if (dialect.property) { + data = { [dialect.property]: data } + } - return options.path + return data } From 91ad47b47cb69a0591608ce854d86b553c8fb97b Mon Sep 17 00:00:00 2001 From: roll Date: Wed, 6 Aug 2025 17:27:38 +0100 Subject: [PATCH 20/80] Simplifed docs --- arrow/OVERVIEW.md | 6 - arrow/typedoc.json | 1 - camtrap/OVERVIEW.md | 6 - camtrap/typedoc.json | 1 - ckan/OVERVIEW.md | 6 - ckan/typedoc.json | 1 - core/OVERVIEW.md | 6 - core/typedoc.json | 1 - csv/typedoc.json | 1 - datahub/OVERVIEW.md | 6 - datahub/typedoc.json | 1 - docs/astro.config.ts | 22 +- .../content/docs/guides/csv.md | 5 +- docs/content/docs/guides/inline.md | 97 +++++ docs/content/docs/guides/table.md | 224 ++++++++++ docs/content/docs/guides/validation.md | 9 - docs/content/docs/overview/changelog.md | 1 + docs/content/docs/reference/README.md | 23 + docs/content/docs/reference/_dpkit/arrow.md | 19 + .../reference/_dpkit/arrow/ArrowPlugin.md | 70 +++ .../reference/_dpkit/arrow/loadArrowTable.md | 20 + .../reference/_dpkit/arrow/saveArrowTable.md | 24 ++ docs/content/docs/reference/_dpkit/camtrap.md | 18 + .../_dpkit/camtrap/CamtrapPackage.md | 398 ++++++++++++++++++ .../_dpkit/camtrap/assertCamtrapPackage.md | 22 + docs/content/docs/reference/_dpkit/ckan.md | 30 ++ .../docs/reference/_dpkit/ckan/CkanField.md | 40 ++ .../reference/_dpkit/ckan/CkanOrganization.md | 50 +++ .../docs/reference/_dpkit/ckan/CkanPackage.md | 180 ++++++++ .../docs/reference/_dpkit/ckan/CkanPlugin.md | 44 ++ .../reference/_dpkit/ckan/CkanResource.md | 130 ++++++ .../docs/reference/_dpkit/ckan/CkanSchema.md | 20 + .../docs/reference/_dpkit/ckan/CkanTag.md | 40 ++ .../_dpkit/ckan/denormalizeCkanResource.md | 24 ++ .../_dpkit/ckan/loadPackageFromCkan.md | 24 ++ .../_dpkit/ckan/normalizeCkanSchema.md | 24 ++ .../_dpkit/ckan/savePackageToCkan.md | 38 ++ docs/content/docs/reference/_dpkit/core.md | 109 +++++ .../reference/_dpkit/core/AnyConstraints.md | 53 +++ .../docs/reference/_dpkit/core/AnyField.md | 128 ++++++ .../reference/_dpkit/core/ArrayConstraints.md | 83 ++++ .../docs/reference/_dpkit/core/ArrayField.md | 128 ++++++ .../reference/_dpkit/core/AssertionError.md | 244 +++++++++++ .../_dpkit/core/BooleanConstraints.md | 53 +++ .../reference/_dpkit/core/BooleanField.md | 148 +++++++ .../docs/reference/_dpkit/core/Contributor.md | 50 +++ .../reference/_dpkit/core/DateConstraints.md | 73 ++++ .../docs/reference/_dpkit/core/DateField.md | 141 +++++++ .../_dpkit/core/DatetimeConstraints.md | 73 ++++ .../reference/_dpkit/core/DatetimeField.md | 141 +++++++ .../docs/reference/_dpkit/core/Descriptor.md | 10 + .../docs/reference/_dpkit/core/Dialect.md | 221 ++++++++++ .../_dpkit/core/DurationConstraints.md | 73 ++++ .../reference/_dpkit/core/DurationField.md | 128 ++++++ .../docs/reference/_dpkit/core/Field.md | 12 + .../docs/reference/_dpkit/core/ForeignKey.md | 43 ++ .../_dpkit/core/GeojsonConstraints.md | 53 +++ .../reference/_dpkit/core/GeojsonField.md | 140 ++++++ .../_dpkit/core/GeopointConstraints.md | 53 +++ .../reference/_dpkit/core/GeopointField.md | 141 +++++++ .../_dpkit/core/IntegerConstraints.md | 95 +++++ .../reference/_dpkit/core/IntegerField.md | 169 ++++++++ .../docs/reference/_dpkit/core/License.md | 46 ++ .../reference/_dpkit/core/ListConstraints.md | 73 ++++ .../docs/reference/_dpkit/core/ListField.md | 148 +++++++ .../docs/reference/_dpkit/core/Metadata.md | 10 + .../reference/_dpkit/core/MetadataError.md | 130 ++++++ .../_dpkit/core/NumberConstraints.md | 93 ++++ .../docs/reference/_dpkit/core/NumberField.md | 158 +++++++ .../_dpkit/core/ObjectConstraints.md | 83 ++++ .../docs/reference/_dpkit/core/ObjectField.md | 128 ++++++ .../docs/reference/_dpkit/core/Package.md | 163 +++++++ .../docs/reference/_dpkit/core/Plugin.md | 54 +++ .../docs/reference/_dpkit/core/Resource.md | 209 +++++++++ .../docs/reference/_dpkit/core/Schema.md | 93 ++++ .../docs/reference/_dpkit/core/Source.md | 40 ++ .../_dpkit/core/StringConstraints.md | 82 ++++ .../docs/reference/_dpkit/core/StringField.md | 164 ++++++++ .../reference/_dpkit/core/TimeConstraints.md | 73 ++++ .../docs/reference/_dpkit/core/TimeField.md | 141 +++++++ .../reference/_dpkit/core/YearConstraints.md | 73 ++++ .../docs/reference/_dpkit/core/YearField.md | 128 ++++++ .../_dpkit/core/YearmonthConstraints.md | 73 ++++ .../reference/_dpkit/core/YearmonthField.md | 128 ++++++ .../reference/_dpkit/core/assertDialect.md | 22 + .../reference/_dpkit/core/assertPackage.md | 28 ++ .../reference/_dpkit/core/assertResource.md | 28 ++ .../reference/_dpkit/core/assertSchema.md | 22 + .../_dpkit/core/denormalizeDialect.md | 20 + .../_dpkit/core/denormalizePackage.md | 26 ++ .../reference/_dpkit/core/denormalizePath.md | 26 ++ .../_dpkit/core/denormalizeResource.md | 26 ++ .../_dpkit/core/denormalizeSchema.md | 20 + .../docs/reference/_dpkit/core/getBasepath.md | 20 + .../docs/reference/_dpkit/core/getFilename.md | 20 + .../docs/reference/_dpkit/core/getFormat.md | 20 + .../docs/reference/_dpkit/core/getName.md | 20 + .../docs/reference/_dpkit/core/inferFormat.md | 20 + .../reference/_dpkit/core/isDescriptor.md | 20 + .../reference/_dpkit/core/isRemotePath.md | 20 + .../reference/_dpkit/core/loadDescriptor.md | 30 ++ .../docs/reference/_dpkit/core/loadDialect.md | 23 + .../_dpkit/core/loadPackageDescriptor.md | 23 + .../docs/reference/_dpkit/core/loadProfile.md | 26 ++ .../_dpkit/core/loadResourceDescriptor.md | 23 + .../docs/reference/_dpkit/core/loadSchema.md | 23 + .../reference/_dpkit/core/mergePackages.md | 28 ++ .../reference/_dpkit/core/normalizeDialect.md | 20 + .../reference/_dpkit/core/normalizeField.md | 20 + .../reference/_dpkit/core/normalizePackage.md | 26 ++ .../reference/_dpkit/core/normalizePath.md | 26 ++ .../_dpkit/core/normalizeResource.md | 26 ++ .../reference/_dpkit/core/normalizeSchema.md | 20 + .../reference/_dpkit/core/parseDescriptor.md | 20 + .../reference/_dpkit/core/saveDescriptor.md | 29 ++ .../docs/reference/_dpkit/core/saveDialect.md | 29 ++ .../_dpkit/core/savePackageDescriptor.md | 29 ++ .../_dpkit/core/saveResourceDescriptor.md | 29 ++ .../docs/reference/_dpkit/core/saveSchema.md | 29 ++ .../_dpkit/core/stringifyDescriptor.md | 20 + .../_dpkit/core/validateDescriptor.md | 30 ++ .../reference/_dpkit/core/validateDialect.md | 22 + .../_dpkit/core/validatePackageDescriptor.md | 28 ++ .../_dpkit/core/validateResourceDescriptor.md | 28 ++ .../reference/_dpkit/core/validateSchema.md | 22 + docs/content/docs/reference/_dpkit/csv.md | 20 + .../docs/reference/_dpkit/csv/CsvPlugin.md | 96 +++++ .../reference/_dpkit/csv/inferCsvDialect.md | 24 ++ .../docs/reference/_dpkit/csv/loadCsvTable.md | 20 + .../docs/reference/_dpkit/csv/saveCsvTable.md | 24 ++ docs/content/docs/reference/_dpkit/datahub.md | 18 + .../reference/_dpkit/datahub/DatahubPlugin.md | 44 ++ .../_dpkit/datahub/loadPackageFromDatahub.md | 20 + docs/content/docs/reference/_dpkit/file.md | 26 ++ .../_dpkit/file/assertLocalPathVacant.md | 20 + .../docs/reference/_dpkit/file/copyFile.md | 26 ++ .../_dpkit/file/getPackageBasepath.md | 20 + .../reference/_dpkit/file/getTempFilePath.md | 22 + .../reference/_dpkit/file/isLocalPathExist.md | 20 + .../docs/reference/_dpkit/file/loadFile.md | 20 + .../reference/_dpkit/file/loadFileStream.md | 30 ++ .../reference/_dpkit/file/prefetchFile.md | 20 + .../reference/_dpkit/file/prefetchFiles.md | 20 + .../docs/reference/_dpkit/file/saveFile.md | 24 ++ .../reference/_dpkit/file/saveFileStream.md | 26 ++ .../_dpkit/file/saveResourceFiles.md | 38 ++ .../reference/_dpkit/file/writeTempFile.md | 26 ++ docs/content/docs/reference/_dpkit/github.md | 28 ++ .../reference/_dpkit/github/GithubLicense.md | 50 +++ .../reference/_dpkit/github/GithubOwner.md | 60 +++ .../reference/_dpkit/github/GithubPackage.md | 224 ++++++++++ .../reference/_dpkit/github/GithubPlugin.md | 44 ++ .../reference/_dpkit/github/GithubResource.md | 70 +++ .../github/denormalizeGithubResource.md | 25 ++ .../_dpkit/github/loadPackageFromGithub.md | 30 ++ .../_dpkit/github/normalizeGithubResource.md | 30 ++ .../_dpkit/github/savePackageToGithub.md | 38 ++ docs/content/docs/reference/_dpkit/inline.md | 18 + .../reference/_dpkit/inline/InlinePlugin.md | 44 ++ .../_dpkit/inline/loadInlineTable.md | 20 + docs/content/docs/reference/_dpkit/parquet.md | 19 + .../reference/_dpkit/parquet/ParquetPlugin.md | 70 +++ .../_dpkit/parquet/loadParquetTable.md | 20 + .../_dpkit/parquet/saveParquetTable.md | 24 ++ docs/content/docs/reference/_dpkit/table.md | 34 ++ .../_dpkit/table/InferDialectOptions.md | 18 + .../_dpkit/table/InferSchemaOptions.md | 42 ++ .../reference/_dpkit/table/PolarsField.md | 26 ++ .../reference/_dpkit/table/PolarsSchema.md | 16 + .../_dpkit/table/SaveTableOptions.md | 26 ++ .../docs/reference/_dpkit/table/Table.md | 10 + .../docs/reference/_dpkit/table/TableError.md | 10 + .../reference/_dpkit/table/TablePlugin.md | 128 ++++++ .../reference/_dpkit/table/getPolarsSchema.md | 20 + .../reference/_dpkit/table/inferSchema.md | 24 ++ .../reference/_dpkit/table/inspectField.md | 38 ++ .../reference/_dpkit/table/inspectTable.md | 34 ++ .../docs/reference/_dpkit/table/matchField.md | 32 ++ .../docs/reference/_dpkit/table/parseField.md | 30 ++ .../reference/_dpkit/table/processTable.md | 30 ++ docs/content/docs/reference/_dpkit/zenodo.md | 27 ++ .../reference/_dpkit/zenodo/ZenodoCreator.md | 48 +++ .../reference/_dpkit/zenodo/ZenodoPackage.md | 170 ++++++++ .../reference/_dpkit/zenodo/ZenodoPlugin.md | 44 ++ .../reference/_dpkit/zenodo/ZenodoResource.md | 64 +++ .../zenodo/denormalizeZenodoResource.md | 20 + .../_dpkit/zenodo/loadPackageFromZenodo.md | 30 ++ .../_dpkit/zenodo/normalizeZenodoResource.md | 52 +++ .../_dpkit/zenodo/savePackageToZenodo.md | 34 ++ docs/content/docs/reference/_dpkit/zip.md | 19 + .../docs/reference/_dpkit/zip/ZipPlugin.md | 76 ++++ .../_dpkit/zip/loadPackageFromZip.md | 20 + .../reference/_dpkit/zip/savePackageToZip.md | 30 ++ docs/content/docs/reference/dpkit.md | 195 +++++++++ .../docs/reference/dpkit/AnyConstraints.md | 53 +++ docs/content/docs/reference/dpkit/AnyField.md | 128 ++++++ .../docs/reference/dpkit/ArrayConstraints.md | 83 ++++ .../docs/reference/dpkit/ArrayField.md | 128 ++++++ .../docs/reference/dpkit/AssertionError.md | 92 ++++ .../reference/dpkit/BooleanConstraints.md | 53 +++ .../docs/reference/dpkit/BooleanField.md | 148 +++++++ .../docs/reference/dpkit/CamtrapPackage.md | 398 ++++++++++++++++++ .../content/docs/reference/dpkit/CkanField.md | 40 ++ .../docs/reference/dpkit/CkanOrganization.md | 50 +++ .../docs/reference/dpkit/CkanPackage.md | 180 ++++++++ .../docs/reference/dpkit/CkanPlugin.md | 44 ++ .../docs/reference/dpkit/CkanResource.md | 130 ++++++ .../docs/reference/dpkit/CkanSchema.md | 20 + docs/content/docs/reference/dpkit/CkanTag.md | 40 ++ .../docs/reference/dpkit/Contributor.md | 50 +++ .../content/docs/reference/dpkit/CsvPlugin.md | 96 +++++ .../docs/reference/dpkit/DatahubPlugin.md | 44 ++ .../docs/reference/dpkit/DateConstraints.md | 73 ++++ .../content/docs/reference/dpkit/DateField.md | 141 +++++++ .../reference/dpkit/DatetimeConstraints.md | 73 ++++ .../docs/reference/dpkit/DatetimeField.md | 141 +++++++ .../docs/reference/dpkit/Descriptor.md | 10 + docs/content/docs/reference/dpkit/Dialect.md | 221 ++++++++++ docs/content/docs/reference/dpkit/Dpkit.md | 44 ++ .../reference/dpkit/DurationConstraints.md | 73 ++++ .../docs/reference/dpkit/DurationField.md | 128 ++++++ docs/content/docs/reference/dpkit/Field.md | 12 + .../docs/reference/dpkit/FolderPlugin.md | 44 ++ .../docs/reference/dpkit/ForeignKey.md | 43 ++ .../reference/dpkit/GeojsonConstraints.md | 53 +++ .../docs/reference/dpkit/GeojsonField.md | 140 ++++++ .../reference/dpkit/GeopointConstraints.md | 53 +++ .../docs/reference/dpkit/GeopointField.md | 141 +++++++ .../docs/reference/dpkit/GithubLicense.md | 50 +++ .../docs/reference/dpkit/GithubOwner.md | 60 +++ .../docs/reference/dpkit/GithubPackage.md | 224 ++++++++++ .../docs/reference/dpkit/GithubPlugin.md | 44 ++ .../docs/reference/dpkit/GithubResource.md | 70 +++ .../reference/dpkit/InferDialectOptions.md | 18 + .../reference/dpkit/InferSchemaOptions.md | 42 ++ .../docs/reference/dpkit/InlinePlugin.md | 44 ++ .../reference/dpkit/IntegerConstraints.md | 95 +++++ .../docs/reference/dpkit/IntegerField.md | 169 ++++++++ docs/content/docs/reference/dpkit/License.md | 46 ++ .../docs/reference/dpkit/ListConstraints.md | 73 ++++ .../content/docs/reference/dpkit/ListField.md | 148 +++++++ docs/content/docs/reference/dpkit/Metadata.md | 10 + .../docs/reference/dpkit/MetadataError.md | 130 ++++++ .../docs/reference/dpkit/NumberConstraints.md | 93 ++++ .../docs/reference/dpkit/NumberField.md | 158 +++++++ .../docs/reference/dpkit/ObjectConstraints.md | 83 ++++ .../docs/reference/dpkit/ObjectField.md | 128 ++++++ docs/content/docs/reference/dpkit/Package.md | 168 ++++++++ docs/content/docs/reference/dpkit/Plugin.md | 59 +++ .../docs/reference/dpkit/PolarsField.md | 26 ++ .../docs/reference/dpkit/PolarsSchema.md | 16 + docs/content/docs/reference/dpkit/Resource.md | 209 +++++++++ .../docs/reference/dpkit/SaveTableOptions.md | 26 ++ docs/content/docs/reference/dpkit/Schema.md | 93 ++++ docs/content/docs/reference/dpkit/Source.md | 40 ++ .../docs/reference/dpkit/StringConstraints.md | 82 ++++ .../docs/reference/dpkit/StringField.md | 164 ++++++++ docs/content/docs/reference/dpkit/Table.md | 10 + .../docs/reference/dpkit/TableError.md | 10 + .../docs/reference/dpkit/TablePlugin.md | 128 ++++++ .../docs/reference/dpkit/TimeConstraints.md | 73 ++++ .../content/docs/reference/dpkit/TimeField.md | 141 +++++++ .../docs/reference/dpkit/YearConstraints.md | 73 ++++ .../content/docs/reference/dpkit/YearField.md | 128 ++++++ .../reference/dpkit/YearmonthConstraints.md | 73 ++++ .../docs/reference/dpkit/YearmonthField.md | 128 ++++++ .../docs/reference/dpkit/ZenodoCreator.md | 48 +++ .../docs/reference/dpkit/ZenodoPackage.md | 170 ++++++++ .../docs/reference/dpkit/ZenodoPlugin.md | 44 ++ .../docs/reference/dpkit/ZenodoResource.md | 64 +++ .../content/docs/reference/dpkit/ZipPlugin.md | 76 ++++ .../reference/dpkit/assertCamtrapPackage.md | 22 + .../docs/reference/dpkit/assertDialect.md | 22 + .../reference/dpkit/assertLocalPathVacant.md | 20 + .../docs/reference/dpkit/assertPackage.md | 28 ++ .../docs/reference/dpkit/assertResource.md | 28 ++ .../docs/reference/dpkit/assertSchema.md | 22 + docs/content/docs/reference/dpkit/copyFile.md | 26 ++ .../docs/reference/dpkit/createFolder.md | 20 + .../dpkit/denormalizeCkanResource.md | 24 ++ .../reference/dpkit/denormalizeDialect.md | 20 + .../dpkit/denormalizeGithubResource.md | 25 ++ .../reference/dpkit/denormalizePackage.md | 26 ++ .../docs/reference/dpkit/denormalizePath.md | 26 ++ .../reference/dpkit/denormalizeResource.md | 26 ++ .../docs/reference/dpkit/denormalizeSchema.md | 20 + .../dpkit/denormalizeZenodoResource.md | 20 + docs/content/docs/reference/dpkit/dpkit-1.md | 10 + .../docs/reference/dpkit/getBasepath.md | 20 + .../docs/reference/dpkit/getFilename.md | 20 + .../content/docs/reference/dpkit/getFormat.md | 20 + docs/content/docs/reference/dpkit/getName.md | 20 + .../reference/dpkit/getPackageBasepath.md | 20 + .../docs/reference/dpkit/getPolarsSchema.md | 20 + .../docs/reference/dpkit/getTempFilePath.md | 22 + .../docs/reference/dpkit/getTempFolderPath.md | 22 + .../docs/reference/dpkit/inferCsvDialect.md | 24 ++ .../docs/reference/dpkit/inferDialect.md | 24 ++ .../docs/reference/dpkit/inferFormat.md | 20 + .../docs/reference/dpkit/inferSchema.md | 24 ++ .../docs/reference/dpkit/inspectField.md | 38 ++ .../docs/reference/dpkit/inspectTable.md | 34 ++ .../docs/reference/dpkit/isDescriptor.md | 20 + .../docs/reference/dpkit/isLocalPathExist.md | 20 + .../docs/reference/dpkit/isRemotePath.md | 20 + .../docs/reference/dpkit/loadCsvTable.md | 20 + .../docs/reference/dpkit/loadDescriptor.md | 30 ++ .../docs/reference/dpkit/loadDialect.md | 23 + docs/content/docs/reference/dpkit/loadFile.md | 20 + .../docs/reference/dpkit/loadFileStream.md | 30 ++ .../docs/reference/dpkit/loadInlineTable.md | 20 + .../docs/reference/dpkit/loadPackage.md | 20 + .../reference/dpkit/loadPackageDescriptor.md | 23 + .../reference/dpkit/loadPackageFromCkan.md | 24 ++ .../reference/dpkit/loadPackageFromDatahub.md | 20 + .../reference/dpkit/loadPackageFromFolder.md | 20 + .../reference/dpkit/loadPackageFromGithub.md | 30 ++ .../reference/dpkit/loadPackageFromZenodo.md | 30 ++ .../reference/dpkit/loadPackageFromZip.md | 20 + .../docs/reference/dpkit/loadProfile.md | 26 ++ .../reference/dpkit/loadResourceDescriptor.md | 23 + .../docs/reference/dpkit/loadSchema.md | 23 + .../content/docs/reference/dpkit/loadTable.md | 20 + .../docs/reference/dpkit/matchField.md | 32 ++ .../docs/reference/dpkit/mergePackages.md | 28 ++ .../reference/dpkit/normalizeCkanSchema.md | 24 ++ .../docs/reference/dpkit/normalizeDialect.md | 20 + .../docs/reference/dpkit/normalizeField.md | 20 + .../dpkit/normalizeGithubResource.md | 30 ++ .../docs/reference/dpkit/normalizePackage.md | 26 ++ .../docs/reference/dpkit/normalizePath.md | 26 ++ .../docs/reference/dpkit/normalizeResource.md | 26 ++ .../docs/reference/dpkit/normalizeSchema.md | 20 + .../dpkit/normalizeZenodoResource.md | 52 +++ .../docs/reference/dpkit/parseDescriptor.md | 20 + .../docs/reference/dpkit/parseField.md | 30 ++ .../docs/reference/dpkit/prefetchFile.md | 20 + .../docs/reference/dpkit/prefetchFiles.md | 20 + .../docs/reference/dpkit/processTable.md | 30 ++ .../content/docs/reference/dpkit/readTable.md | 20 + .../docs/reference/dpkit/saveCsvTable.md | 24 ++ .../docs/reference/dpkit/saveDescriptor.md | 29 ++ .../docs/reference/dpkit/saveDialect.md | 29 ++ docs/content/docs/reference/dpkit/saveFile.md | 24 ++ .../docs/reference/dpkit/saveFileStream.md | 26 ++ .../docs/reference/dpkit/savePackage.md | 30 ++ .../reference/dpkit/savePackageDescriptor.md | 29 ++ .../docs/reference/dpkit/savePackageToCkan.md | 38 ++ .../reference/dpkit/savePackageToFolder.md | 30 ++ .../reference/dpkit/savePackageToGithub.md | 38 ++ .../reference/dpkit/savePackageToZenodo.md | 34 ++ .../docs/reference/dpkit/savePackageToZip.md | 30 ++ .../reference/dpkit/saveResourceDescriptor.md | 29 ++ .../docs/reference/dpkit/saveResourceFiles.md | 38 ++ .../docs/reference/dpkit/saveSchema.md | 29 ++ .../content/docs/reference/dpkit/saveTable.md | 24 ++ .../reference/dpkit/stringifyDescriptor.md | 20 + .../reference/dpkit/validateDescriptor.md | 30 ++ .../docs/reference/dpkit/validateDialect.md | 22 + .../dpkit/validatePackageDescriptor.md | 28 ++ .../dpkit/validateResourceDescriptor.md | 28 ++ .../docs/reference/dpkit/validateSchema.md | 22 + .../docs/reference/dpkit/validateTable.md | 20 + .../docs/reference/dpkit/writeTempFile.md | 26 ++ dpkit/CHANGELOG.md | 4 + dpkit/OVERVIEW.md | 6 - dpkit/typedoc.json | 1 - file/OVERVIEW.md | 6 - file/typedoc.json | 1 - folder/OVERVIEW.md | 6 - folder/typedoc.json | 1 - github/OVERVIEW.md | 6 - github/typedoc.json | 1 - inline/typedoc.json | 1 - json/OVERVIEW.md | 6 - json/typedoc.json | 1 - parquet/OVERVIEW.md | 6 - parquet/typedoc.json | 1 - table/typedoc.json | 1 - zenodo/OVERVIEW.md | 6 - zenodo/typedoc.json | 1 - zip/OVERVIEW.md | 6 - zip/typedoc.json | 1 - 383 files changed, 19392 insertions(+), 123 deletions(-) delete mode 100644 arrow/OVERVIEW.md delete mode 100644 camtrap/OVERVIEW.md delete mode 100644 ckan/OVERVIEW.md delete mode 100644 core/OVERVIEW.md delete mode 100644 datahub/OVERVIEW.md rename csv/OVERVIEW.md => docs/content/docs/guides/csv.md (98%) create mode 100644 docs/content/docs/guides/inline.md create mode 100644 docs/content/docs/guides/table.md delete mode 100644 docs/content/docs/guides/validation.md create mode 120000 docs/content/docs/overview/changelog.md create mode 100644 docs/content/docs/reference/README.md create mode 100644 docs/content/docs/reference/_dpkit/arrow.md create mode 100644 docs/content/docs/reference/_dpkit/arrow/ArrowPlugin.md create mode 100644 docs/content/docs/reference/_dpkit/arrow/loadArrowTable.md create mode 100644 docs/content/docs/reference/_dpkit/arrow/saveArrowTable.md create mode 100644 docs/content/docs/reference/_dpkit/camtrap.md create mode 100644 docs/content/docs/reference/_dpkit/camtrap/CamtrapPackage.md create mode 100644 docs/content/docs/reference/_dpkit/camtrap/assertCamtrapPackage.md create mode 100644 docs/content/docs/reference/_dpkit/ckan.md create mode 100644 docs/content/docs/reference/_dpkit/ckan/CkanField.md create mode 100644 docs/content/docs/reference/_dpkit/ckan/CkanOrganization.md create mode 100644 docs/content/docs/reference/_dpkit/ckan/CkanPackage.md create mode 100644 docs/content/docs/reference/_dpkit/ckan/CkanPlugin.md create mode 100644 docs/content/docs/reference/_dpkit/ckan/CkanResource.md create mode 100644 docs/content/docs/reference/_dpkit/ckan/CkanSchema.md create mode 100644 docs/content/docs/reference/_dpkit/ckan/CkanTag.md create mode 100644 docs/content/docs/reference/_dpkit/ckan/denormalizeCkanResource.md create mode 100644 docs/content/docs/reference/_dpkit/ckan/loadPackageFromCkan.md create mode 100644 docs/content/docs/reference/_dpkit/ckan/normalizeCkanSchema.md create mode 100644 docs/content/docs/reference/_dpkit/ckan/savePackageToCkan.md create mode 100644 docs/content/docs/reference/_dpkit/core.md create mode 100644 docs/content/docs/reference/_dpkit/core/AnyConstraints.md create mode 100644 docs/content/docs/reference/_dpkit/core/AnyField.md create mode 100644 docs/content/docs/reference/_dpkit/core/ArrayConstraints.md create mode 100644 docs/content/docs/reference/_dpkit/core/ArrayField.md create mode 100644 docs/content/docs/reference/_dpkit/core/AssertionError.md create mode 100644 docs/content/docs/reference/_dpkit/core/BooleanConstraints.md create mode 100644 docs/content/docs/reference/_dpkit/core/BooleanField.md create mode 100644 docs/content/docs/reference/_dpkit/core/Contributor.md create mode 100644 docs/content/docs/reference/_dpkit/core/DateConstraints.md create mode 100644 docs/content/docs/reference/_dpkit/core/DateField.md create mode 100644 docs/content/docs/reference/_dpkit/core/DatetimeConstraints.md create mode 100644 docs/content/docs/reference/_dpkit/core/DatetimeField.md create mode 100644 docs/content/docs/reference/_dpkit/core/Descriptor.md create mode 100644 docs/content/docs/reference/_dpkit/core/Dialect.md create mode 100644 docs/content/docs/reference/_dpkit/core/DurationConstraints.md create mode 100644 docs/content/docs/reference/_dpkit/core/DurationField.md create mode 100644 docs/content/docs/reference/_dpkit/core/Field.md create mode 100644 docs/content/docs/reference/_dpkit/core/ForeignKey.md create mode 100644 docs/content/docs/reference/_dpkit/core/GeojsonConstraints.md create mode 100644 docs/content/docs/reference/_dpkit/core/GeojsonField.md create mode 100644 docs/content/docs/reference/_dpkit/core/GeopointConstraints.md create mode 100644 docs/content/docs/reference/_dpkit/core/GeopointField.md create mode 100644 docs/content/docs/reference/_dpkit/core/IntegerConstraints.md create mode 100644 docs/content/docs/reference/_dpkit/core/IntegerField.md create mode 100644 docs/content/docs/reference/_dpkit/core/License.md create mode 100644 docs/content/docs/reference/_dpkit/core/ListConstraints.md create mode 100644 docs/content/docs/reference/_dpkit/core/ListField.md create mode 100644 docs/content/docs/reference/_dpkit/core/Metadata.md create mode 100644 docs/content/docs/reference/_dpkit/core/MetadataError.md create mode 100644 docs/content/docs/reference/_dpkit/core/NumberConstraints.md create mode 100644 docs/content/docs/reference/_dpkit/core/NumberField.md create mode 100644 docs/content/docs/reference/_dpkit/core/ObjectConstraints.md create mode 100644 docs/content/docs/reference/_dpkit/core/ObjectField.md create mode 100644 docs/content/docs/reference/_dpkit/core/Package.md create mode 100644 docs/content/docs/reference/_dpkit/core/Plugin.md create mode 100644 docs/content/docs/reference/_dpkit/core/Resource.md create mode 100644 docs/content/docs/reference/_dpkit/core/Schema.md create mode 100644 docs/content/docs/reference/_dpkit/core/Source.md create mode 100644 docs/content/docs/reference/_dpkit/core/StringConstraints.md create mode 100644 docs/content/docs/reference/_dpkit/core/StringField.md create mode 100644 docs/content/docs/reference/_dpkit/core/TimeConstraints.md create mode 100644 docs/content/docs/reference/_dpkit/core/TimeField.md create mode 100644 docs/content/docs/reference/_dpkit/core/YearConstraints.md create mode 100644 docs/content/docs/reference/_dpkit/core/YearField.md create mode 100644 docs/content/docs/reference/_dpkit/core/YearmonthConstraints.md create mode 100644 docs/content/docs/reference/_dpkit/core/YearmonthField.md create mode 100644 docs/content/docs/reference/_dpkit/core/assertDialect.md create mode 100644 docs/content/docs/reference/_dpkit/core/assertPackage.md create mode 100644 docs/content/docs/reference/_dpkit/core/assertResource.md create mode 100644 docs/content/docs/reference/_dpkit/core/assertSchema.md create mode 100644 docs/content/docs/reference/_dpkit/core/denormalizeDialect.md create mode 100644 docs/content/docs/reference/_dpkit/core/denormalizePackage.md create mode 100644 docs/content/docs/reference/_dpkit/core/denormalizePath.md create mode 100644 docs/content/docs/reference/_dpkit/core/denormalizeResource.md create mode 100644 docs/content/docs/reference/_dpkit/core/denormalizeSchema.md create mode 100644 docs/content/docs/reference/_dpkit/core/getBasepath.md create mode 100644 docs/content/docs/reference/_dpkit/core/getFilename.md create mode 100644 docs/content/docs/reference/_dpkit/core/getFormat.md create mode 100644 docs/content/docs/reference/_dpkit/core/getName.md create mode 100644 docs/content/docs/reference/_dpkit/core/inferFormat.md create mode 100644 docs/content/docs/reference/_dpkit/core/isDescriptor.md create mode 100644 docs/content/docs/reference/_dpkit/core/isRemotePath.md create mode 100644 docs/content/docs/reference/_dpkit/core/loadDescriptor.md create mode 100644 docs/content/docs/reference/_dpkit/core/loadDialect.md create mode 100644 docs/content/docs/reference/_dpkit/core/loadPackageDescriptor.md create mode 100644 docs/content/docs/reference/_dpkit/core/loadProfile.md create mode 100644 docs/content/docs/reference/_dpkit/core/loadResourceDescriptor.md create mode 100644 docs/content/docs/reference/_dpkit/core/loadSchema.md create mode 100644 docs/content/docs/reference/_dpkit/core/mergePackages.md create mode 100644 docs/content/docs/reference/_dpkit/core/normalizeDialect.md create mode 100644 docs/content/docs/reference/_dpkit/core/normalizeField.md create mode 100644 docs/content/docs/reference/_dpkit/core/normalizePackage.md create mode 100644 docs/content/docs/reference/_dpkit/core/normalizePath.md create mode 100644 docs/content/docs/reference/_dpkit/core/normalizeResource.md create mode 100644 docs/content/docs/reference/_dpkit/core/normalizeSchema.md create mode 100644 docs/content/docs/reference/_dpkit/core/parseDescriptor.md create mode 100644 docs/content/docs/reference/_dpkit/core/saveDescriptor.md create mode 100644 docs/content/docs/reference/_dpkit/core/saveDialect.md create mode 100644 docs/content/docs/reference/_dpkit/core/savePackageDescriptor.md create mode 100644 docs/content/docs/reference/_dpkit/core/saveResourceDescriptor.md create mode 100644 docs/content/docs/reference/_dpkit/core/saveSchema.md create mode 100644 docs/content/docs/reference/_dpkit/core/stringifyDescriptor.md create mode 100644 docs/content/docs/reference/_dpkit/core/validateDescriptor.md create mode 100644 docs/content/docs/reference/_dpkit/core/validateDialect.md create mode 100644 docs/content/docs/reference/_dpkit/core/validatePackageDescriptor.md create mode 100644 docs/content/docs/reference/_dpkit/core/validateResourceDescriptor.md create mode 100644 docs/content/docs/reference/_dpkit/core/validateSchema.md create mode 100644 docs/content/docs/reference/_dpkit/csv.md create mode 100644 docs/content/docs/reference/_dpkit/csv/CsvPlugin.md create mode 100644 docs/content/docs/reference/_dpkit/csv/inferCsvDialect.md create mode 100644 docs/content/docs/reference/_dpkit/csv/loadCsvTable.md create mode 100644 docs/content/docs/reference/_dpkit/csv/saveCsvTable.md create mode 100644 docs/content/docs/reference/_dpkit/datahub.md create mode 100644 docs/content/docs/reference/_dpkit/datahub/DatahubPlugin.md create mode 100644 docs/content/docs/reference/_dpkit/datahub/loadPackageFromDatahub.md create mode 100644 docs/content/docs/reference/_dpkit/file.md create mode 100644 docs/content/docs/reference/_dpkit/file/assertLocalPathVacant.md create mode 100644 docs/content/docs/reference/_dpkit/file/copyFile.md create mode 100644 docs/content/docs/reference/_dpkit/file/getPackageBasepath.md create mode 100644 docs/content/docs/reference/_dpkit/file/getTempFilePath.md create mode 100644 docs/content/docs/reference/_dpkit/file/isLocalPathExist.md create mode 100644 docs/content/docs/reference/_dpkit/file/loadFile.md create mode 100644 docs/content/docs/reference/_dpkit/file/loadFileStream.md create mode 100644 docs/content/docs/reference/_dpkit/file/prefetchFile.md create mode 100644 docs/content/docs/reference/_dpkit/file/prefetchFiles.md create mode 100644 docs/content/docs/reference/_dpkit/file/saveFile.md create mode 100644 docs/content/docs/reference/_dpkit/file/saveFileStream.md create mode 100644 docs/content/docs/reference/_dpkit/file/saveResourceFiles.md create mode 100644 docs/content/docs/reference/_dpkit/file/writeTempFile.md create mode 100644 docs/content/docs/reference/_dpkit/github.md create mode 100644 docs/content/docs/reference/_dpkit/github/GithubLicense.md create mode 100644 docs/content/docs/reference/_dpkit/github/GithubOwner.md create mode 100644 docs/content/docs/reference/_dpkit/github/GithubPackage.md create mode 100644 docs/content/docs/reference/_dpkit/github/GithubPlugin.md create mode 100644 docs/content/docs/reference/_dpkit/github/GithubResource.md create mode 100644 docs/content/docs/reference/_dpkit/github/denormalizeGithubResource.md create mode 100644 docs/content/docs/reference/_dpkit/github/loadPackageFromGithub.md create mode 100644 docs/content/docs/reference/_dpkit/github/normalizeGithubResource.md create mode 100644 docs/content/docs/reference/_dpkit/github/savePackageToGithub.md create mode 100644 docs/content/docs/reference/_dpkit/inline.md create mode 100644 docs/content/docs/reference/_dpkit/inline/InlinePlugin.md create mode 100644 docs/content/docs/reference/_dpkit/inline/loadInlineTable.md create mode 100644 docs/content/docs/reference/_dpkit/parquet.md create mode 100644 docs/content/docs/reference/_dpkit/parquet/ParquetPlugin.md create mode 100644 docs/content/docs/reference/_dpkit/parquet/loadParquetTable.md create mode 100644 docs/content/docs/reference/_dpkit/parquet/saveParquetTable.md create mode 100644 docs/content/docs/reference/_dpkit/table.md create mode 100644 docs/content/docs/reference/_dpkit/table/InferDialectOptions.md create mode 100644 docs/content/docs/reference/_dpkit/table/InferSchemaOptions.md create mode 100644 docs/content/docs/reference/_dpkit/table/PolarsField.md create mode 100644 docs/content/docs/reference/_dpkit/table/PolarsSchema.md create mode 100644 docs/content/docs/reference/_dpkit/table/SaveTableOptions.md create mode 100644 docs/content/docs/reference/_dpkit/table/Table.md create mode 100644 docs/content/docs/reference/_dpkit/table/TableError.md create mode 100644 docs/content/docs/reference/_dpkit/table/TablePlugin.md create mode 100644 docs/content/docs/reference/_dpkit/table/getPolarsSchema.md create mode 100644 docs/content/docs/reference/_dpkit/table/inferSchema.md create mode 100644 docs/content/docs/reference/_dpkit/table/inspectField.md create mode 100644 docs/content/docs/reference/_dpkit/table/inspectTable.md create mode 100644 docs/content/docs/reference/_dpkit/table/matchField.md create mode 100644 docs/content/docs/reference/_dpkit/table/parseField.md create mode 100644 docs/content/docs/reference/_dpkit/table/processTable.md create mode 100644 docs/content/docs/reference/_dpkit/zenodo.md create mode 100644 docs/content/docs/reference/_dpkit/zenodo/ZenodoCreator.md create mode 100644 docs/content/docs/reference/_dpkit/zenodo/ZenodoPackage.md create mode 100644 docs/content/docs/reference/_dpkit/zenodo/ZenodoPlugin.md create mode 100644 docs/content/docs/reference/_dpkit/zenodo/ZenodoResource.md create mode 100644 docs/content/docs/reference/_dpkit/zenodo/denormalizeZenodoResource.md create mode 100644 docs/content/docs/reference/_dpkit/zenodo/loadPackageFromZenodo.md create mode 100644 docs/content/docs/reference/_dpkit/zenodo/normalizeZenodoResource.md create mode 100644 docs/content/docs/reference/_dpkit/zenodo/savePackageToZenodo.md create mode 100644 docs/content/docs/reference/_dpkit/zip.md create mode 100644 docs/content/docs/reference/_dpkit/zip/ZipPlugin.md create mode 100644 docs/content/docs/reference/_dpkit/zip/loadPackageFromZip.md create mode 100644 docs/content/docs/reference/_dpkit/zip/savePackageToZip.md create mode 100644 docs/content/docs/reference/dpkit.md create mode 100644 docs/content/docs/reference/dpkit/AnyConstraints.md create mode 100644 docs/content/docs/reference/dpkit/AnyField.md create mode 100644 docs/content/docs/reference/dpkit/ArrayConstraints.md create mode 100644 docs/content/docs/reference/dpkit/ArrayField.md create mode 100644 docs/content/docs/reference/dpkit/AssertionError.md create mode 100644 docs/content/docs/reference/dpkit/BooleanConstraints.md create mode 100644 docs/content/docs/reference/dpkit/BooleanField.md create mode 100644 docs/content/docs/reference/dpkit/CamtrapPackage.md create mode 100644 docs/content/docs/reference/dpkit/CkanField.md create mode 100644 docs/content/docs/reference/dpkit/CkanOrganization.md create mode 100644 docs/content/docs/reference/dpkit/CkanPackage.md create mode 100644 docs/content/docs/reference/dpkit/CkanPlugin.md create mode 100644 docs/content/docs/reference/dpkit/CkanResource.md create mode 100644 docs/content/docs/reference/dpkit/CkanSchema.md create mode 100644 docs/content/docs/reference/dpkit/CkanTag.md create mode 100644 docs/content/docs/reference/dpkit/Contributor.md create mode 100644 docs/content/docs/reference/dpkit/CsvPlugin.md create mode 100644 docs/content/docs/reference/dpkit/DatahubPlugin.md create mode 100644 docs/content/docs/reference/dpkit/DateConstraints.md create mode 100644 docs/content/docs/reference/dpkit/DateField.md create mode 100644 docs/content/docs/reference/dpkit/DatetimeConstraints.md create mode 100644 docs/content/docs/reference/dpkit/DatetimeField.md create mode 100644 docs/content/docs/reference/dpkit/Descriptor.md create mode 100644 docs/content/docs/reference/dpkit/Dialect.md create mode 100644 docs/content/docs/reference/dpkit/Dpkit.md create mode 100644 docs/content/docs/reference/dpkit/DurationConstraints.md create mode 100644 docs/content/docs/reference/dpkit/DurationField.md create mode 100644 docs/content/docs/reference/dpkit/Field.md create mode 100644 docs/content/docs/reference/dpkit/FolderPlugin.md create mode 100644 docs/content/docs/reference/dpkit/ForeignKey.md create mode 100644 docs/content/docs/reference/dpkit/GeojsonConstraints.md create mode 100644 docs/content/docs/reference/dpkit/GeojsonField.md create mode 100644 docs/content/docs/reference/dpkit/GeopointConstraints.md create mode 100644 docs/content/docs/reference/dpkit/GeopointField.md create mode 100644 docs/content/docs/reference/dpkit/GithubLicense.md create mode 100644 docs/content/docs/reference/dpkit/GithubOwner.md create mode 100644 docs/content/docs/reference/dpkit/GithubPackage.md create mode 100644 docs/content/docs/reference/dpkit/GithubPlugin.md create mode 100644 docs/content/docs/reference/dpkit/GithubResource.md create mode 100644 docs/content/docs/reference/dpkit/InferDialectOptions.md create mode 100644 docs/content/docs/reference/dpkit/InferSchemaOptions.md create mode 100644 docs/content/docs/reference/dpkit/InlinePlugin.md create mode 100644 docs/content/docs/reference/dpkit/IntegerConstraints.md create mode 100644 docs/content/docs/reference/dpkit/IntegerField.md create mode 100644 docs/content/docs/reference/dpkit/License.md create mode 100644 docs/content/docs/reference/dpkit/ListConstraints.md create mode 100644 docs/content/docs/reference/dpkit/ListField.md create mode 100644 docs/content/docs/reference/dpkit/Metadata.md create mode 100644 docs/content/docs/reference/dpkit/MetadataError.md create mode 100644 docs/content/docs/reference/dpkit/NumberConstraints.md create mode 100644 docs/content/docs/reference/dpkit/NumberField.md create mode 100644 docs/content/docs/reference/dpkit/ObjectConstraints.md create mode 100644 docs/content/docs/reference/dpkit/ObjectField.md create mode 100644 docs/content/docs/reference/dpkit/Package.md create mode 100644 docs/content/docs/reference/dpkit/Plugin.md create mode 100644 docs/content/docs/reference/dpkit/PolarsField.md create mode 100644 docs/content/docs/reference/dpkit/PolarsSchema.md create mode 100644 docs/content/docs/reference/dpkit/Resource.md create mode 100644 docs/content/docs/reference/dpkit/SaveTableOptions.md create mode 100644 docs/content/docs/reference/dpkit/Schema.md create mode 100644 docs/content/docs/reference/dpkit/Source.md create mode 100644 docs/content/docs/reference/dpkit/StringConstraints.md create mode 100644 docs/content/docs/reference/dpkit/StringField.md create mode 100644 docs/content/docs/reference/dpkit/Table.md create mode 100644 docs/content/docs/reference/dpkit/TableError.md create mode 100644 docs/content/docs/reference/dpkit/TablePlugin.md create mode 100644 docs/content/docs/reference/dpkit/TimeConstraints.md create mode 100644 docs/content/docs/reference/dpkit/TimeField.md create mode 100644 docs/content/docs/reference/dpkit/YearConstraints.md create mode 100644 docs/content/docs/reference/dpkit/YearField.md create mode 100644 docs/content/docs/reference/dpkit/YearmonthConstraints.md create mode 100644 docs/content/docs/reference/dpkit/YearmonthField.md create mode 100644 docs/content/docs/reference/dpkit/ZenodoCreator.md create mode 100644 docs/content/docs/reference/dpkit/ZenodoPackage.md create mode 100644 docs/content/docs/reference/dpkit/ZenodoPlugin.md create mode 100644 docs/content/docs/reference/dpkit/ZenodoResource.md create mode 100644 docs/content/docs/reference/dpkit/ZipPlugin.md create mode 100644 docs/content/docs/reference/dpkit/assertCamtrapPackage.md create mode 100644 docs/content/docs/reference/dpkit/assertDialect.md create mode 100644 docs/content/docs/reference/dpkit/assertLocalPathVacant.md create mode 100644 docs/content/docs/reference/dpkit/assertPackage.md create mode 100644 docs/content/docs/reference/dpkit/assertResource.md create mode 100644 docs/content/docs/reference/dpkit/assertSchema.md create mode 100644 docs/content/docs/reference/dpkit/copyFile.md create mode 100644 docs/content/docs/reference/dpkit/createFolder.md create mode 100644 docs/content/docs/reference/dpkit/denormalizeCkanResource.md create mode 100644 docs/content/docs/reference/dpkit/denormalizeDialect.md create mode 100644 docs/content/docs/reference/dpkit/denormalizeGithubResource.md create mode 100644 docs/content/docs/reference/dpkit/denormalizePackage.md create mode 100644 docs/content/docs/reference/dpkit/denormalizePath.md create mode 100644 docs/content/docs/reference/dpkit/denormalizeResource.md create mode 100644 docs/content/docs/reference/dpkit/denormalizeSchema.md create mode 100644 docs/content/docs/reference/dpkit/denormalizeZenodoResource.md create mode 100644 docs/content/docs/reference/dpkit/dpkit-1.md create mode 100644 docs/content/docs/reference/dpkit/getBasepath.md create mode 100644 docs/content/docs/reference/dpkit/getFilename.md create mode 100644 docs/content/docs/reference/dpkit/getFormat.md create mode 100644 docs/content/docs/reference/dpkit/getName.md create mode 100644 docs/content/docs/reference/dpkit/getPackageBasepath.md create mode 100644 docs/content/docs/reference/dpkit/getPolarsSchema.md create mode 100644 docs/content/docs/reference/dpkit/getTempFilePath.md create mode 100644 docs/content/docs/reference/dpkit/getTempFolderPath.md create mode 100644 docs/content/docs/reference/dpkit/inferCsvDialect.md create mode 100644 docs/content/docs/reference/dpkit/inferDialect.md create mode 100644 docs/content/docs/reference/dpkit/inferFormat.md create mode 100644 docs/content/docs/reference/dpkit/inferSchema.md create mode 100644 docs/content/docs/reference/dpkit/inspectField.md create mode 100644 docs/content/docs/reference/dpkit/inspectTable.md create mode 100644 docs/content/docs/reference/dpkit/isDescriptor.md create mode 100644 docs/content/docs/reference/dpkit/isLocalPathExist.md create mode 100644 docs/content/docs/reference/dpkit/isRemotePath.md create mode 100644 docs/content/docs/reference/dpkit/loadCsvTable.md create mode 100644 docs/content/docs/reference/dpkit/loadDescriptor.md create mode 100644 docs/content/docs/reference/dpkit/loadDialect.md create mode 100644 docs/content/docs/reference/dpkit/loadFile.md create mode 100644 docs/content/docs/reference/dpkit/loadFileStream.md create mode 100644 docs/content/docs/reference/dpkit/loadInlineTable.md create mode 100644 docs/content/docs/reference/dpkit/loadPackage.md create mode 100644 docs/content/docs/reference/dpkit/loadPackageDescriptor.md create mode 100644 docs/content/docs/reference/dpkit/loadPackageFromCkan.md create mode 100644 docs/content/docs/reference/dpkit/loadPackageFromDatahub.md create mode 100644 docs/content/docs/reference/dpkit/loadPackageFromFolder.md create mode 100644 docs/content/docs/reference/dpkit/loadPackageFromGithub.md create mode 100644 docs/content/docs/reference/dpkit/loadPackageFromZenodo.md create mode 100644 docs/content/docs/reference/dpkit/loadPackageFromZip.md create mode 100644 docs/content/docs/reference/dpkit/loadProfile.md create mode 100644 docs/content/docs/reference/dpkit/loadResourceDescriptor.md create mode 100644 docs/content/docs/reference/dpkit/loadSchema.md create mode 100644 docs/content/docs/reference/dpkit/loadTable.md create mode 100644 docs/content/docs/reference/dpkit/matchField.md create mode 100644 docs/content/docs/reference/dpkit/mergePackages.md create mode 100644 docs/content/docs/reference/dpkit/normalizeCkanSchema.md create mode 100644 docs/content/docs/reference/dpkit/normalizeDialect.md create mode 100644 docs/content/docs/reference/dpkit/normalizeField.md create mode 100644 docs/content/docs/reference/dpkit/normalizeGithubResource.md create mode 100644 docs/content/docs/reference/dpkit/normalizePackage.md create mode 100644 docs/content/docs/reference/dpkit/normalizePath.md create mode 100644 docs/content/docs/reference/dpkit/normalizeResource.md create mode 100644 docs/content/docs/reference/dpkit/normalizeSchema.md create mode 100644 docs/content/docs/reference/dpkit/normalizeZenodoResource.md create mode 100644 docs/content/docs/reference/dpkit/parseDescriptor.md create mode 100644 docs/content/docs/reference/dpkit/parseField.md create mode 100644 docs/content/docs/reference/dpkit/prefetchFile.md create mode 100644 docs/content/docs/reference/dpkit/prefetchFiles.md create mode 100644 docs/content/docs/reference/dpkit/processTable.md create mode 100644 docs/content/docs/reference/dpkit/readTable.md create mode 100644 docs/content/docs/reference/dpkit/saveCsvTable.md create mode 100644 docs/content/docs/reference/dpkit/saveDescriptor.md create mode 100644 docs/content/docs/reference/dpkit/saveDialect.md create mode 100644 docs/content/docs/reference/dpkit/saveFile.md create mode 100644 docs/content/docs/reference/dpkit/saveFileStream.md create mode 100644 docs/content/docs/reference/dpkit/savePackage.md create mode 100644 docs/content/docs/reference/dpkit/savePackageDescriptor.md create mode 100644 docs/content/docs/reference/dpkit/savePackageToCkan.md create mode 100644 docs/content/docs/reference/dpkit/savePackageToFolder.md create mode 100644 docs/content/docs/reference/dpkit/savePackageToGithub.md create mode 100644 docs/content/docs/reference/dpkit/savePackageToZenodo.md create mode 100644 docs/content/docs/reference/dpkit/savePackageToZip.md create mode 100644 docs/content/docs/reference/dpkit/saveResourceDescriptor.md create mode 100644 docs/content/docs/reference/dpkit/saveResourceFiles.md create mode 100644 docs/content/docs/reference/dpkit/saveSchema.md create mode 100644 docs/content/docs/reference/dpkit/saveTable.md create mode 100644 docs/content/docs/reference/dpkit/stringifyDescriptor.md create mode 100644 docs/content/docs/reference/dpkit/validateDescriptor.md create mode 100644 docs/content/docs/reference/dpkit/validateDialect.md create mode 100644 docs/content/docs/reference/dpkit/validatePackageDescriptor.md create mode 100644 docs/content/docs/reference/dpkit/validateResourceDescriptor.md create mode 100644 docs/content/docs/reference/dpkit/validateSchema.md create mode 100644 docs/content/docs/reference/dpkit/validateTable.md create mode 100644 docs/content/docs/reference/dpkit/writeTempFile.md delete mode 100644 dpkit/OVERVIEW.md delete mode 100644 file/OVERVIEW.md delete mode 100644 folder/OVERVIEW.md delete mode 100644 github/OVERVIEW.md delete mode 100644 json/OVERVIEW.md delete mode 100644 parquet/OVERVIEW.md delete mode 100644 zenodo/OVERVIEW.md delete mode 100644 zip/OVERVIEW.md diff --git a/arrow/OVERVIEW.md b/arrow/OVERVIEW.md deleted file mode 100644 index 8425e66a..00000000 --- a/arrow/OVERVIEW.md +++ /dev/null @@ -1,6 +0,0 @@ -# @dpkit/arrow - -:::note -This overview is under development. -::: - diff --git a/arrow/typedoc.json b/arrow/typedoc.json index fc33b815..f8e49f3a 100644 --- a/arrow/typedoc.json +++ b/arrow/typedoc.json @@ -1,5 +1,4 @@ { "entryPoints": ["index.ts"], - "projectDocuments": ["CHANGELOG.md", "OVERVIEW.md"], "skipErrorChecking": true } diff --git a/camtrap/OVERVIEW.md b/camtrap/OVERVIEW.md deleted file mode 100644 index ee2ed4ad..00000000 --- a/camtrap/OVERVIEW.md +++ /dev/null @@ -1,6 +0,0 @@ -# @dpkit/camtrap - -:::note -This overview is under development. -::: - diff --git a/camtrap/typedoc.json b/camtrap/typedoc.json index fc33b815..f8e49f3a 100644 --- a/camtrap/typedoc.json +++ b/camtrap/typedoc.json @@ -1,5 +1,4 @@ { "entryPoints": ["index.ts"], - "projectDocuments": ["CHANGELOG.md", "OVERVIEW.md"], "skipErrorChecking": true } diff --git a/ckan/OVERVIEW.md b/ckan/OVERVIEW.md deleted file mode 100644 index abec8174..00000000 --- a/ckan/OVERVIEW.md +++ /dev/null @@ -1,6 +0,0 @@ -# @dpkit/ckan - -:::note -This overview is under development. -::: - diff --git a/ckan/typedoc.json b/ckan/typedoc.json index fc33b815..f8e49f3a 100644 --- a/ckan/typedoc.json +++ b/ckan/typedoc.json @@ -1,5 +1,4 @@ { "entryPoints": ["index.ts"], - "projectDocuments": ["CHANGELOG.md", "OVERVIEW.md"], "skipErrorChecking": true } diff --git a/core/OVERVIEW.md b/core/OVERVIEW.md deleted file mode 100644 index 1480d04e..00000000 --- a/core/OVERVIEW.md +++ /dev/null @@ -1,6 +0,0 @@ -# @dpkit/core - -:::note -This overview is under development. -::: - diff --git a/core/typedoc.json b/core/typedoc.json index fc33b815..f8e49f3a 100644 --- a/core/typedoc.json +++ b/core/typedoc.json @@ -1,5 +1,4 @@ { "entryPoints": ["index.ts"], - "projectDocuments": ["CHANGELOG.md", "OVERVIEW.md"], "skipErrorChecking": true } diff --git a/csv/typedoc.json b/csv/typedoc.json index fc33b815..f8e49f3a 100644 --- a/csv/typedoc.json +++ b/csv/typedoc.json @@ -1,5 +1,4 @@ { "entryPoints": ["index.ts"], - "projectDocuments": ["CHANGELOG.md", "OVERVIEW.md"], "skipErrorChecking": true } diff --git a/datahub/OVERVIEW.md b/datahub/OVERVIEW.md deleted file mode 100644 index 340e14b6..00000000 --- a/datahub/OVERVIEW.md +++ /dev/null @@ -1,6 +0,0 @@ -# @dpkit/datahub - -:::note -This overview is under development. -::: - diff --git a/datahub/typedoc.json b/datahub/typedoc.json index fc33b815..f8e49f3a 100644 --- a/datahub/typedoc.json +++ b/datahub/typedoc.json @@ -1,5 +1,4 @@ { "entryPoints": ["index.ts"], - "projectDocuments": ["CHANGELOG.md", "OVERVIEW.md"], "skipErrorChecking": true } diff --git a/docs/astro.config.ts b/docs/astro.config.ts index d7cfe251..da6184b6 100644 --- a/docs/astro.config.ts +++ b/docs/astro.config.ts @@ -58,9 +58,9 @@ export default defineConfig({ entryPoints: generatePackageEntrypoints(), tsconfig: "../tsconfig.json", typeDoc: { entryPointStrategy: "packages", router: "structure" }, - output: "packages", + output: "reference", sidebar: { - label: "Packages", + label: "API Reference", collapsed: true, }, }), @@ -69,7 +69,7 @@ export default defineConfig({ { label: "Overview", autogenerate: { directory: "overview" } }, { label: "Guides", autogenerate: { directory: "guides" } }, { - label: "Packages", + label: "API Reference", collapsed: true, items: generatePackageSidebars(), }, @@ -105,20 +105,6 @@ function generatePackageSidebar(props: { name: string }) { return { label: name, collapsed: true, - items: [ - { - label: "Overview", - slug: `packages/${slug}/overview`, - }, - { - label: "Changelog", - slug: `packages/${slug}/changelog`, - }, - { - label: "API Reference", - autogenerate: { directory: `packages/${slug}/index` }, - //collapsed: true, - }, - ], + autogenerate: { directory: `reference/${slug}` }, } } diff --git a/csv/OVERVIEW.md b/docs/content/docs/guides/csv.md similarity index 98% rename from csv/OVERVIEW.md rename to docs/content/docs/guides/csv.md index a8128bb2..7f98e9e9 100644 --- a/csv/OVERVIEW.md +++ b/docs/content/docs/guides/csv.md @@ -1,5 +1,6 @@ -# @dpkit/csv - +--- +title: Working with CSV +--- Comprehensive CSV and TSV file handling with automatic format detection, advanced header processing, and high-performance data operations. ## Introduction diff --git a/docs/content/docs/guides/inline.md b/docs/content/docs/guides/inline.md new file mode 100644 index 00000000..0f77f01d --- /dev/null +++ b/docs/content/docs/guides/inline.md @@ -0,0 +1,97 @@ +--- +title: Working with inline data +--- + +Dpkit provides a package for reading inline data tables embedded directly in data package resources. + +## Array Format Data + +```typescript +import { readInlineTable } from "@dpkit/inline" + +const resource = { + name: "languages", + type: "table", + data: [ + ["id", "name"], + [1, "english"], + [2, "中文"] + ] +} + +const table = await readInlineTable(resource) +``` + +## Object Format Data + +```typescript +const resource = { + name: "languages", + type: "table", + data: [ + { id: 1, name: "english" }, + { id: 2, name: "中文" } + ] +} + +const table = await readInlineTable(resource) +``` + +## With Processing Based on Schema + +```typescript +const resource = { + name: "languages", + type: "table", + data: [ + ["id", "name"], + [1, "english"], + [2, "中文"] + ], + schema: { + fields: [ + { name: "id", type: "integer" }, + { name: "name", type: "string" } + ] + } +} + +const table = await readInlineTable(resource) +``` + +## Inline Resource Validation + +```typescript +import { validateInlineTable } from "@dpkit/inline" + +const resource = { + name: "languages", + type: "table", + data: [ + ["id", "name"], + [1, "english"], + [2, "中文"] + ], + schema: { + fields: [ + { name: "id", type: "integer" }, + { name: "name", type: "integer" } + ] + } +} + +const {valid, errors} = await validateInlineTable(resource) +//{ +// type: "cell/type", +// fieldName: "name", +// rowNumber: 1, +// cell: "english", +//} +//{ +// type: "cell/type", +// fieldName: "name", +// rowNumber: 2, +// cell: "中文", +//} +``` + diff --git a/docs/content/docs/guides/table.md b/docs/content/docs/guides/table.md new file mode 100644 index 00000000..907c9e3a --- /dev/null +++ b/docs/content/docs/guides/table.md @@ -0,0 +1,224 @@ +--- +title: Working with tabular data +--- + +The `@dpkit/table` package provides high-performance data validation and processing capabilities for tabular data. Built on top of **nodejs-polars** (a Rust-based DataFrame library), it offers robust schema validation, type inference, and error handling for CSV, Excel, and other tabular data formats. + +## Examples + +### Basic Table Inspection + +```typescript +import { DataFrame } from "nodejs-polars" +import { inspectTable } from "@dpkit/table" +import type { Schema } from "@dpkit/core" + +// Create a table from data +const table = DataFrame({ + id: [1, 2, 3], + name: ["John", "Jane", "Bob"], + email: ["john@example.com", "jane@example.com", "bob@example.com"] +}).lazy() + +// Define schema with constraints +const schema: Schema = { + fields: [ + { name: "id", type: "integer", constraints: { required: true, unique: true } }, + { name: "name", type: "string", constraints: { required: true } }, + { name: "email", type: "string", constraints: { pattern: "^[^@]+@[^@]+\\.[^@]+$" } } + ] +} + +// Inspect the table +const errors = await inspectTable(table, { schema }) +console.log(errors) // Array of validation errors +``` + +### Schema Inference + +```typescript +import { inferSchema } from "@dpkit/table" + +// Automatically infer schema from data patterns +const table = DataFrame({ + id: ["1", "2", "3"], + price: ["10.50", "25.00", "15.75"], + date: ["2023-01-15", "2023-02-20", "2023-03-25"], + active: ["true", "false", "true"] +}).lazy() + +const inferredSchema = await inferSchema(table, { + sampleSize: 100, // Sample size for inference + confidence: 0.9, // Confidence threshold + monthFirst: false, // Date format preference + commaDecimal: false // Decimal separator preference +}) + +// Result: automatically detected integer, number, date, and boolean types +``` + +### Field Matching Strategies + +```typescript +// Subset matching - data can have extra fields +const schema: Schema = { + fieldsMatch: "subset", + fields: [ + { name: "id", type: "number" }, + { name: "name", type: "string" } + ] +} + +// Equal matching - field names must match regardless of order +const equalSchema: Schema = { + fieldsMatch: "equal", + fields: [ + { name: "id", type: "number" }, + { name: "name", type: "string" } + ] +} +``` + +### Table Processing + +```typescript +import { processTable } from "@dpkit/table" + +// Process table with schema (converts string columns to proper types) +const table = DataFrame({ + id: ["1", "2", "3"], // String data + price: ["10.50", "25.00", "15.75"], + active: ["true", "false", "true"], + date: ["2023-01-15", "2023-02-20", "2023-03-25"] +}).lazy() + +const schema: Schema = { + fields: [ + { name: "id", type: "integer" }, + { name: "price", type: "number" }, + { name: "active", type: "boolean" }, + { name: "date", type: "date" } + ] +} + +const processedTable = await processTable(table, { schema }) +const result = await processedTable.collect() + +// Result will have properly typed columns: +// { id: 1, price: 10.50, active: true, date: Date('2023-01-15') } +// { id: 2, price: 25.00, active: false, date: Date('2023-02-20') } +// { id: 3, price: 15.75, active: true, date: Date('2023-03-25') } +``` + +### Error Handling + +```typescript +const result = await inspectTable(table, { schema }) + +result.errors.forEach(error => { + switch (error.type) { + case "cell/required": + console.log(`Required field missing in row ${error.rowNumber}: '${error.fieldName}'`) + break + case "cell/unique": + console.log(`Duplicate value in row ${error.rowNumber}: '${error.cell}'`) + break + case "cell/pattern": + console.log(`Pattern mismatch: '${error.cell}' doesn't match ${error.constraint}`) + break + } +}) +``` + +## Core Architecture + +### Table Type +The package uses `LazyDataFrame` from nodejs-polars as its core table representation, enabling lazy evaluation and efficient processing of large datasets through vectorized operations. + +### Schema Integration +Integrates seamlessly with `@dpkit/core` schemas, bridging Data Package field definitions with Polars data types for comprehensive validation workflows. + +## Key Features + +### 1. Multi-Level Validation System + +**Field-Level Validation:** +- **Type Validation**: Converts and validates data types (string → integer, etc.) +- **Name Validation**: Ensures field names match schema requirements +- **Constraint Validation**: Enforces required, unique, enum, pattern, min/max values, and length constraints + +**Table-Level Validation:** +- **Field Presence**: Validates missing/extra fields based on flexible matching strategies +- **Schema Compatibility**: Ensures data structure aligns with schema definitions + +**Row-Level Validation:** +- **Primary Key Uniqueness**: Validates unique identifiers +- **Composite Keys**: Supports multi-column unique constraints + +### 2. Comprehensive Field Types + +**Primitive Types:** +- `string`, `integer`, `number`, `boolean` + +**Temporal Types:** +- `date`, `datetime`, `time`, `year`, `yearmonth`, `duration` + +**Spatial Types:** +- `geopoint`, `geojson` + +**Complex Types:** +- `array`, `list`, `object` + +### 3. Smart Schema Inference + +Automatically infers field types and formats from data using: +- Regex pattern matching with configurable confidence thresholds +- Locale-specific format detection (comma decimals, date formats) +- Complex type recognition (objects, arrays, temporal data) + +### 4. Flexible Field Matching Strategies + +- **exact**: Fields must match exactly in order and count +- **equal**: Same fields in any order +- **subset**: Data must contain all schema fields (extras allowed) +- **superset**: Schema must contain all data fields +- **partial**: At least one field must match + +### 5. Advanced Data Processing + +**Format-Aware Parsing:** +- Handles missing values at schema and field levels +- Supports group/decimal character customization +- Processes currency symbols and whitespace +- Parses complex formats (ISO dates, scientific notation) + +**Performance Optimizations:** +- Sample-based validation for large datasets +- Lazy evaluation for memory efficiency +- Vectorized constraint checking +- Configurable error limits and batch processing + +## Error Handling + +### Comprehensive Error Taxonomy + +**Field Errors:** +- Name mismatches between schema and data +- Type conversion failures +- Missing or extra field violations + +**Cell Errors:** +- Type validation failures with specific conversion details +- Constraint violations (required, unique, enum, pattern, range, length) +- Format parsing errors with problematic values + +**Row Errors:** +- Unique key constraint violations +- Composite constraint failures + +### Error Details +Each error includes: +- Precise row and column locations +- Actual vs expected values +- Specific error type classification +- Actionable error messages for debugging diff --git a/docs/content/docs/guides/validation.md b/docs/content/docs/guides/validation.md deleted file mode 100644 index beea8e8a..00000000 --- a/docs/content/docs/guides/validation.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Validation ---- - -:::note -This guide is under development. -::: - - diff --git a/docs/content/docs/overview/changelog.md b/docs/content/docs/overview/changelog.md new file mode 120000 index 00000000..eedd1ec2 --- /dev/null +++ b/docs/content/docs/overview/changelog.md @@ -0,0 +1 @@ +../../../../dpkit/CHANGELOG.md \ No newline at end of file diff --git a/docs/content/docs/reference/README.md b/docs/content/docs/reference/README.md new file mode 100644 index 00000000..b58b7081 --- /dev/null +++ b/docs/content/docs/reference/README.md @@ -0,0 +1,23 @@ +--- +editUrl: false +next: false +prev: false +title: "Documentation" +--- + +## Packages + +- [@dpkit/arrow](/reference/_dpkit/arrow/) +- [@dpkit/camtrap](/reference/_dpkit/camtrap/) +- [@dpkit/ckan](/reference/_dpkit/ckan/) +- [@dpkit/core](/reference/_dpkit/core/) +- [@dpkit/csv](/reference/_dpkit/csv/) +- [@dpkit/datahub](/reference/_dpkit/datahub/) +- [@dpkit/file](/reference/_dpkit/file/) +- [@dpkit/github](/reference/_dpkit/github/) +- [@dpkit/inline](/reference/_dpkit/inline/) +- [@dpkit/parquet](/reference/_dpkit/parquet/) +- [@dpkit/table](/reference/_dpkit/table/) +- [@dpkit/zenodo](/reference/_dpkit/zenodo/) +- [@dpkit/zip](/reference/_dpkit/zip/) +- [dpkit](/reference/dpkit/) diff --git a/docs/content/docs/reference/_dpkit/arrow.md b/docs/content/docs/reference/_dpkit/arrow.md new file mode 100644 index 00000000..13b7fcd8 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/arrow.md @@ -0,0 +1,19 @@ +--- +editUrl: false +next: false +prev: false +title: "@dpkit/arrow" +--- + +# @dpkit/arrow + +dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). + +## Classes + +- [ArrowPlugin](/reference/_dpkit/arrow/arrowplugin/) + +## Functions + +- [loadArrowTable](/reference/_dpkit/arrow/loadarrowtable/) +- [saveArrowTable](/reference/_dpkit/arrow/savearrowtable/) diff --git a/docs/content/docs/reference/_dpkit/arrow/ArrowPlugin.md b/docs/content/docs/reference/_dpkit/arrow/ArrowPlugin.md new file mode 100644 index 00000000..3570c5ae --- /dev/null +++ b/docs/content/docs/reference/_dpkit/arrow/ArrowPlugin.md @@ -0,0 +1,70 @@ +--- +editUrl: false +next: false +prev: false +title: "ArrowPlugin" +--- + +Defined in: [plugin.ts:7](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/arrow/plugin.ts#L7) + +## Implements + +- [`TablePlugin`](/reference/dpkit/tableplugin/) + +## Constructors + +### Constructor + +> **new ArrowPlugin**(): `ArrowPlugin` + +#### Returns + +`ArrowPlugin` + +## Methods + +### loadTable() + +> **loadTable**(`resource`): `Promise`\<`undefined` \| `LazyDataFrame`\> + +Defined in: [plugin.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/arrow/plugin.ts#L8) + +#### Parameters + +##### resource + +`Partial`\<[`Resource`](/reference/dpkit/resource/)\> + +#### Returns + +`Promise`\<`undefined` \| `LazyDataFrame`\> + +#### Implementation of + +[`TablePlugin`](/reference/dpkit/tableplugin/).[`loadTable`](/reference/dpkit/tableplugin/#loadtable) + +*** + +### saveTable() + +> **saveTable**(`table`, `options`): `Promise`\<`undefined` \| `string`\> + +Defined in: [plugin.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/arrow/plugin.ts#L15) + +#### Parameters + +##### table + +`LazyDataFrame` + +##### options + +[`SaveTableOptions`](/reference/dpkit/savetableoptions/) + +#### Returns + +`Promise`\<`undefined` \| `string`\> + +#### Implementation of + +[`TablePlugin`](/reference/dpkit/tableplugin/).[`saveTable`](/reference/dpkit/tableplugin/#savetable) diff --git a/docs/content/docs/reference/_dpkit/arrow/loadArrowTable.md b/docs/content/docs/reference/_dpkit/arrow/loadArrowTable.md new file mode 100644 index 00000000..ca1859fe --- /dev/null +++ b/docs/content/docs/reference/_dpkit/arrow/loadArrowTable.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "loadArrowTable" +--- + +> **loadArrowTable**(`resource`): `Promise`\<`LazyDataFrame`\> + +Defined in: [table/load.ts:7](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/arrow/table/load.ts#L7) + +## Parameters + +### resource + +`Partial`\<[`Resource`](/reference/dpkit/resource/)\> + +## Returns + +`Promise`\<`LazyDataFrame`\> diff --git a/docs/content/docs/reference/_dpkit/arrow/saveArrowTable.md b/docs/content/docs/reference/_dpkit/arrow/saveArrowTable.md new file mode 100644 index 00000000..0ae18f9e --- /dev/null +++ b/docs/content/docs/reference/_dpkit/arrow/saveArrowTable.md @@ -0,0 +1,24 @@ +--- +editUrl: false +next: false +prev: false +title: "saveArrowTable" +--- + +> **saveArrowTable**(`table`, `options`): `Promise`\<`string`\> + +Defined in: [table/save.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/arrow/table/save.ts#L6) + +## Parameters + +### table + +`LazyDataFrame` + +### options + +[`SaveTableOptions`](/reference/dpkit/savetableoptions/) + +## Returns + +`Promise`\<`string`\> diff --git a/docs/content/docs/reference/_dpkit/camtrap.md b/docs/content/docs/reference/_dpkit/camtrap.md new file mode 100644 index 00000000..3d0daa77 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/camtrap.md @@ -0,0 +1,18 @@ +--- +editUrl: false +next: false +prev: false +title: "@dpkit/camtrap" +--- + +# @dpkit/camtrap + +dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). + +## Interfaces + +- [CamtrapPackage](/reference/_dpkit/camtrap/camtrappackage/) + +## Functions + +- [assertCamtrapPackage](/reference/_dpkit/camtrap/assertcamtrappackage/) diff --git a/docs/content/docs/reference/_dpkit/camtrap/CamtrapPackage.md b/docs/content/docs/reference/_dpkit/camtrap/CamtrapPackage.md new file mode 100644 index 00000000..5f47782c --- /dev/null +++ b/docs/content/docs/reference/_dpkit/camtrap/CamtrapPackage.md @@ -0,0 +1,398 @@ +--- +editUrl: false +next: false +prev: false +title: "CamtrapPackage" +--- + +Defined in: [camtrap/package/Package.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/camtrap/package/Package.ts#L8) + +Camera Trap Data Package interface built on top of the TDWG specification + +## See + +https://camtrap-dp.tdwg.org/metadata/ + +## Extends + +- [`Package`](/reference/dpkit/package/) + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### $schema? + +> `optional` **$schema**: `string` + +Defined in: core/build/package/Package.d.ts:21 + +Package schema URL for validation + +#### Inherited from + +[`Package`](/reference/dpkit/package/).[`$schema`](/reference/dpkit/package/#schema) + +*** + +### bibliographicCitation? + +> `optional` **bibliographicCitation**: `string` + +Defined in: [camtrap/package/Package.ts:130](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/camtrap/package/Package.ts#L130) + +Bibliographic citation for the dataset + +*** + +### contributors + +> **contributors**: `CamtrapContributor`[] + +Defined in: [camtrap/package/Package.ts:26](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/camtrap/package/Package.ts#L26) + +Contributors to the package + +#### Required + +#### Overrides + +[`Package`](/reference/dpkit/package/).[`contributors`](/reference/dpkit/package/#contributors) + +*** + +### coordinatePrecision? + +> `optional` **coordinatePrecision**: `number` + +Defined in: [camtrap/package/Package.ts:125](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/camtrap/package/Package.ts#L125) + +Precision of geographic coordinates + +*** + +### created + +> **created**: `string` + +Defined in: [camtrap/package/Package.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/camtrap/package/Package.ts#L20) + +Creation date of the package + +#### Required + +#### Format + +ISO 8601 + +#### Overrides + +[`Package`](/reference/dpkit/package/).[`created`](/reference/dpkit/package/#created) + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: core/build/package/Package.d.ts:29 + +A description of the package + +#### Inherited from + +[`Package`](/reference/dpkit/package/).[`description`](/reference/dpkit/package/#description) + +*** + +### homepage? + +> `optional` **homepage**: `string` + +Defined in: core/build/package/Package.d.ts:33 + +A URL for the home page of the package + +#### Inherited from + +[`Package`](/reference/dpkit/package/).[`homepage`](/reference/dpkit/package/#homepage) + +*** + +### image? + +> `optional` **image**: `string` + +Defined in: core/build/package/Package.d.ts:63 + +Package image + +#### Inherited from + +[`Package`](/reference/dpkit/package/).[`image`](/reference/dpkit/package/#image) + +*** + +### keywords? + +> `optional` **keywords**: `string`[] + +Defined in: core/build/package/Package.d.ts:54 + +Keywords for the package + +#### Inherited from + +[`Package`](/reference/dpkit/package/).[`keywords`](/reference/dpkit/package/#keywords) + +*** + +### licenses? + +> `optional` **licenses**: `CamtrapLicense`[] + +Defined in: [camtrap/package/Package.ts:141](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/camtrap/package/Package.ts#L141) + +Licenses for the package +Extended with scope property + +#### Overrides + +[`Package`](/reference/dpkit/package/).[`licenses`](/reference/dpkit/package/#licenses) + +*** + +### name? + +> `optional` **name**: `string` + +Defined in: core/build/package/Package.d.ts:17 + +Unique package identifier +Should use lowercase alphanumeric characters, periods, hyphens, and underscores + +#### Inherited from + +[`Package`](/reference/dpkit/package/).[`name`](/reference/dpkit/package/#name) + +*** + +### profile + +> **profile**: `string` + +Defined in: [camtrap/package/Package.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/camtrap/package/Package.ts#L13) + +Package profile identifier + +#### Required + +*** + +### project + +> **project**: `object` + +Defined in: [camtrap/package/Package.ts:32](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/camtrap/package/Package.ts#L32) + +Project metadata + +#### acronym? + +> `optional` **acronym**: `string` + +Project acronym + +#### captureMethod + +> **captureMethod**: (`"activityDetection"` \| `"timeLapse"`)[] + +Capture method used + +##### Required + +#### description? + +> `optional` **description**: `string` + +Project description + +#### id? + +> `optional` **id**: `string` + +Project identifier + +#### individualAnimals + +> **individualAnimals**: `boolean` + +Whether individual animals were identified + +##### Required + +#### observationLevel + +> **observationLevel**: (`"media"` \| `"event"`)[] + +Level at which observations are recorded + +##### Required + +#### path? + +> `optional` **path**: `string` + +Project URL or path + +#### samplingDesign + +> **samplingDesign**: `"simpleRandom"` \| `"systematicRandom"` \| `"clusteredRandom"` \| `"experimental"` \| `"targeted"` \| `"opportunistic"` + +Sampling design methodology + +##### Required + +#### title + +> **title**: `string` + +Project title + +##### Required + +#### Required + +*** + +### relatedIdentifiers? + +> `optional` **relatedIdentifiers**: `RelatedIdentifier`[] + +Defined in: [camtrap/package/Package.ts:135](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/camtrap/package/Package.ts#L135) + +Related identifiers for the dataset + +*** + +### resources + +> **resources**: [`Resource`](/reference/dpkit/resource/)[] + +Defined in: core/build/package/Package.d.ts:12 + +Data resources in this package (required) + +#### Inherited from + +[`Package`](/reference/dpkit/package/).[`resources`](/reference/dpkit/package/#resources) + +*** + +### sources? + +> `optional` **sources**: [`Source`](/reference/dpkit/source/)[] + +Defined in: core/build/package/Package.d.ts:50 + +Data sources for this package + +#### Inherited from + +[`Package`](/reference/dpkit/package/).[`sources`](/reference/dpkit/package/#sources) + +*** + +### spatial + +> **spatial**: `GeoJSON` + +Defined in: [camtrap/package/Package.ts:94](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/camtrap/package/Package.ts#L94) + +Spatial coverage of the data + +#### Required + +*** + +### taxonomic + +> **taxonomic**: `TaxonomicCoverage`[] + +Defined in: [camtrap/package/Package.ts:120](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/camtrap/package/Package.ts#L120) + +Taxonomic coverage of the data + +#### Required + +*** + +### temporal + +> **temporal**: `object` + +Defined in: [camtrap/package/Package.ts:100](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/camtrap/package/Package.ts#L100) + +Temporal coverage of the data + +#### end + +> **end**: `string` + +End date of temporal coverage + +##### Required + +##### Format + +ISO 8601 + +#### start + +> **start**: `string` + +Start date of temporal coverage + +##### Required + +##### Format + +ISO 8601 + +#### Required + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: core/build/package/Package.d.ts:25 + +Human-readable title + +#### Inherited from + +[`Package`](/reference/dpkit/package/).[`title`](/reference/dpkit/package/#title) + +*** + +### version? + +> `optional` **version**: `string` + +Defined in: core/build/package/Package.d.ts:38 + +Version of the package using SemVer + +#### Example + +```ts +"1.0.0" +``` + +#### Inherited from + +[`Package`](/reference/dpkit/package/).[`version`](/reference/dpkit/package/#version) diff --git a/docs/content/docs/reference/_dpkit/camtrap/assertCamtrapPackage.md b/docs/content/docs/reference/_dpkit/camtrap/assertCamtrapPackage.md new file mode 100644 index 00000000..950c7e4e --- /dev/null +++ b/docs/content/docs/reference/_dpkit/camtrap/assertCamtrapPackage.md @@ -0,0 +1,22 @@ +--- +editUrl: false +next: false +prev: false +title: "assertCamtrapPackage" +--- + +> **assertCamtrapPackage**(`descriptorOrPackage`): `Promise`\<[`CamtrapPackage`](/reference/_dpkit/camtrap/camtrappackage/)\> + +Defined in: [camtrap/package/assert.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/camtrap/package/assert.ts#L13) + +Assert a Package descriptor (JSON Object) against its profile + +## Parameters + +### descriptorOrPackage + +[`Package`](/reference/dpkit/package/) | [`Descriptor`](/reference/dpkit/descriptor/) + +## Returns + +`Promise`\<[`CamtrapPackage`](/reference/_dpkit/camtrap/camtrappackage/)\> diff --git a/docs/content/docs/reference/_dpkit/ckan.md b/docs/content/docs/reference/_dpkit/ckan.md new file mode 100644 index 00000000..629a858c --- /dev/null +++ b/docs/content/docs/reference/_dpkit/ckan.md @@ -0,0 +1,30 @@ +--- +editUrl: false +next: false +prev: false +title: "@dpkit/ckan" +--- + +# @dpkit/ckan + +dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). + +## Classes + +- [CkanPlugin](/reference/_dpkit/ckan/ckanplugin/) + +## Interfaces + +- [CkanField](/reference/_dpkit/ckan/ckanfield/) +- [CkanOrganization](/reference/_dpkit/ckan/ckanorganization/) +- [CkanPackage](/reference/_dpkit/ckan/ckanpackage/) +- [CkanResource](/reference/_dpkit/ckan/ckanresource/) +- [CkanSchema](/reference/_dpkit/ckan/ckanschema/) +- [CkanTag](/reference/_dpkit/ckan/ckantag/) + +## Functions + +- [denormalizeCkanResource](/reference/_dpkit/ckan/denormalizeckanresource/) +- [loadPackageFromCkan](/reference/_dpkit/ckan/loadpackagefromckan/) +- [normalizeCkanSchema](/reference/_dpkit/ckan/normalizeckanschema/) +- [savePackageToCkan](/reference/_dpkit/ckan/savepackagetockan/) diff --git a/docs/content/docs/reference/_dpkit/ckan/CkanField.md b/docs/content/docs/reference/_dpkit/ckan/CkanField.md new file mode 100644 index 00000000..2441ba6e --- /dev/null +++ b/docs/content/docs/reference/_dpkit/ckan/CkanField.md @@ -0,0 +1,40 @@ +--- +editUrl: false +next: false +prev: false +title: "CkanField" +--- + +Defined in: [ckan/schema/Field.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/schema/Field.ts#L4) + +CKAN Field interface + +## Properties + +### id + +> **id**: `string` + +Defined in: [ckan/schema/Field.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/schema/Field.ts#L8) + +Field identifier + +*** + +### info? + +> `optional` **info**: `CkanFieldInfo` + +Defined in: [ckan/schema/Field.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/schema/Field.ts#L18) + +Additional field information + +*** + +### type + +> **type**: `string` + +Defined in: [ckan/schema/Field.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/schema/Field.ts#L13) + +Field data type diff --git a/docs/content/docs/reference/_dpkit/ckan/CkanOrganization.md b/docs/content/docs/reference/_dpkit/ckan/CkanOrganization.md new file mode 100644 index 00000000..49e5ebc6 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/ckan/CkanOrganization.md @@ -0,0 +1,50 @@ +--- +editUrl: false +next: false +prev: false +title: "CkanOrganization" +--- + +Defined in: [ckan/package/Organization.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Organization.ts#L4) + +CKAN Organization interface + +## Properties + +### description + +> **description**: `string` + +Defined in: [ckan/package/Organization.ts:23](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Organization.ts#L23) + +Organization description + +*** + +### id + +> **id**: `string` + +Defined in: [ckan/package/Organization.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Organization.ts#L8) + +Organization identifier + +*** + +### name + +> **name**: `string` + +Defined in: [ckan/package/Organization.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Organization.ts#L13) + +Organization name + +*** + +### title + +> **title**: `string` + +Defined in: [ckan/package/Organization.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Organization.ts#L18) + +Organization title diff --git a/docs/content/docs/reference/_dpkit/ckan/CkanPackage.md b/docs/content/docs/reference/_dpkit/ckan/CkanPackage.md new file mode 100644 index 00000000..1e97eaa1 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/ckan/CkanPackage.md @@ -0,0 +1,180 @@ +--- +editUrl: false +next: false +prev: false +title: "CkanPackage" +--- + +Defined in: [ckan/package/Package.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L8) + +CKAN Package interface + +## Properties + +### author? + +> `optional` **author**: `string` + +Defined in: [ckan/package/Package.ts:67](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L67) + +Package author + +*** + +### author\_email? + +> `optional` **author\_email**: `string` + +Defined in: [ckan/package/Package.ts:72](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L72) + +Package author email + +*** + +### id + +> **id**: `string` + +Defined in: [ckan/package/Package.ts:27](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L27) + +Package identifier + +*** + +### license\_id? + +> `optional` **license\_id**: `string` + +Defined in: [ckan/package/Package.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L52) + +License identifier + +*** + +### license\_title? + +> `optional` **license\_title**: `string` + +Defined in: [ckan/package/Package.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L57) + +License title + +*** + +### license\_url? + +> `optional` **license\_url**: `string` + +Defined in: [ckan/package/Package.ts:62](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L62) + +License URL + +*** + +### maintainer? + +> `optional` **maintainer**: `string` + +Defined in: [ckan/package/Package.ts:77](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L77) + +Package maintainer + +*** + +### maintainer\_email? + +> `optional` **maintainer\_email**: `string` + +Defined in: [ckan/package/Package.ts:82](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L82) + +Package maintainer email + +*** + +### metadata\_created? + +> `optional` **metadata\_created**: `string` + +Defined in: [ckan/package/Package.ts:87](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L87) + +Metadata creation timestamp + +*** + +### metadata\_modified? + +> `optional` **metadata\_modified**: `string` + +Defined in: [ckan/package/Package.ts:92](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L92) + +Metadata modification timestamp + +*** + +### name + +> **name**: `string` + +Defined in: [ckan/package/Package.ts:32](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L32) + +Package name + +*** + +### notes? + +> `optional` **notes**: `string` + +Defined in: [ckan/package/Package.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L42) + +Package notes/description + +*** + +### organization? + +> `optional` **organization**: [`CkanOrganization`](/reference/_dpkit/ckan/ckanorganization/) + +Defined in: [ckan/package/Package.ts:17](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L17) + +Organization information + +*** + +### resources + +> **resources**: [`CkanResource`](/reference/_dpkit/ckan/ckanresource/)[] + +Defined in: [ckan/package/Package.ts:12](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L12) + +List of resources + +*** + +### tags + +> **tags**: [`CkanTag`](/reference/_dpkit/ckan/ckantag/)[] + +Defined in: [ckan/package/Package.ts:22](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L22) + +List of tags + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: [ckan/package/Package.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L37) + +Package title + +*** + +### version? + +> `optional` **version**: `string` + +Defined in: [ckan/package/Package.ts:47](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L47) + +Package version diff --git a/docs/content/docs/reference/_dpkit/ckan/CkanPlugin.md b/docs/content/docs/reference/_dpkit/ckan/CkanPlugin.md new file mode 100644 index 00000000..231c83b2 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/ckan/CkanPlugin.md @@ -0,0 +1,44 @@ +--- +editUrl: false +next: false +prev: false +title: "CkanPlugin" +--- + +Defined in: [ckan/plugin.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/plugin.ts#L5) + +## Implements + +- [`Plugin`](/reference/dpkit/plugin/) + +## Constructors + +### Constructor + +> **new CkanPlugin**(): `CkanPlugin` + +#### Returns + +`CkanPlugin` + +## Methods + +### loadPackage() + +> **loadPackage**(`source`): `Promise`\<`undefined` \| \{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> + +Defined in: [ckan/plugin.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/plugin.ts#L6) + +#### Parameters + +##### source + +`string` + +#### Returns + +`Promise`\<`undefined` \| \{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> + +#### Implementation of + +[`Plugin`](/reference/dpkit/plugin/).[`loadPackage`](/reference/dpkit/plugin/#loadpackage) diff --git a/docs/content/docs/reference/_dpkit/ckan/CkanResource.md b/docs/content/docs/reference/_dpkit/ckan/CkanResource.md new file mode 100644 index 00000000..3121ed4a --- /dev/null +++ b/docs/content/docs/reference/_dpkit/ckan/CkanResource.md @@ -0,0 +1,130 @@ +--- +editUrl: false +next: false +prev: false +title: "CkanResource" +--- + +Defined in: [ckan/resource/Resource.ts:7](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/resource/Resource.ts#L7) + +CKAN Resource interface + +## Properties + +### created + +> **created**: `string` + +Defined in: [ckan/resource/Resource.ts:26](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/resource/Resource.ts#L26) + +Resource creation timestamp + +*** + +### description + +> **description**: `string` + +Defined in: [ckan/resource/Resource.ts:31](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/resource/Resource.ts#L31) + +Resource description + +*** + +### format + +> **format**: `string` + +Defined in: [ckan/resource/Resource.ts:36](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/resource/Resource.ts#L36) + +Resource format + +*** + +### hash + +> **hash**: `string` + +Defined in: [ckan/resource/Resource.ts:41](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/resource/Resource.ts#L41) + +Resource hash + +*** + +### id + +> **id**: `string` + +Defined in: [ckan/resource/Resource.ts:11](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/resource/Resource.ts#L11) + +Resource identifier + +*** + +### last\_modified + +> **last\_modified**: `string` + +Defined in: [ckan/resource/Resource.ts:46](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/resource/Resource.ts#L46) + +Resource last modification timestamp + +*** + +### metadata\_modified + +> **metadata\_modified**: `string` + +Defined in: [ckan/resource/Resource.ts:51](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/resource/Resource.ts#L51) + +Resource metadata modification timestamp + +*** + +### mimetype + +> **mimetype**: `string` + +Defined in: [ckan/resource/Resource.ts:56](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/resource/Resource.ts#L56) + +Resource MIME type + +*** + +### name + +> **name**: `string` + +Defined in: [ckan/resource/Resource.ts:21](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/resource/Resource.ts#L21) + +Resource name + +*** + +### schema? + +> `optional` **schema**: [`CkanSchema`](/reference/_dpkit/ckan/ckanschema/) + +Defined in: [ckan/resource/Resource.ts:66](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/resource/Resource.ts#L66) + +Resource schema + +*** + +### size + +> **size**: `number` + +Defined in: [ckan/resource/Resource.ts:61](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/resource/Resource.ts#L61) + +Resource size in bytes + +*** + +### url + +> **url**: `string` + +Defined in: [ckan/resource/Resource.ts:16](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/resource/Resource.ts#L16) + +Resource URL diff --git a/docs/content/docs/reference/_dpkit/ckan/CkanSchema.md b/docs/content/docs/reference/_dpkit/ckan/CkanSchema.md new file mode 100644 index 00000000..4c5e1480 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/ckan/CkanSchema.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "CkanSchema" +--- + +Defined in: [ckan/schema/Schema.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/schema/Schema.ts#L6) + +CKAN Schema interface + +## Properties + +### fields + +> **fields**: [`CkanField`](/reference/_dpkit/ckan/ckanfield/)[] + +Defined in: [ckan/schema/Schema.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/schema/Schema.ts#L10) + +List of fields diff --git a/docs/content/docs/reference/_dpkit/ckan/CkanTag.md b/docs/content/docs/reference/_dpkit/ckan/CkanTag.md new file mode 100644 index 00000000..ebb085f6 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/ckan/CkanTag.md @@ -0,0 +1,40 @@ +--- +editUrl: false +next: false +prev: false +title: "CkanTag" +--- + +Defined in: [ckan/package/Tag.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Tag.ts#L4) + +CKAN Tag interface + +## Properties + +### display\_name + +> **display\_name**: `string` + +Defined in: [ckan/package/Tag.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Tag.ts#L18) + +Tag display name + +*** + +### id + +> **id**: `string` + +Defined in: [ckan/package/Tag.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Tag.ts#L8) + +Tag identifier + +*** + +### name + +> **name**: `string` + +Defined in: [ckan/package/Tag.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Tag.ts#L13) + +Tag name diff --git a/docs/content/docs/reference/_dpkit/ckan/denormalizeCkanResource.md b/docs/content/docs/reference/_dpkit/ckan/denormalizeCkanResource.md new file mode 100644 index 00000000..8f5bd4c7 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/ckan/denormalizeCkanResource.md @@ -0,0 +1,24 @@ +--- +editUrl: false +next: false +prev: false +title: "denormalizeCkanResource" +--- + +> **denormalizeCkanResource**(`resource`): `Partial`\<[`CkanResource`](/reference/_dpkit/ckan/ckanresource/)\> + +Defined in: [ckan/resource/process/denormalize.ts:9](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/resource/process/denormalize.ts#L9) + +Denormalizes a Frictionless Data Resource to CKAN Resource format + +## Parameters + +### resource + +[`Resource`](/reference/dpkit/resource/) + +## Returns + +`Partial`\<[`CkanResource`](/reference/_dpkit/ckan/ckanresource/)\> + +Denormalized CKAN Resource object diff --git a/docs/content/docs/reference/_dpkit/ckan/loadPackageFromCkan.md b/docs/content/docs/reference/_dpkit/ckan/loadPackageFromCkan.md new file mode 100644 index 00000000..bea3e7ff --- /dev/null +++ b/docs/content/docs/reference/_dpkit/ckan/loadPackageFromCkan.md @@ -0,0 +1,24 @@ +--- +editUrl: false +next: false +prev: false +title: "loadPackageFromCkan" +--- + +> **loadPackageFromCkan**(`datasetUrl`): `Promise`\<\{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> + +Defined in: [ckan/package/load.ts:11](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/load.ts#L11) + +Load a package from a CKAN instance + +## Parameters + +### datasetUrl + +`string` + +## Returns + +`Promise`\<\{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> + +Package object and cleanup function diff --git a/docs/content/docs/reference/_dpkit/ckan/normalizeCkanSchema.md b/docs/content/docs/reference/_dpkit/ckan/normalizeCkanSchema.md new file mode 100644 index 00000000..52df5b79 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/ckan/normalizeCkanSchema.md @@ -0,0 +1,24 @@ +--- +editUrl: false +next: false +prev: false +title: "normalizeCkanSchema" +--- + +> **normalizeCkanSchema**(`ckanSchema`): [`Schema`](/reference/dpkit/schema/) + +Defined in: [ckan/schema/process/normalize.ts:21](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/schema/process/normalize.ts#L21) + +Normalizes a CKAN schema to a Table Schema format + +## Parameters + +### ckanSchema + +[`CkanSchema`](/reference/_dpkit/ckan/ckanschema/) + +## Returns + +[`Schema`](/reference/dpkit/schema/) + +A normalized Table Schema object diff --git a/docs/content/docs/reference/_dpkit/ckan/savePackageToCkan.md b/docs/content/docs/reference/_dpkit/ckan/savePackageToCkan.md new file mode 100644 index 00000000..ff232aae --- /dev/null +++ b/docs/content/docs/reference/_dpkit/ckan/savePackageToCkan.md @@ -0,0 +1,38 @@ +--- +editUrl: false +next: false +prev: false +title: "savePackageToCkan" +--- + +> **savePackageToCkan**(`dataPackage`, `options`): `Promise`\<\{ `datasetUrl`: `string`; `path`: `unknown`; \}\> + +Defined in: [ckan/package/save.ts:19](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/save.ts#L19) + +## Parameters + +### dataPackage + +[`Package`](/reference/dpkit/package/) + +### options + +#### apiKey + +`string` + +#### ckanUrl + +`string` + +#### datasetName + +`string` + +#### ownerOrg + +`string` + +## Returns + +`Promise`\<\{ `datasetUrl`: `string`; `path`: `unknown`; \}\> diff --git a/docs/content/docs/reference/_dpkit/core.md b/docs/content/docs/reference/_dpkit/core.md new file mode 100644 index 00000000..9d35a204 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core.md @@ -0,0 +1,109 @@ +--- +editUrl: false +next: false +prev: false +title: "@dpkit/core" +--- + +# @dpkit/core + +dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). + +## Classes + +- [AssertionError](/reference/_dpkit/core/assertionerror/) + +## Interfaces + +- [AnyConstraints](/reference/_dpkit/core/anyconstraints/) +- [AnyField](/reference/_dpkit/core/anyfield/) +- [ArrayConstraints](/reference/_dpkit/core/arrayconstraints/) +- [ArrayField](/reference/_dpkit/core/arrayfield/) +- [BooleanConstraints](/reference/_dpkit/core/booleanconstraints/) +- [BooleanField](/reference/_dpkit/core/booleanfield/) +- [Contributor](/reference/_dpkit/core/contributor/) +- [DateConstraints](/reference/_dpkit/core/dateconstraints/) +- [DateField](/reference/_dpkit/core/datefield/) +- [DatetimeConstraints](/reference/_dpkit/core/datetimeconstraints/) +- [DatetimeField](/reference/_dpkit/core/datetimefield/) +- [Dialect](/reference/_dpkit/core/dialect/) +- [DurationConstraints](/reference/_dpkit/core/durationconstraints/) +- [DurationField](/reference/_dpkit/core/durationfield/) +- [ForeignKey](/reference/_dpkit/core/foreignkey/) +- [GeojsonConstraints](/reference/_dpkit/core/geojsonconstraints/) +- [GeojsonField](/reference/_dpkit/core/geojsonfield/) +- [GeopointConstraints](/reference/_dpkit/core/geopointconstraints/) +- [GeopointField](/reference/_dpkit/core/geopointfield/) +- [IntegerConstraints](/reference/_dpkit/core/integerconstraints/) +- [IntegerField](/reference/_dpkit/core/integerfield/) +- [License](/reference/_dpkit/core/license/) +- [ListConstraints](/reference/_dpkit/core/listconstraints/) +- [ListField](/reference/_dpkit/core/listfield/) +- [MetadataError](/reference/_dpkit/core/metadataerror/) +- [NumberConstraints](/reference/_dpkit/core/numberconstraints/) +- [NumberField](/reference/_dpkit/core/numberfield/) +- [ObjectConstraints](/reference/_dpkit/core/objectconstraints/) +- [ObjectField](/reference/_dpkit/core/objectfield/) +- [Package](/reference/_dpkit/core/package/) +- [Plugin](/reference/_dpkit/core/plugin/) +- [Resource](/reference/_dpkit/core/resource/) +- [Schema](/reference/_dpkit/core/schema/) +- [Source](/reference/_dpkit/core/source/) +- [StringConstraints](/reference/_dpkit/core/stringconstraints/) +- [StringField](/reference/_dpkit/core/stringfield/) +- [TimeConstraints](/reference/_dpkit/core/timeconstraints/) +- [TimeField](/reference/_dpkit/core/timefield/) +- [YearConstraints](/reference/_dpkit/core/yearconstraints/) +- [YearField](/reference/_dpkit/core/yearfield/) +- [YearmonthConstraints](/reference/_dpkit/core/yearmonthconstraints/) +- [YearmonthField](/reference/_dpkit/core/yearmonthfield/) + +## Type Aliases + +- [Descriptor](/reference/_dpkit/core/descriptor/) +- [Field](/reference/_dpkit/core/field/) +- [Metadata](/reference/_dpkit/core/metadata/) + +## Functions + +- [assertDialect](/reference/_dpkit/core/assertdialect/) +- [assertPackage](/reference/_dpkit/core/assertpackage/) +- [assertResource](/reference/_dpkit/core/assertresource/) +- [assertSchema](/reference/_dpkit/core/assertschema/) +- [denormalizeDialect](/reference/_dpkit/core/denormalizedialect/) +- [denormalizePackage](/reference/_dpkit/core/denormalizepackage/) +- [denormalizePath](/reference/_dpkit/core/denormalizepath/) +- [denormalizeResource](/reference/_dpkit/core/denormalizeresource/) +- [denormalizeSchema](/reference/_dpkit/core/denormalizeschema/) +- [getBasepath](/reference/_dpkit/core/getbasepath/) +- [getFilename](/reference/_dpkit/core/getfilename/) +- [getFormat](/reference/_dpkit/core/getformat/) +- [getName](/reference/_dpkit/core/getname/) +- [inferFormat](/reference/_dpkit/core/inferformat/) +- [isDescriptor](/reference/_dpkit/core/isdescriptor/) +- [isRemotePath](/reference/_dpkit/core/isremotepath/) +- [loadDescriptor](/reference/_dpkit/core/loaddescriptor/) +- [loadDialect](/reference/_dpkit/core/loaddialect/) +- [loadPackageDescriptor](/reference/_dpkit/core/loadpackagedescriptor/) +- [loadProfile](/reference/_dpkit/core/loadprofile/) +- [loadResourceDescriptor](/reference/_dpkit/core/loadresourcedescriptor/) +- [loadSchema](/reference/_dpkit/core/loadschema/) +- [mergePackages](/reference/_dpkit/core/mergepackages/) +- [normalizeDialect](/reference/_dpkit/core/normalizedialect/) +- [normalizeField](/reference/_dpkit/core/normalizefield/) +- [normalizePackage](/reference/_dpkit/core/normalizepackage/) +- [normalizePath](/reference/_dpkit/core/normalizepath/) +- [normalizeResource](/reference/_dpkit/core/normalizeresource/) +- [normalizeSchema](/reference/_dpkit/core/normalizeschema/) +- [parseDescriptor](/reference/_dpkit/core/parsedescriptor/) +- [saveDescriptor](/reference/_dpkit/core/savedescriptor/) +- [saveDialect](/reference/_dpkit/core/savedialect/) +- [savePackageDescriptor](/reference/_dpkit/core/savepackagedescriptor/) +- [saveResourceDescriptor](/reference/_dpkit/core/saveresourcedescriptor/) +- [saveSchema](/reference/_dpkit/core/saveschema/) +- [stringifyDescriptor](/reference/_dpkit/core/stringifydescriptor/) +- [validateDescriptor](/reference/_dpkit/core/validatedescriptor/) +- [validateDialect](/reference/_dpkit/core/validatedialect/) +- [validatePackageDescriptor](/reference/_dpkit/core/validatepackagedescriptor/) +- [validateResourceDescriptor](/reference/_dpkit/core/validateresourcedescriptor/) +- [validateSchema](/reference/_dpkit/core/validateschema/) diff --git a/docs/content/docs/reference/_dpkit/core/AnyConstraints.md b/docs/content/docs/reference/_dpkit/core/AnyConstraints.md new file mode 100644 index 00000000..6ac6b7fe --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/AnyConstraints.md @@ -0,0 +1,53 @@ +--- +editUrl: false +next: false +prev: false +title: "AnyConstraints" +--- + +Defined in: [core/field/types/Any.ts:16](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Any.ts#L16) + +Any field constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `any`[] + +Defined in: [core/field/types/Any.ts:21](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Any.ts#L21) + +Restrict values to a specified set +For any field type, can be an array of any values + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/AnyField.md b/docs/content/docs/reference/_dpkit/core/AnyField.md new file mode 100644 index 00000000..a827708a --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/AnyField.md @@ -0,0 +1,128 @@ +--- +editUrl: false +next: false +prev: false +title: "AnyField" +--- + +Defined in: [core/field/types/Any.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Any.ts#L6) + +Any field type (unspecified/mixed) + +## Extends + +- `BaseField`\<[`AnyConstraints`](/reference/_dpkit/core/anyconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### constraints? + +> `optional` **constraints**: [`AnyConstraints`](/reference/_dpkit/core/anyconstraints/) + +Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type? + +> `optional` **type**: `"any"` + +Defined in: [core/field/types/Any.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Any.ts#L10) + +Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/ArrayConstraints.md b/docs/content/docs/reference/_dpkit/core/ArrayConstraints.md new file mode 100644 index 00000000..68b5dd81 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/ArrayConstraints.md @@ -0,0 +1,83 @@ +--- +editUrl: false +next: false +prev: false +title: "ArrayConstraints" +--- + +Defined in: [core/field/types/Array.ts:16](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Array.ts#L16) + +Array-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] \| `any`[][] + +Defined in: [core/field/types/Array.ts:36](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Array.ts#L36) + +Restrict values to a specified set of arrays +Serialized as JSON strings or parsed array objects + +*** + +### jsonSchema? + +> `optional` **jsonSchema**: `Record`\<`string`, `any`\> + +Defined in: [core/field/types/Array.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Array.ts#L30) + +JSON Schema object for validating array items + +*** + +### maxLength? + +> `optional` **maxLength**: `number` + +Defined in: [core/field/types/Array.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Array.ts#L25) + +Maximum array length + +*** + +### minLength? + +> `optional` **minLength**: `number` + +Defined in: [core/field/types/Array.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Array.ts#L20) + +Minimum array length + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/ArrayField.md b/docs/content/docs/reference/_dpkit/core/ArrayField.md new file mode 100644 index 00000000..01ffa1fc --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/ArrayField.md @@ -0,0 +1,128 @@ +--- +editUrl: false +next: false +prev: false +title: "ArrayField" +--- + +Defined in: [core/field/types/Array.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Array.ts#L6) + +Array field type (serialized JSON array) + +## Extends + +- `BaseField`\<[`ArrayConstraints`](/reference/_dpkit/core/arrayconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### constraints? + +> `optional` **constraints**: [`ArrayConstraints`](/reference/_dpkit/core/arrayconstraints/) + +Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type + +> **type**: `"array"` + +Defined in: [core/field/types/Array.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Array.ts#L10) + +Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/AssertionError.md b/docs/content/docs/reference/_dpkit/core/AssertionError.md new file mode 100644 index 00000000..1d6327d3 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/AssertionError.md @@ -0,0 +1,244 @@ +--- +editUrl: false +next: false +prev: false +title: "AssertionError" +--- + +Defined in: [core/general/Error.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/Error.ts#L13) + +Thrown when a descriptor assertion fails + +## Extends + +- `Error` + +## Constructors + +### Constructor + +> **new AssertionError**(`errors`): `AssertionError` + +Defined in: [core/general/Error.ts:16](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/Error.ts#L16) + +#### Parameters + +##### errors + +[`MetadataError`](/reference/_dpkit/core/metadataerror/)[] + +#### Returns + +`AssertionError` + +#### Overrides + +`Error.constructor` + +## Properties + +### cause? + +> `optional` **cause**: `unknown` + +Defined in: node\_modules/.pnpm/typescript@5.8.3/node\_modules/typescript/lib/lib.es2022.error.d.ts:26 + +#### Inherited from + +`Error.cause` + +*** + +### errors + +> `readonly` **errors**: [`MetadataError`](/reference/_dpkit/core/metadataerror/)[] + +Defined in: [core/general/Error.ts:14](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/Error.ts#L14) + +*** + +### message + +> **message**: `string` + +Defined in: node\_modules/.pnpm/typescript@5.8.3/node\_modules/typescript/lib/lib.es5.d.ts:1077 + +#### Inherited from + +`Error.message` + +*** + +### name + +> **name**: `string` + +Defined in: node\_modules/.pnpm/typescript@5.8.3/node\_modules/typescript/lib/lib.es5.d.ts:1076 + +#### Inherited from + +`Error.name` + +*** + +### stack? + +> `optional` **stack**: `string` + +Defined in: node\_modules/.pnpm/typescript@5.8.3/node\_modules/typescript/lib/lib.es5.d.ts:1078 + +#### Inherited from + +`Error.stack` + +*** + +### prepareStackTrace()? + +> `static` `optional` **prepareStackTrace**: (`err`, `stackTraces`) => `any` + +Defined in: node\_modules/.pnpm/@types+node@22.14.1/node\_modules/@types/node/globals.d.ts:143 + +Optional override for formatting stack traces + +#### Parameters + +##### err + +`Error` + +##### stackTraces + +`CallSite`[] + +#### Returns + +`any` + +#### See + +https://v8.dev/docs/stack-trace-api#customizing-stack-traces + +#### Inherited from + +`Error.prepareStackTrace` + +*** + +### stackTraceLimit + +> `static` **stackTraceLimit**: `number` + +Defined in: node\_modules/.pnpm/@types+node@22.14.1/node\_modules/@types/node/globals.d.ts:145 + +The `Error.stackTraceLimit` property specifies the number of stack frames +collected by a stack trace (whether generated by `new Error().stack` or +`Error.captureStackTrace(obj)`). + +The default value is `10` but may be set to any valid JavaScript number. Changes +will affect any stack trace captured _after_ the value has been changed. + +If set to a non-number value, or set to a negative number, stack traces will +not capture any frames. + +#### Inherited from + +`Error.stackTraceLimit` + +## Methods + +### captureStackTrace() + +#### Call Signature + +> `static` **captureStackTrace**(`targetObject`, `constructorOpt?`): `void` + +Defined in: node\_modules/.pnpm/@types+node@22.14.1/node\_modules/@types/node/globals.d.ts:136 + +Create .stack property on a target object + +##### Parameters + +###### targetObject + +`object` + +###### constructorOpt? + +`Function` + +##### Returns + +`void` + +##### Inherited from + +`Error.captureStackTrace` + +#### Call Signature + +> `static` **captureStackTrace**(`targetObject`, `constructorOpt?`): `void` + +Defined in: node\_modules/.pnpm/@types+node@22.15.31/node\_modules/@types/node/globals.d.ts:145 + +Creates a `.stack` property on `targetObject`, which when accessed returns +a string representing the location in the code at which +`Error.captureStackTrace()` was called. + +```js +const myObject = {}; +Error.captureStackTrace(myObject); +myObject.stack; // Similar to `new Error().stack` +``` + +The first line of the trace will be prefixed with +`${myObject.name}: ${myObject.message}`. + +The optional `constructorOpt` argument accepts a function. If given, all frames +above `constructorOpt`, including `constructorOpt`, will be omitted from the +generated stack trace. + +The `constructorOpt` argument is useful for hiding implementation +details of error generation from the user. For instance: + +```js +function a() { + b(); +} + +function b() { + c(); +} + +function c() { + // Create an error without stack trace to avoid calculating the stack trace twice. + const { stackTraceLimit } = Error; + Error.stackTraceLimit = 0; + const error = new Error(); + Error.stackTraceLimit = stackTraceLimit; + + // Capture the stack trace above function b + Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace + throw error; +} + +a(); +``` + +##### Parameters + +###### targetObject + +`object` + +###### constructorOpt? + +`Function` + +##### Returns + +`void` + +##### Inherited from + +`Error.captureStackTrace` diff --git a/docs/content/docs/reference/_dpkit/core/BooleanConstraints.md b/docs/content/docs/reference/_dpkit/core/BooleanConstraints.md new file mode 100644 index 00000000..68751e1b --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/BooleanConstraints.md @@ -0,0 +1,53 @@ +--- +editUrl: false +next: false +prev: false +title: "BooleanConstraints" +--- + +Defined in: [core/field/types/Boolean.ts:26](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Boolean.ts#L26) + +Boolean-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] \| `boolean`[] + +Defined in: [core/field/types/Boolean.ts:31](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Boolean.ts#L31) + +Restrict values to a specified set +Can be an array of booleans or strings that parse to booleans + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/BooleanField.md b/docs/content/docs/reference/_dpkit/core/BooleanField.md new file mode 100644 index 00000000..782de07e --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/BooleanField.md @@ -0,0 +1,148 @@ +--- +editUrl: false +next: false +prev: false +title: "BooleanField" +--- + +Defined in: [core/field/types/Boolean.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Boolean.ts#L6) + +Boolean field type + +## Extends + +- `BaseField`\<[`BooleanConstraints`](/reference/_dpkit/core/booleanconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### constraints? + +> `optional` **constraints**: [`BooleanConstraints`](/reference/_dpkit/core/booleanconstraints/) + +Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### falseValues? + +> `optional` **falseValues**: `string`[] + +Defined in: [core/field/types/Boolean.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Boolean.ts#L20) + +Values that represent false + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### trueValues? + +> `optional` **trueValues**: `string`[] + +Defined in: [core/field/types/Boolean.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Boolean.ts#L15) + +Values that represent true + +*** + +### type + +> **type**: `"boolean"` + +Defined in: [core/field/types/Boolean.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Boolean.ts#L10) + +Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/Contributor.md b/docs/content/docs/reference/_dpkit/core/Contributor.md new file mode 100644 index 00000000..b41e41a6 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/Contributor.md @@ -0,0 +1,50 @@ +--- +editUrl: false +next: false +prev: false +title: "Contributor" +--- + +Defined in: [core/package/Contributor.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Contributor.ts#L4) + +Contributor information + +## Properties + +### email? + +> `optional` **email**: `string` + +Defined in: [core/package/Contributor.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Contributor.ts#L13) + +Email address of the contributor + +*** + +### path? + +> `optional` **path**: `string` + +Defined in: [core/package/Contributor.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Contributor.ts#L18) + +Path to relevant contributor information + +*** + +### role? + +> `optional` **role**: `string` + +Defined in: [core/package/Contributor.ts:23](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Contributor.ts#L23) + +Role of the contributor + +*** + +### title + +> **title**: `string` + +Defined in: [core/package/Contributor.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Contributor.ts#L8) + +Full name of the contributor diff --git a/docs/content/docs/reference/_dpkit/core/DateConstraints.md b/docs/content/docs/reference/_dpkit/core/DateConstraints.md new file mode 100644 index 00000000..1abeaf39 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/DateConstraints.md @@ -0,0 +1,73 @@ +--- +editUrl: false +next: false +prev: false +title: "DateConstraints" +--- + +Defined in: [core/field/types/Date.ts:24](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Date.ts#L24) + +Date-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] + +Defined in: [core/field/types/Date.ts:39](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Date.ts#L39) + +Restrict values to a specified set of dates +Should be in string date format (e.g., "YYYY-MM-DD") + +*** + +### maximum? + +> `optional` **maximum**: `string` + +Defined in: [core/field/types/Date.ts:33](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Date.ts#L33) + +Maximum allowed date value + +*** + +### minimum? + +> `optional` **minimum**: `string` + +Defined in: [core/field/types/Date.ts:28](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Date.ts#L28) + +Minimum allowed date value + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/DateField.md b/docs/content/docs/reference/_dpkit/core/DateField.md new file mode 100644 index 00000000..864c8b00 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/DateField.md @@ -0,0 +1,141 @@ +--- +editUrl: false +next: false +prev: false +title: "DateField" +--- + +Defined in: [core/field/types/Date.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Date.ts#L6) + +Date field type + +## Extends + +- `BaseField`\<[`DateConstraints`](/reference/_dpkit/core/dateconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### constraints? + +> `optional` **constraints**: [`DateConstraints`](/reference/_dpkit/core/dateconstraints/) + +Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### format? + +> `optional` **format**: `string` + +Defined in: [core/field/types/Date.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Date.ts#L18) + +Format of the date +- default: YYYY-MM-DD +- any: flexible date parsing (not recommended) +- Or custom strptime/strftime format string + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type + +> **type**: `"date"` + +Defined in: [core/field/types/Date.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Date.ts#L10) + +Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/DatetimeConstraints.md b/docs/content/docs/reference/_dpkit/core/DatetimeConstraints.md new file mode 100644 index 00000000..4683f8b8 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/DatetimeConstraints.md @@ -0,0 +1,73 @@ +--- +editUrl: false +next: false +prev: false +title: "DatetimeConstraints" +--- + +Defined in: [core/field/types/Datetime.ts:24](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Datetime.ts#L24) + +Datetime-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] + +Defined in: [core/field/types/Datetime.ts:39](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Datetime.ts#L39) + +Restrict values to a specified set of datetimes +Should be in string datetime format (e.g., ISO8601) + +*** + +### maximum? + +> `optional` **maximum**: `string` + +Defined in: [core/field/types/Datetime.ts:33](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Datetime.ts#L33) + +Maximum allowed datetime value + +*** + +### minimum? + +> `optional` **minimum**: `string` + +Defined in: [core/field/types/Datetime.ts:28](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Datetime.ts#L28) + +Minimum allowed datetime value + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/DatetimeField.md b/docs/content/docs/reference/_dpkit/core/DatetimeField.md new file mode 100644 index 00000000..d13caf43 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/DatetimeField.md @@ -0,0 +1,141 @@ +--- +editUrl: false +next: false +prev: false +title: "DatetimeField" +--- + +Defined in: [core/field/types/Datetime.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Datetime.ts#L6) + +Datetime field type + +## Extends + +- `BaseField`\<[`DatetimeConstraints`](/reference/_dpkit/core/datetimeconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### constraints? + +> `optional` **constraints**: [`DatetimeConstraints`](/reference/_dpkit/core/datetimeconstraints/) + +Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### format? + +> `optional` **format**: `string` + +Defined in: [core/field/types/Datetime.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Datetime.ts#L18) + +Format of the datetime +- default: ISO8601 format +- any: flexible datetime parsing (not recommended) +- Or custom strptime/strftime format string + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type + +> **type**: `"datetime"` + +Defined in: [core/field/types/Datetime.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Datetime.ts#L10) + +Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/Descriptor.md b/docs/content/docs/reference/_dpkit/core/Descriptor.md new file mode 100644 index 00000000..8831bf70 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/Descriptor.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "Descriptor" +--- + +> **Descriptor** = `Record`\<`string`, `unknown`\> + +Defined in: [core/general/descriptor/Descriptor.ts:1](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/descriptor/Descriptor.ts#L1) diff --git a/docs/content/docs/reference/_dpkit/core/Dialect.md b/docs/content/docs/reference/_dpkit/core/Dialect.md new file mode 100644 index 00000000..98203cf1 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/Dialect.md @@ -0,0 +1,221 @@ +--- +editUrl: false +next: false +prev: false +title: "Dialect" +--- + +Defined in: [core/dialect/Dialect.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L8) + +Descriptor that describes the structure of tabular data, such as delimiters, +headers, and other features. Following the Data Package standard: +https://datapackage.org/standard/table-dialect/ + +## Extends + +- [`Metadata`](/reference/_dpkit/core/metadata/) + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### $schema? + +> `optional` **$schema**: `string` + +Defined in: [core/dialect/Dialect.ts:17](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L17) + +JSON schema profile URL for validation + +*** + +### commentChar? + +> `optional` **commentChar**: `string` + +Defined in: [core/dialect/Dialect.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L42) + +Character sequence denoting the start of a comment line + +*** + +### commentRows? + +> `optional` **commentRows**: `number`[] + +Defined in: [core/dialect/Dialect.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L37) + +Specific rows to be excluded from the data (zero-based) + +*** + +### delimiter? + +> `optional` **delimiter**: `string` + +Defined in: [core/dialect/Dialect.ts:47](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L47) + +The character used to separate fields in the data + +*** + +### doubleQuote? + +> `optional` **doubleQuote**: `boolean` + +Defined in: [core/dialect/Dialect.ts:62](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L62) + +Controls whether a sequence of two quote characters represents a single quote + +*** + +### escapeChar? + +> `optional` **escapeChar**: `string` + +Defined in: [core/dialect/Dialect.ts:67](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L67) + +Character used to escape the delimiter or quote characters + +*** + +### header? + +> `optional` **header**: `boolean` + +Defined in: [core/dialect/Dialect.ts:22](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L22) + +Whether the file includes a header row with field names + +*** + +### headerJoin? + +> `optional` **headerJoin**: `string` + +Defined in: [core/dialect/Dialect.ts:32](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L32) + +The character used to join multi-line headers + +*** + +### headerRows? + +> `optional` **headerRows**: `number`[] + +Defined in: [core/dialect/Dialect.ts:27](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L27) + +Row numbers (zero-based) that are considered header rows + +*** + +### itemKeys? + +> `optional` **itemKeys**: `string`[] + +Defined in: [core/dialect/Dialect.ts:93](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L93) + +For object-based data items, specifies which object properties to extract as values + +*** + +### itemType? + +> `optional` **itemType**: `"object"` \| `"array"` + +Defined in: [core/dialect/Dialect.ts:88](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L88) + +The type of data item in the source: 'array' for rows represented as arrays, +or 'object' for rows represented as objects + +*** + +### lineTerminator? + +> `optional` **lineTerminator**: `string` + +Defined in: [core/dialect/Dialect.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L52) + +Character sequence used to terminate rows + +*** + +### name? + +> `optional` **name**: `string` + +Defined in: [core/dialect/Dialect.ts:12](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L12) + +The name of this dialect + +*** + +### nullSequence? + +> `optional` **nullSequence**: `string` + +Defined in: [core/dialect/Dialect.ts:72](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L72) + +Character sequence representing null or missing values in the data + +*** + +### property? + +> `optional` **property**: `string` + +Defined in: [core/dialect/Dialect.ts:82](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L82) + +For JSON data, the property name containing the data array + +*** + +### quoteChar? + +> `optional` **quoteChar**: `string` + +Defined in: [core/dialect/Dialect.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L57) + +Character used to quote fields + +*** + +### sheetName? + +> `optional` **sheetName**: `string` + +Defined in: [core/dialect/Dialect.ts:103](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L103) + +For spreadsheet data, the sheet name to read + +*** + +### sheetNumber? + +> `optional` **sheetNumber**: `number` + +Defined in: [core/dialect/Dialect.ts:98](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L98) + +For spreadsheet data, the sheet number to read (zero-based) + +*** + +### skipInitialSpace? + +> `optional` **skipInitialSpace**: `boolean` + +Defined in: [core/dialect/Dialect.ts:77](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L77) + +Whether to ignore whitespace immediately following the delimiter + +*** + +### table? + +> `optional` **table**: `string` + +Defined in: [core/dialect/Dialect.ts:108](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L108) + +For database sources, the table name to read diff --git a/docs/content/docs/reference/_dpkit/core/DurationConstraints.md b/docs/content/docs/reference/_dpkit/core/DurationConstraints.md new file mode 100644 index 00000000..2b93870f --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/DurationConstraints.md @@ -0,0 +1,73 @@ +--- +editUrl: false +next: false +prev: false +title: "DurationConstraints" +--- + +Defined in: [core/field/types/Duration.ts:16](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Duration.ts#L16) + +Duration-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] + +Defined in: [core/field/types/Duration.ts:31](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Duration.ts#L31) + +Restrict values to a specified set of durations +Should be in ISO 8601 duration format + +*** + +### maximum? + +> `optional` **maximum**: `string` + +Defined in: [core/field/types/Duration.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Duration.ts#L25) + +Maximum allowed duration (ISO 8601 format) + +*** + +### minimum? + +> `optional` **minimum**: `string` + +Defined in: [core/field/types/Duration.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Duration.ts#L20) + +Minimum allowed duration (ISO 8601 format) + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/DurationField.md b/docs/content/docs/reference/_dpkit/core/DurationField.md new file mode 100644 index 00000000..6ec5ec9a --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/DurationField.md @@ -0,0 +1,128 @@ +--- +editUrl: false +next: false +prev: false +title: "DurationField" +--- + +Defined in: [core/field/types/Duration.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Duration.ts#L6) + +Duration field type (ISO 8601 duration) + +## Extends + +- `BaseField`\<[`DurationConstraints`](/reference/_dpkit/core/durationconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### constraints? + +> `optional` **constraints**: [`DurationConstraints`](/reference/_dpkit/core/durationconstraints/) + +Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type + +> **type**: `"duration"` + +Defined in: [core/field/types/Duration.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Duration.ts#L10) + +Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/Field.md b/docs/content/docs/reference/_dpkit/core/Field.md new file mode 100644 index 00000000..e6fbc3e9 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/Field.md @@ -0,0 +1,12 @@ +--- +editUrl: false +next: false +prev: false +title: "Field" +--- + +> **Field** = [`StringField`](/reference/_dpkit/core/stringfield/) \| [`NumberField`](/reference/_dpkit/core/numberfield/) \| [`IntegerField`](/reference/_dpkit/core/integerfield/) \| [`BooleanField`](/reference/_dpkit/core/booleanfield/) \| [`ObjectField`](/reference/_dpkit/core/objectfield/) \| [`ArrayField`](/reference/_dpkit/core/arrayfield/) \| [`ListField`](/reference/_dpkit/core/listfield/) \| [`DateField`](/reference/_dpkit/core/datefield/) \| [`TimeField`](/reference/_dpkit/core/timefield/) \| [`DatetimeField`](/reference/_dpkit/core/datetimefield/) \| [`YearField`](/reference/_dpkit/core/yearfield/) \| [`YearmonthField`](/reference/_dpkit/core/yearmonthfield/) \| [`DurationField`](/reference/_dpkit/core/durationfield/) \| [`GeopointField`](/reference/_dpkit/core/geopointfield/) \| [`GeojsonField`](/reference/_dpkit/core/geojsonfield/) \| [`AnyField`](/reference/_dpkit/core/anyfield/) + +Defined in: [core/field/Field.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/Field.ts#L6) + +A Table Schema field diff --git a/docs/content/docs/reference/_dpkit/core/ForeignKey.md b/docs/content/docs/reference/_dpkit/core/ForeignKey.md new file mode 100644 index 00000000..fb70acfd --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/ForeignKey.md @@ -0,0 +1,43 @@ +--- +editUrl: false +next: false +prev: false +title: "ForeignKey" +--- + +Defined in: [core/schema/ForeignKey.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/ForeignKey.ts#L5) + +Foreign key definition for Table Schema +Based on the specification at https://datapackage.org/standard/table-schema/#foreign-keys + +## Properties + +### fields + +> **fields**: `string`[] + +Defined in: [core/schema/ForeignKey.ts:9](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/ForeignKey.ts#L9) + +Source field(s) in this schema + +*** + +### reference + +> **reference**: `object` + +Defined in: [core/schema/ForeignKey.ts:14](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/ForeignKey.ts#L14) + +Reference to fields in another resource + +#### fields + +> **fields**: `string`[] + +Target field(s) in the referenced resource + +#### resource? + +> `optional` **resource**: `string` + +Target resource name (optional) diff --git a/docs/content/docs/reference/_dpkit/core/GeojsonConstraints.md b/docs/content/docs/reference/_dpkit/core/GeojsonConstraints.md new file mode 100644 index 00000000..e518d949 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/GeojsonConstraints.md @@ -0,0 +1,53 @@ +--- +editUrl: false +next: false +prev: false +title: "GeojsonConstraints" +--- + +Defined in: [core/field/types/Geojson.ts:23](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Geojson.ts#L23) + +GeoJSON-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] \| `Record`\<`string`, `any`\>[] + +Defined in: [core/field/types/Geojson.ts:28](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Geojson.ts#L28) + +Restrict values to a specified set of GeoJSON objects +Serialized as strings or GeoJSON object literals + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/GeojsonField.md b/docs/content/docs/reference/_dpkit/core/GeojsonField.md new file mode 100644 index 00000000..d9089774 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/GeojsonField.md @@ -0,0 +1,140 @@ +--- +editUrl: false +next: false +prev: false +title: "GeojsonField" +--- + +Defined in: [core/field/types/Geojson.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Geojson.ts#L6) + +GeoJSON field type + +## Extends + +- `BaseField`\<[`GeojsonConstraints`](/reference/_dpkit/core/geojsonconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### constraints? + +> `optional` **constraints**: [`GeojsonConstraints`](/reference/_dpkit/core/geojsonconstraints/) + +Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### format? + +> `optional` **format**: `"default"` \| `"topojson"` + +Defined in: [core/field/types/Geojson.ts:17](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Geojson.ts#L17) + +Format of the geojson +- default: standard GeoJSON +- topojson: TopoJSON format + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type + +> **type**: `"geojson"` + +Defined in: [core/field/types/Geojson.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Geojson.ts#L10) + +Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/GeopointConstraints.md b/docs/content/docs/reference/_dpkit/core/GeopointConstraints.md new file mode 100644 index 00000000..bed787b9 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/GeopointConstraints.md @@ -0,0 +1,53 @@ +--- +editUrl: false +next: false +prev: false +title: "GeopointConstraints" +--- + +Defined in: [core/field/types/Geopoint.ts:24](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Geopoint.ts#L24) + +Geopoint-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] \| `number`[][] \| `Record`\<`string`, `number`\>[] + +Defined in: [core/field/types/Geopoint.ts:29](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Geopoint.ts#L29) + +Restrict values to a specified set of geopoints +Format depends on the field's format setting + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/GeopointField.md b/docs/content/docs/reference/_dpkit/core/GeopointField.md new file mode 100644 index 00000000..e6d28f4d --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/GeopointField.md @@ -0,0 +1,141 @@ +--- +editUrl: false +next: false +prev: false +title: "GeopointField" +--- + +Defined in: [core/field/types/Geopoint.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Geopoint.ts#L6) + +Geopoint field type + +## Extends + +- `BaseField`\<[`GeopointConstraints`](/reference/_dpkit/core/geopointconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### constraints? + +> `optional` **constraints**: [`GeopointConstraints`](/reference/_dpkit/core/geopointconstraints/) + +Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### format? + +> `optional` **format**: `"object"` \| `"default"` \| `"array"` + +Defined in: [core/field/types/Geopoint.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Geopoint.ts#L18) + +Format of the geopoint +- default: "lon,lat" string with comma separator +- array: [lon,lat] array +- object: {lon:x, lat:y} object + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type + +> **type**: `"geopoint"` + +Defined in: [core/field/types/Geopoint.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Geopoint.ts#L10) + +Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/IntegerConstraints.md b/docs/content/docs/reference/_dpkit/core/IntegerConstraints.md new file mode 100644 index 00000000..18b9242e --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/IntegerConstraints.md @@ -0,0 +1,95 @@ +--- +editUrl: false +next: false +prev: false +title: "IntegerConstraints" +--- + +Defined in: [core/field/types/Integer.ts:38](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Integer.ts#L38) + +**`Internal`** + +Integer-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] \| `number`[] + +Defined in: [core/field/types/Integer.ts:63](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Integer.ts#L63) + +Restrict values to a specified set +Can be an array of integers or strings that parse to integers + +*** + +### exclusiveMaximum? + +> `optional` **exclusiveMaximum**: `string` \| `number` + +Defined in: [core/field/types/Integer.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Integer.ts#L57) + +Exclusive maximum allowed value + +*** + +### exclusiveMinimum? + +> `optional` **exclusiveMinimum**: `string` \| `number` + +Defined in: [core/field/types/Integer.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Integer.ts#L52) + +Exclusive minimum allowed value + +*** + +### maximum? + +> `optional` **maximum**: `string` \| `number` + +Defined in: [core/field/types/Integer.ts:47](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Integer.ts#L47) + +Maximum allowed value + +*** + +### minimum? + +> `optional` **minimum**: `string` \| `number` + +Defined in: [core/field/types/Integer.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Integer.ts#L42) + +Minimum allowed value + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/IntegerField.md b/docs/content/docs/reference/_dpkit/core/IntegerField.md new file mode 100644 index 00000000..8a6ef672 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/IntegerField.md @@ -0,0 +1,169 @@ +--- +editUrl: false +next: false +prev: false +title: "IntegerField" +--- + +Defined in: [core/field/types/Integer.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Integer.ts#L6) + +Integer field type + +## Extends + +- `BaseField`\<[`IntegerConstraints`](/reference/_dpkit/core/integerconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### bareNumber? + +> `optional` **bareNumber**: `boolean` + +Defined in: [core/field/types/Integer.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Integer.ts#L20) + +Whether number is presented without currency symbols or percent signs + +*** + +### categories? + +> `optional` **categories**: `number`[] \| `object`[] + +Defined in: [core/field/types/Integer.ts:26](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Integer.ts#L26) + +Categories for enum values +Can be an array of values or an array of {value, label} objects + +*** + +### categoriesOrdered? + +> `optional` **categoriesOrdered**: `boolean` + +Defined in: [core/field/types/Integer.ts:31](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Integer.ts#L31) + +Whether categories should be considered to have a natural order + +*** + +### constraints? + +> `optional` **constraints**: [`IntegerConstraints`](/reference/_dpkit/core/integerconstraints/) + +Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### groupChar? + +> `optional` **groupChar**: `string` + +Defined in: [core/field/types/Integer.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Integer.ts#L15) + +Character used as thousands separator + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type + +> **type**: `"integer"` + +Defined in: [core/field/types/Integer.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Integer.ts#L10) + +Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/License.md b/docs/content/docs/reference/_dpkit/core/License.md new file mode 100644 index 00000000..7766540a --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/License.md @@ -0,0 +1,46 @@ +--- +editUrl: false +next: false +prev: false +title: "License" +--- + +Defined in: [core/resource/License.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/License.ts#L4) + +License information + +## Properties + +### name? + +> `optional` **name**: `string` + +Defined in: [core/resource/License.ts:9](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/License.ts#L9) + +The name of the license + +#### Example + +```ts +"MIT", "Apache-2.0" +``` + +*** + +### path? + +> `optional` **path**: `string` + +Defined in: [core/resource/License.ts:14](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/License.ts#L14) + +A URL to the license text + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: [core/resource/License.ts:19](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/License.ts#L19) + +Human-readable title of the license diff --git a/docs/content/docs/reference/_dpkit/core/ListConstraints.md b/docs/content/docs/reference/_dpkit/core/ListConstraints.md new file mode 100644 index 00000000..645f5723 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/ListConstraints.md @@ -0,0 +1,73 @@ +--- +editUrl: false +next: false +prev: false +title: "ListConstraints" +--- + +Defined in: [core/field/types/List.ts:33](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/List.ts#L33) + +List-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] \| `any`[][] + +Defined in: [core/field/types/List.ts:48](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/List.ts#L48) + +Restrict values to a specified set of lists +Either as delimited strings or arrays + +*** + +### maxLength? + +> `optional` **maxLength**: `number` + +Defined in: [core/field/types/List.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/List.ts#L42) + +Maximum number of list items + +*** + +### minLength? + +> `optional` **minLength**: `number` + +Defined in: [core/field/types/List.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/List.ts#L37) + +Minimum number of list items + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/ListField.md b/docs/content/docs/reference/_dpkit/core/ListField.md new file mode 100644 index 00000000..589c096f --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/ListField.md @@ -0,0 +1,148 @@ +--- +editUrl: false +next: false +prev: false +title: "ListField" +--- + +Defined in: [core/field/types/List.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/List.ts#L6) + +List field type (primitive values ordered collection) + +## Extends + +- `BaseField`\<[`ListConstraints`](/reference/_dpkit/core/listconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### constraints? + +> `optional` **constraints**: [`ListConstraints`](/reference/_dpkit/core/listconstraints/) + +Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### delimiter? + +> `optional` **delimiter**: `string` + +Defined in: [core/field/types/List.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/List.ts#L15) + +Character used to separate values in the list + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### itemType? + +> `optional` **itemType**: `"string"` \| `"number"` \| `"boolean"` \| `"integer"` \| `"datetime"` \| `"date"` \| `"time"` + +Defined in: [core/field/types/List.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/List.ts#L20) + +Type of items in the list + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type + +> **type**: `"list"` + +Defined in: [core/field/types/List.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/List.ts#L10) + +Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/Metadata.md b/docs/content/docs/reference/_dpkit/core/Metadata.md new file mode 100644 index 00000000..f1a31c47 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/Metadata.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "Metadata" +--- + +> **Metadata** = `` { [key in `${string}:${string}`]: any } `` + +Defined in: [core/general/metadata/Metadata.ts:1](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/metadata/Metadata.ts#L1) diff --git a/docs/content/docs/reference/_dpkit/core/MetadataError.md b/docs/content/docs/reference/_dpkit/core/MetadataError.md new file mode 100644 index 00000000..a3670119 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/MetadataError.md @@ -0,0 +1,130 @@ +--- +editUrl: false +next: false +prev: false +title: "MetadataError" +--- + +Defined in: [core/general/Error.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/Error.ts#L6) + +A descriptor error + +## Extends + +- `ErrorObject` + +## Properties + +### data? + +> `optional` **data**: `unknown` + +Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:83 + +#### Inherited from + +`ErrorObject.data` + +*** + +### instancePath + +> **instancePath**: `string` + +Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:76 + +#### Inherited from + +`ErrorObject.instancePath` + +*** + +### keyword + +> **keyword**: `string` + +Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:75 + +#### Inherited from + +`ErrorObject.keyword` + +*** + +### message? + +> `optional` **message**: `string` + +Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:80 + +#### Inherited from + +`ErrorObject.message` + +*** + +### params + +> **params**: `P` + +Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:78 + +#### Inherited from + +`ErrorObject.params` + +*** + +### parentSchema? + +> `optional` **parentSchema**: `AnySchemaObject` + +Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:82 + +#### Inherited from + +`ErrorObject.parentSchema` + +*** + +### propertyName? + +> `optional` **propertyName**: `string` + +Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:79 + +#### Inherited from + +`ErrorObject.propertyName` + +*** + +### schema? + +> `optional` **schema**: `unknown` + +Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:81 + +#### Inherited from + +`ErrorObject.schema` + +*** + +### schemaPath + +> **schemaPath**: `string` + +Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:77 + +#### Inherited from + +`ErrorObject.schemaPath` + +*** + +### type + +> **type**: `"metadata"` + +Defined in: [core/general/Error.ts:7](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/Error.ts#L7) diff --git a/docs/content/docs/reference/_dpkit/core/NumberConstraints.md b/docs/content/docs/reference/_dpkit/core/NumberConstraints.md new file mode 100644 index 00000000..a85a708b --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/NumberConstraints.md @@ -0,0 +1,93 @@ +--- +editUrl: false +next: false +prev: false +title: "NumberConstraints" +--- + +Defined in: [core/field/types/Number.ts:31](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Number.ts#L31) + +Number-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] \| `number`[] + +Defined in: [core/field/types/Number.ts:56](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Number.ts#L56) + +Restrict values to a specified set +Can be an array of numbers or strings that parse to numbers + +*** + +### exclusiveMaximum? + +> `optional` **exclusiveMaximum**: `string` \| `number` + +Defined in: [core/field/types/Number.ts:50](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Number.ts#L50) + +Exclusive maximum allowed value + +*** + +### exclusiveMinimum? + +> `optional` **exclusiveMinimum**: `string` \| `number` + +Defined in: [core/field/types/Number.ts:45](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Number.ts#L45) + +Exclusive minimum allowed value + +*** + +### maximum? + +> `optional` **maximum**: `string` \| `number` + +Defined in: [core/field/types/Number.ts:40](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Number.ts#L40) + +Maximum allowed value + +*** + +### minimum? + +> `optional` **minimum**: `string` \| `number` + +Defined in: [core/field/types/Number.ts:35](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Number.ts#L35) + +Minimum allowed value + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/NumberField.md b/docs/content/docs/reference/_dpkit/core/NumberField.md new file mode 100644 index 00000000..a14461ca --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/NumberField.md @@ -0,0 +1,158 @@ +--- +editUrl: false +next: false +prev: false +title: "NumberField" +--- + +Defined in: [core/field/types/Number.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Number.ts#L6) + +Number field type + +## Extends + +- `BaseField`\<[`NumberConstraints`](/reference/_dpkit/core/numberconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### bareNumber? + +> `optional` **bareNumber**: `boolean` + +Defined in: [core/field/types/Number.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Number.ts#L25) + +Whether number is presented without currency symbols or percent signs + +*** + +### constraints? + +> `optional` **constraints**: [`NumberConstraints`](/reference/_dpkit/core/numberconstraints/) + +Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### decimalChar? + +> `optional` **decimalChar**: `string` + +Defined in: [core/field/types/Number.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Number.ts#L15) + +Character used as decimal separator + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### groupChar? + +> `optional` **groupChar**: `string` + +Defined in: [core/field/types/Number.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Number.ts#L20) + +Character used as thousands separator + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type + +> **type**: `"number"` + +Defined in: [core/field/types/Number.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Number.ts#L10) + +Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/ObjectConstraints.md b/docs/content/docs/reference/_dpkit/core/ObjectConstraints.md new file mode 100644 index 00000000..596167d6 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/ObjectConstraints.md @@ -0,0 +1,83 @@ +--- +editUrl: false +next: false +prev: false +title: "ObjectConstraints" +--- + +Defined in: [core/field/types/Object.ts:16](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Object.ts#L16) + +Object-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] \| `Record`\<`string`, `any`\>[] + +Defined in: [core/field/types/Object.ts:36](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Object.ts#L36) + +Restrict values to a specified set of objects +Serialized as JSON strings or object literals + +*** + +### jsonSchema? + +> `optional` **jsonSchema**: `Record`\<`string`, `any`\> + +Defined in: [core/field/types/Object.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Object.ts#L30) + +JSON Schema object for validating the object structure and properties + +*** + +### maxLength? + +> `optional` **maxLength**: `number` + +Defined in: [core/field/types/Object.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Object.ts#L25) + +Maximum number of properties + +*** + +### minLength? + +> `optional` **minLength**: `number` + +Defined in: [core/field/types/Object.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Object.ts#L20) + +Minimum number of properties + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/ObjectField.md b/docs/content/docs/reference/_dpkit/core/ObjectField.md new file mode 100644 index 00000000..8ef90462 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/ObjectField.md @@ -0,0 +1,128 @@ +--- +editUrl: false +next: false +prev: false +title: "ObjectField" +--- + +Defined in: [core/field/types/Object.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Object.ts#L6) + +Object field type (serialized JSON object) + +## Extends + +- `BaseField`\<[`ObjectConstraints`](/reference/_dpkit/core/objectconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### constraints? + +> `optional` **constraints**: [`ObjectConstraints`](/reference/_dpkit/core/objectconstraints/) + +Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type + +> **type**: `"object"` + +Defined in: [core/field/types/Object.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Object.ts#L10) + +Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/Package.md b/docs/content/docs/reference/_dpkit/core/Package.md new file mode 100644 index 00000000..9fb4f129 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/Package.md @@ -0,0 +1,163 @@ +--- +editUrl: false +next: false +prev: false +title: "Package" +--- + +Defined in: [core/package/Package.ts:9](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Package.ts#L9) + +Data Package interface built on top of the Frictionless Data specification + +## See + +https://datapackage.org/standard/data-package/ + +## Extends + +- [`Metadata`](/reference/_dpkit/core/metadata/) + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### $schema? + +> `optional` **$schema**: `string` + +Defined in: [core/package/Package.ts:24](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Package.ts#L24) + +Package schema URL for validation + +*** + +### contributors? + +> `optional` **contributors**: [`Contributor`](/reference/_dpkit/core/contributor/)[] + +Defined in: [core/package/Package.ts:55](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Package.ts#L55) + +List of contributors + +*** + +### created? + +> `optional` **created**: `string` + +Defined in: [core/package/Package.ts:71](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Package.ts#L71) + +Create time of the package + +#### Format + +ISO 8601 format + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: [core/package/Package.ts:34](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Package.ts#L34) + +A description of the package + +*** + +### homepage? + +> `optional` **homepage**: `string` + +Defined in: [core/package/Package.ts:39](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Package.ts#L39) + +A URL for the home page of the package + +*** + +### image? + +> `optional` **image**: `string` + +Defined in: [core/package/Package.ts:76](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Package.ts#L76) + +Package image + +*** + +### keywords? + +> `optional` **keywords**: `string`[] + +Defined in: [core/package/Package.ts:65](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Package.ts#L65) + +Keywords for the package + +*** + +### licenses? + +> `optional` **licenses**: [`License`](/reference/_dpkit/core/license/)[] + +Defined in: [core/package/Package.ts:50](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Package.ts#L50) + +License information + +*** + +### name? + +> `optional` **name**: `string` + +Defined in: [core/package/Package.ts:19](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Package.ts#L19) + +Unique package identifier +Should use lowercase alphanumeric characters, periods, hyphens, and underscores + +*** + +### resources + +> **resources**: [`Resource`](/reference/_dpkit/core/resource/)[] + +Defined in: [core/package/Package.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Package.ts#L13) + +Data resources in this package (required) + +*** + +### sources? + +> `optional` **sources**: [`Source`](/reference/_dpkit/core/source/)[] + +Defined in: [core/package/Package.ts:60](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Package.ts#L60) + +Data sources for this package + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: [core/package/Package.ts:29](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Package.ts#L29) + +Human-readable title + +*** + +### version? + +> `optional` **version**: `string` + +Defined in: [core/package/Package.ts:45](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Package.ts#L45) + +Version of the package using SemVer + +#### Example + +```ts +"1.0.0" +``` diff --git a/docs/content/docs/reference/_dpkit/core/Plugin.md b/docs/content/docs/reference/_dpkit/core/Plugin.md new file mode 100644 index 00000000..d47d696a --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/Plugin.md @@ -0,0 +1,54 @@ +--- +editUrl: false +next: false +prev: false +title: "Plugin" +--- + +Defined in: [core/plugin.ts:3](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/plugin.ts#L3) + +## Methods + +### loadPackage()? + +> `optional` **loadPackage**(`source`): `Promise`\<`undefined` \| [`Package`](/reference/_dpkit/core/package/)\> + +Defined in: [core/plugin.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/plugin.ts#L4) + +#### Parameters + +##### source + +`string` + +#### Returns + +`Promise`\<`undefined` \| [`Package`](/reference/_dpkit/core/package/)\> + +*** + +### savePackage()? + +> `optional` **savePackage**(`dataPackage`, `options`): `Promise`\<`undefined` \| \{ `path?`: `string`; \}\> + +Defined in: [core/plugin.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/plugin.ts#L6) + +#### Parameters + +##### dataPackage + +[`Package`](/reference/_dpkit/core/package/) + +##### options + +###### target + +`string` + +###### withRemote? + +`boolean` + +#### Returns + +`Promise`\<`undefined` \| \{ `path?`: `string`; \}\> diff --git a/docs/content/docs/reference/_dpkit/core/Resource.md b/docs/content/docs/reference/_dpkit/core/Resource.md new file mode 100644 index 00000000..57f1eedf --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/Resource.md @@ -0,0 +1,209 @@ +--- +editUrl: false +next: false +prev: false +title: "Resource" +--- + +Defined in: [core/resource/Resource.ts:11](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L11) + +Data Resource interface built on top of the Data Package standard and Polars DataFrames + +## See + +https://datapackage.org/standard/data-resource/ + +## Extends + +- [`Metadata`](/reference/_dpkit/core/metadata/) + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### bytes? + +> `optional` **bytes**: `number` + +Defined in: [core/resource/Resource.ts:67](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L67) + +Size of the file in bytes + +*** + +### data? + +> `optional` **data**: `unknown` + +Defined in: [core/resource/Resource.ts:28](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L28) + +Inline data content instead of referencing an external file +Either path or data must be provided + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: [core/resource/Resource.ts:62](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L62) + +A description of the resource + +*** + +### dialect? + +> `optional` **dialect**: `string` \| [`Dialect`](/reference/_dpkit/core/dialect/) + +Defined in: [core/resource/Resource.ts:89](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L89) + +Table dialect specification +Describes delimiters, quote characters, etc. + +#### See + +https://datapackage.org/standard/table-dialect/ + +*** + +### encoding? + +> `optional` **encoding**: `string` + +Defined in: [core/resource/Resource.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L52) + +Character encoding of the resource + +#### Default + +```ts +"utf-8" +``` + +*** + +### format? + +> `optional` **format**: `string` + +Defined in: [core/resource/Resource.ts:40](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L40) + +The file format + +#### Example + +```ts +"csv", "json", "xlsx" +``` + +*** + +### hash? + +> `optional` **hash**: `string` + +Defined in: [core/resource/Resource.ts:72](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L72) + +Hash of the resource data + +*** + +### licenses? + +> `optional` **licenses**: [`License`](/reference/_dpkit/core/license/)[] + +Defined in: [core/resource/Resource.ts:82](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L82) + +License information + +*** + +### mediatype? + +> `optional` **mediatype**: `string` + +Defined in: [core/resource/Resource.ts:46](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L46) + +The media type of the resource + +#### Example + +```ts +"text/csv", "application/json" +``` + +*** + +### name + +> **name**: `string` + +Defined in: [core/resource/Resource.ts:16](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L16) + +Unique resource identifier +Should use lowercase alphanumeric characters, periods, hyphens, and underscores + +*** + +### path? + +> `optional` **path**: `string` \| `string`[] + +Defined in: [core/resource/Resource.ts:22](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L22) + +A reference to the data itself, can be a path URL or array of paths +Either path or data must be provided + +*** + +### schema? + +> `optional` **schema**: `string` \| [`Schema`](/reference/_dpkit/core/schema/) + +Defined in: [core/resource/Resource.ts:96](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L96) + +Schema for the tabular data +Describes fields in the table, constraints, etc. + +#### See + +https://datapackage.org/standard/table-schema/ + +*** + +### sources? + +> `optional` **sources**: [`Source`](/reference/_dpkit/core/source/)[] + +Defined in: [core/resource/Resource.ts:77](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L77) + +Data sources + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: [core/resource/Resource.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L57) + +Human-readable title + +*** + +### type? + +> `optional` **type**: `"table"` + +Defined in: [core/resource/Resource.ts:34](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L34) + +The resource type + +#### Example + +```ts +"table" +``` diff --git a/docs/content/docs/reference/_dpkit/core/Schema.md b/docs/content/docs/reference/_dpkit/core/Schema.md new file mode 100644 index 00000000..9eb8a1a1 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/Schema.md @@ -0,0 +1,93 @@ +--- +editUrl: false +next: false +prev: false +title: "Schema" +--- + +Defined in: [core/schema/Schema.ts:9](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/Schema.ts#L9) + +Table Schema definition +Based on the specification at https://datapackage.org/standard/table-schema/ + +## Extends + +- [`Metadata`](/reference/_dpkit/core/metadata/) + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### $schema? + +> `optional` **$schema**: `string` + +Defined in: [core/schema/Schema.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/Schema.ts#L18) + +URL of schema (optional) + +*** + +### fields + +> **fields**: [`Field`](/reference/_dpkit/core/field/)[] + +Defined in: [core/schema/Schema.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/Schema.ts#L13) + +Fields in this schema (required) + +*** + +### fieldsMatch? + +> `optional` **fieldsMatch**: `"exact"` \| `"equal"` \| `"subset"` \| `"superset"` \| `"partial"` + +Defined in: [core/schema/Schema.ts:24](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/Schema.ts#L24) + +Field matching rule (optional) +Default: "exact" + +*** + +### foreignKeys? + +> `optional` **foreignKeys**: [`ForeignKey`](/reference/_dpkit/core/foreignkey/)[] + +Defined in: [core/schema/Schema.ts:47](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/Schema.ts#L47) + +Foreign key relationships (optional) + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: [core/schema/Schema.ts:32](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/Schema.ts#L32) + +Values representing missing data (optional) +Default: [""] +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +*** + +### primaryKey? + +> `optional` **primaryKey**: `string`[] + +Defined in: [core/schema/Schema.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/Schema.ts#L37) + +Fields uniquely identifying each row (optional) + +*** + +### uniqueKeys? + +> `optional` **uniqueKeys**: `string`[][] + +Defined in: [core/schema/Schema.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/Schema.ts#L42) + +Field combinations that must be unique (optional) diff --git a/docs/content/docs/reference/_dpkit/core/Source.md b/docs/content/docs/reference/_dpkit/core/Source.md new file mode 100644 index 00000000..3846de5c --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/Source.md @@ -0,0 +1,40 @@ +--- +editUrl: false +next: false +prev: false +title: "Source" +--- + +Defined in: [core/resource/Source.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Source.ts#L4) + +Source information + +## Properties + +### email? + +> `optional` **email**: `string` + +Defined in: [core/resource/Source.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Source.ts#L18) + +Email contact for the source + +*** + +### path? + +> `optional` **path**: `string` + +Defined in: [core/resource/Source.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Source.ts#L13) + +URL or path to the source + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: [core/resource/Source.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Source.ts#L8) + +Human-readable title of the source diff --git a/docs/content/docs/reference/_dpkit/core/StringConstraints.md b/docs/content/docs/reference/_dpkit/core/StringConstraints.md new file mode 100644 index 00000000..4e1be28c --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/StringConstraints.md @@ -0,0 +1,82 @@ +--- +editUrl: false +next: false +prev: false +title: "StringConstraints" +--- + +Defined in: [core/field/types/String.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/String.ts#L37) + +String-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] + +Defined in: [core/field/types/String.ts:56](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/String.ts#L56) + +Restrict values to a specified set of strings + +*** + +### maxLength? + +> `optional` **maxLength**: `number` + +Defined in: [core/field/types/String.ts:46](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/String.ts#L46) + +Maximum string length + +*** + +### minLength? + +> `optional` **minLength**: `number` + +Defined in: [core/field/types/String.ts:41](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/String.ts#L41) + +Minimum string length + +*** + +### pattern? + +> `optional` **pattern**: `string` + +Defined in: [core/field/types/String.ts:51](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/String.ts#L51) + +Regular expression pattern to match + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/StringField.md b/docs/content/docs/reference/_dpkit/core/StringField.md new file mode 100644 index 00000000..bea8829f --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/StringField.md @@ -0,0 +1,164 @@ +--- +editUrl: false +next: false +prev: false +title: "StringField" +--- + +Defined in: [core/field/types/String.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/String.ts#L6) + +String field type + +## Extends + +- `BaseField`\<[`StringConstraints`](/reference/_dpkit/core/stringconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### categories? + +> `optional` **categories**: `string`[] \| `object`[] + +Defined in: [core/field/types/String.ts:26](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/String.ts#L26) + +Categories for enum values +Can be an array of string values or an array of {value, label} objects + +*** + +### categoriesOrdered? + +> `optional` **categoriesOrdered**: `boolean` + +Defined in: [core/field/types/String.ts:31](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/String.ts#L31) + +Whether categories should be considered to have a natural order + +*** + +### constraints? + +> `optional` **constraints**: [`StringConstraints`](/reference/_dpkit/core/stringconstraints/) + +Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### format? + +> `optional` **format**: `string` + +Defined in: [core/field/types/String.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/String.ts#L20) + +Format of the string +- default: any valid string +- email: valid email address +- uri: valid URI +- binary: base64 encoded string +- uuid: valid UUID string + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type + +> **type**: `"string"` + +Defined in: [core/field/types/String.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/String.ts#L10) + +Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/TimeConstraints.md b/docs/content/docs/reference/_dpkit/core/TimeConstraints.md new file mode 100644 index 00000000..8275323c --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/TimeConstraints.md @@ -0,0 +1,73 @@ +--- +editUrl: false +next: false +prev: false +title: "TimeConstraints" +--- + +Defined in: [core/field/types/Time.ts:24](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Time.ts#L24) + +Time-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] + +Defined in: [core/field/types/Time.ts:39](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Time.ts#L39) + +Restrict values to a specified set of times +Should be in string time format (e.g., "HH:MM:SS") + +*** + +### maximum? + +> `optional` **maximum**: `string` + +Defined in: [core/field/types/Time.ts:33](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Time.ts#L33) + +Maximum allowed time value + +*** + +### minimum? + +> `optional` **minimum**: `string` + +Defined in: [core/field/types/Time.ts:28](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Time.ts#L28) + +Minimum allowed time value + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/TimeField.md b/docs/content/docs/reference/_dpkit/core/TimeField.md new file mode 100644 index 00000000..afd11578 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/TimeField.md @@ -0,0 +1,141 @@ +--- +editUrl: false +next: false +prev: false +title: "TimeField" +--- + +Defined in: [core/field/types/Time.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Time.ts#L6) + +Time field type + +## Extends + +- `BaseField`\<[`TimeConstraints`](/reference/_dpkit/core/timeconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### constraints? + +> `optional` **constraints**: [`TimeConstraints`](/reference/_dpkit/core/timeconstraints/) + +Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### format? + +> `optional` **format**: `string` + +Defined in: [core/field/types/Time.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Time.ts#L18) + +Format of the time +- default: HH:MM:SS +- any: flexible time parsing (not recommended) +- Or custom strptime/strftime format string + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type + +> **type**: `"time"` + +Defined in: [core/field/types/Time.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Time.ts#L10) + +Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/YearConstraints.md b/docs/content/docs/reference/_dpkit/core/YearConstraints.md new file mode 100644 index 00000000..090a4d04 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/YearConstraints.md @@ -0,0 +1,73 @@ +--- +editUrl: false +next: false +prev: false +title: "YearConstraints" +--- + +Defined in: [core/field/types/Year.ts:16](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Year.ts#L16) + +Year-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] \| `number`[] + +Defined in: [core/field/types/Year.ts:31](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Year.ts#L31) + +Restrict values to a specified set of years +Can be an array of numbers or strings that parse to years + +*** + +### maximum? + +> `optional` **maximum**: `number` + +Defined in: [core/field/types/Year.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Year.ts#L25) + +Maximum allowed year + +*** + +### minimum? + +> `optional` **minimum**: `number` + +Defined in: [core/field/types/Year.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Year.ts#L20) + +Minimum allowed year + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/YearField.md b/docs/content/docs/reference/_dpkit/core/YearField.md new file mode 100644 index 00000000..4bdae265 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/YearField.md @@ -0,0 +1,128 @@ +--- +editUrl: false +next: false +prev: false +title: "YearField" +--- + +Defined in: [core/field/types/Year.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Year.ts#L6) + +Year field type + +## Extends + +- `BaseField`\<[`YearConstraints`](/reference/_dpkit/core/yearconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### constraints? + +> `optional` **constraints**: [`YearConstraints`](/reference/_dpkit/core/yearconstraints/) + +Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type + +> **type**: `"year"` + +Defined in: [core/field/types/Year.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Year.ts#L10) + +Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/YearmonthConstraints.md b/docs/content/docs/reference/_dpkit/core/YearmonthConstraints.md new file mode 100644 index 00000000..ae1d8070 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/YearmonthConstraints.md @@ -0,0 +1,73 @@ +--- +editUrl: false +next: false +prev: false +title: "YearmonthConstraints" +--- + +Defined in: [core/field/types/Yearmonth.ts:16](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Yearmonth.ts#L16) + +Yearmonth-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] + +Defined in: [core/field/types/Yearmonth.ts:31](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Yearmonth.ts#L31) + +Restrict values to a specified set of yearmonths +Should be in string format (e.g., "YYYY-MM") + +*** + +### maximum? + +> `optional` **maximum**: `string` + +Defined in: [core/field/types/Yearmonth.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Yearmonth.ts#L25) + +Maximum allowed yearmonth value (format: YYYY-MM) + +*** + +### minimum? + +> `optional` **minimum**: `string` + +Defined in: [core/field/types/Yearmonth.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Yearmonth.ts#L20) + +Minimum allowed yearmonth value (format: YYYY-MM) + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/YearmonthField.md b/docs/content/docs/reference/_dpkit/core/YearmonthField.md new file mode 100644 index 00000000..b4a3d4d9 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/YearmonthField.md @@ -0,0 +1,128 @@ +--- +editUrl: false +next: false +prev: false +title: "YearmonthField" +--- + +Defined in: [core/field/types/Yearmonth.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Yearmonth.ts#L6) + +Year and month field type + +## Extends + +- `BaseField`\<[`YearmonthConstraints`](/reference/_dpkit/core/yearmonthconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### constraints? + +> `optional` **constraints**: [`YearmonthConstraints`](/reference/_dpkit/core/yearmonthconstraints/) + +Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type + +> **type**: `"yearmonth"` + +Defined in: [core/field/types/Yearmonth.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Yearmonth.ts#L10) + +Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/assertDialect.md b/docs/content/docs/reference/_dpkit/core/assertDialect.md new file mode 100644 index 00000000..28481f81 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/assertDialect.md @@ -0,0 +1,22 @@ +--- +editUrl: false +next: false +prev: false +title: "assertDialect" +--- + +> **assertDialect**(`descriptor`): `Promise`\<[`Dialect`](/reference/_dpkit/core/dialect/)\> + +Defined in: [core/dialect/assert.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/assert.ts#L8) + +Assert a Dialect descriptor (JSON Object) against its profile + +## Parameters + +### descriptor + +[`Descriptor`](/reference/_dpkit/core/descriptor/) | [`Dialect`](/reference/_dpkit/core/dialect/) + +## Returns + +`Promise`\<[`Dialect`](/reference/_dpkit/core/dialect/)\> diff --git a/docs/content/docs/reference/_dpkit/core/assertPackage.md b/docs/content/docs/reference/_dpkit/core/assertPackage.md new file mode 100644 index 00000000..0d512215 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/assertPackage.md @@ -0,0 +1,28 @@ +--- +editUrl: false +next: false +prev: false +title: "assertPackage" +--- + +> **assertPackage**(`descriptorOrPackage`, `options?`): `Promise`\<[`Package`](/reference/_dpkit/core/package/)\> + +Defined in: [core/package/assert.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/assert.ts#L8) + +Assert a Package descriptor (JSON Object) against its profile + +## Parameters + +### descriptorOrPackage + +[`Package`](/reference/_dpkit/core/package/) | [`Descriptor`](/reference/_dpkit/core/descriptor/) + +### options? + +#### basepath? + +`string` + +## Returns + +`Promise`\<[`Package`](/reference/_dpkit/core/package/)\> diff --git a/docs/content/docs/reference/_dpkit/core/assertResource.md b/docs/content/docs/reference/_dpkit/core/assertResource.md new file mode 100644 index 00000000..f8165838 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/assertResource.md @@ -0,0 +1,28 @@ +--- +editUrl: false +next: false +prev: false +title: "assertResource" +--- + +> **assertResource**(`descriptorOrResource`, `options?`): `Promise`\<[`Resource`](/reference/_dpkit/core/resource/)\> + +Defined in: [core/resource/assert.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/assert.ts#L8) + +Assert a Resource descriptor (JSON Object) against its profile + +## Parameters + +### descriptorOrResource + +[`Descriptor`](/reference/_dpkit/core/descriptor/) | [`Resource`](/reference/_dpkit/core/resource/) + +### options? + +#### basepath? + +`string` + +## Returns + +`Promise`\<[`Resource`](/reference/_dpkit/core/resource/)\> diff --git a/docs/content/docs/reference/_dpkit/core/assertSchema.md b/docs/content/docs/reference/_dpkit/core/assertSchema.md new file mode 100644 index 00000000..517e7675 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/assertSchema.md @@ -0,0 +1,22 @@ +--- +editUrl: false +next: false +prev: false +title: "assertSchema" +--- + +> **assertSchema**(`descriptor`): `Promise`\<[`Schema`](/reference/_dpkit/core/schema/)\> + +Defined in: [core/schema/assert.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/assert.ts#L8) + +Assert a Schema descriptor (JSON Object) against its profile + +## Parameters + +### descriptor + +[`Descriptor`](/reference/_dpkit/core/descriptor/) | [`Schema`](/reference/_dpkit/core/schema/) + +## Returns + +`Promise`\<[`Schema`](/reference/_dpkit/core/schema/)\> diff --git a/docs/content/docs/reference/_dpkit/core/denormalizeDialect.md b/docs/content/docs/reference/_dpkit/core/denormalizeDialect.md new file mode 100644 index 00000000..6878f74f --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/denormalizeDialect.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "denormalizeDialect" +--- + +> **denormalizeDialect**(`dialect`): [`Descriptor`](/reference/_dpkit/core/descriptor/) + +Defined in: [core/dialect/process/denormalize.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/process/denormalize.ts#L4) + +## Parameters + +### dialect + +[`Dialect`](/reference/_dpkit/core/dialect/) + +## Returns + +[`Descriptor`](/reference/_dpkit/core/descriptor/) diff --git a/docs/content/docs/reference/_dpkit/core/denormalizePackage.md b/docs/content/docs/reference/_dpkit/core/denormalizePackage.md new file mode 100644 index 00000000..6bfb4bcc --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/denormalizePackage.md @@ -0,0 +1,26 @@ +--- +editUrl: false +next: false +prev: false +title: "denormalizePackage" +--- + +> **denormalizePackage**(`dataPackage`, `options?`): [`Descriptor`](/reference/_dpkit/core/descriptor/) + +Defined in: [core/package/process/denormalize.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/process/denormalize.ts#L5) + +## Parameters + +### dataPackage + +[`Package`](/reference/_dpkit/core/package/) + +### options? + +#### basepath? + +`string` + +## Returns + +[`Descriptor`](/reference/_dpkit/core/descriptor/) diff --git a/docs/content/docs/reference/_dpkit/core/denormalizePath.md b/docs/content/docs/reference/_dpkit/core/denormalizePath.md new file mode 100644 index 00000000..5d384b08 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/denormalizePath.md @@ -0,0 +1,26 @@ +--- +editUrl: false +next: false +prev: false +title: "denormalizePath" +--- + +> **denormalizePath**(`path`, `options`): `string` + +Defined in: [core/general/path.ts:103](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/path.ts#L103) + +## Parameters + +### path + +`string` + +### options + +#### basepath? + +`string` + +## Returns + +`string` diff --git a/docs/content/docs/reference/_dpkit/core/denormalizeResource.md b/docs/content/docs/reference/_dpkit/core/denormalizeResource.md new file mode 100644 index 00000000..d7d95eee --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/denormalizeResource.md @@ -0,0 +1,26 @@ +--- +editUrl: false +next: false +prev: false +title: "denormalizeResource" +--- + +> **denormalizeResource**(`resource`, `options?`): [`Descriptor`](/reference/_dpkit/core/descriptor/) + +Defined in: [core/resource/process/denormalize.ts:7](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/process/denormalize.ts#L7) + +## Parameters + +### resource + +[`Resource`](/reference/_dpkit/core/resource/) + +### options? + +#### basepath? + +`string` + +## Returns + +[`Descriptor`](/reference/_dpkit/core/descriptor/) diff --git a/docs/content/docs/reference/_dpkit/core/denormalizeSchema.md b/docs/content/docs/reference/_dpkit/core/denormalizeSchema.md new file mode 100644 index 00000000..29b8f48a --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/denormalizeSchema.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "denormalizeSchema" +--- + +> **denormalizeSchema**(`schema`): [`Descriptor`](/reference/_dpkit/core/descriptor/) + +Defined in: [core/schema/process/denormalize.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/process/denormalize.ts#L4) + +## Parameters + +### schema + +[`Schema`](/reference/_dpkit/core/schema/) + +## Returns + +[`Descriptor`](/reference/_dpkit/core/descriptor/) diff --git a/docs/content/docs/reference/_dpkit/core/getBasepath.md b/docs/content/docs/reference/_dpkit/core/getBasepath.md new file mode 100644 index 00000000..f1f4ba24 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/getBasepath.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "getBasepath" +--- + +> **getBasepath**(`path`): `string` + +Defined in: [core/general/path.ts:48](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/path.ts#L48) + +## Parameters + +### path + +`string` + +## Returns + +`string` diff --git a/docs/content/docs/reference/_dpkit/core/getFilename.md b/docs/content/docs/reference/_dpkit/core/getFilename.md new file mode 100644 index 00000000..83c17919 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/getFilename.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "getFilename" +--- + +> **getFilename**(`path`): `undefined` \| `string` + +Defined in: [core/general/path.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/path.ts#L30) + +## Parameters + +### path + +`string` + +## Returns + +`undefined` \| `string` diff --git a/docs/content/docs/reference/_dpkit/core/getFormat.md b/docs/content/docs/reference/_dpkit/core/getFormat.md new file mode 100644 index 00000000..a50f55ed --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/getFormat.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "getFormat" +--- + +> **getFormat**(`filename?`): `undefined` \| `string` + +Defined in: [core/general/path.ts:26](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/path.ts#L26) + +## Parameters + +### filename? + +`string` + +## Returns + +`undefined` \| `string` diff --git a/docs/content/docs/reference/_dpkit/core/getName.md b/docs/content/docs/reference/_dpkit/core/getName.md new file mode 100644 index 00000000..559e4438 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/getName.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "getName" +--- + +> **getName**(`filename?`): `undefined` \| `string` + +Defined in: [core/general/path.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/path.ts#L13) + +## Parameters + +### filename? + +`string` + +## Returns + +`undefined` \| `string` diff --git a/docs/content/docs/reference/_dpkit/core/inferFormat.md b/docs/content/docs/reference/_dpkit/core/inferFormat.md new file mode 100644 index 00000000..33e7cc47 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/inferFormat.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "inferFormat" +--- + +> **inferFormat**(`resource`): `undefined` \| `string` + +Defined in: [core/resource/infer.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/infer.ts#L4) + +## Parameters + +### resource + +`Partial`\<[`Resource`](/reference/_dpkit/core/resource/)\> + +## Returns + +`undefined` \| `string` diff --git a/docs/content/docs/reference/_dpkit/core/isDescriptor.md b/docs/content/docs/reference/_dpkit/core/isDescriptor.md new file mode 100644 index 00000000..c647aa33 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/isDescriptor.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "isDescriptor" +--- + +> **isDescriptor**(`value`): `value is Descriptor` + +Defined in: [core/general/descriptor/Descriptor.ts:3](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/descriptor/Descriptor.ts#L3) + +## Parameters + +### value + +`unknown` + +## Returns + +`value is Descriptor` diff --git a/docs/content/docs/reference/_dpkit/core/isRemotePath.md b/docs/content/docs/reference/_dpkit/core/isRemotePath.md new file mode 100644 index 00000000..878ec258 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/isRemotePath.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "isRemotePath" +--- + +> **isRemotePath**(`path`): `boolean` + +Defined in: [core/general/path.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/path.ts#L4) + +## Parameters + +### path + +`string` + +## Returns + +`boolean` diff --git a/docs/content/docs/reference/_dpkit/core/loadDescriptor.md b/docs/content/docs/reference/_dpkit/core/loadDescriptor.md new file mode 100644 index 00000000..fb67aada --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/loadDescriptor.md @@ -0,0 +1,30 @@ +--- +editUrl: false +next: false +prev: false +title: "loadDescriptor" +--- + +> **loadDescriptor**(`path`, `options?`): `Promise`\<\{ `basepath`: `string`; `descriptor`: `Record`\<`string`, `any`\>; \}\> + +Defined in: [core/general/descriptor/load.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/descriptor/load.ts#L10) + +Load a descriptor (JSON Object) from a file or URL +Uses dynamic imports to work in both Node.js and browser environments +Supports HTTP, HTTPS, FTP, and FTPS protocols + +## Parameters + +### path + +`string` + +### options? + +#### onlyRemote? + +`boolean` + +## Returns + +`Promise`\<\{ `basepath`: `string`; `descriptor`: `Record`\<`string`, `any`\>; \}\> diff --git a/docs/content/docs/reference/_dpkit/core/loadDialect.md b/docs/content/docs/reference/_dpkit/core/loadDialect.md new file mode 100644 index 00000000..2d8fb378 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/loadDialect.md @@ -0,0 +1,23 @@ +--- +editUrl: false +next: false +prev: false +title: "loadDialect" +--- + +> **loadDialect**(`path`): `Promise`\<[`Dialect`](/reference/_dpkit/core/dialect/)\> + +Defined in: [core/dialect/load.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/load.ts#L8) + +Load a Dialect descriptor (JSON Object) from a file or URL +Ensures the descriptor is valid against its profile + +## Parameters + +### path + +`string` + +## Returns + +`Promise`\<[`Dialect`](/reference/_dpkit/core/dialect/)\> diff --git a/docs/content/docs/reference/_dpkit/core/loadPackageDescriptor.md b/docs/content/docs/reference/_dpkit/core/loadPackageDescriptor.md new file mode 100644 index 00000000..5443b982 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/loadPackageDescriptor.md @@ -0,0 +1,23 @@ +--- +editUrl: false +next: false +prev: false +title: "loadPackageDescriptor" +--- + +> **loadPackageDescriptor**(`path`): `Promise`\<[`Package`](/reference/_dpkit/core/package/)\> + +Defined in: [core/package/load.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/load.ts#L8) + +Load a Package descriptor (JSON Object) from a file or URL +Ensures the descriptor is valid against its profile + +## Parameters + +### path + +`string` + +## Returns + +`Promise`\<[`Package`](/reference/_dpkit/core/package/)\> diff --git a/docs/content/docs/reference/_dpkit/core/loadProfile.md b/docs/content/docs/reference/_dpkit/core/loadProfile.md new file mode 100644 index 00000000..8659616d --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/loadProfile.md @@ -0,0 +1,26 @@ +--- +editUrl: false +next: false +prev: false +title: "loadProfile" +--- + +> **loadProfile**(`path`, `options?`): `Promise`\<[`Descriptor`](/reference/_dpkit/core/descriptor/)\> + +Defined in: [core/general/profile/load.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/profile/load.ts#L6) + +## Parameters + +### path + +`string` + +### options? + +#### type? + +`string` + +## Returns + +`Promise`\<[`Descriptor`](/reference/_dpkit/core/descriptor/)\> diff --git a/docs/content/docs/reference/_dpkit/core/loadResourceDescriptor.md b/docs/content/docs/reference/_dpkit/core/loadResourceDescriptor.md new file mode 100644 index 00000000..3ab92475 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/loadResourceDescriptor.md @@ -0,0 +1,23 @@ +--- +editUrl: false +next: false +prev: false +title: "loadResourceDescriptor" +--- + +> **loadResourceDescriptor**(`path`): `Promise`\<[`Resource`](/reference/_dpkit/core/resource/)\> + +Defined in: [core/resource/load.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/load.ts#L8) + +Load a Resource descriptor (JSON Object) from a file or URL +Ensures the descriptor is valid against its profile + +## Parameters + +### path + +`string` + +## Returns + +`Promise`\<[`Resource`](/reference/_dpkit/core/resource/)\> diff --git a/docs/content/docs/reference/_dpkit/core/loadSchema.md b/docs/content/docs/reference/_dpkit/core/loadSchema.md new file mode 100644 index 00000000..29fa3a4e --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/loadSchema.md @@ -0,0 +1,23 @@ +--- +editUrl: false +next: false +prev: false +title: "loadSchema" +--- + +> **loadSchema**(`path`): `Promise`\<[`Schema`](/reference/_dpkit/core/schema/)\> + +Defined in: [core/schema/load.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/load.ts#L8) + +Load a Schema descriptor (JSON Object) from a file or URL +Ensures the descriptor is valid against its profile + +## Parameters + +### path + +`string` + +## Returns + +`Promise`\<[`Schema`](/reference/_dpkit/core/schema/)\> diff --git a/docs/content/docs/reference/_dpkit/core/mergePackages.md b/docs/content/docs/reference/_dpkit/core/mergePackages.md new file mode 100644 index 00000000..c54099a0 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/mergePackages.md @@ -0,0 +1,28 @@ +--- +editUrl: false +next: false +prev: false +title: "mergePackages" +--- + +> **mergePackages**(`options`): `Promise`\<\{[`key`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/_dpkit/core/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/_dpkit/core/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/_dpkit/core/resource/)[]; `sources?`: [`Source`](/reference/_dpkit/core/source/)[]; `title?`: `string`; `version?`: `string`; \}\> + +Defined in: [core/package/merge.ts:7](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/merge.ts#L7) + +Merges a system data package into a user data package if provided + +## Parameters + +### options + +#### systemPackage + +[`Package`](/reference/_dpkit/core/package/) + +#### userPackagePath? + +`string` + +## Returns + +`Promise`\<\{[`key`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/_dpkit/core/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/_dpkit/core/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/_dpkit/core/resource/)[]; `sources?`: [`Source`](/reference/_dpkit/core/source/)[]; `title?`: `string`; `version?`: `string`; \}\> diff --git a/docs/content/docs/reference/_dpkit/core/normalizeDialect.md b/docs/content/docs/reference/_dpkit/core/normalizeDialect.md new file mode 100644 index 00000000..5ec8d174 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/normalizeDialect.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "normalizeDialect" +--- + +> **normalizeDialect**(`descriptor`): [`Descriptor`](/reference/_dpkit/core/descriptor/) + +Defined in: [core/dialect/process/normalize.ts:3](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/process/normalize.ts#L3) + +## Parameters + +### descriptor + +[`Descriptor`](/reference/_dpkit/core/descriptor/) + +## Returns + +[`Descriptor`](/reference/_dpkit/core/descriptor/) diff --git a/docs/content/docs/reference/_dpkit/core/normalizeField.md b/docs/content/docs/reference/_dpkit/core/normalizeField.md new file mode 100644 index 00000000..a15befeb --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/normalizeField.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "normalizeField" +--- + +> **normalizeField**(`descriptor`): [`Descriptor`](/reference/_dpkit/core/descriptor/) + +Defined in: [core/field/process/normalize.ts:3](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/process/normalize.ts#L3) + +## Parameters + +### descriptor + +[`Descriptor`](/reference/_dpkit/core/descriptor/) + +## Returns + +[`Descriptor`](/reference/_dpkit/core/descriptor/) diff --git a/docs/content/docs/reference/_dpkit/core/normalizePackage.md b/docs/content/docs/reference/_dpkit/core/normalizePackage.md new file mode 100644 index 00000000..a9c05f36 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/normalizePackage.md @@ -0,0 +1,26 @@ +--- +editUrl: false +next: false +prev: false +title: "normalizePackage" +--- + +> **normalizePackage**(`descriptor`, `options`): [`Descriptor`](/reference/_dpkit/core/descriptor/) + +Defined in: [core/package/process/normalize.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/process/normalize.ts#L4) + +## Parameters + +### descriptor + +[`Descriptor`](/reference/_dpkit/core/descriptor/) + +### options + +#### basepath? + +`string` + +## Returns + +[`Descriptor`](/reference/_dpkit/core/descriptor/) diff --git a/docs/content/docs/reference/_dpkit/core/normalizePath.md b/docs/content/docs/reference/_dpkit/core/normalizePath.md new file mode 100644 index 00000000..ad8e0f69 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/normalizePath.md @@ -0,0 +1,26 @@ +--- +editUrl: false +next: false +prev: false +title: "normalizePath" +--- + +> **normalizePath**(`path`, `options`): `string` + +Defined in: [core/general/path.ts:64](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/path.ts#L64) + +## Parameters + +### path + +`string` + +### options + +#### basepath? + +`string` + +## Returns + +`string` diff --git a/docs/content/docs/reference/_dpkit/core/normalizeResource.md b/docs/content/docs/reference/_dpkit/core/normalizeResource.md new file mode 100644 index 00000000..ce4e4aa5 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/normalizeResource.md @@ -0,0 +1,26 @@ +--- +editUrl: false +next: false +prev: false +title: "normalizeResource" +--- + +> **normalizeResource**(`descriptor`, `options?`): [`Descriptor`](/reference/_dpkit/core/descriptor/) + +Defined in: [core/resource/process/normalize.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/process/normalize.ts#L6) + +## Parameters + +### descriptor + +[`Descriptor`](/reference/_dpkit/core/descriptor/) + +### options? + +#### basepath? + +`string` + +## Returns + +[`Descriptor`](/reference/_dpkit/core/descriptor/) diff --git a/docs/content/docs/reference/_dpkit/core/normalizeSchema.md b/docs/content/docs/reference/_dpkit/core/normalizeSchema.md new file mode 100644 index 00000000..4b26a24b --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/normalizeSchema.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "normalizeSchema" +--- + +> **normalizeSchema**(`descriptor`): [`Descriptor`](/reference/_dpkit/core/descriptor/) + +Defined in: [core/schema/process/normalize.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/process/normalize.ts#L5) + +## Parameters + +### descriptor + +[`Descriptor`](/reference/_dpkit/core/descriptor/) + +## Returns + +[`Descriptor`](/reference/_dpkit/core/descriptor/) diff --git a/docs/content/docs/reference/_dpkit/core/parseDescriptor.md b/docs/content/docs/reference/_dpkit/core/parseDescriptor.md new file mode 100644 index 00000000..5ff98349 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/parseDescriptor.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "parseDescriptor" +--- + +> **parseDescriptor**(`text`): [`Descriptor`](/reference/_dpkit/core/descriptor/) + +Defined in: [core/general/descriptor/process/parse.ts:3](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/descriptor/process/parse.ts#L3) + +## Parameters + +### text + +`string` + +## Returns + +[`Descriptor`](/reference/_dpkit/core/descriptor/) diff --git a/docs/content/docs/reference/_dpkit/core/saveDescriptor.md b/docs/content/docs/reference/_dpkit/core/saveDescriptor.md new file mode 100644 index 00000000..3ce7e55e --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/saveDescriptor.md @@ -0,0 +1,29 @@ +--- +editUrl: false +next: false +prev: false +title: "saveDescriptor" +--- + +> **saveDescriptor**(`descriptor`, `options`): `Promise`\<`void`\> + +Defined in: [core/general/descriptor/save.ts:9](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/descriptor/save.ts#L9) + +Save a descriptor (JSON Object) to a file path +Works in Node.js environments + +## Parameters + +### descriptor + +[`Descriptor`](/reference/_dpkit/core/descriptor/) + +### options + +#### path + +`string` + +## Returns + +`Promise`\<`void`\> diff --git a/docs/content/docs/reference/_dpkit/core/saveDialect.md b/docs/content/docs/reference/_dpkit/core/saveDialect.md new file mode 100644 index 00000000..91f545b6 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/saveDialect.md @@ -0,0 +1,29 @@ +--- +editUrl: false +next: false +prev: false +title: "saveDialect" +--- + +> **saveDialect**(`dialect`, `options`): `Promise`\<`void`\> + +Defined in: [core/dialect/save.ts:11](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/save.ts#L11) + +Save a Dialect to a file path +Works in Node.js environments + +## Parameters + +### dialect + +[`Dialect`](/reference/_dpkit/core/dialect/) + +### options + +#### path + +`string` + +## Returns + +`Promise`\<`void`\> diff --git a/docs/content/docs/reference/_dpkit/core/savePackageDescriptor.md b/docs/content/docs/reference/_dpkit/core/savePackageDescriptor.md new file mode 100644 index 00000000..34297000 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/savePackageDescriptor.md @@ -0,0 +1,29 @@ +--- +editUrl: false +next: false +prev: false +title: "savePackageDescriptor" +--- + +> **savePackageDescriptor**(`dataPackage`, `options`): `Promise`\<`void`\> + +Defined in: [core/package/save.ts:11](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/save.ts#L11) + +Save a Package to a file path +Works in Node.js environments + +## Parameters + +### dataPackage + +[`Package`](/reference/_dpkit/core/package/) + +### options + +#### path + +`string` + +## Returns + +`Promise`\<`void`\> diff --git a/docs/content/docs/reference/_dpkit/core/saveResourceDescriptor.md b/docs/content/docs/reference/_dpkit/core/saveResourceDescriptor.md new file mode 100644 index 00000000..fbd6cddd --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/saveResourceDescriptor.md @@ -0,0 +1,29 @@ +--- +editUrl: false +next: false +prev: false +title: "saveResourceDescriptor" +--- + +> **saveResourceDescriptor**(`resource`, `options`): `Promise`\<`void`\> + +Defined in: [core/resource/save.ts:11](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/save.ts#L11) + +Save a Resource to a file path +Works in Node.js environments + +## Parameters + +### resource + +[`Resource`](/reference/_dpkit/core/resource/) + +### options + +#### path + +`string` + +## Returns + +`Promise`\<`void`\> diff --git a/docs/content/docs/reference/_dpkit/core/saveSchema.md b/docs/content/docs/reference/_dpkit/core/saveSchema.md new file mode 100644 index 00000000..8d3dc831 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/saveSchema.md @@ -0,0 +1,29 @@ +--- +editUrl: false +next: false +prev: false +title: "saveSchema" +--- + +> **saveSchema**(`schema`, `options`): `Promise`\<`void`\> + +Defined in: [core/schema/save.ts:11](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/save.ts#L11) + +Save a Schema to a file path +Works in Node.js environments + +## Parameters + +### schema + +[`Schema`](/reference/_dpkit/core/schema/) + +### options + +#### path + +`string` + +## Returns + +`Promise`\<`void`\> diff --git a/docs/content/docs/reference/_dpkit/core/stringifyDescriptor.md b/docs/content/docs/reference/_dpkit/core/stringifyDescriptor.md new file mode 100644 index 00000000..ee0ed551 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/stringifyDescriptor.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "stringifyDescriptor" +--- + +> **stringifyDescriptor**(`descriptor`): `string` + +Defined in: [core/general/descriptor/process/stringify.ts:3](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/descriptor/process/stringify.ts#L3) + +## Parameters + +### descriptor + +[`Descriptor`](/reference/_dpkit/core/descriptor/) + +## Returns + +`string` diff --git a/docs/content/docs/reference/_dpkit/core/validateDescriptor.md b/docs/content/docs/reference/_dpkit/core/validateDescriptor.md new file mode 100644 index 00000000..b1c7d107 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/validateDescriptor.md @@ -0,0 +1,30 @@ +--- +editUrl: false +next: false +prev: false +title: "validateDescriptor" +--- + +> **validateDescriptor**(`descriptor`, `options`): `Promise`\<\{ `errors`: [`MetadataError`](/reference/_dpkit/core/metadataerror/)[]; `valid`: `boolean`; \}\> + +Defined in: [core/general/descriptor/validate.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/descriptor/validate.ts#L10) + +Validate a descriptor (JSON Object) against a JSON Schema +It uses Ajv for JSON Schema validation under the hood +It returns a list of errors (empty if valid) + +## Parameters + +### descriptor + +[`Descriptor`](/reference/_dpkit/core/descriptor/) + +### options + +#### profile + +[`Descriptor`](/reference/_dpkit/core/descriptor/) + +## Returns + +`Promise`\<\{ `errors`: [`MetadataError`](/reference/_dpkit/core/metadataerror/)[]; `valid`: `boolean`; \}\> diff --git a/docs/content/docs/reference/_dpkit/core/validateDialect.md b/docs/content/docs/reference/_dpkit/core/validateDialect.md new file mode 100644 index 00000000..f5463d85 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/validateDialect.md @@ -0,0 +1,22 @@ +--- +editUrl: false +next: false +prev: false +title: "validateDialect" +--- + +> **validateDialect**(`descriptorOrDialect`): `Promise`\<\{ `dialect`: `undefined` \| [`Dialect`](/reference/_dpkit/core/dialect/); `errors`: [`MetadataError`](/reference/_dpkit/core/metadataerror/)[]; `valid`: `boolean`; \}\> + +Defined in: [core/dialect/validate.ts:11](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/validate.ts#L11) + +Validate a Dialect descriptor (JSON Object) against its profile + +## Parameters + +### descriptorOrDialect + +[`Descriptor`](/reference/_dpkit/core/descriptor/) | [`Dialect`](/reference/_dpkit/core/dialect/) + +## Returns + +`Promise`\<\{ `dialect`: `undefined` \| [`Dialect`](/reference/_dpkit/core/dialect/); `errors`: [`MetadataError`](/reference/_dpkit/core/metadataerror/)[]; `valid`: `boolean`; \}\> diff --git a/docs/content/docs/reference/_dpkit/core/validatePackageDescriptor.md b/docs/content/docs/reference/_dpkit/core/validatePackageDescriptor.md new file mode 100644 index 00000000..5b1397a2 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/validatePackageDescriptor.md @@ -0,0 +1,28 @@ +--- +editUrl: false +next: false +prev: false +title: "validatePackageDescriptor" +--- + +> **validatePackageDescriptor**(`descriptorOrPackage`, `options?`): `Promise`\<\{ `dataPackage`: `undefined` \| [`Package`](/reference/_dpkit/core/package/); `errors`: [`MetadataError`](/reference/_dpkit/core/metadataerror/)[]; `valid`: `boolean`; \}\> + +Defined in: [core/package/validate.ts:11](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/validate.ts#L11) + +Validate a Package descriptor (JSON Object) against its profile + +## Parameters + +### descriptorOrPackage + +[`Package`](/reference/_dpkit/core/package/) | [`Descriptor`](/reference/_dpkit/core/descriptor/) + +### options? + +#### basepath? + +`string` + +## Returns + +`Promise`\<\{ `dataPackage`: `undefined` \| [`Package`](/reference/_dpkit/core/package/); `errors`: [`MetadataError`](/reference/_dpkit/core/metadataerror/)[]; `valid`: `boolean`; \}\> diff --git a/docs/content/docs/reference/_dpkit/core/validateResourceDescriptor.md b/docs/content/docs/reference/_dpkit/core/validateResourceDescriptor.md new file mode 100644 index 00000000..e2758819 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/validateResourceDescriptor.md @@ -0,0 +1,28 @@ +--- +editUrl: false +next: false +prev: false +title: "validateResourceDescriptor" +--- + +> **validateResourceDescriptor**(`descriptorOrResource`, `options?`): `Promise`\<\{ `errors`: [`MetadataError`](/reference/_dpkit/core/metadataerror/)[]; `resource`: `undefined` \| [`Resource`](/reference/_dpkit/core/resource/); `valid`: `boolean`; \}\> + +Defined in: [core/resource/validate.ts:14](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/validate.ts#L14) + +Validate a Resource descriptor (JSON Object) against its profile + +## Parameters + +### descriptorOrResource + +[`Descriptor`](/reference/_dpkit/core/descriptor/) | [`Resource`](/reference/_dpkit/core/resource/) + +### options? + +#### basepath? + +`string` + +## Returns + +`Promise`\<\{ `errors`: [`MetadataError`](/reference/_dpkit/core/metadataerror/)[]; `resource`: `undefined` \| [`Resource`](/reference/_dpkit/core/resource/); `valid`: `boolean`; \}\> diff --git a/docs/content/docs/reference/_dpkit/core/validateSchema.md b/docs/content/docs/reference/_dpkit/core/validateSchema.md new file mode 100644 index 00000000..bdc2819a --- /dev/null +++ b/docs/content/docs/reference/_dpkit/core/validateSchema.md @@ -0,0 +1,22 @@ +--- +editUrl: false +next: false +prev: false +title: "validateSchema" +--- + +> **validateSchema**(`descriptorOrSchema`): `Promise`\<\{ `errors`: [`MetadataError`](/reference/_dpkit/core/metadataerror/)[]; `schema`: `undefined` \| [`Schema`](/reference/_dpkit/core/schema/); `valid`: `boolean`; \}\> + +Defined in: [core/schema/validate.ts:11](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/validate.ts#L11) + +Validate a Schema descriptor (JSON Object) against its profile + +## Parameters + +### descriptorOrSchema + +[`Descriptor`](/reference/_dpkit/core/descriptor/) | [`Schema`](/reference/_dpkit/core/schema/) + +## Returns + +`Promise`\<\{ `errors`: [`MetadataError`](/reference/_dpkit/core/metadataerror/)[]; `schema`: `undefined` \| [`Schema`](/reference/_dpkit/core/schema/); `valid`: `boolean`; \}\> diff --git a/docs/content/docs/reference/_dpkit/csv.md b/docs/content/docs/reference/_dpkit/csv.md new file mode 100644 index 00000000..ab857773 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/csv.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "@dpkit/csv" +--- + +# @dpkit/csv + +dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). + +## Classes + +- [CsvPlugin](/reference/_dpkit/csv/csvplugin/) + +## Functions + +- [inferCsvDialect](/reference/_dpkit/csv/infercsvdialect/) +- [loadCsvTable](/reference/_dpkit/csv/loadcsvtable/) +- [saveCsvTable](/reference/_dpkit/csv/savecsvtable/) diff --git a/docs/content/docs/reference/_dpkit/csv/CsvPlugin.md b/docs/content/docs/reference/_dpkit/csv/CsvPlugin.md new file mode 100644 index 00000000..ad6b47d7 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/csv/CsvPlugin.md @@ -0,0 +1,96 @@ +--- +editUrl: false +next: false +prev: false +title: "CsvPlugin" +--- + +Defined in: [plugin.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/csv/plugin.ts#L8) + +## Implements + +- [`TablePlugin`](/reference/dpkit/tableplugin/) + +## Constructors + +### Constructor + +> **new CsvPlugin**(): `CsvPlugin` + +#### Returns + +`CsvPlugin` + +## Methods + +### inferDialect() + +> **inferDialect**(`resource`, `options?`): `Promise`\<`undefined` \| [`Dialect`](/reference/dpkit/dialect/)\> + +Defined in: [plugin.ts:9](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/csv/plugin.ts#L9) + +#### Parameters + +##### resource + +`Partial`\<[`Resource`](/reference/dpkit/resource/)\> + +##### options? + +[`InferDialectOptions`](/reference/dpkit/inferdialectoptions/) + +#### Returns + +`Promise`\<`undefined` \| [`Dialect`](/reference/dpkit/dialect/)\> + +#### Implementation of + +[`TablePlugin`](/reference/dpkit/tableplugin/).[`inferDialect`](/reference/dpkit/tableplugin/#inferdialect) + +*** + +### loadTable() + +> **loadTable**(`resource`): `Promise`\<`undefined` \| `LazyDataFrame`\> + +Defined in: [plugin.ts:19](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/csv/plugin.ts#L19) + +#### Parameters + +##### resource + +`Partial`\<[`Resource`](/reference/dpkit/resource/)\> + +#### Returns + +`Promise`\<`undefined` \| `LazyDataFrame`\> + +#### Implementation of + +[`TablePlugin`](/reference/dpkit/tableplugin/).[`loadTable`](/reference/dpkit/tableplugin/#loadtable) + +*** + +### saveTable() + +> **saveTable**(`table`, `options`): `Promise`\<`undefined` \| `string`\> + +Defined in: [plugin.ts:26](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/csv/plugin.ts#L26) + +#### Parameters + +##### table + +`LazyDataFrame` + +##### options + +[`SaveTableOptions`](/reference/dpkit/savetableoptions/) + +#### Returns + +`Promise`\<`undefined` \| `string`\> + +#### Implementation of + +[`TablePlugin`](/reference/dpkit/tableplugin/).[`saveTable`](/reference/dpkit/tableplugin/#savetable) diff --git a/docs/content/docs/reference/_dpkit/csv/inferCsvDialect.md b/docs/content/docs/reference/_dpkit/csv/inferCsvDialect.md new file mode 100644 index 00000000..cada1db5 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/csv/inferCsvDialect.md @@ -0,0 +1,24 @@ +--- +editUrl: false +next: false +prev: false +title: "inferCsvDialect" +--- + +> **inferCsvDialect**(`resource`, `options?`): `Promise`\<[`Dialect`](/reference/dpkit/dialect/)\> + +Defined in: [dialect/infer.ts:9](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/csv/dialect/infer.ts#L9) + +## Parameters + +### resource + +`Partial`\<[`Resource`](/reference/dpkit/resource/)\> + +### options? + +[`InferDialectOptions`](/reference/dpkit/inferdialectoptions/) + +## Returns + +`Promise`\<[`Dialect`](/reference/dpkit/dialect/)\> diff --git a/docs/content/docs/reference/_dpkit/csv/loadCsvTable.md b/docs/content/docs/reference/_dpkit/csv/loadCsvTable.md new file mode 100644 index 00000000..5dffbf44 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/csv/loadCsvTable.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "loadCsvTable" +--- + +> **loadCsvTable**(`resource`): `Promise`\<`LazyDataFrame`\> + +Defined in: [table/load.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/csv/table/load.ts#L13) + +## Parameters + +### resource + +`Partial`\<[`Resource`](/reference/dpkit/resource/)\> + +## Returns + +`Promise`\<`LazyDataFrame`\> diff --git a/docs/content/docs/reference/_dpkit/csv/saveCsvTable.md b/docs/content/docs/reference/_dpkit/csv/saveCsvTable.md new file mode 100644 index 00000000..fa3c44ce --- /dev/null +++ b/docs/content/docs/reference/_dpkit/csv/saveCsvTable.md @@ -0,0 +1,24 @@ +--- +editUrl: false +next: false +prev: false +title: "saveCsvTable" +--- + +> **saveCsvTable**(`table`, `options`): `Promise`\<`string`\> + +Defined in: [table/save.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/csv/table/save.ts#L5) + +## Parameters + +### table + +`LazyDataFrame` + +### options + +[`SaveTableOptions`](/reference/dpkit/savetableoptions/) + +## Returns + +`Promise`\<`string`\> diff --git a/docs/content/docs/reference/_dpkit/datahub.md b/docs/content/docs/reference/_dpkit/datahub.md new file mode 100644 index 00000000..79e9a6da --- /dev/null +++ b/docs/content/docs/reference/_dpkit/datahub.md @@ -0,0 +1,18 @@ +--- +editUrl: false +next: false +prev: false +title: "@dpkit/datahub" +--- + +# @dpkit/datahub + +dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). + +## Classes + +- [DatahubPlugin](/reference/_dpkit/datahub/datahubplugin/) + +## Functions + +- [loadPackageFromDatahub](/reference/_dpkit/datahub/loadpackagefromdatahub/) diff --git a/docs/content/docs/reference/_dpkit/datahub/DatahubPlugin.md b/docs/content/docs/reference/_dpkit/datahub/DatahubPlugin.md new file mode 100644 index 00000000..334c0840 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/datahub/DatahubPlugin.md @@ -0,0 +1,44 @@ +--- +editUrl: false +next: false +prev: false +title: "DatahubPlugin" +--- + +Defined in: [plugin.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/datahub/plugin.ts#L5) + +## Implements + +- [`Plugin`](/reference/dpkit/plugin/) + +## Constructors + +### Constructor + +> **new DatahubPlugin**(): `DatahubPlugin` + +#### Returns + +`DatahubPlugin` + +## Methods + +### loadPackage() + +> **loadPackage**(`source`): `Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> + +Defined in: [plugin.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/datahub/plugin.ts#L6) + +#### Parameters + +##### source + +`string` + +#### Returns + +`Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> + +#### Implementation of + +[`Plugin`](/reference/dpkit/plugin/).[`loadPackage`](/reference/dpkit/plugin/#loadpackage) diff --git a/docs/content/docs/reference/_dpkit/datahub/loadPackageFromDatahub.md b/docs/content/docs/reference/_dpkit/datahub/loadPackageFromDatahub.md new file mode 100644 index 00000000..68378e4b --- /dev/null +++ b/docs/content/docs/reference/_dpkit/datahub/loadPackageFromDatahub.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "loadPackageFromDatahub" +--- + +> **loadPackageFromDatahub**(`datasetUrl`): `Promise`\<[`Package`](/reference/dpkit/package/)\> + +Defined in: [package/load.ts:3](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/datahub/package/load.ts#L3) + +## Parameters + +### datasetUrl + +`string` + +## Returns + +`Promise`\<[`Package`](/reference/dpkit/package/)\> diff --git a/docs/content/docs/reference/_dpkit/file.md b/docs/content/docs/reference/_dpkit/file.md new file mode 100644 index 00000000..66fd48d6 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/file.md @@ -0,0 +1,26 @@ +--- +editUrl: false +next: false +prev: false +title: "@dpkit/file" +--- + +# @dpkit/data + +dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). + +## Functions + +- [assertLocalPathVacant](/reference/_dpkit/file/assertlocalpathvacant/) +- [copyFile](/reference/_dpkit/file/copyfile/) +- [getPackageBasepath](/reference/_dpkit/file/getpackagebasepath/) +- [getTempFilePath](/reference/_dpkit/file/gettempfilepath/) +- [isLocalPathExist](/reference/_dpkit/file/islocalpathexist/) +- [loadFile](/reference/_dpkit/file/loadfile/) +- [loadFileStream](/reference/_dpkit/file/loadfilestream/) +- [prefetchFile](/reference/_dpkit/file/prefetchfile/) +- [prefetchFiles](/reference/_dpkit/file/prefetchfiles/) +- [saveFile](/reference/_dpkit/file/savefile/) +- [saveFileStream](/reference/_dpkit/file/savefilestream/) +- [saveResourceFiles](/reference/_dpkit/file/saveresourcefiles/) +- [writeTempFile](/reference/_dpkit/file/writetempfile/) diff --git a/docs/content/docs/reference/_dpkit/file/assertLocalPathVacant.md b/docs/content/docs/reference/_dpkit/file/assertLocalPathVacant.md new file mode 100644 index 00000000..03fea987 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/file/assertLocalPathVacant.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "assertLocalPathVacant" +--- + +> **assertLocalPathVacant**(`path`): `Promise`\<`void`\> + +Defined in: [file/path.ts:12](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/file/file/path.ts#L12) + +## Parameters + +### path + +`string` + +## Returns + +`Promise`\<`void`\> diff --git a/docs/content/docs/reference/_dpkit/file/copyFile.md b/docs/content/docs/reference/_dpkit/file/copyFile.md new file mode 100644 index 00000000..3dfd98fd --- /dev/null +++ b/docs/content/docs/reference/_dpkit/file/copyFile.md @@ -0,0 +1,26 @@ +--- +editUrl: false +next: false +prev: false +title: "copyFile" +--- + +> **copyFile**(`options`): `Promise`\<`void`\> + +Defined in: [file/copy.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/file/file/copy.ts#L4) + +## Parameters + +### options + +#### sourcePath + +`string` + +#### targetPath + +`string` + +## Returns + +`Promise`\<`void`\> diff --git a/docs/content/docs/reference/_dpkit/file/getPackageBasepath.md b/docs/content/docs/reference/_dpkit/file/getPackageBasepath.md new file mode 100644 index 00000000..cb9bf5ee --- /dev/null +++ b/docs/content/docs/reference/_dpkit/file/getPackageBasepath.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "getPackageBasepath" +--- + +> **getPackageBasepath**(`dataPackage`): `undefined` \| `string` + +Defined in: [package/path.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/file/package/path.ts#L4) + +## Parameters + +### dataPackage + +[`Package`](/reference/dpkit/package/) + +## Returns + +`undefined` \| `string` diff --git a/docs/content/docs/reference/_dpkit/file/getTempFilePath.md b/docs/content/docs/reference/_dpkit/file/getTempFilePath.md new file mode 100644 index 00000000..40001013 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/file/getTempFilePath.md @@ -0,0 +1,22 @@ +--- +editUrl: false +next: false +prev: false +title: "getTempFilePath" +--- + +> **getTempFilePath**(`options?`): `string` + +Defined in: [file/temp.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/file/file/temp.ts#L15) + +## Parameters + +### options? + +#### persist? + +`boolean` + +## Returns + +`string` diff --git a/docs/content/docs/reference/_dpkit/file/isLocalPathExist.md b/docs/content/docs/reference/_dpkit/file/isLocalPathExist.md new file mode 100644 index 00000000..6ddc9033 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/file/isLocalPathExist.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "isLocalPathExist" +--- + +> **isLocalPathExist**(`path`): `Promise`\<`boolean`\> + +Defined in: [file/path.ts:3](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/file/file/path.ts#L3) + +## Parameters + +### path + +`string` + +## Returns + +`Promise`\<`boolean`\> diff --git a/docs/content/docs/reference/_dpkit/file/loadFile.md b/docs/content/docs/reference/_dpkit/file/loadFile.md new file mode 100644 index 00000000..2152ac73 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/file/loadFile.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "loadFile" +--- + +> **loadFile**(`path`): `Promise`\<`Buffer`\<`ArrayBufferLike`\>\> + +Defined in: [file/load.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/file/file/load.ts#L4) + +## Parameters + +### path + +`string` + +## Returns + +`Promise`\<`Buffer`\<`ArrayBufferLike`\>\> diff --git a/docs/content/docs/reference/_dpkit/file/loadFileStream.md b/docs/content/docs/reference/_dpkit/file/loadFileStream.md new file mode 100644 index 00000000..160ffa5e --- /dev/null +++ b/docs/content/docs/reference/_dpkit/file/loadFileStream.md @@ -0,0 +1,30 @@ +--- +editUrl: false +next: false +prev: false +title: "loadFileStream" +--- + +> **loadFileStream**(`pathOrPaths`, `options?`): `Promise`\<`Readable` \| `ReadStream`\> + +Defined in: [stream/load.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/file/stream/load.ts#L5) + +## Parameters + +### pathOrPaths + +`string` | `string`[] + +### options? + +#### index? + +`number` + +#### maxBytes? + +`number` + +## Returns + +`Promise`\<`Readable` \| `ReadStream`\> diff --git a/docs/content/docs/reference/_dpkit/file/prefetchFile.md b/docs/content/docs/reference/_dpkit/file/prefetchFile.md new file mode 100644 index 00000000..e19bb4ef --- /dev/null +++ b/docs/content/docs/reference/_dpkit/file/prefetchFile.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "prefetchFile" +--- + +> **prefetchFile**(`path`): `Promise`\<`string`\> + +Defined in: [file/fetch.ts:12](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/file/file/fetch.ts#L12) + +## Parameters + +### path + +`string` + +## Returns + +`Promise`\<`string`\> diff --git a/docs/content/docs/reference/_dpkit/file/prefetchFiles.md b/docs/content/docs/reference/_dpkit/file/prefetchFiles.md new file mode 100644 index 00000000..1b6af6d6 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/file/prefetchFiles.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "prefetchFiles" +--- + +> **prefetchFiles**(`path?`): `Promise`\<`string`[]\> + +Defined in: [file/fetch.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/file/file/fetch.ts#L5) + +## Parameters + +### path? + +`string` | `string`[] + +## Returns + +`Promise`\<`string`[]\> diff --git a/docs/content/docs/reference/_dpkit/file/saveFile.md b/docs/content/docs/reference/_dpkit/file/saveFile.md new file mode 100644 index 00000000..04224ab2 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/file/saveFile.md @@ -0,0 +1,24 @@ +--- +editUrl: false +next: false +prev: false +title: "saveFile" +--- + +> **saveFile**(`path`, `buffer`): `Promise`\<`void`\> + +Defined in: [file/save.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/file/file/save.ts#L4) + +## Parameters + +### path + +`string` + +### buffer + +`Buffer` + +## Returns + +`Promise`\<`void`\> diff --git a/docs/content/docs/reference/_dpkit/file/saveFileStream.md b/docs/content/docs/reference/_dpkit/file/saveFileStream.md new file mode 100644 index 00000000..785b5a81 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/file/saveFileStream.md @@ -0,0 +1,26 @@ +--- +editUrl: false +next: false +prev: false +title: "saveFileStream" +--- + +> **saveFileStream**(`stream`, `options`): `Promise`\<`void`\> + +Defined in: [stream/save.ts:7](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/file/stream/save.ts#L7) + +## Parameters + +### stream + +`Readable` + +### options + +#### path + +`string` + +## Returns + +`Promise`\<`void`\> diff --git a/docs/content/docs/reference/_dpkit/file/saveResourceFiles.md b/docs/content/docs/reference/_dpkit/file/saveResourceFiles.md new file mode 100644 index 00000000..a28fbf2e --- /dev/null +++ b/docs/content/docs/reference/_dpkit/file/saveResourceFiles.md @@ -0,0 +1,38 @@ +--- +editUrl: false +next: false +prev: false +title: "saveResourceFiles" +--- + +> **saveResourceFiles**(`resource`, `options`): `Promise`\<[`Descriptor`](/reference/dpkit/descriptor/)\> + +Defined in: [resource/save.ts:17](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/file/resource/save.ts#L17) + +## Parameters + +### resource + +[`Resource`](/reference/dpkit/resource/) + +### options + +#### basepath? + +`string` + +#### saveFile + +`SaveFile` + +#### withoutFolders? + +`boolean` + +#### withRemote? + +`boolean` + +## Returns + +`Promise`\<[`Descriptor`](/reference/dpkit/descriptor/)\> diff --git a/docs/content/docs/reference/_dpkit/file/writeTempFile.md b/docs/content/docs/reference/_dpkit/file/writeTempFile.md new file mode 100644 index 00000000..10ff34f5 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/file/writeTempFile.md @@ -0,0 +1,26 @@ +--- +editUrl: false +next: false +prev: false +title: "writeTempFile" +--- + +> **writeTempFile**(`content`, `options?`): `Promise`\<`string`\> + +Defined in: [file/temp.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/file/file/temp.ts#L6) + +## Parameters + +### content + +`string` | `Buffer`\<`ArrayBufferLike`\> + +### options? + +#### persist? + +`boolean` + +## Returns + +`Promise`\<`string`\> diff --git a/docs/content/docs/reference/_dpkit/github.md b/docs/content/docs/reference/_dpkit/github.md new file mode 100644 index 00000000..16df7554 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/github.md @@ -0,0 +1,28 @@ +--- +editUrl: false +next: false +prev: false +title: "@dpkit/github" +--- + +# @dpkit/github + +dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). + +## Classes + +- [GithubPlugin](/reference/_dpkit/github/githubplugin/) + +## Interfaces + +- [GithubLicense](/reference/_dpkit/github/githublicense/) +- [GithubOwner](/reference/_dpkit/github/githubowner/) +- [GithubPackage](/reference/_dpkit/github/githubpackage/) +- [GithubResource](/reference/_dpkit/github/githubresource/) + +## Functions + +- [denormalizeGithubResource](/reference/_dpkit/github/denormalizegithubresource/) +- [loadPackageFromGithub](/reference/_dpkit/github/loadpackagefromgithub/) +- [normalizeGithubResource](/reference/_dpkit/github/normalizegithubresource/) +- [savePackageToGithub](/reference/_dpkit/github/savepackagetogithub/) diff --git a/docs/content/docs/reference/_dpkit/github/GithubLicense.md b/docs/content/docs/reference/_dpkit/github/GithubLicense.md new file mode 100644 index 00000000..f763de4d --- /dev/null +++ b/docs/content/docs/reference/_dpkit/github/GithubLicense.md @@ -0,0 +1,50 @@ +--- +editUrl: false +next: false +prev: false +title: "GithubLicense" +--- + +Defined in: [github/package/License.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/License.ts#L4) + +GitHub repository license + +## Properties + +### key + +> **key**: `string` + +Defined in: [github/package/License.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/License.ts#L8) + +License key + +*** + +### name + +> **name**: `string` + +Defined in: [github/package/License.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/License.ts#L13) + +License name + +*** + +### spdx\_id + +> **spdx\_id**: `string` + +Defined in: [github/package/License.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/License.ts#L18) + +License SPDX ID + +*** + +### url + +> **url**: `string` + +Defined in: [github/package/License.ts:23](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/License.ts#L23) + +License URL diff --git a/docs/content/docs/reference/_dpkit/github/GithubOwner.md b/docs/content/docs/reference/_dpkit/github/GithubOwner.md new file mode 100644 index 00000000..340de35c --- /dev/null +++ b/docs/content/docs/reference/_dpkit/github/GithubOwner.md @@ -0,0 +1,60 @@ +--- +editUrl: false +next: false +prev: false +title: "GithubOwner" +--- + +Defined in: [github/package/Owner.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Owner.ts#L4) + +GitHub repository owner + +## Properties + +### avatar\_url + +> **avatar\_url**: `string` + +Defined in: [github/package/Owner.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Owner.ts#L18) + +Owner avatar URL + +*** + +### html\_url + +> **html\_url**: `string` + +Defined in: [github/package/Owner.ts:23](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Owner.ts#L23) + +Owner URL + +*** + +### id + +> **id**: `number` + +Defined in: [github/package/Owner.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Owner.ts#L13) + +Owner ID + +*** + +### login + +> **login**: `string` + +Defined in: [github/package/Owner.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Owner.ts#L8) + +Owner login name + +*** + +### type + +> **type**: `"User"` \| `"Organization"` + +Defined in: [github/package/Owner.ts:28](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Owner.ts#L28) + +Owner type (User/Organization) diff --git a/docs/content/docs/reference/_dpkit/github/GithubPackage.md b/docs/content/docs/reference/_dpkit/github/GithubPackage.md new file mode 100644 index 00000000..1a4e41cb --- /dev/null +++ b/docs/content/docs/reference/_dpkit/github/GithubPackage.md @@ -0,0 +1,224 @@ +--- +editUrl: false +next: false +prev: false +title: "GithubPackage" +--- + +Defined in: [github/package/Package.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L8) + +Github repository as a package + +## Properties + +### archived + +> **archived**: `boolean` + +Defined in: [github/package/Package.ts:92](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L92) + +Repository is archived + +*** + +### clone\_url + +> **clone\_url**: `string` + +Defined in: [github/package/Package.ts:100](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L100) + +*** + +### created\_at + +> **created\_at**: `string` + +Defined in: [github/package/Package.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L37) + +Repository creation date + +*** + +### default\_branch + +> **default\_branch**: `string` + +Defined in: [github/package/Package.ts:77](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L77) + +Repository default branch + +*** + +### description + +> **description**: `null` \| `string` + +Defined in: [github/package/Package.ts:32](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L32) + +Repository description + +*** + +### full\_name + +> **full\_name**: `string` + +Defined in: [github/package/Package.ts:22](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L22) + +Repository full name (owner/name) + +*** + +### git\_url + +> **git\_url**: `string` + +Defined in: [github/package/Package.ts:98](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L98) + +*** + +### homepage + +> **homepage**: `null` \| `string` + +Defined in: [github/package/Package.ts:47](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L47) + +Repository homepage URL + +*** + +### html\_url + +> **html\_url**: `string` + +Defined in: [github/package/Package.ts:97](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L97) + +Repository URLs + +*** + +### id + +> **id**: `number` + +Defined in: [github/package/Package.ts:12](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L12) + +Repository identifier + +*** + +### language + +> **language**: `null` \| `string` + +Defined in: [github/package/Package.ts:67](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L67) + +Repository language + +*** + +### license + +> **license**: `null` \| [`GithubLicense`](/reference/_dpkit/github/githublicense/) + +Defined in: [github/package/Package.ts:72](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L72) + +Repository license + +*** + +### name + +> **name**: `string` + +Defined in: [github/package/Package.ts:17](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L17) + +Repository name + +*** + +### owner + +> **owner**: [`GithubOwner`](/reference/_dpkit/github/githubowner/) + +Defined in: [github/package/Package.ts:27](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L27) + +Repository owner + +*** + +### private + +> **private**: `boolean` + +Defined in: [github/package/Package.ts:87](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L87) + +Repository is private + +*** + +### resources? + +> `optional` **resources**: [`GithubResource`](/reference/_dpkit/github/githubresource/)[] + +Defined in: [github/package/Package.ts:105](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L105) + +Repository resources + +*** + +### size + +> **size**: `number` + +Defined in: [github/package/Package.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L52) + +Repository size in KB + +*** + +### ssh\_url + +> **ssh\_url**: `string` + +Defined in: [github/package/Package.ts:99](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L99) + +*** + +### stargazers\_count + +> **stargazers\_count**: `number` + +Defined in: [github/package/Package.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L57) + +Repository stars count + +*** + +### topics + +> **topics**: `string`[] + +Defined in: [github/package/Package.ts:82](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L82) + +Repository topics + +*** + +### updated\_at + +> **updated\_at**: `string` + +Defined in: [github/package/Package.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L42) + +Repository update date + +*** + +### watchers\_count + +> **watchers\_count**: `number` + +Defined in: [github/package/Package.ts:62](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L62) + +Repository watchers count diff --git a/docs/content/docs/reference/_dpkit/github/GithubPlugin.md b/docs/content/docs/reference/_dpkit/github/GithubPlugin.md new file mode 100644 index 00000000..bd17de07 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/github/GithubPlugin.md @@ -0,0 +1,44 @@ +--- +editUrl: false +next: false +prev: false +title: "GithubPlugin" +--- + +Defined in: [github/plugin.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/plugin.ts#L5) + +## Implements + +- [`Plugin`](/reference/dpkit/plugin/) + +## Constructors + +### Constructor + +> **new GithubPlugin**(): `GithubPlugin` + +#### Returns + +`GithubPlugin` + +## Methods + +### loadPackage() + +> **loadPackage**(`source`): `Promise`\<`undefined` \| \{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> + +Defined in: [github/plugin.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/plugin.ts#L6) + +#### Parameters + +##### source + +`string` + +#### Returns + +`Promise`\<`undefined` \| \{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> + +#### Implementation of + +[`Plugin`](/reference/dpkit/plugin/).[`loadPackage`](/reference/dpkit/plugin/#loadpackage) diff --git a/docs/content/docs/reference/_dpkit/github/GithubResource.md b/docs/content/docs/reference/_dpkit/github/GithubResource.md new file mode 100644 index 00000000..00ac6d7f --- /dev/null +++ b/docs/content/docs/reference/_dpkit/github/GithubResource.md @@ -0,0 +1,70 @@ +--- +editUrl: false +next: false +prev: false +title: "GithubResource" +--- + +Defined in: [github/resource/Resource.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/resource/Resource.ts#L4) + +GitHub repository file content + +## Properties + +### mode + +> **mode**: `string` + +Defined in: [github/resource/Resource.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/resource/Resource.ts#L13) + +File mode e.g. `100755` + +*** + +### path + +> **path**: `string` + +Defined in: [github/resource/Resource.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/resource/Resource.ts#L8) + +File path within repository + +*** + +### sha + +> **sha**: `string` + +Defined in: [github/resource/Resource.ts:28](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/resource/Resource.ts#L28) + +File SHA-1 + +*** + +### size + +> **size**: `number` + +Defined in: [github/resource/Resource.ts:23](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/resource/Resource.ts#L23) + +File size in bytes + +*** + +### type + +> **type**: `string` + +Defined in: [github/resource/Resource.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/resource/Resource.ts#L18) + +File type e.g. `blob` + +*** + +### url + +> **url**: `string` + +Defined in: [github/resource/Resource.ts:33](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/resource/Resource.ts#L33) + +File url on GitHub API diff --git a/docs/content/docs/reference/_dpkit/github/denormalizeGithubResource.md b/docs/content/docs/reference/_dpkit/github/denormalizeGithubResource.md new file mode 100644 index 00000000..f3445b2d --- /dev/null +++ b/docs/content/docs/reference/_dpkit/github/denormalizeGithubResource.md @@ -0,0 +1,25 @@ +--- +editUrl: false +next: false +prev: false +title: "denormalizeGithubResource" +--- + +> **denormalizeGithubResource**(`resource`): `Partial`\<[`GithubResource`](/reference/_dpkit/github/githubresource/)\> + +Defined in: [github/resource/process/denormalize.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/resource/process/denormalize.ts#L10) + +Denormalizes a Frictionless Data resource to Github file format +This is primarily used for file uploads/updates + +## Parameters + +### resource + +[`Resource`](/reference/dpkit/resource/) + +## Returns + +`Partial`\<[`GithubResource`](/reference/_dpkit/github/githubresource/)\> + +Partial Github Resource object for API operations diff --git a/docs/content/docs/reference/_dpkit/github/loadPackageFromGithub.md b/docs/content/docs/reference/_dpkit/github/loadPackageFromGithub.md new file mode 100644 index 00000000..3b0c2421 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/github/loadPackageFromGithub.md @@ -0,0 +1,30 @@ +--- +editUrl: false +next: false +prev: false +title: "loadPackageFromGithub" +--- + +> **loadPackageFromGithub**(`repoUrl`, `options?`): `Promise`\<\{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> + +Defined in: [github/package/load.ts:12](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/load.ts#L12) + +Load a package from a Github repository + +## Parameters + +### repoUrl + +`string` + +### options? + +#### apiKey? + +`string` + +## Returns + +`Promise`\<\{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> + +Package object diff --git a/docs/content/docs/reference/_dpkit/github/normalizeGithubResource.md b/docs/content/docs/reference/_dpkit/github/normalizeGithubResource.md new file mode 100644 index 00000000..956312e8 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/github/normalizeGithubResource.md @@ -0,0 +1,30 @@ +--- +editUrl: false +next: false +prev: false +title: "normalizeGithubResource" +--- + +> **normalizeGithubResource**(`githubResource`, `options`): [`Resource`](/reference/dpkit/resource/) + +Defined in: [github/resource/process/normalize.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/resource/process/normalize.ts#L10) + +Normalizes a Github file to Frictionless Data resource format + +## Parameters + +### githubResource + +[`GithubResource`](/reference/_dpkit/github/githubresource/) + +### options + +#### defaultBranch + +`string` + +## Returns + +[`Resource`](/reference/dpkit/resource/) + +Normalized Resource object diff --git a/docs/content/docs/reference/_dpkit/github/savePackageToGithub.md b/docs/content/docs/reference/_dpkit/github/savePackageToGithub.md new file mode 100644 index 00000000..2a09a657 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/github/savePackageToGithub.md @@ -0,0 +1,38 @@ +--- +editUrl: false +next: false +prev: false +title: "savePackageToGithub" +--- + +> **savePackageToGithub**(`dataPackage`, `options`): `Promise`\<\{ `path`: `string`; `repoUrl`: `string`; \}\> + +Defined in: [github/package/save.ts:14](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/save.ts#L14) + +Save a package to a Github repository + +## Parameters + +### dataPackage + +[`Package`](/reference/dpkit/package/) + +### options + +#### apiKey + +`string` + +#### org? + +`string` + +#### repo + +`string` + +## Returns + +`Promise`\<\{ `path`: `string`; `repoUrl`: `string`; \}\> + +Object with the repository URL diff --git a/docs/content/docs/reference/_dpkit/inline.md b/docs/content/docs/reference/_dpkit/inline.md new file mode 100644 index 00000000..d4e9d6f6 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/inline.md @@ -0,0 +1,18 @@ +--- +editUrl: false +next: false +prev: false +title: "@dpkit/inline" +--- + +# @dpkit/inline + +dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). + +## Classes + +- [InlinePlugin](/reference/_dpkit/inline/inlineplugin/) + +## Functions + +- [loadInlineTable](/reference/_dpkit/inline/loadinlinetable/) diff --git a/docs/content/docs/reference/_dpkit/inline/InlinePlugin.md b/docs/content/docs/reference/_dpkit/inline/InlinePlugin.md new file mode 100644 index 00000000..dc656479 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/inline/InlinePlugin.md @@ -0,0 +1,44 @@ +--- +editUrl: false +next: false +prev: false +title: "InlinePlugin" +--- + +Defined in: [plugin.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/inline/plugin.ts#L5) + +## Implements + +- [`TablePlugin`](/reference/dpkit/tableplugin/) + +## Constructors + +### Constructor + +> **new InlinePlugin**(): `InlinePlugin` + +#### Returns + +`InlinePlugin` + +## Methods + +### loadTable() + +> **loadTable**(`resource`): `Promise`\<`undefined` \| `LazyDataFrame`\> + +Defined in: [plugin.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/inline/plugin.ts#L6) + +#### Parameters + +##### resource + +[`Resource`](/reference/dpkit/resource/) + +#### Returns + +`Promise`\<`undefined` \| `LazyDataFrame`\> + +#### Implementation of + +[`TablePlugin`](/reference/dpkit/tableplugin/).[`loadTable`](/reference/dpkit/tableplugin/#loadtable) diff --git a/docs/content/docs/reference/_dpkit/inline/loadInlineTable.md b/docs/content/docs/reference/_dpkit/inline/loadInlineTable.md new file mode 100644 index 00000000..c589d643 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/inline/loadInlineTable.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "loadInlineTable" +--- + +> **loadInlineTable**(`resource`): `Promise`\<`LazyDataFrame`\> + +Defined in: [table/load.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/inline/table/load.ts#L4) + +## Parameters + +### resource + +`Partial`\<[`Resource`](/reference/dpkit/resource/)\> + +## Returns + +`Promise`\<`LazyDataFrame`\> diff --git a/docs/content/docs/reference/_dpkit/parquet.md b/docs/content/docs/reference/_dpkit/parquet.md new file mode 100644 index 00000000..3135d425 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/parquet.md @@ -0,0 +1,19 @@ +--- +editUrl: false +next: false +prev: false +title: "@dpkit/parquet" +--- + +# @dpkit/parquet + +dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). + +## Classes + +- [ParquetPlugin](/reference/_dpkit/parquet/parquetplugin/) + +## Functions + +- [loadParquetTable](/reference/_dpkit/parquet/loadparquettable/) +- [saveParquetTable](/reference/_dpkit/parquet/saveparquettable/) diff --git a/docs/content/docs/reference/_dpkit/parquet/ParquetPlugin.md b/docs/content/docs/reference/_dpkit/parquet/ParquetPlugin.md new file mode 100644 index 00000000..96da714b --- /dev/null +++ b/docs/content/docs/reference/_dpkit/parquet/ParquetPlugin.md @@ -0,0 +1,70 @@ +--- +editUrl: false +next: false +prev: false +title: "ParquetPlugin" +--- + +Defined in: [plugin.ts:7](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/parquet/plugin.ts#L7) + +## Implements + +- [`TablePlugin`](/reference/dpkit/tableplugin/) + +## Constructors + +### Constructor + +> **new ParquetPlugin**(): `ParquetPlugin` + +#### Returns + +`ParquetPlugin` + +## Methods + +### loadTable() + +> **loadTable**(`resource`): `Promise`\<`undefined` \| `LazyDataFrame`\> + +Defined in: [plugin.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/parquet/plugin.ts#L8) + +#### Parameters + +##### resource + +`Partial`\<[`Resource`](/reference/dpkit/resource/)\> + +#### Returns + +`Promise`\<`undefined` \| `LazyDataFrame`\> + +#### Implementation of + +[`TablePlugin`](/reference/dpkit/tableplugin/).[`loadTable`](/reference/dpkit/tableplugin/#loadtable) + +*** + +### saveTable() + +> **saveTable**(`table`, `options`): `Promise`\<`undefined` \| `string`\> + +Defined in: [plugin.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/parquet/plugin.ts#L15) + +#### Parameters + +##### table + +`LazyDataFrame` + +##### options + +[`SaveTableOptions`](/reference/dpkit/savetableoptions/) + +#### Returns + +`Promise`\<`undefined` \| `string`\> + +#### Implementation of + +[`TablePlugin`](/reference/dpkit/tableplugin/).[`saveTable`](/reference/dpkit/tableplugin/#savetable) diff --git a/docs/content/docs/reference/_dpkit/parquet/loadParquetTable.md b/docs/content/docs/reference/_dpkit/parquet/loadParquetTable.md new file mode 100644 index 00000000..83d45480 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/parquet/loadParquetTable.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "loadParquetTable" +--- + +> **loadParquetTable**(`resource`): `Promise`\<`LazyDataFrame`\> + +Defined in: [table/load.ts:7](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/parquet/table/load.ts#L7) + +## Parameters + +### resource + +`Partial`\<[`Resource`](/reference/dpkit/resource/)\> + +## Returns + +`Promise`\<`LazyDataFrame`\> diff --git a/docs/content/docs/reference/_dpkit/parquet/saveParquetTable.md b/docs/content/docs/reference/_dpkit/parquet/saveParquetTable.md new file mode 100644 index 00000000..4c94ce6f --- /dev/null +++ b/docs/content/docs/reference/_dpkit/parquet/saveParquetTable.md @@ -0,0 +1,24 @@ +--- +editUrl: false +next: false +prev: false +title: "saveParquetTable" +--- + +> **saveParquetTable**(`table`, `options`): `Promise`\<`string`\> + +Defined in: [table/save.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/parquet/table/save.ts#L5) + +## Parameters + +### table + +`LazyDataFrame` + +### options + +[`SaveTableOptions`](/reference/dpkit/savetableoptions/) + +## Returns + +`Promise`\<`string`\> diff --git a/docs/content/docs/reference/_dpkit/table.md b/docs/content/docs/reference/_dpkit/table.md new file mode 100644 index 00000000..8b19eb82 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/table.md @@ -0,0 +1,34 @@ +--- +editUrl: false +next: false +prev: false +title: "@dpkit/table" +--- + +# @dpkit/table + +dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). + +## Interfaces + +- [PolarsSchema](/reference/_dpkit/table/polarsschema/) +- [TablePlugin](/reference/_dpkit/table/tableplugin/) + +## Type Aliases + +- [InferDialectOptions](/reference/_dpkit/table/inferdialectoptions/) +- [InferSchemaOptions](/reference/_dpkit/table/inferschemaoptions/) +- [PolarsField](/reference/_dpkit/table/polarsfield/) +- [SaveTableOptions](/reference/_dpkit/table/savetableoptions/) +- [Table](/reference/_dpkit/table/table/) +- [TableError](/reference/_dpkit/table/tableerror/) + +## Functions + +- [getPolarsSchema](/reference/_dpkit/table/getpolarsschema/) +- [inferSchema](/reference/_dpkit/table/inferschema/) +- [inspectField](/reference/_dpkit/table/inspectfield/) +- [inspectTable](/reference/_dpkit/table/inspecttable/) +- [matchField](/reference/_dpkit/table/matchfield/) +- [parseField](/reference/_dpkit/table/parsefield/) +- [processTable](/reference/_dpkit/table/processtable/) diff --git a/docs/content/docs/reference/_dpkit/table/InferDialectOptions.md b/docs/content/docs/reference/_dpkit/table/InferDialectOptions.md new file mode 100644 index 00000000..841579b1 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/table/InferDialectOptions.md @@ -0,0 +1,18 @@ +--- +editUrl: false +next: false +prev: false +title: "InferDialectOptions" +--- + +> **InferDialectOptions** = `object` + +Defined in: [table/plugin.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/plugin.ts#L4) + +## Properties + +### sampleBytes? + +> `optional` **sampleBytes**: `number` + +Defined in: [table/plugin.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/plugin.ts#L4) diff --git a/docs/content/docs/reference/_dpkit/table/InferSchemaOptions.md b/docs/content/docs/reference/_dpkit/table/InferSchemaOptions.md new file mode 100644 index 00000000..af85600d --- /dev/null +++ b/docs/content/docs/reference/_dpkit/table/InferSchemaOptions.md @@ -0,0 +1,42 @@ +--- +editUrl: false +next: false +prev: false +title: "InferSchemaOptions" +--- + +> **InferSchemaOptions** = `object` + +Defined in: [table/schema/infer.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/schema/infer.ts#L6) + +## Properties + +### commaDecimal? + +> `optional` **commaDecimal**: `boolean` + +Defined in: [table/schema/infer.ts:9](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/schema/infer.ts#L9) + +*** + +### confidence? + +> `optional` **confidence**: `number` + +Defined in: [table/schema/infer.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/schema/infer.ts#L8) + +*** + +### monthFirst? + +> `optional` **monthFirst**: `boolean` + +Defined in: [table/schema/infer.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/schema/infer.ts#L10) + +*** + +### sampleRows? + +> `optional` **sampleRows**: `number` + +Defined in: [table/schema/infer.ts:7](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/schema/infer.ts#L7) diff --git a/docs/content/docs/reference/_dpkit/table/PolarsField.md b/docs/content/docs/reference/_dpkit/table/PolarsField.md new file mode 100644 index 00000000..f75476e7 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/table/PolarsField.md @@ -0,0 +1,26 @@ +--- +editUrl: false +next: false +prev: false +title: "PolarsField" +--- + +> **PolarsField** = `object` + +Defined in: [table/field/Field.ts:3](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/field/Field.ts#L3) + +## Properties + +### name + +> **name**: `string` + +Defined in: [table/field/Field.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/field/Field.ts#L4) + +*** + +### type + +> **type**: `DataType` + +Defined in: [table/field/Field.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/field/Field.ts#L5) diff --git a/docs/content/docs/reference/_dpkit/table/PolarsSchema.md b/docs/content/docs/reference/_dpkit/table/PolarsSchema.md new file mode 100644 index 00000000..bc854a02 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/table/PolarsSchema.md @@ -0,0 +1,16 @@ +--- +editUrl: false +next: false +prev: false +title: "PolarsSchema" +--- + +Defined in: [table/schema/Schema.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/schema/Schema.ts#L4) + +## Properties + +### fields + +> **fields**: [`PolarsField`](/reference/_dpkit/table/polarsfield/)[] + +Defined in: [table/schema/Schema.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/schema/Schema.ts#L5) diff --git a/docs/content/docs/reference/_dpkit/table/SaveTableOptions.md b/docs/content/docs/reference/_dpkit/table/SaveTableOptions.md new file mode 100644 index 00000000..2be9bc56 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/table/SaveTableOptions.md @@ -0,0 +1,26 @@ +--- +editUrl: false +next: false +prev: false +title: "SaveTableOptions" +--- + +> **SaveTableOptions** = `object` + +Defined in: [table/plugin.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/plugin.ts#L5) + +## Properties + +### dialect? + +> `optional` **dialect**: [`Dialect`](/reference/dpkit/dialect/) + +Defined in: [table/plugin.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/plugin.ts#L5) + +*** + +### path + +> **path**: `string` + +Defined in: [table/plugin.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/plugin.ts#L5) diff --git a/docs/content/docs/reference/_dpkit/table/Table.md b/docs/content/docs/reference/_dpkit/table/Table.md new file mode 100644 index 00000000..088e05fe --- /dev/null +++ b/docs/content/docs/reference/_dpkit/table/Table.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "Table" +--- + +> **Table** = `LazyDataFrame` + +Defined in: [table/table/Table.ts:3](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/table/Table.ts#L3) diff --git a/docs/content/docs/reference/_dpkit/table/TableError.md b/docs/content/docs/reference/_dpkit/table/TableError.md new file mode 100644 index 00000000..ecc27019 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/table/TableError.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "TableError" +--- + +> **TableError** = `FieldsMissingError` \| `FieldsExtraError` \| `FieldNameError` \| `FieldTypeError` \| `RowUniqueError` \| `CellTypeError` \| `CellRequiredError` \| `CellMinimumError` \| `CellMaximumError` \| `CellExclusiveMinimumError` \| `CellExclusiveMaximumError` \| `CellMinLengthError` \| `CellMaxLengthError` \| `CellPatternError` \| `CellUniqueError` \| `CellEnumError` + +Defined in: [table/error/Table.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/error/Table.ts#L18) diff --git a/docs/content/docs/reference/_dpkit/table/TablePlugin.md b/docs/content/docs/reference/_dpkit/table/TablePlugin.md new file mode 100644 index 00000000..89e06300 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/table/TablePlugin.md @@ -0,0 +1,128 @@ +--- +editUrl: false +next: false +prev: false +title: "TablePlugin" +--- + +Defined in: [table/plugin.ts:7](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/plugin.ts#L7) + +## Extends + +- [`Plugin`](/reference/dpkit/plugin/) + +## Methods + +### inferDialect()? + +> `optional` **inferDialect**(`resource`, `options?`): `Promise`\<`undefined` \| [`Dialect`](/reference/dpkit/dialect/)\> + +Defined in: [table/plugin.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/plugin.ts#L8) + +#### Parameters + +##### resource + +`Partial`\<[`Resource`](/reference/dpkit/resource/)\> + +##### options? + +[`InferDialectOptions`](/reference/_dpkit/table/inferdialectoptions/) + +#### Returns + +`Promise`\<`undefined` \| [`Dialect`](/reference/dpkit/dialect/)\> + +*** + +### loadPackage()? + +> `optional` **loadPackage**(`source`): `Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> + +Defined in: core/build/plugin.d.ts:3 + +#### Parameters + +##### source + +`string` + +#### Returns + +`Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> + +#### Inherited from + +[`Plugin`](/reference/dpkit/plugin/).[`loadPackage`](/reference/dpkit/plugin/#loadpackage) + +*** + +### loadTable()? + +> `optional` **loadTable**(`resource`): `Promise`\<`undefined` \| `LazyDataFrame`\> + +Defined in: [table/plugin.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/plugin.ts#L13) + +#### Parameters + +##### resource + +`Partial`\<[`Resource`](/reference/dpkit/resource/)\> + +#### Returns + +`Promise`\<`undefined` \| `LazyDataFrame`\> + +*** + +### savePackage()? + +> `optional` **savePackage**(`dataPackage`, `options`): `Promise`\<`undefined` \| \{ `path?`: `string`; \}\> + +Defined in: core/build/plugin.d.ts:4 + +#### Parameters + +##### dataPackage + +[`Package`](/reference/dpkit/package/) + +##### options + +###### target + +`string` + +###### withRemote? + +`boolean` + +#### Returns + +`Promise`\<`undefined` \| \{ `path?`: `string`; \}\> + +#### Inherited from + +[`Plugin`](/reference/dpkit/plugin/).[`savePackage`](/reference/dpkit/plugin/#savepackage) + +*** + +### saveTable()? + +> `optional` **saveTable**(`table`, `options`): `Promise`\<`undefined` \| `string`\> + +Defined in: [table/plugin.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/plugin.ts#L15) + +#### Parameters + +##### table + +`LazyDataFrame` + +##### options + +[`SaveTableOptions`](/reference/_dpkit/table/savetableoptions/) + +#### Returns + +`Promise`\<`undefined` \| `string`\> diff --git a/docs/content/docs/reference/_dpkit/table/getPolarsSchema.md b/docs/content/docs/reference/_dpkit/table/getPolarsSchema.md new file mode 100644 index 00000000..02bc3867 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/table/getPolarsSchema.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "getPolarsSchema" +--- + +> **getPolarsSchema**(`typeMapping`): [`PolarsSchema`](/reference/_dpkit/table/polarsschema/) + +Defined in: [table/schema/Schema.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/schema/Schema.ts#L8) + +## Parameters + +### typeMapping + +`Record`\<`string`, `DataType`\> + +## Returns + +[`PolarsSchema`](/reference/_dpkit/table/polarsschema/) diff --git a/docs/content/docs/reference/_dpkit/table/inferSchema.md b/docs/content/docs/reference/_dpkit/table/inferSchema.md new file mode 100644 index 00000000..44560e88 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/table/inferSchema.md @@ -0,0 +1,24 @@ +--- +editUrl: false +next: false +prev: false +title: "inferSchema" +--- + +> **inferSchema**(`table`, `options?`): `Promise`\<[`Schema`](/reference/dpkit/schema/)\> + +Defined in: [table/schema/infer.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/schema/infer.ts#L13) + +## Parameters + +### table + +`LazyDataFrame` + +### options? + +[`InferSchemaOptions`](/reference/_dpkit/table/inferschemaoptions/) + +## Returns + +`Promise`\<[`Schema`](/reference/dpkit/schema/)\> diff --git a/docs/content/docs/reference/_dpkit/table/inspectField.md b/docs/content/docs/reference/_dpkit/table/inspectField.md new file mode 100644 index 00000000..d9ce79eb --- /dev/null +++ b/docs/content/docs/reference/_dpkit/table/inspectField.md @@ -0,0 +1,38 @@ +--- +editUrl: false +next: false +prev: false +title: "inspectField" +--- + +> **inspectField**(`field`, `options`): `object` + +Defined in: [table/field/inspect.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/field/inspect.ts#L15) + +## Parameters + +### field + +[`Field`](/reference/dpkit/field/) + +### options + +#### errorTable + +`LazyDataFrame` + +#### polarsField + +[`PolarsField`](/reference/_dpkit/table/polarsfield/) + +## Returns + +`object` + +### errors + +> **errors**: [`TableError`](/reference/_dpkit/table/tableerror/)[] + +### errorTable + +> **errorTable**: `LazyDataFrame` diff --git a/docs/content/docs/reference/_dpkit/table/inspectTable.md b/docs/content/docs/reference/_dpkit/table/inspectTable.md new file mode 100644 index 00000000..e219aeaa --- /dev/null +++ b/docs/content/docs/reference/_dpkit/table/inspectTable.md @@ -0,0 +1,34 @@ +--- +editUrl: false +next: false +prev: false +title: "inspectTable" +--- + +> **inspectTable**(`table`, `options?`): `Promise`\<[`TableError`](/reference/_dpkit/table/tableerror/)[]\> + +Defined in: [table/table/inspect.ts:12](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/table/inspect.ts#L12) + +## Parameters + +### table + +`LazyDataFrame` + +### options? + +#### invalidRowsLimit? + +`number` + +#### sampleRows? + +`number` + +#### schema? + +[`Schema`](/reference/dpkit/schema/) + +## Returns + +`Promise`\<[`TableError`](/reference/_dpkit/table/tableerror/)[]\> diff --git a/docs/content/docs/reference/_dpkit/table/matchField.md b/docs/content/docs/reference/_dpkit/table/matchField.md new file mode 100644 index 00000000..ec899870 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/table/matchField.md @@ -0,0 +1,32 @@ +--- +editUrl: false +next: false +prev: false +title: "matchField" +--- + +> **matchField**(`index`, `field`, `schema`, `polarsSchema`): `undefined` \| [`PolarsField`](/reference/_dpkit/table/polarsfield/) + +Defined in: [table/field/match.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/field/match.ts#L4) + +## Parameters + +### index + +`number` + +### field + +[`Field`](/reference/dpkit/field/) + +### schema + +[`Schema`](/reference/dpkit/schema/) + +### polarsSchema + +[`PolarsSchema`](/reference/_dpkit/table/polarsschema/) + +## Returns + +`undefined` \| [`PolarsField`](/reference/_dpkit/table/polarsfield/) diff --git a/docs/content/docs/reference/_dpkit/table/parseField.md b/docs/content/docs/reference/_dpkit/table/parseField.md new file mode 100644 index 00000000..3c5ae595 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/table/parseField.md @@ -0,0 +1,30 @@ +--- +editUrl: false +next: false +prev: false +title: "parseField" +--- + +> **parseField**(`field`, `options?`): `any` + +Defined in: [table/field/parse.ts:22](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/field/parse.ts#L22) + +## Parameters + +### field + +[`Field`](/reference/dpkit/field/) + +### options? + +#### expr? + +`Expr` + +#### schema? + +[`Schema`](/reference/dpkit/schema/) + +## Returns + +`any` diff --git a/docs/content/docs/reference/_dpkit/table/processTable.md b/docs/content/docs/reference/_dpkit/table/processTable.md new file mode 100644 index 00000000..39746177 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/table/processTable.md @@ -0,0 +1,30 @@ +--- +editUrl: false +next: false +prev: false +title: "processTable" +--- + +> **processTable**(`table`, `options?`): `Promise`\<`LazyDataFrame`\> + +Defined in: [table/table/process.ts:11](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/table/process.ts#L11) + +## Parameters + +### table + +`LazyDataFrame` + +### options? + +#### sampleSize? + +`number` + +#### schema? + +[`Schema`](/reference/dpkit/schema/) + +## Returns + +`Promise`\<`LazyDataFrame`\> diff --git a/docs/content/docs/reference/_dpkit/zenodo.md b/docs/content/docs/reference/_dpkit/zenodo.md new file mode 100644 index 00000000..f2681c85 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/zenodo.md @@ -0,0 +1,27 @@ +--- +editUrl: false +next: false +prev: false +title: "@dpkit/zenodo" +--- + +# @dpkit/zenodo + +dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). + +## Classes + +- [ZenodoPlugin](/reference/_dpkit/zenodo/zenodoplugin/) + +## Interfaces + +- [ZenodoCreator](/reference/_dpkit/zenodo/zenodocreator/) +- [ZenodoPackage](/reference/_dpkit/zenodo/zenodopackage/) +- [ZenodoResource](/reference/_dpkit/zenodo/zenodoresource/) + +## Functions + +- [denormalizeZenodoResource](/reference/_dpkit/zenodo/denormalizezenodoresource/) +- [loadPackageFromZenodo](/reference/_dpkit/zenodo/loadpackagefromzenodo/) +- [normalizeZenodoResource](/reference/_dpkit/zenodo/normalizezenodoresource/) +- [savePackageToZenodo](/reference/_dpkit/zenodo/savepackagetozenodo/) diff --git a/docs/content/docs/reference/_dpkit/zenodo/ZenodoCreator.md b/docs/content/docs/reference/_dpkit/zenodo/ZenodoCreator.md new file mode 100644 index 00000000..cfd3fbed --- /dev/null +++ b/docs/content/docs/reference/_dpkit/zenodo/ZenodoCreator.md @@ -0,0 +1,48 @@ +--- +editUrl: false +next: false +prev: false +title: "ZenodoCreator" +--- + +Defined in: [zenodo/package/Creator.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/package/Creator.ts#L4) + +Zenodo Creator interface + +## Properties + +### affiliation? + +> `optional` **affiliation**: `string` + +Defined in: [zenodo/package/Creator.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/package/Creator.ts#L13) + +Creator affiliation + +*** + +### identifiers? + +> `optional` **identifiers**: `object`[] + +Defined in: [zenodo/package/Creator.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/package/Creator.ts#L18) + +Creator identifiers (e.g., ORCID) + +#### identifier + +> **identifier**: `string` + +#### scheme + +> **scheme**: `string` + +*** + +### name + +> **name**: `string` + +Defined in: [zenodo/package/Creator.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/package/Creator.ts#L8) + +Creator name (format: Family name, Given names) diff --git a/docs/content/docs/reference/_dpkit/zenodo/ZenodoPackage.md b/docs/content/docs/reference/_dpkit/zenodo/ZenodoPackage.md new file mode 100644 index 00000000..2122b3c8 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/zenodo/ZenodoPackage.md @@ -0,0 +1,170 @@ +--- +editUrl: false +next: false +prev: false +title: "ZenodoPackage" +--- + +Defined in: [zenodo/package/Package.ts:7](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/package/Package.ts#L7) + +Zenodo Deposit interface + +## Properties + +### files + +> **files**: [`ZenodoResource`](/reference/_dpkit/zenodo/zenodoresource/)[] + +Defined in: [zenodo/package/Package.ts:100](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/package/Package.ts#L100) + +Files associated with the deposit + +*** + +### id + +> **id**: `number` + +Defined in: [zenodo/package/Package.ts:11](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/package/Package.ts#L11) + +Deposit identifier + +*** + +### links + +> **links**: `object` + +Defined in: [zenodo/package/Package.ts:16](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/package/Package.ts#L16) + +Deposit URL + +#### bucket + +> **bucket**: `string` + +#### discard? + +> `optional` **discard**: `string` + +#### edit? + +> `optional` **edit**: `string` + +#### files + +> **files**: `string` + +#### html + +> **html**: `string` + +#### publish? + +> `optional` **publish**: `string` + +#### self + +> **self**: `string` + +*** + +### metadata + +> **metadata**: `object` + +Defined in: [zenodo/package/Package.ts:29](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/package/Package.ts#L29) + +Deposit metadata + +#### access\_right? + +> `optional` **access\_right**: `string` + +Access right, e.g., "open", "embargoed", "restricted", "closed" + +#### communities? + +> `optional` **communities**: `object`[] + +Communities the deposit belongs to + +#### creators + +> **creators**: [`ZenodoCreator`](/reference/_dpkit/zenodo/zenodocreator/)[] + +Creators of the deposit + +#### description + +> **description**: `string` + +Description of the deposit + +#### doi? + +> `optional` **doi**: `string` + +DOI of the deposit + +#### keywords? + +> `optional` **keywords**: `string`[] + +Keywords/tags + +#### license? + +> `optional` **license**: `string` + +License identifier + +#### publication\_date? + +> `optional` **publication\_date**: `string` + +Publication date in ISO format (YYYY-MM-DD) + +#### related\_identifiers? + +> `optional` **related\_identifiers**: `object`[] + +Related identifiers (e.g., DOIs of related works) + +#### title + +> **title**: `string` + +Title of the deposit + +#### upload\_type + +> **upload\_type**: `string` + +Upload type, e.g., "dataset" + +#### version? + +> `optional` **version**: `string` + +Version of the deposit + +*** + +### state + +> **state**: `"unsubmitted"` \| `"inprogress"` \| `"done"` + +Defined in: [zenodo/package/Package.ts:105](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/package/Package.ts#L105) + +State of the deposit + +*** + +### submitted + +> **submitted**: `boolean` + +Defined in: [zenodo/package/Package.ts:110](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/package/Package.ts#L110) + +Submitted flag diff --git a/docs/content/docs/reference/_dpkit/zenodo/ZenodoPlugin.md b/docs/content/docs/reference/_dpkit/zenodo/ZenodoPlugin.md new file mode 100644 index 00000000..596ea54a --- /dev/null +++ b/docs/content/docs/reference/_dpkit/zenodo/ZenodoPlugin.md @@ -0,0 +1,44 @@ +--- +editUrl: false +next: false +prev: false +title: "ZenodoPlugin" +--- + +Defined in: [zenodo/plugin.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/plugin.ts#L5) + +## Implements + +- [`Plugin`](/reference/dpkit/plugin/) + +## Constructors + +### Constructor + +> **new ZenodoPlugin**(): `ZenodoPlugin` + +#### Returns + +`ZenodoPlugin` + +## Methods + +### loadPackage() + +> **loadPackage**(`source`): `Promise`\<`undefined` \| \{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> + +Defined in: [zenodo/plugin.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/plugin.ts#L6) + +#### Parameters + +##### source + +`string` + +#### Returns + +`Promise`\<`undefined` \| \{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> + +#### Implementation of + +[`Plugin`](/reference/dpkit/plugin/).[`loadPackage`](/reference/dpkit/plugin/#loadpackage) diff --git a/docs/content/docs/reference/_dpkit/zenodo/ZenodoResource.md b/docs/content/docs/reference/_dpkit/zenodo/ZenodoResource.md new file mode 100644 index 00000000..a2ea1f70 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/zenodo/ZenodoResource.md @@ -0,0 +1,64 @@ +--- +editUrl: false +next: false +prev: false +title: "ZenodoResource" +--- + +Defined in: [zenodo/resource/Resource.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/resource/Resource.ts#L4) + +Zenodo File interface + +## Properties + +### checksum + +> **checksum**: `string` + +Defined in: [zenodo/resource/Resource.ts:23](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/resource/Resource.ts#L23) + +File checksum + +*** + +### id + +> **id**: `string` + +Defined in: [zenodo/resource/Resource.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/resource/Resource.ts#L8) + +File identifier + +*** + +### key + +> **key**: `string` + +Defined in: [zenodo/resource/Resource.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/resource/Resource.ts#L13) + +File key + +*** + +### links + +> **links**: `object` + +Defined in: [zenodo/resource/Resource.ts:28](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/resource/Resource.ts#L28) + +Links related to the file + +#### self + +> **self**: `string` + +*** + +### size + +> **size**: `number` + +Defined in: [zenodo/resource/Resource.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/resource/Resource.ts#L18) + +File size in bytes diff --git a/docs/content/docs/reference/_dpkit/zenodo/denormalizeZenodoResource.md b/docs/content/docs/reference/_dpkit/zenodo/denormalizeZenodoResource.md new file mode 100644 index 00000000..16c9518d --- /dev/null +++ b/docs/content/docs/reference/_dpkit/zenodo/denormalizeZenodoResource.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "denormalizeZenodoResource" +--- + +> **denormalizeZenodoResource**(`resource`): `Partial`\<[`ZenodoResource`](/reference/_dpkit/zenodo/zenodoresource/)\> + +Defined in: [zenodo/resource/process/denormalize.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/resource/process/denormalize.ts#L4) + +## Parameters + +### resource + +[`Resource`](/reference/dpkit/resource/) + +## Returns + +`Partial`\<[`ZenodoResource`](/reference/_dpkit/zenodo/zenodoresource/)\> diff --git a/docs/content/docs/reference/_dpkit/zenodo/loadPackageFromZenodo.md b/docs/content/docs/reference/_dpkit/zenodo/loadPackageFromZenodo.md new file mode 100644 index 00000000..d938d140 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/zenodo/loadPackageFromZenodo.md @@ -0,0 +1,30 @@ +--- +editUrl: false +next: false +prev: false +title: "loadPackageFromZenodo" +--- + +> **loadPackageFromZenodo**(`datasetUrl`, `options?`): `Promise`\<\{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> + +Defined in: [zenodo/package/load.ts:11](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/package/load.ts#L11) + +Load a package from a Zenodo deposit + +## Parameters + +### datasetUrl + +`string` + +### options? + +#### apiKey? + +`string` + +## Returns + +`Promise`\<\{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> + +Package object diff --git a/docs/content/docs/reference/_dpkit/zenodo/normalizeZenodoResource.md b/docs/content/docs/reference/_dpkit/zenodo/normalizeZenodoResource.md new file mode 100644 index 00000000..24e2d558 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/zenodo/normalizeZenodoResource.md @@ -0,0 +1,52 @@ +--- +editUrl: false +next: false +prev: false +title: "normalizeZenodoResource" +--- + +> **normalizeZenodoResource**(`zenodoResource`): `object` + +Defined in: [zenodo/resource/process/normalize.ts:9](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/resource/process/normalize.ts#L9) + +Normalizes a Zenodo file to Frictionless Data resource format + +## Parameters + +### zenodoResource + +[`ZenodoResource`](/reference/_dpkit/zenodo/zenodoresource/) + +## Returns + +`object` + +Normalized Resource object + +### bytes + +> **bytes**: `number` = `zenodoResource.size` + +### format + +> **format**: `undefined` \| `string` + +### hash + +> **hash**: `string` = `zenodoResource.checksum` + +### name + +> **name**: `string` + +### path + +> **path**: `string` + +### zenodo:key + +> **zenodo:key**: `string` = `zenodoResource.key` + +### zenodo:url + +> **zenodo:url**: `string` = `path` diff --git a/docs/content/docs/reference/_dpkit/zenodo/savePackageToZenodo.md b/docs/content/docs/reference/_dpkit/zenodo/savePackageToZenodo.md new file mode 100644 index 00000000..a428f76d --- /dev/null +++ b/docs/content/docs/reference/_dpkit/zenodo/savePackageToZenodo.md @@ -0,0 +1,34 @@ +--- +editUrl: false +next: false +prev: false +title: "savePackageToZenodo" +--- + +> **savePackageToZenodo**(`dataPackage`, `options`): `Promise`\<\{ `datasetUrl`: `string`; `path`: `string`; \}\> + +Defined in: [zenodo/package/save.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/package/save.ts#L18) + +Save a package to Zenodo + +## Parameters + +### dataPackage + +[`Package`](/reference/dpkit/package/) + +### options + +#### apiKey + +`string` + +#### sandbox? + +`boolean` + +## Returns + +`Promise`\<\{ `datasetUrl`: `string`; `path`: `string`; \}\> + +Object with the deposit URL and DOI diff --git a/docs/content/docs/reference/_dpkit/zip.md b/docs/content/docs/reference/_dpkit/zip.md new file mode 100644 index 00000000..3aa9f75d --- /dev/null +++ b/docs/content/docs/reference/_dpkit/zip.md @@ -0,0 +1,19 @@ +--- +editUrl: false +next: false +prev: false +title: "@dpkit/zip" +--- + +# @dpkit/zip + +dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). + +## Classes + +- [ZipPlugin](/reference/_dpkit/zip/zipplugin/) + +## Functions + +- [loadPackageFromZip](/reference/_dpkit/zip/loadpackagefromzip/) +- [savePackageToZip](/reference/_dpkit/zip/savepackagetozip/) diff --git a/docs/content/docs/reference/_dpkit/zip/ZipPlugin.md b/docs/content/docs/reference/_dpkit/zip/ZipPlugin.md new file mode 100644 index 00000000..3b127393 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/zip/ZipPlugin.md @@ -0,0 +1,76 @@ +--- +editUrl: false +next: false +prev: false +title: "ZipPlugin" +--- + +Defined in: [plugin.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zip/plugin.ts#L4) + +## Implements + +- [`Plugin`](/reference/dpkit/plugin/) + +## Constructors + +### Constructor + +> **new ZipPlugin**(): `ZipPlugin` + +#### Returns + +`ZipPlugin` + +## Methods + +### loadPackage() + +> **loadPackage**(`source`): `Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> + +Defined in: [plugin.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zip/plugin.ts#L5) + +#### Parameters + +##### source + +`string` + +#### Returns + +`Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> + +#### Implementation of + +[`Plugin`](/reference/dpkit/plugin/).[`loadPackage`](/reference/dpkit/plugin/#loadpackage) + +*** + +### savePackage() + +> **savePackage**(`dataPackage`, `options`): `Promise`\<`undefined` \| \{ `path`: `undefined`; \}\> + +Defined in: [plugin.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zip/plugin.ts#L13) + +#### Parameters + +##### dataPackage + +[`Package`](/reference/dpkit/package/) + +##### options + +###### target + +`string` + +###### withRemote? + +`boolean` + +#### Returns + +`Promise`\<`undefined` \| \{ `path`: `undefined`; \}\> + +#### Implementation of + +[`Plugin`](/reference/dpkit/plugin/).[`savePackage`](/reference/dpkit/plugin/#savepackage) diff --git a/docs/content/docs/reference/_dpkit/zip/loadPackageFromZip.md b/docs/content/docs/reference/_dpkit/zip/loadPackageFromZip.md new file mode 100644 index 00000000..f9c3c9f3 --- /dev/null +++ b/docs/content/docs/reference/_dpkit/zip/loadPackageFromZip.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "loadPackageFromZip" +--- + +> **loadPackageFromZip**(`archivePath`): `Promise`\<[`Package`](/reference/dpkit/package/)\> + +Defined in: [package/load.ts:9](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zip/package/load.ts#L9) + +## Parameters + +### archivePath + +`string` + +## Returns + +`Promise`\<[`Package`](/reference/dpkit/package/)\> diff --git a/docs/content/docs/reference/_dpkit/zip/savePackageToZip.md b/docs/content/docs/reference/_dpkit/zip/savePackageToZip.md new file mode 100644 index 00000000..198bb70e --- /dev/null +++ b/docs/content/docs/reference/_dpkit/zip/savePackageToZip.md @@ -0,0 +1,30 @@ +--- +editUrl: false +next: false +prev: false +title: "savePackageToZip" +--- + +> **savePackageToZip**(`dataPackage`, `options`): `Promise`\<`void`\> + +Defined in: [package/save.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zip/package/save.ts#L13) + +## Parameters + +### dataPackage + +[`Package`](/reference/dpkit/package/) + +### options + +#### archivePath + +`string` + +#### withRemote? + +`boolean` + +## Returns + +`Promise`\<`void`\> diff --git a/docs/content/docs/reference/dpkit.md b/docs/content/docs/reference/dpkit.md new file mode 100644 index 00000000..b13addf2 --- /dev/null +++ b/docs/content/docs/reference/dpkit.md @@ -0,0 +1,195 @@ +--- +editUrl: false +next: false +prev: false +title: "dpkit" +--- + +# dpkit + +dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). + +## Classes + +- [AssertionError](/reference/dpkit/assertionerror/) +- [CkanPlugin](/reference/dpkit/ckanplugin/) +- [CsvPlugin](/reference/dpkit/csvplugin/) +- [DatahubPlugin](/reference/dpkit/datahubplugin/) +- [Dpkit](/reference/dpkit/dpkit/) +- [FolderPlugin](/reference/dpkit/folderplugin/) +- [GithubPlugin](/reference/dpkit/githubplugin/) +- [InlinePlugin](/reference/dpkit/inlineplugin/) +- [ZenodoPlugin](/reference/dpkit/zenodoplugin/) +- [ZipPlugin](/reference/dpkit/zipplugin/) + +## Interfaces + +- [AnyConstraints](/reference/dpkit/anyconstraints/) +- [AnyField](/reference/dpkit/anyfield/) +- [ArrayConstraints](/reference/dpkit/arrayconstraints/) +- [ArrayField](/reference/dpkit/arrayfield/) +- [BooleanConstraints](/reference/dpkit/booleanconstraints/) +- [BooleanField](/reference/dpkit/booleanfield/) +- [CamtrapPackage](/reference/dpkit/camtrappackage/) +- [CkanField](/reference/dpkit/ckanfield/) +- [CkanOrganization](/reference/dpkit/ckanorganization/) +- [CkanPackage](/reference/dpkit/ckanpackage/) +- [CkanResource](/reference/dpkit/ckanresource/) +- [CkanSchema](/reference/dpkit/ckanschema/) +- [CkanTag](/reference/dpkit/ckantag/) +- [Contributor](/reference/dpkit/contributor/) +- [DateConstraints](/reference/dpkit/dateconstraints/) +- [DateField](/reference/dpkit/datefield/) +- [DatetimeConstraints](/reference/dpkit/datetimeconstraints/) +- [DatetimeField](/reference/dpkit/datetimefield/) +- [Dialect](/reference/dpkit/dialect/) +- [DurationConstraints](/reference/dpkit/durationconstraints/) +- [DurationField](/reference/dpkit/durationfield/) +- [ForeignKey](/reference/dpkit/foreignkey/) +- [GeojsonConstraints](/reference/dpkit/geojsonconstraints/) +- [GeojsonField](/reference/dpkit/geojsonfield/) +- [GeopointConstraints](/reference/dpkit/geopointconstraints/) +- [GeopointField](/reference/dpkit/geopointfield/) +- [GithubLicense](/reference/dpkit/githublicense/) +- [GithubOwner](/reference/dpkit/githubowner/) +- [GithubPackage](/reference/dpkit/githubpackage/) +- [GithubResource](/reference/dpkit/githubresource/) +- [IntegerConstraints](/reference/dpkit/integerconstraints/) +- [IntegerField](/reference/dpkit/integerfield/) +- [License](/reference/dpkit/license/) +- [ListConstraints](/reference/dpkit/listconstraints/) +- [ListField](/reference/dpkit/listfield/) +- [MetadataError](/reference/dpkit/metadataerror/) +- [NumberConstraints](/reference/dpkit/numberconstraints/) +- [NumberField](/reference/dpkit/numberfield/) +- [ObjectConstraints](/reference/dpkit/objectconstraints/) +- [ObjectField](/reference/dpkit/objectfield/) +- [Package](/reference/dpkit/package/) +- [Plugin](/reference/dpkit/plugin/) +- [PolarsSchema](/reference/dpkit/polarsschema/) +- [Resource](/reference/dpkit/resource/) +- [Schema](/reference/dpkit/schema/) +- [Source](/reference/dpkit/source/) +- [StringConstraints](/reference/dpkit/stringconstraints/) +- [StringField](/reference/dpkit/stringfield/) +- [TablePlugin](/reference/dpkit/tableplugin/) +- [TimeConstraints](/reference/dpkit/timeconstraints/) +- [TimeField](/reference/dpkit/timefield/) +- [YearConstraints](/reference/dpkit/yearconstraints/) +- [YearField](/reference/dpkit/yearfield/) +- [YearmonthConstraints](/reference/dpkit/yearmonthconstraints/) +- [YearmonthField](/reference/dpkit/yearmonthfield/) +- [ZenodoCreator](/reference/dpkit/zenodocreator/) +- [ZenodoPackage](/reference/dpkit/zenodopackage/) +- [ZenodoResource](/reference/dpkit/zenodoresource/) + +## Type Aliases + +- [Descriptor](/reference/dpkit/descriptor/) +- [Field](/reference/dpkit/field/) +- [InferDialectOptions](/reference/dpkit/inferdialectoptions/) +- [InferSchemaOptions](/reference/dpkit/inferschemaoptions/) +- [Metadata](/reference/dpkit/metadata/) +- [PolarsField](/reference/dpkit/polarsfield/) +- [SaveTableOptions](/reference/dpkit/savetableoptions/) +- [Table](/reference/dpkit/table/) +- [TableError](/reference/dpkit/tableerror/) + +## Variables + +- [dpkit](/reference/dpkit/dpkit-1/) + +## Functions + +- [assertCamtrapPackage](/reference/dpkit/assertcamtrappackage/) +- [assertDialect](/reference/dpkit/assertdialect/) +- [assertLocalPathVacant](/reference/dpkit/assertlocalpathvacant/) +- [assertPackage](/reference/dpkit/assertpackage/) +- [assertResource](/reference/dpkit/assertresource/) +- [assertSchema](/reference/dpkit/assertschema/) +- [copyFile](/reference/dpkit/copyfile/) +- [createFolder](/reference/dpkit/createfolder/) +- [denormalizeCkanResource](/reference/dpkit/denormalizeckanresource/) +- [denormalizeDialect](/reference/dpkit/denormalizedialect/) +- [denormalizeGithubResource](/reference/dpkit/denormalizegithubresource/) +- [denormalizePackage](/reference/dpkit/denormalizepackage/) +- [denormalizePath](/reference/dpkit/denormalizepath/) +- [denormalizeResource](/reference/dpkit/denormalizeresource/) +- [denormalizeSchema](/reference/dpkit/denormalizeschema/) +- [denormalizeZenodoResource](/reference/dpkit/denormalizezenodoresource/) +- [getBasepath](/reference/dpkit/getbasepath/) +- [getFilename](/reference/dpkit/getfilename/) +- [getFormat](/reference/dpkit/getformat/) +- [getName](/reference/dpkit/getname/) +- [getPackageBasepath](/reference/dpkit/getpackagebasepath/) +- [getPolarsSchema](/reference/dpkit/getpolarsschema/) +- [getTempFilePath](/reference/dpkit/gettempfilepath/) +- [getTempFolderPath](/reference/dpkit/gettempfolderpath/) +- [inferCsvDialect](/reference/dpkit/infercsvdialect/) +- [inferDialect](/reference/dpkit/inferdialect/) +- [inferFormat](/reference/dpkit/inferformat/) +- [inferSchema](/reference/dpkit/inferschema/) +- [inspectField](/reference/dpkit/inspectfield/) +- [inspectTable](/reference/dpkit/inspecttable/) +- [isDescriptor](/reference/dpkit/isdescriptor/) +- [isLocalPathExist](/reference/dpkit/islocalpathexist/) +- [isRemotePath](/reference/dpkit/isremotepath/) +- [loadCsvTable](/reference/dpkit/loadcsvtable/) +- [loadDescriptor](/reference/dpkit/loaddescriptor/) +- [loadDialect](/reference/dpkit/loaddialect/) +- [loadFile](/reference/dpkit/loadfile/) +- [loadFileStream](/reference/dpkit/loadfilestream/) +- [loadInlineTable](/reference/dpkit/loadinlinetable/) +- [loadPackage](/reference/dpkit/loadpackage/) +- [loadPackageDescriptor](/reference/dpkit/loadpackagedescriptor/) +- [loadPackageFromCkan](/reference/dpkit/loadpackagefromckan/) +- [loadPackageFromDatahub](/reference/dpkit/loadpackagefromdatahub/) +- [loadPackageFromFolder](/reference/dpkit/loadpackagefromfolder/) +- [loadPackageFromGithub](/reference/dpkit/loadpackagefromgithub/) +- [loadPackageFromZenodo](/reference/dpkit/loadpackagefromzenodo/) +- [loadPackageFromZip](/reference/dpkit/loadpackagefromzip/) +- [loadProfile](/reference/dpkit/loadprofile/) +- [loadResourceDescriptor](/reference/dpkit/loadresourcedescriptor/) +- [loadSchema](/reference/dpkit/loadschema/) +- [loadTable](/reference/dpkit/loadtable/) +- [matchField](/reference/dpkit/matchfield/) +- [mergePackages](/reference/dpkit/mergepackages/) +- [normalizeCkanSchema](/reference/dpkit/normalizeckanschema/) +- [normalizeDialect](/reference/dpkit/normalizedialect/) +- [normalizeField](/reference/dpkit/normalizefield/) +- [normalizeGithubResource](/reference/dpkit/normalizegithubresource/) +- [normalizePackage](/reference/dpkit/normalizepackage/) +- [normalizePath](/reference/dpkit/normalizepath/) +- [normalizeResource](/reference/dpkit/normalizeresource/) +- [normalizeSchema](/reference/dpkit/normalizeschema/) +- [normalizeZenodoResource](/reference/dpkit/normalizezenodoresource/) +- [parseDescriptor](/reference/dpkit/parsedescriptor/) +- [parseField](/reference/dpkit/parsefield/) +- [prefetchFile](/reference/dpkit/prefetchfile/) +- [prefetchFiles](/reference/dpkit/prefetchfiles/) +- [processTable](/reference/dpkit/processtable/) +- [readTable](/reference/dpkit/readtable/) +- [saveCsvTable](/reference/dpkit/savecsvtable/) +- [saveDescriptor](/reference/dpkit/savedescriptor/) +- [saveDialect](/reference/dpkit/savedialect/) +- [saveFile](/reference/dpkit/savefile/) +- [saveFileStream](/reference/dpkit/savefilestream/) +- [savePackage](/reference/dpkit/savepackage/) +- [savePackageDescriptor](/reference/dpkit/savepackagedescriptor/) +- [savePackageToCkan](/reference/dpkit/savepackagetockan/) +- [savePackageToFolder](/reference/dpkit/savepackagetofolder/) +- [savePackageToGithub](/reference/dpkit/savepackagetogithub/) +- [savePackageToZenodo](/reference/dpkit/savepackagetozenodo/) +- [savePackageToZip](/reference/dpkit/savepackagetozip/) +- [saveResourceDescriptor](/reference/dpkit/saveresourcedescriptor/) +- [saveResourceFiles](/reference/dpkit/saveresourcefiles/) +- [saveSchema](/reference/dpkit/saveschema/) +- [saveTable](/reference/dpkit/savetable/) +- [stringifyDescriptor](/reference/dpkit/stringifydescriptor/) +- [validateDescriptor](/reference/dpkit/validatedescriptor/) +- [validateDialect](/reference/dpkit/validatedialect/) +- [validatePackageDescriptor](/reference/dpkit/validatepackagedescriptor/) +- [validateResourceDescriptor](/reference/dpkit/validateresourcedescriptor/) +- [validateSchema](/reference/dpkit/validateschema/) +- [validateTable](/reference/dpkit/validatetable/) +- [writeTempFile](/reference/dpkit/writetempfile/) diff --git a/docs/content/docs/reference/dpkit/AnyConstraints.md b/docs/content/docs/reference/dpkit/AnyConstraints.md new file mode 100644 index 00000000..9e70ac27 --- /dev/null +++ b/docs/content/docs/reference/dpkit/AnyConstraints.md @@ -0,0 +1,53 @@ +--- +editUrl: false +next: false +prev: false +title: "AnyConstraints" +--- + +Defined in: core/build/field/types/Any.d.ts:14 + +Any field constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `any`[] + +Defined in: core/build/field/types/Any.d.ts:19 + +Restrict values to a specified set +For any field type, can be an array of any values + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:47 + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:51 + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/AnyField.md b/docs/content/docs/reference/dpkit/AnyField.md new file mode 100644 index 00000000..875bffcb --- /dev/null +++ b/docs/content/docs/reference/dpkit/AnyField.md @@ -0,0 +1,128 @@ +--- +editUrl: false +next: false +prev: false +title: "AnyField" +--- + +Defined in: core/build/field/types/Any.d.ts:5 + +Any field type (unspecified/mixed) + +## Extends + +- `BaseField`\<[`AnyConstraints`](/reference/dpkit/anyconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### constraints? + +> `optional` **constraints**: [`AnyConstraints`](/reference/dpkit/anyconstraints/) + +Defined in: core/build/field/types/Base.d.ts:38 + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: core/build/field/types/Base.d.ts:17 + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: core/build/field/types/Base.d.ts:21 + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: core/build/field/types/Base.d.ts:31 + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: core/build/field/types/Base.d.ts:9 + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: core/build/field/types/Base.d.ts:25 + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: core/build/field/types/Base.d.ts:13 + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type? + +> `optional` **type**: `"any"` + +Defined in: core/build/field/types/Any.d.ts:9 + +Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/ArrayConstraints.md b/docs/content/docs/reference/dpkit/ArrayConstraints.md new file mode 100644 index 00000000..b571552d --- /dev/null +++ b/docs/content/docs/reference/dpkit/ArrayConstraints.md @@ -0,0 +1,83 @@ +--- +editUrl: false +next: false +prev: false +title: "ArrayConstraints" +--- + +Defined in: core/build/field/types/Array.d.ts:14 + +Array-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] \| `any`[][] + +Defined in: core/build/field/types/Array.d.ts:31 + +Restrict values to a specified set of arrays +Serialized as JSON strings or parsed array objects + +*** + +### jsonSchema? + +> `optional` **jsonSchema**: `Record`\<`string`, `any`\> + +Defined in: core/build/field/types/Array.d.ts:26 + +JSON Schema object for validating array items + +*** + +### maxLength? + +> `optional` **maxLength**: `number` + +Defined in: core/build/field/types/Array.d.ts:22 + +Maximum array length + +*** + +### minLength? + +> `optional` **minLength**: `number` + +Defined in: core/build/field/types/Array.d.ts:18 + +Minimum array length + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:47 + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:51 + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/ArrayField.md b/docs/content/docs/reference/dpkit/ArrayField.md new file mode 100644 index 00000000..4bdffae4 --- /dev/null +++ b/docs/content/docs/reference/dpkit/ArrayField.md @@ -0,0 +1,128 @@ +--- +editUrl: false +next: false +prev: false +title: "ArrayField" +--- + +Defined in: core/build/field/types/Array.d.ts:5 + +Array field type (serialized JSON array) + +## Extends + +- `BaseField`\<[`ArrayConstraints`](/reference/dpkit/arrayconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### constraints? + +> `optional` **constraints**: [`ArrayConstraints`](/reference/dpkit/arrayconstraints/) + +Defined in: core/build/field/types/Base.d.ts:38 + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: core/build/field/types/Base.d.ts:17 + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: core/build/field/types/Base.d.ts:21 + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: core/build/field/types/Base.d.ts:31 + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: core/build/field/types/Base.d.ts:9 + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: core/build/field/types/Base.d.ts:25 + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: core/build/field/types/Base.d.ts:13 + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type + +> **type**: `"array"` + +Defined in: core/build/field/types/Array.d.ts:9 + +Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/AssertionError.md b/docs/content/docs/reference/dpkit/AssertionError.md new file mode 100644 index 00000000..b4d9e06a --- /dev/null +++ b/docs/content/docs/reference/dpkit/AssertionError.md @@ -0,0 +1,92 @@ +--- +editUrl: false +next: false +prev: false +title: "AssertionError" +--- + +Defined in: core/build/general/Error.d.ts:11 + +Thrown when a descriptor assertion fails + +## Extends + +- `Error` + +## Constructors + +### Constructor + +> **new AssertionError**(`errors`): `AssertionError` + +Defined in: core/build/general/Error.d.ts:13 + +#### Parameters + +##### errors + +[`MetadataError`](/reference/dpkit/metadataerror/)[] + +#### Returns + +`AssertionError` + +#### Overrides + +`Error.constructor` + +## Properties + +### cause? + +> `optional` **cause**: `unknown` + +Defined in: node\_modules/.pnpm/typescript@5.8.3/node\_modules/typescript/lib/lib.es2022.error.d.ts:26 + +#### Inherited from + +`Error.cause` + +*** + +### errors + +> `readonly` **errors**: [`MetadataError`](/reference/dpkit/metadataerror/)[] + +Defined in: core/build/general/Error.d.ts:12 + +*** + +### message + +> **message**: `string` + +Defined in: node\_modules/.pnpm/typescript@5.8.3/node\_modules/typescript/lib/lib.es5.d.ts:1077 + +#### Inherited from + +`Error.message` + +*** + +### name + +> **name**: `string` + +Defined in: node\_modules/.pnpm/typescript@5.8.3/node\_modules/typescript/lib/lib.es5.d.ts:1076 + +#### Inherited from + +`Error.name` + +*** + +### stack? + +> `optional` **stack**: `string` + +Defined in: node\_modules/.pnpm/typescript@5.8.3/node\_modules/typescript/lib/lib.es5.d.ts:1078 + +#### Inherited from + +`Error.stack` diff --git a/docs/content/docs/reference/dpkit/BooleanConstraints.md b/docs/content/docs/reference/dpkit/BooleanConstraints.md new file mode 100644 index 00000000..566363ad --- /dev/null +++ b/docs/content/docs/reference/dpkit/BooleanConstraints.md @@ -0,0 +1,53 @@ +--- +editUrl: false +next: false +prev: false +title: "BooleanConstraints" +--- + +Defined in: core/build/field/types/Boolean.d.ts:22 + +Boolean-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] \| `boolean`[] + +Defined in: core/build/field/types/Boolean.d.ts:27 + +Restrict values to a specified set +Can be an array of booleans or strings that parse to booleans + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:47 + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:51 + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/BooleanField.md b/docs/content/docs/reference/dpkit/BooleanField.md new file mode 100644 index 00000000..e069a183 --- /dev/null +++ b/docs/content/docs/reference/dpkit/BooleanField.md @@ -0,0 +1,148 @@ +--- +editUrl: false +next: false +prev: false +title: "BooleanField" +--- + +Defined in: core/build/field/types/Boolean.d.ts:5 + +Boolean field type + +## Extends + +- `BaseField`\<[`BooleanConstraints`](/reference/dpkit/booleanconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### constraints? + +> `optional` **constraints**: [`BooleanConstraints`](/reference/dpkit/booleanconstraints/) + +Defined in: core/build/field/types/Base.d.ts:38 + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: core/build/field/types/Base.d.ts:17 + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: core/build/field/types/Base.d.ts:21 + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### falseValues? + +> `optional` **falseValues**: `string`[] + +Defined in: core/build/field/types/Boolean.d.ts:17 + +Values that represent false + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: core/build/field/types/Base.d.ts:31 + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: core/build/field/types/Base.d.ts:9 + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: core/build/field/types/Base.d.ts:25 + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: core/build/field/types/Base.d.ts:13 + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### trueValues? + +> `optional` **trueValues**: `string`[] + +Defined in: core/build/field/types/Boolean.d.ts:13 + +Values that represent true + +*** + +### type + +> **type**: `"boolean"` + +Defined in: core/build/field/types/Boolean.d.ts:9 + +Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/CamtrapPackage.md b/docs/content/docs/reference/dpkit/CamtrapPackage.md new file mode 100644 index 00000000..6370d4dc --- /dev/null +++ b/docs/content/docs/reference/dpkit/CamtrapPackage.md @@ -0,0 +1,398 @@ +--- +editUrl: false +next: false +prev: false +title: "CamtrapPackage" +--- + +Defined in: camtrap/build/package/Package.d.ts:7 + +Camera Trap Data Package interface built on top of the TDWG specification + +## See + +https://camtrap-dp.tdwg.org/metadata/ + +## Extends + +- [`Package`](/reference/dpkit/package/) + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### $schema? + +> `optional` **$schema**: `string` + +Defined in: core/build/package/Package.d.ts:21 + +Package schema URL for validation + +#### Inherited from + +[`Package`](/reference/dpkit/package/).[`$schema`](/reference/dpkit/package/#schema) + +*** + +### bibliographicCitation? + +> `optional` **bibliographicCitation**: `string` + +Defined in: camtrap/build/package/Package.d.ts:106 + +Bibliographic citation for the dataset + +*** + +### contributors + +> **contributors**: `CamtrapContributor`[] + +Defined in: camtrap/build/package/Package.d.ts:23 + +Contributors to the package + +#### Required + +#### Overrides + +[`Package`](/reference/dpkit/package/).[`contributors`](/reference/dpkit/package/#contributors) + +*** + +### coordinatePrecision? + +> `optional` **coordinatePrecision**: `number` + +Defined in: camtrap/build/package/Package.d.ts:102 + +Precision of geographic coordinates + +*** + +### created + +> **created**: `string` + +Defined in: camtrap/build/package/Package.d.ts:18 + +Creation date of the package + +#### Required + +#### Format + +ISO 8601 + +#### Overrides + +[`Package`](/reference/dpkit/package/).[`created`](/reference/dpkit/package/#created) + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: core/build/package/Package.d.ts:29 + +A description of the package + +#### Inherited from + +[`Package`](/reference/dpkit/package/).[`description`](/reference/dpkit/package/#description) + +*** + +### homepage? + +> `optional` **homepage**: `string` + +Defined in: core/build/package/Package.d.ts:33 + +A URL for the home page of the package + +#### Inherited from + +[`Package`](/reference/dpkit/package/).[`homepage`](/reference/dpkit/package/#homepage) + +*** + +### image? + +> `optional` **image**: `string` + +Defined in: core/build/package/Package.d.ts:63 + +Package image + +#### Inherited from + +[`Package`](/reference/dpkit/package/).[`image`](/reference/dpkit/package/#image) + +*** + +### keywords? + +> `optional` **keywords**: `string`[] + +Defined in: core/build/package/Package.d.ts:54 + +Keywords for the package + +#### Inherited from + +[`Package`](/reference/dpkit/package/).[`keywords`](/reference/dpkit/package/#keywords) + +*** + +### licenses? + +> `optional` **licenses**: `CamtrapLicense`[] + +Defined in: camtrap/build/package/Package.d.ts:115 + +Licenses for the package +Extended with scope property + +#### Overrides + +[`Package`](/reference/dpkit/package/).[`licenses`](/reference/dpkit/package/#licenses) + +*** + +### name? + +> `optional` **name**: `string` + +Defined in: core/build/package/Package.d.ts:17 + +Unique package identifier +Should use lowercase alphanumeric characters, periods, hyphens, and underscores + +#### Inherited from + +[`Package`](/reference/dpkit/package/).[`name`](/reference/dpkit/package/#name) + +*** + +### profile + +> **profile**: `string` + +Defined in: camtrap/build/package/Package.d.ts:12 + +Package profile identifier + +#### Required + +*** + +### project + +> **project**: `object` + +Defined in: camtrap/build/package/Package.d.ts:28 + +Project metadata + +#### acronym? + +> `optional` **acronym**: `string` + +Project acronym + +#### captureMethod + +> **captureMethod**: (`"activityDetection"` \| `"timeLapse"`)[] + +Capture method used + +##### Required + +#### description? + +> `optional` **description**: `string` + +Project description + +#### id? + +> `optional` **id**: `string` + +Project identifier + +#### individualAnimals + +> **individualAnimals**: `boolean` + +Whether individual animals were identified + +##### Required + +#### observationLevel + +> **observationLevel**: (`"media"` \| `"event"`)[] + +Level at which observations are recorded + +##### Required + +#### path? + +> `optional` **path**: `string` + +Project URL or path + +#### samplingDesign + +> **samplingDesign**: `"simpleRandom"` \| `"systematicRandom"` \| `"clusteredRandom"` \| `"experimental"` \| `"targeted"` \| `"opportunistic"` + +Sampling design methodology + +##### Required + +#### title + +> **title**: `string` + +Project title + +##### Required + +#### Required + +*** + +### relatedIdentifiers? + +> `optional` **relatedIdentifiers**: `RelatedIdentifier`[] + +Defined in: camtrap/build/package/Package.d.ts:110 + +Related identifiers for the dataset + +*** + +### resources + +> **resources**: [`Resource`](/reference/dpkit/resource/)[] + +Defined in: core/build/package/Package.d.ts:12 + +Data resources in this package (required) + +#### Inherited from + +[`Package`](/reference/dpkit/package/).[`resources`](/reference/dpkit/package/#resources) + +*** + +### sources? + +> `optional` **sources**: [`Source`](/reference/dpkit/source/)[] + +Defined in: core/build/package/Package.d.ts:50 + +Data sources for this package + +#### Inherited from + +[`Package`](/reference/dpkit/package/).[`sources`](/reference/dpkit/package/#sources) + +*** + +### spatial + +> **spatial**: `GeoJSON` + +Defined in: camtrap/build/package/Package.d.ts:75 + +Spatial coverage of the data + +#### Required + +*** + +### taxonomic + +> **taxonomic**: `TaxonomicCoverage`[] + +Defined in: camtrap/build/package/Package.d.ts:98 + +Taxonomic coverage of the data + +#### Required + +*** + +### temporal + +> **temporal**: `object` + +Defined in: camtrap/build/package/Package.d.ts:80 + +Temporal coverage of the data + +#### end + +> **end**: `string` + +End date of temporal coverage + +##### Required + +##### Format + +ISO 8601 + +#### start + +> **start**: `string` + +Start date of temporal coverage + +##### Required + +##### Format + +ISO 8601 + +#### Required + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: core/build/package/Package.d.ts:25 + +Human-readable title + +#### Inherited from + +[`Package`](/reference/dpkit/package/).[`title`](/reference/dpkit/package/#title) + +*** + +### version? + +> `optional` **version**: `string` + +Defined in: core/build/package/Package.d.ts:38 + +Version of the package using SemVer + +#### Example + +```ts +"1.0.0" +``` + +#### Inherited from + +[`Package`](/reference/dpkit/package/).[`version`](/reference/dpkit/package/#version) diff --git a/docs/content/docs/reference/dpkit/CkanField.md b/docs/content/docs/reference/dpkit/CkanField.md new file mode 100644 index 00000000..38ca9930 --- /dev/null +++ b/docs/content/docs/reference/dpkit/CkanField.md @@ -0,0 +1,40 @@ +--- +editUrl: false +next: false +prev: false +title: "CkanField" +--- + +Defined in: ckan/build/schema/Field.d.ts:4 + +CKAN Field interface + +## Properties + +### id + +> **id**: `string` + +Defined in: ckan/build/schema/Field.d.ts:8 + +Field identifier + +*** + +### info? + +> `optional` **info**: `CkanFieldInfo` + +Defined in: ckan/build/schema/Field.d.ts:16 + +Additional field information + +*** + +### type + +> **type**: `string` + +Defined in: ckan/build/schema/Field.d.ts:12 + +Field data type diff --git a/docs/content/docs/reference/dpkit/CkanOrganization.md b/docs/content/docs/reference/dpkit/CkanOrganization.md new file mode 100644 index 00000000..bc54312f --- /dev/null +++ b/docs/content/docs/reference/dpkit/CkanOrganization.md @@ -0,0 +1,50 @@ +--- +editUrl: false +next: false +prev: false +title: "CkanOrganization" +--- + +Defined in: ckan/build/package/Organization.d.ts:4 + +CKAN Organization interface + +## Properties + +### description + +> **description**: `string` + +Defined in: ckan/build/package/Organization.d.ts:20 + +Organization description + +*** + +### id + +> **id**: `string` + +Defined in: ckan/build/package/Organization.d.ts:8 + +Organization identifier + +*** + +### name + +> **name**: `string` + +Defined in: ckan/build/package/Organization.d.ts:12 + +Organization name + +*** + +### title + +> **title**: `string` + +Defined in: ckan/build/package/Organization.d.ts:16 + +Organization title diff --git a/docs/content/docs/reference/dpkit/CkanPackage.md b/docs/content/docs/reference/dpkit/CkanPackage.md new file mode 100644 index 00000000..2384bea6 --- /dev/null +++ b/docs/content/docs/reference/dpkit/CkanPackage.md @@ -0,0 +1,180 @@ +--- +editUrl: false +next: false +prev: false +title: "CkanPackage" +--- + +Defined in: ckan/build/package/Package.d.ts:7 + +CKAN Package interface + +## Properties + +### author? + +> `optional` **author**: `string` + +Defined in: ckan/build/package/Package.d.ts:55 + +Package author + +*** + +### author\_email? + +> `optional` **author\_email**: `string` + +Defined in: ckan/build/package/Package.d.ts:59 + +Package author email + +*** + +### id + +> **id**: `string` + +Defined in: ckan/build/package/Package.d.ts:23 + +Package identifier + +*** + +### license\_id? + +> `optional` **license\_id**: `string` + +Defined in: ckan/build/package/Package.d.ts:43 + +License identifier + +*** + +### license\_title? + +> `optional` **license\_title**: `string` + +Defined in: ckan/build/package/Package.d.ts:47 + +License title + +*** + +### license\_url? + +> `optional` **license\_url**: `string` + +Defined in: ckan/build/package/Package.d.ts:51 + +License URL + +*** + +### maintainer? + +> `optional` **maintainer**: `string` + +Defined in: ckan/build/package/Package.d.ts:63 + +Package maintainer + +*** + +### maintainer\_email? + +> `optional` **maintainer\_email**: `string` + +Defined in: ckan/build/package/Package.d.ts:67 + +Package maintainer email + +*** + +### metadata\_created? + +> `optional` **metadata\_created**: `string` + +Defined in: ckan/build/package/Package.d.ts:71 + +Metadata creation timestamp + +*** + +### metadata\_modified? + +> `optional` **metadata\_modified**: `string` + +Defined in: ckan/build/package/Package.d.ts:75 + +Metadata modification timestamp + +*** + +### name + +> **name**: `string` + +Defined in: ckan/build/package/Package.d.ts:27 + +Package name + +*** + +### notes? + +> `optional` **notes**: `string` + +Defined in: ckan/build/package/Package.d.ts:35 + +Package notes/description + +*** + +### organization? + +> `optional` **organization**: [`CkanOrganization`](/reference/dpkit/ckanorganization/) + +Defined in: ckan/build/package/Package.d.ts:15 + +Organization information + +*** + +### resources + +> **resources**: [`CkanResource`](/reference/dpkit/ckanresource/)[] + +Defined in: ckan/build/package/Package.d.ts:11 + +List of resources + +*** + +### tags + +> **tags**: [`CkanTag`](/reference/dpkit/ckantag/)[] + +Defined in: ckan/build/package/Package.d.ts:19 + +List of tags + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: ckan/build/package/Package.d.ts:31 + +Package title + +*** + +### version? + +> `optional` **version**: `string` + +Defined in: ckan/build/package/Package.d.ts:39 + +Package version diff --git a/docs/content/docs/reference/dpkit/CkanPlugin.md b/docs/content/docs/reference/dpkit/CkanPlugin.md new file mode 100644 index 00000000..8243439d --- /dev/null +++ b/docs/content/docs/reference/dpkit/CkanPlugin.md @@ -0,0 +1,44 @@ +--- +editUrl: false +next: false +prev: false +title: "CkanPlugin" +--- + +Defined in: ckan/build/plugin.d.ts:2 + +## Implements + +- [`Plugin`](/reference/dpkit/plugin/) + +## Constructors + +### Constructor + +> **new CkanPlugin**(): `CkanPlugin` + +#### Returns + +`CkanPlugin` + +## Methods + +### loadPackage() + +> **loadPackage**(`source`): `Promise`\<`undefined` \| \{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> + +Defined in: ckan/build/plugin.d.ts:3 + +#### Parameters + +##### source + +`string` + +#### Returns + +`Promise`\<`undefined` \| \{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> + +#### Implementation of + +[`Plugin`](/reference/dpkit/plugin/).[`loadPackage`](/reference/dpkit/plugin/#loadpackage) diff --git a/docs/content/docs/reference/dpkit/CkanResource.md b/docs/content/docs/reference/dpkit/CkanResource.md new file mode 100644 index 00000000..b2966b31 --- /dev/null +++ b/docs/content/docs/reference/dpkit/CkanResource.md @@ -0,0 +1,130 @@ +--- +editUrl: false +next: false +prev: false +title: "CkanResource" +--- + +Defined in: ckan/build/resource/Resource.d.ts:6 + +CKAN Resource interface + +## Properties + +### created + +> **created**: `string` + +Defined in: ckan/build/resource/Resource.d.ts:22 + +Resource creation timestamp + +*** + +### description + +> **description**: `string` + +Defined in: ckan/build/resource/Resource.d.ts:26 + +Resource description + +*** + +### format + +> **format**: `string` + +Defined in: ckan/build/resource/Resource.d.ts:30 + +Resource format + +*** + +### hash + +> **hash**: `string` + +Defined in: ckan/build/resource/Resource.d.ts:34 + +Resource hash + +*** + +### id + +> **id**: `string` + +Defined in: ckan/build/resource/Resource.d.ts:10 + +Resource identifier + +*** + +### last\_modified + +> **last\_modified**: `string` + +Defined in: ckan/build/resource/Resource.d.ts:38 + +Resource last modification timestamp + +*** + +### metadata\_modified + +> **metadata\_modified**: `string` + +Defined in: ckan/build/resource/Resource.d.ts:42 + +Resource metadata modification timestamp + +*** + +### mimetype + +> **mimetype**: `string` + +Defined in: ckan/build/resource/Resource.d.ts:46 + +Resource MIME type + +*** + +### name + +> **name**: `string` + +Defined in: ckan/build/resource/Resource.d.ts:18 + +Resource name + +*** + +### schema? + +> `optional` **schema**: [`CkanSchema`](/reference/dpkit/ckanschema/) + +Defined in: ckan/build/resource/Resource.d.ts:54 + +Resource schema + +*** + +### size + +> **size**: `number` + +Defined in: ckan/build/resource/Resource.d.ts:50 + +Resource size in bytes + +*** + +### url + +> **url**: `string` + +Defined in: ckan/build/resource/Resource.d.ts:14 + +Resource URL diff --git a/docs/content/docs/reference/dpkit/CkanSchema.md b/docs/content/docs/reference/dpkit/CkanSchema.md new file mode 100644 index 00000000..cd81f403 --- /dev/null +++ b/docs/content/docs/reference/dpkit/CkanSchema.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "CkanSchema" +--- + +Defined in: ckan/build/schema/Schema.d.ts:5 + +CKAN Schema interface + +## Properties + +### fields + +> **fields**: [`CkanField`](/reference/dpkit/ckanfield/)[] + +Defined in: ckan/build/schema/Schema.d.ts:9 + +List of fields diff --git a/docs/content/docs/reference/dpkit/CkanTag.md b/docs/content/docs/reference/dpkit/CkanTag.md new file mode 100644 index 00000000..34eb3c8e --- /dev/null +++ b/docs/content/docs/reference/dpkit/CkanTag.md @@ -0,0 +1,40 @@ +--- +editUrl: false +next: false +prev: false +title: "CkanTag" +--- + +Defined in: ckan/build/package/Tag.d.ts:4 + +CKAN Tag interface + +## Properties + +### display\_name + +> **display\_name**: `string` + +Defined in: ckan/build/package/Tag.d.ts:16 + +Tag display name + +*** + +### id + +> **id**: `string` + +Defined in: ckan/build/package/Tag.d.ts:8 + +Tag identifier + +*** + +### name + +> **name**: `string` + +Defined in: ckan/build/package/Tag.d.ts:12 + +Tag name diff --git a/docs/content/docs/reference/dpkit/Contributor.md b/docs/content/docs/reference/dpkit/Contributor.md new file mode 100644 index 00000000..74480b85 --- /dev/null +++ b/docs/content/docs/reference/dpkit/Contributor.md @@ -0,0 +1,50 @@ +--- +editUrl: false +next: false +prev: false +title: "Contributor" +--- + +Defined in: core/build/package/Contributor.d.ts:4 + +Contributor information + +## Properties + +### email? + +> `optional` **email**: `string` + +Defined in: core/build/package/Contributor.d.ts:12 + +Email address of the contributor + +*** + +### path? + +> `optional` **path**: `string` + +Defined in: core/build/package/Contributor.d.ts:16 + +Path to relevant contributor information + +*** + +### role? + +> `optional` **role**: `string` + +Defined in: core/build/package/Contributor.d.ts:20 + +Role of the contributor + +*** + +### title + +> **title**: `string` + +Defined in: core/build/package/Contributor.d.ts:8 + +Full name of the contributor diff --git a/docs/content/docs/reference/dpkit/CsvPlugin.md b/docs/content/docs/reference/dpkit/CsvPlugin.md new file mode 100644 index 00000000..b0eba84e --- /dev/null +++ b/docs/content/docs/reference/dpkit/CsvPlugin.md @@ -0,0 +1,96 @@ +--- +editUrl: false +next: false +prev: false +title: "CsvPlugin" +--- + +Defined in: csv/build/plugin.d.ts:4 + +## Implements + +- [`TablePlugin`](/reference/dpkit/tableplugin/) + +## Constructors + +### Constructor + +> **new CsvPlugin**(): `CsvPlugin` + +#### Returns + +`CsvPlugin` + +## Methods + +### inferDialect() + +> **inferDialect**(`resource`, `options?`): `Promise`\<`undefined` \| [`Dialect`](/reference/dpkit/dialect/)\> + +Defined in: csv/build/plugin.d.ts:5 + +#### Parameters + +##### resource + +`Partial`\<[`Resource`](/reference/dpkit/resource/)\> + +##### options? + +[`InferDialectOptions`](/reference/dpkit/inferdialectoptions/) + +#### Returns + +`Promise`\<`undefined` \| [`Dialect`](/reference/dpkit/dialect/)\> + +#### Implementation of + +[`TablePlugin`](/reference/dpkit/tableplugin/).[`inferDialect`](/reference/dpkit/tableplugin/#inferdialect) + +*** + +### loadTable() + +> **loadTable**(`resource`): `Promise`\<`undefined` \| `LazyDataFrame`\> + +Defined in: csv/build/plugin.d.ts:6 + +#### Parameters + +##### resource + +`Partial`\<[`Resource`](/reference/dpkit/resource/)\> + +#### Returns + +`Promise`\<`undefined` \| `LazyDataFrame`\> + +#### Implementation of + +[`TablePlugin`](/reference/dpkit/tableplugin/).[`loadTable`](/reference/dpkit/tableplugin/#loadtable) + +*** + +### saveTable() + +> **saveTable**(`table`, `options`): `Promise`\<`undefined` \| `string`\> + +Defined in: csv/build/plugin.d.ts:7 + +#### Parameters + +##### table + +`LazyDataFrame` + +##### options + +[`SaveTableOptions`](/reference/dpkit/savetableoptions/) + +#### Returns + +`Promise`\<`undefined` \| `string`\> + +#### Implementation of + +[`TablePlugin`](/reference/dpkit/tableplugin/).[`saveTable`](/reference/dpkit/tableplugin/#savetable) diff --git a/docs/content/docs/reference/dpkit/DatahubPlugin.md b/docs/content/docs/reference/dpkit/DatahubPlugin.md new file mode 100644 index 00000000..37a595ee --- /dev/null +++ b/docs/content/docs/reference/dpkit/DatahubPlugin.md @@ -0,0 +1,44 @@ +--- +editUrl: false +next: false +prev: false +title: "DatahubPlugin" +--- + +Defined in: datahub/build/plugin.d.ts:2 + +## Implements + +- [`Plugin`](/reference/dpkit/plugin/) + +## Constructors + +### Constructor + +> **new DatahubPlugin**(): `DatahubPlugin` + +#### Returns + +`DatahubPlugin` + +## Methods + +### loadPackage() + +> **loadPackage**(`source`): `Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> + +Defined in: datahub/build/plugin.d.ts:3 + +#### Parameters + +##### source + +`string` + +#### Returns + +`Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> + +#### Implementation of + +[`Plugin`](/reference/dpkit/plugin/).[`loadPackage`](/reference/dpkit/plugin/#loadpackage) diff --git a/docs/content/docs/reference/dpkit/DateConstraints.md b/docs/content/docs/reference/dpkit/DateConstraints.md new file mode 100644 index 00000000..e421dff9 --- /dev/null +++ b/docs/content/docs/reference/dpkit/DateConstraints.md @@ -0,0 +1,73 @@ +--- +editUrl: false +next: false +prev: false +title: "DateConstraints" +--- + +Defined in: core/build/field/types/Date.d.ts:21 + +Date-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] + +Defined in: core/build/field/types/Date.d.ts:34 + +Restrict values to a specified set of dates +Should be in string date format (e.g., "YYYY-MM-DD") + +*** + +### maximum? + +> `optional` **maximum**: `string` + +Defined in: core/build/field/types/Date.d.ts:29 + +Maximum allowed date value + +*** + +### minimum? + +> `optional` **minimum**: `string` + +Defined in: core/build/field/types/Date.d.ts:25 + +Minimum allowed date value + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:47 + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:51 + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/DateField.md b/docs/content/docs/reference/dpkit/DateField.md new file mode 100644 index 00000000..12775040 --- /dev/null +++ b/docs/content/docs/reference/dpkit/DateField.md @@ -0,0 +1,141 @@ +--- +editUrl: false +next: false +prev: false +title: "DateField" +--- + +Defined in: core/build/field/types/Date.d.ts:5 + +Date field type + +## Extends + +- `BaseField`\<[`DateConstraints`](/reference/dpkit/dateconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### constraints? + +> `optional` **constraints**: [`DateConstraints`](/reference/dpkit/dateconstraints/) + +Defined in: core/build/field/types/Base.d.ts:38 + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: core/build/field/types/Base.d.ts:17 + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: core/build/field/types/Base.d.ts:21 + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### format? + +> `optional` **format**: `string` + +Defined in: core/build/field/types/Date.d.ts:16 + +Format of the date +- default: YYYY-MM-DD +- any: flexible date parsing (not recommended) +- Or custom strptime/strftime format string + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: core/build/field/types/Base.d.ts:31 + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: core/build/field/types/Base.d.ts:9 + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: core/build/field/types/Base.d.ts:25 + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: core/build/field/types/Base.d.ts:13 + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type + +> **type**: `"date"` + +Defined in: core/build/field/types/Date.d.ts:9 + +Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/DatetimeConstraints.md b/docs/content/docs/reference/dpkit/DatetimeConstraints.md new file mode 100644 index 00000000..b8e3edaa --- /dev/null +++ b/docs/content/docs/reference/dpkit/DatetimeConstraints.md @@ -0,0 +1,73 @@ +--- +editUrl: false +next: false +prev: false +title: "DatetimeConstraints" +--- + +Defined in: core/build/field/types/Datetime.d.ts:21 + +Datetime-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] + +Defined in: core/build/field/types/Datetime.d.ts:34 + +Restrict values to a specified set of datetimes +Should be in string datetime format (e.g., ISO8601) + +*** + +### maximum? + +> `optional` **maximum**: `string` + +Defined in: core/build/field/types/Datetime.d.ts:29 + +Maximum allowed datetime value + +*** + +### minimum? + +> `optional` **minimum**: `string` + +Defined in: core/build/field/types/Datetime.d.ts:25 + +Minimum allowed datetime value + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:47 + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:51 + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/DatetimeField.md b/docs/content/docs/reference/dpkit/DatetimeField.md new file mode 100644 index 00000000..e6971f6c --- /dev/null +++ b/docs/content/docs/reference/dpkit/DatetimeField.md @@ -0,0 +1,141 @@ +--- +editUrl: false +next: false +prev: false +title: "DatetimeField" +--- + +Defined in: core/build/field/types/Datetime.d.ts:5 + +Datetime field type + +## Extends + +- `BaseField`\<[`DatetimeConstraints`](/reference/dpkit/datetimeconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### constraints? + +> `optional` **constraints**: [`DatetimeConstraints`](/reference/dpkit/datetimeconstraints/) + +Defined in: core/build/field/types/Base.d.ts:38 + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: core/build/field/types/Base.d.ts:17 + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: core/build/field/types/Base.d.ts:21 + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### format? + +> `optional` **format**: `string` + +Defined in: core/build/field/types/Datetime.d.ts:16 + +Format of the datetime +- default: ISO8601 format +- any: flexible datetime parsing (not recommended) +- Or custom strptime/strftime format string + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: core/build/field/types/Base.d.ts:31 + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: core/build/field/types/Base.d.ts:9 + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: core/build/field/types/Base.d.ts:25 + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: core/build/field/types/Base.d.ts:13 + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type + +> **type**: `"datetime"` + +Defined in: core/build/field/types/Datetime.d.ts:9 + +Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/Descriptor.md b/docs/content/docs/reference/dpkit/Descriptor.md new file mode 100644 index 00000000..434036a5 --- /dev/null +++ b/docs/content/docs/reference/dpkit/Descriptor.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "Descriptor" +--- + +> **Descriptor** = `Record`\<`string`, `unknown`\> + +Defined in: core/build/general/descriptor/Descriptor.d.ts:1 diff --git a/docs/content/docs/reference/dpkit/Dialect.md b/docs/content/docs/reference/dpkit/Dialect.md new file mode 100644 index 00000000..3547ef7d --- /dev/null +++ b/docs/content/docs/reference/dpkit/Dialect.md @@ -0,0 +1,221 @@ +--- +editUrl: false +next: false +prev: false +title: "Dialect" +--- + +Defined in: core/build/dialect/Dialect.d.ts:7 + +Descriptor that describes the structure of tabular data, such as delimiters, +headers, and other features. Following the Data Package standard: +https://datapackage.org/standard/table-dialect/ + +## Extends + +- [`Metadata`](/reference/dpkit/metadata/) + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### $schema? + +> `optional` **$schema**: `string` + +Defined in: core/build/dialect/Dialect.d.ts:15 + +JSON schema profile URL for validation + +*** + +### commentChar? + +> `optional` **commentChar**: `string` + +Defined in: core/build/dialect/Dialect.d.ts:35 + +Character sequence denoting the start of a comment line + +*** + +### commentRows? + +> `optional` **commentRows**: `number`[] + +Defined in: core/build/dialect/Dialect.d.ts:31 + +Specific rows to be excluded from the data (zero-based) + +*** + +### delimiter? + +> `optional` **delimiter**: `string` + +Defined in: core/build/dialect/Dialect.d.ts:39 + +The character used to separate fields in the data + +*** + +### doubleQuote? + +> `optional` **doubleQuote**: `boolean` + +Defined in: core/build/dialect/Dialect.d.ts:51 + +Controls whether a sequence of two quote characters represents a single quote + +*** + +### escapeChar? + +> `optional` **escapeChar**: `string` + +Defined in: core/build/dialect/Dialect.d.ts:55 + +Character used to escape the delimiter or quote characters + +*** + +### header? + +> `optional` **header**: `boolean` + +Defined in: core/build/dialect/Dialect.d.ts:19 + +Whether the file includes a header row with field names + +*** + +### headerJoin? + +> `optional` **headerJoin**: `string` + +Defined in: core/build/dialect/Dialect.d.ts:27 + +The character used to join multi-line headers + +*** + +### headerRows? + +> `optional` **headerRows**: `number`[] + +Defined in: core/build/dialect/Dialect.d.ts:23 + +Row numbers (zero-based) that are considered header rows + +*** + +### itemKeys? + +> `optional` **itemKeys**: `string`[] + +Defined in: core/build/dialect/Dialect.d.ts:76 + +For object-based data items, specifies which object properties to extract as values + +*** + +### itemType? + +> `optional` **itemType**: `"object"` \| `"array"` + +Defined in: core/build/dialect/Dialect.d.ts:72 + +The type of data item in the source: 'array' for rows represented as arrays, +or 'object' for rows represented as objects + +*** + +### lineTerminator? + +> `optional` **lineTerminator**: `string` + +Defined in: core/build/dialect/Dialect.d.ts:43 + +Character sequence used to terminate rows + +*** + +### name? + +> `optional` **name**: `string` + +Defined in: core/build/dialect/Dialect.d.ts:11 + +The name of this dialect + +*** + +### nullSequence? + +> `optional` **nullSequence**: `string` + +Defined in: core/build/dialect/Dialect.d.ts:59 + +Character sequence representing null or missing values in the data + +*** + +### property? + +> `optional` **property**: `string` + +Defined in: core/build/dialect/Dialect.d.ts:67 + +For JSON data, the property name containing the data array + +*** + +### quoteChar? + +> `optional` **quoteChar**: `string` + +Defined in: core/build/dialect/Dialect.d.ts:47 + +Character used to quote fields + +*** + +### sheetName? + +> `optional` **sheetName**: `string` + +Defined in: core/build/dialect/Dialect.d.ts:84 + +For spreadsheet data, the sheet name to read + +*** + +### sheetNumber? + +> `optional` **sheetNumber**: `number` + +Defined in: core/build/dialect/Dialect.d.ts:80 + +For spreadsheet data, the sheet number to read (zero-based) + +*** + +### skipInitialSpace? + +> `optional` **skipInitialSpace**: `boolean` + +Defined in: core/build/dialect/Dialect.d.ts:63 + +Whether to ignore whitespace immediately following the delimiter + +*** + +### table? + +> `optional` **table**: `string` + +Defined in: core/build/dialect/Dialect.d.ts:88 + +For database sources, the table name to read diff --git a/docs/content/docs/reference/dpkit/Dpkit.md b/docs/content/docs/reference/dpkit/Dpkit.md new file mode 100644 index 00000000..1074bcbf --- /dev/null +++ b/docs/content/docs/reference/dpkit/Dpkit.md @@ -0,0 +1,44 @@ +--- +editUrl: false +next: false +prev: false +title: "Dpkit" +--- + +Defined in: [dpkit/plugin.ts:14](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/dpkit/plugin.ts#L14) + +## Constructors + +### Constructor + +> **new Dpkit**(): `Dpkit` + +#### Returns + +`Dpkit` + +## Properties + +### plugins + +> **plugins**: [`TablePlugin`](/reference/dpkit/tableplugin/)[] = `[]` + +Defined in: [dpkit/plugin.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/dpkit/plugin.ts#L15) + +## Methods + +### register() + +> **register**(`PluginClass`): `void` + +Defined in: [dpkit/plugin.ts:17](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/dpkit/plugin.ts#L17) + +#### Parameters + +##### PluginClass + +() => [`TablePlugin`](/reference/dpkit/tableplugin/) + +#### Returns + +`void` diff --git a/docs/content/docs/reference/dpkit/DurationConstraints.md b/docs/content/docs/reference/dpkit/DurationConstraints.md new file mode 100644 index 00000000..0786f0ee --- /dev/null +++ b/docs/content/docs/reference/dpkit/DurationConstraints.md @@ -0,0 +1,73 @@ +--- +editUrl: false +next: false +prev: false +title: "DurationConstraints" +--- + +Defined in: core/build/field/types/Duration.d.ts:14 + +Duration-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] + +Defined in: core/build/field/types/Duration.d.ts:27 + +Restrict values to a specified set of durations +Should be in ISO 8601 duration format + +*** + +### maximum? + +> `optional` **maximum**: `string` + +Defined in: core/build/field/types/Duration.d.ts:22 + +Maximum allowed duration (ISO 8601 format) + +*** + +### minimum? + +> `optional` **minimum**: `string` + +Defined in: core/build/field/types/Duration.d.ts:18 + +Minimum allowed duration (ISO 8601 format) + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:47 + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:51 + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/DurationField.md b/docs/content/docs/reference/dpkit/DurationField.md new file mode 100644 index 00000000..2b44fc94 --- /dev/null +++ b/docs/content/docs/reference/dpkit/DurationField.md @@ -0,0 +1,128 @@ +--- +editUrl: false +next: false +prev: false +title: "DurationField" +--- + +Defined in: core/build/field/types/Duration.d.ts:5 + +Duration field type (ISO 8601 duration) + +## Extends + +- `BaseField`\<[`DurationConstraints`](/reference/dpkit/durationconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### constraints? + +> `optional` **constraints**: [`DurationConstraints`](/reference/dpkit/durationconstraints/) + +Defined in: core/build/field/types/Base.d.ts:38 + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: core/build/field/types/Base.d.ts:17 + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: core/build/field/types/Base.d.ts:21 + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: core/build/field/types/Base.d.ts:31 + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: core/build/field/types/Base.d.ts:9 + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: core/build/field/types/Base.d.ts:25 + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: core/build/field/types/Base.d.ts:13 + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type + +> **type**: `"duration"` + +Defined in: core/build/field/types/Duration.d.ts:9 + +Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/Field.md b/docs/content/docs/reference/dpkit/Field.md new file mode 100644 index 00000000..de0515f4 --- /dev/null +++ b/docs/content/docs/reference/dpkit/Field.md @@ -0,0 +1,12 @@ +--- +editUrl: false +next: false +prev: false +title: "Field" +--- + +> **Field** = [`StringField`](/reference/dpkit/stringfield/) \| [`NumberField`](/reference/dpkit/numberfield/) \| [`IntegerField`](/reference/dpkit/integerfield/) \| [`BooleanField`](/reference/dpkit/booleanfield/) \| [`ObjectField`](/reference/dpkit/objectfield/) \| [`ArrayField`](/reference/dpkit/arrayfield/) \| [`ListField`](/reference/dpkit/listfield/) \| [`DateField`](/reference/dpkit/datefield/) \| [`TimeField`](/reference/dpkit/timefield/) \| [`DatetimeField`](/reference/dpkit/datetimefield/) \| [`YearField`](/reference/dpkit/yearfield/) \| [`YearmonthField`](/reference/dpkit/yearmonthfield/) \| [`DurationField`](/reference/dpkit/durationfield/) \| [`GeopointField`](/reference/dpkit/geopointfield/) \| [`GeojsonField`](/reference/dpkit/geojsonfield/) \| [`AnyField`](/reference/dpkit/anyfield/) + +Defined in: core/build/field/Field.d.ts:5 + +A Table Schema field diff --git a/docs/content/docs/reference/dpkit/FolderPlugin.md b/docs/content/docs/reference/dpkit/FolderPlugin.md new file mode 100644 index 00000000..9fb52de8 --- /dev/null +++ b/docs/content/docs/reference/dpkit/FolderPlugin.md @@ -0,0 +1,44 @@ +--- +editUrl: false +next: false +prev: false +title: "FolderPlugin" +--- + +Defined in: folder/build/plugin.d.ts:2 + +## Implements + +- [`Plugin`](/reference/dpkit/plugin/) + +## Constructors + +### Constructor + +> **new FolderPlugin**(): `FolderPlugin` + +#### Returns + +`FolderPlugin` + +## Methods + +### loadPackage() + +> **loadPackage**(`source`): `Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> + +Defined in: folder/build/plugin.d.ts:3 + +#### Parameters + +##### source + +`string` + +#### Returns + +`Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> + +#### Implementation of + +[`Plugin`](/reference/dpkit/plugin/).[`loadPackage`](/reference/dpkit/plugin/#loadpackage) diff --git a/docs/content/docs/reference/dpkit/ForeignKey.md b/docs/content/docs/reference/dpkit/ForeignKey.md new file mode 100644 index 00000000..03d8eb8f --- /dev/null +++ b/docs/content/docs/reference/dpkit/ForeignKey.md @@ -0,0 +1,43 @@ +--- +editUrl: false +next: false +prev: false +title: "ForeignKey" +--- + +Defined in: core/build/schema/ForeignKey.d.ts:5 + +Foreign key definition for Table Schema +Based on the specification at https://datapackage.org/standard/table-schema/#foreign-keys + +## Properties + +### fields + +> **fields**: `string`[] + +Defined in: core/build/schema/ForeignKey.d.ts:9 + +Source field(s) in this schema + +*** + +### reference + +> **reference**: `object` + +Defined in: core/build/schema/ForeignKey.d.ts:13 + +Reference to fields in another resource + +#### fields + +> **fields**: `string`[] + +Target field(s) in the referenced resource + +#### resource? + +> `optional` **resource**: `string` + +Target resource name (optional) diff --git a/docs/content/docs/reference/dpkit/GeojsonConstraints.md b/docs/content/docs/reference/dpkit/GeojsonConstraints.md new file mode 100644 index 00000000..e2ecefa5 --- /dev/null +++ b/docs/content/docs/reference/dpkit/GeojsonConstraints.md @@ -0,0 +1,53 @@ +--- +editUrl: false +next: false +prev: false +title: "GeojsonConstraints" +--- + +Defined in: core/build/field/types/Geojson.d.ts:20 + +GeoJSON-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] \| `Record`\<`string`, `any`\>[] + +Defined in: core/build/field/types/Geojson.d.ts:25 + +Restrict values to a specified set of GeoJSON objects +Serialized as strings or GeoJSON object literals + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:47 + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:51 + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/GeojsonField.md b/docs/content/docs/reference/dpkit/GeojsonField.md new file mode 100644 index 00000000..81eb6c9f --- /dev/null +++ b/docs/content/docs/reference/dpkit/GeojsonField.md @@ -0,0 +1,140 @@ +--- +editUrl: false +next: false +prev: false +title: "GeojsonField" +--- + +Defined in: core/build/field/types/Geojson.d.ts:5 + +GeoJSON field type + +## Extends + +- `BaseField`\<[`GeojsonConstraints`](/reference/dpkit/geojsonconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### constraints? + +> `optional` **constraints**: [`GeojsonConstraints`](/reference/dpkit/geojsonconstraints/) + +Defined in: core/build/field/types/Base.d.ts:38 + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: core/build/field/types/Base.d.ts:17 + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: core/build/field/types/Base.d.ts:21 + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### format? + +> `optional` **format**: `"default"` \| `"topojson"` + +Defined in: core/build/field/types/Geojson.d.ts:15 + +Format of the geojson +- default: standard GeoJSON +- topojson: TopoJSON format + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: core/build/field/types/Base.d.ts:31 + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: core/build/field/types/Base.d.ts:9 + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: core/build/field/types/Base.d.ts:25 + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: core/build/field/types/Base.d.ts:13 + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type + +> **type**: `"geojson"` + +Defined in: core/build/field/types/Geojson.d.ts:9 + +Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/GeopointConstraints.md b/docs/content/docs/reference/dpkit/GeopointConstraints.md new file mode 100644 index 00000000..fe886487 --- /dev/null +++ b/docs/content/docs/reference/dpkit/GeopointConstraints.md @@ -0,0 +1,53 @@ +--- +editUrl: false +next: false +prev: false +title: "GeopointConstraints" +--- + +Defined in: core/build/field/types/Geopoint.d.ts:21 + +Geopoint-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] \| `number`[][] \| `Record`\<`string`, `number`\>[] + +Defined in: core/build/field/types/Geopoint.d.ts:26 + +Restrict values to a specified set of geopoints +Format depends on the field's format setting + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:47 + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:51 + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/GeopointField.md b/docs/content/docs/reference/dpkit/GeopointField.md new file mode 100644 index 00000000..151943b2 --- /dev/null +++ b/docs/content/docs/reference/dpkit/GeopointField.md @@ -0,0 +1,141 @@ +--- +editUrl: false +next: false +prev: false +title: "GeopointField" +--- + +Defined in: core/build/field/types/Geopoint.d.ts:5 + +Geopoint field type + +## Extends + +- `BaseField`\<[`GeopointConstraints`](/reference/dpkit/geopointconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### constraints? + +> `optional` **constraints**: [`GeopointConstraints`](/reference/dpkit/geopointconstraints/) + +Defined in: core/build/field/types/Base.d.ts:38 + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: core/build/field/types/Base.d.ts:17 + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: core/build/field/types/Base.d.ts:21 + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### format? + +> `optional` **format**: `"object"` \| `"default"` \| `"array"` + +Defined in: core/build/field/types/Geopoint.d.ts:16 + +Format of the geopoint +- default: "lon,lat" string with comma separator +- array: [lon,lat] array +- object: {lon:x, lat:y} object + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: core/build/field/types/Base.d.ts:31 + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: core/build/field/types/Base.d.ts:9 + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: core/build/field/types/Base.d.ts:25 + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: core/build/field/types/Base.d.ts:13 + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type + +> **type**: `"geopoint"` + +Defined in: core/build/field/types/Geopoint.d.ts:9 + +Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/GithubLicense.md b/docs/content/docs/reference/dpkit/GithubLicense.md new file mode 100644 index 00000000..52240c3e --- /dev/null +++ b/docs/content/docs/reference/dpkit/GithubLicense.md @@ -0,0 +1,50 @@ +--- +editUrl: false +next: false +prev: false +title: "GithubLicense" +--- + +Defined in: github/build/package/License.d.ts:4 + +GitHub repository license + +## Properties + +### key + +> **key**: `string` + +Defined in: github/build/package/License.d.ts:8 + +License key + +*** + +### name + +> **name**: `string` + +Defined in: github/build/package/License.d.ts:12 + +License name + +*** + +### spdx\_id + +> **spdx\_id**: `string` + +Defined in: github/build/package/License.d.ts:16 + +License SPDX ID + +*** + +### url + +> **url**: `string` + +Defined in: github/build/package/License.d.ts:20 + +License URL diff --git a/docs/content/docs/reference/dpkit/GithubOwner.md b/docs/content/docs/reference/dpkit/GithubOwner.md new file mode 100644 index 00000000..f2bac26c --- /dev/null +++ b/docs/content/docs/reference/dpkit/GithubOwner.md @@ -0,0 +1,60 @@ +--- +editUrl: false +next: false +prev: false +title: "GithubOwner" +--- + +Defined in: github/build/package/Owner.d.ts:4 + +GitHub repository owner + +## Properties + +### avatar\_url + +> **avatar\_url**: `string` + +Defined in: github/build/package/Owner.d.ts:16 + +Owner avatar URL + +*** + +### html\_url + +> **html\_url**: `string` + +Defined in: github/build/package/Owner.d.ts:20 + +Owner URL + +*** + +### id + +> **id**: `number` + +Defined in: github/build/package/Owner.d.ts:12 + +Owner ID + +*** + +### login + +> **login**: `string` + +Defined in: github/build/package/Owner.d.ts:8 + +Owner login name + +*** + +### type + +> **type**: `"User"` \| `"Organization"` + +Defined in: github/build/package/Owner.d.ts:24 + +Owner type (User/Organization) diff --git a/docs/content/docs/reference/dpkit/GithubPackage.md b/docs/content/docs/reference/dpkit/GithubPackage.md new file mode 100644 index 00000000..155dece1 --- /dev/null +++ b/docs/content/docs/reference/dpkit/GithubPackage.md @@ -0,0 +1,224 @@ +--- +editUrl: false +next: false +prev: false +title: "GithubPackage" +--- + +Defined in: github/build/package/Package.d.ts:7 + +Github repository as a package + +## Properties + +### archived + +> **archived**: `boolean` + +Defined in: github/build/package/Package.d.ts:75 + +Repository is archived + +*** + +### clone\_url + +> **clone\_url**: `string` + +Defined in: github/build/package/Package.d.ts:82 + +*** + +### created\_at + +> **created\_at**: `string` + +Defined in: github/build/package/Package.d.ts:31 + +Repository creation date + +*** + +### default\_branch + +> **default\_branch**: `string` + +Defined in: github/build/package/Package.d.ts:63 + +Repository default branch + +*** + +### description + +> **description**: `null` \| `string` + +Defined in: github/build/package/Package.d.ts:27 + +Repository description + +*** + +### full\_name + +> **full\_name**: `string` + +Defined in: github/build/package/Package.d.ts:19 + +Repository full name (owner/name) + +*** + +### git\_url + +> **git\_url**: `string` + +Defined in: github/build/package/Package.d.ts:80 + +*** + +### homepage + +> **homepage**: `null` \| `string` + +Defined in: github/build/package/Package.d.ts:39 + +Repository homepage URL + +*** + +### html\_url + +> **html\_url**: `string` + +Defined in: github/build/package/Package.d.ts:79 + +Repository URLs + +*** + +### id + +> **id**: `number` + +Defined in: github/build/package/Package.d.ts:11 + +Repository identifier + +*** + +### language + +> **language**: `null` \| `string` + +Defined in: github/build/package/Package.d.ts:55 + +Repository language + +*** + +### license + +> **license**: `null` \| [`GithubLicense`](/reference/dpkit/githublicense/) + +Defined in: github/build/package/Package.d.ts:59 + +Repository license + +*** + +### name + +> **name**: `string` + +Defined in: github/build/package/Package.d.ts:15 + +Repository name + +*** + +### owner + +> **owner**: [`GithubOwner`](/reference/dpkit/githubowner/) + +Defined in: github/build/package/Package.d.ts:23 + +Repository owner + +*** + +### private + +> **private**: `boolean` + +Defined in: github/build/package/Package.d.ts:71 + +Repository is private + +*** + +### resources? + +> `optional` **resources**: [`GithubResource`](/reference/dpkit/githubresource/)[] + +Defined in: github/build/package/Package.d.ts:86 + +Repository resources + +*** + +### size + +> **size**: `number` + +Defined in: github/build/package/Package.d.ts:43 + +Repository size in KB + +*** + +### ssh\_url + +> **ssh\_url**: `string` + +Defined in: github/build/package/Package.d.ts:81 + +*** + +### stargazers\_count + +> **stargazers\_count**: `number` + +Defined in: github/build/package/Package.d.ts:47 + +Repository stars count + +*** + +### topics + +> **topics**: `string`[] + +Defined in: github/build/package/Package.d.ts:67 + +Repository topics + +*** + +### updated\_at + +> **updated\_at**: `string` + +Defined in: github/build/package/Package.d.ts:35 + +Repository update date + +*** + +### watchers\_count + +> **watchers\_count**: `number` + +Defined in: github/build/package/Package.d.ts:51 + +Repository watchers count diff --git a/docs/content/docs/reference/dpkit/GithubPlugin.md b/docs/content/docs/reference/dpkit/GithubPlugin.md new file mode 100644 index 00000000..cc0b42f7 --- /dev/null +++ b/docs/content/docs/reference/dpkit/GithubPlugin.md @@ -0,0 +1,44 @@ +--- +editUrl: false +next: false +prev: false +title: "GithubPlugin" +--- + +Defined in: github/build/plugin.d.ts:2 + +## Implements + +- [`Plugin`](/reference/dpkit/plugin/) + +## Constructors + +### Constructor + +> **new GithubPlugin**(): `GithubPlugin` + +#### Returns + +`GithubPlugin` + +## Methods + +### loadPackage() + +> **loadPackage**(`source`): `Promise`\<`undefined` \| \{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> + +Defined in: github/build/plugin.d.ts:3 + +#### Parameters + +##### source + +`string` + +#### Returns + +`Promise`\<`undefined` \| \{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> + +#### Implementation of + +[`Plugin`](/reference/dpkit/plugin/).[`loadPackage`](/reference/dpkit/plugin/#loadpackage) diff --git a/docs/content/docs/reference/dpkit/GithubResource.md b/docs/content/docs/reference/dpkit/GithubResource.md new file mode 100644 index 00000000..88fc0265 --- /dev/null +++ b/docs/content/docs/reference/dpkit/GithubResource.md @@ -0,0 +1,70 @@ +--- +editUrl: false +next: false +prev: false +title: "GithubResource" +--- + +Defined in: github/build/resource/Resource.d.ts:4 + +GitHub repository file content + +## Properties + +### mode + +> **mode**: `string` + +Defined in: github/build/resource/Resource.d.ts:12 + +File mode e.g. `100755` + +*** + +### path + +> **path**: `string` + +Defined in: github/build/resource/Resource.d.ts:8 + +File path within repository + +*** + +### sha + +> **sha**: `string` + +Defined in: github/build/resource/Resource.d.ts:24 + +File SHA-1 + +*** + +### size + +> **size**: `number` + +Defined in: github/build/resource/Resource.d.ts:20 + +File size in bytes + +*** + +### type + +> **type**: `string` + +Defined in: github/build/resource/Resource.d.ts:16 + +File type e.g. `blob` + +*** + +### url + +> **url**: `string` + +Defined in: github/build/resource/Resource.d.ts:28 + +File url on GitHub API diff --git a/docs/content/docs/reference/dpkit/InferDialectOptions.md b/docs/content/docs/reference/dpkit/InferDialectOptions.md new file mode 100644 index 00000000..11888f26 --- /dev/null +++ b/docs/content/docs/reference/dpkit/InferDialectOptions.md @@ -0,0 +1,18 @@ +--- +editUrl: false +next: false +prev: false +title: "InferDialectOptions" +--- + +> **InferDialectOptions** = `object` + +Defined in: table/build/plugin.d.ts:3 + +## Properties + +### sampleBytes? + +> `optional` **sampleBytes**: `number` + +Defined in: table/build/plugin.d.ts:4 diff --git a/docs/content/docs/reference/dpkit/InferSchemaOptions.md b/docs/content/docs/reference/dpkit/InferSchemaOptions.md new file mode 100644 index 00000000..76360f19 --- /dev/null +++ b/docs/content/docs/reference/dpkit/InferSchemaOptions.md @@ -0,0 +1,42 @@ +--- +editUrl: false +next: false +prev: false +title: "InferSchemaOptions" +--- + +> **InferSchemaOptions** = `object` + +Defined in: table/build/schema/infer.d.ts:3 + +## Properties + +### commaDecimal? + +> `optional` **commaDecimal**: `boolean` + +Defined in: table/build/schema/infer.d.ts:6 + +*** + +### confidence? + +> `optional` **confidence**: `number` + +Defined in: table/build/schema/infer.d.ts:5 + +*** + +### monthFirst? + +> `optional` **monthFirst**: `boolean` + +Defined in: table/build/schema/infer.d.ts:7 + +*** + +### sampleRows? + +> `optional` **sampleRows**: `number` + +Defined in: table/build/schema/infer.d.ts:4 diff --git a/docs/content/docs/reference/dpkit/InlinePlugin.md b/docs/content/docs/reference/dpkit/InlinePlugin.md new file mode 100644 index 00000000..d686f6c9 --- /dev/null +++ b/docs/content/docs/reference/dpkit/InlinePlugin.md @@ -0,0 +1,44 @@ +--- +editUrl: false +next: false +prev: false +title: "InlinePlugin" +--- + +Defined in: inline/build/plugin.d.ts:3 + +## Implements + +- [`TablePlugin`](/reference/dpkit/tableplugin/) + +## Constructors + +### Constructor + +> **new InlinePlugin**(): `InlinePlugin` + +#### Returns + +`InlinePlugin` + +## Methods + +### loadTable() + +> **loadTable**(`resource`): `Promise`\<`undefined` \| `LazyDataFrame`\> + +Defined in: inline/build/plugin.d.ts:4 + +#### Parameters + +##### resource + +[`Resource`](/reference/dpkit/resource/) + +#### Returns + +`Promise`\<`undefined` \| `LazyDataFrame`\> + +#### Implementation of + +[`TablePlugin`](/reference/dpkit/tableplugin/).[`loadTable`](/reference/dpkit/tableplugin/#loadtable) diff --git a/docs/content/docs/reference/dpkit/IntegerConstraints.md b/docs/content/docs/reference/dpkit/IntegerConstraints.md new file mode 100644 index 00000000..1082f76c --- /dev/null +++ b/docs/content/docs/reference/dpkit/IntegerConstraints.md @@ -0,0 +1,95 @@ +--- +editUrl: false +next: false +prev: false +title: "IntegerConstraints" +--- + +Defined in: core/build/field/types/Integer.d.ts:35 + +**`Internal`** + +Integer-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] \| `number`[] + +Defined in: core/build/field/types/Integer.d.ts:56 + +Restrict values to a specified set +Can be an array of integers or strings that parse to integers + +*** + +### exclusiveMaximum? + +> `optional` **exclusiveMaximum**: `string` \| `number` + +Defined in: core/build/field/types/Integer.d.ts:51 + +Exclusive maximum allowed value + +*** + +### exclusiveMinimum? + +> `optional` **exclusiveMinimum**: `string` \| `number` + +Defined in: core/build/field/types/Integer.d.ts:47 + +Exclusive minimum allowed value + +*** + +### maximum? + +> `optional` **maximum**: `string` \| `number` + +Defined in: core/build/field/types/Integer.d.ts:43 + +Maximum allowed value + +*** + +### minimum? + +> `optional` **minimum**: `string` \| `number` + +Defined in: core/build/field/types/Integer.d.ts:39 + +Minimum allowed value + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:47 + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:51 + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/IntegerField.md b/docs/content/docs/reference/dpkit/IntegerField.md new file mode 100644 index 00000000..09baeb20 --- /dev/null +++ b/docs/content/docs/reference/dpkit/IntegerField.md @@ -0,0 +1,169 @@ +--- +editUrl: false +next: false +prev: false +title: "IntegerField" +--- + +Defined in: core/build/field/types/Integer.d.ts:5 + +Integer field type + +## Extends + +- `BaseField`\<[`IntegerConstraints`](/reference/dpkit/integerconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### bareNumber? + +> `optional` **bareNumber**: `boolean` + +Defined in: core/build/field/types/Integer.d.ts:17 + +Whether number is presented without currency symbols or percent signs + +*** + +### categories? + +> `optional` **categories**: `number`[] \| `object`[] + +Defined in: core/build/field/types/Integer.d.ts:22 + +Categories for enum values +Can be an array of values or an array of {value, label} objects + +*** + +### categoriesOrdered? + +> `optional` **categoriesOrdered**: `boolean` + +Defined in: core/build/field/types/Integer.d.ts:29 + +Whether categories should be considered to have a natural order + +*** + +### constraints? + +> `optional` **constraints**: [`IntegerConstraints`](/reference/dpkit/integerconstraints/) + +Defined in: core/build/field/types/Base.d.ts:38 + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: core/build/field/types/Base.d.ts:17 + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: core/build/field/types/Base.d.ts:21 + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### groupChar? + +> `optional` **groupChar**: `string` + +Defined in: core/build/field/types/Integer.d.ts:13 + +Character used as thousands separator + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: core/build/field/types/Base.d.ts:31 + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: core/build/field/types/Base.d.ts:9 + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: core/build/field/types/Base.d.ts:25 + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: core/build/field/types/Base.d.ts:13 + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type + +> **type**: `"integer"` + +Defined in: core/build/field/types/Integer.d.ts:9 + +Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/License.md b/docs/content/docs/reference/dpkit/License.md new file mode 100644 index 00000000..1589b67c --- /dev/null +++ b/docs/content/docs/reference/dpkit/License.md @@ -0,0 +1,46 @@ +--- +editUrl: false +next: false +prev: false +title: "License" +--- + +Defined in: core/build/resource/License.d.ts:4 + +License information + +## Properties + +### name? + +> `optional` **name**: `string` + +Defined in: core/build/resource/License.d.ts:9 + +The name of the license + +#### Example + +```ts +"MIT", "Apache-2.0" +``` + +*** + +### path? + +> `optional` **path**: `string` + +Defined in: core/build/resource/License.d.ts:13 + +A URL to the license text + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: core/build/resource/License.d.ts:17 + +Human-readable title of the license diff --git a/docs/content/docs/reference/dpkit/ListConstraints.md b/docs/content/docs/reference/dpkit/ListConstraints.md new file mode 100644 index 00000000..5d9e9f98 --- /dev/null +++ b/docs/content/docs/reference/dpkit/ListConstraints.md @@ -0,0 +1,73 @@ +--- +editUrl: false +next: false +prev: false +title: "ListConstraints" +--- + +Defined in: core/build/field/types/List.d.ts:22 + +List-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] \| `any`[][] + +Defined in: core/build/field/types/List.d.ts:35 + +Restrict values to a specified set of lists +Either as delimited strings or arrays + +*** + +### maxLength? + +> `optional` **maxLength**: `number` + +Defined in: core/build/field/types/List.d.ts:30 + +Maximum number of list items + +*** + +### minLength? + +> `optional` **minLength**: `number` + +Defined in: core/build/field/types/List.d.ts:26 + +Minimum number of list items + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:47 + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:51 + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/ListField.md b/docs/content/docs/reference/dpkit/ListField.md new file mode 100644 index 00000000..bc566887 --- /dev/null +++ b/docs/content/docs/reference/dpkit/ListField.md @@ -0,0 +1,148 @@ +--- +editUrl: false +next: false +prev: false +title: "ListField" +--- + +Defined in: core/build/field/types/List.d.ts:5 + +List field type (primitive values ordered collection) + +## Extends + +- `BaseField`\<[`ListConstraints`](/reference/dpkit/listconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### constraints? + +> `optional` **constraints**: [`ListConstraints`](/reference/dpkit/listconstraints/) + +Defined in: core/build/field/types/Base.d.ts:38 + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### delimiter? + +> `optional` **delimiter**: `string` + +Defined in: core/build/field/types/List.d.ts:13 + +Character used to separate values in the list + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: core/build/field/types/Base.d.ts:17 + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: core/build/field/types/Base.d.ts:21 + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### itemType? + +> `optional` **itemType**: `"string"` \| `"number"` \| `"boolean"` \| `"integer"` \| `"datetime"` \| `"date"` \| `"time"` + +Defined in: core/build/field/types/List.d.ts:17 + +Type of items in the list + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: core/build/field/types/Base.d.ts:31 + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: core/build/field/types/Base.d.ts:9 + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: core/build/field/types/Base.d.ts:25 + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: core/build/field/types/Base.d.ts:13 + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type + +> **type**: `"list"` + +Defined in: core/build/field/types/List.d.ts:9 + +Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/Metadata.md b/docs/content/docs/reference/dpkit/Metadata.md new file mode 100644 index 00000000..5c7a1216 --- /dev/null +++ b/docs/content/docs/reference/dpkit/Metadata.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "Metadata" +--- + +> **Metadata** = `` { [key in `${string}:${string}`]: any } `` + +Defined in: core/build/general/metadata/Metadata.d.ts:1 diff --git a/docs/content/docs/reference/dpkit/MetadataError.md b/docs/content/docs/reference/dpkit/MetadataError.md new file mode 100644 index 00000000..1b98ef9b --- /dev/null +++ b/docs/content/docs/reference/dpkit/MetadataError.md @@ -0,0 +1,130 @@ +--- +editUrl: false +next: false +prev: false +title: "MetadataError" +--- + +Defined in: core/build/general/Error.d.ts:5 + +A descriptor error + +## Extends + +- `ErrorObject` + +## Properties + +### data? + +> `optional` **data**: `unknown` + +Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:83 + +#### Inherited from + +`ErrorObject.data` + +*** + +### instancePath + +> **instancePath**: `string` + +Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:76 + +#### Inherited from + +`ErrorObject.instancePath` + +*** + +### keyword + +> **keyword**: `string` + +Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:75 + +#### Inherited from + +`ErrorObject.keyword` + +*** + +### message? + +> `optional` **message**: `string` + +Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:80 + +#### Inherited from + +`ErrorObject.message` + +*** + +### params + +> **params**: `P` + +Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:78 + +#### Inherited from + +`ErrorObject.params` + +*** + +### parentSchema? + +> `optional` **parentSchema**: `AnySchemaObject` + +Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:82 + +#### Inherited from + +`ErrorObject.parentSchema` + +*** + +### propertyName? + +> `optional` **propertyName**: `string` + +Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:79 + +#### Inherited from + +`ErrorObject.propertyName` + +*** + +### schema? + +> `optional` **schema**: `unknown` + +Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:81 + +#### Inherited from + +`ErrorObject.schema` + +*** + +### schemaPath + +> **schemaPath**: `string` + +Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:77 + +#### Inherited from + +`ErrorObject.schemaPath` + +*** + +### type + +> **type**: `"metadata"` + +Defined in: core/build/general/Error.d.ts:6 diff --git a/docs/content/docs/reference/dpkit/NumberConstraints.md b/docs/content/docs/reference/dpkit/NumberConstraints.md new file mode 100644 index 00000000..5cab828a --- /dev/null +++ b/docs/content/docs/reference/dpkit/NumberConstraints.md @@ -0,0 +1,93 @@ +--- +editUrl: false +next: false +prev: false +title: "NumberConstraints" +--- + +Defined in: core/build/field/types/Number.d.ts:26 + +Number-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] \| `number`[] + +Defined in: core/build/field/types/Number.d.ts:47 + +Restrict values to a specified set +Can be an array of numbers or strings that parse to numbers + +*** + +### exclusiveMaximum? + +> `optional` **exclusiveMaximum**: `string` \| `number` + +Defined in: core/build/field/types/Number.d.ts:42 + +Exclusive maximum allowed value + +*** + +### exclusiveMinimum? + +> `optional` **exclusiveMinimum**: `string` \| `number` + +Defined in: core/build/field/types/Number.d.ts:38 + +Exclusive minimum allowed value + +*** + +### maximum? + +> `optional` **maximum**: `string` \| `number` + +Defined in: core/build/field/types/Number.d.ts:34 + +Maximum allowed value + +*** + +### minimum? + +> `optional` **minimum**: `string` \| `number` + +Defined in: core/build/field/types/Number.d.ts:30 + +Minimum allowed value + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:47 + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:51 + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/NumberField.md b/docs/content/docs/reference/dpkit/NumberField.md new file mode 100644 index 00000000..da28f41d --- /dev/null +++ b/docs/content/docs/reference/dpkit/NumberField.md @@ -0,0 +1,158 @@ +--- +editUrl: false +next: false +prev: false +title: "NumberField" +--- + +Defined in: core/build/field/types/Number.d.ts:5 + +Number field type + +## Extends + +- `BaseField`\<[`NumberConstraints`](/reference/dpkit/numberconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### bareNumber? + +> `optional` **bareNumber**: `boolean` + +Defined in: core/build/field/types/Number.d.ts:21 + +Whether number is presented without currency symbols or percent signs + +*** + +### constraints? + +> `optional` **constraints**: [`NumberConstraints`](/reference/dpkit/numberconstraints/) + +Defined in: core/build/field/types/Base.d.ts:38 + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### decimalChar? + +> `optional` **decimalChar**: `string` + +Defined in: core/build/field/types/Number.d.ts:13 + +Character used as decimal separator + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: core/build/field/types/Base.d.ts:17 + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: core/build/field/types/Base.d.ts:21 + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### groupChar? + +> `optional` **groupChar**: `string` + +Defined in: core/build/field/types/Number.d.ts:17 + +Character used as thousands separator + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: core/build/field/types/Base.d.ts:31 + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: core/build/field/types/Base.d.ts:9 + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: core/build/field/types/Base.d.ts:25 + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: core/build/field/types/Base.d.ts:13 + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type + +> **type**: `"number"` + +Defined in: core/build/field/types/Number.d.ts:9 + +Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/ObjectConstraints.md b/docs/content/docs/reference/dpkit/ObjectConstraints.md new file mode 100644 index 00000000..52452030 --- /dev/null +++ b/docs/content/docs/reference/dpkit/ObjectConstraints.md @@ -0,0 +1,83 @@ +--- +editUrl: false +next: false +prev: false +title: "ObjectConstraints" +--- + +Defined in: core/build/field/types/Object.d.ts:14 + +Object-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] \| `Record`\<`string`, `any`\>[] + +Defined in: core/build/field/types/Object.d.ts:31 + +Restrict values to a specified set of objects +Serialized as JSON strings or object literals + +*** + +### jsonSchema? + +> `optional` **jsonSchema**: `Record`\<`string`, `any`\> + +Defined in: core/build/field/types/Object.d.ts:26 + +JSON Schema object for validating the object structure and properties + +*** + +### maxLength? + +> `optional` **maxLength**: `number` + +Defined in: core/build/field/types/Object.d.ts:22 + +Maximum number of properties + +*** + +### minLength? + +> `optional` **minLength**: `number` + +Defined in: core/build/field/types/Object.d.ts:18 + +Minimum number of properties + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:47 + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:51 + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/ObjectField.md b/docs/content/docs/reference/dpkit/ObjectField.md new file mode 100644 index 00000000..cc431bdd --- /dev/null +++ b/docs/content/docs/reference/dpkit/ObjectField.md @@ -0,0 +1,128 @@ +--- +editUrl: false +next: false +prev: false +title: "ObjectField" +--- + +Defined in: core/build/field/types/Object.d.ts:5 + +Object field type (serialized JSON object) + +## Extends + +- `BaseField`\<[`ObjectConstraints`](/reference/dpkit/objectconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### constraints? + +> `optional` **constraints**: [`ObjectConstraints`](/reference/dpkit/objectconstraints/) + +Defined in: core/build/field/types/Base.d.ts:38 + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: core/build/field/types/Base.d.ts:17 + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: core/build/field/types/Base.d.ts:21 + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: core/build/field/types/Base.d.ts:31 + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: core/build/field/types/Base.d.ts:9 + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: core/build/field/types/Base.d.ts:25 + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: core/build/field/types/Base.d.ts:13 + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type + +> **type**: `"object"` + +Defined in: core/build/field/types/Object.d.ts:9 + +Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/Package.md b/docs/content/docs/reference/dpkit/Package.md new file mode 100644 index 00000000..71cab9ce --- /dev/null +++ b/docs/content/docs/reference/dpkit/Package.md @@ -0,0 +1,168 @@ +--- +editUrl: false +next: false +prev: false +title: "Package" +--- + +Defined in: core/build/package/Package.d.ts:8 + +Data Package interface built on top of the Frictionless Data specification + +## See + +https://datapackage.org/standard/data-package/ + +## Extends + +- [`Metadata`](/reference/dpkit/metadata/) + +## Extended by + +- [`CamtrapPackage`](/reference/dpkit/camtrappackage/) +- [`CamtrapPackage`](/reference/_dpkit/camtrap/camtrappackage/) + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### $schema? + +> `optional` **$schema**: `string` + +Defined in: core/build/package/Package.d.ts:21 + +Package schema URL for validation + +*** + +### contributors? + +> `optional` **contributors**: [`Contributor`](/reference/dpkit/contributor/)[] + +Defined in: core/build/package/Package.d.ts:46 + +List of contributors + +*** + +### created? + +> `optional` **created**: `string` + +Defined in: core/build/package/Package.d.ts:59 + +Create time of the package + +#### Format + +ISO 8601 format + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: core/build/package/Package.d.ts:29 + +A description of the package + +*** + +### homepage? + +> `optional` **homepage**: `string` + +Defined in: core/build/package/Package.d.ts:33 + +A URL for the home page of the package + +*** + +### image? + +> `optional` **image**: `string` + +Defined in: core/build/package/Package.d.ts:63 + +Package image + +*** + +### keywords? + +> `optional` **keywords**: `string`[] + +Defined in: core/build/package/Package.d.ts:54 + +Keywords for the package + +*** + +### licenses? + +> `optional` **licenses**: [`License`](/reference/dpkit/license/)[] + +Defined in: core/build/package/Package.d.ts:42 + +License information + +*** + +### name? + +> `optional` **name**: `string` + +Defined in: core/build/package/Package.d.ts:17 + +Unique package identifier +Should use lowercase alphanumeric characters, periods, hyphens, and underscores + +*** + +### resources + +> **resources**: [`Resource`](/reference/dpkit/resource/)[] + +Defined in: core/build/package/Package.d.ts:12 + +Data resources in this package (required) + +*** + +### sources? + +> `optional` **sources**: [`Source`](/reference/dpkit/source/)[] + +Defined in: core/build/package/Package.d.ts:50 + +Data sources for this package + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: core/build/package/Package.d.ts:25 + +Human-readable title + +*** + +### version? + +> `optional` **version**: `string` + +Defined in: core/build/package/Package.d.ts:38 + +Version of the package using SemVer + +#### Example + +```ts +"1.0.0" +``` diff --git a/docs/content/docs/reference/dpkit/Plugin.md b/docs/content/docs/reference/dpkit/Plugin.md new file mode 100644 index 00000000..8b1d3f00 --- /dev/null +++ b/docs/content/docs/reference/dpkit/Plugin.md @@ -0,0 +1,59 @@ +--- +editUrl: false +next: false +prev: false +title: "Plugin" +--- + +Defined in: core/build/plugin.d.ts:2 + +## Extended by + +- [`TablePlugin`](/reference/dpkit/tableplugin/) +- [`TablePlugin`](/reference/_dpkit/table/tableplugin/) + +## Methods + +### loadPackage()? + +> `optional` **loadPackage**(`source`): `Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> + +Defined in: core/build/plugin.d.ts:3 + +#### Parameters + +##### source + +`string` + +#### Returns + +`Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> + +*** + +### savePackage()? + +> `optional` **savePackage**(`dataPackage`, `options`): `Promise`\<`undefined` \| \{ `path?`: `string`; \}\> + +Defined in: core/build/plugin.d.ts:4 + +#### Parameters + +##### dataPackage + +[`Package`](/reference/dpkit/package/) + +##### options + +###### target + +`string` + +###### withRemote? + +`boolean` + +#### Returns + +`Promise`\<`undefined` \| \{ `path?`: `string`; \}\> diff --git a/docs/content/docs/reference/dpkit/PolarsField.md b/docs/content/docs/reference/dpkit/PolarsField.md new file mode 100644 index 00000000..bcb5a207 --- /dev/null +++ b/docs/content/docs/reference/dpkit/PolarsField.md @@ -0,0 +1,26 @@ +--- +editUrl: false +next: false +prev: false +title: "PolarsField" +--- + +> **PolarsField** = `object` + +Defined in: table/build/field/Field.d.ts:2 + +## Properties + +### name + +> **name**: `string` + +Defined in: table/build/field/Field.d.ts:3 + +*** + +### type + +> **type**: `DataType` + +Defined in: table/build/field/Field.d.ts:4 diff --git a/docs/content/docs/reference/dpkit/PolarsSchema.md b/docs/content/docs/reference/dpkit/PolarsSchema.md new file mode 100644 index 00000000..39bacb1f --- /dev/null +++ b/docs/content/docs/reference/dpkit/PolarsSchema.md @@ -0,0 +1,16 @@ +--- +editUrl: false +next: false +prev: false +title: "PolarsSchema" +--- + +Defined in: table/build/schema/Schema.d.ts:3 + +## Properties + +### fields + +> **fields**: [`PolarsField`](/reference/dpkit/polarsfield/)[] + +Defined in: table/build/schema/Schema.d.ts:4 diff --git a/docs/content/docs/reference/dpkit/Resource.md b/docs/content/docs/reference/dpkit/Resource.md new file mode 100644 index 00000000..7ca1d9ce --- /dev/null +++ b/docs/content/docs/reference/dpkit/Resource.md @@ -0,0 +1,209 @@ +--- +editUrl: false +next: false +prev: false +title: "Resource" +--- + +Defined in: core/build/resource/Resource.d.ts:10 + +Data Resource interface built on top of the Data Package standard and Polars DataFrames + +## See + +https://datapackage.org/standard/data-resource/ + +## Extends + +- [`Metadata`](/reference/dpkit/metadata/) + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### bytes? + +> `optional` **bytes**: `number` + +Defined in: core/build/resource/Resource.d.ts:57 + +Size of the file in bytes + +*** + +### data? + +> `optional` **data**: `unknown` + +Defined in: core/build/resource/Resource.d.ts:25 + +Inline data content instead of referencing an external file +Either path or data must be provided + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: core/build/resource/Resource.d.ts:53 + +A description of the resource + +*** + +### dialect? + +> `optional` **dialect**: `string` \| [`Dialect`](/reference/dpkit/dialect/) + +Defined in: core/build/resource/Resource.d.ts:75 + +Table dialect specification +Describes delimiters, quote characters, etc. + +#### See + +https://datapackage.org/standard/table-dialect/ + +*** + +### encoding? + +> `optional` **encoding**: `string` + +Defined in: core/build/resource/Resource.d.ts:45 + +Character encoding of the resource + +#### Default + +```ts +"utf-8" +``` + +*** + +### format? + +> `optional` **format**: `string` + +Defined in: core/build/resource/Resource.d.ts:35 + +The file format + +#### Example + +```ts +"csv", "json", "xlsx" +``` + +*** + +### hash? + +> `optional` **hash**: `string` + +Defined in: core/build/resource/Resource.d.ts:61 + +Hash of the resource data + +*** + +### licenses? + +> `optional` **licenses**: [`License`](/reference/dpkit/license/)[] + +Defined in: core/build/resource/Resource.d.ts:69 + +License information + +*** + +### mediatype? + +> `optional` **mediatype**: `string` + +Defined in: core/build/resource/Resource.d.ts:40 + +The media type of the resource + +#### Example + +```ts +"text/csv", "application/json" +``` + +*** + +### name + +> **name**: `string` + +Defined in: core/build/resource/Resource.d.ts:15 + +Unique resource identifier +Should use lowercase alphanumeric characters, periods, hyphens, and underscores + +*** + +### path? + +> `optional` **path**: `string` \| `string`[] + +Defined in: core/build/resource/Resource.d.ts:20 + +A reference to the data itself, can be a path URL or array of paths +Either path or data must be provided + +*** + +### schema? + +> `optional` **schema**: `string` \| [`Schema`](/reference/dpkit/schema/) + +Defined in: core/build/resource/Resource.d.ts:81 + +Schema for the tabular data +Describes fields in the table, constraints, etc. + +#### See + +https://datapackage.org/standard/table-schema/ + +*** + +### sources? + +> `optional` **sources**: [`Source`](/reference/dpkit/source/)[] + +Defined in: core/build/resource/Resource.d.ts:65 + +Data sources + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: core/build/resource/Resource.d.ts:49 + +Human-readable title + +*** + +### type? + +> `optional` **type**: `"table"` + +Defined in: core/build/resource/Resource.d.ts:30 + +The resource type + +#### Example + +```ts +"table" +``` diff --git a/docs/content/docs/reference/dpkit/SaveTableOptions.md b/docs/content/docs/reference/dpkit/SaveTableOptions.md new file mode 100644 index 00000000..890b70c7 --- /dev/null +++ b/docs/content/docs/reference/dpkit/SaveTableOptions.md @@ -0,0 +1,26 @@ +--- +editUrl: false +next: false +prev: false +title: "SaveTableOptions" +--- + +> **SaveTableOptions** = `object` + +Defined in: table/build/plugin.d.ts:6 + +## Properties + +### dialect? + +> `optional` **dialect**: [`Dialect`](/reference/dpkit/dialect/) + +Defined in: table/build/plugin.d.ts:8 + +*** + +### path + +> **path**: `string` + +Defined in: table/build/plugin.d.ts:7 diff --git a/docs/content/docs/reference/dpkit/Schema.md b/docs/content/docs/reference/dpkit/Schema.md new file mode 100644 index 00000000..8afa96ec --- /dev/null +++ b/docs/content/docs/reference/dpkit/Schema.md @@ -0,0 +1,93 @@ +--- +editUrl: false +next: false +prev: false +title: "Schema" +--- + +Defined in: core/build/schema/Schema.d.ts:8 + +Table Schema definition +Based on the specification at https://datapackage.org/standard/table-schema/ + +## Extends + +- [`Metadata`](/reference/dpkit/metadata/) + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### $schema? + +> `optional` **$schema**: `string` + +Defined in: core/build/schema/Schema.d.ts:16 + +URL of schema (optional) + +*** + +### fields + +> **fields**: [`Field`](/reference/dpkit/field/)[] + +Defined in: core/build/schema/Schema.d.ts:12 + +Fields in this schema (required) + +*** + +### fieldsMatch? + +> `optional` **fieldsMatch**: `"exact"` \| `"equal"` \| `"subset"` \| `"superset"` \| `"partial"` + +Defined in: core/build/schema/Schema.d.ts:21 + +Field matching rule (optional) +Default: "exact" + +*** + +### foreignKeys? + +> `optional` **foreignKeys**: [`ForeignKey`](/reference/dpkit/foreignkey/)[] + +Defined in: core/build/schema/Schema.d.ts:43 + +Foreign key relationships (optional) + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: core/build/schema/Schema.d.ts:28 + +Values representing missing data (optional) +Default: [""] +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +*** + +### primaryKey? + +> `optional` **primaryKey**: `string`[] + +Defined in: core/build/schema/Schema.d.ts:35 + +Fields uniquely identifying each row (optional) + +*** + +### uniqueKeys? + +> `optional` **uniqueKeys**: `string`[][] + +Defined in: core/build/schema/Schema.d.ts:39 + +Field combinations that must be unique (optional) diff --git a/docs/content/docs/reference/dpkit/Source.md b/docs/content/docs/reference/dpkit/Source.md new file mode 100644 index 00000000..9ff19983 --- /dev/null +++ b/docs/content/docs/reference/dpkit/Source.md @@ -0,0 +1,40 @@ +--- +editUrl: false +next: false +prev: false +title: "Source" +--- + +Defined in: core/build/resource/Source.d.ts:4 + +Source information + +## Properties + +### email? + +> `optional` **email**: `string` + +Defined in: core/build/resource/Source.d.ts:16 + +Email contact for the source + +*** + +### path? + +> `optional` **path**: `string` + +Defined in: core/build/resource/Source.d.ts:12 + +URL or path to the source + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: core/build/resource/Source.d.ts:8 + +Human-readable title of the source diff --git a/docs/content/docs/reference/dpkit/StringConstraints.md b/docs/content/docs/reference/dpkit/StringConstraints.md new file mode 100644 index 00000000..ec523057 --- /dev/null +++ b/docs/content/docs/reference/dpkit/StringConstraints.md @@ -0,0 +1,82 @@ +--- +editUrl: false +next: false +prev: false +title: "StringConstraints" +--- + +Defined in: core/build/field/types/String.d.ts:35 + +String-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] + +Defined in: core/build/field/types/String.d.ts:51 + +Restrict values to a specified set of strings + +*** + +### maxLength? + +> `optional` **maxLength**: `number` + +Defined in: core/build/field/types/String.d.ts:43 + +Maximum string length + +*** + +### minLength? + +> `optional` **minLength**: `number` + +Defined in: core/build/field/types/String.d.ts:39 + +Minimum string length + +*** + +### pattern? + +> `optional` **pattern**: `string` + +Defined in: core/build/field/types/String.d.ts:47 + +Regular expression pattern to match + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:47 + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:51 + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/StringField.md b/docs/content/docs/reference/dpkit/StringField.md new file mode 100644 index 00000000..5c18d63b --- /dev/null +++ b/docs/content/docs/reference/dpkit/StringField.md @@ -0,0 +1,164 @@ +--- +editUrl: false +next: false +prev: false +title: "StringField" +--- + +Defined in: core/build/field/types/String.d.ts:5 + +String field type + +## Extends + +- `BaseField`\<[`StringConstraints`](/reference/dpkit/stringconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### categories? + +> `optional` **categories**: `string`[] \| `object`[] + +Defined in: core/build/field/types/String.d.ts:23 + +Categories for enum values +Can be an array of string values or an array of {value, label} objects + +*** + +### categoriesOrdered? + +> `optional` **categoriesOrdered**: `boolean` + +Defined in: core/build/field/types/String.d.ts:30 + +Whether categories should be considered to have a natural order + +*** + +### constraints? + +> `optional` **constraints**: [`StringConstraints`](/reference/dpkit/stringconstraints/) + +Defined in: core/build/field/types/Base.d.ts:38 + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: core/build/field/types/Base.d.ts:17 + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: core/build/field/types/Base.d.ts:21 + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### format? + +> `optional` **format**: `string` + +Defined in: core/build/field/types/String.d.ts:18 + +Format of the string +- default: any valid string +- email: valid email address +- uri: valid URI +- binary: base64 encoded string +- uuid: valid UUID string + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: core/build/field/types/Base.d.ts:31 + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: core/build/field/types/Base.d.ts:9 + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: core/build/field/types/Base.d.ts:25 + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: core/build/field/types/Base.d.ts:13 + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type + +> **type**: `"string"` + +Defined in: core/build/field/types/String.d.ts:9 + +Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/Table.md b/docs/content/docs/reference/dpkit/Table.md new file mode 100644 index 00000000..eca54474 --- /dev/null +++ b/docs/content/docs/reference/dpkit/Table.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "Table" +--- + +> **Table** = `LazyDataFrame` + +Defined in: table/build/table/Table.d.ts:2 diff --git a/docs/content/docs/reference/dpkit/TableError.md b/docs/content/docs/reference/dpkit/TableError.md new file mode 100644 index 00000000..dfc4625b --- /dev/null +++ b/docs/content/docs/reference/dpkit/TableError.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "TableError" +--- + +> **TableError** = `FieldsMissingError` \| `FieldsExtraError` \| `FieldNameError` \| `FieldTypeError` \| `RowUniqueError` \| `CellTypeError` \| `CellRequiredError` \| `CellMinimumError` \| `CellMaximumError` \| `CellExclusiveMinimumError` \| `CellExclusiveMaximumError` \| `CellMinLengthError` \| `CellMaxLengthError` \| `CellPatternError` \| `CellUniqueError` \| `CellEnumError` + +Defined in: table/build/error/Table.d.ts:5 diff --git a/docs/content/docs/reference/dpkit/TablePlugin.md b/docs/content/docs/reference/dpkit/TablePlugin.md new file mode 100644 index 00000000..2b995334 --- /dev/null +++ b/docs/content/docs/reference/dpkit/TablePlugin.md @@ -0,0 +1,128 @@ +--- +editUrl: false +next: false +prev: false +title: "TablePlugin" +--- + +Defined in: table/build/plugin.d.ts:10 + +## Extends + +- [`Plugin`](/reference/dpkit/plugin/) + +## Methods + +### inferDialect()? + +> `optional` **inferDialect**(`resource`, `options?`): `Promise`\<`undefined` \| [`Dialect`](/reference/dpkit/dialect/)\> + +Defined in: table/build/plugin.d.ts:11 + +#### Parameters + +##### resource + +`Partial`\<[`Resource`](/reference/dpkit/resource/)\> + +##### options? + +[`InferDialectOptions`](/reference/dpkit/inferdialectoptions/) + +#### Returns + +`Promise`\<`undefined` \| [`Dialect`](/reference/dpkit/dialect/)\> + +*** + +### loadPackage()? + +> `optional` **loadPackage**(`source`): `Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> + +Defined in: core/build/plugin.d.ts:3 + +#### Parameters + +##### source + +`string` + +#### Returns + +`Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> + +#### Inherited from + +[`Plugin`](/reference/dpkit/plugin/).[`loadPackage`](/reference/dpkit/plugin/#loadpackage) + +*** + +### loadTable()? + +> `optional` **loadTable**(`resource`): `Promise`\<`undefined` \| `LazyDataFrame`\> + +Defined in: table/build/plugin.d.ts:12 + +#### Parameters + +##### resource + +`Partial`\<[`Resource`](/reference/dpkit/resource/)\> + +#### Returns + +`Promise`\<`undefined` \| `LazyDataFrame`\> + +*** + +### savePackage()? + +> `optional` **savePackage**(`dataPackage`, `options`): `Promise`\<`undefined` \| \{ `path?`: `string`; \}\> + +Defined in: core/build/plugin.d.ts:4 + +#### Parameters + +##### dataPackage + +[`Package`](/reference/dpkit/package/) + +##### options + +###### target + +`string` + +###### withRemote? + +`boolean` + +#### Returns + +`Promise`\<`undefined` \| \{ `path?`: `string`; \}\> + +#### Inherited from + +[`Plugin`](/reference/dpkit/plugin/).[`savePackage`](/reference/dpkit/plugin/#savepackage) + +*** + +### saveTable()? + +> `optional` **saveTable**(`table`, `options`): `Promise`\<`undefined` \| `string`\> + +Defined in: table/build/plugin.d.ts:13 + +#### Parameters + +##### table + +`LazyDataFrame` + +##### options + +[`SaveTableOptions`](/reference/dpkit/savetableoptions/) + +#### Returns + +`Promise`\<`undefined` \| `string`\> diff --git a/docs/content/docs/reference/dpkit/TimeConstraints.md b/docs/content/docs/reference/dpkit/TimeConstraints.md new file mode 100644 index 00000000..3ea1731c --- /dev/null +++ b/docs/content/docs/reference/dpkit/TimeConstraints.md @@ -0,0 +1,73 @@ +--- +editUrl: false +next: false +prev: false +title: "TimeConstraints" +--- + +Defined in: core/build/field/types/Time.d.ts:21 + +Time-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] + +Defined in: core/build/field/types/Time.d.ts:34 + +Restrict values to a specified set of times +Should be in string time format (e.g., "HH:MM:SS") + +*** + +### maximum? + +> `optional` **maximum**: `string` + +Defined in: core/build/field/types/Time.d.ts:29 + +Maximum allowed time value + +*** + +### minimum? + +> `optional` **minimum**: `string` + +Defined in: core/build/field/types/Time.d.ts:25 + +Minimum allowed time value + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:47 + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:51 + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/TimeField.md b/docs/content/docs/reference/dpkit/TimeField.md new file mode 100644 index 00000000..a4b586d3 --- /dev/null +++ b/docs/content/docs/reference/dpkit/TimeField.md @@ -0,0 +1,141 @@ +--- +editUrl: false +next: false +prev: false +title: "TimeField" +--- + +Defined in: core/build/field/types/Time.d.ts:5 + +Time field type + +## Extends + +- `BaseField`\<[`TimeConstraints`](/reference/dpkit/timeconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### constraints? + +> `optional` **constraints**: [`TimeConstraints`](/reference/dpkit/timeconstraints/) + +Defined in: core/build/field/types/Base.d.ts:38 + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: core/build/field/types/Base.d.ts:17 + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: core/build/field/types/Base.d.ts:21 + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### format? + +> `optional` **format**: `string` + +Defined in: core/build/field/types/Time.d.ts:16 + +Format of the time +- default: HH:MM:SS +- any: flexible time parsing (not recommended) +- Or custom strptime/strftime format string + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: core/build/field/types/Base.d.ts:31 + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: core/build/field/types/Base.d.ts:9 + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: core/build/field/types/Base.d.ts:25 + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: core/build/field/types/Base.d.ts:13 + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type + +> **type**: `"time"` + +Defined in: core/build/field/types/Time.d.ts:9 + +Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/YearConstraints.md b/docs/content/docs/reference/dpkit/YearConstraints.md new file mode 100644 index 00000000..45fab8e3 --- /dev/null +++ b/docs/content/docs/reference/dpkit/YearConstraints.md @@ -0,0 +1,73 @@ +--- +editUrl: false +next: false +prev: false +title: "YearConstraints" +--- + +Defined in: core/build/field/types/Year.d.ts:14 + +Year-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] \| `number`[] + +Defined in: core/build/field/types/Year.d.ts:27 + +Restrict values to a specified set of years +Can be an array of numbers or strings that parse to years + +*** + +### maximum? + +> `optional` **maximum**: `number` + +Defined in: core/build/field/types/Year.d.ts:22 + +Maximum allowed year + +*** + +### minimum? + +> `optional` **minimum**: `number` + +Defined in: core/build/field/types/Year.d.ts:18 + +Minimum allowed year + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:47 + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:51 + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/YearField.md b/docs/content/docs/reference/dpkit/YearField.md new file mode 100644 index 00000000..e5704dde --- /dev/null +++ b/docs/content/docs/reference/dpkit/YearField.md @@ -0,0 +1,128 @@ +--- +editUrl: false +next: false +prev: false +title: "YearField" +--- + +Defined in: core/build/field/types/Year.d.ts:5 + +Year field type + +## Extends + +- `BaseField`\<[`YearConstraints`](/reference/dpkit/yearconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### constraints? + +> `optional` **constraints**: [`YearConstraints`](/reference/dpkit/yearconstraints/) + +Defined in: core/build/field/types/Base.d.ts:38 + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: core/build/field/types/Base.d.ts:17 + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: core/build/field/types/Base.d.ts:21 + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: core/build/field/types/Base.d.ts:31 + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: core/build/field/types/Base.d.ts:9 + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: core/build/field/types/Base.d.ts:25 + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: core/build/field/types/Base.d.ts:13 + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type + +> **type**: `"year"` + +Defined in: core/build/field/types/Year.d.ts:9 + +Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/YearmonthConstraints.md b/docs/content/docs/reference/dpkit/YearmonthConstraints.md new file mode 100644 index 00000000..d064d0bc --- /dev/null +++ b/docs/content/docs/reference/dpkit/YearmonthConstraints.md @@ -0,0 +1,73 @@ +--- +editUrl: false +next: false +prev: false +title: "YearmonthConstraints" +--- + +Defined in: core/build/field/types/Yearmonth.d.ts:14 + +Yearmonth-specific constraints + +## Extends + +- `BaseConstraints` + +## Properties + +### enum? + +> `optional` **enum**: `string`[] + +Defined in: core/build/field/types/Yearmonth.d.ts:27 + +Restrict values to a specified set of yearmonths +Should be in string format (e.g., "YYYY-MM") + +*** + +### maximum? + +> `optional` **maximum**: `string` + +Defined in: core/build/field/types/Yearmonth.d.ts:22 + +Maximum allowed yearmonth value (format: YYYY-MM) + +*** + +### minimum? + +> `optional` **minimum**: `string` + +Defined in: core/build/field/types/Yearmonth.d.ts:18 + +Minimum allowed yearmonth value (format: YYYY-MM) + +*** + +### required? + +> `optional` **required**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:47 + +Indicates if field is allowed to be null/empty + +#### Inherited from + +`BaseConstraints.required` + +*** + +### unique? + +> `optional` **unique**: `boolean` + +Defined in: core/build/field/types/Base.d.ts:51 + +Indicates if values must be unique within the column + +#### Inherited from + +`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/YearmonthField.md b/docs/content/docs/reference/dpkit/YearmonthField.md new file mode 100644 index 00000000..aa0db045 --- /dev/null +++ b/docs/content/docs/reference/dpkit/YearmonthField.md @@ -0,0 +1,128 @@ +--- +editUrl: false +next: false +prev: false +title: "YearmonthField" +--- + +Defined in: core/build/field/types/Yearmonth.d.ts:5 + +Year and month field type + +## Extends + +- `BaseField`\<[`YearmonthConstraints`](/reference/dpkit/yearmonthconstraints/)\> + +## Indexable + +\[`key`: `` `${string}:${string}` ``\]: `any` + +## Properties + +### constraints? + +> `optional` **constraints**: [`YearmonthConstraints`](/reference/dpkit/yearmonthconstraints/) + +Defined in: core/build/field/types/Base.d.ts:38 + +Validation constraints applied to values + +#### Inherited from + +`BaseField.constraints` + +*** + +### description? + +> `optional` **description**: `string` + +Defined in: core/build/field/types/Base.d.ts:17 + +Human-readable description + +#### Inherited from + +`BaseField.description` + +*** + +### example? + +> `optional` **example**: `any` + +Defined in: core/build/field/types/Base.d.ts:21 + +Example value for this field + +#### Inherited from + +`BaseField.example` + +*** + +### missingValues? + +> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] + +Defined in: core/build/field/types/Base.d.ts:31 + +Values representing missing data for this field +Can be a simple array of strings or an array of {value, label} objects +where label provides context for why the data is missing + +#### Inherited from + +`BaseField.missingValues` + +*** + +### name + +> **name**: `string` + +Defined in: core/build/field/types/Base.d.ts:9 + +Name of the field matching the column name + +#### Inherited from + +`BaseField.name` + +*** + +### rdfType? + +> `optional` **rdfType**: `string` + +Defined in: core/build/field/types/Base.d.ts:25 + +URI for semantic type (RDF) + +#### Inherited from + +`BaseField.rdfType` + +*** + +### title? + +> `optional` **title**: `string` + +Defined in: core/build/field/types/Base.d.ts:13 + +Human-readable title + +#### Inherited from + +`BaseField.title` + +*** + +### type + +> **type**: `"yearmonth"` + +Defined in: core/build/field/types/Yearmonth.d.ts:9 + +Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/ZenodoCreator.md b/docs/content/docs/reference/dpkit/ZenodoCreator.md new file mode 100644 index 00000000..e66d6424 --- /dev/null +++ b/docs/content/docs/reference/dpkit/ZenodoCreator.md @@ -0,0 +1,48 @@ +--- +editUrl: false +next: false +prev: false +title: "ZenodoCreator" +--- + +Defined in: zenodo/build/package/Creator.d.ts:4 + +Zenodo Creator interface + +## Properties + +### affiliation? + +> `optional` **affiliation**: `string` + +Defined in: zenodo/build/package/Creator.d.ts:12 + +Creator affiliation + +*** + +### identifiers? + +> `optional` **identifiers**: `object`[] + +Defined in: zenodo/build/package/Creator.d.ts:16 + +Creator identifiers (e.g., ORCID) + +#### identifier + +> **identifier**: `string` + +#### scheme + +> **scheme**: `string` + +*** + +### name + +> **name**: `string` + +Defined in: zenodo/build/package/Creator.d.ts:8 + +Creator name (format: Family name, Given names) diff --git a/docs/content/docs/reference/dpkit/ZenodoPackage.md b/docs/content/docs/reference/dpkit/ZenodoPackage.md new file mode 100644 index 00000000..06f7dd9b --- /dev/null +++ b/docs/content/docs/reference/dpkit/ZenodoPackage.md @@ -0,0 +1,170 @@ +--- +editUrl: false +next: false +prev: false +title: "ZenodoPackage" +--- + +Defined in: zenodo/build/package/Package.d.ts:6 + +Zenodo Deposit interface + +## Properties + +### files + +> **files**: [`ZenodoResource`](/reference/dpkit/zenodoresource/)[] + +Defined in: zenodo/build/package/Package.d.ts:85 + +Files associated with the deposit + +*** + +### id + +> **id**: `number` + +Defined in: zenodo/build/package/Package.d.ts:10 + +Deposit identifier + +*** + +### links + +> **links**: `object` + +Defined in: zenodo/build/package/Package.d.ts:14 + +Deposit URL + +#### bucket + +> **bucket**: `string` + +#### discard? + +> `optional` **discard**: `string` + +#### edit? + +> `optional` **edit**: `string` + +#### files + +> **files**: `string` + +#### html + +> **html**: `string` + +#### publish? + +> `optional` **publish**: `string` + +#### self + +> **self**: `string` + +*** + +### metadata + +> **metadata**: `object` + +Defined in: zenodo/build/package/Package.d.ts:26 + +Deposit metadata + +#### access\_right? + +> `optional` **access\_right**: `string` + +Access right, e.g., "open", "embargoed", "restricted", "closed" + +#### communities? + +> `optional` **communities**: `object`[] + +Communities the deposit belongs to + +#### creators + +> **creators**: [`ZenodoCreator`](/reference/dpkit/zenodocreator/)[] + +Creators of the deposit + +#### description + +> **description**: `string` + +Description of the deposit + +#### doi? + +> `optional` **doi**: `string` + +DOI of the deposit + +#### keywords? + +> `optional` **keywords**: `string`[] + +Keywords/tags + +#### license? + +> `optional` **license**: `string` + +License identifier + +#### publication\_date? + +> `optional` **publication\_date**: `string` + +Publication date in ISO format (YYYY-MM-DD) + +#### related\_identifiers? + +> `optional` **related\_identifiers**: `object`[] + +Related identifiers (e.g., DOIs of related works) + +#### title + +> **title**: `string` + +Title of the deposit + +#### upload\_type + +> **upload\_type**: `string` + +Upload type, e.g., "dataset" + +#### version? + +> `optional` **version**: `string` + +Version of the deposit + +*** + +### state + +> **state**: `"unsubmitted"` \| `"inprogress"` \| `"done"` + +Defined in: zenodo/build/package/Package.d.ts:89 + +State of the deposit + +*** + +### submitted + +> **submitted**: `boolean` + +Defined in: zenodo/build/package/Package.d.ts:93 + +Submitted flag diff --git a/docs/content/docs/reference/dpkit/ZenodoPlugin.md b/docs/content/docs/reference/dpkit/ZenodoPlugin.md new file mode 100644 index 00000000..fa41dc66 --- /dev/null +++ b/docs/content/docs/reference/dpkit/ZenodoPlugin.md @@ -0,0 +1,44 @@ +--- +editUrl: false +next: false +prev: false +title: "ZenodoPlugin" +--- + +Defined in: zenodo/build/plugin.d.ts:2 + +## Implements + +- [`Plugin`](/reference/dpkit/plugin/) + +## Constructors + +### Constructor + +> **new ZenodoPlugin**(): `ZenodoPlugin` + +#### Returns + +`ZenodoPlugin` + +## Methods + +### loadPackage() + +> **loadPackage**(`source`): `Promise`\<`undefined` \| \{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> + +Defined in: zenodo/build/plugin.d.ts:3 + +#### Parameters + +##### source + +`string` + +#### Returns + +`Promise`\<`undefined` \| \{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> + +#### Implementation of + +[`Plugin`](/reference/dpkit/plugin/).[`loadPackage`](/reference/dpkit/plugin/#loadpackage) diff --git a/docs/content/docs/reference/dpkit/ZenodoResource.md b/docs/content/docs/reference/dpkit/ZenodoResource.md new file mode 100644 index 00000000..b695eb81 --- /dev/null +++ b/docs/content/docs/reference/dpkit/ZenodoResource.md @@ -0,0 +1,64 @@ +--- +editUrl: false +next: false +prev: false +title: "ZenodoResource" +--- + +Defined in: zenodo/build/resource/Resource.d.ts:4 + +Zenodo File interface + +## Properties + +### checksum + +> **checksum**: `string` + +Defined in: zenodo/build/resource/Resource.d.ts:20 + +File checksum + +*** + +### id + +> **id**: `string` + +Defined in: zenodo/build/resource/Resource.d.ts:8 + +File identifier + +*** + +### key + +> **key**: `string` + +Defined in: zenodo/build/resource/Resource.d.ts:12 + +File key + +*** + +### links + +> **links**: `object` + +Defined in: zenodo/build/resource/Resource.d.ts:24 + +Links related to the file + +#### self + +> **self**: `string` + +*** + +### size + +> **size**: `number` + +Defined in: zenodo/build/resource/Resource.d.ts:16 + +File size in bytes diff --git a/docs/content/docs/reference/dpkit/ZipPlugin.md b/docs/content/docs/reference/dpkit/ZipPlugin.md new file mode 100644 index 00000000..aa10de2c --- /dev/null +++ b/docs/content/docs/reference/dpkit/ZipPlugin.md @@ -0,0 +1,76 @@ +--- +editUrl: false +next: false +prev: false +title: "ZipPlugin" +--- + +Defined in: zip/build/plugin.d.ts:2 + +## Implements + +- [`Plugin`](/reference/dpkit/plugin/) + +## Constructors + +### Constructor + +> **new ZipPlugin**(): `ZipPlugin` + +#### Returns + +`ZipPlugin` + +## Methods + +### loadPackage() + +> **loadPackage**(`source`): `Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> + +Defined in: zip/build/plugin.d.ts:3 + +#### Parameters + +##### source + +`string` + +#### Returns + +`Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> + +#### Implementation of + +[`Plugin`](/reference/dpkit/plugin/).[`loadPackage`](/reference/dpkit/plugin/#loadpackage) + +*** + +### savePackage() + +> **savePackage**(`dataPackage`, `options`): `Promise`\<`undefined` \| \{ `path`: `undefined`; \}\> + +Defined in: zip/build/plugin.d.ts:4 + +#### Parameters + +##### dataPackage + +[`Package`](/reference/dpkit/package/) + +##### options + +###### target + +`string` + +###### withRemote? + +`boolean` + +#### Returns + +`Promise`\<`undefined` \| \{ `path`: `undefined`; \}\> + +#### Implementation of + +[`Plugin`](/reference/dpkit/plugin/).[`savePackage`](/reference/dpkit/plugin/#savepackage) diff --git a/docs/content/docs/reference/dpkit/assertCamtrapPackage.md b/docs/content/docs/reference/dpkit/assertCamtrapPackage.md new file mode 100644 index 00000000..ac8c8edb --- /dev/null +++ b/docs/content/docs/reference/dpkit/assertCamtrapPackage.md @@ -0,0 +1,22 @@ +--- +editUrl: false +next: false +prev: false +title: "assertCamtrapPackage" +--- + +> **assertCamtrapPackage**(`descriptorOrPackage`): `Promise`\<[`CamtrapPackage`](/reference/dpkit/camtrappackage/)\> + +Defined in: camtrap/build/package/assert.d.ts:6 + +Assert a Package descriptor (JSON Object) against its profile + +## Parameters + +### descriptorOrPackage + +[`Package`](/reference/dpkit/package/) | [`Descriptor`](/reference/dpkit/descriptor/) + +## Returns + +`Promise`\<[`CamtrapPackage`](/reference/dpkit/camtrappackage/)\> diff --git a/docs/content/docs/reference/dpkit/assertDialect.md b/docs/content/docs/reference/dpkit/assertDialect.md new file mode 100644 index 00000000..9253280e --- /dev/null +++ b/docs/content/docs/reference/dpkit/assertDialect.md @@ -0,0 +1,22 @@ +--- +editUrl: false +next: false +prev: false +title: "assertDialect" +--- + +> **assertDialect**(`descriptor`): `Promise`\<[`Dialect`](/reference/dpkit/dialect/)\> + +Defined in: core/build/dialect/assert.d.ts:6 + +Assert a Dialect descriptor (JSON Object) against its profile + +## Parameters + +### descriptor + +[`Dialect`](/reference/dpkit/dialect/) | [`Descriptor`](/reference/dpkit/descriptor/) + +## Returns + +`Promise`\<[`Dialect`](/reference/dpkit/dialect/)\> diff --git a/docs/content/docs/reference/dpkit/assertLocalPathVacant.md b/docs/content/docs/reference/dpkit/assertLocalPathVacant.md new file mode 100644 index 00000000..2a88bf98 --- /dev/null +++ b/docs/content/docs/reference/dpkit/assertLocalPathVacant.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "assertLocalPathVacant" +--- + +> **assertLocalPathVacant**(`path`): `Promise`\<`void`\> + +Defined in: file/build/file/path.d.ts:2 + +## Parameters + +### path + +`string` + +## Returns + +`Promise`\<`void`\> diff --git a/docs/content/docs/reference/dpkit/assertPackage.md b/docs/content/docs/reference/dpkit/assertPackage.md new file mode 100644 index 00000000..99276173 --- /dev/null +++ b/docs/content/docs/reference/dpkit/assertPackage.md @@ -0,0 +1,28 @@ +--- +editUrl: false +next: false +prev: false +title: "assertPackage" +--- + +> **assertPackage**(`descriptorOrPackage`, `options?`): `Promise`\<[`Package`](/reference/dpkit/package/)\> + +Defined in: core/build/package/assert.d.ts:6 + +Assert a Package descriptor (JSON Object) against its profile + +## Parameters + +### descriptorOrPackage + +[`Package`](/reference/dpkit/package/) | [`Descriptor`](/reference/dpkit/descriptor/) + +### options? + +#### basepath? + +`string` + +## Returns + +`Promise`\<[`Package`](/reference/dpkit/package/)\> diff --git a/docs/content/docs/reference/dpkit/assertResource.md b/docs/content/docs/reference/dpkit/assertResource.md new file mode 100644 index 00000000..dde7f06e --- /dev/null +++ b/docs/content/docs/reference/dpkit/assertResource.md @@ -0,0 +1,28 @@ +--- +editUrl: false +next: false +prev: false +title: "assertResource" +--- + +> **assertResource**(`descriptorOrResource`, `options?`): `Promise`\<[`Resource`](/reference/dpkit/resource/)\> + +Defined in: core/build/resource/assert.d.ts:6 + +Assert a Resource descriptor (JSON Object) against its profile + +## Parameters + +### descriptorOrResource + +[`Resource`](/reference/dpkit/resource/) | [`Descriptor`](/reference/dpkit/descriptor/) + +### options? + +#### basepath? + +`string` + +## Returns + +`Promise`\<[`Resource`](/reference/dpkit/resource/)\> diff --git a/docs/content/docs/reference/dpkit/assertSchema.md b/docs/content/docs/reference/dpkit/assertSchema.md new file mode 100644 index 00000000..27e5b89f --- /dev/null +++ b/docs/content/docs/reference/dpkit/assertSchema.md @@ -0,0 +1,22 @@ +--- +editUrl: false +next: false +prev: false +title: "assertSchema" +--- + +> **assertSchema**(`descriptor`): `Promise`\<[`Schema`](/reference/dpkit/schema/)\> + +Defined in: core/build/schema/assert.d.ts:6 + +Assert a Schema descriptor (JSON Object) against its profile + +## Parameters + +### descriptor + +[`Descriptor`](/reference/dpkit/descriptor/) | [`Schema`](/reference/dpkit/schema/) + +## Returns + +`Promise`\<[`Schema`](/reference/dpkit/schema/)\> diff --git a/docs/content/docs/reference/dpkit/copyFile.md b/docs/content/docs/reference/dpkit/copyFile.md new file mode 100644 index 00000000..e9d80787 --- /dev/null +++ b/docs/content/docs/reference/dpkit/copyFile.md @@ -0,0 +1,26 @@ +--- +editUrl: false +next: false +prev: false +title: "copyFile" +--- + +> **copyFile**(`options`): `Promise`\<`void`\> + +Defined in: file/build/file/copy.d.ts:1 + +## Parameters + +### options + +#### sourcePath + +`string` + +#### targetPath + +`string` + +## Returns + +`Promise`\<`void`\> diff --git a/docs/content/docs/reference/dpkit/createFolder.md b/docs/content/docs/reference/dpkit/createFolder.md new file mode 100644 index 00000000..562dded3 --- /dev/null +++ b/docs/content/docs/reference/dpkit/createFolder.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "createFolder" +--- + +> **createFolder**(`path`): `Promise`\<`void`\> + +Defined in: folder/build/folder/create.d.ts:1 + +## Parameters + +### path + +`string` + +## Returns + +`Promise`\<`void`\> diff --git a/docs/content/docs/reference/dpkit/denormalizeCkanResource.md b/docs/content/docs/reference/dpkit/denormalizeCkanResource.md new file mode 100644 index 00000000..a242e98a --- /dev/null +++ b/docs/content/docs/reference/dpkit/denormalizeCkanResource.md @@ -0,0 +1,24 @@ +--- +editUrl: false +next: false +prev: false +title: "denormalizeCkanResource" +--- + +> **denormalizeCkanResource**(`resource`): `Partial`\<[`CkanResource`](/reference/dpkit/ckanresource/)\> + +Defined in: ckan/build/resource/process/denormalize.d.ts:8 + +Denormalizes a Frictionless Data Resource to CKAN Resource format + +## Parameters + +### resource + +[`Resource`](/reference/dpkit/resource/) + +## Returns + +`Partial`\<[`CkanResource`](/reference/dpkit/ckanresource/)\> + +Denormalized CKAN Resource object diff --git a/docs/content/docs/reference/dpkit/denormalizeDialect.md b/docs/content/docs/reference/dpkit/denormalizeDialect.md new file mode 100644 index 00000000..30c387ce --- /dev/null +++ b/docs/content/docs/reference/dpkit/denormalizeDialect.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "denormalizeDialect" +--- + +> **denormalizeDialect**(`dialect`): [`Descriptor`](/reference/dpkit/descriptor/) + +Defined in: core/build/dialect/process/denormalize.d.ts:3 + +## Parameters + +### dialect + +[`Dialect`](/reference/dpkit/dialect/) + +## Returns + +[`Descriptor`](/reference/dpkit/descriptor/) diff --git a/docs/content/docs/reference/dpkit/denormalizeGithubResource.md b/docs/content/docs/reference/dpkit/denormalizeGithubResource.md new file mode 100644 index 00000000..f06439b6 --- /dev/null +++ b/docs/content/docs/reference/dpkit/denormalizeGithubResource.md @@ -0,0 +1,25 @@ +--- +editUrl: false +next: false +prev: false +title: "denormalizeGithubResource" +--- + +> **denormalizeGithubResource**(`resource`): `Partial`\<[`GithubResource`](/reference/dpkit/githubresource/)\> + +Defined in: github/build/resource/process/denormalize.d.ts:9 + +Denormalizes a Frictionless Data resource to Github file format +This is primarily used for file uploads/updates + +## Parameters + +### resource + +[`Resource`](/reference/dpkit/resource/) + +## Returns + +`Partial`\<[`GithubResource`](/reference/dpkit/githubresource/)\> + +Partial Github Resource object for API operations diff --git a/docs/content/docs/reference/dpkit/denormalizePackage.md b/docs/content/docs/reference/dpkit/denormalizePackage.md new file mode 100644 index 00000000..0c4ebdd0 --- /dev/null +++ b/docs/content/docs/reference/dpkit/denormalizePackage.md @@ -0,0 +1,26 @@ +--- +editUrl: false +next: false +prev: false +title: "denormalizePackage" +--- + +> **denormalizePackage**(`dataPackage`, `options?`): [`Descriptor`](/reference/dpkit/descriptor/) + +Defined in: core/build/package/process/denormalize.d.ts:3 + +## Parameters + +### dataPackage + +[`Package`](/reference/dpkit/package/) + +### options? + +#### basepath? + +`string` + +## Returns + +[`Descriptor`](/reference/dpkit/descriptor/) diff --git a/docs/content/docs/reference/dpkit/denormalizePath.md b/docs/content/docs/reference/dpkit/denormalizePath.md new file mode 100644 index 00000000..b9928beb --- /dev/null +++ b/docs/content/docs/reference/dpkit/denormalizePath.md @@ -0,0 +1,26 @@ +--- +editUrl: false +next: false +prev: false +title: "denormalizePath" +--- + +> **denormalizePath**(`path`, `options`): `string` + +Defined in: core/build/general/path.d.ts:9 + +## Parameters + +### path + +`string` + +### options + +#### basepath? + +`string` + +## Returns + +`string` diff --git a/docs/content/docs/reference/dpkit/denormalizeResource.md b/docs/content/docs/reference/dpkit/denormalizeResource.md new file mode 100644 index 00000000..ac5f27d6 --- /dev/null +++ b/docs/content/docs/reference/dpkit/denormalizeResource.md @@ -0,0 +1,26 @@ +--- +editUrl: false +next: false +prev: false +title: "denormalizeResource" +--- + +> **denormalizeResource**(`resource`, `options?`): [`Descriptor`](/reference/dpkit/descriptor/) + +Defined in: core/build/resource/process/denormalize.d.ts:3 + +## Parameters + +### resource + +[`Resource`](/reference/dpkit/resource/) + +### options? + +#### basepath? + +`string` + +## Returns + +[`Descriptor`](/reference/dpkit/descriptor/) diff --git a/docs/content/docs/reference/dpkit/denormalizeSchema.md b/docs/content/docs/reference/dpkit/denormalizeSchema.md new file mode 100644 index 00000000..df5afa02 --- /dev/null +++ b/docs/content/docs/reference/dpkit/denormalizeSchema.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "denormalizeSchema" +--- + +> **denormalizeSchema**(`schema`): [`Descriptor`](/reference/dpkit/descriptor/) + +Defined in: core/build/schema/process/denormalize.d.ts:3 + +## Parameters + +### schema + +[`Schema`](/reference/dpkit/schema/) + +## Returns + +[`Descriptor`](/reference/dpkit/descriptor/) diff --git a/docs/content/docs/reference/dpkit/denormalizeZenodoResource.md b/docs/content/docs/reference/dpkit/denormalizeZenodoResource.md new file mode 100644 index 00000000..9e4515da --- /dev/null +++ b/docs/content/docs/reference/dpkit/denormalizeZenodoResource.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "denormalizeZenodoResource" +--- + +> **denormalizeZenodoResource**(`resource`): `Partial`\<[`ZenodoResource`](/reference/dpkit/zenodoresource/)\> + +Defined in: zenodo/build/resource/process/denormalize.d.ts:3 + +## Parameters + +### resource + +[`Resource`](/reference/dpkit/resource/) + +## Returns + +`Partial`\<[`ZenodoResource`](/reference/dpkit/zenodoresource/)\> diff --git a/docs/content/docs/reference/dpkit/dpkit-1.md b/docs/content/docs/reference/dpkit/dpkit-1.md new file mode 100644 index 00000000..f60b2a1c --- /dev/null +++ b/docs/content/docs/reference/dpkit/dpkit-1.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "dpkit" +--- + +> `const` **dpkit**: [`Dpkit`](/reference/dpkit/dpkit/) + +Defined in: [dpkit/plugin.ts:22](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/dpkit/plugin.ts#L22) diff --git a/docs/content/docs/reference/dpkit/getBasepath.md b/docs/content/docs/reference/dpkit/getBasepath.md new file mode 100644 index 00000000..d4430cf7 --- /dev/null +++ b/docs/content/docs/reference/dpkit/getBasepath.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "getBasepath" +--- + +> **getBasepath**(`path`): `string` + +Defined in: core/build/general/path.d.ts:5 + +## Parameters + +### path + +`string` + +## Returns + +`string` diff --git a/docs/content/docs/reference/dpkit/getFilename.md b/docs/content/docs/reference/dpkit/getFilename.md new file mode 100644 index 00000000..2212e6dc --- /dev/null +++ b/docs/content/docs/reference/dpkit/getFilename.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "getFilename" +--- + +> **getFilename**(`path`): `undefined` \| `string` + +Defined in: core/build/general/path.d.ts:4 + +## Parameters + +### path + +`string` + +## Returns + +`undefined` \| `string` diff --git a/docs/content/docs/reference/dpkit/getFormat.md b/docs/content/docs/reference/dpkit/getFormat.md new file mode 100644 index 00000000..3394f45d --- /dev/null +++ b/docs/content/docs/reference/dpkit/getFormat.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "getFormat" +--- + +> **getFormat**(`filename?`): `undefined` \| `string` + +Defined in: core/build/general/path.d.ts:3 + +## Parameters + +### filename? + +`string` + +## Returns + +`undefined` \| `string` diff --git a/docs/content/docs/reference/dpkit/getName.md b/docs/content/docs/reference/dpkit/getName.md new file mode 100644 index 00000000..a674a7a3 --- /dev/null +++ b/docs/content/docs/reference/dpkit/getName.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "getName" +--- + +> **getName**(`filename?`): `undefined` \| `string` + +Defined in: core/build/general/path.d.ts:2 + +## Parameters + +### filename? + +`string` + +## Returns + +`undefined` \| `string` diff --git a/docs/content/docs/reference/dpkit/getPackageBasepath.md b/docs/content/docs/reference/dpkit/getPackageBasepath.md new file mode 100644 index 00000000..520fe63b --- /dev/null +++ b/docs/content/docs/reference/dpkit/getPackageBasepath.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "getPackageBasepath" +--- + +> **getPackageBasepath**(`dataPackage`): `undefined` \| `string` + +Defined in: file/build/package/path.d.ts:2 + +## Parameters + +### dataPackage + +[`Package`](/reference/dpkit/package/) + +## Returns + +`undefined` \| `string` diff --git a/docs/content/docs/reference/dpkit/getPolarsSchema.md b/docs/content/docs/reference/dpkit/getPolarsSchema.md new file mode 100644 index 00000000..a7d9710e --- /dev/null +++ b/docs/content/docs/reference/dpkit/getPolarsSchema.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "getPolarsSchema" +--- + +> **getPolarsSchema**(`typeMapping`): [`PolarsSchema`](/reference/dpkit/polarsschema/) + +Defined in: table/build/schema/Schema.d.ts:6 + +## Parameters + +### typeMapping + +`Record`\<`string`, `DataType`\> + +## Returns + +[`PolarsSchema`](/reference/dpkit/polarsschema/) diff --git a/docs/content/docs/reference/dpkit/getTempFilePath.md b/docs/content/docs/reference/dpkit/getTempFilePath.md new file mode 100644 index 00000000..100e809e --- /dev/null +++ b/docs/content/docs/reference/dpkit/getTempFilePath.md @@ -0,0 +1,22 @@ +--- +editUrl: false +next: false +prev: false +title: "getTempFilePath" +--- + +> **getTempFilePath**(`options?`): `string` + +Defined in: file/build/file/temp.d.ts:4 + +## Parameters + +### options? + +#### persist? + +`boolean` + +## Returns + +`string` diff --git a/docs/content/docs/reference/dpkit/getTempFolderPath.md b/docs/content/docs/reference/dpkit/getTempFolderPath.md new file mode 100644 index 00000000..a04176f1 --- /dev/null +++ b/docs/content/docs/reference/dpkit/getTempFolderPath.md @@ -0,0 +1,22 @@ +--- +editUrl: false +next: false +prev: false +title: "getTempFolderPath" +--- + +> **getTempFolderPath**(`options?`): `string` + +Defined in: folder/build/folder/temp.d.ts:1 + +## Parameters + +### options? + +#### persist? + +`boolean` + +## Returns + +`string` diff --git a/docs/content/docs/reference/dpkit/inferCsvDialect.md b/docs/content/docs/reference/dpkit/inferCsvDialect.md new file mode 100644 index 00000000..bc2adfd5 --- /dev/null +++ b/docs/content/docs/reference/dpkit/inferCsvDialect.md @@ -0,0 +1,24 @@ +--- +editUrl: false +next: false +prev: false +title: "inferCsvDialect" +--- + +> **inferCsvDialect**(`resource`, `options?`): `Promise`\<[`Dialect`](/reference/dpkit/dialect/)\> + +Defined in: csv/build/dialect/infer.d.ts:3 + +## Parameters + +### resource + +`Partial`\<[`Resource`](/reference/dpkit/resource/)\> + +### options? + +[`InferDialectOptions`](/reference/dpkit/inferdialectoptions/) + +## Returns + +`Promise`\<[`Dialect`](/reference/dpkit/dialect/)\> diff --git a/docs/content/docs/reference/dpkit/inferDialect.md b/docs/content/docs/reference/dpkit/inferDialect.md new file mode 100644 index 00000000..f71fb5a8 --- /dev/null +++ b/docs/content/docs/reference/dpkit/inferDialect.md @@ -0,0 +1,24 @@ +--- +editUrl: false +next: false +prev: false +title: "inferDialect" +--- + +> **inferDialect**(`resource`, `options?`): `Promise`\<[`Dialect`](/reference/dpkit/dialect/)\> + +Defined in: [dpkit/dialect/infer.ts:7](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/dpkit/dialect/infer.ts#L7) + +## Parameters + +### resource + +`Partial`\<[`Resource`](/reference/dpkit/resource/)\> + +### options? + +[`InferDialectOptions`](/reference/dpkit/inferdialectoptions/) + +## Returns + +`Promise`\<[`Dialect`](/reference/dpkit/dialect/)\> diff --git a/docs/content/docs/reference/dpkit/inferFormat.md b/docs/content/docs/reference/dpkit/inferFormat.md new file mode 100644 index 00000000..1beb120e --- /dev/null +++ b/docs/content/docs/reference/dpkit/inferFormat.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "inferFormat" +--- + +> **inferFormat**(`resource`): `undefined` \| `string` + +Defined in: core/build/resource/infer.d.ts:2 + +## Parameters + +### resource + +`Partial`\<[`Resource`](/reference/dpkit/resource/)\> + +## Returns + +`undefined` \| `string` diff --git a/docs/content/docs/reference/dpkit/inferSchema.md b/docs/content/docs/reference/dpkit/inferSchema.md new file mode 100644 index 00000000..68633ff6 --- /dev/null +++ b/docs/content/docs/reference/dpkit/inferSchema.md @@ -0,0 +1,24 @@ +--- +editUrl: false +next: false +prev: false +title: "inferSchema" +--- + +> **inferSchema**(`table`, `options?`): `Promise`\<[`Schema`](/reference/dpkit/schema/)\> + +Defined in: table/build/schema/infer.d.ts:9 + +## Parameters + +### table + +`LazyDataFrame` + +### options? + +[`InferSchemaOptions`](/reference/dpkit/inferschemaoptions/) + +## Returns + +`Promise`\<[`Schema`](/reference/dpkit/schema/)\> diff --git a/docs/content/docs/reference/dpkit/inspectField.md b/docs/content/docs/reference/dpkit/inspectField.md new file mode 100644 index 00000000..793c7248 --- /dev/null +++ b/docs/content/docs/reference/dpkit/inspectField.md @@ -0,0 +1,38 @@ +--- +editUrl: false +next: false +prev: false +title: "inspectField" +--- + +> **inspectField**(`field`, `options`): `object` + +Defined in: table/build/field/inspect.d.ts:5 + +## Parameters + +### field + +[`Field`](/reference/dpkit/field/) + +### options + +#### errorTable + +`LazyDataFrame` + +#### polarsField + +[`PolarsField`](/reference/dpkit/polarsfield/) + +## Returns + +`object` + +### errors + +> **errors**: [`TableError`](/reference/dpkit/tableerror/)[] + +### errorTable + +> **errorTable**: `LazyDataFrame` diff --git a/docs/content/docs/reference/dpkit/inspectTable.md b/docs/content/docs/reference/dpkit/inspectTable.md new file mode 100644 index 00000000..67cee583 --- /dev/null +++ b/docs/content/docs/reference/dpkit/inspectTable.md @@ -0,0 +1,34 @@ +--- +editUrl: false +next: false +prev: false +title: "inspectTable" +--- + +> **inspectTable**(`table`, `options?`): `Promise`\<[`TableError`](/reference/dpkit/tableerror/)[]\> + +Defined in: table/build/table/inspect.d.ts:4 + +## Parameters + +### table + +`LazyDataFrame` + +### options? + +#### invalidRowsLimit? + +`number` + +#### sampleRows? + +`number` + +#### schema? + +[`Schema`](/reference/dpkit/schema/) + +## Returns + +`Promise`\<[`TableError`](/reference/dpkit/tableerror/)[]\> diff --git a/docs/content/docs/reference/dpkit/isDescriptor.md b/docs/content/docs/reference/dpkit/isDescriptor.md new file mode 100644 index 00000000..320599af --- /dev/null +++ b/docs/content/docs/reference/dpkit/isDescriptor.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "isDescriptor" +--- + +> **isDescriptor**(`value`): `value is Descriptor` + +Defined in: core/build/general/descriptor/Descriptor.d.ts:2 + +## Parameters + +### value + +`unknown` + +## Returns + +`value is Descriptor` diff --git a/docs/content/docs/reference/dpkit/isLocalPathExist.md b/docs/content/docs/reference/dpkit/isLocalPathExist.md new file mode 100644 index 00000000..24ee3d3b --- /dev/null +++ b/docs/content/docs/reference/dpkit/isLocalPathExist.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "isLocalPathExist" +--- + +> **isLocalPathExist**(`path`): `Promise`\<`boolean`\> + +Defined in: file/build/file/path.d.ts:1 + +## Parameters + +### path + +`string` + +## Returns + +`Promise`\<`boolean`\> diff --git a/docs/content/docs/reference/dpkit/isRemotePath.md b/docs/content/docs/reference/dpkit/isRemotePath.md new file mode 100644 index 00000000..cc298b82 --- /dev/null +++ b/docs/content/docs/reference/dpkit/isRemotePath.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "isRemotePath" +--- + +> **isRemotePath**(`path`): `boolean` + +Defined in: core/build/general/path.d.ts:1 + +## Parameters + +### path + +`string` + +## Returns + +`boolean` diff --git a/docs/content/docs/reference/dpkit/loadCsvTable.md b/docs/content/docs/reference/dpkit/loadCsvTable.md new file mode 100644 index 00000000..a5a50f41 --- /dev/null +++ b/docs/content/docs/reference/dpkit/loadCsvTable.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "loadCsvTable" +--- + +> **loadCsvTable**(`resource`): `Promise`\<`LazyDataFrame`\> + +Defined in: csv/build/table/load.d.ts:2 + +## Parameters + +### resource + +`Partial`\<[`Resource`](/reference/dpkit/resource/)\> + +## Returns + +`Promise`\<`LazyDataFrame`\> diff --git a/docs/content/docs/reference/dpkit/loadDescriptor.md b/docs/content/docs/reference/dpkit/loadDescriptor.md new file mode 100644 index 00000000..ec51455e --- /dev/null +++ b/docs/content/docs/reference/dpkit/loadDescriptor.md @@ -0,0 +1,30 @@ +--- +editUrl: false +next: false +prev: false +title: "loadDescriptor" +--- + +> **loadDescriptor**(`path`, `options?`): `Promise`\<\{ `basepath`: `string`; `descriptor`: `Record`\<`string`, `any`\>; \}\> + +Defined in: core/build/general/descriptor/load.d.ts:6 + +Load a descriptor (JSON Object) from a file or URL +Uses dynamic imports to work in both Node.js and browser environments +Supports HTTP, HTTPS, FTP, and FTPS protocols + +## Parameters + +### path + +`string` + +### options? + +#### onlyRemote? + +`boolean` + +## Returns + +`Promise`\<\{ `basepath`: `string`; `descriptor`: `Record`\<`string`, `any`\>; \}\> diff --git a/docs/content/docs/reference/dpkit/loadDialect.md b/docs/content/docs/reference/dpkit/loadDialect.md new file mode 100644 index 00000000..1a373207 --- /dev/null +++ b/docs/content/docs/reference/dpkit/loadDialect.md @@ -0,0 +1,23 @@ +--- +editUrl: false +next: false +prev: false +title: "loadDialect" +--- + +> **loadDialect**(`path`): `Promise`\<[`Dialect`](/reference/dpkit/dialect/)\> + +Defined in: core/build/dialect/load.d.ts:5 + +Load a Dialect descriptor (JSON Object) from a file or URL +Ensures the descriptor is valid against its profile + +## Parameters + +### path + +`string` + +## Returns + +`Promise`\<[`Dialect`](/reference/dpkit/dialect/)\> diff --git a/docs/content/docs/reference/dpkit/loadFile.md b/docs/content/docs/reference/dpkit/loadFile.md new file mode 100644 index 00000000..f3b2ec01 --- /dev/null +++ b/docs/content/docs/reference/dpkit/loadFile.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "loadFile" +--- + +> **loadFile**(`path`): `Promise`\<`Buffer`\<`ArrayBufferLike`\>\> + +Defined in: file/build/file/load.d.ts:1 + +## Parameters + +### path + +`string` + +## Returns + +`Promise`\<`Buffer`\<`ArrayBufferLike`\>\> diff --git a/docs/content/docs/reference/dpkit/loadFileStream.md b/docs/content/docs/reference/dpkit/loadFileStream.md new file mode 100644 index 00000000..508e43be --- /dev/null +++ b/docs/content/docs/reference/dpkit/loadFileStream.md @@ -0,0 +1,30 @@ +--- +editUrl: false +next: false +prev: false +title: "loadFileStream" +--- + +> **loadFileStream**(`pathOrPaths`, `options?`): `Promise`\<`any`\> + +Defined in: file/build/stream/load.d.ts:2 + +## Parameters + +### pathOrPaths + +`string` | `string`[] + +### options? + +#### index? + +`number` + +#### maxBytes? + +`number` + +## Returns + +`Promise`\<`any`\> diff --git a/docs/content/docs/reference/dpkit/loadInlineTable.md b/docs/content/docs/reference/dpkit/loadInlineTable.md new file mode 100644 index 00000000..c0488bf7 --- /dev/null +++ b/docs/content/docs/reference/dpkit/loadInlineTable.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "loadInlineTable" +--- + +> **loadInlineTable**(`resource`): `Promise`\<`LazyDataFrame`\> + +Defined in: inline/build/table/load.d.ts:2 + +## Parameters + +### resource + +`Partial`\<[`Resource`](/reference/dpkit/resource/)\> + +## Returns + +`Promise`\<`LazyDataFrame`\> diff --git a/docs/content/docs/reference/dpkit/loadPackage.md b/docs/content/docs/reference/dpkit/loadPackage.md new file mode 100644 index 00000000..8922c4ce --- /dev/null +++ b/docs/content/docs/reference/dpkit/loadPackage.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "loadPackage" +--- + +> **loadPackage**(`source`): `Promise`\<[`Package`](/reference/dpkit/package/)\> + +Defined in: [dpkit/package/load.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/dpkit/package/load.ts#L4) + +## Parameters + +### source + +`string` + +## Returns + +`Promise`\<[`Package`](/reference/dpkit/package/)\> diff --git a/docs/content/docs/reference/dpkit/loadPackageDescriptor.md b/docs/content/docs/reference/dpkit/loadPackageDescriptor.md new file mode 100644 index 00000000..304ba551 --- /dev/null +++ b/docs/content/docs/reference/dpkit/loadPackageDescriptor.md @@ -0,0 +1,23 @@ +--- +editUrl: false +next: false +prev: false +title: "loadPackageDescriptor" +--- + +> **loadPackageDescriptor**(`path`): `Promise`\<[`Package`](/reference/dpkit/package/)\> + +Defined in: core/build/package/load.d.ts:5 + +Load a Package descriptor (JSON Object) from a file or URL +Ensures the descriptor is valid against its profile + +## Parameters + +### path + +`string` + +## Returns + +`Promise`\<[`Package`](/reference/dpkit/package/)\> diff --git a/docs/content/docs/reference/dpkit/loadPackageFromCkan.md b/docs/content/docs/reference/dpkit/loadPackageFromCkan.md new file mode 100644 index 00000000..ac8731fb --- /dev/null +++ b/docs/content/docs/reference/dpkit/loadPackageFromCkan.md @@ -0,0 +1,24 @@ +--- +editUrl: false +next: false +prev: false +title: "loadPackageFromCkan" +--- + +> **loadPackageFromCkan**(`datasetUrl`): `Promise`\<\{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> + +Defined in: ckan/build/package/load.d.ts:6 + +Load a package from a CKAN instance + +## Parameters + +### datasetUrl + +`string` + +## Returns + +`Promise`\<\{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> + +Package object and cleanup function diff --git a/docs/content/docs/reference/dpkit/loadPackageFromDatahub.md b/docs/content/docs/reference/dpkit/loadPackageFromDatahub.md new file mode 100644 index 00000000..5ef8f63b --- /dev/null +++ b/docs/content/docs/reference/dpkit/loadPackageFromDatahub.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "loadPackageFromDatahub" +--- + +> **loadPackageFromDatahub**(`datasetUrl`): `Promise`\<[`Package`](/reference/dpkit/package/)\> + +Defined in: datahub/build/package/load.d.ts:1 + +## Parameters + +### datasetUrl + +`string` + +## Returns + +`Promise`\<[`Package`](/reference/dpkit/package/)\> diff --git a/docs/content/docs/reference/dpkit/loadPackageFromFolder.md b/docs/content/docs/reference/dpkit/loadPackageFromFolder.md new file mode 100644 index 00000000..c2edfa5f --- /dev/null +++ b/docs/content/docs/reference/dpkit/loadPackageFromFolder.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "loadPackageFromFolder" +--- + +> **loadPackageFromFolder**(`folderPath`): `Promise`\<[`Package`](/reference/dpkit/package/)\> + +Defined in: folder/build/package/load.d.ts:1 + +## Parameters + +### folderPath + +`string` + +## Returns + +`Promise`\<[`Package`](/reference/dpkit/package/)\> diff --git a/docs/content/docs/reference/dpkit/loadPackageFromGithub.md b/docs/content/docs/reference/dpkit/loadPackageFromGithub.md new file mode 100644 index 00000000..6b8a128d --- /dev/null +++ b/docs/content/docs/reference/dpkit/loadPackageFromGithub.md @@ -0,0 +1,30 @@ +--- +editUrl: false +next: false +prev: false +title: "loadPackageFromGithub" +--- + +> **loadPackageFromGithub**(`repoUrl`, `options?`): `Promise`\<\{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> + +Defined in: github/build/package/load.d.ts:6 + +Load a package from a Github repository + +## Parameters + +### repoUrl + +`string` + +### options? + +#### apiKey? + +`string` + +## Returns + +`Promise`\<\{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> + +Package object diff --git a/docs/content/docs/reference/dpkit/loadPackageFromZenodo.md b/docs/content/docs/reference/dpkit/loadPackageFromZenodo.md new file mode 100644 index 00000000..5dcd0b3c --- /dev/null +++ b/docs/content/docs/reference/dpkit/loadPackageFromZenodo.md @@ -0,0 +1,30 @@ +--- +editUrl: false +next: false +prev: false +title: "loadPackageFromZenodo" +--- + +> **loadPackageFromZenodo**(`datasetUrl`, `options?`): `Promise`\<\{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> + +Defined in: zenodo/build/package/load.d.ts:6 + +Load a package from a Zenodo deposit + +## Parameters + +### datasetUrl + +`string` + +### options? + +#### apiKey? + +`string` + +## Returns + +`Promise`\<\{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> + +Package object diff --git a/docs/content/docs/reference/dpkit/loadPackageFromZip.md b/docs/content/docs/reference/dpkit/loadPackageFromZip.md new file mode 100644 index 00000000..2b18a29d --- /dev/null +++ b/docs/content/docs/reference/dpkit/loadPackageFromZip.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "loadPackageFromZip" +--- + +> **loadPackageFromZip**(`archivePath`): `Promise`\<[`Package`](/reference/dpkit/package/)\> + +Defined in: zip/build/package/load.d.ts:1 + +## Parameters + +### archivePath + +`string` + +## Returns + +`Promise`\<[`Package`](/reference/dpkit/package/)\> diff --git a/docs/content/docs/reference/dpkit/loadProfile.md b/docs/content/docs/reference/dpkit/loadProfile.md new file mode 100644 index 00000000..533a8679 --- /dev/null +++ b/docs/content/docs/reference/dpkit/loadProfile.md @@ -0,0 +1,26 @@ +--- +editUrl: false +next: false +prev: false +title: "loadProfile" +--- + +> **loadProfile**(`path`, `options?`): `Promise`\<[`Descriptor`](/reference/dpkit/descriptor/)\> + +Defined in: core/build/general/profile/load.d.ts:2 + +## Parameters + +### path + +`string` + +### options? + +#### type? + +`string` + +## Returns + +`Promise`\<[`Descriptor`](/reference/dpkit/descriptor/)\> diff --git a/docs/content/docs/reference/dpkit/loadResourceDescriptor.md b/docs/content/docs/reference/dpkit/loadResourceDescriptor.md new file mode 100644 index 00000000..8efad62c --- /dev/null +++ b/docs/content/docs/reference/dpkit/loadResourceDescriptor.md @@ -0,0 +1,23 @@ +--- +editUrl: false +next: false +prev: false +title: "loadResourceDescriptor" +--- + +> **loadResourceDescriptor**(`path`): `Promise`\<[`Resource`](/reference/dpkit/resource/)\> + +Defined in: core/build/resource/load.d.ts:5 + +Load a Resource descriptor (JSON Object) from a file or URL +Ensures the descriptor is valid against its profile + +## Parameters + +### path + +`string` + +## Returns + +`Promise`\<[`Resource`](/reference/dpkit/resource/)\> diff --git a/docs/content/docs/reference/dpkit/loadSchema.md b/docs/content/docs/reference/dpkit/loadSchema.md new file mode 100644 index 00000000..41ac4297 --- /dev/null +++ b/docs/content/docs/reference/dpkit/loadSchema.md @@ -0,0 +1,23 @@ +--- +editUrl: false +next: false +prev: false +title: "loadSchema" +--- + +> **loadSchema**(`path`): `Promise`\<[`Schema`](/reference/dpkit/schema/)\> + +Defined in: core/build/schema/load.d.ts:5 + +Load a Schema descriptor (JSON Object) from a file or URL +Ensures the descriptor is valid against its profile + +## Parameters + +### path + +`string` + +## Returns + +`Promise`\<[`Schema`](/reference/dpkit/schema/)\> diff --git a/docs/content/docs/reference/dpkit/loadTable.md b/docs/content/docs/reference/dpkit/loadTable.md new file mode 100644 index 00000000..8f55178f --- /dev/null +++ b/docs/content/docs/reference/dpkit/loadTable.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "loadTable" +--- + +> **loadTable**(`resource`): `Promise`\<`LazyDataFrame`\> + +Defined in: [dpkit/table/load.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/dpkit/table/load.ts#L5) + +## Parameters + +### resource + +`Partial`\<[`Resource`](/reference/dpkit/resource/)\> + +## Returns + +`Promise`\<`LazyDataFrame`\> diff --git a/docs/content/docs/reference/dpkit/matchField.md b/docs/content/docs/reference/dpkit/matchField.md new file mode 100644 index 00000000..84523784 --- /dev/null +++ b/docs/content/docs/reference/dpkit/matchField.md @@ -0,0 +1,32 @@ +--- +editUrl: false +next: false +prev: false +title: "matchField" +--- + +> **matchField**(`index`, `field`, `schema`, `polarsSchema`): `undefined` \| [`PolarsField`](/reference/dpkit/polarsfield/) + +Defined in: table/build/field/match.d.ts:3 + +## Parameters + +### index + +`number` + +### field + +[`Field`](/reference/dpkit/field/) + +### schema + +[`Schema`](/reference/dpkit/schema/) + +### polarsSchema + +[`PolarsSchema`](/reference/dpkit/polarsschema/) + +## Returns + +`undefined` \| [`PolarsField`](/reference/dpkit/polarsfield/) diff --git a/docs/content/docs/reference/dpkit/mergePackages.md b/docs/content/docs/reference/dpkit/mergePackages.md new file mode 100644 index 00000000..6f8bc116 --- /dev/null +++ b/docs/content/docs/reference/dpkit/mergePackages.md @@ -0,0 +1,28 @@ +--- +editUrl: false +next: false +prev: false +title: "mergePackages" +--- + +> **mergePackages**(`options`): `Promise`\<\{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> + +Defined in: core/build/package/merge.d.ts:5 + +Merges a system data package into a user data package if provided + +## Parameters + +### options + +#### systemPackage + +[`Package`](/reference/dpkit/package/) + +#### userPackagePath? + +`string` + +## Returns + +`Promise`\<\{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> diff --git a/docs/content/docs/reference/dpkit/normalizeCkanSchema.md b/docs/content/docs/reference/dpkit/normalizeCkanSchema.md new file mode 100644 index 00000000..23610c86 --- /dev/null +++ b/docs/content/docs/reference/dpkit/normalizeCkanSchema.md @@ -0,0 +1,24 @@ +--- +editUrl: false +next: false +prev: false +title: "normalizeCkanSchema" +--- + +> **normalizeCkanSchema**(`ckanSchema`): [`Schema`](/reference/dpkit/schema/) + +Defined in: ckan/build/schema/process/normalize.d.ts:8 + +Normalizes a CKAN schema to a Table Schema format + +## Parameters + +### ckanSchema + +[`CkanSchema`](/reference/dpkit/ckanschema/) + +## Returns + +[`Schema`](/reference/dpkit/schema/) + +A normalized Table Schema object diff --git a/docs/content/docs/reference/dpkit/normalizeDialect.md b/docs/content/docs/reference/dpkit/normalizeDialect.md new file mode 100644 index 00000000..b9946198 --- /dev/null +++ b/docs/content/docs/reference/dpkit/normalizeDialect.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "normalizeDialect" +--- + +> **normalizeDialect**(`descriptor`): [`Descriptor`](/reference/dpkit/descriptor/) + +Defined in: core/build/dialect/process/normalize.d.ts:2 + +## Parameters + +### descriptor + +[`Descriptor`](/reference/dpkit/descriptor/) + +## Returns + +[`Descriptor`](/reference/dpkit/descriptor/) diff --git a/docs/content/docs/reference/dpkit/normalizeField.md b/docs/content/docs/reference/dpkit/normalizeField.md new file mode 100644 index 00000000..d8514c32 --- /dev/null +++ b/docs/content/docs/reference/dpkit/normalizeField.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "normalizeField" +--- + +> **normalizeField**(`descriptor`): [`Descriptor`](/reference/dpkit/descriptor/) + +Defined in: core/build/field/process/normalize.d.ts:2 + +## Parameters + +### descriptor + +[`Descriptor`](/reference/dpkit/descriptor/) + +## Returns + +[`Descriptor`](/reference/dpkit/descriptor/) diff --git a/docs/content/docs/reference/dpkit/normalizeGithubResource.md b/docs/content/docs/reference/dpkit/normalizeGithubResource.md new file mode 100644 index 00000000..fbfb545c --- /dev/null +++ b/docs/content/docs/reference/dpkit/normalizeGithubResource.md @@ -0,0 +1,30 @@ +--- +editUrl: false +next: false +prev: false +title: "normalizeGithubResource" +--- + +> **normalizeGithubResource**(`githubResource`, `options`): [`Resource`](/reference/dpkit/resource/) + +Defined in: github/build/resource/process/normalize.d.ts:8 + +Normalizes a Github file to Frictionless Data resource format + +## Parameters + +### githubResource + +[`GithubResource`](/reference/dpkit/githubresource/) + +### options + +#### defaultBranch + +`string` + +## Returns + +[`Resource`](/reference/dpkit/resource/) + +Normalized Resource object diff --git a/docs/content/docs/reference/dpkit/normalizePackage.md b/docs/content/docs/reference/dpkit/normalizePackage.md new file mode 100644 index 00000000..976813a5 --- /dev/null +++ b/docs/content/docs/reference/dpkit/normalizePackage.md @@ -0,0 +1,26 @@ +--- +editUrl: false +next: false +prev: false +title: "normalizePackage" +--- + +> **normalizePackage**(`descriptor`, `options`): [`Descriptor`](/reference/dpkit/descriptor/) + +Defined in: core/build/package/process/normalize.d.ts:2 + +## Parameters + +### descriptor + +[`Descriptor`](/reference/dpkit/descriptor/) + +### options + +#### basepath? + +`string` + +## Returns + +[`Descriptor`](/reference/dpkit/descriptor/) diff --git a/docs/content/docs/reference/dpkit/normalizePath.md b/docs/content/docs/reference/dpkit/normalizePath.md new file mode 100644 index 00000000..17a8d75c --- /dev/null +++ b/docs/content/docs/reference/dpkit/normalizePath.md @@ -0,0 +1,26 @@ +--- +editUrl: false +next: false +prev: false +title: "normalizePath" +--- + +> **normalizePath**(`path`, `options`): `string` + +Defined in: core/build/general/path.d.ts:6 + +## Parameters + +### path + +`string` + +### options + +#### basepath? + +`string` + +## Returns + +`string` diff --git a/docs/content/docs/reference/dpkit/normalizeResource.md b/docs/content/docs/reference/dpkit/normalizeResource.md new file mode 100644 index 00000000..619b0421 --- /dev/null +++ b/docs/content/docs/reference/dpkit/normalizeResource.md @@ -0,0 +1,26 @@ +--- +editUrl: false +next: false +prev: false +title: "normalizeResource" +--- + +> **normalizeResource**(`descriptor`, `options?`): [`Descriptor`](/reference/dpkit/descriptor/) + +Defined in: core/build/resource/process/normalize.d.ts:2 + +## Parameters + +### descriptor + +[`Descriptor`](/reference/dpkit/descriptor/) + +### options? + +#### basepath? + +`string` + +## Returns + +[`Descriptor`](/reference/dpkit/descriptor/) diff --git a/docs/content/docs/reference/dpkit/normalizeSchema.md b/docs/content/docs/reference/dpkit/normalizeSchema.md new file mode 100644 index 00000000..9b9c8744 --- /dev/null +++ b/docs/content/docs/reference/dpkit/normalizeSchema.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "normalizeSchema" +--- + +> **normalizeSchema**(`descriptor`): [`Descriptor`](/reference/dpkit/descriptor/) + +Defined in: core/build/schema/process/normalize.d.ts:2 + +## Parameters + +### descriptor + +[`Descriptor`](/reference/dpkit/descriptor/) + +## Returns + +[`Descriptor`](/reference/dpkit/descriptor/) diff --git a/docs/content/docs/reference/dpkit/normalizeZenodoResource.md b/docs/content/docs/reference/dpkit/normalizeZenodoResource.md new file mode 100644 index 00000000..51762347 --- /dev/null +++ b/docs/content/docs/reference/dpkit/normalizeZenodoResource.md @@ -0,0 +1,52 @@ +--- +editUrl: false +next: false +prev: false +title: "normalizeZenodoResource" +--- + +> **normalizeZenodoResource**(`zenodoResource`): `object` + +Defined in: zenodo/build/resource/process/normalize.d.ts:7 + +Normalizes a Zenodo file to Frictionless Data resource format + +## Parameters + +### zenodoResource + +[`ZenodoResource`](/reference/dpkit/zenodoresource/) + +## Returns + +`object` + +Normalized Resource object + +### bytes + +> **bytes**: `number` + +### format + +> **format**: `undefined` \| `string` + +### hash + +> **hash**: `string` + +### name + +> **name**: `string` + +### path + +> **path**: `string` + +### zenodo:key + +> **zenodo:key**: `string` + +### zenodo:url + +> **zenodo:url**: `string` diff --git a/docs/content/docs/reference/dpkit/parseDescriptor.md b/docs/content/docs/reference/dpkit/parseDescriptor.md new file mode 100644 index 00000000..60ad4bc6 --- /dev/null +++ b/docs/content/docs/reference/dpkit/parseDescriptor.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "parseDescriptor" +--- + +> **parseDescriptor**(`text`): [`Descriptor`](/reference/dpkit/descriptor/) + +Defined in: core/build/general/descriptor/process/parse.d.ts:2 + +## Parameters + +### text + +`string` + +## Returns + +[`Descriptor`](/reference/dpkit/descriptor/) diff --git a/docs/content/docs/reference/dpkit/parseField.md b/docs/content/docs/reference/dpkit/parseField.md new file mode 100644 index 00000000..42a3e45d --- /dev/null +++ b/docs/content/docs/reference/dpkit/parseField.md @@ -0,0 +1,30 @@ +--- +editUrl: false +next: false +prev: false +title: "parseField" +--- + +> **parseField**(`field`, `options?`): `any` + +Defined in: table/build/field/parse.d.ts:3 + +## Parameters + +### field + +[`Field`](/reference/dpkit/field/) + +### options? + +#### expr? + +`Expr` + +#### schema? + +[`Schema`](/reference/dpkit/schema/) + +## Returns + +`any` diff --git a/docs/content/docs/reference/dpkit/prefetchFile.md b/docs/content/docs/reference/dpkit/prefetchFile.md new file mode 100644 index 00000000..dccc3c87 --- /dev/null +++ b/docs/content/docs/reference/dpkit/prefetchFile.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "prefetchFile" +--- + +> **prefetchFile**(`path`): `Promise`\<`string`\> + +Defined in: file/build/file/fetch.d.ts:2 + +## Parameters + +### path + +`string` + +## Returns + +`Promise`\<`string`\> diff --git a/docs/content/docs/reference/dpkit/prefetchFiles.md b/docs/content/docs/reference/dpkit/prefetchFiles.md new file mode 100644 index 00000000..e658974e --- /dev/null +++ b/docs/content/docs/reference/dpkit/prefetchFiles.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "prefetchFiles" +--- + +> **prefetchFiles**(`path?`): `Promise`\<`string`[]\> + +Defined in: file/build/file/fetch.d.ts:1 + +## Parameters + +### path? + +`string` | `string`[] + +## Returns + +`Promise`\<`string`[]\> diff --git a/docs/content/docs/reference/dpkit/processTable.md b/docs/content/docs/reference/dpkit/processTable.md new file mode 100644 index 00000000..c0727330 --- /dev/null +++ b/docs/content/docs/reference/dpkit/processTable.md @@ -0,0 +1,30 @@ +--- +editUrl: false +next: false +prev: false +title: "processTable" +--- + +> **processTable**(`table`, `options?`): `Promise`\<`LazyDataFrame`\> + +Defined in: table/build/table/process.d.ts:5 + +## Parameters + +### table + +`LazyDataFrame` + +### options? + +#### sampleSize? + +`number` + +#### schema? + +[`Schema`](/reference/dpkit/schema/) + +## Returns + +`Promise`\<`LazyDataFrame`\> diff --git a/docs/content/docs/reference/dpkit/readTable.md b/docs/content/docs/reference/dpkit/readTable.md new file mode 100644 index 00000000..a47ba2ea --- /dev/null +++ b/docs/content/docs/reference/dpkit/readTable.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "readTable" +--- + +> **readTable**(`resource`): `Promise`\<`LazyDataFrame`\> + +Defined in: [dpkit/table/read.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/dpkit/table/read.ts#L6) + +## Parameters + +### resource + +`Partial`\<[`Resource`](/reference/dpkit/resource/)\> + +## Returns + +`Promise`\<`LazyDataFrame`\> diff --git a/docs/content/docs/reference/dpkit/saveCsvTable.md b/docs/content/docs/reference/dpkit/saveCsvTable.md new file mode 100644 index 00000000..9088aadc --- /dev/null +++ b/docs/content/docs/reference/dpkit/saveCsvTable.md @@ -0,0 +1,24 @@ +--- +editUrl: false +next: false +prev: false +title: "saveCsvTable" +--- + +> **saveCsvTable**(`table`, `options`): `Promise`\<`string`\> + +Defined in: csv/build/table/save.d.ts:2 + +## Parameters + +### table + +`LazyDataFrame` + +### options + +[`SaveTableOptions`](/reference/dpkit/savetableoptions/) + +## Returns + +`Promise`\<`string`\> diff --git a/docs/content/docs/reference/dpkit/saveDescriptor.md b/docs/content/docs/reference/dpkit/saveDescriptor.md new file mode 100644 index 00000000..53c0c6c5 --- /dev/null +++ b/docs/content/docs/reference/dpkit/saveDescriptor.md @@ -0,0 +1,29 @@ +--- +editUrl: false +next: false +prev: false +title: "saveDescriptor" +--- + +> **saveDescriptor**(`descriptor`, `options`): `Promise`\<`void`\> + +Defined in: core/build/general/descriptor/save.d.ts:6 + +Save a descriptor (JSON Object) to a file path +Works in Node.js environments + +## Parameters + +### descriptor + +[`Descriptor`](/reference/dpkit/descriptor/) + +### options + +#### path + +`string` + +## Returns + +`Promise`\<`void`\> diff --git a/docs/content/docs/reference/dpkit/saveDialect.md b/docs/content/docs/reference/dpkit/saveDialect.md new file mode 100644 index 00000000..3a151371 --- /dev/null +++ b/docs/content/docs/reference/dpkit/saveDialect.md @@ -0,0 +1,29 @@ +--- +editUrl: false +next: false +prev: false +title: "saveDialect" +--- + +> **saveDialect**(`dialect`, `options`): `Promise`\<`void`\> + +Defined in: core/build/dialect/save.d.ts:6 + +Save a Dialect to a file path +Works in Node.js environments + +## Parameters + +### dialect + +[`Dialect`](/reference/dpkit/dialect/) + +### options + +#### path + +`string` + +## Returns + +`Promise`\<`void`\> diff --git a/docs/content/docs/reference/dpkit/saveFile.md b/docs/content/docs/reference/dpkit/saveFile.md new file mode 100644 index 00000000..f1bb4a75 --- /dev/null +++ b/docs/content/docs/reference/dpkit/saveFile.md @@ -0,0 +1,24 @@ +--- +editUrl: false +next: false +prev: false +title: "saveFile" +--- + +> **saveFile**(`path`, `buffer`): `Promise`\<`void`\> + +Defined in: file/build/file/save.d.ts:1 + +## Parameters + +### path + +`string` + +### buffer + +`Buffer` + +## Returns + +`Promise`\<`void`\> diff --git a/docs/content/docs/reference/dpkit/saveFileStream.md b/docs/content/docs/reference/dpkit/saveFileStream.md new file mode 100644 index 00000000..1918ac3d --- /dev/null +++ b/docs/content/docs/reference/dpkit/saveFileStream.md @@ -0,0 +1,26 @@ +--- +editUrl: false +next: false +prev: false +title: "saveFileStream" +--- + +> **saveFileStream**(`stream`, `options`): `Promise`\<`void`\> + +Defined in: file/build/stream/save.d.ts:2 + +## Parameters + +### stream + +`Readable` + +### options + +#### path + +`string` + +## Returns + +`Promise`\<`void`\> diff --git a/docs/content/docs/reference/dpkit/savePackage.md b/docs/content/docs/reference/dpkit/savePackage.md new file mode 100644 index 00000000..d8a53c4a --- /dev/null +++ b/docs/content/docs/reference/dpkit/savePackage.md @@ -0,0 +1,30 @@ +--- +editUrl: false +next: false +prev: false +title: "savePackage" +--- + +> **savePackage**(`dataPackage`, `options`): `Promise`\<`void` \| \{ `path?`: `string`; \}\> + +Defined in: [dpkit/package/save.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/dpkit/package/save.ts#L5) + +## Parameters + +### dataPackage + +[`Package`](/reference/dpkit/package/) + +### options + +#### target + +`string` + +#### withRemote? + +`boolean` + +## Returns + +`Promise`\<`void` \| \{ `path?`: `string`; \}\> diff --git a/docs/content/docs/reference/dpkit/savePackageDescriptor.md b/docs/content/docs/reference/dpkit/savePackageDescriptor.md new file mode 100644 index 00000000..3f76f358 --- /dev/null +++ b/docs/content/docs/reference/dpkit/savePackageDescriptor.md @@ -0,0 +1,29 @@ +--- +editUrl: false +next: false +prev: false +title: "savePackageDescriptor" +--- + +> **savePackageDescriptor**(`dataPackage`, `options`): `Promise`\<`void`\> + +Defined in: core/build/package/save.d.ts:6 + +Save a Package to a file path +Works in Node.js environments + +## Parameters + +### dataPackage + +[`Package`](/reference/dpkit/package/) + +### options + +#### path + +`string` + +## Returns + +`Promise`\<`void`\> diff --git a/docs/content/docs/reference/dpkit/savePackageToCkan.md b/docs/content/docs/reference/dpkit/savePackageToCkan.md new file mode 100644 index 00000000..42e4fc59 --- /dev/null +++ b/docs/content/docs/reference/dpkit/savePackageToCkan.md @@ -0,0 +1,38 @@ +--- +editUrl: false +next: false +prev: false +title: "savePackageToCkan" +--- + +> **savePackageToCkan**(`dataPackage`, `options`): `Promise`\<\{ `datasetUrl`: `string`; `path`: `unknown`; \}\> + +Defined in: ckan/build/package/save.d.ts:2 + +## Parameters + +### dataPackage + +[`Package`](/reference/dpkit/package/) + +### options + +#### apiKey + +`string` + +#### ckanUrl + +`string` + +#### datasetName + +`string` + +#### ownerOrg + +`string` + +## Returns + +`Promise`\<\{ `datasetUrl`: `string`; `path`: `unknown`; \}\> diff --git a/docs/content/docs/reference/dpkit/savePackageToFolder.md b/docs/content/docs/reference/dpkit/savePackageToFolder.md new file mode 100644 index 00000000..8194b922 --- /dev/null +++ b/docs/content/docs/reference/dpkit/savePackageToFolder.md @@ -0,0 +1,30 @@ +--- +editUrl: false +next: false +prev: false +title: "savePackageToFolder" +--- + +> **savePackageToFolder**(`dataPackage`, `options`): `Promise`\<\{ `resources`: [`Descriptor`](/reference/dpkit/descriptor/)[]; \}\> + +Defined in: folder/build/package/save.d.ts:2 + +## Parameters + +### dataPackage + +[`Package`](/reference/dpkit/package/) + +### options + +#### folderPath + +`string` + +#### withRemote? + +`boolean` + +## Returns + +`Promise`\<\{ `resources`: [`Descriptor`](/reference/dpkit/descriptor/)[]; \}\> diff --git a/docs/content/docs/reference/dpkit/savePackageToGithub.md b/docs/content/docs/reference/dpkit/savePackageToGithub.md new file mode 100644 index 00000000..9a1d1686 --- /dev/null +++ b/docs/content/docs/reference/dpkit/savePackageToGithub.md @@ -0,0 +1,38 @@ +--- +editUrl: false +next: false +prev: false +title: "savePackageToGithub" +--- + +> **savePackageToGithub**(`dataPackage`, `options`): `Promise`\<\{ `path`: `string`; `repoUrl`: `string`; \}\> + +Defined in: github/build/package/save.d.ts:7 + +Save a package to a Github repository + +## Parameters + +### dataPackage + +[`Package`](/reference/dpkit/package/) + +### options + +#### apiKey + +`string` + +#### org? + +`string` + +#### repo + +`string` + +## Returns + +`Promise`\<\{ `path`: `string`; `repoUrl`: `string`; \}\> + +Object with the repository URL diff --git a/docs/content/docs/reference/dpkit/savePackageToZenodo.md b/docs/content/docs/reference/dpkit/savePackageToZenodo.md new file mode 100644 index 00000000..6cb2d925 --- /dev/null +++ b/docs/content/docs/reference/dpkit/savePackageToZenodo.md @@ -0,0 +1,34 @@ +--- +editUrl: false +next: false +prev: false +title: "savePackageToZenodo" +--- + +> **savePackageToZenodo**(`dataPackage`, `options`): `Promise`\<\{ `datasetUrl`: `string`; `path`: `string`; \}\> + +Defined in: zenodo/build/package/save.d.ts:7 + +Save a package to Zenodo + +## Parameters + +### dataPackage + +[`Package`](/reference/dpkit/package/) + +### options + +#### apiKey + +`string` + +#### sandbox? + +`boolean` + +## Returns + +`Promise`\<\{ `datasetUrl`: `string`; `path`: `string`; \}\> + +Object with the deposit URL and DOI diff --git a/docs/content/docs/reference/dpkit/savePackageToZip.md b/docs/content/docs/reference/dpkit/savePackageToZip.md new file mode 100644 index 00000000..e3ab78da --- /dev/null +++ b/docs/content/docs/reference/dpkit/savePackageToZip.md @@ -0,0 +1,30 @@ +--- +editUrl: false +next: false +prev: false +title: "savePackageToZip" +--- + +> **savePackageToZip**(`dataPackage`, `options`): `Promise`\<`void`\> + +Defined in: zip/build/package/save.d.ts:2 + +## Parameters + +### dataPackage + +[`Package`](/reference/dpkit/package/) + +### options + +#### archivePath + +`string` + +#### withRemote? + +`boolean` + +## Returns + +`Promise`\<`void`\> diff --git a/docs/content/docs/reference/dpkit/saveResourceDescriptor.md b/docs/content/docs/reference/dpkit/saveResourceDescriptor.md new file mode 100644 index 00000000..7e2b3141 --- /dev/null +++ b/docs/content/docs/reference/dpkit/saveResourceDescriptor.md @@ -0,0 +1,29 @@ +--- +editUrl: false +next: false +prev: false +title: "saveResourceDescriptor" +--- + +> **saveResourceDescriptor**(`resource`, `options`): `Promise`\<`void`\> + +Defined in: core/build/resource/save.d.ts:6 + +Save a Resource to a file path +Works in Node.js environments + +## Parameters + +### resource + +[`Resource`](/reference/dpkit/resource/) + +### options + +#### path + +`string` + +## Returns + +`Promise`\<`void`\> diff --git a/docs/content/docs/reference/dpkit/saveResourceFiles.md b/docs/content/docs/reference/dpkit/saveResourceFiles.md new file mode 100644 index 00000000..2f76e902 --- /dev/null +++ b/docs/content/docs/reference/dpkit/saveResourceFiles.md @@ -0,0 +1,38 @@ +--- +editUrl: false +next: false +prev: false +title: "saveResourceFiles" +--- + +> **saveResourceFiles**(`resource`, `options`): `Promise`\<[`Descriptor`](/reference/dpkit/descriptor/)\> + +Defined in: file/build/resource/save.d.ts:8 + +## Parameters + +### resource + +[`Resource`](/reference/dpkit/resource/) + +### options + +#### basepath? + +`string` + +#### saveFile + +`SaveFile` + +#### withoutFolders? + +`boolean` + +#### withRemote? + +`boolean` + +## Returns + +`Promise`\<[`Descriptor`](/reference/dpkit/descriptor/)\> diff --git a/docs/content/docs/reference/dpkit/saveSchema.md b/docs/content/docs/reference/dpkit/saveSchema.md new file mode 100644 index 00000000..74245e65 --- /dev/null +++ b/docs/content/docs/reference/dpkit/saveSchema.md @@ -0,0 +1,29 @@ +--- +editUrl: false +next: false +prev: false +title: "saveSchema" +--- + +> **saveSchema**(`schema`, `options`): `Promise`\<`void`\> + +Defined in: core/build/schema/save.d.ts:6 + +Save a Schema to a file path +Works in Node.js environments + +## Parameters + +### schema + +[`Schema`](/reference/dpkit/schema/) + +### options + +#### path + +`string` + +## Returns + +`Promise`\<`void`\> diff --git a/docs/content/docs/reference/dpkit/saveTable.md b/docs/content/docs/reference/dpkit/saveTable.md new file mode 100644 index 00000000..abb282ab --- /dev/null +++ b/docs/content/docs/reference/dpkit/saveTable.md @@ -0,0 +1,24 @@ +--- +editUrl: false +next: false +prev: false +title: "saveTable" +--- + +> **saveTable**(`table`, `options`): `Promise`\<`string`\> + +Defined in: [dpkit/table/save.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/dpkit/table/save.ts#L4) + +## Parameters + +### table + +`LazyDataFrame` + +### options + +[`SaveTableOptions`](/reference/dpkit/savetableoptions/) + +## Returns + +`Promise`\<`string`\> diff --git a/docs/content/docs/reference/dpkit/stringifyDescriptor.md b/docs/content/docs/reference/dpkit/stringifyDescriptor.md new file mode 100644 index 00000000..75c6a3ab --- /dev/null +++ b/docs/content/docs/reference/dpkit/stringifyDescriptor.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "stringifyDescriptor" +--- + +> **stringifyDescriptor**(`descriptor`): `string` + +Defined in: core/build/general/descriptor/process/stringify.d.ts:2 + +## Parameters + +### descriptor + +[`Descriptor`](/reference/dpkit/descriptor/) + +## Returns + +`string` diff --git a/docs/content/docs/reference/dpkit/validateDescriptor.md b/docs/content/docs/reference/dpkit/validateDescriptor.md new file mode 100644 index 00000000..ea3812aa --- /dev/null +++ b/docs/content/docs/reference/dpkit/validateDescriptor.md @@ -0,0 +1,30 @@ +--- +editUrl: false +next: false +prev: false +title: "validateDescriptor" +--- + +> **validateDescriptor**(`descriptor`, `options`): `Promise`\<\{ `errors`: [`MetadataError`](/reference/dpkit/metadataerror/)[]; `valid`: `boolean`; \}\> + +Defined in: core/build/general/descriptor/validate.d.ts:8 + +Validate a descriptor (JSON Object) against a JSON Schema +It uses Ajv for JSON Schema validation under the hood +It returns a list of errors (empty if valid) + +## Parameters + +### descriptor + +[`Descriptor`](/reference/dpkit/descriptor/) + +### options + +#### profile + +[`Descriptor`](/reference/dpkit/descriptor/) + +## Returns + +`Promise`\<\{ `errors`: [`MetadataError`](/reference/dpkit/metadataerror/)[]; `valid`: `boolean`; \}\> diff --git a/docs/content/docs/reference/dpkit/validateDialect.md b/docs/content/docs/reference/dpkit/validateDialect.md new file mode 100644 index 00000000..0e1f681e --- /dev/null +++ b/docs/content/docs/reference/dpkit/validateDialect.md @@ -0,0 +1,22 @@ +--- +editUrl: false +next: false +prev: false +title: "validateDialect" +--- + +> **validateDialect**(`descriptorOrDialect`): `Promise`\<\{ `dialect`: `undefined` \| [`Dialect`](/reference/dpkit/dialect/); `errors`: [`MetadataError`](/reference/dpkit/metadataerror/)[]; `valid`: `boolean`; \}\> + +Defined in: core/build/dialect/validate.d.ts:6 + +Validate a Dialect descriptor (JSON Object) against its profile + +## Parameters + +### descriptorOrDialect + +[`Dialect`](/reference/dpkit/dialect/) | [`Descriptor`](/reference/dpkit/descriptor/) + +## Returns + +`Promise`\<\{ `dialect`: `undefined` \| [`Dialect`](/reference/dpkit/dialect/); `errors`: [`MetadataError`](/reference/dpkit/metadataerror/)[]; `valid`: `boolean`; \}\> diff --git a/docs/content/docs/reference/dpkit/validatePackageDescriptor.md b/docs/content/docs/reference/dpkit/validatePackageDescriptor.md new file mode 100644 index 00000000..2f30207d --- /dev/null +++ b/docs/content/docs/reference/dpkit/validatePackageDescriptor.md @@ -0,0 +1,28 @@ +--- +editUrl: false +next: false +prev: false +title: "validatePackageDescriptor" +--- + +> **validatePackageDescriptor**(`descriptorOrPackage`, `options?`): `Promise`\<\{ `dataPackage`: `undefined` \| [`Package`](/reference/dpkit/package/); `errors`: [`MetadataError`](/reference/dpkit/metadataerror/)[]; `valid`: `boolean`; \}\> + +Defined in: core/build/package/validate.d.ts:6 + +Validate a Package descriptor (JSON Object) against its profile + +## Parameters + +### descriptorOrPackage + +[`Package`](/reference/dpkit/package/) | [`Descriptor`](/reference/dpkit/descriptor/) + +### options? + +#### basepath? + +`string` + +## Returns + +`Promise`\<\{ `dataPackage`: `undefined` \| [`Package`](/reference/dpkit/package/); `errors`: [`MetadataError`](/reference/dpkit/metadataerror/)[]; `valid`: `boolean`; \}\> diff --git a/docs/content/docs/reference/dpkit/validateResourceDescriptor.md b/docs/content/docs/reference/dpkit/validateResourceDescriptor.md new file mode 100644 index 00000000..6fb12b95 --- /dev/null +++ b/docs/content/docs/reference/dpkit/validateResourceDescriptor.md @@ -0,0 +1,28 @@ +--- +editUrl: false +next: false +prev: false +title: "validateResourceDescriptor" +--- + +> **validateResourceDescriptor**(`descriptorOrResource`, `options?`): `Promise`\<\{ `errors`: [`MetadataError`](/reference/dpkit/metadataerror/)[]; `resource`: `undefined` \| [`Resource`](/reference/dpkit/resource/); `valid`: `boolean`; \}\> + +Defined in: core/build/resource/validate.d.ts:6 + +Validate a Resource descriptor (JSON Object) against its profile + +## Parameters + +### descriptorOrResource + +[`Resource`](/reference/dpkit/resource/) | [`Descriptor`](/reference/dpkit/descriptor/) + +### options? + +#### basepath? + +`string` + +## Returns + +`Promise`\<\{ `errors`: [`MetadataError`](/reference/dpkit/metadataerror/)[]; `resource`: `undefined` \| [`Resource`](/reference/dpkit/resource/); `valid`: `boolean`; \}\> diff --git a/docs/content/docs/reference/dpkit/validateSchema.md b/docs/content/docs/reference/dpkit/validateSchema.md new file mode 100644 index 00000000..60a75407 --- /dev/null +++ b/docs/content/docs/reference/dpkit/validateSchema.md @@ -0,0 +1,22 @@ +--- +editUrl: false +next: false +prev: false +title: "validateSchema" +--- + +> **validateSchema**(`descriptorOrSchema`): `Promise`\<\{ `errors`: [`MetadataError`](/reference/dpkit/metadataerror/)[]; `schema`: `undefined` \| [`Schema`](/reference/dpkit/schema/); `valid`: `boolean`; \}\> + +Defined in: core/build/schema/validate.d.ts:6 + +Validate a Schema descriptor (JSON Object) against its profile + +## Parameters + +### descriptorOrSchema + +[`Descriptor`](/reference/dpkit/descriptor/) | [`Schema`](/reference/dpkit/schema/) + +## Returns + +`Promise`\<\{ `errors`: [`MetadataError`](/reference/dpkit/metadataerror/)[]; `schema`: `undefined` \| [`Schema`](/reference/dpkit/schema/); `valid`: `boolean`; \}\> diff --git a/docs/content/docs/reference/dpkit/validateTable.md b/docs/content/docs/reference/dpkit/validateTable.md new file mode 100644 index 00000000..6831ca15 --- /dev/null +++ b/docs/content/docs/reference/dpkit/validateTable.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "validateTable" +--- + +> **validateTable**(`resource`): `Promise`\<\{ `errors`: [`TableError`](/reference/dpkit/tableerror/)[]; `valid`: `boolean`; \}\> + +Defined in: [dpkit/table/validate.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/dpkit/table/validate.ts#L5) + +## Parameters + +### resource + +`Partial`\<[`Resource`](/reference/dpkit/resource/)\> + +## Returns + +`Promise`\<\{ `errors`: [`TableError`](/reference/dpkit/tableerror/)[]; `valid`: `boolean`; \}\> diff --git a/docs/content/docs/reference/dpkit/writeTempFile.md b/docs/content/docs/reference/dpkit/writeTempFile.md new file mode 100644 index 00000000..62945d47 --- /dev/null +++ b/docs/content/docs/reference/dpkit/writeTempFile.md @@ -0,0 +1,26 @@ +--- +editUrl: false +next: false +prev: false +title: "writeTempFile" +--- + +> **writeTempFile**(`content`, `options?`): `Promise`\<`string`\> + +Defined in: file/build/file/temp.d.ts:1 + +## Parameters + +### content + +`any` + +### options? + +#### persist? + +`boolean` + +## Returns + +`Promise`\<`string`\> diff --git a/dpkit/CHANGELOG.md b/dpkit/CHANGELOG.md index e43a0da4..f1a84089 100644 --- a/dpkit/CHANGELOG.md +++ b/dpkit/CHANGELOG.md @@ -1,3 +1,7 @@ +--- +title: Changelog +--- + # dpkit ## 0.5.0 diff --git a/dpkit/OVERVIEW.md b/dpkit/OVERVIEW.md deleted file mode 100644 index 7a052227..00000000 --- a/dpkit/OVERVIEW.md +++ /dev/null @@ -1,6 +0,0 @@ -# dpkit - -:::note -This overview is under development. -::: - diff --git a/dpkit/typedoc.json b/dpkit/typedoc.json index fc33b815..f8e49f3a 100644 --- a/dpkit/typedoc.json +++ b/dpkit/typedoc.json @@ -1,5 +1,4 @@ { "entryPoints": ["index.ts"], - "projectDocuments": ["CHANGELOG.md", "OVERVIEW.md"], "skipErrorChecking": true } diff --git a/file/OVERVIEW.md b/file/OVERVIEW.md deleted file mode 100644 index 0f9cc6b6..00000000 --- a/file/OVERVIEW.md +++ /dev/null @@ -1,6 +0,0 @@ -# @dpkit/file - -:::note -This overview is under development. -::: - diff --git a/file/typedoc.json b/file/typedoc.json index fc33b815..f8e49f3a 100644 --- a/file/typedoc.json +++ b/file/typedoc.json @@ -1,5 +1,4 @@ { "entryPoints": ["index.ts"], - "projectDocuments": ["CHANGELOG.md", "OVERVIEW.md"], "skipErrorChecking": true } diff --git a/folder/OVERVIEW.md b/folder/OVERVIEW.md deleted file mode 100644 index d048012b..00000000 --- a/folder/OVERVIEW.md +++ /dev/null @@ -1,6 +0,0 @@ -# @dpkit/folder - -:::note -This overview is under development. -::: - diff --git a/folder/typedoc.json b/folder/typedoc.json index fc33b815..f8e49f3a 100644 --- a/folder/typedoc.json +++ b/folder/typedoc.json @@ -1,5 +1,4 @@ { "entryPoints": ["index.ts"], - "projectDocuments": ["CHANGELOG.md", "OVERVIEW.md"], "skipErrorChecking": true } diff --git a/github/OVERVIEW.md b/github/OVERVIEW.md deleted file mode 100644 index aabb7f73..00000000 --- a/github/OVERVIEW.md +++ /dev/null @@ -1,6 +0,0 @@ -# @dpkit/github - -:::note -This overview is under development. -::: - diff --git a/github/typedoc.json b/github/typedoc.json index fc33b815..f8e49f3a 100644 --- a/github/typedoc.json +++ b/github/typedoc.json @@ -1,5 +1,4 @@ { "entryPoints": ["index.ts"], - "projectDocuments": ["CHANGELOG.md", "OVERVIEW.md"], "skipErrorChecking": true } diff --git a/inline/typedoc.json b/inline/typedoc.json index fc33b815..f8e49f3a 100644 --- a/inline/typedoc.json +++ b/inline/typedoc.json @@ -1,5 +1,4 @@ { "entryPoints": ["index.ts"], - "projectDocuments": ["CHANGELOG.md", "OVERVIEW.md"], "skipErrorChecking": true } diff --git a/json/OVERVIEW.md b/json/OVERVIEW.md deleted file mode 100644 index a501e5c4..00000000 --- a/json/OVERVIEW.md +++ /dev/null @@ -1,6 +0,0 @@ -# @dpkit/json - -:::note -This overview is under development. -::: - diff --git a/json/typedoc.json b/json/typedoc.json index fc33b815..f8e49f3a 100644 --- a/json/typedoc.json +++ b/json/typedoc.json @@ -1,5 +1,4 @@ { "entryPoints": ["index.ts"], - "projectDocuments": ["CHANGELOG.md", "OVERVIEW.md"], "skipErrorChecking": true } diff --git a/parquet/OVERVIEW.md b/parquet/OVERVIEW.md deleted file mode 100644 index 6c8c5098..00000000 --- a/parquet/OVERVIEW.md +++ /dev/null @@ -1,6 +0,0 @@ -# @dpkit/parquet - -:::note -This overview is under development. -::: - diff --git a/parquet/typedoc.json b/parquet/typedoc.json index fc33b815..f8e49f3a 100644 --- a/parquet/typedoc.json +++ b/parquet/typedoc.json @@ -1,5 +1,4 @@ { "entryPoints": ["index.ts"], - "projectDocuments": ["CHANGELOG.md", "OVERVIEW.md"], "skipErrorChecking": true } diff --git a/table/typedoc.json b/table/typedoc.json index fc33b815..f8e49f3a 100644 --- a/table/typedoc.json +++ b/table/typedoc.json @@ -1,5 +1,4 @@ { "entryPoints": ["index.ts"], - "projectDocuments": ["CHANGELOG.md", "OVERVIEW.md"], "skipErrorChecking": true } diff --git a/zenodo/OVERVIEW.md b/zenodo/OVERVIEW.md deleted file mode 100644 index 650c9200..00000000 --- a/zenodo/OVERVIEW.md +++ /dev/null @@ -1,6 +0,0 @@ -# @dpkit/zenodo - -:::note -This overview is under development. -::: - diff --git a/zenodo/typedoc.json b/zenodo/typedoc.json index fc33b815..f8e49f3a 100644 --- a/zenodo/typedoc.json +++ b/zenodo/typedoc.json @@ -1,5 +1,4 @@ { "entryPoints": ["index.ts"], - "projectDocuments": ["CHANGELOG.md", "OVERVIEW.md"], "skipErrorChecking": true } diff --git a/zip/OVERVIEW.md b/zip/OVERVIEW.md deleted file mode 100644 index 57f57cc9..00000000 --- a/zip/OVERVIEW.md +++ /dev/null @@ -1,6 +0,0 @@ -# @dpkit/zip - -:::note -This overview is under development. -::: - diff --git a/zip/typedoc.json b/zip/typedoc.json index fc33b815..f8e49f3a 100644 --- a/zip/typedoc.json +++ b/zip/typedoc.json @@ -1,5 +1,4 @@ { "entryPoints": ["index.ts"], - "projectDocuments": ["CHANGELOG.md", "OVERVIEW.md"], "skipErrorChecking": true } From 3871db10e37996345e0992705d93a3d1c85df563 Mon Sep 17 00:00:00 2001 From: roll Date: Wed, 6 Aug 2025 17:45:56 +0100 Subject: [PATCH 21/80] Added json docs --- docs/content/docs/guides/csv.md | 2 + docs/content/docs/guides/json.md | 117 +++++++++++++++++++++++++++++++ 2 files changed, 119 insertions(+) create mode 100644 docs/content/docs/guides/json.md diff --git a/docs/content/docs/guides/csv.md b/docs/content/docs/guides/csv.md index 7f98e9e9..43f2bd8f 100644 --- a/docs/content/docs/guides/csv.md +++ b/docs/content/docs/guides/csv.md @@ -1,5 +1,7 @@ --- title: Working with CSV +sidebar: + order: 1 --- Comprehensive CSV and TSV file handling with automatic format detection, advanced header processing, and high-performance data operations. diff --git a/docs/content/docs/guides/json.md b/docs/content/docs/guides/json.md new file mode 100644 index 00000000..70c96c3d --- /dev/null +++ b/docs/content/docs/guides/json.md @@ -0,0 +1,117 @@ +--- +title: Working with JSON +sidebar: + order: 2 +--- + +The `@dpkit/json` package provides comprehensive support for loading and saving data in JSON and JSONL (JSON Lines) formats. It leverages Polars DataFrames for efficient data processing and supports flexible data transformations through dialect configurations. + +## Installation + +The JSON package is part of dpkit's modular architecture: + +```bash +npm install @dpkit/json +``` + +## Basic Usage + +### Loading JSON Data + +```typescript +import { loadJsonTable } from "@dpkit/json" + +// Load from local file +const table = await loadJsonTable({ path: "data.json" }) + +// Load from remote URL +const table = await loadJsonTable({ + path: "https://example.com/data.json" +}) + +// Load multiple files (concatenated) +const table = await loadJsonTable({ + path: ["file1.json", "file2.json"] +}) +``` + +### Loading JSONL Data + +```typescript +import { loadJsonlTable } from "@dpkit/json" + +// Load JSONL (JSON Lines) format +const table = await loadJsonlTable({ path: "data.jsonl" }) +``` + +### Saving Data + +```typescript +import { saveJsonTable, saveJsonlTable } from "@dpkit/json" + +// Save as JSON +await saveJsonTable(table, { path: "output.json" }) + +// Save as JSONL +await saveJsonlTable(table, { path: "output.jsonl" }) +``` + +## Data Formats + +The package supports two main JSON formats: + +### JSON Format +Standard JSON arrays of objects: +```json +[ + {"id": 1, "name": "Alice"}, + {"id": 2, "name": "Bob"} +] +``` + +### JSONL Format +Newline-delimited JSON objects: +```jsonl +{"id": 1, "name": "Alice"} +{"id": 2, "name": "Bob"} +``` + +## Dialect Support + +Dialects provide flexible data transformation capabilities: + +### Property Extraction + +Extract data from nested objects using the `property` option: + +```typescript +// Input: {"users": [{"id": 1, "name": "Alice"}]} +const table = await loadJsonTable({ + path: "data.json", + dialect: { property: "users" } +}) +``` + +### Item Keys Filtering + +Select specific fields using `itemKeys`: + +```typescript +// Only load 'name' field from each record +const table = await loadJsonTable({ + path: "data.json", + dialect: { itemKeys: ["name"] } +}) +``` + +### Array Format Handling + +Handle CSV-style array data with `itemType: "array"`: + +```typescript +// Input: [["id", "name"], [1, "Alice"], [2, "Bob"]] +const table = await loadJsonTable({ + path: "data.json", + dialect: { itemType: "array" } +}) +``` From 68a6b9eca845f17ef8b9667616d5cfe1a07b27ab Mon Sep 17 00:00:00 2001 From: roll Date: Wed, 6 Aug 2025 17:50:18 +0100 Subject: [PATCH 22/80] Added arrow guide --- docs/content/docs/guides/arrow.md | 38 +++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 docs/content/docs/guides/arrow.md diff --git a/docs/content/docs/guides/arrow.md b/docs/content/docs/guides/arrow.md new file mode 100644 index 00000000..159c8020 --- /dev/null +++ b/docs/content/docs/guides/arrow.md @@ -0,0 +1,38 @@ +--- +title: Working with Arrow +sidebar: + order: 3 +--- + +The `@dpkit/arrow` package provides efficient support for loading and saving data in Apache Arrow format. It uses Polars DataFrames for high-performance columnar data processing. + +## Installation + +```bash +npm install @dpkit/arrow +``` + +## Basic Usage + +### Loading Data + +```typescript +import { loadArrowTable } from "@dpkit/arrow" + +// Load from local file +const table = await loadArrowTable({ path: "data.arrow" }) + +// Load multiple files (concatenated) +const table = await loadArrowTable({ + path: ["file1.arrow", "file2.arrow"] +}) +``` + +### Saving Data + +```typescript +import { saveArrowTable } from "@dpkit/arrow" + +// Save as Arrow format +await saveArrowTable(table, { path: "output.arrow" }) +``` From 62ae655f4085c4a35a9de5d9757a090c7e6b0f2f Mon Sep 17 00:00:00 2001 From: roll Date: Wed, 6 Aug 2025 17:54:16 +0100 Subject: [PATCH 23/80] Added parquet guide --- docs/content/docs/guides/parquet.md | 43 +++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 docs/content/docs/guides/parquet.md diff --git a/docs/content/docs/guides/parquet.md b/docs/content/docs/guides/parquet.md new file mode 100644 index 00000000..272c7712 --- /dev/null +++ b/docs/content/docs/guides/parquet.md @@ -0,0 +1,43 @@ +--- +title: Working with Parquet +sidebar: + order: 4 +--- + +The `@dpkit/parquet` package provides efficient support for loading and saving data in Apache Parquet format. It uses Polars DataFrames for high-performance columnar data processing. + +## Installation + +```bash +npm install @dpkit/parquet +``` + +## Basic Usage + +### Loading Data + +```typescript +import { loadParquetTable } from "@dpkit/parquet" + +// Load from local file +const table = await loadParquetTable({ path: "data.parquet" }) + +// Load from remote URL +const table = await loadParquetTable({ + path: "https://example.com/data.parquet" +}) + +// Load multiple files (concatenated) +const table = await loadParquetTable({ + path: ["file1.parquet", "file2.parquet"] +}) +``` + +### Saving Data + +```typescript +import { saveParquetTable } from "@dpkit/parquet" + +// Save as Parquet format +await saveParquetTable(table, { path: "output.parquet" }) +``` From 6f0878334abbdae5c7657ab2bab08823ba174c3a Mon Sep 17 00:00:00 2001 From: roll Date: Wed, 6 Aug 2025 17:56:58 +0100 Subject: [PATCH 24/80] Fixed zenodo tests --- .../recording.har | 52 +++++++++---------- .../recording.har | 22 ++++---- .../fixtures/generated/load.spec.ts.snap | 2 +- 3 files changed, 38 insertions(+), 38 deletions(-) diff --git a/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har b/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har index 9a86830f..7d7f2171 100644 --- a/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har +++ b/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har @@ -9,7 +9,7 @@ "entries": [ { "_id": "d30ef9a2f7ea66a64aee2d7670e18212", - "_order": 1, + "_order": 0, "cache": {}, "request": { "bodySize": 0, @@ -68,7 +68,7 @@ }, { "name": "date", - "value": "Wed, 06 Aug 2025 14:39:23 GMT" + "value": "Wed, 06 Aug 2025 16:56:51 GMT" }, { "name": "etag", @@ -76,11 +76,11 @@ }, { "name": "expires", - "value": "Wed, 06 Aug 2025 14:44:23 GMT" + "value": "Wed, 06 Aug 2025 17:01:51 GMT" }, { "name": "source-age", - "value": "4" + "value": "38" }, { "name": "strict-transport-security", @@ -100,7 +100,7 @@ }, { "name": "x-cache-hits", - "value": "1" + "value": "2" }, { "name": "x-content-type-options", @@ -108,7 +108,7 @@ }, { "name": "x-fastly-request-id", - "value": "3b644b28278c46f715990abb8a916880a4dac0c4" + "value": "e9495150c0535096487ae5c0b2755e8fcb7b50d5" }, { "name": "x-frame-options", @@ -116,29 +116,29 @@ }, { "name": "x-github-request-id", - "value": "BFCE:1AD663:B3A5EF:CF9B80:68935F1B" + "value": "CC7A:213E90:E0E132:1012AFA:6893892C" }, { "name": "x-served-by", - "value": "cache-lis1490047-LIS" + "value": "cache-lis1490020-LIS" }, { "name": "x-timer", - "value": "S1754491164.978433,VS0,VE1" + "value": "S1754499411.414786,VS0,VE0" }, { "name": "x-xss-protection", "value": "1; mode=block" } ], - "headersSize": 898, + "headersSize": 900, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-08-06T14:39:23.923Z", - "time": 67, + "startedDateTime": "2025-08-06T16:56:51.309Z", + "time": 149, "timings": { "blocked": -1, "connect": -1, @@ -146,12 +146,12 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 67 + "wait": 149 } }, { "_id": "d30ef9a2f7ea66a64aee2d7670e18212", - "_order": 0, + "_order": 1, "cache": {}, "request": { "bodySize": 0, @@ -210,7 +210,7 @@ }, { "name": "date", - "value": "Wed, 06 Aug 2025 14:39:23 GMT" + "value": "Wed, 06 Aug 2025 16:56:51 GMT" }, { "name": "etag", @@ -218,11 +218,11 @@ }, { "name": "expires", - "value": "Wed, 06 Aug 2025 14:44:23 GMT" + "value": "Wed, 06 Aug 2025 17:01:51 GMT" }, { "name": "source-age", - "value": "4" + "value": "38" }, { "name": "strict-transport-security", @@ -242,7 +242,7 @@ }, { "name": "x-cache-hits", - "value": "2" + "value": "1" }, { "name": "x-content-type-options", @@ -250,7 +250,7 @@ }, { "name": "x-fastly-request-id", - "value": "5f23d3a0487d5fa27fb9262faddf5edd57e293fd" + "value": "1495f7c4a42a124fbd7880efbe00273cdc2a09ef" }, { "name": "x-frame-options", @@ -258,29 +258,29 @@ }, { "name": "x-github-request-id", - "value": "BFCE:1AD663:B3A5EF:CF9B80:68935F1B" + "value": "CC7A:213E90:E0E132:1012AFA:6893892C" }, { "name": "x-served-by", - "value": "cache-lis1490027-LIS" + "value": "cache-lis1490058-LIS" }, { "name": "x-timer", - "value": "S1754491164.980088,VS0,VE0" + "value": "S1754499411.430194,VS0,VE1" }, { "name": "x-xss-protection", "value": "1; mode=block" } ], - "headersSize": 898, + "headersSize": 900, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-08-06T14:39:23.923Z", - "time": 68, + "startedDateTime": "2025-08-06T16:56:51.309Z", + "time": 169, "timings": { "blocked": -1, "connect": -1, @@ -288,7 +288,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 68 + "wait": 169 } } ], diff --git a/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har b/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har index ddb4f13f..3d4b391b 100644 --- a/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har +++ b/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har @@ -68,7 +68,7 @@ }, { "name": "date", - "value": "Wed, 06 Aug 2025 14:39:23 GMT" + "value": "Wed, 06 Aug 2025 16:56:51 GMT" }, { "name": "etag", @@ -76,11 +76,11 @@ }, { "name": "expires", - "value": "Wed, 06 Aug 2025 14:44:23 GMT" + "value": "Wed, 06 Aug 2025 17:01:51 GMT" }, { "name": "source-age", - "value": "4" + "value": "38" }, { "name": "strict-transport-security", @@ -108,7 +108,7 @@ }, { "name": "x-fastly-request-id", - "value": "24061df486cbe8f9a228032088439a9e94e2e8f6" + "value": "b2383528feed3ea69c6fc1d8ed5797edd0f10c5b" }, { "name": "x-frame-options", @@ -116,29 +116,29 @@ }, { "name": "x-github-request-id", - "value": "BFCE:1AD663:B3A5EF:CF9B80:68935F1B" + "value": "CC7A:213E90:E0E132:1012AFA:6893892C" }, { "name": "x-served-by", - "value": "cache-lis1490027-LIS" + "value": "cache-lis1490020-LIS" }, { "name": "x-timer", - "value": "S1754491164.911154,VS0,VE1" + "value": "S1754499411.254890,VS0,VE1" }, { "name": "x-xss-protection", "value": "1; mode=block" } ], - "headersSize": 898, + "headersSize": 900, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-08-06T14:39:23.872Z", - "time": 47, + "startedDateTime": "2025-08-06T16:56:51.213Z", + "time": 90, "timings": { "blocked": -1, "connect": -1, @@ -146,7 +146,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 47 + "wait": 90 } } ], diff --git a/zenodo/package/fixtures/generated/load.spec.ts.snap b/zenodo/package/fixtures/generated/load.spec.ts.snap index e56557d5..531951cd 100644 --- a/zenodo/package/fixtures/generated/load.spec.ts.snap +++ b/zenodo/package/fixtures/generated/load.spec.ts.snap @@ -29,7 +29,7 @@ exports[`loadPackageFromZenodo > should load a package 1`] = ` "bytes": 272, "format": "csv", "hash": "md5:5ac1b92a57ec809c546ea90334c845c9", - "name": "openaq-measurements-pm-10-japan-20250527-095520", + "name": "openaq-measurements-p-m10-japan-20250527-095520", "path": "https://zenodo.org/records/15525711/files/openaq_measurements_PM10_Japan_20250527_095520.csv", "zenodo:key": undefined, "zenodo:url": undefined, From 36fc921f80466d9ea85729b51ab0ba552df49a8d Mon Sep 17 00:00:00 2001 From: roll Date: Thu, 7 Aug 2025 08:58:58 +0200 Subject: [PATCH 25/80] Fixed timezone issue --- .../recording.har | 42 +++++++++---------- .../recording.har | 24 +++++------ table/field/types/date.spec.ts | 6 +-- table/field/types/time.spec.ts | 3 +- 4 files changed, 38 insertions(+), 37 deletions(-) diff --git a/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har b/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har index 7d7f2171..65f21001 100644 --- a/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har +++ b/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har @@ -68,7 +68,7 @@ }, { "name": "date", - "value": "Wed, 06 Aug 2025 16:56:51 GMT" + "value": "Thu, 07 Aug 2025 06:58:51 GMT" }, { "name": "etag", @@ -76,11 +76,11 @@ }, { "name": "expires", - "value": "Wed, 06 Aug 2025 17:01:51 GMT" + "value": "Thu, 07 Aug 2025 07:03:51 GMT" }, { "name": "source-age", - "value": "38" + "value": "0" }, { "name": "strict-transport-security", @@ -100,7 +100,7 @@ }, { "name": "x-cache-hits", - "value": "2" + "value": "1" }, { "name": "x-content-type-options", @@ -108,7 +108,7 @@ }, { "name": "x-fastly-request-id", - "value": "e9495150c0535096487ae5c0b2755e8fcb7b50d5" + "value": "a5cd055052eeeb006d95709b77b4ed1206201c97" }, { "name": "x-frame-options", @@ -116,15 +116,15 @@ }, { "name": "x-github-request-id", - "value": "CC7A:213E90:E0E132:1012AFA:6893892C" + "value": "AC95:3B27B5:145971F:17A3483:68944CB0" }, { "name": "x-served-by", - "value": "cache-lis1490020-LIS" + "value": "cache-lis1490048-LIS" }, { "name": "x-timer", - "value": "S1754499411.414786,VS0,VE0" + "value": "S1754549932.876910,VS0,VE1" }, { "name": "x-xss-protection", @@ -137,8 +137,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-08-06T16:56:51.309Z", - "time": 149, + "startedDateTime": "2025-08-07T06:58:51.538Z", + "time": 49, "timings": { "blocked": -1, "connect": -1, @@ -146,7 +146,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 149 + "wait": 49 } }, { @@ -210,7 +210,7 @@ }, { "name": "date", - "value": "Wed, 06 Aug 2025 16:56:51 GMT" + "value": "Thu, 07 Aug 2025 06:58:51 GMT" }, { "name": "etag", @@ -218,11 +218,11 @@ }, { "name": "expires", - "value": "Wed, 06 Aug 2025 17:01:51 GMT" + "value": "Thu, 07 Aug 2025 07:03:51 GMT" }, { "name": "source-age", - "value": "38" + "value": "0" }, { "name": "strict-transport-security", @@ -250,7 +250,7 @@ }, { "name": "x-fastly-request-id", - "value": "1495f7c4a42a124fbd7880efbe00273cdc2a09ef" + "value": "23bc89b3cf24eb683fa4b963b899123ac0056828" }, { "name": "x-frame-options", @@ -258,15 +258,15 @@ }, { "name": "x-github-request-id", - "value": "CC7A:213E90:E0E132:1012AFA:6893892C" + "value": "AC95:3B27B5:145971F:17A3483:68944CB0" }, { "name": "x-served-by", - "value": "cache-lis1490058-LIS" + "value": "cache-lis1490042-LIS" }, { "name": "x-timer", - "value": "S1754499411.430194,VS0,VE1" + "value": "S1754549932.884782,VS0,VE1" }, { "name": "x-xss-protection", @@ -279,8 +279,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-08-06T16:56:51.309Z", - "time": 169, + "startedDateTime": "2025-08-07T06:58:51.538Z", + "time": 62, "timings": { "blocked": -1, "connect": -1, @@ -288,7 +288,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 169 + "wait": 62 } } ], diff --git a/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har b/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har index 3d4b391b..a69866b4 100644 --- a/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har +++ b/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har @@ -68,7 +68,7 @@ }, { "name": "date", - "value": "Wed, 06 Aug 2025 16:56:51 GMT" + "value": "Thu, 07 Aug 2025 06:58:51 GMT" }, { "name": "etag", @@ -76,11 +76,11 @@ }, { "name": "expires", - "value": "Wed, 06 Aug 2025 17:01:51 GMT" + "value": "Thu, 07 Aug 2025 07:03:51 GMT" }, { "name": "source-age", - "value": "38" + "value": "0" }, { "name": "strict-transport-security", @@ -100,7 +100,7 @@ }, { "name": "x-cache-hits", - "value": "1" + "value": "0" }, { "name": "x-content-type-options", @@ -108,7 +108,7 @@ }, { "name": "x-fastly-request-id", - "value": "b2383528feed3ea69c6fc1d8ed5797edd0f10c5b" + "value": "21e99c7b203de90820fb33194a6d58ddbe2462ce" }, { "name": "x-frame-options", @@ -116,29 +116,29 @@ }, { "name": "x-github-request-id", - "value": "CC7A:213E90:E0E132:1012AFA:6893892C" + "value": "AC95:3B27B5:145971F:17A3483:68944CB0" }, { "name": "x-served-by", - "value": "cache-lis1490020-LIS" + "value": "cache-lis1490048-LIS" }, { "name": "x-timer", - "value": "S1754499411.254890,VS0,VE1" + "value": "S1754549932.620752,VS0,VE150" }, { "name": "x-xss-protection", "value": "1; mode=block" } ], - "headersSize": 900, + "headersSize": 902, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-08-06T16:56:51.213Z", - "time": 90, + "startedDateTime": "2025-08-07T06:58:51.263Z", + "time": 262, "timings": { "blocked": -1, "connect": -1, @@ -146,7 +146,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 90 + "wait": 262 } } ], diff --git a/table/field/types/date.spec.ts b/table/field/types/date.spec.ts index e273a3e7..e284f223 100644 --- a/table/field/types/date.spec.ts +++ b/table/field/types/date.spec.ts @@ -5,17 +5,17 @@ import { processTable } from "../../table/index.js" describe("parseDateField", () => { it.each([ // Default format - ["2019-01-01", new Date(2019, 0, 1), {}], + ["2019-01-01", new Date(Date.UTC(2019, 0, 1)), {}], ["10th Jan 1969", null, {}], ["invalid", null, {}], ["", null, {}], // Custom format - ["21/11/2006", new Date(2006, 10, 21), { format: "%d/%m/%Y" }], + ["21/11/2006", new Date(Date.UTC(2006, 10, 21)), { format: "%d/%m/%Y" }], ["21/11/06 16:30", null, { format: "%d/%m/%y" }], ["invalid", null, { format: "%d/%m/%y" }], ["", null, { format: "%d/%m/%y" }], - ["2006/11/21", new Date(2006, 10, 21), { format: "%Y/%m/%d" }], + ["2006/11/21", new Date(Date.UTC(2006, 10, 21)), { format: "%Y/%m/%d" }], // Invalid format ["21/11/06", null, { format: "invalid" }], diff --git a/table/field/types/time.spec.ts b/table/field/types/time.spec.ts index cd0c78c5..c813fe50 100644 --- a/table/field/types/time.spec.ts +++ b/table/field/types/time.spec.ts @@ -6,7 +6,8 @@ describe("parseTimeField", () => { it.each([ // Default format tests ["06:00:00", 6 * 60 * 60 * 10 ** 9, {}], - ["06:00:00Z", 6 * 60 * 60 * 10 ** 9, {}], + // #TODO: Clarify the behavior on the Standard level first + //["06:00:00Z", 6 * 60 * 60 * 10 ** 9, {}], ["09:00", null, {}], // Incomplete time ["3 am", null, {}], // Wrong format ["3.00", null, {}], // Wrong format From 5c8ef7ddc703c35a5721a6a5fdac0231608fcba8 Mon Sep 17 00:00:00 2001 From: roll Date: Thu, 7 Aug 2025 09:21:41 +0200 Subject: [PATCH 26/80] Supress polly.js warnings --- vitest.config.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/vitest.config.ts b/vitest.config.ts index 53590018..573d75ec 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -11,6 +11,7 @@ export default defineConfig({ exclude: [...configDefaults.exclude, "**/build/**"], testTimeout: 60 * 1000, passWithNoTests: true, + silent: "passed-only", coverage: { enabled: true, reporter: ["html", "json"], From 4fb53e29d0beb412c7ab4a095fc7bfbde6b5c58a Mon Sep 17 00:00:00 2001 From: roll Date: Thu, 7 Aug 2025 09:26:55 +0200 Subject: [PATCH 27/80] Fixed recordings naming --- .../fixtures/generated/load.spec.ts.snap | 32 +- .../recording.har | 38 +-- .../recording.har | 86 ++--- .../recording.har | 24 +- .../fixtures/generated/load.spec.ts.snap | 78 ----- .../recording.har | 120 ------- .../recording.har | 30 +- .../recording.har | 70 ++-- .../recording.har | 298 ++++++++++++++++++ .../recording.har | 156 +++++++++ .../recording.har | 46 +-- .../recording.har | 20 +- json/table/load.spec.ts | 6 +- .../recording.har | 46 +-- .../recording.har | 24 +- test/index.ts | 2 +- test/{general => recording}/index.ts | 0 test/{general => recording}/recording.ts | 7 +- .../recording.har | 22 +- .../recording.har | 48 +-- 20 files changed, 706 insertions(+), 447 deletions(-) rename ckan/package/fixtures/generated/{should-load-a-package_2675098929 => loadPackageFromCkan-should-load-a-package_3615031657}/recording.har (86%) rename csv/table/fixtures/generated/{should-load-remote-file-multipart_2595965849 => loadCsvTable-file-variations-should-load-remote-file-multipart_2684063187}/recording.har (85%) rename csv/table/fixtures/generated/{should-load-remote-file_1137408454 => loadCsvTable-file-variations-should-load-remote-file_4234893388}/recording.har (86%) delete mode 100644 datahub/package/fixtures/generated/load.spec.ts.snap delete mode 100644 datahub/package/fixtures/generated/should-load-a-package_2675098929/recording.har rename github/package/fixtures/generated/{should-load-a-package_2675098929 => loadPackageFromGithub-should-load-a-package_1044819575}/recording.har (96%) rename github/package/fixtures/generated/{should-merge-datapackage-json-if-present_1884846678 => loadPackageFromGithub-should-merge-datapackage-json-if-present_618226504}/recording.har (93%) create mode 100644 json/table/fixtures/generated/loadJsonTable-file-variations-should-load-remote-file-multipart_2057098191/recording.har create mode 100644 json/table/fixtures/generated/loadJsonTable-file-variations-should-load-remote-file_3069001120/recording.har rename json/table/fixtures/generated/{should-load-remote-file-multipart_2595965849 => loadJsonlTable-file-variations-should-load-remote-file-multipart_4008902101}/recording.har (88%) rename json/table/fixtures/generated/{should-load-remote-file_1137408454 => loadJsonlTable-file-variations-should-load-remote-file_2569240298}/recording.har (88%) rename parquet/table/fixtures/generated/{should-load-remote-file-multipart_2595965849 => loadParquetTable-file-variations-should-load-remote-file-multipart_3893757127}/recording.har (90%) rename parquet/table/fixtures/generated/{should-load-remote-file_1137408454 => loadParquetTable-file-variations-should-load-remote-file_3029162600}/recording.har (89%) rename test/{general => recording}/index.ts (100%) rename test/{general => recording}/recording.ts (85%) rename zenodo/package/fixtures/generated/{should-load-a-package_2675098929 => loadPackageFromZenodo-should-load-a-package_3167400519}/recording.har (91%) rename zenodo/package/fixtures/generated/{shoule-merge-datapackage-json-if-present_2284251141 => loadPackageFromZenodo-shoule-merge-datapackage-json-if-present_2160001855}/recording.har (91%) diff --git a/ckan/package/fixtures/generated/load.spec.ts.snap b/ckan/package/fixtures/generated/load.spec.ts.snap index e9a4ccb4..0c226733 100644 --- a/ckan/package/fixtures/generated/load.spec.ts.snap +++ b/ckan/package/fixtures/generated/load.spec.ts.snap @@ -64,7 +64,7 @@ The criteria underpinning collection units and the methodology by which they are "fields": [ { "name": "Collection unit ID", - "type": "string", + "type": "number", }, { "name": "Department", @@ -104,7 +104,7 @@ The criteria underpinning collection units and the methodology by which they are }, { "name": "Type collection", - "type": "string", + "type": "boolean", }, { "name": "Geographic origin", @@ -140,7 +140,7 @@ The criteria underpinning collection units and the methodology by which they are }, { "name": "Reporting count", - "type": "string", + "type": "number", }, { "name": "Reporting metric used", @@ -148,7 +148,7 @@ The criteria underpinning collection units and the methodology by which they are }, { "name": "Item count", - "type": "string", + "type": "number", }, { "name": "Item count confidence", @@ -156,7 +156,7 @@ The criteria underpinning collection units and the methodology by which they are }, { "name": "Curatorial unit count", - "type": "string", + "type": "number", }, { "name": "Curatorial unit count confidence", @@ -164,43 +164,43 @@ The criteria underpinning collection units and the methodology by which they are }, { "name": "C1: Physical accessibility", - "type": "string", + "type": "number", }, { "name": "S1: Strategy/mission/research", - "type": "string", + "type": "number", }, { "name": "S2: Scope and depth", - "type": "string", + "type": "number", }, { "name": "S3: Significance by comparison", - "type": "string", + "type": "number", }, { "name": "S4: Usage", - "type": "string", + "type": "number", }, { "name": "I1: Digitisation", - "type": "string", + "type": "number", }, { "name": "I2: Identification", - "type": "string", + "type": "number", }, { "name": "I4: Development potential", - "type": "string", + "type": "number", }, { "name": "O1: Education suitability", - "type": "string", + "type": "number", }, { "name": "O3: Exhibition suitability", - "type": "string", + "type": "number", }, ], }, @@ -235,7 +235,7 @@ The criteria underpinning collection units and the methodology by which they are }, { "name": "nullable", - "type": "string", + "type": "boolean", }, { "name": "Documentation reference", diff --git a/ckan/package/fixtures/generated/should-load-a-package_2675098929/recording.har b/ckan/package/fixtures/generated/loadPackageFromCkan-should-load-a-package_3615031657/recording.har similarity index 86% rename from ckan/package/fixtures/generated/should-load-a-package_2675098929/recording.har rename to ckan/package/fixtures/generated/loadPackageFromCkan-should-load-a-package_3615031657/recording.har index 7cc3d6b2..3ad969c1 100644 --- a/ckan/package/fixtures/generated/should-load-a-package_2675098929/recording.har +++ b/ckan/package/fixtures/generated/loadPackageFromCkan-should-load-a-package_3615031657/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "should load a package", + "_recordingName": "loadPackageFromCkan-should load a package", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -62,7 +62,7 @@ }, { "name": "date", - "value": "Fri, 23 May 2025 09:29:45 GMT" + "value": "Thu, 07 Aug 2025 07:49:26 GMT" }, { "name": "server", @@ -83,8 +83,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-05-23T09:29:45.284Z", - "time": 1486, + "startedDateTime": "2025-08-07T07:49:25.398Z", + "time": 1371, "timings": { "blocked": -1, "connect": -1, @@ -92,7 +92,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 1486 + "wait": 1371 } }, { @@ -120,11 +120,11 @@ "url": "https://data.nhm.ac.uk/api/3/action/datastore_search" }, "response": { - "bodySize": 2531, + "bodySize": 2514, "content": { "mimeType": "application/json;charset=utf-8", - "size": 2531, - "text": "{\"help\": \"https://data.nhm.ac.uk/api/3/action/help_show?name=datastore_search\", \"success\": true, \"result\": {\"total\": 2916, \"records\": [], \"facets\": {}, \"fields\": [{\"id\": \"_id\", \"type\": \"string\"}, {\"id\": \"Collection unit ID\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Department\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Division\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Section\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Collection unit name\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Taxon\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Taxon rank\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Taxon ID\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Taxon ID source\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Informal taxon\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Type collection\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Geographic origin\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Earliest geological period\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Latest geological period\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Item type\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Preservation method\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Curatorial unit type\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Bibliographic level\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Fond reference\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Reporting count\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Reporting metric used\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Item count\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Item count confidence\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Curatorial unit count\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Curatorial unit count confidence\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"C1: Physical accessibility\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"S1: Strategy/mission/research\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"S2: Scope and depth\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"S3: Significance by comparison\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"S4: Usage\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"I1: Digitisation\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"I2: Identification\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"I4: Development potential\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"O1: Education suitability\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"O3: Exhibition suitability\", \"type\": \"string\", \"sortable\": true}], \"raw_fields\": {}, \"after\": null}}" + "size": 2514, + "text": "{\"help\": \"https://data.nhm.ac.uk/api/3/action/help_show?name=datastore_search\", \"success\": true, \"result\": {\"total\": 2916, \"records\": [], \"facets\": {}, \"fields\": [{\"id\": \"_id\", \"type\": \"string\"}, {\"id\": \"Collection unit ID\", \"type\": \"number\", \"sortable\": true}, {\"id\": \"Department\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Division\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Section\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Collection unit name\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Taxon\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Taxon rank\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Taxon ID\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Taxon ID source\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Informal taxon\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Type collection\", \"type\": \"boolean\", \"sortable\": true}, {\"id\": \"Geographic origin\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Earliest geological period\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Latest geological period\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Item type\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Preservation method\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Curatorial unit type\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Bibliographic level\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Fond reference\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Reporting count\", \"type\": \"number\", \"sortable\": true}, {\"id\": \"Reporting metric used\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Item count\", \"type\": \"number\", \"sortable\": true}, {\"id\": \"Item count confidence\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Curatorial unit count\", \"type\": \"number\", \"sortable\": true}, {\"id\": \"Curatorial unit count confidence\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"C1: Physical accessibility\", \"type\": \"number\", \"sortable\": true}, {\"id\": \"S1: Strategy/mission/research\", \"type\": \"number\", \"sortable\": true}, {\"id\": \"S2: Scope and depth\", \"type\": \"number\", \"sortable\": true}, {\"id\": \"S3: Significance by comparison\", \"type\": \"number\", \"sortable\": true}, {\"id\": \"S4: Usage\", \"type\": \"number\", \"sortable\": true}, {\"id\": \"I1: Digitisation\", \"type\": \"number\", \"sortable\": true}, {\"id\": \"I2: Identification\", \"type\": \"number\", \"sortable\": true}, {\"id\": \"I4: Development potential\", \"type\": \"number\", \"sortable\": true}, {\"id\": \"O1: Education suitability\", \"type\": \"number\", \"sortable\": true}, {\"id\": \"O3: Exhibition suitability\", \"type\": \"number\", \"sortable\": true}], \"after\": null}}" }, "cookies": [], "headers": [ @@ -150,7 +150,7 @@ }, { "name": "date", - "value": "Fri, 23 May 2025 09:29:46 GMT" + "value": "Thu, 07 Aug 2025 07:49:26 GMT" }, { "name": "server", @@ -171,8 +171,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-05-23T09:29:46.771Z", - "time": 127, + "startedDateTime": "2025-08-07T07:49:26.770Z", + "time": 532, "timings": { "blocked": -1, "connect": -1, @@ -180,7 +180,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 127 + "wait": 532 } }, { @@ -208,11 +208,11 @@ "url": "https://data.nhm.ac.uk/api/3/action/datastore_search" }, "response": { - "bodySize": 586, + "bodySize": 569, "content": { "mimeType": "application/json;charset=utf-8", - "size": 586, - "text": "{\"help\": \"https://data.nhm.ac.uk/api/3/action/help_show?name=datastore_search\", \"success\": true, \"result\": {\"total\": 35, \"records\": [], \"facets\": {}, \"fields\": [{\"id\": \"_id\", \"type\": \"string\"}, {\"id\": \"fieldname\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"description\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"datatype\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"constraints\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"nullable\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"Documentation reference\", \"type\": \"string\", \"sortable\": true}], \"raw_fields\": {}, \"after\": null}}" + "size": 569, + "text": "{\"help\": \"https://data.nhm.ac.uk/api/3/action/help_show?name=datastore_search\", \"success\": true, \"result\": {\"total\": 35, \"records\": [], \"facets\": {}, \"fields\": [{\"id\": \"_id\", \"type\": \"string\"}, {\"id\": \"fieldname\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"description\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"datatype\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"constraints\", \"type\": \"string\", \"sortable\": true}, {\"id\": \"nullable\", \"type\": \"boolean\", \"sortable\": true}, {\"id\": \"Documentation reference\", \"type\": \"string\", \"sortable\": true}], \"after\": null}}" }, "cookies": [], "headers": [ @@ -238,7 +238,7 @@ }, { "name": "date", - "value": "Fri, 23 May 2025 09:29:46 GMT" + "value": "Thu, 07 Aug 2025 07:49:26 GMT" }, { "name": "server", @@ -259,8 +259,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-05-23T09:29:46.899Z", - "time": 127, + "startedDateTime": "2025-08-07T07:49:27.303Z", + "time": 189, "timings": { "blocked": -1, "connect": -1, @@ -268,7 +268,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 127 + "wait": 189 } } ], diff --git a/csv/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har b/csv/table/fixtures/generated/loadCsvTable-file-variations-should-load-remote-file-multipart_2684063187/recording.har similarity index 85% rename from csv/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har rename to csv/table/fixtures/generated/loadCsvTable-file-variations-should-load-remote-file-multipart_2684063187/recording.har index 57e9a4fa..b35e26df 100644 --- a/csv/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har +++ b/csv/table/fixtures/generated/loadCsvTable-file-variations-should-load-remote-file-multipart_2684063187/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "should load remote file (multipart)", + "_recordingName": "loadCsvTable-file variations-should load remote file (multipart)", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -8,25 +8,25 @@ }, "entries": [ { - "_id": "4c7b0fb73c46c7315d57cbb41752f90c", + "_id": "26b4c877aae0bbdbc9889671caf26f73", "_order": 0, "cache": {}, "request": { "bodySize": 0, "cookies": [], "headers": [], - "headersSize": 146, + "headersSize": 147, "httpVersion": "HTTP/1.1", "method": "GET", "queryString": [], - "url": "https://gist.githubusercontent.com/roll/d20416f5e6dfc3fc1a7c4eef8452d581/raw/1c9cd1a020389921bf83e5a0395bb00c6b27402d/tabl1.csv" + "url": "https://gist.githubusercontent.com/roll/ba1c358f1daa994f8094633669d60f50/raw/03e0e54f9d4df7ff08b0d0db937fe5d720d8dfe6/table2.csv" }, "response": { - "bodySize": 29, + "bodySize": 8, "content": { "mimeType": "text/plain; charset=utf-8", - "size": 29, - "text": "id,name\n1,english\n2,中国人" + "size": 8, + "text": "3,german" }, "cookies": [], "headers": [ @@ -48,7 +48,7 @@ }, { "name": "content-length", - "value": "29" + "value": "8" }, { "name": "content-security-policy", @@ -64,19 +64,19 @@ }, { "name": "date", - "value": "Fri, 27 Jun 2025 11:08:00 GMT" + "value": "Thu, 07 Aug 2025 07:49:22 GMT" }, { "name": "etag", - "value": "W/\"7e7cf438cb55bf28aa7f609346bfa9dc9efadbcfe2c8e2ea5c7d093632951d62\"" + "value": "W/\"5b8bd499e42ca79dc52ec0b203194d24d475f240c0b8ff6e0aab54d5798e008a\"" }, { "name": "expires", - "value": "Fri, 27 Jun 2025 11:13:00 GMT" + "value": "Thu, 07 Aug 2025 07:54:22 GMT" }, { "name": "source-age", - "value": "67" + "value": "0" }, { "name": "strict-transport-security", @@ -92,11 +92,11 @@ }, { "name": "x-cache", - "value": "HIT" + "value": "MISS" }, { "name": "x-cache-hits", - "value": "1" + "value": "0" }, { "name": "x-content-type-options", @@ -104,7 +104,7 @@ }, { "name": "x-fastly-request-id", - "value": "1a812923feaad90809c9c7877a640b355f7a8dc5" + "value": "e3f6b1cd316c828a6d26a6c7abf4eacabcd7427c" }, { "name": "x-frame-options", @@ -112,29 +112,29 @@ }, { "name": "x-github-request-id", - "value": "317B:3663E4:D636E:EF3FF:685E7B4C" + "value": "C776:1DBBBF:159D488:18A1D41:68945A7A" }, { "name": "x-served-by", - "value": "cache-lis1490022-LIS" + "value": "cache-lis1490045-LIS" }, { "name": "x-timer", - "value": "S1751022480.239594,VS0,VE1" + "value": "S1754552962.188191,VS0,VE191" }, { "name": "x-xss-protection", "value": "1; mode=block" } ], - "headersSize": 873, + "headersSize": 878, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-06-27T11:08:00.063Z", - "time": 178, + "startedDateTime": "2025-08-07T07:49:22.095Z", + "time": 396, "timings": { "blocked": -1, "connect": -1, @@ -142,29 +142,29 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 178 + "wait": 396 } }, { - "_id": "26b4c877aae0bbdbc9889671caf26f73", + "_id": "4c7b0fb73c46c7315d57cbb41752f90c", "_order": 0, "cache": {}, "request": { "bodySize": 0, "cookies": [], "headers": [], - "headersSize": 147, + "headersSize": 146, "httpVersion": "HTTP/1.1", "method": "GET", "queryString": [], - "url": "https://gist.githubusercontent.com/roll/ba1c358f1daa994f8094633669d60f50/raw/03e0e54f9d4df7ff08b0d0db937fe5d720d8dfe6/table2.csv" + "url": "https://gist.githubusercontent.com/roll/d20416f5e6dfc3fc1a7c4eef8452d581/raw/1c9cd1a020389921bf83e5a0395bb00c6b27402d/tabl1.csv" }, "response": { - "bodySize": 8, + "bodySize": 29, "content": { "mimeType": "text/plain; charset=utf-8", - "size": 8, - "text": "3,german" + "size": 29, + "text": "id,name\n1,english\n2,中国人" }, "cookies": [], "headers": [ @@ -186,7 +186,7 @@ }, { "name": "content-length", - "value": "8" + "value": "29" }, { "name": "content-security-policy", @@ -202,19 +202,19 @@ }, { "name": "date", - "value": "Fri, 27 Jun 2025 11:08:00 GMT" + "value": "Thu, 07 Aug 2025 07:49:22 GMT" }, { "name": "etag", - "value": "W/\"5b8bd499e42ca79dc52ec0b203194d24d475f240c0b8ff6e0aab54d5798e008a\"" + "value": "W/\"7e7cf438cb55bf28aa7f609346bfa9dc9efadbcfe2c8e2ea5c7d093632951d62\"" }, { "name": "expires", - "value": "Fri, 27 Jun 2025 11:13:00 GMT" + "value": "Thu, 07 Aug 2025 07:54:22 GMT" }, { "name": "source-age", - "value": "9" + "value": "0" }, { "name": "strict-transport-security", @@ -230,11 +230,11 @@ }, { "name": "x-cache", - "value": "HIT" + "value": "MISS" }, { "name": "x-cache-hits", - "value": "1" + "value": "0" }, { "name": "x-content-type-options", @@ -242,7 +242,7 @@ }, { "name": "x-fastly-request-id", - "value": "a9c8e4b9a305628ef72ef83689b4b8140501b803" + "value": "b119a2897ff927f7e523c0d19c3bd2e598e02caa" }, { "name": "x-frame-options", @@ -250,29 +250,29 @@ }, { "name": "x-github-request-id", - "value": "89C9:33FD66:D620E:EF85E:685E7B85" + "value": "DEC0:24DBEA:15E02C0:193FD98:68945A7D" }, { "name": "x-served-by", - "value": "cache-lis1490040-LIS" + "value": "cache-lis1490046-LIS" }, { "name": "x-timer", - "value": "S1751022480.244457,VS0,VE1" + "value": "S1754552962.178760,VS0,VE204" }, { "name": "x-xss-protection", "value": "1; mode=block" } ], - "headersSize": 871, + "headersSize": 879, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-06-27T11:08:00.063Z", - "time": 180, + "startedDateTime": "2025-08-07T07:49:22.095Z", + "time": 406, "timings": { "blocked": -1, "connect": -1, @@ -280,7 +280,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 180 + "wait": 406 } } ], diff --git a/csv/table/fixtures/generated/should-load-remote-file_1137408454/recording.har b/csv/table/fixtures/generated/loadCsvTable-file-variations-should-load-remote-file_4234893388/recording.har similarity index 86% rename from csv/table/fixtures/generated/should-load-remote-file_1137408454/recording.har rename to csv/table/fixtures/generated/loadCsvTable-file-variations-should-load-remote-file_4234893388/recording.har index e3adcae7..1897e489 100644 --- a/csv/table/fixtures/generated/should-load-remote-file_1137408454/recording.har +++ b/csv/table/fixtures/generated/loadCsvTable-file-variations-should-load-remote-file_4234893388/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "should load remote file", + "_recordingName": "loadCsvTable-file variations-should load remote file", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -68,7 +68,7 @@ }, { "name": "date", - "value": "Fri, 27 Jun 2025 11:00:42 GMT" + "value": "Thu, 07 Aug 2025 07:49:21 GMT" }, { "name": "etag", @@ -76,7 +76,7 @@ }, { "name": "expires", - "value": "Fri, 27 Jun 2025 11:05:42 GMT" + "value": "Thu, 07 Aug 2025 07:54:21 GMT" }, { "name": "source-age", @@ -96,7 +96,7 @@ }, { "name": "x-cache", - "value": "HIT" + "value": "MISS" }, { "name": "x-cache-hits", @@ -108,7 +108,7 @@ }, { "name": "x-fastly-request-id", - "value": "ef6f299a2d5a3def740b8b3bf4b2014349750906" + "value": "3c3523724b8cd2b888233b8accaa910abd099969" }, { "name": "x-frame-options", @@ -116,29 +116,29 @@ }, { "name": "x-github-request-id", - "value": "574A:2F9F3:2787D:2C8BD:685E6F3A" + "value": "D0E2:1C49BB:154BB4B:18AC644:68945A7D" }, { "name": "x-served-by", - "value": "cache-lis1490037-LIS" + "value": "cache-lis1490032-LIS" }, { "name": "x-timer", - "value": "S1751022042.364693,VS0,VE181" + "value": "S1754552962.771787,VS0,VE182" }, { "name": "x-xss-protection", "value": "1; mode=block" } ], - "headersSize": 897, + "headersSize": 903, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-06-27T11:00:42.220Z", - "time": 321, + "startedDateTime": "2025-08-07T07:49:21.578Z", + "time": 499, "timings": { "blocked": -1, "connect": -1, @@ -146,7 +146,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 321 + "wait": 499 } } ], diff --git a/datahub/package/fixtures/generated/load.spec.ts.snap b/datahub/package/fixtures/generated/load.spec.ts.snap deleted file mode 100644 index 0bce5116..00000000 --- a/datahub/package/fixtures/generated/load.spec.ts.snap +++ /dev/null @@ -1,78 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`loadPackageFromDatahub > should load a package 1`] = ` -{ - "$schema": undefined, - "collection": "air-pollution", - "description": "Data about the EU emission trading system (ETS). The EU emission trading system (ETS) is one of the main measures introduced by the EU to achieve cost-efficient reductions of greenhouse gas emissions and reach its targets under the Kyoto Protocol and other commitments. The data mainly comes from the EU Transaction Log (EUTL). ", - "homepage": "http://www.eea.europa.eu/data-and-maps/data/european-union-emissions-trading-scheme-eu-ets-data-from-citl-7/", - "licenses": [ - { - "name": "ODC-PDDL-1.0", - "path": "http://opendatacommons.org/licenses/pddl/", - "title": "Open Data Commons Public Domain Dedication and License v1.0", - }, - ], - "name": "eu-emissions-trading-system", - "resources": [ - { - "$schema": undefined, - "format": "csv", - "mediatype": "text/csv", - "name": "eu-ets", - "path": "https://datahub.io/core/eu-emissions-trading-system/data/eu-ets.csv", - "schema": { - "$schema": undefined, - "descriptor": { - "fields": [ - { - "description": "International Country Code (ISO 3166-1-Alpha-2 code elements)", - "name": "country_code", - "type": "string", - }, - { - "description": "Country name", - "name": "country", - "type": "string", - }, - { - "description": "Main activity label", - "name": "main activity sector name", - "type": "string", - }, - { - "description": "ETS information", - "name": "ETS information", - "type": "string", - }, - { - "description": "Annual data mainly in YYYY format, but also may include stings Eg: Total 1st trading period (05-07)", - "name": "year", - "type": "string", - }, - { - "description": "measure value", - "name": "value", - "type": "number", - }, - { - "description": "Unit of the measure value (in tonne of CO2-equ.)", - "name": "unit", - "type": "string", - }, - ], - }, - }, - }, - ], - "sources": [ - { - "name": "EU ETS data", - "path": "http://www.eea.europa.eu/data-and-maps/data/european-union-emissions-trading-scheme-eu-ets-data-from-citl-7/eu-ets-data-download-latest-version/citl_v19.zip/at_download/file", - "title": "EU ETS data", - }, - ], - "title": "European Union Emissions Trading System (EU ETS) data from EUTL", - "version": "19", -} -`; diff --git a/datahub/package/fixtures/generated/should-load-a-package_2675098929/recording.har b/datahub/package/fixtures/generated/should-load-a-package_2675098929/recording.har deleted file mode 100644 index d8c1c445..00000000 --- a/datahub/package/fixtures/generated/should-load-a-package_2675098929/recording.har +++ /dev/null @@ -1,120 +0,0 @@ -{ - "log": { - "_recordingName": "should load a package", - "creator": { - "comment": "persister:fs", - "name": "Polly.JS", - "version": "6.0.6" - }, - "entries": [ - { - "_id": "112b2b5082e12d69e05cd1b01899c663", - "_order": 0, - "cache": {}, - "request": { - "bodySize": 0, - "cookies": [], - "headers": [], - "headersSize": 87, - "httpVersion": "HTTP/1.1", - "method": "GET", - "queryString": [], - "url": "https://datahub.io/core/eu-emissions-trading-system/datapackage.json" - }, - "response": { - "bodySize": 2430, - "content": { - "mimeType": "application/json", - "size": 2430, - "text": "{\n \"name\": \"eu-emissions-trading-system\",\n \"title\": \"European Union Emissions Trading System (EU ETS) data from EUTL\",\n \"description\": \"Data about the EU emission trading system (ETS). The EU emission trading system (ETS) is one of the main measures introduced by the EU to achieve cost-efficient reductions of greenhouse gas emissions and reach its targets under the Kyoto Protocol and other commitments. The data mainly comes from the EU Transaction Log (EUTL). \",\n \"homepage\": \"http://www.eea.europa.eu/data-and-maps/data/european-union-emissions-trading-scheme-eu-ets-data-from-citl-7/\",\n \"version\": \"19\",\n \"licenses\": [\n {\n \"name\": \"ODC-PDDL-1.0\",\n \"path\": \"http://opendatacommons.org/licenses/pddl/\",\n \"title\": \"Open Data Commons Public Domain Dedication and License v1.0\"\n }\n ],\n \"sources\": [\n {\n \"name\": \"EU ETS data\",\n \"path\": \"http://www.eea.europa.eu/data-and-maps/data/european-union-emissions-trading-scheme-eu-ets-data-from-citl-7/eu-ets-data-download-latest-version/citl_v19.zip/at_download/file\",\n \"title\": \"EU ETS data\"\n }\n ],\n \"resources\": [\n {\n \"name\": \"eu-ets\",\n \"path\": \"data/eu-ets.csv\",\n \"format\": \"csv\",\n \"mediatype\": \"text/csv\",\n \"schema\": {\n \"fields\": [\n {\n \"name\": \"country_code\",\n \"type\": \"string\",\n \"description\": \"International Country Code (ISO 3166-1-Alpha-2 code elements)\"\n },\n {\n \"name\": \"country\",\n \"type\": \"string\",\n \"description\": \"Country name\"\n },\n {\n \"name\": \"main activity sector name\",\n \"type\": \"string\",\n \"description\": \"Main activity label\"\n },\n {\n \"name\": \"ETS information\",\n \"type\": \"string\",\n \"description\": \"ETS information\"\n },\n {\n \"name\": \"year\",\n \"type\": \"string\",\n \"description\": \"Annual data mainly in YYYY format, but also may include stings Eg: Total 1st trading period (05-07)\"\n },\n {\n \"name\": \"value\",\n \"type\": \"number\",\n \"description\": \"measure value\"\n },\n {\n \"name\": \"unit\",\n \"type\": \"string\",\n \"description\": \"Unit of the measure value (in tonne of CO2-equ.)\"\n }\n ]\n }\n }\n ],\n \"collection\": \"air-pollution\"\n}" - }, - "cookies": [], - "headers": [ - { - "name": "alt-svc", - "value": "h3=\":443\"; ma=86400" - }, - { - "name": "cache-control", - "value": "no-cache" - }, - { - "name": "cf-cache-status", - "value": "DYNAMIC" - }, - { - "name": "cf-ray", - "value": "94da27d18aa4f767-MAD" - }, - { - "name": "connection", - "value": "keep-alive" - }, - { - "name": "content-encoding", - "value": "br" - }, - { - "name": "content-type", - "value": "application/json" - }, - { - "name": "date", - "value": "Tue, 10 Jun 2025 16:13:21 GMT" - }, - { - "name": "etag", - "value": "W/\"ad344f81f0b1918873111810eca6be93\"" - }, - { - "name": "last-modified", - "value": "Fri, 11 Oct 2024 15:54:28 GMT" - }, - { - "name": "nel", - "value": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}" - }, - { - "name": "report-to", - "value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=Pd3MEybKwJQbXN75Ak0GZqTkYHeYS6thN6bUsIfPk1qn8huNN97%2BTOaT5lBH%2FIOJozE56Th8UhrCv0BmIVsuSEaJQLwxn1MW41ATAeT%2BVuErcHOW8iiys%2BhS8IWxTj7Q\"}],\"group\":\"cf-nel\",\"max_age\":604800}" - }, - { - "name": "server", - "value": "cloudflare" - }, - { - "name": "server-timing", - "value": "cfL4;desc=\"?proto=TCP&rtt=48497&min_rtt=48254&rtt_var=14031&sent=5&recv=6&lost=0&retrans=0&sent_bytes=2830&recv_bytes=711&delivery_rate=84793&cwnd=252&unsent_bytes=0&cid=5978938543d4c050&ts=144&x=0\"" - }, - { - "name": "transfer-encoding", - "value": "chunked" - }, - { - "name": "vary", - "value": "Accept-Encoding" - } - ], - "headersSize": 925, - "httpVersion": "HTTP/1.1", - "redirectURL": "", - "status": 200, - "statusText": "OK" - }, - "startedDateTime": "2025-06-10T16:13:20.721Z", - "time": 908, - "timings": { - "blocked": -1, - "connect": -1, - "dns": -1, - "receive": 0, - "send": 0, - "ssl": -1, - "wait": 908 - } - } - ], - "pages": [], - "version": "1.2" - } -} diff --git a/github/package/fixtures/generated/should-load-a-package_2675098929/recording.har b/github/package/fixtures/generated/loadPackageFromGithub-should-load-a-package_1044819575/recording.har similarity index 96% rename from github/package/fixtures/generated/should-load-a-package_2675098929/recording.har rename to github/package/fixtures/generated/loadPackageFromGithub-should-load-a-package_1044819575/recording.har index 2017f36b..eb7d49e9 100644 --- a/github/package/fixtures/generated/should-load-a-package_2675098929/recording.har +++ b/github/package/fixtures/generated/loadPackageFromGithub-should-load-a-package_1044819575/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "should load a package", + "_recordingName": "loadPackageFromGithub-should load a package", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -64,7 +64,7 @@ }, { "name": "date", - "value": "Wed, 28 May 2025 09:59:41 GMT" + "value": "Thu, 07 Aug 2025 07:49:25 GMT" }, { "name": "etag", @@ -108,7 +108,7 @@ }, { "name": "x-github-request-id", - "value": "3878:1F0C59:13CFC:1456C:6836DE8D" + "value": "2359:39D094:F0DA73:E1E475:68945A85" }, { "name": "x-ratelimit-limit", @@ -120,7 +120,7 @@ }, { "name": "x-ratelimit-reset", - "value": "1748429981" + "value": "1754556565" }, { "name": "x-ratelimit-resource", @@ -135,14 +135,14 @@ "value": "0" } ], - "headersSize": 1292, + "headersSize": 1294, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-05-28T09:59:40.738Z", - "time": 759, + "startedDateTime": "2025-08-07T07:49:25.318Z", + "time": 520, "timings": { "blocked": -1, "connect": -1, @@ -150,7 +150,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 759 + "wait": 520 } }, { @@ -215,7 +215,7 @@ }, { "name": "date", - "value": "Wed, 28 May 2025 09:59:41 GMT" + "value": "Thu, 07 Aug 2025 07:49:25 GMT" }, { "name": "etag", @@ -259,7 +259,7 @@ }, { "name": "x-github-request-id", - "value": "3878:1F0C59:13E18:146B0:6836DE8D" + "value": "2359:39D094:F0DC2F:E1E5F1:68945A85" }, { "name": "x-ratelimit-limit", @@ -271,7 +271,7 @@ }, { "name": "x-ratelimit-reset", - "value": "1748429981" + "value": "1754556565" }, { "name": "x-ratelimit-resource", @@ -286,14 +286,14 @@ "value": "0" } ], - "headersSize": 1291, + "headersSize": 1293, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-05-28T09:59:41.502Z", - "time": 288, + "startedDateTime": "2025-08-07T07:49:25.841Z", + "time": 281, "timings": { "blocked": -1, "connect": -1, @@ -301,7 +301,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 288 + "wait": 281 } } ], diff --git a/github/package/fixtures/generated/should-merge-datapackage-json-if-present_1884846678/recording.har b/github/package/fixtures/generated/loadPackageFromGithub-should-merge-datapackage-json-if-present_618226504/recording.har similarity index 93% rename from github/package/fixtures/generated/should-merge-datapackage-json-if-present_1884846678/recording.har rename to github/package/fixtures/generated/loadPackageFromGithub-should-merge-datapackage-json-if-present_618226504/recording.har index 55aa6aec..f89c040d 100644 --- a/github/package/fixtures/generated/should-merge-datapackage-json-if-present_1884846678/recording.har +++ b/github/package/fixtures/generated/loadPackageFromGithub-should-merge-datapackage-json-if-present_618226504/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "should merge datapackage.json if present", + "_recordingName": "loadPackageFromGithub-should merge datapackage.json if present", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -22,11 +22,11 @@ "url": "https://api.github.com/repos/roll/currency-codes" }, "response": { - "bodySize": 1990, + "bodySize": 15526, "content": { "mimeType": "application/json; charset=utf-8", - "size": 1990, - "text": "{\"id\":383820850,\"node_id\":\"MDEwOlJlcG9zaXRvcnkzODM4MjA4NTA=\",\"name\":\"currency-codes\",\"full_name\":\"roll/currency-codes\",\"private\":false,\"owner\":{\"login\":\"roll\",\"id\":557395,\"node_id\":\"MDQ6VXNlcjU1NzM5NQ==\",\"avatar_url\":\"https://avatars.githubusercontent.com/u/557395?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/roll\",\"html_url\":\"https://github.com/roll\",\"followers_url\":\"https://api.github.com/users/roll/followers\",\"following_url\":\"https://api.github.com/users/roll/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/roll/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/roll/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/roll/subscriptions\",\"organizations_url\":\"https://api.github.com/users/roll/orgs\",\"repos_url\":\"https://api.github.com/users/roll/repos\",\"events_url\":\"https://api.github.com/users/roll/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/roll/received_events\",\"type\":\"User\",\"user_view_type\":\"public\",\"site_admin\":false},\"html_url\":\"https://github.com/roll/currency-codes\",\"description\":\"ISO 4217 List of Currencies and Currency Codes\",\"fork\":true,\"url\":\"https://api.github.com/repos/roll/currency-codes\",\"forks_url\":\"https://api.github.com/repos/roll/currency-codes/forks\",\"keys_url\":\"https://api.github.com/repos/roll/currency-codes/keys{/key_id}\",\"collaborators_url\":\"https://api.github.com/repos/roll/currency-codes/collaborators{/collaborator}\",\"teams_url\":\"https://api.github.com/repos/roll/currency-codes/teams\",\"hooks_url\":\"https://api.github.com/repos/roll/currency-codes/hooks\",\"issue_events_url\":\"https://api.github.com/repos/roll/currency-codes/issues/events{/number}\",\"events_url\":\"https://api.github.com/repos/roll/currency-codes/events\",\"assignees_url\":\"https://api.github.com/repos/roll/currency-codes/assignees{/user}\",\"branches_url\":\"https://api.github.com/repos/roll/currency-codes/branches{/branch}\",\"tags_url\":\"https://api.github.com/repos/roll/currency-codes/tags\",\"blobs_url\":\"https://api.github.com/repos/roll/currency-codes/git/blobs{/sha}\",\"git_tags_url\":\"https://api.github.com/repos/roll/currency-codes/git/tags{/sha}\",\"git_refs_url\":\"https://api.github.com/repos/roll/currency-codes/git/refs{/sha}\",\"trees_url\":\"https://api.github.com/repos/roll/currency-codes/git/trees{/sha}\",\"statuses_url\":\"https://api.github.com/repos/roll/currency-codes/statuses/{sha}\",\"languages_url\":\"https://api.github.com/repos/roll/currency-codes/languages\",\"stargazers_url\":\"https://api.github.com/repos/roll/currency-codes/stargazers\",\"contributors_url\":\"https://api.github.com/repos/roll/currency-codes/contributors\",\"subscribers_url\":\"https://api.github.com/repos/roll/currency-codes/subscribers\",\"subscription_url\":\"https://api.github.com/repos/roll/currency-codes/subscription\",\"commits_url\":\"https://api.github.com/repos/roll/currency-codes/commits{/sha}\",\"git_commits_url\":\"https://api.github.com/repos/roll/currency-codes/git/commits{/sha}\",\"comments_url\":\"https://api.github.com/repos/roll/currency-codes/comments{/number}\",\"issue_comment_url\":\"https://api.github.com/repos/roll/currency-codes/issues/comments{/number}\",\"contents_url\":\"https://api.github.com/repos/roll/currency-codes/contents/{+path}\",\"compare_url\":\"https://api.github.com/repos/roll/currency-codes/compare/{base}...{head}\",\"merges_url\":\"https://api.github.com/repos/roll/currency-codes/merges\",\"archive_url\":\"https://api.github.com/repos/roll/currency-codes/{archive_format}{/ref}\",\"downloads_url\":\"https://api.github.com/repos/roll/currency-codes/downloads\",\"issues_url\":\"https://api.github.com/repos/roll/currency-codes/issues{/number}\",\"pulls_url\":\"https://api.github.com/repos/roll/currency-codes/pulls{/number}\",\"milestones_url\":\"https://api.github.com/repos/roll/currency-codes/milestones{/number}\",\"notifications_url\":\"https://api.github.com/repos/roll/currency-codes/notifications{?since,all,participating}\",\"labels_url\":\"https://api.github.com/repos/roll/currency-codes/labels{/name}\",\"releases_url\":\"https://api.github.com/repos/roll/currency-codes/releases{/id}\",\"deployments_url\":\"https://api.github.com/repos/roll/currency-codes/deployments\",\"created_at\":\"2021-07-07T14:09:49Z\",\"updated_at\":\"2021-07-07T14:47:03Z\",\"pushed_at\":\"2021-07-07T14:47:01Z\",\"git_url\":\"git://github.com/roll/currency-codes.git\",\"ssh_url\":\"git@github.com:roll/currency-codes.git\",\"clone_url\":\"https://github.com/roll/currency-codes.git\",\"svn_url\":\"https://github.com/roll/currency-codes\",\"homepage\":\"https://datahub.io/core/currency-codes\",\"size\":87,\"stargazers_count\":0,\"watchers_count\":0,\"language\":\"Shell\",\"has_issues\":false,\"has_projects\":true,\"has_downloads\":true,\"has_wiki\":true,\"has_pages\":false,\"has_discussions\":false,\"forks_count\":0,\"mirror_url\":null,\"archived\":false,\"disabled\":false,\"open_issues_count\":0,\"license\":null,\"allow_forking\":true,\"is_template\":false,\"web_commit_signoff_required\":false,\"topics\":[],\"visibility\":\"public\",\"forks\":0,\"open_issues\":0,\"watchers\":0,\"default_branch\":\"master\",\"temp_clone_token\":null,\"parent\":{\"id\":6696644,\"node_id\":\"MDEwOlJlcG9zaXRvcnk2Njk2NjQ0\",\"name\":\"currency-codes\",\"full_name\":\"datasets/currency-codes\",\"private\":false,\"owner\":{\"login\":\"datasets\",\"id\":1643515,\"node_id\":\"MDEyOk9yZ2FuaXphdGlvbjE2NDM1MTU=\",\"avatar_url\":\"https://avatars.githubusercontent.com/u/1643515?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/datasets\",\"html_url\":\"https://github.com/datasets\",\"followers_url\":\"https://api.github.com/users/datasets/followers\",\"following_url\":\"https://api.github.com/users/datasets/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/datasets/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/datasets/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/datasets/subscriptions\",\"organizations_url\":\"https://api.github.com/users/datasets/orgs\",\"repos_url\":\"https://api.github.com/users/datasets/repos\",\"events_url\":\"https://api.github.com/users/datasets/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/datasets/received_events\",\"type\":\"Organization\",\"user_view_type\":\"public\",\"site_admin\":false},\"html_url\":\"https://github.com/datasets/currency-codes\",\"description\":\"ISO 4217 List of Currencies and Currency Codes\",\"fork\":false,\"url\":\"https://api.github.com/repos/datasets/currency-codes\",\"forks_url\":\"https://api.github.com/repos/datasets/currency-codes/forks\",\"keys_url\":\"https://api.github.com/repos/datasets/currency-codes/keys{/key_id}\",\"collaborators_url\":\"https://api.github.com/repos/datasets/currency-codes/collaborators{/collaborator}\",\"teams_url\":\"https://api.github.com/repos/datasets/currency-codes/teams\",\"hooks_url\":\"https://api.github.com/repos/datasets/currency-codes/hooks\",\"issue_events_url\":\"https://api.github.com/repos/datasets/currency-codes/issues/events{/number}\",\"events_url\":\"https://api.github.com/repos/datasets/currency-codes/events\",\"assignees_url\":\"https://api.github.com/repos/datasets/currency-codes/assignees{/user}\",\"branches_url\":\"https://api.github.com/repos/datasets/currency-codes/branches{/branch}\",\"tags_url\":\"https://api.github.com/repos/datasets/currency-codes/tags\",\"blobs_url\":\"https://api.github.com/repos/datasets/currency-codes/git/blobs{/sha}\",\"git_tags_url\":\"https://api.github.com/repos/datasets/currency-codes/git/tags{/sha}\",\"git_refs_url\":\"https://api.github.com/repos/datasets/currency-codes/git/refs{/sha}\",\"trees_url\":\"https://api.github.com/repos/datasets/currency-codes/git/trees{/sha}\",\"statuses_url\":\"https://api.github.com/repos/datasets/currency-codes/statuses/{sha}\",\"languages_url\":\"https://api.github.com/repos/datasets/currency-codes/languages\",\"stargazers_url\":\"https://api.github.com/repos/datasets/currency-codes/stargazers\",\"contributors_url\":\"https://api.github.com/repos/datasets/currency-codes/contributors\",\"subscribers_url\":\"https://api.github.com/repos/datasets/currency-codes/subscribers\",\"subscription_url\":\"https://api.github.com/repos/datasets/currency-codes/subscription\",\"commits_url\":\"https://api.github.com/repos/datasets/currency-codes/commits{/sha}\",\"git_commits_url\":\"https://api.github.com/repos/datasets/currency-codes/git/commits{/sha}\",\"comments_url\":\"https://api.github.com/repos/datasets/currency-codes/comments{/number}\",\"issue_comment_url\":\"https://api.github.com/repos/datasets/currency-codes/issues/comments{/number}\",\"contents_url\":\"https://api.github.com/repos/datasets/currency-codes/contents/{+path}\",\"compare_url\":\"https://api.github.com/repos/datasets/currency-codes/compare/{base}...{head}\",\"merges_url\":\"https://api.github.com/repos/datasets/currency-codes/merges\",\"archive_url\":\"https://api.github.com/repos/datasets/currency-codes/{archive_format}{/ref}\",\"downloads_url\":\"https://api.github.com/repos/datasets/currency-codes/downloads\",\"issues_url\":\"https://api.github.com/repos/datasets/currency-codes/issues{/number}\",\"pulls_url\":\"https://api.github.com/repos/datasets/currency-codes/pulls{/number}\",\"milestones_url\":\"https://api.github.com/repos/datasets/currency-codes/milestones{/number}\",\"notifications_url\":\"https://api.github.com/repos/datasets/currency-codes/notifications{?since,all,participating}\",\"labels_url\":\"https://api.github.com/repos/datasets/currency-codes/labels{/name}\",\"releases_url\":\"https://api.github.com/repos/datasets/currency-codes/releases{/id}\",\"deployments_url\":\"https://api.github.com/repos/datasets/currency-codes/deployments\",\"created_at\":\"2012-11-14T23:19:47Z\",\"updated_at\":\"2025-04-15T19:49:30Z\",\"pushed_at\":\"2025-04-01T01:26:10Z\",\"git_url\":\"git://github.com/datasets/currency-codes.git\",\"ssh_url\":\"git@github.com:datasets/currency-codes.git\",\"clone_url\":\"https://github.com/datasets/currency-codes.git\",\"svn_url\":\"https://github.com/datasets/currency-codes\",\"homepage\":\"https://datahub.io/core/currency-codes\",\"size\":79,\"stargazers_count\":158,\"watchers_count\":158,\"language\":\"Shell\",\"has_issues\":true,\"has_projects\":true,\"has_downloads\":true,\"has_wiki\":true,\"has_pages\":false,\"has_discussions\":false,\"forks_count\":179,\"mirror_url\":null,\"archived\":false,\"disabled\":false,\"open_issues_count\":3,\"license\":null,\"allow_forking\":true,\"is_template\":false,\"web_commit_signoff_required\":false,\"topics\":[],\"visibility\":\"public\",\"forks\":179,\"open_issues\":3,\"watchers\":158,\"default_branch\":\"main\"},\"source\":{\"id\":6696644,\"node_id\":\"MDEwOlJlcG9zaXRvcnk2Njk2NjQ0\",\"name\":\"currency-codes\",\"full_name\":\"datasets/currency-codes\",\"private\":false,\"owner\":{\"login\":\"datasets\",\"id\":1643515,\"node_id\":\"MDEyOk9yZ2FuaXphdGlvbjE2NDM1MTU=\",\"avatar_url\":\"https://avatars.githubusercontent.com/u/1643515?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/datasets\",\"html_url\":\"https://github.com/datasets\",\"followers_url\":\"https://api.github.com/users/datasets/followers\",\"following_url\":\"https://api.github.com/users/datasets/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/datasets/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/datasets/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/datasets/subscriptions\",\"organizations_url\":\"https://api.github.com/users/datasets/orgs\",\"repos_url\":\"https://api.github.com/users/datasets/repos\",\"events_url\":\"https://api.github.com/users/datasets/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/datasets/received_events\",\"type\":\"Organization\",\"user_view_type\":\"public\",\"site_admin\":false},\"html_url\":\"https://github.com/datasets/currency-codes\",\"description\":\"ISO 4217 List of Currencies and Currency Codes\",\"fork\":false,\"url\":\"https://api.github.com/repos/datasets/currency-codes\",\"forks_url\":\"https://api.github.com/repos/datasets/currency-codes/forks\",\"keys_url\":\"https://api.github.com/repos/datasets/currency-codes/keys{/key_id}\",\"collaborators_url\":\"https://api.github.com/repos/datasets/currency-codes/collaborators{/collaborator}\",\"teams_url\":\"https://api.github.com/repos/datasets/currency-codes/teams\",\"hooks_url\":\"https://api.github.com/repos/datasets/currency-codes/hooks\",\"issue_events_url\":\"https://api.github.com/repos/datasets/currency-codes/issues/events{/number}\",\"events_url\":\"https://api.github.com/repos/datasets/currency-codes/events\",\"assignees_url\":\"https://api.github.com/repos/datasets/currency-codes/assignees{/user}\",\"branches_url\":\"https://api.github.com/repos/datasets/currency-codes/branches{/branch}\",\"tags_url\":\"https://api.github.com/repos/datasets/currency-codes/tags\",\"blobs_url\":\"https://api.github.com/repos/datasets/currency-codes/git/blobs{/sha}\",\"git_tags_url\":\"https://api.github.com/repos/datasets/currency-codes/git/tags{/sha}\",\"git_refs_url\":\"https://api.github.com/repos/datasets/currency-codes/git/refs{/sha}\",\"trees_url\":\"https://api.github.com/repos/datasets/currency-codes/git/trees{/sha}\",\"statuses_url\":\"https://api.github.com/repos/datasets/currency-codes/statuses/{sha}\",\"languages_url\":\"https://api.github.com/repos/datasets/currency-codes/languages\",\"stargazers_url\":\"https://api.github.com/repos/datasets/currency-codes/stargazers\",\"contributors_url\":\"https://api.github.com/repos/datasets/currency-codes/contributors\",\"subscribers_url\":\"https://api.github.com/repos/datasets/currency-codes/subscribers\",\"subscription_url\":\"https://api.github.com/repos/datasets/currency-codes/subscription\",\"commits_url\":\"https://api.github.com/repos/datasets/currency-codes/commits{/sha}\",\"git_commits_url\":\"https://api.github.com/repos/datasets/currency-codes/git/commits{/sha}\",\"comments_url\":\"https://api.github.com/repos/datasets/currency-codes/comments{/number}\",\"issue_comment_url\":\"https://api.github.com/repos/datasets/currency-codes/issues/comments{/number}\",\"contents_url\":\"https://api.github.com/repos/datasets/currency-codes/contents/{+path}\",\"compare_url\":\"https://api.github.com/repos/datasets/currency-codes/compare/{base}...{head}\",\"merges_url\":\"https://api.github.com/repos/datasets/currency-codes/merges\",\"archive_url\":\"https://api.github.com/repos/datasets/currency-codes/{archive_format}{/ref}\",\"downloads_url\":\"https://api.github.com/repos/datasets/currency-codes/downloads\",\"issues_url\":\"https://api.github.com/repos/datasets/currency-codes/issues{/number}\",\"pulls_url\":\"https://api.github.com/repos/datasets/currency-codes/pulls{/number}\",\"milestones_url\":\"https://api.github.com/repos/datasets/currency-codes/milestones{/number}\",\"notifications_url\":\"https://api.github.com/repos/datasets/currency-codes/notifications{?since,all,participating}\",\"labels_url\":\"https://api.github.com/repos/datasets/currency-codes/labels{/name}\",\"releases_url\":\"https://api.github.com/repos/datasets/currency-codes/releases{/id}\",\"deployments_url\":\"https://api.github.com/repos/datasets/currency-codes/deployments\",\"created_at\":\"2012-11-14T23:19:47Z\",\"updated_at\":\"2025-04-15T19:49:30Z\",\"pushed_at\":\"2025-04-01T01:26:10Z\",\"git_url\":\"git://github.com/datasets/currency-codes.git\",\"ssh_url\":\"git@github.com:datasets/currency-codes.git\",\"clone_url\":\"https://github.com/datasets/currency-codes.git\",\"svn_url\":\"https://github.com/datasets/currency-codes\",\"homepage\":\"https://datahub.io/core/currency-codes\",\"size\":79,\"stargazers_count\":158,\"watchers_count\":158,\"language\":\"Shell\",\"has_issues\":true,\"has_projects\":true,\"has_downloads\":true,\"has_wiki\":true,\"has_pages\":false,\"has_discussions\":false,\"forks_count\":179,\"mirror_url\":null,\"archived\":false,\"disabled\":false,\"open_issues_count\":3,\"license\":null,\"allow_forking\":true,\"is_template\":false,\"web_commit_signoff_required\":false,\"topics\":[],\"visibility\":\"public\",\"forks\":179,\"open_issues\":3,\"watchers\":158,\"default_branch\":\"main\"},\"network_count\":179,\"subscribers_count\":0}" + "size": 15526, + "text": "{\"id\":383820850,\"node_id\":\"MDEwOlJlcG9zaXRvcnkzODM4MjA4NTA=\",\"name\":\"currency-codes\",\"full_name\":\"roll/currency-codes\",\"private\":false,\"owner\":{\"login\":\"roll\",\"id\":557395,\"node_id\":\"MDQ6VXNlcjU1NzM5NQ==\",\"avatar_url\":\"https://avatars.githubusercontent.com/u/557395?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/roll\",\"html_url\":\"https://github.com/roll\",\"followers_url\":\"https://api.github.com/users/roll/followers\",\"following_url\":\"https://api.github.com/users/roll/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/roll/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/roll/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/roll/subscriptions\",\"organizations_url\":\"https://api.github.com/users/roll/orgs\",\"repos_url\":\"https://api.github.com/users/roll/repos\",\"events_url\":\"https://api.github.com/users/roll/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/roll/received_events\",\"type\":\"User\",\"user_view_type\":\"public\",\"site_admin\":false},\"html_url\":\"https://github.com/roll/currency-codes\",\"description\":\"ISO 4217 List of Currencies and Currency Codes\",\"fork\":true,\"url\":\"https://api.github.com/repos/roll/currency-codes\",\"forks_url\":\"https://api.github.com/repos/roll/currency-codes/forks\",\"keys_url\":\"https://api.github.com/repos/roll/currency-codes/keys{/key_id}\",\"collaborators_url\":\"https://api.github.com/repos/roll/currency-codes/collaborators{/collaborator}\",\"teams_url\":\"https://api.github.com/repos/roll/currency-codes/teams\",\"hooks_url\":\"https://api.github.com/repos/roll/currency-codes/hooks\",\"issue_events_url\":\"https://api.github.com/repos/roll/currency-codes/issues/events{/number}\",\"events_url\":\"https://api.github.com/repos/roll/currency-codes/events\",\"assignees_url\":\"https://api.github.com/repos/roll/currency-codes/assignees{/user}\",\"branches_url\":\"https://api.github.com/repos/roll/currency-codes/branches{/branch}\",\"tags_url\":\"https://api.github.com/repos/roll/currency-codes/tags\",\"blobs_url\":\"https://api.github.com/repos/roll/currency-codes/git/blobs{/sha}\",\"git_tags_url\":\"https://api.github.com/repos/roll/currency-codes/git/tags{/sha}\",\"git_refs_url\":\"https://api.github.com/repos/roll/currency-codes/git/refs{/sha}\",\"trees_url\":\"https://api.github.com/repos/roll/currency-codes/git/trees{/sha}\",\"statuses_url\":\"https://api.github.com/repos/roll/currency-codes/statuses/{sha}\",\"languages_url\":\"https://api.github.com/repos/roll/currency-codes/languages\",\"stargazers_url\":\"https://api.github.com/repos/roll/currency-codes/stargazers\",\"contributors_url\":\"https://api.github.com/repos/roll/currency-codes/contributors\",\"subscribers_url\":\"https://api.github.com/repos/roll/currency-codes/subscribers\",\"subscription_url\":\"https://api.github.com/repos/roll/currency-codes/subscription\",\"commits_url\":\"https://api.github.com/repos/roll/currency-codes/commits{/sha}\",\"git_commits_url\":\"https://api.github.com/repos/roll/currency-codes/git/commits{/sha}\",\"comments_url\":\"https://api.github.com/repos/roll/currency-codes/comments{/number}\",\"issue_comment_url\":\"https://api.github.com/repos/roll/currency-codes/issues/comments{/number}\",\"contents_url\":\"https://api.github.com/repos/roll/currency-codes/contents/{+path}\",\"compare_url\":\"https://api.github.com/repos/roll/currency-codes/compare/{base}...{head}\",\"merges_url\":\"https://api.github.com/repos/roll/currency-codes/merges\",\"archive_url\":\"https://api.github.com/repos/roll/currency-codes/{archive_format}{/ref}\",\"downloads_url\":\"https://api.github.com/repos/roll/currency-codes/downloads\",\"issues_url\":\"https://api.github.com/repos/roll/currency-codes/issues{/number}\",\"pulls_url\":\"https://api.github.com/repos/roll/currency-codes/pulls{/number}\",\"milestones_url\":\"https://api.github.com/repos/roll/currency-codes/milestones{/number}\",\"notifications_url\":\"https://api.github.com/repos/roll/currency-codes/notifications{?since,all,participating}\",\"labels_url\":\"https://api.github.com/repos/roll/currency-codes/labels{/name}\",\"releases_url\":\"https://api.github.com/repos/roll/currency-codes/releases{/id}\",\"deployments_url\":\"https://api.github.com/repos/roll/currency-codes/deployments\",\"created_at\":\"2021-07-07T14:09:49Z\",\"updated_at\":\"2021-07-07T14:47:03Z\",\"pushed_at\":\"2021-07-07T14:47:01Z\",\"git_url\":\"git://github.com/roll/currency-codes.git\",\"ssh_url\":\"git@github.com:roll/currency-codes.git\",\"clone_url\":\"https://github.com/roll/currency-codes.git\",\"svn_url\":\"https://github.com/roll/currency-codes\",\"homepage\":\"https://datahub.io/core/currency-codes\",\"size\":87,\"stargazers_count\":0,\"watchers_count\":0,\"language\":\"Shell\",\"has_issues\":false,\"has_projects\":true,\"has_downloads\":true,\"has_wiki\":true,\"has_pages\":false,\"has_discussions\":false,\"forks_count\":0,\"mirror_url\":null,\"archived\":false,\"disabled\":false,\"open_issues_count\":0,\"license\":null,\"allow_forking\":true,\"is_template\":false,\"web_commit_signoff_required\":false,\"topics\":[],\"visibility\":\"public\",\"forks\":0,\"open_issues\":0,\"watchers\":0,\"default_branch\":\"master\",\"temp_clone_token\":null,\"parent\":{\"id\":6696644,\"node_id\":\"MDEwOlJlcG9zaXRvcnk2Njk2NjQ0\",\"name\":\"currency-codes\",\"full_name\":\"datasets/currency-codes\",\"private\":false,\"owner\":{\"login\":\"datasets\",\"id\":1643515,\"node_id\":\"MDEyOk9yZ2FuaXphdGlvbjE2NDM1MTU=\",\"avatar_url\":\"https://avatars.githubusercontent.com/u/1643515?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/datasets\",\"html_url\":\"https://github.com/datasets\",\"followers_url\":\"https://api.github.com/users/datasets/followers\",\"following_url\":\"https://api.github.com/users/datasets/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/datasets/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/datasets/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/datasets/subscriptions\",\"organizations_url\":\"https://api.github.com/users/datasets/orgs\",\"repos_url\":\"https://api.github.com/users/datasets/repos\",\"events_url\":\"https://api.github.com/users/datasets/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/datasets/received_events\",\"type\":\"Organization\",\"user_view_type\":\"public\",\"site_admin\":false},\"html_url\":\"https://github.com/datasets/currency-codes\",\"description\":\"ISO 4217 List of Currencies and Currency Codes\",\"fork\":false,\"url\":\"https://api.github.com/repos/datasets/currency-codes\",\"forks_url\":\"https://api.github.com/repos/datasets/currency-codes/forks\",\"keys_url\":\"https://api.github.com/repos/datasets/currency-codes/keys{/key_id}\",\"collaborators_url\":\"https://api.github.com/repos/datasets/currency-codes/collaborators{/collaborator}\",\"teams_url\":\"https://api.github.com/repos/datasets/currency-codes/teams\",\"hooks_url\":\"https://api.github.com/repos/datasets/currency-codes/hooks\",\"issue_events_url\":\"https://api.github.com/repos/datasets/currency-codes/issues/events{/number}\",\"events_url\":\"https://api.github.com/repos/datasets/currency-codes/events\",\"assignees_url\":\"https://api.github.com/repos/datasets/currency-codes/assignees{/user}\",\"branches_url\":\"https://api.github.com/repos/datasets/currency-codes/branches{/branch}\",\"tags_url\":\"https://api.github.com/repos/datasets/currency-codes/tags\",\"blobs_url\":\"https://api.github.com/repos/datasets/currency-codes/git/blobs{/sha}\",\"git_tags_url\":\"https://api.github.com/repos/datasets/currency-codes/git/tags{/sha}\",\"git_refs_url\":\"https://api.github.com/repos/datasets/currency-codes/git/refs{/sha}\",\"trees_url\":\"https://api.github.com/repos/datasets/currency-codes/git/trees{/sha}\",\"statuses_url\":\"https://api.github.com/repos/datasets/currency-codes/statuses/{sha}\",\"languages_url\":\"https://api.github.com/repos/datasets/currency-codes/languages\",\"stargazers_url\":\"https://api.github.com/repos/datasets/currency-codes/stargazers\",\"contributors_url\":\"https://api.github.com/repos/datasets/currency-codes/contributors\",\"subscribers_url\":\"https://api.github.com/repos/datasets/currency-codes/subscribers\",\"subscription_url\":\"https://api.github.com/repos/datasets/currency-codes/subscription\",\"commits_url\":\"https://api.github.com/repos/datasets/currency-codes/commits{/sha}\",\"git_commits_url\":\"https://api.github.com/repos/datasets/currency-codes/git/commits{/sha}\",\"comments_url\":\"https://api.github.com/repos/datasets/currency-codes/comments{/number}\",\"issue_comment_url\":\"https://api.github.com/repos/datasets/currency-codes/issues/comments{/number}\",\"contents_url\":\"https://api.github.com/repos/datasets/currency-codes/contents/{+path}\",\"compare_url\":\"https://api.github.com/repos/datasets/currency-codes/compare/{base}...{head}\",\"merges_url\":\"https://api.github.com/repos/datasets/currency-codes/merges\",\"archive_url\":\"https://api.github.com/repos/datasets/currency-codes/{archive_format}{/ref}\",\"downloads_url\":\"https://api.github.com/repos/datasets/currency-codes/downloads\",\"issues_url\":\"https://api.github.com/repos/datasets/currency-codes/issues{/number}\",\"pulls_url\":\"https://api.github.com/repos/datasets/currency-codes/pulls{/number}\",\"milestones_url\":\"https://api.github.com/repos/datasets/currency-codes/milestones{/number}\",\"notifications_url\":\"https://api.github.com/repos/datasets/currency-codes/notifications{?since,all,participating}\",\"labels_url\":\"https://api.github.com/repos/datasets/currency-codes/labels{/name}\",\"releases_url\":\"https://api.github.com/repos/datasets/currency-codes/releases{/id}\",\"deployments_url\":\"https://api.github.com/repos/datasets/currency-codes/deployments\",\"created_at\":\"2012-11-14T23:19:47Z\",\"updated_at\":\"2025-08-02T21:09:44Z\",\"pushed_at\":\"2025-06-01T01:47:03Z\",\"git_url\":\"git://github.com/datasets/currency-codes.git\",\"ssh_url\":\"git@github.com:datasets/currency-codes.git\",\"clone_url\":\"https://github.com/datasets/currency-codes.git\",\"svn_url\":\"https://github.com/datasets/currency-codes\",\"homepage\":\"https://datahub.io/core/currency-codes\",\"size\":80,\"stargazers_count\":162,\"watchers_count\":162,\"language\":\"Shell\",\"has_issues\":true,\"has_projects\":true,\"has_downloads\":true,\"has_wiki\":true,\"has_pages\":false,\"has_discussions\":false,\"forks_count\":177,\"mirror_url\":null,\"archived\":false,\"disabled\":false,\"open_issues_count\":3,\"license\":null,\"allow_forking\":true,\"is_template\":false,\"web_commit_signoff_required\":false,\"topics\":[],\"visibility\":\"public\",\"forks\":177,\"open_issues\":3,\"watchers\":162,\"default_branch\":\"main\"},\"source\":{\"id\":6696644,\"node_id\":\"MDEwOlJlcG9zaXRvcnk2Njk2NjQ0\",\"name\":\"currency-codes\",\"full_name\":\"datasets/currency-codes\",\"private\":false,\"owner\":{\"login\":\"datasets\",\"id\":1643515,\"node_id\":\"MDEyOk9yZ2FuaXphdGlvbjE2NDM1MTU=\",\"avatar_url\":\"https://avatars.githubusercontent.com/u/1643515?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/datasets\",\"html_url\":\"https://github.com/datasets\",\"followers_url\":\"https://api.github.com/users/datasets/followers\",\"following_url\":\"https://api.github.com/users/datasets/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/datasets/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/datasets/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/datasets/subscriptions\",\"organizations_url\":\"https://api.github.com/users/datasets/orgs\",\"repos_url\":\"https://api.github.com/users/datasets/repos\",\"events_url\":\"https://api.github.com/users/datasets/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/datasets/received_events\",\"type\":\"Organization\",\"user_view_type\":\"public\",\"site_admin\":false},\"html_url\":\"https://github.com/datasets/currency-codes\",\"description\":\"ISO 4217 List of Currencies and Currency Codes\",\"fork\":false,\"url\":\"https://api.github.com/repos/datasets/currency-codes\",\"forks_url\":\"https://api.github.com/repos/datasets/currency-codes/forks\",\"keys_url\":\"https://api.github.com/repos/datasets/currency-codes/keys{/key_id}\",\"collaborators_url\":\"https://api.github.com/repos/datasets/currency-codes/collaborators{/collaborator}\",\"teams_url\":\"https://api.github.com/repos/datasets/currency-codes/teams\",\"hooks_url\":\"https://api.github.com/repos/datasets/currency-codes/hooks\",\"issue_events_url\":\"https://api.github.com/repos/datasets/currency-codes/issues/events{/number}\",\"events_url\":\"https://api.github.com/repos/datasets/currency-codes/events\",\"assignees_url\":\"https://api.github.com/repos/datasets/currency-codes/assignees{/user}\",\"branches_url\":\"https://api.github.com/repos/datasets/currency-codes/branches{/branch}\",\"tags_url\":\"https://api.github.com/repos/datasets/currency-codes/tags\",\"blobs_url\":\"https://api.github.com/repos/datasets/currency-codes/git/blobs{/sha}\",\"git_tags_url\":\"https://api.github.com/repos/datasets/currency-codes/git/tags{/sha}\",\"git_refs_url\":\"https://api.github.com/repos/datasets/currency-codes/git/refs{/sha}\",\"trees_url\":\"https://api.github.com/repos/datasets/currency-codes/git/trees{/sha}\",\"statuses_url\":\"https://api.github.com/repos/datasets/currency-codes/statuses/{sha}\",\"languages_url\":\"https://api.github.com/repos/datasets/currency-codes/languages\",\"stargazers_url\":\"https://api.github.com/repos/datasets/currency-codes/stargazers\",\"contributors_url\":\"https://api.github.com/repos/datasets/currency-codes/contributors\",\"subscribers_url\":\"https://api.github.com/repos/datasets/currency-codes/subscribers\",\"subscription_url\":\"https://api.github.com/repos/datasets/currency-codes/subscription\",\"commits_url\":\"https://api.github.com/repos/datasets/currency-codes/commits{/sha}\",\"git_commits_url\":\"https://api.github.com/repos/datasets/currency-codes/git/commits{/sha}\",\"comments_url\":\"https://api.github.com/repos/datasets/currency-codes/comments{/number}\",\"issue_comment_url\":\"https://api.github.com/repos/datasets/currency-codes/issues/comments{/number}\",\"contents_url\":\"https://api.github.com/repos/datasets/currency-codes/contents/{+path}\",\"compare_url\":\"https://api.github.com/repos/datasets/currency-codes/compare/{base}...{head}\",\"merges_url\":\"https://api.github.com/repos/datasets/currency-codes/merges\",\"archive_url\":\"https://api.github.com/repos/datasets/currency-codes/{archive_format}{/ref}\",\"downloads_url\":\"https://api.github.com/repos/datasets/currency-codes/downloads\",\"issues_url\":\"https://api.github.com/repos/datasets/currency-codes/issues{/number}\",\"pulls_url\":\"https://api.github.com/repos/datasets/currency-codes/pulls{/number}\",\"milestones_url\":\"https://api.github.com/repos/datasets/currency-codes/milestones{/number}\",\"notifications_url\":\"https://api.github.com/repos/datasets/currency-codes/notifications{?since,all,participating}\",\"labels_url\":\"https://api.github.com/repos/datasets/currency-codes/labels{/name}\",\"releases_url\":\"https://api.github.com/repos/datasets/currency-codes/releases{/id}\",\"deployments_url\":\"https://api.github.com/repos/datasets/currency-codes/deployments\",\"created_at\":\"2012-11-14T23:19:47Z\",\"updated_at\":\"2025-08-02T21:09:44Z\",\"pushed_at\":\"2025-06-01T01:47:03Z\",\"git_url\":\"git://github.com/datasets/currency-codes.git\",\"ssh_url\":\"git@github.com:datasets/currency-codes.git\",\"clone_url\":\"https://github.com/datasets/currency-codes.git\",\"svn_url\":\"https://github.com/datasets/currency-codes\",\"homepage\":\"https://datahub.io/core/currency-codes\",\"size\":80,\"stargazers_count\":162,\"watchers_count\":162,\"language\":\"Shell\",\"has_issues\":true,\"has_projects\":true,\"has_downloads\":true,\"has_wiki\":true,\"has_pages\":false,\"has_discussions\":false,\"forks_count\":177,\"mirror_url\":null,\"archived\":false,\"disabled\":false,\"open_issues_count\":3,\"license\":null,\"allow_forking\":true,\"is_template\":false,\"web_commit_signoff_required\":false,\"topics\":[],\"visibility\":\"public\",\"forks\":177,\"open_issues\":3,\"watchers\":162,\"default_branch\":\"main\"},\"network_count\":177,\"subscribers_count\":0}" }, "cookies": [], "headers": [ @@ -50,10 +50,6 @@ "name": "content-encoding", "value": "gzip" }, - { - "name": "content-length", - "value": "1990" - }, { "name": "content-security-policy", "value": "default-src 'none'" @@ -64,11 +60,11 @@ }, { "name": "date", - "value": "Wed, 28 May 2025 09:59:41 GMT" + "value": "Thu, 07 Aug 2025 07:49:26 GMT" }, { "name": "etag", - "value": "W/\"93b52f692b954e6d1e8278d893c276f5a3c874a87588d75f27a83cd431427974\"" + "value": "W/\"5910a4781b626f2a41e1824960503e8a43c24b955cb667a2217c33eb1c444ee8\"" }, { "name": "last-modified", @@ -86,6 +82,10 @@ "name": "strict-transport-security", "value": "max-age=31536000; includeSubdomains; preload" }, + { + "name": "transfer-encoding", + "value": "chunked" + }, { "name": "vary", "value": "Accept,Accept-Encoding, Accept, X-Requested-With" @@ -108,7 +108,7 @@ }, { "name": "x-github-request-id", - "value": "3878:1F0C59:13F54:147EE:6836DE8D" + "value": "2359:39D094:F0DE0F:E1E7C5:68945A85" }, { "name": "x-ratelimit-limit", @@ -120,7 +120,7 @@ }, { "name": "x-ratelimit-reset", - "value": "1748429981" + "value": "1754556565" }, { "name": "x-ratelimit-resource", @@ -135,14 +135,14 @@ "value": "0" } ], - "headersSize": 1292, + "headersSize": 1300, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-05-28T09:59:41.798Z", - "time": 277, + "startedDateTime": "2025-08-07T07:49:26.129Z", + "time": 335, "timings": { "blocked": -1, "connect": -1, @@ -150,7 +150,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 277 + "wait": 335 } }, { @@ -215,7 +215,7 @@ }, { "name": "date", - "value": "Wed, 28 May 2025 09:59:42 GMT" + "value": "Thu, 07 Aug 2025 07:49:26 GMT" }, { "name": "etag", @@ -259,7 +259,7 @@ }, { "name": "x-github-request-id", - "value": "3878:1F0C59:140AA:1493F:6836DE8E" + "value": "2359:39D094:F0E017:E1E96A:68945A86" }, { "name": "x-ratelimit-limit", @@ -271,7 +271,7 @@ }, { "name": "x-ratelimit-reset", - "value": "1748429981" + "value": "1754556565" }, { "name": "x-ratelimit-resource", @@ -286,14 +286,14 @@ "value": "0" } ], - "headersSize": 1291, + "headersSize": 1293, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-05-28T09:59:42.077Z", - "time": 261, + "startedDateTime": "2025-08-07T07:49:26.465Z", + "time": 292, "timings": { "blocked": -1, "connect": -1, @@ -301,7 +301,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 261 + "wait": 292 } }, { @@ -365,7 +365,7 @@ }, { "name": "date", - "value": "Wed, 28 May 2025 09:59:42 GMT" + "value": "Thu, 07 Aug 2025 07:49:27 GMT" }, { "name": "etag", @@ -373,11 +373,11 @@ }, { "name": "expires", - "value": "Wed, 28 May 2025 10:04:42 GMT" + "value": "Thu, 07 Aug 2025 07:54:27 GMT" }, { "name": "source-age", - "value": "177" + "value": "0" }, { "name": "strict-transport-security", @@ -393,7 +393,7 @@ }, { "name": "x-cache", - "value": "HIT" + "value": "MISS" }, { "name": "x-cache-hits", @@ -405,7 +405,7 @@ }, { "name": "x-fastly-request-id", - "value": "b3139e6fb7d5d49cc6fc18b6ed9349583bc805bf" + "value": "485833d62b1c0cbf6673f946e8b2bed21876f2c6" }, { "name": "x-frame-options", @@ -413,29 +413,29 @@ }, { "name": "x-github-request-id", - "value": "DE55:1500CA:D108E3:E7A375:6836DDDD" + "value": "0EAB:27570B:15BE0F9:191ED61:68945A86" }, { "name": "x-served-by", - "value": "cache-lis1490032-LIS" + "value": "cache-lis1490057-LIS" }, { "name": "x-timer", - "value": "S1748426383.589923,VS0,VE1" + "value": "S1754552967.823769,VS0,VE177" }, { "name": "x-xss-protection", "value": "1; mode=block" } ], - "headersSize": 901, + "headersSize": 904, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-05-28T09:59:42.340Z", - "time": 436, + "startedDateTime": "2025-08-07T07:49:26.760Z", + "time": 346, "timings": { "blocked": -1, "connect": -1, @@ -443,7 +443,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 436 + "wait": 346 } } ], diff --git a/json/table/fixtures/generated/loadJsonTable-file-variations-should-load-remote-file-multipart_2057098191/recording.har b/json/table/fixtures/generated/loadJsonTable-file-variations-should-load-remote-file-multipart_2057098191/recording.har new file mode 100644 index 00000000..05e0e45d --- /dev/null +++ b/json/table/fixtures/generated/loadJsonTable-file-variations-should-load-remote-file-multipart_2057098191/recording.har @@ -0,0 +1,298 @@ +{ + "log": { + "_recordingName": "loadJsonTable-file variations-should load remote file (multipart)", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "9c1d4218bc0b2124f4ba05daec949590", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [], + "headersSize": 123, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://raw.githubusercontent.com/frictionlessdata/frictionless-py/refs/heads/main/data/table.keyed.json" + }, + "response": { + "bodySize": 78, + "content": { + "mimeType": "text/plain; charset=utf-8", + "size": 78, + "text": "[\n {\n \"id\": 1,\n \"name\": \"english\"\n },\n {\n \"id\": 2,\n \"name\": \"中国人\"\n }\n]\n" + }, + "cookies": [], + "headers": [ + { + "name": "accept-ranges", + "value": "bytes" + }, + { + "name": "access-control-allow-origin", + "value": "*" + }, + { + "name": "cache-control", + "value": "max-age=300" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "name": "content-encoding", + "value": "gzip" + }, + { + "name": "content-length", + "value": "78" + }, + { + "name": "content-security-policy", + "value": "default-src 'none'; style-src 'unsafe-inline'; sandbox" + }, + { + "name": "content-type", + "value": "text/plain; charset=utf-8" + }, + { + "name": "cross-origin-resource-policy", + "value": "cross-origin" + }, + { + "name": "date", + "value": "Thu, 07 Aug 2025 07:49:21 GMT" + }, + { + "name": "etag", + "value": "W/\"6f3db326388b97300ef06688ba9a05ac48b9af407f4cea02dee6a3c83568b3cb\"" + }, + { + "name": "expires", + "value": "Thu, 07 Aug 2025 07:54:21 GMT" + }, + { + "name": "source-age", + "value": "260" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000" + }, + { + "name": "vary", + "value": "Authorization,Accept-Encoding" + }, + { + "name": "via", + "value": "1.1 varnish" + }, + { + "name": "x-cache", + "value": "HIT" + }, + { + "name": "x-cache-hits", + "value": "1" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "x-fastly-request-id", + "value": "c91a63c4ee43c97cbf760cf367b532e05e12efd2" + }, + { + "name": "x-frame-options", + "value": "deny" + }, + { + "name": "x-github-request-id", + "value": "D0F0:331C7:156A386:18B3FB7:68944CAF" + }, + { + "name": "x-served-by", + "value": "cache-lis1490034-LIS" + }, + { + "name": "x-timer", + "value": "S1754552962.863617,VS0,VE1" + }, + { + "name": "x-xss-protection", + "value": "1; mode=block" + } + ], + "headersSize": 901, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2025-08-07T07:49:21.915Z", + "time": 61, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 61 + } + }, + { + "_id": "9c1d4218bc0b2124f4ba05daec949590", + "_order": 1, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [], + "headersSize": 123, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://raw.githubusercontent.com/frictionlessdata/frictionless-py/refs/heads/main/data/table.keyed.json" + }, + "response": { + "bodySize": 78, + "content": { + "mimeType": "text/plain; charset=utf-8", + "size": 78, + "text": "[\n {\n \"id\": 1,\n \"name\": \"english\"\n },\n {\n \"id\": 2,\n \"name\": \"中国人\"\n }\n]\n" + }, + "cookies": [], + "headers": [ + { + "name": "accept-ranges", + "value": "bytes" + }, + { + "name": "access-control-allow-origin", + "value": "*" + }, + { + "name": "cache-control", + "value": "max-age=300" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "name": "content-encoding", + "value": "gzip" + }, + { + "name": "content-length", + "value": "78" + }, + { + "name": "content-security-policy", + "value": "default-src 'none'; style-src 'unsafe-inline'; sandbox" + }, + { + "name": "content-type", + "value": "text/plain; charset=utf-8" + }, + { + "name": "cross-origin-resource-policy", + "value": "cross-origin" + }, + { + "name": "date", + "value": "Thu, 07 Aug 2025 07:49:21 GMT" + }, + { + "name": "etag", + "value": "W/\"6f3db326388b97300ef06688ba9a05ac48b9af407f4cea02dee6a3c83568b3cb\"" + }, + { + "name": "expires", + "value": "Thu, 07 Aug 2025 07:54:21 GMT" + }, + { + "name": "source-age", + "value": "260" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000" + }, + { + "name": "vary", + "value": "Authorization,Accept-Encoding" + }, + { + "name": "via", + "value": "1.1 varnish" + }, + { + "name": "x-cache", + "value": "HIT" + }, + { + "name": "x-cache-hits", + "value": "1" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "x-fastly-request-id", + "value": "100c17346b28b7276ed143d9108408dbcffcb353" + }, + { + "name": "x-frame-options", + "value": "deny" + }, + { + "name": "x-github-request-id", + "value": "D0F0:331C7:156A386:18B3FB7:68944CAF" + }, + { + "name": "x-served-by", + "value": "cache-lis1490038-LIS" + }, + { + "name": "x-timer", + "value": "S1754552962.975833,VS0,VE1" + }, + { + "name": "x-xss-protection", + "value": "1; mode=block" + } + ], + "headersSize": 901, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2025-08-07T07:49:21.915Z", + "time": 186, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 186 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/json/table/fixtures/generated/loadJsonTable-file-variations-should-load-remote-file_3069001120/recording.har b/json/table/fixtures/generated/loadJsonTable-file-variations-should-load-remote-file_3069001120/recording.har new file mode 100644 index 00000000..aa64606e --- /dev/null +++ b/json/table/fixtures/generated/loadJsonTable-file-variations-should-load-remote-file_3069001120/recording.har @@ -0,0 +1,156 @@ +{ + "log": { + "_recordingName": "loadJsonTable-file variations-should load remote file", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "9c1d4218bc0b2124f4ba05daec949590", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [], + "headersSize": 123, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://raw.githubusercontent.com/frictionlessdata/frictionless-py/refs/heads/main/data/table.keyed.json" + }, + "response": { + "bodySize": 78, + "content": { + "mimeType": "text/plain; charset=utf-8", + "size": 78, + "text": "[\n {\n \"id\": 1,\n \"name\": \"english\"\n },\n {\n \"id\": 2,\n \"name\": \"中国人\"\n }\n]\n" + }, + "cookies": [], + "headers": [ + { + "name": "accept-ranges", + "value": "bytes" + }, + { + "name": "access-control-allow-origin", + "value": "*" + }, + { + "name": "cache-control", + "value": "max-age=300" + }, + { + "name": "connection", + "value": "keep-alive" + }, + { + "name": "content-encoding", + "value": "gzip" + }, + { + "name": "content-length", + "value": "78" + }, + { + "name": "content-security-policy", + "value": "default-src 'none'; style-src 'unsafe-inline'; sandbox" + }, + { + "name": "content-type", + "value": "text/plain; charset=utf-8" + }, + { + "name": "cross-origin-resource-policy", + "value": "cross-origin" + }, + { + "name": "date", + "value": "Thu, 07 Aug 2025 07:49:21 GMT" + }, + { + "name": "etag", + "value": "W/\"6f3db326388b97300ef06688ba9a05ac48b9af407f4cea02dee6a3c83568b3cb\"" + }, + { + "name": "expires", + "value": "Thu, 07 Aug 2025 07:54:21 GMT" + }, + { + "name": "source-age", + "value": "259" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000" + }, + { + "name": "vary", + "value": "Authorization,Accept-Encoding" + }, + { + "name": "via", + "value": "1.1 varnish" + }, + { + "name": "x-cache", + "value": "HIT" + }, + { + "name": "x-cache-hits", + "value": "0" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "x-fastly-request-id", + "value": "7cab98025ce4f5c8a8866dbc5e8764ad39a459c9" + }, + { + "name": "x-frame-options", + "value": "deny" + }, + { + "name": "x-github-request-id", + "value": "D0F0:331C7:156A386:18B3FB7:68944CAF" + }, + { + "name": "x-served-by", + "value": "cache-lis1490034-LIS" + }, + { + "name": "x-timer", + "value": "S1754552962.766187,VS0,VE1" + }, + { + "name": "x-xss-protection", + "value": "1; mode=block" + } + ], + "headersSize": 901, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2025-08-07T07:49:21.619Z", + "time": 277, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 277 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har b/json/table/fixtures/generated/loadJsonlTable-file-variations-should-load-remote-file-multipart_4008902101/recording.har similarity index 88% rename from json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har rename to json/table/fixtures/generated/loadJsonlTable-file-variations-should-load-remote-file-multipart_4008902101/recording.har index 65f21001..9c6b260d 100644 --- a/json/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har +++ b/json/table/fixtures/generated/loadJsonlTable-file-variations-should-load-remote-file-multipart_4008902101/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "should load remote file (multipart)", + "_recordingName": "loadJsonlTable-file variations-should load remote file (multipart)", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -9,7 +9,7 @@ "entries": [ { "_id": "d30ef9a2f7ea66a64aee2d7670e18212", - "_order": 0, + "_order": 1, "cache": {}, "request": { "bodySize": 0, @@ -68,7 +68,7 @@ }, { "name": "date", - "value": "Thu, 07 Aug 2025 06:58:51 GMT" + "value": "Thu, 07 Aug 2025 07:49:22 GMT" }, { "name": "etag", @@ -76,11 +76,11 @@ }, { "name": "expires", - "value": "Thu, 07 Aug 2025 07:03:51 GMT" + "value": "Thu, 07 Aug 2025 07:54:22 GMT" }, { "name": "source-age", - "value": "0" + "value": "259" }, { "name": "strict-transport-security", @@ -108,7 +108,7 @@ }, { "name": "x-fastly-request-id", - "value": "a5cd055052eeeb006d95709b77b4ed1206201c97" + "value": "aead4d190ccdf84757517b4492db0ee64dedcdf5" }, { "name": "x-frame-options", @@ -120,25 +120,25 @@ }, { "name": "x-served-by", - "value": "cache-lis1490048-LIS" + "value": "cache-lis1490038-LIS" }, { "name": "x-timer", - "value": "S1754549932.876910,VS0,VE1" + "value": "S1754552962.137183,VS0,VE1" }, { "name": "x-xss-protection", "value": "1; mode=block" } ], - "headersSize": 900, + "headersSize": 902, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-08-07T06:58:51.538Z", - "time": 49, + "startedDateTime": "2025-08-07T07:49:22.199Z", + "time": 54, "timings": { "blocked": -1, "connect": -1, @@ -146,12 +146,12 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 49 + "wait": 54 } }, { "_id": "d30ef9a2f7ea66a64aee2d7670e18212", - "_order": 1, + "_order": 0, "cache": {}, "request": { "bodySize": 0, @@ -210,7 +210,7 @@ }, { "name": "date", - "value": "Thu, 07 Aug 2025 06:58:51 GMT" + "value": "Thu, 07 Aug 2025 07:49:22 GMT" }, { "name": "etag", @@ -218,11 +218,11 @@ }, { "name": "expires", - "value": "Thu, 07 Aug 2025 07:03:51 GMT" + "value": "Thu, 07 Aug 2025 07:54:22 GMT" }, { "name": "source-age", - "value": "0" + "value": "259" }, { "name": "strict-transport-security", @@ -250,7 +250,7 @@ }, { "name": "x-fastly-request-id", - "value": "23bc89b3cf24eb683fa4b963b899123ac0056828" + "value": "29249ef2d21279598580c6161ea3247a4656c9fa" }, { "name": "x-frame-options", @@ -262,25 +262,25 @@ }, { "name": "x-served-by", - "value": "cache-lis1490042-LIS" + "value": "cache-lis1490034-LIS" }, { "name": "x-timer", - "value": "S1754549932.884782,VS0,VE1" + "value": "S1754552962.137213,VS0,VE1" }, { "name": "x-xss-protection", "value": "1; mode=block" } ], - "headersSize": 900, + "headersSize": 902, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-08-07T06:58:51.538Z", - "time": 62, + "startedDateTime": "2025-08-07T07:49:22.199Z", + "time": 55, "timings": { "blocked": -1, "connect": -1, @@ -288,7 +288,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 62 + "wait": 55 } } ], diff --git a/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har b/json/table/fixtures/generated/loadJsonlTable-file-variations-should-load-remote-file_2569240298/recording.har similarity index 88% rename from json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har rename to json/table/fixtures/generated/loadJsonlTable-file-variations-should-load-remote-file_2569240298/recording.har index a69866b4..1124a37a 100644 --- a/json/table/fixtures/generated/should-load-remote-file_1137408454/recording.har +++ b/json/table/fixtures/generated/loadJsonlTable-file-variations-should-load-remote-file_2569240298/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "should load remote file", + "_recordingName": "loadJsonlTable-file variations-should load remote file", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -68,7 +68,7 @@ }, { "name": "date", - "value": "Thu, 07 Aug 2025 06:58:51 GMT" + "value": "Thu, 07 Aug 2025 07:49:22 GMT" }, { "name": "etag", @@ -76,11 +76,11 @@ }, { "name": "expires", - "value": "Thu, 07 Aug 2025 07:03:51 GMT" + "value": "Thu, 07 Aug 2025 07:54:22 GMT" }, { "name": "source-age", - "value": "0" + "value": "259" }, { "name": "strict-transport-security", @@ -108,7 +108,7 @@ }, { "name": "x-fastly-request-id", - "value": "21e99c7b203de90820fb33194a6d58ddbe2462ce" + "value": "2df8ccbbc50fd27f0d8ebdeb91757d8bfa3a7a5b" }, { "name": "x-frame-options", @@ -120,11 +120,11 @@ }, { "name": "x-served-by", - "value": "cache-lis1490048-LIS" + "value": "cache-lis1490034-LIS" }, { "name": "x-timer", - "value": "S1754549932.620752,VS0,VE150" + "value": "S1754552962.062668,VS0,VE1" }, { "name": "x-xss-protection", @@ -137,8 +137,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-08-07T06:58:51.263Z", - "time": 262, + "startedDateTime": "2025-08-07T07:49:22.121Z", + "time": 67, "timings": { "blocked": -1, "connect": -1, @@ -146,7 +146,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 262 + "wait": 67 } } ], diff --git a/json/table/load.spec.ts b/json/table/load.spec.ts index 7e84cdad..dfc06be7 100644 --- a/json/table/load.spec.ts +++ b/json/table/load.spec.ts @@ -3,9 +3,9 @@ import { useRecording } from "@dpkit/test" import { describe, expect, it } from "vitest" import { loadJsonTable, loadJsonlTable } from "./load.js" -describe("loadJsonTable", () => { - useRecording() +useRecording() +describe("loadJsonTable", () => { describe("file variations", () => { it("should load local file", async () => { const body = '[{"id":1,"name":"english"},{"id":2,"name":"中文"}]' @@ -124,8 +124,6 @@ describe("loadJsonTable", () => { }) describe("loadJsonlTable", () => { - useRecording() - describe("file variations", () => { it("should load local file", async () => { const body = '{"id":1,"name":"english"}\n{"id":2,"name":"中文"}' diff --git a/parquet/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har b/parquet/table/fixtures/generated/loadParquetTable-file-variations-should-load-remote-file-multipart_3893757127/recording.har similarity index 90% rename from parquet/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har rename to parquet/table/fixtures/generated/loadParquetTable-file-variations-should-load-remote-file-multipart_3893757127/recording.har index 23785cae..ede41ba8 100644 --- a/parquet/table/fixtures/generated/should-load-remote-file-multipart_2595965849/recording.har +++ b/parquet/table/fixtures/generated/loadParquetTable-file-variations-should-load-remote-file-multipart_3893757127/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "should load remote file (multipart)", + "_recordingName": "loadParquetTable-file variations-should load remote file (multipart)", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -65,7 +65,7 @@ }, { "name": "date", - "value": "Tue, 05 Aug 2025 10:48:34 GMT" + "value": "Thu, 07 Aug 2025 07:49:23 GMT" }, { "name": "etag", @@ -73,11 +73,11 @@ }, { "name": "expires", - "value": "Tue, 05 Aug 2025 10:53:34 GMT" + "value": "Thu, 07 Aug 2025 07:54:23 GMT" }, { "name": "source-age", - "value": "194" + "value": "0" }, { "name": "strict-transport-security", @@ -97,7 +97,7 @@ }, { "name": "x-cache-hits", - "value": "0" + "value": "1" }, { "name": "x-content-type-options", @@ -105,7 +105,7 @@ }, { "name": "x-fastly-request-id", - "value": "c84a9da25c2fc605bc93f12c5d41b325e7a1ffb9" + "value": "89390f25c8caca11f9b7de596ca61cb53da4f98b" }, { "name": "x-frame-options", @@ -113,15 +113,15 @@ }, { "name": "x-github-request-id", - "value": "4E0A:22229B:6CD291:7E5D8C:6891DE3F" + "value": "85FE:256E19:15CE1E6:192ED85:68945A82" }, { "name": "x-served-by", - "value": "cache-lis1490038-LIS" + "value": "cache-lis1490023-LIS" }, { "name": "x-timer", - "value": "S1754390915.634850,VS0,VE1" + "value": "S1754552964.741242,VS0,VE1" }, { "name": "x-xss-protection", @@ -134,8 +134,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-08-05T10:48:33.995Z", - "time": 766, + "startedDateTime": "2025-08-07T07:49:23.683Z", + "time": 167, "timings": { "blocked": -1, "connect": -1, @@ -143,7 +143,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 766 + "wait": 167 } }, { @@ -204,7 +204,7 @@ }, { "name": "date", - "value": "Tue, 05 Aug 2025 10:48:34 GMT" + "value": "Thu, 07 Aug 2025 07:49:23 GMT" }, { "name": "etag", @@ -212,11 +212,11 @@ }, { "name": "expires", - "value": "Tue, 05 Aug 2025 10:53:34 GMT" + "value": "Thu, 07 Aug 2025 07:54:23 GMT" }, { "name": "source-age", - "value": "194" + "value": "0" }, { "name": "strict-transport-security", @@ -236,7 +236,7 @@ }, { "name": "x-cache-hits", - "value": "1" + "value": "2" }, { "name": "x-content-type-options", @@ -244,7 +244,7 @@ }, { "name": "x-fastly-request-id", - "value": "b0d45c273b611652cc152ebb28f779e6f4f34c50" + "value": "8a0c127150f660b5a9169f6da3d0ff8e8380431b" }, { "name": "x-frame-options", @@ -252,15 +252,15 @@ }, { "name": "x-github-request-id", - "value": "4E0A:22229B:6CD291:7E5D8C:6891DE3F" + "value": "85FE:256E19:15CE1E6:192ED85:68945A82" }, { "name": "x-served-by", - "value": "cache-lis1490038-LIS" + "value": "cache-lis1490023-LIS" }, { "name": "x-timer", - "value": "S1754390915.644192,VS0,VE1" + "value": "S1754552964.948899,VS0,VE0" }, { "name": "x-xss-protection", @@ -273,8 +273,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-08-05T10:48:33.995Z", - "time": 768, + "startedDateTime": "2025-08-07T07:49:23.683Z", + "time": 382, "timings": { "blocked": -1, "connect": -1, @@ -282,7 +282,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 768 + "wait": 382 } } ], diff --git a/parquet/table/fixtures/generated/should-load-remote-file_1137408454/recording.har b/parquet/table/fixtures/generated/loadParquetTable-file-variations-should-load-remote-file_3029162600/recording.har similarity index 89% rename from parquet/table/fixtures/generated/should-load-remote-file_1137408454/recording.har rename to parquet/table/fixtures/generated/loadParquetTable-file-variations-should-load-remote-file_3029162600/recording.har index 154743e2..0f756c8a 100644 --- a/parquet/table/fixtures/generated/should-load-remote-file_1137408454/recording.har +++ b/parquet/table/fixtures/generated/loadParquetTable-file-variations-should-load-remote-file_3029162600/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "should load remote file", + "_recordingName": "loadParquetTable-file variations-should load remote file", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -65,7 +65,7 @@ }, { "name": "date", - "value": "Tue, 05 Aug 2025 10:45:21 GMT" + "value": "Thu, 07 Aug 2025 07:49:23 GMT" }, { "name": "etag", @@ -73,7 +73,7 @@ }, { "name": "expires", - "value": "Tue, 05 Aug 2025 10:50:21 GMT" + "value": "Thu, 07 Aug 2025 07:54:23 GMT" }, { "name": "source-age", @@ -93,7 +93,7 @@ }, { "name": "x-cache", - "value": "HIT" + "value": "MISS" }, { "name": "x-cache-hits", @@ -105,7 +105,7 @@ }, { "name": "x-fastly-request-id", - "value": "5ebf6f3ef52941b3f003c32a7d2f5c8957ef744e" + "value": "09370dcce05b24421c183e299afc926975498506" }, { "name": "x-frame-options", @@ -113,29 +113,29 @@ }, { "name": "x-github-request-id", - "value": "4E0A:22229B:6CD291:7E5D8C:6891DE3F" + "value": "85FE:256E19:15CE1E6:192ED85:68945A82" }, { "name": "x-served-by", - "value": "cache-lis1490052-LIS" + "value": "cache-lis1490023-LIS" }, { "name": "x-timer", - "value": "S1754390721.878838,VS0,VE172" + "value": "S1754552963.274766,VS0,VE188" }, { "name": "x-xss-protection", "value": "1; mode=block" } ], - "headersSize": 876, + "headersSize": 879, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-08-05T10:45:19.436Z", - "time": 1927, + "startedDateTime": "2025-08-07T07:49:22.588Z", + "time": 1053, "timings": { "blocked": -1, "connect": -1, @@ -143,7 +143,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 1927 + "wait": 1053 } } ], diff --git a/test/index.ts b/test/index.ts index 0c3a1cc8..fa872042 100644 --- a/test/index.ts +++ b/test/index.ts @@ -1 +1 @@ -export * from "./general/index.js" +export * from "./recording/index.js" diff --git a/test/general/index.ts b/test/recording/index.ts similarity index 100% rename from test/general/index.ts rename to test/recording/index.ts diff --git a/test/general/recording.ts b/test/recording/recording.ts similarity index 85% rename from test/general/recording.ts rename to test/recording/recording.ts index 5aadbb47..e0241620 100644 --- a/test/general/recording.ts +++ b/test/recording/recording.ts @@ -42,10 +42,15 @@ export function useRecording( beforeEach(context => { // Overwrite recording name on a per-test basis - polly.recordingName = options.recordingName ?? context.task.name + polly.recordingName = options.recordingName ?? getFullTaskName(context.task) }) afterAll(async () => { await polly.stop() }) } + +function getFullTaskName(item: any): string { + const suiteName = item.suite ? getFullTaskName(item.suite) : undefined + return [suiteName, item.name].filter(Boolean).join("-") +} diff --git a/zenodo/package/fixtures/generated/should-load-a-package_2675098929/recording.har b/zenodo/package/fixtures/generated/loadPackageFromZenodo-should-load-a-package_3167400519/recording.har similarity index 91% rename from zenodo/package/fixtures/generated/should-load-a-package_2675098929/recording.har rename to zenodo/package/fixtures/generated/loadPackageFromZenodo-should-load-a-package_3167400519/recording.har index f8c4da0a..4f519237 100644 --- a/zenodo/package/fixtures/generated/should-load-a-package_2675098929/recording.har +++ b/zenodo/package/fixtures/generated/loadPackageFromZenodo-should-load-a-package_3167400519/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "should load a package", + "_recordingName": "loadPackageFromZenodo-should load a package", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -26,7 +26,7 @@ "content": { "mimeType": "application/json", "size": 3794, - "text": "{\"created\": \"2025-05-27T10:20:07.936985+00:00\", \"modified\": \"2025-05-27T10:20:08.174083+00:00\", \"id\": 15525711, \"conceptrecid\": \"15525710\", \"doi\": \"10.5281/zenodo.15525711\", \"conceptdoi\": \"10.5281/zenodo.15525710\", \"doi_url\": \"https://doi.org/10.5281/zenodo.15525711\", \"metadata\": {\"title\": \"PM10 Concentration in Japan\", \"doi\": \"10.5281/zenodo.15525711\", \"publication_date\": \"2025-05-27\", \"description\": \"

A brief project to extract PM 10 concentration from Japan. Data set has been created using the OpenAQ data through a python script

\", \"access_right\": \"open\", \"creators\": [{\"name\": \"Sukhija, Vinay Jagdish\", \"affiliation\": null, \"orcid\": \"0000-0003-2155-6940\"}], \"keywords\": [\"PM10 concentrations\", \"Air Quality\", \"Japan\", \"OpenAQ\"], \"custom\": {\"code:programmingLanguage\": [{\"id\": \"python\", \"title\": {\"en\": \"Python\"}}]}, \"resource_type\": {\"title\": \"Dataset\", \"type\": \"dataset\"}, \"meeting\": {\"title\": \"Open Data and Open Science Conference\", \"dates\": \"27 May 2025\", \"place\": \"Padova\"}, \"license\": {\"id\": \"cc-by-4.0\"}, \"relations\": {\"version\": [{\"index\": 0, \"is_last\": true, \"parent\": {\"pid_type\": \"recid\", \"pid_value\": \"15525710\"}}]}}, \"title\": \"PM10 Concentration in Japan\", \"links\": {\"self\": \"https://zenodo.org/api/records/15525711\", \"self_html\": \"https://zenodo.org/records/15525711\", \"preview_html\": \"https://zenodo.org/records/15525711?preview=1\", \"doi\": \"https://doi.org/10.5281/zenodo.15525711\", \"self_doi\": \"https://doi.org/10.5281/zenodo.15525711\", \"self_doi_html\": \"https://zenodo.org/doi/10.5281/zenodo.15525711\", \"reserve_doi\": \"https://zenodo.org/api/records/15525711/draft/pids/doi\", \"parent\": \"https://zenodo.org/api/records/15525710\", \"parent_html\": \"https://zenodo.org/records/15525710\", \"parent_doi\": \"https://doi.org/10.5281/zenodo.15525710\", \"parent_doi_html\": \"https://zenodo.org/doi/10.5281/zenodo.15525710\", \"self_iiif_manifest\": \"https://zenodo.org/api/iiif/record:15525711/manifest\", \"self_iiif_sequence\": \"https://zenodo.org/api/iiif/record:15525711/sequence/default\", \"files\": \"https://zenodo.org/api/records/15525711/files\", \"media_files\": \"https://zenodo.org/api/records/15525711/media-files\", \"archive\": \"https://zenodo.org/api/records/15525711/files-archive\", \"archive_media\": \"https://zenodo.org/api/records/15525711/media-files-archive\", \"latest\": \"https://zenodo.org/api/records/15525711/versions/latest\", \"latest_html\": \"https://zenodo.org/records/15525711/latest\", \"versions\": \"https://zenodo.org/api/records/15525711/versions\", \"draft\": \"https://zenodo.org/api/records/15525711/draft\", \"access_links\": \"https://zenodo.org/api/records/15525711/access/links\", \"access_grants\": \"https://zenodo.org/api/records/15525711/access/grants\", \"access_users\": \"https://zenodo.org/api/records/15525711/access/users\", \"access_request\": \"https://zenodo.org/api/records/15525711/access/request\", \"access\": \"https://zenodo.org/api/records/15525711/access\", \"communities\": \"https://zenodo.org/api/records/15525711/communities\", \"communities-suggestions\": \"https://zenodo.org/api/records/15525711/communities-suggestions\", \"requests\": \"https://zenodo.org/api/records/15525711/requests\"}, \"updated\": \"2025-05-27T10:20:08.174083+00:00\", \"recid\": \"15525711\", \"revision\": 4, \"files\": [{\"id\": \"c50a6efe-4946-4054-a3bb-797a35da03d0\", \"key\": \"openaq_measurements_PM10_Japan_20250527_095520.csv\", \"size\": 272, \"checksum\": \"md5:5ac1b92a57ec809c546ea90334c845c9\", \"links\": {\"self\": \"https://zenodo.org/api/records/15525711/files/openaq_measurements_PM10_Japan_20250527_095520.csv/content\"}}], \"swh\": {}, \"owners\": [{\"id\": \"1328821\"}], \"status\": \"published\", \"stats\": {\"downloads\": 0, \"unique_downloads\": 0, \"views\": 0, \"unique_views\": 0, \"version_downloads\": 0, \"version_unique_downloads\": 0, \"version_unique_views\": 0, \"version_views\": 0}, \"state\": \"done\", \"submitted\": true}" + "text": "{\"created\": \"2025-05-27T10:20:07.936985+00:00\", \"modified\": \"2025-05-27T10:20:08.174083+00:00\", \"id\": 15525711, \"conceptrecid\": \"15525710\", \"doi\": \"10.5281/zenodo.15525711\", \"conceptdoi\": \"10.5281/zenodo.15525710\", \"doi_url\": \"https://doi.org/10.5281/zenodo.15525711\", \"metadata\": {\"title\": \"PM10 Concentration in Japan\", \"doi\": \"10.5281/zenodo.15525711\", \"publication_date\": \"2025-05-27\", \"description\": \"

A brief project to extract PM 10 concentration from Japan. Data set has been created using the OpenAQ data through a python script

\", \"access_right\": \"open\", \"creators\": [{\"name\": \"Sukhija, Vinay Jagdish\", \"affiliation\": null, \"orcid\": \"0000-0003-2155-6940\"}], \"keywords\": [\"PM10 concentrations\", \"Air Quality\", \"Japan\", \"OpenAQ\"], \"custom\": {\"code:programmingLanguage\": [{\"id\": \"python\", \"title\": {\"en\": \"Python\"}}]}, \"resource_type\": {\"title\": \"Dataset\", \"type\": \"dataset\"}, \"meeting\": {\"title\": \"Open Data and Open Science Conference\", \"dates\": \"27 May 2025\", \"place\": \"Padova\"}, \"license\": {\"id\": \"cc-by-4.0\"}, \"relations\": {\"version\": [{\"index\": 0, \"is_last\": true, \"parent\": {\"pid_type\": \"recid\", \"pid_value\": \"15525710\"}}]}}, \"title\": \"PM10 Concentration in Japan\", \"links\": {\"self\": \"https://zenodo.org/api/records/15525711\", \"self_html\": \"https://zenodo.org/records/15525711\", \"preview_html\": \"https://zenodo.org/records/15525711?preview=1\", \"doi\": \"https://doi.org/10.5281/zenodo.15525711\", \"self_doi\": \"https://doi.org/10.5281/zenodo.15525711\", \"self_doi_html\": \"https://zenodo.org/doi/10.5281/zenodo.15525711\", \"reserve_doi\": \"https://zenodo.org/api/records/15525711/draft/pids/doi\", \"parent\": \"https://zenodo.org/api/records/15525710\", \"parent_html\": \"https://zenodo.org/records/15525710\", \"parent_doi\": \"https://doi.org/10.5281/zenodo.15525710\", \"parent_doi_html\": \"https://zenodo.org/doi/10.5281/zenodo.15525710\", \"self_iiif_manifest\": \"https://zenodo.org/api/iiif/record:15525711/manifest\", \"self_iiif_sequence\": \"https://zenodo.org/api/iiif/record:15525711/sequence/default\", \"files\": \"https://zenodo.org/api/records/15525711/files\", \"media_files\": \"https://zenodo.org/api/records/15525711/media-files\", \"archive\": \"https://zenodo.org/api/records/15525711/files-archive\", \"archive_media\": \"https://zenodo.org/api/records/15525711/media-files-archive\", \"latest\": \"https://zenodo.org/api/records/15525711/versions/latest\", \"latest_html\": \"https://zenodo.org/records/15525711/latest\", \"versions\": \"https://zenodo.org/api/records/15525711/versions\", \"draft\": \"https://zenodo.org/api/records/15525711/draft\", \"access_links\": \"https://zenodo.org/api/records/15525711/access/links\", \"access_grants\": \"https://zenodo.org/api/records/15525711/access/grants\", \"access_users\": \"https://zenodo.org/api/records/15525711/access/users\", \"access_request\": \"https://zenodo.org/api/records/15525711/access/request\", \"access\": \"https://zenodo.org/api/records/15525711/access\", \"communities\": \"https://zenodo.org/api/records/15525711/communities\", \"communities-suggestions\": \"https://zenodo.org/api/records/15525711/communities-suggestions\", \"requests\": \"https://zenodo.org/api/records/15525711/requests\"}, \"updated\": \"2025-05-27T10:20:08.174083+00:00\", \"recid\": \"15525711\", \"revision\": 4, \"files\": [{\"id\": \"c50a6efe-4946-4054-a3bb-797a35da03d0\", \"key\": \"openaq_measurements_PM10_Japan_20250527_095520.csv\", \"size\": 272, \"checksum\": \"md5:5ac1b92a57ec809c546ea90334c845c9\", \"links\": {\"self\": \"https://zenodo.org/api/records/15525711/files/openaq_measurements_PM10_Japan_20250527_095520.csv/content\"}}], \"swh\": {}, \"owners\": [{\"id\": \"1328821\"}], \"status\": \"published\", \"stats\": {\"downloads\": 4, \"unique_downloads\": 4, \"views\": 6, \"unique_views\": 6, \"version_downloads\": 4, \"version_unique_downloads\": 4, \"version_unique_views\": 6, \"version_views\": 6}, \"state\": \"done\", \"submitted\": true}" }, "cookies": [ { @@ -35,7 +35,7 @@ "path": "/", "sameSite": "None", "secure": true, - "value": "1150a9296538db69f8d2c95afd8c3910" + "value": "ee05b1c4fc826a86b832f3008890c77d" } ], "headers": [ @@ -65,7 +65,7 @@ }, { "name": "date", - "value": "Tue, 27 May 2025 10:35:44 GMT" + "value": "Thu, 07 Aug 2025 07:49:25 GMT" }, { "name": "etag", @@ -85,7 +85,7 @@ }, { "name": "retry-after", - "value": "59" + "value": "60" }, { "name": "server", @@ -93,7 +93,7 @@ }, { "name": "set-cookie", - "value": "5569e5a730cade8ff2b54f1e815f3670=1150a9296538db69f8d2c95afd8c3910; path=/; HttpOnly; Secure; SameSite=None" + "value": "5569e5a730cade8ff2b54f1e815f3670=ee05b1c4fc826a86b832f3008890c77d; path=/; HttpOnly; Secure; SameSite=None" }, { "name": "strict-transport-security", @@ -125,11 +125,11 @@ }, { "name": "x-ratelimit-reset", - "value": "1748342204" + "value": "1754553026" }, { "name": "x-request-id", - "value": "0438503d83b8bf34f5ea707caee6734f" + "value": "14f848af2c654cb8534b2f735f0a5686" }, { "name": "x-xss-protection", @@ -142,8 +142,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-05-27T10:35:42.687Z", - "time": 597, + "startedDateTime": "2025-08-07T07:49:25.328Z", + "time": 560, "timings": { "blocked": -1, "connect": -1, @@ -151,7 +151,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 597 + "wait": 560 } } ], diff --git a/zenodo/package/fixtures/generated/shoule-merge-datapackage-json-if-present_2284251141/recording.har b/zenodo/package/fixtures/generated/loadPackageFromZenodo-shoule-merge-datapackage-json-if-present_2160001855/recording.har similarity index 91% rename from zenodo/package/fixtures/generated/shoule-merge-datapackage-json-if-present_2284251141/recording.har rename to zenodo/package/fixtures/generated/loadPackageFromZenodo-shoule-merge-datapackage-json-if-present_2160001855/recording.har index a2d247db..a2386e7d 100644 --- a/zenodo/package/fixtures/generated/shoule-merge-datapackage-json-if-present_2284251141/recording.har +++ b/zenodo/package/fixtures/generated/loadPackageFromZenodo-shoule-merge-datapackage-json-if-present_2160001855/recording.har @@ -1,6 +1,6 @@ { "log": { - "_recordingName": "shoule merge datapackage.json if present", + "_recordingName": "loadPackageFromZenodo-shoule merge datapackage.json if present", "creator": { "comment": "persister:fs", "name": "Polly.JS", @@ -22,11 +22,11 @@ "url": "https://zenodo.org/api/records/10053903" }, "response": { - "bodySize": 10436, + "bodySize": 10502, "content": { "mimeType": "application/json", - "size": 10436, - "text": "{\"created\": \"2023-10-30T11:31:16.569518+00:00\", \"modified\": \"2025-05-15T09:13:47.716113+00:00\", \"id\": 10053903, \"conceptrecid\": \"5653310\", \"doi\": \"10.5281/zenodo.10053903\", \"conceptdoi\": \"10.5281/zenodo.5653310\", \"doi_url\": \"https://doi.org/10.5281/zenodo.10053903\", \"metadata\": {\"title\": \"O_ASSEN - Eurasian oystercatchers (Haematopus ostralegus, Haematopodidae) breeding in Assen (the Netherlands)\", \"doi\": \"10.5281/zenodo.10053903\", \"publication_date\": \"2023-10-30\", \"description\": \"

O_ASSEN - Eurasian oystercatchers (Haematopus ostralegus, Haematopodidae) breeding in Assen (the Netherlands) is a bird tracking dataset published by the Vogelwerkgroep Assen, Netherlands Institute of Ecology (NIOO-KNAW), Sovon, Radboud University, the University of Amsterdam and the Research Institute for Nature and Forest (INBO). It contains animal tracking data collected for the study O_ASSEN using trackers developed by the University of Amsterdam Bird Tracking System (UvA-BiTS, http://www.uva-bits.nl). The study was operational from 2018 to 2019. In total 6 individuals of Eurasian oystercatchers (Haematopus ostralegus) have been tagged as a breeding bird in the city of Assen (the Netherlands), mainly to study space use of oystercatchers breeding in urban areas. Data are uploaded from the UvA-BiTS database to Movebank and from there archived on Zenodo (see https://github.com/inbo/bird-tracking). No new data are expected.

\\n

See van der Kolk et al. (2022, https://doi.org/10.3897/zookeys.1123.90623) for a more detailed description of this dataset.

\\n

Files

\\n

Data in this package are exported from Movebank study 1605797471. Fields in the data follow the Movebank Attribute Dictionary and are described in datapackage.json. Files are structured as a Frictionless Data Package. You can access all data in R via https://zenodo.org/records/10053903/files/datapackage.json using frictionless.

\\n
    \\n
  • datapackage.json: technical description of the data files.
  • \\n
  • O_ASSEN-reference-data.csv: reference data about the animals, tags and deployments.
  • \\n
  • O_ASSEN-gps-yyyy.csv.gz: GPS data recorded by the tags, grouped by year.
  • \\n
  • O_ASSEN-acceleration-yyyy.csv.gz: acceleration data recorded by the tags, grouped by year.
  • \\n
\\n

Acknowledgements

\\n

These data were collected by Bert Dijkstra and Rinus Dillerop from Vogelwerkgroep Assen, in collaboration with the Netherlands Institute of Ecology (NIOO-KNAW), Sovon, Radboud University and the University of Amsterdam (UvA). Funding was provided by the Prins Bernard Cultuurfonds Drenthe, municipality of Assen, IJsvogelfonds (from Birdlife Netherlands and Nationale Postcodeloterij) and the Waterleiding Maatschappij Drenthe. The dataset was published with funding from Stichting NLBIF - Netherlands Biodiversity Information Facility.

\", \"access_right\": \"open\", \"creators\": [{\"name\": \"Dijkstra, Bert\", \"affiliation\": \"Vogelwerkgroep Assen\"}, {\"name\": \"Dillerop, Rinus\", \"affiliation\": \"Vogelwerkgroep Assen\"}, {\"name\": \"Oosterbeek, Kees\", \"affiliation\": \"Dutch Centre for Field Ornithology\"}, {\"name\": \"Bouten, Willem\", \"affiliation\": \"University of Amsterdam\", \"orcid\": \"0000-0002-5250-8872\"}, {\"name\": \"Desmet, Peter\", \"affiliation\": \"Research Institute for Nature and Forest\", \"orcid\": \"0000-0002-8442-8025\"}, {\"name\": \"van der Kolk, Henk-Jan\", \"affiliation\": \"Dutch Bryological and Lichenological Society\", \"orcid\": \"0000-0002-8023-379X\"}, {\"name\": \"Ens, Bruno J.\", \"affiliation\": \"Dutch Centre for Field Ornithology\", \"orcid\": \"0000-0002-4659-4807\"}], \"contributors\": [{\"name\": \"Desmet, Peter\", \"affiliation\": \"Research Institute for Nature and Forest\", \"type\": \"DataCurator\", \"orcid\": \"0000-0002-8442-8025\"}], \"keywords\": [\"animal movement\", \"animal tracking\", \"gps tracking\", \"accelerometer\", \"altitude\", \"temperature\", \"biologging\", \"birds\", \"UvA-BiTS\", \"Movebank\", \"frictionlessdata\"], \"related_identifiers\": [{\"identifier\": \"https://www.movebank.org/cms/webapp?gwt_fragment=page=studies,path=study1605797471\", \"relation\": \"isDerivedFrom\", \"resource_type\": \"dataset\", \"scheme\": \"url\"}, {\"identifier\": \"https://natuurtijdschriften.nl/pub/717840/DV2018032001001005.pdf\", \"relation\": \"isSourceOf\", \"resource_type\": \"publication-article\", \"scheme\": \"url\"}, {\"identifier\": \"https://natuurtijdschriften.nl/pub/1018631/DV2019032001001005.pdf\", \"relation\": \"isSourceOf\", \"resource_type\": \"publication-article\", \"scheme\": \"url\"}, {\"identifier\": \"https://www.gbif.org/dataset/226421f2-1d29-4950-901c-aba9d0e8f2bc\", \"relation\": \"isSourceOf\", \"resource_type\": \"dataset\", \"scheme\": \"url\"}, {\"identifier\": \"https://obis.org/dataset/550b4cc1-c40d-4070-a0cb-26e010eca9d4\", \"relation\": \"isSourceOf\", \"resource_type\": \"dataset\", \"scheme\": \"url\"}, {\"identifier\": \"10.3897/zookeys.1123.90623\", \"relation\": \"isDescribedBy\", \"resource_type\": \"publication-article\", \"scheme\": \"doi\"}, {\"identifier\": \"https://inbo.github.io/movepub/\", \"relation\": \"isCompiledBy\", \"resource_type\": \"software\", \"scheme\": \"url\"}], \"language\": \"eng\", \"resource_type\": {\"title\": \"Dataset\", \"type\": \"dataset\"}, \"license\": {\"id\": \"cc-zero\"}, \"grants\": [{\"code\": \"NLBIF\", \"internal_id\": \"0566bfb96::NLBIF\", \"funder\": {\"name\": \"Naturalis Biodiversity Center\"}, \"title\": \"Netherlands Biodiversity Information Facility\"}], \"communities\": [{\"id\": \"inbo\"}, {\"id\": \"netherlandsbiodiversityinformationfacility\"}, {\"id\": \"oscibio\"}], \"relations\": {\"version\": [{\"index\": 2, \"is_last\": true, \"parent\": {\"pid_type\": \"recid\", \"pid_value\": \"5653310\"}}]}, \"notes\": \"

This version adds alt-project-id to the reference-data and references the latest Movebank Attribute Dictionary.

\"}, \"title\": \"O_ASSEN - Eurasian oystercatchers (Haematopus ostralegus, Haematopodidae) breeding in Assen (the Netherlands)\", \"links\": {\"self\": \"https://zenodo.org/api/records/10053903\", \"self_html\": \"https://zenodo.org/records/10053903\", \"preview_html\": \"https://zenodo.org/records/10053903?preview=1\", \"doi\": \"https://doi.org/10.5281/zenodo.10053903\", \"self_doi\": \"https://doi.org/10.5281/zenodo.10053903\", \"self_doi_html\": \"https://zenodo.org/doi/10.5281/zenodo.10053903\", \"reserve_doi\": \"https://zenodo.org/api/records/10053903/draft/pids/doi\", \"parent\": \"https://zenodo.org/api/records/5653310\", \"parent_html\": \"https://zenodo.org/records/5653310\", \"parent_doi\": \"https://doi.org/10.5281/zenodo.5653310\", \"parent_doi_html\": \"https://zenodo.org/doi/10.5281/zenodo.5653310\", \"self_iiif_manifest\": \"https://zenodo.org/api/iiif/record:10053903/manifest\", \"self_iiif_sequence\": \"https://zenodo.org/api/iiif/record:10053903/sequence/default\", \"files\": \"https://zenodo.org/api/records/10053903/files\", \"media_files\": \"https://zenodo.org/api/records/10053903/media-files\", \"archive\": \"https://zenodo.org/api/records/10053903/files-archive\", \"archive_media\": \"https://zenodo.org/api/records/10053903/media-files-archive\", \"latest\": \"https://zenodo.org/api/records/10053903/versions/latest\", \"latest_html\": \"https://zenodo.org/records/10053903/latest\", \"versions\": \"https://zenodo.org/api/records/10053903/versions\", \"draft\": \"https://zenodo.org/api/records/10053903/draft\", \"access_links\": \"https://zenodo.org/api/records/10053903/access/links\", \"access_grants\": \"https://zenodo.org/api/records/10053903/access/grants\", \"access_users\": \"https://zenodo.org/api/records/10053903/access/users\", \"access_request\": \"https://zenodo.org/api/records/10053903/access/request\", \"access\": \"https://zenodo.org/api/records/10053903/access\", \"communities\": \"https://zenodo.org/api/records/10053903/communities\", \"communities-suggestions\": \"https://zenodo.org/api/records/10053903/communities-suggestions\", \"requests\": \"https://zenodo.org/api/records/10053903/requests\"}, \"updated\": \"2025-05-15T09:13:47.716113+00:00\", \"recid\": \"10053903\", \"revision\": 16, \"files\": [{\"id\": \"5ffb4935-0a78-4fd5-af2a-f0f5113ca7c0\", \"key\": \"datapackage.json\", \"size\": 42936, \"checksum\": \"md5:5ea86b7a222ac843e3833a2e50a2056b\", \"links\": {\"self\": \"https://zenodo.org/api/records/10053903/files/datapackage.json/content\"}}, {\"id\": \"f09bbed1-50e3-46b3-a1d9-10e8adeec337\", \"key\": \"O_ASSEN-acceleration-2018.csv.gz\", \"size\": 4067780, \"checksum\": \"md5:40b771d9bd53ee5cfae0266209364d9c\", \"links\": {\"self\": \"https://zenodo.org/api/records/10053903/files/O_ASSEN-acceleration-2018.csv.gz/content\"}}, {\"id\": \"73a7a2a5-cdfc-48a7-be65-641144ef9c38\", \"key\": \"O_ASSEN-acceleration-2019.csv.gz\", \"size\": 3696729, \"checksum\": \"md5:9d2cbbaece00ef8cf8b4fff87cf07079\", \"links\": {\"self\": \"https://zenodo.org/api/records/10053903/files/O_ASSEN-acceleration-2019.csv.gz/content\"}}, {\"id\": \"93e83695-a619-4f09-aa93-edb2fadcd586\", \"key\": \"O_ASSEN-gps-2018.csv.gz\", \"size\": 751448, \"checksum\": \"md5:f5e041ea66ebe8708a46fe57f383f549\", \"links\": {\"self\": \"https://zenodo.org/api/records/10053903/files/O_ASSEN-gps-2018.csv.gz/content\"}}, {\"id\": \"e64508be-1860-415f-bbbd-fc4353f33278\", \"key\": \"O_ASSEN-gps-2019.csv.gz\", \"size\": 263439, \"checksum\": \"md5:cec4550a769d4f053e92565b44d0409c\", \"links\": {\"self\": \"https://zenodo.org/api/records/10053903/files/O_ASSEN-gps-2019.csv.gz/content\"}}, {\"id\": \"05581f20-937c-4180-824c-c3068b641d34\", \"key\": \"O_ASSEN-reference-data.csv\", \"size\": 2082, \"checksum\": \"md5:5a5da155f404d5a3b4e50c350ad089d1\", \"links\": {\"self\": \"https://zenodo.org/api/records/10053903/files/O_ASSEN-reference-data.csv/content\"}}], \"swh\": {}, \"owners\": [{\"id\": \"6828\"}], \"status\": \"published\", \"stats\": {\"downloads\": 54743, \"unique_downloads\": 19482, \"views\": 1351, \"unique_views\": 1248, \"version_downloads\": 44749, \"version_unique_downloads\": 17507, \"version_unique_views\": 392, \"version_views\": 430}, \"state\": \"done\", \"submitted\": true}" + "size": 10502, + "text": "{\"created\": \"2023-10-30T11:31:16.569518+00:00\", \"modified\": \"2025-06-18T17:17:34.806869+00:00\", \"id\": 10053903, \"conceptrecid\": \"5653310\", \"doi\": \"10.5281/zenodo.10053903\", \"conceptdoi\": \"10.5281/zenodo.5653310\", \"doi_url\": \"https://doi.org/10.5281/zenodo.10053903\", \"metadata\": {\"title\": \"O_ASSEN - Eurasian oystercatchers (Haematopus ostralegus, Haematopodidae) breeding in Assen (the Netherlands)\", \"doi\": \"10.5281/zenodo.10053903\", \"publication_date\": \"2023-10-30\", \"description\": \"

O_ASSEN - Eurasian oystercatchers (Haematopus ostralegus, Haematopodidae) breeding in Assen (the Netherlands) is a bird tracking dataset published by the Vogelwerkgroep Assen, Netherlands Institute of Ecology (NIOO-KNAW), Sovon, Radboud University, the University of Amsterdam and the Research Institute for Nature and Forest (INBO). It contains animal tracking data collected for the study O_ASSEN using trackers developed by the University of Amsterdam Bird Tracking System (UvA-BiTS, http://www.uva-bits.nl). The study was operational from 2018 to 2019. In total 6 individuals of Eurasian oystercatchers (Haematopus ostralegus) have been tagged as a breeding bird in the city of Assen (the Netherlands), mainly to study space use of oystercatchers breeding in urban areas. Data are uploaded from the UvA-BiTS database to Movebank and from there archived on Zenodo (see https://github.com/inbo/bird-tracking). No new data are expected.

\\n

See van der Kolk et al. (2022, https://doi.org/10.3897/zookeys.1123.90623) for a more detailed description of this dataset.

\\n

Files

\\n

Data in this package are exported from Movebank study 1605797471. Fields in the data follow the Movebank Attribute Dictionary and are described in datapackage.json. Files are structured as a Frictionless Data Package. You can access all data in R via https://zenodo.org/records/10053903/files/datapackage.json using frictionless.

\\n
    \\n
  • datapackage.json: technical description of the data files.
  • \\n
  • O_ASSEN-reference-data.csv: reference data about the animals, tags and deployments.
  • \\n
  • O_ASSEN-gps-yyyy.csv.gz: GPS data recorded by the tags, grouped by year.
  • \\n
  • O_ASSEN-acceleration-yyyy.csv.gz: acceleration data recorded by the tags, grouped by year.
  • \\n
\\n

Acknowledgements

\\n

These data were collected by Bert Dijkstra and Rinus Dillerop from Vogelwerkgroep Assen, in collaboration with the Netherlands Institute of Ecology (NIOO-KNAW), Sovon, Radboud University and the University of Amsterdam (UvA). Funding was provided by the Prins Bernard Cultuurfonds Drenthe, municipality of Assen, IJsvogelfonds (from Birdlife Netherlands and Nationale Postcodeloterij) and the Waterleiding Maatschappij Drenthe. The dataset was published with funding from Stichting NLBIF - Netherlands Biodiversity Information Facility.

\", \"access_right\": \"open\", \"creators\": [{\"name\": \"Dijkstra, Bert\", \"affiliation\": \"Vogelwerkgroep Assen\"}, {\"name\": \"Dillerop, Rinus\", \"affiliation\": \"Vogelwerkgroep Assen\"}, {\"name\": \"Oosterbeek, Kees\", \"affiliation\": \"Dutch Centre for Field Ornithology\"}, {\"name\": \"Bouten, Willem\", \"affiliation\": \"University of Amsterdam\", \"orcid\": \"0000-0002-5250-8872\"}, {\"name\": \"Desmet, Peter\", \"affiliation\": \"Research Institute for Nature and Forest\", \"orcid\": \"0000-0002-8442-8025\"}, {\"name\": \"van der Kolk, Henk-Jan\", \"affiliation\": \"Dutch Bryological and Lichenological Society\", \"orcid\": \"0000-0002-8023-379X\"}, {\"name\": \"Ens, Bruno J.\", \"affiliation\": \"Dutch Centre for Field Ornithology\", \"orcid\": \"0000-0002-4659-4807\"}], \"contributors\": [{\"name\": \"Desmet, Peter\", \"affiliation\": \"Research Institute for Nature and Forest\", \"type\": \"DataCurator\", \"orcid\": \"0000-0002-8442-8025\"}], \"keywords\": [\"animal movement\", \"animal tracking\", \"gps tracking\", \"accelerometer\", \"altitude\", \"temperature\", \"biologging\", \"birds\", \"UvA-BiTS\", \"Movebank\", \"frictionlessdata\"], \"related_identifiers\": [{\"identifier\": \"https://www.movebank.org/cms/webapp?gwt_fragment=page=studies,path=study1605797471\", \"relation\": \"isDerivedFrom\", \"resource_type\": \"dataset\", \"scheme\": \"url\"}, {\"identifier\": \"https://natuurtijdschriften.nl/pub/717840/DV2018032001001005.pdf\", \"relation\": \"isSourceOf\", \"resource_type\": \"publication-article\", \"scheme\": \"url\"}, {\"identifier\": \"https://natuurtijdschriften.nl/pub/1018631/DV2019032001001005.pdf\", \"relation\": \"isSourceOf\", \"resource_type\": \"publication-article\", \"scheme\": \"url\"}, {\"identifier\": \"https://www.gbif.org/dataset/226421f2-1d29-4950-901c-aba9d0e8f2bc\", \"relation\": \"isSourceOf\", \"resource_type\": \"dataset\", \"scheme\": \"url\"}, {\"identifier\": \"https://obis.org/dataset/550b4cc1-c40d-4070-a0cb-26e010eca9d4\", \"relation\": \"isSourceOf\", \"resource_type\": \"dataset\", \"scheme\": \"url\"}, {\"identifier\": \"10.3897/zookeys.1123.90623\", \"relation\": \"isDescribedBy\", \"resource_type\": \"publication-article\", \"scheme\": \"doi\"}, {\"identifier\": \"https://inbo.github.io/movepub/\", \"relation\": \"isCompiledBy\", \"resource_type\": \"software\", \"scheme\": \"url\"}], \"language\": \"eng\", \"resource_type\": {\"title\": \"Dataset\", \"type\": \"dataset\"}, \"license\": {\"id\": \"cc-zero\"}, \"grants\": [{\"code\": \"NLBIF\", \"internal_id\": \"0566bfb96::NLBIF\", \"funder\": {\"name\": \"Naturalis Biodiversity Center\"}, \"title\": \"Netherlands Biodiversity Information Facility\"}], \"communities\": [{\"id\": \"inbo\"}, {\"id\": \"oscibio\"}, {\"id\": \"netherlandsbiodiversityinformationfacility\"}], \"relations\": {\"version\": [{\"index\": 2, \"is_last\": true, \"parent\": {\"pid_type\": \"recid\", \"pid_value\": \"5653310\"}}]}, \"notes\": \"

Changelog

\\n
    \\n
  • Add alt-project-id to the reference-data.
  • \\n
  • Reference the latest Movebank Attribute Dictionary.
  • \\n
\"}, \"title\": \"O_ASSEN - Eurasian oystercatchers (Haematopus ostralegus, Haematopodidae) breeding in Assen (the Netherlands)\", \"links\": {\"self\": \"https://zenodo.org/api/records/10053903\", \"self_html\": \"https://zenodo.org/records/10053903\", \"preview_html\": \"https://zenodo.org/records/10053903?preview=1\", \"doi\": \"https://doi.org/10.5281/zenodo.10053903\", \"self_doi\": \"https://doi.org/10.5281/zenodo.10053903\", \"self_doi_html\": \"https://zenodo.org/doi/10.5281/zenodo.10053903\", \"reserve_doi\": \"https://zenodo.org/api/records/10053903/draft/pids/doi\", \"parent\": \"https://zenodo.org/api/records/5653310\", \"parent_html\": \"https://zenodo.org/records/5653310\", \"parent_doi\": \"https://doi.org/10.5281/zenodo.5653310\", \"parent_doi_html\": \"https://zenodo.org/doi/10.5281/zenodo.5653310\", \"self_iiif_manifest\": \"https://zenodo.org/api/iiif/record:10053903/manifest\", \"self_iiif_sequence\": \"https://zenodo.org/api/iiif/record:10053903/sequence/default\", \"files\": \"https://zenodo.org/api/records/10053903/files\", \"media_files\": \"https://zenodo.org/api/records/10053903/media-files\", \"archive\": \"https://zenodo.org/api/records/10053903/files-archive\", \"archive_media\": \"https://zenodo.org/api/records/10053903/media-files-archive\", \"latest\": \"https://zenodo.org/api/records/10053903/versions/latest\", \"latest_html\": \"https://zenodo.org/records/10053903/latest\", \"versions\": \"https://zenodo.org/api/records/10053903/versions\", \"draft\": \"https://zenodo.org/api/records/10053903/draft\", \"access_links\": \"https://zenodo.org/api/records/10053903/access/links\", \"access_grants\": \"https://zenodo.org/api/records/10053903/access/grants\", \"access_users\": \"https://zenodo.org/api/records/10053903/access/users\", \"access_request\": \"https://zenodo.org/api/records/10053903/access/request\", \"access\": \"https://zenodo.org/api/records/10053903/access\", \"communities\": \"https://zenodo.org/api/records/10053903/communities\", \"communities-suggestions\": \"https://zenodo.org/api/records/10053903/communities-suggestions\", \"requests\": \"https://zenodo.org/api/records/10053903/requests\"}, \"updated\": \"2025-06-18T17:17:34.806869+00:00\", \"recid\": \"10053903\", \"revision\": 18, \"files\": [{\"id\": \"5ffb4935-0a78-4fd5-af2a-f0f5113ca7c0\", \"key\": \"datapackage.json\", \"size\": 42936, \"checksum\": \"md5:5ea86b7a222ac843e3833a2e50a2056b\", \"links\": {\"self\": \"https://zenodo.org/api/records/10053903/files/datapackage.json/content\"}}, {\"id\": \"f09bbed1-50e3-46b3-a1d9-10e8adeec337\", \"key\": \"O_ASSEN-acceleration-2018.csv.gz\", \"size\": 4067780, \"checksum\": \"md5:40b771d9bd53ee5cfae0266209364d9c\", \"links\": {\"self\": \"https://zenodo.org/api/records/10053903/files/O_ASSEN-acceleration-2018.csv.gz/content\"}}, {\"id\": \"73a7a2a5-cdfc-48a7-be65-641144ef9c38\", \"key\": \"O_ASSEN-acceleration-2019.csv.gz\", \"size\": 3696729, \"checksum\": \"md5:9d2cbbaece00ef8cf8b4fff87cf07079\", \"links\": {\"self\": \"https://zenodo.org/api/records/10053903/files/O_ASSEN-acceleration-2019.csv.gz/content\"}}, {\"id\": \"93e83695-a619-4f09-aa93-edb2fadcd586\", \"key\": \"O_ASSEN-gps-2018.csv.gz\", \"size\": 751448, \"checksum\": \"md5:f5e041ea66ebe8708a46fe57f383f549\", \"links\": {\"self\": \"https://zenodo.org/api/records/10053903/files/O_ASSEN-gps-2018.csv.gz/content\"}}, {\"id\": \"e64508be-1860-415f-bbbd-fc4353f33278\", \"key\": \"O_ASSEN-gps-2019.csv.gz\", \"size\": 263439, \"checksum\": \"md5:cec4550a769d4f053e92565b44d0409c\", \"links\": {\"self\": \"https://zenodo.org/api/records/10053903/files/O_ASSEN-gps-2019.csv.gz/content\"}}, {\"id\": \"05581f20-937c-4180-824c-c3068b641d34\", \"key\": \"O_ASSEN-reference-data.csv\", \"size\": 2082, \"checksum\": \"md5:5a5da155f404d5a3b4e50c350ad089d1\", \"links\": {\"self\": \"https://zenodo.org/api/records/10053903/files/O_ASSEN-reference-data.csv/content\"}}], \"swh\": {}, \"owners\": [{\"id\": \"6828\"}], \"status\": \"published\", \"stats\": {\"downloads\": 56783, \"unique_downloads\": 20314, \"views\": 1436, \"unique_views\": 1327, \"version_downloads\": 46734, \"version_unique_downloads\": 18284, \"version_unique_views\": 434, \"version_views\": 475}, \"state\": \"done\", \"submitted\": true}" }, "cookies": [ { @@ -35,7 +35,7 @@ "path": "/", "sameSite": "None", "secure": true, - "value": "fe8892fcd3384dc73cd2eb4e9b901329" + "value": "ee05b1c4fc826a86b832f3008890c77d" } ], "headers": [ @@ -65,11 +65,11 @@ }, { "name": "date", - "value": "Tue, 27 May 2025 07:50:50 GMT" + "value": "Thu, 07 Aug 2025 07:49:26 GMT" }, { "name": "etag", - "value": "W/\"16\"" + "value": "W/\"18\"" }, { "name": "link", @@ -85,7 +85,7 @@ }, { "name": "retry-after", - "value": "60" + "value": "59" }, { "name": "server", @@ -93,7 +93,7 @@ }, { "name": "set-cookie", - "value": "5569e5a730cade8ff2b54f1e815f3670=fe8892fcd3384dc73cd2eb4e9b901329; path=/; HttpOnly; Secure; SameSite=None" + "value": "5569e5a730cade8ff2b54f1e815f3670=ee05b1c4fc826a86b832f3008890c77d; path=/; HttpOnly; Secure; SameSite=None" }, { "name": "strict-transport-security", @@ -121,15 +121,15 @@ }, { "name": "x-ratelimit-remaining", - "value": "132" + "value": "131" }, { "name": "x-ratelimit-reset", - "value": "1748332311" + "value": "1754553026" }, { "name": "x-request-id", - "value": "8c371249a0b01a15e4baa71551bdeed2" + "value": "70ed876bc027711078c800c1e7030c13" }, { "name": "x-xss-protection", @@ -142,8 +142,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-05-27T07:50:48.946Z", - "time": 848, + "startedDateTime": "2025-08-07T07:49:25.894Z", + "time": 426, "timings": { "blocked": -1, "connect": -1, @@ -151,7 +151,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 848 + "wait": 426 } }, { @@ -182,7 +182,7 @@ "path": "/", "sameSite": "None", "secure": true, - "value": "0acb936b975d164e9af26483a08df23e" + "value": "e26c51e5d1379a16d287881670fdf19c" } ], "headers": [ @@ -208,7 +208,7 @@ }, { "name": "date", - "value": "Tue, 27 May 2025 09:55:24 GMT" + "value": "Thu, 07 Aug 2025 07:49:26 GMT" }, { "name": "oc-checksum", @@ -220,7 +220,7 @@ }, { "name": "retry-after", - "value": "60" + "value": "59" }, { "name": "server", @@ -228,7 +228,7 @@ }, { "name": "set-cookie", - "value": "5569e5a730cade8ff2b54f1e815f3670=0acb936b975d164e9af26483a08df23e; path=/; HttpOnly; Secure; SameSite=None" + "value": "5569e5a730cade8ff2b54f1e815f3670=e26c51e5d1379a16d287881670fdf19c; path=/; HttpOnly; Secure; SameSite=None" }, { "name": "strict-transport-security", @@ -264,11 +264,11 @@ }, { "name": "x-ratelimit-remaining", - "value": "132" + "value": "130" }, { "name": "x-ratelimit-reset", - "value": "1748339785" + "value": "1754553026" }, { "name": "x-xss-protection", @@ -281,8 +281,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2025-05-27T09:55:23.201Z", - "time": 1212, + "startedDateTime": "2025-08-07T07:49:26.324Z", + "time": 273, "timings": { "blocked": -1, "connect": -1, @@ -290,7 +290,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 1212 + "wait": 273 } } ], From e943718717ddfd01cd95ebbb331b9a6c546c18f7 Mon Sep 17 00:00:00 2001 From: roll Date: Thu, 7 Aug 2025 09:02:39 +0100 Subject: [PATCH 28/80] Updated tsconfig --- tsconfig.json | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/tsconfig.json b/tsconfig.json index 5fb99d7e..95100951 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,24 +1,22 @@ { "$schema": "https://json.schemastore.org/tsconfig", - "include": ["**/*.ts"], - "exclude": ["**/build/*", "**/docs/*"], + "include": ["**/*.ts", "**/*.tsx"], + "exclude": ["**/build/", "**/docs/"], "compilerOptions": { "strict": true, "noEmit": true, - "target": "ES2022", + "target": "ES2024", + "lib": ["ESNext"], "module": "NodeNext", "moduleResolution": "NodeNext", - "lib": ["ESNext", "ESNext.Array"], "isolatedModules": true, "esModuleInterop": true, "resolveJsonModule": true, - "noUnusedLocals": true, - "strictNullChecks": true, "erasableSyntaxOnly": true, + "noUncheckedIndexedAccess": true, "noUnusedParameters": true, "noImplicitReturns": true, - "noUncheckedIndexedAccess": true, - "noFallthroughCasesInSwitch": false, + "noUnusedLocals": true, "inlineSourceMap": true, "inlineSources": true, "skipLibCheck": true From 6c1160bfc8c38558bcab8ebdcdd85b4b7ba9fabf Mon Sep 17 00:00:00 2001 From: roll Date: Thu, 7 Aug 2025 10:24:07 +0100 Subject: [PATCH 29/80] Fixed build --- .gitignore | 2 +- docs/content/docs/reference/README.md | 23 - docs/content/docs/reference/_dpkit/arrow.md | 19 - .../reference/_dpkit/arrow/ArrowPlugin.md | 70 --- .../reference/_dpkit/arrow/loadArrowTable.md | 20 - .../reference/_dpkit/arrow/saveArrowTable.md | 24 -- docs/content/docs/reference/_dpkit/camtrap.md | 18 - .../_dpkit/camtrap/CamtrapPackage.md | 398 ------------------ .../_dpkit/camtrap/assertCamtrapPackage.md | 22 - docs/content/docs/reference/_dpkit/ckan.md | 30 -- .../docs/reference/_dpkit/ckan/CkanField.md | 40 -- .../reference/_dpkit/ckan/CkanOrganization.md | 50 --- .../docs/reference/_dpkit/ckan/CkanPackage.md | 180 -------- .../docs/reference/_dpkit/ckan/CkanPlugin.md | 44 -- .../reference/_dpkit/ckan/CkanResource.md | 130 ------ .../docs/reference/_dpkit/ckan/CkanSchema.md | 20 - .../docs/reference/_dpkit/ckan/CkanTag.md | 40 -- .../_dpkit/ckan/denormalizeCkanResource.md | 24 -- .../_dpkit/ckan/loadPackageFromCkan.md | 24 -- .../_dpkit/ckan/normalizeCkanSchema.md | 24 -- .../_dpkit/ckan/savePackageToCkan.md | 38 -- docs/content/docs/reference/_dpkit/core.md | 109 ----- .../reference/_dpkit/core/AnyConstraints.md | 53 --- .../docs/reference/_dpkit/core/AnyField.md | 128 ------ .../reference/_dpkit/core/ArrayConstraints.md | 83 ---- .../docs/reference/_dpkit/core/ArrayField.md | 128 ------ .../reference/_dpkit/core/AssertionError.md | 244 ----------- .../_dpkit/core/BooleanConstraints.md | 53 --- .../reference/_dpkit/core/BooleanField.md | 148 ------- .../docs/reference/_dpkit/core/Contributor.md | 50 --- .../reference/_dpkit/core/DateConstraints.md | 73 ---- .../docs/reference/_dpkit/core/DateField.md | 141 ------- .../_dpkit/core/DatetimeConstraints.md | 73 ---- .../reference/_dpkit/core/DatetimeField.md | 141 ------- .../docs/reference/_dpkit/core/Descriptor.md | 10 - .../docs/reference/_dpkit/core/Dialect.md | 221 ---------- .../_dpkit/core/DurationConstraints.md | 73 ---- .../reference/_dpkit/core/DurationField.md | 128 ------ .../docs/reference/_dpkit/core/Field.md | 12 - .../docs/reference/_dpkit/core/ForeignKey.md | 43 -- .../_dpkit/core/GeojsonConstraints.md | 53 --- .../reference/_dpkit/core/GeojsonField.md | 140 ------ .../_dpkit/core/GeopointConstraints.md | 53 --- .../reference/_dpkit/core/GeopointField.md | 141 ------- .../_dpkit/core/IntegerConstraints.md | 95 ----- .../reference/_dpkit/core/IntegerField.md | 169 -------- .../docs/reference/_dpkit/core/License.md | 46 -- .../reference/_dpkit/core/ListConstraints.md | 73 ---- .../docs/reference/_dpkit/core/ListField.md | 148 ------- .../docs/reference/_dpkit/core/Metadata.md | 10 - .../reference/_dpkit/core/MetadataError.md | 130 ------ .../_dpkit/core/NumberConstraints.md | 93 ---- .../docs/reference/_dpkit/core/NumberField.md | 158 ------- .../_dpkit/core/ObjectConstraints.md | 83 ---- .../docs/reference/_dpkit/core/ObjectField.md | 128 ------ .../docs/reference/_dpkit/core/Package.md | 163 ------- .../docs/reference/_dpkit/core/Plugin.md | 54 --- .../docs/reference/_dpkit/core/Resource.md | 209 --------- .../docs/reference/_dpkit/core/Schema.md | 93 ---- .../docs/reference/_dpkit/core/Source.md | 40 -- .../_dpkit/core/StringConstraints.md | 82 ---- .../docs/reference/_dpkit/core/StringField.md | 164 -------- .../reference/_dpkit/core/TimeConstraints.md | 73 ---- .../docs/reference/_dpkit/core/TimeField.md | 141 ------- .../reference/_dpkit/core/YearConstraints.md | 73 ---- .../docs/reference/_dpkit/core/YearField.md | 128 ------ .../_dpkit/core/YearmonthConstraints.md | 73 ---- .../reference/_dpkit/core/YearmonthField.md | 128 ------ .../reference/_dpkit/core/assertDialect.md | 22 - .../reference/_dpkit/core/assertPackage.md | 28 -- .../reference/_dpkit/core/assertResource.md | 28 -- .../reference/_dpkit/core/assertSchema.md | 22 - .../_dpkit/core/denormalizeDialect.md | 20 - .../_dpkit/core/denormalizePackage.md | 26 -- .../reference/_dpkit/core/denormalizePath.md | 26 -- .../_dpkit/core/denormalizeResource.md | 26 -- .../_dpkit/core/denormalizeSchema.md | 20 - .../docs/reference/_dpkit/core/getBasepath.md | 20 - .../docs/reference/_dpkit/core/getFilename.md | 20 - .../docs/reference/_dpkit/core/getFormat.md | 20 - .../docs/reference/_dpkit/core/getName.md | 20 - .../docs/reference/_dpkit/core/inferFormat.md | 20 - .../reference/_dpkit/core/isDescriptor.md | 20 - .../reference/_dpkit/core/isRemotePath.md | 20 - .../reference/_dpkit/core/loadDescriptor.md | 30 -- .../docs/reference/_dpkit/core/loadDialect.md | 23 - .../_dpkit/core/loadPackageDescriptor.md | 23 - .../docs/reference/_dpkit/core/loadProfile.md | 26 -- .../_dpkit/core/loadResourceDescriptor.md | 23 - .../docs/reference/_dpkit/core/loadSchema.md | 23 - .../reference/_dpkit/core/mergePackages.md | 28 -- .../reference/_dpkit/core/normalizeDialect.md | 20 - .../reference/_dpkit/core/normalizeField.md | 20 - .../reference/_dpkit/core/normalizePackage.md | 26 -- .../reference/_dpkit/core/normalizePath.md | 26 -- .../_dpkit/core/normalizeResource.md | 26 -- .../reference/_dpkit/core/normalizeSchema.md | 20 - .../reference/_dpkit/core/parseDescriptor.md | 20 - .../reference/_dpkit/core/saveDescriptor.md | 29 -- .../docs/reference/_dpkit/core/saveDialect.md | 29 -- .../_dpkit/core/savePackageDescriptor.md | 29 -- .../_dpkit/core/saveResourceDescriptor.md | 29 -- .../docs/reference/_dpkit/core/saveSchema.md | 29 -- .../_dpkit/core/stringifyDescriptor.md | 20 - .../_dpkit/core/validateDescriptor.md | 30 -- .../reference/_dpkit/core/validateDialect.md | 22 - .../_dpkit/core/validatePackageDescriptor.md | 28 -- .../_dpkit/core/validateResourceDescriptor.md | 28 -- .../reference/_dpkit/core/validateSchema.md | 22 - docs/content/docs/reference/_dpkit/csv.md | 20 - .../docs/reference/_dpkit/csv/CsvPlugin.md | 96 ----- .../reference/_dpkit/csv/inferCsvDialect.md | 24 -- .../docs/reference/_dpkit/csv/loadCsvTable.md | 20 - .../docs/reference/_dpkit/csv/saveCsvTable.md | 24 -- docs/content/docs/reference/_dpkit/datahub.md | 18 - .../reference/_dpkit/datahub/DatahubPlugin.md | 44 -- .../_dpkit/datahub/loadPackageFromDatahub.md | 20 - docs/content/docs/reference/_dpkit/file.md | 26 -- .../_dpkit/file/assertLocalPathVacant.md | 20 - .../docs/reference/_dpkit/file/copyFile.md | 26 -- .../_dpkit/file/getPackageBasepath.md | 20 - .../reference/_dpkit/file/getTempFilePath.md | 22 - .../reference/_dpkit/file/isLocalPathExist.md | 20 - .../docs/reference/_dpkit/file/loadFile.md | 20 - .../reference/_dpkit/file/loadFileStream.md | 30 -- .../reference/_dpkit/file/prefetchFile.md | 20 - .../reference/_dpkit/file/prefetchFiles.md | 20 - .../docs/reference/_dpkit/file/saveFile.md | 24 -- .../reference/_dpkit/file/saveFileStream.md | 26 -- .../_dpkit/file/saveResourceFiles.md | 38 -- .../reference/_dpkit/file/writeTempFile.md | 26 -- docs/content/docs/reference/_dpkit/github.md | 28 -- .../reference/_dpkit/github/GithubLicense.md | 50 --- .../reference/_dpkit/github/GithubOwner.md | 60 --- .../reference/_dpkit/github/GithubPackage.md | 224 ---------- .../reference/_dpkit/github/GithubPlugin.md | 44 -- .../reference/_dpkit/github/GithubResource.md | 70 --- .../github/denormalizeGithubResource.md | 25 -- .../_dpkit/github/loadPackageFromGithub.md | 30 -- .../_dpkit/github/normalizeGithubResource.md | 30 -- .../_dpkit/github/savePackageToGithub.md | 38 -- docs/content/docs/reference/_dpkit/inline.md | 18 - .../reference/_dpkit/inline/InlinePlugin.md | 44 -- .../_dpkit/inline/loadInlineTable.md | 20 - docs/content/docs/reference/_dpkit/parquet.md | 19 - .../reference/_dpkit/parquet/ParquetPlugin.md | 70 --- .../_dpkit/parquet/loadParquetTable.md | 20 - .../_dpkit/parquet/saveParquetTable.md | 24 -- docs/content/docs/reference/_dpkit/table.md | 34 -- .../_dpkit/table/InferDialectOptions.md | 18 - .../_dpkit/table/InferSchemaOptions.md | 42 -- .../reference/_dpkit/table/PolarsField.md | 26 -- .../reference/_dpkit/table/PolarsSchema.md | 16 - .../_dpkit/table/SaveTableOptions.md | 26 -- .../docs/reference/_dpkit/table/Table.md | 10 - .../docs/reference/_dpkit/table/TableError.md | 10 - .../reference/_dpkit/table/TablePlugin.md | 128 ------ .../reference/_dpkit/table/getPolarsSchema.md | 20 - .../reference/_dpkit/table/inferSchema.md | 24 -- .../reference/_dpkit/table/inspectField.md | 38 -- .../reference/_dpkit/table/inspectTable.md | 34 -- .../docs/reference/_dpkit/table/matchField.md | 32 -- .../docs/reference/_dpkit/table/parseField.md | 30 -- .../reference/_dpkit/table/processTable.md | 30 -- docs/content/docs/reference/_dpkit/zenodo.md | 27 -- .../reference/_dpkit/zenodo/ZenodoCreator.md | 48 --- .../reference/_dpkit/zenodo/ZenodoPackage.md | 170 -------- .../reference/_dpkit/zenodo/ZenodoPlugin.md | 44 -- .../reference/_dpkit/zenodo/ZenodoResource.md | 64 --- .../zenodo/denormalizeZenodoResource.md | 20 - .../_dpkit/zenodo/loadPackageFromZenodo.md | 30 -- .../_dpkit/zenodo/normalizeZenodoResource.md | 52 --- .../_dpkit/zenodo/savePackageToZenodo.md | 34 -- docs/content/docs/reference/_dpkit/zip.md | 19 - .../docs/reference/_dpkit/zip/ZipPlugin.md | 76 ---- .../_dpkit/zip/loadPackageFromZip.md | 20 - .../reference/_dpkit/zip/savePackageToZip.md | 30 -- docs/content/docs/reference/dpkit.md | 195 --------- .../docs/reference/dpkit/AnyConstraints.md | 53 --- docs/content/docs/reference/dpkit/AnyField.md | 128 ------ .../docs/reference/dpkit/ArrayConstraints.md | 83 ---- .../docs/reference/dpkit/ArrayField.md | 128 ------ .../docs/reference/dpkit/AssertionError.md | 92 ---- .../reference/dpkit/BooleanConstraints.md | 53 --- .../docs/reference/dpkit/BooleanField.md | 148 ------- .../docs/reference/dpkit/CamtrapPackage.md | 398 ------------------ .../content/docs/reference/dpkit/CkanField.md | 40 -- .../docs/reference/dpkit/CkanOrganization.md | 50 --- .../docs/reference/dpkit/CkanPackage.md | 180 -------- .../docs/reference/dpkit/CkanPlugin.md | 44 -- .../docs/reference/dpkit/CkanResource.md | 130 ------ .../docs/reference/dpkit/CkanSchema.md | 20 - docs/content/docs/reference/dpkit/CkanTag.md | 40 -- .../docs/reference/dpkit/Contributor.md | 50 --- .../content/docs/reference/dpkit/CsvPlugin.md | 96 ----- .../docs/reference/dpkit/DatahubPlugin.md | 44 -- .../docs/reference/dpkit/DateConstraints.md | 73 ---- .../content/docs/reference/dpkit/DateField.md | 141 ------- .../reference/dpkit/DatetimeConstraints.md | 73 ---- .../docs/reference/dpkit/DatetimeField.md | 141 ------- .../docs/reference/dpkit/Descriptor.md | 10 - docs/content/docs/reference/dpkit/Dialect.md | 221 ---------- docs/content/docs/reference/dpkit/Dpkit.md | 44 -- .../reference/dpkit/DurationConstraints.md | 73 ---- .../docs/reference/dpkit/DurationField.md | 128 ------ docs/content/docs/reference/dpkit/Field.md | 12 - .../docs/reference/dpkit/FolderPlugin.md | 44 -- .../docs/reference/dpkit/ForeignKey.md | 43 -- .../reference/dpkit/GeojsonConstraints.md | 53 --- .../docs/reference/dpkit/GeojsonField.md | 140 ------ .../reference/dpkit/GeopointConstraints.md | 53 --- .../docs/reference/dpkit/GeopointField.md | 141 ------- .../docs/reference/dpkit/GithubLicense.md | 50 --- .../docs/reference/dpkit/GithubOwner.md | 60 --- .../docs/reference/dpkit/GithubPackage.md | 224 ---------- .../docs/reference/dpkit/GithubPlugin.md | 44 -- .../docs/reference/dpkit/GithubResource.md | 70 --- .../reference/dpkit/InferDialectOptions.md | 18 - .../reference/dpkit/InferSchemaOptions.md | 42 -- .../docs/reference/dpkit/InlinePlugin.md | 44 -- .../reference/dpkit/IntegerConstraints.md | 95 ----- .../docs/reference/dpkit/IntegerField.md | 169 -------- docs/content/docs/reference/dpkit/License.md | 46 -- .../docs/reference/dpkit/ListConstraints.md | 73 ---- .../content/docs/reference/dpkit/ListField.md | 148 ------- docs/content/docs/reference/dpkit/Metadata.md | 10 - .../docs/reference/dpkit/MetadataError.md | 130 ------ .../docs/reference/dpkit/NumberConstraints.md | 93 ---- .../docs/reference/dpkit/NumberField.md | 158 ------- .../docs/reference/dpkit/ObjectConstraints.md | 83 ---- .../docs/reference/dpkit/ObjectField.md | 128 ------ docs/content/docs/reference/dpkit/Package.md | 168 -------- docs/content/docs/reference/dpkit/Plugin.md | 59 --- .../docs/reference/dpkit/PolarsField.md | 26 -- .../docs/reference/dpkit/PolarsSchema.md | 16 - docs/content/docs/reference/dpkit/Resource.md | 209 --------- .../docs/reference/dpkit/SaveTableOptions.md | 26 -- docs/content/docs/reference/dpkit/Schema.md | 93 ---- docs/content/docs/reference/dpkit/Source.md | 40 -- .../docs/reference/dpkit/StringConstraints.md | 82 ---- .../docs/reference/dpkit/StringField.md | 164 -------- docs/content/docs/reference/dpkit/Table.md | 10 - .../docs/reference/dpkit/TableError.md | 10 - .../docs/reference/dpkit/TablePlugin.md | 128 ------ .../docs/reference/dpkit/TimeConstraints.md | 73 ---- .../content/docs/reference/dpkit/TimeField.md | 141 ------- .../docs/reference/dpkit/YearConstraints.md | 73 ---- .../content/docs/reference/dpkit/YearField.md | 128 ------ .../reference/dpkit/YearmonthConstraints.md | 73 ---- .../docs/reference/dpkit/YearmonthField.md | 128 ------ .../docs/reference/dpkit/ZenodoCreator.md | 48 --- .../docs/reference/dpkit/ZenodoPackage.md | 170 -------- .../docs/reference/dpkit/ZenodoPlugin.md | 44 -- .../docs/reference/dpkit/ZenodoResource.md | 64 --- .../content/docs/reference/dpkit/ZipPlugin.md | 76 ---- .../reference/dpkit/assertCamtrapPackage.md | 22 - .../docs/reference/dpkit/assertDialect.md | 22 - .../reference/dpkit/assertLocalPathVacant.md | 20 - .../docs/reference/dpkit/assertPackage.md | 28 -- .../docs/reference/dpkit/assertResource.md | 28 -- .../docs/reference/dpkit/assertSchema.md | 22 - docs/content/docs/reference/dpkit/copyFile.md | 26 -- .../docs/reference/dpkit/createFolder.md | 20 - .../dpkit/denormalizeCkanResource.md | 24 -- .../reference/dpkit/denormalizeDialect.md | 20 - .../dpkit/denormalizeGithubResource.md | 25 -- .../reference/dpkit/denormalizePackage.md | 26 -- .../docs/reference/dpkit/denormalizePath.md | 26 -- .../reference/dpkit/denormalizeResource.md | 26 -- .../docs/reference/dpkit/denormalizeSchema.md | 20 - .../dpkit/denormalizeZenodoResource.md | 20 - docs/content/docs/reference/dpkit/dpkit-1.md | 10 - .../docs/reference/dpkit/getBasepath.md | 20 - .../docs/reference/dpkit/getFilename.md | 20 - .../content/docs/reference/dpkit/getFormat.md | 20 - docs/content/docs/reference/dpkit/getName.md | 20 - .../reference/dpkit/getPackageBasepath.md | 20 - .../docs/reference/dpkit/getPolarsSchema.md | 20 - .../docs/reference/dpkit/getTempFilePath.md | 22 - .../docs/reference/dpkit/getTempFolderPath.md | 22 - .../docs/reference/dpkit/inferCsvDialect.md | 24 -- .../docs/reference/dpkit/inferDialect.md | 24 -- .../docs/reference/dpkit/inferFormat.md | 20 - .../docs/reference/dpkit/inferSchema.md | 24 -- .../docs/reference/dpkit/inspectField.md | 38 -- .../docs/reference/dpkit/inspectTable.md | 34 -- .../docs/reference/dpkit/isDescriptor.md | 20 - .../docs/reference/dpkit/isLocalPathExist.md | 20 - .../docs/reference/dpkit/isRemotePath.md | 20 - .../docs/reference/dpkit/loadCsvTable.md | 20 - .../docs/reference/dpkit/loadDescriptor.md | 30 -- .../docs/reference/dpkit/loadDialect.md | 23 - docs/content/docs/reference/dpkit/loadFile.md | 20 - .../docs/reference/dpkit/loadFileStream.md | 30 -- .../docs/reference/dpkit/loadInlineTable.md | 20 - .../docs/reference/dpkit/loadPackage.md | 20 - .../reference/dpkit/loadPackageDescriptor.md | 23 - .../reference/dpkit/loadPackageFromCkan.md | 24 -- .../reference/dpkit/loadPackageFromDatahub.md | 20 - .../reference/dpkit/loadPackageFromFolder.md | 20 - .../reference/dpkit/loadPackageFromGithub.md | 30 -- .../reference/dpkit/loadPackageFromZenodo.md | 30 -- .../reference/dpkit/loadPackageFromZip.md | 20 - .../docs/reference/dpkit/loadProfile.md | 26 -- .../reference/dpkit/loadResourceDescriptor.md | 23 - .../docs/reference/dpkit/loadSchema.md | 23 - .../content/docs/reference/dpkit/loadTable.md | 20 - .../docs/reference/dpkit/matchField.md | 32 -- .../docs/reference/dpkit/mergePackages.md | 28 -- .../reference/dpkit/normalizeCkanSchema.md | 24 -- .../docs/reference/dpkit/normalizeDialect.md | 20 - .../docs/reference/dpkit/normalizeField.md | 20 - .../dpkit/normalizeGithubResource.md | 30 -- .../docs/reference/dpkit/normalizePackage.md | 26 -- .../docs/reference/dpkit/normalizePath.md | 26 -- .../docs/reference/dpkit/normalizeResource.md | 26 -- .../docs/reference/dpkit/normalizeSchema.md | 20 - .../dpkit/normalizeZenodoResource.md | 52 --- .../docs/reference/dpkit/parseDescriptor.md | 20 - .../docs/reference/dpkit/parseField.md | 30 -- .../docs/reference/dpkit/prefetchFile.md | 20 - .../docs/reference/dpkit/prefetchFiles.md | 20 - .../docs/reference/dpkit/processTable.md | 30 -- .../content/docs/reference/dpkit/readTable.md | 20 - .../docs/reference/dpkit/saveCsvTable.md | 24 -- .../docs/reference/dpkit/saveDescriptor.md | 29 -- .../docs/reference/dpkit/saveDialect.md | 29 -- docs/content/docs/reference/dpkit/saveFile.md | 24 -- .../docs/reference/dpkit/saveFileStream.md | 26 -- .../docs/reference/dpkit/savePackage.md | 30 -- .../reference/dpkit/savePackageDescriptor.md | 29 -- .../docs/reference/dpkit/savePackageToCkan.md | 38 -- .../reference/dpkit/savePackageToFolder.md | 30 -- .../reference/dpkit/savePackageToGithub.md | 38 -- .../reference/dpkit/savePackageToZenodo.md | 34 -- .../docs/reference/dpkit/savePackageToZip.md | 30 -- .../reference/dpkit/saveResourceDescriptor.md | 29 -- .../docs/reference/dpkit/saveResourceFiles.md | 38 -- .../docs/reference/dpkit/saveSchema.md | 29 -- .../content/docs/reference/dpkit/saveTable.md | 24 -- .../reference/dpkit/stringifyDescriptor.md | 20 - .../reference/dpkit/validateDescriptor.md | 30 -- .../docs/reference/dpkit/validateDialect.md | 22 - .../dpkit/validatePackageDescriptor.md | 28 -- .../dpkit/validateResourceDescriptor.md | 28 -- .../docs/reference/dpkit/validateSchema.md | 22 - .../docs/reference/dpkit/validateTable.md | 20 - .../docs/reference/dpkit/writeTempFile.md | 26 -- docs/examples/getting-started-1.ts | 2 +- package.json | 1 + pnpm-lock.yaml | 101 ++--- 351 files changed, 54 insertions(+), 19111 deletions(-) delete mode 100644 docs/content/docs/reference/README.md delete mode 100644 docs/content/docs/reference/_dpkit/arrow.md delete mode 100644 docs/content/docs/reference/_dpkit/arrow/ArrowPlugin.md delete mode 100644 docs/content/docs/reference/_dpkit/arrow/loadArrowTable.md delete mode 100644 docs/content/docs/reference/_dpkit/arrow/saveArrowTable.md delete mode 100644 docs/content/docs/reference/_dpkit/camtrap.md delete mode 100644 docs/content/docs/reference/_dpkit/camtrap/CamtrapPackage.md delete mode 100644 docs/content/docs/reference/_dpkit/camtrap/assertCamtrapPackage.md delete mode 100644 docs/content/docs/reference/_dpkit/ckan.md delete mode 100644 docs/content/docs/reference/_dpkit/ckan/CkanField.md delete mode 100644 docs/content/docs/reference/_dpkit/ckan/CkanOrganization.md delete mode 100644 docs/content/docs/reference/_dpkit/ckan/CkanPackage.md delete mode 100644 docs/content/docs/reference/_dpkit/ckan/CkanPlugin.md delete mode 100644 docs/content/docs/reference/_dpkit/ckan/CkanResource.md delete mode 100644 docs/content/docs/reference/_dpkit/ckan/CkanSchema.md delete mode 100644 docs/content/docs/reference/_dpkit/ckan/CkanTag.md delete mode 100644 docs/content/docs/reference/_dpkit/ckan/denormalizeCkanResource.md delete mode 100644 docs/content/docs/reference/_dpkit/ckan/loadPackageFromCkan.md delete mode 100644 docs/content/docs/reference/_dpkit/ckan/normalizeCkanSchema.md delete mode 100644 docs/content/docs/reference/_dpkit/ckan/savePackageToCkan.md delete mode 100644 docs/content/docs/reference/_dpkit/core.md delete mode 100644 docs/content/docs/reference/_dpkit/core/AnyConstraints.md delete mode 100644 docs/content/docs/reference/_dpkit/core/AnyField.md delete mode 100644 docs/content/docs/reference/_dpkit/core/ArrayConstraints.md delete mode 100644 docs/content/docs/reference/_dpkit/core/ArrayField.md delete mode 100644 docs/content/docs/reference/_dpkit/core/AssertionError.md delete mode 100644 docs/content/docs/reference/_dpkit/core/BooleanConstraints.md delete mode 100644 docs/content/docs/reference/_dpkit/core/BooleanField.md delete mode 100644 docs/content/docs/reference/_dpkit/core/Contributor.md delete mode 100644 docs/content/docs/reference/_dpkit/core/DateConstraints.md delete mode 100644 docs/content/docs/reference/_dpkit/core/DateField.md delete mode 100644 docs/content/docs/reference/_dpkit/core/DatetimeConstraints.md delete mode 100644 docs/content/docs/reference/_dpkit/core/DatetimeField.md delete mode 100644 docs/content/docs/reference/_dpkit/core/Descriptor.md delete mode 100644 docs/content/docs/reference/_dpkit/core/Dialect.md delete mode 100644 docs/content/docs/reference/_dpkit/core/DurationConstraints.md delete mode 100644 docs/content/docs/reference/_dpkit/core/DurationField.md delete mode 100644 docs/content/docs/reference/_dpkit/core/Field.md delete mode 100644 docs/content/docs/reference/_dpkit/core/ForeignKey.md delete mode 100644 docs/content/docs/reference/_dpkit/core/GeojsonConstraints.md delete mode 100644 docs/content/docs/reference/_dpkit/core/GeojsonField.md delete mode 100644 docs/content/docs/reference/_dpkit/core/GeopointConstraints.md delete mode 100644 docs/content/docs/reference/_dpkit/core/GeopointField.md delete mode 100644 docs/content/docs/reference/_dpkit/core/IntegerConstraints.md delete mode 100644 docs/content/docs/reference/_dpkit/core/IntegerField.md delete mode 100644 docs/content/docs/reference/_dpkit/core/License.md delete mode 100644 docs/content/docs/reference/_dpkit/core/ListConstraints.md delete mode 100644 docs/content/docs/reference/_dpkit/core/ListField.md delete mode 100644 docs/content/docs/reference/_dpkit/core/Metadata.md delete mode 100644 docs/content/docs/reference/_dpkit/core/MetadataError.md delete mode 100644 docs/content/docs/reference/_dpkit/core/NumberConstraints.md delete mode 100644 docs/content/docs/reference/_dpkit/core/NumberField.md delete mode 100644 docs/content/docs/reference/_dpkit/core/ObjectConstraints.md delete mode 100644 docs/content/docs/reference/_dpkit/core/ObjectField.md delete mode 100644 docs/content/docs/reference/_dpkit/core/Package.md delete mode 100644 docs/content/docs/reference/_dpkit/core/Plugin.md delete mode 100644 docs/content/docs/reference/_dpkit/core/Resource.md delete mode 100644 docs/content/docs/reference/_dpkit/core/Schema.md delete mode 100644 docs/content/docs/reference/_dpkit/core/Source.md delete mode 100644 docs/content/docs/reference/_dpkit/core/StringConstraints.md delete mode 100644 docs/content/docs/reference/_dpkit/core/StringField.md delete mode 100644 docs/content/docs/reference/_dpkit/core/TimeConstraints.md delete mode 100644 docs/content/docs/reference/_dpkit/core/TimeField.md delete mode 100644 docs/content/docs/reference/_dpkit/core/YearConstraints.md delete mode 100644 docs/content/docs/reference/_dpkit/core/YearField.md delete mode 100644 docs/content/docs/reference/_dpkit/core/YearmonthConstraints.md delete mode 100644 docs/content/docs/reference/_dpkit/core/YearmonthField.md delete mode 100644 docs/content/docs/reference/_dpkit/core/assertDialect.md delete mode 100644 docs/content/docs/reference/_dpkit/core/assertPackage.md delete mode 100644 docs/content/docs/reference/_dpkit/core/assertResource.md delete mode 100644 docs/content/docs/reference/_dpkit/core/assertSchema.md delete mode 100644 docs/content/docs/reference/_dpkit/core/denormalizeDialect.md delete mode 100644 docs/content/docs/reference/_dpkit/core/denormalizePackage.md delete mode 100644 docs/content/docs/reference/_dpkit/core/denormalizePath.md delete mode 100644 docs/content/docs/reference/_dpkit/core/denormalizeResource.md delete mode 100644 docs/content/docs/reference/_dpkit/core/denormalizeSchema.md delete mode 100644 docs/content/docs/reference/_dpkit/core/getBasepath.md delete mode 100644 docs/content/docs/reference/_dpkit/core/getFilename.md delete mode 100644 docs/content/docs/reference/_dpkit/core/getFormat.md delete mode 100644 docs/content/docs/reference/_dpkit/core/getName.md delete mode 100644 docs/content/docs/reference/_dpkit/core/inferFormat.md delete mode 100644 docs/content/docs/reference/_dpkit/core/isDescriptor.md delete mode 100644 docs/content/docs/reference/_dpkit/core/isRemotePath.md delete mode 100644 docs/content/docs/reference/_dpkit/core/loadDescriptor.md delete mode 100644 docs/content/docs/reference/_dpkit/core/loadDialect.md delete mode 100644 docs/content/docs/reference/_dpkit/core/loadPackageDescriptor.md delete mode 100644 docs/content/docs/reference/_dpkit/core/loadProfile.md delete mode 100644 docs/content/docs/reference/_dpkit/core/loadResourceDescriptor.md delete mode 100644 docs/content/docs/reference/_dpkit/core/loadSchema.md delete mode 100644 docs/content/docs/reference/_dpkit/core/mergePackages.md delete mode 100644 docs/content/docs/reference/_dpkit/core/normalizeDialect.md delete mode 100644 docs/content/docs/reference/_dpkit/core/normalizeField.md delete mode 100644 docs/content/docs/reference/_dpkit/core/normalizePackage.md delete mode 100644 docs/content/docs/reference/_dpkit/core/normalizePath.md delete mode 100644 docs/content/docs/reference/_dpkit/core/normalizeResource.md delete mode 100644 docs/content/docs/reference/_dpkit/core/normalizeSchema.md delete mode 100644 docs/content/docs/reference/_dpkit/core/parseDescriptor.md delete mode 100644 docs/content/docs/reference/_dpkit/core/saveDescriptor.md delete mode 100644 docs/content/docs/reference/_dpkit/core/saveDialect.md delete mode 100644 docs/content/docs/reference/_dpkit/core/savePackageDescriptor.md delete mode 100644 docs/content/docs/reference/_dpkit/core/saveResourceDescriptor.md delete mode 100644 docs/content/docs/reference/_dpkit/core/saveSchema.md delete mode 100644 docs/content/docs/reference/_dpkit/core/stringifyDescriptor.md delete mode 100644 docs/content/docs/reference/_dpkit/core/validateDescriptor.md delete mode 100644 docs/content/docs/reference/_dpkit/core/validateDialect.md delete mode 100644 docs/content/docs/reference/_dpkit/core/validatePackageDescriptor.md delete mode 100644 docs/content/docs/reference/_dpkit/core/validateResourceDescriptor.md delete mode 100644 docs/content/docs/reference/_dpkit/core/validateSchema.md delete mode 100644 docs/content/docs/reference/_dpkit/csv.md delete mode 100644 docs/content/docs/reference/_dpkit/csv/CsvPlugin.md delete mode 100644 docs/content/docs/reference/_dpkit/csv/inferCsvDialect.md delete mode 100644 docs/content/docs/reference/_dpkit/csv/loadCsvTable.md delete mode 100644 docs/content/docs/reference/_dpkit/csv/saveCsvTable.md delete mode 100644 docs/content/docs/reference/_dpkit/datahub.md delete mode 100644 docs/content/docs/reference/_dpkit/datahub/DatahubPlugin.md delete mode 100644 docs/content/docs/reference/_dpkit/datahub/loadPackageFromDatahub.md delete mode 100644 docs/content/docs/reference/_dpkit/file.md delete mode 100644 docs/content/docs/reference/_dpkit/file/assertLocalPathVacant.md delete mode 100644 docs/content/docs/reference/_dpkit/file/copyFile.md delete mode 100644 docs/content/docs/reference/_dpkit/file/getPackageBasepath.md delete mode 100644 docs/content/docs/reference/_dpkit/file/getTempFilePath.md delete mode 100644 docs/content/docs/reference/_dpkit/file/isLocalPathExist.md delete mode 100644 docs/content/docs/reference/_dpkit/file/loadFile.md delete mode 100644 docs/content/docs/reference/_dpkit/file/loadFileStream.md delete mode 100644 docs/content/docs/reference/_dpkit/file/prefetchFile.md delete mode 100644 docs/content/docs/reference/_dpkit/file/prefetchFiles.md delete mode 100644 docs/content/docs/reference/_dpkit/file/saveFile.md delete mode 100644 docs/content/docs/reference/_dpkit/file/saveFileStream.md delete mode 100644 docs/content/docs/reference/_dpkit/file/saveResourceFiles.md delete mode 100644 docs/content/docs/reference/_dpkit/file/writeTempFile.md delete mode 100644 docs/content/docs/reference/_dpkit/github.md delete mode 100644 docs/content/docs/reference/_dpkit/github/GithubLicense.md delete mode 100644 docs/content/docs/reference/_dpkit/github/GithubOwner.md delete mode 100644 docs/content/docs/reference/_dpkit/github/GithubPackage.md delete mode 100644 docs/content/docs/reference/_dpkit/github/GithubPlugin.md delete mode 100644 docs/content/docs/reference/_dpkit/github/GithubResource.md delete mode 100644 docs/content/docs/reference/_dpkit/github/denormalizeGithubResource.md delete mode 100644 docs/content/docs/reference/_dpkit/github/loadPackageFromGithub.md delete mode 100644 docs/content/docs/reference/_dpkit/github/normalizeGithubResource.md delete mode 100644 docs/content/docs/reference/_dpkit/github/savePackageToGithub.md delete mode 100644 docs/content/docs/reference/_dpkit/inline.md delete mode 100644 docs/content/docs/reference/_dpkit/inline/InlinePlugin.md delete mode 100644 docs/content/docs/reference/_dpkit/inline/loadInlineTable.md delete mode 100644 docs/content/docs/reference/_dpkit/parquet.md delete mode 100644 docs/content/docs/reference/_dpkit/parquet/ParquetPlugin.md delete mode 100644 docs/content/docs/reference/_dpkit/parquet/loadParquetTable.md delete mode 100644 docs/content/docs/reference/_dpkit/parquet/saveParquetTable.md delete mode 100644 docs/content/docs/reference/_dpkit/table.md delete mode 100644 docs/content/docs/reference/_dpkit/table/InferDialectOptions.md delete mode 100644 docs/content/docs/reference/_dpkit/table/InferSchemaOptions.md delete mode 100644 docs/content/docs/reference/_dpkit/table/PolarsField.md delete mode 100644 docs/content/docs/reference/_dpkit/table/PolarsSchema.md delete mode 100644 docs/content/docs/reference/_dpkit/table/SaveTableOptions.md delete mode 100644 docs/content/docs/reference/_dpkit/table/Table.md delete mode 100644 docs/content/docs/reference/_dpkit/table/TableError.md delete mode 100644 docs/content/docs/reference/_dpkit/table/TablePlugin.md delete mode 100644 docs/content/docs/reference/_dpkit/table/getPolarsSchema.md delete mode 100644 docs/content/docs/reference/_dpkit/table/inferSchema.md delete mode 100644 docs/content/docs/reference/_dpkit/table/inspectField.md delete mode 100644 docs/content/docs/reference/_dpkit/table/inspectTable.md delete mode 100644 docs/content/docs/reference/_dpkit/table/matchField.md delete mode 100644 docs/content/docs/reference/_dpkit/table/parseField.md delete mode 100644 docs/content/docs/reference/_dpkit/table/processTable.md delete mode 100644 docs/content/docs/reference/_dpkit/zenodo.md delete mode 100644 docs/content/docs/reference/_dpkit/zenodo/ZenodoCreator.md delete mode 100644 docs/content/docs/reference/_dpkit/zenodo/ZenodoPackage.md delete mode 100644 docs/content/docs/reference/_dpkit/zenodo/ZenodoPlugin.md delete mode 100644 docs/content/docs/reference/_dpkit/zenodo/ZenodoResource.md delete mode 100644 docs/content/docs/reference/_dpkit/zenodo/denormalizeZenodoResource.md delete mode 100644 docs/content/docs/reference/_dpkit/zenodo/loadPackageFromZenodo.md delete mode 100644 docs/content/docs/reference/_dpkit/zenodo/normalizeZenodoResource.md delete mode 100644 docs/content/docs/reference/_dpkit/zenodo/savePackageToZenodo.md delete mode 100644 docs/content/docs/reference/_dpkit/zip.md delete mode 100644 docs/content/docs/reference/_dpkit/zip/ZipPlugin.md delete mode 100644 docs/content/docs/reference/_dpkit/zip/loadPackageFromZip.md delete mode 100644 docs/content/docs/reference/_dpkit/zip/savePackageToZip.md delete mode 100644 docs/content/docs/reference/dpkit.md delete mode 100644 docs/content/docs/reference/dpkit/AnyConstraints.md delete mode 100644 docs/content/docs/reference/dpkit/AnyField.md delete mode 100644 docs/content/docs/reference/dpkit/ArrayConstraints.md delete mode 100644 docs/content/docs/reference/dpkit/ArrayField.md delete mode 100644 docs/content/docs/reference/dpkit/AssertionError.md delete mode 100644 docs/content/docs/reference/dpkit/BooleanConstraints.md delete mode 100644 docs/content/docs/reference/dpkit/BooleanField.md delete mode 100644 docs/content/docs/reference/dpkit/CamtrapPackage.md delete mode 100644 docs/content/docs/reference/dpkit/CkanField.md delete mode 100644 docs/content/docs/reference/dpkit/CkanOrganization.md delete mode 100644 docs/content/docs/reference/dpkit/CkanPackage.md delete mode 100644 docs/content/docs/reference/dpkit/CkanPlugin.md delete mode 100644 docs/content/docs/reference/dpkit/CkanResource.md delete mode 100644 docs/content/docs/reference/dpkit/CkanSchema.md delete mode 100644 docs/content/docs/reference/dpkit/CkanTag.md delete mode 100644 docs/content/docs/reference/dpkit/Contributor.md delete mode 100644 docs/content/docs/reference/dpkit/CsvPlugin.md delete mode 100644 docs/content/docs/reference/dpkit/DatahubPlugin.md delete mode 100644 docs/content/docs/reference/dpkit/DateConstraints.md delete mode 100644 docs/content/docs/reference/dpkit/DateField.md delete mode 100644 docs/content/docs/reference/dpkit/DatetimeConstraints.md delete mode 100644 docs/content/docs/reference/dpkit/DatetimeField.md delete mode 100644 docs/content/docs/reference/dpkit/Descriptor.md delete mode 100644 docs/content/docs/reference/dpkit/Dialect.md delete mode 100644 docs/content/docs/reference/dpkit/Dpkit.md delete mode 100644 docs/content/docs/reference/dpkit/DurationConstraints.md delete mode 100644 docs/content/docs/reference/dpkit/DurationField.md delete mode 100644 docs/content/docs/reference/dpkit/Field.md delete mode 100644 docs/content/docs/reference/dpkit/FolderPlugin.md delete mode 100644 docs/content/docs/reference/dpkit/ForeignKey.md delete mode 100644 docs/content/docs/reference/dpkit/GeojsonConstraints.md delete mode 100644 docs/content/docs/reference/dpkit/GeojsonField.md delete mode 100644 docs/content/docs/reference/dpkit/GeopointConstraints.md delete mode 100644 docs/content/docs/reference/dpkit/GeopointField.md delete mode 100644 docs/content/docs/reference/dpkit/GithubLicense.md delete mode 100644 docs/content/docs/reference/dpkit/GithubOwner.md delete mode 100644 docs/content/docs/reference/dpkit/GithubPackage.md delete mode 100644 docs/content/docs/reference/dpkit/GithubPlugin.md delete mode 100644 docs/content/docs/reference/dpkit/GithubResource.md delete mode 100644 docs/content/docs/reference/dpkit/InferDialectOptions.md delete mode 100644 docs/content/docs/reference/dpkit/InferSchemaOptions.md delete mode 100644 docs/content/docs/reference/dpkit/InlinePlugin.md delete mode 100644 docs/content/docs/reference/dpkit/IntegerConstraints.md delete mode 100644 docs/content/docs/reference/dpkit/IntegerField.md delete mode 100644 docs/content/docs/reference/dpkit/License.md delete mode 100644 docs/content/docs/reference/dpkit/ListConstraints.md delete mode 100644 docs/content/docs/reference/dpkit/ListField.md delete mode 100644 docs/content/docs/reference/dpkit/Metadata.md delete mode 100644 docs/content/docs/reference/dpkit/MetadataError.md delete mode 100644 docs/content/docs/reference/dpkit/NumberConstraints.md delete mode 100644 docs/content/docs/reference/dpkit/NumberField.md delete mode 100644 docs/content/docs/reference/dpkit/ObjectConstraints.md delete mode 100644 docs/content/docs/reference/dpkit/ObjectField.md delete mode 100644 docs/content/docs/reference/dpkit/Package.md delete mode 100644 docs/content/docs/reference/dpkit/Plugin.md delete mode 100644 docs/content/docs/reference/dpkit/PolarsField.md delete mode 100644 docs/content/docs/reference/dpkit/PolarsSchema.md delete mode 100644 docs/content/docs/reference/dpkit/Resource.md delete mode 100644 docs/content/docs/reference/dpkit/SaveTableOptions.md delete mode 100644 docs/content/docs/reference/dpkit/Schema.md delete mode 100644 docs/content/docs/reference/dpkit/Source.md delete mode 100644 docs/content/docs/reference/dpkit/StringConstraints.md delete mode 100644 docs/content/docs/reference/dpkit/StringField.md delete mode 100644 docs/content/docs/reference/dpkit/Table.md delete mode 100644 docs/content/docs/reference/dpkit/TableError.md delete mode 100644 docs/content/docs/reference/dpkit/TablePlugin.md delete mode 100644 docs/content/docs/reference/dpkit/TimeConstraints.md delete mode 100644 docs/content/docs/reference/dpkit/TimeField.md delete mode 100644 docs/content/docs/reference/dpkit/YearConstraints.md delete mode 100644 docs/content/docs/reference/dpkit/YearField.md delete mode 100644 docs/content/docs/reference/dpkit/YearmonthConstraints.md delete mode 100644 docs/content/docs/reference/dpkit/YearmonthField.md delete mode 100644 docs/content/docs/reference/dpkit/ZenodoCreator.md delete mode 100644 docs/content/docs/reference/dpkit/ZenodoPackage.md delete mode 100644 docs/content/docs/reference/dpkit/ZenodoPlugin.md delete mode 100644 docs/content/docs/reference/dpkit/ZenodoResource.md delete mode 100644 docs/content/docs/reference/dpkit/ZipPlugin.md delete mode 100644 docs/content/docs/reference/dpkit/assertCamtrapPackage.md delete mode 100644 docs/content/docs/reference/dpkit/assertDialect.md delete mode 100644 docs/content/docs/reference/dpkit/assertLocalPathVacant.md delete mode 100644 docs/content/docs/reference/dpkit/assertPackage.md delete mode 100644 docs/content/docs/reference/dpkit/assertResource.md delete mode 100644 docs/content/docs/reference/dpkit/assertSchema.md delete mode 100644 docs/content/docs/reference/dpkit/copyFile.md delete mode 100644 docs/content/docs/reference/dpkit/createFolder.md delete mode 100644 docs/content/docs/reference/dpkit/denormalizeCkanResource.md delete mode 100644 docs/content/docs/reference/dpkit/denormalizeDialect.md delete mode 100644 docs/content/docs/reference/dpkit/denormalizeGithubResource.md delete mode 100644 docs/content/docs/reference/dpkit/denormalizePackage.md delete mode 100644 docs/content/docs/reference/dpkit/denormalizePath.md delete mode 100644 docs/content/docs/reference/dpkit/denormalizeResource.md delete mode 100644 docs/content/docs/reference/dpkit/denormalizeSchema.md delete mode 100644 docs/content/docs/reference/dpkit/denormalizeZenodoResource.md delete mode 100644 docs/content/docs/reference/dpkit/dpkit-1.md delete mode 100644 docs/content/docs/reference/dpkit/getBasepath.md delete mode 100644 docs/content/docs/reference/dpkit/getFilename.md delete mode 100644 docs/content/docs/reference/dpkit/getFormat.md delete mode 100644 docs/content/docs/reference/dpkit/getName.md delete mode 100644 docs/content/docs/reference/dpkit/getPackageBasepath.md delete mode 100644 docs/content/docs/reference/dpkit/getPolarsSchema.md delete mode 100644 docs/content/docs/reference/dpkit/getTempFilePath.md delete mode 100644 docs/content/docs/reference/dpkit/getTempFolderPath.md delete mode 100644 docs/content/docs/reference/dpkit/inferCsvDialect.md delete mode 100644 docs/content/docs/reference/dpkit/inferDialect.md delete mode 100644 docs/content/docs/reference/dpkit/inferFormat.md delete mode 100644 docs/content/docs/reference/dpkit/inferSchema.md delete mode 100644 docs/content/docs/reference/dpkit/inspectField.md delete mode 100644 docs/content/docs/reference/dpkit/inspectTable.md delete mode 100644 docs/content/docs/reference/dpkit/isDescriptor.md delete mode 100644 docs/content/docs/reference/dpkit/isLocalPathExist.md delete mode 100644 docs/content/docs/reference/dpkit/isRemotePath.md delete mode 100644 docs/content/docs/reference/dpkit/loadCsvTable.md delete mode 100644 docs/content/docs/reference/dpkit/loadDescriptor.md delete mode 100644 docs/content/docs/reference/dpkit/loadDialect.md delete mode 100644 docs/content/docs/reference/dpkit/loadFile.md delete mode 100644 docs/content/docs/reference/dpkit/loadFileStream.md delete mode 100644 docs/content/docs/reference/dpkit/loadInlineTable.md delete mode 100644 docs/content/docs/reference/dpkit/loadPackage.md delete mode 100644 docs/content/docs/reference/dpkit/loadPackageDescriptor.md delete mode 100644 docs/content/docs/reference/dpkit/loadPackageFromCkan.md delete mode 100644 docs/content/docs/reference/dpkit/loadPackageFromDatahub.md delete mode 100644 docs/content/docs/reference/dpkit/loadPackageFromFolder.md delete mode 100644 docs/content/docs/reference/dpkit/loadPackageFromGithub.md delete mode 100644 docs/content/docs/reference/dpkit/loadPackageFromZenodo.md delete mode 100644 docs/content/docs/reference/dpkit/loadPackageFromZip.md delete mode 100644 docs/content/docs/reference/dpkit/loadProfile.md delete mode 100644 docs/content/docs/reference/dpkit/loadResourceDescriptor.md delete mode 100644 docs/content/docs/reference/dpkit/loadSchema.md delete mode 100644 docs/content/docs/reference/dpkit/loadTable.md delete mode 100644 docs/content/docs/reference/dpkit/matchField.md delete mode 100644 docs/content/docs/reference/dpkit/mergePackages.md delete mode 100644 docs/content/docs/reference/dpkit/normalizeCkanSchema.md delete mode 100644 docs/content/docs/reference/dpkit/normalizeDialect.md delete mode 100644 docs/content/docs/reference/dpkit/normalizeField.md delete mode 100644 docs/content/docs/reference/dpkit/normalizeGithubResource.md delete mode 100644 docs/content/docs/reference/dpkit/normalizePackage.md delete mode 100644 docs/content/docs/reference/dpkit/normalizePath.md delete mode 100644 docs/content/docs/reference/dpkit/normalizeResource.md delete mode 100644 docs/content/docs/reference/dpkit/normalizeSchema.md delete mode 100644 docs/content/docs/reference/dpkit/normalizeZenodoResource.md delete mode 100644 docs/content/docs/reference/dpkit/parseDescriptor.md delete mode 100644 docs/content/docs/reference/dpkit/parseField.md delete mode 100644 docs/content/docs/reference/dpkit/prefetchFile.md delete mode 100644 docs/content/docs/reference/dpkit/prefetchFiles.md delete mode 100644 docs/content/docs/reference/dpkit/processTable.md delete mode 100644 docs/content/docs/reference/dpkit/readTable.md delete mode 100644 docs/content/docs/reference/dpkit/saveCsvTable.md delete mode 100644 docs/content/docs/reference/dpkit/saveDescriptor.md delete mode 100644 docs/content/docs/reference/dpkit/saveDialect.md delete mode 100644 docs/content/docs/reference/dpkit/saveFile.md delete mode 100644 docs/content/docs/reference/dpkit/saveFileStream.md delete mode 100644 docs/content/docs/reference/dpkit/savePackage.md delete mode 100644 docs/content/docs/reference/dpkit/savePackageDescriptor.md delete mode 100644 docs/content/docs/reference/dpkit/savePackageToCkan.md delete mode 100644 docs/content/docs/reference/dpkit/savePackageToFolder.md delete mode 100644 docs/content/docs/reference/dpkit/savePackageToGithub.md delete mode 100644 docs/content/docs/reference/dpkit/savePackageToZenodo.md delete mode 100644 docs/content/docs/reference/dpkit/savePackageToZip.md delete mode 100644 docs/content/docs/reference/dpkit/saveResourceDescriptor.md delete mode 100644 docs/content/docs/reference/dpkit/saveResourceFiles.md delete mode 100644 docs/content/docs/reference/dpkit/saveSchema.md delete mode 100644 docs/content/docs/reference/dpkit/saveTable.md delete mode 100644 docs/content/docs/reference/dpkit/stringifyDescriptor.md delete mode 100644 docs/content/docs/reference/dpkit/validateDescriptor.md delete mode 100644 docs/content/docs/reference/dpkit/validateDialect.md delete mode 100644 docs/content/docs/reference/dpkit/validatePackageDescriptor.md delete mode 100644 docs/content/docs/reference/dpkit/validateResourceDescriptor.md delete mode 100644 docs/content/docs/reference/dpkit/validateSchema.md delete mode 100644 docs/content/docs/reference/dpkit/validateTable.md delete mode 100644 docs/content/docs/reference/dpkit/writeTempFile.md diff --git a/.gitignore b/.gitignore index a9ffb100..eac9ce06 100644 --- a/.gitignore +++ b/.gitignore @@ -62,7 +62,7 @@ pids build/ dist/ .astro/ -/docs/content/docs/packages/ +/docs/content/docs/reference/ **/.claude/settings.local.json AGENTS.md CLAUDE.md diff --git a/docs/content/docs/reference/README.md b/docs/content/docs/reference/README.md deleted file mode 100644 index b58b7081..00000000 --- a/docs/content/docs/reference/README.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "Documentation" ---- - -## Packages - -- [@dpkit/arrow](/reference/_dpkit/arrow/) -- [@dpkit/camtrap](/reference/_dpkit/camtrap/) -- [@dpkit/ckan](/reference/_dpkit/ckan/) -- [@dpkit/core](/reference/_dpkit/core/) -- [@dpkit/csv](/reference/_dpkit/csv/) -- [@dpkit/datahub](/reference/_dpkit/datahub/) -- [@dpkit/file](/reference/_dpkit/file/) -- [@dpkit/github](/reference/_dpkit/github/) -- [@dpkit/inline](/reference/_dpkit/inline/) -- [@dpkit/parquet](/reference/_dpkit/parquet/) -- [@dpkit/table](/reference/_dpkit/table/) -- [@dpkit/zenodo](/reference/_dpkit/zenodo/) -- [@dpkit/zip](/reference/_dpkit/zip/) -- [dpkit](/reference/dpkit/) diff --git a/docs/content/docs/reference/_dpkit/arrow.md b/docs/content/docs/reference/_dpkit/arrow.md deleted file mode 100644 index 13b7fcd8..00000000 --- a/docs/content/docs/reference/_dpkit/arrow.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "@dpkit/arrow" ---- - -# @dpkit/arrow - -dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). - -## Classes - -- [ArrowPlugin](/reference/_dpkit/arrow/arrowplugin/) - -## Functions - -- [loadArrowTable](/reference/_dpkit/arrow/loadarrowtable/) -- [saveArrowTable](/reference/_dpkit/arrow/savearrowtable/) diff --git a/docs/content/docs/reference/_dpkit/arrow/ArrowPlugin.md b/docs/content/docs/reference/_dpkit/arrow/ArrowPlugin.md deleted file mode 100644 index 3570c5ae..00000000 --- a/docs/content/docs/reference/_dpkit/arrow/ArrowPlugin.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "ArrowPlugin" ---- - -Defined in: [plugin.ts:7](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/arrow/plugin.ts#L7) - -## Implements - -- [`TablePlugin`](/reference/dpkit/tableplugin/) - -## Constructors - -### Constructor - -> **new ArrowPlugin**(): `ArrowPlugin` - -#### Returns - -`ArrowPlugin` - -## Methods - -### loadTable() - -> **loadTable**(`resource`): `Promise`\<`undefined` \| `LazyDataFrame`\> - -Defined in: [plugin.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/arrow/plugin.ts#L8) - -#### Parameters - -##### resource - -`Partial`\<[`Resource`](/reference/dpkit/resource/)\> - -#### Returns - -`Promise`\<`undefined` \| `LazyDataFrame`\> - -#### Implementation of - -[`TablePlugin`](/reference/dpkit/tableplugin/).[`loadTable`](/reference/dpkit/tableplugin/#loadtable) - -*** - -### saveTable() - -> **saveTable**(`table`, `options`): `Promise`\<`undefined` \| `string`\> - -Defined in: [plugin.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/arrow/plugin.ts#L15) - -#### Parameters - -##### table - -`LazyDataFrame` - -##### options - -[`SaveTableOptions`](/reference/dpkit/savetableoptions/) - -#### Returns - -`Promise`\<`undefined` \| `string`\> - -#### Implementation of - -[`TablePlugin`](/reference/dpkit/tableplugin/).[`saveTable`](/reference/dpkit/tableplugin/#savetable) diff --git a/docs/content/docs/reference/_dpkit/arrow/loadArrowTable.md b/docs/content/docs/reference/_dpkit/arrow/loadArrowTable.md deleted file mode 100644 index ca1859fe..00000000 --- a/docs/content/docs/reference/_dpkit/arrow/loadArrowTable.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadArrowTable" ---- - -> **loadArrowTable**(`resource`): `Promise`\<`LazyDataFrame`\> - -Defined in: [table/load.ts:7](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/arrow/table/load.ts#L7) - -## Parameters - -### resource - -`Partial`\<[`Resource`](/reference/dpkit/resource/)\> - -## Returns - -`Promise`\<`LazyDataFrame`\> diff --git a/docs/content/docs/reference/_dpkit/arrow/saveArrowTable.md b/docs/content/docs/reference/_dpkit/arrow/saveArrowTable.md deleted file mode 100644 index 0ae18f9e..00000000 --- a/docs/content/docs/reference/_dpkit/arrow/saveArrowTable.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "saveArrowTable" ---- - -> **saveArrowTable**(`table`, `options`): `Promise`\<`string`\> - -Defined in: [table/save.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/arrow/table/save.ts#L6) - -## Parameters - -### table - -`LazyDataFrame` - -### options - -[`SaveTableOptions`](/reference/dpkit/savetableoptions/) - -## Returns - -`Promise`\<`string`\> diff --git a/docs/content/docs/reference/_dpkit/camtrap.md b/docs/content/docs/reference/_dpkit/camtrap.md deleted file mode 100644 index 3d0daa77..00000000 --- a/docs/content/docs/reference/_dpkit/camtrap.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "@dpkit/camtrap" ---- - -# @dpkit/camtrap - -dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). - -## Interfaces - -- [CamtrapPackage](/reference/_dpkit/camtrap/camtrappackage/) - -## Functions - -- [assertCamtrapPackage](/reference/_dpkit/camtrap/assertcamtrappackage/) diff --git a/docs/content/docs/reference/_dpkit/camtrap/CamtrapPackage.md b/docs/content/docs/reference/_dpkit/camtrap/CamtrapPackage.md deleted file mode 100644 index 5f47782c..00000000 --- a/docs/content/docs/reference/_dpkit/camtrap/CamtrapPackage.md +++ /dev/null @@ -1,398 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "CamtrapPackage" ---- - -Defined in: [camtrap/package/Package.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/camtrap/package/Package.ts#L8) - -Camera Trap Data Package interface built on top of the TDWG specification - -## See - -https://camtrap-dp.tdwg.org/metadata/ - -## Extends - -- [`Package`](/reference/dpkit/package/) - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### $schema? - -> `optional` **$schema**: `string` - -Defined in: core/build/package/Package.d.ts:21 - -Package schema URL for validation - -#### Inherited from - -[`Package`](/reference/dpkit/package/).[`$schema`](/reference/dpkit/package/#schema) - -*** - -### bibliographicCitation? - -> `optional` **bibliographicCitation**: `string` - -Defined in: [camtrap/package/Package.ts:130](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/camtrap/package/Package.ts#L130) - -Bibliographic citation for the dataset - -*** - -### contributors - -> **contributors**: `CamtrapContributor`[] - -Defined in: [camtrap/package/Package.ts:26](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/camtrap/package/Package.ts#L26) - -Contributors to the package - -#### Required - -#### Overrides - -[`Package`](/reference/dpkit/package/).[`contributors`](/reference/dpkit/package/#contributors) - -*** - -### coordinatePrecision? - -> `optional` **coordinatePrecision**: `number` - -Defined in: [camtrap/package/Package.ts:125](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/camtrap/package/Package.ts#L125) - -Precision of geographic coordinates - -*** - -### created - -> **created**: `string` - -Defined in: [camtrap/package/Package.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/camtrap/package/Package.ts#L20) - -Creation date of the package - -#### Required - -#### Format - -ISO 8601 - -#### Overrides - -[`Package`](/reference/dpkit/package/).[`created`](/reference/dpkit/package/#created) - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: core/build/package/Package.d.ts:29 - -A description of the package - -#### Inherited from - -[`Package`](/reference/dpkit/package/).[`description`](/reference/dpkit/package/#description) - -*** - -### homepage? - -> `optional` **homepage**: `string` - -Defined in: core/build/package/Package.d.ts:33 - -A URL for the home page of the package - -#### Inherited from - -[`Package`](/reference/dpkit/package/).[`homepage`](/reference/dpkit/package/#homepage) - -*** - -### image? - -> `optional` **image**: `string` - -Defined in: core/build/package/Package.d.ts:63 - -Package image - -#### Inherited from - -[`Package`](/reference/dpkit/package/).[`image`](/reference/dpkit/package/#image) - -*** - -### keywords? - -> `optional` **keywords**: `string`[] - -Defined in: core/build/package/Package.d.ts:54 - -Keywords for the package - -#### Inherited from - -[`Package`](/reference/dpkit/package/).[`keywords`](/reference/dpkit/package/#keywords) - -*** - -### licenses? - -> `optional` **licenses**: `CamtrapLicense`[] - -Defined in: [camtrap/package/Package.ts:141](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/camtrap/package/Package.ts#L141) - -Licenses for the package -Extended with scope property - -#### Overrides - -[`Package`](/reference/dpkit/package/).[`licenses`](/reference/dpkit/package/#licenses) - -*** - -### name? - -> `optional` **name**: `string` - -Defined in: core/build/package/Package.d.ts:17 - -Unique package identifier -Should use lowercase alphanumeric characters, periods, hyphens, and underscores - -#### Inherited from - -[`Package`](/reference/dpkit/package/).[`name`](/reference/dpkit/package/#name) - -*** - -### profile - -> **profile**: `string` - -Defined in: [camtrap/package/Package.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/camtrap/package/Package.ts#L13) - -Package profile identifier - -#### Required - -*** - -### project - -> **project**: `object` - -Defined in: [camtrap/package/Package.ts:32](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/camtrap/package/Package.ts#L32) - -Project metadata - -#### acronym? - -> `optional` **acronym**: `string` - -Project acronym - -#### captureMethod - -> **captureMethod**: (`"activityDetection"` \| `"timeLapse"`)[] - -Capture method used - -##### Required - -#### description? - -> `optional` **description**: `string` - -Project description - -#### id? - -> `optional` **id**: `string` - -Project identifier - -#### individualAnimals - -> **individualAnimals**: `boolean` - -Whether individual animals were identified - -##### Required - -#### observationLevel - -> **observationLevel**: (`"media"` \| `"event"`)[] - -Level at which observations are recorded - -##### Required - -#### path? - -> `optional` **path**: `string` - -Project URL or path - -#### samplingDesign - -> **samplingDesign**: `"simpleRandom"` \| `"systematicRandom"` \| `"clusteredRandom"` \| `"experimental"` \| `"targeted"` \| `"opportunistic"` - -Sampling design methodology - -##### Required - -#### title - -> **title**: `string` - -Project title - -##### Required - -#### Required - -*** - -### relatedIdentifiers? - -> `optional` **relatedIdentifiers**: `RelatedIdentifier`[] - -Defined in: [camtrap/package/Package.ts:135](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/camtrap/package/Package.ts#L135) - -Related identifiers for the dataset - -*** - -### resources - -> **resources**: [`Resource`](/reference/dpkit/resource/)[] - -Defined in: core/build/package/Package.d.ts:12 - -Data resources in this package (required) - -#### Inherited from - -[`Package`](/reference/dpkit/package/).[`resources`](/reference/dpkit/package/#resources) - -*** - -### sources? - -> `optional` **sources**: [`Source`](/reference/dpkit/source/)[] - -Defined in: core/build/package/Package.d.ts:50 - -Data sources for this package - -#### Inherited from - -[`Package`](/reference/dpkit/package/).[`sources`](/reference/dpkit/package/#sources) - -*** - -### spatial - -> **spatial**: `GeoJSON` - -Defined in: [camtrap/package/Package.ts:94](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/camtrap/package/Package.ts#L94) - -Spatial coverage of the data - -#### Required - -*** - -### taxonomic - -> **taxonomic**: `TaxonomicCoverage`[] - -Defined in: [camtrap/package/Package.ts:120](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/camtrap/package/Package.ts#L120) - -Taxonomic coverage of the data - -#### Required - -*** - -### temporal - -> **temporal**: `object` - -Defined in: [camtrap/package/Package.ts:100](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/camtrap/package/Package.ts#L100) - -Temporal coverage of the data - -#### end - -> **end**: `string` - -End date of temporal coverage - -##### Required - -##### Format - -ISO 8601 - -#### start - -> **start**: `string` - -Start date of temporal coverage - -##### Required - -##### Format - -ISO 8601 - -#### Required - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: core/build/package/Package.d.ts:25 - -Human-readable title - -#### Inherited from - -[`Package`](/reference/dpkit/package/).[`title`](/reference/dpkit/package/#title) - -*** - -### version? - -> `optional` **version**: `string` - -Defined in: core/build/package/Package.d.ts:38 - -Version of the package using SemVer - -#### Example - -```ts -"1.0.0" -``` - -#### Inherited from - -[`Package`](/reference/dpkit/package/).[`version`](/reference/dpkit/package/#version) diff --git a/docs/content/docs/reference/_dpkit/camtrap/assertCamtrapPackage.md b/docs/content/docs/reference/_dpkit/camtrap/assertCamtrapPackage.md deleted file mode 100644 index 950c7e4e..00000000 --- a/docs/content/docs/reference/_dpkit/camtrap/assertCamtrapPackage.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "assertCamtrapPackage" ---- - -> **assertCamtrapPackage**(`descriptorOrPackage`): `Promise`\<[`CamtrapPackage`](/reference/_dpkit/camtrap/camtrappackage/)\> - -Defined in: [camtrap/package/assert.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/camtrap/package/assert.ts#L13) - -Assert a Package descriptor (JSON Object) against its profile - -## Parameters - -### descriptorOrPackage - -[`Package`](/reference/dpkit/package/) | [`Descriptor`](/reference/dpkit/descriptor/) - -## Returns - -`Promise`\<[`CamtrapPackage`](/reference/_dpkit/camtrap/camtrappackage/)\> diff --git a/docs/content/docs/reference/_dpkit/ckan.md b/docs/content/docs/reference/_dpkit/ckan.md deleted file mode 100644 index 629a858c..00000000 --- a/docs/content/docs/reference/_dpkit/ckan.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "@dpkit/ckan" ---- - -# @dpkit/ckan - -dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). - -## Classes - -- [CkanPlugin](/reference/_dpkit/ckan/ckanplugin/) - -## Interfaces - -- [CkanField](/reference/_dpkit/ckan/ckanfield/) -- [CkanOrganization](/reference/_dpkit/ckan/ckanorganization/) -- [CkanPackage](/reference/_dpkit/ckan/ckanpackage/) -- [CkanResource](/reference/_dpkit/ckan/ckanresource/) -- [CkanSchema](/reference/_dpkit/ckan/ckanschema/) -- [CkanTag](/reference/_dpkit/ckan/ckantag/) - -## Functions - -- [denormalizeCkanResource](/reference/_dpkit/ckan/denormalizeckanresource/) -- [loadPackageFromCkan](/reference/_dpkit/ckan/loadpackagefromckan/) -- [normalizeCkanSchema](/reference/_dpkit/ckan/normalizeckanschema/) -- [savePackageToCkan](/reference/_dpkit/ckan/savepackagetockan/) diff --git a/docs/content/docs/reference/_dpkit/ckan/CkanField.md b/docs/content/docs/reference/_dpkit/ckan/CkanField.md deleted file mode 100644 index 2441ba6e..00000000 --- a/docs/content/docs/reference/_dpkit/ckan/CkanField.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "CkanField" ---- - -Defined in: [ckan/schema/Field.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/schema/Field.ts#L4) - -CKAN Field interface - -## Properties - -### id - -> **id**: `string` - -Defined in: [ckan/schema/Field.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/schema/Field.ts#L8) - -Field identifier - -*** - -### info? - -> `optional` **info**: `CkanFieldInfo` - -Defined in: [ckan/schema/Field.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/schema/Field.ts#L18) - -Additional field information - -*** - -### type - -> **type**: `string` - -Defined in: [ckan/schema/Field.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/schema/Field.ts#L13) - -Field data type diff --git a/docs/content/docs/reference/_dpkit/ckan/CkanOrganization.md b/docs/content/docs/reference/_dpkit/ckan/CkanOrganization.md deleted file mode 100644 index 49e5ebc6..00000000 --- a/docs/content/docs/reference/_dpkit/ckan/CkanOrganization.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "CkanOrganization" ---- - -Defined in: [ckan/package/Organization.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Organization.ts#L4) - -CKAN Organization interface - -## Properties - -### description - -> **description**: `string` - -Defined in: [ckan/package/Organization.ts:23](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Organization.ts#L23) - -Organization description - -*** - -### id - -> **id**: `string` - -Defined in: [ckan/package/Organization.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Organization.ts#L8) - -Organization identifier - -*** - -### name - -> **name**: `string` - -Defined in: [ckan/package/Organization.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Organization.ts#L13) - -Organization name - -*** - -### title - -> **title**: `string` - -Defined in: [ckan/package/Organization.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Organization.ts#L18) - -Organization title diff --git a/docs/content/docs/reference/_dpkit/ckan/CkanPackage.md b/docs/content/docs/reference/_dpkit/ckan/CkanPackage.md deleted file mode 100644 index 1e97eaa1..00000000 --- a/docs/content/docs/reference/_dpkit/ckan/CkanPackage.md +++ /dev/null @@ -1,180 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "CkanPackage" ---- - -Defined in: [ckan/package/Package.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L8) - -CKAN Package interface - -## Properties - -### author? - -> `optional` **author**: `string` - -Defined in: [ckan/package/Package.ts:67](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L67) - -Package author - -*** - -### author\_email? - -> `optional` **author\_email**: `string` - -Defined in: [ckan/package/Package.ts:72](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L72) - -Package author email - -*** - -### id - -> **id**: `string` - -Defined in: [ckan/package/Package.ts:27](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L27) - -Package identifier - -*** - -### license\_id? - -> `optional` **license\_id**: `string` - -Defined in: [ckan/package/Package.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L52) - -License identifier - -*** - -### license\_title? - -> `optional` **license\_title**: `string` - -Defined in: [ckan/package/Package.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L57) - -License title - -*** - -### license\_url? - -> `optional` **license\_url**: `string` - -Defined in: [ckan/package/Package.ts:62](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L62) - -License URL - -*** - -### maintainer? - -> `optional` **maintainer**: `string` - -Defined in: [ckan/package/Package.ts:77](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L77) - -Package maintainer - -*** - -### maintainer\_email? - -> `optional` **maintainer\_email**: `string` - -Defined in: [ckan/package/Package.ts:82](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L82) - -Package maintainer email - -*** - -### metadata\_created? - -> `optional` **metadata\_created**: `string` - -Defined in: [ckan/package/Package.ts:87](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L87) - -Metadata creation timestamp - -*** - -### metadata\_modified? - -> `optional` **metadata\_modified**: `string` - -Defined in: [ckan/package/Package.ts:92](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L92) - -Metadata modification timestamp - -*** - -### name - -> **name**: `string` - -Defined in: [ckan/package/Package.ts:32](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L32) - -Package name - -*** - -### notes? - -> `optional` **notes**: `string` - -Defined in: [ckan/package/Package.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L42) - -Package notes/description - -*** - -### organization? - -> `optional` **organization**: [`CkanOrganization`](/reference/_dpkit/ckan/ckanorganization/) - -Defined in: [ckan/package/Package.ts:17](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L17) - -Organization information - -*** - -### resources - -> **resources**: [`CkanResource`](/reference/_dpkit/ckan/ckanresource/)[] - -Defined in: [ckan/package/Package.ts:12](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L12) - -List of resources - -*** - -### tags - -> **tags**: [`CkanTag`](/reference/_dpkit/ckan/ckantag/)[] - -Defined in: [ckan/package/Package.ts:22](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L22) - -List of tags - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: [ckan/package/Package.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L37) - -Package title - -*** - -### version? - -> `optional` **version**: `string` - -Defined in: [ckan/package/Package.ts:47](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Package.ts#L47) - -Package version diff --git a/docs/content/docs/reference/_dpkit/ckan/CkanPlugin.md b/docs/content/docs/reference/_dpkit/ckan/CkanPlugin.md deleted file mode 100644 index 231c83b2..00000000 --- a/docs/content/docs/reference/_dpkit/ckan/CkanPlugin.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "CkanPlugin" ---- - -Defined in: [ckan/plugin.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/plugin.ts#L5) - -## Implements - -- [`Plugin`](/reference/dpkit/plugin/) - -## Constructors - -### Constructor - -> **new CkanPlugin**(): `CkanPlugin` - -#### Returns - -`CkanPlugin` - -## Methods - -### loadPackage() - -> **loadPackage**(`source`): `Promise`\<`undefined` \| \{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> - -Defined in: [ckan/plugin.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/plugin.ts#L6) - -#### Parameters - -##### source - -`string` - -#### Returns - -`Promise`\<`undefined` \| \{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> - -#### Implementation of - -[`Plugin`](/reference/dpkit/plugin/).[`loadPackage`](/reference/dpkit/plugin/#loadpackage) diff --git a/docs/content/docs/reference/_dpkit/ckan/CkanResource.md b/docs/content/docs/reference/_dpkit/ckan/CkanResource.md deleted file mode 100644 index 3121ed4a..00000000 --- a/docs/content/docs/reference/_dpkit/ckan/CkanResource.md +++ /dev/null @@ -1,130 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "CkanResource" ---- - -Defined in: [ckan/resource/Resource.ts:7](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/resource/Resource.ts#L7) - -CKAN Resource interface - -## Properties - -### created - -> **created**: `string` - -Defined in: [ckan/resource/Resource.ts:26](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/resource/Resource.ts#L26) - -Resource creation timestamp - -*** - -### description - -> **description**: `string` - -Defined in: [ckan/resource/Resource.ts:31](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/resource/Resource.ts#L31) - -Resource description - -*** - -### format - -> **format**: `string` - -Defined in: [ckan/resource/Resource.ts:36](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/resource/Resource.ts#L36) - -Resource format - -*** - -### hash - -> **hash**: `string` - -Defined in: [ckan/resource/Resource.ts:41](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/resource/Resource.ts#L41) - -Resource hash - -*** - -### id - -> **id**: `string` - -Defined in: [ckan/resource/Resource.ts:11](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/resource/Resource.ts#L11) - -Resource identifier - -*** - -### last\_modified - -> **last\_modified**: `string` - -Defined in: [ckan/resource/Resource.ts:46](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/resource/Resource.ts#L46) - -Resource last modification timestamp - -*** - -### metadata\_modified - -> **metadata\_modified**: `string` - -Defined in: [ckan/resource/Resource.ts:51](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/resource/Resource.ts#L51) - -Resource metadata modification timestamp - -*** - -### mimetype - -> **mimetype**: `string` - -Defined in: [ckan/resource/Resource.ts:56](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/resource/Resource.ts#L56) - -Resource MIME type - -*** - -### name - -> **name**: `string` - -Defined in: [ckan/resource/Resource.ts:21](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/resource/Resource.ts#L21) - -Resource name - -*** - -### schema? - -> `optional` **schema**: [`CkanSchema`](/reference/_dpkit/ckan/ckanschema/) - -Defined in: [ckan/resource/Resource.ts:66](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/resource/Resource.ts#L66) - -Resource schema - -*** - -### size - -> **size**: `number` - -Defined in: [ckan/resource/Resource.ts:61](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/resource/Resource.ts#L61) - -Resource size in bytes - -*** - -### url - -> **url**: `string` - -Defined in: [ckan/resource/Resource.ts:16](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/resource/Resource.ts#L16) - -Resource URL diff --git a/docs/content/docs/reference/_dpkit/ckan/CkanSchema.md b/docs/content/docs/reference/_dpkit/ckan/CkanSchema.md deleted file mode 100644 index 4c5e1480..00000000 --- a/docs/content/docs/reference/_dpkit/ckan/CkanSchema.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "CkanSchema" ---- - -Defined in: [ckan/schema/Schema.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/schema/Schema.ts#L6) - -CKAN Schema interface - -## Properties - -### fields - -> **fields**: [`CkanField`](/reference/_dpkit/ckan/ckanfield/)[] - -Defined in: [ckan/schema/Schema.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/schema/Schema.ts#L10) - -List of fields diff --git a/docs/content/docs/reference/_dpkit/ckan/CkanTag.md b/docs/content/docs/reference/_dpkit/ckan/CkanTag.md deleted file mode 100644 index ebb085f6..00000000 --- a/docs/content/docs/reference/_dpkit/ckan/CkanTag.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "CkanTag" ---- - -Defined in: [ckan/package/Tag.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Tag.ts#L4) - -CKAN Tag interface - -## Properties - -### display\_name - -> **display\_name**: `string` - -Defined in: [ckan/package/Tag.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Tag.ts#L18) - -Tag display name - -*** - -### id - -> **id**: `string` - -Defined in: [ckan/package/Tag.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Tag.ts#L8) - -Tag identifier - -*** - -### name - -> **name**: `string` - -Defined in: [ckan/package/Tag.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/Tag.ts#L13) - -Tag name diff --git a/docs/content/docs/reference/_dpkit/ckan/denormalizeCkanResource.md b/docs/content/docs/reference/_dpkit/ckan/denormalizeCkanResource.md deleted file mode 100644 index 8f5bd4c7..00000000 --- a/docs/content/docs/reference/_dpkit/ckan/denormalizeCkanResource.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "denormalizeCkanResource" ---- - -> **denormalizeCkanResource**(`resource`): `Partial`\<[`CkanResource`](/reference/_dpkit/ckan/ckanresource/)\> - -Defined in: [ckan/resource/process/denormalize.ts:9](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/resource/process/denormalize.ts#L9) - -Denormalizes a Frictionless Data Resource to CKAN Resource format - -## Parameters - -### resource - -[`Resource`](/reference/dpkit/resource/) - -## Returns - -`Partial`\<[`CkanResource`](/reference/_dpkit/ckan/ckanresource/)\> - -Denormalized CKAN Resource object diff --git a/docs/content/docs/reference/_dpkit/ckan/loadPackageFromCkan.md b/docs/content/docs/reference/_dpkit/ckan/loadPackageFromCkan.md deleted file mode 100644 index bea3e7ff..00000000 --- a/docs/content/docs/reference/_dpkit/ckan/loadPackageFromCkan.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadPackageFromCkan" ---- - -> **loadPackageFromCkan**(`datasetUrl`): `Promise`\<\{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> - -Defined in: [ckan/package/load.ts:11](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/load.ts#L11) - -Load a package from a CKAN instance - -## Parameters - -### datasetUrl - -`string` - -## Returns - -`Promise`\<\{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> - -Package object and cleanup function diff --git a/docs/content/docs/reference/_dpkit/ckan/normalizeCkanSchema.md b/docs/content/docs/reference/_dpkit/ckan/normalizeCkanSchema.md deleted file mode 100644 index 52df5b79..00000000 --- a/docs/content/docs/reference/_dpkit/ckan/normalizeCkanSchema.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "normalizeCkanSchema" ---- - -> **normalizeCkanSchema**(`ckanSchema`): [`Schema`](/reference/dpkit/schema/) - -Defined in: [ckan/schema/process/normalize.ts:21](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/schema/process/normalize.ts#L21) - -Normalizes a CKAN schema to a Table Schema format - -## Parameters - -### ckanSchema - -[`CkanSchema`](/reference/_dpkit/ckan/ckanschema/) - -## Returns - -[`Schema`](/reference/dpkit/schema/) - -A normalized Table Schema object diff --git a/docs/content/docs/reference/_dpkit/ckan/savePackageToCkan.md b/docs/content/docs/reference/_dpkit/ckan/savePackageToCkan.md deleted file mode 100644 index ff232aae..00000000 --- a/docs/content/docs/reference/_dpkit/ckan/savePackageToCkan.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "savePackageToCkan" ---- - -> **savePackageToCkan**(`dataPackage`, `options`): `Promise`\<\{ `datasetUrl`: `string`; `path`: `unknown`; \}\> - -Defined in: [ckan/package/save.ts:19](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/ckan/package/save.ts#L19) - -## Parameters - -### dataPackage - -[`Package`](/reference/dpkit/package/) - -### options - -#### apiKey - -`string` - -#### ckanUrl - -`string` - -#### datasetName - -`string` - -#### ownerOrg - -`string` - -## Returns - -`Promise`\<\{ `datasetUrl`: `string`; `path`: `unknown`; \}\> diff --git a/docs/content/docs/reference/_dpkit/core.md b/docs/content/docs/reference/_dpkit/core.md deleted file mode 100644 index 9d35a204..00000000 --- a/docs/content/docs/reference/_dpkit/core.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "@dpkit/core" ---- - -# @dpkit/core - -dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). - -## Classes - -- [AssertionError](/reference/_dpkit/core/assertionerror/) - -## Interfaces - -- [AnyConstraints](/reference/_dpkit/core/anyconstraints/) -- [AnyField](/reference/_dpkit/core/anyfield/) -- [ArrayConstraints](/reference/_dpkit/core/arrayconstraints/) -- [ArrayField](/reference/_dpkit/core/arrayfield/) -- [BooleanConstraints](/reference/_dpkit/core/booleanconstraints/) -- [BooleanField](/reference/_dpkit/core/booleanfield/) -- [Contributor](/reference/_dpkit/core/contributor/) -- [DateConstraints](/reference/_dpkit/core/dateconstraints/) -- [DateField](/reference/_dpkit/core/datefield/) -- [DatetimeConstraints](/reference/_dpkit/core/datetimeconstraints/) -- [DatetimeField](/reference/_dpkit/core/datetimefield/) -- [Dialect](/reference/_dpkit/core/dialect/) -- [DurationConstraints](/reference/_dpkit/core/durationconstraints/) -- [DurationField](/reference/_dpkit/core/durationfield/) -- [ForeignKey](/reference/_dpkit/core/foreignkey/) -- [GeojsonConstraints](/reference/_dpkit/core/geojsonconstraints/) -- [GeojsonField](/reference/_dpkit/core/geojsonfield/) -- [GeopointConstraints](/reference/_dpkit/core/geopointconstraints/) -- [GeopointField](/reference/_dpkit/core/geopointfield/) -- [IntegerConstraints](/reference/_dpkit/core/integerconstraints/) -- [IntegerField](/reference/_dpkit/core/integerfield/) -- [License](/reference/_dpkit/core/license/) -- [ListConstraints](/reference/_dpkit/core/listconstraints/) -- [ListField](/reference/_dpkit/core/listfield/) -- [MetadataError](/reference/_dpkit/core/metadataerror/) -- [NumberConstraints](/reference/_dpkit/core/numberconstraints/) -- [NumberField](/reference/_dpkit/core/numberfield/) -- [ObjectConstraints](/reference/_dpkit/core/objectconstraints/) -- [ObjectField](/reference/_dpkit/core/objectfield/) -- [Package](/reference/_dpkit/core/package/) -- [Plugin](/reference/_dpkit/core/plugin/) -- [Resource](/reference/_dpkit/core/resource/) -- [Schema](/reference/_dpkit/core/schema/) -- [Source](/reference/_dpkit/core/source/) -- [StringConstraints](/reference/_dpkit/core/stringconstraints/) -- [StringField](/reference/_dpkit/core/stringfield/) -- [TimeConstraints](/reference/_dpkit/core/timeconstraints/) -- [TimeField](/reference/_dpkit/core/timefield/) -- [YearConstraints](/reference/_dpkit/core/yearconstraints/) -- [YearField](/reference/_dpkit/core/yearfield/) -- [YearmonthConstraints](/reference/_dpkit/core/yearmonthconstraints/) -- [YearmonthField](/reference/_dpkit/core/yearmonthfield/) - -## Type Aliases - -- [Descriptor](/reference/_dpkit/core/descriptor/) -- [Field](/reference/_dpkit/core/field/) -- [Metadata](/reference/_dpkit/core/metadata/) - -## Functions - -- [assertDialect](/reference/_dpkit/core/assertdialect/) -- [assertPackage](/reference/_dpkit/core/assertpackage/) -- [assertResource](/reference/_dpkit/core/assertresource/) -- [assertSchema](/reference/_dpkit/core/assertschema/) -- [denormalizeDialect](/reference/_dpkit/core/denormalizedialect/) -- [denormalizePackage](/reference/_dpkit/core/denormalizepackage/) -- [denormalizePath](/reference/_dpkit/core/denormalizepath/) -- [denormalizeResource](/reference/_dpkit/core/denormalizeresource/) -- [denormalizeSchema](/reference/_dpkit/core/denormalizeschema/) -- [getBasepath](/reference/_dpkit/core/getbasepath/) -- [getFilename](/reference/_dpkit/core/getfilename/) -- [getFormat](/reference/_dpkit/core/getformat/) -- [getName](/reference/_dpkit/core/getname/) -- [inferFormat](/reference/_dpkit/core/inferformat/) -- [isDescriptor](/reference/_dpkit/core/isdescriptor/) -- [isRemotePath](/reference/_dpkit/core/isremotepath/) -- [loadDescriptor](/reference/_dpkit/core/loaddescriptor/) -- [loadDialect](/reference/_dpkit/core/loaddialect/) -- [loadPackageDescriptor](/reference/_dpkit/core/loadpackagedescriptor/) -- [loadProfile](/reference/_dpkit/core/loadprofile/) -- [loadResourceDescriptor](/reference/_dpkit/core/loadresourcedescriptor/) -- [loadSchema](/reference/_dpkit/core/loadschema/) -- [mergePackages](/reference/_dpkit/core/mergepackages/) -- [normalizeDialect](/reference/_dpkit/core/normalizedialect/) -- [normalizeField](/reference/_dpkit/core/normalizefield/) -- [normalizePackage](/reference/_dpkit/core/normalizepackage/) -- [normalizePath](/reference/_dpkit/core/normalizepath/) -- [normalizeResource](/reference/_dpkit/core/normalizeresource/) -- [normalizeSchema](/reference/_dpkit/core/normalizeschema/) -- [parseDescriptor](/reference/_dpkit/core/parsedescriptor/) -- [saveDescriptor](/reference/_dpkit/core/savedescriptor/) -- [saveDialect](/reference/_dpkit/core/savedialect/) -- [savePackageDescriptor](/reference/_dpkit/core/savepackagedescriptor/) -- [saveResourceDescriptor](/reference/_dpkit/core/saveresourcedescriptor/) -- [saveSchema](/reference/_dpkit/core/saveschema/) -- [stringifyDescriptor](/reference/_dpkit/core/stringifydescriptor/) -- [validateDescriptor](/reference/_dpkit/core/validatedescriptor/) -- [validateDialect](/reference/_dpkit/core/validatedialect/) -- [validatePackageDescriptor](/reference/_dpkit/core/validatepackagedescriptor/) -- [validateResourceDescriptor](/reference/_dpkit/core/validateresourcedescriptor/) -- [validateSchema](/reference/_dpkit/core/validateschema/) diff --git a/docs/content/docs/reference/_dpkit/core/AnyConstraints.md b/docs/content/docs/reference/_dpkit/core/AnyConstraints.md deleted file mode 100644 index 6ac6b7fe..00000000 --- a/docs/content/docs/reference/_dpkit/core/AnyConstraints.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "AnyConstraints" ---- - -Defined in: [core/field/types/Any.ts:16](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Any.ts#L16) - -Any field constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `any`[] - -Defined in: [core/field/types/Any.ts:21](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Any.ts#L21) - -Restrict values to a specified set -For any field type, can be an array of any values - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/AnyField.md b/docs/content/docs/reference/_dpkit/core/AnyField.md deleted file mode 100644 index a827708a..00000000 --- a/docs/content/docs/reference/_dpkit/core/AnyField.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "AnyField" ---- - -Defined in: [core/field/types/Any.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Any.ts#L6) - -Any field type (unspecified/mixed) - -## Extends - -- `BaseField`\<[`AnyConstraints`](/reference/_dpkit/core/anyconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### constraints? - -> `optional` **constraints**: [`AnyConstraints`](/reference/_dpkit/core/anyconstraints/) - -Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type? - -> `optional` **type**: `"any"` - -Defined in: [core/field/types/Any.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Any.ts#L10) - -Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/ArrayConstraints.md b/docs/content/docs/reference/_dpkit/core/ArrayConstraints.md deleted file mode 100644 index 68b5dd81..00000000 --- a/docs/content/docs/reference/_dpkit/core/ArrayConstraints.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "ArrayConstraints" ---- - -Defined in: [core/field/types/Array.ts:16](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Array.ts#L16) - -Array-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] \| `any`[][] - -Defined in: [core/field/types/Array.ts:36](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Array.ts#L36) - -Restrict values to a specified set of arrays -Serialized as JSON strings or parsed array objects - -*** - -### jsonSchema? - -> `optional` **jsonSchema**: `Record`\<`string`, `any`\> - -Defined in: [core/field/types/Array.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Array.ts#L30) - -JSON Schema object for validating array items - -*** - -### maxLength? - -> `optional` **maxLength**: `number` - -Defined in: [core/field/types/Array.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Array.ts#L25) - -Maximum array length - -*** - -### minLength? - -> `optional` **minLength**: `number` - -Defined in: [core/field/types/Array.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Array.ts#L20) - -Minimum array length - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/ArrayField.md b/docs/content/docs/reference/_dpkit/core/ArrayField.md deleted file mode 100644 index 01ffa1fc..00000000 --- a/docs/content/docs/reference/_dpkit/core/ArrayField.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "ArrayField" ---- - -Defined in: [core/field/types/Array.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Array.ts#L6) - -Array field type (serialized JSON array) - -## Extends - -- `BaseField`\<[`ArrayConstraints`](/reference/_dpkit/core/arrayconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### constraints? - -> `optional` **constraints**: [`ArrayConstraints`](/reference/_dpkit/core/arrayconstraints/) - -Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type - -> **type**: `"array"` - -Defined in: [core/field/types/Array.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Array.ts#L10) - -Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/AssertionError.md b/docs/content/docs/reference/_dpkit/core/AssertionError.md deleted file mode 100644 index 1d6327d3..00000000 --- a/docs/content/docs/reference/_dpkit/core/AssertionError.md +++ /dev/null @@ -1,244 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "AssertionError" ---- - -Defined in: [core/general/Error.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/Error.ts#L13) - -Thrown when a descriptor assertion fails - -## Extends - -- `Error` - -## Constructors - -### Constructor - -> **new AssertionError**(`errors`): `AssertionError` - -Defined in: [core/general/Error.ts:16](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/Error.ts#L16) - -#### Parameters - -##### errors - -[`MetadataError`](/reference/_dpkit/core/metadataerror/)[] - -#### Returns - -`AssertionError` - -#### Overrides - -`Error.constructor` - -## Properties - -### cause? - -> `optional` **cause**: `unknown` - -Defined in: node\_modules/.pnpm/typescript@5.8.3/node\_modules/typescript/lib/lib.es2022.error.d.ts:26 - -#### Inherited from - -`Error.cause` - -*** - -### errors - -> `readonly` **errors**: [`MetadataError`](/reference/_dpkit/core/metadataerror/)[] - -Defined in: [core/general/Error.ts:14](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/Error.ts#L14) - -*** - -### message - -> **message**: `string` - -Defined in: node\_modules/.pnpm/typescript@5.8.3/node\_modules/typescript/lib/lib.es5.d.ts:1077 - -#### Inherited from - -`Error.message` - -*** - -### name - -> **name**: `string` - -Defined in: node\_modules/.pnpm/typescript@5.8.3/node\_modules/typescript/lib/lib.es5.d.ts:1076 - -#### Inherited from - -`Error.name` - -*** - -### stack? - -> `optional` **stack**: `string` - -Defined in: node\_modules/.pnpm/typescript@5.8.3/node\_modules/typescript/lib/lib.es5.d.ts:1078 - -#### Inherited from - -`Error.stack` - -*** - -### prepareStackTrace()? - -> `static` `optional` **prepareStackTrace**: (`err`, `stackTraces`) => `any` - -Defined in: node\_modules/.pnpm/@types+node@22.14.1/node\_modules/@types/node/globals.d.ts:143 - -Optional override for formatting stack traces - -#### Parameters - -##### err - -`Error` - -##### stackTraces - -`CallSite`[] - -#### Returns - -`any` - -#### See - -https://v8.dev/docs/stack-trace-api#customizing-stack-traces - -#### Inherited from - -`Error.prepareStackTrace` - -*** - -### stackTraceLimit - -> `static` **stackTraceLimit**: `number` - -Defined in: node\_modules/.pnpm/@types+node@22.14.1/node\_modules/@types/node/globals.d.ts:145 - -The `Error.stackTraceLimit` property specifies the number of stack frames -collected by a stack trace (whether generated by `new Error().stack` or -`Error.captureStackTrace(obj)`). - -The default value is `10` but may be set to any valid JavaScript number. Changes -will affect any stack trace captured _after_ the value has been changed. - -If set to a non-number value, or set to a negative number, stack traces will -not capture any frames. - -#### Inherited from - -`Error.stackTraceLimit` - -## Methods - -### captureStackTrace() - -#### Call Signature - -> `static` **captureStackTrace**(`targetObject`, `constructorOpt?`): `void` - -Defined in: node\_modules/.pnpm/@types+node@22.14.1/node\_modules/@types/node/globals.d.ts:136 - -Create .stack property on a target object - -##### Parameters - -###### targetObject - -`object` - -###### constructorOpt? - -`Function` - -##### Returns - -`void` - -##### Inherited from - -`Error.captureStackTrace` - -#### Call Signature - -> `static` **captureStackTrace**(`targetObject`, `constructorOpt?`): `void` - -Defined in: node\_modules/.pnpm/@types+node@22.15.31/node\_modules/@types/node/globals.d.ts:145 - -Creates a `.stack` property on `targetObject`, which when accessed returns -a string representing the location in the code at which -`Error.captureStackTrace()` was called. - -```js -const myObject = {}; -Error.captureStackTrace(myObject); -myObject.stack; // Similar to `new Error().stack` -``` - -The first line of the trace will be prefixed with -`${myObject.name}: ${myObject.message}`. - -The optional `constructorOpt` argument accepts a function. If given, all frames -above `constructorOpt`, including `constructorOpt`, will be omitted from the -generated stack trace. - -The `constructorOpt` argument is useful for hiding implementation -details of error generation from the user. For instance: - -```js -function a() { - b(); -} - -function b() { - c(); -} - -function c() { - // Create an error without stack trace to avoid calculating the stack trace twice. - const { stackTraceLimit } = Error; - Error.stackTraceLimit = 0; - const error = new Error(); - Error.stackTraceLimit = stackTraceLimit; - - // Capture the stack trace above function b - Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace - throw error; -} - -a(); -``` - -##### Parameters - -###### targetObject - -`object` - -###### constructorOpt? - -`Function` - -##### Returns - -`void` - -##### Inherited from - -`Error.captureStackTrace` diff --git a/docs/content/docs/reference/_dpkit/core/BooleanConstraints.md b/docs/content/docs/reference/_dpkit/core/BooleanConstraints.md deleted file mode 100644 index 68751e1b..00000000 --- a/docs/content/docs/reference/_dpkit/core/BooleanConstraints.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "BooleanConstraints" ---- - -Defined in: [core/field/types/Boolean.ts:26](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Boolean.ts#L26) - -Boolean-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] \| `boolean`[] - -Defined in: [core/field/types/Boolean.ts:31](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Boolean.ts#L31) - -Restrict values to a specified set -Can be an array of booleans or strings that parse to booleans - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/BooleanField.md b/docs/content/docs/reference/_dpkit/core/BooleanField.md deleted file mode 100644 index 782de07e..00000000 --- a/docs/content/docs/reference/_dpkit/core/BooleanField.md +++ /dev/null @@ -1,148 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "BooleanField" ---- - -Defined in: [core/field/types/Boolean.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Boolean.ts#L6) - -Boolean field type - -## Extends - -- `BaseField`\<[`BooleanConstraints`](/reference/_dpkit/core/booleanconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### constraints? - -> `optional` **constraints**: [`BooleanConstraints`](/reference/_dpkit/core/booleanconstraints/) - -Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### falseValues? - -> `optional` **falseValues**: `string`[] - -Defined in: [core/field/types/Boolean.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Boolean.ts#L20) - -Values that represent false - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### trueValues? - -> `optional` **trueValues**: `string`[] - -Defined in: [core/field/types/Boolean.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Boolean.ts#L15) - -Values that represent true - -*** - -### type - -> **type**: `"boolean"` - -Defined in: [core/field/types/Boolean.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Boolean.ts#L10) - -Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/Contributor.md b/docs/content/docs/reference/_dpkit/core/Contributor.md deleted file mode 100644 index b41e41a6..00000000 --- a/docs/content/docs/reference/_dpkit/core/Contributor.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "Contributor" ---- - -Defined in: [core/package/Contributor.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Contributor.ts#L4) - -Contributor information - -## Properties - -### email? - -> `optional` **email**: `string` - -Defined in: [core/package/Contributor.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Contributor.ts#L13) - -Email address of the contributor - -*** - -### path? - -> `optional` **path**: `string` - -Defined in: [core/package/Contributor.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Contributor.ts#L18) - -Path to relevant contributor information - -*** - -### role? - -> `optional` **role**: `string` - -Defined in: [core/package/Contributor.ts:23](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Contributor.ts#L23) - -Role of the contributor - -*** - -### title - -> **title**: `string` - -Defined in: [core/package/Contributor.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Contributor.ts#L8) - -Full name of the contributor diff --git a/docs/content/docs/reference/_dpkit/core/DateConstraints.md b/docs/content/docs/reference/_dpkit/core/DateConstraints.md deleted file mode 100644 index 1abeaf39..00000000 --- a/docs/content/docs/reference/_dpkit/core/DateConstraints.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "DateConstraints" ---- - -Defined in: [core/field/types/Date.ts:24](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Date.ts#L24) - -Date-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] - -Defined in: [core/field/types/Date.ts:39](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Date.ts#L39) - -Restrict values to a specified set of dates -Should be in string date format (e.g., "YYYY-MM-DD") - -*** - -### maximum? - -> `optional` **maximum**: `string` - -Defined in: [core/field/types/Date.ts:33](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Date.ts#L33) - -Maximum allowed date value - -*** - -### minimum? - -> `optional` **minimum**: `string` - -Defined in: [core/field/types/Date.ts:28](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Date.ts#L28) - -Minimum allowed date value - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/DateField.md b/docs/content/docs/reference/_dpkit/core/DateField.md deleted file mode 100644 index 864c8b00..00000000 --- a/docs/content/docs/reference/_dpkit/core/DateField.md +++ /dev/null @@ -1,141 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "DateField" ---- - -Defined in: [core/field/types/Date.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Date.ts#L6) - -Date field type - -## Extends - -- `BaseField`\<[`DateConstraints`](/reference/_dpkit/core/dateconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### constraints? - -> `optional` **constraints**: [`DateConstraints`](/reference/_dpkit/core/dateconstraints/) - -Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### format? - -> `optional` **format**: `string` - -Defined in: [core/field/types/Date.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Date.ts#L18) - -Format of the date -- default: YYYY-MM-DD -- any: flexible date parsing (not recommended) -- Or custom strptime/strftime format string - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type - -> **type**: `"date"` - -Defined in: [core/field/types/Date.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Date.ts#L10) - -Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/DatetimeConstraints.md b/docs/content/docs/reference/_dpkit/core/DatetimeConstraints.md deleted file mode 100644 index 4683f8b8..00000000 --- a/docs/content/docs/reference/_dpkit/core/DatetimeConstraints.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "DatetimeConstraints" ---- - -Defined in: [core/field/types/Datetime.ts:24](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Datetime.ts#L24) - -Datetime-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] - -Defined in: [core/field/types/Datetime.ts:39](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Datetime.ts#L39) - -Restrict values to a specified set of datetimes -Should be in string datetime format (e.g., ISO8601) - -*** - -### maximum? - -> `optional` **maximum**: `string` - -Defined in: [core/field/types/Datetime.ts:33](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Datetime.ts#L33) - -Maximum allowed datetime value - -*** - -### minimum? - -> `optional` **minimum**: `string` - -Defined in: [core/field/types/Datetime.ts:28](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Datetime.ts#L28) - -Minimum allowed datetime value - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/DatetimeField.md b/docs/content/docs/reference/_dpkit/core/DatetimeField.md deleted file mode 100644 index d13caf43..00000000 --- a/docs/content/docs/reference/_dpkit/core/DatetimeField.md +++ /dev/null @@ -1,141 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "DatetimeField" ---- - -Defined in: [core/field/types/Datetime.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Datetime.ts#L6) - -Datetime field type - -## Extends - -- `BaseField`\<[`DatetimeConstraints`](/reference/_dpkit/core/datetimeconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### constraints? - -> `optional` **constraints**: [`DatetimeConstraints`](/reference/_dpkit/core/datetimeconstraints/) - -Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### format? - -> `optional` **format**: `string` - -Defined in: [core/field/types/Datetime.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Datetime.ts#L18) - -Format of the datetime -- default: ISO8601 format -- any: flexible datetime parsing (not recommended) -- Or custom strptime/strftime format string - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type - -> **type**: `"datetime"` - -Defined in: [core/field/types/Datetime.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Datetime.ts#L10) - -Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/Descriptor.md b/docs/content/docs/reference/_dpkit/core/Descriptor.md deleted file mode 100644 index 8831bf70..00000000 --- a/docs/content/docs/reference/_dpkit/core/Descriptor.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "Descriptor" ---- - -> **Descriptor** = `Record`\<`string`, `unknown`\> - -Defined in: [core/general/descriptor/Descriptor.ts:1](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/descriptor/Descriptor.ts#L1) diff --git a/docs/content/docs/reference/_dpkit/core/Dialect.md b/docs/content/docs/reference/_dpkit/core/Dialect.md deleted file mode 100644 index 98203cf1..00000000 --- a/docs/content/docs/reference/_dpkit/core/Dialect.md +++ /dev/null @@ -1,221 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "Dialect" ---- - -Defined in: [core/dialect/Dialect.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L8) - -Descriptor that describes the structure of tabular data, such as delimiters, -headers, and other features. Following the Data Package standard: -https://datapackage.org/standard/table-dialect/ - -## Extends - -- [`Metadata`](/reference/_dpkit/core/metadata/) - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### $schema? - -> `optional` **$schema**: `string` - -Defined in: [core/dialect/Dialect.ts:17](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L17) - -JSON schema profile URL for validation - -*** - -### commentChar? - -> `optional` **commentChar**: `string` - -Defined in: [core/dialect/Dialect.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L42) - -Character sequence denoting the start of a comment line - -*** - -### commentRows? - -> `optional` **commentRows**: `number`[] - -Defined in: [core/dialect/Dialect.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L37) - -Specific rows to be excluded from the data (zero-based) - -*** - -### delimiter? - -> `optional` **delimiter**: `string` - -Defined in: [core/dialect/Dialect.ts:47](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L47) - -The character used to separate fields in the data - -*** - -### doubleQuote? - -> `optional` **doubleQuote**: `boolean` - -Defined in: [core/dialect/Dialect.ts:62](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L62) - -Controls whether a sequence of two quote characters represents a single quote - -*** - -### escapeChar? - -> `optional` **escapeChar**: `string` - -Defined in: [core/dialect/Dialect.ts:67](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L67) - -Character used to escape the delimiter or quote characters - -*** - -### header? - -> `optional` **header**: `boolean` - -Defined in: [core/dialect/Dialect.ts:22](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L22) - -Whether the file includes a header row with field names - -*** - -### headerJoin? - -> `optional` **headerJoin**: `string` - -Defined in: [core/dialect/Dialect.ts:32](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L32) - -The character used to join multi-line headers - -*** - -### headerRows? - -> `optional` **headerRows**: `number`[] - -Defined in: [core/dialect/Dialect.ts:27](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L27) - -Row numbers (zero-based) that are considered header rows - -*** - -### itemKeys? - -> `optional` **itemKeys**: `string`[] - -Defined in: [core/dialect/Dialect.ts:93](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L93) - -For object-based data items, specifies which object properties to extract as values - -*** - -### itemType? - -> `optional` **itemType**: `"object"` \| `"array"` - -Defined in: [core/dialect/Dialect.ts:88](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L88) - -The type of data item in the source: 'array' for rows represented as arrays, -or 'object' for rows represented as objects - -*** - -### lineTerminator? - -> `optional` **lineTerminator**: `string` - -Defined in: [core/dialect/Dialect.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L52) - -Character sequence used to terminate rows - -*** - -### name? - -> `optional` **name**: `string` - -Defined in: [core/dialect/Dialect.ts:12](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L12) - -The name of this dialect - -*** - -### nullSequence? - -> `optional` **nullSequence**: `string` - -Defined in: [core/dialect/Dialect.ts:72](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L72) - -Character sequence representing null or missing values in the data - -*** - -### property? - -> `optional` **property**: `string` - -Defined in: [core/dialect/Dialect.ts:82](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L82) - -For JSON data, the property name containing the data array - -*** - -### quoteChar? - -> `optional` **quoteChar**: `string` - -Defined in: [core/dialect/Dialect.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L57) - -Character used to quote fields - -*** - -### sheetName? - -> `optional` **sheetName**: `string` - -Defined in: [core/dialect/Dialect.ts:103](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L103) - -For spreadsheet data, the sheet name to read - -*** - -### sheetNumber? - -> `optional` **sheetNumber**: `number` - -Defined in: [core/dialect/Dialect.ts:98](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L98) - -For spreadsheet data, the sheet number to read (zero-based) - -*** - -### skipInitialSpace? - -> `optional` **skipInitialSpace**: `boolean` - -Defined in: [core/dialect/Dialect.ts:77](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L77) - -Whether to ignore whitespace immediately following the delimiter - -*** - -### table? - -> `optional` **table**: `string` - -Defined in: [core/dialect/Dialect.ts:108](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/Dialect.ts#L108) - -For database sources, the table name to read diff --git a/docs/content/docs/reference/_dpkit/core/DurationConstraints.md b/docs/content/docs/reference/_dpkit/core/DurationConstraints.md deleted file mode 100644 index 2b93870f..00000000 --- a/docs/content/docs/reference/_dpkit/core/DurationConstraints.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "DurationConstraints" ---- - -Defined in: [core/field/types/Duration.ts:16](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Duration.ts#L16) - -Duration-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] - -Defined in: [core/field/types/Duration.ts:31](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Duration.ts#L31) - -Restrict values to a specified set of durations -Should be in ISO 8601 duration format - -*** - -### maximum? - -> `optional` **maximum**: `string` - -Defined in: [core/field/types/Duration.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Duration.ts#L25) - -Maximum allowed duration (ISO 8601 format) - -*** - -### minimum? - -> `optional` **minimum**: `string` - -Defined in: [core/field/types/Duration.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Duration.ts#L20) - -Minimum allowed duration (ISO 8601 format) - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/DurationField.md b/docs/content/docs/reference/_dpkit/core/DurationField.md deleted file mode 100644 index 6ec5ec9a..00000000 --- a/docs/content/docs/reference/_dpkit/core/DurationField.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "DurationField" ---- - -Defined in: [core/field/types/Duration.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Duration.ts#L6) - -Duration field type (ISO 8601 duration) - -## Extends - -- `BaseField`\<[`DurationConstraints`](/reference/_dpkit/core/durationconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### constraints? - -> `optional` **constraints**: [`DurationConstraints`](/reference/_dpkit/core/durationconstraints/) - -Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type - -> **type**: `"duration"` - -Defined in: [core/field/types/Duration.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Duration.ts#L10) - -Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/Field.md b/docs/content/docs/reference/_dpkit/core/Field.md deleted file mode 100644 index e6fbc3e9..00000000 --- a/docs/content/docs/reference/_dpkit/core/Field.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "Field" ---- - -> **Field** = [`StringField`](/reference/_dpkit/core/stringfield/) \| [`NumberField`](/reference/_dpkit/core/numberfield/) \| [`IntegerField`](/reference/_dpkit/core/integerfield/) \| [`BooleanField`](/reference/_dpkit/core/booleanfield/) \| [`ObjectField`](/reference/_dpkit/core/objectfield/) \| [`ArrayField`](/reference/_dpkit/core/arrayfield/) \| [`ListField`](/reference/_dpkit/core/listfield/) \| [`DateField`](/reference/_dpkit/core/datefield/) \| [`TimeField`](/reference/_dpkit/core/timefield/) \| [`DatetimeField`](/reference/_dpkit/core/datetimefield/) \| [`YearField`](/reference/_dpkit/core/yearfield/) \| [`YearmonthField`](/reference/_dpkit/core/yearmonthfield/) \| [`DurationField`](/reference/_dpkit/core/durationfield/) \| [`GeopointField`](/reference/_dpkit/core/geopointfield/) \| [`GeojsonField`](/reference/_dpkit/core/geojsonfield/) \| [`AnyField`](/reference/_dpkit/core/anyfield/) - -Defined in: [core/field/Field.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/Field.ts#L6) - -A Table Schema field diff --git a/docs/content/docs/reference/_dpkit/core/ForeignKey.md b/docs/content/docs/reference/_dpkit/core/ForeignKey.md deleted file mode 100644 index fb70acfd..00000000 --- a/docs/content/docs/reference/_dpkit/core/ForeignKey.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "ForeignKey" ---- - -Defined in: [core/schema/ForeignKey.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/ForeignKey.ts#L5) - -Foreign key definition for Table Schema -Based on the specification at https://datapackage.org/standard/table-schema/#foreign-keys - -## Properties - -### fields - -> **fields**: `string`[] - -Defined in: [core/schema/ForeignKey.ts:9](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/ForeignKey.ts#L9) - -Source field(s) in this schema - -*** - -### reference - -> **reference**: `object` - -Defined in: [core/schema/ForeignKey.ts:14](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/ForeignKey.ts#L14) - -Reference to fields in another resource - -#### fields - -> **fields**: `string`[] - -Target field(s) in the referenced resource - -#### resource? - -> `optional` **resource**: `string` - -Target resource name (optional) diff --git a/docs/content/docs/reference/_dpkit/core/GeojsonConstraints.md b/docs/content/docs/reference/_dpkit/core/GeojsonConstraints.md deleted file mode 100644 index e518d949..00000000 --- a/docs/content/docs/reference/_dpkit/core/GeojsonConstraints.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "GeojsonConstraints" ---- - -Defined in: [core/field/types/Geojson.ts:23](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Geojson.ts#L23) - -GeoJSON-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] \| `Record`\<`string`, `any`\>[] - -Defined in: [core/field/types/Geojson.ts:28](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Geojson.ts#L28) - -Restrict values to a specified set of GeoJSON objects -Serialized as strings or GeoJSON object literals - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/GeojsonField.md b/docs/content/docs/reference/_dpkit/core/GeojsonField.md deleted file mode 100644 index d9089774..00000000 --- a/docs/content/docs/reference/_dpkit/core/GeojsonField.md +++ /dev/null @@ -1,140 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "GeojsonField" ---- - -Defined in: [core/field/types/Geojson.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Geojson.ts#L6) - -GeoJSON field type - -## Extends - -- `BaseField`\<[`GeojsonConstraints`](/reference/_dpkit/core/geojsonconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### constraints? - -> `optional` **constraints**: [`GeojsonConstraints`](/reference/_dpkit/core/geojsonconstraints/) - -Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### format? - -> `optional` **format**: `"default"` \| `"topojson"` - -Defined in: [core/field/types/Geojson.ts:17](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Geojson.ts#L17) - -Format of the geojson -- default: standard GeoJSON -- topojson: TopoJSON format - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type - -> **type**: `"geojson"` - -Defined in: [core/field/types/Geojson.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Geojson.ts#L10) - -Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/GeopointConstraints.md b/docs/content/docs/reference/_dpkit/core/GeopointConstraints.md deleted file mode 100644 index bed787b9..00000000 --- a/docs/content/docs/reference/_dpkit/core/GeopointConstraints.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "GeopointConstraints" ---- - -Defined in: [core/field/types/Geopoint.ts:24](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Geopoint.ts#L24) - -Geopoint-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] \| `number`[][] \| `Record`\<`string`, `number`\>[] - -Defined in: [core/field/types/Geopoint.ts:29](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Geopoint.ts#L29) - -Restrict values to a specified set of geopoints -Format depends on the field's format setting - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/GeopointField.md b/docs/content/docs/reference/_dpkit/core/GeopointField.md deleted file mode 100644 index e6d28f4d..00000000 --- a/docs/content/docs/reference/_dpkit/core/GeopointField.md +++ /dev/null @@ -1,141 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "GeopointField" ---- - -Defined in: [core/field/types/Geopoint.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Geopoint.ts#L6) - -Geopoint field type - -## Extends - -- `BaseField`\<[`GeopointConstraints`](/reference/_dpkit/core/geopointconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### constraints? - -> `optional` **constraints**: [`GeopointConstraints`](/reference/_dpkit/core/geopointconstraints/) - -Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### format? - -> `optional` **format**: `"object"` \| `"default"` \| `"array"` - -Defined in: [core/field/types/Geopoint.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Geopoint.ts#L18) - -Format of the geopoint -- default: "lon,lat" string with comma separator -- array: [lon,lat] array -- object: {lon:x, lat:y} object - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type - -> **type**: `"geopoint"` - -Defined in: [core/field/types/Geopoint.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Geopoint.ts#L10) - -Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/IntegerConstraints.md b/docs/content/docs/reference/_dpkit/core/IntegerConstraints.md deleted file mode 100644 index 18b9242e..00000000 --- a/docs/content/docs/reference/_dpkit/core/IntegerConstraints.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "IntegerConstraints" ---- - -Defined in: [core/field/types/Integer.ts:38](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Integer.ts#L38) - -**`Internal`** - -Integer-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] \| `number`[] - -Defined in: [core/field/types/Integer.ts:63](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Integer.ts#L63) - -Restrict values to a specified set -Can be an array of integers or strings that parse to integers - -*** - -### exclusiveMaximum? - -> `optional` **exclusiveMaximum**: `string` \| `number` - -Defined in: [core/field/types/Integer.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Integer.ts#L57) - -Exclusive maximum allowed value - -*** - -### exclusiveMinimum? - -> `optional` **exclusiveMinimum**: `string` \| `number` - -Defined in: [core/field/types/Integer.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Integer.ts#L52) - -Exclusive minimum allowed value - -*** - -### maximum? - -> `optional` **maximum**: `string` \| `number` - -Defined in: [core/field/types/Integer.ts:47](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Integer.ts#L47) - -Maximum allowed value - -*** - -### minimum? - -> `optional` **minimum**: `string` \| `number` - -Defined in: [core/field/types/Integer.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Integer.ts#L42) - -Minimum allowed value - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/IntegerField.md b/docs/content/docs/reference/_dpkit/core/IntegerField.md deleted file mode 100644 index 8a6ef672..00000000 --- a/docs/content/docs/reference/_dpkit/core/IntegerField.md +++ /dev/null @@ -1,169 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "IntegerField" ---- - -Defined in: [core/field/types/Integer.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Integer.ts#L6) - -Integer field type - -## Extends - -- `BaseField`\<[`IntegerConstraints`](/reference/_dpkit/core/integerconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### bareNumber? - -> `optional` **bareNumber**: `boolean` - -Defined in: [core/field/types/Integer.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Integer.ts#L20) - -Whether number is presented without currency symbols or percent signs - -*** - -### categories? - -> `optional` **categories**: `number`[] \| `object`[] - -Defined in: [core/field/types/Integer.ts:26](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Integer.ts#L26) - -Categories for enum values -Can be an array of values or an array of {value, label} objects - -*** - -### categoriesOrdered? - -> `optional` **categoriesOrdered**: `boolean` - -Defined in: [core/field/types/Integer.ts:31](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Integer.ts#L31) - -Whether categories should be considered to have a natural order - -*** - -### constraints? - -> `optional` **constraints**: [`IntegerConstraints`](/reference/_dpkit/core/integerconstraints/) - -Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### groupChar? - -> `optional` **groupChar**: `string` - -Defined in: [core/field/types/Integer.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Integer.ts#L15) - -Character used as thousands separator - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type - -> **type**: `"integer"` - -Defined in: [core/field/types/Integer.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Integer.ts#L10) - -Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/License.md b/docs/content/docs/reference/_dpkit/core/License.md deleted file mode 100644 index 7766540a..00000000 --- a/docs/content/docs/reference/_dpkit/core/License.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "License" ---- - -Defined in: [core/resource/License.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/License.ts#L4) - -License information - -## Properties - -### name? - -> `optional` **name**: `string` - -Defined in: [core/resource/License.ts:9](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/License.ts#L9) - -The name of the license - -#### Example - -```ts -"MIT", "Apache-2.0" -``` - -*** - -### path? - -> `optional` **path**: `string` - -Defined in: [core/resource/License.ts:14](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/License.ts#L14) - -A URL to the license text - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: [core/resource/License.ts:19](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/License.ts#L19) - -Human-readable title of the license diff --git a/docs/content/docs/reference/_dpkit/core/ListConstraints.md b/docs/content/docs/reference/_dpkit/core/ListConstraints.md deleted file mode 100644 index 645f5723..00000000 --- a/docs/content/docs/reference/_dpkit/core/ListConstraints.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "ListConstraints" ---- - -Defined in: [core/field/types/List.ts:33](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/List.ts#L33) - -List-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] \| `any`[][] - -Defined in: [core/field/types/List.ts:48](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/List.ts#L48) - -Restrict values to a specified set of lists -Either as delimited strings or arrays - -*** - -### maxLength? - -> `optional` **maxLength**: `number` - -Defined in: [core/field/types/List.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/List.ts#L42) - -Maximum number of list items - -*** - -### minLength? - -> `optional` **minLength**: `number` - -Defined in: [core/field/types/List.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/List.ts#L37) - -Minimum number of list items - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/ListField.md b/docs/content/docs/reference/_dpkit/core/ListField.md deleted file mode 100644 index 589c096f..00000000 --- a/docs/content/docs/reference/_dpkit/core/ListField.md +++ /dev/null @@ -1,148 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "ListField" ---- - -Defined in: [core/field/types/List.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/List.ts#L6) - -List field type (primitive values ordered collection) - -## Extends - -- `BaseField`\<[`ListConstraints`](/reference/_dpkit/core/listconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### constraints? - -> `optional` **constraints**: [`ListConstraints`](/reference/_dpkit/core/listconstraints/) - -Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### delimiter? - -> `optional` **delimiter**: `string` - -Defined in: [core/field/types/List.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/List.ts#L15) - -Character used to separate values in the list - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### itemType? - -> `optional` **itemType**: `"string"` \| `"number"` \| `"boolean"` \| `"integer"` \| `"datetime"` \| `"date"` \| `"time"` - -Defined in: [core/field/types/List.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/List.ts#L20) - -Type of items in the list - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type - -> **type**: `"list"` - -Defined in: [core/field/types/List.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/List.ts#L10) - -Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/Metadata.md b/docs/content/docs/reference/_dpkit/core/Metadata.md deleted file mode 100644 index f1a31c47..00000000 --- a/docs/content/docs/reference/_dpkit/core/Metadata.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "Metadata" ---- - -> **Metadata** = `` { [key in `${string}:${string}`]: any } `` - -Defined in: [core/general/metadata/Metadata.ts:1](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/metadata/Metadata.ts#L1) diff --git a/docs/content/docs/reference/_dpkit/core/MetadataError.md b/docs/content/docs/reference/_dpkit/core/MetadataError.md deleted file mode 100644 index a3670119..00000000 --- a/docs/content/docs/reference/_dpkit/core/MetadataError.md +++ /dev/null @@ -1,130 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "MetadataError" ---- - -Defined in: [core/general/Error.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/Error.ts#L6) - -A descriptor error - -## Extends - -- `ErrorObject` - -## Properties - -### data? - -> `optional` **data**: `unknown` - -Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:83 - -#### Inherited from - -`ErrorObject.data` - -*** - -### instancePath - -> **instancePath**: `string` - -Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:76 - -#### Inherited from - -`ErrorObject.instancePath` - -*** - -### keyword - -> **keyword**: `string` - -Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:75 - -#### Inherited from - -`ErrorObject.keyword` - -*** - -### message? - -> `optional` **message**: `string` - -Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:80 - -#### Inherited from - -`ErrorObject.message` - -*** - -### params - -> **params**: `P` - -Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:78 - -#### Inherited from - -`ErrorObject.params` - -*** - -### parentSchema? - -> `optional` **parentSchema**: `AnySchemaObject` - -Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:82 - -#### Inherited from - -`ErrorObject.parentSchema` - -*** - -### propertyName? - -> `optional` **propertyName**: `string` - -Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:79 - -#### Inherited from - -`ErrorObject.propertyName` - -*** - -### schema? - -> `optional` **schema**: `unknown` - -Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:81 - -#### Inherited from - -`ErrorObject.schema` - -*** - -### schemaPath - -> **schemaPath**: `string` - -Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:77 - -#### Inherited from - -`ErrorObject.schemaPath` - -*** - -### type - -> **type**: `"metadata"` - -Defined in: [core/general/Error.ts:7](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/Error.ts#L7) diff --git a/docs/content/docs/reference/_dpkit/core/NumberConstraints.md b/docs/content/docs/reference/_dpkit/core/NumberConstraints.md deleted file mode 100644 index a85a708b..00000000 --- a/docs/content/docs/reference/_dpkit/core/NumberConstraints.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "NumberConstraints" ---- - -Defined in: [core/field/types/Number.ts:31](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Number.ts#L31) - -Number-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] \| `number`[] - -Defined in: [core/field/types/Number.ts:56](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Number.ts#L56) - -Restrict values to a specified set -Can be an array of numbers or strings that parse to numbers - -*** - -### exclusiveMaximum? - -> `optional` **exclusiveMaximum**: `string` \| `number` - -Defined in: [core/field/types/Number.ts:50](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Number.ts#L50) - -Exclusive maximum allowed value - -*** - -### exclusiveMinimum? - -> `optional` **exclusiveMinimum**: `string` \| `number` - -Defined in: [core/field/types/Number.ts:45](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Number.ts#L45) - -Exclusive minimum allowed value - -*** - -### maximum? - -> `optional` **maximum**: `string` \| `number` - -Defined in: [core/field/types/Number.ts:40](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Number.ts#L40) - -Maximum allowed value - -*** - -### minimum? - -> `optional` **minimum**: `string` \| `number` - -Defined in: [core/field/types/Number.ts:35](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Number.ts#L35) - -Minimum allowed value - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/NumberField.md b/docs/content/docs/reference/_dpkit/core/NumberField.md deleted file mode 100644 index a14461ca..00000000 --- a/docs/content/docs/reference/_dpkit/core/NumberField.md +++ /dev/null @@ -1,158 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "NumberField" ---- - -Defined in: [core/field/types/Number.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Number.ts#L6) - -Number field type - -## Extends - -- `BaseField`\<[`NumberConstraints`](/reference/_dpkit/core/numberconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### bareNumber? - -> `optional` **bareNumber**: `boolean` - -Defined in: [core/field/types/Number.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Number.ts#L25) - -Whether number is presented without currency symbols or percent signs - -*** - -### constraints? - -> `optional` **constraints**: [`NumberConstraints`](/reference/_dpkit/core/numberconstraints/) - -Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### decimalChar? - -> `optional` **decimalChar**: `string` - -Defined in: [core/field/types/Number.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Number.ts#L15) - -Character used as decimal separator - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### groupChar? - -> `optional` **groupChar**: `string` - -Defined in: [core/field/types/Number.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Number.ts#L20) - -Character used as thousands separator - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type - -> **type**: `"number"` - -Defined in: [core/field/types/Number.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Number.ts#L10) - -Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/ObjectConstraints.md b/docs/content/docs/reference/_dpkit/core/ObjectConstraints.md deleted file mode 100644 index 596167d6..00000000 --- a/docs/content/docs/reference/_dpkit/core/ObjectConstraints.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "ObjectConstraints" ---- - -Defined in: [core/field/types/Object.ts:16](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Object.ts#L16) - -Object-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] \| `Record`\<`string`, `any`\>[] - -Defined in: [core/field/types/Object.ts:36](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Object.ts#L36) - -Restrict values to a specified set of objects -Serialized as JSON strings or object literals - -*** - -### jsonSchema? - -> `optional` **jsonSchema**: `Record`\<`string`, `any`\> - -Defined in: [core/field/types/Object.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Object.ts#L30) - -JSON Schema object for validating the object structure and properties - -*** - -### maxLength? - -> `optional` **maxLength**: `number` - -Defined in: [core/field/types/Object.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Object.ts#L25) - -Maximum number of properties - -*** - -### minLength? - -> `optional` **minLength**: `number` - -Defined in: [core/field/types/Object.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Object.ts#L20) - -Minimum number of properties - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/ObjectField.md b/docs/content/docs/reference/_dpkit/core/ObjectField.md deleted file mode 100644 index 8ef90462..00000000 --- a/docs/content/docs/reference/_dpkit/core/ObjectField.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "ObjectField" ---- - -Defined in: [core/field/types/Object.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Object.ts#L6) - -Object field type (serialized JSON object) - -## Extends - -- `BaseField`\<[`ObjectConstraints`](/reference/_dpkit/core/objectconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### constraints? - -> `optional` **constraints**: [`ObjectConstraints`](/reference/_dpkit/core/objectconstraints/) - -Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type - -> **type**: `"object"` - -Defined in: [core/field/types/Object.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Object.ts#L10) - -Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/Package.md b/docs/content/docs/reference/_dpkit/core/Package.md deleted file mode 100644 index 9fb4f129..00000000 --- a/docs/content/docs/reference/_dpkit/core/Package.md +++ /dev/null @@ -1,163 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "Package" ---- - -Defined in: [core/package/Package.ts:9](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Package.ts#L9) - -Data Package interface built on top of the Frictionless Data specification - -## See - -https://datapackage.org/standard/data-package/ - -## Extends - -- [`Metadata`](/reference/_dpkit/core/metadata/) - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### $schema? - -> `optional` **$schema**: `string` - -Defined in: [core/package/Package.ts:24](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Package.ts#L24) - -Package schema URL for validation - -*** - -### contributors? - -> `optional` **contributors**: [`Contributor`](/reference/_dpkit/core/contributor/)[] - -Defined in: [core/package/Package.ts:55](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Package.ts#L55) - -List of contributors - -*** - -### created? - -> `optional` **created**: `string` - -Defined in: [core/package/Package.ts:71](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Package.ts#L71) - -Create time of the package - -#### Format - -ISO 8601 format - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: [core/package/Package.ts:34](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Package.ts#L34) - -A description of the package - -*** - -### homepage? - -> `optional` **homepage**: `string` - -Defined in: [core/package/Package.ts:39](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Package.ts#L39) - -A URL for the home page of the package - -*** - -### image? - -> `optional` **image**: `string` - -Defined in: [core/package/Package.ts:76](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Package.ts#L76) - -Package image - -*** - -### keywords? - -> `optional` **keywords**: `string`[] - -Defined in: [core/package/Package.ts:65](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Package.ts#L65) - -Keywords for the package - -*** - -### licenses? - -> `optional` **licenses**: [`License`](/reference/_dpkit/core/license/)[] - -Defined in: [core/package/Package.ts:50](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Package.ts#L50) - -License information - -*** - -### name? - -> `optional` **name**: `string` - -Defined in: [core/package/Package.ts:19](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Package.ts#L19) - -Unique package identifier -Should use lowercase alphanumeric characters, periods, hyphens, and underscores - -*** - -### resources - -> **resources**: [`Resource`](/reference/_dpkit/core/resource/)[] - -Defined in: [core/package/Package.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Package.ts#L13) - -Data resources in this package (required) - -*** - -### sources? - -> `optional` **sources**: [`Source`](/reference/_dpkit/core/source/)[] - -Defined in: [core/package/Package.ts:60](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Package.ts#L60) - -Data sources for this package - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: [core/package/Package.ts:29](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Package.ts#L29) - -Human-readable title - -*** - -### version? - -> `optional` **version**: `string` - -Defined in: [core/package/Package.ts:45](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/Package.ts#L45) - -Version of the package using SemVer - -#### Example - -```ts -"1.0.0" -``` diff --git a/docs/content/docs/reference/_dpkit/core/Plugin.md b/docs/content/docs/reference/_dpkit/core/Plugin.md deleted file mode 100644 index d47d696a..00000000 --- a/docs/content/docs/reference/_dpkit/core/Plugin.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "Plugin" ---- - -Defined in: [core/plugin.ts:3](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/plugin.ts#L3) - -## Methods - -### loadPackage()? - -> `optional` **loadPackage**(`source`): `Promise`\<`undefined` \| [`Package`](/reference/_dpkit/core/package/)\> - -Defined in: [core/plugin.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/plugin.ts#L4) - -#### Parameters - -##### source - -`string` - -#### Returns - -`Promise`\<`undefined` \| [`Package`](/reference/_dpkit/core/package/)\> - -*** - -### savePackage()? - -> `optional` **savePackage**(`dataPackage`, `options`): `Promise`\<`undefined` \| \{ `path?`: `string`; \}\> - -Defined in: [core/plugin.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/plugin.ts#L6) - -#### Parameters - -##### dataPackage - -[`Package`](/reference/_dpkit/core/package/) - -##### options - -###### target - -`string` - -###### withRemote? - -`boolean` - -#### Returns - -`Promise`\<`undefined` \| \{ `path?`: `string`; \}\> diff --git a/docs/content/docs/reference/_dpkit/core/Resource.md b/docs/content/docs/reference/_dpkit/core/Resource.md deleted file mode 100644 index 57f1eedf..00000000 --- a/docs/content/docs/reference/_dpkit/core/Resource.md +++ /dev/null @@ -1,209 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "Resource" ---- - -Defined in: [core/resource/Resource.ts:11](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L11) - -Data Resource interface built on top of the Data Package standard and Polars DataFrames - -## See - -https://datapackage.org/standard/data-resource/ - -## Extends - -- [`Metadata`](/reference/_dpkit/core/metadata/) - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### bytes? - -> `optional` **bytes**: `number` - -Defined in: [core/resource/Resource.ts:67](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L67) - -Size of the file in bytes - -*** - -### data? - -> `optional` **data**: `unknown` - -Defined in: [core/resource/Resource.ts:28](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L28) - -Inline data content instead of referencing an external file -Either path or data must be provided - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: [core/resource/Resource.ts:62](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L62) - -A description of the resource - -*** - -### dialect? - -> `optional` **dialect**: `string` \| [`Dialect`](/reference/_dpkit/core/dialect/) - -Defined in: [core/resource/Resource.ts:89](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L89) - -Table dialect specification -Describes delimiters, quote characters, etc. - -#### See - -https://datapackage.org/standard/table-dialect/ - -*** - -### encoding? - -> `optional` **encoding**: `string` - -Defined in: [core/resource/Resource.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L52) - -Character encoding of the resource - -#### Default - -```ts -"utf-8" -``` - -*** - -### format? - -> `optional` **format**: `string` - -Defined in: [core/resource/Resource.ts:40](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L40) - -The file format - -#### Example - -```ts -"csv", "json", "xlsx" -``` - -*** - -### hash? - -> `optional` **hash**: `string` - -Defined in: [core/resource/Resource.ts:72](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L72) - -Hash of the resource data - -*** - -### licenses? - -> `optional` **licenses**: [`License`](/reference/_dpkit/core/license/)[] - -Defined in: [core/resource/Resource.ts:82](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L82) - -License information - -*** - -### mediatype? - -> `optional` **mediatype**: `string` - -Defined in: [core/resource/Resource.ts:46](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L46) - -The media type of the resource - -#### Example - -```ts -"text/csv", "application/json" -``` - -*** - -### name - -> **name**: `string` - -Defined in: [core/resource/Resource.ts:16](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L16) - -Unique resource identifier -Should use lowercase alphanumeric characters, periods, hyphens, and underscores - -*** - -### path? - -> `optional` **path**: `string` \| `string`[] - -Defined in: [core/resource/Resource.ts:22](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L22) - -A reference to the data itself, can be a path URL or array of paths -Either path or data must be provided - -*** - -### schema? - -> `optional` **schema**: `string` \| [`Schema`](/reference/_dpkit/core/schema/) - -Defined in: [core/resource/Resource.ts:96](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L96) - -Schema for the tabular data -Describes fields in the table, constraints, etc. - -#### See - -https://datapackage.org/standard/table-schema/ - -*** - -### sources? - -> `optional` **sources**: [`Source`](/reference/_dpkit/core/source/)[] - -Defined in: [core/resource/Resource.ts:77](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L77) - -Data sources - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: [core/resource/Resource.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L57) - -Human-readable title - -*** - -### type? - -> `optional` **type**: `"table"` - -Defined in: [core/resource/Resource.ts:34](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Resource.ts#L34) - -The resource type - -#### Example - -```ts -"table" -``` diff --git a/docs/content/docs/reference/_dpkit/core/Schema.md b/docs/content/docs/reference/_dpkit/core/Schema.md deleted file mode 100644 index 9eb8a1a1..00000000 --- a/docs/content/docs/reference/_dpkit/core/Schema.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "Schema" ---- - -Defined in: [core/schema/Schema.ts:9](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/Schema.ts#L9) - -Table Schema definition -Based on the specification at https://datapackage.org/standard/table-schema/ - -## Extends - -- [`Metadata`](/reference/_dpkit/core/metadata/) - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### $schema? - -> `optional` **$schema**: `string` - -Defined in: [core/schema/Schema.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/Schema.ts#L18) - -URL of schema (optional) - -*** - -### fields - -> **fields**: [`Field`](/reference/_dpkit/core/field/)[] - -Defined in: [core/schema/Schema.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/Schema.ts#L13) - -Fields in this schema (required) - -*** - -### fieldsMatch? - -> `optional` **fieldsMatch**: `"exact"` \| `"equal"` \| `"subset"` \| `"superset"` \| `"partial"` - -Defined in: [core/schema/Schema.ts:24](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/Schema.ts#L24) - -Field matching rule (optional) -Default: "exact" - -*** - -### foreignKeys? - -> `optional` **foreignKeys**: [`ForeignKey`](/reference/_dpkit/core/foreignkey/)[] - -Defined in: [core/schema/Schema.ts:47](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/Schema.ts#L47) - -Foreign key relationships (optional) - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: [core/schema/Schema.ts:32](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/Schema.ts#L32) - -Values representing missing data (optional) -Default: [""] -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -*** - -### primaryKey? - -> `optional` **primaryKey**: `string`[] - -Defined in: [core/schema/Schema.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/Schema.ts#L37) - -Fields uniquely identifying each row (optional) - -*** - -### uniqueKeys? - -> `optional` **uniqueKeys**: `string`[][] - -Defined in: [core/schema/Schema.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/Schema.ts#L42) - -Field combinations that must be unique (optional) diff --git a/docs/content/docs/reference/_dpkit/core/Source.md b/docs/content/docs/reference/_dpkit/core/Source.md deleted file mode 100644 index 3846de5c..00000000 --- a/docs/content/docs/reference/_dpkit/core/Source.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "Source" ---- - -Defined in: [core/resource/Source.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Source.ts#L4) - -Source information - -## Properties - -### email? - -> `optional` **email**: `string` - -Defined in: [core/resource/Source.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Source.ts#L18) - -Email contact for the source - -*** - -### path? - -> `optional` **path**: `string` - -Defined in: [core/resource/Source.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Source.ts#L13) - -URL or path to the source - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: [core/resource/Source.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/Source.ts#L8) - -Human-readable title of the source diff --git a/docs/content/docs/reference/_dpkit/core/StringConstraints.md b/docs/content/docs/reference/_dpkit/core/StringConstraints.md deleted file mode 100644 index 4e1be28c..00000000 --- a/docs/content/docs/reference/_dpkit/core/StringConstraints.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "StringConstraints" ---- - -Defined in: [core/field/types/String.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/String.ts#L37) - -String-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] - -Defined in: [core/field/types/String.ts:56](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/String.ts#L56) - -Restrict values to a specified set of strings - -*** - -### maxLength? - -> `optional` **maxLength**: `number` - -Defined in: [core/field/types/String.ts:46](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/String.ts#L46) - -Maximum string length - -*** - -### minLength? - -> `optional` **minLength**: `number` - -Defined in: [core/field/types/String.ts:41](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/String.ts#L41) - -Minimum string length - -*** - -### pattern? - -> `optional` **pattern**: `string` - -Defined in: [core/field/types/String.ts:51](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/String.ts#L51) - -Regular expression pattern to match - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/StringField.md b/docs/content/docs/reference/_dpkit/core/StringField.md deleted file mode 100644 index bea8829f..00000000 --- a/docs/content/docs/reference/_dpkit/core/StringField.md +++ /dev/null @@ -1,164 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "StringField" ---- - -Defined in: [core/field/types/String.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/String.ts#L6) - -String field type - -## Extends - -- `BaseField`\<[`StringConstraints`](/reference/_dpkit/core/stringconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### categories? - -> `optional` **categories**: `string`[] \| `object`[] - -Defined in: [core/field/types/String.ts:26](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/String.ts#L26) - -Categories for enum values -Can be an array of string values or an array of {value, label} objects - -*** - -### categoriesOrdered? - -> `optional` **categoriesOrdered**: `boolean` - -Defined in: [core/field/types/String.ts:31](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/String.ts#L31) - -Whether categories should be considered to have a natural order - -*** - -### constraints? - -> `optional` **constraints**: [`StringConstraints`](/reference/_dpkit/core/stringconstraints/) - -Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### format? - -> `optional` **format**: `string` - -Defined in: [core/field/types/String.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/String.ts#L20) - -Format of the string -- default: any valid string -- email: valid email address -- uri: valid URI -- binary: base64 encoded string -- uuid: valid UUID string - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type - -> **type**: `"string"` - -Defined in: [core/field/types/String.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/String.ts#L10) - -Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/TimeConstraints.md b/docs/content/docs/reference/_dpkit/core/TimeConstraints.md deleted file mode 100644 index 8275323c..00000000 --- a/docs/content/docs/reference/_dpkit/core/TimeConstraints.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "TimeConstraints" ---- - -Defined in: [core/field/types/Time.ts:24](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Time.ts#L24) - -Time-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] - -Defined in: [core/field/types/Time.ts:39](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Time.ts#L39) - -Restrict values to a specified set of times -Should be in string time format (e.g., "HH:MM:SS") - -*** - -### maximum? - -> `optional` **maximum**: `string` - -Defined in: [core/field/types/Time.ts:33](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Time.ts#L33) - -Maximum allowed time value - -*** - -### minimum? - -> `optional` **minimum**: `string` - -Defined in: [core/field/types/Time.ts:28](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Time.ts#L28) - -Minimum allowed time value - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/TimeField.md b/docs/content/docs/reference/_dpkit/core/TimeField.md deleted file mode 100644 index afd11578..00000000 --- a/docs/content/docs/reference/_dpkit/core/TimeField.md +++ /dev/null @@ -1,141 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "TimeField" ---- - -Defined in: [core/field/types/Time.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Time.ts#L6) - -Time field type - -## Extends - -- `BaseField`\<[`TimeConstraints`](/reference/_dpkit/core/timeconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### constraints? - -> `optional` **constraints**: [`TimeConstraints`](/reference/_dpkit/core/timeconstraints/) - -Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### format? - -> `optional` **format**: `string` - -Defined in: [core/field/types/Time.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Time.ts#L18) - -Format of the time -- default: HH:MM:SS -- any: flexible time parsing (not recommended) -- Or custom strptime/strftime format string - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type - -> **type**: `"time"` - -Defined in: [core/field/types/Time.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Time.ts#L10) - -Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/YearConstraints.md b/docs/content/docs/reference/_dpkit/core/YearConstraints.md deleted file mode 100644 index 090a4d04..00000000 --- a/docs/content/docs/reference/_dpkit/core/YearConstraints.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "YearConstraints" ---- - -Defined in: [core/field/types/Year.ts:16](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Year.ts#L16) - -Year-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] \| `number`[] - -Defined in: [core/field/types/Year.ts:31](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Year.ts#L31) - -Restrict values to a specified set of years -Can be an array of numbers or strings that parse to years - -*** - -### maximum? - -> `optional` **maximum**: `number` - -Defined in: [core/field/types/Year.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Year.ts#L25) - -Maximum allowed year - -*** - -### minimum? - -> `optional` **minimum**: `number` - -Defined in: [core/field/types/Year.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Year.ts#L20) - -Minimum allowed year - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/YearField.md b/docs/content/docs/reference/_dpkit/core/YearField.md deleted file mode 100644 index 4bdae265..00000000 --- a/docs/content/docs/reference/_dpkit/core/YearField.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "YearField" ---- - -Defined in: [core/field/types/Year.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Year.ts#L6) - -Year field type - -## Extends - -- `BaseField`\<[`YearConstraints`](/reference/_dpkit/core/yearconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### constraints? - -> `optional` **constraints**: [`YearConstraints`](/reference/_dpkit/core/yearconstraints/) - -Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type - -> **type**: `"year"` - -Defined in: [core/field/types/Year.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Year.ts#L10) - -Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/YearmonthConstraints.md b/docs/content/docs/reference/_dpkit/core/YearmonthConstraints.md deleted file mode 100644 index ae1d8070..00000000 --- a/docs/content/docs/reference/_dpkit/core/YearmonthConstraints.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "YearmonthConstraints" ---- - -Defined in: [core/field/types/Yearmonth.ts:16](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Yearmonth.ts#L16) - -Yearmonth-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] - -Defined in: [core/field/types/Yearmonth.ts:31](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Yearmonth.ts#L31) - -Restrict values to a specified set of yearmonths -Should be in string format (e.g., "YYYY-MM") - -*** - -### maximum? - -> `optional` **maximum**: `string` - -Defined in: [core/field/types/Yearmonth.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Yearmonth.ts#L25) - -Maximum allowed yearmonth value (format: YYYY-MM) - -*** - -### minimum? - -> `optional` **minimum**: `string` - -Defined in: [core/field/types/Yearmonth.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Yearmonth.ts#L20) - -Minimum allowed yearmonth value (format: YYYY-MM) - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: [core/field/types/Base.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L52) - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: [core/field/types/Base.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L57) - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/_dpkit/core/YearmonthField.md b/docs/content/docs/reference/_dpkit/core/YearmonthField.md deleted file mode 100644 index b4a3d4d9..00000000 --- a/docs/content/docs/reference/_dpkit/core/YearmonthField.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "YearmonthField" ---- - -Defined in: [core/field/types/Yearmonth.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Yearmonth.ts#L6) - -Year and month field type - -## Extends - -- `BaseField`\<[`YearmonthConstraints`](/reference/_dpkit/core/yearmonthconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### constraints? - -> `optional` **constraints**: [`YearmonthConstraints`](/reference/_dpkit/core/yearmonthconstraints/) - -Defined in: [core/field/types/Base.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L42) - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: [core/field/types/Base.ts:20](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L20) - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: [core/field/types/Base.ts:25](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L25) - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: [core/field/types/Base.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L37) - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: [core/field/types/Base.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L10) - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: [core/field/types/Base.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L30) - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: [core/field/types/Base.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Base.ts#L15) - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type - -> **type**: `"yearmonth"` - -Defined in: [core/field/types/Yearmonth.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/types/Yearmonth.ts#L10) - -Field type - discriminator property diff --git a/docs/content/docs/reference/_dpkit/core/assertDialect.md b/docs/content/docs/reference/_dpkit/core/assertDialect.md deleted file mode 100644 index 28481f81..00000000 --- a/docs/content/docs/reference/_dpkit/core/assertDialect.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "assertDialect" ---- - -> **assertDialect**(`descriptor`): `Promise`\<[`Dialect`](/reference/_dpkit/core/dialect/)\> - -Defined in: [core/dialect/assert.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/assert.ts#L8) - -Assert a Dialect descriptor (JSON Object) against its profile - -## Parameters - -### descriptor - -[`Descriptor`](/reference/_dpkit/core/descriptor/) | [`Dialect`](/reference/_dpkit/core/dialect/) - -## Returns - -`Promise`\<[`Dialect`](/reference/_dpkit/core/dialect/)\> diff --git a/docs/content/docs/reference/_dpkit/core/assertPackage.md b/docs/content/docs/reference/_dpkit/core/assertPackage.md deleted file mode 100644 index 0d512215..00000000 --- a/docs/content/docs/reference/_dpkit/core/assertPackage.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "assertPackage" ---- - -> **assertPackage**(`descriptorOrPackage`, `options?`): `Promise`\<[`Package`](/reference/_dpkit/core/package/)\> - -Defined in: [core/package/assert.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/assert.ts#L8) - -Assert a Package descriptor (JSON Object) against its profile - -## Parameters - -### descriptorOrPackage - -[`Package`](/reference/_dpkit/core/package/) | [`Descriptor`](/reference/_dpkit/core/descriptor/) - -### options? - -#### basepath? - -`string` - -## Returns - -`Promise`\<[`Package`](/reference/_dpkit/core/package/)\> diff --git a/docs/content/docs/reference/_dpkit/core/assertResource.md b/docs/content/docs/reference/_dpkit/core/assertResource.md deleted file mode 100644 index f8165838..00000000 --- a/docs/content/docs/reference/_dpkit/core/assertResource.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "assertResource" ---- - -> **assertResource**(`descriptorOrResource`, `options?`): `Promise`\<[`Resource`](/reference/_dpkit/core/resource/)\> - -Defined in: [core/resource/assert.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/assert.ts#L8) - -Assert a Resource descriptor (JSON Object) against its profile - -## Parameters - -### descriptorOrResource - -[`Descriptor`](/reference/_dpkit/core/descriptor/) | [`Resource`](/reference/_dpkit/core/resource/) - -### options? - -#### basepath? - -`string` - -## Returns - -`Promise`\<[`Resource`](/reference/_dpkit/core/resource/)\> diff --git a/docs/content/docs/reference/_dpkit/core/assertSchema.md b/docs/content/docs/reference/_dpkit/core/assertSchema.md deleted file mode 100644 index 517e7675..00000000 --- a/docs/content/docs/reference/_dpkit/core/assertSchema.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "assertSchema" ---- - -> **assertSchema**(`descriptor`): `Promise`\<[`Schema`](/reference/_dpkit/core/schema/)\> - -Defined in: [core/schema/assert.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/assert.ts#L8) - -Assert a Schema descriptor (JSON Object) against its profile - -## Parameters - -### descriptor - -[`Descriptor`](/reference/_dpkit/core/descriptor/) | [`Schema`](/reference/_dpkit/core/schema/) - -## Returns - -`Promise`\<[`Schema`](/reference/_dpkit/core/schema/)\> diff --git a/docs/content/docs/reference/_dpkit/core/denormalizeDialect.md b/docs/content/docs/reference/_dpkit/core/denormalizeDialect.md deleted file mode 100644 index 6878f74f..00000000 --- a/docs/content/docs/reference/_dpkit/core/denormalizeDialect.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "denormalizeDialect" ---- - -> **denormalizeDialect**(`dialect`): [`Descriptor`](/reference/_dpkit/core/descriptor/) - -Defined in: [core/dialect/process/denormalize.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/process/denormalize.ts#L4) - -## Parameters - -### dialect - -[`Dialect`](/reference/_dpkit/core/dialect/) - -## Returns - -[`Descriptor`](/reference/_dpkit/core/descriptor/) diff --git a/docs/content/docs/reference/_dpkit/core/denormalizePackage.md b/docs/content/docs/reference/_dpkit/core/denormalizePackage.md deleted file mode 100644 index 6bfb4bcc..00000000 --- a/docs/content/docs/reference/_dpkit/core/denormalizePackage.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "denormalizePackage" ---- - -> **denormalizePackage**(`dataPackage`, `options?`): [`Descriptor`](/reference/_dpkit/core/descriptor/) - -Defined in: [core/package/process/denormalize.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/process/denormalize.ts#L5) - -## Parameters - -### dataPackage - -[`Package`](/reference/_dpkit/core/package/) - -### options? - -#### basepath? - -`string` - -## Returns - -[`Descriptor`](/reference/_dpkit/core/descriptor/) diff --git a/docs/content/docs/reference/_dpkit/core/denormalizePath.md b/docs/content/docs/reference/_dpkit/core/denormalizePath.md deleted file mode 100644 index 5d384b08..00000000 --- a/docs/content/docs/reference/_dpkit/core/denormalizePath.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "denormalizePath" ---- - -> **denormalizePath**(`path`, `options`): `string` - -Defined in: [core/general/path.ts:103](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/path.ts#L103) - -## Parameters - -### path - -`string` - -### options - -#### basepath? - -`string` - -## Returns - -`string` diff --git a/docs/content/docs/reference/_dpkit/core/denormalizeResource.md b/docs/content/docs/reference/_dpkit/core/denormalizeResource.md deleted file mode 100644 index d7d95eee..00000000 --- a/docs/content/docs/reference/_dpkit/core/denormalizeResource.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "denormalizeResource" ---- - -> **denormalizeResource**(`resource`, `options?`): [`Descriptor`](/reference/_dpkit/core/descriptor/) - -Defined in: [core/resource/process/denormalize.ts:7](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/process/denormalize.ts#L7) - -## Parameters - -### resource - -[`Resource`](/reference/_dpkit/core/resource/) - -### options? - -#### basepath? - -`string` - -## Returns - -[`Descriptor`](/reference/_dpkit/core/descriptor/) diff --git a/docs/content/docs/reference/_dpkit/core/denormalizeSchema.md b/docs/content/docs/reference/_dpkit/core/denormalizeSchema.md deleted file mode 100644 index 29b8f48a..00000000 --- a/docs/content/docs/reference/_dpkit/core/denormalizeSchema.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "denormalizeSchema" ---- - -> **denormalizeSchema**(`schema`): [`Descriptor`](/reference/_dpkit/core/descriptor/) - -Defined in: [core/schema/process/denormalize.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/process/denormalize.ts#L4) - -## Parameters - -### schema - -[`Schema`](/reference/_dpkit/core/schema/) - -## Returns - -[`Descriptor`](/reference/_dpkit/core/descriptor/) diff --git a/docs/content/docs/reference/_dpkit/core/getBasepath.md b/docs/content/docs/reference/_dpkit/core/getBasepath.md deleted file mode 100644 index f1f4ba24..00000000 --- a/docs/content/docs/reference/_dpkit/core/getBasepath.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "getBasepath" ---- - -> **getBasepath**(`path`): `string` - -Defined in: [core/general/path.ts:48](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/path.ts#L48) - -## Parameters - -### path - -`string` - -## Returns - -`string` diff --git a/docs/content/docs/reference/_dpkit/core/getFilename.md b/docs/content/docs/reference/_dpkit/core/getFilename.md deleted file mode 100644 index 83c17919..00000000 --- a/docs/content/docs/reference/_dpkit/core/getFilename.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "getFilename" ---- - -> **getFilename**(`path`): `undefined` \| `string` - -Defined in: [core/general/path.ts:30](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/path.ts#L30) - -## Parameters - -### path - -`string` - -## Returns - -`undefined` \| `string` diff --git a/docs/content/docs/reference/_dpkit/core/getFormat.md b/docs/content/docs/reference/_dpkit/core/getFormat.md deleted file mode 100644 index a50f55ed..00000000 --- a/docs/content/docs/reference/_dpkit/core/getFormat.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "getFormat" ---- - -> **getFormat**(`filename?`): `undefined` \| `string` - -Defined in: [core/general/path.ts:26](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/path.ts#L26) - -## Parameters - -### filename? - -`string` - -## Returns - -`undefined` \| `string` diff --git a/docs/content/docs/reference/_dpkit/core/getName.md b/docs/content/docs/reference/_dpkit/core/getName.md deleted file mode 100644 index 559e4438..00000000 --- a/docs/content/docs/reference/_dpkit/core/getName.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "getName" ---- - -> **getName**(`filename?`): `undefined` \| `string` - -Defined in: [core/general/path.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/path.ts#L13) - -## Parameters - -### filename? - -`string` - -## Returns - -`undefined` \| `string` diff --git a/docs/content/docs/reference/_dpkit/core/inferFormat.md b/docs/content/docs/reference/_dpkit/core/inferFormat.md deleted file mode 100644 index 33e7cc47..00000000 --- a/docs/content/docs/reference/_dpkit/core/inferFormat.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "inferFormat" ---- - -> **inferFormat**(`resource`): `undefined` \| `string` - -Defined in: [core/resource/infer.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/infer.ts#L4) - -## Parameters - -### resource - -`Partial`\<[`Resource`](/reference/_dpkit/core/resource/)\> - -## Returns - -`undefined` \| `string` diff --git a/docs/content/docs/reference/_dpkit/core/isDescriptor.md b/docs/content/docs/reference/_dpkit/core/isDescriptor.md deleted file mode 100644 index c647aa33..00000000 --- a/docs/content/docs/reference/_dpkit/core/isDescriptor.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "isDescriptor" ---- - -> **isDescriptor**(`value`): `value is Descriptor` - -Defined in: [core/general/descriptor/Descriptor.ts:3](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/descriptor/Descriptor.ts#L3) - -## Parameters - -### value - -`unknown` - -## Returns - -`value is Descriptor` diff --git a/docs/content/docs/reference/_dpkit/core/isRemotePath.md b/docs/content/docs/reference/_dpkit/core/isRemotePath.md deleted file mode 100644 index 878ec258..00000000 --- a/docs/content/docs/reference/_dpkit/core/isRemotePath.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "isRemotePath" ---- - -> **isRemotePath**(`path`): `boolean` - -Defined in: [core/general/path.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/path.ts#L4) - -## Parameters - -### path - -`string` - -## Returns - -`boolean` diff --git a/docs/content/docs/reference/_dpkit/core/loadDescriptor.md b/docs/content/docs/reference/_dpkit/core/loadDescriptor.md deleted file mode 100644 index fb67aada..00000000 --- a/docs/content/docs/reference/_dpkit/core/loadDescriptor.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadDescriptor" ---- - -> **loadDescriptor**(`path`, `options?`): `Promise`\<\{ `basepath`: `string`; `descriptor`: `Record`\<`string`, `any`\>; \}\> - -Defined in: [core/general/descriptor/load.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/descriptor/load.ts#L10) - -Load a descriptor (JSON Object) from a file or URL -Uses dynamic imports to work in both Node.js and browser environments -Supports HTTP, HTTPS, FTP, and FTPS protocols - -## Parameters - -### path - -`string` - -### options? - -#### onlyRemote? - -`boolean` - -## Returns - -`Promise`\<\{ `basepath`: `string`; `descriptor`: `Record`\<`string`, `any`\>; \}\> diff --git a/docs/content/docs/reference/_dpkit/core/loadDialect.md b/docs/content/docs/reference/_dpkit/core/loadDialect.md deleted file mode 100644 index 2d8fb378..00000000 --- a/docs/content/docs/reference/_dpkit/core/loadDialect.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadDialect" ---- - -> **loadDialect**(`path`): `Promise`\<[`Dialect`](/reference/_dpkit/core/dialect/)\> - -Defined in: [core/dialect/load.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/load.ts#L8) - -Load a Dialect descriptor (JSON Object) from a file or URL -Ensures the descriptor is valid against its profile - -## Parameters - -### path - -`string` - -## Returns - -`Promise`\<[`Dialect`](/reference/_dpkit/core/dialect/)\> diff --git a/docs/content/docs/reference/_dpkit/core/loadPackageDescriptor.md b/docs/content/docs/reference/_dpkit/core/loadPackageDescriptor.md deleted file mode 100644 index 5443b982..00000000 --- a/docs/content/docs/reference/_dpkit/core/loadPackageDescriptor.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadPackageDescriptor" ---- - -> **loadPackageDescriptor**(`path`): `Promise`\<[`Package`](/reference/_dpkit/core/package/)\> - -Defined in: [core/package/load.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/load.ts#L8) - -Load a Package descriptor (JSON Object) from a file or URL -Ensures the descriptor is valid against its profile - -## Parameters - -### path - -`string` - -## Returns - -`Promise`\<[`Package`](/reference/_dpkit/core/package/)\> diff --git a/docs/content/docs/reference/_dpkit/core/loadProfile.md b/docs/content/docs/reference/_dpkit/core/loadProfile.md deleted file mode 100644 index 8659616d..00000000 --- a/docs/content/docs/reference/_dpkit/core/loadProfile.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadProfile" ---- - -> **loadProfile**(`path`, `options?`): `Promise`\<[`Descriptor`](/reference/_dpkit/core/descriptor/)\> - -Defined in: [core/general/profile/load.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/profile/load.ts#L6) - -## Parameters - -### path - -`string` - -### options? - -#### type? - -`string` - -## Returns - -`Promise`\<[`Descriptor`](/reference/_dpkit/core/descriptor/)\> diff --git a/docs/content/docs/reference/_dpkit/core/loadResourceDescriptor.md b/docs/content/docs/reference/_dpkit/core/loadResourceDescriptor.md deleted file mode 100644 index 3ab92475..00000000 --- a/docs/content/docs/reference/_dpkit/core/loadResourceDescriptor.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadResourceDescriptor" ---- - -> **loadResourceDescriptor**(`path`): `Promise`\<[`Resource`](/reference/_dpkit/core/resource/)\> - -Defined in: [core/resource/load.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/load.ts#L8) - -Load a Resource descriptor (JSON Object) from a file or URL -Ensures the descriptor is valid against its profile - -## Parameters - -### path - -`string` - -## Returns - -`Promise`\<[`Resource`](/reference/_dpkit/core/resource/)\> diff --git a/docs/content/docs/reference/_dpkit/core/loadSchema.md b/docs/content/docs/reference/_dpkit/core/loadSchema.md deleted file mode 100644 index 29fa3a4e..00000000 --- a/docs/content/docs/reference/_dpkit/core/loadSchema.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadSchema" ---- - -> **loadSchema**(`path`): `Promise`\<[`Schema`](/reference/_dpkit/core/schema/)\> - -Defined in: [core/schema/load.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/load.ts#L8) - -Load a Schema descriptor (JSON Object) from a file or URL -Ensures the descriptor is valid against its profile - -## Parameters - -### path - -`string` - -## Returns - -`Promise`\<[`Schema`](/reference/_dpkit/core/schema/)\> diff --git a/docs/content/docs/reference/_dpkit/core/mergePackages.md b/docs/content/docs/reference/_dpkit/core/mergePackages.md deleted file mode 100644 index c54099a0..00000000 --- a/docs/content/docs/reference/_dpkit/core/mergePackages.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "mergePackages" ---- - -> **mergePackages**(`options`): `Promise`\<\{[`key`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/_dpkit/core/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/_dpkit/core/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/_dpkit/core/resource/)[]; `sources?`: [`Source`](/reference/_dpkit/core/source/)[]; `title?`: `string`; `version?`: `string`; \}\> - -Defined in: [core/package/merge.ts:7](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/merge.ts#L7) - -Merges a system data package into a user data package if provided - -## Parameters - -### options - -#### systemPackage - -[`Package`](/reference/_dpkit/core/package/) - -#### userPackagePath? - -`string` - -## Returns - -`Promise`\<\{[`key`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/_dpkit/core/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/_dpkit/core/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/_dpkit/core/resource/)[]; `sources?`: [`Source`](/reference/_dpkit/core/source/)[]; `title?`: `string`; `version?`: `string`; \}\> diff --git a/docs/content/docs/reference/_dpkit/core/normalizeDialect.md b/docs/content/docs/reference/_dpkit/core/normalizeDialect.md deleted file mode 100644 index 5ec8d174..00000000 --- a/docs/content/docs/reference/_dpkit/core/normalizeDialect.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "normalizeDialect" ---- - -> **normalizeDialect**(`descriptor`): [`Descriptor`](/reference/_dpkit/core/descriptor/) - -Defined in: [core/dialect/process/normalize.ts:3](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/process/normalize.ts#L3) - -## Parameters - -### descriptor - -[`Descriptor`](/reference/_dpkit/core/descriptor/) - -## Returns - -[`Descriptor`](/reference/_dpkit/core/descriptor/) diff --git a/docs/content/docs/reference/_dpkit/core/normalizeField.md b/docs/content/docs/reference/_dpkit/core/normalizeField.md deleted file mode 100644 index a15befeb..00000000 --- a/docs/content/docs/reference/_dpkit/core/normalizeField.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "normalizeField" ---- - -> **normalizeField**(`descriptor`): [`Descriptor`](/reference/_dpkit/core/descriptor/) - -Defined in: [core/field/process/normalize.ts:3](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/field/process/normalize.ts#L3) - -## Parameters - -### descriptor - -[`Descriptor`](/reference/_dpkit/core/descriptor/) - -## Returns - -[`Descriptor`](/reference/_dpkit/core/descriptor/) diff --git a/docs/content/docs/reference/_dpkit/core/normalizePackage.md b/docs/content/docs/reference/_dpkit/core/normalizePackage.md deleted file mode 100644 index a9c05f36..00000000 --- a/docs/content/docs/reference/_dpkit/core/normalizePackage.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "normalizePackage" ---- - -> **normalizePackage**(`descriptor`, `options`): [`Descriptor`](/reference/_dpkit/core/descriptor/) - -Defined in: [core/package/process/normalize.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/process/normalize.ts#L4) - -## Parameters - -### descriptor - -[`Descriptor`](/reference/_dpkit/core/descriptor/) - -### options - -#### basepath? - -`string` - -## Returns - -[`Descriptor`](/reference/_dpkit/core/descriptor/) diff --git a/docs/content/docs/reference/_dpkit/core/normalizePath.md b/docs/content/docs/reference/_dpkit/core/normalizePath.md deleted file mode 100644 index ad8e0f69..00000000 --- a/docs/content/docs/reference/_dpkit/core/normalizePath.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "normalizePath" ---- - -> **normalizePath**(`path`, `options`): `string` - -Defined in: [core/general/path.ts:64](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/path.ts#L64) - -## Parameters - -### path - -`string` - -### options - -#### basepath? - -`string` - -## Returns - -`string` diff --git a/docs/content/docs/reference/_dpkit/core/normalizeResource.md b/docs/content/docs/reference/_dpkit/core/normalizeResource.md deleted file mode 100644 index ce4e4aa5..00000000 --- a/docs/content/docs/reference/_dpkit/core/normalizeResource.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "normalizeResource" ---- - -> **normalizeResource**(`descriptor`, `options?`): [`Descriptor`](/reference/_dpkit/core/descriptor/) - -Defined in: [core/resource/process/normalize.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/process/normalize.ts#L6) - -## Parameters - -### descriptor - -[`Descriptor`](/reference/_dpkit/core/descriptor/) - -### options? - -#### basepath? - -`string` - -## Returns - -[`Descriptor`](/reference/_dpkit/core/descriptor/) diff --git a/docs/content/docs/reference/_dpkit/core/normalizeSchema.md b/docs/content/docs/reference/_dpkit/core/normalizeSchema.md deleted file mode 100644 index 4b26a24b..00000000 --- a/docs/content/docs/reference/_dpkit/core/normalizeSchema.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "normalizeSchema" ---- - -> **normalizeSchema**(`descriptor`): [`Descriptor`](/reference/_dpkit/core/descriptor/) - -Defined in: [core/schema/process/normalize.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/process/normalize.ts#L5) - -## Parameters - -### descriptor - -[`Descriptor`](/reference/_dpkit/core/descriptor/) - -## Returns - -[`Descriptor`](/reference/_dpkit/core/descriptor/) diff --git a/docs/content/docs/reference/_dpkit/core/parseDescriptor.md b/docs/content/docs/reference/_dpkit/core/parseDescriptor.md deleted file mode 100644 index 5ff98349..00000000 --- a/docs/content/docs/reference/_dpkit/core/parseDescriptor.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "parseDescriptor" ---- - -> **parseDescriptor**(`text`): [`Descriptor`](/reference/_dpkit/core/descriptor/) - -Defined in: [core/general/descriptor/process/parse.ts:3](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/descriptor/process/parse.ts#L3) - -## Parameters - -### text - -`string` - -## Returns - -[`Descriptor`](/reference/_dpkit/core/descriptor/) diff --git a/docs/content/docs/reference/_dpkit/core/saveDescriptor.md b/docs/content/docs/reference/_dpkit/core/saveDescriptor.md deleted file mode 100644 index 3ce7e55e..00000000 --- a/docs/content/docs/reference/_dpkit/core/saveDescriptor.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "saveDescriptor" ---- - -> **saveDescriptor**(`descriptor`, `options`): `Promise`\<`void`\> - -Defined in: [core/general/descriptor/save.ts:9](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/descriptor/save.ts#L9) - -Save a descriptor (JSON Object) to a file path -Works in Node.js environments - -## Parameters - -### descriptor - -[`Descriptor`](/reference/_dpkit/core/descriptor/) - -### options - -#### path - -`string` - -## Returns - -`Promise`\<`void`\> diff --git a/docs/content/docs/reference/_dpkit/core/saveDialect.md b/docs/content/docs/reference/_dpkit/core/saveDialect.md deleted file mode 100644 index 91f545b6..00000000 --- a/docs/content/docs/reference/_dpkit/core/saveDialect.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "saveDialect" ---- - -> **saveDialect**(`dialect`, `options`): `Promise`\<`void`\> - -Defined in: [core/dialect/save.ts:11](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/save.ts#L11) - -Save a Dialect to a file path -Works in Node.js environments - -## Parameters - -### dialect - -[`Dialect`](/reference/_dpkit/core/dialect/) - -### options - -#### path - -`string` - -## Returns - -`Promise`\<`void`\> diff --git a/docs/content/docs/reference/_dpkit/core/savePackageDescriptor.md b/docs/content/docs/reference/_dpkit/core/savePackageDescriptor.md deleted file mode 100644 index 34297000..00000000 --- a/docs/content/docs/reference/_dpkit/core/savePackageDescriptor.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "savePackageDescriptor" ---- - -> **savePackageDescriptor**(`dataPackage`, `options`): `Promise`\<`void`\> - -Defined in: [core/package/save.ts:11](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/save.ts#L11) - -Save a Package to a file path -Works in Node.js environments - -## Parameters - -### dataPackage - -[`Package`](/reference/_dpkit/core/package/) - -### options - -#### path - -`string` - -## Returns - -`Promise`\<`void`\> diff --git a/docs/content/docs/reference/_dpkit/core/saveResourceDescriptor.md b/docs/content/docs/reference/_dpkit/core/saveResourceDescriptor.md deleted file mode 100644 index fbd6cddd..00000000 --- a/docs/content/docs/reference/_dpkit/core/saveResourceDescriptor.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "saveResourceDescriptor" ---- - -> **saveResourceDescriptor**(`resource`, `options`): `Promise`\<`void`\> - -Defined in: [core/resource/save.ts:11](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/save.ts#L11) - -Save a Resource to a file path -Works in Node.js environments - -## Parameters - -### resource - -[`Resource`](/reference/_dpkit/core/resource/) - -### options - -#### path - -`string` - -## Returns - -`Promise`\<`void`\> diff --git a/docs/content/docs/reference/_dpkit/core/saveSchema.md b/docs/content/docs/reference/_dpkit/core/saveSchema.md deleted file mode 100644 index 8d3dc831..00000000 --- a/docs/content/docs/reference/_dpkit/core/saveSchema.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "saveSchema" ---- - -> **saveSchema**(`schema`, `options`): `Promise`\<`void`\> - -Defined in: [core/schema/save.ts:11](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/save.ts#L11) - -Save a Schema to a file path -Works in Node.js environments - -## Parameters - -### schema - -[`Schema`](/reference/_dpkit/core/schema/) - -### options - -#### path - -`string` - -## Returns - -`Promise`\<`void`\> diff --git a/docs/content/docs/reference/_dpkit/core/stringifyDescriptor.md b/docs/content/docs/reference/_dpkit/core/stringifyDescriptor.md deleted file mode 100644 index ee0ed551..00000000 --- a/docs/content/docs/reference/_dpkit/core/stringifyDescriptor.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "stringifyDescriptor" ---- - -> **stringifyDescriptor**(`descriptor`): `string` - -Defined in: [core/general/descriptor/process/stringify.ts:3](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/descriptor/process/stringify.ts#L3) - -## Parameters - -### descriptor - -[`Descriptor`](/reference/_dpkit/core/descriptor/) - -## Returns - -`string` diff --git a/docs/content/docs/reference/_dpkit/core/validateDescriptor.md b/docs/content/docs/reference/_dpkit/core/validateDescriptor.md deleted file mode 100644 index b1c7d107..00000000 --- a/docs/content/docs/reference/_dpkit/core/validateDescriptor.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "validateDescriptor" ---- - -> **validateDescriptor**(`descriptor`, `options`): `Promise`\<\{ `errors`: [`MetadataError`](/reference/_dpkit/core/metadataerror/)[]; `valid`: `boolean`; \}\> - -Defined in: [core/general/descriptor/validate.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/general/descriptor/validate.ts#L10) - -Validate a descriptor (JSON Object) against a JSON Schema -It uses Ajv for JSON Schema validation under the hood -It returns a list of errors (empty if valid) - -## Parameters - -### descriptor - -[`Descriptor`](/reference/_dpkit/core/descriptor/) - -### options - -#### profile - -[`Descriptor`](/reference/_dpkit/core/descriptor/) - -## Returns - -`Promise`\<\{ `errors`: [`MetadataError`](/reference/_dpkit/core/metadataerror/)[]; `valid`: `boolean`; \}\> diff --git a/docs/content/docs/reference/_dpkit/core/validateDialect.md b/docs/content/docs/reference/_dpkit/core/validateDialect.md deleted file mode 100644 index f5463d85..00000000 --- a/docs/content/docs/reference/_dpkit/core/validateDialect.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "validateDialect" ---- - -> **validateDialect**(`descriptorOrDialect`): `Promise`\<\{ `dialect`: `undefined` \| [`Dialect`](/reference/_dpkit/core/dialect/); `errors`: [`MetadataError`](/reference/_dpkit/core/metadataerror/)[]; `valid`: `boolean`; \}\> - -Defined in: [core/dialect/validate.ts:11](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/dialect/validate.ts#L11) - -Validate a Dialect descriptor (JSON Object) against its profile - -## Parameters - -### descriptorOrDialect - -[`Descriptor`](/reference/_dpkit/core/descriptor/) | [`Dialect`](/reference/_dpkit/core/dialect/) - -## Returns - -`Promise`\<\{ `dialect`: `undefined` \| [`Dialect`](/reference/_dpkit/core/dialect/); `errors`: [`MetadataError`](/reference/_dpkit/core/metadataerror/)[]; `valid`: `boolean`; \}\> diff --git a/docs/content/docs/reference/_dpkit/core/validatePackageDescriptor.md b/docs/content/docs/reference/_dpkit/core/validatePackageDescriptor.md deleted file mode 100644 index 5b1397a2..00000000 --- a/docs/content/docs/reference/_dpkit/core/validatePackageDescriptor.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "validatePackageDescriptor" ---- - -> **validatePackageDescriptor**(`descriptorOrPackage`, `options?`): `Promise`\<\{ `dataPackage`: `undefined` \| [`Package`](/reference/_dpkit/core/package/); `errors`: [`MetadataError`](/reference/_dpkit/core/metadataerror/)[]; `valid`: `boolean`; \}\> - -Defined in: [core/package/validate.ts:11](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/package/validate.ts#L11) - -Validate a Package descriptor (JSON Object) against its profile - -## Parameters - -### descriptorOrPackage - -[`Package`](/reference/_dpkit/core/package/) | [`Descriptor`](/reference/_dpkit/core/descriptor/) - -### options? - -#### basepath? - -`string` - -## Returns - -`Promise`\<\{ `dataPackage`: `undefined` \| [`Package`](/reference/_dpkit/core/package/); `errors`: [`MetadataError`](/reference/_dpkit/core/metadataerror/)[]; `valid`: `boolean`; \}\> diff --git a/docs/content/docs/reference/_dpkit/core/validateResourceDescriptor.md b/docs/content/docs/reference/_dpkit/core/validateResourceDescriptor.md deleted file mode 100644 index e2758819..00000000 --- a/docs/content/docs/reference/_dpkit/core/validateResourceDescriptor.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "validateResourceDescriptor" ---- - -> **validateResourceDescriptor**(`descriptorOrResource`, `options?`): `Promise`\<\{ `errors`: [`MetadataError`](/reference/_dpkit/core/metadataerror/)[]; `resource`: `undefined` \| [`Resource`](/reference/_dpkit/core/resource/); `valid`: `boolean`; \}\> - -Defined in: [core/resource/validate.ts:14](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/resource/validate.ts#L14) - -Validate a Resource descriptor (JSON Object) against its profile - -## Parameters - -### descriptorOrResource - -[`Descriptor`](/reference/_dpkit/core/descriptor/) | [`Resource`](/reference/_dpkit/core/resource/) - -### options? - -#### basepath? - -`string` - -## Returns - -`Promise`\<\{ `errors`: [`MetadataError`](/reference/_dpkit/core/metadataerror/)[]; `resource`: `undefined` \| [`Resource`](/reference/_dpkit/core/resource/); `valid`: `boolean`; \}\> diff --git a/docs/content/docs/reference/_dpkit/core/validateSchema.md b/docs/content/docs/reference/_dpkit/core/validateSchema.md deleted file mode 100644 index bdc2819a..00000000 --- a/docs/content/docs/reference/_dpkit/core/validateSchema.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "validateSchema" ---- - -> **validateSchema**(`descriptorOrSchema`): `Promise`\<\{ `errors`: [`MetadataError`](/reference/_dpkit/core/metadataerror/)[]; `schema`: `undefined` \| [`Schema`](/reference/_dpkit/core/schema/); `valid`: `boolean`; \}\> - -Defined in: [core/schema/validate.ts:11](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/core/schema/validate.ts#L11) - -Validate a Schema descriptor (JSON Object) against its profile - -## Parameters - -### descriptorOrSchema - -[`Descriptor`](/reference/_dpkit/core/descriptor/) | [`Schema`](/reference/_dpkit/core/schema/) - -## Returns - -`Promise`\<\{ `errors`: [`MetadataError`](/reference/_dpkit/core/metadataerror/)[]; `schema`: `undefined` \| [`Schema`](/reference/_dpkit/core/schema/); `valid`: `boolean`; \}\> diff --git a/docs/content/docs/reference/_dpkit/csv.md b/docs/content/docs/reference/_dpkit/csv.md deleted file mode 100644 index ab857773..00000000 --- a/docs/content/docs/reference/_dpkit/csv.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "@dpkit/csv" ---- - -# @dpkit/csv - -dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). - -## Classes - -- [CsvPlugin](/reference/_dpkit/csv/csvplugin/) - -## Functions - -- [inferCsvDialect](/reference/_dpkit/csv/infercsvdialect/) -- [loadCsvTable](/reference/_dpkit/csv/loadcsvtable/) -- [saveCsvTable](/reference/_dpkit/csv/savecsvtable/) diff --git a/docs/content/docs/reference/_dpkit/csv/CsvPlugin.md b/docs/content/docs/reference/_dpkit/csv/CsvPlugin.md deleted file mode 100644 index ad6b47d7..00000000 --- a/docs/content/docs/reference/_dpkit/csv/CsvPlugin.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "CsvPlugin" ---- - -Defined in: [plugin.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/csv/plugin.ts#L8) - -## Implements - -- [`TablePlugin`](/reference/dpkit/tableplugin/) - -## Constructors - -### Constructor - -> **new CsvPlugin**(): `CsvPlugin` - -#### Returns - -`CsvPlugin` - -## Methods - -### inferDialect() - -> **inferDialect**(`resource`, `options?`): `Promise`\<`undefined` \| [`Dialect`](/reference/dpkit/dialect/)\> - -Defined in: [plugin.ts:9](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/csv/plugin.ts#L9) - -#### Parameters - -##### resource - -`Partial`\<[`Resource`](/reference/dpkit/resource/)\> - -##### options? - -[`InferDialectOptions`](/reference/dpkit/inferdialectoptions/) - -#### Returns - -`Promise`\<`undefined` \| [`Dialect`](/reference/dpkit/dialect/)\> - -#### Implementation of - -[`TablePlugin`](/reference/dpkit/tableplugin/).[`inferDialect`](/reference/dpkit/tableplugin/#inferdialect) - -*** - -### loadTable() - -> **loadTable**(`resource`): `Promise`\<`undefined` \| `LazyDataFrame`\> - -Defined in: [plugin.ts:19](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/csv/plugin.ts#L19) - -#### Parameters - -##### resource - -`Partial`\<[`Resource`](/reference/dpkit/resource/)\> - -#### Returns - -`Promise`\<`undefined` \| `LazyDataFrame`\> - -#### Implementation of - -[`TablePlugin`](/reference/dpkit/tableplugin/).[`loadTable`](/reference/dpkit/tableplugin/#loadtable) - -*** - -### saveTable() - -> **saveTable**(`table`, `options`): `Promise`\<`undefined` \| `string`\> - -Defined in: [plugin.ts:26](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/csv/plugin.ts#L26) - -#### Parameters - -##### table - -`LazyDataFrame` - -##### options - -[`SaveTableOptions`](/reference/dpkit/savetableoptions/) - -#### Returns - -`Promise`\<`undefined` \| `string`\> - -#### Implementation of - -[`TablePlugin`](/reference/dpkit/tableplugin/).[`saveTable`](/reference/dpkit/tableplugin/#savetable) diff --git a/docs/content/docs/reference/_dpkit/csv/inferCsvDialect.md b/docs/content/docs/reference/_dpkit/csv/inferCsvDialect.md deleted file mode 100644 index cada1db5..00000000 --- a/docs/content/docs/reference/_dpkit/csv/inferCsvDialect.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "inferCsvDialect" ---- - -> **inferCsvDialect**(`resource`, `options?`): `Promise`\<[`Dialect`](/reference/dpkit/dialect/)\> - -Defined in: [dialect/infer.ts:9](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/csv/dialect/infer.ts#L9) - -## Parameters - -### resource - -`Partial`\<[`Resource`](/reference/dpkit/resource/)\> - -### options? - -[`InferDialectOptions`](/reference/dpkit/inferdialectoptions/) - -## Returns - -`Promise`\<[`Dialect`](/reference/dpkit/dialect/)\> diff --git a/docs/content/docs/reference/_dpkit/csv/loadCsvTable.md b/docs/content/docs/reference/_dpkit/csv/loadCsvTable.md deleted file mode 100644 index 5dffbf44..00000000 --- a/docs/content/docs/reference/_dpkit/csv/loadCsvTable.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadCsvTable" ---- - -> **loadCsvTable**(`resource`): `Promise`\<`LazyDataFrame`\> - -Defined in: [table/load.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/csv/table/load.ts#L13) - -## Parameters - -### resource - -`Partial`\<[`Resource`](/reference/dpkit/resource/)\> - -## Returns - -`Promise`\<`LazyDataFrame`\> diff --git a/docs/content/docs/reference/_dpkit/csv/saveCsvTable.md b/docs/content/docs/reference/_dpkit/csv/saveCsvTable.md deleted file mode 100644 index fa3c44ce..00000000 --- a/docs/content/docs/reference/_dpkit/csv/saveCsvTable.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "saveCsvTable" ---- - -> **saveCsvTable**(`table`, `options`): `Promise`\<`string`\> - -Defined in: [table/save.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/csv/table/save.ts#L5) - -## Parameters - -### table - -`LazyDataFrame` - -### options - -[`SaveTableOptions`](/reference/dpkit/savetableoptions/) - -## Returns - -`Promise`\<`string`\> diff --git a/docs/content/docs/reference/_dpkit/datahub.md b/docs/content/docs/reference/_dpkit/datahub.md deleted file mode 100644 index 79e9a6da..00000000 --- a/docs/content/docs/reference/_dpkit/datahub.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "@dpkit/datahub" ---- - -# @dpkit/datahub - -dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). - -## Classes - -- [DatahubPlugin](/reference/_dpkit/datahub/datahubplugin/) - -## Functions - -- [loadPackageFromDatahub](/reference/_dpkit/datahub/loadpackagefromdatahub/) diff --git a/docs/content/docs/reference/_dpkit/datahub/DatahubPlugin.md b/docs/content/docs/reference/_dpkit/datahub/DatahubPlugin.md deleted file mode 100644 index 334c0840..00000000 --- a/docs/content/docs/reference/_dpkit/datahub/DatahubPlugin.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "DatahubPlugin" ---- - -Defined in: [plugin.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/datahub/plugin.ts#L5) - -## Implements - -- [`Plugin`](/reference/dpkit/plugin/) - -## Constructors - -### Constructor - -> **new DatahubPlugin**(): `DatahubPlugin` - -#### Returns - -`DatahubPlugin` - -## Methods - -### loadPackage() - -> **loadPackage**(`source`): `Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> - -Defined in: [plugin.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/datahub/plugin.ts#L6) - -#### Parameters - -##### source - -`string` - -#### Returns - -`Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> - -#### Implementation of - -[`Plugin`](/reference/dpkit/plugin/).[`loadPackage`](/reference/dpkit/plugin/#loadpackage) diff --git a/docs/content/docs/reference/_dpkit/datahub/loadPackageFromDatahub.md b/docs/content/docs/reference/_dpkit/datahub/loadPackageFromDatahub.md deleted file mode 100644 index 68378e4b..00000000 --- a/docs/content/docs/reference/_dpkit/datahub/loadPackageFromDatahub.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadPackageFromDatahub" ---- - -> **loadPackageFromDatahub**(`datasetUrl`): `Promise`\<[`Package`](/reference/dpkit/package/)\> - -Defined in: [package/load.ts:3](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/datahub/package/load.ts#L3) - -## Parameters - -### datasetUrl - -`string` - -## Returns - -`Promise`\<[`Package`](/reference/dpkit/package/)\> diff --git a/docs/content/docs/reference/_dpkit/file.md b/docs/content/docs/reference/_dpkit/file.md deleted file mode 100644 index 66fd48d6..00000000 --- a/docs/content/docs/reference/_dpkit/file.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "@dpkit/file" ---- - -# @dpkit/data - -dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). - -## Functions - -- [assertLocalPathVacant](/reference/_dpkit/file/assertlocalpathvacant/) -- [copyFile](/reference/_dpkit/file/copyfile/) -- [getPackageBasepath](/reference/_dpkit/file/getpackagebasepath/) -- [getTempFilePath](/reference/_dpkit/file/gettempfilepath/) -- [isLocalPathExist](/reference/_dpkit/file/islocalpathexist/) -- [loadFile](/reference/_dpkit/file/loadfile/) -- [loadFileStream](/reference/_dpkit/file/loadfilestream/) -- [prefetchFile](/reference/_dpkit/file/prefetchfile/) -- [prefetchFiles](/reference/_dpkit/file/prefetchfiles/) -- [saveFile](/reference/_dpkit/file/savefile/) -- [saveFileStream](/reference/_dpkit/file/savefilestream/) -- [saveResourceFiles](/reference/_dpkit/file/saveresourcefiles/) -- [writeTempFile](/reference/_dpkit/file/writetempfile/) diff --git a/docs/content/docs/reference/_dpkit/file/assertLocalPathVacant.md b/docs/content/docs/reference/_dpkit/file/assertLocalPathVacant.md deleted file mode 100644 index 03fea987..00000000 --- a/docs/content/docs/reference/_dpkit/file/assertLocalPathVacant.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "assertLocalPathVacant" ---- - -> **assertLocalPathVacant**(`path`): `Promise`\<`void`\> - -Defined in: [file/path.ts:12](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/file/file/path.ts#L12) - -## Parameters - -### path - -`string` - -## Returns - -`Promise`\<`void`\> diff --git a/docs/content/docs/reference/_dpkit/file/copyFile.md b/docs/content/docs/reference/_dpkit/file/copyFile.md deleted file mode 100644 index 3dfd98fd..00000000 --- a/docs/content/docs/reference/_dpkit/file/copyFile.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "copyFile" ---- - -> **copyFile**(`options`): `Promise`\<`void`\> - -Defined in: [file/copy.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/file/file/copy.ts#L4) - -## Parameters - -### options - -#### sourcePath - -`string` - -#### targetPath - -`string` - -## Returns - -`Promise`\<`void`\> diff --git a/docs/content/docs/reference/_dpkit/file/getPackageBasepath.md b/docs/content/docs/reference/_dpkit/file/getPackageBasepath.md deleted file mode 100644 index cb9bf5ee..00000000 --- a/docs/content/docs/reference/_dpkit/file/getPackageBasepath.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "getPackageBasepath" ---- - -> **getPackageBasepath**(`dataPackage`): `undefined` \| `string` - -Defined in: [package/path.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/file/package/path.ts#L4) - -## Parameters - -### dataPackage - -[`Package`](/reference/dpkit/package/) - -## Returns - -`undefined` \| `string` diff --git a/docs/content/docs/reference/_dpkit/file/getTempFilePath.md b/docs/content/docs/reference/_dpkit/file/getTempFilePath.md deleted file mode 100644 index 40001013..00000000 --- a/docs/content/docs/reference/_dpkit/file/getTempFilePath.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "getTempFilePath" ---- - -> **getTempFilePath**(`options?`): `string` - -Defined in: [file/temp.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/file/file/temp.ts#L15) - -## Parameters - -### options? - -#### persist? - -`boolean` - -## Returns - -`string` diff --git a/docs/content/docs/reference/_dpkit/file/isLocalPathExist.md b/docs/content/docs/reference/_dpkit/file/isLocalPathExist.md deleted file mode 100644 index 6ddc9033..00000000 --- a/docs/content/docs/reference/_dpkit/file/isLocalPathExist.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "isLocalPathExist" ---- - -> **isLocalPathExist**(`path`): `Promise`\<`boolean`\> - -Defined in: [file/path.ts:3](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/file/file/path.ts#L3) - -## Parameters - -### path - -`string` - -## Returns - -`Promise`\<`boolean`\> diff --git a/docs/content/docs/reference/_dpkit/file/loadFile.md b/docs/content/docs/reference/_dpkit/file/loadFile.md deleted file mode 100644 index 2152ac73..00000000 --- a/docs/content/docs/reference/_dpkit/file/loadFile.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadFile" ---- - -> **loadFile**(`path`): `Promise`\<`Buffer`\<`ArrayBufferLike`\>\> - -Defined in: [file/load.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/file/file/load.ts#L4) - -## Parameters - -### path - -`string` - -## Returns - -`Promise`\<`Buffer`\<`ArrayBufferLike`\>\> diff --git a/docs/content/docs/reference/_dpkit/file/loadFileStream.md b/docs/content/docs/reference/_dpkit/file/loadFileStream.md deleted file mode 100644 index 160ffa5e..00000000 --- a/docs/content/docs/reference/_dpkit/file/loadFileStream.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadFileStream" ---- - -> **loadFileStream**(`pathOrPaths`, `options?`): `Promise`\<`Readable` \| `ReadStream`\> - -Defined in: [stream/load.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/file/stream/load.ts#L5) - -## Parameters - -### pathOrPaths - -`string` | `string`[] - -### options? - -#### index? - -`number` - -#### maxBytes? - -`number` - -## Returns - -`Promise`\<`Readable` \| `ReadStream`\> diff --git a/docs/content/docs/reference/_dpkit/file/prefetchFile.md b/docs/content/docs/reference/_dpkit/file/prefetchFile.md deleted file mode 100644 index e19bb4ef..00000000 --- a/docs/content/docs/reference/_dpkit/file/prefetchFile.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "prefetchFile" ---- - -> **prefetchFile**(`path`): `Promise`\<`string`\> - -Defined in: [file/fetch.ts:12](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/file/file/fetch.ts#L12) - -## Parameters - -### path - -`string` - -## Returns - -`Promise`\<`string`\> diff --git a/docs/content/docs/reference/_dpkit/file/prefetchFiles.md b/docs/content/docs/reference/_dpkit/file/prefetchFiles.md deleted file mode 100644 index 1b6af6d6..00000000 --- a/docs/content/docs/reference/_dpkit/file/prefetchFiles.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "prefetchFiles" ---- - -> **prefetchFiles**(`path?`): `Promise`\<`string`[]\> - -Defined in: [file/fetch.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/file/file/fetch.ts#L5) - -## Parameters - -### path? - -`string` | `string`[] - -## Returns - -`Promise`\<`string`[]\> diff --git a/docs/content/docs/reference/_dpkit/file/saveFile.md b/docs/content/docs/reference/_dpkit/file/saveFile.md deleted file mode 100644 index 04224ab2..00000000 --- a/docs/content/docs/reference/_dpkit/file/saveFile.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "saveFile" ---- - -> **saveFile**(`path`, `buffer`): `Promise`\<`void`\> - -Defined in: [file/save.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/file/file/save.ts#L4) - -## Parameters - -### path - -`string` - -### buffer - -`Buffer` - -## Returns - -`Promise`\<`void`\> diff --git a/docs/content/docs/reference/_dpkit/file/saveFileStream.md b/docs/content/docs/reference/_dpkit/file/saveFileStream.md deleted file mode 100644 index 785b5a81..00000000 --- a/docs/content/docs/reference/_dpkit/file/saveFileStream.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "saveFileStream" ---- - -> **saveFileStream**(`stream`, `options`): `Promise`\<`void`\> - -Defined in: [stream/save.ts:7](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/file/stream/save.ts#L7) - -## Parameters - -### stream - -`Readable` - -### options - -#### path - -`string` - -## Returns - -`Promise`\<`void`\> diff --git a/docs/content/docs/reference/_dpkit/file/saveResourceFiles.md b/docs/content/docs/reference/_dpkit/file/saveResourceFiles.md deleted file mode 100644 index a28fbf2e..00000000 --- a/docs/content/docs/reference/_dpkit/file/saveResourceFiles.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "saveResourceFiles" ---- - -> **saveResourceFiles**(`resource`, `options`): `Promise`\<[`Descriptor`](/reference/dpkit/descriptor/)\> - -Defined in: [resource/save.ts:17](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/file/resource/save.ts#L17) - -## Parameters - -### resource - -[`Resource`](/reference/dpkit/resource/) - -### options - -#### basepath? - -`string` - -#### saveFile - -`SaveFile` - -#### withoutFolders? - -`boolean` - -#### withRemote? - -`boolean` - -## Returns - -`Promise`\<[`Descriptor`](/reference/dpkit/descriptor/)\> diff --git a/docs/content/docs/reference/_dpkit/file/writeTempFile.md b/docs/content/docs/reference/_dpkit/file/writeTempFile.md deleted file mode 100644 index 10ff34f5..00000000 --- a/docs/content/docs/reference/_dpkit/file/writeTempFile.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "writeTempFile" ---- - -> **writeTempFile**(`content`, `options?`): `Promise`\<`string`\> - -Defined in: [file/temp.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/file/file/temp.ts#L6) - -## Parameters - -### content - -`string` | `Buffer`\<`ArrayBufferLike`\> - -### options? - -#### persist? - -`boolean` - -## Returns - -`Promise`\<`string`\> diff --git a/docs/content/docs/reference/_dpkit/github.md b/docs/content/docs/reference/_dpkit/github.md deleted file mode 100644 index 16df7554..00000000 --- a/docs/content/docs/reference/_dpkit/github.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "@dpkit/github" ---- - -# @dpkit/github - -dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). - -## Classes - -- [GithubPlugin](/reference/_dpkit/github/githubplugin/) - -## Interfaces - -- [GithubLicense](/reference/_dpkit/github/githublicense/) -- [GithubOwner](/reference/_dpkit/github/githubowner/) -- [GithubPackage](/reference/_dpkit/github/githubpackage/) -- [GithubResource](/reference/_dpkit/github/githubresource/) - -## Functions - -- [denormalizeGithubResource](/reference/_dpkit/github/denormalizegithubresource/) -- [loadPackageFromGithub](/reference/_dpkit/github/loadpackagefromgithub/) -- [normalizeGithubResource](/reference/_dpkit/github/normalizegithubresource/) -- [savePackageToGithub](/reference/_dpkit/github/savepackagetogithub/) diff --git a/docs/content/docs/reference/_dpkit/github/GithubLicense.md b/docs/content/docs/reference/_dpkit/github/GithubLicense.md deleted file mode 100644 index f763de4d..00000000 --- a/docs/content/docs/reference/_dpkit/github/GithubLicense.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "GithubLicense" ---- - -Defined in: [github/package/License.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/License.ts#L4) - -GitHub repository license - -## Properties - -### key - -> **key**: `string` - -Defined in: [github/package/License.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/License.ts#L8) - -License key - -*** - -### name - -> **name**: `string` - -Defined in: [github/package/License.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/License.ts#L13) - -License name - -*** - -### spdx\_id - -> **spdx\_id**: `string` - -Defined in: [github/package/License.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/License.ts#L18) - -License SPDX ID - -*** - -### url - -> **url**: `string` - -Defined in: [github/package/License.ts:23](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/License.ts#L23) - -License URL diff --git a/docs/content/docs/reference/_dpkit/github/GithubOwner.md b/docs/content/docs/reference/_dpkit/github/GithubOwner.md deleted file mode 100644 index 340de35c..00000000 --- a/docs/content/docs/reference/_dpkit/github/GithubOwner.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "GithubOwner" ---- - -Defined in: [github/package/Owner.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Owner.ts#L4) - -GitHub repository owner - -## Properties - -### avatar\_url - -> **avatar\_url**: `string` - -Defined in: [github/package/Owner.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Owner.ts#L18) - -Owner avatar URL - -*** - -### html\_url - -> **html\_url**: `string` - -Defined in: [github/package/Owner.ts:23](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Owner.ts#L23) - -Owner URL - -*** - -### id - -> **id**: `number` - -Defined in: [github/package/Owner.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Owner.ts#L13) - -Owner ID - -*** - -### login - -> **login**: `string` - -Defined in: [github/package/Owner.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Owner.ts#L8) - -Owner login name - -*** - -### type - -> **type**: `"User"` \| `"Organization"` - -Defined in: [github/package/Owner.ts:28](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Owner.ts#L28) - -Owner type (User/Organization) diff --git a/docs/content/docs/reference/_dpkit/github/GithubPackage.md b/docs/content/docs/reference/_dpkit/github/GithubPackage.md deleted file mode 100644 index 1a4e41cb..00000000 --- a/docs/content/docs/reference/_dpkit/github/GithubPackage.md +++ /dev/null @@ -1,224 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "GithubPackage" ---- - -Defined in: [github/package/Package.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L8) - -Github repository as a package - -## Properties - -### archived - -> **archived**: `boolean` - -Defined in: [github/package/Package.ts:92](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L92) - -Repository is archived - -*** - -### clone\_url - -> **clone\_url**: `string` - -Defined in: [github/package/Package.ts:100](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L100) - -*** - -### created\_at - -> **created\_at**: `string` - -Defined in: [github/package/Package.ts:37](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L37) - -Repository creation date - -*** - -### default\_branch - -> **default\_branch**: `string` - -Defined in: [github/package/Package.ts:77](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L77) - -Repository default branch - -*** - -### description - -> **description**: `null` \| `string` - -Defined in: [github/package/Package.ts:32](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L32) - -Repository description - -*** - -### full\_name - -> **full\_name**: `string` - -Defined in: [github/package/Package.ts:22](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L22) - -Repository full name (owner/name) - -*** - -### git\_url - -> **git\_url**: `string` - -Defined in: [github/package/Package.ts:98](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L98) - -*** - -### homepage - -> **homepage**: `null` \| `string` - -Defined in: [github/package/Package.ts:47](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L47) - -Repository homepage URL - -*** - -### html\_url - -> **html\_url**: `string` - -Defined in: [github/package/Package.ts:97](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L97) - -Repository URLs - -*** - -### id - -> **id**: `number` - -Defined in: [github/package/Package.ts:12](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L12) - -Repository identifier - -*** - -### language - -> **language**: `null` \| `string` - -Defined in: [github/package/Package.ts:67](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L67) - -Repository language - -*** - -### license - -> **license**: `null` \| [`GithubLicense`](/reference/_dpkit/github/githublicense/) - -Defined in: [github/package/Package.ts:72](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L72) - -Repository license - -*** - -### name - -> **name**: `string` - -Defined in: [github/package/Package.ts:17](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L17) - -Repository name - -*** - -### owner - -> **owner**: [`GithubOwner`](/reference/_dpkit/github/githubowner/) - -Defined in: [github/package/Package.ts:27](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L27) - -Repository owner - -*** - -### private - -> **private**: `boolean` - -Defined in: [github/package/Package.ts:87](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L87) - -Repository is private - -*** - -### resources? - -> `optional` **resources**: [`GithubResource`](/reference/_dpkit/github/githubresource/)[] - -Defined in: [github/package/Package.ts:105](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L105) - -Repository resources - -*** - -### size - -> **size**: `number` - -Defined in: [github/package/Package.ts:52](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L52) - -Repository size in KB - -*** - -### ssh\_url - -> **ssh\_url**: `string` - -Defined in: [github/package/Package.ts:99](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L99) - -*** - -### stargazers\_count - -> **stargazers\_count**: `number` - -Defined in: [github/package/Package.ts:57](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L57) - -Repository stars count - -*** - -### topics - -> **topics**: `string`[] - -Defined in: [github/package/Package.ts:82](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L82) - -Repository topics - -*** - -### updated\_at - -> **updated\_at**: `string` - -Defined in: [github/package/Package.ts:42](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L42) - -Repository update date - -*** - -### watchers\_count - -> **watchers\_count**: `number` - -Defined in: [github/package/Package.ts:62](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/Package.ts#L62) - -Repository watchers count diff --git a/docs/content/docs/reference/_dpkit/github/GithubPlugin.md b/docs/content/docs/reference/_dpkit/github/GithubPlugin.md deleted file mode 100644 index bd17de07..00000000 --- a/docs/content/docs/reference/_dpkit/github/GithubPlugin.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "GithubPlugin" ---- - -Defined in: [github/plugin.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/plugin.ts#L5) - -## Implements - -- [`Plugin`](/reference/dpkit/plugin/) - -## Constructors - -### Constructor - -> **new GithubPlugin**(): `GithubPlugin` - -#### Returns - -`GithubPlugin` - -## Methods - -### loadPackage() - -> **loadPackage**(`source`): `Promise`\<`undefined` \| \{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> - -Defined in: [github/plugin.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/plugin.ts#L6) - -#### Parameters - -##### source - -`string` - -#### Returns - -`Promise`\<`undefined` \| \{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> - -#### Implementation of - -[`Plugin`](/reference/dpkit/plugin/).[`loadPackage`](/reference/dpkit/plugin/#loadpackage) diff --git a/docs/content/docs/reference/_dpkit/github/GithubResource.md b/docs/content/docs/reference/_dpkit/github/GithubResource.md deleted file mode 100644 index 00ac6d7f..00000000 --- a/docs/content/docs/reference/_dpkit/github/GithubResource.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "GithubResource" ---- - -Defined in: [github/resource/Resource.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/resource/Resource.ts#L4) - -GitHub repository file content - -## Properties - -### mode - -> **mode**: `string` - -Defined in: [github/resource/Resource.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/resource/Resource.ts#L13) - -File mode e.g. `100755` - -*** - -### path - -> **path**: `string` - -Defined in: [github/resource/Resource.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/resource/Resource.ts#L8) - -File path within repository - -*** - -### sha - -> **sha**: `string` - -Defined in: [github/resource/Resource.ts:28](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/resource/Resource.ts#L28) - -File SHA-1 - -*** - -### size - -> **size**: `number` - -Defined in: [github/resource/Resource.ts:23](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/resource/Resource.ts#L23) - -File size in bytes - -*** - -### type - -> **type**: `string` - -Defined in: [github/resource/Resource.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/resource/Resource.ts#L18) - -File type e.g. `blob` - -*** - -### url - -> **url**: `string` - -Defined in: [github/resource/Resource.ts:33](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/resource/Resource.ts#L33) - -File url on GitHub API diff --git a/docs/content/docs/reference/_dpkit/github/denormalizeGithubResource.md b/docs/content/docs/reference/_dpkit/github/denormalizeGithubResource.md deleted file mode 100644 index f3445b2d..00000000 --- a/docs/content/docs/reference/_dpkit/github/denormalizeGithubResource.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "denormalizeGithubResource" ---- - -> **denormalizeGithubResource**(`resource`): `Partial`\<[`GithubResource`](/reference/_dpkit/github/githubresource/)\> - -Defined in: [github/resource/process/denormalize.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/resource/process/denormalize.ts#L10) - -Denormalizes a Frictionless Data resource to Github file format -This is primarily used for file uploads/updates - -## Parameters - -### resource - -[`Resource`](/reference/dpkit/resource/) - -## Returns - -`Partial`\<[`GithubResource`](/reference/_dpkit/github/githubresource/)\> - -Partial Github Resource object for API operations diff --git a/docs/content/docs/reference/_dpkit/github/loadPackageFromGithub.md b/docs/content/docs/reference/_dpkit/github/loadPackageFromGithub.md deleted file mode 100644 index 3b0c2421..00000000 --- a/docs/content/docs/reference/_dpkit/github/loadPackageFromGithub.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadPackageFromGithub" ---- - -> **loadPackageFromGithub**(`repoUrl`, `options?`): `Promise`\<\{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> - -Defined in: [github/package/load.ts:12](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/load.ts#L12) - -Load a package from a Github repository - -## Parameters - -### repoUrl - -`string` - -### options? - -#### apiKey? - -`string` - -## Returns - -`Promise`\<\{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> - -Package object diff --git a/docs/content/docs/reference/_dpkit/github/normalizeGithubResource.md b/docs/content/docs/reference/_dpkit/github/normalizeGithubResource.md deleted file mode 100644 index 956312e8..00000000 --- a/docs/content/docs/reference/_dpkit/github/normalizeGithubResource.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "normalizeGithubResource" ---- - -> **normalizeGithubResource**(`githubResource`, `options`): [`Resource`](/reference/dpkit/resource/) - -Defined in: [github/resource/process/normalize.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/resource/process/normalize.ts#L10) - -Normalizes a Github file to Frictionless Data resource format - -## Parameters - -### githubResource - -[`GithubResource`](/reference/_dpkit/github/githubresource/) - -### options - -#### defaultBranch - -`string` - -## Returns - -[`Resource`](/reference/dpkit/resource/) - -Normalized Resource object diff --git a/docs/content/docs/reference/_dpkit/github/savePackageToGithub.md b/docs/content/docs/reference/_dpkit/github/savePackageToGithub.md deleted file mode 100644 index 2a09a657..00000000 --- a/docs/content/docs/reference/_dpkit/github/savePackageToGithub.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "savePackageToGithub" ---- - -> **savePackageToGithub**(`dataPackage`, `options`): `Promise`\<\{ `path`: `string`; `repoUrl`: `string`; \}\> - -Defined in: [github/package/save.ts:14](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/github/package/save.ts#L14) - -Save a package to a Github repository - -## Parameters - -### dataPackage - -[`Package`](/reference/dpkit/package/) - -### options - -#### apiKey - -`string` - -#### org? - -`string` - -#### repo - -`string` - -## Returns - -`Promise`\<\{ `path`: `string`; `repoUrl`: `string`; \}\> - -Object with the repository URL diff --git a/docs/content/docs/reference/_dpkit/inline.md b/docs/content/docs/reference/_dpkit/inline.md deleted file mode 100644 index d4e9d6f6..00000000 --- a/docs/content/docs/reference/_dpkit/inline.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "@dpkit/inline" ---- - -# @dpkit/inline - -dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). - -## Classes - -- [InlinePlugin](/reference/_dpkit/inline/inlineplugin/) - -## Functions - -- [loadInlineTable](/reference/_dpkit/inline/loadinlinetable/) diff --git a/docs/content/docs/reference/_dpkit/inline/InlinePlugin.md b/docs/content/docs/reference/_dpkit/inline/InlinePlugin.md deleted file mode 100644 index dc656479..00000000 --- a/docs/content/docs/reference/_dpkit/inline/InlinePlugin.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "InlinePlugin" ---- - -Defined in: [plugin.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/inline/plugin.ts#L5) - -## Implements - -- [`TablePlugin`](/reference/dpkit/tableplugin/) - -## Constructors - -### Constructor - -> **new InlinePlugin**(): `InlinePlugin` - -#### Returns - -`InlinePlugin` - -## Methods - -### loadTable() - -> **loadTable**(`resource`): `Promise`\<`undefined` \| `LazyDataFrame`\> - -Defined in: [plugin.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/inline/plugin.ts#L6) - -#### Parameters - -##### resource - -[`Resource`](/reference/dpkit/resource/) - -#### Returns - -`Promise`\<`undefined` \| `LazyDataFrame`\> - -#### Implementation of - -[`TablePlugin`](/reference/dpkit/tableplugin/).[`loadTable`](/reference/dpkit/tableplugin/#loadtable) diff --git a/docs/content/docs/reference/_dpkit/inline/loadInlineTable.md b/docs/content/docs/reference/_dpkit/inline/loadInlineTable.md deleted file mode 100644 index c589d643..00000000 --- a/docs/content/docs/reference/_dpkit/inline/loadInlineTable.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadInlineTable" ---- - -> **loadInlineTable**(`resource`): `Promise`\<`LazyDataFrame`\> - -Defined in: [table/load.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/inline/table/load.ts#L4) - -## Parameters - -### resource - -`Partial`\<[`Resource`](/reference/dpkit/resource/)\> - -## Returns - -`Promise`\<`LazyDataFrame`\> diff --git a/docs/content/docs/reference/_dpkit/parquet.md b/docs/content/docs/reference/_dpkit/parquet.md deleted file mode 100644 index 3135d425..00000000 --- a/docs/content/docs/reference/_dpkit/parquet.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "@dpkit/parquet" ---- - -# @dpkit/parquet - -dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). - -## Classes - -- [ParquetPlugin](/reference/_dpkit/parquet/parquetplugin/) - -## Functions - -- [loadParquetTable](/reference/_dpkit/parquet/loadparquettable/) -- [saveParquetTable](/reference/_dpkit/parquet/saveparquettable/) diff --git a/docs/content/docs/reference/_dpkit/parquet/ParquetPlugin.md b/docs/content/docs/reference/_dpkit/parquet/ParquetPlugin.md deleted file mode 100644 index 96da714b..00000000 --- a/docs/content/docs/reference/_dpkit/parquet/ParquetPlugin.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "ParquetPlugin" ---- - -Defined in: [plugin.ts:7](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/parquet/plugin.ts#L7) - -## Implements - -- [`TablePlugin`](/reference/dpkit/tableplugin/) - -## Constructors - -### Constructor - -> **new ParquetPlugin**(): `ParquetPlugin` - -#### Returns - -`ParquetPlugin` - -## Methods - -### loadTable() - -> **loadTable**(`resource`): `Promise`\<`undefined` \| `LazyDataFrame`\> - -Defined in: [plugin.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/parquet/plugin.ts#L8) - -#### Parameters - -##### resource - -`Partial`\<[`Resource`](/reference/dpkit/resource/)\> - -#### Returns - -`Promise`\<`undefined` \| `LazyDataFrame`\> - -#### Implementation of - -[`TablePlugin`](/reference/dpkit/tableplugin/).[`loadTable`](/reference/dpkit/tableplugin/#loadtable) - -*** - -### saveTable() - -> **saveTable**(`table`, `options`): `Promise`\<`undefined` \| `string`\> - -Defined in: [plugin.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/parquet/plugin.ts#L15) - -#### Parameters - -##### table - -`LazyDataFrame` - -##### options - -[`SaveTableOptions`](/reference/dpkit/savetableoptions/) - -#### Returns - -`Promise`\<`undefined` \| `string`\> - -#### Implementation of - -[`TablePlugin`](/reference/dpkit/tableplugin/).[`saveTable`](/reference/dpkit/tableplugin/#savetable) diff --git a/docs/content/docs/reference/_dpkit/parquet/loadParquetTable.md b/docs/content/docs/reference/_dpkit/parquet/loadParquetTable.md deleted file mode 100644 index 83d45480..00000000 --- a/docs/content/docs/reference/_dpkit/parquet/loadParquetTable.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadParquetTable" ---- - -> **loadParquetTable**(`resource`): `Promise`\<`LazyDataFrame`\> - -Defined in: [table/load.ts:7](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/parquet/table/load.ts#L7) - -## Parameters - -### resource - -`Partial`\<[`Resource`](/reference/dpkit/resource/)\> - -## Returns - -`Promise`\<`LazyDataFrame`\> diff --git a/docs/content/docs/reference/_dpkit/parquet/saveParquetTable.md b/docs/content/docs/reference/_dpkit/parquet/saveParquetTable.md deleted file mode 100644 index 4c94ce6f..00000000 --- a/docs/content/docs/reference/_dpkit/parquet/saveParquetTable.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "saveParquetTable" ---- - -> **saveParquetTable**(`table`, `options`): `Promise`\<`string`\> - -Defined in: [table/save.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/parquet/table/save.ts#L5) - -## Parameters - -### table - -`LazyDataFrame` - -### options - -[`SaveTableOptions`](/reference/dpkit/savetableoptions/) - -## Returns - -`Promise`\<`string`\> diff --git a/docs/content/docs/reference/_dpkit/table.md b/docs/content/docs/reference/_dpkit/table.md deleted file mode 100644 index 8b19eb82..00000000 --- a/docs/content/docs/reference/_dpkit/table.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "@dpkit/table" ---- - -# @dpkit/table - -dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). - -## Interfaces - -- [PolarsSchema](/reference/_dpkit/table/polarsschema/) -- [TablePlugin](/reference/_dpkit/table/tableplugin/) - -## Type Aliases - -- [InferDialectOptions](/reference/_dpkit/table/inferdialectoptions/) -- [InferSchemaOptions](/reference/_dpkit/table/inferschemaoptions/) -- [PolarsField](/reference/_dpkit/table/polarsfield/) -- [SaveTableOptions](/reference/_dpkit/table/savetableoptions/) -- [Table](/reference/_dpkit/table/table/) -- [TableError](/reference/_dpkit/table/tableerror/) - -## Functions - -- [getPolarsSchema](/reference/_dpkit/table/getpolarsschema/) -- [inferSchema](/reference/_dpkit/table/inferschema/) -- [inspectField](/reference/_dpkit/table/inspectfield/) -- [inspectTable](/reference/_dpkit/table/inspecttable/) -- [matchField](/reference/_dpkit/table/matchfield/) -- [parseField](/reference/_dpkit/table/parsefield/) -- [processTable](/reference/_dpkit/table/processtable/) diff --git a/docs/content/docs/reference/_dpkit/table/InferDialectOptions.md b/docs/content/docs/reference/_dpkit/table/InferDialectOptions.md deleted file mode 100644 index 841579b1..00000000 --- a/docs/content/docs/reference/_dpkit/table/InferDialectOptions.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "InferDialectOptions" ---- - -> **InferDialectOptions** = `object` - -Defined in: [table/plugin.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/plugin.ts#L4) - -## Properties - -### sampleBytes? - -> `optional` **sampleBytes**: `number` - -Defined in: [table/plugin.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/plugin.ts#L4) diff --git a/docs/content/docs/reference/_dpkit/table/InferSchemaOptions.md b/docs/content/docs/reference/_dpkit/table/InferSchemaOptions.md deleted file mode 100644 index af85600d..00000000 --- a/docs/content/docs/reference/_dpkit/table/InferSchemaOptions.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "InferSchemaOptions" ---- - -> **InferSchemaOptions** = `object` - -Defined in: [table/schema/infer.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/schema/infer.ts#L6) - -## Properties - -### commaDecimal? - -> `optional` **commaDecimal**: `boolean` - -Defined in: [table/schema/infer.ts:9](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/schema/infer.ts#L9) - -*** - -### confidence? - -> `optional` **confidence**: `number` - -Defined in: [table/schema/infer.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/schema/infer.ts#L8) - -*** - -### monthFirst? - -> `optional` **monthFirst**: `boolean` - -Defined in: [table/schema/infer.ts:10](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/schema/infer.ts#L10) - -*** - -### sampleRows? - -> `optional` **sampleRows**: `number` - -Defined in: [table/schema/infer.ts:7](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/schema/infer.ts#L7) diff --git a/docs/content/docs/reference/_dpkit/table/PolarsField.md b/docs/content/docs/reference/_dpkit/table/PolarsField.md deleted file mode 100644 index f75476e7..00000000 --- a/docs/content/docs/reference/_dpkit/table/PolarsField.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "PolarsField" ---- - -> **PolarsField** = `object` - -Defined in: [table/field/Field.ts:3](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/field/Field.ts#L3) - -## Properties - -### name - -> **name**: `string` - -Defined in: [table/field/Field.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/field/Field.ts#L4) - -*** - -### type - -> **type**: `DataType` - -Defined in: [table/field/Field.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/field/Field.ts#L5) diff --git a/docs/content/docs/reference/_dpkit/table/PolarsSchema.md b/docs/content/docs/reference/_dpkit/table/PolarsSchema.md deleted file mode 100644 index bc854a02..00000000 --- a/docs/content/docs/reference/_dpkit/table/PolarsSchema.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "PolarsSchema" ---- - -Defined in: [table/schema/Schema.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/schema/Schema.ts#L4) - -## Properties - -### fields - -> **fields**: [`PolarsField`](/reference/_dpkit/table/polarsfield/)[] - -Defined in: [table/schema/Schema.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/schema/Schema.ts#L5) diff --git a/docs/content/docs/reference/_dpkit/table/SaveTableOptions.md b/docs/content/docs/reference/_dpkit/table/SaveTableOptions.md deleted file mode 100644 index 2be9bc56..00000000 --- a/docs/content/docs/reference/_dpkit/table/SaveTableOptions.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "SaveTableOptions" ---- - -> **SaveTableOptions** = `object` - -Defined in: [table/plugin.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/plugin.ts#L5) - -## Properties - -### dialect? - -> `optional` **dialect**: [`Dialect`](/reference/dpkit/dialect/) - -Defined in: [table/plugin.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/plugin.ts#L5) - -*** - -### path - -> **path**: `string` - -Defined in: [table/plugin.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/plugin.ts#L5) diff --git a/docs/content/docs/reference/_dpkit/table/Table.md b/docs/content/docs/reference/_dpkit/table/Table.md deleted file mode 100644 index 088e05fe..00000000 --- a/docs/content/docs/reference/_dpkit/table/Table.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "Table" ---- - -> **Table** = `LazyDataFrame` - -Defined in: [table/table/Table.ts:3](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/table/Table.ts#L3) diff --git a/docs/content/docs/reference/_dpkit/table/TableError.md b/docs/content/docs/reference/_dpkit/table/TableError.md deleted file mode 100644 index ecc27019..00000000 --- a/docs/content/docs/reference/_dpkit/table/TableError.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "TableError" ---- - -> **TableError** = `FieldsMissingError` \| `FieldsExtraError` \| `FieldNameError` \| `FieldTypeError` \| `RowUniqueError` \| `CellTypeError` \| `CellRequiredError` \| `CellMinimumError` \| `CellMaximumError` \| `CellExclusiveMinimumError` \| `CellExclusiveMaximumError` \| `CellMinLengthError` \| `CellMaxLengthError` \| `CellPatternError` \| `CellUniqueError` \| `CellEnumError` - -Defined in: [table/error/Table.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/error/Table.ts#L18) diff --git a/docs/content/docs/reference/_dpkit/table/TablePlugin.md b/docs/content/docs/reference/_dpkit/table/TablePlugin.md deleted file mode 100644 index 89e06300..00000000 --- a/docs/content/docs/reference/_dpkit/table/TablePlugin.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "TablePlugin" ---- - -Defined in: [table/plugin.ts:7](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/plugin.ts#L7) - -## Extends - -- [`Plugin`](/reference/dpkit/plugin/) - -## Methods - -### inferDialect()? - -> `optional` **inferDialect**(`resource`, `options?`): `Promise`\<`undefined` \| [`Dialect`](/reference/dpkit/dialect/)\> - -Defined in: [table/plugin.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/plugin.ts#L8) - -#### Parameters - -##### resource - -`Partial`\<[`Resource`](/reference/dpkit/resource/)\> - -##### options? - -[`InferDialectOptions`](/reference/_dpkit/table/inferdialectoptions/) - -#### Returns - -`Promise`\<`undefined` \| [`Dialect`](/reference/dpkit/dialect/)\> - -*** - -### loadPackage()? - -> `optional` **loadPackage**(`source`): `Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> - -Defined in: core/build/plugin.d.ts:3 - -#### Parameters - -##### source - -`string` - -#### Returns - -`Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> - -#### Inherited from - -[`Plugin`](/reference/dpkit/plugin/).[`loadPackage`](/reference/dpkit/plugin/#loadpackage) - -*** - -### loadTable()? - -> `optional` **loadTable**(`resource`): `Promise`\<`undefined` \| `LazyDataFrame`\> - -Defined in: [table/plugin.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/plugin.ts#L13) - -#### Parameters - -##### resource - -`Partial`\<[`Resource`](/reference/dpkit/resource/)\> - -#### Returns - -`Promise`\<`undefined` \| `LazyDataFrame`\> - -*** - -### savePackage()? - -> `optional` **savePackage**(`dataPackage`, `options`): `Promise`\<`undefined` \| \{ `path?`: `string`; \}\> - -Defined in: core/build/plugin.d.ts:4 - -#### Parameters - -##### dataPackage - -[`Package`](/reference/dpkit/package/) - -##### options - -###### target - -`string` - -###### withRemote? - -`boolean` - -#### Returns - -`Promise`\<`undefined` \| \{ `path?`: `string`; \}\> - -#### Inherited from - -[`Plugin`](/reference/dpkit/plugin/).[`savePackage`](/reference/dpkit/plugin/#savepackage) - -*** - -### saveTable()? - -> `optional` **saveTable**(`table`, `options`): `Promise`\<`undefined` \| `string`\> - -Defined in: [table/plugin.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/plugin.ts#L15) - -#### Parameters - -##### table - -`LazyDataFrame` - -##### options - -[`SaveTableOptions`](/reference/_dpkit/table/savetableoptions/) - -#### Returns - -`Promise`\<`undefined` \| `string`\> diff --git a/docs/content/docs/reference/_dpkit/table/getPolarsSchema.md b/docs/content/docs/reference/_dpkit/table/getPolarsSchema.md deleted file mode 100644 index 02bc3867..00000000 --- a/docs/content/docs/reference/_dpkit/table/getPolarsSchema.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "getPolarsSchema" ---- - -> **getPolarsSchema**(`typeMapping`): [`PolarsSchema`](/reference/_dpkit/table/polarsschema/) - -Defined in: [table/schema/Schema.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/schema/Schema.ts#L8) - -## Parameters - -### typeMapping - -`Record`\<`string`, `DataType`\> - -## Returns - -[`PolarsSchema`](/reference/_dpkit/table/polarsschema/) diff --git a/docs/content/docs/reference/_dpkit/table/inferSchema.md b/docs/content/docs/reference/_dpkit/table/inferSchema.md deleted file mode 100644 index 44560e88..00000000 --- a/docs/content/docs/reference/_dpkit/table/inferSchema.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "inferSchema" ---- - -> **inferSchema**(`table`, `options?`): `Promise`\<[`Schema`](/reference/dpkit/schema/)\> - -Defined in: [table/schema/infer.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/schema/infer.ts#L13) - -## Parameters - -### table - -`LazyDataFrame` - -### options? - -[`InferSchemaOptions`](/reference/_dpkit/table/inferschemaoptions/) - -## Returns - -`Promise`\<[`Schema`](/reference/dpkit/schema/)\> diff --git a/docs/content/docs/reference/_dpkit/table/inspectField.md b/docs/content/docs/reference/_dpkit/table/inspectField.md deleted file mode 100644 index d9ce79eb..00000000 --- a/docs/content/docs/reference/_dpkit/table/inspectField.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "inspectField" ---- - -> **inspectField**(`field`, `options`): `object` - -Defined in: [table/field/inspect.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/field/inspect.ts#L15) - -## Parameters - -### field - -[`Field`](/reference/dpkit/field/) - -### options - -#### errorTable - -`LazyDataFrame` - -#### polarsField - -[`PolarsField`](/reference/_dpkit/table/polarsfield/) - -## Returns - -`object` - -### errors - -> **errors**: [`TableError`](/reference/_dpkit/table/tableerror/)[] - -### errorTable - -> **errorTable**: `LazyDataFrame` diff --git a/docs/content/docs/reference/_dpkit/table/inspectTable.md b/docs/content/docs/reference/_dpkit/table/inspectTable.md deleted file mode 100644 index e219aeaa..00000000 --- a/docs/content/docs/reference/_dpkit/table/inspectTable.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "inspectTable" ---- - -> **inspectTable**(`table`, `options?`): `Promise`\<[`TableError`](/reference/_dpkit/table/tableerror/)[]\> - -Defined in: [table/table/inspect.ts:12](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/table/inspect.ts#L12) - -## Parameters - -### table - -`LazyDataFrame` - -### options? - -#### invalidRowsLimit? - -`number` - -#### sampleRows? - -`number` - -#### schema? - -[`Schema`](/reference/dpkit/schema/) - -## Returns - -`Promise`\<[`TableError`](/reference/_dpkit/table/tableerror/)[]\> diff --git a/docs/content/docs/reference/_dpkit/table/matchField.md b/docs/content/docs/reference/_dpkit/table/matchField.md deleted file mode 100644 index ec899870..00000000 --- a/docs/content/docs/reference/_dpkit/table/matchField.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "matchField" ---- - -> **matchField**(`index`, `field`, `schema`, `polarsSchema`): `undefined` \| [`PolarsField`](/reference/_dpkit/table/polarsfield/) - -Defined in: [table/field/match.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/field/match.ts#L4) - -## Parameters - -### index - -`number` - -### field - -[`Field`](/reference/dpkit/field/) - -### schema - -[`Schema`](/reference/dpkit/schema/) - -### polarsSchema - -[`PolarsSchema`](/reference/_dpkit/table/polarsschema/) - -## Returns - -`undefined` \| [`PolarsField`](/reference/_dpkit/table/polarsfield/) diff --git a/docs/content/docs/reference/_dpkit/table/parseField.md b/docs/content/docs/reference/_dpkit/table/parseField.md deleted file mode 100644 index 3c5ae595..00000000 --- a/docs/content/docs/reference/_dpkit/table/parseField.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "parseField" ---- - -> **parseField**(`field`, `options?`): `any` - -Defined in: [table/field/parse.ts:22](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/field/parse.ts#L22) - -## Parameters - -### field - -[`Field`](/reference/dpkit/field/) - -### options? - -#### expr? - -`Expr` - -#### schema? - -[`Schema`](/reference/dpkit/schema/) - -## Returns - -`any` diff --git a/docs/content/docs/reference/_dpkit/table/processTable.md b/docs/content/docs/reference/_dpkit/table/processTable.md deleted file mode 100644 index 39746177..00000000 --- a/docs/content/docs/reference/_dpkit/table/processTable.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "processTable" ---- - -> **processTable**(`table`, `options?`): `Promise`\<`LazyDataFrame`\> - -Defined in: [table/table/process.ts:11](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/table/table/process.ts#L11) - -## Parameters - -### table - -`LazyDataFrame` - -### options? - -#### sampleSize? - -`number` - -#### schema? - -[`Schema`](/reference/dpkit/schema/) - -## Returns - -`Promise`\<`LazyDataFrame`\> diff --git a/docs/content/docs/reference/_dpkit/zenodo.md b/docs/content/docs/reference/_dpkit/zenodo.md deleted file mode 100644 index f2681c85..00000000 --- a/docs/content/docs/reference/_dpkit/zenodo.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "@dpkit/zenodo" ---- - -# @dpkit/zenodo - -dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). - -## Classes - -- [ZenodoPlugin](/reference/_dpkit/zenodo/zenodoplugin/) - -## Interfaces - -- [ZenodoCreator](/reference/_dpkit/zenodo/zenodocreator/) -- [ZenodoPackage](/reference/_dpkit/zenodo/zenodopackage/) -- [ZenodoResource](/reference/_dpkit/zenodo/zenodoresource/) - -## Functions - -- [denormalizeZenodoResource](/reference/_dpkit/zenodo/denormalizezenodoresource/) -- [loadPackageFromZenodo](/reference/_dpkit/zenodo/loadpackagefromzenodo/) -- [normalizeZenodoResource](/reference/_dpkit/zenodo/normalizezenodoresource/) -- [savePackageToZenodo](/reference/_dpkit/zenodo/savepackagetozenodo/) diff --git a/docs/content/docs/reference/_dpkit/zenodo/ZenodoCreator.md b/docs/content/docs/reference/_dpkit/zenodo/ZenodoCreator.md deleted file mode 100644 index cfd3fbed..00000000 --- a/docs/content/docs/reference/_dpkit/zenodo/ZenodoCreator.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "ZenodoCreator" ---- - -Defined in: [zenodo/package/Creator.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/package/Creator.ts#L4) - -Zenodo Creator interface - -## Properties - -### affiliation? - -> `optional` **affiliation**: `string` - -Defined in: [zenodo/package/Creator.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/package/Creator.ts#L13) - -Creator affiliation - -*** - -### identifiers? - -> `optional` **identifiers**: `object`[] - -Defined in: [zenodo/package/Creator.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/package/Creator.ts#L18) - -Creator identifiers (e.g., ORCID) - -#### identifier - -> **identifier**: `string` - -#### scheme - -> **scheme**: `string` - -*** - -### name - -> **name**: `string` - -Defined in: [zenodo/package/Creator.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/package/Creator.ts#L8) - -Creator name (format: Family name, Given names) diff --git a/docs/content/docs/reference/_dpkit/zenodo/ZenodoPackage.md b/docs/content/docs/reference/_dpkit/zenodo/ZenodoPackage.md deleted file mode 100644 index 2122b3c8..00000000 --- a/docs/content/docs/reference/_dpkit/zenodo/ZenodoPackage.md +++ /dev/null @@ -1,170 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "ZenodoPackage" ---- - -Defined in: [zenodo/package/Package.ts:7](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/package/Package.ts#L7) - -Zenodo Deposit interface - -## Properties - -### files - -> **files**: [`ZenodoResource`](/reference/_dpkit/zenodo/zenodoresource/)[] - -Defined in: [zenodo/package/Package.ts:100](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/package/Package.ts#L100) - -Files associated with the deposit - -*** - -### id - -> **id**: `number` - -Defined in: [zenodo/package/Package.ts:11](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/package/Package.ts#L11) - -Deposit identifier - -*** - -### links - -> **links**: `object` - -Defined in: [zenodo/package/Package.ts:16](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/package/Package.ts#L16) - -Deposit URL - -#### bucket - -> **bucket**: `string` - -#### discard? - -> `optional` **discard**: `string` - -#### edit? - -> `optional` **edit**: `string` - -#### files - -> **files**: `string` - -#### html - -> **html**: `string` - -#### publish? - -> `optional` **publish**: `string` - -#### self - -> **self**: `string` - -*** - -### metadata - -> **metadata**: `object` - -Defined in: [zenodo/package/Package.ts:29](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/package/Package.ts#L29) - -Deposit metadata - -#### access\_right? - -> `optional` **access\_right**: `string` - -Access right, e.g., "open", "embargoed", "restricted", "closed" - -#### communities? - -> `optional` **communities**: `object`[] - -Communities the deposit belongs to - -#### creators - -> **creators**: [`ZenodoCreator`](/reference/_dpkit/zenodo/zenodocreator/)[] - -Creators of the deposit - -#### description - -> **description**: `string` - -Description of the deposit - -#### doi? - -> `optional` **doi**: `string` - -DOI of the deposit - -#### keywords? - -> `optional` **keywords**: `string`[] - -Keywords/tags - -#### license? - -> `optional` **license**: `string` - -License identifier - -#### publication\_date? - -> `optional` **publication\_date**: `string` - -Publication date in ISO format (YYYY-MM-DD) - -#### related\_identifiers? - -> `optional` **related\_identifiers**: `object`[] - -Related identifiers (e.g., DOIs of related works) - -#### title - -> **title**: `string` - -Title of the deposit - -#### upload\_type - -> **upload\_type**: `string` - -Upload type, e.g., "dataset" - -#### version? - -> `optional` **version**: `string` - -Version of the deposit - -*** - -### state - -> **state**: `"unsubmitted"` \| `"inprogress"` \| `"done"` - -Defined in: [zenodo/package/Package.ts:105](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/package/Package.ts#L105) - -State of the deposit - -*** - -### submitted - -> **submitted**: `boolean` - -Defined in: [zenodo/package/Package.ts:110](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/package/Package.ts#L110) - -Submitted flag diff --git a/docs/content/docs/reference/_dpkit/zenodo/ZenodoPlugin.md b/docs/content/docs/reference/_dpkit/zenodo/ZenodoPlugin.md deleted file mode 100644 index 596ea54a..00000000 --- a/docs/content/docs/reference/_dpkit/zenodo/ZenodoPlugin.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "ZenodoPlugin" ---- - -Defined in: [zenodo/plugin.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/plugin.ts#L5) - -## Implements - -- [`Plugin`](/reference/dpkit/plugin/) - -## Constructors - -### Constructor - -> **new ZenodoPlugin**(): `ZenodoPlugin` - -#### Returns - -`ZenodoPlugin` - -## Methods - -### loadPackage() - -> **loadPackage**(`source`): `Promise`\<`undefined` \| \{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> - -Defined in: [zenodo/plugin.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/plugin.ts#L6) - -#### Parameters - -##### source - -`string` - -#### Returns - -`Promise`\<`undefined` \| \{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> - -#### Implementation of - -[`Plugin`](/reference/dpkit/plugin/).[`loadPackage`](/reference/dpkit/plugin/#loadpackage) diff --git a/docs/content/docs/reference/_dpkit/zenodo/ZenodoResource.md b/docs/content/docs/reference/_dpkit/zenodo/ZenodoResource.md deleted file mode 100644 index a2ea1f70..00000000 --- a/docs/content/docs/reference/_dpkit/zenodo/ZenodoResource.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "ZenodoResource" ---- - -Defined in: [zenodo/resource/Resource.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/resource/Resource.ts#L4) - -Zenodo File interface - -## Properties - -### checksum - -> **checksum**: `string` - -Defined in: [zenodo/resource/Resource.ts:23](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/resource/Resource.ts#L23) - -File checksum - -*** - -### id - -> **id**: `string` - -Defined in: [zenodo/resource/Resource.ts:8](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/resource/Resource.ts#L8) - -File identifier - -*** - -### key - -> **key**: `string` - -Defined in: [zenodo/resource/Resource.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/resource/Resource.ts#L13) - -File key - -*** - -### links - -> **links**: `object` - -Defined in: [zenodo/resource/Resource.ts:28](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/resource/Resource.ts#L28) - -Links related to the file - -#### self - -> **self**: `string` - -*** - -### size - -> **size**: `number` - -Defined in: [zenodo/resource/Resource.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/resource/Resource.ts#L18) - -File size in bytes diff --git a/docs/content/docs/reference/_dpkit/zenodo/denormalizeZenodoResource.md b/docs/content/docs/reference/_dpkit/zenodo/denormalizeZenodoResource.md deleted file mode 100644 index 16c9518d..00000000 --- a/docs/content/docs/reference/_dpkit/zenodo/denormalizeZenodoResource.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "denormalizeZenodoResource" ---- - -> **denormalizeZenodoResource**(`resource`): `Partial`\<[`ZenodoResource`](/reference/_dpkit/zenodo/zenodoresource/)\> - -Defined in: [zenodo/resource/process/denormalize.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/resource/process/denormalize.ts#L4) - -## Parameters - -### resource - -[`Resource`](/reference/dpkit/resource/) - -## Returns - -`Partial`\<[`ZenodoResource`](/reference/_dpkit/zenodo/zenodoresource/)\> diff --git a/docs/content/docs/reference/_dpkit/zenodo/loadPackageFromZenodo.md b/docs/content/docs/reference/_dpkit/zenodo/loadPackageFromZenodo.md deleted file mode 100644 index d938d140..00000000 --- a/docs/content/docs/reference/_dpkit/zenodo/loadPackageFromZenodo.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadPackageFromZenodo" ---- - -> **loadPackageFromZenodo**(`datasetUrl`, `options?`): `Promise`\<\{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> - -Defined in: [zenodo/package/load.ts:11](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/package/load.ts#L11) - -Load a package from a Zenodo deposit - -## Parameters - -### datasetUrl - -`string` - -### options? - -#### apiKey? - -`string` - -## Returns - -`Promise`\<\{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> - -Package object diff --git a/docs/content/docs/reference/_dpkit/zenodo/normalizeZenodoResource.md b/docs/content/docs/reference/_dpkit/zenodo/normalizeZenodoResource.md deleted file mode 100644 index 24e2d558..00000000 --- a/docs/content/docs/reference/_dpkit/zenodo/normalizeZenodoResource.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "normalizeZenodoResource" ---- - -> **normalizeZenodoResource**(`zenodoResource`): `object` - -Defined in: [zenodo/resource/process/normalize.ts:9](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/resource/process/normalize.ts#L9) - -Normalizes a Zenodo file to Frictionless Data resource format - -## Parameters - -### zenodoResource - -[`ZenodoResource`](/reference/_dpkit/zenodo/zenodoresource/) - -## Returns - -`object` - -Normalized Resource object - -### bytes - -> **bytes**: `number` = `zenodoResource.size` - -### format - -> **format**: `undefined` \| `string` - -### hash - -> **hash**: `string` = `zenodoResource.checksum` - -### name - -> **name**: `string` - -### path - -> **path**: `string` - -### zenodo:key - -> **zenodo:key**: `string` = `zenodoResource.key` - -### zenodo:url - -> **zenodo:url**: `string` = `path` diff --git a/docs/content/docs/reference/_dpkit/zenodo/savePackageToZenodo.md b/docs/content/docs/reference/_dpkit/zenodo/savePackageToZenodo.md deleted file mode 100644 index a428f76d..00000000 --- a/docs/content/docs/reference/_dpkit/zenodo/savePackageToZenodo.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "savePackageToZenodo" ---- - -> **savePackageToZenodo**(`dataPackage`, `options`): `Promise`\<\{ `datasetUrl`: `string`; `path`: `string`; \}\> - -Defined in: [zenodo/package/save.ts:18](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zenodo/package/save.ts#L18) - -Save a package to Zenodo - -## Parameters - -### dataPackage - -[`Package`](/reference/dpkit/package/) - -### options - -#### apiKey - -`string` - -#### sandbox? - -`boolean` - -## Returns - -`Promise`\<\{ `datasetUrl`: `string`; `path`: `string`; \}\> - -Object with the deposit URL and DOI diff --git a/docs/content/docs/reference/_dpkit/zip.md b/docs/content/docs/reference/_dpkit/zip.md deleted file mode 100644 index 3aa9f75d..00000000 --- a/docs/content/docs/reference/_dpkit/zip.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "@dpkit/zip" ---- - -# @dpkit/zip - -dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). - -## Classes - -- [ZipPlugin](/reference/_dpkit/zip/zipplugin/) - -## Functions - -- [loadPackageFromZip](/reference/_dpkit/zip/loadpackagefromzip/) -- [savePackageToZip](/reference/_dpkit/zip/savepackagetozip/) diff --git a/docs/content/docs/reference/_dpkit/zip/ZipPlugin.md b/docs/content/docs/reference/_dpkit/zip/ZipPlugin.md deleted file mode 100644 index 3b127393..00000000 --- a/docs/content/docs/reference/_dpkit/zip/ZipPlugin.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "ZipPlugin" ---- - -Defined in: [plugin.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zip/plugin.ts#L4) - -## Implements - -- [`Plugin`](/reference/dpkit/plugin/) - -## Constructors - -### Constructor - -> **new ZipPlugin**(): `ZipPlugin` - -#### Returns - -`ZipPlugin` - -## Methods - -### loadPackage() - -> **loadPackage**(`source`): `Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> - -Defined in: [plugin.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zip/plugin.ts#L5) - -#### Parameters - -##### source - -`string` - -#### Returns - -`Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> - -#### Implementation of - -[`Plugin`](/reference/dpkit/plugin/).[`loadPackage`](/reference/dpkit/plugin/#loadpackage) - -*** - -### savePackage() - -> **savePackage**(`dataPackage`, `options`): `Promise`\<`undefined` \| \{ `path`: `undefined`; \}\> - -Defined in: [plugin.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zip/plugin.ts#L13) - -#### Parameters - -##### dataPackage - -[`Package`](/reference/dpkit/package/) - -##### options - -###### target - -`string` - -###### withRemote? - -`boolean` - -#### Returns - -`Promise`\<`undefined` \| \{ `path`: `undefined`; \}\> - -#### Implementation of - -[`Plugin`](/reference/dpkit/plugin/).[`savePackage`](/reference/dpkit/plugin/#savepackage) diff --git a/docs/content/docs/reference/_dpkit/zip/loadPackageFromZip.md b/docs/content/docs/reference/_dpkit/zip/loadPackageFromZip.md deleted file mode 100644 index f9c3c9f3..00000000 --- a/docs/content/docs/reference/_dpkit/zip/loadPackageFromZip.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadPackageFromZip" ---- - -> **loadPackageFromZip**(`archivePath`): `Promise`\<[`Package`](/reference/dpkit/package/)\> - -Defined in: [package/load.ts:9](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zip/package/load.ts#L9) - -## Parameters - -### archivePath - -`string` - -## Returns - -`Promise`\<[`Package`](/reference/dpkit/package/)\> diff --git a/docs/content/docs/reference/_dpkit/zip/savePackageToZip.md b/docs/content/docs/reference/_dpkit/zip/savePackageToZip.md deleted file mode 100644 index 198bb70e..00000000 --- a/docs/content/docs/reference/_dpkit/zip/savePackageToZip.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "savePackageToZip" ---- - -> **savePackageToZip**(`dataPackage`, `options`): `Promise`\<`void`\> - -Defined in: [package/save.ts:13](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/zip/package/save.ts#L13) - -## Parameters - -### dataPackage - -[`Package`](/reference/dpkit/package/) - -### options - -#### archivePath - -`string` - -#### withRemote? - -`boolean` - -## Returns - -`Promise`\<`void`\> diff --git a/docs/content/docs/reference/dpkit.md b/docs/content/docs/reference/dpkit.md deleted file mode 100644 index b13addf2..00000000 --- a/docs/content/docs/reference/dpkit.md +++ /dev/null @@ -1,195 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "dpkit" ---- - -# dpkit - -dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). - -## Classes - -- [AssertionError](/reference/dpkit/assertionerror/) -- [CkanPlugin](/reference/dpkit/ckanplugin/) -- [CsvPlugin](/reference/dpkit/csvplugin/) -- [DatahubPlugin](/reference/dpkit/datahubplugin/) -- [Dpkit](/reference/dpkit/dpkit/) -- [FolderPlugin](/reference/dpkit/folderplugin/) -- [GithubPlugin](/reference/dpkit/githubplugin/) -- [InlinePlugin](/reference/dpkit/inlineplugin/) -- [ZenodoPlugin](/reference/dpkit/zenodoplugin/) -- [ZipPlugin](/reference/dpkit/zipplugin/) - -## Interfaces - -- [AnyConstraints](/reference/dpkit/anyconstraints/) -- [AnyField](/reference/dpkit/anyfield/) -- [ArrayConstraints](/reference/dpkit/arrayconstraints/) -- [ArrayField](/reference/dpkit/arrayfield/) -- [BooleanConstraints](/reference/dpkit/booleanconstraints/) -- [BooleanField](/reference/dpkit/booleanfield/) -- [CamtrapPackage](/reference/dpkit/camtrappackage/) -- [CkanField](/reference/dpkit/ckanfield/) -- [CkanOrganization](/reference/dpkit/ckanorganization/) -- [CkanPackage](/reference/dpkit/ckanpackage/) -- [CkanResource](/reference/dpkit/ckanresource/) -- [CkanSchema](/reference/dpkit/ckanschema/) -- [CkanTag](/reference/dpkit/ckantag/) -- [Contributor](/reference/dpkit/contributor/) -- [DateConstraints](/reference/dpkit/dateconstraints/) -- [DateField](/reference/dpkit/datefield/) -- [DatetimeConstraints](/reference/dpkit/datetimeconstraints/) -- [DatetimeField](/reference/dpkit/datetimefield/) -- [Dialect](/reference/dpkit/dialect/) -- [DurationConstraints](/reference/dpkit/durationconstraints/) -- [DurationField](/reference/dpkit/durationfield/) -- [ForeignKey](/reference/dpkit/foreignkey/) -- [GeojsonConstraints](/reference/dpkit/geojsonconstraints/) -- [GeojsonField](/reference/dpkit/geojsonfield/) -- [GeopointConstraints](/reference/dpkit/geopointconstraints/) -- [GeopointField](/reference/dpkit/geopointfield/) -- [GithubLicense](/reference/dpkit/githublicense/) -- [GithubOwner](/reference/dpkit/githubowner/) -- [GithubPackage](/reference/dpkit/githubpackage/) -- [GithubResource](/reference/dpkit/githubresource/) -- [IntegerConstraints](/reference/dpkit/integerconstraints/) -- [IntegerField](/reference/dpkit/integerfield/) -- [License](/reference/dpkit/license/) -- [ListConstraints](/reference/dpkit/listconstraints/) -- [ListField](/reference/dpkit/listfield/) -- [MetadataError](/reference/dpkit/metadataerror/) -- [NumberConstraints](/reference/dpkit/numberconstraints/) -- [NumberField](/reference/dpkit/numberfield/) -- [ObjectConstraints](/reference/dpkit/objectconstraints/) -- [ObjectField](/reference/dpkit/objectfield/) -- [Package](/reference/dpkit/package/) -- [Plugin](/reference/dpkit/plugin/) -- [PolarsSchema](/reference/dpkit/polarsschema/) -- [Resource](/reference/dpkit/resource/) -- [Schema](/reference/dpkit/schema/) -- [Source](/reference/dpkit/source/) -- [StringConstraints](/reference/dpkit/stringconstraints/) -- [StringField](/reference/dpkit/stringfield/) -- [TablePlugin](/reference/dpkit/tableplugin/) -- [TimeConstraints](/reference/dpkit/timeconstraints/) -- [TimeField](/reference/dpkit/timefield/) -- [YearConstraints](/reference/dpkit/yearconstraints/) -- [YearField](/reference/dpkit/yearfield/) -- [YearmonthConstraints](/reference/dpkit/yearmonthconstraints/) -- [YearmonthField](/reference/dpkit/yearmonthfield/) -- [ZenodoCreator](/reference/dpkit/zenodocreator/) -- [ZenodoPackage](/reference/dpkit/zenodopackage/) -- [ZenodoResource](/reference/dpkit/zenodoresource/) - -## Type Aliases - -- [Descriptor](/reference/dpkit/descriptor/) -- [Field](/reference/dpkit/field/) -- [InferDialectOptions](/reference/dpkit/inferdialectoptions/) -- [InferSchemaOptions](/reference/dpkit/inferschemaoptions/) -- [Metadata](/reference/dpkit/metadata/) -- [PolarsField](/reference/dpkit/polarsfield/) -- [SaveTableOptions](/reference/dpkit/savetableoptions/) -- [Table](/reference/dpkit/table/) -- [TableError](/reference/dpkit/tableerror/) - -## Variables - -- [dpkit](/reference/dpkit/dpkit-1/) - -## Functions - -- [assertCamtrapPackage](/reference/dpkit/assertcamtrappackage/) -- [assertDialect](/reference/dpkit/assertdialect/) -- [assertLocalPathVacant](/reference/dpkit/assertlocalpathvacant/) -- [assertPackage](/reference/dpkit/assertpackage/) -- [assertResource](/reference/dpkit/assertresource/) -- [assertSchema](/reference/dpkit/assertschema/) -- [copyFile](/reference/dpkit/copyfile/) -- [createFolder](/reference/dpkit/createfolder/) -- [denormalizeCkanResource](/reference/dpkit/denormalizeckanresource/) -- [denormalizeDialect](/reference/dpkit/denormalizedialect/) -- [denormalizeGithubResource](/reference/dpkit/denormalizegithubresource/) -- [denormalizePackage](/reference/dpkit/denormalizepackage/) -- [denormalizePath](/reference/dpkit/denormalizepath/) -- [denormalizeResource](/reference/dpkit/denormalizeresource/) -- [denormalizeSchema](/reference/dpkit/denormalizeschema/) -- [denormalizeZenodoResource](/reference/dpkit/denormalizezenodoresource/) -- [getBasepath](/reference/dpkit/getbasepath/) -- [getFilename](/reference/dpkit/getfilename/) -- [getFormat](/reference/dpkit/getformat/) -- [getName](/reference/dpkit/getname/) -- [getPackageBasepath](/reference/dpkit/getpackagebasepath/) -- [getPolarsSchema](/reference/dpkit/getpolarsschema/) -- [getTempFilePath](/reference/dpkit/gettempfilepath/) -- [getTempFolderPath](/reference/dpkit/gettempfolderpath/) -- [inferCsvDialect](/reference/dpkit/infercsvdialect/) -- [inferDialect](/reference/dpkit/inferdialect/) -- [inferFormat](/reference/dpkit/inferformat/) -- [inferSchema](/reference/dpkit/inferschema/) -- [inspectField](/reference/dpkit/inspectfield/) -- [inspectTable](/reference/dpkit/inspecttable/) -- [isDescriptor](/reference/dpkit/isdescriptor/) -- [isLocalPathExist](/reference/dpkit/islocalpathexist/) -- [isRemotePath](/reference/dpkit/isremotepath/) -- [loadCsvTable](/reference/dpkit/loadcsvtable/) -- [loadDescriptor](/reference/dpkit/loaddescriptor/) -- [loadDialect](/reference/dpkit/loaddialect/) -- [loadFile](/reference/dpkit/loadfile/) -- [loadFileStream](/reference/dpkit/loadfilestream/) -- [loadInlineTable](/reference/dpkit/loadinlinetable/) -- [loadPackage](/reference/dpkit/loadpackage/) -- [loadPackageDescriptor](/reference/dpkit/loadpackagedescriptor/) -- [loadPackageFromCkan](/reference/dpkit/loadpackagefromckan/) -- [loadPackageFromDatahub](/reference/dpkit/loadpackagefromdatahub/) -- [loadPackageFromFolder](/reference/dpkit/loadpackagefromfolder/) -- [loadPackageFromGithub](/reference/dpkit/loadpackagefromgithub/) -- [loadPackageFromZenodo](/reference/dpkit/loadpackagefromzenodo/) -- [loadPackageFromZip](/reference/dpkit/loadpackagefromzip/) -- [loadProfile](/reference/dpkit/loadprofile/) -- [loadResourceDescriptor](/reference/dpkit/loadresourcedescriptor/) -- [loadSchema](/reference/dpkit/loadschema/) -- [loadTable](/reference/dpkit/loadtable/) -- [matchField](/reference/dpkit/matchfield/) -- [mergePackages](/reference/dpkit/mergepackages/) -- [normalizeCkanSchema](/reference/dpkit/normalizeckanschema/) -- [normalizeDialect](/reference/dpkit/normalizedialect/) -- [normalizeField](/reference/dpkit/normalizefield/) -- [normalizeGithubResource](/reference/dpkit/normalizegithubresource/) -- [normalizePackage](/reference/dpkit/normalizepackage/) -- [normalizePath](/reference/dpkit/normalizepath/) -- [normalizeResource](/reference/dpkit/normalizeresource/) -- [normalizeSchema](/reference/dpkit/normalizeschema/) -- [normalizeZenodoResource](/reference/dpkit/normalizezenodoresource/) -- [parseDescriptor](/reference/dpkit/parsedescriptor/) -- [parseField](/reference/dpkit/parsefield/) -- [prefetchFile](/reference/dpkit/prefetchfile/) -- [prefetchFiles](/reference/dpkit/prefetchfiles/) -- [processTable](/reference/dpkit/processtable/) -- [readTable](/reference/dpkit/readtable/) -- [saveCsvTable](/reference/dpkit/savecsvtable/) -- [saveDescriptor](/reference/dpkit/savedescriptor/) -- [saveDialect](/reference/dpkit/savedialect/) -- [saveFile](/reference/dpkit/savefile/) -- [saveFileStream](/reference/dpkit/savefilestream/) -- [savePackage](/reference/dpkit/savepackage/) -- [savePackageDescriptor](/reference/dpkit/savepackagedescriptor/) -- [savePackageToCkan](/reference/dpkit/savepackagetockan/) -- [savePackageToFolder](/reference/dpkit/savepackagetofolder/) -- [savePackageToGithub](/reference/dpkit/savepackagetogithub/) -- [savePackageToZenodo](/reference/dpkit/savepackagetozenodo/) -- [savePackageToZip](/reference/dpkit/savepackagetozip/) -- [saveResourceDescriptor](/reference/dpkit/saveresourcedescriptor/) -- [saveResourceFiles](/reference/dpkit/saveresourcefiles/) -- [saveSchema](/reference/dpkit/saveschema/) -- [saveTable](/reference/dpkit/savetable/) -- [stringifyDescriptor](/reference/dpkit/stringifydescriptor/) -- [validateDescriptor](/reference/dpkit/validatedescriptor/) -- [validateDialect](/reference/dpkit/validatedialect/) -- [validatePackageDescriptor](/reference/dpkit/validatepackagedescriptor/) -- [validateResourceDescriptor](/reference/dpkit/validateresourcedescriptor/) -- [validateSchema](/reference/dpkit/validateschema/) -- [validateTable](/reference/dpkit/validatetable/) -- [writeTempFile](/reference/dpkit/writetempfile/) diff --git a/docs/content/docs/reference/dpkit/AnyConstraints.md b/docs/content/docs/reference/dpkit/AnyConstraints.md deleted file mode 100644 index 9e70ac27..00000000 --- a/docs/content/docs/reference/dpkit/AnyConstraints.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "AnyConstraints" ---- - -Defined in: core/build/field/types/Any.d.ts:14 - -Any field constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `any`[] - -Defined in: core/build/field/types/Any.d.ts:19 - -Restrict values to a specified set -For any field type, can be an array of any values - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:47 - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:51 - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/AnyField.md b/docs/content/docs/reference/dpkit/AnyField.md deleted file mode 100644 index 875bffcb..00000000 --- a/docs/content/docs/reference/dpkit/AnyField.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "AnyField" ---- - -Defined in: core/build/field/types/Any.d.ts:5 - -Any field type (unspecified/mixed) - -## Extends - -- `BaseField`\<[`AnyConstraints`](/reference/dpkit/anyconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### constraints? - -> `optional` **constraints**: [`AnyConstraints`](/reference/dpkit/anyconstraints/) - -Defined in: core/build/field/types/Base.d.ts:38 - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: core/build/field/types/Base.d.ts:17 - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: core/build/field/types/Base.d.ts:21 - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: core/build/field/types/Base.d.ts:31 - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: core/build/field/types/Base.d.ts:9 - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: core/build/field/types/Base.d.ts:25 - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: core/build/field/types/Base.d.ts:13 - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type? - -> `optional` **type**: `"any"` - -Defined in: core/build/field/types/Any.d.ts:9 - -Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/ArrayConstraints.md b/docs/content/docs/reference/dpkit/ArrayConstraints.md deleted file mode 100644 index b571552d..00000000 --- a/docs/content/docs/reference/dpkit/ArrayConstraints.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "ArrayConstraints" ---- - -Defined in: core/build/field/types/Array.d.ts:14 - -Array-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] \| `any`[][] - -Defined in: core/build/field/types/Array.d.ts:31 - -Restrict values to a specified set of arrays -Serialized as JSON strings or parsed array objects - -*** - -### jsonSchema? - -> `optional` **jsonSchema**: `Record`\<`string`, `any`\> - -Defined in: core/build/field/types/Array.d.ts:26 - -JSON Schema object for validating array items - -*** - -### maxLength? - -> `optional` **maxLength**: `number` - -Defined in: core/build/field/types/Array.d.ts:22 - -Maximum array length - -*** - -### minLength? - -> `optional` **minLength**: `number` - -Defined in: core/build/field/types/Array.d.ts:18 - -Minimum array length - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:47 - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:51 - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/ArrayField.md b/docs/content/docs/reference/dpkit/ArrayField.md deleted file mode 100644 index 4bdffae4..00000000 --- a/docs/content/docs/reference/dpkit/ArrayField.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "ArrayField" ---- - -Defined in: core/build/field/types/Array.d.ts:5 - -Array field type (serialized JSON array) - -## Extends - -- `BaseField`\<[`ArrayConstraints`](/reference/dpkit/arrayconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### constraints? - -> `optional` **constraints**: [`ArrayConstraints`](/reference/dpkit/arrayconstraints/) - -Defined in: core/build/field/types/Base.d.ts:38 - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: core/build/field/types/Base.d.ts:17 - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: core/build/field/types/Base.d.ts:21 - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: core/build/field/types/Base.d.ts:31 - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: core/build/field/types/Base.d.ts:9 - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: core/build/field/types/Base.d.ts:25 - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: core/build/field/types/Base.d.ts:13 - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type - -> **type**: `"array"` - -Defined in: core/build/field/types/Array.d.ts:9 - -Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/AssertionError.md b/docs/content/docs/reference/dpkit/AssertionError.md deleted file mode 100644 index b4d9e06a..00000000 --- a/docs/content/docs/reference/dpkit/AssertionError.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "AssertionError" ---- - -Defined in: core/build/general/Error.d.ts:11 - -Thrown when a descriptor assertion fails - -## Extends - -- `Error` - -## Constructors - -### Constructor - -> **new AssertionError**(`errors`): `AssertionError` - -Defined in: core/build/general/Error.d.ts:13 - -#### Parameters - -##### errors - -[`MetadataError`](/reference/dpkit/metadataerror/)[] - -#### Returns - -`AssertionError` - -#### Overrides - -`Error.constructor` - -## Properties - -### cause? - -> `optional` **cause**: `unknown` - -Defined in: node\_modules/.pnpm/typescript@5.8.3/node\_modules/typescript/lib/lib.es2022.error.d.ts:26 - -#### Inherited from - -`Error.cause` - -*** - -### errors - -> `readonly` **errors**: [`MetadataError`](/reference/dpkit/metadataerror/)[] - -Defined in: core/build/general/Error.d.ts:12 - -*** - -### message - -> **message**: `string` - -Defined in: node\_modules/.pnpm/typescript@5.8.3/node\_modules/typescript/lib/lib.es5.d.ts:1077 - -#### Inherited from - -`Error.message` - -*** - -### name - -> **name**: `string` - -Defined in: node\_modules/.pnpm/typescript@5.8.3/node\_modules/typescript/lib/lib.es5.d.ts:1076 - -#### Inherited from - -`Error.name` - -*** - -### stack? - -> `optional` **stack**: `string` - -Defined in: node\_modules/.pnpm/typescript@5.8.3/node\_modules/typescript/lib/lib.es5.d.ts:1078 - -#### Inherited from - -`Error.stack` diff --git a/docs/content/docs/reference/dpkit/BooleanConstraints.md b/docs/content/docs/reference/dpkit/BooleanConstraints.md deleted file mode 100644 index 566363ad..00000000 --- a/docs/content/docs/reference/dpkit/BooleanConstraints.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "BooleanConstraints" ---- - -Defined in: core/build/field/types/Boolean.d.ts:22 - -Boolean-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] \| `boolean`[] - -Defined in: core/build/field/types/Boolean.d.ts:27 - -Restrict values to a specified set -Can be an array of booleans or strings that parse to booleans - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:47 - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:51 - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/BooleanField.md b/docs/content/docs/reference/dpkit/BooleanField.md deleted file mode 100644 index e069a183..00000000 --- a/docs/content/docs/reference/dpkit/BooleanField.md +++ /dev/null @@ -1,148 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "BooleanField" ---- - -Defined in: core/build/field/types/Boolean.d.ts:5 - -Boolean field type - -## Extends - -- `BaseField`\<[`BooleanConstraints`](/reference/dpkit/booleanconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### constraints? - -> `optional` **constraints**: [`BooleanConstraints`](/reference/dpkit/booleanconstraints/) - -Defined in: core/build/field/types/Base.d.ts:38 - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: core/build/field/types/Base.d.ts:17 - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: core/build/field/types/Base.d.ts:21 - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### falseValues? - -> `optional` **falseValues**: `string`[] - -Defined in: core/build/field/types/Boolean.d.ts:17 - -Values that represent false - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: core/build/field/types/Base.d.ts:31 - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: core/build/field/types/Base.d.ts:9 - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: core/build/field/types/Base.d.ts:25 - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: core/build/field/types/Base.d.ts:13 - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### trueValues? - -> `optional` **trueValues**: `string`[] - -Defined in: core/build/field/types/Boolean.d.ts:13 - -Values that represent true - -*** - -### type - -> **type**: `"boolean"` - -Defined in: core/build/field/types/Boolean.d.ts:9 - -Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/CamtrapPackage.md b/docs/content/docs/reference/dpkit/CamtrapPackage.md deleted file mode 100644 index 6370d4dc..00000000 --- a/docs/content/docs/reference/dpkit/CamtrapPackage.md +++ /dev/null @@ -1,398 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "CamtrapPackage" ---- - -Defined in: camtrap/build/package/Package.d.ts:7 - -Camera Trap Data Package interface built on top of the TDWG specification - -## See - -https://camtrap-dp.tdwg.org/metadata/ - -## Extends - -- [`Package`](/reference/dpkit/package/) - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### $schema? - -> `optional` **$schema**: `string` - -Defined in: core/build/package/Package.d.ts:21 - -Package schema URL for validation - -#### Inherited from - -[`Package`](/reference/dpkit/package/).[`$schema`](/reference/dpkit/package/#schema) - -*** - -### bibliographicCitation? - -> `optional` **bibliographicCitation**: `string` - -Defined in: camtrap/build/package/Package.d.ts:106 - -Bibliographic citation for the dataset - -*** - -### contributors - -> **contributors**: `CamtrapContributor`[] - -Defined in: camtrap/build/package/Package.d.ts:23 - -Contributors to the package - -#### Required - -#### Overrides - -[`Package`](/reference/dpkit/package/).[`contributors`](/reference/dpkit/package/#contributors) - -*** - -### coordinatePrecision? - -> `optional` **coordinatePrecision**: `number` - -Defined in: camtrap/build/package/Package.d.ts:102 - -Precision of geographic coordinates - -*** - -### created - -> **created**: `string` - -Defined in: camtrap/build/package/Package.d.ts:18 - -Creation date of the package - -#### Required - -#### Format - -ISO 8601 - -#### Overrides - -[`Package`](/reference/dpkit/package/).[`created`](/reference/dpkit/package/#created) - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: core/build/package/Package.d.ts:29 - -A description of the package - -#### Inherited from - -[`Package`](/reference/dpkit/package/).[`description`](/reference/dpkit/package/#description) - -*** - -### homepage? - -> `optional` **homepage**: `string` - -Defined in: core/build/package/Package.d.ts:33 - -A URL for the home page of the package - -#### Inherited from - -[`Package`](/reference/dpkit/package/).[`homepage`](/reference/dpkit/package/#homepage) - -*** - -### image? - -> `optional` **image**: `string` - -Defined in: core/build/package/Package.d.ts:63 - -Package image - -#### Inherited from - -[`Package`](/reference/dpkit/package/).[`image`](/reference/dpkit/package/#image) - -*** - -### keywords? - -> `optional` **keywords**: `string`[] - -Defined in: core/build/package/Package.d.ts:54 - -Keywords for the package - -#### Inherited from - -[`Package`](/reference/dpkit/package/).[`keywords`](/reference/dpkit/package/#keywords) - -*** - -### licenses? - -> `optional` **licenses**: `CamtrapLicense`[] - -Defined in: camtrap/build/package/Package.d.ts:115 - -Licenses for the package -Extended with scope property - -#### Overrides - -[`Package`](/reference/dpkit/package/).[`licenses`](/reference/dpkit/package/#licenses) - -*** - -### name? - -> `optional` **name**: `string` - -Defined in: core/build/package/Package.d.ts:17 - -Unique package identifier -Should use lowercase alphanumeric characters, periods, hyphens, and underscores - -#### Inherited from - -[`Package`](/reference/dpkit/package/).[`name`](/reference/dpkit/package/#name) - -*** - -### profile - -> **profile**: `string` - -Defined in: camtrap/build/package/Package.d.ts:12 - -Package profile identifier - -#### Required - -*** - -### project - -> **project**: `object` - -Defined in: camtrap/build/package/Package.d.ts:28 - -Project metadata - -#### acronym? - -> `optional` **acronym**: `string` - -Project acronym - -#### captureMethod - -> **captureMethod**: (`"activityDetection"` \| `"timeLapse"`)[] - -Capture method used - -##### Required - -#### description? - -> `optional` **description**: `string` - -Project description - -#### id? - -> `optional` **id**: `string` - -Project identifier - -#### individualAnimals - -> **individualAnimals**: `boolean` - -Whether individual animals were identified - -##### Required - -#### observationLevel - -> **observationLevel**: (`"media"` \| `"event"`)[] - -Level at which observations are recorded - -##### Required - -#### path? - -> `optional` **path**: `string` - -Project URL or path - -#### samplingDesign - -> **samplingDesign**: `"simpleRandom"` \| `"systematicRandom"` \| `"clusteredRandom"` \| `"experimental"` \| `"targeted"` \| `"opportunistic"` - -Sampling design methodology - -##### Required - -#### title - -> **title**: `string` - -Project title - -##### Required - -#### Required - -*** - -### relatedIdentifiers? - -> `optional` **relatedIdentifiers**: `RelatedIdentifier`[] - -Defined in: camtrap/build/package/Package.d.ts:110 - -Related identifiers for the dataset - -*** - -### resources - -> **resources**: [`Resource`](/reference/dpkit/resource/)[] - -Defined in: core/build/package/Package.d.ts:12 - -Data resources in this package (required) - -#### Inherited from - -[`Package`](/reference/dpkit/package/).[`resources`](/reference/dpkit/package/#resources) - -*** - -### sources? - -> `optional` **sources**: [`Source`](/reference/dpkit/source/)[] - -Defined in: core/build/package/Package.d.ts:50 - -Data sources for this package - -#### Inherited from - -[`Package`](/reference/dpkit/package/).[`sources`](/reference/dpkit/package/#sources) - -*** - -### spatial - -> **spatial**: `GeoJSON` - -Defined in: camtrap/build/package/Package.d.ts:75 - -Spatial coverage of the data - -#### Required - -*** - -### taxonomic - -> **taxonomic**: `TaxonomicCoverage`[] - -Defined in: camtrap/build/package/Package.d.ts:98 - -Taxonomic coverage of the data - -#### Required - -*** - -### temporal - -> **temporal**: `object` - -Defined in: camtrap/build/package/Package.d.ts:80 - -Temporal coverage of the data - -#### end - -> **end**: `string` - -End date of temporal coverage - -##### Required - -##### Format - -ISO 8601 - -#### start - -> **start**: `string` - -Start date of temporal coverage - -##### Required - -##### Format - -ISO 8601 - -#### Required - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: core/build/package/Package.d.ts:25 - -Human-readable title - -#### Inherited from - -[`Package`](/reference/dpkit/package/).[`title`](/reference/dpkit/package/#title) - -*** - -### version? - -> `optional` **version**: `string` - -Defined in: core/build/package/Package.d.ts:38 - -Version of the package using SemVer - -#### Example - -```ts -"1.0.0" -``` - -#### Inherited from - -[`Package`](/reference/dpkit/package/).[`version`](/reference/dpkit/package/#version) diff --git a/docs/content/docs/reference/dpkit/CkanField.md b/docs/content/docs/reference/dpkit/CkanField.md deleted file mode 100644 index 38ca9930..00000000 --- a/docs/content/docs/reference/dpkit/CkanField.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "CkanField" ---- - -Defined in: ckan/build/schema/Field.d.ts:4 - -CKAN Field interface - -## Properties - -### id - -> **id**: `string` - -Defined in: ckan/build/schema/Field.d.ts:8 - -Field identifier - -*** - -### info? - -> `optional` **info**: `CkanFieldInfo` - -Defined in: ckan/build/schema/Field.d.ts:16 - -Additional field information - -*** - -### type - -> **type**: `string` - -Defined in: ckan/build/schema/Field.d.ts:12 - -Field data type diff --git a/docs/content/docs/reference/dpkit/CkanOrganization.md b/docs/content/docs/reference/dpkit/CkanOrganization.md deleted file mode 100644 index bc54312f..00000000 --- a/docs/content/docs/reference/dpkit/CkanOrganization.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "CkanOrganization" ---- - -Defined in: ckan/build/package/Organization.d.ts:4 - -CKAN Organization interface - -## Properties - -### description - -> **description**: `string` - -Defined in: ckan/build/package/Organization.d.ts:20 - -Organization description - -*** - -### id - -> **id**: `string` - -Defined in: ckan/build/package/Organization.d.ts:8 - -Organization identifier - -*** - -### name - -> **name**: `string` - -Defined in: ckan/build/package/Organization.d.ts:12 - -Organization name - -*** - -### title - -> **title**: `string` - -Defined in: ckan/build/package/Organization.d.ts:16 - -Organization title diff --git a/docs/content/docs/reference/dpkit/CkanPackage.md b/docs/content/docs/reference/dpkit/CkanPackage.md deleted file mode 100644 index 2384bea6..00000000 --- a/docs/content/docs/reference/dpkit/CkanPackage.md +++ /dev/null @@ -1,180 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "CkanPackage" ---- - -Defined in: ckan/build/package/Package.d.ts:7 - -CKAN Package interface - -## Properties - -### author? - -> `optional` **author**: `string` - -Defined in: ckan/build/package/Package.d.ts:55 - -Package author - -*** - -### author\_email? - -> `optional` **author\_email**: `string` - -Defined in: ckan/build/package/Package.d.ts:59 - -Package author email - -*** - -### id - -> **id**: `string` - -Defined in: ckan/build/package/Package.d.ts:23 - -Package identifier - -*** - -### license\_id? - -> `optional` **license\_id**: `string` - -Defined in: ckan/build/package/Package.d.ts:43 - -License identifier - -*** - -### license\_title? - -> `optional` **license\_title**: `string` - -Defined in: ckan/build/package/Package.d.ts:47 - -License title - -*** - -### license\_url? - -> `optional` **license\_url**: `string` - -Defined in: ckan/build/package/Package.d.ts:51 - -License URL - -*** - -### maintainer? - -> `optional` **maintainer**: `string` - -Defined in: ckan/build/package/Package.d.ts:63 - -Package maintainer - -*** - -### maintainer\_email? - -> `optional` **maintainer\_email**: `string` - -Defined in: ckan/build/package/Package.d.ts:67 - -Package maintainer email - -*** - -### metadata\_created? - -> `optional` **metadata\_created**: `string` - -Defined in: ckan/build/package/Package.d.ts:71 - -Metadata creation timestamp - -*** - -### metadata\_modified? - -> `optional` **metadata\_modified**: `string` - -Defined in: ckan/build/package/Package.d.ts:75 - -Metadata modification timestamp - -*** - -### name - -> **name**: `string` - -Defined in: ckan/build/package/Package.d.ts:27 - -Package name - -*** - -### notes? - -> `optional` **notes**: `string` - -Defined in: ckan/build/package/Package.d.ts:35 - -Package notes/description - -*** - -### organization? - -> `optional` **organization**: [`CkanOrganization`](/reference/dpkit/ckanorganization/) - -Defined in: ckan/build/package/Package.d.ts:15 - -Organization information - -*** - -### resources - -> **resources**: [`CkanResource`](/reference/dpkit/ckanresource/)[] - -Defined in: ckan/build/package/Package.d.ts:11 - -List of resources - -*** - -### tags - -> **tags**: [`CkanTag`](/reference/dpkit/ckantag/)[] - -Defined in: ckan/build/package/Package.d.ts:19 - -List of tags - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: ckan/build/package/Package.d.ts:31 - -Package title - -*** - -### version? - -> `optional` **version**: `string` - -Defined in: ckan/build/package/Package.d.ts:39 - -Package version diff --git a/docs/content/docs/reference/dpkit/CkanPlugin.md b/docs/content/docs/reference/dpkit/CkanPlugin.md deleted file mode 100644 index 8243439d..00000000 --- a/docs/content/docs/reference/dpkit/CkanPlugin.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "CkanPlugin" ---- - -Defined in: ckan/build/plugin.d.ts:2 - -## Implements - -- [`Plugin`](/reference/dpkit/plugin/) - -## Constructors - -### Constructor - -> **new CkanPlugin**(): `CkanPlugin` - -#### Returns - -`CkanPlugin` - -## Methods - -### loadPackage() - -> **loadPackage**(`source`): `Promise`\<`undefined` \| \{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> - -Defined in: ckan/build/plugin.d.ts:3 - -#### Parameters - -##### source - -`string` - -#### Returns - -`Promise`\<`undefined` \| \{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> - -#### Implementation of - -[`Plugin`](/reference/dpkit/plugin/).[`loadPackage`](/reference/dpkit/plugin/#loadpackage) diff --git a/docs/content/docs/reference/dpkit/CkanResource.md b/docs/content/docs/reference/dpkit/CkanResource.md deleted file mode 100644 index b2966b31..00000000 --- a/docs/content/docs/reference/dpkit/CkanResource.md +++ /dev/null @@ -1,130 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "CkanResource" ---- - -Defined in: ckan/build/resource/Resource.d.ts:6 - -CKAN Resource interface - -## Properties - -### created - -> **created**: `string` - -Defined in: ckan/build/resource/Resource.d.ts:22 - -Resource creation timestamp - -*** - -### description - -> **description**: `string` - -Defined in: ckan/build/resource/Resource.d.ts:26 - -Resource description - -*** - -### format - -> **format**: `string` - -Defined in: ckan/build/resource/Resource.d.ts:30 - -Resource format - -*** - -### hash - -> **hash**: `string` - -Defined in: ckan/build/resource/Resource.d.ts:34 - -Resource hash - -*** - -### id - -> **id**: `string` - -Defined in: ckan/build/resource/Resource.d.ts:10 - -Resource identifier - -*** - -### last\_modified - -> **last\_modified**: `string` - -Defined in: ckan/build/resource/Resource.d.ts:38 - -Resource last modification timestamp - -*** - -### metadata\_modified - -> **metadata\_modified**: `string` - -Defined in: ckan/build/resource/Resource.d.ts:42 - -Resource metadata modification timestamp - -*** - -### mimetype - -> **mimetype**: `string` - -Defined in: ckan/build/resource/Resource.d.ts:46 - -Resource MIME type - -*** - -### name - -> **name**: `string` - -Defined in: ckan/build/resource/Resource.d.ts:18 - -Resource name - -*** - -### schema? - -> `optional` **schema**: [`CkanSchema`](/reference/dpkit/ckanschema/) - -Defined in: ckan/build/resource/Resource.d.ts:54 - -Resource schema - -*** - -### size - -> **size**: `number` - -Defined in: ckan/build/resource/Resource.d.ts:50 - -Resource size in bytes - -*** - -### url - -> **url**: `string` - -Defined in: ckan/build/resource/Resource.d.ts:14 - -Resource URL diff --git a/docs/content/docs/reference/dpkit/CkanSchema.md b/docs/content/docs/reference/dpkit/CkanSchema.md deleted file mode 100644 index cd81f403..00000000 --- a/docs/content/docs/reference/dpkit/CkanSchema.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "CkanSchema" ---- - -Defined in: ckan/build/schema/Schema.d.ts:5 - -CKAN Schema interface - -## Properties - -### fields - -> **fields**: [`CkanField`](/reference/dpkit/ckanfield/)[] - -Defined in: ckan/build/schema/Schema.d.ts:9 - -List of fields diff --git a/docs/content/docs/reference/dpkit/CkanTag.md b/docs/content/docs/reference/dpkit/CkanTag.md deleted file mode 100644 index 34eb3c8e..00000000 --- a/docs/content/docs/reference/dpkit/CkanTag.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "CkanTag" ---- - -Defined in: ckan/build/package/Tag.d.ts:4 - -CKAN Tag interface - -## Properties - -### display\_name - -> **display\_name**: `string` - -Defined in: ckan/build/package/Tag.d.ts:16 - -Tag display name - -*** - -### id - -> **id**: `string` - -Defined in: ckan/build/package/Tag.d.ts:8 - -Tag identifier - -*** - -### name - -> **name**: `string` - -Defined in: ckan/build/package/Tag.d.ts:12 - -Tag name diff --git a/docs/content/docs/reference/dpkit/Contributor.md b/docs/content/docs/reference/dpkit/Contributor.md deleted file mode 100644 index 74480b85..00000000 --- a/docs/content/docs/reference/dpkit/Contributor.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "Contributor" ---- - -Defined in: core/build/package/Contributor.d.ts:4 - -Contributor information - -## Properties - -### email? - -> `optional` **email**: `string` - -Defined in: core/build/package/Contributor.d.ts:12 - -Email address of the contributor - -*** - -### path? - -> `optional` **path**: `string` - -Defined in: core/build/package/Contributor.d.ts:16 - -Path to relevant contributor information - -*** - -### role? - -> `optional` **role**: `string` - -Defined in: core/build/package/Contributor.d.ts:20 - -Role of the contributor - -*** - -### title - -> **title**: `string` - -Defined in: core/build/package/Contributor.d.ts:8 - -Full name of the contributor diff --git a/docs/content/docs/reference/dpkit/CsvPlugin.md b/docs/content/docs/reference/dpkit/CsvPlugin.md deleted file mode 100644 index b0eba84e..00000000 --- a/docs/content/docs/reference/dpkit/CsvPlugin.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "CsvPlugin" ---- - -Defined in: csv/build/plugin.d.ts:4 - -## Implements - -- [`TablePlugin`](/reference/dpkit/tableplugin/) - -## Constructors - -### Constructor - -> **new CsvPlugin**(): `CsvPlugin` - -#### Returns - -`CsvPlugin` - -## Methods - -### inferDialect() - -> **inferDialect**(`resource`, `options?`): `Promise`\<`undefined` \| [`Dialect`](/reference/dpkit/dialect/)\> - -Defined in: csv/build/plugin.d.ts:5 - -#### Parameters - -##### resource - -`Partial`\<[`Resource`](/reference/dpkit/resource/)\> - -##### options? - -[`InferDialectOptions`](/reference/dpkit/inferdialectoptions/) - -#### Returns - -`Promise`\<`undefined` \| [`Dialect`](/reference/dpkit/dialect/)\> - -#### Implementation of - -[`TablePlugin`](/reference/dpkit/tableplugin/).[`inferDialect`](/reference/dpkit/tableplugin/#inferdialect) - -*** - -### loadTable() - -> **loadTable**(`resource`): `Promise`\<`undefined` \| `LazyDataFrame`\> - -Defined in: csv/build/plugin.d.ts:6 - -#### Parameters - -##### resource - -`Partial`\<[`Resource`](/reference/dpkit/resource/)\> - -#### Returns - -`Promise`\<`undefined` \| `LazyDataFrame`\> - -#### Implementation of - -[`TablePlugin`](/reference/dpkit/tableplugin/).[`loadTable`](/reference/dpkit/tableplugin/#loadtable) - -*** - -### saveTable() - -> **saveTable**(`table`, `options`): `Promise`\<`undefined` \| `string`\> - -Defined in: csv/build/plugin.d.ts:7 - -#### Parameters - -##### table - -`LazyDataFrame` - -##### options - -[`SaveTableOptions`](/reference/dpkit/savetableoptions/) - -#### Returns - -`Promise`\<`undefined` \| `string`\> - -#### Implementation of - -[`TablePlugin`](/reference/dpkit/tableplugin/).[`saveTable`](/reference/dpkit/tableplugin/#savetable) diff --git a/docs/content/docs/reference/dpkit/DatahubPlugin.md b/docs/content/docs/reference/dpkit/DatahubPlugin.md deleted file mode 100644 index 37a595ee..00000000 --- a/docs/content/docs/reference/dpkit/DatahubPlugin.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "DatahubPlugin" ---- - -Defined in: datahub/build/plugin.d.ts:2 - -## Implements - -- [`Plugin`](/reference/dpkit/plugin/) - -## Constructors - -### Constructor - -> **new DatahubPlugin**(): `DatahubPlugin` - -#### Returns - -`DatahubPlugin` - -## Methods - -### loadPackage() - -> **loadPackage**(`source`): `Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> - -Defined in: datahub/build/plugin.d.ts:3 - -#### Parameters - -##### source - -`string` - -#### Returns - -`Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> - -#### Implementation of - -[`Plugin`](/reference/dpkit/plugin/).[`loadPackage`](/reference/dpkit/plugin/#loadpackage) diff --git a/docs/content/docs/reference/dpkit/DateConstraints.md b/docs/content/docs/reference/dpkit/DateConstraints.md deleted file mode 100644 index e421dff9..00000000 --- a/docs/content/docs/reference/dpkit/DateConstraints.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "DateConstraints" ---- - -Defined in: core/build/field/types/Date.d.ts:21 - -Date-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] - -Defined in: core/build/field/types/Date.d.ts:34 - -Restrict values to a specified set of dates -Should be in string date format (e.g., "YYYY-MM-DD") - -*** - -### maximum? - -> `optional` **maximum**: `string` - -Defined in: core/build/field/types/Date.d.ts:29 - -Maximum allowed date value - -*** - -### minimum? - -> `optional` **minimum**: `string` - -Defined in: core/build/field/types/Date.d.ts:25 - -Minimum allowed date value - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:47 - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:51 - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/DateField.md b/docs/content/docs/reference/dpkit/DateField.md deleted file mode 100644 index 12775040..00000000 --- a/docs/content/docs/reference/dpkit/DateField.md +++ /dev/null @@ -1,141 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "DateField" ---- - -Defined in: core/build/field/types/Date.d.ts:5 - -Date field type - -## Extends - -- `BaseField`\<[`DateConstraints`](/reference/dpkit/dateconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### constraints? - -> `optional` **constraints**: [`DateConstraints`](/reference/dpkit/dateconstraints/) - -Defined in: core/build/field/types/Base.d.ts:38 - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: core/build/field/types/Base.d.ts:17 - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: core/build/field/types/Base.d.ts:21 - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### format? - -> `optional` **format**: `string` - -Defined in: core/build/field/types/Date.d.ts:16 - -Format of the date -- default: YYYY-MM-DD -- any: flexible date parsing (not recommended) -- Or custom strptime/strftime format string - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: core/build/field/types/Base.d.ts:31 - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: core/build/field/types/Base.d.ts:9 - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: core/build/field/types/Base.d.ts:25 - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: core/build/field/types/Base.d.ts:13 - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type - -> **type**: `"date"` - -Defined in: core/build/field/types/Date.d.ts:9 - -Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/DatetimeConstraints.md b/docs/content/docs/reference/dpkit/DatetimeConstraints.md deleted file mode 100644 index b8e3edaa..00000000 --- a/docs/content/docs/reference/dpkit/DatetimeConstraints.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "DatetimeConstraints" ---- - -Defined in: core/build/field/types/Datetime.d.ts:21 - -Datetime-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] - -Defined in: core/build/field/types/Datetime.d.ts:34 - -Restrict values to a specified set of datetimes -Should be in string datetime format (e.g., ISO8601) - -*** - -### maximum? - -> `optional` **maximum**: `string` - -Defined in: core/build/field/types/Datetime.d.ts:29 - -Maximum allowed datetime value - -*** - -### minimum? - -> `optional` **minimum**: `string` - -Defined in: core/build/field/types/Datetime.d.ts:25 - -Minimum allowed datetime value - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:47 - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:51 - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/DatetimeField.md b/docs/content/docs/reference/dpkit/DatetimeField.md deleted file mode 100644 index e6971f6c..00000000 --- a/docs/content/docs/reference/dpkit/DatetimeField.md +++ /dev/null @@ -1,141 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "DatetimeField" ---- - -Defined in: core/build/field/types/Datetime.d.ts:5 - -Datetime field type - -## Extends - -- `BaseField`\<[`DatetimeConstraints`](/reference/dpkit/datetimeconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### constraints? - -> `optional` **constraints**: [`DatetimeConstraints`](/reference/dpkit/datetimeconstraints/) - -Defined in: core/build/field/types/Base.d.ts:38 - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: core/build/field/types/Base.d.ts:17 - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: core/build/field/types/Base.d.ts:21 - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### format? - -> `optional` **format**: `string` - -Defined in: core/build/field/types/Datetime.d.ts:16 - -Format of the datetime -- default: ISO8601 format -- any: flexible datetime parsing (not recommended) -- Or custom strptime/strftime format string - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: core/build/field/types/Base.d.ts:31 - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: core/build/field/types/Base.d.ts:9 - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: core/build/field/types/Base.d.ts:25 - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: core/build/field/types/Base.d.ts:13 - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type - -> **type**: `"datetime"` - -Defined in: core/build/field/types/Datetime.d.ts:9 - -Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/Descriptor.md b/docs/content/docs/reference/dpkit/Descriptor.md deleted file mode 100644 index 434036a5..00000000 --- a/docs/content/docs/reference/dpkit/Descriptor.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "Descriptor" ---- - -> **Descriptor** = `Record`\<`string`, `unknown`\> - -Defined in: core/build/general/descriptor/Descriptor.d.ts:1 diff --git a/docs/content/docs/reference/dpkit/Dialect.md b/docs/content/docs/reference/dpkit/Dialect.md deleted file mode 100644 index 3547ef7d..00000000 --- a/docs/content/docs/reference/dpkit/Dialect.md +++ /dev/null @@ -1,221 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "Dialect" ---- - -Defined in: core/build/dialect/Dialect.d.ts:7 - -Descriptor that describes the structure of tabular data, such as delimiters, -headers, and other features. Following the Data Package standard: -https://datapackage.org/standard/table-dialect/ - -## Extends - -- [`Metadata`](/reference/dpkit/metadata/) - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### $schema? - -> `optional` **$schema**: `string` - -Defined in: core/build/dialect/Dialect.d.ts:15 - -JSON schema profile URL for validation - -*** - -### commentChar? - -> `optional` **commentChar**: `string` - -Defined in: core/build/dialect/Dialect.d.ts:35 - -Character sequence denoting the start of a comment line - -*** - -### commentRows? - -> `optional` **commentRows**: `number`[] - -Defined in: core/build/dialect/Dialect.d.ts:31 - -Specific rows to be excluded from the data (zero-based) - -*** - -### delimiter? - -> `optional` **delimiter**: `string` - -Defined in: core/build/dialect/Dialect.d.ts:39 - -The character used to separate fields in the data - -*** - -### doubleQuote? - -> `optional` **doubleQuote**: `boolean` - -Defined in: core/build/dialect/Dialect.d.ts:51 - -Controls whether a sequence of two quote characters represents a single quote - -*** - -### escapeChar? - -> `optional` **escapeChar**: `string` - -Defined in: core/build/dialect/Dialect.d.ts:55 - -Character used to escape the delimiter or quote characters - -*** - -### header? - -> `optional` **header**: `boolean` - -Defined in: core/build/dialect/Dialect.d.ts:19 - -Whether the file includes a header row with field names - -*** - -### headerJoin? - -> `optional` **headerJoin**: `string` - -Defined in: core/build/dialect/Dialect.d.ts:27 - -The character used to join multi-line headers - -*** - -### headerRows? - -> `optional` **headerRows**: `number`[] - -Defined in: core/build/dialect/Dialect.d.ts:23 - -Row numbers (zero-based) that are considered header rows - -*** - -### itemKeys? - -> `optional` **itemKeys**: `string`[] - -Defined in: core/build/dialect/Dialect.d.ts:76 - -For object-based data items, specifies which object properties to extract as values - -*** - -### itemType? - -> `optional` **itemType**: `"object"` \| `"array"` - -Defined in: core/build/dialect/Dialect.d.ts:72 - -The type of data item in the source: 'array' for rows represented as arrays, -or 'object' for rows represented as objects - -*** - -### lineTerminator? - -> `optional` **lineTerminator**: `string` - -Defined in: core/build/dialect/Dialect.d.ts:43 - -Character sequence used to terminate rows - -*** - -### name? - -> `optional` **name**: `string` - -Defined in: core/build/dialect/Dialect.d.ts:11 - -The name of this dialect - -*** - -### nullSequence? - -> `optional` **nullSequence**: `string` - -Defined in: core/build/dialect/Dialect.d.ts:59 - -Character sequence representing null or missing values in the data - -*** - -### property? - -> `optional` **property**: `string` - -Defined in: core/build/dialect/Dialect.d.ts:67 - -For JSON data, the property name containing the data array - -*** - -### quoteChar? - -> `optional` **quoteChar**: `string` - -Defined in: core/build/dialect/Dialect.d.ts:47 - -Character used to quote fields - -*** - -### sheetName? - -> `optional` **sheetName**: `string` - -Defined in: core/build/dialect/Dialect.d.ts:84 - -For spreadsheet data, the sheet name to read - -*** - -### sheetNumber? - -> `optional` **sheetNumber**: `number` - -Defined in: core/build/dialect/Dialect.d.ts:80 - -For spreadsheet data, the sheet number to read (zero-based) - -*** - -### skipInitialSpace? - -> `optional` **skipInitialSpace**: `boolean` - -Defined in: core/build/dialect/Dialect.d.ts:63 - -Whether to ignore whitespace immediately following the delimiter - -*** - -### table? - -> `optional` **table**: `string` - -Defined in: core/build/dialect/Dialect.d.ts:88 - -For database sources, the table name to read diff --git a/docs/content/docs/reference/dpkit/Dpkit.md b/docs/content/docs/reference/dpkit/Dpkit.md deleted file mode 100644 index 1074bcbf..00000000 --- a/docs/content/docs/reference/dpkit/Dpkit.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "Dpkit" ---- - -Defined in: [dpkit/plugin.ts:14](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/dpkit/plugin.ts#L14) - -## Constructors - -### Constructor - -> **new Dpkit**(): `Dpkit` - -#### Returns - -`Dpkit` - -## Properties - -### plugins - -> **plugins**: [`TablePlugin`](/reference/dpkit/tableplugin/)[] = `[]` - -Defined in: [dpkit/plugin.ts:15](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/dpkit/plugin.ts#L15) - -## Methods - -### register() - -> **register**(`PluginClass`): `void` - -Defined in: [dpkit/plugin.ts:17](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/dpkit/plugin.ts#L17) - -#### Parameters - -##### PluginClass - -() => [`TablePlugin`](/reference/dpkit/tableplugin/) - -#### Returns - -`void` diff --git a/docs/content/docs/reference/dpkit/DurationConstraints.md b/docs/content/docs/reference/dpkit/DurationConstraints.md deleted file mode 100644 index 0786f0ee..00000000 --- a/docs/content/docs/reference/dpkit/DurationConstraints.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "DurationConstraints" ---- - -Defined in: core/build/field/types/Duration.d.ts:14 - -Duration-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] - -Defined in: core/build/field/types/Duration.d.ts:27 - -Restrict values to a specified set of durations -Should be in ISO 8601 duration format - -*** - -### maximum? - -> `optional` **maximum**: `string` - -Defined in: core/build/field/types/Duration.d.ts:22 - -Maximum allowed duration (ISO 8601 format) - -*** - -### minimum? - -> `optional` **minimum**: `string` - -Defined in: core/build/field/types/Duration.d.ts:18 - -Minimum allowed duration (ISO 8601 format) - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:47 - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:51 - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/DurationField.md b/docs/content/docs/reference/dpkit/DurationField.md deleted file mode 100644 index 2b44fc94..00000000 --- a/docs/content/docs/reference/dpkit/DurationField.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "DurationField" ---- - -Defined in: core/build/field/types/Duration.d.ts:5 - -Duration field type (ISO 8601 duration) - -## Extends - -- `BaseField`\<[`DurationConstraints`](/reference/dpkit/durationconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### constraints? - -> `optional` **constraints**: [`DurationConstraints`](/reference/dpkit/durationconstraints/) - -Defined in: core/build/field/types/Base.d.ts:38 - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: core/build/field/types/Base.d.ts:17 - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: core/build/field/types/Base.d.ts:21 - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: core/build/field/types/Base.d.ts:31 - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: core/build/field/types/Base.d.ts:9 - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: core/build/field/types/Base.d.ts:25 - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: core/build/field/types/Base.d.ts:13 - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type - -> **type**: `"duration"` - -Defined in: core/build/field/types/Duration.d.ts:9 - -Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/Field.md b/docs/content/docs/reference/dpkit/Field.md deleted file mode 100644 index de0515f4..00000000 --- a/docs/content/docs/reference/dpkit/Field.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "Field" ---- - -> **Field** = [`StringField`](/reference/dpkit/stringfield/) \| [`NumberField`](/reference/dpkit/numberfield/) \| [`IntegerField`](/reference/dpkit/integerfield/) \| [`BooleanField`](/reference/dpkit/booleanfield/) \| [`ObjectField`](/reference/dpkit/objectfield/) \| [`ArrayField`](/reference/dpkit/arrayfield/) \| [`ListField`](/reference/dpkit/listfield/) \| [`DateField`](/reference/dpkit/datefield/) \| [`TimeField`](/reference/dpkit/timefield/) \| [`DatetimeField`](/reference/dpkit/datetimefield/) \| [`YearField`](/reference/dpkit/yearfield/) \| [`YearmonthField`](/reference/dpkit/yearmonthfield/) \| [`DurationField`](/reference/dpkit/durationfield/) \| [`GeopointField`](/reference/dpkit/geopointfield/) \| [`GeojsonField`](/reference/dpkit/geojsonfield/) \| [`AnyField`](/reference/dpkit/anyfield/) - -Defined in: core/build/field/Field.d.ts:5 - -A Table Schema field diff --git a/docs/content/docs/reference/dpkit/FolderPlugin.md b/docs/content/docs/reference/dpkit/FolderPlugin.md deleted file mode 100644 index 9fb52de8..00000000 --- a/docs/content/docs/reference/dpkit/FolderPlugin.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "FolderPlugin" ---- - -Defined in: folder/build/plugin.d.ts:2 - -## Implements - -- [`Plugin`](/reference/dpkit/plugin/) - -## Constructors - -### Constructor - -> **new FolderPlugin**(): `FolderPlugin` - -#### Returns - -`FolderPlugin` - -## Methods - -### loadPackage() - -> **loadPackage**(`source`): `Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> - -Defined in: folder/build/plugin.d.ts:3 - -#### Parameters - -##### source - -`string` - -#### Returns - -`Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> - -#### Implementation of - -[`Plugin`](/reference/dpkit/plugin/).[`loadPackage`](/reference/dpkit/plugin/#loadpackage) diff --git a/docs/content/docs/reference/dpkit/ForeignKey.md b/docs/content/docs/reference/dpkit/ForeignKey.md deleted file mode 100644 index 03d8eb8f..00000000 --- a/docs/content/docs/reference/dpkit/ForeignKey.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "ForeignKey" ---- - -Defined in: core/build/schema/ForeignKey.d.ts:5 - -Foreign key definition for Table Schema -Based on the specification at https://datapackage.org/standard/table-schema/#foreign-keys - -## Properties - -### fields - -> **fields**: `string`[] - -Defined in: core/build/schema/ForeignKey.d.ts:9 - -Source field(s) in this schema - -*** - -### reference - -> **reference**: `object` - -Defined in: core/build/schema/ForeignKey.d.ts:13 - -Reference to fields in another resource - -#### fields - -> **fields**: `string`[] - -Target field(s) in the referenced resource - -#### resource? - -> `optional` **resource**: `string` - -Target resource name (optional) diff --git a/docs/content/docs/reference/dpkit/GeojsonConstraints.md b/docs/content/docs/reference/dpkit/GeojsonConstraints.md deleted file mode 100644 index e2ecefa5..00000000 --- a/docs/content/docs/reference/dpkit/GeojsonConstraints.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "GeojsonConstraints" ---- - -Defined in: core/build/field/types/Geojson.d.ts:20 - -GeoJSON-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] \| `Record`\<`string`, `any`\>[] - -Defined in: core/build/field/types/Geojson.d.ts:25 - -Restrict values to a specified set of GeoJSON objects -Serialized as strings or GeoJSON object literals - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:47 - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:51 - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/GeojsonField.md b/docs/content/docs/reference/dpkit/GeojsonField.md deleted file mode 100644 index 81eb6c9f..00000000 --- a/docs/content/docs/reference/dpkit/GeojsonField.md +++ /dev/null @@ -1,140 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "GeojsonField" ---- - -Defined in: core/build/field/types/Geojson.d.ts:5 - -GeoJSON field type - -## Extends - -- `BaseField`\<[`GeojsonConstraints`](/reference/dpkit/geojsonconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### constraints? - -> `optional` **constraints**: [`GeojsonConstraints`](/reference/dpkit/geojsonconstraints/) - -Defined in: core/build/field/types/Base.d.ts:38 - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: core/build/field/types/Base.d.ts:17 - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: core/build/field/types/Base.d.ts:21 - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### format? - -> `optional` **format**: `"default"` \| `"topojson"` - -Defined in: core/build/field/types/Geojson.d.ts:15 - -Format of the geojson -- default: standard GeoJSON -- topojson: TopoJSON format - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: core/build/field/types/Base.d.ts:31 - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: core/build/field/types/Base.d.ts:9 - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: core/build/field/types/Base.d.ts:25 - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: core/build/field/types/Base.d.ts:13 - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type - -> **type**: `"geojson"` - -Defined in: core/build/field/types/Geojson.d.ts:9 - -Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/GeopointConstraints.md b/docs/content/docs/reference/dpkit/GeopointConstraints.md deleted file mode 100644 index fe886487..00000000 --- a/docs/content/docs/reference/dpkit/GeopointConstraints.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "GeopointConstraints" ---- - -Defined in: core/build/field/types/Geopoint.d.ts:21 - -Geopoint-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] \| `number`[][] \| `Record`\<`string`, `number`\>[] - -Defined in: core/build/field/types/Geopoint.d.ts:26 - -Restrict values to a specified set of geopoints -Format depends on the field's format setting - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:47 - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:51 - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/GeopointField.md b/docs/content/docs/reference/dpkit/GeopointField.md deleted file mode 100644 index 151943b2..00000000 --- a/docs/content/docs/reference/dpkit/GeopointField.md +++ /dev/null @@ -1,141 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "GeopointField" ---- - -Defined in: core/build/field/types/Geopoint.d.ts:5 - -Geopoint field type - -## Extends - -- `BaseField`\<[`GeopointConstraints`](/reference/dpkit/geopointconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### constraints? - -> `optional` **constraints**: [`GeopointConstraints`](/reference/dpkit/geopointconstraints/) - -Defined in: core/build/field/types/Base.d.ts:38 - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: core/build/field/types/Base.d.ts:17 - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: core/build/field/types/Base.d.ts:21 - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### format? - -> `optional` **format**: `"object"` \| `"default"` \| `"array"` - -Defined in: core/build/field/types/Geopoint.d.ts:16 - -Format of the geopoint -- default: "lon,lat" string with comma separator -- array: [lon,lat] array -- object: {lon:x, lat:y} object - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: core/build/field/types/Base.d.ts:31 - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: core/build/field/types/Base.d.ts:9 - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: core/build/field/types/Base.d.ts:25 - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: core/build/field/types/Base.d.ts:13 - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type - -> **type**: `"geopoint"` - -Defined in: core/build/field/types/Geopoint.d.ts:9 - -Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/GithubLicense.md b/docs/content/docs/reference/dpkit/GithubLicense.md deleted file mode 100644 index 52240c3e..00000000 --- a/docs/content/docs/reference/dpkit/GithubLicense.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "GithubLicense" ---- - -Defined in: github/build/package/License.d.ts:4 - -GitHub repository license - -## Properties - -### key - -> **key**: `string` - -Defined in: github/build/package/License.d.ts:8 - -License key - -*** - -### name - -> **name**: `string` - -Defined in: github/build/package/License.d.ts:12 - -License name - -*** - -### spdx\_id - -> **spdx\_id**: `string` - -Defined in: github/build/package/License.d.ts:16 - -License SPDX ID - -*** - -### url - -> **url**: `string` - -Defined in: github/build/package/License.d.ts:20 - -License URL diff --git a/docs/content/docs/reference/dpkit/GithubOwner.md b/docs/content/docs/reference/dpkit/GithubOwner.md deleted file mode 100644 index f2bac26c..00000000 --- a/docs/content/docs/reference/dpkit/GithubOwner.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "GithubOwner" ---- - -Defined in: github/build/package/Owner.d.ts:4 - -GitHub repository owner - -## Properties - -### avatar\_url - -> **avatar\_url**: `string` - -Defined in: github/build/package/Owner.d.ts:16 - -Owner avatar URL - -*** - -### html\_url - -> **html\_url**: `string` - -Defined in: github/build/package/Owner.d.ts:20 - -Owner URL - -*** - -### id - -> **id**: `number` - -Defined in: github/build/package/Owner.d.ts:12 - -Owner ID - -*** - -### login - -> **login**: `string` - -Defined in: github/build/package/Owner.d.ts:8 - -Owner login name - -*** - -### type - -> **type**: `"User"` \| `"Organization"` - -Defined in: github/build/package/Owner.d.ts:24 - -Owner type (User/Organization) diff --git a/docs/content/docs/reference/dpkit/GithubPackage.md b/docs/content/docs/reference/dpkit/GithubPackage.md deleted file mode 100644 index 155dece1..00000000 --- a/docs/content/docs/reference/dpkit/GithubPackage.md +++ /dev/null @@ -1,224 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "GithubPackage" ---- - -Defined in: github/build/package/Package.d.ts:7 - -Github repository as a package - -## Properties - -### archived - -> **archived**: `boolean` - -Defined in: github/build/package/Package.d.ts:75 - -Repository is archived - -*** - -### clone\_url - -> **clone\_url**: `string` - -Defined in: github/build/package/Package.d.ts:82 - -*** - -### created\_at - -> **created\_at**: `string` - -Defined in: github/build/package/Package.d.ts:31 - -Repository creation date - -*** - -### default\_branch - -> **default\_branch**: `string` - -Defined in: github/build/package/Package.d.ts:63 - -Repository default branch - -*** - -### description - -> **description**: `null` \| `string` - -Defined in: github/build/package/Package.d.ts:27 - -Repository description - -*** - -### full\_name - -> **full\_name**: `string` - -Defined in: github/build/package/Package.d.ts:19 - -Repository full name (owner/name) - -*** - -### git\_url - -> **git\_url**: `string` - -Defined in: github/build/package/Package.d.ts:80 - -*** - -### homepage - -> **homepage**: `null` \| `string` - -Defined in: github/build/package/Package.d.ts:39 - -Repository homepage URL - -*** - -### html\_url - -> **html\_url**: `string` - -Defined in: github/build/package/Package.d.ts:79 - -Repository URLs - -*** - -### id - -> **id**: `number` - -Defined in: github/build/package/Package.d.ts:11 - -Repository identifier - -*** - -### language - -> **language**: `null` \| `string` - -Defined in: github/build/package/Package.d.ts:55 - -Repository language - -*** - -### license - -> **license**: `null` \| [`GithubLicense`](/reference/dpkit/githublicense/) - -Defined in: github/build/package/Package.d.ts:59 - -Repository license - -*** - -### name - -> **name**: `string` - -Defined in: github/build/package/Package.d.ts:15 - -Repository name - -*** - -### owner - -> **owner**: [`GithubOwner`](/reference/dpkit/githubowner/) - -Defined in: github/build/package/Package.d.ts:23 - -Repository owner - -*** - -### private - -> **private**: `boolean` - -Defined in: github/build/package/Package.d.ts:71 - -Repository is private - -*** - -### resources? - -> `optional` **resources**: [`GithubResource`](/reference/dpkit/githubresource/)[] - -Defined in: github/build/package/Package.d.ts:86 - -Repository resources - -*** - -### size - -> **size**: `number` - -Defined in: github/build/package/Package.d.ts:43 - -Repository size in KB - -*** - -### ssh\_url - -> **ssh\_url**: `string` - -Defined in: github/build/package/Package.d.ts:81 - -*** - -### stargazers\_count - -> **stargazers\_count**: `number` - -Defined in: github/build/package/Package.d.ts:47 - -Repository stars count - -*** - -### topics - -> **topics**: `string`[] - -Defined in: github/build/package/Package.d.ts:67 - -Repository topics - -*** - -### updated\_at - -> **updated\_at**: `string` - -Defined in: github/build/package/Package.d.ts:35 - -Repository update date - -*** - -### watchers\_count - -> **watchers\_count**: `number` - -Defined in: github/build/package/Package.d.ts:51 - -Repository watchers count diff --git a/docs/content/docs/reference/dpkit/GithubPlugin.md b/docs/content/docs/reference/dpkit/GithubPlugin.md deleted file mode 100644 index cc0b42f7..00000000 --- a/docs/content/docs/reference/dpkit/GithubPlugin.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "GithubPlugin" ---- - -Defined in: github/build/plugin.d.ts:2 - -## Implements - -- [`Plugin`](/reference/dpkit/plugin/) - -## Constructors - -### Constructor - -> **new GithubPlugin**(): `GithubPlugin` - -#### Returns - -`GithubPlugin` - -## Methods - -### loadPackage() - -> **loadPackage**(`source`): `Promise`\<`undefined` \| \{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> - -Defined in: github/build/plugin.d.ts:3 - -#### Parameters - -##### source - -`string` - -#### Returns - -`Promise`\<`undefined` \| \{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> - -#### Implementation of - -[`Plugin`](/reference/dpkit/plugin/).[`loadPackage`](/reference/dpkit/plugin/#loadpackage) diff --git a/docs/content/docs/reference/dpkit/GithubResource.md b/docs/content/docs/reference/dpkit/GithubResource.md deleted file mode 100644 index 88fc0265..00000000 --- a/docs/content/docs/reference/dpkit/GithubResource.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "GithubResource" ---- - -Defined in: github/build/resource/Resource.d.ts:4 - -GitHub repository file content - -## Properties - -### mode - -> **mode**: `string` - -Defined in: github/build/resource/Resource.d.ts:12 - -File mode e.g. `100755` - -*** - -### path - -> **path**: `string` - -Defined in: github/build/resource/Resource.d.ts:8 - -File path within repository - -*** - -### sha - -> **sha**: `string` - -Defined in: github/build/resource/Resource.d.ts:24 - -File SHA-1 - -*** - -### size - -> **size**: `number` - -Defined in: github/build/resource/Resource.d.ts:20 - -File size in bytes - -*** - -### type - -> **type**: `string` - -Defined in: github/build/resource/Resource.d.ts:16 - -File type e.g. `blob` - -*** - -### url - -> **url**: `string` - -Defined in: github/build/resource/Resource.d.ts:28 - -File url on GitHub API diff --git a/docs/content/docs/reference/dpkit/InferDialectOptions.md b/docs/content/docs/reference/dpkit/InferDialectOptions.md deleted file mode 100644 index 11888f26..00000000 --- a/docs/content/docs/reference/dpkit/InferDialectOptions.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "InferDialectOptions" ---- - -> **InferDialectOptions** = `object` - -Defined in: table/build/plugin.d.ts:3 - -## Properties - -### sampleBytes? - -> `optional` **sampleBytes**: `number` - -Defined in: table/build/plugin.d.ts:4 diff --git a/docs/content/docs/reference/dpkit/InferSchemaOptions.md b/docs/content/docs/reference/dpkit/InferSchemaOptions.md deleted file mode 100644 index 76360f19..00000000 --- a/docs/content/docs/reference/dpkit/InferSchemaOptions.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "InferSchemaOptions" ---- - -> **InferSchemaOptions** = `object` - -Defined in: table/build/schema/infer.d.ts:3 - -## Properties - -### commaDecimal? - -> `optional` **commaDecimal**: `boolean` - -Defined in: table/build/schema/infer.d.ts:6 - -*** - -### confidence? - -> `optional` **confidence**: `number` - -Defined in: table/build/schema/infer.d.ts:5 - -*** - -### monthFirst? - -> `optional` **monthFirst**: `boolean` - -Defined in: table/build/schema/infer.d.ts:7 - -*** - -### sampleRows? - -> `optional` **sampleRows**: `number` - -Defined in: table/build/schema/infer.d.ts:4 diff --git a/docs/content/docs/reference/dpkit/InlinePlugin.md b/docs/content/docs/reference/dpkit/InlinePlugin.md deleted file mode 100644 index d686f6c9..00000000 --- a/docs/content/docs/reference/dpkit/InlinePlugin.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "InlinePlugin" ---- - -Defined in: inline/build/plugin.d.ts:3 - -## Implements - -- [`TablePlugin`](/reference/dpkit/tableplugin/) - -## Constructors - -### Constructor - -> **new InlinePlugin**(): `InlinePlugin` - -#### Returns - -`InlinePlugin` - -## Methods - -### loadTable() - -> **loadTable**(`resource`): `Promise`\<`undefined` \| `LazyDataFrame`\> - -Defined in: inline/build/plugin.d.ts:4 - -#### Parameters - -##### resource - -[`Resource`](/reference/dpkit/resource/) - -#### Returns - -`Promise`\<`undefined` \| `LazyDataFrame`\> - -#### Implementation of - -[`TablePlugin`](/reference/dpkit/tableplugin/).[`loadTable`](/reference/dpkit/tableplugin/#loadtable) diff --git a/docs/content/docs/reference/dpkit/IntegerConstraints.md b/docs/content/docs/reference/dpkit/IntegerConstraints.md deleted file mode 100644 index 1082f76c..00000000 --- a/docs/content/docs/reference/dpkit/IntegerConstraints.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "IntegerConstraints" ---- - -Defined in: core/build/field/types/Integer.d.ts:35 - -**`Internal`** - -Integer-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] \| `number`[] - -Defined in: core/build/field/types/Integer.d.ts:56 - -Restrict values to a specified set -Can be an array of integers or strings that parse to integers - -*** - -### exclusiveMaximum? - -> `optional` **exclusiveMaximum**: `string` \| `number` - -Defined in: core/build/field/types/Integer.d.ts:51 - -Exclusive maximum allowed value - -*** - -### exclusiveMinimum? - -> `optional` **exclusiveMinimum**: `string` \| `number` - -Defined in: core/build/field/types/Integer.d.ts:47 - -Exclusive minimum allowed value - -*** - -### maximum? - -> `optional` **maximum**: `string` \| `number` - -Defined in: core/build/field/types/Integer.d.ts:43 - -Maximum allowed value - -*** - -### minimum? - -> `optional` **minimum**: `string` \| `number` - -Defined in: core/build/field/types/Integer.d.ts:39 - -Minimum allowed value - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:47 - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:51 - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/IntegerField.md b/docs/content/docs/reference/dpkit/IntegerField.md deleted file mode 100644 index 09baeb20..00000000 --- a/docs/content/docs/reference/dpkit/IntegerField.md +++ /dev/null @@ -1,169 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "IntegerField" ---- - -Defined in: core/build/field/types/Integer.d.ts:5 - -Integer field type - -## Extends - -- `BaseField`\<[`IntegerConstraints`](/reference/dpkit/integerconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### bareNumber? - -> `optional` **bareNumber**: `boolean` - -Defined in: core/build/field/types/Integer.d.ts:17 - -Whether number is presented without currency symbols or percent signs - -*** - -### categories? - -> `optional` **categories**: `number`[] \| `object`[] - -Defined in: core/build/field/types/Integer.d.ts:22 - -Categories for enum values -Can be an array of values or an array of {value, label} objects - -*** - -### categoriesOrdered? - -> `optional` **categoriesOrdered**: `boolean` - -Defined in: core/build/field/types/Integer.d.ts:29 - -Whether categories should be considered to have a natural order - -*** - -### constraints? - -> `optional` **constraints**: [`IntegerConstraints`](/reference/dpkit/integerconstraints/) - -Defined in: core/build/field/types/Base.d.ts:38 - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: core/build/field/types/Base.d.ts:17 - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: core/build/field/types/Base.d.ts:21 - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### groupChar? - -> `optional` **groupChar**: `string` - -Defined in: core/build/field/types/Integer.d.ts:13 - -Character used as thousands separator - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: core/build/field/types/Base.d.ts:31 - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: core/build/field/types/Base.d.ts:9 - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: core/build/field/types/Base.d.ts:25 - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: core/build/field/types/Base.d.ts:13 - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type - -> **type**: `"integer"` - -Defined in: core/build/field/types/Integer.d.ts:9 - -Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/License.md b/docs/content/docs/reference/dpkit/License.md deleted file mode 100644 index 1589b67c..00000000 --- a/docs/content/docs/reference/dpkit/License.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "License" ---- - -Defined in: core/build/resource/License.d.ts:4 - -License information - -## Properties - -### name? - -> `optional` **name**: `string` - -Defined in: core/build/resource/License.d.ts:9 - -The name of the license - -#### Example - -```ts -"MIT", "Apache-2.0" -``` - -*** - -### path? - -> `optional` **path**: `string` - -Defined in: core/build/resource/License.d.ts:13 - -A URL to the license text - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: core/build/resource/License.d.ts:17 - -Human-readable title of the license diff --git a/docs/content/docs/reference/dpkit/ListConstraints.md b/docs/content/docs/reference/dpkit/ListConstraints.md deleted file mode 100644 index 5d9e9f98..00000000 --- a/docs/content/docs/reference/dpkit/ListConstraints.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "ListConstraints" ---- - -Defined in: core/build/field/types/List.d.ts:22 - -List-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] \| `any`[][] - -Defined in: core/build/field/types/List.d.ts:35 - -Restrict values to a specified set of lists -Either as delimited strings or arrays - -*** - -### maxLength? - -> `optional` **maxLength**: `number` - -Defined in: core/build/field/types/List.d.ts:30 - -Maximum number of list items - -*** - -### minLength? - -> `optional` **minLength**: `number` - -Defined in: core/build/field/types/List.d.ts:26 - -Minimum number of list items - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:47 - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:51 - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/ListField.md b/docs/content/docs/reference/dpkit/ListField.md deleted file mode 100644 index bc566887..00000000 --- a/docs/content/docs/reference/dpkit/ListField.md +++ /dev/null @@ -1,148 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "ListField" ---- - -Defined in: core/build/field/types/List.d.ts:5 - -List field type (primitive values ordered collection) - -## Extends - -- `BaseField`\<[`ListConstraints`](/reference/dpkit/listconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### constraints? - -> `optional` **constraints**: [`ListConstraints`](/reference/dpkit/listconstraints/) - -Defined in: core/build/field/types/Base.d.ts:38 - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### delimiter? - -> `optional` **delimiter**: `string` - -Defined in: core/build/field/types/List.d.ts:13 - -Character used to separate values in the list - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: core/build/field/types/Base.d.ts:17 - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: core/build/field/types/Base.d.ts:21 - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### itemType? - -> `optional` **itemType**: `"string"` \| `"number"` \| `"boolean"` \| `"integer"` \| `"datetime"` \| `"date"` \| `"time"` - -Defined in: core/build/field/types/List.d.ts:17 - -Type of items in the list - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: core/build/field/types/Base.d.ts:31 - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: core/build/field/types/Base.d.ts:9 - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: core/build/field/types/Base.d.ts:25 - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: core/build/field/types/Base.d.ts:13 - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type - -> **type**: `"list"` - -Defined in: core/build/field/types/List.d.ts:9 - -Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/Metadata.md b/docs/content/docs/reference/dpkit/Metadata.md deleted file mode 100644 index 5c7a1216..00000000 --- a/docs/content/docs/reference/dpkit/Metadata.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "Metadata" ---- - -> **Metadata** = `` { [key in `${string}:${string}`]: any } `` - -Defined in: core/build/general/metadata/Metadata.d.ts:1 diff --git a/docs/content/docs/reference/dpkit/MetadataError.md b/docs/content/docs/reference/dpkit/MetadataError.md deleted file mode 100644 index 1b98ef9b..00000000 --- a/docs/content/docs/reference/dpkit/MetadataError.md +++ /dev/null @@ -1,130 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "MetadataError" ---- - -Defined in: core/build/general/Error.d.ts:5 - -A descriptor error - -## Extends - -- `ErrorObject` - -## Properties - -### data? - -> `optional` **data**: `unknown` - -Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:83 - -#### Inherited from - -`ErrorObject.data` - -*** - -### instancePath - -> **instancePath**: `string` - -Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:76 - -#### Inherited from - -`ErrorObject.instancePath` - -*** - -### keyword - -> **keyword**: `string` - -Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:75 - -#### Inherited from - -`ErrorObject.keyword` - -*** - -### message? - -> `optional` **message**: `string` - -Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:80 - -#### Inherited from - -`ErrorObject.message` - -*** - -### params - -> **params**: `P` - -Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:78 - -#### Inherited from - -`ErrorObject.params` - -*** - -### parentSchema? - -> `optional` **parentSchema**: `AnySchemaObject` - -Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:82 - -#### Inherited from - -`ErrorObject.parentSchema` - -*** - -### propertyName? - -> `optional` **propertyName**: `string` - -Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:79 - -#### Inherited from - -`ErrorObject.propertyName` - -*** - -### schema? - -> `optional` **schema**: `unknown` - -Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:81 - -#### Inherited from - -`ErrorObject.schema` - -*** - -### schemaPath - -> **schemaPath**: `string` - -Defined in: node\_modules/.pnpm/ajv@8.17.1/node\_modules/ajv/dist/types/index.d.ts:77 - -#### Inherited from - -`ErrorObject.schemaPath` - -*** - -### type - -> **type**: `"metadata"` - -Defined in: core/build/general/Error.d.ts:6 diff --git a/docs/content/docs/reference/dpkit/NumberConstraints.md b/docs/content/docs/reference/dpkit/NumberConstraints.md deleted file mode 100644 index 5cab828a..00000000 --- a/docs/content/docs/reference/dpkit/NumberConstraints.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "NumberConstraints" ---- - -Defined in: core/build/field/types/Number.d.ts:26 - -Number-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] \| `number`[] - -Defined in: core/build/field/types/Number.d.ts:47 - -Restrict values to a specified set -Can be an array of numbers or strings that parse to numbers - -*** - -### exclusiveMaximum? - -> `optional` **exclusiveMaximum**: `string` \| `number` - -Defined in: core/build/field/types/Number.d.ts:42 - -Exclusive maximum allowed value - -*** - -### exclusiveMinimum? - -> `optional` **exclusiveMinimum**: `string` \| `number` - -Defined in: core/build/field/types/Number.d.ts:38 - -Exclusive minimum allowed value - -*** - -### maximum? - -> `optional` **maximum**: `string` \| `number` - -Defined in: core/build/field/types/Number.d.ts:34 - -Maximum allowed value - -*** - -### minimum? - -> `optional` **minimum**: `string` \| `number` - -Defined in: core/build/field/types/Number.d.ts:30 - -Minimum allowed value - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:47 - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:51 - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/NumberField.md b/docs/content/docs/reference/dpkit/NumberField.md deleted file mode 100644 index da28f41d..00000000 --- a/docs/content/docs/reference/dpkit/NumberField.md +++ /dev/null @@ -1,158 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "NumberField" ---- - -Defined in: core/build/field/types/Number.d.ts:5 - -Number field type - -## Extends - -- `BaseField`\<[`NumberConstraints`](/reference/dpkit/numberconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### bareNumber? - -> `optional` **bareNumber**: `boolean` - -Defined in: core/build/field/types/Number.d.ts:21 - -Whether number is presented without currency symbols or percent signs - -*** - -### constraints? - -> `optional` **constraints**: [`NumberConstraints`](/reference/dpkit/numberconstraints/) - -Defined in: core/build/field/types/Base.d.ts:38 - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### decimalChar? - -> `optional` **decimalChar**: `string` - -Defined in: core/build/field/types/Number.d.ts:13 - -Character used as decimal separator - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: core/build/field/types/Base.d.ts:17 - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: core/build/field/types/Base.d.ts:21 - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### groupChar? - -> `optional` **groupChar**: `string` - -Defined in: core/build/field/types/Number.d.ts:17 - -Character used as thousands separator - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: core/build/field/types/Base.d.ts:31 - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: core/build/field/types/Base.d.ts:9 - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: core/build/field/types/Base.d.ts:25 - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: core/build/field/types/Base.d.ts:13 - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type - -> **type**: `"number"` - -Defined in: core/build/field/types/Number.d.ts:9 - -Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/ObjectConstraints.md b/docs/content/docs/reference/dpkit/ObjectConstraints.md deleted file mode 100644 index 52452030..00000000 --- a/docs/content/docs/reference/dpkit/ObjectConstraints.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "ObjectConstraints" ---- - -Defined in: core/build/field/types/Object.d.ts:14 - -Object-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] \| `Record`\<`string`, `any`\>[] - -Defined in: core/build/field/types/Object.d.ts:31 - -Restrict values to a specified set of objects -Serialized as JSON strings or object literals - -*** - -### jsonSchema? - -> `optional` **jsonSchema**: `Record`\<`string`, `any`\> - -Defined in: core/build/field/types/Object.d.ts:26 - -JSON Schema object for validating the object structure and properties - -*** - -### maxLength? - -> `optional` **maxLength**: `number` - -Defined in: core/build/field/types/Object.d.ts:22 - -Maximum number of properties - -*** - -### minLength? - -> `optional` **minLength**: `number` - -Defined in: core/build/field/types/Object.d.ts:18 - -Minimum number of properties - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:47 - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:51 - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/ObjectField.md b/docs/content/docs/reference/dpkit/ObjectField.md deleted file mode 100644 index cc431bdd..00000000 --- a/docs/content/docs/reference/dpkit/ObjectField.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "ObjectField" ---- - -Defined in: core/build/field/types/Object.d.ts:5 - -Object field type (serialized JSON object) - -## Extends - -- `BaseField`\<[`ObjectConstraints`](/reference/dpkit/objectconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### constraints? - -> `optional` **constraints**: [`ObjectConstraints`](/reference/dpkit/objectconstraints/) - -Defined in: core/build/field/types/Base.d.ts:38 - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: core/build/field/types/Base.d.ts:17 - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: core/build/field/types/Base.d.ts:21 - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: core/build/field/types/Base.d.ts:31 - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: core/build/field/types/Base.d.ts:9 - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: core/build/field/types/Base.d.ts:25 - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: core/build/field/types/Base.d.ts:13 - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type - -> **type**: `"object"` - -Defined in: core/build/field/types/Object.d.ts:9 - -Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/Package.md b/docs/content/docs/reference/dpkit/Package.md deleted file mode 100644 index 71cab9ce..00000000 --- a/docs/content/docs/reference/dpkit/Package.md +++ /dev/null @@ -1,168 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "Package" ---- - -Defined in: core/build/package/Package.d.ts:8 - -Data Package interface built on top of the Frictionless Data specification - -## See - -https://datapackage.org/standard/data-package/ - -## Extends - -- [`Metadata`](/reference/dpkit/metadata/) - -## Extended by - -- [`CamtrapPackage`](/reference/dpkit/camtrappackage/) -- [`CamtrapPackage`](/reference/_dpkit/camtrap/camtrappackage/) - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### $schema? - -> `optional` **$schema**: `string` - -Defined in: core/build/package/Package.d.ts:21 - -Package schema URL for validation - -*** - -### contributors? - -> `optional` **contributors**: [`Contributor`](/reference/dpkit/contributor/)[] - -Defined in: core/build/package/Package.d.ts:46 - -List of contributors - -*** - -### created? - -> `optional` **created**: `string` - -Defined in: core/build/package/Package.d.ts:59 - -Create time of the package - -#### Format - -ISO 8601 format - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: core/build/package/Package.d.ts:29 - -A description of the package - -*** - -### homepage? - -> `optional` **homepage**: `string` - -Defined in: core/build/package/Package.d.ts:33 - -A URL for the home page of the package - -*** - -### image? - -> `optional` **image**: `string` - -Defined in: core/build/package/Package.d.ts:63 - -Package image - -*** - -### keywords? - -> `optional` **keywords**: `string`[] - -Defined in: core/build/package/Package.d.ts:54 - -Keywords for the package - -*** - -### licenses? - -> `optional` **licenses**: [`License`](/reference/dpkit/license/)[] - -Defined in: core/build/package/Package.d.ts:42 - -License information - -*** - -### name? - -> `optional` **name**: `string` - -Defined in: core/build/package/Package.d.ts:17 - -Unique package identifier -Should use lowercase alphanumeric characters, periods, hyphens, and underscores - -*** - -### resources - -> **resources**: [`Resource`](/reference/dpkit/resource/)[] - -Defined in: core/build/package/Package.d.ts:12 - -Data resources in this package (required) - -*** - -### sources? - -> `optional` **sources**: [`Source`](/reference/dpkit/source/)[] - -Defined in: core/build/package/Package.d.ts:50 - -Data sources for this package - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: core/build/package/Package.d.ts:25 - -Human-readable title - -*** - -### version? - -> `optional` **version**: `string` - -Defined in: core/build/package/Package.d.ts:38 - -Version of the package using SemVer - -#### Example - -```ts -"1.0.0" -``` diff --git a/docs/content/docs/reference/dpkit/Plugin.md b/docs/content/docs/reference/dpkit/Plugin.md deleted file mode 100644 index 8b1d3f00..00000000 --- a/docs/content/docs/reference/dpkit/Plugin.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "Plugin" ---- - -Defined in: core/build/plugin.d.ts:2 - -## Extended by - -- [`TablePlugin`](/reference/dpkit/tableplugin/) -- [`TablePlugin`](/reference/_dpkit/table/tableplugin/) - -## Methods - -### loadPackage()? - -> `optional` **loadPackage**(`source`): `Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> - -Defined in: core/build/plugin.d.ts:3 - -#### Parameters - -##### source - -`string` - -#### Returns - -`Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> - -*** - -### savePackage()? - -> `optional` **savePackage**(`dataPackage`, `options`): `Promise`\<`undefined` \| \{ `path?`: `string`; \}\> - -Defined in: core/build/plugin.d.ts:4 - -#### Parameters - -##### dataPackage - -[`Package`](/reference/dpkit/package/) - -##### options - -###### target - -`string` - -###### withRemote? - -`boolean` - -#### Returns - -`Promise`\<`undefined` \| \{ `path?`: `string`; \}\> diff --git a/docs/content/docs/reference/dpkit/PolarsField.md b/docs/content/docs/reference/dpkit/PolarsField.md deleted file mode 100644 index bcb5a207..00000000 --- a/docs/content/docs/reference/dpkit/PolarsField.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "PolarsField" ---- - -> **PolarsField** = `object` - -Defined in: table/build/field/Field.d.ts:2 - -## Properties - -### name - -> **name**: `string` - -Defined in: table/build/field/Field.d.ts:3 - -*** - -### type - -> **type**: `DataType` - -Defined in: table/build/field/Field.d.ts:4 diff --git a/docs/content/docs/reference/dpkit/PolarsSchema.md b/docs/content/docs/reference/dpkit/PolarsSchema.md deleted file mode 100644 index 39bacb1f..00000000 --- a/docs/content/docs/reference/dpkit/PolarsSchema.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "PolarsSchema" ---- - -Defined in: table/build/schema/Schema.d.ts:3 - -## Properties - -### fields - -> **fields**: [`PolarsField`](/reference/dpkit/polarsfield/)[] - -Defined in: table/build/schema/Schema.d.ts:4 diff --git a/docs/content/docs/reference/dpkit/Resource.md b/docs/content/docs/reference/dpkit/Resource.md deleted file mode 100644 index 7ca1d9ce..00000000 --- a/docs/content/docs/reference/dpkit/Resource.md +++ /dev/null @@ -1,209 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "Resource" ---- - -Defined in: core/build/resource/Resource.d.ts:10 - -Data Resource interface built on top of the Data Package standard and Polars DataFrames - -## See - -https://datapackage.org/standard/data-resource/ - -## Extends - -- [`Metadata`](/reference/dpkit/metadata/) - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### bytes? - -> `optional` **bytes**: `number` - -Defined in: core/build/resource/Resource.d.ts:57 - -Size of the file in bytes - -*** - -### data? - -> `optional` **data**: `unknown` - -Defined in: core/build/resource/Resource.d.ts:25 - -Inline data content instead of referencing an external file -Either path or data must be provided - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: core/build/resource/Resource.d.ts:53 - -A description of the resource - -*** - -### dialect? - -> `optional` **dialect**: `string` \| [`Dialect`](/reference/dpkit/dialect/) - -Defined in: core/build/resource/Resource.d.ts:75 - -Table dialect specification -Describes delimiters, quote characters, etc. - -#### See - -https://datapackage.org/standard/table-dialect/ - -*** - -### encoding? - -> `optional` **encoding**: `string` - -Defined in: core/build/resource/Resource.d.ts:45 - -Character encoding of the resource - -#### Default - -```ts -"utf-8" -``` - -*** - -### format? - -> `optional` **format**: `string` - -Defined in: core/build/resource/Resource.d.ts:35 - -The file format - -#### Example - -```ts -"csv", "json", "xlsx" -``` - -*** - -### hash? - -> `optional` **hash**: `string` - -Defined in: core/build/resource/Resource.d.ts:61 - -Hash of the resource data - -*** - -### licenses? - -> `optional` **licenses**: [`License`](/reference/dpkit/license/)[] - -Defined in: core/build/resource/Resource.d.ts:69 - -License information - -*** - -### mediatype? - -> `optional` **mediatype**: `string` - -Defined in: core/build/resource/Resource.d.ts:40 - -The media type of the resource - -#### Example - -```ts -"text/csv", "application/json" -``` - -*** - -### name - -> **name**: `string` - -Defined in: core/build/resource/Resource.d.ts:15 - -Unique resource identifier -Should use lowercase alphanumeric characters, periods, hyphens, and underscores - -*** - -### path? - -> `optional` **path**: `string` \| `string`[] - -Defined in: core/build/resource/Resource.d.ts:20 - -A reference to the data itself, can be a path URL or array of paths -Either path or data must be provided - -*** - -### schema? - -> `optional` **schema**: `string` \| [`Schema`](/reference/dpkit/schema/) - -Defined in: core/build/resource/Resource.d.ts:81 - -Schema for the tabular data -Describes fields in the table, constraints, etc. - -#### See - -https://datapackage.org/standard/table-schema/ - -*** - -### sources? - -> `optional` **sources**: [`Source`](/reference/dpkit/source/)[] - -Defined in: core/build/resource/Resource.d.ts:65 - -Data sources - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: core/build/resource/Resource.d.ts:49 - -Human-readable title - -*** - -### type? - -> `optional` **type**: `"table"` - -Defined in: core/build/resource/Resource.d.ts:30 - -The resource type - -#### Example - -```ts -"table" -``` diff --git a/docs/content/docs/reference/dpkit/SaveTableOptions.md b/docs/content/docs/reference/dpkit/SaveTableOptions.md deleted file mode 100644 index 890b70c7..00000000 --- a/docs/content/docs/reference/dpkit/SaveTableOptions.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "SaveTableOptions" ---- - -> **SaveTableOptions** = `object` - -Defined in: table/build/plugin.d.ts:6 - -## Properties - -### dialect? - -> `optional` **dialect**: [`Dialect`](/reference/dpkit/dialect/) - -Defined in: table/build/plugin.d.ts:8 - -*** - -### path - -> **path**: `string` - -Defined in: table/build/plugin.d.ts:7 diff --git a/docs/content/docs/reference/dpkit/Schema.md b/docs/content/docs/reference/dpkit/Schema.md deleted file mode 100644 index 8afa96ec..00000000 --- a/docs/content/docs/reference/dpkit/Schema.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "Schema" ---- - -Defined in: core/build/schema/Schema.d.ts:8 - -Table Schema definition -Based on the specification at https://datapackage.org/standard/table-schema/ - -## Extends - -- [`Metadata`](/reference/dpkit/metadata/) - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### $schema? - -> `optional` **$schema**: `string` - -Defined in: core/build/schema/Schema.d.ts:16 - -URL of schema (optional) - -*** - -### fields - -> **fields**: [`Field`](/reference/dpkit/field/)[] - -Defined in: core/build/schema/Schema.d.ts:12 - -Fields in this schema (required) - -*** - -### fieldsMatch? - -> `optional` **fieldsMatch**: `"exact"` \| `"equal"` \| `"subset"` \| `"superset"` \| `"partial"` - -Defined in: core/build/schema/Schema.d.ts:21 - -Field matching rule (optional) -Default: "exact" - -*** - -### foreignKeys? - -> `optional` **foreignKeys**: [`ForeignKey`](/reference/dpkit/foreignkey/)[] - -Defined in: core/build/schema/Schema.d.ts:43 - -Foreign key relationships (optional) - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: core/build/schema/Schema.d.ts:28 - -Values representing missing data (optional) -Default: [""] -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -*** - -### primaryKey? - -> `optional` **primaryKey**: `string`[] - -Defined in: core/build/schema/Schema.d.ts:35 - -Fields uniquely identifying each row (optional) - -*** - -### uniqueKeys? - -> `optional` **uniqueKeys**: `string`[][] - -Defined in: core/build/schema/Schema.d.ts:39 - -Field combinations that must be unique (optional) diff --git a/docs/content/docs/reference/dpkit/Source.md b/docs/content/docs/reference/dpkit/Source.md deleted file mode 100644 index 9ff19983..00000000 --- a/docs/content/docs/reference/dpkit/Source.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "Source" ---- - -Defined in: core/build/resource/Source.d.ts:4 - -Source information - -## Properties - -### email? - -> `optional` **email**: `string` - -Defined in: core/build/resource/Source.d.ts:16 - -Email contact for the source - -*** - -### path? - -> `optional` **path**: `string` - -Defined in: core/build/resource/Source.d.ts:12 - -URL or path to the source - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: core/build/resource/Source.d.ts:8 - -Human-readable title of the source diff --git a/docs/content/docs/reference/dpkit/StringConstraints.md b/docs/content/docs/reference/dpkit/StringConstraints.md deleted file mode 100644 index ec523057..00000000 --- a/docs/content/docs/reference/dpkit/StringConstraints.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "StringConstraints" ---- - -Defined in: core/build/field/types/String.d.ts:35 - -String-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] - -Defined in: core/build/field/types/String.d.ts:51 - -Restrict values to a specified set of strings - -*** - -### maxLength? - -> `optional` **maxLength**: `number` - -Defined in: core/build/field/types/String.d.ts:43 - -Maximum string length - -*** - -### minLength? - -> `optional` **minLength**: `number` - -Defined in: core/build/field/types/String.d.ts:39 - -Minimum string length - -*** - -### pattern? - -> `optional` **pattern**: `string` - -Defined in: core/build/field/types/String.d.ts:47 - -Regular expression pattern to match - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:47 - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:51 - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/StringField.md b/docs/content/docs/reference/dpkit/StringField.md deleted file mode 100644 index 5c18d63b..00000000 --- a/docs/content/docs/reference/dpkit/StringField.md +++ /dev/null @@ -1,164 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "StringField" ---- - -Defined in: core/build/field/types/String.d.ts:5 - -String field type - -## Extends - -- `BaseField`\<[`StringConstraints`](/reference/dpkit/stringconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### categories? - -> `optional` **categories**: `string`[] \| `object`[] - -Defined in: core/build/field/types/String.d.ts:23 - -Categories for enum values -Can be an array of string values or an array of {value, label} objects - -*** - -### categoriesOrdered? - -> `optional` **categoriesOrdered**: `boolean` - -Defined in: core/build/field/types/String.d.ts:30 - -Whether categories should be considered to have a natural order - -*** - -### constraints? - -> `optional` **constraints**: [`StringConstraints`](/reference/dpkit/stringconstraints/) - -Defined in: core/build/field/types/Base.d.ts:38 - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: core/build/field/types/Base.d.ts:17 - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: core/build/field/types/Base.d.ts:21 - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### format? - -> `optional` **format**: `string` - -Defined in: core/build/field/types/String.d.ts:18 - -Format of the string -- default: any valid string -- email: valid email address -- uri: valid URI -- binary: base64 encoded string -- uuid: valid UUID string - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: core/build/field/types/Base.d.ts:31 - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: core/build/field/types/Base.d.ts:9 - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: core/build/field/types/Base.d.ts:25 - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: core/build/field/types/Base.d.ts:13 - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type - -> **type**: `"string"` - -Defined in: core/build/field/types/String.d.ts:9 - -Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/Table.md b/docs/content/docs/reference/dpkit/Table.md deleted file mode 100644 index eca54474..00000000 --- a/docs/content/docs/reference/dpkit/Table.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "Table" ---- - -> **Table** = `LazyDataFrame` - -Defined in: table/build/table/Table.d.ts:2 diff --git a/docs/content/docs/reference/dpkit/TableError.md b/docs/content/docs/reference/dpkit/TableError.md deleted file mode 100644 index dfc4625b..00000000 --- a/docs/content/docs/reference/dpkit/TableError.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "TableError" ---- - -> **TableError** = `FieldsMissingError` \| `FieldsExtraError` \| `FieldNameError` \| `FieldTypeError` \| `RowUniqueError` \| `CellTypeError` \| `CellRequiredError` \| `CellMinimumError` \| `CellMaximumError` \| `CellExclusiveMinimumError` \| `CellExclusiveMaximumError` \| `CellMinLengthError` \| `CellMaxLengthError` \| `CellPatternError` \| `CellUniqueError` \| `CellEnumError` - -Defined in: table/build/error/Table.d.ts:5 diff --git a/docs/content/docs/reference/dpkit/TablePlugin.md b/docs/content/docs/reference/dpkit/TablePlugin.md deleted file mode 100644 index 2b995334..00000000 --- a/docs/content/docs/reference/dpkit/TablePlugin.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "TablePlugin" ---- - -Defined in: table/build/plugin.d.ts:10 - -## Extends - -- [`Plugin`](/reference/dpkit/plugin/) - -## Methods - -### inferDialect()? - -> `optional` **inferDialect**(`resource`, `options?`): `Promise`\<`undefined` \| [`Dialect`](/reference/dpkit/dialect/)\> - -Defined in: table/build/plugin.d.ts:11 - -#### Parameters - -##### resource - -`Partial`\<[`Resource`](/reference/dpkit/resource/)\> - -##### options? - -[`InferDialectOptions`](/reference/dpkit/inferdialectoptions/) - -#### Returns - -`Promise`\<`undefined` \| [`Dialect`](/reference/dpkit/dialect/)\> - -*** - -### loadPackage()? - -> `optional` **loadPackage**(`source`): `Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> - -Defined in: core/build/plugin.d.ts:3 - -#### Parameters - -##### source - -`string` - -#### Returns - -`Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> - -#### Inherited from - -[`Plugin`](/reference/dpkit/plugin/).[`loadPackage`](/reference/dpkit/plugin/#loadpackage) - -*** - -### loadTable()? - -> `optional` **loadTable**(`resource`): `Promise`\<`undefined` \| `LazyDataFrame`\> - -Defined in: table/build/plugin.d.ts:12 - -#### Parameters - -##### resource - -`Partial`\<[`Resource`](/reference/dpkit/resource/)\> - -#### Returns - -`Promise`\<`undefined` \| `LazyDataFrame`\> - -*** - -### savePackage()? - -> `optional` **savePackage**(`dataPackage`, `options`): `Promise`\<`undefined` \| \{ `path?`: `string`; \}\> - -Defined in: core/build/plugin.d.ts:4 - -#### Parameters - -##### dataPackage - -[`Package`](/reference/dpkit/package/) - -##### options - -###### target - -`string` - -###### withRemote? - -`boolean` - -#### Returns - -`Promise`\<`undefined` \| \{ `path?`: `string`; \}\> - -#### Inherited from - -[`Plugin`](/reference/dpkit/plugin/).[`savePackage`](/reference/dpkit/plugin/#savepackage) - -*** - -### saveTable()? - -> `optional` **saveTable**(`table`, `options`): `Promise`\<`undefined` \| `string`\> - -Defined in: table/build/plugin.d.ts:13 - -#### Parameters - -##### table - -`LazyDataFrame` - -##### options - -[`SaveTableOptions`](/reference/dpkit/savetableoptions/) - -#### Returns - -`Promise`\<`undefined` \| `string`\> diff --git a/docs/content/docs/reference/dpkit/TimeConstraints.md b/docs/content/docs/reference/dpkit/TimeConstraints.md deleted file mode 100644 index 3ea1731c..00000000 --- a/docs/content/docs/reference/dpkit/TimeConstraints.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "TimeConstraints" ---- - -Defined in: core/build/field/types/Time.d.ts:21 - -Time-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] - -Defined in: core/build/field/types/Time.d.ts:34 - -Restrict values to a specified set of times -Should be in string time format (e.g., "HH:MM:SS") - -*** - -### maximum? - -> `optional` **maximum**: `string` - -Defined in: core/build/field/types/Time.d.ts:29 - -Maximum allowed time value - -*** - -### minimum? - -> `optional` **minimum**: `string` - -Defined in: core/build/field/types/Time.d.ts:25 - -Minimum allowed time value - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:47 - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:51 - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/TimeField.md b/docs/content/docs/reference/dpkit/TimeField.md deleted file mode 100644 index a4b586d3..00000000 --- a/docs/content/docs/reference/dpkit/TimeField.md +++ /dev/null @@ -1,141 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "TimeField" ---- - -Defined in: core/build/field/types/Time.d.ts:5 - -Time field type - -## Extends - -- `BaseField`\<[`TimeConstraints`](/reference/dpkit/timeconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### constraints? - -> `optional` **constraints**: [`TimeConstraints`](/reference/dpkit/timeconstraints/) - -Defined in: core/build/field/types/Base.d.ts:38 - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: core/build/field/types/Base.d.ts:17 - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: core/build/field/types/Base.d.ts:21 - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### format? - -> `optional` **format**: `string` - -Defined in: core/build/field/types/Time.d.ts:16 - -Format of the time -- default: HH:MM:SS -- any: flexible time parsing (not recommended) -- Or custom strptime/strftime format string - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: core/build/field/types/Base.d.ts:31 - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: core/build/field/types/Base.d.ts:9 - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: core/build/field/types/Base.d.ts:25 - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: core/build/field/types/Base.d.ts:13 - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type - -> **type**: `"time"` - -Defined in: core/build/field/types/Time.d.ts:9 - -Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/YearConstraints.md b/docs/content/docs/reference/dpkit/YearConstraints.md deleted file mode 100644 index 45fab8e3..00000000 --- a/docs/content/docs/reference/dpkit/YearConstraints.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "YearConstraints" ---- - -Defined in: core/build/field/types/Year.d.ts:14 - -Year-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] \| `number`[] - -Defined in: core/build/field/types/Year.d.ts:27 - -Restrict values to a specified set of years -Can be an array of numbers or strings that parse to years - -*** - -### maximum? - -> `optional` **maximum**: `number` - -Defined in: core/build/field/types/Year.d.ts:22 - -Maximum allowed year - -*** - -### minimum? - -> `optional` **minimum**: `number` - -Defined in: core/build/field/types/Year.d.ts:18 - -Minimum allowed year - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:47 - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:51 - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/YearField.md b/docs/content/docs/reference/dpkit/YearField.md deleted file mode 100644 index e5704dde..00000000 --- a/docs/content/docs/reference/dpkit/YearField.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "YearField" ---- - -Defined in: core/build/field/types/Year.d.ts:5 - -Year field type - -## Extends - -- `BaseField`\<[`YearConstraints`](/reference/dpkit/yearconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### constraints? - -> `optional` **constraints**: [`YearConstraints`](/reference/dpkit/yearconstraints/) - -Defined in: core/build/field/types/Base.d.ts:38 - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: core/build/field/types/Base.d.ts:17 - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: core/build/field/types/Base.d.ts:21 - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: core/build/field/types/Base.d.ts:31 - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: core/build/field/types/Base.d.ts:9 - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: core/build/field/types/Base.d.ts:25 - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: core/build/field/types/Base.d.ts:13 - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type - -> **type**: `"year"` - -Defined in: core/build/field/types/Year.d.ts:9 - -Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/YearmonthConstraints.md b/docs/content/docs/reference/dpkit/YearmonthConstraints.md deleted file mode 100644 index d064d0bc..00000000 --- a/docs/content/docs/reference/dpkit/YearmonthConstraints.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "YearmonthConstraints" ---- - -Defined in: core/build/field/types/Yearmonth.d.ts:14 - -Yearmonth-specific constraints - -## Extends - -- `BaseConstraints` - -## Properties - -### enum? - -> `optional` **enum**: `string`[] - -Defined in: core/build/field/types/Yearmonth.d.ts:27 - -Restrict values to a specified set of yearmonths -Should be in string format (e.g., "YYYY-MM") - -*** - -### maximum? - -> `optional` **maximum**: `string` - -Defined in: core/build/field/types/Yearmonth.d.ts:22 - -Maximum allowed yearmonth value (format: YYYY-MM) - -*** - -### minimum? - -> `optional` **minimum**: `string` - -Defined in: core/build/field/types/Yearmonth.d.ts:18 - -Minimum allowed yearmonth value (format: YYYY-MM) - -*** - -### required? - -> `optional` **required**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:47 - -Indicates if field is allowed to be null/empty - -#### Inherited from - -`BaseConstraints.required` - -*** - -### unique? - -> `optional` **unique**: `boolean` - -Defined in: core/build/field/types/Base.d.ts:51 - -Indicates if values must be unique within the column - -#### Inherited from - -`BaseConstraints.unique` diff --git a/docs/content/docs/reference/dpkit/YearmonthField.md b/docs/content/docs/reference/dpkit/YearmonthField.md deleted file mode 100644 index aa0db045..00000000 --- a/docs/content/docs/reference/dpkit/YearmonthField.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "YearmonthField" ---- - -Defined in: core/build/field/types/Yearmonth.d.ts:5 - -Year and month field type - -## Extends - -- `BaseField`\<[`YearmonthConstraints`](/reference/dpkit/yearmonthconstraints/)\> - -## Indexable - -\[`key`: `` `${string}:${string}` ``\]: `any` - -## Properties - -### constraints? - -> `optional` **constraints**: [`YearmonthConstraints`](/reference/dpkit/yearmonthconstraints/) - -Defined in: core/build/field/types/Base.d.ts:38 - -Validation constraints applied to values - -#### Inherited from - -`BaseField.constraints` - -*** - -### description? - -> `optional` **description**: `string` - -Defined in: core/build/field/types/Base.d.ts:17 - -Human-readable description - -#### Inherited from - -`BaseField.description` - -*** - -### example? - -> `optional` **example**: `any` - -Defined in: core/build/field/types/Base.d.ts:21 - -Example value for this field - -#### Inherited from - -`BaseField.example` - -*** - -### missingValues? - -> `optional` **missingValues**: (`string` \| \{ `label`: `string`; `value`: `string`; \})[] - -Defined in: core/build/field/types/Base.d.ts:31 - -Values representing missing data for this field -Can be a simple array of strings or an array of {value, label} objects -where label provides context for why the data is missing - -#### Inherited from - -`BaseField.missingValues` - -*** - -### name - -> **name**: `string` - -Defined in: core/build/field/types/Base.d.ts:9 - -Name of the field matching the column name - -#### Inherited from - -`BaseField.name` - -*** - -### rdfType? - -> `optional` **rdfType**: `string` - -Defined in: core/build/field/types/Base.d.ts:25 - -URI for semantic type (RDF) - -#### Inherited from - -`BaseField.rdfType` - -*** - -### title? - -> `optional` **title**: `string` - -Defined in: core/build/field/types/Base.d.ts:13 - -Human-readable title - -#### Inherited from - -`BaseField.title` - -*** - -### type - -> **type**: `"yearmonth"` - -Defined in: core/build/field/types/Yearmonth.d.ts:9 - -Field type - discriminator property diff --git a/docs/content/docs/reference/dpkit/ZenodoCreator.md b/docs/content/docs/reference/dpkit/ZenodoCreator.md deleted file mode 100644 index e66d6424..00000000 --- a/docs/content/docs/reference/dpkit/ZenodoCreator.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "ZenodoCreator" ---- - -Defined in: zenodo/build/package/Creator.d.ts:4 - -Zenodo Creator interface - -## Properties - -### affiliation? - -> `optional` **affiliation**: `string` - -Defined in: zenodo/build/package/Creator.d.ts:12 - -Creator affiliation - -*** - -### identifiers? - -> `optional` **identifiers**: `object`[] - -Defined in: zenodo/build/package/Creator.d.ts:16 - -Creator identifiers (e.g., ORCID) - -#### identifier - -> **identifier**: `string` - -#### scheme - -> **scheme**: `string` - -*** - -### name - -> **name**: `string` - -Defined in: zenodo/build/package/Creator.d.ts:8 - -Creator name (format: Family name, Given names) diff --git a/docs/content/docs/reference/dpkit/ZenodoPackage.md b/docs/content/docs/reference/dpkit/ZenodoPackage.md deleted file mode 100644 index 06f7dd9b..00000000 --- a/docs/content/docs/reference/dpkit/ZenodoPackage.md +++ /dev/null @@ -1,170 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "ZenodoPackage" ---- - -Defined in: zenodo/build/package/Package.d.ts:6 - -Zenodo Deposit interface - -## Properties - -### files - -> **files**: [`ZenodoResource`](/reference/dpkit/zenodoresource/)[] - -Defined in: zenodo/build/package/Package.d.ts:85 - -Files associated with the deposit - -*** - -### id - -> **id**: `number` - -Defined in: zenodo/build/package/Package.d.ts:10 - -Deposit identifier - -*** - -### links - -> **links**: `object` - -Defined in: zenodo/build/package/Package.d.ts:14 - -Deposit URL - -#### bucket - -> **bucket**: `string` - -#### discard? - -> `optional` **discard**: `string` - -#### edit? - -> `optional` **edit**: `string` - -#### files - -> **files**: `string` - -#### html - -> **html**: `string` - -#### publish? - -> `optional` **publish**: `string` - -#### self - -> **self**: `string` - -*** - -### metadata - -> **metadata**: `object` - -Defined in: zenodo/build/package/Package.d.ts:26 - -Deposit metadata - -#### access\_right? - -> `optional` **access\_right**: `string` - -Access right, e.g., "open", "embargoed", "restricted", "closed" - -#### communities? - -> `optional` **communities**: `object`[] - -Communities the deposit belongs to - -#### creators - -> **creators**: [`ZenodoCreator`](/reference/dpkit/zenodocreator/)[] - -Creators of the deposit - -#### description - -> **description**: `string` - -Description of the deposit - -#### doi? - -> `optional` **doi**: `string` - -DOI of the deposit - -#### keywords? - -> `optional` **keywords**: `string`[] - -Keywords/tags - -#### license? - -> `optional` **license**: `string` - -License identifier - -#### publication\_date? - -> `optional` **publication\_date**: `string` - -Publication date in ISO format (YYYY-MM-DD) - -#### related\_identifiers? - -> `optional` **related\_identifiers**: `object`[] - -Related identifiers (e.g., DOIs of related works) - -#### title - -> **title**: `string` - -Title of the deposit - -#### upload\_type - -> **upload\_type**: `string` - -Upload type, e.g., "dataset" - -#### version? - -> `optional` **version**: `string` - -Version of the deposit - -*** - -### state - -> **state**: `"unsubmitted"` \| `"inprogress"` \| `"done"` - -Defined in: zenodo/build/package/Package.d.ts:89 - -State of the deposit - -*** - -### submitted - -> **submitted**: `boolean` - -Defined in: zenodo/build/package/Package.d.ts:93 - -Submitted flag diff --git a/docs/content/docs/reference/dpkit/ZenodoPlugin.md b/docs/content/docs/reference/dpkit/ZenodoPlugin.md deleted file mode 100644 index fa41dc66..00000000 --- a/docs/content/docs/reference/dpkit/ZenodoPlugin.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "ZenodoPlugin" ---- - -Defined in: zenodo/build/plugin.d.ts:2 - -## Implements - -- [`Plugin`](/reference/dpkit/plugin/) - -## Constructors - -### Constructor - -> **new ZenodoPlugin**(): `ZenodoPlugin` - -#### Returns - -`ZenodoPlugin` - -## Methods - -### loadPackage() - -> **loadPackage**(`source`): `Promise`\<`undefined` \| \{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> - -Defined in: zenodo/build/plugin.d.ts:3 - -#### Parameters - -##### source - -`string` - -#### Returns - -`Promise`\<`undefined` \| \{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> - -#### Implementation of - -[`Plugin`](/reference/dpkit/plugin/).[`loadPackage`](/reference/dpkit/plugin/#loadpackage) diff --git a/docs/content/docs/reference/dpkit/ZenodoResource.md b/docs/content/docs/reference/dpkit/ZenodoResource.md deleted file mode 100644 index b695eb81..00000000 --- a/docs/content/docs/reference/dpkit/ZenodoResource.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "ZenodoResource" ---- - -Defined in: zenodo/build/resource/Resource.d.ts:4 - -Zenodo File interface - -## Properties - -### checksum - -> **checksum**: `string` - -Defined in: zenodo/build/resource/Resource.d.ts:20 - -File checksum - -*** - -### id - -> **id**: `string` - -Defined in: zenodo/build/resource/Resource.d.ts:8 - -File identifier - -*** - -### key - -> **key**: `string` - -Defined in: zenodo/build/resource/Resource.d.ts:12 - -File key - -*** - -### links - -> **links**: `object` - -Defined in: zenodo/build/resource/Resource.d.ts:24 - -Links related to the file - -#### self - -> **self**: `string` - -*** - -### size - -> **size**: `number` - -Defined in: zenodo/build/resource/Resource.d.ts:16 - -File size in bytes diff --git a/docs/content/docs/reference/dpkit/ZipPlugin.md b/docs/content/docs/reference/dpkit/ZipPlugin.md deleted file mode 100644 index aa10de2c..00000000 --- a/docs/content/docs/reference/dpkit/ZipPlugin.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "ZipPlugin" ---- - -Defined in: zip/build/plugin.d.ts:2 - -## Implements - -- [`Plugin`](/reference/dpkit/plugin/) - -## Constructors - -### Constructor - -> **new ZipPlugin**(): `ZipPlugin` - -#### Returns - -`ZipPlugin` - -## Methods - -### loadPackage() - -> **loadPackage**(`source`): `Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> - -Defined in: zip/build/plugin.d.ts:3 - -#### Parameters - -##### source - -`string` - -#### Returns - -`Promise`\<`undefined` \| [`Package`](/reference/dpkit/package/)\> - -#### Implementation of - -[`Plugin`](/reference/dpkit/plugin/).[`loadPackage`](/reference/dpkit/plugin/#loadpackage) - -*** - -### savePackage() - -> **savePackage**(`dataPackage`, `options`): `Promise`\<`undefined` \| \{ `path`: `undefined`; \}\> - -Defined in: zip/build/plugin.d.ts:4 - -#### Parameters - -##### dataPackage - -[`Package`](/reference/dpkit/package/) - -##### options - -###### target - -`string` - -###### withRemote? - -`boolean` - -#### Returns - -`Promise`\<`undefined` \| \{ `path`: `undefined`; \}\> - -#### Implementation of - -[`Plugin`](/reference/dpkit/plugin/).[`savePackage`](/reference/dpkit/plugin/#savepackage) diff --git a/docs/content/docs/reference/dpkit/assertCamtrapPackage.md b/docs/content/docs/reference/dpkit/assertCamtrapPackage.md deleted file mode 100644 index ac8c8edb..00000000 --- a/docs/content/docs/reference/dpkit/assertCamtrapPackage.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "assertCamtrapPackage" ---- - -> **assertCamtrapPackage**(`descriptorOrPackage`): `Promise`\<[`CamtrapPackage`](/reference/dpkit/camtrappackage/)\> - -Defined in: camtrap/build/package/assert.d.ts:6 - -Assert a Package descriptor (JSON Object) against its profile - -## Parameters - -### descriptorOrPackage - -[`Package`](/reference/dpkit/package/) | [`Descriptor`](/reference/dpkit/descriptor/) - -## Returns - -`Promise`\<[`CamtrapPackage`](/reference/dpkit/camtrappackage/)\> diff --git a/docs/content/docs/reference/dpkit/assertDialect.md b/docs/content/docs/reference/dpkit/assertDialect.md deleted file mode 100644 index 9253280e..00000000 --- a/docs/content/docs/reference/dpkit/assertDialect.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "assertDialect" ---- - -> **assertDialect**(`descriptor`): `Promise`\<[`Dialect`](/reference/dpkit/dialect/)\> - -Defined in: core/build/dialect/assert.d.ts:6 - -Assert a Dialect descriptor (JSON Object) against its profile - -## Parameters - -### descriptor - -[`Dialect`](/reference/dpkit/dialect/) | [`Descriptor`](/reference/dpkit/descriptor/) - -## Returns - -`Promise`\<[`Dialect`](/reference/dpkit/dialect/)\> diff --git a/docs/content/docs/reference/dpkit/assertLocalPathVacant.md b/docs/content/docs/reference/dpkit/assertLocalPathVacant.md deleted file mode 100644 index 2a88bf98..00000000 --- a/docs/content/docs/reference/dpkit/assertLocalPathVacant.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "assertLocalPathVacant" ---- - -> **assertLocalPathVacant**(`path`): `Promise`\<`void`\> - -Defined in: file/build/file/path.d.ts:2 - -## Parameters - -### path - -`string` - -## Returns - -`Promise`\<`void`\> diff --git a/docs/content/docs/reference/dpkit/assertPackage.md b/docs/content/docs/reference/dpkit/assertPackage.md deleted file mode 100644 index 99276173..00000000 --- a/docs/content/docs/reference/dpkit/assertPackage.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "assertPackage" ---- - -> **assertPackage**(`descriptorOrPackage`, `options?`): `Promise`\<[`Package`](/reference/dpkit/package/)\> - -Defined in: core/build/package/assert.d.ts:6 - -Assert a Package descriptor (JSON Object) against its profile - -## Parameters - -### descriptorOrPackage - -[`Package`](/reference/dpkit/package/) | [`Descriptor`](/reference/dpkit/descriptor/) - -### options? - -#### basepath? - -`string` - -## Returns - -`Promise`\<[`Package`](/reference/dpkit/package/)\> diff --git a/docs/content/docs/reference/dpkit/assertResource.md b/docs/content/docs/reference/dpkit/assertResource.md deleted file mode 100644 index dde7f06e..00000000 --- a/docs/content/docs/reference/dpkit/assertResource.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "assertResource" ---- - -> **assertResource**(`descriptorOrResource`, `options?`): `Promise`\<[`Resource`](/reference/dpkit/resource/)\> - -Defined in: core/build/resource/assert.d.ts:6 - -Assert a Resource descriptor (JSON Object) against its profile - -## Parameters - -### descriptorOrResource - -[`Resource`](/reference/dpkit/resource/) | [`Descriptor`](/reference/dpkit/descriptor/) - -### options? - -#### basepath? - -`string` - -## Returns - -`Promise`\<[`Resource`](/reference/dpkit/resource/)\> diff --git a/docs/content/docs/reference/dpkit/assertSchema.md b/docs/content/docs/reference/dpkit/assertSchema.md deleted file mode 100644 index 27e5b89f..00000000 --- a/docs/content/docs/reference/dpkit/assertSchema.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "assertSchema" ---- - -> **assertSchema**(`descriptor`): `Promise`\<[`Schema`](/reference/dpkit/schema/)\> - -Defined in: core/build/schema/assert.d.ts:6 - -Assert a Schema descriptor (JSON Object) against its profile - -## Parameters - -### descriptor - -[`Descriptor`](/reference/dpkit/descriptor/) | [`Schema`](/reference/dpkit/schema/) - -## Returns - -`Promise`\<[`Schema`](/reference/dpkit/schema/)\> diff --git a/docs/content/docs/reference/dpkit/copyFile.md b/docs/content/docs/reference/dpkit/copyFile.md deleted file mode 100644 index e9d80787..00000000 --- a/docs/content/docs/reference/dpkit/copyFile.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "copyFile" ---- - -> **copyFile**(`options`): `Promise`\<`void`\> - -Defined in: file/build/file/copy.d.ts:1 - -## Parameters - -### options - -#### sourcePath - -`string` - -#### targetPath - -`string` - -## Returns - -`Promise`\<`void`\> diff --git a/docs/content/docs/reference/dpkit/createFolder.md b/docs/content/docs/reference/dpkit/createFolder.md deleted file mode 100644 index 562dded3..00000000 --- a/docs/content/docs/reference/dpkit/createFolder.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "createFolder" ---- - -> **createFolder**(`path`): `Promise`\<`void`\> - -Defined in: folder/build/folder/create.d.ts:1 - -## Parameters - -### path - -`string` - -## Returns - -`Promise`\<`void`\> diff --git a/docs/content/docs/reference/dpkit/denormalizeCkanResource.md b/docs/content/docs/reference/dpkit/denormalizeCkanResource.md deleted file mode 100644 index a242e98a..00000000 --- a/docs/content/docs/reference/dpkit/denormalizeCkanResource.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "denormalizeCkanResource" ---- - -> **denormalizeCkanResource**(`resource`): `Partial`\<[`CkanResource`](/reference/dpkit/ckanresource/)\> - -Defined in: ckan/build/resource/process/denormalize.d.ts:8 - -Denormalizes a Frictionless Data Resource to CKAN Resource format - -## Parameters - -### resource - -[`Resource`](/reference/dpkit/resource/) - -## Returns - -`Partial`\<[`CkanResource`](/reference/dpkit/ckanresource/)\> - -Denormalized CKAN Resource object diff --git a/docs/content/docs/reference/dpkit/denormalizeDialect.md b/docs/content/docs/reference/dpkit/denormalizeDialect.md deleted file mode 100644 index 30c387ce..00000000 --- a/docs/content/docs/reference/dpkit/denormalizeDialect.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "denormalizeDialect" ---- - -> **denormalizeDialect**(`dialect`): [`Descriptor`](/reference/dpkit/descriptor/) - -Defined in: core/build/dialect/process/denormalize.d.ts:3 - -## Parameters - -### dialect - -[`Dialect`](/reference/dpkit/dialect/) - -## Returns - -[`Descriptor`](/reference/dpkit/descriptor/) diff --git a/docs/content/docs/reference/dpkit/denormalizeGithubResource.md b/docs/content/docs/reference/dpkit/denormalizeGithubResource.md deleted file mode 100644 index f06439b6..00000000 --- a/docs/content/docs/reference/dpkit/denormalizeGithubResource.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "denormalizeGithubResource" ---- - -> **denormalizeGithubResource**(`resource`): `Partial`\<[`GithubResource`](/reference/dpkit/githubresource/)\> - -Defined in: github/build/resource/process/denormalize.d.ts:9 - -Denormalizes a Frictionless Data resource to Github file format -This is primarily used for file uploads/updates - -## Parameters - -### resource - -[`Resource`](/reference/dpkit/resource/) - -## Returns - -`Partial`\<[`GithubResource`](/reference/dpkit/githubresource/)\> - -Partial Github Resource object for API operations diff --git a/docs/content/docs/reference/dpkit/denormalizePackage.md b/docs/content/docs/reference/dpkit/denormalizePackage.md deleted file mode 100644 index 0c4ebdd0..00000000 --- a/docs/content/docs/reference/dpkit/denormalizePackage.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "denormalizePackage" ---- - -> **denormalizePackage**(`dataPackage`, `options?`): [`Descriptor`](/reference/dpkit/descriptor/) - -Defined in: core/build/package/process/denormalize.d.ts:3 - -## Parameters - -### dataPackage - -[`Package`](/reference/dpkit/package/) - -### options? - -#### basepath? - -`string` - -## Returns - -[`Descriptor`](/reference/dpkit/descriptor/) diff --git a/docs/content/docs/reference/dpkit/denormalizePath.md b/docs/content/docs/reference/dpkit/denormalizePath.md deleted file mode 100644 index b9928beb..00000000 --- a/docs/content/docs/reference/dpkit/denormalizePath.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "denormalizePath" ---- - -> **denormalizePath**(`path`, `options`): `string` - -Defined in: core/build/general/path.d.ts:9 - -## Parameters - -### path - -`string` - -### options - -#### basepath? - -`string` - -## Returns - -`string` diff --git a/docs/content/docs/reference/dpkit/denormalizeResource.md b/docs/content/docs/reference/dpkit/denormalizeResource.md deleted file mode 100644 index ac5f27d6..00000000 --- a/docs/content/docs/reference/dpkit/denormalizeResource.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "denormalizeResource" ---- - -> **denormalizeResource**(`resource`, `options?`): [`Descriptor`](/reference/dpkit/descriptor/) - -Defined in: core/build/resource/process/denormalize.d.ts:3 - -## Parameters - -### resource - -[`Resource`](/reference/dpkit/resource/) - -### options? - -#### basepath? - -`string` - -## Returns - -[`Descriptor`](/reference/dpkit/descriptor/) diff --git a/docs/content/docs/reference/dpkit/denormalizeSchema.md b/docs/content/docs/reference/dpkit/denormalizeSchema.md deleted file mode 100644 index df5afa02..00000000 --- a/docs/content/docs/reference/dpkit/denormalizeSchema.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "denormalizeSchema" ---- - -> **denormalizeSchema**(`schema`): [`Descriptor`](/reference/dpkit/descriptor/) - -Defined in: core/build/schema/process/denormalize.d.ts:3 - -## Parameters - -### schema - -[`Schema`](/reference/dpkit/schema/) - -## Returns - -[`Descriptor`](/reference/dpkit/descriptor/) diff --git a/docs/content/docs/reference/dpkit/denormalizeZenodoResource.md b/docs/content/docs/reference/dpkit/denormalizeZenodoResource.md deleted file mode 100644 index 9e4515da..00000000 --- a/docs/content/docs/reference/dpkit/denormalizeZenodoResource.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "denormalizeZenodoResource" ---- - -> **denormalizeZenodoResource**(`resource`): `Partial`\<[`ZenodoResource`](/reference/dpkit/zenodoresource/)\> - -Defined in: zenodo/build/resource/process/denormalize.d.ts:3 - -## Parameters - -### resource - -[`Resource`](/reference/dpkit/resource/) - -## Returns - -`Partial`\<[`ZenodoResource`](/reference/dpkit/zenodoresource/)\> diff --git a/docs/content/docs/reference/dpkit/dpkit-1.md b/docs/content/docs/reference/dpkit/dpkit-1.md deleted file mode 100644 index f60b2a1c..00000000 --- a/docs/content/docs/reference/dpkit/dpkit-1.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "dpkit" ---- - -> `const` **dpkit**: [`Dpkit`](/reference/dpkit/dpkit/) - -Defined in: [dpkit/plugin.ts:22](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/dpkit/plugin.ts#L22) diff --git a/docs/content/docs/reference/dpkit/getBasepath.md b/docs/content/docs/reference/dpkit/getBasepath.md deleted file mode 100644 index d4430cf7..00000000 --- a/docs/content/docs/reference/dpkit/getBasepath.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "getBasepath" ---- - -> **getBasepath**(`path`): `string` - -Defined in: core/build/general/path.d.ts:5 - -## Parameters - -### path - -`string` - -## Returns - -`string` diff --git a/docs/content/docs/reference/dpkit/getFilename.md b/docs/content/docs/reference/dpkit/getFilename.md deleted file mode 100644 index 2212e6dc..00000000 --- a/docs/content/docs/reference/dpkit/getFilename.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "getFilename" ---- - -> **getFilename**(`path`): `undefined` \| `string` - -Defined in: core/build/general/path.d.ts:4 - -## Parameters - -### path - -`string` - -## Returns - -`undefined` \| `string` diff --git a/docs/content/docs/reference/dpkit/getFormat.md b/docs/content/docs/reference/dpkit/getFormat.md deleted file mode 100644 index 3394f45d..00000000 --- a/docs/content/docs/reference/dpkit/getFormat.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "getFormat" ---- - -> **getFormat**(`filename?`): `undefined` \| `string` - -Defined in: core/build/general/path.d.ts:3 - -## Parameters - -### filename? - -`string` - -## Returns - -`undefined` \| `string` diff --git a/docs/content/docs/reference/dpkit/getName.md b/docs/content/docs/reference/dpkit/getName.md deleted file mode 100644 index a674a7a3..00000000 --- a/docs/content/docs/reference/dpkit/getName.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "getName" ---- - -> **getName**(`filename?`): `undefined` \| `string` - -Defined in: core/build/general/path.d.ts:2 - -## Parameters - -### filename? - -`string` - -## Returns - -`undefined` \| `string` diff --git a/docs/content/docs/reference/dpkit/getPackageBasepath.md b/docs/content/docs/reference/dpkit/getPackageBasepath.md deleted file mode 100644 index 520fe63b..00000000 --- a/docs/content/docs/reference/dpkit/getPackageBasepath.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "getPackageBasepath" ---- - -> **getPackageBasepath**(`dataPackage`): `undefined` \| `string` - -Defined in: file/build/package/path.d.ts:2 - -## Parameters - -### dataPackage - -[`Package`](/reference/dpkit/package/) - -## Returns - -`undefined` \| `string` diff --git a/docs/content/docs/reference/dpkit/getPolarsSchema.md b/docs/content/docs/reference/dpkit/getPolarsSchema.md deleted file mode 100644 index a7d9710e..00000000 --- a/docs/content/docs/reference/dpkit/getPolarsSchema.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "getPolarsSchema" ---- - -> **getPolarsSchema**(`typeMapping`): [`PolarsSchema`](/reference/dpkit/polarsschema/) - -Defined in: table/build/schema/Schema.d.ts:6 - -## Parameters - -### typeMapping - -`Record`\<`string`, `DataType`\> - -## Returns - -[`PolarsSchema`](/reference/dpkit/polarsschema/) diff --git a/docs/content/docs/reference/dpkit/getTempFilePath.md b/docs/content/docs/reference/dpkit/getTempFilePath.md deleted file mode 100644 index 100e809e..00000000 --- a/docs/content/docs/reference/dpkit/getTempFilePath.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "getTempFilePath" ---- - -> **getTempFilePath**(`options?`): `string` - -Defined in: file/build/file/temp.d.ts:4 - -## Parameters - -### options? - -#### persist? - -`boolean` - -## Returns - -`string` diff --git a/docs/content/docs/reference/dpkit/getTempFolderPath.md b/docs/content/docs/reference/dpkit/getTempFolderPath.md deleted file mode 100644 index a04176f1..00000000 --- a/docs/content/docs/reference/dpkit/getTempFolderPath.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "getTempFolderPath" ---- - -> **getTempFolderPath**(`options?`): `string` - -Defined in: folder/build/folder/temp.d.ts:1 - -## Parameters - -### options? - -#### persist? - -`boolean` - -## Returns - -`string` diff --git a/docs/content/docs/reference/dpkit/inferCsvDialect.md b/docs/content/docs/reference/dpkit/inferCsvDialect.md deleted file mode 100644 index bc2adfd5..00000000 --- a/docs/content/docs/reference/dpkit/inferCsvDialect.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "inferCsvDialect" ---- - -> **inferCsvDialect**(`resource`, `options?`): `Promise`\<[`Dialect`](/reference/dpkit/dialect/)\> - -Defined in: csv/build/dialect/infer.d.ts:3 - -## Parameters - -### resource - -`Partial`\<[`Resource`](/reference/dpkit/resource/)\> - -### options? - -[`InferDialectOptions`](/reference/dpkit/inferdialectoptions/) - -## Returns - -`Promise`\<[`Dialect`](/reference/dpkit/dialect/)\> diff --git a/docs/content/docs/reference/dpkit/inferDialect.md b/docs/content/docs/reference/dpkit/inferDialect.md deleted file mode 100644 index f71fb5a8..00000000 --- a/docs/content/docs/reference/dpkit/inferDialect.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "inferDialect" ---- - -> **inferDialect**(`resource`, `options?`): `Promise`\<[`Dialect`](/reference/dpkit/dialect/)\> - -Defined in: [dpkit/dialect/infer.ts:7](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/dpkit/dialect/infer.ts#L7) - -## Parameters - -### resource - -`Partial`\<[`Resource`](/reference/dpkit/resource/)\> - -### options? - -[`InferDialectOptions`](/reference/dpkit/inferdialectoptions/) - -## Returns - -`Promise`\<[`Dialect`](/reference/dpkit/dialect/)\> diff --git a/docs/content/docs/reference/dpkit/inferFormat.md b/docs/content/docs/reference/dpkit/inferFormat.md deleted file mode 100644 index 1beb120e..00000000 --- a/docs/content/docs/reference/dpkit/inferFormat.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "inferFormat" ---- - -> **inferFormat**(`resource`): `undefined` \| `string` - -Defined in: core/build/resource/infer.d.ts:2 - -## Parameters - -### resource - -`Partial`\<[`Resource`](/reference/dpkit/resource/)\> - -## Returns - -`undefined` \| `string` diff --git a/docs/content/docs/reference/dpkit/inferSchema.md b/docs/content/docs/reference/dpkit/inferSchema.md deleted file mode 100644 index 68633ff6..00000000 --- a/docs/content/docs/reference/dpkit/inferSchema.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "inferSchema" ---- - -> **inferSchema**(`table`, `options?`): `Promise`\<[`Schema`](/reference/dpkit/schema/)\> - -Defined in: table/build/schema/infer.d.ts:9 - -## Parameters - -### table - -`LazyDataFrame` - -### options? - -[`InferSchemaOptions`](/reference/dpkit/inferschemaoptions/) - -## Returns - -`Promise`\<[`Schema`](/reference/dpkit/schema/)\> diff --git a/docs/content/docs/reference/dpkit/inspectField.md b/docs/content/docs/reference/dpkit/inspectField.md deleted file mode 100644 index 793c7248..00000000 --- a/docs/content/docs/reference/dpkit/inspectField.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "inspectField" ---- - -> **inspectField**(`field`, `options`): `object` - -Defined in: table/build/field/inspect.d.ts:5 - -## Parameters - -### field - -[`Field`](/reference/dpkit/field/) - -### options - -#### errorTable - -`LazyDataFrame` - -#### polarsField - -[`PolarsField`](/reference/dpkit/polarsfield/) - -## Returns - -`object` - -### errors - -> **errors**: [`TableError`](/reference/dpkit/tableerror/)[] - -### errorTable - -> **errorTable**: `LazyDataFrame` diff --git a/docs/content/docs/reference/dpkit/inspectTable.md b/docs/content/docs/reference/dpkit/inspectTable.md deleted file mode 100644 index 67cee583..00000000 --- a/docs/content/docs/reference/dpkit/inspectTable.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "inspectTable" ---- - -> **inspectTable**(`table`, `options?`): `Promise`\<[`TableError`](/reference/dpkit/tableerror/)[]\> - -Defined in: table/build/table/inspect.d.ts:4 - -## Parameters - -### table - -`LazyDataFrame` - -### options? - -#### invalidRowsLimit? - -`number` - -#### sampleRows? - -`number` - -#### schema? - -[`Schema`](/reference/dpkit/schema/) - -## Returns - -`Promise`\<[`TableError`](/reference/dpkit/tableerror/)[]\> diff --git a/docs/content/docs/reference/dpkit/isDescriptor.md b/docs/content/docs/reference/dpkit/isDescriptor.md deleted file mode 100644 index 320599af..00000000 --- a/docs/content/docs/reference/dpkit/isDescriptor.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "isDescriptor" ---- - -> **isDescriptor**(`value`): `value is Descriptor` - -Defined in: core/build/general/descriptor/Descriptor.d.ts:2 - -## Parameters - -### value - -`unknown` - -## Returns - -`value is Descriptor` diff --git a/docs/content/docs/reference/dpkit/isLocalPathExist.md b/docs/content/docs/reference/dpkit/isLocalPathExist.md deleted file mode 100644 index 24ee3d3b..00000000 --- a/docs/content/docs/reference/dpkit/isLocalPathExist.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "isLocalPathExist" ---- - -> **isLocalPathExist**(`path`): `Promise`\<`boolean`\> - -Defined in: file/build/file/path.d.ts:1 - -## Parameters - -### path - -`string` - -## Returns - -`Promise`\<`boolean`\> diff --git a/docs/content/docs/reference/dpkit/isRemotePath.md b/docs/content/docs/reference/dpkit/isRemotePath.md deleted file mode 100644 index cc298b82..00000000 --- a/docs/content/docs/reference/dpkit/isRemotePath.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "isRemotePath" ---- - -> **isRemotePath**(`path`): `boolean` - -Defined in: core/build/general/path.d.ts:1 - -## Parameters - -### path - -`string` - -## Returns - -`boolean` diff --git a/docs/content/docs/reference/dpkit/loadCsvTable.md b/docs/content/docs/reference/dpkit/loadCsvTable.md deleted file mode 100644 index a5a50f41..00000000 --- a/docs/content/docs/reference/dpkit/loadCsvTable.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadCsvTable" ---- - -> **loadCsvTable**(`resource`): `Promise`\<`LazyDataFrame`\> - -Defined in: csv/build/table/load.d.ts:2 - -## Parameters - -### resource - -`Partial`\<[`Resource`](/reference/dpkit/resource/)\> - -## Returns - -`Promise`\<`LazyDataFrame`\> diff --git a/docs/content/docs/reference/dpkit/loadDescriptor.md b/docs/content/docs/reference/dpkit/loadDescriptor.md deleted file mode 100644 index ec51455e..00000000 --- a/docs/content/docs/reference/dpkit/loadDescriptor.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadDescriptor" ---- - -> **loadDescriptor**(`path`, `options?`): `Promise`\<\{ `basepath`: `string`; `descriptor`: `Record`\<`string`, `any`\>; \}\> - -Defined in: core/build/general/descriptor/load.d.ts:6 - -Load a descriptor (JSON Object) from a file or URL -Uses dynamic imports to work in both Node.js and browser environments -Supports HTTP, HTTPS, FTP, and FTPS protocols - -## Parameters - -### path - -`string` - -### options? - -#### onlyRemote? - -`boolean` - -## Returns - -`Promise`\<\{ `basepath`: `string`; `descriptor`: `Record`\<`string`, `any`\>; \}\> diff --git a/docs/content/docs/reference/dpkit/loadDialect.md b/docs/content/docs/reference/dpkit/loadDialect.md deleted file mode 100644 index 1a373207..00000000 --- a/docs/content/docs/reference/dpkit/loadDialect.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadDialect" ---- - -> **loadDialect**(`path`): `Promise`\<[`Dialect`](/reference/dpkit/dialect/)\> - -Defined in: core/build/dialect/load.d.ts:5 - -Load a Dialect descriptor (JSON Object) from a file or URL -Ensures the descriptor is valid against its profile - -## Parameters - -### path - -`string` - -## Returns - -`Promise`\<[`Dialect`](/reference/dpkit/dialect/)\> diff --git a/docs/content/docs/reference/dpkit/loadFile.md b/docs/content/docs/reference/dpkit/loadFile.md deleted file mode 100644 index f3b2ec01..00000000 --- a/docs/content/docs/reference/dpkit/loadFile.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadFile" ---- - -> **loadFile**(`path`): `Promise`\<`Buffer`\<`ArrayBufferLike`\>\> - -Defined in: file/build/file/load.d.ts:1 - -## Parameters - -### path - -`string` - -## Returns - -`Promise`\<`Buffer`\<`ArrayBufferLike`\>\> diff --git a/docs/content/docs/reference/dpkit/loadFileStream.md b/docs/content/docs/reference/dpkit/loadFileStream.md deleted file mode 100644 index 508e43be..00000000 --- a/docs/content/docs/reference/dpkit/loadFileStream.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadFileStream" ---- - -> **loadFileStream**(`pathOrPaths`, `options?`): `Promise`\<`any`\> - -Defined in: file/build/stream/load.d.ts:2 - -## Parameters - -### pathOrPaths - -`string` | `string`[] - -### options? - -#### index? - -`number` - -#### maxBytes? - -`number` - -## Returns - -`Promise`\<`any`\> diff --git a/docs/content/docs/reference/dpkit/loadInlineTable.md b/docs/content/docs/reference/dpkit/loadInlineTable.md deleted file mode 100644 index c0488bf7..00000000 --- a/docs/content/docs/reference/dpkit/loadInlineTable.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadInlineTable" ---- - -> **loadInlineTable**(`resource`): `Promise`\<`LazyDataFrame`\> - -Defined in: inline/build/table/load.d.ts:2 - -## Parameters - -### resource - -`Partial`\<[`Resource`](/reference/dpkit/resource/)\> - -## Returns - -`Promise`\<`LazyDataFrame`\> diff --git a/docs/content/docs/reference/dpkit/loadPackage.md b/docs/content/docs/reference/dpkit/loadPackage.md deleted file mode 100644 index 8922c4ce..00000000 --- a/docs/content/docs/reference/dpkit/loadPackage.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadPackage" ---- - -> **loadPackage**(`source`): `Promise`\<[`Package`](/reference/dpkit/package/)\> - -Defined in: [dpkit/package/load.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/dpkit/package/load.ts#L4) - -## Parameters - -### source - -`string` - -## Returns - -`Promise`\<[`Package`](/reference/dpkit/package/)\> diff --git a/docs/content/docs/reference/dpkit/loadPackageDescriptor.md b/docs/content/docs/reference/dpkit/loadPackageDescriptor.md deleted file mode 100644 index 304ba551..00000000 --- a/docs/content/docs/reference/dpkit/loadPackageDescriptor.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadPackageDescriptor" ---- - -> **loadPackageDescriptor**(`path`): `Promise`\<[`Package`](/reference/dpkit/package/)\> - -Defined in: core/build/package/load.d.ts:5 - -Load a Package descriptor (JSON Object) from a file or URL -Ensures the descriptor is valid against its profile - -## Parameters - -### path - -`string` - -## Returns - -`Promise`\<[`Package`](/reference/dpkit/package/)\> diff --git a/docs/content/docs/reference/dpkit/loadPackageFromCkan.md b/docs/content/docs/reference/dpkit/loadPackageFromCkan.md deleted file mode 100644 index ac8731fb..00000000 --- a/docs/content/docs/reference/dpkit/loadPackageFromCkan.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadPackageFromCkan" ---- - -> **loadPackageFromCkan**(`datasetUrl`): `Promise`\<\{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> - -Defined in: ckan/build/package/load.d.ts:6 - -Load a package from a CKAN instance - -## Parameters - -### datasetUrl - -`string` - -## Returns - -`Promise`\<\{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> - -Package object and cleanup function diff --git a/docs/content/docs/reference/dpkit/loadPackageFromDatahub.md b/docs/content/docs/reference/dpkit/loadPackageFromDatahub.md deleted file mode 100644 index 5ef8f63b..00000000 --- a/docs/content/docs/reference/dpkit/loadPackageFromDatahub.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadPackageFromDatahub" ---- - -> **loadPackageFromDatahub**(`datasetUrl`): `Promise`\<[`Package`](/reference/dpkit/package/)\> - -Defined in: datahub/build/package/load.d.ts:1 - -## Parameters - -### datasetUrl - -`string` - -## Returns - -`Promise`\<[`Package`](/reference/dpkit/package/)\> diff --git a/docs/content/docs/reference/dpkit/loadPackageFromFolder.md b/docs/content/docs/reference/dpkit/loadPackageFromFolder.md deleted file mode 100644 index c2edfa5f..00000000 --- a/docs/content/docs/reference/dpkit/loadPackageFromFolder.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadPackageFromFolder" ---- - -> **loadPackageFromFolder**(`folderPath`): `Promise`\<[`Package`](/reference/dpkit/package/)\> - -Defined in: folder/build/package/load.d.ts:1 - -## Parameters - -### folderPath - -`string` - -## Returns - -`Promise`\<[`Package`](/reference/dpkit/package/)\> diff --git a/docs/content/docs/reference/dpkit/loadPackageFromGithub.md b/docs/content/docs/reference/dpkit/loadPackageFromGithub.md deleted file mode 100644 index 6b8a128d..00000000 --- a/docs/content/docs/reference/dpkit/loadPackageFromGithub.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadPackageFromGithub" ---- - -> **loadPackageFromGithub**(`repoUrl`, `options?`): `Promise`\<\{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> - -Defined in: github/build/package/load.d.ts:6 - -Load a package from a Github repository - -## Parameters - -### repoUrl - -`string` - -### options? - -#### apiKey? - -`string` - -## Returns - -`Promise`\<\{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> - -Package object diff --git a/docs/content/docs/reference/dpkit/loadPackageFromZenodo.md b/docs/content/docs/reference/dpkit/loadPackageFromZenodo.md deleted file mode 100644 index 5dcd0b3c..00000000 --- a/docs/content/docs/reference/dpkit/loadPackageFromZenodo.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadPackageFromZenodo" ---- - -> **loadPackageFromZenodo**(`datasetUrl`, `options?`): `Promise`\<\{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> - -Defined in: zenodo/build/package/load.d.ts:6 - -Load a package from a Zenodo deposit - -## Parameters - -### datasetUrl - -`string` - -### options? - -#### apiKey? - -`string` - -## Returns - -`Promise`\<\{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> - -Package object diff --git a/docs/content/docs/reference/dpkit/loadPackageFromZip.md b/docs/content/docs/reference/dpkit/loadPackageFromZip.md deleted file mode 100644 index 2b18a29d..00000000 --- a/docs/content/docs/reference/dpkit/loadPackageFromZip.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadPackageFromZip" ---- - -> **loadPackageFromZip**(`archivePath`): `Promise`\<[`Package`](/reference/dpkit/package/)\> - -Defined in: zip/build/package/load.d.ts:1 - -## Parameters - -### archivePath - -`string` - -## Returns - -`Promise`\<[`Package`](/reference/dpkit/package/)\> diff --git a/docs/content/docs/reference/dpkit/loadProfile.md b/docs/content/docs/reference/dpkit/loadProfile.md deleted file mode 100644 index 533a8679..00000000 --- a/docs/content/docs/reference/dpkit/loadProfile.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadProfile" ---- - -> **loadProfile**(`path`, `options?`): `Promise`\<[`Descriptor`](/reference/dpkit/descriptor/)\> - -Defined in: core/build/general/profile/load.d.ts:2 - -## Parameters - -### path - -`string` - -### options? - -#### type? - -`string` - -## Returns - -`Promise`\<[`Descriptor`](/reference/dpkit/descriptor/)\> diff --git a/docs/content/docs/reference/dpkit/loadResourceDescriptor.md b/docs/content/docs/reference/dpkit/loadResourceDescriptor.md deleted file mode 100644 index 8efad62c..00000000 --- a/docs/content/docs/reference/dpkit/loadResourceDescriptor.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadResourceDescriptor" ---- - -> **loadResourceDescriptor**(`path`): `Promise`\<[`Resource`](/reference/dpkit/resource/)\> - -Defined in: core/build/resource/load.d.ts:5 - -Load a Resource descriptor (JSON Object) from a file or URL -Ensures the descriptor is valid against its profile - -## Parameters - -### path - -`string` - -## Returns - -`Promise`\<[`Resource`](/reference/dpkit/resource/)\> diff --git a/docs/content/docs/reference/dpkit/loadSchema.md b/docs/content/docs/reference/dpkit/loadSchema.md deleted file mode 100644 index 41ac4297..00000000 --- a/docs/content/docs/reference/dpkit/loadSchema.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadSchema" ---- - -> **loadSchema**(`path`): `Promise`\<[`Schema`](/reference/dpkit/schema/)\> - -Defined in: core/build/schema/load.d.ts:5 - -Load a Schema descriptor (JSON Object) from a file or URL -Ensures the descriptor is valid against its profile - -## Parameters - -### path - -`string` - -## Returns - -`Promise`\<[`Schema`](/reference/dpkit/schema/)\> diff --git a/docs/content/docs/reference/dpkit/loadTable.md b/docs/content/docs/reference/dpkit/loadTable.md deleted file mode 100644 index 8f55178f..00000000 --- a/docs/content/docs/reference/dpkit/loadTable.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "loadTable" ---- - -> **loadTable**(`resource`): `Promise`\<`LazyDataFrame`\> - -Defined in: [dpkit/table/load.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/dpkit/table/load.ts#L5) - -## Parameters - -### resource - -`Partial`\<[`Resource`](/reference/dpkit/resource/)\> - -## Returns - -`Promise`\<`LazyDataFrame`\> diff --git a/docs/content/docs/reference/dpkit/matchField.md b/docs/content/docs/reference/dpkit/matchField.md deleted file mode 100644 index 84523784..00000000 --- a/docs/content/docs/reference/dpkit/matchField.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "matchField" ---- - -> **matchField**(`index`, `field`, `schema`, `polarsSchema`): `undefined` \| [`PolarsField`](/reference/dpkit/polarsfield/) - -Defined in: table/build/field/match.d.ts:3 - -## Parameters - -### index - -`number` - -### field - -[`Field`](/reference/dpkit/field/) - -### schema - -[`Schema`](/reference/dpkit/schema/) - -### polarsSchema - -[`PolarsSchema`](/reference/dpkit/polarsschema/) - -## Returns - -`undefined` \| [`PolarsField`](/reference/dpkit/polarsfield/) diff --git a/docs/content/docs/reference/dpkit/mergePackages.md b/docs/content/docs/reference/dpkit/mergePackages.md deleted file mode 100644 index 6f8bc116..00000000 --- a/docs/content/docs/reference/dpkit/mergePackages.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "mergePackages" ---- - -> **mergePackages**(`options`): `Promise`\<\{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> - -Defined in: core/build/package/merge.d.ts:5 - -Merges a system data package into a user data package if provided - -## Parameters - -### options - -#### systemPackage - -[`Package`](/reference/dpkit/package/) - -#### userPackagePath? - -`string` - -## Returns - -`Promise`\<\{[`x`: `` `${string}:${string}` ``]: `any`; `$schema?`: `string`; `contributors?`: [`Contributor`](/reference/dpkit/contributor/)[]; `created?`: `string`; `description?`: `string`; `homepage?`: `string`; `image?`: `string`; `keywords?`: `string`[]; `licenses?`: [`License`](/reference/dpkit/license/)[]; `name?`: `string`; `resources`: [`Resource`](/reference/dpkit/resource/)[]; `sources?`: [`Source`](/reference/dpkit/source/)[]; `title?`: `string`; `version?`: `string`; \}\> diff --git a/docs/content/docs/reference/dpkit/normalizeCkanSchema.md b/docs/content/docs/reference/dpkit/normalizeCkanSchema.md deleted file mode 100644 index 23610c86..00000000 --- a/docs/content/docs/reference/dpkit/normalizeCkanSchema.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "normalizeCkanSchema" ---- - -> **normalizeCkanSchema**(`ckanSchema`): [`Schema`](/reference/dpkit/schema/) - -Defined in: ckan/build/schema/process/normalize.d.ts:8 - -Normalizes a CKAN schema to a Table Schema format - -## Parameters - -### ckanSchema - -[`CkanSchema`](/reference/dpkit/ckanschema/) - -## Returns - -[`Schema`](/reference/dpkit/schema/) - -A normalized Table Schema object diff --git a/docs/content/docs/reference/dpkit/normalizeDialect.md b/docs/content/docs/reference/dpkit/normalizeDialect.md deleted file mode 100644 index b9946198..00000000 --- a/docs/content/docs/reference/dpkit/normalizeDialect.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "normalizeDialect" ---- - -> **normalizeDialect**(`descriptor`): [`Descriptor`](/reference/dpkit/descriptor/) - -Defined in: core/build/dialect/process/normalize.d.ts:2 - -## Parameters - -### descriptor - -[`Descriptor`](/reference/dpkit/descriptor/) - -## Returns - -[`Descriptor`](/reference/dpkit/descriptor/) diff --git a/docs/content/docs/reference/dpkit/normalizeField.md b/docs/content/docs/reference/dpkit/normalizeField.md deleted file mode 100644 index d8514c32..00000000 --- a/docs/content/docs/reference/dpkit/normalizeField.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "normalizeField" ---- - -> **normalizeField**(`descriptor`): [`Descriptor`](/reference/dpkit/descriptor/) - -Defined in: core/build/field/process/normalize.d.ts:2 - -## Parameters - -### descriptor - -[`Descriptor`](/reference/dpkit/descriptor/) - -## Returns - -[`Descriptor`](/reference/dpkit/descriptor/) diff --git a/docs/content/docs/reference/dpkit/normalizeGithubResource.md b/docs/content/docs/reference/dpkit/normalizeGithubResource.md deleted file mode 100644 index fbfb545c..00000000 --- a/docs/content/docs/reference/dpkit/normalizeGithubResource.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "normalizeGithubResource" ---- - -> **normalizeGithubResource**(`githubResource`, `options`): [`Resource`](/reference/dpkit/resource/) - -Defined in: github/build/resource/process/normalize.d.ts:8 - -Normalizes a Github file to Frictionless Data resource format - -## Parameters - -### githubResource - -[`GithubResource`](/reference/dpkit/githubresource/) - -### options - -#### defaultBranch - -`string` - -## Returns - -[`Resource`](/reference/dpkit/resource/) - -Normalized Resource object diff --git a/docs/content/docs/reference/dpkit/normalizePackage.md b/docs/content/docs/reference/dpkit/normalizePackage.md deleted file mode 100644 index 976813a5..00000000 --- a/docs/content/docs/reference/dpkit/normalizePackage.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "normalizePackage" ---- - -> **normalizePackage**(`descriptor`, `options`): [`Descriptor`](/reference/dpkit/descriptor/) - -Defined in: core/build/package/process/normalize.d.ts:2 - -## Parameters - -### descriptor - -[`Descriptor`](/reference/dpkit/descriptor/) - -### options - -#### basepath? - -`string` - -## Returns - -[`Descriptor`](/reference/dpkit/descriptor/) diff --git a/docs/content/docs/reference/dpkit/normalizePath.md b/docs/content/docs/reference/dpkit/normalizePath.md deleted file mode 100644 index 17a8d75c..00000000 --- a/docs/content/docs/reference/dpkit/normalizePath.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "normalizePath" ---- - -> **normalizePath**(`path`, `options`): `string` - -Defined in: core/build/general/path.d.ts:6 - -## Parameters - -### path - -`string` - -### options - -#### basepath? - -`string` - -## Returns - -`string` diff --git a/docs/content/docs/reference/dpkit/normalizeResource.md b/docs/content/docs/reference/dpkit/normalizeResource.md deleted file mode 100644 index 619b0421..00000000 --- a/docs/content/docs/reference/dpkit/normalizeResource.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "normalizeResource" ---- - -> **normalizeResource**(`descriptor`, `options?`): [`Descriptor`](/reference/dpkit/descriptor/) - -Defined in: core/build/resource/process/normalize.d.ts:2 - -## Parameters - -### descriptor - -[`Descriptor`](/reference/dpkit/descriptor/) - -### options? - -#### basepath? - -`string` - -## Returns - -[`Descriptor`](/reference/dpkit/descriptor/) diff --git a/docs/content/docs/reference/dpkit/normalizeSchema.md b/docs/content/docs/reference/dpkit/normalizeSchema.md deleted file mode 100644 index 9b9c8744..00000000 --- a/docs/content/docs/reference/dpkit/normalizeSchema.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "normalizeSchema" ---- - -> **normalizeSchema**(`descriptor`): [`Descriptor`](/reference/dpkit/descriptor/) - -Defined in: core/build/schema/process/normalize.d.ts:2 - -## Parameters - -### descriptor - -[`Descriptor`](/reference/dpkit/descriptor/) - -## Returns - -[`Descriptor`](/reference/dpkit/descriptor/) diff --git a/docs/content/docs/reference/dpkit/normalizeZenodoResource.md b/docs/content/docs/reference/dpkit/normalizeZenodoResource.md deleted file mode 100644 index 51762347..00000000 --- a/docs/content/docs/reference/dpkit/normalizeZenodoResource.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "normalizeZenodoResource" ---- - -> **normalizeZenodoResource**(`zenodoResource`): `object` - -Defined in: zenodo/build/resource/process/normalize.d.ts:7 - -Normalizes a Zenodo file to Frictionless Data resource format - -## Parameters - -### zenodoResource - -[`ZenodoResource`](/reference/dpkit/zenodoresource/) - -## Returns - -`object` - -Normalized Resource object - -### bytes - -> **bytes**: `number` - -### format - -> **format**: `undefined` \| `string` - -### hash - -> **hash**: `string` - -### name - -> **name**: `string` - -### path - -> **path**: `string` - -### zenodo:key - -> **zenodo:key**: `string` - -### zenodo:url - -> **zenodo:url**: `string` diff --git a/docs/content/docs/reference/dpkit/parseDescriptor.md b/docs/content/docs/reference/dpkit/parseDescriptor.md deleted file mode 100644 index 60ad4bc6..00000000 --- a/docs/content/docs/reference/dpkit/parseDescriptor.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "parseDescriptor" ---- - -> **parseDescriptor**(`text`): [`Descriptor`](/reference/dpkit/descriptor/) - -Defined in: core/build/general/descriptor/process/parse.d.ts:2 - -## Parameters - -### text - -`string` - -## Returns - -[`Descriptor`](/reference/dpkit/descriptor/) diff --git a/docs/content/docs/reference/dpkit/parseField.md b/docs/content/docs/reference/dpkit/parseField.md deleted file mode 100644 index 42a3e45d..00000000 --- a/docs/content/docs/reference/dpkit/parseField.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "parseField" ---- - -> **parseField**(`field`, `options?`): `any` - -Defined in: table/build/field/parse.d.ts:3 - -## Parameters - -### field - -[`Field`](/reference/dpkit/field/) - -### options? - -#### expr? - -`Expr` - -#### schema? - -[`Schema`](/reference/dpkit/schema/) - -## Returns - -`any` diff --git a/docs/content/docs/reference/dpkit/prefetchFile.md b/docs/content/docs/reference/dpkit/prefetchFile.md deleted file mode 100644 index dccc3c87..00000000 --- a/docs/content/docs/reference/dpkit/prefetchFile.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "prefetchFile" ---- - -> **prefetchFile**(`path`): `Promise`\<`string`\> - -Defined in: file/build/file/fetch.d.ts:2 - -## Parameters - -### path - -`string` - -## Returns - -`Promise`\<`string`\> diff --git a/docs/content/docs/reference/dpkit/prefetchFiles.md b/docs/content/docs/reference/dpkit/prefetchFiles.md deleted file mode 100644 index e658974e..00000000 --- a/docs/content/docs/reference/dpkit/prefetchFiles.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "prefetchFiles" ---- - -> **prefetchFiles**(`path?`): `Promise`\<`string`[]\> - -Defined in: file/build/file/fetch.d.ts:1 - -## Parameters - -### path? - -`string` | `string`[] - -## Returns - -`Promise`\<`string`[]\> diff --git a/docs/content/docs/reference/dpkit/processTable.md b/docs/content/docs/reference/dpkit/processTable.md deleted file mode 100644 index c0727330..00000000 --- a/docs/content/docs/reference/dpkit/processTable.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "processTable" ---- - -> **processTable**(`table`, `options?`): `Promise`\<`LazyDataFrame`\> - -Defined in: table/build/table/process.d.ts:5 - -## Parameters - -### table - -`LazyDataFrame` - -### options? - -#### sampleSize? - -`number` - -#### schema? - -[`Schema`](/reference/dpkit/schema/) - -## Returns - -`Promise`\<`LazyDataFrame`\> diff --git a/docs/content/docs/reference/dpkit/readTable.md b/docs/content/docs/reference/dpkit/readTable.md deleted file mode 100644 index a47ba2ea..00000000 --- a/docs/content/docs/reference/dpkit/readTable.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "readTable" ---- - -> **readTable**(`resource`): `Promise`\<`LazyDataFrame`\> - -Defined in: [dpkit/table/read.ts:6](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/dpkit/table/read.ts#L6) - -## Parameters - -### resource - -`Partial`\<[`Resource`](/reference/dpkit/resource/)\> - -## Returns - -`Promise`\<`LazyDataFrame`\> diff --git a/docs/content/docs/reference/dpkit/saveCsvTable.md b/docs/content/docs/reference/dpkit/saveCsvTable.md deleted file mode 100644 index 9088aadc..00000000 --- a/docs/content/docs/reference/dpkit/saveCsvTable.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "saveCsvTable" ---- - -> **saveCsvTable**(`table`, `options`): `Promise`\<`string`\> - -Defined in: csv/build/table/save.d.ts:2 - -## Parameters - -### table - -`LazyDataFrame` - -### options - -[`SaveTableOptions`](/reference/dpkit/savetableoptions/) - -## Returns - -`Promise`\<`string`\> diff --git a/docs/content/docs/reference/dpkit/saveDescriptor.md b/docs/content/docs/reference/dpkit/saveDescriptor.md deleted file mode 100644 index 53c0c6c5..00000000 --- a/docs/content/docs/reference/dpkit/saveDescriptor.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "saveDescriptor" ---- - -> **saveDescriptor**(`descriptor`, `options`): `Promise`\<`void`\> - -Defined in: core/build/general/descriptor/save.d.ts:6 - -Save a descriptor (JSON Object) to a file path -Works in Node.js environments - -## Parameters - -### descriptor - -[`Descriptor`](/reference/dpkit/descriptor/) - -### options - -#### path - -`string` - -## Returns - -`Promise`\<`void`\> diff --git a/docs/content/docs/reference/dpkit/saveDialect.md b/docs/content/docs/reference/dpkit/saveDialect.md deleted file mode 100644 index 3a151371..00000000 --- a/docs/content/docs/reference/dpkit/saveDialect.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "saveDialect" ---- - -> **saveDialect**(`dialect`, `options`): `Promise`\<`void`\> - -Defined in: core/build/dialect/save.d.ts:6 - -Save a Dialect to a file path -Works in Node.js environments - -## Parameters - -### dialect - -[`Dialect`](/reference/dpkit/dialect/) - -### options - -#### path - -`string` - -## Returns - -`Promise`\<`void`\> diff --git a/docs/content/docs/reference/dpkit/saveFile.md b/docs/content/docs/reference/dpkit/saveFile.md deleted file mode 100644 index f1bb4a75..00000000 --- a/docs/content/docs/reference/dpkit/saveFile.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "saveFile" ---- - -> **saveFile**(`path`, `buffer`): `Promise`\<`void`\> - -Defined in: file/build/file/save.d.ts:1 - -## Parameters - -### path - -`string` - -### buffer - -`Buffer` - -## Returns - -`Promise`\<`void`\> diff --git a/docs/content/docs/reference/dpkit/saveFileStream.md b/docs/content/docs/reference/dpkit/saveFileStream.md deleted file mode 100644 index 1918ac3d..00000000 --- a/docs/content/docs/reference/dpkit/saveFileStream.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "saveFileStream" ---- - -> **saveFileStream**(`stream`, `options`): `Promise`\<`void`\> - -Defined in: file/build/stream/save.d.ts:2 - -## Parameters - -### stream - -`Readable` - -### options - -#### path - -`string` - -## Returns - -`Promise`\<`void`\> diff --git a/docs/content/docs/reference/dpkit/savePackage.md b/docs/content/docs/reference/dpkit/savePackage.md deleted file mode 100644 index d8a53c4a..00000000 --- a/docs/content/docs/reference/dpkit/savePackage.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "savePackage" ---- - -> **savePackage**(`dataPackage`, `options`): `Promise`\<`void` \| \{ `path?`: `string`; \}\> - -Defined in: [dpkit/package/save.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/dpkit/package/save.ts#L5) - -## Parameters - -### dataPackage - -[`Package`](/reference/dpkit/package/) - -### options - -#### target - -`string` - -#### withRemote? - -`boolean` - -## Returns - -`Promise`\<`void` \| \{ `path?`: `string`; \}\> diff --git a/docs/content/docs/reference/dpkit/savePackageDescriptor.md b/docs/content/docs/reference/dpkit/savePackageDescriptor.md deleted file mode 100644 index 3f76f358..00000000 --- a/docs/content/docs/reference/dpkit/savePackageDescriptor.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "savePackageDescriptor" ---- - -> **savePackageDescriptor**(`dataPackage`, `options`): `Promise`\<`void`\> - -Defined in: core/build/package/save.d.ts:6 - -Save a Package to a file path -Works in Node.js environments - -## Parameters - -### dataPackage - -[`Package`](/reference/dpkit/package/) - -### options - -#### path - -`string` - -## Returns - -`Promise`\<`void`\> diff --git a/docs/content/docs/reference/dpkit/savePackageToCkan.md b/docs/content/docs/reference/dpkit/savePackageToCkan.md deleted file mode 100644 index 42e4fc59..00000000 --- a/docs/content/docs/reference/dpkit/savePackageToCkan.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "savePackageToCkan" ---- - -> **savePackageToCkan**(`dataPackage`, `options`): `Promise`\<\{ `datasetUrl`: `string`; `path`: `unknown`; \}\> - -Defined in: ckan/build/package/save.d.ts:2 - -## Parameters - -### dataPackage - -[`Package`](/reference/dpkit/package/) - -### options - -#### apiKey - -`string` - -#### ckanUrl - -`string` - -#### datasetName - -`string` - -#### ownerOrg - -`string` - -## Returns - -`Promise`\<\{ `datasetUrl`: `string`; `path`: `unknown`; \}\> diff --git a/docs/content/docs/reference/dpkit/savePackageToFolder.md b/docs/content/docs/reference/dpkit/savePackageToFolder.md deleted file mode 100644 index 8194b922..00000000 --- a/docs/content/docs/reference/dpkit/savePackageToFolder.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "savePackageToFolder" ---- - -> **savePackageToFolder**(`dataPackage`, `options`): `Promise`\<\{ `resources`: [`Descriptor`](/reference/dpkit/descriptor/)[]; \}\> - -Defined in: folder/build/package/save.d.ts:2 - -## Parameters - -### dataPackage - -[`Package`](/reference/dpkit/package/) - -### options - -#### folderPath - -`string` - -#### withRemote? - -`boolean` - -## Returns - -`Promise`\<\{ `resources`: [`Descriptor`](/reference/dpkit/descriptor/)[]; \}\> diff --git a/docs/content/docs/reference/dpkit/savePackageToGithub.md b/docs/content/docs/reference/dpkit/savePackageToGithub.md deleted file mode 100644 index 9a1d1686..00000000 --- a/docs/content/docs/reference/dpkit/savePackageToGithub.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "savePackageToGithub" ---- - -> **savePackageToGithub**(`dataPackage`, `options`): `Promise`\<\{ `path`: `string`; `repoUrl`: `string`; \}\> - -Defined in: github/build/package/save.d.ts:7 - -Save a package to a Github repository - -## Parameters - -### dataPackage - -[`Package`](/reference/dpkit/package/) - -### options - -#### apiKey - -`string` - -#### org? - -`string` - -#### repo - -`string` - -## Returns - -`Promise`\<\{ `path`: `string`; `repoUrl`: `string`; \}\> - -Object with the repository URL diff --git a/docs/content/docs/reference/dpkit/savePackageToZenodo.md b/docs/content/docs/reference/dpkit/savePackageToZenodo.md deleted file mode 100644 index 6cb2d925..00000000 --- a/docs/content/docs/reference/dpkit/savePackageToZenodo.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "savePackageToZenodo" ---- - -> **savePackageToZenodo**(`dataPackage`, `options`): `Promise`\<\{ `datasetUrl`: `string`; `path`: `string`; \}\> - -Defined in: zenodo/build/package/save.d.ts:7 - -Save a package to Zenodo - -## Parameters - -### dataPackage - -[`Package`](/reference/dpkit/package/) - -### options - -#### apiKey - -`string` - -#### sandbox? - -`boolean` - -## Returns - -`Promise`\<\{ `datasetUrl`: `string`; `path`: `string`; \}\> - -Object with the deposit URL and DOI diff --git a/docs/content/docs/reference/dpkit/savePackageToZip.md b/docs/content/docs/reference/dpkit/savePackageToZip.md deleted file mode 100644 index e3ab78da..00000000 --- a/docs/content/docs/reference/dpkit/savePackageToZip.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "savePackageToZip" ---- - -> **savePackageToZip**(`dataPackage`, `options`): `Promise`\<`void`\> - -Defined in: zip/build/package/save.d.ts:2 - -## Parameters - -### dataPackage - -[`Package`](/reference/dpkit/package/) - -### options - -#### archivePath - -`string` - -#### withRemote? - -`boolean` - -## Returns - -`Promise`\<`void`\> diff --git a/docs/content/docs/reference/dpkit/saveResourceDescriptor.md b/docs/content/docs/reference/dpkit/saveResourceDescriptor.md deleted file mode 100644 index 7e2b3141..00000000 --- a/docs/content/docs/reference/dpkit/saveResourceDescriptor.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "saveResourceDescriptor" ---- - -> **saveResourceDescriptor**(`resource`, `options`): `Promise`\<`void`\> - -Defined in: core/build/resource/save.d.ts:6 - -Save a Resource to a file path -Works in Node.js environments - -## Parameters - -### resource - -[`Resource`](/reference/dpkit/resource/) - -### options - -#### path - -`string` - -## Returns - -`Promise`\<`void`\> diff --git a/docs/content/docs/reference/dpkit/saveResourceFiles.md b/docs/content/docs/reference/dpkit/saveResourceFiles.md deleted file mode 100644 index 2f76e902..00000000 --- a/docs/content/docs/reference/dpkit/saveResourceFiles.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "saveResourceFiles" ---- - -> **saveResourceFiles**(`resource`, `options`): `Promise`\<[`Descriptor`](/reference/dpkit/descriptor/)\> - -Defined in: file/build/resource/save.d.ts:8 - -## Parameters - -### resource - -[`Resource`](/reference/dpkit/resource/) - -### options - -#### basepath? - -`string` - -#### saveFile - -`SaveFile` - -#### withoutFolders? - -`boolean` - -#### withRemote? - -`boolean` - -## Returns - -`Promise`\<[`Descriptor`](/reference/dpkit/descriptor/)\> diff --git a/docs/content/docs/reference/dpkit/saveSchema.md b/docs/content/docs/reference/dpkit/saveSchema.md deleted file mode 100644 index 74245e65..00000000 --- a/docs/content/docs/reference/dpkit/saveSchema.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "saveSchema" ---- - -> **saveSchema**(`schema`, `options`): `Promise`\<`void`\> - -Defined in: core/build/schema/save.d.ts:6 - -Save a Schema to a file path -Works in Node.js environments - -## Parameters - -### schema - -[`Schema`](/reference/dpkit/schema/) - -### options - -#### path - -`string` - -## Returns - -`Promise`\<`void`\> diff --git a/docs/content/docs/reference/dpkit/saveTable.md b/docs/content/docs/reference/dpkit/saveTable.md deleted file mode 100644 index abb282ab..00000000 --- a/docs/content/docs/reference/dpkit/saveTable.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "saveTable" ---- - -> **saveTable**(`table`, `options`): `Promise`\<`string`\> - -Defined in: [dpkit/table/save.ts:4](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/dpkit/table/save.ts#L4) - -## Parameters - -### table - -`LazyDataFrame` - -### options - -[`SaveTableOptions`](/reference/dpkit/savetableoptions/) - -## Returns - -`Promise`\<`string`\> diff --git a/docs/content/docs/reference/dpkit/stringifyDescriptor.md b/docs/content/docs/reference/dpkit/stringifyDescriptor.md deleted file mode 100644 index 75c6a3ab..00000000 --- a/docs/content/docs/reference/dpkit/stringifyDescriptor.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "stringifyDescriptor" ---- - -> **stringifyDescriptor**(`descriptor`): `string` - -Defined in: core/build/general/descriptor/process/stringify.d.ts:2 - -## Parameters - -### descriptor - -[`Descriptor`](/reference/dpkit/descriptor/) - -## Returns - -`string` diff --git a/docs/content/docs/reference/dpkit/validateDescriptor.md b/docs/content/docs/reference/dpkit/validateDescriptor.md deleted file mode 100644 index ea3812aa..00000000 --- a/docs/content/docs/reference/dpkit/validateDescriptor.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "validateDescriptor" ---- - -> **validateDescriptor**(`descriptor`, `options`): `Promise`\<\{ `errors`: [`MetadataError`](/reference/dpkit/metadataerror/)[]; `valid`: `boolean`; \}\> - -Defined in: core/build/general/descriptor/validate.d.ts:8 - -Validate a descriptor (JSON Object) against a JSON Schema -It uses Ajv for JSON Schema validation under the hood -It returns a list of errors (empty if valid) - -## Parameters - -### descriptor - -[`Descriptor`](/reference/dpkit/descriptor/) - -### options - -#### profile - -[`Descriptor`](/reference/dpkit/descriptor/) - -## Returns - -`Promise`\<\{ `errors`: [`MetadataError`](/reference/dpkit/metadataerror/)[]; `valid`: `boolean`; \}\> diff --git a/docs/content/docs/reference/dpkit/validateDialect.md b/docs/content/docs/reference/dpkit/validateDialect.md deleted file mode 100644 index 0e1f681e..00000000 --- a/docs/content/docs/reference/dpkit/validateDialect.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "validateDialect" ---- - -> **validateDialect**(`descriptorOrDialect`): `Promise`\<\{ `dialect`: `undefined` \| [`Dialect`](/reference/dpkit/dialect/); `errors`: [`MetadataError`](/reference/dpkit/metadataerror/)[]; `valid`: `boolean`; \}\> - -Defined in: core/build/dialect/validate.d.ts:6 - -Validate a Dialect descriptor (JSON Object) against its profile - -## Parameters - -### descriptorOrDialect - -[`Dialect`](/reference/dpkit/dialect/) | [`Descriptor`](/reference/dpkit/descriptor/) - -## Returns - -`Promise`\<\{ `dialect`: `undefined` \| [`Dialect`](/reference/dpkit/dialect/); `errors`: [`MetadataError`](/reference/dpkit/metadataerror/)[]; `valid`: `boolean`; \}\> diff --git a/docs/content/docs/reference/dpkit/validatePackageDescriptor.md b/docs/content/docs/reference/dpkit/validatePackageDescriptor.md deleted file mode 100644 index 2f30207d..00000000 --- a/docs/content/docs/reference/dpkit/validatePackageDescriptor.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "validatePackageDescriptor" ---- - -> **validatePackageDescriptor**(`descriptorOrPackage`, `options?`): `Promise`\<\{ `dataPackage`: `undefined` \| [`Package`](/reference/dpkit/package/); `errors`: [`MetadataError`](/reference/dpkit/metadataerror/)[]; `valid`: `boolean`; \}\> - -Defined in: core/build/package/validate.d.ts:6 - -Validate a Package descriptor (JSON Object) against its profile - -## Parameters - -### descriptorOrPackage - -[`Package`](/reference/dpkit/package/) | [`Descriptor`](/reference/dpkit/descriptor/) - -### options? - -#### basepath? - -`string` - -## Returns - -`Promise`\<\{ `dataPackage`: `undefined` \| [`Package`](/reference/dpkit/package/); `errors`: [`MetadataError`](/reference/dpkit/metadataerror/)[]; `valid`: `boolean`; \}\> diff --git a/docs/content/docs/reference/dpkit/validateResourceDescriptor.md b/docs/content/docs/reference/dpkit/validateResourceDescriptor.md deleted file mode 100644 index 6fb12b95..00000000 --- a/docs/content/docs/reference/dpkit/validateResourceDescriptor.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "validateResourceDescriptor" ---- - -> **validateResourceDescriptor**(`descriptorOrResource`, `options?`): `Promise`\<\{ `errors`: [`MetadataError`](/reference/dpkit/metadataerror/)[]; `resource`: `undefined` \| [`Resource`](/reference/dpkit/resource/); `valid`: `boolean`; \}\> - -Defined in: core/build/resource/validate.d.ts:6 - -Validate a Resource descriptor (JSON Object) against its profile - -## Parameters - -### descriptorOrResource - -[`Resource`](/reference/dpkit/resource/) | [`Descriptor`](/reference/dpkit/descriptor/) - -### options? - -#### basepath? - -`string` - -## Returns - -`Promise`\<\{ `errors`: [`MetadataError`](/reference/dpkit/metadataerror/)[]; `resource`: `undefined` \| [`Resource`](/reference/dpkit/resource/); `valid`: `boolean`; \}\> diff --git a/docs/content/docs/reference/dpkit/validateSchema.md b/docs/content/docs/reference/dpkit/validateSchema.md deleted file mode 100644 index 60a75407..00000000 --- a/docs/content/docs/reference/dpkit/validateSchema.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "validateSchema" ---- - -> **validateSchema**(`descriptorOrSchema`): `Promise`\<\{ `errors`: [`MetadataError`](/reference/dpkit/metadataerror/)[]; `schema`: `undefined` \| [`Schema`](/reference/dpkit/schema/); `valid`: `boolean`; \}\> - -Defined in: core/build/schema/validate.d.ts:6 - -Validate a Schema descriptor (JSON Object) against its profile - -## Parameters - -### descriptorOrSchema - -[`Descriptor`](/reference/dpkit/descriptor/) | [`Schema`](/reference/dpkit/schema/) - -## Returns - -`Promise`\<\{ `errors`: [`MetadataError`](/reference/dpkit/metadataerror/)[]; `schema`: `undefined` \| [`Schema`](/reference/dpkit/schema/); `valid`: `boolean`; \}\> diff --git a/docs/content/docs/reference/dpkit/validateTable.md b/docs/content/docs/reference/dpkit/validateTable.md deleted file mode 100644 index 6831ca15..00000000 --- a/docs/content/docs/reference/dpkit/validateTable.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "validateTable" ---- - -> **validateTable**(`resource`): `Promise`\<\{ `errors`: [`TableError`](/reference/dpkit/tableerror/)[]; `valid`: `boolean`; \}\> - -Defined in: [dpkit/table/validate.ts:5](https://github.com/datisthq/dpkit/blob/7a3ebb9422265a09d2e84e0952d10e0101139f80/dpkit/table/validate.ts#L5) - -## Parameters - -### resource - -`Partial`\<[`Resource`](/reference/dpkit/resource/)\> - -## Returns - -`Promise`\<\{ `errors`: [`TableError`](/reference/dpkit/tableerror/)[]; `valid`: `boolean`; \}\> diff --git a/docs/content/docs/reference/dpkit/writeTempFile.md b/docs/content/docs/reference/dpkit/writeTempFile.md deleted file mode 100644 index 62945d47..00000000 --- a/docs/content/docs/reference/dpkit/writeTempFile.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -editUrl: false -next: false -prev: false -title: "writeTempFile" ---- - -> **writeTempFile**(`content`, `options?`): `Promise`\<`string`\> - -Defined in: file/build/file/temp.d.ts:1 - -## Parameters - -### content - -`any` - -### options? - -#### persist? - -`boolean` - -## Returns - -`Promise`\<`string`\> diff --git a/docs/examples/getting-started-1.ts b/docs/examples/getting-started-1.ts index fc0cc58e..0dad7fb8 100644 --- a/docs/examples/getting-started-1.ts +++ b/docs/examples/getting-started-1.ts @@ -1,5 +1,5 @@ import { loadPackage } from "dpkit" -const { dataPackage } = await loadPackage("https://zenodo.org/records/10053903") +const dataPackage = await loadPackage("https://zenodo.org/records/10053903") console.log(dataPackage) diff --git a/package.json b/package.json index fd598df8..869890af 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "devDependencies": { "@biomejs/biome": "1.9.4", "@changesets/cli": "2.29.5", + "@types/node": "24.2.0", "@vitest/coverage-v8": "3.1.4", "@vitest/ui": "3.1.4", "husky": "9.1.7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2422d4be..0eab73c2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,6 +14,9 @@ importers: '@changesets/cli': specifier: 2.29.5 version: 2.29.5 + '@types/node': + specifier: ^24.2.0 + version: 24.2.0 '@vitest/coverage-v8': specifier: 3.1.4 version: 3.1.4(vitest@3.1.4) @@ -37,7 +40,7 @@ importers: version: 5.8.3 vitest: specifier: 3.1.4 - version: 3.1.4(@types/debug@4.1.12)(@types/node@22.15.31)(@vitest/ui@3.1.4)(yaml@2.7.1) + version: 3.1.4(@types/debug@4.1.12)(@types/node@24.2.0)(@vitest/ui@3.1.4)(yaml@2.7.1) arrow: dependencies: @@ -143,10 +146,10 @@ importers: devDependencies: '@astrojs/starlight': specifier: 0.34.3 - version: 0.34.3(astro@5.7.12(@types/node@22.15.31)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1)) + version: 0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1)) astro: specifier: 5.7.12 - version: 5.7.12(@types/node@22.15.31)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1) + version: 5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1) dpkit: specifier: workspace:* version: link:../dpkit @@ -158,10 +161,10 @@ importers: version: 0.34.2 starlight-scroll-to-top: specifier: 0.1.1 - version: 0.1.1(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@22.15.31)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1))) + version: 0.1.1(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1))) starlight-typedoc: specifier: 0.21.3 - version: 0.21.3(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@22.15.31)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1)))(typedoc-plugin-markdown@4.6.3(typedoc@0.28.5(typescript@5.8.3)))(typedoc@0.28.5(typescript@5.8.3)) + version: 0.21.3(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1)))(typedoc-plugin-markdown@4.6.3(typedoc@0.28.5(typescript@5.8.3)))(typedoc@0.28.5(typescript@5.8.3)) tempy: specifier: 3.1.0 version: 3.1.0 @@ -1337,15 +1340,12 @@ packages: '@types/node@17.0.45': resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - '@types/node@22.14.1': - resolution: {integrity: sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw==} - - '@types/node@22.15.24': - resolution: {integrity: sha512-w9CZGm9RDjzTh/D+hFwlBJ3ziUaVw7oufKA3vOFSOZlzmW9AkZnfjPb+DLnrV6qtgL/LNmP0/2zBNCFHL3F0ng==} - '@types/node@22.15.31': resolution: {integrity: sha512-jnVe5ULKl6tijxUhvQeNbQG/84fHfg+yMak02cT8QVhBx/F05rAVxCGBYYTh2EKz22D6JF5ktXuNwdx7b9iEGw==} + '@types/node@24.2.0': + resolution: {integrity: sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw==} + '@types/sax@1.2.7': resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} @@ -3352,6 +3352,9 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici-types@7.10.0: + resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==} + unicode-properties@1.4.1: resolution: {integrity: sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==} @@ -3700,12 +3703,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/mdx@4.2.6(astro@5.7.12(@types/node@22.15.31)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1))': + '@astrojs/mdx@4.2.6(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1))': dependencies: '@astrojs/markdown-remark': 6.3.1 '@mdx-js/mdx': 3.1.0(acorn@8.14.1) acorn: 8.14.1 - astro: 5.7.12(@types/node@22.15.31)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1) + astro: 5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1) es-module-lexer: 1.7.0 estree-util-visit: 2.0.0 hast-util-to-html: 9.0.5 @@ -3729,17 +3732,17 @@ snapshots: stream-replace-string: 2.0.0 zod: 3.24.4 - '@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@22.15.31)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1))': + '@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1))': dependencies: '@astrojs/markdown-remark': 6.3.1 - '@astrojs/mdx': 4.2.6(astro@5.7.12(@types/node@22.15.31)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1)) + '@astrojs/mdx': 4.2.6(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1)) '@astrojs/sitemap': 3.4.0 '@pagefind/default-ui': 1.3.0 '@types/hast': 3.0.4 '@types/js-yaml': 4.0.9 '@types/mdast': 4.0.4 - astro: 5.7.12(@types/node@22.15.31)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1) - astro-expressive-code: 0.41.2(astro@5.7.12(@types/node@22.15.31)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1)) + astro: 5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1) + astro-expressive-code: 0.41.2(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1)) bcp-47: 2.1.0 hast-util-from-html: 2.0.3 hast-util-select: 6.0.4 @@ -4647,17 +4650,13 @@ snapshots: '@types/node@17.0.45': {} - '@types/node@22.14.1': - dependencies: - undici-types: 6.21.0 - - '@types/node@22.15.24': + '@types/node@22.15.31': dependencies: undici-types: 6.21.0 - '@types/node@22.15.31': + '@types/node@24.2.0': dependencies: - undici-types: 6.21.0 + undici-types: 7.10.0 '@types/sax@1.2.7': dependencies: @@ -4673,11 +4672,11 @@ snapshots: '@types/yauzl-promise@4.0.1': dependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.31 '@types/yazl@3.3.0': dependencies: - '@types/node': 22.15.24 + '@types/node': 22.15.31 '@ungap/structured-clone@1.3.0': {} @@ -4695,7 +4694,7 @@ snapshots: std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.1.4(@types/debug@4.1.12)(@types/node@22.15.31)(@vitest/ui@3.1.4)(yaml@2.7.1) + vitest: 3.1.4(@types/debug@4.1.12)(@types/node@24.2.0)(@vitest/ui@3.1.4)(yaml@2.7.1) transitivePeerDependencies: - supports-color @@ -4706,13 +4705,13 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.1.4(vite@6.3.5(@types/node@22.15.31)(yaml@2.7.1))': + '@vitest/mocker@3.1.4(vite@6.3.5(@types/node@24.2.0)(yaml@2.7.1))': dependencies: '@vitest/spy': 3.1.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.3.5(@types/node@22.15.31)(yaml@2.7.1) + vite: 6.3.5(@types/node@24.2.0)(yaml@2.7.1) '@vitest/pretty-format@3.1.4': dependencies: @@ -4742,7 +4741,7 @@ snapshots: sirv: 3.0.1 tinyglobby: 0.2.13 tinyrainbow: 2.0.0 - vitest: 3.1.4(@types/debug@4.1.12)(@types/node@22.15.31)(@vitest/ui@3.1.4)(yaml@2.7.1) + vitest: 3.1.4(@types/debug@4.1.12)(@types/node@24.2.0)(@vitest/ui@3.1.4)(yaml@2.7.1) '@vitest/utils@3.1.4': dependencies: @@ -4809,12 +4808,12 @@ snapshots: astring@1.9.0: {} - astro-expressive-code@0.41.2(astro@5.7.12(@types/node@22.15.31)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1)): + astro-expressive-code@0.41.2(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1)): dependencies: - astro: 5.7.12(@types/node@22.15.31)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1) + astro: 5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1) rehype-expressive-code: 0.41.2 - astro@5.7.12(@types/node@22.15.31)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1): + astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1): dependencies: '@astrojs/compiler': 2.12.0 '@astrojs/internal-helpers': 0.6.1 @@ -4868,8 +4867,8 @@ snapshots: unist-util-visit: 5.0.0 unstorage: 1.16.0 vfile: 6.0.3 - vite: 6.3.5(@types/node@22.15.31)(yaml@2.7.1) - vitefu: 1.0.6(vite@6.3.5(@types/node@22.15.31)(yaml@2.7.1)) + vite: 6.3.5(@types/node@24.2.0)(yaml@2.7.1) + vitefu: 1.0.6(vite@6.3.5(@types/node@24.2.0)(yaml@2.7.1)) xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 yocto-spinner: 0.2.2 @@ -7102,13 +7101,13 @@ snapshots: stackback@0.0.2: {} - starlight-scroll-to-top@0.1.1(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@22.15.31)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1))): + starlight-scroll-to-top@0.1.1(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1))): dependencies: - '@astrojs/starlight': 0.34.3(astro@5.7.12(@types/node@22.15.31)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1)) + '@astrojs/starlight': 0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1)) - starlight-typedoc@0.21.3(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@22.15.31)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1)))(typedoc-plugin-markdown@4.6.3(typedoc@0.28.5(typescript@5.8.3)))(typedoc@0.28.5(typescript@5.8.3)): + starlight-typedoc@0.21.3(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1)))(typedoc-plugin-markdown@4.6.3(typedoc@0.28.5(typescript@5.8.3)))(typedoc@0.28.5(typescript@5.8.3)): dependencies: - '@astrojs/starlight': 0.34.3(astro@5.7.12(@types/node@22.15.31)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1)) + '@astrojs/starlight': 0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1)) github-slugger: 2.0.0 typedoc: 0.28.5(typescript@5.8.3) typedoc-plugin-markdown: 4.6.3(typedoc@0.28.5(typescript@5.8.3)) @@ -7262,6 +7261,8 @@ snapshots: undici-types@6.21.0: {} + undici-types@7.10.0: {} + unicode-properties@1.4.1: dependencies: base64-js: 1.5.1 @@ -7382,13 +7383,13 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-node@3.1.4(@types/node@22.15.31)(yaml@2.7.1): + vite-node@3.1.4(@types/node@24.2.0)(yaml@2.7.1): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.3.5(@types/node@22.15.31)(yaml@2.7.1) + vite: 6.3.5(@types/node@24.2.0)(yaml@2.7.1) transitivePeerDependencies: - '@types/node' - jiti @@ -7403,7 +7404,7 @@ snapshots: - tsx - yaml - vite@6.3.5(@types/node@22.15.31)(yaml@2.7.1): + vite@6.3.5(@types/node@24.2.0)(yaml@2.7.1): dependencies: esbuild: 0.25.4 fdir: 6.4.4(picomatch@4.0.2) @@ -7412,18 +7413,18 @@ snapshots: rollup: 4.40.2 tinyglobby: 0.2.13 optionalDependencies: - '@types/node': 22.15.31 + '@types/node': 24.2.0 fsevents: 2.3.3 yaml: 2.7.1 - vitefu@1.0.6(vite@6.3.5(@types/node@22.15.31)(yaml@2.7.1)): + vitefu@1.0.6(vite@6.3.5(@types/node@24.2.0)(yaml@2.7.1)): optionalDependencies: - vite: 6.3.5(@types/node@22.15.31)(yaml@2.7.1) + vite: 6.3.5(@types/node@24.2.0)(yaml@2.7.1) - vitest@3.1.4(@types/debug@4.1.12)(@types/node@22.15.31)(@vitest/ui@3.1.4)(yaml@2.7.1): + vitest@3.1.4(@types/debug@4.1.12)(@types/node@24.2.0)(@vitest/ui@3.1.4)(yaml@2.7.1): dependencies: '@vitest/expect': 3.1.4 - '@vitest/mocker': 3.1.4(vite@6.3.5(@types/node@22.15.31)(yaml@2.7.1)) + '@vitest/mocker': 3.1.4(vite@6.3.5(@types/node@24.2.0)(yaml@2.7.1)) '@vitest/pretty-format': 3.1.4 '@vitest/runner': 3.1.4 '@vitest/snapshot': 3.1.4 @@ -7440,12 +7441,12 @@ snapshots: tinyglobby: 0.2.13 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.3.5(@types/node@22.15.31)(yaml@2.7.1) - vite-node: 3.1.4(@types/node@22.15.31)(yaml@2.7.1) + vite: 6.3.5(@types/node@24.2.0)(yaml@2.7.1) + vite-node: 3.1.4(@types/node@24.2.0)(yaml@2.7.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 - '@types/node': 22.15.31 + '@types/node': 24.2.0 '@vitest/ui': 3.1.4(vitest@3.1.4) transitivePeerDependencies: - jiti From 0983e16dd8bcd3e4d7d02117ce0e6ec844134db6 Mon Sep 17 00:00:00 2001 From: roll Date: Thu, 7 Aug 2025 10:53:41 +0100 Subject: [PATCH 30/80] Fixed examples --- docs/examples/getting-started-2.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/examples/getting-started-2.ts b/docs/examples/getting-started-2.ts index 2f931c23..e921ec92 100644 --- a/docs/examples/getting-started-2.ts +++ b/docs/examples/getting-started-2.ts @@ -1,6 +1,6 @@ import { assertCamtrapPackage, loadPackage } from "dpkit" -const { dataPackage } = await loadPackage( +const dataPackage = await loadPackage( "https://raw.githubusercontent.com/tdwg/camtrap-dp/refs/tags/1.0.1/example/datapackage.json", ) From b46cbacaa07e59cb4e66e034ac54e6b1acc584ed Mon Sep 17 00:00:00 2001 From: roll Date: Thu, 7 Aug 2025 11:01:21 +0100 Subject: [PATCH 31/80] Fixed folder plugin bug --- folder/plugin.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/folder/plugin.ts b/folder/plugin.ts index 23dbf566..11d7d03c 100644 --- a/folder/plugin.ts +++ b/folder/plugin.ts @@ -5,7 +5,7 @@ import { loadPackageFromFolder } from "./package/index.js" export class FolderPlugin implements Plugin { async loadPackage(source: string) { - const isFolder = getIsFolder(source) + const isFolder = await getIsFolder(source) if (!isFolder) return undefined const dataPackage = await loadPackageFromFolder(source) From 4c062c1f5c5c48bf3a9c7e89a941cdebff17e852 Mon Sep 17 00:00:00 2001 From: roll Date: Thu, 7 Aug 2025 11:28:28 +0100 Subject: [PATCH 32/80] Added deno/bun/browser support notes --- docs/content/docs/guides/inline.md | 2 ++ docs/content/docs/guides/jupyter.md | 8 ++++++ docs/content/docs/guides/table.md | 2 ++ docs/content/docs/overview/getting-started.md | 28 +++++++++++++++++-- 4 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 docs/content/docs/guides/jupyter.md diff --git a/docs/content/docs/guides/inline.md b/docs/content/docs/guides/inline.md index 0f77f01d..fa9d865d 100644 --- a/docs/content/docs/guides/inline.md +++ b/docs/content/docs/guides/inline.md @@ -1,5 +1,7 @@ --- title: Working with inline data +sidebar: + order: 5 --- Dpkit provides a package for reading inline data tables embedded directly in data package resources. diff --git a/docs/content/docs/guides/jupyter.md b/docs/content/docs/guides/jupyter.md new file mode 100644 index 00000000..b378f509 --- /dev/null +++ b/docs/content/docs/guides/jupyter.md @@ -0,0 +1,8 @@ +--- +title: Using dpkit in Jupyter Notebooks +sidebar: + order: 10 +--- + +test + diff --git a/docs/content/docs/guides/table.md b/docs/content/docs/guides/table.md index 907c9e3a..3c47f954 100644 --- a/docs/content/docs/guides/table.md +++ b/docs/content/docs/guides/table.md @@ -1,5 +1,7 @@ --- title: Working with tabular data +sidebar: + order: 6 --- The `@dpkit/table` package provides high-performance data validation and processing capabilities for tabular data. Built on top of **nodejs-polars** (a Rust-based DataFrame library), it offers robust schema validation, type inference, and error handling for CSV, Excel, and other tabular data formats. diff --git a/docs/content/docs/overview/getting-started.md b/docs/content/docs/overview/getting-started.md index 8883afc4..26e09d32 100644 --- a/docs/content/docs/overview/getting-started.md +++ b/docs/content/docs/overview/getting-started.md @@ -6,11 +6,29 @@ sidebar: This guide will help you get started with dpkit. If you are new to the core framework's tecnhologies, please take a look at the [Data Package standard](https://datapackage.org/) and [Polars DataFrames](https://pola.rs/) documentation. +## Runtimes -## Installation +:::tip +- It is possible to use dpkit in [Jupyter Notebooks](/guides/jupyter)! +::: + +dpkit and all its packages support all the prominent TypeScript runtimes: -:::note[Prerequisites] - **Node.js v20+** +- **Deno v2+** +- **Bun v1+** + +The core package `@dpkit/core` additionally supports browser environments: + +- **Edge v92+** +- **Chrome v92+** +- **Firefox v90+** +- and others + +## Installation + +:::note +The documentation uses `npm` command to install packages. If you are using other package managers, please adjust the commands accordingly. ::: The framework can be installed as one package: @@ -25,6 +43,12 @@ Or cherry-picked from individual packages: npm install @dpkit/core @dpkit/zenodo ``` +Or the core package can be just imported in browsers using NPM CDNs: + +```js +import { loadPackageDescriptor } from "https://esm.sh/@dpkit/core" +``` + ## TypeScript :::tip From 8775ec24f3015d16ea22ce26adb25ebb919644e3 Mon Sep 17 00:00:00 2001 From: roll Date: Thu, 7 Aug 2025 11:58:59 +0100 Subject: [PATCH 33/80] Removed tempy when not needed --- arrow/package.json | 3 +- arrow/table/save.spec.ts | 27 +++--- csv/package.json | 3 +- csv/table/save.spec.ts | 92 +++++++++---------- docs/content/docs/overview/getting-started.md | 13 ++- docs/examples/getting-started-4.ts | 11 +-- json/package.json | 3 +- parquet/package.json | 3 +- parquet/table/save.spec.ts | 27 +++--- pnpm-lock.yaml | 20 +--- 10 files changed, 89 insertions(+), 113 deletions(-) diff --git a/arrow/package.json b/arrow/package.json index 2798ac2c..abf8b9c4 100644 --- a/arrow/package.json +++ b/arrow/package.json @@ -30,7 +30,6 @@ "nodejs-polars": "^0.18.0" }, "devDependencies": { - "@dpkit/test": "workspace:*", - "tempy": "^3.1.0" + "@dpkit/test": "workspace:*" } } diff --git a/arrow/table/save.spec.ts b/arrow/table/save.spec.ts index e630af48..47d0f487 100644 --- a/arrow/table/save.spec.ts +++ b/arrow/table/save.spec.ts @@ -1,25 +1,24 @@ +import { getTempFilePath } from "@dpkit/file" import { DataFrame } from "nodejs-polars" -import { temporaryFileTask } from "tempy" import { describe, expect, it } from "vitest" import { loadArrowTable } from "./load.js" import { saveArrowTable } from "./save.js" describe("saveArrowTable", () => { it("should save table to Arrow file", async () => { - await temporaryFileTask(async path => { - const source = DataFrame({ - id: [1.0, 2.0, 3.0], - name: ["Alice", "Bob", "Charlie"], - }).lazy() + const path = getTempFilePath() + const source = DataFrame({ + id: [1.0, 2.0, 3.0], + name: ["Alice", "Bob", "Charlie"], + }).lazy() - await saveArrowTable(source, { path }) + await saveArrowTable(source, { path }) - const target = await loadArrowTable({ path }) - expect((await target.collect()).toRecords()).toEqual([ - { id: 1.0, name: "Alice" }, - { id: 2.0, name: "Bob" }, - { id: 3.0, name: "Charlie" }, - ]) - }) + const target = await loadArrowTable({ path }) + expect((await target.collect()).toRecords()).toEqual([ + { id: 1.0, name: "Alice" }, + { id: 2.0, name: "Bob" }, + { id: 3.0, name: "Charlie" }, + ]) }) }) diff --git a/csv/package.json b/csv/package.json index b04021e6..d9e29e0b 100644 --- a/csv/package.json +++ b/csv/package.json @@ -30,7 +30,6 @@ "nodejs-polars": "^0.18.0" }, "devDependencies": { - "@dpkit/test": "workspace:*", - "tempy": "^3.1.0" + "@dpkit/test": "workspace:*" } } diff --git a/csv/table/save.spec.ts b/csv/table/save.spec.ts index 024589bd..6f978ecc 100644 --- a/csv/table/save.spec.ts +++ b/csv/table/save.spec.ts @@ -1,74 +1,70 @@ import { readFile } from "node:fs/promises" +import { getTempFilePath } from "@dpkit/file" import { DataFrame } from "nodejs-polars" -import { temporaryFileTask } from "tempy" import { describe, expect, it } from "vitest" import { saveCsvTable } from "./save.js" describe("saveCsvTable", () => { it("should save table to file", async () => { - await temporaryFileTask(async path => { - const table = DataFrame({ - id: [1.0, 2.0, 3.0], - name: ["Alice", "Bob", "Charlie"], - }).lazy() + const path = getTempFilePath() + const table = DataFrame({ + id: [1.0, 2.0, 3.0], + name: ["Alice", "Bob", "Charlie"], + }).lazy() - await saveCsvTable(table, { path }) + await saveCsvTable(table, { path }) - const content = await readFile(path, "utf-8") - expect(content).toEqual("id,name\n1.0,Alice\n2.0,Bob\n3.0,Charlie\n") - }) + const content = await readFile(path, "utf-8") + expect(content).toEqual("id,name\n1.0,Alice\n2.0,Bob\n3.0,Charlie\n") }) it("should save with custom delimiter", async () => { - await temporaryFileTask(async path => { - const table = DataFrame({ - id: [1.0, 2.0, 3.0], - name: ["Alice", "Bob", "Charlie"], - }).lazy() - - await saveCsvTable(table, { - path, - dialect: { delimiter: ";" }, - }) + const path = getTempFilePath() + const table = DataFrame({ + id: [1.0, 2.0, 3.0], + name: ["Alice", "Bob", "Charlie"], + }).lazy() - const content = await readFile(path, "utf-8") - expect(content).toEqual("id;name\n1.0;Alice\n2.0;Bob\n3.0;Charlie\n") + await saveCsvTable(table, { + path, + dialect: { delimiter: ";" }, }) + + const content = await readFile(path, "utf-8") + expect(content).toEqual("id;name\n1.0;Alice\n2.0;Bob\n3.0;Charlie\n") }) it("should save without header", async () => { - await temporaryFileTask(async path => { - const table = DataFrame({ - id: [1.0, 2.0, 3.0], - name: ["Alice", "Bob", "Charlie"], - }).lazy() - - await saveCsvTable(table, { - path, - dialect: { header: false }, - }) + const path = getTempFilePath() + const table = DataFrame({ + id: [1.0, 2.0, 3.0], + name: ["Alice", "Bob", "Charlie"], + }).lazy() - const content = await readFile(path, "utf-8") - expect(content).toEqual("1.0,Alice\n2.0,Bob\n3.0,Charlie\n") + await saveCsvTable(table, { + path, + dialect: { header: false }, }) + + const content = await readFile(path, "utf-8") + expect(content).toEqual("1.0,Alice\n2.0,Bob\n3.0,Charlie\n") }) it("should save with custom quote char", async () => { - await temporaryFileTask(async path => { - const table = DataFrame({ - id: [1.0, 2.0, 3.0], - name: ["Alice,Smith", "Bob,Jones", "Charlie,Brown"], - }).lazy() - - await saveCsvTable(table, { - path, - dialect: { quoteChar: "'" }, - }) + const path = getTempFilePath() + const table = DataFrame({ + id: [1.0, 2.0, 3.0], + name: ["Alice,Smith", "Bob,Jones", "Charlie,Brown"], + }).lazy() - const content = await readFile(path, "utf-8") - expect(content).toEqual( - "id,name\n1.0,'Alice,Smith'\n2.0,'Bob,Jones'\n3.0,'Charlie,Brown'\n", - ) + await saveCsvTable(table, { + path, + dialect: { quoteChar: "'" }, }) + + const content = await readFile(path, "utf-8") + expect(content).toEqual( + "id,name\n1.0,'Alice,Smith'\n2.0,'Bob,Jones'\n3.0,'Charlie,Brown'\n", + ) }) }) diff --git a/docs/content/docs/overview/getting-started.md b/docs/content/docs/overview/getting-started.md index 26e09d32..afe0d11f 100644 --- a/docs/content/docs/overview/getting-started.md +++ b/docs/content/docs/overview/getting-started.md @@ -119,18 +119,17 @@ import { loadPackageDescriptor, loadPackageFromZip, savePackageToZip, + getTempFilePath, } from "dpkit" -import { temporaryFileTask } from "tempy" -const sourcePackage = await loadPackageDescriptor( +const archivePath = getTempFilePath() +const sourcePath = await loadPackageDescriptor( "https://raw.githubusercontent.com/roll/currency-codes/refs/heads/master/datapackage.json", ) -await temporaryFileTask(async archivePath => { - await savePackageToZip(sourcePackage, { archivePath }) - const targetPackage = await loadPackageFromZip(archivePath) - console.log(targetPackage) -}) +await savePackageToZip(sourcePackage, { archivePath }) +const targetPackage = await loadPackageFromZip(archivePath) +console.log(targetPackage) ``` Reading a CSV table: diff --git a/docs/examples/getting-started-4.ts b/docs/examples/getting-started-4.ts index fd7896b0..e4a255cd 100644 --- a/docs/examples/getting-started-4.ts +++ b/docs/examples/getting-started-4.ts @@ -1,16 +1,15 @@ import { + getTempFilePath, loadPackageDescriptor, loadPackageFromZip, savePackageToZip, } from "dpkit" -import { temporaryFileTask } from "tempy" +const archivePath = getTempFilePath() const sourcePackage = await loadPackageDescriptor( "https://raw.githubusercontent.com/roll/currency-codes/refs/heads/master/datapackage.json", ) -await temporaryFileTask(async archivePath => { - await savePackageToZip(sourcePackage, { archivePath }) - const targetPackage = await loadPackageFromZip(archivePath) - console.log(targetPackage) -}) +await savePackageToZip(sourcePackage, { archivePath }) +const targetPackage = await loadPackageFromZip(archivePath) +console.log(targetPackage) diff --git a/json/package.json b/json/package.json index e267f563..50a6337f 100644 --- a/json/package.json +++ b/json/package.json @@ -30,7 +30,6 @@ "nodejs-polars": "^0.18.0" }, "devDependencies": { - "@dpkit/test": "workspace:*", - "tempy": "^3.1.0" + "@dpkit/test": "workspace:*" } } diff --git a/parquet/package.json b/parquet/package.json index a4da7ade..03ff6e8d 100644 --- a/parquet/package.json +++ b/parquet/package.json @@ -30,7 +30,6 @@ "nodejs-polars": "^0.18.0" }, "devDependencies": { - "@dpkit/test": "workspace:*", - "tempy": "^3.1.0" + "@dpkit/test": "workspace:*" } } diff --git a/parquet/table/save.spec.ts b/parquet/table/save.spec.ts index d024d32d..4c43089c 100644 --- a/parquet/table/save.spec.ts +++ b/parquet/table/save.spec.ts @@ -1,25 +1,24 @@ +import { getTempFilePath } from "@dpkit/file" import { DataFrame } from "nodejs-polars" -import { temporaryFileTask } from "tempy" import { describe, expect, it } from "vitest" import { loadParquetTable } from "./load.js" import { saveParquetTable } from "./save.js" describe("saveParquetTable", () => { it("should save table to Parquet file", async () => { - await temporaryFileTask(async path => { - const source = DataFrame({ - id: [1.0, 2.0, 3.0], - name: ["Alice", "Bob", "Charlie"], - }).lazy() + const path = getTempFilePath() + const source = DataFrame({ + id: [1.0, 2.0, 3.0], + name: ["Alice", "Bob", "Charlie"], + }).lazy() - await saveParquetTable(source, { path }) + await saveParquetTable(source, { path }) - const target = await loadParquetTable({ path }) - expect((await target.collect()).toRecords()).toEqual([ - { id: 1.0, name: "Alice" }, - { id: 2.0, name: "Bob" }, - { id: 3.0, name: "Charlie" }, - ]) - }) + const target = await loadParquetTable({ path }) + expect((await target.collect()).toRecords()).toEqual([ + { id: 1.0, name: "Alice" }, + { id: 2.0, name: "Bob" }, + { id: 3.0, name: "Charlie" }, + ]) }) }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0eab73c2..9e7e3926 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,7 +15,7 @@ importers: specifier: 2.29.5 version: 2.29.5 '@types/node': - specifier: ^24.2.0 + specifier: 24.2.0 version: 24.2.0 '@vitest/coverage-v8': specifier: 3.1.4 @@ -63,9 +63,6 @@ importers: '@dpkit/test': specifier: workspace:* version: link:../test - tempy: - specifier: ^3.1.0 - version: 3.1.0 bin: {} @@ -126,9 +123,6 @@ importers: '@dpkit/test': specifier: workspace:* version: link:../test - tempy: - specifier: ^3.1.0 - version: 3.1.0 datahub: dependencies: @@ -300,9 +294,6 @@ importers: '@dpkit/test': specifier: workspace:* version: link:../test - tempy: - specifier: ^3.1.0 - version: 3.1.0 ods: {} @@ -327,9 +318,6 @@ importers: '@dpkit/test': specifier: workspace:* version: link:../test - tempy: - specifier: ^3.1.0 - version: 3.1.0 table: dependencies: @@ -4626,7 +4614,7 @@ snapshots: '@types/fontkit@2.0.8': dependencies: - '@types/node': 22.15.31 + '@types/node': 24.2.0 '@types/hast@3.0.4': dependencies: @@ -4660,11 +4648,11 @@ snapshots: '@types/sax@1.2.7': dependencies: - '@types/node': 22.15.31 + '@types/node': 24.2.0 '@types/set-cookie-parser@2.4.10': dependencies: - '@types/node': 22.15.31 + '@types/node': 24.2.0 '@types/unist@2.0.11': {} From 4130280b97f5ea10b0f0f662a89dca267d4410ac Mon Sep 17 00:00:00 2001 From: roll Date: Thu, 7 Aug 2025 12:24:19 +0100 Subject: [PATCH 34/80] Added polly note --- test/recording/recording.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/recording/recording.ts b/test/recording/recording.ts index e0241620..bc7360d9 100644 --- a/test/recording/recording.ts +++ b/test/recording/recording.ts @@ -6,6 +6,8 @@ import { afterAll, beforeAll, beforeEach } from "vitest" // @ts-ignore Polly.register(FSPersister) +// It emits a deprecation warning, but at the moment there is not +// working alternative for the fetch adapter // @ts-ignore Polly.register(FetchAdapter) From 01f645a2fc85462b35f52223cd44cd461d61471e Mon Sep 17 00:00:00 2001 From: roll Date: Thu, 7 Aug 2025 12:32:09 +0100 Subject: [PATCH 35/80] Don't use node globals --- csv/table/load.spec.ts | 1 + file/file/temp.ts | 1 + github/package/save.ts | 1 + json/buffer/decode.ts | 2 ++ json/buffer/encode.ts | 2 ++ package.json | 1 - pnpm-lock.yaml | 3 --- zip/package/save.ts | 1 + 8 files changed, 8 insertions(+), 4 deletions(-) diff --git a/csv/table/load.spec.ts b/csv/table/load.spec.ts index eb811b56..f54d7215 100644 --- a/csv/table/load.spec.ts +++ b/csv/table/load.spec.ts @@ -1,3 +1,4 @@ +import { Buffer } from "node:buffer" import { writeTempFile } from "@dpkit/file" import { useRecording } from "@dpkit/test" import { describe, expect, it } from "vitest" diff --git a/file/file/temp.ts b/file/file/temp.ts index 02905602..5fbae9ed 100644 --- a/file/file/temp.ts +++ b/file/file/temp.ts @@ -1,3 +1,4 @@ +import type { Buffer } from "node:buffer" import { unlinkSync } from "node:fs" import { writeFile } from "node:fs/promises" import exitHook from "exit-hook" diff --git a/github/package/save.ts b/github/package/save.ts index 153cfbb6..682fc2d1 100644 --- a/github/package/save.ts +++ b/github/package/save.ts @@ -1,3 +1,4 @@ +import { Buffer } from "node:buffer" import { buffer } from "node:stream/consumers" import type { Descriptor, Package } from "@dpkit/core" import { denormalizePackage, stringifyDescriptor } from "@dpkit/core" diff --git a/json/buffer/decode.ts b/json/buffer/decode.ts index a7cfcbad..0a672643 100644 --- a/json/buffer/decode.ts +++ b/json/buffer/decode.ts @@ -1,3 +1,5 @@ +import type { Buffer } from "node:buffer" + export function decodeJsonBuffer( buffer: Buffer, options: { isLines: boolean }, diff --git a/json/buffer/encode.ts b/json/buffer/encode.ts index d1b93102..952e85cd 100644 --- a/json/buffer/encode.ts +++ b/json/buffer/encode.ts @@ -1,3 +1,5 @@ +import { Buffer } from "node:buffer" + export function encodeJsonBuffer(data: any, options: { isLines: boolean }) { const string = options.isLines ? data.map((line: any) => JSON.stringify(line)).join("\n") diff --git a/package.json b/package.json index 869890af..fd598df8 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,6 @@ "devDependencies": { "@biomejs/biome": "1.9.4", "@changesets/cli": "2.29.5", - "@types/node": "24.2.0", "@vitest/coverage-v8": "3.1.4", "@vitest/ui": "3.1.4", "husky": "9.1.7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9e7e3926..dc8ea9f4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,9 +14,6 @@ importers: '@changesets/cli': specifier: 2.29.5 version: 2.29.5 - '@types/node': - specifier: 24.2.0 - version: 24.2.0 '@vitest/coverage-v8': specifier: 3.1.4 version: 3.1.4(vitest@3.1.4) diff --git a/zip/package/save.ts b/zip/package/save.ts index 03a75260..6680a861 100644 --- a/zip/package/save.ts +++ b/zip/package/save.ts @@ -1,3 +1,4 @@ +import { Buffer } from "node:buffer" import { createWriteStream } from "node:fs" import { pipeline } from "node:stream/promises" import type { Descriptor, Package } from "@dpkit/core" From 1a6f6f4bf4309d4520bdba07160cc5da5e14192d Mon Sep 17 00:00:00 2001 From: roll Date: Thu, 7 Aug 2025 12:45:52 +0100 Subject: [PATCH 36/80] Fixed examples --- ckan/package/save.ts | 2 +- core/package/load.ts | 1 + core/resource/process/normalize.ts | 4 ++-- github/package/save.ts | 4 +--- zenodo/package/save.ts | 2 +- zip/package/save.ts | 2 +- 6 files changed, 7 insertions(+), 8 deletions(-) diff --git a/ckan/package/save.ts b/ckan/package/save.ts index 13b5b544..c2ce65b2 100644 --- a/ckan/package/save.ts +++ b/ckan/package/save.ts @@ -97,7 +97,7 @@ export async function savePackageToCkan( const upload = { name: denormalizedPath, - data: new Blob([stringifyDescriptor({ descriptor })]), + data: new Blob([stringifyDescriptor(descriptor)]), } await makeCkanApiRequest({ diff --git a/core/package/load.ts b/core/package/load.ts index 267d45e5..92b5cb57 100644 --- a/core/package/load.ts +++ b/core/package/load.ts @@ -7,6 +7,7 @@ import { assertPackage } from "./assert.js" */ export async function loadPackageDescriptor(path: string) { const { basepath, descriptor } = await loadDescriptor(path) + console.log(descriptor.resources[0]) const dataPackage = await assertPackage(descriptor, { basepath }) return dataPackage } diff --git a/core/resource/process/normalize.ts b/core/resource/process/normalize.ts index 442fefc4..c3e1c178 100644 --- a/core/resource/process/normalize.ts +++ b/core/resource/process/normalize.ts @@ -77,12 +77,12 @@ function normalizePaths( function normalizeResourceDialect(descriptor: Descriptor) { if (isDescriptor(descriptor.dialect)) { - descriptor.dialect = normalizeDialect({ descriptor: descriptor.dialect }) + descriptor.dialect = normalizeDialect(descriptor.dialect) } } function normalizeResourceSchema(descriptor: Descriptor) { if (isDescriptor(descriptor.schema)) { - descriptor.schema = normalizeSchema({ descriptor: descriptor.schema }) + descriptor.schema = normalizeSchema(descriptor.schema) } } diff --git a/github/package/save.ts b/github/package/save.ts index 682fc2d1..29642f06 100644 --- a/github/package/save.ts +++ b/github/package/save.ts @@ -69,9 +69,7 @@ export async function savePackageToGithub( const payload = { path: denormalizedPath, message: `Added file "${denormalizedPath}"`, - content: Buffer.from(stringifyDescriptor({ descriptor })).toString( - "base64", - ), + content: Buffer.from(stringifyDescriptor(descriptor)).toString("base64"), } await makeGithubApiRequest({ diff --git a/zenodo/package/save.ts b/zenodo/package/save.ts index ba8efed1..0b1016a1 100644 --- a/zenodo/package/save.ts +++ b/zenodo/package/save.ts @@ -73,7 +73,7 @@ export async function savePackageToZenodo( for (const denormalizedPath of ["datapackage.json"]) { const upload = { name: denormalizedPath, - data: new Blob([stringifyDescriptor({ descriptor })]), + data: new Blob([stringifyDescriptor(descriptor)]), } await makeZenodoApiRequest({ diff --git a/zip/package/save.ts b/zip/package/save.ts index 6680a861..59f6e071 100644 --- a/zip/package/save.ts +++ b/zip/package/save.ts @@ -48,7 +48,7 @@ export async function savePackageToZip( } zipfile.addBuffer( - Buffer.from(stringifyDescriptor({ descriptor })), + Buffer.from(stringifyDescriptor(descriptor)), "datapackage.json", ) From b9778bbde48debecc0bd77e5c57b59d5a43b0abe Mon Sep 17 00:00:00 2001 From: roll Date: Thu, 7 Aug 2025 12:49:10 +0100 Subject: [PATCH 37/80] Renamed general dirs --- ckan/{general => ckan}/index.ts | 0 ckan/{general => ckan}/request.ts | 0 ckan/package/load.ts | 2 +- ckan/package/save.ts | 2 +- github/{general => github}/index.ts | 0 github/{general => github}/path.ts | 0 github/{general => github}/request.ts | 0 github/package/load.ts | 2 +- github/package/save.ts | 2 +- zenodo/package/load.ts | 2 +- zenodo/package/save.ts | 2 +- zenodo/{general => zenodo}/index.ts | 0 zenodo/{general => zenodo}/request.ts | 0 13 files changed, 6 insertions(+), 6 deletions(-) rename ckan/{general => ckan}/index.ts (100%) rename ckan/{general => ckan}/request.ts (100%) rename github/{general => github}/index.ts (100%) rename github/{general => github}/path.ts (100%) rename github/{general => github}/request.ts (100%) rename zenodo/{general => zenodo}/index.ts (100%) rename zenodo/{general => zenodo}/request.ts (100%) diff --git a/ckan/general/index.ts b/ckan/ckan/index.ts similarity index 100% rename from ckan/general/index.ts rename to ckan/ckan/index.ts diff --git a/ckan/general/request.ts b/ckan/ckan/request.ts similarity index 100% rename from ckan/general/request.ts rename to ckan/ckan/request.ts diff --git a/ckan/package/load.ts b/ckan/package/load.ts index a3871ffc..6c445e63 100644 --- a/ckan/package/load.ts +++ b/ckan/package/load.ts @@ -1,5 +1,5 @@ import { mergePackages } from "@dpkit/core" -import { makeCkanApiRequest } from "../general/index.js" +import { makeCkanApiRequest } from "../ckan/index.js" import type { CkanPackage } from "./Package.js" import { normalizeCkanPackage } from "./process/normalize.js" diff --git a/ckan/package/save.ts b/ckan/package/save.ts index c2ce65b2..28991dcb 100644 --- a/ckan/package/save.ts +++ b/ckan/package/save.ts @@ -11,7 +11,7 @@ import { loadFileStream, saveResourceFiles, } from "@dpkit/file" -import { makeCkanApiRequest } from "../general/index.js" +import { makeCkanApiRequest } from "../ckan/index.js" import type { CkanResource } from "../resource/index.js" import { denormalizeCkanResource } from "../resource/index.js" import { denormalizeCkanPackage } from "./process/denormalize.js" diff --git a/github/general/index.ts b/github/github/index.ts similarity index 100% rename from github/general/index.ts rename to github/github/index.ts diff --git a/github/general/path.ts b/github/github/path.ts similarity index 100% rename from github/general/path.ts rename to github/github/path.ts diff --git a/github/general/request.ts b/github/github/request.ts similarity index 100% rename from github/general/request.ts rename to github/github/request.ts diff --git a/github/package/load.ts b/github/package/load.ts index e8006533..936d4386 100644 --- a/github/package/load.ts +++ b/github/package/load.ts @@ -1,5 +1,5 @@ import { mergePackages } from "@dpkit/core" -import { makeGithubApiRequest } from "../general/index.js" +import { makeGithubApiRequest } from "../github/index.js" import type { GithubResource } from "../resource/index.js" import type { GithubPackage } from "./Package.js" import { normalizeGithubPackage } from "./process/normalize.js" diff --git a/github/package/save.ts b/github/package/save.ts index 29642f06..94147936 100644 --- a/github/package/save.ts +++ b/github/package/save.ts @@ -4,7 +4,7 @@ import type { Descriptor, Package } from "@dpkit/core" import { denormalizePackage, stringifyDescriptor } from "@dpkit/core" import { getPackageBasepath, loadFileStream } from "@dpkit/file" import { saveResourceFiles } from "@dpkit/file" -import { makeGithubApiRequest } from "../general/index.js" +import { makeGithubApiRequest } from "../github/index.js" import type { GithubPackage } from "./Package.js" /** diff --git a/zenodo/package/load.ts b/zenodo/package/load.ts index 1756176e..31aaf40b 100644 --- a/zenodo/package/load.ts +++ b/zenodo/package/load.ts @@ -1,5 +1,5 @@ import { mergePackages } from "@dpkit/core" -import { makeZenodoApiRequest } from "../general/index.js" +import { makeZenodoApiRequest } from "../zenodo/index.js" import type { ZenodoPackage } from "./Package.js" import { normalizeZenodoPackage } from "./process/normalize.js" diff --git a/zenodo/package/save.ts b/zenodo/package/save.ts index 0b1016a1..91ce08d8 100644 --- a/zenodo/package/save.ts +++ b/zenodo/package/save.ts @@ -6,7 +6,7 @@ import { loadFileStream, saveResourceFiles, } from "@dpkit/file" -import { makeZenodoApiRequest } from "../general/index.js" +import { makeZenodoApiRequest } from "../zenodo/index.js" import type { ZenodoPackage } from "./Package.js" import { denormalizeZenodoPackage } from "./process/denormalize.js" diff --git a/zenodo/general/index.ts b/zenodo/zenodo/index.ts similarity index 100% rename from zenodo/general/index.ts rename to zenodo/zenodo/index.ts diff --git a/zenodo/general/request.ts b/zenodo/zenodo/request.ts similarity index 100% rename from zenodo/general/request.ts rename to zenodo/zenodo/request.ts From 38a3e8c162ca6a969fac7f3a07821c9927a8cd44 Mon Sep 17 00:00:00 2001 From: roll Date: Thu, 7 Aug 2025 12:50:33 +0100 Subject: [PATCH 38/80] Added core/general todo --- core/general/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/core/general/index.ts b/core/general/index.ts index 762c0675..cf44b801 100644 --- a/core/general/index.ts +++ b/core/general/index.ts @@ -1,3 +1,4 @@ +// TODO: split this general module into more focused descriptor/metadata/etc export { parseDescriptor } from "./descriptor/process/parse.js" export { stringifyDescriptor } from "./descriptor/process/stringify.js" export { loadDescriptor } from "./descriptor/load.js" From 247276b30669f9b62bacf0503c1092987b3bbe24 Mon Sep 17 00:00:00 2001 From: roll Date: Thu, 7 Aug 2025 12:53:15 +0100 Subject: [PATCH 39/80] Updated broken snapshots --- .../fixtures/generated/load.spec.ts.snap | 74 +- .../fixtures/generated/load.spec.ts.snap | 1106 ++++++++--------- 2 files changed, 588 insertions(+), 592 deletions(-) diff --git a/github/package/fixtures/generated/load.spec.ts.snap b/github/package/fixtures/generated/load.spec.ts.snap index 7b9126bf..fadcca50 100644 --- a/github/package/fixtures/generated/load.spec.ts.snap +++ b/github/package/fixtures/generated/load.spec.ts.snap @@ -151,44 +151,42 @@ exports[`loadPackageFromGithub > should merge datapackage.json if present 1`] = "path": "https://raw.githubusercontent.com/roll/currency-codes/refs/heads/master/data/codes-all.csv", "schema": { "$schema": undefined, - "descriptor": { - "fields": [ - { - "description": "Country or region name", - "name": "Entity", - "type": "string", - }, - { - "description": "Name of the currency", - "name": "Currency", - "type": "string", - }, - { - "description": "3 digit alphabetic code for the currency", - "name": "AlphabeticCode", - "title": "Alphabetic Code", - "type": "string", - }, - { - "description": "3 digit numeric code", - "name": "NumericCode", - "title": "Numeric Code", - "type": "number", - }, - { - "description": "", - "name": "MinorUnit", - "title": "Minor Unit", - "type": "string", - }, - { - "description": "Date currency withdrawn (values can be ranges or months", - "name": "WithdrawalDate", - "title": "Withdrawal Date", - "type": "string", - }, - ], - }, + "fields": [ + { + "description": "Country or region name", + "name": "Entity", + "type": "string", + }, + { + "description": "Name of the currency", + "name": "Currency", + "type": "string", + }, + { + "description": "3 digit alphabetic code for the currency", + "name": "AlphabeticCode", + "title": "Alphabetic Code", + "type": "string", + }, + { + "description": "3 digit numeric code", + "name": "NumericCode", + "title": "Numeric Code", + "type": "number", + }, + { + "description": "", + "name": "MinorUnit", + "title": "Minor Unit", + "type": "string", + }, + { + "description": "Date currency withdrawn (values can be ranges or months", + "name": "WithdrawalDate", + "title": "Withdrawal Date", + "type": "string", + }, + ], }, "size": "16863", }, diff --git a/zenodo/package/fixtures/generated/load.spec.ts.snap b/zenodo/package/fixtures/generated/load.spec.ts.snap index 531951cd..1e3c5625 100644 --- a/zenodo/package/fixtures/generated/load.spec.ts.snap +++ b/zenodo/package/fixtures/generated/load.spec.ts.snap @@ -126,230 +126,228 @@ exports[`loadPackageFromZenodo > shoule merge datapackage.json if present 1`] = "profile": "tabular-data-resource", "schema": { "$schema": undefined, - "descriptor": { - "fields": [ - { - "description": "A unique identifier for the tag, provided by the data owner. If the data owner does not provide a tag ID, an internal Movebank tag identifier may sometimes be shown. Example: '2342'; Units: none; Entity described: tag", - "format": "default", - "name": "tag-id", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000181/2/", - "title": "tag ID", - "type": "string", - }, - { - "description": "An individual identifier for the animal, provided by the data owner. Values are unique within the study. If the data owner does not provide an Animal ID, an internal Movebank animal identifier is sometimes shown. Example: 'TUSC_CV5'; Units: none; Entity described: individual", - "format": "default", - "name": "animal-id", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000016/3/", - "title": "animal ID", - "type": "string", - }, - { - "description": "The scientific name of the taxon on which the tag was deployed, as defined by the Integrated Taxonomic Information System www.itis.gov. If the species name can not be provided, this should be the lowest level taxonomic rank that can be determined and that is used in the ITIS taxonomy. Additional information can be provided using the term 'taxon detail'. The values 'test' and 'calibration' identify events relevant to animal tracking studies that should not be associated with a taxon. Format: controlled list; Entity described: individual", - "format": "default", - "name": "animal-taxon", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000024/4/", - "title": "animal taxon", - "type": "string", - }, - { - "description": "The timestamp when the tag deployment started. Data records recorded before this day and time are not associated with the animal related to the deployment. Values are typically defined by the data owner, and in some cases are created automatically during data import. Example: '2008-08-30 18:00:00.000'; Format: yyyy-MM-dd HH:mm:ss.SSS; Units: UTC or GPS time; Entity described: deployment", - "format": "%Y-%m-%d %H:%M:%S.%f", - "name": "deploy-on-date", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000081/3/", - "title": "deploy on timestamp", - "type": "datetime", - }, - { - "description": "The timestamp when the tag deployment ended. Data records recorded after this day and time are not associated with the animal related to the deployment. Values are typically defined by the data owner, and in some cases are created automatically during data import. Further information can be provided in 'deployment end type' and 'deployment end comments'. Example: '2009-10-01 12:00:00.000'; Format: yyyy-MM-dd HH:mm:ss.SSS; Units: UTC or GPS time; Entity described: deployment", - "format": "%Y-%m-%d %H:%M:%S.%f", - "name": "deploy-off-date", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000077/4/", - "title": "deploy off timestamp", - "type": "datetime", - }, - { - "description": "A name or unique identifier for a project associated with the deployment, for example a monitoring program or another data platform. Best practice is to include the name of the related database or organization followed by the project identifier. Example: 'MOTUS145'; Units: none; Entity described: deployment", - "format": "default", - "name": "alt-project-id", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000244/2/", - "title": "alt project ID", - "type": "string", - }, - { - "description": "Additional information about the animal. Example: 'first to fledge from nest'; Units: none; Entity described: individual", - "format": "default", - "name": "animal-comments", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000012/3/", - "title": "animal comments", - "type": "string", - }, - { - "description": "The age class or life stage of the animal at the beginning of the deployment. Can be years or months of age or terms such as 'adult', 'subadult' and 'juvenile'. Best practice is to define units in the values if needed (e.g. '2 years'). Example: 'juvenile, adult'; Units: none; Entity described: deployment", - "format": "default", - "name": "animal-life-stage", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000018/3/", - "title": "animal life stage", - "type": "string", - }, - { - "description": "The mass of the animal, typically at the beginning of the deployment. Example: '500'; Units: grams; Entity described: deployment", - "format": "default", - "name": "animal-mass", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000019/2/", - "title": "animal mass", - "type": "number", - }, - { - "description": "An alternate identifier for the animal. Used as the display name for animals shown in the Animal Tracker App. Example: 'Ali'; Units: none; Entity described: individual", - "format": "default", - "name": "animal-nickname", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000020/2/", - "title": "animal nickname", - "type": "string", - }, - { - "description": "A number or color scheme for a band or ring attached to the animal. Color bands and other markings can be stored in 'animal marker ID'. Example: '26225'; Units: none; Entity described: individual", - "format": "default", - "name": "animal-ring-id", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000022/3/", - "title": "animal ring ID", - "type": "string", - }, - { - "description": "The sex of the animal. Allowed values are m = male; f = female; u = unknown. Format: controlled list; Entity described: individual", - "format": "default", - "name": "animal-sex", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000023/3/", - "title": "animal sex", - "type": "string", - }, - { - "description": "The way a tag is attached to an animal. Details can be provided in 'attachment comments'. Values are chosen from a controlled list: backpack-harness = The tag is attached to the animal using a backpack-style harness; collar = The tag is attached by a collar around the animal's neck; ear-tag = The tag is attached to the animal's ear; fin mount = The tag is attached to the animal's fin; glue = The tag is attached to the animal using glue; harness = The tag is attached to the animal using a harness; implant = The tag is placed under the skin of the animal; leg-band = The tag is attached as a leg band or ring; leg-loop-harness = The tag is attached to the animal using a leg-loop-style harness; none = No tag was attached, e.g., for observations using natural markings; other = The tag is attached using another method; subcutaneous-anchor = The tag is attached using one or more anchors attached underneath the animal's skin; suction-cup = The tag is attached using one or more suction cups; sutures = The tag is attached by one or more sutures; tape = The tag is attached to the animal using tape. Format: controlled list; Entity described: deployment", - "format": "default", - "name": "attachment-type", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000052/5/", - "title": "attachment type", - "type": "string", - }, - { - "description": "The geographic latitude of the location where the animal was released. Intended primarily for cases in which the animal release location has higher accuracy than that derived from sensor data. Example: '27.3516'; Units: decimal degrees, WGS84 reference system; Entity described: deployment", - "format": "default", - "name": "deploy-on-latitude", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000078/3/", - "title": "deploy on latitude", - "type": "number", - }, - { - "description": "The geographic longitude of the location where the animal was released. Intended primarily for cases in which the animal release location has higher accuracy than that derived from sensor data. Example: '-97.3321'; Units: decimal degrees, WGS84 reference system; Entity described: deployment", - "format": "default", - "name": "deploy-on-longitude", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000079/3/", - "title": "deploy on longitude", - "type": "number", - }, - { - "description": "A list of additional measurements taken during capture of the animal at the start of the deployment. Recommended best practice is to define units and use a key:value encoding schema for a data interchange format such as JSON. Example: "{tarsusLengthInMillimeters:17.3, wingChordInMillimeters:125}"; Units: not defined; Entity described: deployment", - "format": "default", - "name": "deploy-on-measurements", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000356/2/", - "title": "deploy on measurements", - "type": "string", - }, - { - "description": "Additional information about the tag deployment that is not described by other reference data terms. Example: 'body length 154 cm; condition good'; Units: none; Entity described: deployment", - "format": "default", - "name": "deployment-comments", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000082/2/", - "title": "deployment comments", - "type": "string", - }, - { - "description": "A categorical classification describing the end of the tag deployment on the animal. Best practice is to clarify how the 'deploy-off timestamp', if present, was chosen. Values are chosen from a controlled list: analysis-end = the end time represents the end of the period of interest; captured = The tag remained on the animal but the animal was captured or confined; dead = The deployment ended with the death of the animal that was carrying the tag; dead/fall-off = The tag stopped moving, and it is not possible to determine whether it is due to death of the animal or unscheduled tag detachment; equipment-failure = The tag stopped working; fall-off = The attachment of the tag to the animal failed, and it fell of accidentally; other = other; released = The tag remained on the animal but the animal was released from captivity or confinement; removal = The tag was purposefully removed from the animal; scheduled-detachment = The tag was programmed to detach from the animal; transmission-end = The tag stopped transmitting usable data; unknown = The cause of the end of data availability or transmission is unknown. Format: controlled list; Entity described: deployment", - "format": "default", - "name": "deployment-end-type", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000084/5/", - "title": "deployment end type", - "type": "string", - }, - { - "description": "A unique identifier for the deployment of a tag on animal, provided by the data owner. If the data owner does not provide a Deployment ID, an internal Movebank deployment identifier may sometimes be shown. Example: 'Jane_42818'; Units: none; Entity described: deployment", - "format": "default", - "name": "deployment-id", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000085/3/", - "title": "deployment ID", - "type": "string", - }, - { - "description": "Comments about the location accuracy. This can further describe values provided in 'location error text', 'location error numerical', 'vertical error numerical', 'lat lower', 'lat upper', 'long lower' and/or 'long upper'. The percentile uncertainty can be provided using 'location error percentile'. Example: '1 standard deviation errors, assuming normal distribution, provided by the GPS unit'; Units: none; Entity described: deployment", - "format": "default", - "name": "location-accuracy-comments", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000141/3/", - "title": "location accuracy comments", - "type": "string", - }, - { - "description": "The way in which the animal was manipulated during the deployment. Additional information can be provided using 'manipulation comments'. Changes in manipulation status during deployment can be identified using 'manipulation status'. Values are chosen from a controlled list: confined = The animal's movement was restricted to within a defined area; domesticated = The animal is domesticated, for example, is a house pet or part of a managed herd; manipulated-other = The animal was manipulated in some other way, such as a physiological manipulation; none = The animal received no treatment other than tag attachment and related measurements and sampling (if applicable); reintroduction = The animal has been reintroduced as part of wildlife conservation or management efforts; relocated = The animal was released from a site other than the one at which it was captured. Format: controlled list; Entity described: deployment", - "format": "default", - "name": "manipulation-type", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000155/6/", - "title": "manipulation type", - "type": "string", - }, - { - "description": "A location such as the deployment site, study site, or colony name. Example: 'Pickerel Island North'; Units: none; Entity described: deployment", - "format": "default", - "name": "study-site", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000175/3/", - "title": "study site", - "type": "string", - }, - { - "description": "The tag firmware and version used during the deployment. If needed, identify the relevant sensors on the tag. Units: none; Entity described: deployment", - "format": "default", - "name": "tag-firmware", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000380/1/", - "title": "tag firmware", - "type": "string", - }, - { - "description": "The company or person that produced the tag. Example: 'Holohil'; Units: none; Entity described: tag", - "format": "default", - "name": "tag-manufacturer-name", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000183/3/", - "title": "tag manufacturer name", - "type": "string", - }, - { - "description": "The mass of the tag. Can be used with 'tag mass total' to define the mass of the tag separately from that of the tag with additional hardware. Example: '24'; Units: grams; Entity described: tag", - "format": "default", - "name": "tag-mass", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000184/4/", - "title": "tag mass", - "type": "number", - }, - { - "description": "The way the data are received from the tag. Values are chosen from a controlled list: ISS = Data are transferred via the International Space Station; LPWAN = Data are transferred through a low-power wide-area network, such as LoRa or Sigfox; multiple = Data are acquired using multiple methods; none = Data are obtained without use of an animal-borne tag, such as by observing a unique marking; other-wireless = Data are transferred via another form of wireless data transfer, such as a VHF transmitter/receiver; phone-network = Data are transferred via a phone network, such as GSM or AMPS; satellite = Data are transferred via satellite; tag-retrieval = The tag must be physically retrieved in order to obtain the data; telemetry-network = Data are obtained through a radio or acoustic telemetry network; Wi-Fi/Bluetooth = Data are transferred via a local Wi-Fi or Bluetooth system. Format: controlled list; Entity described: deployment", - "format": "default", - "name": "tag-readout-method", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000188/4/", - "title": "tag readout method", - "type": "string", - }, - { - "description": "The serial number of the tag. Example: 'MN93-33243'; Units: none; Entity described: tag", - "format": "default", - "name": "tag-serial-no", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000189/3/", - "title": "tag serial no", - "type": "string", - }, - ], - "primaryKey": [ - "animal-id", - "tag-id", - ], - }, + "fields": [ + { + "description": "A unique identifier for the tag, provided by the data owner. If the data owner does not provide a tag ID, an internal Movebank tag identifier may sometimes be shown. Example: '2342'; Units: none; Entity described: tag", + "format": "default", + "name": "tag-id", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000181/2/", + "title": "tag ID", + "type": "string", + }, + { + "description": "An individual identifier for the animal, provided by the data owner. Values are unique within the study. If the data owner does not provide an Animal ID, an internal Movebank animal identifier is sometimes shown. Example: 'TUSC_CV5'; Units: none; Entity described: individual", + "format": "default", + "name": "animal-id", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000016/3/", + "title": "animal ID", + "type": "string", + }, + { + "description": "The scientific name of the taxon on which the tag was deployed, as defined by the Integrated Taxonomic Information System www.itis.gov. If the species name can not be provided, this should be the lowest level taxonomic rank that can be determined and that is used in the ITIS taxonomy. Additional information can be provided using the term 'taxon detail'. The values 'test' and 'calibration' identify events relevant to animal tracking studies that should not be associated with a taxon. Format: controlled list; Entity described: individual", + "format": "default", + "name": "animal-taxon", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000024/4/", + "title": "animal taxon", + "type": "string", + }, + { + "description": "The timestamp when the tag deployment started. Data records recorded before this day and time are not associated with the animal related to the deployment. Values are typically defined by the data owner, and in some cases are created automatically during data import. Example: '2008-08-30 18:00:00.000'; Format: yyyy-MM-dd HH:mm:ss.SSS; Units: UTC or GPS time; Entity described: deployment", + "format": "%Y-%m-%d %H:%M:%S.%f", + "name": "deploy-on-date", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000081/3/", + "title": "deploy on timestamp", + "type": "datetime", + }, + { + "description": "The timestamp when the tag deployment ended. Data records recorded after this day and time are not associated with the animal related to the deployment. Values are typically defined by the data owner, and in some cases are created automatically during data import. Further information can be provided in 'deployment end type' and 'deployment end comments'. Example: '2009-10-01 12:00:00.000'; Format: yyyy-MM-dd HH:mm:ss.SSS; Units: UTC or GPS time; Entity described: deployment", + "format": "%Y-%m-%d %H:%M:%S.%f", + "name": "deploy-off-date", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000077/4/", + "title": "deploy off timestamp", + "type": "datetime", + }, + { + "description": "A name or unique identifier for a project associated with the deployment, for example a monitoring program or another data platform. Best practice is to include the name of the related database or organization followed by the project identifier. Example: 'MOTUS145'; Units: none; Entity described: deployment", + "format": "default", + "name": "alt-project-id", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000244/2/", + "title": "alt project ID", + "type": "string", + }, + { + "description": "Additional information about the animal. Example: 'first to fledge from nest'; Units: none; Entity described: individual", + "format": "default", + "name": "animal-comments", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000012/3/", + "title": "animal comments", + "type": "string", + }, + { + "description": "The age class or life stage of the animal at the beginning of the deployment. Can be years or months of age or terms such as 'adult', 'subadult' and 'juvenile'. Best practice is to define units in the values if needed (e.g. '2 years'). Example: 'juvenile, adult'; Units: none; Entity described: deployment", + "format": "default", + "name": "animal-life-stage", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000018/3/", + "title": "animal life stage", + "type": "string", + }, + { + "description": "The mass of the animal, typically at the beginning of the deployment. Example: '500'; Units: grams; Entity described: deployment", + "format": "default", + "name": "animal-mass", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000019/2/", + "title": "animal mass", + "type": "number", + }, + { + "description": "An alternate identifier for the animal. Used as the display name for animals shown in the Animal Tracker App. Example: 'Ali'; Units: none; Entity described: individual", + "format": "default", + "name": "animal-nickname", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000020/2/", + "title": "animal nickname", + "type": "string", + }, + { + "description": "A number or color scheme for a band or ring attached to the animal. Color bands and other markings can be stored in 'animal marker ID'. Example: '26225'; Units: none; Entity described: individual", + "format": "default", + "name": "animal-ring-id", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000022/3/", + "title": "animal ring ID", + "type": "string", + }, + { + "description": "The sex of the animal. Allowed values are m = male; f = female; u = unknown. Format: controlled list; Entity described: individual", + "format": "default", + "name": "animal-sex", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000023/3/", + "title": "animal sex", + "type": "string", + }, + { + "description": "The way a tag is attached to an animal. Details can be provided in 'attachment comments'. Values are chosen from a controlled list: backpack-harness = The tag is attached to the animal using a backpack-style harness; collar = The tag is attached by a collar around the animal's neck; ear-tag = The tag is attached to the animal's ear; fin mount = The tag is attached to the animal's fin; glue = The tag is attached to the animal using glue; harness = The tag is attached to the animal using a harness; implant = The tag is placed under the skin of the animal; leg-band = The tag is attached as a leg band or ring; leg-loop-harness = The tag is attached to the animal using a leg-loop-style harness; none = No tag was attached, e.g., for observations using natural markings; other = The tag is attached using another method; subcutaneous-anchor = The tag is attached using one or more anchors attached underneath the animal's skin; suction-cup = The tag is attached using one or more suction cups; sutures = The tag is attached by one or more sutures; tape = The tag is attached to the animal using tape. Format: controlled list; Entity described: deployment", + "format": "default", + "name": "attachment-type", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000052/5/", + "title": "attachment type", + "type": "string", + }, + { + "description": "The geographic latitude of the location where the animal was released. Intended primarily for cases in which the animal release location has higher accuracy than that derived from sensor data. Example: '27.3516'; Units: decimal degrees, WGS84 reference system; Entity described: deployment", + "format": "default", + "name": "deploy-on-latitude", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000078/3/", + "title": "deploy on latitude", + "type": "number", + }, + { + "description": "The geographic longitude of the location where the animal was released. Intended primarily for cases in which the animal release location has higher accuracy than that derived from sensor data. Example: '-97.3321'; Units: decimal degrees, WGS84 reference system; Entity described: deployment", + "format": "default", + "name": "deploy-on-longitude", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000079/3/", + "title": "deploy on longitude", + "type": "number", + }, + { + "description": "A list of additional measurements taken during capture of the animal at the start of the deployment. Recommended best practice is to define units and use a key:value encoding schema for a data interchange format such as JSON. Example: "{tarsusLengthInMillimeters:17.3, wingChordInMillimeters:125}"; Units: not defined; Entity described: deployment", + "format": "default", + "name": "deploy-on-measurements", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000356/2/", + "title": "deploy on measurements", + "type": "string", + }, + { + "description": "Additional information about the tag deployment that is not described by other reference data terms. Example: 'body length 154 cm; condition good'; Units: none; Entity described: deployment", + "format": "default", + "name": "deployment-comments", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000082/2/", + "title": "deployment comments", + "type": "string", + }, + { + "description": "A categorical classification describing the end of the tag deployment on the animal. Best practice is to clarify how the 'deploy-off timestamp', if present, was chosen. Values are chosen from a controlled list: analysis-end = the end time represents the end of the period of interest; captured = The tag remained on the animal but the animal was captured or confined; dead = The deployment ended with the death of the animal that was carrying the tag; dead/fall-off = The tag stopped moving, and it is not possible to determine whether it is due to death of the animal or unscheduled tag detachment; equipment-failure = The tag stopped working; fall-off = The attachment of the tag to the animal failed, and it fell of accidentally; other = other; released = The tag remained on the animal but the animal was released from captivity or confinement; removal = The tag was purposefully removed from the animal; scheduled-detachment = The tag was programmed to detach from the animal; transmission-end = The tag stopped transmitting usable data; unknown = The cause of the end of data availability or transmission is unknown. Format: controlled list; Entity described: deployment", + "format": "default", + "name": "deployment-end-type", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000084/5/", + "title": "deployment end type", + "type": "string", + }, + { + "description": "A unique identifier for the deployment of a tag on animal, provided by the data owner. If the data owner does not provide a Deployment ID, an internal Movebank deployment identifier may sometimes be shown. Example: 'Jane_42818'; Units: none; Entity described: deployment", + "format": "default", + "name": "deployment-id", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000085/3/", + "title": "deployment ID", + "type": "string", + }, + { + "description": "Comments about the location accuracy. This can further describe values provided in 'location error text', 'location error numerical', 'vertical error numerical', 'lat lower', 'lat upper', 'long lower' and/or 'long upper'. The percentile uncertainty can be provided using 'location error percentile'. Example: '1 standard deviation errors, assuming normal distribution, provided by the GPS unit'; Units: none; Entity described: deployment", + "format": "default", + "name": "location-accuracy-comments", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000141/3/", + "title": "location accuracy comments", + "type": "string", + }, + { + "description": "The way in which the animal was manipulated during the deployment. Additional information can be provided using 'manipulation comments'. Changes in manipulation status during deployment can be identified using 'manipulation status'. Values are chosen from a controlled list: confined = The animal's movement was restricted to within a defined area; domesticated = The animal is domesticated, for example, is a house pet or part of a managed herd; manipulated-other = The animal was manipulated in some other way, such as a physiological manipulation; none = The animal received no treatment other than tag attachment and related measurements and sampling (if applicable); reintroduction = The animal has been reintroduced as part of wildlife conservation or management efforts; relocated = The animal was released from a site other than the one at which it was captured. Format: controlled list; Entity described: deployment", + "format": "default", + "name": "manipulation-type", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000155/6/", + "title": "manipulation type", + "type": "string", + }, + { + "description": "A location such as the deployment site, study site, or colony name. Example: 'Pickerel Island North'; Units: none; Entity described: deployment", + "format": "default", + "name": "study-site", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000175/3/", + "title": "study site", + "type": "string", + }, + { + "description": "The tag firmware and version used during the deployment. If needed, identify the relevant sensors on the tag. Units: none; Entity described: deployment", + "format": "default", + "name": "tag-firmware", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000380/1/", + "title": "tag firmware", + "type": "string", + }, + { + "description": "The company or person that produced the tag. Example: 'Holohil'; Units: none; Entity described: tag", + "format": "default", + "name": "tag-manufacturer-name", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000183/3/", + "title": "tag manufacturer name", + "type": "string", + }, + { + "description": "The mass of the tag. Can be used with 'tag mass total' to define the mass of the tag separately from that of the tag with additional hardware. Example: '24'; Units: grams; Entity described: tag", + "format": "default", + "name": "tag-mass", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000184/4/", + "title": "tag mass", + "type": "number", + }, + { + "description": "The way the data are received from the tag. Values are chosen from a controlled list: ISS = Data are transferred via the International Space Station; LPWAN = Data are transferred through a low-power wide-area network, such as LoRa or Sigfox; multiple = Data are acquired using multiple methods; none = Data are obtained without use of an animal-borne tag, such as by observing a unique marking; other-wireless = Data are transferred via another form of wireless data transfer, such as a VHF transmitter/receiver; phone-network = Data are transferred via a phone network, such as GSM or AMPS; satellite = Data are transferred via satellite; tag-retrieval = The tag must be physically retrieved in order to obtain the data; telemetry-network = Data are obtained through a radio or acoustic telemetry network; Wi-Fi/Bluetooth = Data are transferred via a local Wi-Fi or Bluetooth system. Format: controlled list; Entity described: deployment", + "format": "default", + "name": "tag-readout-method", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000188/4/", + "title": "tag readout method", + "type": "string", + }, + { + "description": "The serial number of the tag. Example: 'MN93-33243'; Units: none; Entity described: tag", + "format": "default", + "name": "tag-serial-no", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000189/3/", + "title": "tag serial no", + "type": "string", + }, + ], + "primaryKey": [ + "animal-id", + "tag-id", + ], }, "zenodo:key": undefined, "zenodo:url": undefined, @@ -367,202 +365,202 @@ exports[`loadPackageFromZenodo > shoule merge datapackage.json if present 1`] = "profile": "tabular-data-resource", "schema": { "$schema": undefined, - "descriptor": { - "fields": [ - { - "description": "An identifier for the set of values associated with each event, i.e. sensor measurement. A unique event ID is assigned to every time-location or other time-measurement record in Movebank. If multiple measurements are included within a single row of a data file, they will share an event ID. If users import the same sensor measurement to Movebank multiple times, a separate event ID will be assigned to each. Example: '14328243575'; Units: none; Entity described: event", - "format": "default", - "name": "event-id", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000103/3/", - "title": "event ID", - "type": "integer", - }, - { - "description": "Determines whether an event is visible on the Movebank map. Allowed values are TRUE or FALSE. Values are calculated automatically, with TRUE indicating the event has not been flagged as an outlier by 'algorithm marked outlier', 'import marked outlier' or 'manually marked outlier', or that the user has overridden the results of these outlier attributes using 'manually marked valid' = TRUE. Units: none; Entity described: event", - "format": "default", - "name": "visible", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000209/3/", - "title": "visible", - "type": "boolean", - }, - { - "description": "The date and time corresponding to a sensor measurement or an estimate derived from sensor measurements. Example: '2008-08-14 18:31:00.000'; Format: yyyy-MM-dd HH:mm:ss.SSS; Units: UTC or GPS time; Entity described: event", - "format": "%Y-%m-%d %H:%M:%S.%f", - "name": "timestamp", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000200/2/", - "title": "timestamp", - "type": "datetime", - }, - { - "description": "The geographic longitude of the location as estimated by the sensor. Positive values are east of the Greenwich Meridian, negative values are west of it. Example: '-121.1761111'; Units: decimal degrees, WGS84 reference system; Entity described: event", - "format": "default", - "name": "location-long", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000146/2/", - "title": "location long", - "type": "number", - }, - { - "description": "The geographic latitude of the location as estimated by the sensor. Example: '-41.0982423'; Units: decimal degrees, WGS84 reference system; Entity described: event", - "format": "default", - "name": "location-lat", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000145/4/", - "title": "location lat", - "type": "number", - }, - { - "description": "The barometric air or water pressure. Example: '32536.0'; Units: mbar (hPa); Entity described: event", - "format": "default", - "name": "bar:barometric-pressure", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000055/3/", - "title": "barometric pressure", - "type": "number", - }, - { - "description": "The temperature measured by the tag (different from ambient temperature or internal body temperature of the animal). Example: '32.1'; Units: degrees Celsius; Entity described: event", - "format": "default", - "name": "external-temperature", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000104/2/", - "title": "external temperature", - "type": "number", - }, - { - "description": "Dilution of precision provided by the GPS. Example: '1.8'; Units: unitless; Entity described: event", - "format": "default", - "name": "gps:dop", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000115/2/", - "title": "GPS DOP", - "type": "number", - }, - { - "description": "The number of GPS satellites used to estimate the location. Example: '8'; Units: count; Entity described: event", - "format": "default", - "name": "gps:satellite-count", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000120/3/", - "title": "GPS satellite count", - "type": "integer", - }, - { - "description": "The time required to obtain the GPS location fix. Example: '36'; Units: seconds; Entity described: event", - "format": "default", - "name": "gps-time-to-fix", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000121/3/", - "title": "GPS time to fix", - "type": "number", - }, - { - "description": "The estimated ground speed provided by the sensor or calculated between consecutive locations. Example: '7.22'; Units: m/s; Entity described: event", - "format": "default", - "name": "ground-speed", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000124/2/", - "title": "ground speed", - "type": "number", - }, - { - "description": "The direction in which the tag is moving, in decimal degrees clockwise from north, as provided by the sensor or calculated between consecutive locations. Values range from 0-360: 0 = north, 90 = east, 180 = south, 270 = west. Example: '315.88'; Units: degrees clockwise from north; Entity described: event", - "format": "default", - "name": "heading", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000129/2/", - "title": "heading", - "type": "number", - }, - { - "description": "The estimated height of the tag above mean sea level, typically estimated by the tag. If altitudes are calculated as height above an ellipsoid, use 'height above ellipsoid'. Example: '34'; Units: meters; Entity described: event", - "format": "default", - "name": "height-above-msl", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000131/3/", - "title": "height above mean sea level", - "type": "number", - }, - { - "description": "Identifies events as outliers. Outliers have the value TRUE. Typically used to import a record of outliers that were identified by the data provider or owner with automated methods outside of Movebank. Information about how outliers were defined can be provided in 'outlier comments'. Units: none; Entity described: event", - "format": "default", - "name": "import-marked-outlier", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000133/3/", - "title": "import marked outlier", - "type": "boolean", - }, - { - "description": "An estimate of the horizontal error of the location including only numbers. (If the error estimates include non-numerical characters such as '>' use 'location error text'.) These values can be described using 'location error percentile' and 'location accuracy comments'. Example: '50'; Units: meters; Entity described: event", - "format": "default", - "name": "location-error-numerical", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000142/3/", - "title": "location error numerical", - "type": "number", - }, - { - "description": "Identifies events flagged manually as outliers, typically using the Event Editor in Movebank, and may also include outliers identified using other methods. Outliers have the value TRUE. Information about how outliers were defined can be provided in 'outlier comments'. Units: none; Entity described: event", - "format": "default", - "name": "manually-marked-outlier", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000156/3/", - "title": "manually marked outlier", - "type": "boolean", - }, - { - "description": "An estimate of the vertical error of the location. These values can be described using 'location error percentile' and 'location accuracy comments'. Example: '12'; Units: meters; Entity described: event", - "format": "default", - "name": "vertical-error-numerical", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000208/3/", - "title": "vertical error numerical", - "type": "number", - }, - { - "description": "The type of sensor with which data were collected. All sensors are associated with a tag id, and tags can contain multiple sensor types. Each event record in Movebank is assigned one sensor type. If values from multiple sensors are reported in a single event, the primary sensor is used. Values are chosen from a controlled list: acceleration = The sensor collects acceleration data; accessory-measurements = The sensor collects accessory measurements, such as battery voltage; acoustic-telemetry = The sensor transmits an acoustic signal that is detected by receivers to determine location; argos-doppler-shift = The sensor location is estimated by Argos using Doppler shift; barometer = The sensor records air or water pressure; bird-ring = The animal is identified by a band or ring that has a unique identifier; gps = The sensor uses GPS to determine location; gyroscope = The sensor records angular velocity; heart-rate = The sensor records or is used to calculate heart rate; magnetometer = The sensor records the magnetic field; natural-mark = The animal is identified by a unique natural marking; orientation = Quaternion components describing the orientation of the tag are derived from accelerometer and gyroscope measurements; proximity = The sensor identifies proximity to other tags; radio-transmitter = The sensor transmits a radio signal that is detected by receivers to determine location; sigfox-geolocation = The sensor location is determined by Sigfox using the received signal strength indicator; solar-geolocator = The sensor collects light levels, which are used to determine position (for processed locations); solar-geolocator-raw = The sensor collects light levels, which are used to determine position (for raw light-level measurements); solar-geolocator-twilight = The sensor collects light levels, which are used to determine position (for twilights calculated from light-level measurements). Format: controlled list; Entity described: event", - "format": "default", - "name": "sensor-type", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000170/6/", - "title": "sensor type", - "type": "string", - }, - { - "description": "This attribute has been merged with 'animal taxon'. The scientific name of the species on which the tag was deployed, as defined by the Integrated Taxonomic Information System (ITIS, www.itis.gov). If the species name can not be provided, this should be the lowest level taxonomic rank that can be determined and that is used in the ITIS taxonomy. Additional information can be provided using the term 'taxon detail'. Format: controlled list; Entity described: individual", - "format": "default", - "name": "individual-taxon-canonical-name", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000135/5/", - "title": "individual taxon canonical name", - "type": "string", - }, - { - "description": "This attribute has been merged with 'tag ID'. An identifier for the tag, provided by the data owner. Values are unique within the study. If the data owner does not provide a tag ID, an internal Movebank tag identifier may sometimes be shown. Example: '2342'; Units: none; Entity described: tag", - "format": "default", - "name": "tag-local-identifier", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000182/5/", - "title": "tag local identifier", - "type": "string", - }, - { - "description": "This attribute has been merged with 'animal ID'. An individual identifier for the animal, provided by the data owner. Values are unique within the study. If the data owner does not provide an Animal ID, an internal Movebank animal identifier is sometimes shown. Example: '91876A, Gary'; Units: none; Entity described: individual", - "format": "default", - "name": "individual-local-identifier", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000134/4/", - "title": "individual local identifier", - "type": "string", - }, - { - "description": "The name of the study in Movebank. Example: 'Coyotes, Kays and Bogan, Albany NY'; Units: none; Entity described: study", - "format": "default", - "name": "study-name", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000173/3/", - "title": "study name", - "type": "string", - }, - ], - "foreignKeys": [ - { + "fields": [ + { + "description": "An identifier for the set of values associated with each event, i.e. sensor measurement. A unique event ID is assigned to every time-location or other time-measurement record in Movebank. If multiple measurements are included within a single row of a data file, they will share an event ID. If users import the same sensor measurement to Movebank multiple times, a separate event ID will be assigned to each. Example: '14328243575'; Units: none; Entity described: event", + "format": "default", + "name": "event-id", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000103/3/", + "title": "event ID", + "type": "integer", + }, + { + "description": "Determines whether an event is visible on the Movebank map. Allowed values are TRUE or FALSE. Values are calculated automatically, with TRUE indicating the event has not been flagged as an outlier by 'algorithm marked outlier', 'import marked outlier' or 'manually marked outlier', or that the user has overridden the results of these outlier attributes using 'manually marked valid' = TRUE. Units: none; Entity described: event", + "format": "default", + "name": "visible", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000209/3/", + "title": "visible", + "type": "boolean", + }, + { + "description": "The date and time corresponding to a sensor measurement or an estimate derived from sensor measurements. Example: '2008-08-14 18:31:00.000'; Format: yyyy-MM-dd HH:mm:ss.SSS; Units: UTC or GPS time; Entity described: event", + "format": "%Y-%m-%d %H:%M:%S.%f", + "name": "timestamp", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000200/2/", + "title": "timestamp", + "type": "datetime", + }, + { + "description": "The geographic longitude of the location as estimated by the sensor. Positive values are east of the Greenwich Meridian, negative values are west of it. Example: '-121.1761111'; Units: decimal degrees, WGS84 reference system; Entity described: event", + "format": "default", + "name": "location-long", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000146/2/", + "title": "location long", + "type": "number", + }, + { + "description": "The geographic latitude of the location as estimated by the sensor. Example: '-41.0982423'; Units: decimal degrees, WGS84 reference system; Entity described: event", + "format": "default", + "name": "location-lat", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000145/4/", + "title": "location lat", + "type": "number", + }, + { + "description": "The barometric air or water pressure. Example: '32536.0'; Units: mbar (hPa); Entity described: event", + "format": "default", + "name": "bar:barometric-pressure", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000055/3/", + "title": "barometric pressure", + "type": "number", + }, + { + "description": "The temperature measured by the tag (different from ambient temperature or internal body temperature of the animal). Example: '32.1'; Units: degrees Celsius; Entity described: event", + "format": "default", + "name": "external-temperature", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000104/2/", + "title": "external temperature", + "type": "number", + }, + { + "description": "Dilution of precision provided by the GPS. Example: '1.8'; Units: unitless; Entity described: event", + "format": "default", + "name": "gps:dop", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000115/2/", + "title": "GPS DOP", + "type": "number", + }, + { + "description": "The number of GPS satellites used to estimate the location. Example: '8'; Units: count; Entity described: event", + "format": "default", + "name": "gps:satellite-count", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000120/3/", + "title": "GPS satellite count", + "type": "integer", + }, + { + "description": "The time required to obtain the GPS location fix. Example: '36'; Units: seconds; Entity described: event", + "format": "default", + "name": "gps-time-to-fix", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000121/3/", + "title": "GPS time to fix", + "type": "number", + }, + { + "description": "The estimated ground speed provided by the sensor or calculated between consecutive locations. Example: '7.22'; Units: m/s; Entity described: event", + "format": "default", + "name": "ground-speed", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000124/2/", + "title": "ground speed", + "type": "number", + }, + { + "description": "The direction in which the tag is moving, in decimal degrees clockwise from north, as provided by the sensor or calculated between consecutive locations. Values range from 0-360: 0 = north, 90 = east, 180 = south, 270 = west. Example: '315.88'; Units: degrees clockwise from north; Entity described: event", + "format": "default", + "name": "heading", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000129/2/", + "title": "heading", + "type": "number", + }, + { + "description": "The estimated height of the tag above mean sea level, typically estimated by the tag. If altitudes are calculated as height above an ellipsoid, use 'height above ellipsoid'. Example: '34'; Units: meters; Entity described: event", + "format": "default", + "name": "height-above-msl", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000131/3/", + "title": "height above mean sea level", + "type": "number", + }, + { + "description": "Identifies events as outliers. Outliers have the value TRUE. Typically used to import a record of outliers that were identified by the data provider or owner with automated methods outside of Movebank. Information about how outliers were defined can be provided in 'outlier comments'. Units: none; Entity described: event", + "format": "default", + "name": "import-marked-outlier", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000133/3/", + "title": "import marked outlier", + "type": "boolean", + }, + { + "description": "An estimate of the horizontal error of the location including only numbers. (If the error estimates include non-numerical characters such as '>' use 'location error text'.) These values can be described using 'location error percentile' and 'location accuracy comments'. Example: '50'; Units: meters; Entity described: event", + "format": "default", + "name": "location-error-numerical", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000142/3/", + "title": "location error numerical", + "type": "number", + }, + { + "description": "Identifies events flagged manually as outliers, typically using the Event Editor in Movebank, and may also include outliers identified using other methods. Outliers have the value TRUE. Information about how outliers were defined can be provided in 'outlier comments'. Units: none; Entity described: event", + "format": "default", + "name": "manually-marked-outlier", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000156/3/", + "title": "manually marked outlier", + "type": "boolean", + }, + { + "description": "An estimate of the vertical error of the location. These values can be described using 'location error percentile' and 'location accuracy comments'. Example: '12'; Units: meters; Entity described: event", + "format": "default", + "name": "vertical-error-numerical", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000208/3/", + "title": "vertical error numerical", + "type": "number", + }, + { + "description": "The type of sensor with which data were collected. All sensors are associated with a tag id, and tags can contain multiple sensor types. Each event record in Movebank is assigned one sensor type. If values from multiple sensors are reported in a single event, the primary sensor is used. Values are chosen from a controlled list: acceleration = The sensor collects acceleration data; accessory-measurements = The sensor collects accessory measurements, such as battery voltage; acoustic-telemetry = The sensor transmits an acoustic signal that is detected by receivers to determine location; argos-doppler-shift = The sensor location is estimated by Argos using Doppler shift; barometer = The sensor records air or water pressure; bird-ring = The animal is identified by a band or ring that has a unique identifier; gps = The sensor uses GPS to determine location; gyroscope = The sensor records angular velocity; heart-rate = The sensor records or is used to calculate heart rate; magnetometer = The sensor records the magnetic field; natural-mark = The animal is identified by a unique natural marking; orientation = Quaternion components describing the orientation of the tag are derived from accelerometer and gyroscope measurements; proximity = The sensor identifies proximity to other tags; radio-transmitter = The sensor transmits a radio signal that is detected by receivers to determine location; sigfox-geolocation = The sensor location is determined by Sigfox using the received signal strength indicator; solar-geolocator = The sensor collects light levels, which are used to determine position (for processed locations); solar-geolocator-raw = The sensor collects light levels, which are used to determine position (for raw light-level measurements); solar-geolocator-twilight = The sensor collects light levels, which are used to determine position (for twilights calculated from light-level measurements). Format: controlled list; Entity described: event", + "format": "default", + "name": "sensor-type", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000170/6/", + "title": "sensor type", + "type": "string", + }, + { + "description": "This attribute has been merged with 'animal taxon'. The scientific name of the species on which the tag was deployed, as defined by the Integrated Taxonomic Information System (ITIS, www.itis.gov). If the species name can not be provided, this should be the lowest level taxonomic rank that can be determined and that is used in the ITIS taxonomy. Additional information can be provided using the term 'taxon detail'. Format: controlled list; Entity described: individual", + "format": "default", + "name": "individual-taxon-canonical-name", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000135/5/", + "title": "individual taxon canonical name", + "type": "string", + }, + { + "description": "This attribute has been merged with 'tag ID'. An identifier for the tag, provided by the data owner. Values are unique within the study. If the data owner does not provide a tag ID, an internal Movebank tag identifier may sometimes be shown. Example: '2342'; Units: none; Entity described: tag", + "format": "default", + "name": "tag-local-identifier", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000182/5/", + "title": "tag local identifier", + "type": "string", + }, + { + "description": "This attribute has been merged with 'animal ID'. An individual identifier for the animal, provided by the data owner. Values are unique within the study. If the data owner does not provide an Animal ID, an internal Movebank animal identifier is sometimes shown. Example: '91876A, Gary'; Units: none; Entity described: individual", + "format": "default", + "name": "individual-local-identifier", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000134/4/", + "title": "individual local identifier", + "type": "string", + }, + { + "description": "The name of the study in Movebank. Example: 'Coyotes, Kays and Bogan, Albany NY'; Units: none; Entity described: study", + "format": "default", + "name": "study-name", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000173/3/", + "title": "study name", + "type": "string", + }, + ], + "foreignKeys": [ + { + "fields": [ + "individual-local-identifier", + "tag-local-identifier", + ], + "reference": { "fields": [ - "individual-local-identifier", - "tag-local-identifier", + "animal-id", + "tag-id", ], - "reference": { - "fields": [ - "animal-id", - "tag-id", - ], - "resource": "reference-data", - }, + "resource": "reference-data", }, - ], - "primaryKey": "event-id", - }, + }, + ], + "primaryKey": [ + "event-id", + ], }, "zenodo:key": undefined, "zenodo:url": undefined, @@ -580,146 +578,146 @@ exports[`loadPackageFromZenodo > shoule merge datapackage.json if present 1`] = "profile": "tabular-data-resource", "schema": { "$schema": undefined, - "descriptor": { - "fields": [ - { - "description": "An identifier for the set of values associated with each event, i.e. sensor measurement. A unique event ID is assigned to every time-location or other time-measurement record in Movebank. If multiple measurements are included within a single row of a data file, they will share an event ID. If users import the same sensor measurement to Movebank multiple times, a separate event ID will be assigned to each. Example: '14328243575'; Units: none; Entity described: event", - "format": "default", - "name": "event-id", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000103/3/", - "title": "event ID", - "type": "integer", - }, - { - "description": "Determines whether an event is visible on the Movebank map. Allowed values are TRUE or FALSE. Values are calculated automatically, with TRUE indicating the event has not been flagged as an outlier by 'algorithm marked outlier', 'import marked outlier' or 'manually marked outlier', or that the user has overridden the results of these outlier attributes using 'manually marked valid' = TRUE. Units: none; Entity described: event", - "format": "default", - "name": "visible", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000209/3/", - "title": "visible", - "type": "boolean", - }, - { - "description": "The date and time corresponding to a sensor measurement or an estimate derived from sensor measurements. Example: '2008-08-14 18:31:00.000'; Format: yyyy-MM-dd HH:mm:ss.SSS; Units: UTC or GPS time; Entity described: event", - "format": "%Y-%m-%d %H:%M:%S.%f", - "name": "timestamp", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000200/2/", - "title": "timestamp", - "type": "datetime", - }, - { - "description": "Raw acceleration values provided by the tag for the X axis. Range and units may vary by provider, tag, and orientation of the sensor on the animal. Example: '0.556641'; Units: not defined; Entity described: event", - "format": "default", - "name": "acceleration-raw-x", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000002/2/", - "title": "acceleration raw x", - "type": "number", - }, - { - "description": "Raw acceleration values provided by the tag for the Y axis. Range and units may vary by provider, tag, and orientation of the sensor on the animal. Example: '0.09375'; Units: not defined; Entity described: event", - "format": "default", - "name": "acceleration-raw-y", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000003/2/", - "title": "acceleration raw y", - "type": "number", - }, - { - "description": "Raw acceleration values provided by the tag for the Z axis. Range and units may vary by provider, tag, and orientation of the sensor on the animal. Example: '-0.84375'; Units: not defined; Entity described: event", - "format": "default", - "name": "acceleration-raw-z", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000004/2/", - "title": "acceleration raw z", - "type": "number", - }, - { - "description": "The date and time when the sampling interval or burst began. Example: '2011-01-03 13:45:00.000'; Format: yyyy-MM-dd HH:mm:ss.SSS; Units: UTC or GPS time; Entity described: event", - "format": "%Y-%m-%d %H:%M:%S.%f", - "name": "start-timestamp", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000171/2/", - "title": "start timestamp", - "type": "datetime", - }, - { - "description": "Tilt provided by the accelerometer for the X axis. Example: '0'; Units: g forces (1 g = 9.8 m s^-2); Entity described: event", - "format": "default", - "name": "tilt-x", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000197/2/", - "title": "tilt x", - "type": "number", - }, - { - "description": "Tilt provided by the accelerometer for the Y axis. Example: '0'; Units: g forces (1 g = 9.8 m s^-2); Entity described: event", - "format": "default", - "name": "tilt-y", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000198/2/", - "title": "tilt y", - "type": "number", - }, - { - "description": "Tilt provided by the accelerometer for the Z axis. Example: '1'; Units: g forces (1 g = 9.8 m s^-2); Entity described: event", - "format": "default", - "name": "tilt-z", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000199/2/", - "title": "tilt z", - "type": "number", - }, - { - "description": "The type of sensor with which data were collected. All sensors are associated with a tag id, and tags can contain multiple sensor types. Each event record in Movebank is assigned one sensor type. If values from multiple sensors are reported in a single event, the primary sensor is used. Values are chosen from a controlled list: acceleration = The sensor collects acceleration data; accessory-measurements = The sensor collects accessory measurements, such as battery voltage; acoustic-telemetry = The sensor transmits an acoustic signal that is detected by receivers to determine location; argos-doppler-shift = The sensor location is estimated by Argos using Doppler shift; barometer = The sensor records air or water pressure; bird-ring = The animal is identified by a band or ring that has a unique identifier; gps = The sensor uses GPS to determine location; gyroscope = The sensor records angular velocity; heart-rate = The sensor records or is used to calculate heart rate; magnetometer = The sensor records the magnetic field; natural-mark = The animal is identified by a unique natural marking; orientation = Quaternion components describing the orientation of the tag are derived from accelerometer and gyroscope measurements; proximity = The sensor identifies proximity to other tags; radio-transmitter = The sensor transmits a radio signal that is detected by receivers to determine location; sigfox-geolocation = The sensor location is determined by Sigfox using the received signal strength indicator; solar-geolocator = The sensor collects light levels, which are used to determine position (for processed locations); solar-geolocator-raw = The sensor collects light levels, which are used to determine position (for raw light-level measurements); solar-geolocator-twilight = The sensor collects light levels, which are used to determine position (for twilights calculated from light-level measurements). Format: controlled list; Entity described: event", - "format": "default", - "name": "sensor-type", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000170/6/", - "title": "sensor type", - "type": "string", - }, - { - "description": "This attribute has been merged with 'animal taxon'. The scientific name of the species on which the tag was deployed, as defined by the Integrated Taxonomic Information System (ITIS, www.itis.gov). If the species name can not be provided, this should be the lowest level taxonomic rank that can be determined and that is used in the ITIS taxonomy. Additional information can be provided using the term 'taxon detail'. Format: controlled list; Entity described: individual", - "format": "default", - "name": "individual-taxon-canonical-name", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000135/5/", - "title": "individual taxon canonical name", - "type": "string", - }, - { - "description": "This attribute has been merged with 'tag ID'. An identifier for the tag, provided by the data owner. Values are unique within the study. If the data owner does not provide a tag ID, an internal Movebank tag identifier may sometimes be shown. Example: '2342'; Units: none; Entity described: tag", - "format": "default", - "name": "tag-local-identifier", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000182/5/", - "title": "tag local identifier", - "type": "string", - }, - { - "description": "This attribute has been merged with 'animal ID'. An individual identifier for the animal, provided by the data owner. Values are unique within the study. If the data owner does not provide an Animal ID, an internal Movebank animal identifier is sometimes shown. Example: '91876A, Gary'; Units: none; Entity described: individual", - "format": "default", - "name": "individual-local-identifier", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000134/4/", - "title": "individual local identifier", - "type": "string", - }, - { - "description": "The name of the study in Movebank. Example: 'Coyotes, Kays and Bogan, Albany NY'; Units: none; Entity described: study", - "format": "default", - "name": "study-name", - "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000173/3/", - "title": "study name", - "type": "string", - }, - ], - "foreignKeys": [ - { + "fields": [ + { + "description": "An identifier for the set of values associated with each event, i.e. sensor measurement. A unique event ID is assigned to every time-location or other time-measurement record in Movebank. If multiple measurements are included within a single row of a data file, they will share an event ID. If users import the same sensor measurement to Movebank multiple times, a separate event ID will be assigned to each. Example: '14328243575'; Units: none; Entity described: event", + "format": "default", + "name": "event-id", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000103/3/", + "title": "event ID", + "type": "integer", + }, + { + "description": "Determines whether an event is visible on the Movebank map. Allowed values are TRUE or FALSE. Values are calculated automatically, with TRUE indicating the event has not been flagged as an outlier by 'algorithm marked outlier', 'import marked outlier' or 'manually marked outlier', or that the user has overridden the results of these outlier attributes using 'manually marked valid' = TRUE. Units: none; Entity described: event", + "format": "default", + "name": "visible", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000209/3/", + "title": "visible", + "type": "boolean", + }, + { + "description": "The date and time corresponding to a sensor measurement or an estimate derived from sensor measurements. Example: '2008-08-14 18:31:00.000'; Format: yyyy-MM-dd HH:mm:ss.SSS; Units: UTC or GPS time; Entity described: event", + "format": "%Y-%m-%d %H:%M:%S.%f", + "name": "timestamp", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000200/2/", + "title": "timestamp", + "type": "datetime", + }, + { + "description": "Raw acceleration values provided by the tag for the X axis. Range and units may vary by provider, tag, and orientation of the sensor on the animal. Example: '0.556641'; Units: not defined; Entity described: event", + "format": "default", + "name": "acceleration-raw-x", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000002/2/", + "title": "acceleration raw x", + "type": "number", + }, + { + "description": "Raw acceleration values provided by the tag for the Y axis. Range and units may vary by provider, tag, and orientation of the sensor on the animal. Example: '0.09375'; Units: not defined; Entity described: event", + "format": "default", + "name": "acceleration-raw-y", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000003/2/", + "title": "acceleration raw y", + "type": "number", + }, + { + "description": "Raw acceleration values provided by the tag for the Z axis. Range and units may vary by provider, tag, and orientation of the sensor on the animal. Example: '-0.84375'; Units: not defined; Entity described: event", + "format": "default", + "name": "acceleration-raw-z", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000004/2/", + "title": "acceleration raw z", + "type": "number", + }, + { + "description": "The date and time when the sampling interval or burst began. Example: '2011-01-03 13:45:00.000'; Format: yyyy-MM-dd HH:mm:ss.SSS; Units: UTC or GPS time; Entity described: event", + "format": "%Y-%m-%d %H:%M:%S.%f", + "name": "start-timestamp", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000171/2/", + "title": "start timestamp", + "type": "datetime", + }, + { + "description": "Tilt provided by the accelerometer for the X axis. Example: '0'; Units: g forces (1 g = 9.8 m s^-2); Entity described: event", + "format": "default", + "name": "tilt-x", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000197/2/", + "title": "tilt x", + "type": "number", + }, + { + "description": "Tilt provided by the accelerometer for the Y axis. Example: '0'; Units: g forces (1 g = 9.8 m s^-2); Entity described: event", + "format": "default", + "name": "tilt-y", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000198/2/", + "title": "tilt y", + "type": "number", + }, + { + "description": "Tilt provided by the accelerometer for the Z axis. Example: '1'; Units: g forces (1 g = 9.8 m s^-2); Entity described: event", + "format": "default", + "name": "tilt-z", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000199/2/", + "title": "tilt z", + "type": "number", + }, + { + "description": "The type of sensor with which data were collected. All sensors are associated with a tag id, and tags can contain multiple sensor types. Each event record in Movebank is assigned one sensor type. If values from multiple sensors are reported in a single event, the primary sensor is used. Values are chosen from a controlled list: acceleration = The sensor collects acceleration data; accessory-measurements = The sensor collects accessory measurements, such as battery voltage; acoustic-telemetry = The sensor transmits an acoustic signal that is detected by receivers to determine location; argos-doppler-shift = The sensor location is estimated by Argos using Doppler shift; barometer = The sensor records air or water pressure; bird-ring = The animal is identified by a band or ring that has a unique identifier; gps = The sensor uses GPS to determine location; gyroscope = The sensor records angular velocity; heart-rate = The sensor records or is used to calculate heart rate; magnetometer = The sensor records the magnetic field; natural-mark = The animal is identified by a unique natural marking; orientation = Quaternion components describing the orientation of the tag are derived from accelerometer and gyroscope measurements; proximity = The sensor identifies proximity to other tags; radio-transmitter = The sensor transmits a radio signal that is detected by receivers to determine location; sigfox-geolocation = The sensor location is determined by Sigfox using the received signal strength indicator; solar-geolocator = The sensor collects light levels, which are used to determine position (for processed locations); solar-geolocator-raw = The sensor collects light levels, which are used to determine position (for raw light-level measurements); solar-geolocator-twilight = The sensor collects light levels, which are used to determine position (for twilights calculated from light-level measurements). Format: controlled list; Entity described: event", + "format": "default", + "name": "sensor-type", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000170/6/", + "title": "sensor type", + "type": "string", + }, + { + "description": "This attribute has been merged with 'animal taxon'. The scientific name of the species on which the tag was deployed, as defined by the Integrated Taxonomic Information System (ITIS, www.itis.gov). If the species name can not be provided, this should be the lowest level taxonomic rank that can be determined and that is used in the ITIS taxonomy. Additional information can be provided using the term 'taxon detail'. Format: controlled list; Entity described: individual", + "format": "default", + "name": "individual-taxon-canonical-name", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000135/5/", + "title": "individual taxon canonical name", + "type": "string", + }, + { + "description": "This attribute has been merged with 'tag ID'. An identifier for the tag, provided by the data owner. Values are unique within the study. If the data owner does not provide a tag ID, an internal Movebank tag identifier may sometimes be shown. Example: '2342'; Units: none; Entity described: tag", + "format": "default", + "name": "tag-local-identifier", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000182/5/", + "title": "tag local identifier", + "type": "string", + }, + { + "description": "This attribute has been merged with 'animal ID'. An individual identifier for the animal, provided by the data owner. Values are unique within the study. If the data owner does not provide an Animal ID, an internal Movebank animal identifier is sometimes shown. Example: '91876A, Gary'; Units: none; Entity described: individual", + "format": "default", + "name": "individual-local-identifier", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000134/4/", + "title": "individual local identifier", + "type": "string", + }, + { + "description": "The name of the study in Movebank. Example: 'Coyotes, Kays and Bogan, Albany NY'; Units: none; Entity described: study", + "format": "default", + "name": "study-name", + "skos:exactMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000173/3/", + "title": "study name", + "type": "string", + }, + ], + "foreignKeys": [ + { + "fields": [ + "individual-local-identifier", + "tag-local-identifier", + ], + "reference": { "fields": [ - "individual-local-identifier", - "tag-local-identifier", + "animal-id", + "tag-id", ], - "reference": { - "fields": [ - "animal-id", - "tag-id", - ], - "resource": "reference-data", - }, + "resource": "reference-data", }, - ], - "primaryKey": "event-id", - }, + }, + ], + "primaryKey": [ + "event-id", + ], }, "zenodo:key": undefined, "zenodo:url": undefined, From c7b19bdaae449c04c3a890906ec6ec0989458f9f Mon Sep 17 00:00:00 2001 From: roll Date: Thu, 7 Aug 2025 13:20:19 +0100 Subject: [PATCH 40/80] Added notebooks guide --- docs/content/docs/guides/assets/jupyter.png | Bin 0 -> 258683 bytes docs/content/docs/guides/jupyter.md | 24 +++++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 docs/content/docs/guides/assets/jupyter.png diff --git a/docs/content/docs/guides/assets/jupyter.png b/docs/content/docs/guides/assets/jupyter.png new file mode 100644 index 0000000000000000000000000000000000000000..5fd6bed4630b19b3245888c1f53437f9640167dd GIT binary patch literal 258683 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ΠjcS^rxK}Bf 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%0AOwusmPmerm+aA`AUT1nL>aU-N`cgqJ+* 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

-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

T@E7gS_8NzJ8v0BBgjuE>Xg0|@ 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 literal 0 HcmV?d00001 diff --git a/docs/content/docs/guides/jupyter.md b/docs/content/docs/guides/jupyter.md index b378f509..eba5c3c8 100644 --- a/docs/content/docs/guides/jupyter.md +++ b/docs/content/docs/guides/jupyter.md @@ -4,5 +4,27 @@ sidebar: order: 10 --- -test +For data scientists and data engineers, [Jupyter Notebooks](https://docs.jupyter.org/en/latest/) provide a powerful and flexible environment for exploring, visualizing, and analyzing data. +## Installation + +1. **Install Jupyter:** `pip install jupyterlab` - Installs Jupyter Notebook, a web-based interactive computing environment for data science and data engineering. You can user another UI such as Jupyter CLI or Jupyter Desktop. + +1. **Install Deno:** `curl -fsSL https://deno.land/install.sh | sh` - Downloads and installs the Deno runtime required for TypeScript execution in Jupyter notebooks. Visit [Deno](https://deno.com) for official documentation. + +1. **Install Deno Jupyter Kernel:** `deno jupyter --install` - Sets up the Deno kernel for Jupyter, enabling TypeScript support within notebooks. + +1. **Activate Deno Jupyter Kernel:** `deno jupyter --unstable` - Enables the Deno kernel for Jupyter notebook usage. + +## Usage + +1. **Run Jupyter Notebooks:** `jupyter-lab` - Launches the Jupyter Notebook server in the current working directory, which allows you to create and run Jupyter notebooks. + +1. **Select Deno Kernel in Notebook:** Choose the Deno kernel from your notebook's kernel selection menu. VSCode users may need to install the default Jupyter kernel extensions. + +![dpkit in Jupyter Notebooks](./assets/jupyter.png) + +## References + +- [Typescript Jupyter Notebooks: How to set them up](https://alex-goff.medium.com/typescript-jupyter-notebooks-how-to-set-them-up-1ab9fd464ea4) +- [Bringing Modern JavaScript to the Jupyter Notebook](https://blog.jupyter.org/bringing-modern-javascript-to-the-jupyter-notebook-fc998095081e) From 0b27e639fec55b7eacde78f8018131a2a9dd7ced Mon Sep 17 00:00:00 2001 From: roll Date: Thu, 7 Aug 2025 14:43:28 +0100 Subject: [PATCH 41/80] Added CLI dependencies --- cli/package.json | 8 + pnpm-lock.yaml | 2768 +++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 2723 insertions(+), 53 deletions(-) diff --git a/cli/package.json b/cli/package.json index 4d29d4e4..fe925177 100644 --- a/cli/package.json +++ b/cli/package.json @@ -21,5 +21,13 @@ ], "scripts": { "build": "tsc --build" + }, + "dependencies": { + "dpkit": "workspace:*", + "ink": "^6.1.0", + "react": "^19.1.1" + }, + "devDependencies": { + "oclif": "4.22.6" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dc8ea9f4..2fbe688e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -82,7 +82,21 @@ importers: specifier: workspace:* version: link:../test - cli: {} + cli: + dependencies: + dpkit: + specifier: workspace:* + version: link:../dpkit + ink: + specifier: ^6.1.0 + version: 6.1.0(react@19.1.1) + react: + specifier: ^19.1.1 + version: 19.1.1 + devDependencies: + oclif: + specifier: 4.22.6 + version: 4.22.6(@types/node@24.2.0) core: dependencies: @@ -379,6 +393,10 @@ importers: packages: + '@alcalzone/ansi-tokenize@0.1.3': + resolution: {integrity: sha512-3yWxPTq3UQ/FY9p1ErPxIyfT64elWaMvM9lIHnaqpyft63tkxodF5aUElYHrdisWve5cETkh1+KBw1yJuW0aRw==} + engines: {node: '>=14.13.1'} + '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} @@ -414,6 +432,161 @@ packages: resolution: {integrity: sha512-SSVM820Jqc6wjsn7qYfV9qfeQvePtVc1nSofhyap7l0/iakUKywj3hfy3UJAOV4sGV4Q/u450RD4AaCaFvNPlg==} engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} + '@aws-crypto/crc32@5.2.0': + resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==} + engines: {node: '>=16.0.0'} + + '@aws-crypto/crc32c@5.2.0': + resolution: {integrity: sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==} + + '@aws-crypto/sha1-browser@5.2.0': + resolution: {integrity: sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==} + + '@aws-crypto/sha256-browser@5.2.0': + resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==} + + '@aws-crypto/sha256-js@5.2.0': + resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==} + engines: {node: '>=16.0.0'} + + '@aws-crypto/supports-web-crypto@5.2.0': + resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==} + + '@aws-crypto/util@5.2.0': + resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} + + '@aws-sdk/client-cloudfront@3.862.0': + resolution: {integrity: sha512-/SOANnvB3s2AbwxixH13ZpTwH3t7PCpSUVPwp9COMsM5Sq75ANGkUjqiMxQAm+LAFirSC9PZEQzUQOAyzW9arw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/client-s3@3.862.0': + resolution: {integrity: sha512-sPmqv2qKORtGRN51cRoHyTOK/SMejG1snXUQytuximeDPn5e/p6cCsYwOI8QuQNW+/7HbmosEz91lPcbClWXxg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/client-sso@3.862.0': + resolution: {integrity: sha512-zHf7Bn22K09BdFgiGg6yWfy927djGhs58KB5qpqD2ie7u796TvetPH14p6UUAOGyk6aah+wR/WLFFoc+51uADA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/core@3.862.0': + resolution: {integrity: sha512-oJ5Au3QCAQmOmh7PD7dUxnPDxWsT9Z95XEOiJV027//11pwRSUMiNSvW8srPa3i7CZRNjz5QHX6O4KqX9PxNsQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-env@3.862.0': + resolution: {integrity: sha512-/nafSJMuixcrCN1SmsOBIQ5m1fhr9ZnCxw3JZD9qJm3yNXhAshqAC+KcA3JGFnvdBVLhY/pUpdoQmxZmuFJItQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-http@3.862.0': + resolution: {integrity: sha512-JnF3vH6GxvPuMGSI5QsmVlmWc0ebElEiJvUGByTMSr/BfzywZdJBKzPVqViwNqAW5cBWiZ/rpL+ekZ24Nb0Vow==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-ini@3.862.0': + resolution: {integrity: sha512-LkpZ2S9DQCTHTPu1p0Qg5bM5DN/b/cEflW269RoeuYpiznxdV8r/mqYuhh/VPXQKkBZdiILe4/OODtg+vk4S0A==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-node@3.862.0': + resolution: {integrity: sha512-4+X/LdEGPCBMlhn6MCcNJ5yJ8k+yDXeSO1l9X49NNQiG60SH/yObB3VvotcHWC+A3EEZx4dOw/ylcPt86e7Irg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-process@3.862.0': + resolution: {integrity: sha512-bR/eRCjRsilAuaUpNzTWWE4sUxJC4k571+4LLxE6Xo+0oYHfH+Ih00+sQRX06s4SqZZROdppissm3OOr5d26qA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-sso@3.862.0': + resolution: {integrity: sha512-1E1rTKWJAbzN/uiIXFPCVAS2PrZgy87O6BEO69404bI7o/iYHOfohfn66bdSqBnZ7Tn/hFJdCk6i23U3pibf5w==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-web-identity@3.862.0': + resolution: {integrity: sha512-Skv07eOS4usDf/Bna3FWKIo0/35qhxb22Z/OxrbNtx2Hxa/upp42S+Y6fA9qzgLqXMNYDZngKYwwMPtzrbkMAg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-bucket-endpoint@3.862.0': + resolution: {integrity: sha512-Wcsc7VPLjImQw+CP1/YkwyofMs9Ab6dVq96iS8p0zv0C6YTaMjvillkau4zFfrrrTshdzFWKptIFhKK8Zsei1g==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-expect-continue@3.862.0': + resolution: {integrity: sha512-oG3AaVUJ+26p0ESU4INFn6MmqqiBFZGrebST66Or+YBhteed2rbbFl7mCfjtPWUFgquQlvT1UP19P3LjQKeKpw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-flexible-checksums@3.862.0': + resolution: {integrity: sha512-3PuTNJs43GmtNIfj4R/aNPGX6lfIq0gjfekVPUO/MnP/eV+RVgkCvEqWYyN6RZyOzrzsJydXbmydwLHAwMzxiw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-host-header@3.862.0': + resolution: {integrity: sha512-jDje8dCFeFHfuCAxMDXBs8hy8q9NCTlyK4ThyyfAj3U4Pixly2mmzY2u7b7AyGhWsjJNx8uhTjlYq5zkQPQCYw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-location-constraint@3.862.0': + resolution: {integrity: sha512-MnwLxCw7Cc9OngEH3SHFhrLlDI9WVxaBkp3oTsdY9JE7v8OE38wQ9vtjaRsynjwu0WRtrctSHbpd7h/QVvtjyA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-logger@3.862.0': + resolution: {integrity: sha512-N/bXSJznNBR/i7Ofmf9+gM6dx/SPBK09ZWLKsW5iQjqKxAKn/2DozlnE54uiEs1saHZWoNDRg69Ww4XYYSlG1Q==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-recursion-detection@3.862.0': + resolution: {integrity: sha512-KVoo3IOzEkTq97YKM4uxZcYFSNnMkhW/qj22csofLegZi5fk90ztUnnaeKfaEJHfHp/tm1Y3uSoOXH45s++kKQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-sdk-s3@3.862.0': + resolution: {integrity: sha512-rDRHxxZuY9E7py/OVYN1VQRAw0efEThvK5sZ3HfNNpL6Zk4HeOGtc6NtULSfeCeyHCVlJsdOVkIxJge2Ax5vSA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-ssec@3.862.0': + resolution: {integrity: sha512-72VtP7DZC8lYTE2L3Efx2BrD98oe9WTK8X6hmd3WTLkbIjvgWQWIdjgaFXBs8WevsXkewIctfyA3KEezvL5ggw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-user-agent@3.862.0': + resolution: {integrity: sha512-7OOaGbAw7Kg1zoKO9wV8cA5NnJC+RYsocjmP3FZ0FiKa7gbmeQ6Cfheunzd1Re9fgelgL3OIRjqO5mSmOIhyhA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/nested-clients@3.862.0': + resolution: {integrity: sha512-fPrfXa+m9S0DA5l8+p4A9NFQ22lEHm/ezaUWWWs6F3/U49lR6yKhNAGji3LlIG7b7ZdTJ3smAcaxNHclJsoQIg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/region-config-resolver@3.862.0': + resolution: {integrity: sha512-VisR+/HuVFICrBPY+q9novEiE4b3mvDofWqyvmxHcWM7HumTz9ZQSuEtnlB/92GVM3KDUrR9EmBHNRrfXYZkcQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/signature-v4-multi-region@3.862.0': + resolution: {integrity: sha512-ZAjrbXnu3yTxXMPiEVxDP/I8zfssrLQGgUi0NgJP6Cz/mOS/S/3hfOZrMown1jLhkTrzLpjNE8Q2n18VtRbScQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/token-providers@3.862.0': + resolution: {integrity: sha512-p3u7aom3WQ7ArFByNbccRIkCssk5BB4IUX9oFQa2P0MOFCbkKFBLG7WMegRXhq5grOHmI4SRftEDDy3CcoTqSQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/types@3.862.0': + resolution: {integrity: sha512-Bei+RL0cDxxV+lW2UezLbCYYNeJm6Nzee0TpW0FfyTRBhH9C1XQh4+x+IClriXvgBnRquTMMYsmJfvx8iyLKrg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/util-arn-parser@3.804.0': + resolution: {integrity: sha512-wmBJqn1DRXnZu3b4EkE6CWnoWMo1ZMvlfkqU5zPz67xx1GMaXlDCchFvKAXMjk4jn/L1O3tKnoFDNsoLV1kgNQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/util-endpoints@3.862.0': + resolution: {integrity: sha512-eCZuScdE9MWWkHGM2BJxm726MCmWk/dlHjOKvkM0sN1zxBellBMw5JohNss1Z8/TUmnW2gb9XHTOiHuGjOdksA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/util-locate-window@3.804.0': + resolution: {integrity: sha512-zVoRfpmBVPodYlnMjgVjfGoEZagyRF5IPn3Uo6ZvOZp24chnW/FRstH7ESDHDDRga4z3V+ElUQHKpFDXWyBW5A==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/util-user-agent-browser@3.862.0': + resolution: {integrity: sha512-BmPTlm0r9/10MMr5ND9E92r8KMZbq5ltYXYpVcUbAsnB1RJ8ASJuRoLne5F7mB3YMx0FJoOTuSq7LdQM3LgW3Q==} + + '@aws-sdk/util-user-agent-node@3.862.0': + resolution: {integrity: sha512-KtJdSoa1Vmwquy+zwiqRQjtsuKaHlVcZm8tsTchHbc6809/VeaC+ZZOqlil9IWOOyWNGIX8GTRwP9TEb8cT5Gw==} + engines: {node: '>=18.0.0'} + peerDependencies: + aws-crt: '>=1.0.0' + peerDependenciesMeta: + aws-crt: + optional: true + + '@aws-sdk/xml-builder@3.862.0': + resolution: {integrity: sha512-6Ed0kmC1NMbuFTEgNmamAUU1h5gShgxL1hBVLbEzUa3trX5aJBz1vU4bXaBTvOYUAnOHtiy1Ml4AMStd6hJnFA==} + engines: {node: '>=18.0.0'} + '@babel/helper-string-parser@7.27.1': resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} @@ -949,6 +1122,151 @@ packages: cpu: [x64] os: [win32] + '@inquirer/checkbox@4.2.0': + resolution: {integrity: sha512-fdSw07FLJEU5vbpOPzXo5c6xmMGDzbZE2+niuDHX5N6mc6V0Ebso/q3xiHra4D73+PMsC8MJmcaZKuAAoaQsSA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/confirm@3.2.0': + resolution: {integrity: sha512-oOIwPs0Dvq5220Z8lGL/6LHRTEr9TgLHmiI99Rj1PJ1p1czTys+olrgBqZk4E2qC0YTzeHprxSQmoHioVdJ7Lw==} + engines: {node: '>=18'} + + '@inquirer/confirm@5.1.14': + resolution: {integrity: sha512-5yR4IBfe0kXe59r1YCTG8WXkUbl7Z35HK87Sw+WUyGD8wNUx7JvY7laahzeytyE1oLn74bQnL7hstctQxisQ8Q==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/core@10.1.15': + resolution: {integrity: sha512-8xrp836RZvKkpNbVvgWUlxjT4CraKk2q+I3Ksy+seI2zkcE+y6wNs1BVhgcv8VyImFecUhdQrYLdW32pAjwBdA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/core@9.2.1': + resolution: {integrity: sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==} + engines: {node: '>=18'} + + '@inquirer/editor@4.2.15': + resolution: {integrity: sha512-wst31XT8DnGOSS4nNJDIklGKnf+8shuauVrWzgKegWUe28zfCftcWZ2vktGdzJgcylWSS2SrDnYUb6alZcwnCQ==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/expand@4.0.17': + resolution: {integrity: sha512-PSqy9VmJx/VbE3CT453yOfNa+PykpKg/0SYP7odez1/NWBGuDXgPhp4AeGYYKjhLn5lUUavVS/JbeYMPdH50Mw==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/figures@1.0.13': + resolution: {integrity: sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==} + engines: {node: '>=18'} + + '@inquirer/input@2.3.0': + resolution: {integrity: sha512-XfnpCStx2xgh1LIRqPXrTNEEByqQWoxsWYzNRSEUxJ5c6EQlhMogJ3vHKu8aXuTacebtaZzMAHwEL0kAflKOBw==} + engines: {node: '>=18'} + + '@inquirer/input@4.2.1': + resolution: {integrity: sha512-tVC+O1rBl0lJpoUZv4xY+WGWY8V5b0zxU1XDsMsIHYregdh7bN5X5QnIONNBAl0K765FYlAfNHS2Bhn7SSOVow==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/number@3.0.17': + resolution: {integrity: sha512-GcvGHkyIgfZgVnnimURdOueMk0CztycfC8NZTiIY9arIAkeOgt6zG57G+7vC59Jns3UX27LMkPKnKWAOF5xEYg==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/password@4.0.17': + resolution: {integrity: sha512-DJolTnNeZ00E1+1TW+8614F7rOJJCM4y4BAGQ3Gq6kQIG+OJ4zr3GLjIjVVJCbKsk2jmkmv6v2kQuN/vriHdZA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/prompts@7.8.0': + resolution: {integrity: sha512-JHwGbQ6wjf1dxxnalDYpZwZxUEosT+6CPGD9Zh4sm9WXdtUp9XODCQD3NjSTmu+0OAyxWXNOqf0spjIymJa2Tw==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/rawlist@4.1.5': + resolution: {integrity: sha512-R5qMyGJqtDdi4Ht521iAkNqyB6p2UPuZUbMifakg1sWtu24gc2Z8CJuw8rP081OckNDMgtDCuLe42Q2Kr3BolA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/search@3.1.0': + resolution: {integrity: sha512-PMk1+O/WBcYJDq2H7foV0aAZSmDdkzZB9Mw2v/DmONRJopwA/128cS9M/TXWLKKdEQKZnKwBzqu2G4x/2Nqx8Q==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/select@2.5.0': + resolution: {integrity: sha512-YmDobTItPP3WcEI86GvPo+T2sRHkxxOq/kXmsBjHS5BVXUgvgZ5AfJjkvQvZr03T81NnI3KrrRuMzeuYUQRFOA==} + engines: {node: '>=18'} + + '@inquirer/select@4.3.1': + resolution: {integrity: sha512-Gfl/5sqOF5vS/LIrSndFgOh7jgoe0UXEizDqahFRkq5aJBLegZ6WjuMh/hVEJwlFQjyLq1z9fRtvUMkb7jM1LA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/type@1.5.5': + resolution: {integrity: sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==} + engines: {node: '>=18'} + + '@inquirer/type@2.0.0': + resolution: {integrity: sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==} + engines: {node: '>=18'} + + '@inquirer/type@3.0.8': + resolution: {integrity: sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -1086,6 +1404,22 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@oclif/core@4.5.2': + resolution: {integrity: sha512-eQcKyrEcDYeZJKu4vUWiu0ii/1Gfev6GF4FsLSgNez5/+aQyAUCjg3ZWlurf491WiYZTXCWyKAxyPWk8DKv2MA==} + engines: {node: '>=18.0.0'} + + '@oclif/plugin-help@6.2.32': + resolution: {integrity: sha512-LrmMdo9EMJciOvF8UurdoTcTMymv5npKtxMAyonZvhSvGR8YwCKnuHIh00+SO2mNtGOYam7f4xHnUmj2qmanyA==} + engines: {node: '>=18.0.0'} + + '@oclif/plugin-not-found@3.2.63': + resolution: {integrity: sha512-xW+I6czUGqaeocVt1+brUKzXvL85mBTKdmJGlsB8pl9qUL3PJoIBIIDhbleR499T0jR+j1hpy8yWSCrs54icMQ==} + engines: {node: '>=18.0.0'} + + '@oclif/plugin-warn-if-update-available@3.1.46': + resolution: {integrity: sha512-YDlr//SHmC80eZrt+0wNFWSo1cOSU60RoWdhSkAoPB3pUGPSNHZDquXDpo7KniinzYPsj1rfetCYk7UVXwYu7A==} + engines: {node: '>=18.0.0'} + '@oslojs/encoding@1.1.0': resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} @@ -1121,6 +1455,18 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} + '@pnpm/config.env-replace@1.1.0': + resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} + engines: {node: '>=12.22.0'} + + '@pnpm/network.ca-file@1.0.2': + resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} + engines: {node: '>=12.22.0'} + + '@pnpm/npm-conf@2.3.1': + resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} + engines: {node: '>=12'} + '@polka/url@1.0.0-next.29': resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} @@ -1279,13 +1625,233 @@ packages: resolution: {integrity: sha512-suq9tRQ6bkpMukTG5K5z0sPWB7t0zExMzZCdmYm6xTSSIm/yCKNm7VCL36wVeyTsFr597/UhU1OAYdHGMDiHrw==} engines: {node: '>=10'} + '@sindresorhus/is@5.6.0': + resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} + engines: {node: '>=14.16'} + '@sindresorhus/slugify@0.9.1': resolution: {integrity: sha512-b6heYM9dzZD13t2GOiEQTDE0qX+I1GyOotMwKh9VQqzuNiVdPVT8dM43fe9HNb/3ul+Qwd5oKSEDrDIfhq3bnQ==} engines: {node: '>=8'} + '@smithy/abort-controller@4.0.5': + resolution: {integrity: sha512-jcrqdTQurIrBbUm4W2YdLVMQDoL0sA9DTxYd2s+R/y+2U9NLOP7Xf/YqfSg1FZhlZIYEnvk2mwbyvIfdLEPo8g==} + engines: {node: '>=18.0.0'} + + '@smithy/chunked-blob-reader-native@4.0.0': + resolution: {integrity: sha512-R9wM2yPmfEMsUmlMlIgSzOyICs0x9uu7UTHoccMyt7BWw8shcGM8HqB355+BZCPBcySvbTYMs62EgEQkNxz2ig==} + engines: {node: '>=18.0.0'} + + '@smithy/chunked-blob-reader@5.0.0': + resolution: {integrity: sha512-+sKqDBQqb036hh4NPaUiEkYFkTUGYzRsn3EuFhyfQfMy6oGHEUJDurLP9Ufb5dasr/XiAmPNMr6wa9afjQB+Gw==} + engines: {node: '>=18.0.0'} + + '@smithy/config-resolver@4.1.5': + resolution: {integrity: sha512-viuHMxBAqydkB0AfWwHIdwf/PRH2z5KHGUzqyRtS/Wv+n3IHI993Sk76VCA7dD/+GzgGOmlJDITfPcJC1nIVIw==} + engines: {node: '>=18.0.0'} + + '@smithy/core@3.8.0': + resolution: {integrity: sha512-EYqsIYJmkR1VhVE9pccnk353xhs+lB6btdutJEtsp7R055haMJp2yE16eSxw8fv+G0WUY6vqxyYOP8kOqawxYQ==} + engines: {node: '>=18.0.0'} + + '@smithy/credential-provider-imds@4.0.7': + resolution: {integrity: sha512-dDzrMXA8d8riFNiPvytxn0mNwR4B3h8lgrQ5UjAGu6T9z/kRg/Xncf4tEQHE/+t25sY8IH3CowcmWi+1U5B1Gw==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-codec@4.0.5': + resolution: {integrity: sha512-miEUN+nz2UTNoRYRhRqVTJCx7jMeILdAurStT2XoS+mhokkmz1xAPp95DFW9Gxt4iF2VBqpeF9HbTQ3kY1viOA==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-browser@4.0.5': + resolution: {integrity: sha512-LCUQUVTbM6HFKzImYlSB9w4xafZmpdmZsOh9rIl7riPC3osCgGFVP+wwvYVw6pXda9PPT9TcEZxaq3XE81EdJQ==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-config-resolver@4.1.3': + resolution: {integrity: sha512-yTTzw2jZjn/MbHu1pURbHdpjGbCuMHWncNBpJnQAPxOVnFUAbSIUSwafiphVDjNV93TdBJWmeVAds7yl5QCkcA==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-node@4.0.5': + resolution: {integrity: sha512-lGS10urI4CNzz6YlTe5EYG0YOpsSp3ra8MXyco4aqSkQDuyZPIw2hcaxDU82OUVtK7UY9hrSvgWtpsW5D4rb4g==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-universal@4.0.5': + resolution: {integrity: sha512-JFnmu4SU36YYw3DIBVao3FsJh4Uw65vVDIqlWT4LzR6gXA0F3KP0IXFKKJrhaVzCBhAuMsrUUaT5I+/4ZhF7aw==} + engines: {node: '>=18.0.0'} + + '@smithy/fetch-http-handler@5.1.1': + resolution: {integrity: sha512-61WjM0PWmZJR+SnmzaKI7t7G0UkkNFboDpzIdzSoy7TByUzlxo18Qlh9s71qug4AY4hlH/CwXdubMtkcNEb/sQ==} + engines: {node: '>=18.0.0'} + + '@smithy/hash-blob-browser@4.0.5': + resolution: {integrity: sha512-F7MmCd3FH/Q2edhcKd+qulWkwfChHbc9nhguBlVjSUE6hVHhec3q6uPQ+0u69S6ppvLtR3eStfCuEKMXBXhvvA==} + engines: {node: '>=18.0.0'} + + '@smithy/hash-node@4.0.5': + resolution: {integrity: sha512-cv1HHkKhpyRb6ahD8Vcfb2Hgz67vNIXEp2vnhzfxLFGRukLCNEA5QdsorbUEzXma1Rco0u3rx5VTqbM06GcZqQ==} + engines: {node: '>=18.0.0'} + + '@smithy/hash-stream-node@4.0.5': + resolution: {integrity: sha512-IJuDS3+VfWB67UC0GU0uYBG/TA30w+PlOaSo0GPm9UHS88A6rCP6uZxNjNYiyRtOcjv7TXn/60cW8ox1yuZsLg==} + engines: {node: '>=18.0.0'} + + '@smithy/invalid-dependency@4.0.5': + resolution: {integrity: sha512-IVnb78Qtf7EJpoEVo7qJ8BEXQwgC4n3igeJNNKEj/MLYtapnx8A67Zt/J3RXAj2xSO1910zk0LdFiygSemuLow==} + engines: {node: '>=18.0.0'} + + '@smithy/is-array-buffer@2.2.0': + resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} + engines: {node: '>=14.0.0'} + + '@smithy/is-array-buffer@4.0.0': + resolution: {integrity: sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==} + engines: {node: '>=18.0.0'} + + '@smithy/md5-js@4.0.5': + resolution: {integrity: sha512-8n2XCwdUbGr8W/XhMTaxILkVlw2QebkVTn5tm3HOcbPbOpWg89zr6dPXsH8xbeTsbTXlJvlJNTQsKAIoqQGbdA==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-content-length@4.0.5': + resolution: {integrity: sha512-l1jlNZoYzoCC7p0zCtBDE5OBXZ95yMKlRlftooE5jPWQn4YBPLgsp+oeHp7iMHaTGoUdFqmHOPa8c9G3gBsRpQ==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-endpoint@4.1.18': + resolution: {integrity: sha512-ZhvqcVRPZxnZlokcPaTwb+r+h4yOIOCJmx0v2d1bpVlmP465g3qpVSf7wxcq5zZdu4jb0H4yIMxuPwDJSQc3MQ==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-retry@4.1.19': + resolution: {integrity: sha512-X58zx/NVECjeuUB6A8HBu4bhx72EoUz+T5jTMIyeNKx2lf+Gs9TmWPNNkH+5QF0COjpInP/xSpJGJ7xEnAklQQ==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-serde@4.0.9': + resolution: {integrity: sha512-uAFFR4dpeoJPGz8x9mhxp+RPjo5wW0QEEIPPPbLXiRRWeCATf/Km3gKIVR5vaP8bN1kgsPhcEeh+IZvUlBv6Xg==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-stack@4.0.5': + resolution: {integrity: sha512-/yoHDXZPh3ocRVyeWQFvC44u8seu3eYzZRveCMfgMOBcNKnAmOvjbL9+Cp5XKSIi9iYA9PECUuW2teDAk8T+OQ==} + engines: {node: '>=18.0.0'} + + '@smithy/node-config-provider@4.1.4': + resolution: {integrity: sha512-+UDQV/k42jLEPPHSn39l0Bmc4sB1xtdI9Gd47fzo/0PbXzJ7ylgaOByVjF5EeQIumkepnrJyfx86dPa9p47Y+w==} + engines: {node: '>=18.0.0'} + + '@smithy/node-http-handler@4.1.1': + resolution: {integrity: sha512-RHnlHqFpoVdjSPPiYy/t40Zovf3BBHc2oemgD7VsVTFFZrU5erFFe0n52OANZZ/5sbshgD93sOh5r6I35Xmpaw==} + engines: {node: '>=18.0.0'} + + '@smithy/property-provider@4.0.5': + resolution: {integrity: sha512-R/bswf59T/n9ZgfgUICAZoWYKBHcsVDurAGX88zsiUtOTA/xUAPyiT+qkNCPwFn43pZqN84M4MiUsbSGQmgFIQ==} + engines: {node: '>=18.0.0'} + + '@smithy/protocol-http@5.1.3': + resolution: {integrity: sha512-fCJd2ZR7D22XhDY0l+92pUag/7je2BztPRQ01gU5bMChcyI0rlly7QFibnYHzcxDvccMjlpM/Q1ev8ceRIb48w==} + engines: {node: '>=18.0.0'} + + '@smithy/querystring-builder@4.0.5': + resolution: {integrity: sha512-NJeSCU57piZ56c+/wY+AbAw6rxCCAOZLCIniRE7wqvndqxcKKDOXzwWjrY7wGKEISfhL9gBbAaWWgHsUGedk+A==} + engines: {node: '>=18.0.0'} + + '@smithy/querystring-parser@4.0.5': + resolution: {integrity: sha512-6SV7md2CzNG/WUeTjVe6Dj8noH32r4MnUeFKZrnVYsQxpGSIcphAanQMayi8jJLZAWm6pdM9ZXvKCpWOsIGg0w==} + engines: {node: '>=18.0.0'} + + '@smithy/service-error-classification@4.0.7': + resolution: {integrity: sha512-XvRHOipqpwNhEjDf2L5gJowZEm5nsxC16pAZOeEcsygdjv9A2jdOh3YoDQvOXBGTsaJk6mNWtzWalOB9976Wlg==} + engines: {node: '>=18.0.0'} + + '@smithy/shared-ini-file-loader@4.0.5': + resolution: {integrity: sha512-YVVwehRDuehgoXdEL4r1tAAzdaDgaC9EQvhK0lEbfnbrd0bd5+CTQumbdPryX3J2shT7ZqQE+jPW4lmNBAB8JQ==} + engines: {node: '>=18.0.0'} + + '@smithy/signature-v4@5.1.3': + resolution: {integrity: sha512-mARDSXSEgllNzMw6N+mC+r1AQlEBO3meEAkR/UlfAgnMzJUB3goRBWgip1EAMG99wh36MDqzo86SfIX5Y+VEaw==} + engines: {node: '>=18.0.0'} + + '@smithy/smithy-client@4.4.10': + resolution: {integrity: sha512-iW6HjXqN0oPtRS0NK/zzZ4zZeGESIFcxj2FkWed3mcK8jdSdHzvnCKXSjvewESKAgGKAbJRA+OsaqKhkdYRbQQ==} + engines: {node: '>=18.0.0'} + + '@smithy/types@4.3.2': + resolution: {integrity: sha512-QO4zghLxiQ5W9UZmX2Lo0nta2PuE1sSrXUYDoaB6HMR762C0P7v/HEPHf6ZdglTVssJG1bsrSBxdc3quvDSihw==} + engines: {node: '>=18.0.0'} + + '@smithy/url-parser@4.0.5': + resolution: {integrity: sha512-j+733Um7f1/DXjYhCbvNXABV53NyCRRA54C7bNEIxNPs0YjfRxeMKjjgm2jvTYrciZyCjsicHwQ6Q0ylo+NAUw==} + engines: {node: '>=18.0.0'} + + '@smithy/util-base64@4.0.0': + resolution: {integrity: sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==} + engines: {node: '>=18.0.0'} + + '@smithy/util-body-length-browser@4.0.0': + resolution: {integrity: sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==} + engines: {node: '>=18.0.0'} + + '@smithy/util-body-length-node@4.0.0': + resolution: {integrity: sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==} + engines: {node: '>=18.0.0'} + + '@smithy/util-buffer-from@2.2.0': + resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} + engines: {node: '>=14.0.0'} + + '@smithy/util-buffer-from@4.0.0': + resolution: {integrity: sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==} + engines: {node: '>=18.0.0'} + + '@smithy/util-config-provider@4.0.0': + resolution: {integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==} + engines: {node: '>=18.0.0'} + + '@smithy/util-defaults-mode-browser@4.0.26': + resolution: {integrity: sha512-xgl75aHIS/3rrGp7iTxQAOELYeyiwBu+eEgAk4xfKwJJ0L8VUjhO2shsDpeil54BOFsqmk5xfdesiewbUY5tKQ==} + engines: {node: '>=18.0.0'} + + '@smithy/util-defaults-mode-node@4.0.26': + resolution: {integrity: sha512-z81yyIkGiLLYVDetKTUeCZQ8x20EEzvQjrqJtb/mXnevLq2+w3XCEWTJ2pMp401b6BkEkHVfXb/cROBpVauLMQ==} + engines: {node: '>=18.0.0'} + + '@smithy/util-endpoints@3.0.7': + resolution: {integrity: sha512-klGBP+RpBp6V5JbrY2C/VKnHXn3d5V2YrifZbmMY8os7M6m8wdYFoO6w/fe5VkP+YVwrEktW3IWYaSQVNZJ8oQ==} + engines: {node: '>=18.0.0'} + + '@smithy/util-hex-encoding@4.0.0': + resolution: {integrity: sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==} + engines: {node: '>=18.0.0'} + + '@smithy/util-middleware@4.0.5': + resolution: {integrity: sha512-N40PfqsZHRSsByGB81HhSo+uvMxEHT+9e255S53pfBw/wI6WKDI7Jw9oyu5tJTLwZzV5DsMha3ji8jk9dsHmQQ==} + engines: {node: '>=18.0.0'} + + '@smithy/util-retry@4.0.7': + resolution: {integrity: sha512-TTO6rt0ppK70alZpkjwy+3nQlTiqNfoXja+qwuAchIEAIoSZW8Qyd76dvBv3I5bCpE38APafG23Y/u270NspiQ==} + engines: {node: '>=18.0.0'} + + '@smithy/util-stream@4.2.4': + resolution: {integrity: sha512-vSKnvNZX2BXzl0U2RgCLOwWaAP9x/ddd/XobPK02pCbzRm5s55M53uwb1rl/Ts7RXZvdJZerPkA+en2FDghLuQ==} + engines: {node: '>=18.0.0'} + + '@smithy/util-uri-escape@4.0.0': + resolution: {integrity: sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==} + engines: {node: '>=18.0.0'} + + '@smithy/util-utf8@2.3.0': + resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} + engines: {node: '>=14.0.0'} + + '@smithy/util-utf8@4.0.0': + resolution: {integrity: sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==} + engines: {node: '>=18.0.0'} + + '@smithy/util-waiter@4.0.7': + resolution: {integrity: sha512-mYqtQXPmrwvUljaHyGxYUIIRI3qjBTEb/f5QFi3A6VlxhpmZd5mWXn9W+qUkf2pVE1Hv3SqxefiZOPGdxmO64A==} + engines: {node: '>=18.0.0'} + '@swc/helpers@0.5.17': resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} + '@szmarczak/http-timer@5.0.1': + resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} + engines: {node: '>=14.16'} + '@tybys/wasm-util@0.9.0': resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} @@ -1304,6 +1870,9 @@ packages: '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + '@types/http-cache-semantics@4.0.4': + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + '@types/js-yaml@4.0.9': resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} @@ -1316,6 +1885,9 @@ packages: '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + '@types/mute-stream@0.0.4': + resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} + '@types/nlcst@2.0.3': resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} @@ -1343,6 +1915,12 @@ packages: '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + '@types/uuid@9.0.8': + resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} + + '@types/wrap-ansi@3.0.0': + resolution: {integrity: sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==} + '@types/yauzl-promise@4.0.1': resolution: {integrity: sha512-qYEC3rJwqiJpdQ9b+bPNeuSY0c3JUM8vIuDy08qfuVN7xHm3ZDsHn2kGphUIB0ruEXrPGNXZ64nMUcu4fDjViQ==} @@ -1419,6 +1997,14 @@ packages: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-escapes@7.0.0: + resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} + engines: {node: '>=18'} + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -1435,6 +2021,10 @@ packages: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} + ansis@3.17.0: + resolution: {integrity: sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg==} + engines: {node: '>=14'} + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -1480,6 +2070,16 @@ packages: engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true + async-retry@1.3.3: + resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} + + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + + auto-bind@5.0.1: + resolution: {integrity: sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} @@ -1552,6 +2152,14 @@ packages: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} + cacheable-lookup@7.0.0: + resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} + engines: {node: '>=14.16'} + + cacheable-request@10.2.14: + resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} + engines: {node: '>=14.16'} + call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} @@ -1560,10 +2168,16 @@ packages: resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} engines: {node: '>= 0.4'} + camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + camelcase@8.0.0: resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} engines: {node: '>=16'} + capital-case@1.0.4: + resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} + ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -1575,6 +2189,9 @@ packages: resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + change-case@4.1.2: + resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} + character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} @@ -1606,10 +2223,30 @@ packages: resolution: {integrity: sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==} engines: {node: '>=8'} + clean-stack@3.0.1: + resolution: {integrity: sha512-lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg==} + engines: {node: '>=10'} + cli-boxes@3.0.0: resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} engines: {node: '>=10'} + cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + + cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} + + cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} + clone@2.1.2: resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} engines: {node: '>=0.8'} @@ -1618,6 +2255,10 @@ packages: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} + code-excerpt@4.0.0: + resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + collapse-white-space@2.1.0: resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} @@ -1641,6 +2282,12 @@ packages: common-ancestor-path@1.0.1: resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + config-chain@1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + + constant-case@3.0.4: + resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} + content-disposition@0.5.4: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} @@ -1649,6 +2296,10 @@ packages: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} + convert-to-spaces@2.0.1: + resolution: {integrity: sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + cookie-es@1.2.2: resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} @@ -1713,14 +2364,31 @@ packages: supports-color: optional: true + debug@4.4.1: + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decode-named-character-reference@1.1.0: resolution: {integrity: sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==} + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + deep-eql@5.0.2: resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} - define-data-property@1.1.4: + defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + + define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -1750,10 +2418,18 @@ packages: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} + detect-indent@7.0.1: + resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} + engines: {node: '>=12.20'} + detect-libc@2.0.4: resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} engines: {node: '>=8'} + detect-newline@4.0.1: + resolution: {integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + detect-node@2.1.0: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} @@ -1785,6 +2461,9 @@ packages: dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dset@3.1.4: resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} engines: {node: '>=4'} @@ -1799,6 +2478,11 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + ejs@3.1.10: + resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} + engines: {node: '>=0.10.0'} + hasBin: true + emoji-regex@10.4.0: resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} @@ -1828,6 +2512,13 @@ packages: resolution: {integrity: sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==} engines: {node: '>=0.12'} + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + es-define-property@1.0.1: resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} engines: {node: '>= 0.4'} @@ -1843,6 +2534,9 @@ packages: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} + es-toolkit@1.39.8: + resolution: {integrity: sha512-A8QO9TfF+rltS8BXpdu8OS+rpGgEdnRhqIVxO/ZmNvnXBYgOdSsxukT55ELyP94gZIntWJ+Li9QRrT2u1Kitpg==} + esast-util-from-estree@2.0.0: resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} @@ -1861,6 +2555,14 @@ packages: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + escape-string-regexp@5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} @@ -1936,9 +2638,20 @@ packages: fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + fast-levenshtein@3.0.0: + resolution: {integrity: sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==} + fast-uri@3.0.6: resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} + fast-xml-parser@5.2.5: + resolution: {integrity: sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==} + hasBin: true + + fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} @@ -1953,6 +2666,9 @@ packages: fflate@0.8.2: resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} + filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -1965,6 +2681,9 @@ packages: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} + find-yarn-workspace-root@2.0.0: + resolution: {integrity: sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==} + flatted@3.3.3: resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} @@ -1982,6 +2701,10 @@ packages: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} + form-data-encoder@2.1.4: + resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} + engines: {node: '>= 14.17'} + forwarded@0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} @@ -2018,10 +2741,25 @@ packages: resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} + get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + get-proto@1.0.1: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} + get-stdin@9.0.0: + resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} + engines: {node: '>=12'} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + git-hooks-list@3.2.0: + resolution: {integrity: sha512-ZHG9a1gEhUMX1TvGrLdyWb9kDopCBbTnI8z4JgRMYxsijWipgjSEYoPWqBuIB0DnRnvqlQSEeVmzpeuPm7NdFQ==} + github-slugger@2.0.0: resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} @@ -2045,6 +2783,13 @@ packages: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} + got@13.0.0: + resolution: {integrity: sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==} + engines: {node: '>=16'} + + graceful-fs@4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -2126,6 +2871,13 @@ packages: hastscript@9.0.1: resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} + header-case@2.0.4: + resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} + + hosted-git-info@7.0.2: + resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} + engines: {node: ^16.14.0 || >=18.0.0} + html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} @@ -2141,6 +2893,10 @@ packages: http-cache-semantics@4.2.0: resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} + http-call@5.3.0: + resolution: {integrity: sha512-ahwimsC23ICE4kPl9xTBjKB4inbRaeLyZeRunC/1Jy/Z6X8tv22MEAjK+KBOMSVLaqXPTTmd8638waVIKLGx2w==} + engines: {node: '>=8.0.0'} + http-errors@2.0.0: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} @@ -2149,6 +2905,10 @@ packages: resolution: {integrity: sha512-aTbGAZDUtRt7gRmU+li7rt5WbJeemULZHLNrycJ1dRBU80Giut6NvzG8h5u1TW1zGHXkPGpEtoEKhPKogIRKdA==} engines: {node: '>=4.0.0'} + http2-wrapper@2.2.1: + resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} + engines: {node: '>=10.19.0'} + human-id@4.1.1: resolution: {integrity: sha512-3gKm/gCSUipeLsRYZbbdA1BD83lBoWUkZ7G9VFrhWPAU76KwYo5KR8V28bpoPm/ygy0x5/GCbpRQdY7VLYCoIg==} hasBin: true @@ -2172,9 +2932,33 @@ packages: import-meta-resolve@4.1.0: resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + indent-string@5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + ink@6.1.0: + resolution: {integrity: sha512-YQ+lbMD79y3FBAJXXZnuRajLEgaMFp102361eY5NrBIEVCi9oFo7gNZU4z2LBWlcjZFiTt7jetlkIbKCCH4KJA==} + engines: {node: '>=20'} + peerDependencies: + '@types/react': '>=19.0.0' + react: '>=19.0.0' + react-devtools-core: ^4.19.1 + peerDependenciesMeta: + '@types/react': + optional: true + react-devtools-core: + optional: true + inline-style-parser@0.2.4: resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} @@ -2195,12 +2979,20 @@ packages: is-alphanumerical@2.0.1: resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} is-decimal@2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + is-docker@3.0.0: resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2214,6 +3006,14 @@ packages: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} + is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + + is-fullwidth-code-point@5.0.0: + resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} + engines: {node: '>=18'} + is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -2221,6 +3021,11 @@ packages: is-hexadecimal@2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + is-in-ci@1.0.0: + resolution: {integrity: sha512-eUuAjybVTHMYWm/U+vBO1sY/JOCgoPCXRxzdju0K+K0BiGW0SChEL1MLC0PoCIR1OlPo5YAp8HuQoUlsWEICwg==} + engines: {node: '>=18'} + hasBin: true + is-inside-container@1.0.0: resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} engines: {node: '>=14.16'} @@ -2238,6 +3043,14 @@ packages: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} + is-retry-allowed@1.2.0: + resolution: {integrity: sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==} + engines: {node: '>=0.10.0'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2250,6 +3063,10 @@ packages: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + is-wsl@3.1.0: resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} engines: {node: '>=16'} @@ -2276,6 +3093,14 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jake@10.9.4: + resolution: {integrity: sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==} + engines: {node: '>=10'} + 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 @@ -2284,6 +3109,12 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} @@ -2293,6 +3124,9 @@ packages: jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + kleur@3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} @@ -2305,6 +3139,10 @@ packages: resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} engines: {node: '>= 8'} + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + linkify-it@5.0.0: resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} @@ -2321,6 +3159,9 @@ packages: lodash.startcase@4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + loglevel@1.9.2: resolution: {integrity: sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==} engines: {node: '>= 0.6.0'} @@ -2328,9 +3169,20 @@ packages: longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + loupe@3.1.3: resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==} + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + + lowercase-keys@3.0.0: + resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} @@ -2562,6 +3414,22 @@ packages: engines: {node: '>=4'} hasBin: true + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + + mimic-response@4.0.0: + resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + 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'} @@ -2588,6 +3456,14 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + mute-stream@1.0.0: + resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + mute-stream@2.0.0: + resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} + engines: {node: ^18.17.0 || >=20.5.0} + nanoid@3.3.11: resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -2604,6 +3480,9 @@ packages: nlcst-to-string@4.0.0: resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + nocache@3.0.4: resolution: {integrity: sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==} engines: {node: '>=12.0.0'} @@ -2675,10 +3554,18 @@ packages: resolution: {integrity: sha512-TN0InAOCzXS2Nrpr+8Sh9oAvILBjIoKMscz9P5XDJ+Q2F6EMb39Um9gwRzJ2kmEqYsufw6NwsafgbY41xKwVWg==} engines: {node: '>= 18'} + normalize-package-data@6.0.2: + resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} + engines: {node: ^16.14.0 || >=18.0.0} + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} + normalize-url@8.0.2: + resolution: {integrity: sha512-Ee/R3SyN4BuynXcnTaekmaVdbDAEiNrHqjQIA37mHU8G9pf7aaAD4ZX3XjBLo6rsdcxA/gtkcNYZLt30ACgynw==} + engines: {node: '>=14.16'} + npm-check-updates@18.0.1: resolution: {integrity: sha512-MO7mLp/8nm6kZNLLyPgz4gHmr9tLoU+pWPLdXuGAx+oZydBHkHWN0ibTonsrfwC2WEQNIQxuZagYwB67JQpAuw==} engines: {node: ^18.18.0 || >=20.0.0, npm: '>=8.12.1'} @@ -2699,6 +3586,11 @@ packages: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} + oclif@4.22.6: + resolution: {integrity: sha512-TsFZfPdhOKtBRv3YKnJMUVbL/JTw5IDs4DoWekpn7c+jBDw/snp0STCe48YYW4hotULwfy2yPbKr0KyzDQ7gjw==} + engines: {node: '>=18.0.0'} + hasBin: true + ofetch@1.4.1: resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} @@ -2717,6 +3609,10 @@ packages: resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} engines: {node: '>= 0.8'} + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + oniguruma-parser@0.12.1: resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} @@ -2730,6 +3626,10 @@ packages: outdent@0.5.0: resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + p-cancelable@3.0.0: + resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} + engines: {node: '>=12.20'} + p-filter@2.1.0: resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} engines: {node: '>=8'} @@ -2778,9 +3678,16 @@ packages: pako@0.2.9: resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} + param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + parse-entities@4.0.2: resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} + parse-json@4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} + engines: {node: '>=4'} + parse-latin@7.0.0: resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} @@ -2791,6 +3698,16 @@ packages: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} + pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + + patch-console@2.0.0: + resolution: {integrity: sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + path-case@3.0.4: + resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -2865,6 +3782,9 @@ packages: property-information@7.1.0: resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} + proto-list@1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} @@ -2890,6 +3810,10 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + quick-lru@7.0.1: resolution: {integrity: sha512-kLjThirJMkWKutUKbZ8ViqFc09tDQhlbQo2MNuVeLWbRauqYP96Sm6nzlQ24F0HFjUNZ4i9+AgldJ9H6DZXi7g==} engines: {node: '>=18'} @@ -2905,6 +3829,16 @@ packages: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} + react-reconciler@0.32.0: + resolution: {integrity: sha512-2NPMOzgTlG0ZWdIf3qG+dcbLSoAc/uLfOwckc3ofy5sSK0pLJqnQLpUFxvGcN2rlXSjnVtGeeFLNimCQEj5gOQ==} + engines: {node: '>=0.10.0'} + peerDependencies: + react: ^19.1.0 + + react@19.1.1: + resolution: {integrity: sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==} + engines: {node: '>=0.10.0'} + read-yaml-file@1.1.0: resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} engines: {node: '>=6'} @@ -2934,6 +3868,10 @@ packages: regex@6.0.1: resolution: {integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==} + registry-auth-token@5.1.0: + resolution: {integrity: sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw==} + engines: {node: '>=14'} + rehype-expressive-code@0.41.2: resolution: {integrity: sha512-vHYfWO9WxAw6kHHctddOt+P4266BtyT1mrOIuxJD+1ELuvuJAa5uBIhYt0OVMyOhlvf57hzWOXJkHnMhpaHyxw==} @@ -2984,10 +3922,21 @@ packages: requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} + responselike@3.0.0: + resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} + engines: {node: '>=14.16'} + + restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + restructure@3.0.2: resolution: {integrity: sha512-gSfoiOEA0VPE6Tukkrr7I0RBdE0s7H1eFCDBk05l1KIQT1UIKNc5JZy6jdyW6eYH3aR3g5b3PuL77rq0hvwtAw==} @@ -3003,6 +3952,10 @@ packages: retext@9.0.0: resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==} + retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + reusify@1.1.0: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -3030,6 +3983,12 @@ packages: sax@1.4.1: resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + + scheduler@0.26.0: + resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} + semver@7.7.2: resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} engines: {node: '>=10'} @@ -3039,6 +3998,9 @@ packages: resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} + sentence-case@3.0.4: + resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} + serve-static@1.16.2: resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} engines: {node: '>= 0.8.0'} @@ -3087,6 +4049,9 @@ packages: 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'} @@ -3114,6 +4079,14 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + + slice-ansi@7.1.0: + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + engines: {node: '>=18'} + slugify@1.6.6: resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==} engines: {node: '>=8.0.0'} @@ -3122,6 +4095,16 @@ packages: resolution: {integrity: sha512-UOPtVuYkzYGee0Bd2Szz8d2G3RfMfJ2t3qVdZUAozZyAk+a0Sxa+QKix0YCwjL/A1RR0ar44nCxaoN9FxdJGwA==} engines: {node: '>= 18'} + snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + + sort-object-keys@1.1.3: + resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} + + sort-package-json@2.15.1: + resolution: {integrity: sha512-9x9+o8krTT2saA9liI4BljNjwAbvUnWf11Wq+i/iZt8nl2UGYnf3TH5uBydE7VALmP7AGwlfszuEeL8BDyb0YA==} + hasBin: true + source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -3136,9 +4119,25 @@ packages: spawndamnit@3.0.1: resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-license-ids@3.0.22: + resolution: {integrity: sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==} + sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} @@ -3193,6 +4192,9 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} + strnum@2.1.1: + resolution: {integrity: sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==} + style-to-js@1.1.16: resolution: {integrity: sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==} @@ -3203,6 +4205,10 @@ packages: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + temp-dir@3.0.0: resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==} engines: {node: '>=14.16'} @@ -3225,6 +4231,9 @@ packages: tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + tiny-jsonc@1.0.2: + resolution: {integrity: sha512-f5QDAfLq6zIVSyCZQZhhyl0QS6MvAyTxgz4X4x3+EoCktNWEYJ6PeoEA97fyb98njpBNNi88ybpD7m+BDFXaCw==} + tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} @@ -3235,6 +4244,10 @@ packages: resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==} engines: {node: '>=12.0.0'} + tinyglobby@0.2.14: + resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} + engines: {node: '>=12.0.0'} + tinypool@1.0.2: resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} engines: {node: ^18.0.0 || >=20.0.0} @@ -3288,6 +4301,13 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + type-fest@1.4.0: resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} engines: {node: '>=10'} @@ -3457,6 +4477,12 @@ packages: uploadthing: optional: true + upper-case-first@2.0.2: + resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} + + upper-case@2.0.2: + resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} + url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} @@ -3470,6 +4496,17 @@ packages: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + validate-npm-package-name@5.0.1: + resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} @@ -3587,10 +4624,21 @@ packages: engines: {node: '>=8'} hasBin: true + widest-line@3.1.0: + resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} + engines: {node: '>=8'} + widest-line@5.0.0: resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} engines: {node: '>=18'} + wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -3603,6 +4651,18 @@ packages: resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} engines: {node: '>=18'} + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + xxhash-wasm@1.1.0: resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==} @@ -3630,10 +4690,17 @@ packages: resolution: {integrity: sha512-21rPcM3e4vCpOXThiFRByX8amU5By1R0wNS8Oex+DP3YgC8xdU0vEJ/K8cbPLiIJVosSSysgcFof6s6MSD5/Vw==} engines: {node: '>=18.19'} + yoctocolors-cjs@2.1.2: + resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} + engines: {node: '>=18'} + yoctocolors@2.1.1: resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} engines: {node: '>=18'} + yoga-layout@3.2.1: + resolution: {integrity: sha512-0LPOt3AxKqMdFBZA3HBAt/t/8vIKq7VaQYbuA8WxCgung+p9TVyKRYdpvCb80HcdTN2NkbIKbhNwKUfm3tQywQ==} + zod-to-json-schema@3.24.5: resolution: {integrity: sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g==} peerDependencies: @@ -3653,6 +4720,11 @@ packages: snapshots: + '@alcalzone/ansi-tokenize@0.1.3': + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + '@ampproject/remapping@2.3.0': dependencies: '@jridgewell/gen-mapping': 0.3.8 @@ -3762,73 +4834,586 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-string-parser@7.27.1': {} - - '@babel/helper-validator-identifier@7.27.1': {} - - '@babel/parser@7.27.2': + '@aws-crypto/crc32@5.2.0': dependencies: - '@babel/types': 7.27.1 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.862.0 + tslib: 2.8.1 - '@babel/runtime@7.27.1': {} + '@aws-crypto/crc32c@5.2.0': + dependencies: + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.862.0 + tslib: 2.8.1 - '@babel/types@7.27.1': + '@aws-crypto/sha1-browser@5.2.0': dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 + '@aws-crypto/supports-web-crypto': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.862.0 + '@aws-sdk/util-locate-window': 3.804.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 - '@bcoe/v8-coverage@1.0.2': {} + '@aws-crypto/sha256-browser@5.2.0': + dependencies: + '@aws-crypto/sha256-js': 5.2.0 + '@aws-crypto/supports-web-crypto': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.862.0 + '@aws-sdk/util-locate-window': 3.804.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 - '@biomejs/biome@1.9.4': - optionalDependencies: - '@biomejs/cli-darwin-arm64': 1.9.4 - '@biomejs/cli-darwin-x64': 1.9.4 - '@biomejs/cli-linux-arm64': 1.9.4 - '@biomejs/cli-linux-arm64-musl': 1.9.4 - '@biomejs/cli-linux-x64': 1.9.4 - '@biomejs/cli-linux-x64-musl': 1.9.4 - '@biomejs/cli-win32-arm64': 1.9.4 - '@biomejs/cli-win32-x64': 1.9.4 + '@aws-crypto/sha256-js@5.2.0': + dependencies: + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.862.0 + tslib: 2.8.1 - '@biomejs/cli-darwin-arm64@1.9.4': - optional: true + '@aws-crypto/supports-web-crypto@5.2.0': + dependencies: + tslib: 2.8.1 - '@biomejs/cli-darwin-x64@1.9.4': - optional: true + '@aws-crypto/util@5.2.0': + dependencies: + '@aws-sdk/types': 3.862.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 - '@biomejs/cli-linux-arm64-musl@1.9.4': - optional: true + '@aws-sdk/client-cloudfront@3.862.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.862.0 + '@aws-sdk/credential-provider-node': 3.862.0 + '@aws-sdk/middleware-host-header': 3.862.0 + '@aws-sdk/middleware-logger': 3.862.0 + '@aws-sdk/middleware-recursion-detection': 3.862.0 + '@aws-sdk/middleware-user-agent': 3.862.0 + '@aws-sdk/region-config-resolver': 3.862.0 + '@aws-sdk/types': 3.862.0 + '@aws-sdk/util-endpoints': 3.862.0 + '@aws-sdk/util-user-agent-browser': 3.862.0 + '@aws-sdk/util-user-agent-node': 3.862.0 + '@aws-sdk/xml-builder': 3.862.0 + '@smithy/config-resolver': 4.1.5 + '@smithy/core': 3.8.0 + '@smithy/fetch-http-handler': 5.1.1 + '@smithy/hash-node': 4.0.5 + '@smithy/invalid-dependency': 4.0.5 + '@smithy/middleware-content-length': 4.0.5 + '@smithy/middleware-endpoint': 4.1.18 + '@smithy/middleware-retry': 4.1.19 + '@smithy/middleware-serde': 4.0.9 + '@smithy/middleware-stack': 4.0.5 + '@smithy/node-config-provider': 4.1.4 + '@smithy/node-http-handler': 4.1.1 + '@smithy/protocol-http': 5.1.3 + '@smithy/smithy-client': 4.4.10 + '@smithy/types': 4.3.2 + '@smithy/url-parser': 4.0.5 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-body-length-node': 4.0.0 + '@smithy/util-defaults-mode-browser': 4.0.26 + '@smithy/util-defaults-mode-node': 4.0.26 + '@smithy/util-endpoints': 3.0.7 + '@smithy/util-middleware': 4.0.5 + '@smithy/util-retry': 4.0.7 + '@smithy/util-stream': 4.2.4 + '@smithy/util-utf8': 4.0.0 + '@smithy/util-waiter': 4.0.7 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-s3@3.862.0': + dependencies: + '@aws-crypto/sha1-browser': 5.2.0 + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.862.0 + '@aws-sdk/credential-provider-node': 3.862.0 + '@aws-sdk/middleware-bucket-endpoint': 3.862.0 + '@aws-sdk/middleware-expect-continue': 3.862.0 + '@aws-sdk/middleware-flexible-checksums': 3.862.0 + '@aws-sdk/middleware-host-header': 3.862.0 + '@aws-sdk/middleware-location-constraint': 3.862.0 + '@aws-sdk/middleware-logger': 3.862.0 + '@aws-sdk/middleware-recursion-detection': 3.862.0 + '@aws-sdk/middleware-sdk-s3': 3.862.0 + '@aws-sdk/middleware-ssec': 3.862.0 + '@aws-sdk/middleware-user-agent': 3.862.0 + '@aws-sdk/region-config-resolver': 3.862.0 + '@aws-sdk/signature-v4-multi-region': 3.862.0 + '@aws-sdk/types': 3.862.0 + '@aws-sdk/util-endpoints': 3.862.0 + '@aws-sdk/util-user-agent-browser': 3.862.0 + '@aws-sdk/util-user-agent-node': 3.862.0 + '@aws-sdk/xml-builder': 3.862.0 + '@smithy/config-resolver': 4.1.5 + '@smithy/core': 3.8.0 + '@smithy/eventstream-serde-browser': 4.0.5 + '@smithy/eventstream-serde-config-resolver': 4.1.3 + '@smithy/eventstream-serde-node': 4.0.5 + '@smithy/fetch-http-handler': 5.1.1 + '@smithy/hash-blob-browser': 4.0.5 + '@smithy/hash-node': 4.0.5 + '@smithy/hash-stream-node': 4.0.5 + '@smithy/invalid-dependency': 4.0.5 + '@smithy/md5-js': 4.0.5 + '@smithy/middleware-content-length': 4.0.5 + '@smithy/middleware-endpoint': 4.1.18 + '@smithy/middleware-retry': 4.1.19 + '@smithy/middleware-serde': 4.0.9 + '@smithy/middleware-stack': 4.0.5 + '@smithy/node-config-provider': 4.1.4 + '@smithy/node-http-handler': 4.1.1 + '@smithy/protocol-http': 5.1.3 + '@smithy/smithy-client': 4.4.10 + '@smithy/types': 4.3.2 + '@smithy/url-parser': 4.0.5 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-body-length-node': 4.0.0 + '@smithy/util-defaults-mode-browser': 4.0.26 + '@smithy/util-defaults-mode-node': 4.0.26 + '@smithy/util-endpoints': 3.0.7 + '@smithy/util-middleware': 4.0.5 + '@smithy/util-retry': 4.0.7 + '@smithy/util-stream': 4.2.4 + '@smithy/util-utf8': 4.0.0 + '@smithy/util-waiter': 4.0.7 + '@types/uuid': 9.0.8 + tslib: 2.8.1 + uuid: 9.0.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-sso@3.862.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.862.0 + '@aws-sdk/middleware-host-header': 3.862.0 + '@aws-sdk/middleware-logger': 3.862.0 + '@aws-sdk/middleware-recursion-detection': 3.862.0 + '@aws-sdk/middleware-user-agent': 3.862.0 + '@aws-sdk/region-config-resolver': 3.862.0 + '@aws-sdk/types': 3.862.0 + '@aws-sdk/util-endpoints': 3.862.0 + '@aws-sdk/util-user-agent-browser': 3.862.0 + '@aws-sdk/util-user-agent-node': 3.862.0 + '@smithy/config-resolver': 4.1.5 + '@smithy/core': 3.8.0 + '@smithy/fetch-http-handler': 5.1.1 + '@smithy/hash-node': 4.0.5 + '@smithy/invalid-dependency': 4.0.5 + '@smithy/middleware-content-length': 4.0.5 + '@smithy/middleware-endpoint': 4.1.18 + '@smithy/middleware-retry': 4.1.19 + '@smithy/middleware-serde': 4.0.9 + '@smithy/middleware-stack': 4.0.5 + '@smithy/node-config-provider': 4.1.4 + '@smithy/node-http-handler': 4.1.1 + '@smithy/protocol-http': 5.1.3 + '@smithy/smithy-client': 4.4.10 + '@smithy/types': 4.3.2 + '@smithy/url-parser': 4.0.5 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-body-length-node': 4.0.0 + '@smithy/util-defaults-mode-browser': 4.0.26 + '@smithy/util-defaults-mode-node': 4.0.26 + '@smithy/util-endpoints': 3.0.7 + '@smithy/util-middleware': 4.0.5 + '@smithy/util-retry': 4.0.7 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/core@3.862.0': + dependencies: + '@aws-sdk/types': 3.862.0 + '@aws-sdk/xml-builder': 3.862.0 + '@smithy/core': 3.8.0 + '@smithy/node-config-provider': 4.1.4 + '@smithy/property-provider': 4.0.5 + '@smithy/protocol-http': 5.1.3 + '@smithy/signature-v4': 5.1.3 + '@smithy/smithy-client': 4.4.10 + '@smithy/types': 4.3.2 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-middleware': 4.0.5 + '@smithy/util-utf8': 4.0.0 + fast-xml-parser: 5.2.5 + tslib: 2.8.1 - '@biomejs/cli-linux-arm64@1.9.4': - optional: true + '@aws-sdk/credential-provider-env@3.862.0': + dependencies: + '@aws-sdk/core': 3.862.0 + '@aws-sdk/types': 3.862.0 + '@smithy/property-provider': 4.0.5 + '@smithy/types': 4.3.2 + tslib: 2.8.1 - '@biomejs/cli-linux-x64-musl@1.9.4': - optional: true + '@aws-sdk/credential-provider-http@3.862.0': + dependencies: + '@aws-sdk/core': 3.862.0 + '@aws-sdk/types': 3.862.0 + '@smithy/fetch-http-handler': 5.1.1 + '@smithy/node-http-handler': 4.1.1 + '@smithy/property-provider': 4.0.5 + '@smithy/protocol-http': 5.1.3 + '@smithy/smithy-client': 4.4.10 + '@smithy/types': 4.3.2 + '@smithy/util-stream': 4.2.4 + tslib: 2.8.1 - '@biomejs/cli-linux-x64@1.9.4': - optional: true + '@aws-sdk/credential-provider-ini@3.862.0': + dependencies: + '@aws-sdk/core': 3.862.0 + '@aws-sdk/credential-provider-env': 3.862.0 + '@aws-sdk/credential-provider-http': 3.862.0 + '@aws-sdk/credential-provider-process': 3.862.0 + '@aws-sdk/credential-provider-sso': 3.862.0 + '@aws-sdk/credential-provider-web-identity': 3.862.0 + '@aws-sdk/nested-clients': 3.862.0 + '@aws-sdk/types': 3.862.0 + '@smithy/credential-provider-imds': 4.0.7 + '@smithy/property-provider': 4.0.5 + '@smithy/shared-ini-file-loader': 4.0.5 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-node@3.862.0': + dependencies: + '@aws-sdk/credential-provider-env': 3.862.0 + '@aws-sdk/credential-provider-http': 3.862.0 + '@aws-sdk/credential-provider-ini': 3.862.0 + '@aws-sdk/credential-provider-process': 3.862.0 + '@aws-sdk/credential-provider-sso': 3.862.0 + '@aws-sdk/credential-provider-web-identity': 3.862.0 + '@aws-sdk/types': 3.862.0 + '@smithy/credential-provider-imds': 4.0.7 + '@smithy/property-provider': 4.0.5 + '@smithy/shared-ini-file-loader': 4.0.5 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt - '@biomejs/cli-win32-arm64@1.9.4': - optional: true + '@aws-sdk/credential-provider-process@3.862.0': + dependencies: + '@aws-sdk/core': 3.862.0 + '@aws-sdk/types': 3.862.0 + '@smithy/property-provider': 4.0.5 + '@smithy/shared-ini-file-loader': 4.0.5 + '@smithy/types': 4.3.2 + tslib: 2.8.1 - '@biomejs/cli-win32-x64@1.9.4': - optional: true + '@aws-sdk/credential-provider-sso@3.862.0': + dependencies: + '@aws-sdk/client-sso': 3.862.0 + '@aws-sdk/core': 3.862.0 + '@aws-sdk/token-providers': 3.862.0 + '@aws-sdk/types': 3.862.0 + '@smithy/property-provider': 4.0.5 + '@smithy/shared-ini-file-loader': 4.0.5 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt - '@capsizecss/unpack@2.4.0': + '@aws-sdk/credential-provider-web-identity@3.862.0': dependencies: - blob-to-buffer: 1.2.9 - cross-fetch: 3.2.0 - fontkit: 2.0.4 + '@aws-sdk/core': 3.862.0 + '@aws-sdk/nested-clients': 3.862.0 + '@aws-sdk/types': 3.862.0 + '@smithy/property-provider': 4.0.5 + '@smithy/types': 4.3.2 + tslib: 2.8.1 transitivePeerDependencies: - - encoding + - aws-crt - '@changesets/apply-release-plan@7.0.12': + '@aws-sdk/middleware-bucket-endpoint@3.862.0': dependencies: - '@changesets/config': 3.1.1 - '@changesets/get-version-range-type': 0.4.0 - '@changesets/git': 3.0.4 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 + '@aws-sdk/types': 3.862.0 + '@aws-sdk/util-arn-parser': 3.804.0 + '@smithy/node-config-provider': 4.1.4 + '@smithy/protocol-http': 5.1.3 + '@smithy/types': 4.3.2 + '@smithy/util-config-provider': 4.0.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-expect-continue@3.862.0': + dependencies: + '@aws-sdk/types': 3.862.0 + '@smithy/protocol-http': 5.1.3 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@aws-sdk/middleware-flexible-checksums@3.862.0': + dependencies: + '@aws-crypto/crc32': 5.2.0 + '@aws-crypto/crc32c': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/core': 3.862.0 + '@aws-sdk/types': 3.862.0 + '@smithy/is-array-buffer': 4.0.0 + '@smithy/node-config-provider': 4.1.4 + '@smithy/protocol-http': 5.1.3 + '@smithy/types': 4.3.2 + '@smithy/util-middleware': 4.0.5 + '@smithy/util-stream': 4.2.4 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-host-header@3.862.0': + dependencies: + '@aws-sdk/types': 3.862.0 + '@smithy/protocol-http': 5.1.3 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@aws-sdk/middleware-location-constraint@3.862.0': + dependencies: + '@aws-sdk/types': 3.862.0 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@aws-sdk/middleware-logger@3.862.0': + dependencies: + '@aws-sdk/types': 3.862.0 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@aws-sdk/middleware-recursion-detection@3.862.0': + dependencies: + '@aws-sdk/types': 3.862.0 + '@smithy/protocol-http': 5.1.3 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@aws-sdk/middleware-sdk-s3@3.862.0': + dependencies: + '@aws-sdk/core': 3.862.0 + '@aws-sdk/types': 3.862.0 + '@aws-sdk/util-arn-parser': 3.804.0 + '@smithy/core': 3.8.0 + '@smithy/node-config-provider': 4.1.4 + '@smithy/protocol-http': 5.1.3 + '@smithy/signature-v4': 5.1.3 + '@smithy/smithy-client': 4.4.10 + '@smithy/types': 4.3.2 + '@smithy/util-config-provider': 4.0.0 + '@smithy/util-middleware': 4.0.5 + '@smithy/util-stream': 4.2.4 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-ssec@3.862.0': + dependencies: + '@aws-sdk/types': 3.862.0 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@aws-sdk/middleware-user-agent@3.862.0': + dependencies: + '@aws-sdk/core': 3.862.0 + '@aws-sdk/types': 3.862.0 + '@aws-sdk/util-endpoints': 3.862.0 + '@smithy/core': 3.8.0 + '@smithy/protocol-http': 5.1.3 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@aws-sdk/nested-clients@3.862.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.862.0 + '@aws-sdk/middleware-host-header': 3.862.0 + '@aws-sdk/middleware-logger': 3.862.0 + '@aws-sdk/middleware-recursion-detection': 3.862.0 + '@aws-sdk/middleware-user-agent': 3.862.0 + '@aws-sdk/region-config-resolver': 3.862.0 + '@aws-sdk/types': 3.862.0 + '@aws-sdk/util-endpoints': 3.862.0 + '@aws-sdk/util-user-agent-browser': 3.862.0 + '@aws-sdk/util-user-agent-node': 3.862.0 + '@smithy/config-resolver': 4.1.5 + '@smithy/core': 3.8.0 + '@smithy/fetch-http-handler': 5.1.1 + '@smithy/hash-node': 4.0.5 + '@smithy/invalid-dependency': 4.0.5 + '@smithy/middleware-content-length': 4.0.5 + '@smithy/middleware-endpoint': 4.1.18 + '@smithy/middleware-retry': 4.1.19 + '@smithy/middleware-serde': 4.0.9 + '@smithy/middleware-stack': 4.0.5 + '@smithy/node-config-provider': 4.1.4 + '@smithy/node-http-handler': 4.1.1 + '@smithy/protocol-http': 5.1.3 + '@smithy/smithy-client': 4.4.10 + '@smithy/types': 4.3.2 + '@smithy/url-parser': 4.0.5 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-body-length-node': 4.0.0 + '@smithy/util-defaults-mode-browser': 4.0.26 + '@smithy/util-defaults-mode-node': 4.0.26 + '@smithy/util-endpoints': 3.0.7 + '@smithy/util-middleware': 4.0.5 + '@smithy/util-retry': 4.0.7 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/region-config-resolver@3.862.0': + dependencies: + '@aws-sdk/types': 3.862.0 + '@smithy/node-config-provider': 4.1.4 + '@smithy/types': 4.3.2 + '@smithy/util-config-provider': 4.0.0 + '@smithy/util-middleware': 4.0.5 + tslib: 2.8.1 + + '@aws-sdk/signature-v4-multi-region@3.862.0': + dependencies: + '@aws-sdk/middleware-sdk-s3': 3.862.0 + '@aws-sdk/types': 3.862.0 + '@smithy/protocol-http': 5.1.3 + '@smithy/signature-v4': 5.1.3 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@aws-sdk/token-providers@3.862.0': + dependencies: + '@aws-sdk/core': 3.862.0 + '@aws-sdk/nested-clients': 3.862.0 + '@aws-sdk/types': 3.862.0 + '@smithy/property-provider': 4.0.5 + '@smithy/shared-ini-file-loader': 4.0.5 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/types@3.862.0': + dependencies: + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@aws-sdk/util-arn-parser@3.804.0': + dependencies: + tslib: 2.8.1 + + '@aws-sdk/util-endpoints@3.862.0': + dependencies: + '@aws-sdk/types': 3.862.0 + '@smithy/types': 4.3.2 + '@smithy/url-parser': 4.0.5 + '@smithy/util-endpoints': 3.0.7 + tslib: 2.8.1 + + '@aws-sdk/util-locate-window@3.804.0': + dependencies: + tslib: 2.8.1 + + '@aws-sdk/util-user-agent-browser@3.862.0': + dependencies: + '@aws-sdk/types': 3.862.0 + '@smithy/types': 4.3.2 + bowser: 2.11.0 + tslib: 2.8.1 + + '@aws-sdk/util-user-agent-node@3.862.0': + dependencies: + '@aws-sdk/middleware-user-agent': 3.862.0 + '@aws-sdk/types': 3.862.0 + '@smithy/node-config-provider': 4.1.4 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@aws-sdk/xml-builder@3.862.0': + dependencies: + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.27.1': {} + + '@babel/parser@7.27.2': + dependencies: + '@babel/types': 7.27.1 + + '@babel/runtime@7.27.1': {} + + '@babel/types@7.27.1': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + + '@bcoe/v8-coverage@1.0.2': {} + + '@biomejs/biome@1.9.4': + optionalDependencies: + '@biomejs/cli-darwin-arm64': 1.9.4 + '@biomejs/cli-darwin-x64': 1.9.4 + '@biomejs/cli-linux-arm64': 1.9.4 + '@biomejs/cli-linux-arm64-musl': 1.9.4 + '@biomejs/cli-linux-x64': 1.9.4 + '@biomejs/cli-linux-x64-musl': 1.9.4 + '@biomejs/cli-win32-arm64': 1.9.4 + '@biomejs/cli-win32-x64': 1.9.4 + + '@biomejs/cli-darwin-arm64@1.9.4': + optional: true + + '@biomejs/cli-darwin-x64@1.9.4': + optional: true + + '@biomejs/cli-linux-arm64-musl@1.9.4': + optional: true + + '@biomejs/cli-linux-arm64@1.9.4': + optional: true + + '@biomejs/cli-linux-x64-musl@1.9.4': + optional: true + + '@biomejs/cli-linux-x64@1.9.4': + optional: true + + '@biomejs/cli-win32-arm64@1.9.4': + optional: true + + '@biomejs/cli-win32-x64@1.9.4': + optional: true + + '@capsizecss/unpack@2.4.0': + dependencies: + blob-to-buffer: 1.2.9 + cross-fetch: 3.2.0 + fontkit: 2.0.4 + transitivePeerDependencies: + - encoding + + '@changesets/apply-release-plan@7.0.12': + dependencies: + '@changesets/config': 3.1.1 + '@changesets/get-version-range-type': 0.4.0 + '@changesets/git': 3.0.4 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 detect-indent: 6.1.0 fs-extra: 7.0.1 @@ -4246,6 +5831,163 @@ snapshots: '@img/sharp-win32-x64@0.34.2': optional: true + '@inquirer/checkbox@4.2.0(@types/node@24.2.0)': + dependencies: + '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/figures': 1.0.13 + '@inquirer/type': 3.0.8(@types/node@24.2.0) + ansi-escapes: 4.3.2 + yoctocolors-cjs: 2.1.2 + optionalDependencies: + '@types/node': 24.2.0 + + '@inquirer/confirm@3.2.0': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/type': 1.5.5 + + '@inquirer/confirm@5.1.14(@types/node@24.2.0)': + dependencies: + '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/type': 3.0.8(@types/node@24.2.0) + optionalDependencies: + '@types/node': 24.2.0 + + '@inquirer/core@10.1.15(@types/node@24.2.0)': + dependencies: + '@inquirer/figures': 1.0.13 + '@inquirer/type': 3.0.8(@types/node@24.2.0) + ansi-escapes: 4.3.2 + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.2 + optionalDependencies: + '@types/node': 24.2.0 + + '@inquirer/core@9.2.1': + dependencies: + '@inquirer/figures': 1.0.13 + '@inquirer/type': 2.0.0 + '@types/mute-stream': 0.0.4 + '@types/node': 22.15.31 + '@types/wrap-ansi': 3.0.0 + ansi-escapes: 4.3.2 + cli-width: 4.1.0 + mute-stream: 1.0.0 + signal-exit: 4.1.0 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.2 + + '@inquirer/editor@4.2.15(@types/node@24.2.0)': + dependencies: + '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/type': 3.0.8(@types/node@24.2.0) + external-editor: 3.1.0 + optionalDependencies: + '@types/node': 24.2.0 + + '@inquirer/expand@4.0.17(@types/node@24.2.0)': + dependencies: + '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/type': 3.0.8(@types/node@24.2.0) + yoctocolors-cjs: 2.1.2 + optionalDependencies: + '@types/node': 24.2.0 + + '@inquirer/figures@1.0.13': {} + + '@inquirer/input@2.3.0': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/type': 1.5.5 + + '@inquirer/input@4.2.1(@types/node@24.2.0)': + dependencies: + '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/type': 3.0.8(@types/node@24.2.0) + optionalDependencies: + '@types/node': 24.2.0 + + '@inquirer/number@3.0.17(@types/node@24.2.0)': + dependencies: + '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/type': 3.0.8(@types/node@24.2.0) + optionalDependencies: + '@types/node': 24.2.0 + + '@inquirer/password@4.0.17(@types/node@24.2.0)': + dependencies: + '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/type': 3.0.8(@types/node@24.2.0) + ansi-escapes: 4.3.2 + optionalDependencies: + '@types/node': 24.2.0 + + '@inquirer/prompts@7.8.0(@types/node@24.2.0)': + dependencies: + '@inquirer/checkbox': 4.2.0(@types/node@24.2.0) + '@inquirer/confirm': 5.1.14(@types/node@24.2.0) + '@inquirer/editor': 4.2.15(@types/node@24.2.0) + '@inquirer/expand': 4.0.17(@types/node@24.2.0) + '@inquirer/input': 4.2.1(@types/node@24.2.0) + '@inquirer/number': 3.0.17(@types/node@24.2.0) + '@inquirer/password': 4.0.17(@types/node@24.2.0) + '@inquirer/rawlist': 4.1.5(@types/node@24.2.0) + '@inquirer/search': 3.1.0(@types/node@24.2.0) + '@inquirer/select': 4.3.1(@types/node@24.2.0) + optionalDependencies: + '@types/node': 24.2.0 + + '@inquirer/rawlist@4.1.5(@types/node@24.2.0)': + dependencies: + '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/type': 3.0.8(@types/node@24.2.0) + yoctocolors-cjs: 2.1.2 + optionalDependencies: + '@types/node': 24.2.0 + + '@inquirer/search@3.1.0(@types/node@24.2.0)': + dependencies: + '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/figures': 1.0.13 + '@inquirer/type': 3.0.8(@types/node@24.2.0) + yoctocolors-cjs: 2.1.2 + optionalDependencies: + '@types/node': 24.2.0 + + '@inquirer/select@2.5.0': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/figures': 1.0.13 + '@inquirer/type': 1.5.5 + ansi-escapes: 4.3.2 + yoctocolors-cjs: 2.1.2 + + '@inquirer/select@4.3.1(@types/node@24.2.0)': + dependencies: + '@inquirer/core': 10.1.15(@types/node@24.2.0) + '@inquirer/figures': 1.0.13 + '@inquirer/type': 3.0.8(@types/node@24.2.0) + ansi-escapes: 4.3.2 + yoctocolors-cjs: 2.1.2 + optionalDependencies: + '@types/node': 24.2.0 + + '@inquirer/type@1.5.5': + dependencies: + mute-stream: 1.0.0 + + '@inquirer/type@2.0.0': + dependencies: + mute-stream: 1.0.0 + + '@inquirer/type@3.0.8(@types/node@24.2.0)': + optionalDependencies: + '@types/node': 24.2.0 + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -4400,6 +6142,51 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.1 + '@oclif/core@4.5.2': + dependencies: + ansi-escapes: 4.3.2 + ansis: 3.17.0 + clean-stack: 3.0.1 + cli-spinners: 2.9.2 + debug: 4.4.1(supports-color@8.1.1) + ejs: 3.1.10 + get-package-type: 0.1.0 + indent-string: 4.0.0 + is-wsl: 2.2.0 + lilconfig: 3.1.3 + minimatch: 9.0.5 + semver: 7.7.2 + string-width: 4.2.3 + supports-color: 8.1.1 + tinyglobby: 0.2.14 + widest-line: 3.1.0 + wordwrap: 1.0.0 + wrap-ansi: 7.0.0 + + '@oclif/plugin-help@6.2.32': + dependencies: + '@oclif/core': 4.5.2 + + '@oclif/plugin-not-found@3.2.63(@types/node@24.2.0)': + dependencies: + '@inquirer/prompts': 7.8.0(@types/node@24.2.0) + '@oclif/core': 4.5.2 + ansis: 3.17.0 + fast-levenshtein: 3.0.0 + transitivePeerDependencies: + - '@types/node' + + '@oclif/plugin-warn-if-update-available@3.1.46': + dependencies: + '@oclif/core': 4.5.2 + ansis: 3.17.0 + debug: 4.4.1(supports-color@8.1.1) + http-call: 5.3.0 + lodash: 4.17.21 + registry-auth-token: 5.1.0 + transitivePeerDependencies: + - supports-color + '@oslojs/encoding@1.1.0': {} '@pagefind/darwin-arm64@1.3.0': @@ -4422,6 +6209,18 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true + '@pnpm/config.env-replace@1.1.0': {} + + '@pnpm/network.ca-file@1.0.2': + dependencies: + graceful-fs: 4.2.10 + + '@pnpm/npm-conf@2.3.1': + dependencies: + '@pnpm/config.env-replace': 1.1.0 + '@pnpm/network.ca-file': 1.0.2 + config-chain: 1.1.13 + '@polka/url@1.0.0-next.29': {} '@pollyjs/adapter-fetch@6.0.6': @@ -4585,15 +6384,357 @@ snapshots: '@sindresorhus/fnv1a@2.0.1': {} - '@sindresorhus/slugify@0.9.1': + '@sindresorhus/is@5.6.0': {} + + '@sindresorhus/slugify@0.9.1': + dependencies: + escape-string-regexp: 1.0.5 + lodash.deburr: 4.1.0 + + '@smithy/abort-controller@4.0.5': + dependencies: + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@smithy/chunked-blob-reader-native@4.0.0': + dependencies: + '@smithy/util-base64': 4.0.0 + tslib: 2.8.1 + + '@smithy/chunked-blob-reader@5.0.0': + dependencies: + tslib: 2.8.1 + + '@smithy/config-resolver@4.1.5': + dependencies: + '@smithy/node-config-provider': 4.1.4 + '@smithy/types': 4.3.2 + '@smithy/util-config-provider': 4.0.0 + '@smithy/util-middleware': 4.0.5 + tslib: 2.8.1 + + '@smithy/core@3.8.0': + dependencies: + '@smithy/middleware-serde': 4.0.9 + '@smithy/protocol-http': 5.1.3 + '@smithy/types': 4.3.2 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-middleware': 4.0.5 + '@smithy/util-stream': 4.2.4 + '@smithy/util-utf8': 4.0.0 + '@types/uuid': 9.0.8 + tslib: 2.8.1 + uuid: 9.0.1 + + '@smithy/credential-provider-imds@4.0.7': + dependencies: + '@smithy/node-config-provider': 4.1.4 + '@smithy/property-provider': 4.0.5 + '@smithy/types': 4.3.2 + '@smithy/url-parser': 4.0.5 + tslib: 2.8.1 + + '@smithy/eventstream-codec@4.0.5': + dependencies: + '@aws-crypto/crc32': 5.2.0 + '@smithy/types': 4.3.2 + '@smithy/util-hex-encoding': 4.0.0 + tslib: 2.8.1 + + '@smithy/eventstream-serde-browser@4.0.5': + dependencies: + '@smithy/eventstream-serde-universal': 4.0.5 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@smithy/eventstream-serde-config-resolver@4.1.3': + dependencies: + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@smithy/eventstream-serde-node@4.0.5': + dependencies: + '@smithy/eventstream-serde-universal': 4.0.5 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@smithy/eventstream-serde-universal@4.0.5': + dependencies: + '@smithy/eventstream-codec': 4.0.5 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@smithy/fetch-http-handler@5.1.1': + dependencies: + '@smithy/protocol-http': 5.1.3 + '@smithy/querystring-builder': 4.0.5 + '@smithy/types': 4.3.2 + '@smithy/util-base64': 4.0.0 + tslib: 2.8.1 + + '@smithy/hash-blob-browser@4.0.5': + dependencies: + '@smithy/chunked-blob-reader': 5.0.0 + '@smithy/chunked-blob-reader-native': 4.0.0 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@smithy/hash-node@4.0.5': + dependencies: + '@smithy/types': 4.3.2 + '@smithy/util-buffer-from': 4.0.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/hash-stream-node@4.0.5': + dependencies: + '@smithy/types': 4.3.2 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/invalid-dependency@4.0.5': + dependencies: + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@smithy/is-array-buffer@2.2.0': + dependencies: + tslib: 2.8.1 + + '@smithy/is-array-buffer@4.0.0': + dependencies: + tslib: 2.8.1 + + '@smithy/md5-js@4.0.5': + dependencies: + '@smithy/types': 4.3.2 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/middleware-content-length@4.0.5': + dependencies: + '@smithy/protocol-http': 5.1.3 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@smithy/middleware-endpoint@4.1.18': + dependencies: + '@smithy/core': 3.8.0 + '@smithy/middleware-serde': 4.0.9 + '@smithy/node-config-provider': 4.1.4 + '@smithy/shared-ini-file-loader': 4.0.5 + '@smithy/types': 4.3.2 + '@smithy/url-parser': 4.0.5 + '@smithy/util-middleware': 4.0.5 + tslib: 2.8.1 + + '@smithy/middleware-retry@4.1.19': + dependencies: + '@smithy/node-config-provider': 4.1.4 + '@smithy/protocol-http': 5.1.3 + '@smithy/service-error-classification': 4.0.7 + '@smithy/smithy-client': 4.4.10 + '@smithy/types': 4.3.2 + '@smithy/util-middleware': 4.0.5 + '@smithy/util-retry': 4.0.7 + '@types/uuid': 9.0.8 + tslib: 2.8.1 + uuid: 9.0.1 + + '@smithy/middleware-serde@4.0.9': + dependencies: + '@smithy/protocol-http': 5.1.3 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@smithy/middleware-stack@4.0.5': + dependencies: + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@smithy/node-config-provider@4.1.4': + dependencies: + '@smithy/property-provider': 4.0.5 + '@smithy/shared-ini-file-loader': 4.0.5 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@smithy/node-http-handler@4.1.1': + dependencies: + '@smithy/abort-controller': 4.0.5 + '@smithy/protocol-http': 5.1.3 + '@smithy/querystring-builder': 4.0.5 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@smithy/property-provider@4.0.5': + dependencies: + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@smithy/protocol-http@5.1.3': + dependencies: + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@smithy/querystring-builder@4.0.5': + dependencies: + '@smithy/types': 4.3.2 + '@smithy/util-uri-escape': 4.0.0 + tslib: 2.8.1 + + '@smithy/querystring-parser@4.0.5': + dependencies: + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@smithy/service-error-classification@4.0.7': + dependencies: + '@smithy/types': 4.3.2 + + '@smithy/shared-ini-file-loader@4.0.5': + dependencies: + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@smithy/signature-v4@5.1.3': + dependencies: + '@smithy/is-array-buffer': 4.0.0 + '@smithy/protocol-http': 5.1.3 + '@smithy/types': 4.3.2 + '@smithy/util-hex-encoding': 4.0.0 + '@smithy/util-middleware': 4.0.5 + '@smithy/util-uri-escape': 4.0.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/smithy-client@4.4.10': + dependencies: + '@smithy/core': 3.8.0 + '@smithy/middleware-endpoint': 4.1.18 + '@smithy/middleware-stack': 4.0.5 + '@smithy/protocol-http': 5.1.3 + '@smithy/types': 4.3.2 + '@smithy/util-stream': 4.2.4 + tslib: 2.8.1 + + '@smithy/types@4.3.2': + dependencies: + tslib: 2.8.1 + + '@smithy/url-parser@4.0.5': + dependencies: + '@smithy/querystring-parser': 4.0.5 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@smithy/util-base64@4.0.0': + dependencies: + '@smithy/util-buffer-from': 4.0.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/util-body-length-browser@4.0.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-body-length-node@4.0.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-buffer-from@2.2.0': + dependencies: + '@smithy/is-array-buffer': 2.2.0 + tslib: 2.8.1 + + '@smithy/util-buffer-from@4.0.0': + dependencies: + '@smithy/is-array-buffer': 4.0.0 + tslib: 2.8.1 + + '@smithy/util-config-provider@4.0.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-defaults-mode-browser@4.0.26': + dependencies: + '@smithy/property-provider': 4.0.5 + '@smithy/smithy-client': 4.4.10 + '@smithy/types': 4.3.2 + bowser: 2.11.0 + tslib: 2.8.1 + + '@smithy/util-defaults-mode-node@4.0.26': + dependencies: + '@smithy/config-resolver': 4.1.5 + '@smithy/credential-provider-imds': 4.0.7 + '@smithy/node-config-provider': 4.1.4 + '@smithy/property-provider': 4.0.5 + '@smithy/smithy-client': 4.4.10 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@smithy/util-endpoints@3.0.7': + dependencies: + '@smithy/node-config-provider': 4.1.4 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@smithy/util-hex-encoding@4.0.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-middleware@4.0.5': + dependencies: + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@smithy/util-retry@4.0.7': + dependencies: + '@smithy/service-error-classification': 4.0.7 + '@smithy/types': 4.3.2 + tslib: 2.8.1 + + '@smithy/util-stream@4.2.4': + dependencies: + '@smithy/fetch-http-handler': 5.1.1 + '@smithy/node-http-handler': 4.1.1 + '@smithy/types': 4.3.2 + '@smithy/util-base64': 4.0.0 + '@smithy/util-buffer-from': 4.0.0 + '@smithy/util-hex-encoding': 4.0.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + + '@smithy/util-uri-escape@4.0.0': + dependencies: + tslib: 2.8.1 + + '@smithy/util-utf8@2.3.0': + dependencies: + '@smithy/util-buffer-from': 2.2.0 + tslib: 2.8.1 + + '@smithy/util-utf8@4.0.0': + dependencies: + '@smithy/util-buffer-from': 4.0.0 + tslib: 2.8.1 + + '@smithy/util-waiter@4.0.7': dependencies: - escape-string-regexp: 1.0.5 - lodash.deburr: 4.1.0 + '@smithy/abort-controller': 4.0.5 + '@smithy/types': 4.3.2 + tslib: 2.8.1 '@swc/helpers@0.5.17': dependencies: tslib: 2.8.1 + '@szmarczak/http-timer@5.0.1': + dependencies: + defer-to-connect: 2.0.1 + '@tybys/wasm-util@0.9.0': dependencies: tslib: 2.8.1 @@ -4617,6 +6758,8 @@ snapshots: dependencies: '@types/unist': 3.0.3 + '@types/http-cache-semantics@4.0.4': {} + '@types/js-yaml@4.0.9': {} '@types/mdast@4.0.4': @@ -4627,6 +6770,10 @@ snapshots: '@types/ms@2.1.0': {} + '@types/mute-stream@0.0.4': + dependencies: + '@types/node': 24.2.0 + '@types/nlcst@2.0.3': dependencies: '@types/unist': 3.0.3 @@ -4655,6 +6802,10 @@ snapshots: '@types/unist@3.0.3': {} + '@types/uuid@9.0.8': {} + + '@types/wrap-ansi@3.0.0': {} + '@types/yauzl-promise@4.0.1': dependencies: '@types/node': 22.15.31 @@ -4758,6 +6909,14 @@ snapshots: ansi-colors@4.1.3: {} + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + + ansi-escapes@7.0.0: + dependencies: + environment: 1.1.0 + ansi-regex@5.0.1: {} ansi-regex@6.1.0: {} @@ -4768,6 +6927,8 @@ snapshots: ansi-styles@6.2.1: {} + ansis@3.17.0: {} + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -4897,6 +7058,14 @@ snapshots: - uploadthing - yaml + async-retry@1.3.3: + dependencies: + retry: 0.13.1 + + async@3.2.6: {} + + auto-bind@5.0.1: {} + axobject-query@4.1.0: {} bail@2.0.2: {} @@ -4977,6 +7146,18 @@ snapshots: cac@6.7.14: {} + cacheable-lookup@7.0.0: {} + + cacheable-request@10.2.14: + dependencies: + '@types/http-cache-semantics': 4.0.4 + get-stream: 6.0.1 + http-cache-semantics: 4.2.0 + keyv: 4.5.4 + mimic-response: 4.0.0 + normalize-url: 8.0.2 + responselike: 3.0.0 + call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 @@ -4987,8 +7168,19 @@ snapshots: call-bind-apply-helpers: 1.0.2 get-intrinsic: 1.3.0 + camel-case@4.1.2: + dependencies: + pascal-case: 3.1.2 + tslib: 2.8.1 + camelcase@8.0.0: {} + capital-case@1.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + upper-case-first: 2.0.2 + ccount@2.0.1: {} chai@5.2.0: @@ -5001,6 +7193,21 @@ snapshots: chalk@5.4.1: {} + change-case@4.1.2: + dependencies: + camel-case: 4.1.2 + capital-case: 1.0.4 + constant-case: 3.0.4 + dot-case: 3.0.4 + header-case: 2.0.4 + no-case: 3.0.4 + param-case: 3.0.4 + pascal-case: 3.1.2 + path-case: 3.0.4 + sentence-case: 3.0.4 + snake-case: 3.0.4 + tslib: 2.8.1 + character-entities-html4@2.1.0: {} character-entities-legacy@3.0.0: {} @@ -5021,12 +7228,33 @@ snapshots: ci-info@4.2.0: {} + clean-stack@3.0.1: + dependencies: + escape-string-regexp: 4.0.0 + cli-boxes@3.0.0: {} + cli-cursor@4.0.0: + dependencies: + restore-cursor: 4.0.0 + + cli-spinners@2.9.2: {} + + cli-truncate@4.0.0: + dependencies: + slice-ansi: 5.0.0 + string-width: 7.2.0 + + cli-width@4.1.0: {} + clone@2.1.2: {} clsx@2.1.1: {} + code-excerpt@4.0.0: + dependencies: + convert-to-spaces: 2.0.1 + collapse-white-space@2.1.0: {} color-convert@2.0.1: @@ -5049,12 +7277,25 @@ snapshots: common-ancestor-path@1.0.1: {} + config-chain@1.1.13: + dependencies: + ini: 1.3.8 + proto-list: 1.2.4 + + constant-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + upper-case: 2.0.2 + content-disposition@0.5.4: dependencies: safe-buffer: 5.2.1 content-type@1.0.5: {} + convert-to-spaces@2.0.1: {} + cookie-es@1.2.2: {} cookie-signature@1.0.6: {} @@ -5107,12 +7348,24 @@ snapshots: dependencies: ms: 2.1.3 + debug@4.4.1(supports-color@8.1.1): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 8.1.1 + decode-named-character-reference@1.1.0: dependencies: character-entities: 2.0.2 + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + deep-eql@5.0.2: {} + defer-to-connect@2.0.1: {} + define-data-property@1.1.4: dependencies: es-define-property: 1.0.1 @@ -5137,8 +7390,12 @@ snapshots: detect-indent@6.1.0: {} + detect-indent@7.0.1: {} + detect-libc@2.0.4: {} + detect-newline@4.0.1: {} + detect-node@2.1.0: {} deterministic-object-hash@2.0.2: @@ -5163,6 +7420,11 @@ snapshots: dlv@1.1.3: {} + dot-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + dset@3.1.4: {} dunder-proto@1.0.1: @@ -5175,6 +7437,10 @@ snapshots: ee-first@1.1.1: {} + ejs@3.1.10: + dependencies: + jake: 10.9.4 + emoji-regex@10.4.0: {} emoji-regex@8.0.0: {} @@ -5194,6 +7460,12 @@ snapshots: entities@6.0.0: {} + environment@1.1.0: {} + + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 + es-define-property@1.0.1: {} es-errors@1.3.0: {} @@ -5204,6 +7476,8 @@ snapshots: dependencies: es-errors: 1.3.0 + es-toolkit@1.39.8: {} + esast-util-from-estree@2.0.0: dependencies: '@types/estree-jsx': 1.0.5 @@ -5250,6 +7524,10 @@ snapshots: escape-string-regexp@1.0.5: {} + escape-string-regexp@2.0.0: {} + + escape-string-regexp@4.0.0: {} + escape-string-regexp@5.0.0: {} esprima@4.0.1: {} @@ -5362,8 +7640,18 @@ snapshots: fast-json-stable-stringify@2.1.0: {} + fast-levenshtein@3.0.0: + dependencies: + fastest-levenshtein: 1.0.16 + fast-uri@3.0.6: {} + fast-xml-parser@5.2.5: + dependencies: + strnum: 2.1.1 + + fastest-levenshtein@1.0.16: {} + fastq@1.19.1: dependencies: reusify: 1.1.0 @@ -5374,6 +7662,10 @@ snapshots: fflate@0.8.2: {} + filelist@1.0.4: + dependencies: + minimatch: 5.1.6 + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -5395,6 +7687,10 @@ snapshots: locate-path: 5.0.0 path-exists: 4.0.0 + find-yarn-workspace-root@2.0.0: + dependencies: + micromatch: 4.0.8 + flatted@3.3.3: {} flattie@1.1.1: {} @@ -5421,6 +7717,8 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 + form-data-encoder@2.1.4: {} + forwarded@0.2.0: {} fresh@0.5.2: {} @@ -5463,11 +7761,19 @@ snapshots: hasown: 2.0.2 math-intrinsics: 1.1.0 + get-package-type@0.1.0: {} + get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 + get-stdin@9.0.0: {} + + get-stream@6.0.1: {} + + git-hooks-list@3.2.0: {} + github-slugger@2.0.0: {} glob-parent@5.1.2: @@ -5499,6 +7805,22 @@ snapshots: gopd@1.2.0: {} + got@13.0.0: + dependencies: + '@sindresorhus/is': 5.6.0 + '@szmarczak/http-timer': 5.0.1 + cacheable-lookup: 7.0.0 + cacheable-request: 10.2.14 + decompress-response: 6.0.0 + form-data-encoder: 2.1.4 + get-stream: 6.0.1 + http2-wrapper: 2.2.1 + lowercase-keys: 3.0.0 + p-cancelable: 3.0.0 + responselike: 3.0.0 + + graceful-fs@4.2.10: {} + graceful-fs@4.2.11: {} h3@1.15.3: @@ -5714,6 +8036,15 @@ snapshots: property-information: 7.1.0 space-separated-tokens: 2.0.2 + header-case@2.0.4: + dependencies: + capital-case: 1.0.4 + tslib: 2.8.1 + + hosted-git-info@7.0.2: + dependencies: + lru-cache: 10.4.3 + html-escaper@2.0.2: {} html-escaper@3.0.3: {} @@ -5724,6 +8055,17 @@ snapshots: http-cache-semantics@4.2.0: {} + http-call@5.3.0: + dependencies: + content-type: 1.0.5 + debug: 4.4.1(supports-color@8.1.1) + is-retry-allowed: 1.2.0 + is-stream: 2.0.1 + parse-json: 4.0.0 + tunnel-agent: 0.6.0 + transitivePeerDependencies: + - supports-color + http-errors@2.0.0: dependencies: depd: 2.0.0 @@ -5738,6 +8080,11 @@ snapshots: transitivePeerDependencies: - supports-color + http2-wrapper@2.2.1: + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + human-id@4.1.1: {} husky@9.1.7: {} @@ -5754,8 +8101,45 @@ snapshots: import-meta-resolve@4.1.0: {} + indent-string@4.0.0: {} + + indent-string@5.0.0: {} + inherits@2.0.4: {} + ini@1.3.8: {} + + ink@6.1.0(react@19.1.1): + dependencies: + '@alcalzone/ansi-tokenize': 0.1.3 + ansi-escapes: 7.0.0 + ansi-styles: 6.2.1 + auto-bind: 5.0.1 + chalk: 5.4.1 + cli-boxes: 3.0.0 + cli-cursor: 4.0.0 + cli-truncate: 4.0.0 + code-excerpt: 4.0.0 + es-toolkit: 1.39.8 + indent-string: 5.0.0 + is-in-ci: 1.0.0 + patch-console: 2.0.0 + react: 19.1.1 + react-reconciler: 0.32.0(react@19.1.1) + scheduler: 0.23.2 + signal-exit: 3.0.7 + slice-ansi: 7.1.0 + stack-utils: 2.0.6 + string-width: 7.2.0 + type-fest: 4.41.0 + widest-line: 5.0.0 + wrap-ansi: 9.0.0 + ws: 8.18.3 + yoga-layout: 3.2.1 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + inline-style-parser@0.2.4: {} ipaddr.js@1.9.1: {} @@ -5771,22 +8155,34 @@ snapshots: is-alphabetical: 2.0.1 is-decimal: 2.0.1 + is-arrayish@0.2.1: {} + is-arrayish@0.3.2: {} is-decimal@2.0.1: {} + is-docker@2.2.1: {} + is-docker@3.0.0: {} is-extglob@2.1.1: {} is-fullwidth-code-point@3.0.0: {} + is-fullwidth-code-point@4.0.0: {} + + is-fullwidth-code-point@5.0.0: + dependencies: + get-east-asian-width: 1.3.0 + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 is-hexadecimal@2.0.1: {} + is-in-ci@1.0.0: {} + is-inside-container@1.0.0: dependencies: is-docker: 3.0.0 @@ -5800,6 +8196,10 @@ snapshots: is-plain-obj@4.1.0: {} + is-retry-allowed@1.2.0: {} + + is-stream@2.0.1: {} + is-stream@3.0.0: {} is-subdir@1.2.0: @@ -5808,6 +8208,10 @@ snapshots: is-windows@1.0.2: {} + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 + is-wsl@3.1.0: dependencies: is-inside-container: 1.0.0 @@ -5841,6 +8245,14 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 + jake@10.9.4: + dependencies: + async: 3.2.6 + filelist: 1.0.4 + picocolors: 1.1.1 + + js-tokens@4.0.0: {} + js-yaml@3.14.1: dependencies: argparse: 1.0.10 @@ -5850,6 +8262,10 @@ snapshots: dependencies: argparse: 2.0.1 + json-buffer@3.0.1: {} + + json-parse-better-errors@1.0.2: {} + json-schema-traverse@1.0.0: {} jsonfile@4.0.0: @@ -5862,12 +8278,18 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + kleur@3.0.3: {} kleur@4.1.5: {} klona@2.0.6: {} + lilconfig@3.1.3: {} + linkify-it@5.0.0: dependencies: uc.micro: 2.1.0 @@ -5882,12 +8304,24 @@ snapshots: lodash.startcase@4.4.0: {} + lodash@4.17.21: {} + loglevel@1.9.2: {} longest-streak@3.1.0: {} + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + loupe@3.1.3: {} + lower-case@2.0.2: + dependencies: + tslib: 2.8.1 + + lowercase-keys@3.0.0: {} + lru-cache@10.4.3: {} lunr@2.3.9: {} @@ -6403,6 +8837,16 @@ snapshots: mime@1.6.0: {} + mimic-fn@2.1.0: {} + + mimic-response@3.1.0: {} + + mimic-response@4.0.0: {} + + minimatch@5.1.6: + dependencies: + brace-expansion: 2.0.1 + minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 @@ -6427,6 +8871,10 @@ snapshots: ms@2.1.3: {} + mute-stream@1.0.0: {} + + mute-stream@2.0.0: {} + nanoid@3.3.11: {} negotiator@0.6.3: {} @@ -6437,6 +8885,11 @@ snapshots: dependencies: '@types/nlcst': 2.0.3 + no-case@3.0.4: + dependencies: + lower-case: 2.0.2 + tslib: 2.8.1 + nocache@3.0.4: {} node-fetch-native@1.6.6: {} @@ -6482,8 +8935,16 @@ snapshots: nodejs-polars-linux-x64-musl: 0.18.0 nodejs-polars-win32-x64-msvc: 0.18.0 + normalize-package-data@6.0.2: + dependencies: + hosted-git-info: 7.0.2 + semver: 7.7.2 + validate-npm-package-license: 3.0.4 + normalize-path@3.0.0: {} + normalize-url@8.0.2: {} + npm-check-updates@18.0.1: {} nth-check@2.1.1: @@ -6496,6 +8957,37 @@ snapshots: object-keys@1.1.1: {} + oclif@4.22.6(@types/node@24.2.0): + dependencies: + '@aws-sdk/client-cloudfront': 3.862.0 + '@aws-sdk/client-s3': 3.862.0 + '@inquirer/confirm': 3.2.0 + '@inquirer/input': 2.3.0 + '@inquirer/select': 2.5.0 + '@oclif/core': 4.5.2 + '@oclif/plugin-help': 6.2.32 + '@oclif/plugin-not-found': 3.2.63(@types/node@24.2.0) + '@oclif/plugin-warn-if-update-available': 3.1.46 + ansis: 3.17.0 + async-retry: 1.3.3 + change-case: 4.1.2 + debug: 4.4.1(supports-color@8.1.1) + ejs: 3.1.10 + find-yarn-workspace-root: 2.0.0 + fs-extra: 8.1.0 + github-slugger: 2.0.0 + got: 13.0.0 + lodash: 4.17.21 + normalize-package-data: 6.0.2 + semver: 7.7.2 + sort-package-json: 2.15.1 + tiny-jsonc: 1.0.2 + validate-npm-package-name: 5.0.1 + transitivePeerDependencies: + - '@types/node' + - aws-crt + - supports-color + ofetch@1.4.1: dependencies: destr: 2.0.5 @@ -6514,6 +9006,10 @@ snapshots: on-headers@1.0.2: {} + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + oniguruma-parser@0.12.1: {} oniguruma-to-es@4.3.3: @@ -6526,6 +9022,8 @@ snapshots: outdent@0.5.0: {} + p-cancelable@3.0.0: {} + p-filter@2.1.0: dependencies: p-map: 2.1.0 @@ -6571,6 +9069,11 @@ snapshots: pako@0.2.9: {} + param-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.8.1 + parse-entities@4.0.2: dependencies: '@types/unist': 2.0.11 @@ -6581,6 +9084,11 @@ snapshots: is-decimal: 2.0.1 is-hexadecimal: 2.0.1 + parse-json@4.0.0: + dependencies: + error-ex: 1.3.2 + json-parse-better-errors: 1.0.2 + parse-latin@7.0.0: dependencies: '@types/nlcst': 2.0.3 @@ -6596,6 +9104,18 @@ snapshots: parseurl@1.3.3: {} + pascal-case@3.1.2: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + + patch-console@2.0.0: {} + + path-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.8.1 + path-exists@4.0.0: {} path-key@3.1.1: {} @@ -6650,6 +9170,8 @@ snapshots: property-information@7.1.0: {} + proto-list@1.2.4: {} + proxy-addr@2.0.7: dependencies: forwarded: 0.2.0 @@ -6671,6 +9193,8 @@ snapshots: queue-microtask@1.2.3: {} + quick-lru@5.1.1: {} + quick-lru@7.0.1: {} radix3@1.1.2: {} @@ -6684,6 +9208,13 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 + react-reconciler@0.32.0(react@19.1.1): + dependencies: + react: 19.1.1 + scheduler: 0.26.0 + + react@19.1.1: {} + read-yaml-file@1.1.0: dependencies: graceful-fs: 4.2.11 @@ -6733,6 +9264,10 @@ snapshots: dependencies: regex-utilities: 2.3.0 + registry-auth-token@5.1.0: + dependencies: + '@pnpm/npm-conf': 2.3.1 + rehype-expressive-code@0.41.2: dependencies: expressive-code: 0.41.2 @@ -6836,8 +9371,19 @@ snapshots: requires-port@1.0.0: {} + resolve-alpn@1.2.1: {} + resolve-from@5.0.0: {} + responselike@3.0.0: + dependencies: + lowercase-keys: 3.0.0 + + restore-cursor@4.0.0: + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + restructure@3.0.2: {} retext-latin@4.0.0: @@ -6865,6 +9411,8 @@ snapshots: retext-stringify: 4.0.0 unified: 11.0.5 + retry@0.13.1: {} + reusify@1.1.0: {} rollup@4.40.2: @@ -6907,6 +9455,12 @@ snapshots: sax@1.4.1: {} + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 + + scheduler@0.26.0: {} + semver@7.7.2: {} send@0.19.0: @@ -6927,6 +9481,12 @@ snapshots: transitivePeerDependencies: - supports-color + sentence-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + upper-case-first: 2.0.2 + serve-static@1.16.2: dependencies: encodeurl: 2.0.0 @@ -7042,6 +9602,8 @@ snapshots: siginfo@2.0.0: {} + signal-exit@3.0.7: {} + signal-exit@4.1.0: {} simple-invariant@2.0.1: {} @@ -7067,10 +9629,38 @@ snapshots: slash@3.0.0: {} + slice-ansi@5.0.0: + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + + slice-ansi@7.1.0: + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 5.0.0 + slugify@1.6.6: {} smol-toml@1.3.4: {} + snake-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.8.1 + + sort-object-keys@1.1.3: {} + + sort-package-json@2.15.1: + dependencies: + detect-indent: 7.0.1 + detect-newline: 4.0.1 + get-stdin: 9.0.0 + git-hooks-list: 3.2.0 + is-plain-obj: 4.1.0 + semver: 7.7.2 + sort-object-keys: 1.1.3 + tinyglobby: 0.2.14 + source-map-js@1.2.1: {} source-map@0.7.4: {} @@ -7082,8 +9672,26 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 + spdx-correct@3.2.0: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.22 + + spdx-exceptions@2.5.0: {} + + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.22 + + spdx-license-ids@3.0.22: {} + sprintf-js@1.0.3: {} + stack-utils@2.0.6: + dependencies: + escape-string-regexp: 2.0.0 + stackback@0.0.2: {} starlight-scroll-to-top@0.1.1(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1))): @@ -7136,6 +9744,8 @@ snapshots: strip-bom@3.0.0: {} + strnum@2.1.1: {} + style-to-js@1.1.16: dependencies: style-to-object: 1.0.8 @@ -7148,6 +9758,10 @@ snapshots: dependencies: has-flag: 4.0.0 + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + temp-dir@3.0.0: {} tempy@3.1.0: @@ -7169,6 +9783,8 @@ snapshots: tiny-invariant@1.3.3: {} + tiny-jsonc@1.0.2: {} + tinybench@2.9.0: {} tinyexec@0.3.2: {} @@ -7178,6 +9794,11 @@ snapshots: fdir: 6.4.4(picomatch@4.0.2) picomatch: 4.0.2 + tinyglobby@0.2.14: + dependencies: + fdir: 6.4.4(picomatch@4.0.2) + picomatch: 4.0.2 + tinypool@1.0.2: {} tinyrainbow@2.0.0: {} @@ -7210,6 +9831,12 @@ snapshots: tslib@2.8.1: {} + tunnel-agent@0.6.0: + dependencies: + safe-buffer: 5.2.1 + + type-fest@0.21.3: {} + type-fest@1.4.0: {} type-fest@2.19.0: {} @@ -7340,6 +9967,14 @@ snapshots: ofetch: 1.4.1 ufo: 1.6.1 + upper-case-first@2.0.2: + dependencies: + tslib: 2.8.1 + + upper-case@2.0.2: + dependencies: + tslib: 2.8.1 + url-parse@1.5.10: dependencies: querystringify: 2.2.0 @@ -7351,6 +9986,15 @@ snapshots: utils-merge@1.0.1: {} + uuid@9.0.1: {} + + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + + validate-npm-package-name@5.0.1: {} + vary@1.1.2: {} vfile-location@5.0.3: @@ -7467,10 +10111,22 @@ snapshots: siginfo: 2.0.0 stackback: 0.0.2 + widest-line@3.1.0: + dependencies: + string-width: 4.2.3 + widest-line@5.0.0: dependencies: string-width: 7.2.0 + wordwrap@1.0.0: {} + + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -7489,6 +10145,8 @@ snapshots: string-width: 7.2.0 strip-ansi: 7.1.0 + ws@8.18.3: {} + xxhash-wasm@1.1.0: {} yaml@2.7.1: {} @@ -7511,8 +10169,12 @@ snapshots: dependencies: yoctocolors: 2.1.1 + yoctocolors-cjs@2.1.2: {} + yoctocolors@2.1.1: {} + yoga-layout@3.2.1: {} + zod-to-json-schema@3.24.5(zod@3.24.4): dependencies: zod: 3.24.4 From ce682226a4aea294e99b695699b4ea98028260cc Mon Sep 17 00:00:00 2001 From: roll Date: Thu, 7 Aug 2025 15:13:08 +0100 Subject: [PATCH 42/80] Bootstrapped cli --- cli/.oclifrc.js | 5 +++++ cli/commands/package/load.ts | 27 +++++++++++++++++++++++++++ cli/package.json | 9 ++++++++- cli/scripts/dev.cmd | 3 +++ cli/scripts/dev.js | 5 +++++ cli/scripts/run.cmd | 3 +++ cli/scripts/run.js | 5 +++++ package.json | 3 ++- pnpm-lock.yaml | 13 ++++++++----- 9 files changed, 66 insertions(+), 7 deletions(-) create mode 100644 cli/.oclifrc.js create mode 100644 cli/commands/package/load.ts create mode 100644 cli/scripts/dev.cmd create mode 100755 cli/scripts/dev.js create mode 100644 cli/scripts/run.cmd create mode 100755 cli/scripts/run.js diff --git a/cli/.oclifrc.js b/cli/.oclifrc.js new file mode 100644 index 00000000..09fe279f --- /dev/null +++ b/cli/.oclifrc.js @@ -0,0 +1,5 @@ +export default { + bin: "dp", + commands: "./commands", + topicSeparator: " ", +} diff --git a/cli/commands/package/load.ts b/cli/commands/package/load.ts new file mode 100644 index 00000000..bdfa45bd --- /dev/null +++ b/cli/commands/package/load.ts @@ -0,0 +1,27 @@ +import { Args, Command, Flags } from "@oclif/core" + +export default class PackageLoad extends Command { + static override args = { + file: Args.string({ description: "file to read" }), + } + static override description = "describe the command here" + static override examples = ["<%= config.bin %> <%= command.id %>"] + static override flags = { + // flag with no value (-f, --force) + force: Flags.boolean({ char: "f" }), + // flag with a value (-n, --name=VALUE) + name: Flags.string({ char: "n", description: "name to print" }), + } + + public async run(): Promise { + const { args, flags } = await this.parse(PackageLoad) + + const name = flags.name ?? "world" + this.log( + `hello ${name} from /home/roll/projects/dpkit/cli/src/commands/package/load.ts`, + ) + if (args.file && flags.force) { + this.log(`you input --force and --file: ${args.file}`) + } + } +} diff --git a/cli/package.json b/cli/package.json index fe925177..5aeca7de 100644 --- a/cli/package.json +++ b/cli/package.json @@ -19,10 +19,17 @@ "fair", "cli" ], + "bin": { + "dp": "./bin/run.js" + }, "scripts": { - "build": "tsc --build" + "build": "tsc --build", + "oclif": "oclif", + "start": "./scripts/dev.js", + "preview": "./scripts/run.js" }, "dependencies": { + "@oclif/core": "^4.5.2", "dpkit": "workspace:*", "ink": "^6.1.0", "react": "^19.1.1" diff --git a/cli/scripts/dev.cmd b/cli/scripts/dev.cmd new file mode 100644 index 00000000..968fc307 --- /dev/null +++ b/cli/scripts/dev.cmd @@ -0,0 +1,3 @@ +@echo off + +node "%~dp0\run" %* diff --git a/cli/scripts/dev.js b/cli/scripts/dev.js new file mode 100755 index 00000000..2d7a6227 --- /dev/null +++ b/cli/scripts/dev.js @@ -0,0 +1,5 @@ +#!/usr/bin/env node + +import { execute } from "@oclif/core" + +await execute({ development: true, dir: import.meta.url }) diff --git a/cli/scripts/run.cmd b/cli/scripts/run.cmd new file mode 100644 index 00000000..968fc307 --- /dev/null +++ b/cli/scripts/run.cmd @@ -0,0 +1,3 @@ +@echo off + +node "%~dp0\run" %* diff --git a/cli/scripts/run.js b/cli/scripts/run.js new file mode 100755 index 00000000..4a39c5ca --- /dev/null +++ b/cli/scripts/run.js @@ -0,0 +1,5 @@ +#!/usr/bin/env node + +import { execute } from "@oclif/core" + +await execute({ dir: import.meta.url }) diff --git a/package.json b/package.json index fd598df8..dda38edd 100644 --- a/package.json +++ b/package.json @@ -12,11 +12,12 @@ "ci:install": "pnpm install --ignore-scripts", "ci:publish": "pnpm -r publish --access public --ignore-scripts && changeset tag", "check": "pnpm run lint && pnpm run type", + "cli": "pnpm -F cli start", "coverage": "vitest --ui", + "doc": "pnpm -F docs start", "format": "biome check --write", "lint": "biome check", "prepare": "husky", - "start": "pnpm -F docs start", "spec": "vitest run", "test": "pnpm check && pnpm run spec", "type": "tsc" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2fbe688e..3aa70d98 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -84,6 +84,9 @@ importers: cli: dependencies: + '@oclif/core': + specifier: ^4.5.2 + version: 4.5.2 dpkit: specifier: workspace:* version: link:../dpkit @@ -4825,7 +4828,7 @@ snapshots: '@astrojs/telemetry@3.2.1': dependencies: ci-info: 4.2.0 - debug: 4.4.0 + debug: 4.4.1(supports-color@8.1.1) dlv: 1.1.3 dset: 3.1.4 is-docker: 3.0.0 @@ -6808,11 +6811,11 @@ snapshots: '@types/yauzl-promise@4.0.1': dependencies: - '@types/node': 22.15.31 + '@types/node': 24.2.0 '@types/yazl@3.3.0': dependencies: - '@types/node': 22.15.31 + '@types/node': 24.2.0 '@ungap/structured-clone@1.3.0': {} @@ -8076,7 +8079,7 @@ snapshots: http-graceful-shutdown@3.1.14: dependencies: - debug: 4.4.0 + debug: 4.4.1(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -8805,7 +8808,7 @@ snapshots: micromark@4.0.2: dependencies: '@types/debug': 4.1.12 - debug: 4.4.0 + debug: 4.4.1(supports-color@8.1.1) decode-named-character-reference: 1.1.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 From b7a032ce2c3b74fbdd155953d59dfe8fc1261f08 Mon Sep 17 00:00:00 2001 From: roll Date: Thu, 7 Aug 2025 15:45:10 +0100 Subject: [PATCH 43/80] Bootstrapped load command --- cli/commands/package/load.ts | 28 +++++++++++++++------------- cli/index.ts | 0 cli/package.json | 1 - core/package/load.ts | 1 - 4 files changed, 15 insertions(+), 15 deletions(-) delete mode 100644 cli/index.ts diff --git a/cli/commands/package/load.ts b/cli/commands/package/load.ts index bdfa45bd..a0487c39 100644 --- a/cli/commands/package/load.ts +++ b/cli/commands/package/load.ts @@ -1,27 +1,29 @@ import { Args, Command, Flags } from "@oclif/core" +import { loadPackage } from "dpkit" export default class PackageLoad extends Command { + static override description = "Load a Data Package descriptor" + static override args = { - file: Args.string({ description: "file to read" }), + path: Args.string({ + description: "local or remote path to the package descriptor", + required: true, + }), } - static override description = "describe the command here" - static override examples = ["<%= config.bin %> <%= command.id %>"] + static override flags = { - // flag with no value (-f, --force) - force: Flags.boolean({ char: "f" }), - // flag with a value (-n, --name=VALUE) - name: Flags.string({ char: "n", description: "name to print" }), + json: Flags.boolean({ char: "j", description: "output as JSON" }), } public async run(): Promise { const { args, flags } = await this.parse(PackageLoad) - const name = flags.name ?? "world" - this.log( - `hello ${name} from /home/roll/projects/dpkit/cli/src/commands/package/load.ts`, - ) - if (args.file && flags.force) { - this.log(`you input --force and --file: ${args.file}`) + const dp = await loadPackage(args.path) + + if (flags.json) { + this.logJson(dp) + } else { + console.log(dp) } } } diff --git a/cli/index.ts b/cli/index.ts deleted file mode 100644 index e69de29b..00000000 diff --git a/cli/package.json b/cli/package.json index 5aeca7de..9fb831b0 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,7 +1,6 @@ { "name": "@dpkit/cli", "type": "module", - "main": "build/index.js", "version": "0.2.0", "license": "MIT", "author": "Evgeny Karev", diff --git a/core/package/load.ts b/core/package/load.ts index 92b5cb57..267d45e5 100644 --- a/core/package/load.ts +++ b/core/package/load.ts @@ -7,7 +7,6 @@ import { assertPackage } from "./assert.js" */ export async function loadPackageDescriptor(path: string) { const { basepath, descriptor } = await loadDescriptor(path) - console.log(descriptor.resources[0]) const dataPackage = await assertPackage(descriptor, { basepath }) return dataPackage } From eb2d1f9bd130ac58a9433d32ec8f3d1357a247ea Mon Sep 17 00:00:00 2001 From: roll Date: Thu, 7 Aug 2025 16:54:50 +0100 Subject: [PATCH 44/80] Fixed cli --- cli/commands/package/load.ts | 5 +- cli/options/index.ts | 1 + cli/options/json.ts | 5 + cli/package.json | 7 +- cli/scripts/dev.cmd | 3 - cli/scripts/dev.js | 5 - cli/scripts/dev.ts | 4 + cli/scripts/run.cmd | 3 - cli/scripts/{run.js => run.ts} | 1 - cli/tsconfig.json | 10 - docs/content/docs/overview/getting-started.md | 2 +- docs/package.json | 4 +- package.json | 4 +- pnpm-lock.yaml | 176 ++++++++++-------- tsconfig.json | 1 + 15 files changed, 124 insertions(+), 107 deletions(-) create mode 100644 cli/options/index.ts create mode 100644 cli/options/json.ts delete mode 100644 cli/scripts/dev.cmd delete mode 100755 cli/scripts/dev.js create mode 100755 cli/scripts/dev.ts delete mode 100644 cli/scripts/run.cmd rename cli/scripts/{run.js => run.ts} (99%) delete mode 100644 cli/tsconfig.json diff --git a/cli/commands/package/load.ts b/cli/commands/package/load.ts index a0487c39..993200e5 100644 --- a/cli/commands/package/load.ts +++ b/cli/commands/package/load.ts @@ -1,5 +1,6 @@ -import { Args, Command, Flags } from "@oclif/core" +import { Args, Command } from "@oclif/core" import { loadPackage } from "dpkit" +import * as options from "../../options/index.ts" export default class PackageLoad extends Command { static override description = "Load a Data Package descriptor" @@ -12,7 +13,7 @@ export default class PackageLoad extends Command { } static override flags = { - json: Flags.boolean({ char: "j", description: "output as JSON" }), + json: options.json(), } public async run(): Promise { diff --git a/cli/options/index.ts b/cli/options/index.ts new file mode 100644 index 00000000..be0bdeb6 --- /dev/null +++ b/cli/options/index.ts @@ -0,0 +1 @@ +export * from "./json.ts" diff --git a/cli/options/json.ts b/cli/options/json.ts new file mode 100644 index 00000000..d7fcc914 --- /dev/null +++ b/cli/options/json.ts @@ -0,0 +1,5 @@ +import { Flags } from "@oclif/core" + +export const json = () => { + return Flags.boolean({ char: "j", description: "output as JSON" }) +} diff --git a/cli/package.json b/cli/package.json index 9fb831b0..91711040 100644 --- a/cli/package.json +++ b/cli/package.json @@ -19,13 +19,12 @@ "cli" ], "bin": { - "dp": "./bin/run.js" + "dp": "./scripts/run.ts" }, "scripts": { - "build": "tsc --build", "oclif": "oclif", - "start": "./scripts/dev.js", - "preview": "./scripts/run.js" + "dev": "./scripts/dev.ts", + "run": "./scripts/run.ts" }, "dependencies": { "@oclif/core": "^4.5.2", diff --git a/cli/scripts/dev.cmd b/cli/scripts/dev.cmd deleted file mode 100644 index 968fc307..00000000 --- a/cli/scripts/dev.cmd +++ /dev/null @@ -1,3 +0,0 @@ -@echo off - -node "%~dp0\run" %* diff --git a/cli/scripts/dev.js b/cli/scripts/dev.js deleted file mode 100755 index 2d7a6227..00000000 --- a/cli/scripts/dev.js +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env node - -import { execute } from "@oclif/core" - -await execute({ development: true, dir: import.meta.url }) diff --git a/cli/scripts/dev.ts b/cli/scripts/dev.ts new file mode 100755 index 00000000..d9582c87 --- /dev/null +++ b/cli/scripts/dev.ts @@ -0,0 +1,4 @@ +#!/usr/bin/env node +import { execute } from "@oclif/core" + +await execute({ dir: import.meta.url, development: true }) diff --git a/cli/scripts/run.cmd b/cli/scripts/run.cmd deleted file mode 100644 index 968fc307..00000000 --- a/cli/scripts/run.cmd +++ /dev/null @@ -1,3 +0,0 @@ -@echo off - -node "%~dp0\run" %* diff --git a/cli/scripts/run.js b/cli/scripts/run.ts similarity index 99% rename from cli/scripts/run.js rename to cli/scripts/run.ts index 4a39c5ca..c036c876 100755 --- a/cli/scripts/run.js +++ b/cli/scripts/run.ts @@ -1,5 +1,4 @@ #!/usr/bin/env node - import { execute } from "@oclif/core" await execute({ dir: import.meta.url }) diff --git a/cli/tsconfig.json b/cli/tsconfig.json deleted file mode 100644 index 7be40230..00000000 --- a/cli/tsconfig.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "../tsconfig.json", - "include": ["**/*.ts"], - "exclude": ["**/build/"], - "compilerOptions": { - "outDir": "build", - "noEmit": false, - "declaration": true - } -} diff --git a/docs/content/docs/overview/getting-started.md b/docs/content/docs/overview/getting-started.md index afe0d11f..f3bca4db 100644 --- a/docs/content/docs/overview/getting-started.md +++ b/docs/content/docs/overview/getting-started.md @@ -14,7 +14,7 @@ This guide will help you get started with dpkit. If you are new to the core fram dpkit and all its packages support all the prominent TypeScript runtimes: -- **Node.js v20+** +- **Node.js v24+** - **Deno v2+** - **Bun v1+** diff --git a/docs/package.json b/docs/package.json index f454e432..cf49ff14 100644 --- a/docs/package.json +++ b/docs/package.json @@ -14,8 +14,8 @@ "sharp": "0.34.2", "starlight-scroll-to-top": "0.1.1", "starlight-typedoc": "0.21.3", - "typedoc": "0.28.5", - "typedoc-plugin-markdown": "4.6.3", + "typedoc": "0.28.9", + "typedoc-plugin-markdown": "4.8.0", "nodejs-polars": "0.18.0", "tempy": "3.1.0" } diff --git a/package.json b/package.json index dda38edd..a1a73b36 100644 --- a/package.json +++ b/package.json @@ -12,9 +12,7 @@ "ci:install": "pnpm install --ignore-scripts", "ci:publish": "pnpm -r publish --access public --ignore-scripts && changeset tag", "check": "pnpm run lint && pnpm run type", - "cli": "pnpm -F cli start", "coverage": "vitest --ui", - "doc": "pnpm -F docs start", "format": "biome check --write", "lint": "biome check", "prepare": "husky", @@ -31,7 +29,7 @@ "npm-check-updates": "18.0.1", "tempy": "3.1.0", "type-fest": "^4.41.0", - "typescript": "5.8.3", + "typescript": "5.9.2", "vitest": "3.1.4" }, "packageManager": "pnpm@10.11.0+sha512.6540583f41cc5f628eb3d9773ecee802f4f9ef9923cc45b69890fb47991d4b092964694ec3a4f738a420c918a333062c8b925d312f42e4f0c263eb603551f977" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3aa70d98..6dcdeaec 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -33,11 +33,11 @@ importers: specifier: ^4.41.0 version: 4.41.0 typescript: - specifier: 5.8.3 - version: 5.8.3 + specifier: 5.9.2 + version: 5.9.2 vitest: specifier: 3.1.4 - version: 3.1.4(@types/debug@4.1.12)(@types/node@24.2.0)(@vitest/ui@3.1.4)(yaml@2.7.1) + version: 3.1.4(@types/debug@4.1.12)(@types/node@24.2.0)(@vitest/ui@3.1.4)(yaml@2.8.1) arrow: dependencies: @@ -154,10 +154,10 @@ importers: devDependencies: '@astrojs/starlight': specifier: 0.34.3 - version: 0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1)) + version: 0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1)) astro: specifier: 5.7.12 - version: 5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1) + version: 5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1) dpkit: specifier: workspace:* version: link:../dpkit @@ -169,19 +169,19 @@ importers: version: 0.34.2 starlight-scroll-to-top: specifier: 0.1.1 - version: 0.1.1(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1))) + version: 0.1.1(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1))) starlight-typedoc: specifier: 0.21.3 - version: 0.21.3(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1)))(typedoc-plugin-markdown@4.6.3(typedoc@0.28.5(typescript@5.8.3)))(typedoc@0.28.5(typescript@5.8.3)) + version: 0.21.3(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1)))(typedoc-plugin-markdown@4.8.0(typedoc@0.28.9(typescript@5.9.2)))(typedoc@0.28.9(typescript@5.9.2)) tempy: specifier: 3.1.0 version: 3.1.0 typedoc: - specifier: 0.28.5 - version: 0.28.5(typescript@5.8.3) + specifier: 0.28.9 + version: 0.28.9(typescript@5.9.2) typedoc-plugin-markdown: - specifier: 4.6.3 - version: 4.6.3(typedoc@0.28.5(typescript@5.8.3)) + specifier: 4.8.0 + version: 4.8.0(typedoc@0.28.9(typescript@5.9.2)) dpkit: dependencies: @@ -901,8 +901,8 @@ packages: '@expressive-code/plugin-text-markers@0.41.2': resolution: {integrity: sha512-JFWBz2qYxxJOJkkWf96LpeolbnOqJY95TvwYc0hXIHf9oSWV0h0SY268w/5N3EtQaD9KktzDE+VIVwb9jdb3nw==} - '@gerrit0/mini-shiki@3.4.0': - resolution: {integrity: sha512-48lKoQegmfJ0iyR/jRz5OrYOSM3WewG9YWCPqUvYFEC54shQO8RsAaspaK/2PRHVVnjekRqfAFvq8pwCpIo5ig==} + '@gerrit0/mini-shiki@3.9.2': + resolution: {integrity: sha512-Tvsj+AOO4Z8xLRJK900WkyfxHsZQu+Zm1//oT1w443PO6RiYMoq/4NGOhaNuZoUMYsjKIAPVQ6eOFMddj6yphQ==} '@img/sharp-darwin-arm64@0.33.5': resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} @@ -1612,15 +1612,27 @@ packages: '@shikijs/engine-oniguruma@3.4.0': resolution: {integrity: sha512-zwcWlZ4OQuJ/+1t32ClTtyTU1AiDkK1lhtviRWoq/hFqPjCNyLj22bIg9rB7BfoZKOEOfrsGz7No33BPCf+WlQ==} + '@shikijs/engine-oniguruma@3.9.2': + resolution: {integrity: sha512-Vn/w5oyQ6TUgTVDIC/BrpXwIlfK6V6kGWDVVz2eRkF2v13YoENUvaNwxMsQU/t6oCuZKzqp9vqtEtEzKl9VegA==} + '@shikijs/langs@3.4.0': resolution: {integrity: sha512-bQkR+8LllaM2duU9BBRQU0GqFTx7TuF5kKlw/7uiGKoK140n1xlLAwCgXwSxAjJ7Htk9tXTFwnnsJTCU5nDPXQ==} + '@shikijs/langs@3.9.2': + resolution: {integrity: sha512-X1Q6wRRQXY7HqAuX3I8WjMscjeGjqXCg/Sve7J2GWFORXkSrXud23UECqTBIdCSNKJioFtmUGJQNKtlMMZMn0w==} + '@shikijs/themes@3.4.0': resolution: {integrity: sha512-YPP4PKNFcFGLxItpbU0ZW1Osyuk8AyZ24YEFaq04CFsuCbcqydMvMUTi40V2dkc0qs1U2uZFrnU6s5zI6IH+uA==} + '@shikijs/themes@3.9.2': + resolution: {integrity: sha512-6z5lBPBMRfLyyEsgf6uJDHPa6NAGVzFJqH4EAZ+03+7sedYir2yJBRu2uPZOKmj43GyhVHWHvyduLDAwJQfDjA==} + '@shikijs/types@3.4.0': resolution: {integrity: sha512-EUT/0lGiE//7j5N/yTMNMT3eCWNcHJLrRKxT0NDXWIfdfSmFJKfPX7nMmRBrQnWboAzIsUziCThrYMMhjbMS1A==} + '@shikijs/types@3.9.2': + resolution: {integrity: sha512-/M5L0Uc2ljyn2jKvj4Yiah7ow/W+DJSglVafvWAJ/b8AZDeeRAdMu3c2riDzB7N42VD+jSnWxeP9AKtd4TfYVw==} + '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} @@ -4327,21 +4339,21 @@ packages: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} - typedoc-plugin-markdown@4.6.3: - resolution: {integrity: sha512-86oODyM2zajXwLs4Wok2mwVEfCwCnp756QyhLGX2IfsdRYr1DXLCgJgnLndaMUjJD7FBhnLk2okbNE9PdLxYRw==} + typedoc-plugin-markdown@4.8.0: + resolution: {integrity: sha512-BQqXnT9PETe6WEFf8bcsvvGEGQHbwTo/BFyY+RUIsSB05Y0Wn56iF+fK1PY2OKJJIhV4kp4dp7osaP9Bm5a0Zw==} engines: {node: '>= 18'} peerDependencies: typedoc: 0.28.x - typedoc@0.28.5: - resolution: {integrity: sha512-5PzUddaA9FbaarUzIsEc4wNXCiO4Ot3bJNeMF2qKpYlTmM9TTaSHQ7162w756ERCkXER/+o2purRG6YOAv6EMA==} + typedoc@0.28.9: + resolution: {integrity: sha512-aw45vwtwOl3QkUAmWCnLV9QW1xY+FSX2zzlit4MAfE99wX+Jij4ycnpbAWgBXsRrxmfs9LaYktg/eX5Bpthd3g==} engines: {node: '>= 18', pnpm: '>= 10'} hasBin: true peerDependencies: - typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x + typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x - typescript@5.8.3: - resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} + typescript@5.9.2: + resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==} engines: {node: '>=14.17'} hasBin: true @@ -4669,9 +4681,9 @@ packages: xxhash-wasm@1.1.0: resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==} - yaml@2.7.1: - resolution: {integrity: sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==} - engines: {node: '>= 14'} + yaml@2.8.1: + resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==} + engines: {node: '>= 14.6'} hasBin: true yargs-parser@21.1.1: @@ -4763,12 +4775,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/mdx@4.2.6(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1))': + '@astrojs/mdx@4.2.6(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1))': dependencies: '@astrojs/markdown-remark': 6.3.1 '@mdx-js/mdx': 3.1.0(acorn@8.14.1) acorn: 8.14.1 - astro: 5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1) + astro: 5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1) es-module-lexer: 1.7.0 estree-util-visit: 2.0.0 hast-util-to-html: 9.0.5 @@ -4792,17 +4804,17 @@ snapshots: stream-replace-string: 2.0.0 zod: 3.24.4 - '@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1))': + '@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1))': dependencies: '@astrojs/markdown-remark': 6.3.1 - '@astrojs/mdx': 4.2.6(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1)) + '@astrojs/mdx': 4.2.6(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1)) '@astrojs/sitemap': 3.4.0 '@pagefind/default-ui': 1.3.0 '@types/hast': 3.0.4 '@types/js-yaml': 4.0.9 '@types/mdast': 4.0.4 - astro: 5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1) - astro-expressive-code: 0.41.2(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1)) + astro: 5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1) + astro-expressive-code: 0.41.2(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1)) bcp-47: 2.1.0 hast-util-from-html: 2.0.3 hast-util-select: 6.0.4 @@ -5670,12 +5682,12 @@ snapshots: dependencies: '@expressive-code/core': 0.41.2 - '@gerrit0/mini-shiki@3.4.0': + '@gerrit0/mini-shiki@3.9.2': dependencies: - '@shikijs/engine-oniguruma': 3.4.0 - '@shikijs/langs': 3.4.0 - '@shikijs/themes': 3.4.0 - '@shikijs/types': 3.4.0 + '@shikijs/engine-oniguruma': 3.9.2 + '@shikijs/langs': 3.9.2 + '@shikijs/themes': 3.9.2 + '@shikijs/types': 3.9.2 '@shikijs/vscode-textmate': 10.0.2 '@img/sharp-darwin-arm64@0.33.5': @@ -6370,19 +6382,37 @@ snapshots: '@shikijs/types': 3.4.0 '@shikijs/vscode-textmate': 10.0.2 + '@shikijs/engine-oniguruma@3.9.2': + dependencies: + '@shikijs/types': 3.9.2 + '@shikijs/vscode-textmate': 10.0.2 + '@shikijs/langs@3.4.0': dependencies: '@shikijs/types': 3.4.0 + '@shikijs/langs@3.9.2': + dependencies: + '@shikijs/types': 3.9.2 + '@shikijs/themes@3.4.0': dependencies: '@shikijs/types': 3.4.0 + '@shikijs/themes@3.9.2': + dependencies: + '@shikijs/types': 3.9.2 + '@shikijs/types@3.4.0': dependencies: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 + '@shikijs/types@3.9.2': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + '@shikijs/vscode-textmate@10.0.2': {} '@sindresorhus/fnv1a@2.0.1': {} @@ -6833,7 +6863,7 @@ snapshots: std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.1.4(@types/debug@4.1.12)(@types/node@24.2.0)(@vitest/ui@3.1.4)(yaml@2.7.1) + vitest: 3.1.4(@types/debug@4.1.12)(@types/node@24.2.0)(@vitest/ui@3.1.4)(yaml@2.8.1) transitivePeerDependencies: - supports-color @@ -6844,13 +6874,13 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.1.4(vite@6.3.5(@types/node@24.2.0)(yaml@2.7.1))': + '@vitest/mocker@3.1.4(vite@6.3.5(@types/node@24.2.0)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.1.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.3.5(@types/node@24.2.0)(yaml@2.7.1) + vite: 6.3.5(@types/node@24.2.0)(yaml@2.8.1) '@vitest/pretty-format@3.1.4': dependencies: @@ -6880,7 +6910,7 @@ snapshots: sirv: 3.0.1 tinyglobby: 0.2.13 tinyrainbow: 2.0.0 - vitest: 3.1.4(@types/debug@4.1.12)(@types/node@24.2.0)(@vitest/ui@3.1.4)(yaml@2.7.1) + vitest: 3.1.4(@types/debug@4.1.12)(@types/node@24.2.0)(@vitest/ui@3.1.4)(yaml@2.8.1) '@vitest/utils@3.1.4': dependencies: @@ -6957,12 +6987,12 @@ snapshots: astring@1.9.0: {} - astro-expressive-code@0.41.2(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1)): + astro-expressive-code@0.41.2(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1)): dependencies: - astro: 5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1) + astro: 5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1) rehype-expressive-code: 0.41.2 - astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1): + astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1): dependencies: '@astrojs/compiler': 2.12.0 '@astrojs/internal-helpers': 0.6.1 @@ -7010,20 +7040,20 @@ snapshots: shiki: 3.4.0 tinyexec: 0.3.2 tinyglobby: 0.2.13 - tsconfck: 3.1.5(typescript@5.8.3) + tsconfck: 3.1.5(typescript@5.9.2) ultrahtml: 1.6.0 unifont: 0.5.0 unist-util-visit: 5.0.0 unstorage: 1.16.0 vfile: 6.0.3 - vite: 6.3.5(@types/node@24.2.0)(yaml@2.7.1) - vitefu: 1.0.6(vite@6.3.5(@types/node@24.2.0)(yaml@2.7.1)) + vite: 6.3.5(@types/node@24.2.0)(yaml@2.8.1) + vitefu: 1.0.6(vite@6.3.5(@types/node@24.2.0)(yaml@2.8.1)) xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 yocto-spinner: 0.2.2 zod: 3.24.4 zod-to-json-schema: 3.24.5(zod@3.24.4) - zod-to-ts: 1.2.0(typescript@5.8.3)(zod@3.24.4) + zod-to-ts: 1.2.0(typescript@5.9.2)(zod@3.24.4) optionalDependencies: sharp: 0.33.5 transitivePeerDependencies: @@ -9697,16 +9727,16 @@ snapshots: stackback@0.0.2: {} - starlight-scroll-to-top@0.1.1(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1))): + starlight-scroll-to-top@0.1.1(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1))): dependencies: - '@astrojs/starlight': 0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1)) + '@astrojs/starlight': 0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1)) - starlight-typedoc@0.21.3(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1)))(typedoc-plugin-markdown@4.6.3(typedoc@0.28.5(typescript@5.8.3)))(typedoc@0.28.5(typescript@5.8.3)): + starlight-typedoc@0.21.3(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1)))(typedoc-plugin-markdown@4.8.0(typedoc@0.28.9(typescript@5.9.2)))(typedoc@0.28.9(typescript@5.9.2)): dependencies: - '@astrojs/starlight': 0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.8.3)(yaml@2.7.1)) + '@astrojs/starlight': 0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1)) github-slugger: 2.0.0 - typedoc: 0.28.5(typescript@5.8.3) - typedoc-plugin-markdown: 4.6.3(typedoc@0.28.5(typescript@5.8.3)) + typedoc: 0.28.9(typescript@5.9.2) + typedoc-plugin-markdown: 4.8.0(typedoc@0.28.9(typescript@5.9.2)) statuses@2.0.1: {} @@ -9828,9 +9858,9 @@ snapshots: trough@2.2.0: {} - tsconfck@3.1.5(typescript@5.8.3): + tsconfck@3.1.5(typescript@5.9.2): optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.2 tslib@2.8.1: {} @@ -9851,20 +9881,20 @@ snapshots: media-typer: 0.3.0 mime-types: 2.1.35 - typedoc-plugin-markdown@4.6.3(typedoc@0.28.5(typescript@5.8.3)): + typedoc-plugin-markdown@4.8.0(typedoc@0.28.9(typescript@5.9.2)): dependencies: - typedoc: 0.28.5(typescript@5.8.3) + typedoc: 0.28.9(typescript@5.9.2) - typedoc@0.28.5(typescript@5.8.3): + typedoc@0.28.9(typescript@5.9.2): dependencies: - '@gerrit0/mini-shiki': 3.4.0 + '@gerrit0/mini-shiki': 3.9.2 lunr: 2.3.9 markdown-it: 14.1.0 minimatch: 9.0.5 - typescript: 5.8.3 - yaml: 2.7.1 + typescript: 5.9.2 + yaml: 2.8.1 - typescript@5.8.3: {} + typescript@5.9.2: {} uc.micro@2.1.0: {} @@ -10015,13 +10045,13 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-node@3.1.4(@types/node@24.2.0)(yaml@2.7.1): + vite-node@3.1.4(@types/node@24.2.0)(yaml@2.8.1): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.3.5(@types/node@24.2.0)(yaml@2.7.1) + vite: 6.3.5(@types/node@24.2.0)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -10036,7 +10066,7 @@ snapshots: - tsx - yaml - vite@6.3.5(@types/node@24.2.0)(yaml@2.7.1): + vite@6.3.5(@types/node@24.2.0)(yaml@2.8.1): dependencies: esbuild: 0.25.4 fdir: 6.4.4(picomatch@4.0.2) @@ -10047,16 +10077,16 @@ snapshots: optionalDependencies: '@types/node': 24.2.0 fsevents: 2.3.3 - yaml: 2.7.1 + yaml: 2.8.1 - vitefu@1.0.6(vite@6.3.5(@types/node@24.2.0)(yaml@2.7.1)): + vitefu@1.0.6(vite@6.3.5(@types/node@24.2.0)(yaml@2.8.1)): optionalDependencies: - vite: 6.3.5(@types/node@24.2.0)(yaml@2.7.1) + vite: 6.3.5(@types/node@24.2.0)(yaml@2.8.1) - vitest@3.1.4(@types/debug@4.1.12)(@types/node@24.2.0)(@vitest/ui@3.1.4)(yaml@2.7.1): + vitest@3.1.4(@types/debug@4.1.12)(@types/node@24.2.0)(@vitest/ui@3.1.4)(yaml@2.8.1): dependencies: '@vitest/expect': 3.1.4 - '@vitest/mocker': 3.1.4(vite@6.3.5(@types/node@24.2.0)(yaml@2.7.1)) + '@vitest/mocker': 3.1.4(vite@6.3.5(@types/node@24.2.0)(yaml@2.8.1)) '@vitest/pretty-format': 3.1.4 '@vitest/runner': 3.1.4 '@vitest/snapshot': 3.1.4 @@ -10073,8 +10103,8 @@ snapshots: tinyglobby: 0.2.13 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.3.5(@types/node@24.2.0)(yaml@2.7.1) - vite-node: 3.1.4(@types/node@24.2.0)(yaml@2.7.1) + vite: 6.3.5(@types/node@24.2.0)(yaml@2.8.1) + vite-node: 3.1.4(@types/node@24.2.0)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 @@ -10152,7 +10182,7 @@ snapshots: xxhash-wasm@1.1.0: {} - yaml@2.7.1: {} + yaml@2.8.1: {} yargs-parser@21.1.1: {} @@ -10182,9 +10212,9 @@ snapshots: dependencies: zod: 3.24.4 - zod-to-ts@1.2.0(typescript@5.8.3)(zod@3.24.4): + zod-to-ts@1.2.0(typescript@5.9.2)(zod@3.24.4): dependencies: - typescript: 5.8.3 + typescript: 5.9.2 zod: 3.24.4 zod@3.24.4: {} diff --git a/tsconfig.json b/tsconfig.json index 95100951..cd27aef7 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -9,6 +9,7 @@ "lib": ["ESNext"], "module": "NodeNext", "moduleResolution": "NodeNext", + "rewriteRelativeImportExtensions": true, "isolatedModules": true, "esModuleInterop": true, "resolveJsonModule": true, From 75b86a4e8abf32ee2678bb5bd210f0c2e3ab6cb5 Mon Sep 17 00:00:00 2001 From: roll Date: Fri, 8 Aug 2025 09:07:55 +0100 Subject: [PATCH 45/80] Rebased on es2022 --- docs/content/docs/overview/getting-started.md | 2 +- tsconfig.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/content/docs/overview/getting-started.md b/docs/content/docs/overview/getting-started.md index f3bca4db..81d997fe 100644 --- a/docs/content/docs/overview/getting-started.md +++ b/docs/content/docs/overview/getting-started.md @@ -14,7 +14,7 @@ This guide will help you get started with dpkit. If you are new to the core fram dpkit and all its packages support all the prominent TypeScript runtimes: -- **Node.js v24+** +- **Node.js v22+** - **Deno v2+** - **Bun v1+** diff --git a/tsconfig.json b/tsconfig.json index cd27aef7..b0794525 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,7 +5,7 @@ "compilerOptions": { "strict": true, "noEmit": true, - "target": "ES2024", + "target": "ES2022", "lib": ["ESNext"], "module": "NodeNext", "moduleResolution": "NodeNext", From 5060aeecc9576240d41ac57d92fbaac56c2be24b Mon Sep 17 00:00:00 2001 From: roll Date: Fri, 8 Aug 2025 12:06:13 +0100 Subject: [PATCH 46/80] Rebased on unified tsconfig --- arrow/package.json | 2 +- arrow/tsconfig.json | 9 +- camtrap/package.json | 2 +- camtrap/tsconfig.json | 9 +- ckan/package.json | 2 +- ckan/tsconfig.json | 9 +- cli/package.json | 3 +- cli/tsconfig.json | 3 + core/package.json | 2 +- core/tsconfig.json | 9 +- csv/package.json | 2 +- csv/tsconfig.json | 9 +- datahub/package.json | 2 +- datahub/tsconfig.json | 9 +- db/package.json | 2 +- db/tsconfig.json | 9 +- dpkit/package.json | 2 +- dpkit/tsconfig.json | 9 +- excel/package.json | 2 +- excel/tsconfig.json | 9 +- extend/package.json | 2 +- extend/tsconfig.json | 9 +- file/package.json | 2 +- file/tsconfig.json | 9 +- folder/package.json | 2 +- folder/tsconfig.json | 9 +- github/package.json | 2 +- github/tsconfig.json | 9 +- inline/package.json | 2 +- inline/tsconfig.json | 9 +- json/package.json | 2 +- json/tsconfig.json | 9 +- ods/package.json | 2 +- ods/tsconfig.json | 9 +- package.json | 4 +- parquet/package.json | 2 +- parquet/tsconfig.json | 9 +- pnpm-lock.yaml | 1435 ++++++++++++++++++++--------------------- table/package.json | 2 +- table/tsconfig.json | 9 +- test/package.json | 2 +- test/tsconfig.json | 9 +- tsconfig.json | 21 +- ui/package.json | 2 +- ui/tsconfig.json | 9 +- zenodo/package.json | 2 +- zenodo/tsconfig.json | 9 +- zip/package.json | 2 +- zip/tsconfig.json | 9 +- 49 files changed, 782 insertions(+), 926 deletions(-) create mode 100644 cli/tsconfig.json diff --git a/arrow/package.json b/arrow/package.json index abf8b9c4..07a2f4f7 100644 --- a/arrow/package.json +++ b/arrow/package.json @@ -20,7 +20,7 @@ "parquet" ], "scripts": { - "build": "tsc --build" + "build": "tsc" }, "dependencies": { "@dpkit/core": "workspace:*", diff --git a/arrow/tsconfig.json b/arrow/tsconfig.json index 7be40230..3c43903c 100644 --- a/arrow/tsconfig.json +++ b/arrow/tsconfig.json @@ -1,10 +1,3 @@ { - "extends": "../tsconfig.json", - "include": ["**/*.ts"], - "exclude": ["**/build/"], - "compilerOptions": { - "outDir": "build", - "noEmit": false, - "declaration": true - } + "extends": "../tsconfig.json" } diff --git a/camtrap/package.json b/camtrap/package.json index eb2ae0e4..1abbcaf6 100644 --- a/camtrap/package.json +++ b/camtrap/package.json @@ -20,7 +20,7 @@ "camtrap" ], "scripts": { - "build": "tsc --build" + "build": "tsc" }, "dependencies": { "@dpkit/core": "workspace:*" diff --git a/camtrap/tsconfig.json b/camtrap/tsconfig.json index 7be40230..3c43903c 100644 --- a/camtrap/tsconfig.json +++ b/camtrap/tsconfig.json @@ -1,10 +1,3 @@ { - "extends": "../tsconfig.json", - "include": ["**/*.ts"], - "exclude": ["**/build/"], - "compilerOptions": { - "outDir": "build", - "noEmit": false, - "declaration": true - } + "extends": "../tsconfig.json" } diff --git a/ckan/package.json b/ckan/package.json index 9f8d297c..6dd3e590 100644 --- a/ckan/package.json +++ b/ckan/package.json @@ -20,7 +20,7 @@ "ckan" ], "scripts": { - "build": "tsc --build" + "build": "tsc" }, "dependencies": { "@dpkit/core": "workspace:*", diff --git a/ckan/tsconfig.json b/ckan/tsconfig.json index 7be40230..3c43903c 100644 --- a/ckan/tsconfig.json +++ b/ckan/tsconfig.json @@ -1,10 +1,3 @@ { - "extends": "../tsconfig.json", - "include": ["**/*.ts"], - "exclude": ["**/build/"], - "compilerOptions": { - "outDir": "build", - "noEmit": false, - "declaration": true - } + "extends": "../tsconfig.json" } diff --git a/cli/package.json b/cli/package.json index 91711040..d01ae1fc 100644 --- a/cli/package.json +++ b/cli/package.json @@ -22,8 +22,9 @@ "dp": "./scripts/run.ts" }, "scripts": { - "oclif": "oclif", + "build": "tsc", "dev": "./scripts/dev.ts", + "oclif": "oclif", "run": "./scripts/run.ts" }, "dependencies": { diff --git a/cli/tsconfig.json b/cli/tsconfig.json new file mode 100644 index 00000000..3c43903c --- /dev/null +++ b/cli/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "../tsconfig.json" +} diff --git a/core/package.json b/core/package.json index 1691fb50..aa323e41 100644 --- a/core/package.json +++ b/core/package.json @@ -20,7 +20,7 @@ "core" ], "scripts": { - "build": "tsc --build" + "build": "tsc" }, "dependencies": { "@sindresorhus/slugify": "^0.9.0", diff --git a/core/tsconfig.json b/core/tsconfig.json index 7be40230..3c43903c 100644 --- a/core/tsconfig.json +++ b/core/tsconfig.json @@ -1,10 +1,3 @@ { - "extends": "../tsconfig.json", - "include": ["**/*.ts"], - "exclude": ["**/build/"], - "compilerOptions": { - "outDir": "build", - "noEmit": false, - "declaration": true - } + "extends": "../tsconfig.json" } diff --git a/csv/package.json b/csv/package.json index d9e29e0b..bd6a4583 100644 --- a/csv/package.json +++ b/csv/package.json @@ -20,7 +20,7 @@ "csv" ], "scripts": { - "build": "tsc --build" + "build": "tsc" }, "dependencies": { "@dpkit/core": "workspace:*", diff --git a/csv/tsconfig.json b/csv/tsconfig.json index 7be40230..3c43903c 100644 --- a/csv/tsconfig.json +++ b/csv/tsconfig.json @@ -1,10 +1,3 @@ { - "extends": "../tsconfig.json", - "include": ["**/*.ts"], - "exclude": ["**/build/"], - "compilerOptions": { - "outDir": "build", - "noEmit": false, - "declaration": true - } + "extends": "../tsconfig.json" } diff --git a/datahub/package.json b/datahub/package.json index 63e0fd1b..921c6b03 100644 --- a/datahub/package.json +++ b/datahub/package.json @@ -20,7 +20,7 @@ "datahub" ], "scripts": { - "build": "tsc --build" + "build": "tsc" }, "dependencies": { "@dpkit/core": "workspace:*" diff --git a/datahub/tsconfig.json b/datahub/tsconfig.json index 7be40230..3c43903c 100644 --- a/datahub/tsconfig.json +++ b/datahub/tsconfig.json @@ -1,10 +1,3 @@ { - "extends": "../tsconfig.json", - "include": ["**/*.ts"], - "exclude": ["**/build/"], - "compilerOptions": { - "outDir": "build", - "noEmit": false, - "declaration": true - } + "extends": "../tsconfig.json" } diff --git a/db/package.json b/db/package.json index 103373a1..d15c40e9 100644 --- a/db/package.json +++ b/db/package.json @@ -20,6 +20,6 @@ "db" ], "scripts": { - "build": "tsc --build" + "build": "tsc" } } diff --git a/db/tsconfig.json b/db/tsconfig.json index 7be40230..3c43903c 100644 --- a/db/tsconfig.json +++ b/db/tsconfig.json @@ -1,10 +1,3 @@ { - "extends": "../tsconfig.json", - "include": ["**/*.ts"], - "exclude": ["**/build/"], - "compilerOptions": { - "outDir": "build", - "noEmit": false, - "declaration": true - } + "extends": "../tsconfig.json" } diff --git a/dpkit/package.json b/dpkit/package.json index 94d71874..8b84ee04 100644 --- a/dpkit/package.json +++ b/dpkit/package.json @@ -37,6 +37,6 @@ "@dpkit/zip": "workspace:*" }, "scripts": { - "build": "tsc --build" + "build": "tsc" } } diff --git a/dpkit/tsconfig.json b/dpkit/tsconfig.json index 7be40230..3c43903c 100644 --- a/dpkit/tsconfig.json +++ b/dpkit/tsconfig.json @@ -1,10 +1,3 @@ { - "extends": "../tsconfig.json", - "include": ["**/*.ts"], - "exclude": ["**/build/"], - "compilerOptions": { - "outDir": "build", - "noEmit": false, - "declaration": true - } + "extends": "../tsconfig.json" } diff --git a/excel/package.json b/excel/package.json index 13a73607..c4e0fe68 100644 --- a/excel/package.json +++ b/excel/package.json @@ -20,6 +20,6 @@ "excel" ], "scripts": { - "build": "tsc --build" + "build": "tsc" } } diff --git a/excel/tsconfig.json b/excel/tsconfig.json index 7be40230..3c43903c 100644 --- a/excel/tsconfig.json +++ b/excel/tsconfig.json @@ -1,10 +1,3 @@ { - "extends": "../tsconfig.json", - "include": ["**/*.ts"], - "exclude": ["**/build/"], - "compilerOptions": { - "outDir": "build", - "noEmit": false, - "declaration": true - } + "extends": "../tsconfig.json" } diff --git a/extend/package.json b/extend/package.json index 077f7acd..394fbef4 100644 --- a/extend/package.json +++ b/extend/package.json @@ -20,6 +20,6 @@ "extend" ], "scripts": { - "build": "tsc --build" + "build": "tsc" } } diff --git a/extend/tsconfig.json b/extend/tsconfig.json index 7be40230..3c43903c 100644 --- a/extend/tsconfig.json +++ b/extend/tsconfig.json @@ -1,10 +1,3 @@ { - "extends": "../tsconfig.json", - "include": ["**/*.ts"], - "exclude": ["**/build/"], - "compilerOptions": { - "outDir": "build", - "noEmit": false, - "declaration": true - } + "extends": "../tsconfig.json" } diff --git a/file/package.json b/file/package.json index 8e54575e..7dcd8aaf 100644 --- a/file/package.json +++ b/file/package.json @@ -20,7 +20,7 @@ "file" ], "scripts": { - "build": "tsc --build" + "build": "tsc" }, "dependencies": { "@dpkit/core": "workspace:*", diff --git a/file/tsconfig.json b/file/tsconfig.json index 7be40230..3c43903c 100644 --- a/file/tsconfig.json +++ b/file/tsconfig.json @@ -1,10 +1,3 @@ { - "extends": "../tsconfig.json", - "include": ["**/*.ts"], - "exclude": ["**/build/"], - "compilerOptions": { - "outDir": "build", - "noEmit": false, - "declaration": true - } + "extends": "../tsconfig.json" } diff --git a/folder/package.json b/folder/package.json index 083d6f88..f851dad6 100644 --- a/folder/package.json +++ b/folder/package.json @@ -20,7 +20,7 @@ "folder" ], "scripts": { - "build": "tsc --build" + "build": "tsc" }, "dependencies": { "@dpkit/core": "workspace:*", diff --git a/folder/tsconfig.json b/folder/tsconfig.json index 7be40230..3c43903c 100644 --- a/folder/tsconfig.json +++ b/folder/tsconfig.json @@ -1,10 +1,3 @@ { - "extends": "../tsconfig.json", - "include": ["**/*.ts"], - "exclude": ["**/build/"], - "compilerOptions": { - "outDir": "build", - "noEmit": false, - "declaration": true - } + "extends": "../tsconfig.json" } diff --git a/github/package.json b/github/package.json index 39048c14..ba3f0c1f 100644 --- a/github/package.json +++ b/github/package.json @@ -20,7 +20,7 @@ "github" ], "scripts": { - "build": "tsc --build" + "build": "tsc" }, "dependencies": { "@dpkit/core": "workspace:*", diff --git a/github/tsconfig.json b/github/tsconfig.json index 7be40230..3c43903c 100644 --- a/github/tsconfig.json +++ b/github/tsconfig.json @@ -1,10 +1,3 @@ { - "extends": "../tsconfig.json", - "include": ["**/*.ts"], - "exclude": ["**/build/"], - "compilerOptions": { - "outDir": "build", - "noEmit": false, - "declaration": true - } + "extends": "../tsconfig.json" } diff --git a/inline/package.json b/inline/package.json index 312b62db..c300456d 100644 --- a/inline/package.json +++ b/inline/package.json @@ -20,7 +20,7 @@ "inline" ], "scripts": { - "build": "tsc --build" + "build": "tsc" }, "dependencies": { "nodejs-polars": "^0.18.0", diff --git a/inline/tsconfig.json b/inline/tsconfig.json index 7be40230..3c43903c 100644 --- a/inline/tsconfig.json +++ b/inline/tsconfig.json @@ -1,10 +1,3 @@ { - "extends": "../tsconfig.json", - "include": ["**/*.ts"], - "exclude": ["**/build/"], - "compilerOptions": { - "outDir": "build", - "noEmit": false, - "declaration": true - } + "extends": "../tsconfig.json" } diff --git a/json/package.json b/json/package.json index 50a6337f..14f3205a 100644 --- a/json/package.json +++ b/json/package.json @@ -20,7 +20,7 @@ "json" ], "scripts": { - "build": "tsc --build" + "build": "tsc" }, "dependencies": { "@dpkit/core": "workspace:*", diff --git a/json/tsconfig.json b/json/tsconfig.json index 7be40230..3c43903c 100644 --- a/json/tsconfig.json +++ b/json/tsconfig.json @@ -1,10 +1,3 @@ { - "extends": "../tsconfig.json", - "include": ["**/*.ts"], - "exclude": ["**/build/"], - "compilerOptions": { - "outDir": "build", - "noEmit": false, - "declaration": true - } + "extends": "../tsconfig.json" } diff --git a/ods/package.json b/ods/package.json index 41fac771..33c5fa3d 100644 --- a/ods/package.json +++ b/ods/package.json @@ -20,6 +20,6 @@ "ods" ], "scripts": { - "build": "tsc --build" + "build": "tsc" } } diff --git a/ods/tsconfig.json b/ods/tsconfig.json index 7be40230..3c43903c 100644 --- a/ods/tsconfig.json +++ b/ods/tsconfig.json @@ -1,10 +1,3 @@ { - "extends": "../tsconfig.json", - "include": ["**/*.ts"], - "exclude": ["**/build/"], - "compilerOptions": { - "outDir": "build", - "noEmit": false, - "declaration": true - } + "extends": "../tsconfig.json" } diff --git a/package.json b/package.json index a1a73b36..eb0d62aa 100644 --- a/package.json +++ b/package.json @@ -12,17 +12,19 @@ "ci:install": "pnpm install --ignore-scripts", "ci:publish": "pnpm -r publish --access public --ignore-scripts && changeset tag", "check": "pnpm run lint && pnpm run type", + "clean": "rm pnpm-lock.yaml && find . -name 'node_modules' -type d -prune -print -exec rm -rf '{}' +", "coverage": "vitest --ui", "format": "biome check --write", "lint": "biome check", "prepare": "husky", "spec": "vitest run", "test": "pnpm check && pnpm run spec", - "type": "tsc" + "type": "tsc --noEmit" }, "devDependencies": { "@biomejs/biome": "1.9.4", "@changesets/cli": "2.29.5", + "@types/node": "24.2.0", "@vitest/coverage-v8": "3.1.4", "@vitest/ui": "3.1.4", "husky": "9.1.7", diff --git a/parquet/package.json b/parquet/package.json index 03ff6e8d..3f00e874 100644 --- a/parquet/package.json +++ b/parquet/package.json @@ -20,7 +20,7 @@ "parquet" ], "scripts": { - "build": "tsc --build" + "build": "tsc" }, "dependencies": { "@dpkit/core": "workspace:*", diff --git a/parquet/tsconfig.json b/parquet/tsconfig.json index 7be40230..3c43903c 100644 --- a/parquet/tsconfig.json +++ b/parquet/tsconfig.json @@ -1,10 +1,3 @@ { - "extends": "../tsconfig.json", - "include": ["**/*.ts"], - "exclude": ["**/build/"], - "compilerOptions": { - "outDir": "build", - "noEmit": false, - "declaration": true - } + "extends": "../tsconfig.json" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6dcdeaec..5189332f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,6 +14,9 @@ importers: '@changesets/cli': specifier: 2.29.5 version: 2.29.5 + '@types/node': + specifier: 24.2.0 + version: 24.2.0 '@vitest/coverage-v8': specifier: 3.1.4 version: 3.1.4(vitest@3.1.4) @@ -154,10 +157,10 @@ importers: devDependencies: '@astrojs/starlight': specifier: 0.34.3 - version: 0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1)) + version: 0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1)) astro: specifier: 5.7.12 - version: 5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1) + version: 5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1) dpkit: specifier: workspace:* version: link:../dpkit @@ -169,10 +172,10 @@ importers: version: 0.34.2 starlight-scroll-to-top: specifier: 0.1.1 - version: 0.1.1(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1))) + version: 0.1.1(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1))) starlight-typedoc: specifier: 0.21.3 - version: 0.21.3(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1)))(typedoc-plugin-markdown@4.8.0(typedoc@0.28.9(typescript@5.9.2)))(typedoc@0.28.9(typescript@5.9.2)) + version: 0.21.3(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1)))(typedoc-plugin-markdown@4.8.0(typedoc@0.28.9(typescript@5.9.2)))(typedoc@0.28.9(typescript@5.9.2)) tempy: specifier: 3.1.0 version: 3.1.0 @@ -346,7 +349,7 @@ importers: dependencies: '@pollyjs/adapter-fetch': specifier: ^6.0.6 - version: 6.0.6 + version: 6.0.7 '@pollyjs/core': specifier: ^6.0.6 version: 6.0.6 @@ -404,18 +407,24 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@astrojs/compiler@2.12.0': - resolution: {integrity: sha512-7bCjW6tVDpUurQLeKBUN9tZ5kSv5qYrGmcn0sG0IwacL7isR2ZbyyA3AdZ4uxsuUFOS2SlgReTH7wkxO6zpqWA==} + '@astrojs/compiler@2.12.2': + resolution: {integrity: sha512-w2zfvhjNCkNMmMMOn5b0J8+OmUaBL1o40ipMvqcG6NRpdC+lKxmTi48DT8Xw0SzJ3AfmeFLB45zXZXtmbsjcgw==} '@astrojs/internal-helpers@0.6.1': resolution: {integrity: sha512-l5Pqf6uZu31aG+3Lv8nl/3s4DbUzdlxTWDof4pEpto6GUJNhhCbelVi9dEyurOVyqaelwmS9oSyOWOENSfgo9A==} + '@astrojs/internal-helpers@0.7.1': + resolution: {integrity: sha512-7dwEVigz9vUWDw3nRwLQ/yH/xYovlUA0ZD86xoeKEBmkz9O6iELG1yri67PgAPW6VLL/xInA4t7H0CK6VmtkKQ==} + '@astrojs/markdown-remark@6.3.1': resolution: {integrity: sha512-c5F5gGrkczUaTVgmMW9g1YMJGzOtRvjjhw6IfGuxarM6ct09MpwysP10US729dy07gg8y+ofVifezvP3BNsWZg==} - '@astrojs/mdx@4.2.6': - resolution: {integrity: sha512-0i/GmOm6d0qq1/SCfcUgY/IjDc/bS0i42u7h85TkPFBmlFOcBZfkYhR5iyz6hZLwidvJOEq5yGfzt9B1Azku4w==} - engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} + '@astrojs/markdown-remark@6.3.5': + resolution: {integrity: sha512-MiR92CkE2BcyWf3b86cBBw/1dKiOH0qhLgXH2OXA6cScrrmmks1Rr4Tl0p/lFpvmgQQrP54Pd1uidJfmxGrpWQ==} + + '@astrojs/mdx@4.3.3': + resolution: {integrity: sha512-+9+xGP2TBXxcm84cpiq4S9JbuHOHM1fcvREfqW7VHxlUyfUQPByoJ9YYliqHkLS6BMzG+O/+o7n8nguVhuEv4w==} + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} peerDependencies: astro: ^5.0.0 @@ -423,8 +432,12 @@ packages: resolution: {integrity: sha512-GilTHKGCW6HMq7y3BUv9Ac7GMe/MO9gi9GW62GzKtth0SwukCu/qp2wLiGpEujhY+VVhaG9v7kv/5vFzvf4NYw==} engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} - '@astrojs/sitemap@3.4.0': - resolution: {integrity: sha512-C5m/xsKvRSILKM3hy47n5wKtTQtJXn8epoYuUmCCstaE9XBt20yInym3Bz2uNbEiNfv11bokoW0MqeXPIvjFIQ==} + '@astrojs/prism@3.3.0': + resolution: {integrity: sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ==} + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} + + '@astrojs/sitemap@3.4.2': + resolution: {integrity: sha512-wfN2dZzdkto6yaMtOFa/J9gc60YE3wl3rgSBoNJ+MU3lJVUMsDY9xf9uAVi8Mp/zEQKFDSJlQzBvqQUpw0Hf6g==} '@astrojs/starlight@0.34.3': resolution: {integrity: sha512-MAuD3NF+E+QXJJuVKofoR6xcPTP4BJmYWeOBd03udVdubNGVnPnSWVZAi+ZtnTofES4+mJdp8BNGf+ubUxkiiA==} @@ -458,48 +471,48 @@ packages: '@aws-crypto/util@5.2.0': resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - '@aws-sdk/client-cloudfront@3.862.0': - resolution: {integrity: sha512-/SOANnvB3s2AbwxixH13ZpTwH3t7PCpSUVPwp9COMsM5Sq75ANGkUjqiMxQAm+LAFirSC9PZEQzUQOAyzW9arw==} + '@aws-sdk/client-cloudfront@3.863.0': + resolution: {integrity: sha512-04ME3EqDtWvV2nKl9qlk2TqjDwJL3sI2ey33sIJCL3d2z3cFIQOOdy9QleCPmYPMqPpENRC0qdKprR0yt2t7fg==} engines: {node: '>=18.0.0'} - '@aws-sdk/client-s3@3.862.0': - resolution: {integrity: sha512-sPmqv2qKORtGRN51cRoHyTOK/SMejG1snXUQytuximeDPn5e/p6cCsYwOI8QuQNW+/7HbmosEz91lPcbClWXxg==} + '@aws-sdk/client-s3@3.863.0': + resolution: {integrity: sha512-12iPziQtTolNiWFlN7Bg4jDfh1eOVB0hW6bsP1cI3JVr/IF0pVvPjQ1WEUhjTlOujC/U+JaYjw3iQ7nWKHX6vQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/client-sso@3.862.0': - resolution: {integrity: sha512-zHf7Bn22K09BdFgiGg6yWfy927djGhs58KB5qpqD2ie7u796TvetPH14p6UUAOGyk6aah+wR/WLFFoc+51uADA==} + '@aws-sdk/client-sso@3.863.0': + resolution: {integrity: sha512-3DZE5lx5A+MgTVS8yRBz/Ne8pWvwc7tDy4KBx5sDd93wvnDYjZW28g7W73d1dD7jfN8ZIC0REtiuNj00Ty0PBg==} engines: {node: '>=18.0.0'} - '@aws-sdk/core@3.862.0': - resolution: {integrity: sha512-oJ5Au3QCAQmOmh7PD7dUxnPDxWsT9Z95XEOiJV027//11pwRSUMiNSvW8srPa3i7CZRNjz5QHX6O4KqX9PxNsQ==} + '@aws-sdk/core@3.863.0': + resolution: {integrity: sha512-6KUD82jb8Z+PWRoAwqpjFcrhcCvUlKNfUKKdkhj2yEdugem36d29avTpTPa6RiOEsfUi7CM4Yh60Qrj0pNI4xQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-env@3.862.0': - resolution: {integrity: sha512-/nafSJMuixcrCN1SmsOBIQ5m1fhr9ZnCxw3JZD9qJm3yNXhAshqAC+KcA3JGFnvdBVLhY/pUpdoQmxZmuFJItQ==} + '@aws-sdk/credential-provider-env@3.863.0': + resolution: {integrity: sha512-KmA5cjJU5ihR+oFJtraraeQ7aDSp3GtogSoBUKaHBsiSP7awgxuVcAWSr8wCxi0kPUjCE7kHSLTv4i9UC4soYw==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-http@3.862.0': - resolution: {integrity: sha512-JnF3vH6GxvPuMGSI5QsmVlmWc0ebElEiJvUGByTMSr/BfzywZdJBKzPVqViwNqAW5cBWiZ/rpL+ekZ24Nb0Vow==} + '@aws-sdk/credential-provider-http@3.863.0': + resolution: {integrity: sha512-AsMgQgYG5YwBFHAuB5y/ngwT9K2axBqJm1ZM+wBMTqPvyQ7cjnfsliCAGEY2QPIxE2prX85Bc50s1OPQVPROHg==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-ini@3.862.0': - resolution: {integrity: sha512-LkpZ2S9DQCTHTPu1p0Qg5bM5DN/b/cEflW269RoeuYpiznxdV8r/mqYuhh/VPXQKkBZdiILe4/OODtg+vk4S0A==} + '@aws-sdk/credential-provider-ini@3.863.0': + resolution: {integrity: sha512-RyyUZ7onXQdcjTnnmX3LvO3/tKsmYR9PJrLCnQQUVYlUzwref4E0ytBgk/mycxx6KHCJNVUzY4QV7s9VaUxcZA==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-node@3.862.0': - resolution: {integrity: sha512-4+X/LdEGPCBMlhn6MCcNJ5yJ8k+yDXeSO1l9X49NNQiG60SH/yObB3VvotcHWC+A3EEZx4dOw/ylcPt86e7Irg==} + '@aws-sdk/credential-provider-node@3.863.0': + resolution: {integrity: sha512-ApRpvgB+DN4BHVmiLvXIdpFN21wBdL5p81G5cXmipJHStThAkk2N9SSG0XxhMaCpzdRWt+4JPRwR5pHiPvnxug==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-process@3.862.0': - resolution: {integrity: sha512-bR/eRCjRsilAuaUpNzTWWE4sUxJC4k571+4LLxE6Xo+0oYHfH+Ih00+sQRX06s4SqZZROdppissm3OOr5d26qA==} + '@aws-sdk/credential-provider-process@3.863.0': + resolution: {integrity: sha512-UN8AfjFvLGIHg2lMr4SNiOhCsDUv6uaD/XbAiRpt/u0z/xMsICxwkOawnKtHj24xGRAh+GgefMirl6QiTkbJ4Q==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-sso@3.862.0': - resolution: {integrity: sha512-1E1rTKWJAbzN/uiIXFPCVAS2PrZgy87O6BEO69404bI7o/iYHOfohfn66bdSqBnZ7Tn/hFJdCk6i23U3pibf5w==} + '@aws-sdk/credential-provider-sso@3.863.0': + resolution: {integrity: sha512-oV4F1zY0o/txR9ruTCH+UlRf7LAKBiwkthsHplNJT0kVq98RtBIMrzk9DgibvjfBsJH1572wozDIc4yOpcB4YA==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-web-identity@3.862.0': - resolution: {integrity: sha512-Skv07eOS4usDf/Bna3FWKIo0/35qhxb22Z/OxrbNtx2Hxa/upp42S+Y6fA9qzgLqXMNYDZngKYwwMPtzrbkMAg==} + '@aws-sdk/credential-provider-web-identity@3.863.0': + resolution: {integrity: sha512-INN5BNFalw68BxBFT+9sj2Yxia1XvS0+ZG0dkfFAmo8iXb2mw0o52PgqOiKlQfxnjbyOH7LgTB2hfbuuEwpKjw==} engines: {node: '>=18.0.0'} '@aws-sdk/middleware-bucket-endpoint@3.862.0': @@ -510,8 +523,8 @@ packages: resolution: {integrity: sha512-oG3AaVUJ+26p0ESU4INFn6MmqqiBFZGrebST66Or+YBhteed2rbbFl7mCfjtPWUFgquQlvT1UP19P3LjQKeKpw==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-flexible-checksums@3.862.0': - resolution: {integrity: sha512-3PuTNJs43GmtNIfj4R/aNPGX6lfIq0gjfekVPUO/MnP/eV+RVgkCvEqWYyN6RZyOzrzsJydXbmydwLHAwMzxiw==} + '@aws-sdk/middleware-flexible-checksums@3.863.0': + resolution: {integrity: sha512-nZW9Rf4floAuxmPeik1FJ7/LwEnmWjdgoa0ls/x/KpAVM+LCbEBOV1Tcw2+jRpx3UQH4wAnJz18OFsXC+X/FAw==} engines: {node: '>=18.0.0'} '@aws-sdk/middleware-host-header@3.862.0': @@ -530,32 +543,32 @@ packages: resolution: {integrity: sha512-KVoo3IOzEkTq97YKM4uxZcYFSNnMkhW/qj22csofLegZi5fk90ztUnnaeKfaEJHfHp/tm1Y3uSoOXH45s++kKQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-sdk-s3@3.862.0': - resolution: {integrity: sha512-rDRHxxZuY9E7py/OVYN1VQRAw0efEThvK5sZ3HfNNpL6Zk4HeOGtc6NtULSfeCeyHCVlJsdOVkIxJge2Ax5vSA==} + '@aws-sdk/middleware-sdk-s3@3.863.0': + resolution: {integrity: sha512-3Ppx5J31DUuaASyzAMYzSUf8y8emCLt1iaU+6yuSV/PwiCzJL5Sspos5xF2F+JErw8p8lNN+7rvHVSNqtgi2Fg==} engines: {node: '>=18.0.0'} '@aws-sdk/middleware-ssec@3.862.0': resolution: {integrity: sha512-72VtP7DZC8lYTE2L3Efx2BrD98oe9WTK8X6hmd3WTLkbIjvgWQWIdjgaFXBs8WevsXkewIctfyA3KEezvL5ggw==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-user-agent@3.862.0': - resolution: {integrity: sha512-7OOaGbAw7Kg1zoKO9wV8cA5NnJC+RYsocjmP3FZ0FiKa7gbmeQ6Cfheunzd1Re9fgelgL3OIRjqO5mSmOIhyhA==} + '@aws-sdk/middleware-user-agent@3.863.0': + resolution: {integrity: sha512-AqXzUUpHM51E/cmq/h3yja+GFff7zxQFj6Fq1bVkkc4vzXBCGpyTmaMcUv4rrR/OmmWfidyzbxdy7PuhMNAspg==} engines: {node: '>=18.0.0'} - '@aws-sdk/nested-clients@3.862.0': - resolution: {integrity: sha512-fPrfXa+m9S0DA5l8+p4A9NFQ22lEHm/ezaUWWWs6F3/U49lR6yKhNAGji3LlIG7b7ZdTJ3smAcaxNHclJsoQIg==} + '@aws-sdk/nested-clients@3.863.0': + resolution: {integrity: sha512-TgVr6d1MmJz7H6RehaFevZlJ+d1KSmyftp8oi2V5FCQ4OR22ITsTxmm5cIODYk8VInaie2ZABlPCN5fs+glJuA==} engines: {node: '>=18.0.0'} '@aws-sdk/region-config-resolver@3.862.0': resolution: {integrity: sha512-VisR+/HuVFICrBPY+q9novEiE4b3mvDofWqyvmxHcWM7HumTz9ZQSuEtnlB/92GVM3KDUrR9EmBHNRrfXYZkcQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/signature-v4-multi-region@3.862.0': - resolution: {integrity: sha512-ZAjrbXnu3yTxXMPiEVxDP/I8zfssrLQGgUi0NgJP6Cz/mOS/S/3hfOZrMown1jLhkTrzLpjNE8Q2n18VtRbScQ==} + '@aws-sdk/signature-v4-multi-region@3.863.0': + resolution: {integrity: sha512-YEi1hER4OtVpeVBO9Ts8nYekF8Q9pcr4kzPxrzXHv83i2/jraPgacHlWvNSjdg8kvY+GsevBsirZXZmThkmKBA==} engines: {node: '>=18.0.0'} - '@aws-sdk/token-providers@3.862.0': - resolution: {integrity: sha512-p3u7aom3WQ7ArFByNbccRIkCssk5BB4IUX9oFQa2P0MOFCbkKFBLG7WMegRXhq5grOHmI4SRftEDDy3CcoTqSQ==} + '@aws-sdk/token-providers@3.863.0': + resolution: {integrity: sha512-rGZ8QsnLWa725etzdPW2rH6+LN9eCcGsTIcxcCyh59cSgZLxT913q84WaUj6fOA7ElCOEU+WrV4Jiz4qwZI2DA==} engines: {node: '>=18.0.0'} '@aws-sdk/types@3.862.0': @@ -577,8 +590,8 @@ packages: '@aws-sdk/util-user-agent-browser@3.862.0': resolution: {integrity: sha512-BmPTlm0r9/10MMr5ND9E92r8KMZbq5ltYXYpVcUbAsnB1RJ8ASJuRoLne5F7mB3YMx0FJoOTuSq7LdQM3LgW3Q==} - '@aws-sdk/util-user-agent-node@3.862.0': - resolution: {integrity: sha512-KtJdSoa1Vmwquy+zwiqRQjtsuKaHlVcZm8tsTchHbc6809/VeaC+ZZOqlil9IWOOyWNGIX8GTRwP9TEb8cT5Gw==} + '@aws-sdk/util-user-agent-node@3.863.0': + resolution: {integrity: sha512-qoYXCe07xs0z+MjcDGuNBbP8P47i6h13BiHsXxiMKKiCihB3w2slvRbJYwUwc2fzZWSk0isKbdDmsdNZBKyBHg==} engines: {node: '>=18.0.0'} peerDependencies: aws-crt: '>=1.0.0' @@ -598,17 +611,17 @@ packages: resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} - '@babel/parser@7.27.2': - resolution: {integrity: sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==} + '@babel/parser@7.28.0': + resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/runtime@7.27.1': - resolution: {integrity: sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==} + '@babel/runtime@7.28.2': + resolution: {integrity: sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==} engines: {node: '>=6.9.0'} - '@babel/types@7.27.1': - resolution: {integrity: sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==} + '@babel/types@7.28.2': + resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@1.0.2': @@ -730,176 +743,182 @@ packages: resolution: {integrity: sha512-WyOx8cJQ+FQus4Mm4uPIZA64gbk3Wxh0so5Lcii0aJifqwoVOlfFtorjLE0Hen4OYyHZMXDWqMmaQemBhgxFRQ==} engines: {node: '>=14'} - '@emnapi/core@1.4.3': - resolution: {integrity: sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==} + '@emnapi/core@1.4.5': + resolution: {integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==} - '@emnapi/runtime@1.4.3': - resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} + '@emnapi/runtime@1.4.5': + resolution: {integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==} - '@emnapi/wasi-threads@1.0.2': - resolution: {integrity: sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==} + '@emnapi/wasi-threads@1.0.4': + resolution: {integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==} - '@esbuild/aix-ppc64@0.25.4': - resolution: {integrity: sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==} + '@esbuild/aix-ppc64@0.25.8': + resolution: {integrity: sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.25.4': - resolution: {integrity: sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==} + '@esbuild/android-arm64@0.25.8': + resolution: {integrity: sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.25.4': - resolution: {integrity: sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==} + '@esbuild/android-arm@0.25.8': + resolution: {integrity: sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.25.4': - resolution: {integrity: sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==} + '@esbuild/android-x64@0.25.8': + resolution: {integrity: sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.25.4': - resolution: {integrity: sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==} + '@esbuild/darwin-arm64@0.25.8': + resolution: {integrity: sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.25.4': - resolution: {integrity: sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==} + '@esbuild/darwin-x64@0.25.8': + resolution: {integrity: sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.25.4': - resolution: {integrity: sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==} + '@esbuild/freebsd-arm64@0.25.8': + resolution: {integrity: sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.4': - resolution: {integrity: sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==} + '@esbuild/freebsd-x64@0.25.8': + resolution: {integrity: sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.25.4': - resolution: {integrity: sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==} + '@esbuild/linux-arm64@0.25.8': + resolution: {integrity: sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.25.4': - resolution: {integrity: sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==} + '@esbuild/linux-arm@0.25.8': + resolution: {integrity: sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.25.4': - resolution: {integrity: sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==} + '@esbuild/linux-ia32@0.25.8': + resolution: {integrity: sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.25.4': - resolution: {integrity: sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==} + '@esbuild/linux-loong64@0.25.8': + resolution: {integrity: sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.25.4': - resolution: {integrity: sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==} + '@esbuild/linux-mips64el@0.25.8': + resolution: {integrity: sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.25.4': - resolution: {integrity: sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==} + '@esbuild/linux-ppc64@0.25.8': + resolution: {integrity: sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.25.4': - resolution: {integrity: sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==} + '@esbuild/linux-riscv64@0.25.8': + resolution: {integrity: sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.25.4': - resolution: {integrity: sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==} + '@esbuild/linux-s390x@0.25.8': + resolution: {integrity: sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.25.4': - resolution: {integrity: sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==} + '@esbuild/linux-x64@0.25.8': + resolution: {integrity: sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.4': - resolution: {integrity: sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==} + '@esbuild/netbsd-arm64@0.25.8': + resolution: {integrity: sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.4': - resolution: {integrity: sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==} + '@esbuild/netbsd-x64@0.25.8': + resolution: {integrity: sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.4': - resolution: {integrity: sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==} + '@esbuild/openbsd-arm64@0.25.8': + resolution: {integrity: sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.4': - resolution: {integrity: sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==} + '@esbuild/openbsd-x64@0.25.8': + resolution: {integrity: sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.25.4': - resolution: {integrity: sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==} + '@esbuild/openharmony-arm64@0.25.8': + resolution: {integrity: sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.25.8': + resolution: {integrity: sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.25.4': - resolution: {integrity: sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==} + '@esbuild/win32-arm64@0.25.8': + resolution: {integrity: sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.25.4': - resolution: {integrity: sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==} + '@esbuild/win32-ia32@0.25.8': + resolution: {integrity: sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.25.4': - resolution: {integrity: sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==} + '@esbuild/win32-x64@0.25.8': + resolution: {integrity: sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==} engines: {node: '>=18'} cpu: [x64] os: [win32] - '@expressive-code/core@0.41.2': - resolution: {integrity: sha512-AJW5Tp9czbLqKMzwudL9Rv4js9afXBxkSGLmCNPq1iRgAYcx9NkTPJiSNCesjKRWoVC328AdSu6fqrD22zDgDg==} + '@expressive-code/core@0.41.3': + resolution: {integrity: sha512-9qzohqU7O0+JwMEEgQhnBPOw5DtsQRBXhW++5fvEywsuX44vCGGof1SL5OvPElvNgaWZ4pFZAFSlkNOkGyLwSQ==} - '@expressive-code/plugin-frames@0.41.2': - resolution: {integrity: sha512-pfy0hkJI4nbaONjmksFDcuHmIuyPTFmi1JpABe4q2ajskiJtfBf+WDAL2pg595R9JNoPrrH5+aT9lbkx2noicw==} + '@expressive-code/plugin-frames@0.41.3': + resolution: {integrity: sha512-rFQtmf/3N2CK3Cq/uERweMTYZnBu+CwxBdHuOftEmfA9iBE7gTVvwpbh82P9ZxkPLvc40UMhYt7uNuAZexycRQ==} - '@expressive-code/plugin-shiki@0.41.2': - resolution: {integrity: sha512-xD4zwqAkDccXqye+235BH5bN038jYiSMLfUrCOmMlzxPDGWdxJDk5z4uUB/aLfivEF2tXyO2zyaarL3Oqht0fQ==} + '@expressive-code/plugin-shiki@0.41.3': + resolution: {integrity: sha512-RlTARoopzhFJIOVHLGvuXJ8DCEme/hjV+ZnRJBIxzxsKVpGPW4Oshqg9xGhWTYdHstTsxO663s0cdBLzZj9TQA==} - '@expressive-code/plugin-text-markers@0.41.2': - resolution: {integrity: sha512-JFWBz2qYxxJOJkkWf96LpeolbnOqJY95TvwYc0hXIHf9oSWV0h0SY268w/5N3EtQaD9KktzDE+VIVwb9jdb3nw==} + '@expressive-code/plugin-text-markers@0.41.3': + resolution: {integrity: sha512-SN8tkIzDpA0HLAscEYD2IVrfLiid6qEdE9QLlGVSxO1KEw7qYvjpbNBQjUjMr5/jvTJ7ys6zysU2vLPHE0sb2g==} '@gerrit0/mini-shiki@3.9.2': resolution: {integrity: sha512-Tvsj+AOO4Z8xLRJK900WkyfxHsZQu+Zm1//oT1w443PO6RiYMoq/4NGOhaNuZoUMYsjKIAPVQ6eOFMddj6yphQ==} @@ -1278,23 +1297,18 @@ packages: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} - '@jridgewell/gen-mapping@0.3.8': - resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} - engines: {node: '>=6.0.0'} + '@jridgewell/gen-mapping@0.3.12': + resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} '@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/sourcemap-codec@1.5.4': + resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==} - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.29': + resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==} '@manypkg/find-root@1.1.0': resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} @@ -1305,8 +1319,8 @@ packages: '@mdx-js/mdx@3.1.0': resolution: {integrity: sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==} - '@napi-rs/wasm-runtime@0.2.10': - resolution: {integrity: sha512-bCsCyeZEwVErsGmyPNSzwfwFn4OdxBj0mmv6hOFucB/k81Ojdu68RbZdxYsRQUPc9l6SU5F/cG+bXgWs3oUgsQ==} + '@napi-rs/wasm-runtime@0.2.12': + resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} '@node-rs/crc32-android-arm-eabi@1.10.6': resolution: {integrity: sha512-vZAMuJXm3TpWPOkkhxdrofWDv+Q+I2oO7ucLRbXyAPmXFNDhHtBxbO1rk9Qzz+M3eep8ieS4/+jCL1Q0zacNMQ==} @@ -1473,8 +1487,8 @@ packages: '@polka/url@1.0.0-next.29': resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} - '@pollyjs/adapter-fetch@6.0.6': - resolution: {integrity: sha512-euWzM5TnA2jptdJgjIkEd/Q2hNFB652XivPKerWpLMFB13IKlrERX9wn2Dw3pquDAP0LvXH1qVBZt5DK0Xhzyg==} + '@pollyjs/adapter-fetch@6.0.7': + resolution: {integrity: sha512-kv44DROx/2qzlcgS71EccGr2/I5nK40Xt92paGNI+1/Kmz290bw/ykt8cvXDg4O4xCc9Fh/jXeAkS7qwGpCx2g==} '@pollyjs/adapter@6.0.6': resolution: {integrity: sha512-szhys0NiFQqCJDMC0kpDyjhLqSI7aWc6m6iATCRKgcMcN/7QN85pb3GmRzvnNV8+/Bi2AUSCwxZljcsKhbYVWQ==} @@ -1494,8 +1508,8 @@ packages: '@pollyjs/utils@6.0.6': resolution: {integrity: sha512-nhVJoI3nRgRimE0V2DVSvsXXNROUH6iyJbroDu4IdsOIOFC1Ds0w+ANMB4NMwFaqE+AisWOmXFzwAGdAfyiQVg==} - '@rollup/pluginutils@5.1.4': - resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} + '@rollup/pluginutils@5.2.0': + resolution: {integrity: sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 @@ -1503,133 +1517,121 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.40.2': - resolution: {integrity: sha512-JkdNEq+DFxZfUwxvB58tHMHBHVgX23ew41g1OQinthJ+ryhdRk67O31S7sYw8u2lTjHUPFxwar07BBt1KHp/hg==} + '@rollup/rollup-android-arm-eabi@4.46.2': + resolution: {integrity: sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.40.2': - resolution: {integrity: sha512-13unNoZ8NzUmnndhPTkWPWbX3vtHodYmy+I9kuLxN+F+l+x3LdVF7UCu8TWVMt1POHLh6oDHhnOA04n8oJZhBw==} + '@rollup/rollup-android-arm64@4.46.2': + resolution: {integrity: sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.40.2': - resolution: {integrity: sha512-Gzf1Hn2Aoe8VZzevHostPX23U7N5+4D36WJNHK88NZHCJr7aVMG4fadqkIf72eqVPGjGc0HJHNuUaUcxiR+N/w==} + '@rollup/rollup-darwin-arm64@4.46.2': + resolution: {integrity: sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.40.2': - resolution: {integrity: sha512-47N4hxa01a4x6XnJoskMKTS8XZ0CZMd8YTbINbi+w03A2w4j1RTlnGHOz/P0+Bg1LaVL6ufZyNprSg+fW5nYQQ==} + '@rollup/rollup-darwin-x64@4.46.2': + resolution: {integrity: sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.40.2': - resolution: {integrity: sha512-8t6aL4MD+rXSHHZUR1z19+9OFJ2rl1wGKvckN47XFRVO+QL/dUSpKA2SLRo4vMg7ELA8pzGpC+W9OEd1Z/ZqoQ==} + '@rollup/rollup-freebsd-arm64@4.46.2': + resolution: {integrity: sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.40.2': - resolution: {integrity: sha512-C+AyHBzfpsOEYRFjztcYUFsH4S7UsE9cDtHCtma5BK8+ydOZYgMmWg1d/4KBytQspJCld8ZIujFMAdKG1xyr4Q==} + '@rollup/rollup-freebsd-x64@4.46.2': + resolution: {integrity: sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.40.2': - resolution: {integrity: sha512-de6TFZYIvJwRNjmW3+gaXiZ2DaWL5D5yGmSYzkdzjBDS3W+B9JQ48oZEsmMvemqjtAFzE16DIBLqd6IQQRuG9Q==} + '@rollup/rollup-linux-arm-gnueabihf@4.46.2': + resolution: {integrity: sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.40.2': - resolution: {integrity: sha512-urjaEZubdIkacKc930hUDOfQPysezKla/O9qV+O89enqsqUmQm8Xj8O/vh0gHg4LYfv7Y7UsE3QjzLQzDYN1qg==} + '@rollup/rollup-linux-arm-musleabihf@4.46.2': + resolution: {integrity: sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.40.2': - resolution: {integrity: sha512-KlE8IC0HFOC33taNt1zR8qNlBYHj31qGT1UqWqtvR/+NuCVhfufAq9fxO8BMFC22Wu0rxOwGVWxtCMvZVLmhQg==} + '@rollup/rollup-linux-arm64-gnu@4.46.2': + resolution: {integrity: sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.40.2': - resolution: {integrity: sha512-j8CgxvfM0kbnhu4XgjnCWJQyyBOeBI1Zq91Z850aUddUmPeQvuAy6OiMdPS46gNFgy8gN1xkYyLgwLYZG3rBOg==} + '@rollup/rollup-linux-arm64-musl@4.46.2': + resolution: {integrity: sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.40.2': - resolution: {integrity: sha512-Ybc/1qUampKuRF4tQXc7G7QY9YRyeVSykfK36Y5Qc5dmrIxwFhrOzqaVTNoZygqZ1ZieSWTibfFhQ5qK8jpWxw==} + '@rollup/rollup-linux-loongarch64-gnu@4.46.2': + resolution: {integrity: sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.40.2': - resolution: {integrity: sha512-3FCIrnrt03CCsZqSYAOW/k9n625pjpuMzVfeI+ZBUSDT3MVIFDSPfSUgIl9FqUftxcUXInvFah79hE1c9abD+Q==} + '@rollup/rollup-linux-ppc64-gnu@4.46.2': + resolution: {integrity: sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.40.2': - resolution: {integrity: sha512-QNU7BFHEvHMp2ESSY3SozIkBPaPBDTsfVNGx3Xhv+TdvWXFGOSH2NJvhD1zKAT6AyuuErJgbdvaJhYVhVqrWTg==} + '@rollup/rollup-linux-riscv64-gnu@4.46.2': + resolution: {integrity: sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.40.2': - resolution: {integrity: sha512-5W6vNYkhgfh7URiXTO1E9a0cy4fSgfE4+Hl5agb/U1sa0kjOLMLC1wObxwKxecE17j0URxuTrYZZME4/VH57Hg==} + '@rollup/rollup-linux-riscv64-musl@4.46.2': + resolution: {integrity: sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.40.2': - resolution: {integrity: sha512-B7LKIz+0+p348JoAL4X/YxGx9zOx3sR+o6Hj15Y3aaApNfAshK8+mWZEf759DXfRLeL2vg5LYJBB7DdcleYCoQ==} + '@rollup/rollup-linux-s390x-gnu@4.46.2': + resolution: {integrity: sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.40.2': - resolution: {integrity: sha512-lG7Xa+BmBNwpjmVUbmyKxdQJ3Q6whHjMjzQplOs5Z+Gj7mxPtWakGHqzMqNER68G67kmCX9qX57aRsW5V0VOng==} + '@rollup/rollup-linux-x64-gnu@4.46.2': + resolution: {integrity: sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.40.2': - resolution: {integrity: sha512-tD46wKHd+KJvsmije4bUskNuvWKFcTOIM9tZ/RrmIvcXnbi0YK/cKS9FzFtAm7Oxi2EhV5N2OpfFB348vSQRXA==} + '@rollup/rollup-linux-x64-musl@4.46.2': + resolution: {integrity: sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.40.2': - resolution: {integrity: sha512-Bjv/HG8RRWLNkXwQQemdsWw4Mg+IJ29LK+bJPW2SCzPKOUaMmPEppQlu/Fqk1d7+DX3V7JbFdbkh/NMmurT6Pg==} + '@rollup/rollup-win32-arm64-msvc@4.46.2': + resolution: {integrity: sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.40.2': - resolution: {integrity: sha512-dt1llVSGEsGKvzeIO76HToiYPNPYPkmjhMHhP00T9S4rDern8P2ZWvWAQUEJ+R1UdMWJ/42i/QqJ2WV765GZcA==} + '@rollup/rollup-win32-ia32-msvc@4.46.2': + resolution: {integrity: sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.40.2': - resolution: {integrity: sha512-bwspbWB04XJpeElvsp+DCylKfF4trJDa2Y9Go8O6A7YLX2LIKGcNK/CYImJN6ZP4DcuOHB4Utl3iCbnR62DudA==} + '@rollup/rollup-win32-x64-msvc@4.46.2': + resolution: {integrity: sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==} cpu: [x64] os: [win32] - '@shikijs/core@3.4.0': - resolution: {integrity: sha512-0YOzTSRDn/IAfQWtK791gs1u8v87HNGToU6IwcA3K7nPoVOrS2Dh6X6A6YfXgPTSkTwR5y6myk0MnI0htjnwrA==} - - '@shikijs/engine-javascript@3.4.0': - resolution: {integrity: sha512-1ywDoe+z/TPQKj9Jw0eU61B003J9DqUFRfH+DVSzdwPUFhR7yOmfyLzUrFz0yw8JxFg/NgzXoQyyykXgO21n5Q==} + '@shikijs/core@3.9.2': + resolution: {integrity: sha512-3q/mzmw09B2B6PgFNeiaN8pkNOixWS726IHmJEpjDAcneDPMQmUg2cweT9cWXY4XcyQS3i6mOOUgQz9RRUP6HA==} - '@shikijs/engine-oniguruma@3.4.0': - resolution: {integrity: sha512-zwcWlZ4OQuJ/+1t32ClTtyTU1AiDkK1lhtviRWoq/hFqPjCNyLj22bIg9rB7BfoZKOEOfrsGz7No33BPCf+WlQ==} + '@shikijs/engine-javascript@3.9.2': + resolution: {integrity: sha512-kUTRVKPsB/28H5Ko6qEsyudBiWEDLst+Sfi+hwr59E0GLHV0h8RfgbQU7fdN5Lt9A8R1ulRiZyTvAizkROjwDA==} '@shikijs/engine-oniguruma@3.9.2': resolution: {integrity: sha512-Vn/w5oyQ6TUgTVDIC/BrpXwIlfK6V6kGWDVVz2eRkF2v13YoENUvaNwxMsQU/t6oCuZKzqp9vqtEtEzKl9VegA==} - '@shikijs/langs@3.4.0': - resolution: {integrity: sha512-bQkR+8LllaM2duU9BBRQU0GqFTx7TuF5kKlw/7uiGKoK140n1xlLAwCgXwSxAjJ7Htk9tXTFwnnsJTCU5nDPXQ==} - '@shikijs/langs@3.9.2': resolution: {integrity: sha512-X1Q6wRRQXY7HqAuX3I8WjMscjeGjqXCg/Sve7J2GWFORXkSrXud23UECqTBIdCSNKJioFtmUGJQNKtlMMZMn0w==} - '@shikijs/themes@3.4.0': - resolution: {integrity: sha512-YPP4PKNFcFGLxItpbU0ZW1Osyuk8AyZ24YEFaq04CFsuCbcqydMvMUTi40V2dkc0qs1U2uZFrnU6s5zI6IH+uA==} - '@shikijs/themes@3.9.2': resolution: {integrity: sha512-6z5lBPBMRfLyyEsgf6uJDHPa6NAGVzFJqH4EAZ+03+7sedYir2yJBRu2uPZOKmj43GyhVHWHvyduLDAwJQfDjA==} - '@shikijs/types@3.4.0': - resolution: {integrity: sha512-EUT/0lGiE//7j5N/yTMNMT3eCWNcHJLrRKxT0NDXWIfdfSmFJKfPX7nMmRBrQnWboAzIsUziCThrYMMhjbMS1A==} - '@shikijs/types@3.9.2': resolution: {integrity: sha512-/M5L0Uc2ljyn2jKvj4Yiah7ow/W+DJSglVafvWAJ/b8AZDeeRAdMu3c2riDzB7N42VD+jSnWxeP9AKtd4TfYVw==} @@ -1867,8 +1869,8 @@ packages: resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} engines: {node: '>=14.16'} - '@tybys/wasm-util@0.9.0': - resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} + '@tybys/wasm-util@0.10.0': + resolution: {integrity: sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==} '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} @@ -1876,8 +1878,8 @@ packages: '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} - '@types/estree@1.0.7': - resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} '@types/fontkit@2.0.8': resolution: {integrity: sha512-wN+8bYxIpJf+5oZdrdtaX04qUuWHcKxcDEgRS9Qm9ZClSHjzEn13SxUC+5eRM+4yXIeTYk8mTzLAWGF64847ew==} @@ -1912,8 +1914,8 @@ packages: '@types/node@17.0.45': resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - '@types/node@22.15.31': - resolution: {integrity: sha512-jnVe5ULKl6tijxUhvQeNbQG/84fHfg+yMak02cT8QVhBx/F05rAVxCGBYYTh2EKz22D6JF5ktXuNwdx7b9iEGw==} + '@types/node@22.17.0': + resolution: {integrity: sha512-bbAKTCqX5aNVryi7qXVMi+OkB3w/OyblodicMbvE38blyAz7GxXf6XYhklokijuPwwVg9sDLKRxt0ZHXQwZVfQ==} '@types/node@24.2.0': resolution: {integrity: sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw==} @@ -1971,6 +1973,9 @@ packages: '@vitest/pretty-format@3.1.4': resolution: {integrity: sha512-cqv9H9GvAEoTaoq+cYqUTCGscUjKqlJZC7PRwY5FMySVj5J+xOm1KQcCiYHJOEzOKRUhLH4R2pTwvFlWCEScsg==} + '@vitest/pretty-format@3.2.4': + resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} + '@vitest/runner@3.1.4': resolution: {integrity: sha512-djTeF1/vt985I/wpKVFBMWUlk/I7mb5hmD5oP8K9ACRmVXgKTae3TUOtXAEBfslNKPzUQvnKhNd34nnRSYgLNQ==} @@ -1997,8 +2002,8 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn@8.14.1: - resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} engines: {node: '>=0.4.0'} hasBin: true @@ -2075,8 +2080,8 @@ packages: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true - astro-expressive-code@0.41.2: - resolution: {integrity: sha512-HN0jWTnhr7mIV/2e6uu4PPRNNo/k4UEgTLZqbp3MrHU+caCARveG2yZxaZVBmxyiVdYqW5Pd3u3n2zjnshixbw==} + astro-expressive-code@0.41.3: + resolution: {integrity: sha512-u+zHMqo/QNLE2eqYRCrK3+XMlKakv33Bzuz+56V1gs8H0y6TZ0hIi3VNbIxeTn51NLn+mJfUV/A0kMNfE4rANw==} peerDependencies: astro: ^4.0.0-beta || ^5.0.0-beta || ^3.3.0 @@ -2145,8 +2150,8 @@ packages: resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} engines: {node: '>=18'} - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} @@ -2196,12 +2201,12 @@ packages: ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - chai@5.2.0: - resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==} - engines: {node: '>=12'} + chai@5.2.1: + resolution: {integrity: sha512-5nFxhUrX0PqtyogoYOA8IPswy5sZFTOsBFl/9bNsmDLgsxYTzSZQJDPppDnZPTQbzSEm0hqGjWPzRemQCYbD6A==} + engines: {node: '>=18'} - chalk@5.4.1: - resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} + chalk@5.5.0: + resolution: {integrity: sha512-1tm8DTaJhPBG3bIkVeZt1iZM9GfSX2lzOeDVZH9R9ffRHpmHvxZ/QhgQH/aDTkswQVt+YHdXAdS/In/30OjCbg==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} change-case@4.1.2: @@ -2234,8 +2239,8 @@ packages: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} - ci-info@4.2.0: - resolution: {integrity: sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==} + ci-info@4.3.0: + resolution: {integrity: sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==} engines: {node: '>=8'} clean-stack@3.0.1: @@ -2347,8 +2352,8 @@ packages: resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} engines: {node: '>=12'} - css-selector-parser@3.1.2: - resolution: {integrity: sha512-WfUcL99xWDs7b3eZPoRszWVfbNo8ErCF15PTvVROjkShGlAfjIkG6hlfj/sl6/rfo5Q9x9ryJ3VqVnAZDA+gcw==} + css-selector-parser@3.1.3: + resolution: {integrity: sha512-gJMigczVZqYAk0hPVzx/M4Hm1D9QOtqkdQk9005TNzDIUGzo5cnHEDiKUT7jGPximL/oYb+LIitcHFQ4aKupxg==} css-tree@3.1.0: resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} @@ -2370,15 +2375,6 @@ packages: supports-color: optional: true - debug@4.4.0: - resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.4.1: resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} engines: {node: '>=6.0'} @@ -2388,8 +2384,8 @@ packages: supports-color: optional: true - decode-named-character-reference@1.1.0: - resolution: {integrity: sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==} + decode-named-character-reference@1.2.0: + resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} decompress-response@6.0.0: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} @@ -2445,9 +2441,6 @@ packages: resolution: {integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - detect-node@2.1.0: - resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} - deterministic-object-hash@2.0.2: resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} engines: {node: '>=18'} @@ -2523,8 +2516,8 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - entities@6.0.0: - resolution: {integrity: sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==} + entities@6.0.1: + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} engines: {node: '>=0.12'} environment@1.1.0: @@ -2558,8 +2551,8 @@ packages: esast-util-from-js@2.0.1: resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} - esbuild@0.25.4: - resolution: {integrity: sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==} + esbuild@0.25.8: + resolution: {integrity: sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==} engines: {node: '>=18'} hasBin: true @@ -2622,16 +2615,16 @@ packages: resolution: {integrity: sha512-Fqs7ChZm72y40wKjOFXBKg7nJZvQJmewP5/7LtePDdnah/+FH9Hp5sgMujSCMPXlxOAW2//1jrW9pnsY7o20vQ==} engines: {node: '>=18'} - expect-type@1.2.1: - resolution: {integrity: sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==} + expect-type@1.2.2: + resolution: {integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==} engines: {node: '>=12.0.0'} express@4.21.2: resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} engines: {node: '>= 0.10.0'} - expressive-code@0.41.2: - resolution: {integrity: sha512-aLZiZaqorRtNExtGpUjK9zFH9aTpWeoTXMyLo4b4IcuXfPqtLPPxhRm/QlPb8QqIcMMXnSiGRHSFpQfX0m7HJw==} + expressive-code@0.41.3: + resolution: {integrity: sha512-YLnD62jfgBZYrXIPQcJ0a51Afv9h8VlWqEGK9uU2T5nL/5rb8SnA86+7+mgCZe5D34Tff5RNEA5hjNVJYHzrFg==} extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} @@ -2670,8 +2663,8 @@ packages: fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} - fdir@6.4.4: - resolution: {integrity: sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==} + fdir@6.4.6: + resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -2808,8 +2801,8 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - h3@1.15.3: - resolution: {integrity: sha512-z6GknHqyX0h9aQaTx22VZDf6QyZn+0Nh+Ym8O/u0SGSkyF5cuTJYKlc8MkzW3Nzf9LE1ivcpmYC3FUGpywhuUQ==} + h3@1.15.4: + resolution: {integrity: sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ==} has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} @@ -3046,8 +3039,8 @@ packages: engines: {node: '>=14.16'} hasBin: true - is-it-type@5.1.2: - resolution: {integrity: sha512-q/gOZQTNYABAxaXWnBKZjTFH4yACvWEFtgVOj+LbgxYIgAJG1xVmUZOsECSrZPIemYUQvaQWVilSFVbh4Eyt8A==} + is-it-type@5.1.3: + resolution: {integrity: sha512-AX2uU0HW+TxagTgQXOJY7+2fbFHemC7YFBwN1XqD8qQMKdtfbOC8OC3fUb4s5NU59a3662Dzwto8tWDdZYRXxg==} engines: {node: '>=12'} is-number@7.0.0: @@ -3188,8 +3181,8 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - loupe@3.1.3: - resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==} + loupe@3.2.0: + resolution: {integrity: sha512-2NCfZcT5VGVNX9mSZIxLRkEAegDGBpuQZBy13desuHeVORmBDyAET4TkJr4SjqQy3A8JDofMN6LpkK8Xcm/dlw==} lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} @@ -3453,8 +3446,8 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - morgan@1.10.0: - resolution: {integrity: sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==} + morgan@1.10.1: + resolution: {integrity: sha512-223dMRJtI/l25dJKWpgij2cMtywuG/WiUKXdvwfbhGKBhy1puASqXwFzmWZ7+K73vUPoR7SS2Qz2cI/g9MKw0A==} engines: {node: '>= 0.8.0'} mri@1.2.0: @@ -3502,8 +3495,8 @@ packages: resolution: {integrity: sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==} engines: {node: '>=12.0.0'} - node-fetch-native@1.6.6: - resolution: {integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==} + node-fetch-native@1.6.7: + resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} @@ -3514,8 +3507,8 @@ packages: encoding: optional: true - node-mock-http@1.0.0: - resolution: {integrity: sha512-0uGYQ1WQL1M5kKvGRXWQ3uZCHtLTO8hln3oBjIusM75WoesZ909uQJs/Hb946i2SS+Gsrhkaa6iAO17jRIv6DQ==} + node-mock-http@1.0.2: + resolution: {integrity: sha512-zWaamgDUdo9SSLw47we78+zYw/bDr5gH8pH7oRRs8V3KmBtu8GLgGIbV2p/gRPd3LWpEOpjQj7X1FOU3VFMJ8g==} nodejs-polars-android-arm64@0.18.0: resolution: {integrity: sha512-ksmL8X2xsMkI9WMlzRw7Mt7csIDfNJVDlyybSDMMAfO1YWfC2aCFUroFc8UnXVK+8bIZXB7W+k1ZzTRhtSxPsQ==} @@ -3620,8 +3613,8 @@ packages: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} - on-headers@1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + on-headers@1.1.0: + resolution: {integrity: sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==} engines: {node: '>= 0.8'} onetime@5.1.2: @@ -3745,8 +3738,8 @@ packages: pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - pathval@2.0.0: - resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + pathval@2.0.1: + resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} engines: {node: '>= 14.16'} picocolors@1.1.1: @@ -3756,8 +3749,8 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} pify@4.0.1: @@ -3774,8 +3767,8 @@ packages: resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} - postcss@8.5.3: - resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} prettier@2.8.8: @@ -3865,8 +3858,10 @@ packages: 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-jsx@1.0.1: + resolution: {integrity: sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 recma-parse@1.0.0: resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==} @@ -3887,8 +3882,8 @@ packages: resolution: {integrity: sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw==} engines: {node: '>=14'} - rehype-expressive-code@0.41.2: - resolution: {integrity: sha512-vHYfWO9WxAw6kHHctddOt+P4266BtyT1mrOIuxJD+1ELuvuJAa5uBIhYt0OVMyOhlvf57hzWOXJkHnMhpaHyxw==} + rehype-expressive-code@0.41.3: + resolution: {integrity: sha512-8d9Py4c/V6I/Od2VIXFAdpiO2kc0SV2qTJsRAaqSIcM9aruW4ASLNe2kOEo1inXAAkIhpFzAHTc358HKbvpNUg==} rehype-format@5.0.1: resolution: {integrity: sha512-zvmVru9uB0josBVpr946OR8ui7nJEdzZobwLOOqHb/OOD88W0Vk2SqLwoVOj0fM6IPCCO6TaV9CvQvJMWwukFQ==} @@ -3975,8 +3970,8 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rollup@4.40.2: - resolution: {integrity: sha512-tfUOg6DTP4rhQ3VjOO6B4wyrJnGOX85requAXvqYTHsOgb2TFJdZ3aWpT8W2kPoypSGP7dZUyzxJ9ee4buM5Fg==} + rollup@4.46.2: + resolution: {integrity: sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -4042,8 +4037,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@3.4.0: - resolution: {integrity: sha512-Ni80XHcqhOEXv5mmDAvf5p6PAJqbUc/RzFeaOqk+zP5DLvTPS3j0ckvA+MI87qoxTQ5RGJDVTbdl/ENLSyyAnQ==} + shiki@3.9.2: + resolution: {integrity: sha512-t6NKl5e/zGTvw/IyftLcumolgOczhuroqwXngDeMqJ3h3EQiTY/7wmfgPlsmloD8oYfqkEDqxiaH37Pjm1zUhQ==} side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} @@ -4106,8 +4101,8 @@ packages: resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==} engines: {node: '>=8.0.0'} - smol-toml@1.3.4: - resolution: {integrity: sha512-UOPtVuYkzYGee0Bd2Szz8d2G3RfMfJ2t3qVdZUAozZyAk+a0Sxa+QKix0YCwjL/A1RR0ar44nCxaoN9FxdJGwA==} + smol-toml@1.4.1: + resolution: {integrity: sha512-CxdwHXyYTONGHThDbq5XdwbFsuY4wlClRGejfE2NtwUtiHYsP1QtNsHb/hnj31jKYSchztJsaA8pSQoVzkfCFg==} engines: {node: '>= 18'} snake-case@3.0.4: @@ -4124,9 +4119,9 @@ 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'} + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} @@ -4210,11 +4205,11 @@ packages: strnum@2.1.1: resolution: {integrity: sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==} - style-to-js@1.1.16: - resolution: {integrity: sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==} + style-to-js@1.1.17: + resolution: {integrity: sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==} - style-to-object@1.0.8: - resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} + style-to-object@1.0.9: + resolution: {integrity: sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==} supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} @@ -4255,16 +4250,12 @@ packages: tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - tinyglobby@0.2.13: - resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==} - engines: {node: '>=12.0.0'} - tinyglobby@0.2.14: resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} engines: {node: '>=12.0.0'} - tinypool@1.0.2: - resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} + tinypool@1.1.1: + resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} engines: {node: ^18.0.0 || >=20.0.0} tinyrainbow@2.0.0: @@ -4303,8 +4294,8 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - tsconfck@3.1.5: - resolution: {integrity: sha512-CLDfGgUp7XPswWnezWwsCRxNmgQjhYq3VXHM0/XIRxhVrKw0M1if9agzryh1QS3nxjCROvV+xWxoJO1YctzzWg==} + tsconfck@3.1.6: + resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==} engines: {node: ^18 || >=20} hasBin: true peerDependencies: @@ -4384,8 +4375,8 @@ packages: unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - unifont@0.5.0: - resolution: {integrity: sha512-4DueXMP5Hy4n607sh+vJ+rajoLu778aU3GzqeTCqsD/EaUcvqZT9wPC8kgK6Vjh22ZskrxyRCR71FwNOaYn6jA==} + unifont@0.5.2: + resolution: {integrity: sha512-LzR4WUqzH9ILFvjLAUU7dK3Lnou/qd5kD+IakBtBK4S15/+x2y9VX+DcWQv6s551R6W+vzwgVS6tFg3XggGBgg==} unique-string@3.0.0: resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} @@ -4433,8 +4424,8 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - unstorage@1.16.0: - resolution: {integrity: sha512-WQ37/H5A7LcRPWfYOrDa1Ys02xAbpPJq6q5GkO88FBXVSQzHd7+BjEwfRqyaSWCv9MbsJy058GWjjPjcJ16GGA==} + unstorage@1.16.1: + resolution: {integrity: sha512-gdpZ3guLDhz+zWIlYP1UwQ259tG5T5vYRzDaHMkQ1bBY1SQPutvZnrRjTFaWUUpseErJIgAZS51h6NOcZVZiqQ==} peerDependencies: '@azure/app-configuration': ^1.8.0 '@azure/cosmos': ^4.2.0 @@ -4444,7 +4435,7 @@ packages: '@azure/storage-blob': ^12.26.0 '@capacitor/preferences': ^6.0.3 || ^7.0.0 '@deno/kv': '>=0.9.0' - '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 + '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0 '@planetscale/database': ^1.19.0 '@upstash/redis': ^1.34.3 '@vercel/blob': '>=0.27.1' @@ -4529,8 +4520,8 @@ packages: vfile-location@5.0.3: resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} - vfile-message@4.0.2: - resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + vfile-message@4.0.3: + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} @@ -4580,10 +4571,10 @@ packages: yaml: optional: true - vitefu@1.0.6: - resolution: {integrity: sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA==} + vitefu@1.1.1: + resolution: {integrity: sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==} peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0 peerDependenciesMeta: vite: optional: true @@ -4701,8 +4692,8 @@ packages: resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==} engines: {node: '>=12.20'} - yocto-spinner@0.2.2: - resolution: {integrity: sha512-21rPcM3e4vCpOXThiFRByX8amU5By1R0wNS8Oex+DP3YgC8xdU0vEJ/K8cbPLiIJVosSSysgcFof6s6MSD5/Vw==} + yocto-spinner@0.2.3: + resolution: {integrity: sha512-sqBChb33loEnkoXte1bLg45bEBsOP9N1kzQh5JZNKj/0rik4zAPTNSAVPj3uQAdc6slYJ0Ksc403G2XgxsJQFQ==} engines: {node: '>=18.19'} yoctocolors-cjs@2.1.2: @@ -4716,8 +4707,8 @@ packages: yoga-layout@3.2.1: resolution: {integrity: sha512-0LPOt3AxKqMdFBZA3HBAt/t/8vIKq7VaQYbuA8WxCgung+p9TVyKRYdpvCb80HcdTN2NkbIKbhNwKUfm3tQywQ==} - zod-to-json-schema@3.24.5: - resolution: {integrity: sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g==} + zod-to-json-schema@3.24.6: + resolution: {integrity: sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==} peerDependencies: zod: ^3.24.1 @@ -4727,8 +4718,8 @@ packages: typescript: ^4.9.4 || ^5.0.2 zod: ^3 - zod@3.24.4: - resolution: {integrity: sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==} + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -4742,13 +4733,15 @@ snapshots: '@ampproject/remapping@2.3.0': dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/trace-mapping': 0.3.29 - '@astrojs/compiler@2.12.0': {} + '@astrojs/compiler@2.12.2': {} '@astrojs/internal-helpers@0.6.1': {} + '@astrojs/internal-helpers@0.7.1': {} + '@astrojs/markdown-remark@6.3.1': dependencies: '@astrojs/internal-helpers': 0.6.1 @@ -4765,8 +4758,8 @@ snapshots: remark-parse: 11.0.0 remark-rehype: 11.1.2 remark-smartypants: 3.0.2 - shiki: 3.4.0 - smol-toml: 1.3.4 + shiki: 3.9.2 + smol-toml: 1.4.1 unified: 11.0.5 unist-util-remove-position: 5.0.0 unist-util-visit: 5.0.0 @@ -4775,12 +4768,38 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/mdx@4.2.6(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1))': + '@astrojs/markdown-remark@6.3.5': dependencies: - '@astrojs/markdown-remark': 6.3.1 - '@mdx-js/mdx': 3.1.0(acorn@8.14.1) - acorn: 8.14.1 - astro: 5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1) + '@astrojs/internal-helpers': 0.7.1 + '@astrojs/prism': 3.3.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 + js-yaml: 4.1.0 + mdast-util-definitions: 6.0.0 + rehype-raw: 7.0.0 + rehype-stringify: 10.0.1 + remark-gfm: 4.0.1 + remark-parse: 11.0.0 + remark-rehype: 11.1.2 + remark-smartypants: 3.0.2 + shiki: 3.9.2 + smol-toml: 1.4.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@4.3.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1))': + dependencies: + '@astrojs/markdown-remark': 6.3.5 + '@mdx-js/mdx': 3.1.0(acorn@8.15.0) + acorn: 8.15.0 + astro: 5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1) es-module-lexer: 1.7.0 estree-util-visit: 2.0.0 hast-util-to-html: 9.0.5 @@ -4788,7 +4807,7 @@ snapshots: rehype-raw: 7.0.0 remark-gfm: 4.0.1 remark-smartypants: 3.0.2 - source-map: 0.7.4 + source-map: 0.7.6 unist-util-visit: 5.0.0 vfile: 6.0.3 transitivePeerDependencies: @@ -4798,23 +4817,27 @@ snapshots: dependencies: prismjs: 1.30.0 - '@astrojs/sitemap@3.4.0': + '@astrojs/prism@3.3.0': + dependencies: + prismjs: 1.30.0 + + '@astrojs/sitemap@3.4.2': dependencies: sitemap: 8.0.0 stream-replace-string: 2.0.0 - zod: 3.24.4 + zod: 3.25.76 - '@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1))': + '@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1))': dependencies: - '@astrojs/markdown-remark': 6.3.1 - '@astrojs/mdx': 4.2.6(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1)) - '@astrojs/sitemap': 3.4.0 + '@astrojs/markdown-remark': 6.3.5 + '@astrojs/mdx': 4.3.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1)) + '@astrojs/sitemap': 3.4.2 '@pagefind/default-ui': 1.3.0 '@types/hast': 3.0.4 '@types/js-yaml': 4.0.9 '@types/mdast': 4.0.4 - astro: 5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1) - astro-expressive-code: 0.41.2(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1)) + astro: 5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1) + astro-expressive-code: 0.41.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1)) bcp-47: 2.1.0 hast-util-from-html: 2.0.3 hast-util-select: 6.0.4 @@ -4839,7 +4862,7 @@ snapshots: '@astrojs/telemetry@3.2.1': dependencies: - ci-info: 4.2.0 + ci-info: 4.3.0 debug: 4.4.1(supports-color@8.1.1) dlv: 1.1.3 dset: 3.1.4 @@ -4896,21 +4919,21 @@ snapshots: '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 - '@aws-sdk/client-cloudfront@3.862.0': + '@aws-sdk/client-cloudfront@3.863.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.862.0 - '@aws-sdk/credential-provider-node': 3.862.0 + '@aws-sdk/core': 3.863.0 + '@aws-sdk/credential-provider-node': 3.863.0 '@aws-sdk/middleware-host-header': 3.862.0 '@aws-sdk/middleware-logger': 3.862.0 '@aws-sdk/middleware-recursion-detection': 3.862.0 - '@aws-sdk/middleware-user-agent': 3.862.0 + '@aws-sdk/middleware-user-agent': 3.863.0 '@aws-sdk/region-config-resolver': 3.862.0 '@aws-sdk/types': 3.862.0 '@aws-sdk/util-endpoints': 3.862.0 '@aws-sdk/util-user-agent-browser': 3.862.0 - '@aws-sdk/util-user-agent-node': 3.862.0 + '@aws-sdk/util-user-agent-node': 3.863.0 '@aws-sdk/xml-builder': 3.862.0 '@smithy/config-resolver': 4.1.5 '@smithy/core': 3.8.0 @@ -4943,29 +4966,29 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-s3@3.862.0': + '@aws-sdk/client-s3@3.863.0': dependencies: '@aws-crypto/sha1-browser': 5.2.0 '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.862.0 - '@aws-sdk/credential-provider-node': 3.862.0 + '@aws-sdk/core': 3.863.0 + '@aws-sdk/credential-provider-node': 3.863.0 '@aws-sdk/middleware-bucket-endpoint': 3.862.0 '@aws-sdk/middleware-expect-continue': 3.862.0 - '@aws-sdk/middleware-flexible-checksums': 3.862.0 + '@aws-sdk/middleware-flexible-checksums': 3.863.0 '@aws-sdk/middleware-host-header': 3.862.0 '@aws-sdk/middleware-location-constraint': 3.862.0 '@aws-sdk/middleware-logger': 3.862.0 '@aws-sdk/middleware-recursion-detection': 3.862.0 - '@aws-sdk/middleware-sdk-s3': 3.862.0 + '@aws-sdk/middleware-sdk-s3': 3.863.0 '@aws-sdk/middleware-ssec': 3.862.0 - '@aws-sdk/middleware-user-agent': 3.862.0 + '@aws-sdk/middleware-user-agent': 3.863.0 '@aws-sdk/region-config-resolver': 3.862.0 - '@aws-sdk/signature-v4-multi-region': 3.862.0 + '@aws-sdk/signature-v4-multi-region': 3.863.0 '@aws-sdk/types': 3.862.0 '@aws-sdk/util-endpoints': 3.862.0 '@aws-sdk/util-user-agent-browser': 3.862.0 - '@aws-sdk/util-user-agent-node': 3.862.0 + '@aws-sdk/util-user-agent-node': 3.863.0 '@aws-sdk/xml-builder': 3.862.0 '@smithy/config-resolver': 4.1.5 '@smithy/core': 3.8.0 @@ -5006,20 +5029,20 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso@3.862.0': + '@aws-sdk/client-sso@3.863.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.862.0 + '@aws-sdk/core': 3.863.0 '@aws-sdk/middleware-host-header': 3.862.0 '@aws-sdk/middleware-logger': 3.862.0 '@aws-sdk/middleware-recursion-detection': 3.862.0 - '@aws-sdk/middleware-user-agent': 3.862.0 + '@aws-sdk/middleware-user-agent': 3.863.0 '@aws-sdk/region-config-resolver': 3.862.0 '@aws-sdk/types': 3.862.0 '@aws-sdk/util-endpoints': 3.862.0 '@aws-sdk/util-user-agent-browser': 3.862.0 - '@aws-sdk/util-user-agent-node': 3.862.0 + '@aws-sdk/util-user-agent-node': 3.863.0 '@smithy/config-resolver': 4.1.5 '@smithy/core': 3.8.0 '@smithy/fetch-http-handler': 5.1.1 @@ -5049,7 +5072,7 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/core@3.862.0': + '@aws-sdk/core@3.863.0': dependencies: '@aws-sdk/types': 3.862.0 '@aws-sdk/xml-builder': 3.862.0 @@ -5067,17 +5090,17 @@ snapshots: fast-xml-parser: 5.2.5 tslib: 2.8.1 - '@aws-sdk/credential-provider-env@3.862.0': + '@aws-sdk/credential-provider-env@3.863.0': dependencies: - '@aws-sdk/core': 3.862.0 + '@aws-sdk/core': 3.863.0 '@aws-sdk/types': 3.862.0 '@smithy/property-provider': 4.0.5 '@smithy/types': 4.3.2 tslib: 2.8.1 - '@aws-sdk/credential-provider-http@3.862.0': + '@aws-sdk/credential-provider-http@3.863.0': dependencies: - '@aws-sdk/core': 3.862.0 + '@aws-sdk/core': 3.863.0 '@aws-sdk/types': 3.862.0 '@smithy/fetch-http-handler': 5.1.1 '@smithy/node-http-handler': 4.1.1 @@ -5088,15 +5111,15 @@ snapshots: '@smithy/util-stream': 4.2.4 tslib: 2.8.1 - '@aws-sdk/credential-provider-ini@3.862.0': + '@aws-sdk/credential-provider-ini@3.863.0': dependencies: - '@aws-sdk/core': 3.862.0 - '@aws-sdk/credential-provider-env': 3.862.0 - '@aws-sdk/credential-provider-http': 3.862.0 - '@aws-sdk/credential-provider-process': 3.862.0 - '@aws-sdk/credential-provider-sso': 3.862.0 - '@aws-sdk/credential-provider-web-identity': 3.862.0 - '@aws-sdk/nested-clients': 3.862.0 + '@aws-sdk/core': 3.863.0 + '@aws-sdk/credential-provider-env': 3.863.0 + '@aws-sdk/credential-provider-http': 3.863.0 + '@aws-sdk/credential-provider-process': 3.863.0 + '@aws-sdk/credential-provider-sso': 3.863.0 + '@aws-sdk/credential-provider-web-identity': 3.863.0 + '@aws-sdk/nested-clients': 3.863.0 '@aws-sdk/types': 3.862.0 '@smithy/credential-provider-imds': 4.0.7 '@smithy/property-provider': 4.0.5 @@ -5106,14 +5129,14 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-node@3.862.0': + '@aws-sdk/credential-provider-node@3.863.0': dependencies: - '@aws-sdk/credential-provider-env': 3.862.0 - '@aws-sdk/credential-provider-http': 3.862.0 - '@aws-sdk/credential-provider-ini': 3.862.0 - '@aws-sdk/credential-provider-process': 3.862.0 - '@aws-sdk/credential-provider-sso': 3.862.0 - '@aws-sdk/credential-provider-web-identity': 3.862.0 + '@aws-sdk/credential-provider-env': 3.863.0 + '@aws-sdk/credential-provider-http': 3.863.0 + '@aws-sdk/credential-provider-ini': 3.863.0 + '@aws-sdk/credential-provider-process': 3.863.0 + '@aws-sdk/credential-provider-sso': 3.863.0 + '@aws-sdk/credential-provider-web-identity': 3.863.0 '@aws-sdk/types': 3.862.0 '@smithy/credential-provider-imds': 4.0.7 '@smithy/property-provider': 4.0.5 @@ -5123,20 +5146,20 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-process@3.862.0': + '@aws-sdk/credential-provider-process@3.863.0': dependencies: - '@aws-sdk/core': 3.862.0 + '@aws-sdk/core': 3.863.0 '@aws-sdk/types': 3.862.0 '@smithy/property-provider': 4.0.5 '@smithy/shared-ini-file-loader': 4.0.5 '@smithy/types': 4.3.2 tslib: 2.8.1 - '@aws-sdk/credential-provider-sso@3.862.0': + '@aws-sdk/credential-provider-sso@3.863.0': dependencies: - '@aws-sdk/client-sso': 3.862.0 - '@aws-sdk/core': 3.862.0 - '@aws-sdk/token-providers': 3.862.0 + '@aws-sdk/client-sso': 3.863.0 + '@aws-sdk/core': 3.863.0 + '@aws-sdk/token-providers': 3.863.0 '@aws-sdk/types': 3.862.0 '@smithy/property-provider': 4.0.5 '@smithy/shared-ini-file-loader': 4.0.5 @@ -5145,10 +5168,10 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-web-identity@3.862.0': + '@aws-sdk/credential-provider-web-identity@3.863.0': dependencies: - '@aws-sdk/core': 3.862.0 - '@aws-sdk/nested-clients': 3.862.0 + '@aws-sdk/core': 3.863.0 + '@aws-sdk/nested-clients': 3.863.0 '@aws-sdk/types': 3.862.0 '@smithy/property-provider': 4.0.5 '@smithy/types': 4.3.2 @@ -5173,12 +5196,12 @@ snapshots: '@smithy/types': 4.3.2 tslib: 2.8.1 - '@aws-sdk/middleware-flexible-checksums@3.862.0': + '@aws-sdk/middleware-flexible-checksums@3.863.0': dependencies: '@aws-crypto/crc32': 5.2.0 '@aws-crypto/crc32c': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/core': 3.862.0 + '@aws-sdk/core': 3.863.0 '@aws-sdk/types': 3.862.0 '@smithy/is-array-buffer': 4.0.0 '@smithy/node-config-provider': 4.1.4 @@ -5215,9 +5238,9 @@ snapshots: '@smithy/types': 4.3.2 tslib: 2.8.1 - '@aws-sdk/middleware-sdk-s3@3.862.0': + '@aws-sdk/middleware-sdk-s3@3.863.0': dependencies: - '@aws-sdk/core': 3.862.0 + '@aws-sdk/core': 3.863.0 '@aws-sdk/types': 3.862.0 '@aws-sdk/util-arn-parser': 3.804.0 '@smithy/core': 3.8.0 @@ -5238,9 +5261,9 @@ snapshots: '@smithy/types': 4.3.2 tslib: 2.8.1 - '@aws-sdk/middleware-user-agent@3.862.0': + '@aws-sdk/middleware-user-agent@3.863.0': dependencies: - '@aws-sdk/core': 3.862.0 + '@aws-sdk/core': 3.863.0 '@aws-sdk/types': 3.862.0 '@aws-sdk/util-endpoints': 3.862.0 '@smithy/core': 3.8.0 @@ -5248,20 +5271,20 @@ snapshots: '@smithy/types': 4.3.2 tslib: 2.8.1 - '@aws-sdk/nested-clients@3.862.0': + '@aws-sdk/nested-clients@3.863.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.862.0 + '@aws-sdk/core': 3.863.0 '@aws-sdk/middleware-host-header': 3.862.0 '@aws-sdk/middleware-logger': 3.862.0 '@aws-sdk/middleware-recursion-detection': 3.862.0 - '@aws-sdk/middleware-user-agent': 3.862.0 + '@aws-sdk/middleware-user-agent': 3.863.0 '@aws-sdk/region-config-resolver': 3.862.0 '@aws-sdk/types': 3.862.0 '@aws-sdk/util-endpoints': 3.862.0 '@aws-sdk/util-user-agent-browser': 3.862.0 - '@aws-sdk/util-user-agent-node': 3.862.0 + '@aws-sdk/util-user-agent-node': 3.863.0 '@smithy/config-resolver': 4.1.5 '@smithy/core': 3.8.0 '@smithy/fetch-http-handler': 5.1.1 @@ -5300,19 +5323,19 @@ snapshots: '@smithy/util-middleware': 4.0.5 tslib: 2.8.1 - '@aws-sdk/signature-v4-multi-region@3.862.0': + '@aws-sdk/signature-v4-multi-region@3.863.0': dependencies: - '@aws-sdk/middleware-sdk-s3': 3.862.0 + '@aws-sdk/middleware-sdk-s3': 3.863.0 '@aws-sdk/types': 3.862.0 '@smithy/protocol-http': 5.1.3 '@smithy/signature-v4': 5.1.3 '@smithy/types': 4.3.2 tslib: 2.8.1 - '@aws-sdk/token-providers@3.862.0': + '@aws-sdk/token-providers@3.863.0': dependencies: - '@aws-sdk/core': 3.862.0 - '@aws-sdk/nested-clients': 3.862.0 + '@aws-sdk/core': 3.863.0 + '@aws-sdk/nested-clients': 3.863.0 '@aws-sdk/types': 3.862.0 '@smithy/property-provider': 4.0.5 '@smithy/shared-ini-file-loader': 4.0.5 @@ -5349,9 +5372,9 @@ snapshots: bowser: 2.11.0 tslib: 2.8.1 - '@aws-sdk/util-user-agent-node@3.862.0': + '@aws-sdk/util-user-agent-node@3.863.0': dependencies: - '@aws-sdk/middleware-user-agent': 3.862.0 + '@aws-sdk/middleware-user-agent': 3.863.0 '@aws-sdk/types': 3.862.0 '@smithy/node-config-provider': 4.1.4 '@smithy/types': 4.3.2 @@ -5366,13 +5389,13 @@ snapshots: '@babel/helper-validator-identifier@7.27.1': {} - '@babel/parser@7.27.2': + '@babel/parser@7.28.0': dependencies: - '@babel/types': 7.27.1 + '@babel/types': 7.28.2 - '@babel/runtime@7.27.1': {} + '@babel/runtime@7.28.2': {} - '@babel/types@7.27.1': + '@babel/types@7.28.2': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 @@ -5566,121 +5589,124 @@ snapshots: '@ctrl/tinycolor@4.1.0': {} - '@emnapi/core@1.4.3': + '@emnapi/core@1.4.5': dependencies: - '@emnapi/wasi-threads': 1.0.2 + '@emnapi/wasi-threads': 1.0.4 tslib: 2.8.1 optional: true - '@emnapi/runtime@1.4.3': + '@emnapi/runtime@1.4.5': dependencies: tslib: 2.8.1 optional: true - '@emnapi/wasi-threads@1.0.2': + '@emnapi/wasi-threads@1.0.4': dependencies: tslib: 2.8.1 optional: true - '@esbuild/aix-ppc64@0.25.4': + '@esbuild/aix-ppc64@0.25.8': + optional: true + + '@esbuild/android-arm64@0.25.8': optional: true - '@esbuild/android-arm64@0.25.4': + '@esbuild/android-arm@0.25.8': optional: true - '@esbuild/android-arm@0.25.4': + '@esbuild/android-x64@0.25.8': optional: true - '@esbuild/android-x64@0.25.4': + '@esbuild/darwin-arm64@0.25.8': optional: true - '@esbuild/darwin-arm64@0.25.4': + '@esbuild/darwin-x64@0.25.8': optional: true - '@esbuild/darwin-x64@0.25.4': + '@esbuild/freebsd-arm64@0.25.8': optional: true - '@esbuild/freebsd-arm64@0.25.4': + '@esbuild/freebsd-x64@0.25.8': optional: true - '@esbuild/freebsd-x64@0.25.4': + '@esbuild/linux-arm64@0.25.8': optional: true - '@esbuild/linux-arm64@0.25.4': + '@esbuild/linux-arm@0.25.8': optional: true - '@esbuild/linux-arm@0.25.4': + '@esbuild/linux-ia32@0.25.8': optional: true - '@esbuild/linux-ia32@0.25.4': + '@esbuild/linux-loong64@0.25.8': optional: true - '@esbuild/linux-loong64@0.25.4': + '@esbuild/linux-mips64el@0.25.8': optional: true - '@esbuild/linux-mips64el@0.25.4': + '@esbuild/linux-ppc64@0.25.8': optional: true - '@esbuild/linux-ppc64@0.25.4': + '@esbuild/linux-riscv64@0.25.8': optional: true - '@esbuild/linux-riscv64@0.25.4': + '@esbuild/linux-s390x@0.25.8': optional: true - '@esbuild/linux-s390x@0.25.4': + '@esbuild/linux-x64@0.25.8': optional: true - '@esbuild/linux-x64@0.25.4': + '@esbuild/netbsd-arm64@0.25.8': optional: true - '@esbuild/netbsd-arm64@0.25.4': + '@esbuild/netbsd-x64@0.25.8': optional: true - '@esbuild/netbsd-x64@0.25.4': + '@esbuild/openbsd-arm64@0.25.8': optional: true - '@esbuild/openbsd-arm64@0.25.4': + '@esbuild/openbsd-x64@0.25.8': optional: true - '@esbuild/openbsd-x64@0.25.4': + '@esbuild/openharmony-arm64@0.25.8': optional: true - '@esbuild/sunos-x64@0.25.4': + '@esbuild/sunos-x64@0.25.8': optional: true - '@esbuild/win32-arm64@0.25.4': + '@esbuild/win32-arm64@0.25.8': optional: true - '@esbuild/win32-ia32@0.25.4': + '@esbuild/win32-ia32@0.25.8': optional: true - '@esbuild/win32-x64@0.25.4': + '@esbuild/win32-x64@0.25.8': optional: true - '@expressive-code/core@0.41.2': + '@expressive-code/core@0.41.3': dependencies: '@ctrl/tinycolor': 4.1.0 hast-util-select: 6.0.4 hast-util-to-html: 9.0.5 hast-util-to-text: 4.0.2 hastscript: 9.0.1 - postcss: 8.5.3 - postcss-nested: 6.2.0(postcss@8.5.3) + postcss: 8.5.6 + postcss-nested: 6.2.0(postcss@8.5.6) unist-util-visit: 5.0.0 unist-util-visit-parents: 6.0.1 - '@expressive-code/plugin-frames@0.41.2': + '@expressive-code/plugin-frames@0.41.3': dependencies: - '@expressive-code/core': 0.41.2 + '@expressive-code/core': 0.41.3 - '@expressive-code/plugin-shiki@0.41.2': + '@expressive-code/plugin-shiki@0.41.3': dependencies: - '@expressive-code/core': 0.41.2 - shiki: 3.4.0 + '@expressive-code/core': 0.41.3 + shiki: 3.9.2 - '@expressive-code/plugin-text-markers@0.41.2': + '@expressive-code/plugin-text-markers@0.41.3': dependencies: - '@expressive-code/core': 0.41.2 + '@expressive-code/core': 0.41.3 '@gerrit0/mini-shiki@3.9.2': dependencies: @@ -5823,12 +5849,12 @@ snapshots: '@img/sharp-wasm32@0.33.5': dependencies: - '@emnapi/runtime': 1.4.3 + '@emnapi/runtime': 1.4.5 optional: true '@img/sharp-wasm32@0.34.2': dependencies: - '@emnapi/runtime': 1.4.3 + '@emnapi/runtime': 1.4.5 optional: true '@img/sharp-win32-arm64@0.34.2': @@ -5886,7 +5912,7 @@ snapshots: '@inquirer/figures': 1.0.13 '@inquirer/type': 2.0.0 '@types/mute-stream': 0.0.4 - '@types/node': 22.15.31 + '@types/node': 22.17.0 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 cli-width: 4.1.0 @@ -6014,42 +6040,39 @@ snapshots: '@istanbuljs/schema@0.1.3': {} - '@jridgewell/gen-mapping@0.3.8': + '@jridgewell/gen-mapping@0.3.12': dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/sourcemap-codec': 1.5.4 + '@jridgewell/trace-mapping': 0.3.29 '@jridgewell/resolve-uri@3.1.2': {} - '@jridgewell/set-array@1.2.1': {} - - '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/sourcemap-codec@1.5.4': {} - '@jridgewell/trace-mapping@0.3.25': + '@jridgewell/trace-mapping@0.3.29': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.4 '@manypkg/find-root@1.1.0': dependencies: - '@babel/runtime': 7.27.1 + '@babel/runtime': 7.28.2 '@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.27.1 + '@babel/runtime': 7.28.2 '@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 - '@mdx-js/mdx@3.1.0(acorn@8.14.1)': + '@mdx-js/mdx@3.1.0(acorn@8.15.0)': dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 '@types/mdx': 2.0.13 @@ -6061,13 +6084,13 @@ snapshots: hast-util-to-jsx-runtime: 2.3.6 markdown-extensions: 2.0.0 recma-build-jsx: 1.0.0 - recma-jsx: 1.0.0(acorn@8.14.1) + recma-jsx: 1.0.1(acorn@8.15.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.2 - source-map: 0.7.4 + source-map: 0.7.6 unified: 11.0.5 unist-util-position-from-estree: 2.0.0 unist-util-stringify-position: 4.0.0 @@ -6077,11 +6100,11 @@ snapshots: - acorn - supports-color - '@napi-rs/wasm-runtime@0.2.10': + '@napi-rs/wasm-runtime@0.2.12': dependencies: - '@emnapi/core': 1.4.3 - '@emnapi/runtime': 1.4.3 - '@tybys/wasm-util': 0.9.0 + '@emnapi/core': 1.4.5 + '@emnapi/runtime': 1.4.5 + '@tybys/wasm-util': 0.10.0 optional: true '@node-rs/crc32-android-arm-eabi@1.10.6': @@ -6116,7 +6139,7 @@ snapshots: '@node-rs/crc32-wasm32-wasi@1.10.6': dependencies: - '@napi-rs/wasm-runtime': 0.2.10 + '@napi-rs/wasm-runtime': 0.2.12 optional: true '@node-rs/crc32-win32-arm64-msvc@1.10.6': @@ -6238,11 +6261,10 @@ snapshots: '@polka/url@1.0.0-next.29': {} - '@pollyjs/adapter-fetch@6.0.6': + '@pollyjs/adapter-fetch@6.0.7': dependencies: '@pollyjs/adapter': 6.0.6 '@pollyjs/utils': 6.0.6 - detect-node: 2.1.0 to-arraybuffer: 1.0.1 '@pollyjs/adapter@6.0.6': @@ -6269,7 +6291,7 @@ snapshots: express: 4.21.2 fs-extra: 10.1.0 http-graceful-shutdown: 3.1.14 - morgan: 1.10.0 + morgan: 1.10.1 nocache: 3.0.4 transitivePeerDependencies: - supports-color @@ -6296,118 +6318,100 @@ snapshots: qs: 6.14.0 url-parse: 1.5.10 - '@rollup/pluginutils@5.1.4(rollup@4.40.2)': + '@rollup/pluginutils@5.2.0(rollup@4.46.2)': dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 estree-walker: 2.0.2 - picomatch: 4.0.2 + picomatch: 4.0.3 optionalDependencies: - rollup: 4.40.2 + rollup: 4.46.2 - '@rollup/rollup-android-arm-eabi@4.40.2': + '@rollup/rollup-android-arm-eabi@4.46.2': optional: true - '@rollup/rollup-android-arm64@4.40.2': + '@rollup/rollup-android-arm64@4.46.2': optional: true - '@rollup/rollup-darwin-arm64@4.40.2': + '@rollup/rollup-darwin-arm64@4.46.2': optional: true - '@rollup/rollup-darwin-x64@4.40.2': + '@rollup/rollup-darwin-x64@4.46.2': optional: true - '@rollup/rollup-freebsd-arm64@4.40.2': + '@rollup/rollup-freebsd-arm64@4.46.2': optional: true - '@rollup/rollup-freebsd-x64@4.40.2': + '@rollup/rollup-freebsd-x64@4.46.2': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.40.2': + '@rollup/rollup-linux-arm-gnueabihf@4.46.2': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.40.2': + '@rollup/rollup-linux-arm-musleabihf@4.46.2': optional: true - '@rollup/rollup-linux-arm64-gnu@4.40.2': + '@rollup/rollup-linux-arm64-gnu@4.46.2': optional: true - '@rollup/rollup-linux-arm64-musl@4.40.2': + '@rollup/rollup-linux-arm64-musl@4.46.2': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.40.2': + '@rollup/rollup-linux-loongarch64-gnu@4.46.2': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.40.2': + '@rollup/rollup-linux-ppc64-gnu@4.46.2': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.40.2': + '@rollup/rollup-linux-riscv64-gnu@4.46.2': optional: true - '@rollup/rollup-linux-riscv64-musl@4.40.2': + '@rollup/rollup-linux-riscv64-musl@4.46.2': optional: true - '@rollup/rollup-linux-s390x-gnu@4.40.2': + '@rollup/rollup-linux-s390x-gnu@4.46.2': optional: true - '@rollup/rollup-linux-x64-gnu@4.40.2': + '@rollup/rollup-linux-x64-gnu@4.46.2': optional: true - '@rollup/rollup-linux-x64-musl@4.40.2': + '@rollup/rollup-linux-x64-musl@4.46.2': optional: true - '@rollup/rollup-win32-arm64-msvc@4.40.2': + '@rollup/rollup-win32-arm64-msvc@4.46.2': optional: true - '@rollup/rollup-win32-ia32-msvc@4.40.2': + '@rollup/rollup-win32-ia32-msvc@4.46.2': optional: true - '@rollup/rollup-win32-x64-msvc@4.40.2': + '@rollup/rollup-win32-x64-msvc@4.46.2': optional: true - '@shikijs/core@3.4.0': + '@shikijs/core@3.9.2': dependencies: - '@shikijs/types': 3.4.0 + '@shikijs/types': 3.9.2 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 - '@shikijs/engine-javascript@3.4.0': + '@shikijs/engine-javascript@3.9.2': dependencies: - '@shikijs/types': 3.4.0 + '@shikijs/types': 3.9.2 '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 4.3.3 - '@shikijs/engine-oniguruma@3.4.0': - dependencies: - '@shikijs/types': 3.4.0 - '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/engine-oniguruma@3.9.2': dependencies: '@shikijs/types': 3.9.2 '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/langs@3.4.0': - dependencies: - '@shikijs/types': 3.4.0 - '@shikijs/langs@3.9.2': dependencies: '@shikijs/types': 3.9.2 - '@shikijs/themes@3.4.0': - dependencies: - '@shikijs/types': 3.4.0 - '@shikijs/themes@3.9.2': dependencies: '@shikijs/types': 3.9.2 - '@shikijs/types@3.4.0': - dependencies: - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - '@shikijs/types@3.9.2': dependencies: '@shikijs/vscode-textmate': 10.0.2 @@ -6768,7 +6772,7 @@ snapshots: dependencies: defer-to-connect: 2.0.1 - '@tybys/wasm-util@0.9.0': + '@tybys/wasm-util@0.10.0': dependencies: tslib: 2.8.1 optional: true @@ -6779,9 +6783,9 @@ snapshots: '@types/estree-jsx@1.0.5': dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 - '@types/estree@1.0.7': {} + '@types/estree@1.0.8': {} '@types/fontkit@2.0.8': dependencies: @@ -6815,7 +6819,7 @@ snapshots: '@types/node@17.0.45': {} - '@types/node@22.15.31': + '@types/node@22.17.0': dependencies: undici-types: 6.21.0 @@ -6853,7 +6857,7 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 - debug: 4.4.0 + debug: 4.4.1(supports-color@8.1.1) istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6 @@ -6871,7 +6875,7 @@ snapshots: dependencies: '@vitest/spy': 3.1.4 '@vitest/utils': 3.1.4 - chai: 5.2.0 + chai: 5.2.1 tinyrainbow: 2.0.0 '@vitest/mocker@3.1.4(vite@6.3.5(@types/node@24.2.0)(yaml@2.8.1))': @@ -6886,6 +6890,10 @@ snapshots: dependencies: tinyrainbow: 2.0.0 + '@vitest/pretty-format@3.2.4': + dependencies: + tinyrainbow: 2.0.0 + '@vitest/runner@3.1.4': dependencies: '@vitest/utils': 3.1.4 @@ -6908,14 +6916,14 @@ snapshots: flatted: 3.3.3 pathe: 2.0.3 sirv: 3.0.1 - tinyglobby: 0.2.13 + tinyglobby: 0.2.14 tinyrainbow: 2.0.0 vitest: 3.1.4(@types/debug@4.1.12)(@types/node@24.2.0)(@vitest/ui@3.1.4)(yaml@2.8.1) '@vitest/utils@3.1.4': dependencies: '@vitest/pretty-format': 3.1.4 - loupe: 3.1.3 + loupe: 3.2.0 tinyrainbow: 2.0.0 accepts@1.3.8: @@ -6923,11 +6931,11 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-jsx@5.3.2(acorn@8.14.1): + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: - acorn: 8.14.1 + acorn: 8.15.0 - acorn@8.14.1: {} + acorn@8.15.0: {} ajv@8.17.1: dependencies: @@ -6987,37 +6995,37 @@ snapshots: astring@1.9.0: {} - astro-expressive-code@0.41.2(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1)): + astro-expressive-code@0.41.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1)): dependencies: - astro: 5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1) - rehype-expressive-code: 0.41.2 + astro: 5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1) + rehype-expressive-code: 0.41.3 - astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1): + astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1): dependencies: - '@astrojs/compiler': 2.12.0 + '@astrojs/compiler': 2.12.2 '@astrojs/internal-helpers': 0.6.1 '@astrojs/markdown-remark': 6.3.1 '@astrojs/telemetry': 3.2.1 '@capsizecss/unpack': 2.4.0 '@oslojs/encoding': 1.1.0 - '@rollup/pluginutils': 5.1.4(rollup@4.40.2) - acorn: 8.14.1 + '@rollup/pluginutils': 5.2.0(rollup@4.46.2) + acorn: 8.15.0 aria-query: 5.3.2 axobject-query: 4.1.0 boxen: 8.0.1 - ci-info: 4.2.0 + ci-info: 4.3.0 clsx: 2.1.1 common-ancestor-path: 1.0.1 cookie: 1.0.2 cssesc: 3.0.0 - debug: 4.4.0 + debug: 4.4.1(supports-color@8.1.1) 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.7.0 - esbuild: 0.25.4 + esbuild: 0.25.8 estree-walker: 3.0.3 flattie: 1.1.1 fontace: 0.3.0 @@ -7033,27 +7041,27 @@ snapshots: p-limit: 6.2.0 p-queue: 8.1.0 package-manager-detector: 1.3.0 - picomatch: 4.0.2 + picomatch: 4.0.3 prompts: 2.4.2 rehype: 13.0.2 semver: 7.7.2 - shiki: 3.4.0 + shiki: 3.9.2 tinyexec: 0.3.2 - tinyglobby: 0.2.13 - tsconfck: 3.1.5(typescript@5.9.2) + tinyglobby: 0.2.14 + tsconfck: 3.1.6(typescript@5.9.2) ultrahtml: 1.6.0 - unifont: 0.5.0 + unifont: 0.5.2 unist-util-visit: 5.0.0 - unstorage: 1.16.0 + unstorage: 1.16.1 vfile: 6.0.3 vite: 6.3.5(@types/node@24.2.0)(yaml@2.8.1) - vitefu: 1.0.6(vite@6.3.5(@types/node@24.2.0)(yaml@2.8.1)) + vitefu: 1.1.1(vite@6.3.5(@types/node@24.2.0)(yaml@2.8.1)) xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 - yocto-spinner: 0.2.2 - zod: 3.24.4 - zod-to-json-schema: 3.24.5(zod@3.24.4) - zod-to-ts: 1.2.0(typescript@5.9.2)(zod@3.24.4) + yocto-spinner: 0.2.3 + zod: 3.25.76 + zod-to-json-schema: 3.24.6(zod@3.25.76) + zod-to-ts: 1.2.0(typescript@5.9.2)(zod@3.25.76) optionalDependencies: sharp: 0.33.5 transitivePeerDependencies: @@ -7154,14 +7162,14 @@ snapshots: dependencies: ansi-align: 3.0.1 camelcase: 8.0.0 - chalk: 5.4.1 + chalk: 5.5.0 cli-boxes: 3.0.0 string-width: 7.2.0 type-fest: 4.41.0 widest-line: 5.0.0 wrap-ansi: 9.0.0 - brace-expansion@2.0.1: + brace-expansion@2.0.2: dependencies: balanced-match: 1.0.2 @@ -7216,15 +7224,15 @@ snapshots: ccount@2.0.1: {} - chai@5.2.0: + chai@5.2.1: dependencies: assertion-error: 2.0.1 check-error: 2.1.1 deep-eql: 5.0.2 - loupe: 3.1.3 - pathval: 2.0.0 + loupe: 3.2.0 + pathval: 2.0.1 - chalk@5.4.1: {} + chalk@5.5.0: {} change-case@4.1.2: dependencies: @@ -7259,7 +7267,7 @@ snapshots: ci-info@3.9.0: {} - ci-info@4.2.0: {} + ci-info@4.3.0: {} clean-stack@3.0.1: dependencies: @@ -7362,7 +7370,7 @@ snapshots: dependencies: type-fest: 1.4.0 - css-selector-parser@3.1.2: {} + css-selector-parser@3.1.3: {} css-tree@3.1.0: dependencies: @@ -7377,17 +7385,13 @@ snapshots: dependencies: ms: 2.0.0 - debug@4.4.0: - dependencies: - ms: 2.1.3 - debug@4.4.1(supports-color@8.1.1): dependencies: ms: 2.1.3 optionalDependencies: supports-color: 8.1.1 - decode-named-character-reference@1.1.0: + decode-named-character-reference@1.2.0: dependencies: character-entities: 2.0.2 @@ -7429,8 +7433,6 @@ snapshots: detect-newline@4.0.1: {} - detect-node@2.1.0: {} - deterministic-object-hash@2.0.2: dependencies: base-64: 1.0.0 @@ -7491,7 +7493,7 @@ snapshots: entities@4.5.0: {} - entities@6.0.0: {} + entities@6.0.1: {} environment@1.1.0: {} @@ -7521,37 +7523,38 @@ snapshots: esast-util-from-js@2.0.1: dependencies: '@types/estree-jsx': 1.0.5 - acorn: 8.14.1 + acorn: 8.15.0 esast-util-from-estree: 2.0.0 - vfile-message: 4.0.2 + vfile-message: 4.0.3 - esbuild@0.25.4: + esbuild@0.25.8: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.4 - '@esbuild/android-arm': 0.25.4 - '@esbuild/android-arm64': 0.25.4 - '@esbuild/android-x64': 0.25.4 - '@esbuild/darwin-arm64': 0.25.4 - '@esbuild/darwin-x64': 0.25.4 - '@esbuild/freebsd-arm64': 0.25.4 - '@esbuild/freebsd-x64': 0.25.4 - '@esbuild/linux-arm': 0.25.4 - '@esbuild/linux-arm64': 0.25.4 - '@esbuild/linux-ia32': 0.25.4 - '@esbuild/linux-loong64': 0.25.4 - '@esbuild/linux-mips64el': 0.25.4 - '@esbuild/linux-ppc64': 0.25.4 - '@esbuild/linux-riscv64': 0.25.4 - '@esbuild/linux-s390x': 0.25.4 - '@esbuild/linux-x64': 0.25.4 - '@esbuild/netbsd-arm64': 0.25.4 - '@esbuild/netbsd-x64': 0.25.4 - '@esbuild/openbsd-arm64': 0.25.4 - '@esbuild/openbsd-x64': 0.25.4 - '@esbuild/sunos-x64': 0.25.4 - '@esbuild/win32-arm64': 0.25.4 - '@esbuild/win32-ia32': 0.25.4 - '@esbuild/win32-x64': 0.25.4 + '@esbuild/aix-ppc64': 0.25.8 + '@esbuild/android-arm': 0.25.8 + '@esbuild/android-arm64': 0.25.8 + '@esbuild/android-x64': 0.25.8 + '@esbuild/darwin-arm64': 0.25.8 + '@esbuild/darwin-x64': 0.25.8 + '@esbuild/freebsd-arm64': 0.25.8 + '@esbuild/freebsd-x64': 0.25.8 + '@esbuild/linux-arm': 0.25.8 + '@esbuild/linux-arm64': 0.25.8 + '@esbuild/linux-ia32': 0.25.8 + '@esbuild/linux-loong64': 0.25.8 + '@esbuild/linux-mips64el': 0.25.8 + '@esbuild/linux-ppc64': 0.25.8 + '@esbuild/linux-riscv64': 0.25.8 + '@esbuild/linux-s390x': 0.25.8 + '@esbuild/linux-x64': 0.25.8 + '@esbuild/netbsd-arm64': 0.25.8 + '@esbuild/netbsd-x64': 0.25.8 + '@esbuild/openbsd-arm64': 0.25.8 + '@esbuild/openbsd-x64': 0.25.8 + '@esbuild/openharmony-arm64': 0.25.8 + '@esbuild/sunos-x64': 0.25.8 + '@esbuild/win32-arm64': 0.25.8 + '@esbuild/win32-ia32': 0.25.8 + '@esbuild/win32-x64': 0.25.8 escape-html@1.0.3: {} @@ -7567,7 +7570,7 @@ snapshots: estree-util-attach-comments@3.0.0: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 estree-util-build-jsx@3.0.1: dependencies: @@ -7580,14 +7583,14 @@ snapshots: estree-util-scope@1.0.0: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 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 + source-map: 0.7.6 estree-util-visit@2.0.0: dependencies: @@ -7598,7 +7601,7 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 etag@1.8.1: {} @@ -7606,7 +7609,7 @@ snapshots: exit-hook@4.0.0: {} - expect-type@1.2.1: {} + expect-type@1.2.2: {} express@4.21.2: dependencies: @@ -7644,12 +7647,12 @@ snapshots: transitivePeerDependencies: - supports-color - expressive-code@0.41.2: + expressive-code@0.41.3: dependencies: - '@expressive-code/core': 0.41.2 - '@expressive-code/plugin-frames': 0.41.2 - '@expressive-code/plugin-shiki': 0.41.2 - '@expressive-code/plugin-text-markers': 0.41.2 + '@expressive-code/core': 0.41.3 + '@expressive-code/plugin-frames': 0.41.3 + '@expressive-code/plugin-shiki': 0.41.3 + '@expressive-code/plugin-text-markers': 0.41.3 extend@3.0.2: {} @@ -7689,9 +7692,9 @@ snapshots: dependencies: reusify: 1.1.0 - fdir@6.4.4(picomatch@4.0.2): + fdir@6.4.6(picomatch@4.0.3): optionalDependencies: - picomatch: 4.0.2 + picomatch: 4.0.3 fflate@0.8.2: {} @@ -7856,14 +7859,14 @@ snapshots: graceful-fs@4.2.11: {} - h3@1.15.3: + h3@1.15.4: dependencies: cookie-es: 1.2.2 crossws: 0.3.5 defu: 6.1.4 destr: 2.0.5 iron-webcrypto: 1.2.1 - node-mock-http: 1.0.0 + node-mock-http: 1.0.2 radix3: 1.1.2 ufo: 1.6.1 uncrypto: 0.1.3 @@ -7902,7 +7905,7 @@ snapshots: hast-util-from-parse5: 8.0.3 parse5: 7.3.0 vfile: 6.0.3 - vfile-message: 4.0.2 + vfile-message: 4.0.3 hast-util-from-parse5@8.0.3: dependencies: @@ -7969,7 +7972,7 @@ snapshots: '@types/unist': 3.0.3 bcp-47-match: 2.0.3 comma-separated-tokens: 2.0.3 - css-selector-parser: 3.1.2 + css-selector-parser: 3.1.3 devlop: 1.1.0 direction: 2.0.1 hast-util-has-property: 3.0.0 @@ -7983,7 +7986,7 @@ snapshots: hast-util-to-estree@3.1.3: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 @@ -7996,7 +7999,7 @@ snapshots: mdast-util-mdxjs-esm: 2.0.1 property-information: 7.1.0 space-separated-tokens: 2.0.2 - style-to-js: 1.1.16 + style-to-js: 1.1.17 unist-util-position: 5.0.0 zwitch: 2.0.4 transitivePeerDependencies: @@ -8018,7 +8021,7 @@ snapshots: hast-util-to-jsx-runtime@2.3.6: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@types/hast': 3.0.4 '@types/unist': 3.0.3 comma-separated-tokens: 2.0.3 @@ -8030,9 +8033,9 @@ snapshots: mdast-util-mdxjs-esm: 2.0.1 property-information: 7.1.0 space-separated-tokens: 2.0.2 - style-to-js: 1.1.16 + style-to-js: 1.1.17 unist-util-position: 5.0.0 - vfile-message: 4.0.2 + vfile-message: 4.0.3 transitivePeerDependencies: - supports-color @@ -8124,7 +8127,7 @@ snapshots: i18next@23.16.8: dependencies: - '@babel/runtime': 7.27.1 + '@babel/runtime': 7.28.2 iconv-lite@0.4.24: dependencies: @@ -8148,7 +8151,7 @@ snapshots: ansi-escapes: 7.0.0 ansi-styles: 6.2.1 auto-bind: 5.0.1 - chalk: 5.4.1 + chalk: 5.5.0 cli-boxes: 3.0.0 cli-cursor: 4.0.0 cli-truncate: 4.0.0 @@ -8220,9 +8223,8 @@ snapshots: dependencies: is-docker: 3.0.0 - is-it-type@5.1.2: + is-it-type@5.1.3: dependencies: - '@babel/runtime': 7.27.1 globalthis: 1.0.4 is-number@7.0.0: {} @@ -8261,8 +8263,8 @@ snapshots: istanbul-lib-source-maps@5.0.6: dependencies: - '@jridgewell/trace-mapping': 0.3.25 - debug: 4.4.0 + '@jridgewell/trace-mapping': 0.3.29 + debug: 4.4.1(supports-color@8.1.1) istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color @@ -8347,7 +8349,7 @@ snapshots: dependencies: js-tokens: 4.0.0 - loupe@3.1.3: {} + loupe@3.2.0: {} lower-case@2.0.2: dependencies: @@ -8361,12 +8363,12 @@ snapshots: magic-string@0.30.17: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.4 magicast@0.3.5: dependencies: - '@babel/parser': 7.27.2 - '@babel/types': 7.27.1 + '@babel/parser': 7.28.0 + '@babel/types': 7.28.2 source-map-js: 1.2.1 make-dir@4.0.0: @@ -8419,7 +8421,7 @@ snapshots: dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 - decode-named-character-reference: 1.1.0 + decode-named-character-reference: 1.2.0 devlop: 1.1.0 mdast-util-to-string: 4.0.0 micromark: 4.0.2 @@ -8513,7 +8515,7 @@ snapshots: parse-entities: 4.0.2 stringify-entities: 4.0.4 unist-util-stringify-position: 4.0.0 - vfile-message: 4.0.2 + vfile-message: 4.0.3 transitivePeerDependencies: - supports-color @@ -8585,7 +8587,7 @@ snapshots: micromark-core-commonmark@2.0.3: dependencies: - decode-named-character-reference: 1.1.0 + decode-named-character-reference: 1.2.0 devlop: 1.1.0 micromark-factory-destination: 2.0.1 micromark-factory-label: 2.0.1 @@ -8672,7 +8674,7 @@ snapshots: micromark-extension-mdx-expression@3.0.1: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 devlop: 1.1.0 micromark-factory-mdx-expression: 2.0.3 micromark-factory-space: 2.0.1 @@ -8683,7 +8685,7 @@ snapshots: micromark-extension-mdx-jsx@3.0.2: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 micromark-factory-mdx-expression: 2.0.3 @@ -8692,7 +8694,7 @@ snapshots: micromark-util-events-to-acorn: 2.0.3 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - vfile-message: 4.0.2 + vfile-message: 4.0.3 micromark-extension-mdx-md@2.0.0: dependencies: @@ -8700,7 +8702,7 @@ snapshots: micromark-extension-mdxjs-esm@3.0.0: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 micromark-util-character: 2.1.1 @@ -8708,12 +8710,12 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 unist-util-position-from-estree: 2.0.0 - vfile-message: 4.0.2 + vfile-message: 4.0.3 micromark-extension-mdxjs@3.0.0: dependencies: - acorn: 8.14.1 - acorn-jsx: 5.3.2(acorn@8.14.1) + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) micromark-extension-mdx-expression: 3.0.1 micromark-extension-mdx-jsx: 3.0.2 micromark-extension-mdx-md: 2.0.0 @@ -8736,7 +8738,7 @@ snapshots: micromark-factory-mdx-expression@2.0.3: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 devlop: 1.1.0 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 @@ -8744,7 +8746,7 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 unist-util-position-from-estree: 2.0.0 - vfile-message: 4.0.2 + vfile-message: 4.0.3 micromark-factory-space@2.0.1: dependencies: @@ -8791,7 +8793,7 @@ snapshots: micromark-util-decode-string@2.0.1: dependencies: - decode-named-character-reference: 1.1.0 + decode-named-character-reference: 1.2.0 micromark-util-character: 2.1.1 micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-symbol: 2.0.1 @@ -8800,13 +8802,13 @@ snapshots: micromark-util-events-to-acorn@2.0.3: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@types/unist': 3.0.3 devlop: 1.1.0 estree-util-visit: 2.0.0 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - vfile-message: 4.0.2 + vfile-message: 4.0.3 micromark-util-html-tag-name@2.0.1: {} @@ -8839,7 +8841,7 @@ snapshots: dependencies: '@types/debug': 4.1.12 debug: 4.4.1(supports-color@8.1.1) - decode-named-character-reference: 1.1.0 + decode-named-character-reference: 1.2.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 micromark-factory-space: 2.0.1 @@ -8878,21 +8880,21 @@ snapshots: minimatch@5.1.6: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 2.0.2 minimatch@9.0.5: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 2.0.2 minipass@7.1.2: {} - morgan@1.10.0: + morgan@1.10.1: dependencies: basic-auth: 2.0.1 debug: 2.6.9 depd: 2.0.0 on-finished: 2.3.0 - on-headers: 1.0.2 + on-headers: 1.1.0 transitivePeerDependencies: - supports-color @@ -8925,13 +8927,13 @@ snapshots: nocache@3.0.4: {} - node-fetch-native@1.6.6: {} + node-fetch-native@1.6.7: {} node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 - node-mock-http@1.0.0: {} + node-mock-http@1.0.2: {} nodejs-polars-android-arm64@0.18.0: optional: true @@ -8992,8 +8994,8 @@ snapshots: oclif@4.22.6(@types/node@24.2.0): dependencies: - '@aws-sdk/client-cloudfront': 3.862.0 - '@aws-sdk/client-s3': 3.862.0 + '@aws-sdk/client-cloudfront': 3.863.0 + '@aws-sdk/client-s3': 3.863.0 '@inquirer/confirm': 3.2.0 '@inquirer/input': 2.3.0 '@inquirer/select': 2.5.0 @@ -9024,7 +9026,7 @@ snapshots: ofetch@1.4.1: dependencies: destr: 2.0.5 - node-fetch-native: 1.6.6 + node-fetch-native: 1.6.7 ufo: 1.6.1 ohash@2.0.11: {} @@ -9037,7 +9039,7 @@ snapshots: dependencies: ee-first: 1.1.1 - on-headers@1.0.2: {} + on-headers@1.1.0: {} onetime@5.1.2: dependencies: @@ -9112,7 +9114,7 @@ snapshots: '@types/unist': 2.0.11 character-entities-legacy: 3.0.0 character-reference-invalid: 2.0.1 - decode-named-character-reference: 1.1.0 + decode-named-character-reference: 1.2.0 is-alphanumerical: 2.0.1 is-decimal: 2.0.1 is-hexadecimal: 2.0.1 @@ -9133,7 +9135,7 @@ snapshots: parse5@7.3.0: dependencies: - entities: 6.0.0 + entities: 6.0.1 parseurl@1.3.3: {} @@ -9164,19 +9166,19 @@ snapshots: pathe@2.0.3: {} - pathval@2.0.0: {} + pathval@2.0.1: {} picocolors@1.1.1: {} picomatch@2.3.1: {} - picomatch@4.0.2: {} + picomatch@4.0.3: {} pify@4.0.1: {} - postcss-nested@6.2.0(postcss@8.5.3): + postcss-nested@6.2.0(postcss@8.5.6): dependencies: - postcss: 8.5.3 + postcss: 8.5.6 postcss-selector-parser: 6.1.2 postcss-selector-parser@6.1.2: @@ -9184,7 +9186,7 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss@8.5.3: + postcss@8.5.6: dependencies: nanoid: 3.3.11 picocolors: 1.1.1 @@ -9259,30 +9261,29 @@ snapshots: recma-build-jsx@1.0.0: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 estree-util-build-jsx: 3.0.1 vfile: 6.0.3 - recma-jsx@1.0.0(acorn@8.14.1): + recma-jsx@1.0.1(acorn@8.15.0): dependencies: - acorn-jsx: 5.3.2(acorn@8.14.1) + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.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.7 + '@types/estree': 1.0.8 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.7 + '@types/estree': 1.0.8 estree-util-to-js: 2.0.0 unified: 11.0.5 vfile: 6.0.3 @@ -9301,9 +9302,9 @@ snapshots: dependencies: '@pnpm/npm-conf': 2.3.1 - rehype-expressive-code@0.41.2: + rehype-expressive-code@0.41.3: dependencies: - expressive-code: 0.41.2 + expressive-code: 0.41.3 rehype-format@5.0.1: dependencies: @@ -9324,7 +9325,7 @@ snapshots: rehype-recma@1.0.0: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@types/hast': 3.0.4 hast-util-to-estree: 3.1.3 transitivePeerDependencies: @@ -9448,30 +9449,30 @@ snapshots: reusify@1.1.0: {} - rollup@4.40.2: + rollup@4.46.2: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.40.2 - '@rollup/rollup-android-arm64': 4.40.2 - '@rollup/rollup-darwin-arm64': 4.40.2 - '@rollup/rollup-darwin-x64': 4.40.2 - '@rollup/rollup-freebsd-arm64': 4.40.2 - '@rollup/rollup-freebsd-x64': 4.40.2 - '@rollup/rollup-linux-arm-gnueabihf': 4.40.2 - '@rollup/rollup-linux-arm-musleabihf': 4.40.2 - '@rollup/rollup-linux-arm64-gnu': 4.40.2 - '@rollup/rollup-linux-arm64-musl': 4.40.2 - '@rollup/rollup-linux-loongarch64-gnu': 4.40.2 - '@rollup/rollup-linux-powerpc64le-gnu': 4.40.2 - '@rollup/rollup-linux-riscv64-gnu': 4.40.2 - '@rollup/rollup-linux-riscv64-musl': 4.40.2 - '@rollup/rollup-linux-s390x-gnu': 4.40.2 - '@rollup/rollup-linux-x64-gnu': 4.40.2 - '@rollup/rollup-linux-x64-musl': 4.40.2 - '@rollup/rollup-win32-arm64-msvc': 4.40.2 - '@rollup/rollup-win32-ia32-msvc': 4.40.2 - '@rollup/rollup-win32-x64-msvc': 4.40.2 + '@rollup/rollup-android-arm-eabi': 4.46.2 + '@rollup/rollup-android-arm64': 4.46.2 + '@rollup/rollup-darwin-arm64': 4.46.2 + '@rollup/rollup-darwin-x64': 4.46.2 + '@rollup/rollup-freebsd-arm64': 4.46.2 + '@rollup/rollup-freebsd-x64': 4.46.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.46.2 + '@rollup/rollup-linux-arm-musleabihf': 4.46.2 + '@rollup/rollup-linux-arm64-gnu': 4.46.2 + '@rollup/rollup-linux-arm64-musl': 4.46.2 + '@rollup/rollup-linux-loongarch64-gnu': 4.46.2 + '@rollup/rollup-linux-ppc64-gnu': 4.46.2 + '@rollup/rollup-linux-riscv64-gnu': 4.46.2 + '@rollup/rollup-linux-riscv64-musl': 4.46.2 + '@rollup/rollup-linux-s390x-gnu': 4.46.2 + '@rollup/rollup-linux-x64-gnu': 4.46.2 + '@rollup/rollup-linux-x64-musl': 4.46.2 + '@rollup/rollup-win32-arm64-msvc': 4.46.2 + '@rollup/rollup-win32-ia32-msvc': 4.46.2 + '@rollup/rollup-win32-x64-msvc': 4.46.2 fsevents: 2.3.3 route-recognizer@0.3.4: {} @@ -9594,14 +9595,14 @@ snapshots: shebang-regex@3.0.0: {} - shiki@3.4.0: + shiki@3.9.2: dependencies: - '@shikijs/core': 3.4.0 - '@shikijs/engine-javascript': 3.4.0 - '@shikijs/engine-oniguruma': 3.4.0 - '@shikijs/langs': 3.4.0 - '@shikijs/themes': 3.4.0 - '@shikijs/types': 3.4.0 + '@shikijs/core': 3.9.2 + '@shikijs/engine-javascript': 3.9.2 + '@shikijs/engine-oniguruma': 3.9.2 + '@shikijs/langs': 3.9.2 + '@shikijs/themes': 3.9.2 + '@shikijs/types': 3.9.2 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -9674,7 +9675,7 @@ snapshots: slugify@1.6.6: {} - smol-toml@1.3.4: {} + smol-toml@1.4.1: {} snake-case@3.0.4: dependencies: @@ -9696,7 +9697,7 @@ snapshots: source-map-js@1.2.1: {} - source-map@0.7.4: {} + source-map@0.7.6: {} space-separated-tokens@2.0.2: {} @@ -9727,13 +9728,13 @@ snapshots: stackback@0.0.2: {} - starlight-scroll-to-top@0.1.1(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1))): + starlight-scroll-to-top@0.1.1(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1))): dependencies: - '@astrojs/starlight': 0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1)) + '@astrojs/starlight': 0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1)) - starlight-typedoc@0.21.3(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1)))(typedoc-plugin-markdown@4.8.0(typedoc@0.28.9(typescript@5.9.2)))(typedoc@0.28.9(typescript@5.9.2)): + starlight-typedoc@0.21.3(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1)))(typedoc-plugin-markdown@4.8.0(typedoc@0.28.9(typescript@5.9.2)))(typedoc@0.28.9(typescript@5.9.2)): dependencies: - '@astrojs/starlight': 0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.40.2)(typescript@5.9.2)(yaml@2.8.1)) + '@astrojs/starlight': 0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1)) github-slugger: 2.0.0 typedoc: 0.28.9(typescript@5.9.2) typedoc-plugin-markdown: 4.8.0(typedoc@0.28.9(typescript@5.9.2)) @@ -9779,11 +9780,11 @@ snapshots: strnum@2.1.1: {} - style-to-js@1.1.16: + style-to-js@1.1.17: dependencies: - style-to-object: 1.0.8 + style-to-object: 1.0.9 - style-to-object@1.0.8: + style-to-object@1.0.9: dependencies: inline-style-parser: 0.2.4 @@ -9822,17 +9823,12 @@ snapshots: tinyexec@0.3.2: {} - tinyglobby@0.2.13: - dependencies: - fdir: 6.4.4(picomatch@4.0.2) - picomatch: 4.0.2 - tinyglobby@0.2.14: dependencies: - fdir: 6.4.4(picomatch@4.0.2) - picomatch: 4.0.2 + fdir: 6.4.6(picomatch@4.0.3) + picomatch: 4.0.3 - tinypool@1.0.2: {} + tinypool@1.1.1: {} tinyrainbow@2.0.0: {} @@ -9858,7 +9854,7 @@ snapshots: trough@2.2.0: {} - tsconfck@3.1.5(typescript@5.9.2): + tsconfck@3.1.6(typescript@5.9.2): optionalDependencies: typescript: 5.9.2 @@ -9928,9 +9924,10 @@ snapshots: trough: 2.2.0 vfile: 6.0.3 - unifont@0.5.0: + unifont@0.5.2: dependencies: css-tree: 3.1.0 + ofetch: 1.4.1 ohash: 2.0.11 unique-string@3.0.0: @@ -9989,14 +9986,14 @@ snapshots: unpipe@1.0.0: {} - unstorage@1.16.0: + unstorage@1.16.1: dependencies: anymatch: 3.1.3 chokidar: 4.0.3 destr: 2.0.5 - h3: 1.15.3 + h3: 1.15.4 lru-cache: 10.4.3 - node-fetch-native: 1.6.6 + node-fetch-native: 1.6.7 ofetch: 1.4.1 ufo: 1.6.1 @@ -10035,7 +10032,7 @@ snapshots: '@types/unist': 3.0.3 vfile: 6.0.3 - vfile-message@4.0.2: + vfile-message@4.0.3: dependencies: '@types/unist': 3.0.3 unist-util-stringify-position: 4.0.0 @@ -10043,12 +10040,12 @@ snapshots: vfile@6.0.3: dependencies: '@types/unist': 3.0.3 - vfile-message: 4.0.2 + vfile-message: 4.0.3 vite-node@3.1.4(@types/node@24.2.0)(yaml@2.8.1): dependencies: cac: 6.7.14 - debug: 4.4.0 + debug: 4.4.1(supports-color@8.1.1) es-module-lexer: 1.7.0 pathe: 2.0.3 vite: 6.3.5(@types/node@24.2.0)(yaml@2.8.1) @@ -10068,18 +10065,18 @@ snapshots: vite@6.3.5(@types/node@24.2.0)(yaml@2.8.1): dependencies: - esbuild: 0.25.4 - fdir: 6.4.4(picomatch@4.0.2) - picomatch: 4.0.2 - postcss: 8.5.3 - rollup: 4.40.2 - tinyglobby: 0.2.13 + esbuild: 0.25.8 + fdir: 6.4.6(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.46.2 + tinyglobby: 0.2.14 optionalDependencies: '@types/node': 24.2.0 fsevents: 2.3.3 yaml: 2.8.1 - vitefu@1.0.6(vite@6.3.5(@types/node@24.2.0)(yaml@2.8.1)): + vitefu@1.1.1(vite@6.3.5(@types/node@24.2.0)(yaml@2.8.1)): optionalDependencies: vite: 6.3.5(@types/node@24.2.0)(yaml@2.8.1) @@ -10087,21 +10084,21 @@ snapshots: dependencies: '@vitest/expect': 3.1.4 '@vitest/mocker': 3.1.4(vite@6.3.5(@types/node@24.2.0)(yaml@2.8.1)) - '@vitest/pretty-format': 3.1.4 + '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.1.4 '@vitest/snapshot': 3.1.4 '@vitest/spy': 3.1.4 '@vitest/utils': 3.1.4 - chai: 5.2.0 - debug: 4.4.0 - expect-type: 1.2.1 + chai: 5.2.1 + debug: 4.4.1(supports-color@8.1.1) + expect-type: 1.2.2 magic-string: 0.30.17 pathe: 2.0.3 std-env: 3.9.0 tinybench: 2.9.0 tinyexec: 0.3.2 - tinyglobby: 0.2.13 - tinypool: 1.0.2 + tinyglobby: 0.2.14 + tinypool: 1.1.1 tinyrainbow: 2.0.0 vite: 6.3.5(@types/node@24.2.0)(yaml@2.8.1) vite-node: 3.1.4(@types/node@24.2.0)(yaml@2.8.1) @@ -10189,7 +10186,7 @@ snapshots: yauzl-promise@4.0.0: dependencies: '@node-rs/crc32': 1.10.6 - is-it-type: 5.1.2 + is-it-type: 5.1.3 simple-invariant: 2.0.1 yazl@3.3.1: @@ -10198,7 +10195,7 @@ snapshots: yocto-queue@1.2.1: {} - yocto-spinner@0.2.2: + yocto-spinner@0.2.3: dependencies: yoctocolors: 2.1.1 @@ -10208,15 +10205,15 @@ snapshots: yoga-layout@3.2.1: {} - zod-to-json-schema@3.24.5(zod@3.24.4): + zod-to-json-schema@3.24.6(zod@3.25.76): dependencies: - zod: 3.24.4 + zod: 3.25.76 - zod-to-ts@1.2.0(typescript@5.9.2)(zod@3.24.4): + zod-to-ts@1.2.0(typescript@5.9.2)(zod@3.25.76): dependencies: typescript: 5.9.2 - zod: 3.24.4 + zod: 3.25.76 - zod@3.24.4: {} + zod@3.25.76: {} zwitch@2.0.4: {} diff --git a/table/package.json b/table/package.json index 4a5e5bb6..cd65dad1 100644 --- a/table/package.json +++ b/table/package.json @@ -20,7 +20,7 @@ "table" ], "scripts": { - "build": "tsc --build" + "build": "tsc" }, "dependencies": { "nodejs-polars": "^0.18.0", diff --git a/table/tsconfig.json b/table/tsconfig.json index 7be40230..3c43903c 100644 --- a/table/tsconfig.json +++ b/table/tsconfig.json @@ -1,10 +1,3 @@ { - "extends": "../tsconfig.json", - "include": ["**/*.ts"], - "exclude": ["**/build/"], - "compilerOptions": { - "outDir": "build", - "noEmit": false, - "declaration": true - } + "extends": "../tsconfig.json" } diff --git a/test/package.json b/test/package.json index 5d2705f1..d9acc8fe 100644 --- a/test/package.json +++ b/test/package.json @@ -20,7 +20,7 @@ "test" ], "scripts": { - "build": "tsc --build" + "build": "tsc" }, "dependencies": { "@pollyjs/adapter-fetch": "^6.0.6", diff --git a/test/tsconfig.json b/test/tsconfig.json index 7be40230..3c43903c 100644 --- a/test/tsconfig.json +++ b/test/tsconfig.json @@ -1,10 +1,3 @@ { - "extends": "../tsconfig.json", - "include": ["**/*.ts"], - "exclude": ["**/build/"], - "compilerOptions": { - "outDir": "build", - "noEmit": false, - "declaration": true - } + "extends": "../tsconfig.json" } diff --git a/tsconfig.json b/tsconfig.json index b0794525..267a5d33 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,15 +1,19 @@ { "$schema": "https://json.schemastore.org/tsconfig", - "include": ["**/*.ts", "**/*.tsx"], - "exclude": ["**/build/", "**/docs/"], + "include": ["${configDir}/**/*.ts", "${configDir}/**/*.tsx"], + "exclude": ["${configDir}/**/build/", "${configDir}/**/docs/"], + "compilerOptions": { - "strict": true, - "noEmit": true, + "jsx": "react-jsx", "target": "ES2022", - "lib": ["ESNext"], "module": "NodeNext", "moduleResolution": "NodeNext", - "rewriteRelativeImportExtensions": true, + "outDir": "${configDir}/build", + + "lib": ["ESNext"], + "types": ["node"], + + "strict": true, "isolatedModules": true, "esModuleInterop": true, "resolveJsonModule": true, @@ -20,6 +24,9 @@ "noUnusedLocals": true, "inlineSourceMap": true, "inlineSources": true, - "skipLibCheck": true + "skipLibCheck": true, + + "declaration": true, + "rewriteRelativeImportExtensions": true } } diff --git a/ui/package.json b/ui/package.json index 53264469..c539c808 100644 --- a/ui/package.json +++ b/ui/package.json @@ -20,6 +20,6 @@ "ui" ], "scripts": { - "build": "tsc --build" + "build": "tsc" } } diff --git a/ui/tsconfig.json b/ui/tsconfig.json index 7be40230..3c43903c 100644 --- a/ui/tsconfig.json +++ b/ui/tsconfig.json @@ -1,10 +1,3 @@ { - "extends": "../tsconfig.json", - "include": ["**/*.ts"], - "exclude": ["**/build/"], - "compilerOptions": { - "outDir": "build", - "noEmit": false, - "declaration": true - } + "extends": "../tsconfig.json" } diff --git a/zenodo/package.json b/zenodo/package.json index 3661efc8..37b97b09 100644 --- a/zenodo/package.json +++ b/zenodo/package.json @@ -20,7 +20,7 @@ "zenodo" ], "scripts": { - "build": "tsc --build" + "build": "tsc" }, "dependencies": { "@dpkit/core": "workspace:*", diff --git a/zenodo/tsconfig.json b/zenodo/tsconfig.json index 7be40230..3c43903c 100644 --- a/zenodo/tsconfig.json +++ b/zenodo/tsconfig.json @@ -1,10 +1,3 @@ { - "extends": "../tsconfig.json", - "include": ["**/*.ts"], - "exclude": ["**/build/"], - "compilerOptions": { - "outDir": "build", - "noEmit": false, - "declaration": true - } + "extends": "../tsconfig.json" } diff --git a/zip/package.json b/zip/package.json index 807bc760..23902618 100644 --- a/zip/package.json +++ b/zip/package.json @@ -20,7 +20,7 @@ "zip" ], "scripts": { - "build": "tsc --build" + "build": "tsc" }, "dependencies": { "@dpkit/core": "workspace:*", diff --git a/zip/tsconfig.json b/zip/tsconfig.json index 7be40230..3c43903c 100644 --- a/zip/tsconfig.json +++ b/zip/tsconfig.json @@ -1,10 +1,3 @@ { - "extends": "../tsconfig.json", - "include": ["**/*.ts"], - "exclude": ["**/build/"], - "compilerOptions": { - "outDir": "build", - "noEmit": false, - "declaration": true - } + "extends": "../tsconfig.json" } From be8f73b17a5670be89867769b207308a1badc9cc Mon Sep 17 00:00:00 2001 From: roll Date: Fri, 8 Aug 2025 12:26:30 +0100 Subject: [PATCH 47/80] Exclude docs from build --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index eb0d62aa..0fedb382 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "pnpm": "^10.0.0" }, "scripts": { - "build": "pnpm -r build", + "build": "pnpm -F '!docs' build", "bump": "ncu -ws -u", "ci:install": "pnpm install --ignore-scripts", "ci:publish": "pnpm -r publish --access public --ignore-scripts && changeset tag", From 6b0edb74c09c00354a0c7fc077742d010f5de07a Mon Sep 17 00:00:00 2001 From: roll Date: Fri, 8 Aug 2025 12:39:00 +0100 Subject: [PATCH 48/80] Rebased from main to exports --- arrow/package.json | 2 +- camtrap/package.json | 2 +- ckan/package.json | 2 +- core/package.json | 2 +- csv/package.json | 2 +- datahub/package.json | 2 +- db/package.json | 2 +- dpkit/package.json | 2 +- excel/package.json | 2 +- extend/package.json | 2 +- file/package.json | 2 +- folder/package.json | 2 +- github/package.json | 2 +- inline/package.json | 2 +- json/package.json | 2 +- ods/package.json | 2 +- parquet/package.json | 2 +- table/package.json | 2 +- test/package.json | 2 +- ui/package.json | 2 +- zenodo/package.json | 2 +- zip/package.json | 2 +- 22 files changed, 22 insertions(+), 22 deletions(-) diff --git a/arrow/package.json b/arrow/package.json index 07a2f4f7..8a851c70 100644 --- a/arrow/package.json +++ b/arrow/package.json @@ -1,7 +1,7 @@ { "name": "@dpkit/arrow", "type": "module", - "main": "build/index.js", + "exports": "./build/index.js", "version": "0.1.0", "license": "MIT", "author": "Evgeny Karev", diff --git a/camtrap/package.json b/camtrap/package.json index 1abbcaf6..b1f8e9fe 100644 --- a/camtrap/package.json +++ b/camtrap/package.json @@ -1,7 +1,7 @@ { "name": "@dpkit/camtrap", "type": "module", - "main": "build/index.js", + "exports": "./build/index.js", "version": "0.5.1", "license": "MIT", "author": "Evgeny Karev", diff --git a/ckan/package.json b/ckan/package.json index 6dd3e590..a82ae74f 100644 --- a/ckan/package.json +++ b/ckan/package.json @@ -1,7 +1,7 @@ { "name": "@dpkit/ckan", "type": "module", - "main": "build/index.js", + "exports": "./build/index.js", "version": "0.6.0", "license": "MIT", "author": "Evgeny Karev", diff --git a/core/package.json b/core/package.json index aa323e41..7c6effd6 100644 --- a/core/package.json +++ b/core/package.json @@ -1,7 +1,7 @@ { "name": "@dpkit/core", "type": "module", - "main": "build/index.js", + "exports": "./build/index.js", "version": "0.7.0", "license": "MIT", "author": "Evgeny Karev", diff --git a/csv/package.json b/csv/package.json index bd6a4583..9b9d4d33 100644 --- a/csv/package.json +++ b/csv/package.json @@ -1,7 +1,7 @@ { "name": "@dpkit/csv", "type": "module", - "main": "build/index.js", + "exports": "./build/index.js", "version": "0.3.0", "license": "MIT", "author": "Evgeny Karev", diff --git a/datahub/package.json b/datahub/package.json index 921c6b03..1df9042c 100644 --- a/datahub/package.json +++ b/datahub/package.json @@ -1,7 +1,7 @@ { "name": "@dpkit/datahub", "type": "module", - "main": "build/index.js", + "exports": "./build/index.js", "version": "0.7.0", "license": "MIT", "author": "Evgeny Karev", diff --git a/db/package.json b/db/package.json index d15c40e9..90319885 100644 --- a/db/package.json +++ b/db/package.json @@ -1,7 +1,7 @@ { "name": "@dpkit/db", "type": "module", - "main": "build/index.js", + "exports": "./build/index.js", "version": "0.2.0", "license": "MIT", "author": "Evgeny Karev", diff --git a/dpkit/package.json b/dpkit/package.json index 8b84ee04..e9638501 100644 --- a/dpkit/package.json +++ b/dpkit/package.json @@ -1,7 +1,7 @@ { "name": "dpkit", "type": "module", - "main": "build/index.js", + "exports": "./build/index.js", "version": "0.5.0", "license": "MIT", "author": "Evgeny Karev", diff --git a/excel/package.json b/excel/package.json index c4e0fe68..4c94b49c 100644 --- a/excel/package.json +++ b/excel/package.json @@ -1,7 +1,7 @@ { "name": "@dpkit/excel", "type": "module", - "main": "build/index.js", + "exports": "./build/index.js", "version": "0.2.0", "license": "MIT", "author": "Evgeny Karev", diff --git a/extend/package.json b/extend/package.json index 394fbef4..20bb7210 100644 --- a/extend/package.json +++ b/extend/package.json @@ -1,7 +1,7 @@ { "name": "@dpkit/extend", "type": "module", - "main": "build/index.js", + "exports": "./build/index.js", "version": "0.2.0", "license": "MIT", "author": "Evgeny Karev", diff --git a/file/package.json b/file/package.json index 7dcd8aaf..1dcdf17c 100644 --- a/file/package.json +++ b/file/package.json @@ -1,7 +1,7 @@ { "name": "@dpkit/file", "type": "module", - "main": "build/index.js", + "exports": "./build/index.js", "version": "0.7.0", "license": "MIT", "author": "Evgeny Karev", diff --git a/folder/package.json b/folder/package.json index f851dad6..f391b9f1 100644 --- a/folder/package.json +++ b/folder/package.json @@ -1,7 +1,7 @@ { "name": "@dpkit/folder", "type": "module", - "main": "build/index.js", + "exports": "./build/index.js", "version": "0.7.0", "license": "MIT", "author": "Evgeny Karev", diff --git a/github/package.json b/github/package.json index ba3f0c1f..9b793539 100644 --- a/github/package.json +++ b/github/package.json @@ -1,7 +1,7 @@ { "name": "@dpkit/github", "type": "module", - "main": "build/index.js", + "exports": "./build/index.js", "version": "0.7.0", "license": "MIT", "author": "Evgeny Karev", diff --git a/inline/package.json b/inline/package.json index c300456d..bd57aae5 100644 --- a/inline/package.json +++ b/inline/package.json @@ -1,7 +1,7 @@ { "name": "@dpkit/inline", "type": "module", - "main": "build/index.js", + "exports": "./build/index.js", "version": "0.5.0", "license": "MIT", "author": "Evgeny Karev", diff --git a/json/package.json b/json/package.json index 14f3205a..4c3d93f3 100644 --- a/json/package.json +++ b/json/package.json @@ -1,7 +1,7 @@ { "name": "@dpkit/json", "type": "module", - "main": "build/index.js", + "exports": "./build/index.js", "version": "0.2.0", "license": "MIT", "author": "Evgeny Karev", diff --git a/ods/package.json b/ods/package.json index 33c5fa3d..55fc9111 100644 --- a/ods/package.json +++ b/ods/package.json @@ -1,7 +1,7 @@ { "name": "@dpkit/ods", "type": "module", - "main": "build/index.js", + "exports": "./build/index.js", "version": "0.2.0", "license": "MIT", "author": "Evgeny Karev", diff --git a/parquet/package.json b/parquet/package.json index 3f00e874..f955bf05 100644 --- a/parquet/package.json +++ b/parquet/package.json @@ -1,7 +1,7 @@ { "name": "@dpkit/parquet", "type": "module", - "main": "build/index.js", + "exports": "./build/index.js", "version": "0.2.0", "license": "MIT", "author": "Evgeny Karev", diff --git a/table/package.json b/table/package.json index cd65dad1..95a020d1 100644 --- a/table/package.json +++ b/table/package.json @@ -1,7 +1,7 @@ { "name": "@dpkit/table", "type": "module", - "main": "build/index.js", + "exports": "./build/index.js", "version": "0.5.0", "license": "MIT", "author": "Evgeny Karev", diff --git a/test/package.json b/test/package.json index d9acc8fe..cb443e42 100644 --- a/test/package.json +++ b/test/package.json @@ -1,7 +1,7 @@ { "name": "@dpkit/test", "type": "module", - "main": "build/index.js", + "exports": "./build/index.js", "version": "0.1.0", "license": "MIT", "author": "Evgeny Karev", diff --git a/ui/package.json b/ui/package.json index c539c808..0a52f0fe 100644 --- a/ui/package.json +++ b/ui/package.json @@ -1,7 +1,7 @@ { "name": "@dpkit/ui", "type": "module", - "main": "build/index.js", + "exports": "./build/index.js", "version": "0.2.0", "license": "MIT", "author": "Evgeny Karev", diff --git a/zenodo/package.json b/zenodo/package.json index 37b97b09..7eb69d90 100644 --- a/zenodo/package.json +++ b/zenodo/package.json @@ -1,7 +1,7 @@ { "name": "@dpkit/zenodo", "type": "module", - "main": "build/index.js", + "exports": "./build/index.js", "version": "0.6.0", "license": "MIT", "author": "Evgeny Karev", diff --git a/zip/package.json b/zip/package.json index 23902618..cc584f4c 100644 --- a/zip/package.json +++ b/zip/package.json @@ -1,7 +1,7 @@ { "name": "@dpkit/zip", "type": "module", - "main": "build/index.js", + "exports": "./build/index.js", "version": "0.6.0", "license": "MIT", "author": "Evgeny Karev", From 30a4178d03988ee9a71b61f573871b537e92c191 Mon Sep 17 00:00:00 2001 From: roll Date: Fri, 8 Aug 2025 12:48:15 +0100 Subject: [PATCH 49/80] Rebased on ts extensions --- arrow/index.ts | 4 +-- arrow/plugin.ts | 2 +- arrow/table/index.ts | 4 +-- arrow/table/load.spec.ts | 2 +- arrow/table/save.spec.ts | 4 +-- camtrap/index.ts | 2 +- camtrap/package/assert.ts | 2 +- camtrap/package/index.ts | 4 +-- ckan/ckan/index.ts | 2 +- ckan/index.ts | 8 ++--- ckan/package/Package.ts | 6 ++-- ckan/package/index.ts | 10 +++--- ckan/package/load.spec.ts | 2 +- ckan/package/load.ts | 6 ++-- ckan/package/process/denormalize.spec.ts | 6 ++-- ckan/package/process/denormalize.ts | 8 ++--- ckan/package/process/normalize.spec.ts | 4 +-- ckan/package/process/normalize.ts | 4 +-- ckan/package/save.spec.ts | 2 +- ckan/package/save.ts | 8 ++--- ckan/plugin.ts | 2 +- ckan/resource/Resource.ts | 2 +- ckan/resource/index.ts | 4 +-- ckan/resource/process/denormalize.ts | 2 +- ckan/resource/process/normalize.ts | 4 +-- ckan/schema/Schema.ts | 2 +- ckan/schema/index.ts | 6 ++-- ckan/schema/process/denormalize.ts | 4 +-- ckan/schema/process/normalize.ts | 4 +-- core/dialect/Dialect.ts | 2 +- core/dialect/assert.spec.ts | 6 ++-- core/dialect/assert.ts | 6 ++-- core/dialect/index.ts | 14 ++++----- core/dialect/load.spec.ts | 4 +-- core/dialect/load.ts | 4 +-- core/dialect/process/denormalize.ts | 4 +-- core/dialect/process/normalize.ts | 2 +- core/dialect/save.spec.ts | 4 +-- core/dialect/save.ts | 6 ++-- core/dialect/validate.spec.ts | 2 +- core/dialect/validate.ts | 8 ++--- core/field/Field.ts | 2 +- core/field/index.ts | 6 ++-- core/field/process/denormalize.ts | 4 +-- core/field/process/normalize.ts | 2 +- core/field/types/Any.ts | 2 +- core/field/types/Array.ts | 2 +- core/field/types/Base.ts | 2 +- core/field/types/Boolean.ts | 2 +- core/field/types/Date.ts | 2 +- core/field/types/Datetime.ts | 2 +- core/field/types/Duration.ts | 2 +- core/field/types/Geojson.ts | 2 +- core/field/types/Geopoint.ts | 2 +- core/field/types/Integer.ts | 2 +- core/field/types/List.ts | 2 +- core/field/types/Number.ts | 2 +- core/field/types/Object.ts | 2 +- core/field/types/String.ts | 2 +- core/field/types/Time.ts | 2 +- core/field/types/Year.ts | 2 +- core/field/types/Yearmonth.ts | 2 +- core/field/types/index.ts | 32 ++++++++++---------- core/general/descriptor/load.spec.ts | 2 +- core/general/descriptor/load.ts | 6 ++-- core/general/descriptor/process/parse.ts | 2 +- core/general/descriptor/process/stringify.ts | 2 +- core/general/descriptor/save.spec.ts | 2 +- core/general/descriptor/save.ts | 6 ++-- core/general/descriptor/validate.spec.ts | 2 +- core/general/descriptor/validate.ts | 6 ++-- core/general/index.ts | 22 +++++++------- core/general/path.spec.ts | 2 +- core/general/path.ts | 2 +- core/general/profile/Profile.ts | 2 +- core/general/profile/ajv.ts | 2 +- core/general/profile/cache.ts | 4 +-- core/general/profile/load.ts | 8 ++--- core/general/profile/validate.ts | 10 +++--- core/index.ts | 14 ++++----- core/package/Package.ts | 6 ++-- core/package/assert.spec.ts | 6 ++-- core/package/assert.ts | 6 ++-- core/package/index.ts | 18 +++++------ core/package/load.spec.ts | 4 +-- core/package/load.ts | 4 +-- core/package/merge.ts | 4 +-- core/package/process/denormalize.ts | 6 ++-- core/package/process/normalize.ts | 4 +-- core/package/save.ts | 6 ++-- core/package/validate.spec.ts | 2 +- core/package/validate.ts | 8 ++--- core/plugin.ts | 2 +- core/resource/Resource.ts | 10 +++--- core/resource/assert.spec.ts | 6 ++-- core/resource/assert.ts | 6 ++-- core/resource/index.ts | 20 ++++++------ core/resource/infer.ts | 4 +-- core/resource/load.spec.ts | 4 +-- core/resource/load.ts | 4 +-- core/resource/process/denormalize.ts | 10 +++--- core/resource/process/normalize.ts | 8 ++--- core/resource/save.ts | 6 ++-- core/resource/validate.spec.ts | 2 +- core/resource/validate.ts | 14 ++++----- core/schema/Schema.ts | 6 ++-- core/schema/assert.spec.ts | 6 ++-- core/schema/assert.ts | 6 ++-- core/schema/index.ts | 16 +++++----- core/schema/load.spec.ts | 4 +-- core/schema/load.ts | 4 +-- core/schema/process/denormalize.ts | 4 +-- core/schema/process/normalize.ts | 4 +-- core/schema/save.spec.ts | 4 +-- core/schema/save.ts | 6 ++-- core/schema/validate.spec.ts | 2 +- core/schema/validate.ts | 8 ++--- csv/dialect/index.ts | 2 +- csv/dialect/infer.spec.ts | 2 +- csv/index.ts | 6 ++-- csv/plugin.ts | 4 +-- csv/table/index.ts | 4 +-- csv/table/load.spec.ts | 2 +- csv/table/save.spec.ts | 2 +- datahub/index.ts | 4 +-- datahub/package/index.ts | 2 +- datahub/package/load.spec.ts | 2 +- datahub/plugin.ts | 2 +- docs/astro.config.ts | 2 +- dpkit/dialect/index.ts | 2 +- dpkit/dialect/infer.ts | 2 +- dpkit/index.ts | 8 ++--- dpkit/package/index.ts | 4 +-- dpkit/package/load.ts | 2 +- dpkit/package/save.ts | 2 +- dpkit/table/index.ts | 8 ++--- dpkit/table/infer.ts | 4 +-- dpkit/table/load.ts | 2 +- dpkit/table/read.ts | 2 +- dpkit/table/save.ts | 2 +- dpkit/table/validate.ts | 2 +- file/file/copy.ts | 4 +-- file/file/fetch.ts | 4 +-- file/file/index.ts | 12 ++++---- file/file/load.ts | 2 +- file/file/save.ts | 2 +- file/index.ts | 8 ++--- file/package/index.ts | 2 +- file/package/path.spec.ts | 2 +- file/resource/index.ts | 2 +- file/resource/save.spec.ts | 2 +- file/stream/index.ts | 4 +-- folder/folder/index.ts | 4 +-- folder/index.ts | 6 ++-- folder/package/index.ts | 4 +-- folder/package/save.ts | 2 +- folder/plugin.ts | 2 +- github/github/index.ts | 2 +- github/index.ts | 6 ++-- github/package/Package.ts | 6 ++-- github/package/index.ts | 10 +++--- github/package/load.spec.ts | 2 +- github/package/load.ts | 8 ++--- github/package/process/denormalize.ts | 2 +- github/package/process/normalize.ts | 4 +-- github/package/save.spec.ts | 2 +- github/package/save.ts | 4 +-- github/plugin.ts | 2 +- github/resource/index.ts | 6 ++-- github/resource/process/denormalize.ts | 2 +- github/resource/process/normalize.ts | 2 +- inline/index.ts | 4 +-- inline/plugin.ts | 2 +- inline/table/index.ts | 2 +- inline/table/load.spec.ts | 2 +- json/buffer/index.ts | 4 +-- json/index.ts | 4 +-- json/plugin.ts | 4 +-- json/table/index.ts | 4 +-- json/table/load.spec.ts | 2 +- json/table/load.ts | 2 +- json/table/save.spec.ts | 2 +- json/table/save.ts | 2 +- parquet/index.ts | 4 +-- parquet/plugin.ts | 2 +- parquet/table/index.ts | 4 +-- parquet/table/load.spec.ts | 2 +- parquet/table/save.spec.ts | 4 +-- table/error/Cell.ts | 2 +- table/error/Field.ts | 2 +- table/error/Fields.ts | 2 +- table/error/Row.ts | 2 +- table/error/Table.ts | 8 ++--- table/error/index.ts | 2 +- table/field/checks/enum.spec.ts | 2 +- table/field/checks/enum.ts | 2 +- table/field/checks/maxLength.spec.ts | 2 +- table/field/checks/maxLength.ts | 2 +- table/field/checks/maximum.spec.ts | 2 +- table/field/checks/maximum.ts | 2 +- table/field/checks/minLength.spec.ts | 2 +- table/field/checks/minLength.ts | 2 +- table/field/checks/minimum.spec.ts | 2 +- table/field/checks/minimum.ts | 2 +- table/field/checks/pattern.spec.ts | 2 +- table/field/checks/pattern.ts | 2 +- table/field/checks/required.spec.ts | 2 +- table/field/checks/required.ts | 2 +- table/field/checks/type.spec.ts | 2 +- table/field/checks/type.ts | 2 +- table/field/checks/unique.spec.ts | 2 +- table/field/checks/unique.ts | 2 +- table/field/index.ts | 8 ++--- table/field/inspect.spec.ts | 2 +- table/field/inspect.ts | 24 +++++++-------- table/field/match.ts | 2 +- table/field/parse.spec.ts | 2 +- table/field/parse.ts | 30 +++++++++--------- table/field/types/array.spec.ts | 2 +- table/field/types/boolean.spec.ts | 2 +- table/field/types/date.spec.ts | 2 +- table/field/types/datetime.spec.ts | 2 +- table/field/types/duration.spec.ts | 2 +- table/field/types/geojson.spec.ts | 2 +- table/field/types/geopoint.spec.ts | 2 +- table/field/types/integer.spec.ts | 2 +- table/field/types/list.spec.ts | 2 +- table/field/types/number.spec.ts | 2 +- table/field/types/object.spec.ts | 2 +- table/field/types/string.spec.ts | 2 +- table/field/types/time.spec.ts | 2 +- table/field/types/year.spec.ts | 2 +- table/field/types/yearmonth.spec.ts | 2 +- table/index.ts | 10 +++--- table/plugin.ts | 2 +- table/row/checks/unique.spec.ts | 2 +- table/row/checks/unique.ts | 2 +- table/row/index.ts | 2 +- table/row/inspect.ts | 6 ++-- table/schema/Schema.ts | 2 +- table/schema/index.ts | 4 +-- table/schema/infer.spec.ts | 2 +- table/schema/infer.ts | 4 +-- table/table/index.ts | 6 ++-- table/table/inspect.spec.ts | 2 +- table/table/inspect.ts | 16 +++++----- table/table/process.spec.ts | 2 +- table/table/process.ts | 10 +++--- test/index.ts | 2 +- test/recording/index.ts | 2 +- zenodo/index.ts | 6 ++-- zenodo/package/Package.ts | 4 +-- zenodo/package/index.ts | 8 ++--- zenodo/package/load.spec.ts | 2 +- zenodo/package/load.ts | 6 ++-- zenodo/package/process/denormalize.ts | 4 +-- zenodo/package/process/normalize.ts | 4 +-- zenodo/package/save.spec.ts | 2 +- zenodo/package/save.ts | 6 ++-- zenodo/plugin.ts | 2 +- zenodo/resource/index.ts | 6 ++-- zenodo/resource/process/denormalize.ts | 2 +- zenodo/resource/process/normalize.ts | 2 +- zenodo/zenodo/index.ts | 2 +- zip/index.ts | 4 +-- zip/package/index.ts | 4 +-- zip/plugin.ts | 2 +- 267 files changed, 567 insertions(+), 567 deletions(-) diff --git a/arrow/index.ts b/arrow/index.ts index 14397550..5f4f33d9 100644 --- a/arrow/index.ts +++ b/arrow/index.ts @@ -1,2 +1,2 @@ -export * from "./table/index.js" -export * from "./plugin.js" +export * from "./table/index.ts" +export * from "./plugin.ts" diff --git a/arrow/plugin.ts b/arrow/plugin.ts index 16ff6396..865c79a9 100644 --- a/arrow/plugin.ts +++ b/arrow/plugin.ts @@ -2,7 +2,7 @@ import type { Resource } from "@dpkit/core" import { inferFormat } from "@dpkit/core" import type { TablePlugin } from "@dpkit/table" import type { SaveTableOptions, Table } from "@dpkit/table" -import { loadArrowTable, saveArrowTable } from "./table/index.js" +import { loadArrowTable, saveArrowTable } from "./table/index.ts" export class ArrowPlugin implements TablePlugin { async loadTable(resource: Partial) { diff --git a/arrow/table/index.ts b/arrow/table/index.ts index 70801a71..a65e5663 100644 --- a/arrow/table/index.ts +++ b/arrow/table/index.ts @@ -1,2 +1,2 @@ -export { loadArrowTable } from "./load.js" -export { saveArrowTable } from "./save.js" +export { loadArrowTable } from "./load.ts" +export { saveArrowTable } from "./save.ts" diff --git a/arrow/table/load.spec.ts b/arrow/table/load.spec.ts index f2fee7dc..cd78f74e 100644 --- a/arrow/table/load.spec.ts +++ b/arrow/table/load.spec.ts @@ -2,7 +2,7 @@ import { getTempFilePath } from "@dpkit/file" import { useRecording } from "@dpkit/test" import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { loadArrowTable } from "./load.js" +import { loadArrowTable } from "./load.ts" describe("loadArrowTable", () => { useRecording() diff --git a/arrow/table/save.spec.ts b/arrow/table/save.spec.ts index 47d0f487..41eef947 100644 --- a/arrow/table/save.spec.ts +++ b/arrow/table/save.spec.ts @@ -1,8 +1,8 @@ import { getTempFilePath } from "@dpkit/file" import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { loadArrowTable } from "./load.js" -import { saveArrowTable } from "./save.js" +import { loadArrowTable } from "./load.ts" +import { saveArrowTable } from "./save.ts" describe("saveArrowTable", () => { it("should save table to Arrow file", async () => { diff --git a/camtrap/index.ts b/camtrap/index.ts index 58d9fce6..a35642cf 100644 --- a/camtrap/index.ts +++ b/camtrap/index.ts @@ -1 +1 @@ -export * from "./package/index.js" +export * from "./package/index.ts" diff --git a/camtrap/package/assert.ts b/camtrap/package/assert.ts index 9394daf1..1f5915df 100644 --- a/camtrap/package/assert.ts +++ b/camtrap/package/assert.ts @@ -1,6 +1,6 @@ import { AssertionError, validatePackageDescriptor } from "@dpkit/core" import type { Descriptor, Package } from "@dpkit/core" -import type { CamtrapPackage } from "./Package.js" +import type { CamtrapPackage } from "./Package.ts" const SUPPORTED_PROFILES = [ "https://raw.githubusercontent.com/tdwg/camtrap-dp/1.0/camtrap-dp-profile.json", diff --git a/camtrap/package/index.ts b/camtrap/package/index.ts index 9b8ce884..4d7e73c5 100644 --- a/camtrap/package/index.ts +++ b/camtrap/package/index.ts @@ -1,2 +1,2 @@ -export type { CamtrapPackage } from "./Package.js" -export { assertCamtrapPackage } from "./assert.js" +export type { CamtrapPackage } from "./Package.ts" +export { assertCamtrapPackage } from "./assert.ts" diff --git a/ckan/ckan/index.ts b/ckan/ckan/index.ts index bc7f046f..f149c005 100644 --- a/ckan/ckan/index.ts +++ b/ckan/ckan/index.ts @@ -1 +1 @@ -export { makeCkanApiRequest } from "./request.js" +export { makeCkanApiRequest } from "./request.ts" diff --git a/ckan/index.ts b/ckan/index.ts index 461b024e..9f97e644 100644 --- a/ckan/index.ts +++ b/ckan/index.ts @@ -1,4 +1,4 @@ -export * from "./package/index.js" -export * from "./resource/index.js" -export * from "./schema/index.js" -export * from "./plugin.js" +export * from "./package/index.ts" +export * from "./resource/index.ts" +export * from "./schema/index.ts" +export * from "./plugin.ts" diff --git a/ckan/package/Package.ts b/ckan/package/Package.ts index 7e9bdaf9..c0fa7413 100644 --- a/ckan/package/Package.ts +++ b/ckan/package/Package.ts @@ -1,6 +1,6 @@ -import type { CkanResource } from "../resource/index.js" -import type { CkanOrganization } from "./Organization.js" -import type { CkanTag } from "./Tag.js" +import type { CkanResource } from "../resource/index.ts" +import type { CkanOrganization } from "./Organization.ts" +import type { CkanTag } from "./Tag.ts" /** * CKAN Package interface diff --git a/ckan/package/index.ts b/ckan/package/index.ts index b044a3b3..d4712fdc 100644 --- a/ckan/package/index.ts +++ b/ckan/package/index.ts @@ -1,5 +1,5 @@ -export type { CkanPackage } from "./Package.js" -export type { CkanOrganization } from "./Organization.js" -export type { CkanTag } from "./Tag.js" -export { loadPackageFromCkan } from "./load.js" -export { savePackageToCkan } from "./save.js" +export type { CkanPackage } from "./Package.ts" +export type { CkanOrganization } from "./Organization.ts" +export type { CkanTag } from "./Tag.ts" +export { loadPackageFromCkan } from "./load.ts" +export { savePackageToCkan } from "./save.ts" diff --git a/ckan/package/load.spec.ts b/ckan/package/load.spec.ts index 02c3062e..2501ee43 100644 --- a/ckan/package/load.spec.ts +++ b/ckan/package/load.spec.ts @@ -1,6 +1,6 @@ import { useRecording } from "@dpkit/test" import { describe, expect, it } from "vitest" -import { loadPackageFromCkan } from "./load.js" +import { loadPackageFromCkan } from "./load.ts" describe("loadPackageFromCkan", () => { useRecording() diff --git a/ckan/package/load.ts b/ckan/package/load.ts index 6c445e63..d63e92e0 100644 --- a/ckan/package/load.ts +++ b/ckan/package/load.ts @@ -1,7 +1,7 @@ import { mergePackages } from "@dpkit/core" -import { makeCkanApiRequest } from "../ckan/index.js" -import type { CkanPackage } from "./Package.js" -import { normalizeCkanPackage } from "./process/normalize.js" +import { makeCkanApiRequest } from "../ckan/index.ts" +import type { CkanPackage } from "./Package.ts" +import { normalizeCkanPackage } from "./process/normalize.ts" /** * Load a package from a CKAN instance diff --git a/ckan/package/process/denormalize.spec.ts b/ckan/package/process/denormalize.spec.ts index 358e73b9..17ae1f3d 100644 --- a/ckan/package/process/denormalize.spec.ts +++ b/ckan/package/process/denormalize.spec.ts @@ -1,11 +1,11 @@ import type { Package } from "@dpkit/core" import { describe, expect, it } from "vitest" -import type { CkanPackage } from "../Package.js" +import type { CkanPackage } from "../Package.ts" import ckanPackageFixture from "../fixtures/ckan-package.json" with { type: "json", } -import { denormalizeCkanPackage } from "./denormalize.js" -import { normalizeCkanPackage } from "./normalize.js" +import { denormalizeCkanPackage } from "./denormalize.ts" +import { normalizeCkanPackage } from "./normalize.ts" describe("denormalizeCkanPackage", () => { it("denormalizes a Frictionless Data Package to a CKAN package", () => { diff --git a/ckan/package/process/denormalize.ts b/ckan/package/process/denormalize.ts index 0eb3b9cf..24e845bf 100644 --- a/ckan/package/process/denormalize.ts +++ b/ckan/package/process/denormalize.ts @@ -1,9 +1,9 @@ import type { Package } from "@dpkit/core" import type { SetRequired } from "type-fest" -import type { CkanResource } from "../../resource/Resource.js" -import { denormalizeCkanResource } from "../../resource/process/denormalize.js" -import type { CkanPackage } from "../Package.js" -import type { CkanTag } from "../Tag.js" +import type { CkanResource } from "../../resource/Resource.ts" +import { denormalizeCkanResource } from "../../resource/process/denormalize.ts" +import type { CkanPackage } from "../Package.ts" +import type { CkanTag } from "../Tag.ts" /** * Denormalizes a Frictionless Data Package to CKAN Package format diff --git a/ckan/package/process/normalize.spec.ts b/ckan/package/process/normalize.spec.ts index ae5e1f2b..a7b15f1a 100644 --- a/ckan/package/process/normalize.spec.ts +++ b/ckan/package/process/normalize.spec.ts @@ -1,9 +1,9 @@ import { describe, expect, it } from "vitest" -import type { CkanPackage } from "../Package.js" +import type { CkanPackage } from "../Package.ts" import ckanPackageFixture from "../fixtures/ckan-package.json" with { type: "json", } -import { normalizeCkanPackage } from "./normalize.js" +import { normalizeCkanPackage } from "./normalize.ts" describe("normalizeCkanPackage", () => { it("normalizes a CKAN package to a Frictionless Data Package", () => { diff --git a/ckan/package/process/normalize.ts b/ckan/package/process/normalize.ts index 7a5e7103..2fb73e04 100644 --- a/ckan/package/process/normalize.ts +++ b/ckan/package/process/normalize.ts @@ -1,7 +1,7 @@ import type { Contributor, Package } from "@dpkit/core" import type { License } from "@dpkit/core" -import { normalizeCkanResource } from "../../resource/process/normalize.js" -import type { CkanPackage } from "../Package.js" +import { normalizeCkanResource } from "../../resource/process/normalize.ts" +import type { CkanPackage } from "../Package.ts" /** * Normalizes a CKAN package to Frictionless Data package format diff --git a/ckan/package/save.spec.ts b/ckan/package/save.spec.ts index 4537798b..d0963cef 100644 --- a/ckan/package/save.spec.ts +++ b/ckan/package/save.spec.ts @@ -1,7 +1,7 @@ import { loadPackageDescriptor } from "@dpkit/core" //import { useRecording } from "@dpkit/test" import { describe, expect, it } from "vitest" -import { savePackageToCkan } from "./save.js" +import { savePackageToCkan } from "./save.ts" describe("savePackageToCkan", () => { //useRecording() diff --git a/ckan/package/save.ts b/ckan/package/save.ts index 28991dcb..72fd4b81 100644 --- a/ckan/package/save.ts +++ b/ckan/package/save.ts @@ -11,10 +11,10 @@ import { loadFileStream, saveResourceFiles, } from "@dpkit/file" -import { makeCkanApiRequest } from "../ckan/index.js" -import type { CkanResource } from "../resource/index.js" -import { denormalizeCkanResource } from "../resource/index.js" -import { denormalizeCkanPackage } from "./process/denormalize.js" +import { makeCkanApiRequest } from "../ckan/index.ts" +import type { CkanResource } from "../resource/index.ts" +import { denormalizeCkanResource } from "../resource/index.ts" +import { denormalizeCkanPackage } from "./process/denormalize.ts" export async function savePackageToCkan( dataPackage: Package, diff --git a/ckan/plugin.ts b/ckan/plugin.ts index 594214b6..cf84f1de 100644 --- a/ckan/plugin.ts +++ b/ckan/plugin.ts @@ -1,6 +1,6 @@ import type { Plugin } from "@dpkit/core" import { isRemotePath } from "@dpkit/core" -import { loadPackageFromCkan } from "./package/load.js" +import { loadPackageFromCkan } from "./package/load.ts" export class CkanPlugin implements Plugin { async loadPackage(source: string) { diff --git a/ckan/resource/Resource.ts b/ckan/resource/Resource.ts index e5f5798b..ea788a40 100644 --- a/ckan/resource/Resource.ts +++ b/ckan/resource/Resource.ts @@ -1,5 +1,5 @@ import type { SetRequired } from "type-fest" -import type { CkanSchema } from "../schema/index.js" +import type { CkanSchema } from "../schema/index.ts" /** * CKAN Resource interface diff --git a/ckan/resource/index.ts b/ckan/resource/index.ts index 289209b3..35de3bcb 100644 --- a/ckan/resource/index.ts +++ b/ckan/resource/index.ts @@ -1,2 +1,2 @@ -export type { CkanResource } from "./Resource.js" -export { denormalizeCkanResource } from "./process/denormalize.js" +export type { CkanResource } from "./Resource.ts" +export { denormalizeCkanResource } from "./process/denormalize.ts" diff --git a/ckan/resource/process/denormalize.ts b/ckan/resource/process/denormalize.ts index 35480bb7..a5369387 100644 --- a/ckan/resource/process/denormalize.ts +++ b/ckan/resource/process/denormalize.ts @@ -1,5 +1,5 @@ import type { Resource } from "@dpkit/core" -import type { CkanResource } from "../Resource.js" +import type { CkanResource } from "../Resource.ts" /** * Denormalizes a Frictionless Data Resource to CKAN Resource format diff --git a/ckan/resource/process/normalize.ts b/ckan/resource/process/normalize.ts index 80b1f252..ac130ec3 100644 --- a/ckan/resource/process/normalize.ts +++ b/ckan/resource/process/normalize.ts @@ -1,7 +1,7 @@ import type { Resource } from "@dpkit/core" import { getFilename } from "@dpkit/core" -import { normalizeCkanSchema } from "../../schema/index.js" -import type { CkanResource } from "../Resource.js" +import { normalizeCkanSchema } from "../../schema/index.ts" +import type { CkanResource } from "../Resource.ts" /** * Normalizes a CKAN resource to Frictionless Data Resource format diff --git a/ckan/schema/Schema.ts b/ckan/schema/Schema.ts index 2c495b7e..2397efb2 100644 --- a/ckan/schema/Schema.ts +++ b/ckan/schema/Schema.ts @@ -1,4 +1,4 @@ -import type { CkanField } from "./Field.js" +import type { CkanField } from "./Field.ts" /** * CKAN Schema interface diff --git a/ckan/schema/index.ts b/ckan/schema/index.ts index 36622694..b4084269 100644 --- a/ckan/schema/index.ts +++ b/ckan/schema/index.ts @@ -1,3 +1,3 @@ -export type { CkanSchema } from "./Schema.js" -export type { CkanField } from "./Field.js" -export { normalizeCkanSchema } from "./process/normalize.js" +export type { CkanSchema } from "./Schema.ts" +export type { CkanField } from "./Field.ts" +export { normalizeCkanSchema } from "./process/normalize.ts" diff --git a/ckan/schema/process/denormalize.ts b/ckan/schema/process/denormalize.ts index 3c0c4ad6..220cd6ff 100644 --- a/ckan/schema/process/denormalize.ts +++ b/ckan/schema/process/denormalize.ts @@ -1,6 +1,6 @@ import type { Field, Schema } from "@dpkit/core" -import type { CkanField, CkanFieldInfo } from "../Field.js" -import type { CkanSchema } from "../Schema.js" +import type { CkanField, CkanFieldInfo } from "../Field.ts" +import type { CkanSchema } from "../Schema.ts" /** * Denormalizes a Table Schema to a CKAN schema format diff --git a/ckan/schema/process/normalize.ts b/ckan/schema/process/normalize.ts index fe0ebaa7..ddf5314b 100644 --- a/ckan/schema/process/normalize.ts +++ b/ckan/schema/process/normalize.ts @@ -10,8 +10,8 @@ import type { StringField, TimeField, } from "@dpkit/core" -import type { CkanField } from "../Field.js" -import type { CkanSchema } from "../Schema.js" +import type { CkanField } from "../Field.ts" +import type { CkanSchema } from "../Schema.ts" /** * Normalizes a CKAN schema to a Table Schema format diff --git a/core/dialect/Dialect.ts b/core/dialect/Dialect.ts index 960bf4fa..73249daf 100644 --- a/core/dialect/Dialect.ts +++ b/core/dialect/Dialect.ts @@ -1,4 +1,4 @@ -import type { Metadata } from "../general/index.js" +import type { Metadata } from "../general/index.ts" /** * Descriptor that describes the structure of tabular data, such as delimiters, diff --git a/core/dialect/assert.spec.ts b/core/dialect/assert.spec.ts index 52dad36d..f0fc9eb5 100644 --- a/core/dialect/assert.spec.ts +++ b/core/dialect/assert.spec.ts @@ -1,7 +1,7 @@ import { describe, expect, expectTypeOf, it } from "vitest" -import { AssertionError } from "../general/index.js" -import type { Dialect } from "./Dialect.js" -import { assertDialect } from "./assert.js" +import { AssertionError } from "../general/index.ts" +import type { Dialect } from "./Dialect.ts" +import { assertDialect } from "./assert.ts" describe("assertDialect", () => { it("returns typed dialect when valid", async () => { diff --git a/core/dialect/assert.ts b/core/dialect/assert.ts index 090e4bc7..b87140eb 100644 --- a/core/dialect/assert.ts +++ b/core/dialect/assert.ts @@ -1,6 +1,6 @@ -import { AssertionError, type Descriptor } from "../general/index.js" -import type { Dialect } from "./Dialect.js" -import { validateDialect } from "./validate.js" +import { AssertionError, type Descriptor } from "../general/index.ts" +import type { Dialect } from "./Dialect.ts" +import { validateDialect } from "./validate.ts" /** * Assert a Dialect descriptor (JSON Object) against its profile diff --git a/core/dialect/index.ts b/core/dialect/index.ts index fd850fa3..8ddda4d2 100644 --- a/core/dialect/index.ts +++ b/core/dialect/index.ts @@ -1,7 +1,7 @@ -export { assertDialect } from "./assert.js" -export { validateDialect } from "./validate.js" -export type { Dialect } from "./Dialect.js" -export { loadDialect } from "./load.js" -export { saveDialect } from "./save.js" -export { normalizeDialect } from "./process/normalize.js" -export { denormalizeDialect } from "./process/denormalize.js" +export { assertDialect } from "./assert.ts" +export { validateDialect } from "./validate.ts" +export type { Dialect } from "./Dialect.ts" +export { loadDialect } from "./load.ts" +export { saveDialect } from "./save.ts" +export { normalizeDialect } from "./process/normalize.ts" +export { denormalizeDialect } from "./process/denormalize.ts" diff --git a/core/dialect/load.spec.ts b/core/dialect/load.spec.ts index 2b0c18bc..b58aaef0 100644 --- a/core/dialect/load.spec.ts +++ b/core/dialect/load.spec.ts @@ -1,7 +1,7 @@ import { join } from "node:path" import { describe, expect, expectTypeOf, it } from "vitest" -import type { Dialect } from "./Dialect.js" -import { loadDialect } from "./load.js" +import type { Dialect } from "./Dialect.ts" +import { loadDialect } from "./load.ts" describe("loadDialect", async () => { const getFixturePath = (name: string) => join(__dirname, "fixtures", name) diff --git a/core/dialect/load.ts b/core/dialect/load.ts index c7966b6e..6beba344 100644 --- a/core/dialect/load.ts +++ b/core/dialect/load.ts @@ -1,5 +1,5 @@ -import { loadDescriptor } from "../general/index.js" -import { assertDialect } from "./assert.js" +import { loadDescriptor } from "../general/index.ts" +import { assertDialect } from "./assert.ts" /** * Load a Dialect descriptor (JSON Object) from a file or URL diff --git a/core/dialect/process/denormalize.ts b/core/dialect/process/denormalize.ts index ff212a4b..17666b10 100644 --- a/core/dialect/process/denormalize.ts +++ b/core/dialect/process/denormalize.ts @@ -1,5 +1,5 @@ -import type { Descriptor } from "../../general/index.js" -import type { Dialect } from "../Dialect.js" +import type { Descriptor } from "../../general/index.ts" +import type { Dialect } from "../Dialect.ts" export function denormalizeDialect(dialect: Dialect) { dialect = globalThis.structuredClone(dialect) diff --git a/core/dialect/process/normalize.ts b/core/dialect/process/normalize.ts index e7e13052..8da6af89 100644 --- a/core/dialect/process/normalize.ts +++ b/core/dialect/process/normalize.ts @@ -1,4 +1,4 @@ -import type { Descriptor } from "../../general/index.js" +import type { Descriptor } from "../../general/index.ts" export function normalizeDialect(descriptor: Descriptor) { descriptor = globalThis.structuredClone(descriptor) diff --git a/core/dialect/save.spec.ts b/core/dialect/save.spec.ts index 4cbcfcd4..9daa4963 100644 --- a/core/dialect/save.spec.ts +++ b/core/dialect/save.spec.ts @@ -2,8 +2,8 @@ import * as fs from "node:fs/promises" import * as path from "node:path" import { temporaryDirectory } from "tempy" import { afterEach, beforeEach, describe, expect, it } from "vitest" -import type { Dialect } from "./Dialect.js" -import { saveDialect } from "./save.js" +import type { Dialect } from "./Dialect.ts" +import { saveDialect } from "./save.ts" describe("saveDialect", () => { const testDialect: Dialect = { diff --git a/core/dialect/save.ts b/core/dialect/save.ts index bf50476e..bdcd89e7 100644 --- a/core/dialect/save.ts +++ b/core/dialect/save.ts @@ -1,6 +1,6 @@ -import { saveDescriptor } from "../general/index.js" -import type { Dialect } from "./Dialect.js" -import { denormalizeDialect } from "./process/denormalize.js" +import { saveDescriptor } from "../general/index.ts" +import type { Dialect } from "./Dialect.ts" +import { denormalizeDialect } from "./process/denormalize.ts" const CURRENT_PROFILE = "https://datapackage.org/profiles/2.0/tabledialect.json" diff --git a/core/dialect/validate.spec.ts b/core/dialect/validate.spec.ts index b4ae018b..4fb4cad6 100644 --- a/core/dialect/validate.spec.ts +++ b/core/dialect/validate.spec.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from "vitest" -import { validateDialect } from "./validate.js" +import { validateDialect } from "./validate.ts" describe("validateDialect", () => { it("returns valid result for valid dialect", async () => { diff --git a/core/dialect/validate.ts b/core/dialect/validate.ts index 25ebf818..f676dc6b 100644 --- a/core/dialect/validate.ts +++ b/core/dialect/validate.ts @@ -1,7 +1,7 @@ -import { type Descriptor, validateDescriptor } from "../general/index.js" -import { loadProfile } from "../general/index.js" -import type { Dialect } from "./Dialect.js" -import { normalizeDialect } from "./process/normalize.js" +import { type Descriptor, validateDescriptor } from "../general/index.ts" +import { loadProfile } from "../general/index.ts" +import type { Dialect } from "./Dialect.ts" +import { normalizeDialect } from "./process/normalize.ts" const DEFAULT_PROFILE = "https://datapackage.org/profiles/1.0/tabledialect.json" diff --git a/core/field/Field.ts b/core/field/Field.ts index cf78669a..526d6c74 100644 --- a/core/field/Field.ts +++ b/core/field/Field.ts @@ -1,4 +1,4 @@ -import type * as fields from "./types/index.js" +import type * as fields from "./types/index.ts" /** * A Table Schema field diff --git a/core/field/index.ts b/core/field/index.ts index 1dfbcf00..2c797109 100644 --- a/core/field/index.ts +++ b/core/field/index.ts @@ -1,3 +1,3 @@ -export type { Field } from "./Field.js" -export type * from "./types/index.js" -export { normalizeField } from "./process/normalize.js" +export type { Field } from "./Field.ts" +export type * from "./types/index.ts" +export { normalizeField } from "./process/normalize.ts" diff --git a/core/field/process/denormalize.ts b/core/field/process/denormalize.ts index e2b24ed6..264b70e9 100644 --- a/core/field/process/denormalize.ts +++ b/core/field/process/denormalize.ts @@ -1,5 +1,5 @@ -import type { Descriptor } from "../../general/index.js" -import type { Field } from "../Field.js" +import type { Descriptor } from "../../general/index.ts" +import type { Field } from "../Field.ts" export function denormalizeField(field: Field) { field = globalThis.structuredClone(field) diff --git a/core/field/process/normalize.ts b/core/field/process/normalize.ts index 4c8d546a..af4af06a 100644 --- a/core/field/process/normalize.ts +++ b/core/field/process/normalize.ts @@ -1,4 +1,4 @@ -import type { Descriptor } from "../../general/index.js" +import type { Descriptor } from "../../general/index.ts" export function normalizeField(descriptor: Descriptor) { descriptor = globalThis.structuredClone(descriptor) diff --git a/core/field/types/Any.ts b/core/field/types/Any.ts index 8fd2b7d5..e3a6e13a 100644 --- a/core/field/types/Any.ts +++ b/core/field/types/Any.ts @@ -1,4 +1,4 @@ -import type { BaseConstraints, BaseField } from "./Base.js" +import type { BaseConstraints, BaseField } from "./Base.ts" /** * Any field type (unspecified/mixed) diff --git a/core/field/types/Array.ts b/core/field/types/Array.ts index 2030646e..4f25a898 100644 --- a/core/field/types/Array.ts +++ b/core/field/types/Array.ts @@ -1,4 +1,4 @@ -import type { BaseConstraints, BaseField } from "./Base.js" +import type { BaseConstraints, BaseField } from "./Base.ts" /** * Array field type (serialized JSON array) diff --git a/core/field/types/Base.ts b/core/field/types/Base.ts index 81340175..b8371bd6 100644 --- a/core/field/types/Base.ts +++ b/core/field/types/Base.ts @@ -1,4 +1,4 @@ -import type { Metadata } from "../../general/index.js" +import type { Metadata } from "../../general/index.ts" /** * Base field properties common to all field types diff --git a/core/field/types/Boolean.ts b/core/field/types/Boolean.ts index 3dfd706d..21252989 100644 --- a/core/field/types/Boolean.ts +++ b/core/field/types/Boolean.ts @@ -1,4 +1,4 @@ -import type { BaseConstraints, BaseField } from "./Base.js" +import type { BaseConstraints, BaseField } from "./Base.ts" /** * Boolean field type diff --git a/core/field/types/Date.ts b/core/field/types/Date.ts index 82522db8..99438926 100644 --- a/core/field/types/Date.ts +++ b/core/field/types/Date.ts @@ -1,4 +1,4 @@ -import type { BaseConstraints, BaseField } from "./Base.js" +import type { BaseConstraints, BaseField } from "./Base.ts" /** * Date field type diff --git a/core/field/types/Datetime.ts b/core/field/types/Datetime.ts index 829ceb84..af37faf2 100644 --- a/core/field/types/Datetime.ts +++ b/core/field/types/Datetime.ts @@ -1,4 +1,4 @@ -import type { BaseConstraints, BaseField } from "./Base.js" +import type { BaseConstraints, BaseField } from "./Base.ts" /** * Datetime field type diff --git a/core/field/types/Duration.ts b/core/field/types/Duration.ts index 6fed9c98..96d22708 100644 --- a/core/field/types/Duration.ts +++ b/core/field/types/Duration.ts @@ -1,4 +1,4 @@ -import type { BaseConstraints, BaseField } from "./Base.js" +import type { BaseConstraints, BaseField } from "./Base.ts" /** * Duration field type (ISO 8601 duration) diff --git a/core/field/types/Geojson.ts b/core/field/types/Geojson.ts index a445667c..1151dea0 100644 --- a/core/field/types/Geojson.ts +++ b/core/field/types/Geojson.ts @@ -1,4 +1,4 @@ -import type { BaseConstraints, BaseField } from "./Base.js" +import type { BaseConstraints, BaseField } from "./Base.ts" /** * GeoJSON field type diff --git a/core/field/types/Geopoint.ts b/core/field/types/Geopoint.ts index e1e3ebae..eef21af6 100644 --- a/core/field/types/Geopoint.ts +++ b/core/field/types/Geopoint.ts @@ -1,4 +1,4 @@ -import type { BaseConstraints, BaseField } from "./Base.js" +import type { BaseConstraints, BaseField } from "./Base.ts" /** * Geopoint field type diff --git a/core/field/types/Integer.ts b/core/field/types/Integer.ts index b5fc447e..86fa1462 100644 --- a/core/field/types/Integer.ts +++ b/core/field/types/Integer.ts @@ -1,4 +1,4 @@ -import type { BaseConstraints, BaseField } from "./Base.js" +import type { BaseConstraints, BaseField } from "./Base.ts" /** * Integer field type diff --git a/core/field/types/List.ts b/core/field/types/List.ts index 9357b045..cb2d595d 100644 --- a/core/field/types/List.ts +++ b/core/field/types/List.ts @@ -1,4 +1,4 @@ -import type { BaseConstraints, BaseField } from "./Base.js" +import type { BaseConstraints, BaseField } from "./Base.ts" /** * List field type (primitive values ordered collection) diff --git a/core/field/types/Number.ts b/core/field/types/Number.ts index b64534ea..271c72f6 100644 --- a/core/field/types/Number.ts +++ b/core/field/types/Number.ts @@ -1,4 +1,4 @@ -import type { BaseConstraints, BaseField } from "./Base.js" +import type { BaseConstraints, BaseField } from "./Base.ts" /** * Number field type diff --git a/core/field/types/Object.ts b/core/field/types/Object.ts index d4aa8825..ccfc6c62 100644 --- a/core/field/types/Object.ts +++ b/core/field/types/Object.ts @@ -1,4 +1,4 @@ -import type { BaseConstraints, BaseField } from "./Base.js" +import type { BaseConstraints, BaseField } from "./Base.ts" /** * Object field type (serialized JSON object) diff --git a/core/field/types/String.ts b/core/field/types/String.ts index 0dd6ccac..1fa494b5 100644 --- a/core/field/types/String.ts +++ b/core/field/types/String.ts @@ -1,4 +1,4 @@ -import type { BaseConstraints, BaseField } from "./Base.js" +import type { BaseConstraints, BaseField } from "./Base.ts" /** * String field type diff --git a/core/field/types/Time.ts b/core/field/types/Time.ts index 92edd511..8b9128ea 100644 --- a/core/field/types/Time.ts +++ b/core/field/types/Time.ts @@ -1,4 +1,4 @@ -import type { BaseConstraints, BaseField } from "./Base.js" +import type { BaseConstraints, BaseField } from "./Base.ts" /** * Time field type diff --git a/core/field/types/Year.ts b/core/field/types/Year.ts index 8432cd21..ed664d5b 100644 --- a/core/field/types/Year.ts +++ b/core/field/types/Year.ts @@ -1,4 +1,4 @@ -import type { BaseConstraints, BaseField } from "./Base.js" +import type { BaseConstraints, BaseField } from "./Base.ts" /** * Year field type diff --git a/core/field/types/Yearmonth.ts b/core/field/types/Yearmonth.ts index 6d7b0475..6e06c9c6 100644 --- a/core/field/types/Yearmonth.ts +++ b/core/field/types/Yearmonth.ts @@ -1,4 +1,4 @@ -import type { BaseConstraints, BaseField } from "./Base.js" +import type { BaseConstraints, BaseField } from "./Base.ts" /** * Year and month field type diff --git a/core/field/types/index.ts b/core/field/types/index.ts index 06dbe21c..b4ee200a 100644 --- a/core/field/types/index.ts +++ b/core/field/types/index.ts @@ -1,16 +1,16 @@ -export * from "./Any.js" -export * from "./String.js" -export * from "./Number.js" -export * from "./Integer.js" -export * from "./Boolean.js" -export * from "./Object.js" -export * from "./Array.js" -export * from "./List.js" -export * from "./Date.js" -export * from "./Time.js" -export * from "./Datetime.js" -export * from "./Year.js" -export * from "./Yearmonth.js" -export * from "./Duration.js" -export * from "./Geopoint.js" -export * from "./Geojson.js" +export * from "./Any.ts" +export * from "./String.ts" +export * from "./Number.ts" +export * from "./Integer.ts" +export * from "./Boolean.ts" +export * from "./Object.ts" +export * from "./Array.ts" +export * from "./List.ts" +export * from "./Date.ts" +export * from "./Time.ts" +export * from "./Datetime.ts" +export * from "./Year.ts" +export * from "./Yearmonth.ts" +export * from "./Duration.ts" +export * from "./Geopoint.ts" +export * from "./Geojson.ts" diff --git a/core/general/descriptor/load.spec.ts b/core/general/descriptor/load.spec.ts index deb81715..bfc9b75b 100644 --- a/core/general/descriptor/load.spec.ts +++ b/core/general/descriptor/load.spec.ts @@ -1,6 +1,6 @@ import path from "node:path" import { afterEach, describe, expect, it, vi } from "vitest" -import { loadDescriptor } from "./load.js" +import { loadDescriptor } from "./load.ts" describe("loadDescriptor", () => { const getFixturePath = (name?: string) => diff --git a/core/general/descriptor/load.ts b/core/general/descriptor/load.ts index 395a7271..4898a382 100644 --- a/core/general/descriptor/load.ts +++ b/core/general/descriptor/load.ts @@ -1,6 +1,6 @@ -import { node } from "../node.js" -import { getBasepath, isRemotePath } from "../path.js" -import { parseDescriptor } from "./process/parse.js" +import { node } from "../node.ts" +import { getBasepath, isRemotePath } from "../path.ts" +import { parseDescriptor } from "./process/parse.ts" /** * Load a descriptor (JSON Object) from a file or URL diff --git a/core/general/descriptor/process/parse.ts b/core/general/descriptor/process/parse.ts index f2f3cde7..0c42cb1d 100644 --- a/core/general/descriptor/process/parse.ts +++ b/core/general/descriptor/process/parse.ts @@ -1,4 +1,4 @@ -import type { Descriptor } from "../Descriptor.js" +import type { Descriptor } from "../Descriptor.ts" export function parseDescriptor(text: string) { const value = JSON.parse(text) diff --git a/core/general/descriptor/process/stringify.ts b/core/general/descriptor/process/stringify.ts index 92c9ee68..a782f77b 100644 --- a/core/general/descriptor/process/stringify.ts +++ b/core/general/descriptor/process/stringify.ts @@ -1,4 +1,4 @@ -import type { Descriptor } from "../Descriptor.js" +import type { Descriptor } from "../Descriptor.ts" export function stringifyDescriptor(descriptor: Descriptor) { return JSON.stringify(descriptor, null, 2) diff --git a/core/general/descriptor/save.spec.ts b/core/general/descriptor/save.spec.ts index e75ad313..1951ca6a 100644 --- a/core/general/descriptor/save.spec.ts +++ b/core/general/descriptor/save.spec.ts @@ -2,7 +2,7 @@ import * as fs from "node:fs/promises" import * as path from "node:path" import { temporaryDirectory } from "tempy" import { afterEach, beforeEach, describe, expect, it } from "vitest" -import { saveDescriptor } from "./save.js" +import { saveDescriptor } from "./save.ts" describe("saveDescriptor", () => { const testDescriptor = { diff --git a/core/general/descriptor/save.ts b/core/general/descriptor/save.ts index e87d5e2e..cd97ab0f 100644 --- a/core/general/descriptor/save.ts +++ b/core/general/descriptor/save.ts @@ -1,6 +1,6 @@ -import { node } from "../node.js" -import type { Descriptor } from "./Descriptor.js" -import { stringifyDescriptor } from "./process/stringify.js" +import { node } from "../node.ts" +import type { Descriptor } from "./Descriptor.ts" +import { stringifyDescriptor } from "./process/stringify.ts" /** * Save a descriptor (JSON Object) to a file path diff --git a/core/general/descriptor/validate.spec.ts b/core/general/descriptor/validate.spec.ts index c4c8dd42..accf7f2c 100644 --- a/core/general/descriptor/validate.spec.ts +++ b/core/general/descriptor/validate.spec.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from "vitest" -import { validateDescriptor } from "./validate.js" +import { validateDescriptor } from "./validate.ts" describe("validateDescriptor", () => { it("returns empty array for valid descriptor", async () => { diff --git a/core/general/descriptor/validate.ts b/core/general/descriptor/validate.ts index a7e5d2f6..b046c164 100644 --- a/core/general/descriptor/validate.ts +++ b/core/general/descriptor/validate.ts @@ -1,6 +1,6 @@ -import type { MetadataError } from "../Error.js" -import { ajv } from "../profile/ajv.js" -import type { Descriptor } from "./Descriptor.js" +import type { MetadataError } from "../Error.ts" +import { ajv } from "../profile/ajv.ts" +import type { Descriptor } from "./Descriptor.ts" /** * Validate a descriptor (JSON Object) against a JSON Schema diff --git a/core/general/index.ts b/core/general/index.ts index cf44b801..57c1b3e9 100644 --- a/core/general/index.ts +++ b/core/general/index.ts @@ -1,14 +1,14 @@ // TODO: split this general module into more focused descriptor/metadata/etc -export { parseDescriptor } from "./descriptor/process/parse.js" -export { stringifyDescriptor } from "./descriptor/process/stringify.js" -export { loadDescriptor } from "./descriptor/load.js" -export { saveDescriptor } from "./descriptor/save.js" -export { validateDescriptor } from "./descriptor/validate.js" -export type { Descriptor } from "./descriptor/Descriptor.js" -export type { Metadata } from "./metadata/Metadata.js" -export { isDescriptor } from "./descriptor/Descriptor.js" -export { loadProfile } from "./profile/load.js" -export { AssertionError, type MetadataError } from "./Error.js" +export { parseDescriptor } from "./descriptor/process/parse.ts" +export { stringifyDescriptor } from "./descriptor/process/stringify.ts" +export { loadDescriptor } from "./descriptor/load.ts" +export { saveDescriptor } from "./descriptor/save.ts" +export { validateDescriptor } from "./descriptor/validate.ts" +export type { Descriptor } from "./descriptor/Descriptor.ts" +export type { Metadata } from "./metadata/Metadata.ts" +export { isDescriptor } from "./descriptor/Descriptor.ts" +export { loadProfile } from "./profile/load.ts" +export { AssertionError, type MetadataError } from "./Error.ts" export { getName, getFormat, @@ -17,4 +17,4 @@ export { normalizePath, denormalizePath, getFilename, -} from "./path.js" +} from "./path.ts" diff --git a/core/general/path.spec.ts b/core/general/path.spec.ts index d8ce2c56..a9fe96ad 100644 --- a/core/general/path.spec.ts +++ b/core/general/path.spec.ts @@ -6,7 +6,7 @@ import { getFilename, isRemotePath, normalizePath, -} from "./path.js" +} from "./path.ts" describe("isRemotePath", () => { it.each([ diff --git a/core/general/path.ts b/core/general/path.ts index 9a6d9e3a..35975ddb 100644 --- a/core/general/path.ts +++ b/core/general/path.ts @@ -1,5 +1,5 @@ import slugify from "@sindresorhus/slugify" -import { node } from "./node.js" +import { node } from "./node.ts" export function isRemotePath(path: string) { try { diff --git a/core/general/profile/Profile.ts b/core/general/profile/Profile.ts index a699293d..5ec52525 100644 --- a/core/general/profile/Profile.ts +++ b/core/general/profile/Profile.ts @@ -1,3 +1,3 @@ -import type { Descriptor } from "../descriptor/Descriptor.js" +import type { Descriptor } from "../descriptor/Descriptor.ts" export type Profile = Descriptor diff --git a/core/general/profile/ajv.ts b/core/general/profile/ajv.ts index ed2c7c86..55bfed9f 100644 --- a/core/general/profile/ajv.ts +++ b/core/general/profile/ajv.ts @@ -1,5 +1,5 @@ import { Ajv } from "ajv" -import { loadProfile } from "./load.js" +import { loadProfile } from "./load.ts" export const ajv = new Ajv({ strict: false, diff --git a/core/general/profile/cache.ts b/core/general/profile/cache.ts index 737a86a1..6044a49b 100644 --- a/core/general/profile/cache.ts +++ b/core/general/profile/cache.ts @@ -1,6 +1,6 @@ import QuickLRU from "quick-lru" -import type { Descriptor } from "../descriptor/Descriptor.js" -import { profileRegistry } from "./registry.js" +import type { Descriptor } from "../descriptor/Descriptor.ts" +import { profileRegistry } from "./registry.ts" export const cache = new QuickLRU({ maxSize: 100 }) for (const { path, profile } of Object.values(profileRegistry)) { diff --git a/core/general/profile/load.ts b/core/general/profile/load.ts index 3b8f349f..4811b552 100644 --- a/core/general/profile/load.ts +++ b/core/general/profile/load.ts @@ -1,7 +1,7 @@ -import { loadDescriptor } from "../descriptor/load.js" -import { cache } from "./cache.js" -import type { ProfileType } from "./registry.js" -import { validateProfile } from "./validate.js" +import { loadDescriptor } from "../descriptor/load.ts" +import { cache } from "./cache.ts" +import type { ProfileType } from "./registry.ts" +import { validateProfile } from "./validate.ts" export async function loadProfile( path: string, diff --git a/core/general/profile/validate.ts b/core/general/profile/validate.ts index 70a6b90f..193211f3 100644 --- a/core/general/profile/validate.ts +++ b/core/general/profile/validate.ts @@ -1,8 +1,8 @@ -import type { Descriptor } from "../descriptor/Descriptor.js" -import type { Profile } from "./Profile.js" -import { ajv } from "./ajv.js" -import type { ProfileType } from "./registry.js" -import { profileRegistry } from "./registry.js" +import type { Descriptor } from "../descriptor/Descriptor.ts" +import type { Profile } from "./Profile.ts" +import { ajv } from "./ajv.ts" +import type { ProfileType } from "./registry.ts" +import { profileRegistry } from "./registry.ts" export async function validateProfile( descriptor: Descriptor, diff --git a/core/index.ts b/core/index.ts index 71e4b6bd..735a4049 100644 --- a/core/index.ts +++ b/core/index.ts @@ -1,7 +1,7 @@ -export * from "./general/index.js" -export * from "./dialect/index.js" -export * from "./field/index.js" -export * from "./package/index.js" -export * from "./resource/index.js" -export * from "./schema/index.js" -export * from "./plugin.js" +export * from "./general/index.ts" +export * from "./dialect/index.ts" +export * from "./field/index.ts" +export * from "./package/index.ts" +export * from "./resource/index.ts" +export * from "./schema/index.ts" +export * from "./plugin.ts" diff --git a/core/package/Package.ts b/core/package/Package.ts index 2582263d..a4ff6852 100644 --- a/core/package/Package.ts +++ b/core/package/Package.ts @@ -1,6 +1,6 @@ -import type { Metadata } from "../general/index.js" -import type { License, Resource, Source } from "../resource/index.js" -import type { Contributor } from "./Contributor.js" +import type { Metadata } from "../general/index.ts" +import type { License, Resource, Source } from "../resource/index.ts" +import type { Contributor } from "./Contributor.ts" /** * Data Package interface built on top of the Frictionless Data specification diff --git a/core/package/assert.spec.ts b/core/package/assert.spec.ts index 108391ec..c167e8c6 100644 --- a/core/package/assert.spec.ts +++ b/core/package/assert.spec.ts @@ -1,7 +1,7 @@ import { describe, expect, expectTypeOf, it } from "vitest" -import { AssertionError } from "../general/index.js" -import type { Package } from "./Package.js" -import { assertPackage } from "./assert.js" +import { AssertionError } from "../general/index.ts" +import type { Package } from "./Package.ts" +import { assertPackage } from "./assert.ts" describe("assertPackage", () => { it("returns typed package when valid", async () => { diff --git a/core/package/assert.ts b/core/package/assert.ts index 9a45df35..92570015 100644 --- a/core/package/assert.ts +++ b/core/package/assert.ts @@ -1,6 +1,6 @@ -import { AssertionError, type Descriptor } from "../general/index.js" -import type { Package } from "./Package.js" -import { validatePackageDescriptor } from "./validate.js" +import { AssertionError, type Descriptor } from "../general/index.ts" +import type { Package } from "./Package.ts" +import { validatePackageDescriptor } from "./validate.ts" /** * Assert a Package descriptor (JSON Object) against its profile diff --git a/core/package/index.ts b/core/package/index.ts index 17958a22..a019a487 100644 --- a/core/package/index.ts +++ b/core/package/index.ts @@ -1,9 +1,9 @@ -export type { Package } from "./Package.js" -export { assertPackage } from "./assert.js" -export { loadPackageDescriptor } from "./load.js" -export { savePackageDescriptor } from "./save.js" -export { validatePackageDescriptor } from "./validate.js" -export { normalizePackage } from "./process/normalize.js" -export { denormalizePackage } from "./process/denormalize.js" -export type { Contributor } from "./Contributor.js" -export { mergePackages } from "./merge.js" +export type { Package } from "./Package.ts" +export { assertPackage } from "./assert.ts" +export { loadPackageDescriptor } from "./load.ts" +export { savePackageDescriptor } from "./save.ts" +export { validatePackageDescriptor } from "./validate.ts" +export { normalizePackage } from "./process/normalize.ts" +export { denormalizePackage } from "./process/denormalize.ts" +export type { Contributor } from "./Contributor.ts" +export { mergePackages } from "./merge.ts" diff --git a/core/package/load.spec.ts b/core/package/load.spec.ts index 54055548..c053212f 100644 --- a/core/package/load.spec.ts +++ b/core/package/load.spec.ts @@ -1,7 +1,7 @@ import { join, relative } from "node:path" import { describe, expect, expectTypeOf, it } from "vitest" -import type { Package } from "./Package.js" -import { loadPackageDescriptor } from "./load.js" +import type { Package } from "./Package.ts" +import { loadPackageDescriptor } from "./load.ts" describe("loadPackageDescriptor", async () => { const getFixturePath = (name: string) => diff --git a/core/package/load.ts b/core/package/load.ts index 267d45e5..0cdf374f 100644 --- a/core/package/load.ts +++ b/core/package/load.ts @@ -1,5 +1,5 @@ -import { loadDescriptor } from "../general/index.js" -import { assertPackage } from "./assert.js" +import { loadDescriptor } from "../general/index.ts" +import { assertPackage } from "./assert.ts" /** * Load a Package descriptor (JSON Object) from a file or URL diff --git a/core/package/merge.ts b/core/package/merge.ts index cef4b204..a8765208 100644 --- a/core/package/merge.ts +++ b/core/package/merge.ts @@ -1,5 +1,5 @@ -import type { Package } from "./Package.js" -import { loadPackageDescriptor } from "./load.js" +import type { Package } from "./Package.ts" +import { loadPackageDescriptor } from "./load.ts" /** * Merges a system data package into a user data package if provided diff --git a/core/package/process/denormalize.ts b/core/package/process/denormalize.ts index 7cd64060..82954bab 100644 --- a/core/package/process/denormalize.ts +++ b/core/package/process/denormalize.ts @@ -1,6 +1,6 @@ -import type { Descriptor } from "../../general/index.js" -import { denormalizeResource } from "../../resource/index.js" -import type { Package } from "../Package.js" +import type { Descriptor } from "../../general/index.ts" +import { denormalizeResource } from "../../resource/index.ts" +import type { Package } from "../Package.ts" export function denormalizePackage( dataPackage: Package, diff --git a/core/package/process/normalize.ts b/core/package/process/normalize.ts index 5b039539..de87b3b3 100644 --- a/core/package/process/normalize.ts +++ b/core/package/process/normalize.ts @@ -1,5 +1,5 @@ -import type { Descriptor } from "../../general/index.js" -import { normalizeResource } from "../../resource/index.js" +import type { Descriptor } from "../../general/index.ts" +import { normalizeResource } from "../../resource/index.ts" export function normalizePackage( descriptor: Descriptor, diff --git a/core/package/save.ts b/core/package/save.ts index e684d200..bed14a7b 100644 --- a/core/package/save.ts +++ b/core/package/save.ts @@ -1,6 +1,6 @@ -import { getBasepath, saveDescriptor } from "../general/index.js" -import type { Package } from "./Package.js" -import { denormalizePackage } from "./process/denormalize.js" +import { getBasepath, saveDescriptor } from "../general/index.ts" +import type { Package } from "./Package.ts" +import { denormalizePackage } from "./process/denormalize.ts" const CURRENT_PROFILE = "https://datapackage.org/profiles/2.0/datapackage.json" diff --git a/core/package/validate.spec.ts b/core/package/validate.spec.ts index fbd9885d..1357f90c 100644 --- a/core/package/validate.spec.ts +++ b/core/package/validate.spec.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from "vitest" -import { validatePackageDescriptor } from "./validate.js" +import { validatePackageDescriptor } from "./validate.ts" describe("validatePackageDescriptor", () => { it("returns valid result for valid package", async () => { diff --git a/core/package/validate.ts b/core/package/validate.ts index f2a05b8b..c3df5290 100644 --- a/core/package/validate.ts +++ b/core/package/validate.ts @@ -1,7 +1,7 @@ -import { type Descriptor, validateDescriptor } from "../general/index.js" -import { loadProfile } from "../general/index.js" -import type { Package } from "./Package.js" -import { normalizePackage } from "./process/normalize.js" +import { type Descriptor, validateDescriptor } from "../general/index.ts" +import { loadProfile } from "../general/index.ts" +import type { Package } from "./Package.ts" +import { normalizePackage } from "./process/normalize.ts" const DEFAULT_PROFILE = "https://datapackage.org/profiles/1.0/datapackage.json" diff --git a/core/plugin.ts b/core/plugin.ts index 02e33725..a5d2b0b5 100644 --- a/core/plugin.ts +++ b/core/plugin.ts @@ -1,4 +1,4 @@ -import type { Package } from "./package/index.js" +import type { Package } from "./package/index.ts" export interface Plugin { loadPackage?(source: string): Promise diff --git a/core/resource/Resource.ts b/core/resource/Resource.ts index f23e0e83..00792e03 100644 --- a/core/resource/Resource.ts +++ b/core/resource/Resource.ts @@ -1,8 +1,8 @@ -import type { Dialect } from "../dialect/Dialect.js" -import type { Metadata } from "../general/index.js" -import type { Schema } from "../schema/Schema.js" -import type { License } from "./License.js" -import type { Source } from "./Source.js" +import type { Dialect } from "../dialect/Dialect.ts" +import type { Metadata } from "../general/index.ts" +import type { Schema } from "../schema/Schema.ts" +import type { License } from "./License.ts" +import type { Source } from "./Source.ts" /** * Data Resource interface built on top of the Data Package standard and Polars DataFrames diff --git a/core/resource/assert.spec.ts b/core/resource/assert.spec.ts index 07f9f07c..0299c8ad 100644 --- a/core/resource/assert.spec.ts +++ b/core/resource/assert.spec.ts @@ -1,7 +1,7 @@ import { describe, expect, expectTypeOf, it } from "vitest" -import { AssertionError } from "../general/index.js" -import type { Resource } from "./Resource.js" -import { assertResource } from "./assert.js" +import { AssertionError } from "../general/index.ts" +import type { Resource } from "./Resource.ts" +import { assertResource } from "./assert.ts" describe("assertResource", () => { it("returns typed resource when valid", async () => { diff --git a/core/resource/assert.ts b/core/resource/assert.ts index 772babe8..68375be2 100644 --- a/core/resource/assert.ts +++ b/core/resource/assert.ts @@ -1,6 +1,6 @@ -import { AssertionError, type Descriptor } from "../general/index.js" -import type { Resource } from "./Resource.js" -import { validateResourceDescriptor } from "./validate.js" +import { AssertionError, type Descriptor } from "../general/index.ts" +import type { Resource } from "./Resource.ts" +import { validateResourceDescriptor } from "./validate.ts" /** * Assert a Resource descriptor (JSON Object) against its profile diff --git a/core/resource/index.ts b/core/resource/index.ts index 7b3d3229..c17827f1 100644 --- a/core/resource/index.ts +++ b/core/resource/index.ts @@ -1,10 +1,10 @@ -export type { Resource } from "./Resource.js" -export { inferFormat } from "./infer.js" -export { assertResource } from "./assert.js" -export { loadResourceDescriptor } from "./load.js" -export { saveResourceDescriptor } from "./save.js" -export { validateResourceDescriptor } from "./validate.js" -export { normalizeResource } from "./process/normalize.js" -export { denormalizeResource } from "./process/denormalize.js" -export type { Source } from "./Source.js" -export type { License } from "./License.js" +export type { Resource } from "./Resource.ts" +export { inferFormat } from "./infer.ts" +export { assertResource } from "./assert.ts" +export { loadResourceDescriptor } from "./load.ts" +export { saveResourceDescriptor } from "./save.ts" +export { validateResourceDescriptor } from "./validate.ts" +export { normalizeResource } from "./process/normalize.ts" +export { denormalizeResource } from "./process/denormalize.ts" +export type { Source } from "./Source.ts" +export type { License } from "./License.ts" diff --git a/core/resource/infer.ts b/core/resource/infer.ts index 2edb9d98..64416d1f 100644 --- a/core/resource/infer.ts +++ b/core/resource/infer.ts @@ -1,5 +1,5 @@ -import { getFilename, getFormat } from "../general/index.js" -import type { Resource } from "./Resource.js" +import { getFilename, getFormat } from "../general/index.ts" +import type { Resource } from "./Resource.ts" export function inferFormat(resource: Partial) { let format = resource.format diff --git a/core/resource/load.spec.ts b/core/resource/load.spec.ts index ecb29560..366c16b5 100644 --- a/core/resource/load.spec.ts +++ b/core/resource/load.spec.ts @@ -1,7 +1,7 @@ import { join, relative } from "node:path" import { describe, expect, expectTypeOf, it } from "vitest" -import type { Resource } from "./Resource.js" -import { loadResourceDescriptor } from "./load.js" +import type { Resource } from "./Resource.ts" +import { loadResourceDescriptor } from "./load.ts" describe("loadResourceDescriptor", async () => { const getFixturePath = (name: string) => diff --git a/core/resource/load.ts b/core/resource/load.ts index 78a02a11..1d82e88b 100644 --- a/core/resource/load.ts +++ b/core/resource/load.ts @@ -1,5 +1,5 @@ -import { loadDescriptor } from "../general/index.js" -import { assertResource } from "./assert.js" +import { loadDescriptor } from "../general/index.ts" +import { assertResource } from "./assert.ts" /** * Load a Resource descriptor (JSON Object) from a file or URL diff --git a/core/resource/process/denormalize.ts b/core/resource/process/denormalize.ts index 690ed830..528b4f89 100644 --- a/core/resource/process/denormalize.ts +++ b/core/resource/process/denormalize.ts @@ -1,8 +1,8 @@ -import { denormalizeDialect } from "../../dialect/index.js" -import { denormalizePath } from "../../general/index.js" -import type { Descriptor } from "../../general/index.js" -import { denormalizeSchema } from "../../schema/index.js" -import type { Resource } from "../Resource.js" +import { denormalizeDialect } from "../../dialect/index.ts" +import { denormalizePath } from "../../general/index.ts" +import type { Descriptor } from "../../general/index.ts" +import { denormalizeSchema } from "../../schema/index.ts" +import type { Resource } from "../Resource.ts" export function denormalizeResource( resource: Resource, diff --git a/core/resource/process/normalize.ts b/core/resource/process/normalize.ts index c3e1c178..018ced18 100644 --- a/core/resource/process/normalize.ts +++ b/core/resource/process/normalize.ts @@ -1,7 +1,7 @@ -import { normalizeDialect } from "../../dialect/index.js" -import { isDescriptor, normalizePath } from "../../general/index.js" -import type { Descriptor } from "../../general/index.js" -import { normalizeSchema } from "../../schema/index.js" +import { normalizeDialect } from "../../dialect/index.ts" +import { isDescriptor, normalizePath } from "../../general/index.ts" +import type { Descriptor } from "../../general/index.ts" +import { normalizeSchema } from "../../schema/index.ts" export function normalizeResource( descriptor: Descriptor, diff --git a/core/resource/save.ts b/core/resource/save.ts index f44a8994..bc83ae37 100644 --- a/core/resource/save.ts +++ b/core/resource/save.ts @@ -1,6 +1,6 @@ -import { getBasepath, saveDescriptor } from "../general/index.js" -import type { Resource } from "./Resource.js" -import { denormalizeResource } from "./process/denormalize.js" +import { getBasepath, saveDescriptor } from "../general/index.ts" +import type { Resource } from "./Resource.ts" +import { denormalizeResource } from "./process/denormalize.ts" const CURRENT_PROFILE = "https://datapackage.org/profiles/2.0/dataresource.json" diff --git a/core/resource/validate.spec.ts b/core/resource/validate.spec.ts index 7e18e7d4..a6bf646d 100644 --- a/core/resource/validate.spec.ts +++ b/core/resource/validate.spec.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from "vitest" -import { validateResourceDescriptor } from "./validate.js" +import { validateResourceDescriptor } from "./validate.ts" describe("validateResourceDescriptor", () => { it("returns valid result for valid resource", async () => { diff --git a/core/resource/validate.ts b/core/resource/validate.ts index f6051ee5..f5a80da5 100644 --- a/core/resource/validate.ts +++ b/core/resource/validate.ts @@ -1,10 +1,10 @@ -import { loadDialect } from "../dialect/index.js" -import { type Descriptor, validateDescriptor } from "../general/index.js" -import { AssertionError } from "../general/index.js" -import { loadProfile } from "../general/index.js" -import { loadSchema } from "../schema/index.js" -import type { Resource } from "./Resource.js" -import { normalizeResource } from "./process/normalize.js" +import { loadDialect } from "../dialect/index.ts" +import { type Descriptor, validateDescriptor } from "../general/index.ts" +import { AssertionError } from "../general/index.ts" +import { loadProfile } from "../general/index.ts" +import { loadSchema } from "../schema/index.ts" +import type { Resource } from "./Resource.ts" +import { normalizeResource } from "./process/normalize.ts" const DEFAULT_PROFILE = "https://datapackage.org/profiles/1.0/dataresource.json" diff --git a/core/schema/Schema.ts b/core/schema/Schema.ts index 5aa642e1..508edcc7 100644 --- a/core/schema/Schema.ts +++ b/core/schema/Schema.ts @@ -1,6 +1,6 @@ -import type { Field } from "../field/index.js" -import type { Metadata } from "../general/index.js" -import type { ForeignKey } from "./ForeignKey.js" +import type { Field } from "../field/index.ts" +import type { Metadata } from "../general/index.ts" +import type { ForeignKey } from "./ForeignKey.ts" /** * Table Schema definition diff --git a/core/schema/assert.spec.ts b/core/schema/assert.spec.ts index 230f77d0..db0a8cb0 100644 --- a/core/schema/assert.spec.ts +++ b/core/schema/assert.spec.ts @@ -1,7 +1,7 @@ import { describe, expect, expectTypeOf, it } from "vitest" -import { AssertionError } from "../general/index.js" -import type { Schema } from "./Schema.js" -import { assertSchema } from "./assert.js" +import { AssertionError } from "../general/index.ts" +import type { Schema } from "./Schema.ts" +import { assertSchema } from "./assert.ts" describe("assertSchema", () => { it("returns typed schema when valid", async () => { diff --git a/core/schema/assert.ts b/core/schema/assert.ts index ddb61063..0a078986 100644 --- a/core/schema/assert.ts +++ b/core/schema/assert.ts @@ -1,6 +1,6 @@ -import { AssertionError, type Descriptor } from "../general/index.js" -import type { Schema } from "./Schema.js" -import { validateSchema } from "./validate.js" +import { AssertionError, type Descriptor } from "../general/index.ts" +import type { Schema } from "./Schema.ts" +import { validateSchema } from "./validate.ts" /** * Assert a Schema descriptor (JSON Object) against its profile diff --git a/core/schema/index.ts b/core/schema/index.ts index f6b52e62..4c8341dd 100644 --- a/core/schema/index.ts +++ b/core/schema/index.ts @@ -1,8 +1,8 @@ -export type { Schema } from "./Schema.js" -export type { ForeignKey } from "./ForeignKey.js" -export { assertSchema } from "./assert.js" -export { loadSchema } from "./load.js" -export { saveSchema } from "./save.js" -export { validateSchema } from "./validate.js" -export { normalizeSchema } from "./process/normalize.js" -export { denormalizeSchema } from "./process/denormalize.js" +export type { Schema } from "./Schema.ts" +export type { ForeignKey } from "./ForeignKey.ts" +export { assertSchema } from "./assert.ts" +export { loadSchema } from "./load.ts" +export { saveSchema } from "./save.ts" +export { validateSchema } from "./validate.ts" +export { normalizeSchema } from "./process/normalize.ts" +export { denormalizeSchema } from "./process/denormalize.ts" diff --git a/core/schema/load.spec.ts b/core/schema/load.spec.ts index 73d20a8c..f9a33b4b 100644 --- a/core/schema/load.spec.ts +++ b/core/schema/load.spec.ts @@ -1,7 +1,7 @@ import { join } from "node:path" import { describe, expect, expectTypeOf, it } from "vitest" -import type { Schema } from "./Schema.js" -import { loadSchema } from "./load.js" +import type { Schema } from "./Schema.ts" +import { loadSchema } from "./load.ts" describe("loadSchema", () => { const getFixturePath = (name: string) => join(__dirname, "fixtures", name) diff --git a/core/schema/load.ts b/core/schema/load.ts index 27a6bdf8..00bd37b0 100644 --- a/core/schema/load.ts +++ b/core/schema/load.ts @@ -1,5 +1,5 @@ -import { loadDescriptor } from "../general/index.js" -import { assertSchema } from "./assert.js" +import { loadDescriptor } from "../general/index.ts" +import { assertSchema } from "./assert.ts" /** * Load a Schema descriptor (JSON Object) from a file or URL diff --git a/core/schema/process/denormalize.ts b/core/schema/process/denormalize.ts index 8cf53de7..8e1d4383 100644 --- a/core/schema/process/denormalize.ts +++ b/core/schema/process/denormalize.ts @@ -1,5 +1,5 @@ -import type { Descriptor } from "../../general/index.js" -import type { Schema } from "../Schema.js" +import type { Descriptor } from "../../general/index.ts" +import type { Schema } from "../Schema.ts" export function denormalizeSchema(schema: Schema) { schema = globalThis.structuredClone(schema) diff --git a/core/schema/process/normalize.ts b/core/schema/process/normalize.ts index a2201a5f..4b35afd3 100644 --- a/core/schema/process/normalize.ts +++ b/core/schema/process/normalize.ts @@ -1,6 +1,6 @@ import invariant from "tiny-invariant" -import { normalizeField } from "../../field/index.js" -import type { Descriptor } from "../../general/index.js" +import { normalizeField } from "../../field/index.ts" +import type { Descriptor } from "../../general/index.ts" export function normalizeSchema(descriptor: Descriptor) { descriptor = globalThis.structuredClone(descriptor) diff --git a/core/schema/save.spec.ts b/core/schema/save.spec.ts index 60c527d8..c6752f35 100644 --- a/core/schema/save.spec.ts +++ b/core/schema/save.spec.ts @@ -2,8 +2,8 @@ import * as fs from "node:fs/promises" import * as path from "node:path" import { temporaryDirectory } from "tempy" import { afterEach, beforeEach, describe, expect, it } from "vitest" -import type { Schema } from "./Schema.js" -import { saveSchema } from "./save.js" +import type { Schema } from "./Schema.ts" +import { saveSchema } from "./save.ts" describe("saveSchema", () => { const testSchema: Schema = { diff --git a/core/schema/save.ts b/core/schema/save.ts index 91f3cd91..5f6c801e 100644 --- a/core/schema/save.ts +++ b/core/schema/save.ts @@ -1,6 +1,6 @@ -import { saveDescriptor } from "../general/index.js" -import type { Schema } from "./Schema.js" -import { denormalizeSchema } from "./process/denormalize.js" +import { saveDescriptor } from "../general/index.ts" +import type { Schema } from "./Schema.ts" +import { denormalizeSchema } from "./process/denormalize.ts" const CURRENT_PROFILE = "https://datapackage.org/profiles/2.0/tableschema.json" diff --git a/core/schema/validate.spec.ts b/core/schema/validate.spec.ts index 4e553d0f..9fdf814a 100644 --- a/core/schema/validate.spec.ts +++ b/core/schema/validate.spec.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from "vitest" -import { validateSchema } from "./validate.js" +import { validateSchema } from "./validate.ts" describe("validateSchema", () => { it("returns empty array for valid schema", async () => { diff --git a/core/schema/validate.ts b/core/schema/validate.ts index f1aec71a..242681d5 100644 --- a/core/schema/validate.ts +++ b/core/schema/validate.ts @@ -1,7 +1,7 @@ -import { type Descriptor, validateDescriptor } from "../general/index.js" -import { loadProfile } from "../general/index.js" -import type { Schema } from "./Schema.js" -import { normalizeSchema } from "./process/normalize.js" +import { type Descriptor, validateDescriptor } from "../general/index.ts" +import { loadProfile } from "../general/index.ts" +import type { Schema } from "./Schema.ts" +import { normalizeSchema } from "./process/normalize.ts" const DEFAULT_PROFILE = "https://datapackage.org/profiles/1.0/tableschema.json" diff --git a/csv/dialect/index.ts b/csv/dialect/index.ts index 12e94327..1b388ce8 100644 --- a/csv/dialect/index.ts +++ b/csv/dialect/index.ts @@ -1 +1 @@ -export { inferCsvDialect } from "./infer.js" +export { inferCsvDialect } from "./infer.ts" diff --git a/csv/dialect/infer.spec.ts b/csv/dialect/infer.spec.ts index 84acb196..d46c16e6 100644 --- a/csv/dialect/infer.spec.ts +++ b/csv/dialect/infer.spec.ts @@ -1,6 +1,6 @@ import { writeTempFile } from "@dpkit/file" import { describe, expect, it } from "vitest" -import { inferCsvDialect } from "./infer.js" +import { inferCsvDialect } from "./infer.ts" describe("inferCsvDialect", () => { it("should infer a simple CSV file", async () => { diff --git a/csv/index.ts b/csv/index.ts index ef2a40d5..0bb8be6b 100644 --- a/csv/index.ts +++ b/csv/index.ts @@ -1,3 +1,3 @@ -export * from "./dialect/index.js" -export * from "./table/index.js" -export * from "./plugin.js" +export * from "./dialect/index.ts" +export * from "./table/index.ts" +export * from "./plugin.ts" diff --git a/csv/plugin.ts b/csv/plugin.ts index a0490935..f89c28e8 100644 --- a/csv/plugin.ts +++ b/csv/plugin.ts @@ -2,8 +2,8 @@ import type { Resource } from "@dpkit/core" import { inferFormat } from "@dpkit/core" import type { InferDialectOptions, TablePlugin } from "@dpkit/table" import type { SaveTableOptions, Table } from "@dpkit/table" -import { inferCsvDialect } from "./dialect/index.js" -import { loadCsvTable, saveCsvTable } from "./table/index.js" +import { inferCsvDialect } from "./dialect/index.ts" +import { loadCsvTable, saveCsvTable } from "./table/index.ts" export class CsvPlugin implements TablePlugin { async inferDialect( diff --git a/csv/table/index.ts b/csv/table/index.ts index 0181af2e..1286ac75 100644 --- a/csv/table/index.ts +++ b/csv/table/index.ts @@ -1,2 +1,2 @@ -export { loadCsvTable } from "./load.js" -export { saveCsvTable } from "./save.js" +export { loadCsvTable } from "./load.ts" +export { saveCsvTable } from "./save.ts" diff --git a/csv/table/load.spec.ts b/csv/table/load.spec.ts index f54d7215..0ba8bb56 100644 --- a/csv/table/load.spec.ts +++ b/csv/table/load.spec.ts @@ -2,7 +2,7 @@ import { Buffer } from "node:buffer" import { writeTempFile } from "@dpkit/file" import { useRecording } from "@dpkit/test" import { describe, expect, it } from "vitest" -import { loadCsvTable } from "./load.js" +import { loadCsvTable } from "./load.ts" describe("loadCsvTable", () => { useRecording() diff --git a/csv/table/save.spec.ts b/csv/table/save.spec.ts index 6f978ecc..691482f3 100644 --- a/csv/table/save.spec.ts +++ b/csv/table/save.spec.ts @@ -2,7 +2,7 @@ import { readFile } from "node:fs/promises" import { getTempFilePath } from "@dpkit/file" import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { saveCsvTable } from "./save.js" +import { saveCsvTable } from "./save.ts" describe("saveCsvTable", () => { it("should save table to file", async () => { diff --git a/datahub/index.ts b/datahub/index.ts index af05c222..8e03d380 100644 --- a/datahub/index.ts +++ b/datahub/index.ts @@ -1,2 +1,2 @@ -export * from "./package/index.js" -export * from "./plugin.js" +export * from "./package/index.ts" +export * from "./plugin.ts" diff --git a/datahub/package/index.ts b/datahub/package/index.ts index 9ed689d5..548ee727 100644 --- a/datahub/package/index.ts +++ b/datahub/package/index.ts @@ -1 +1 @@ -export { loadPackageFromDatahub } from "./load.js" +export { loadPackageFromDatahub } from "./load.ts" diff --git a/datahub/package/load.spec.ts b/datahub/package/load.spec.ts index acdf0b04..433566ec 100644 --- a/datahub/package/load.spec.ts +++ b/datahub/package/load.spec.ts @@ -1,6 +1,6 @@ import { useRecording } from "@dpkit/test" import { describe, expect, it } from "vitest" -import { loadPackageFromDatahub } from "./load.js" +import { loadPackageFromDatahub } from "./load.ts" describe.skip("loadPackageFromDatahub", () => { useRecording() diff --git a/datahub/plugin.ts b/datahub/plugin.ts index 62830240..14b0950f 100644 --- a/datahub/plugin.ts +++ b/datahub/plugin.ts @@ -1,6 +1,6 @@ import type { Plugin } from "@dpkit/core" import { isRemotePath } from "@dpkit/core" -import { loadPackageFromDatahub } from "./package/index.js" +import { loadPackageFromDatahub } from "./package/index.ts" export class DatahubPlugin implements Plugin { async loadPackage(source: string) { diff --git a/docs/astro.config.ts b/docs/astro.config.ts index da6184b6..14d5119f 100644 --- a/docs/astro.config.ts +++ b/docs/astro.config.ts @@ -78,7 +78,7 @@ export default defineConfig({ { tag: "script", attrs: { - src: "https://plausible.io/js/script.js", + src: "https://plausible.io/js/script.ts", "data-domain": "dpkit.datist.io", defer: true, }, diff --git a/dpkit/dialect/index.ts b/dpkit/dialect/index.ts index dd7102da..2650dc4e 100644 --- a/dpkit/dialect/index.ts +++ b/dpkit/dialect/index.ts @@ -1 +1 @@ -export { inferDialect } from "./infer.js" +export { inferDialect } from "./infer.ts" diff --git a/dpkit/dialect/infer.ts b/dpkit/dialect/infer.ts index 06bbd9a3..c37b8087 100644 --- a/dpkit/dialect/infer.ts +++ b/dpkit/dialect/infer.ts @@ -1,6 +1,6 @@ import type { Dialect, Resource } from "@dpkit/core" import type { InferDialectOptions } from "@dpkit/table" -import { dpkit } from "../plugin.js" +import { dpkit } from "../plugin.ts" // TODO: implement inferDialect diff --git a/dpkit/index.ts b/dpkit/index.ts index 273b0d2b..a28b8c61 100644 --- a/dpkit/index.ts +++ b/dpkit/index.ts @@ -11,7 +11,7 @@ export * from "@dpkit/table" export * from "@dpkit/zenodo" export * from "@dpkit/zip" -export * from "./dialect/index.js" -export * from "./package/index.js" -export * from "./table/index.js" -export * from "./plugin.js" +export * from "./dialect/index.ts" +export * from "./package/index.ts" +export * from "./table/index.ts" +export * from "./plugin.ts" diff --git a/dpkit/package/index.ts b/dpkit/package/index.ts index 31a45bc9..3a5cbd54 100644 --- a/dpkit/package/index.ts +++ b/dpkit/package/index.ts @@ -1,2 +1,2 @@ -export { loadPackage } from "./load.js" -export { savePackage } from "./save.js" +export { loadPackage } from "./load.ts" +export { savePackage } from "./save.ts" diff --git a/dpkit/package/load.ts b/dpkit/package/load.ts index 43d70e6e..7366c3f5 100644 --- a/dpkit/package/load.ts +++ b/dpkit/package/load.ts @@ -1,5 +1,5 @@ import { loadPackageDescriptor } from "@dpkit/core" -import { dpkit } from "../plugin.js" +import { dpkit } from "../plugin.ts" export async function loadPackage(source: string) { for (const plugin of dpkit.plugins) { diff --git a/dpkit/package/save.ts b/dpkit/package/save.ts index 7b78c1fc..bab6ec6e 100644 --- a/dpkit/package/save.ts +++ b/dpkit/package/save.ts @@ -1,6 +1,6 @@ import type { Package } from "@dpkit/core" import { savePackageDescriptor } from "@dpkit/core" -import { dpkit } from "../plugin.js" +import { dpkit } from "../plugin.ts" export async function savePackage( dataPackage: Package, diff --git a/dpkit/table/index.ts b/dpkit/table/index.ts index 7ac79642..09df76ca 100644 --- a/dpkit/table/index.ts +++ b/dpkit/table/index.ts @@ -1,4 +1,4 @@ -export { loadTable } from "./load.js" -export { readTable } from "./read.js" -export { saveTable } from "./save.js" -export { validateTable } from "./validate.js" +export { loadTable } from "./load.ts" +export { readTable } from "./read.ts" +export { saveTable } from "./save.ts" +export { validateTable } from "./validate.ts" diff --git a/dpkit/table/infer.ts b/dpkit/table/infer.ts index 0f52f101..49213a03 100644 --- a/dpkit/table/infer.ts +++ b/dpkit/table/infer.ts @@ -2,8 +2,8 @@ import type { Dialect, Resource, Schema } from "@dpkit/core" import { loadDialect, loadSchema } from "@dpkit/core" import type { Table } from "@dpkit/table" import { inferSchema } from "@dpkit/table" -import { inferDialect } from "../dialect/index.js" -import { loadTable } from "./load.js" +import { inferDialect } from "../dialect/index.ts" +import { loadTable } from "./load.ts" export async function inferTable( resource: Partial, diff --git a/dpkit/table/load.ts b/dpkit/table/load.ts index 5e1c1d62..2674f30d 100644 --- a/dpkit/table/load.ts +++ b/dpkit/table/load.ts @@ -1,6 +1,6 @@ import type { Resource } from "@dpkit/core" import type { Table } from "@dpkit/table" -import { dpkit } from "../plugin.js" +import { dpkit } from "../plugin.ts" export async function loadTable(resource: Partial): Promise { for (const plugin of dpkit.plugins) { diff --git a/dpkit/table/read.ts b/dpkit/table/read.ts index c26ef2e2..3d8c0550 100644 --- a/dpkit/table/read.ts +++ b/dpkit/table/read.ts @@ -1,7 +1,7 @@ import type { Resource } from "@dpkit/core" import type { Table } from "@dpkit/table" import { processTable } from "@dpkit/table" -import { inferTable } from "./infer.js" +import { inferTable } from "./infer.ts" export async function readTable(resource: Partial): Promise
{ const { table, schema } = await inferTable(resource) diff --git a/dpkit/table/save.ts b/dpkit/table/save.ts index 8fe7de63..204ed4ec 100644 --- a/dpkit/table/save.ts +++ b/dpkit/table/save.ts @@ -1,5 +1,5 @@ import type { SaveTableOptions, Table } from "@dpkit/table" -import { dpkit } from "../plugin.js" +import { dpkit } from "../plugin.ts" export async function saveTable(table: Table, options: SaveTableOptions) { for (const plugin of dpkit.plugins) { diff --git a/dpkit/table/validate.ts b/dpkit/table/validate.ts index 3714fab0..53589a2a 100644 --- a/dpkit/table/validate.ts +++ b/dpkit/table/validate.ts @@ -1,6 +1,6 @@ import type { Resource } from "@dpkit/core" import { inspectTable } from "@dpkit/table" -import { inferTable } from "./infer.js" +import { inferTable } from "./infer.ts" export async function validateTable(resource: Partial) { const { table, schema } = await inferTable(resource) diff --git a/file/file/copy.ts b/file/file/copy.ts index 8f2415d0..ceae3fd7 100644 --- a/file/file/copy.ts +++ b/file/file/copy.ts @@ -1,5 +1,5 @@ -import { loadFileStream } from "../stream/load.js" -import { saveFileStream } from "../stream/save.js" +import { loadFileStream } from "../stream/load.ts" +import { saveFileStream } from "../stream/save.ts" export async function copyFile(options: { sourcePath: string diff --git a/file/file/fetch.ts b/file/file/fetch.ts index ffaa0da0..87616634 100644 --- a/file/file/fetch.ts +++ b/file/file/fetch.ts @@ -1,6 +1,6 @@ import { isRemotePath } from "@dpkit/core" -import { copyFile } from "./copy.js" -import { getTempFilePath } from "./temp.js" +import { copyFile } from "./copy.ts" +import { getTempFilePath } from "./temp.ts" export async function prefetchFiles(path?: string | string[]) { if (!path) return [] diff --git a/file/file/index.ts b/file/file/index.ts index 0939e359..da2aea7a 100644 --- a/file/file/index.ts +++ b/file/file/index.ts @@ -1,6 +1,6 @@ -export { loadFile } from "./load.js" -export { copyFile } from "./copy.js" -export { saveFile } from "./save.js" -export { getTempFilePath, writeTempFile } from "./temp.js" -export { assertLocalPathVacant, isLocalPathExist } from "./path.js" -export { prefetchFile, prefetchFiles } from "./fetch.js" +export { loadFile } from "./load.ts" +export { copyFile } from "./copy.ts" +export { saveFile } from "./save.ts" +export { getTempFilePath, writeTempFile } from "./temp.ts" +export { assertLocalPathVacant, isLocalPathExist } from "./path.ts" +export { prefetchFile, prefetchFiles } from "./fetch.ts" diff --git a/file/file/load.ts b/file/file/load.ts index 3a75d4c3..0a5723df 100644 --- a/file/file/load.ts +++ b/file/file/load.ts @@ -1,5 +1,5 @@ import { buffer } from "node:stream/consumers" -import { loadFileStream } from "../stream/index.js" +import { loadFileStream } from "../stream/index.ts" export async function loadFile(path: string) { const stream = await loadFileStream(path) diff --git a/file/file/save.ts b/file/file/save.ts index c0d8631a..e96e1003 100644 --- a/file/file/save.ts +++ b/file/file/save.ts @@ -1,5 +1,5 @@ import { Readable } from "node:stream" -import { saveFileStream } from "../stream/index.js" +import { saveFileStream } from "../stream/index.ts" export async function saveFile(path: string, buffer: Buffer) { await saveFileStream(Readable.from(buffer), { path }) diff --git a/file/index.ts b/file/index.ts index 1be89d1f..d7427de1 100644 --- a/file/index.ts +++ b/file/index.ts @@ -1,4 +1,4 @@ -export * from "./file/index.js" -export * from "./package/index.js" -export * from "./resource/index.js" -export * from "./stream/index.js" +export * from "./file/index.ts" +export * from "./package/index.ts" +export * from "./resource/index.ts" +export * from "./stream/index.ts" diff --git a/file/package/index.ts b/file/package/index.ts index 24952f8e..8b08f57a 100644 --- a/file/package/index.ts +++ b/file/package/index.ts @@ -1 +1 @@ -export { getPackageBasepath } from "./path.js" +export { getPackageBasepath } from "./path.ts" diff --git a/file/package/path.spec.ts b/file/package/path.spec.ts index 08b7124c..639bb1db 100644 --- a/file/package/path.spec.ts +++ b/file/package/path.spec.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from "vitest" -import { getCommonLocalBasepath } from "./path.js" +import { getCommonLocalBasepath } from "./path.ts" describe("getCommonLocalBasepath", () => { it.each([ diff --git a/file/resource/index.ts b/file/resource/index.ts index fb7f9886..c69d13f9 100644 --- a/file/resource/index.ts +++ b/file/resource/index.ts @@ -1 +1 @@ -export { saveResourceFiles } from "./save.js" +export { saveResourceFiles } from "./save.ts" diff --git a/file/resource/save.spec.ts b/file/resource/save.spec.ts index 78936ef7..a2a8c60f 100644 --- a/file/resource/save.spec.ts +++ b/file/resource/save.spec.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from "vitest" -import { saveResourceFiles } from "./save.js" +import { saveResourceFiles } from "./save.ts" describe("saveResourceFiles", () => { it.each([ diff --git a/file/stream/index.ts b/file/stream/index.ts index a2db58d0..471bbcc2 100644 --- a/file/stream/index.ts +++ b/file/stream/index.ts @@ -1,2 +1,2 @@ -export { loadFileStream } from "./load.js" -export { saveFileStream } from "./save.js" +export { loadFileStream } from "./load.ts" +export { saveFileStream } from "./save.ts" diff --git a/folder/folder/index.ts b/folder/folder/index.ts index ea4921ee..ea9a6587 100644 --- a/folder/folder/index.ts +++ b/folder/folder/index.ts @@ -1,2 +1,2 @@ -export { createFolder } from "./create.js" -export { getTempFolderPath } from "./temp.js" +export { createFolder } from "./create.ts" +export { getTempFolderPath } from "./temp.ts" diff --git a/folder/index.ts b/folder/index.ts index e37bb747..502a8f4a 100644 --- a/folder/index.ts +++ b/folder/index.ts @@ -1,3 +1,3 @@ -export * from "./package/index.js" -export * from "./folder/index.js" -export * from "./plugin.js" +export * from "./package/index.ts" +export * from "./folder/index.ts" +export * from "./plugin.ts" diff --git a/folder/package/index.ts b/folder/package/index.ts index b12588cd..9efd23e2 100644 --- a/folder/package/index.ts +++ b/folder/package/index.ts @@ -1,2 +1,2 @@ -export { loadPackageFromFolder } from "./load.js" -export { savePackageToFolder } from "./save.js" +export { loadPackageFromFolder } from "./load.ts" +export { savePackageToFolder } from "./save.ts" diff --git a/folder/package/save.ts b/folder/package/save.ts index c6e32a81..2a81302e 100644 --- a/folder/package/save.ts +++ b/folder/package/save.ts @@ -7,7 +7,7 @@ import { getPackageBasepath, saveResourceFiles, } from "@dpkit/file" -import { createFolder } from "../folder/index.js" +import { createFolder } from "../folder/index.ts" export async function savePackageToFolder( dataPackage: Package, diff --git a/folder/plugin.ts b/folder/plugin.ts index 11d7d03c..932c3d02 100644 --- a/folder/plugin.ts +++ b/folder/plugin.ts @@ -1,7 +1,7 @@ import { stat } from "node:fs/promises" import type { Plugin } from "@dpkit/core" import { isRemotePath } from "@dpkit/core" -import { loadPackageFromFolder } from "./package/index.js" +import { loadPackageFromFolder } from "./package/index.ts" export class FolderPlugin implements Plugin { async loadPackage(source: string) { diff --git a/github/github/index.ts b/github/github/index.ts index 5d5ad435..72213bd6 100644 --- a/github/github/index.ts +++ b/github/github/index.ts @@ -1 +1 @@ -export { makeGithubApiRequest } from "./request.js" +export { makeGithubApiRequest } from "./request.ts" diff --git a/github/index.ts b/github/index.ts index c3c86163..ae6326f6 100644 --- a/github/index.ts +++ b/github/index.ts @@ -1,3 +1,3 @@ -export * from "./package/index.js" -export * from "./resource/index.js" -export * from "./plugin.js" +export * from "./package/index.ts" +export * from "./resource/index.ts" +export * from "./plugin.ts" diff --git a/github/package/Package.ts b/github/package/Package.ts index 8890a745..82bdc2e4 100644 --- a/github/package/Package.ts +++ b/github/package/Package.ts @@ -1,6 +1,6 @@ -import type { GithubResource } from "../resource/index.js" -import type { GithubLicense } from "./License.js" -import type { GithubOwner } from "./Owner.js" +import type { GithubResource } from "../resource/index.ts" +import type { GithubLicense } from "./License.ts" +import type { GithubOwner } from "./Owner.ts" /** * Github repository as a package diff --git a/github/package/index.ts b/github/package/index.ts index 7f94f3e0..69bcf427 100644 --- a/github/package/index.ts +++ b/github/package/index.ts @@ -1,5 +1,5 @@ -export type { GithubPackage } from "./Package.js" -export type { GithubOwner } from "./Owner.js" -export type { GithubLicense } from "./License.js" -export { loadPackageFromGithub } from "./load.js" -export { savePackageToGithub } from "./save.js" +export type { GithubPackage } from "./Package.ts" +export type { GithubOwner } from "./Owner.ts" +export type { GithubLicense } from "./License.ts" +export { loadPackageFromGithub } from "./load.ts" +export { savePackageToGithub } from "./save.ts" diff --git a/github/package/load.spec.ts b/github/package/load.spec.ts index 8bf5c0bf..f3cba35b 100644 --- a/github/package/load.spec.ts +++ b/github/package/load.spec.ts @@ -1,6 +1,6 @@ import { useRecording } from "@dpkit/test" import { describe, expect, it } from "vitest" -import { loadPackageFromGithub } from "./load.js" +import { loadPackageFromGithub } from "./load.ts" describe("loadPackageFromGithub", () => { useRecording() diff --git a/github/package/load.ts b/github/package/load.ts index 936d4386..98a708b3 100644 --- a/github/package/load.ts +++ b/github/package/load.ts @@ -1,8 +1,8 @@ import { mergePackages } from "@dpkit/core" -import { makeGithubApiRequest } from "../github/index.js" -import type { GithubResource } from "../resource/index.js" -import type { GithubPackage } from "./Package.js" -import { normalizeGithubPackage } from "./process/normalize.js" +import { makeGithubApiRequest } from "../github/index.ts" +import type { GithubResource } from "../resource/index.ts" +import type { GithubPackage } from "./Package.ts" +import { normalizeGithubPackage } from "./process/normalize.ts" /** * Load a package from a Github repository diff --git a/github/package/process/denormalize.ts b/github/package/process/denormalize.ts index 5ab172a9..caae857a 100644 --- a/github/package/process/denormalize.ts +++ b/github/package/process/denormalize.ts @@ -1,5 +1,5 @@ import type { Package } from "@dpkit/core" -import type { GithubPackage } from "../Package.js" +import type { GithubPackage } from "../Package.ts" /** * Denormalizes a Frictionless Data Package to Github repository metadata format diff --git a/github/package/process/normalize.ts b/github/package/process/normalize.ts index 8df161f7..06aab98b 100644 --- a/github/package/process/normalize.ts +++ b/github/package/process/normalize.ts @@ -1,6 +1,6 @@ import type { Contributor, License, Package } from "@dpkit/core" -import { normalizeGithubResource } from "../../resource/process/normalize.js" -import type { GithubPackage } from "../Package.js" +import { normalizeGithubResource } from "../../resource/process/normalize.ts" +import type { GithubPackage } from "../Package.ts" /** * Normalizes a Github repository to Frictionless Data package format diff --git a/github/package/save.spec.ts b/github/package/save.spec.ts index 0152824c..a644dfc6 100644 --- a/github/package/save.spec.ts +++ b/github/package/save.spec.ts @@ -1,7 +1,7 @@ import { loadPackageDescriptor } from "@dpkit/core" //import { useRecording } from "@dpkit/test" import { describe, expect, it } from "vitest" -import { savePackageToGithub } from "./save.js" +import { savePackageToGithub } from "./save.ts" describe("savePackageToGithub", () => { //useRecording() diff --git a/github/package/save.ts b/github/package/save.ts index 94147936..acaa833d 100644 --- a/github/package/save.ts +++ b/github/package/save.ts @@ -4,8 +4,8 @@ import type { Descriptor, Package } from "@dpkit/core" import { denormalizePackage, stringifyDescriptor } from "@dpkit/core" import { getPackageBasepath, loadFileStream } from "@dpkit/file" import { saveResourceFiles } from "@dpkit/file" -import { makeGithubApiRequest } from "../github/index.js" -import type { GithubPackage } from "./Package.js" +import { makeGithubApiRequest } from "../github/index.ts" +import type { GithubPackage } from "./Package.ts" /** * Save a package to a Github repository diff --git a/github/plugin.ts b/github/plugin.ts index 5817355b..543d193f 100644 --- a/github/plugin.ts +++ b/github/plugin.ts @@ -1,6 +1,6 @@ import type { Plugin } from "@dpkit/core" import { isRemotePath } from "@dpkit/core" -import { loadPackageFromGithub } from "./package/load.js" +import { loadPackageFromGithub } from "./package/load.ts" export class GithubPlugin implements Plugin { async loadPackage(source: string) { diff --git a/github/resource/index.ts b/github/resource/index.ts index 0923d91a..b9685df7 100644 --- a/github/resource/index.ts +++ b/github/resource/index.ts @@ -1,3 +1,3 @@ -export type { GithubResource } from "./Resource.js" -export { normalizeGithubResource } from "./process/normalize.js" -export { denormalizeGithubResource } from "./process/denormalize.js" +export type { GithubResource } from "./Resource.ts" +export { normalizeGithubResource } from "./process/normalize.ts" +export { denormalizeGithubResource } from "./process/denormalize.ts" diff --git a/github/resource/process/denormalize.ts b/github/resource/process/denormalize.ts index c82c8f1a..863fd5fc 100644 --- a/github/resource/process/denormalize.ts +++ b/github/resource/process/denormalize.ts @@ -1,5 +1,5 @@ import type { Resource } from "@dpkit/core" -import type { GithubResource } from "../Resource.js" +import type { GithubResource } from "../Resource.ts" /** * Denormalizes a Frictionless Data resource to Github file format diff --git a/github/resource/process/normalize.ts b/github/resource/process/normalize.ts index 7f6e8fa0..9a724356 100644 --- a/github/resource/process/normalize.ts +++ b/github/resource/process/normalize.ts @@ -1,6 +1,6 @@ import type { Resource } from "@dpkit/core" import { getFilename, getFormat, getName } from "@dpkit/core" -import type { GithubResource } from "../Resource.js" +import type { GithubResource } from "../Resource.ts" /** * Normalizes a Github file to Frictionless Data resource format diff --git a/inline/index.ts b/inline/index.ts index 14397550..5f4f33d9 100644 --- a/inline/index.ts +++ b/inline/index.ts @@ -1,2 +1,2 @@ -export * from "./table/index.js" -export * from "./plugin.js" +export * from "./table/index.ts" +export * from "./plugin.ts" diff --git a/inline/plugin.ts b/inline/plugin.ts index 1a98a540..f06a395c 100644 --- a/inline/plugin.ts +++ b/inline/plugin.ts @@ -1,6 +1,6 @@ import type { Resource } from "@dpkit/core" import type { TablePlugin } from "@dpkit/table" -import { loadInlineTable } from "./table/index.js" +import { loadInlineTable } from "./table/index.ts" export class InlinePlugin implements TablePlugin { async loadTable(resource: Resource) { diff --git a/inline/table/index.ts b/inline/table/index.ts index d22422e2..34861391 100644 --- a/inline/table/index.ts +++ b/inline/table/index.ts @@ -1 +1 @@ -export { loadInlineTable } from "./load.js" +export { loadInlineTable } from "./load.ts" diff --git a/inline/table/load.spec.ts b/inline/table/load.spec.ts index d6711cae..d5f7635c 100644 --- a/inline/table/load.spec.ts +++ b/inline/table/load.spec.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from "vitest" -import { loadInlineTable } from "./load.js" +import { loadInlineTable } from "./load.ts" describe("loadInlineTable", () => { it.each([ diff --git a/json/buffer/index.ts b/json/buffer/index.ts index 6c2e394e..e1f1ad14 100644 --- a/json/buffer/index.ts +++ b/json/buffer/index.ts @@ -1,2 +1,2 @@ -export { encodeJsonBuffer } from "./encode.js" -export { decodeJsonBuffer } from "./decode.js" +export { encodeJsonBuffer } from "./encode.ts" +export { decodeJsonBuffer } from "./decode.ts" diff --git a/json/index.ts b/json/index.ts index 14397550..5f4f33d9 100644 --- a/json/index.ts +++ b/json/index.ts @@ -1,2 +1,2 @@ -export * from "./table/index.js" -export * from "./plugin.js" +export * from "./table/index.ts" +export * from "./plugin.ts" diff --git a/json/plugin.ts b/json/plugin.ts index 68f33c90..e5dcb66f 100644 --- a/json/plugin.ts +++ b/json/plugin.ts @@ -2,8 +2,8 @@ import type { Resource } from "@dpkit/core" import { inferFormat } from "@dpkit/core" import type { TablePlugin } from "@dpkit/table" import type { SaveTableOptions, Table } from "@dpkit/table" -import { loadJsonTable, loadJsonlTable } from "./table/index.js" -import { saveJsonTable, saveJsonlTable } from "./table/index.js" +import { loadJsonTable, loadJsonlTable } from "./table/index.ts" +import { saveJsonTable, saveJsonlTable } from "./table/index.ts" export class JsonPlugin implements TablePlugin { async loadTable(resource: Partial) { diff --git a/json/table/index.ts b/json/table/index.ts index 0b5c9345..357f58c2 100644 --- a/json/table/index.ts +++ b/json/table/index.ts @@ -1,2 +1,2 @@ -export { loadJsonTable, loadJsonlTable } from "./load.js" -export { saveJsonTable, saveJsonlTable } from "./save.js" +export { loadJsonTable, loadJsonlTable } from "./load.ts" +export { saveJsonTable, saveJsonlTable } from "./save.ts" diff --git a/json/table/load.spec.ts b/json/table/load.spec.ts index dfc06be7..8251c6ea 100644 --- a/json/table/load.spec.ts +++ b/json/table/load.spec.ts @@ -1,7 +1,7 @@ import { writeTempFile } from "@dpkit/file" import { useRecording } from "@dpkit/test" import { describe, expect, it } from "vitest" -import { loadJsonTable, loadJsonlTable } from "./load.js" +import { loadJsonTable, loadJsonlTable } from "./load.ts" useRecording() diff --git a/json/table/load.ts b/json/table/load.ts index b2766f65..0158befc 100644 --- a/json/table/load.ts +++ b/json/table/load.ts @@ -5,7 +5,7 @@ import { prefetchFiles } from "@dpkit/file" import type { Table } from "@dpkit/table" import { concat } from "nodejs-polars" import { DataFrame, scanJson } from "nodejs-polars" -import { decodeJsonBuffer } from "../buffer/index.js" +import { decodeJsonBuffer } from "../buffer/index.ts" export async function loadJsonTable(resource: Partial) { return await loadTable(resource, { isLines: false }) diff --git a/json/table/save.spec.ts b/json/table/save.spec.ts index dbbe00b6..b3ce57a7 100644 --- a/json/table/save.spec.ts +++ b/json/table/save.spec.ts @@ -2,7 +2,7 @@ import { readFile } from "node:fs/promises" import { getTempFilePath } from "@dpkit/file" import { readRecords } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { saveJsonTable, saveJsonlTable } from "./save.js" +import { saveJsonTable, saveJsonlTable } from "./save.ts" const row1 = { id: 1, name: "english" } const row2 = { id: 2, name: "中文" } diff --git a/json/table/save.ts b/json/table/save.ts index bf126bf9..eae803b6 100644 --- a/json/table/save.ts +++ b/json/table/save.ts @@ -1,7 +1,7 @@ import type { Dialect } from "@dpkit/core" import { saveFile } from "@dpkit/file" import type { SaveTableOptions, Table } from "@dpkit/table" -import { decodeJsonBuffer, encodeJsonBuffer } from "../buffer/index.js" +import { decodeJsonBuffer, encodeJsonBuffer } from "../buffer/index.ts" export async function saveJsonTable(table: Table, options: SaveTableOptions) { return await saveTable(table, { ...options, isLines: false }) diff --git a/parquet/index.ts b/parquet/index.ts index 14397550..5f4f33d9 100644 --- a/parquet/index.ts +++ b/parquet/index.ts @@ -1,2 +1,2 @@ -export * from "./table/index.js" -export * from "./plugin.js" +export * from "./table/index.ts" +export * from "./plugin.ts" diff --git a/parquet/plugin.ts b/parquet/plugin.ts index 84e2e820..4a42edf8 100644 --- a/parquet/plugin.ts +++ b/parquet/plugin.ts @@ -2,7 +2,7 @@ import type { Resource } from "@dpkit/core" import { inferFormat } from "@dpkit/core" import type { TablePlugin } from "@dpkit/table" import type { SaveTableOptions, Table } from "@dpkit/table" -import { loadParquetTable, saveParquetTable } from "./table/index.js" +import { loadParquetTable, saveParquetTable } from "./table/index.ts" export class ParquetPlugin implements TablePlugin { async loadTable(resource: Partial) { diff --git a/parquet/table/index.ts b/parquet/table/index.ts index 0e7397c7..9287f51f 100644 --- a/parquet/table/index.ts +++ b/parquet/table/index.ts @@ -1,2 +1,2 @@ -export { loadParquetTable } from "./load.js" -export { saveParquetTable } from "./save.js" +export { loadParquetTable } from "./load.ts" +export { saveParquetTable } from "./save.ts" diff --git a/parquet/table/load.spec.ts b/parquet/table/load.spec.ts index 46064708..36a7cbf9 100644 --- a/parquet/table/load.spec.ts +++ b/parquet/table/load.spec.ts @@ -2,7 +2,7 @@ import { getTempFilePath } from "@dpkit/file" import { useRecording } from "@dpkit/test" import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { loadParquetTable } from "./load.js" +import { loadParquetTable } from "./load.ts" describe("loadParquetTable", () => { useRecording() diff --git a/parquet/table/save.spec.ts b/parquet/table/save.spec.ts index 4c43089c..ae0c1abc 100644 --- a/parquet/table/save.spec.ts +++ b/parquet/table/save.spec.ts @@ -1,8 +1,8 @@ import { getTempFilePath } from "@dpkit/file" import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { loadParquetTable } from "./load.js" -import { saveParquetTable } from "./save.js" +import { loadParquetTable } from "./load.ts" +import { saveParquetTable } from "./save.ts" describe("saveParquetTable", () => { it("should save table to Parquet file", async () => { diff --git a/table/error/Cell.ts b/table/error/Cell.ts index 12597b75..2eaf5407 100644 --- a/table/error/Cell.ts +++ b/table/error/Cell.ts @@ -1,4 +1,4 @@ -import type { BaseTableError } from "./Base.js" +import type { BaseTableError } from "./Base.ts" export interface BaseCellError extends BaseTableError { fieldName: string diff --git a/table/error/Field.ts b/table/error/Field.ts index 6ed1d632..b421f4e6 100644 --- a/table/error/Field.ts +++ b/table/error/Field.ts @@ -1,5 +1,5 @@ import type { Field } from "@dpkit/core" -import type { BaseTableError } from "./Base.js" +import type { BaseTableError } from "./Base.ts" export interface BaseFieldError extends BaseTableError { fieldName: string diff --git a/table/error/Fields.ts b/table/error/Fields.ts index 001bc867..1e7da0a7 100644 --- a/table/error/Fields.ts +++ b/table/error/Fields.ts @@ -1,4 +1,4 @@ -import type { BaseTableError } from "./Base.js" +import type { BaseTableError } from "./Base.ts" export interface BaseFieldsError extends BaseTableError { fieldNames: string[] diff --git a/table/error/Row.ts b/table/error/Row.ts index e912827b..0569a3e3 100644 --- a/table/error/Row.ts +++ b/table/error/Row.ts @@ -1,4 +1,4 @@ -import type { BaseTableError } from "./Base.js" +import type { BaseTableError } from "./Base.ts" export interface BaseRowError extends BaseTableError { rowNumber: number diff --git a/table/error/Table.ts b/table/error/Table.ts index 26e5d02e..e6f1d362 100644 --- a/table/error/Table.ts +++ b/table/error/Table.ts @@ -10,10 +10,10 @@ import type { CellRequiredError, CellTypeError, CellUniqueError, -} from "./Cell.js" -import type { FieldNameError, FieldTypeError } from "./Field.js" -import type { FieldsExtraError, FieldsMissingError } from "./Fields.js" -import type { RowUniqueError } from "./Row.js" +} from "./Cell.ts" +import type { FieldNameError, FieldTypeError } from "./Field.ts" +import type { FieldsExtraError, FieldsMissingError } from "./Fields.ts" +import type { RowUniqueError } from "./Row.ts" export type TableError = | FieldsMissingError diff --git a/table/error/index.ts b/table/error/index.ts index 4ad31778..97f6c08e 100644 --- a/table/error/index.ts +++ b/table/error/index.ts @@ -1 +1 @@ -export type { TableError } from "./Table.js" +export type { TableError } from "./Table.ts" diff --git a/table/field/checks/enum.spec.ts b/table/field/checks/enum.spec.ts index 634f877c..5d6100a8 100644 --- a/table/field/checks/enum.spec.ts +++ b/table/field/checks/enum.spec.ts @@ -1,7 +1,7 @@ import type { Schema } from "@dpkit/core" import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { inspectTable } from "../../table/index.js" +import { inspectTable } from "../../table/index.ts" describe("inspectTable (cell/enum)", () => { it("should not report errors for string values that are in the enum", async () => { diff --git a/table/field/checks/enum.ts b/table/field/checks/enum.ts index e08b32c7..5ad37c52 100644 --- a/table/field/checks/enum.ts +++ b/table/field/checks/enum.ts @@ -1,6 +1,6 @@ import type { Field } from "@dpkit/core" import { col } from "nodejs-polars" -import type { Table } from "../../table/index.js" +import type { Table } from "../../table/index.ts" export function checkCellEnum(field: Field, errorTable: Table) { if (field.type === "string") { diff --git a/table/field/checks/maxLength.spec.ts b/table/field/checks/maxLength.spec.ts index 93598810..c4e90d19 100644 --- a/table/field/checks/maxLength.spec.ts +++ b/table/field/checks/maxLength.spec.ts @@ -1,7 +1,7 @@ import type { Schema } from "@dpkit/core" import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { inspectTable } from "../../table/index.js" +import { inspectTable } from "../../table/index.ts" describe("inspectTable (cell/maxLength)", () => { it("should not report errors for string values that meet the maxLength constraint", async () => { diff --git a/table/field/checks/maxLength.ts b/table/field/checks/maxLength.ts index ebf7d9c7..d1b6ef2a 100644 --- a/table/field/checks/maxLength.ts +++ b/table/field/checks/maxLength.ts @@ -1,6 +1,6 @@ import type { Field } from "@dpkit/core" import { col } from "nodejs-polars" -import type { Table } from "../../table/index.js" +import type { Table } from "../../table/index.ts" export function checkCellMaxLength(field: Field, errorTable: Table) { if (field.type === "string") { diff --git a/table/field/checks/maximum.spec.ts b/table/field/checks/maximum.spec.ts index 378cea81..6c3acb81 100644 --- a/table/field/checks/maximum.spec.ts +++ b/table/field/checks/maximum.spec.ts @@ -1,7 +1,7 @@ import type { Schema } from "@dpkit/core" import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { inspectTable } from "../../table/index.js" +import { inspectTable } from "../../table/index.ts" describe("inspectTable (cell/maximum)", () => { it("should not report errors for valid values", async () => { diff --git a/table/field/checks/maximum.ts b/table/field/checks/maximum.ts index 4a8ffbd9..ccb7d8be 100644 --- a/table/field/checks/maximum.ts +++ b/table/field/checks/maximum.ts @@ -1,6 +1,6 @@ import type { Field } from "@dpkit/core" import { col, lit } from "nodejs-polars" -import type { Table } from "../../table/index.js" +import type { Table } from "../../table/index.ts" export function checkCellMaximum( field: Field, diff --git a/table/field/checks/minLength.spec.ts b/table/field/checks/minLength.spec.ts index 71d23f38..c13aa025 100644 --- a/table/field/checks/minLength.spec.ts +++ b/table/field/checks/minLength.spec.ts @@ -1,7 +1,7 @@ import type { Schema } from "@dpkit/core" import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { inspectTable } from "../../table/index.js" +import { inspectTable } from "../../table/index.ts" describe("inspectTable (cell/minLength)", () => { it("should not report errors for string values that meet the minLength constraint", async () => { diff --git a/table/field/checks/minLength.ts b/table/field/checks/minLength.ts index f532d5fb..aa9106a3 100644 --- a/table/field/checks/minLength.ts +++ b/table/field/checks/minLength.ts @@ -1,6 +1,6 @@ import type { Field } from "@dpkit/core" import { col } from "nodejs-polars" -import type { Table } from "../../table/index.js" +import type { Table } from "../../table/index.ts" export function checkCellMinLength(field: Field, errorTable: Table) { if (field.type === "string") { diff --git a/table/field/checks/minimum.spec.ts b/table/field/checks/minimum.spec.ts index c5a3e43e..8e1a307f 100644 --- a/table/field/checks/minimum.spec.ts +++ b/table/field/checks/minimum.spec.ts @@ -1,7 +1,7 @@ import type { Schema } from "@dpkit/core" import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { inspectTable } from "../../table/index.js" +import { inspectTable } from "../../table/index.ts" describe("inspectTable (cell/minimum)", () => { it("should not report errors for valid values", async () => { diff --git a/table/field/checks/minimum.ts b/table/field/checks/minimum.ts index 4b23685a..c193df3c 100644 --- a/table/field/checks/minimum.ts +++ b/table/field/checks/minimum.ts @@ -1,6 +1,6 @@ import type { Field } from "@dpkit/core" import { col, lit } from "nodejs-polars" -import type { Table } from "../../table/index.js" +import type { Table } from "../../table/index.ts" export function checkCellMinimum( field: Field, diff --git a/table/field/checks/pattern.spec.ts b/table/field/checks/pattern.spec.ts index 615e98c9..29e60d60 100644 --- a/table/field/checks/pattern.spec.ts +++ b/table/field/checks/pattern.spec.ts @@ -1,7 +1,7 @@ import type { Schema } from "@dpkit/core" import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { inspectTable } from "../../table/index.js" +import { inspectTable } from "../../table/index.ts" describe("inspectTable (cell/pattern)", () => { it("should not report errors for string values that match the pattern", async () => { diff --git a/table/field/checks/pattern.ts b/table/field/checks/pattern.ts index f0dbc8b4..82acbe3c 100644 --- a/table/field/checks/pattern.ts +++ b/table/field/checks/pattern.ts @@ -1,6 +1,6 @@ import type { Field } from "@dpkit/core" import { col } from "nodejs-polars" -import type { Table } from "../../table/index.js" +import type { Table } from "../../table/index.ts" export function checkCellPattern(field: Field, errorTable: Table) { if (field.type === "string") { diff --git a/table/field/checks/required.spec.ts b/table/field/checks/required.spec.ts index 1845fb64..1468ebd5 100644 --- a/table/field/checks/required.spec.ts +++ b/table/field/checks/required.spec.ts @@ -1,7 +1,7 @@ import type { Schema } from "@dpkit/core" import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { inspectTable } from "../../table/index.js" +import { inspectTable } from "../../table/index.ts" describe("inspectTable (cell/required)", () => { it("should report a cell/required error", async () => { diff --git a/table/field/checks/required.ts b/table/field/checks/required.ts index 3511aeb7..b7eac84d 100644 --- a/table/field/checks/required.ts +++ b/table/field/checks/required.ts @@ -1,6 +1,6 @@ import type { Field } from "@dpkit/core" import { col } from "nodejs-polars" -import type { Table } from "../../table/index.js" +import type { Table } from "../../table/index.ts" export function checkCellRequired(field: Field, errorTable: Table) { if (field.constraints?.required) { diff --git a/table/field/checks/type.spec.ts b/table/field/checks/type.spec.ts index ef07068d..027a5215 100644 --- a/table/field/checks/type.spec.ts +++ b/table/field/checks/type.spec.ts @@ -1,7 +1,7 @@ import type { Schema } from "@dpkit/core" import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { inspectTable } from "../../table/index.js" +import { inspectTable } from "../../table/index.ts" describe("inspectTable", () => { it("should inspect string to integer conversion errors", async () => { diff --git a/table/field/checks/type.ts b/table/field/checks/type.ts index a1098447..eb5db3e8 100644 --- a/table/field/checks/type.ts +++ b/table/field/checks/type.ts @@ -1,6 +1,6 @@ import type { Field } from "@dpkit/core" import { col } from "nodejs-polars" -import type { Table } from "../../table/index.js" +import type { Table } from "../../table/index.ts" export function checkCellType(field: Field, errorTable: Table) { const source = col(`source:${field.name}`) diff --git a/table/field/checks/unique.spec.ts b/table/field/checks/unique.spec.ts index dbd4e4d6..c53727c8 100644 --- a/table/field/checks/unique.spec.ts +++ b/table/field/checks/unique.spec.ts @@ -1,7 +1,7 @@ import type { Schema } from "@dpkit/core" import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { inspectTable } from "../../table/index.js" +import { inspectTable } from "../../table/index.ts" // TODO: recover describe("inspectTable (cell/unique)", () => { diff --git a/table/field/checks/unique.ts b/table/field/checks/unique.ts index 4d8b5caa..5078afba 100644 --- a/table/field/checks/unique.ts +++ b/table/field/checks/unique.ts @@ -1,6 +1,6 @@ import type { Field } from "@dpkit/core" import { col } from "nodejs-polars" -import type { Table } from "../../table/index.js" +import type { Table } from "../../table/index.ts" // TODO: Support schema.primaryKey and schema.uniqueKeys export function checkCellUnique(field: Field, errorTable: Table) { diff --git a/table/field/index.ts b/table/field/index.ts index 5c065616..a9480dfe 100644 --- a/table/field/index.ts +++ b/table/field/index.ts @@ -1,4 +1,4 @@ -export { parseField } from "./parse.js" -export { inspectField } from "./inspect.js" -export type { PolarsField } from "./Field.js" -export { matchField } from "./match.js" +export { parseField } from "./parse.ts" +export { inspectField } from "./inspect.ts" +export type { PolarsField } from "./Field.ts" +export { matchField } from "./match.ts" diff --git a/table/field/inspect.spec.ts b/table/field/inspect.spec.ts index 1ec33245..978dcd25 100644 --- a/table/field/inspect.spec.ts +++ b/table/field/inspect.spec.ts @@ -1,7 +1,7 @@ import type { Schema } from "@dpkit/core" import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { inspectTable } from "../table/inspect.js" +import { inspectTable } from "../table/inspect.ts" describe("inspectField", () => { describe("field name validation", () => { diff --git a/table/field/inspect.ts b/table/field/inspect.ts index f81eb315..095a368d 100644 --- a/table/field/inspect.ts +++ b/table/field/inspect.ts @@ -1,16 +1,16 @@ import type { Field } from "@dpkit/core" -import type { TableError } from "../error/index.js" -import type { Table } from "../table/index.js" -import type { PolarsField } from "./Field.js" -import { checkCellEnum } from "./checks/enum.js" -import { checkCellMaxLength } from "./checks/maxLength.js" -import { checkCellMaximum } from "./checks/maximum.js" -import { checkCellMinLength } from "./checks/minLength.js" -import { checkCellMinimum } from "./checks/minimum.js" -import { checkCellPattern } from "./checks/pattern.js" -import { checkCellRequired } from "./checks/required.js" -import { checkCellType } from "./checks/type.js" -import { checkCellUnique } from "./checks/unique.js" +import type { TableError } from "../error/index.ts" +import type { Table } from "../table/index.ts" +import type { PolarsField } from "./Field.ts" +import { checkCellEnum } from "./checks/enum.ts" +import { checkCellMaxLength } from "./checks/maxLength.ts" +import { checkCellMaximum } from "./checks/maximum.ts" +import { checkCellMinLength } from "./checks/minLength.ts" +import { checkCellMinimum } from "./checks/minimum.ts" +import { checkCellPattern } from "./checks/pattern.ts" +import { checkCellRequired } from "./checks/required.ts" +import { checkCellType } from "./checks/type.ts" +import { checkCellUnique } from "./checks/unique.ts" export function inspectField( field: Field, diff --git a/table/field/match.ts b/table/field/match.ts index 953660cb..ce9b33e9 100644 --- a/table/field/match.ts +++ b/table/field/match.ts @@ -1,5 +1,5 @@ import type { Field, Schema } from "@dpkit/core" -import type { PolarsSchema } from "../schema/index.js" +import type { PolarsSchema } from "../schema/index.ts" export function matchField( index: number, diff --git a/table/field/parse.spec.ts b/table/field/parse.spec.ts index d8a8b894..ef2e24ef 100644 --- a/table/field/parse.spec.ts +++ b/table/field/parse.spec.ts @@ -1,7 +1,7 @@ import type { Schema } from "@dpkit/core" import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { processTable } from "../table/index.js" +import { processTable } from "../table/index.ts" describe("parseField", () => { describe("missing values", () => { diff --git a/table/field/parse.ts b/table/field/parse.ts index 30b63ce9..6a9f8383 100644 --- a/table/field/parse.ts +++ b/table/field/parse.ts @@ -1,21 +1,21 @@ import type { Field, Schema } from "@dpkit/core" import { col, lit, when } from "nodejs-polars" import type { Expr } from "nodejs-polars" -import { parseArrayField } from "./types/array.js" -import { parseBooleanField } from "./types/boolean.js" -import { parseDateField } from "./types/date.js" -import { parseDatetimeField } from "./types/datetime.js" -import { parseDurationField } from "./types/duration.js" -import { parseGeojsonField } from "./types/geojson.js" -import { parseGeopointField } from "./types/geopoint.js" -import { parseIntegerField } from "./types/integer.js" -import { parseListField } from "./types/list.js" -import { parseNumberField } from "./types/number.js" -import { parseObjectField } from "./types/object.js" -import { parseStringField } from "./types/string.js" -import { parseTimeField } from "./types/time.js" -import { parseYearField } from "./types/year.js" -import { parseYearmonthField } from "./types/yearmonth.js" +import { parseArrayField } from "./types/array.ts" +import { parseBooleanField } from "./types/boolean.ts" +import { parseDateField } from "./types/date.ts" +import { parseDatetimeField } from "./types/datetime.ts" +import { parseDurationField } from "./types/duration.ts" +import { parseGeojsonField } from "./types/geojson.ts" +import { parseGeopointField } from "./types/geopoint.ts" +import { parseIntegerField } from "./types/integer.ts" +import { parseListField } from "./types/list.ts" +import { parseNumberField } from "./types/number.ts" +import { parseObjectField } from "./types/object.ts" +import { parseStringField } from "./types/string.ts" +import { parseTimeField } from "./types/time.ts" +import { parseYearField } from "./types/year.ts" +import { parseYearmonthField } from "./types/yearmonth.ts" const DEFAULT_MISSING_VALUES = [""] diff --git a/table/field/types/array.spec.ts b/table/field/types/array.spec.ts index 0591a4c6..d881f1b8 100644 --- a/table/field/types/array.spec.ts +++ b/table/field/types/array.spec.ts @@ -1,6 +1,6 @@ import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { processTable } from "../../table/index.js" +import { processTable } from "../../table/index.ts" describe("parseArrayField", () => { it.each([ diff --git a/table/field/types/boolean.spec.ts b/table/field/types/boolean.spec.ts index c418f1e0..3618e98b 100644 --- a/table/field/types/boolean.spec.ts +++ b/table/field/types/boolean.spec.ts @@ -1,6 +1,6 @@ import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { processTable } from "../../table/index.js" +import { processTable } from "../../table/index.ts" describe("parseBooleanField", () => { it.each([ diff --git a/table/field/types/date.spec.ts b/table/field/types/date.spec.ts index e284f223..5cf5beb5 100644 --- a/table/field/types/date.spec.ts +++ b/table/field/types/date.spec.ts @@ -1,6 +1,6 @@ import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { processTable } from "../../table/index.js" +import { processTable } from "../../table/index.ts" describe("parseDateField", () => { it.each([ diff --git a/table/field/types/datetime.spec.ts b/table/field/types/datetime.spec.ts index 0a71f814..c1abbd7a 100644 --- a/table/field/types/datetime.spec.ts +++ b/table/field/types/datetime.spec.ts @@ -1,6 +1,6 @@ import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { processTable } from "../../table/index.js" +import { processTable } from "../../table/index.ts" // TODO: Enable this test suite // Currently, it seems to have a weird datetime translation bug on the Polars side diff --git a/table/field/types/duration.spec.ts b/table/field/types/duration.spec.ts index f1a8c803..48a441e5 100644 --- a/table/field/types/duration.spec.ts +++ b/table/field/types/duration.spec.ts @@ -1,6 +1,6 @@ import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { processTable } from "../../table/index.js" +import { processTable } from "../../table/index.ts" describe("parseDurationField", () => { it.each([["P23DT23H", "P23DT23H", {}]])( diff --git a/table/field/types/geojson.spec.ts b/table/field/types/geojson.spec.ts index 84f702a7..5b09578b 100644 --- a/table/field/types/geojson.spec.ts +++ b/table/field/types/geojson.spec.ts @@ -1,6 +1,6 @@ import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { processTable } from "../../table/index.js" +import { processTable } from "../../table/index.ts" describe("parseGeojsonField", () => { it.each([ diff --git a/table/field/types/geopoint.spec.ts b/table/field/types/geopoint.spec.ts index 45ea00d4..fff80217 100644 --- a/table/field/types/geopoint.spec.ts +++ b/table/field/types/geopoint.spec.ts @@ -1,6 +1,6 @@ import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { processTable } from "../../table/index.js" +import { processTable } from "../../table/index.ts" describe("parseGeopointField", () => { describe("default format", () => { diff --git a/table/field/types/integer.spec.ts b/table/field/types/integer.spec.ts index 3c776ed6..02fa74c4 100644 --- a/table/field/types/integer.spec.ts +++ b/table/field/types/integer.spec.ts @@ -1,6 +1,6 @@ import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { processTable } from "../../table/index.js" +import { processTable } from "../../table/index.ts" describe("parseIntegerField", () => { it.each([ diff --git a/table/field/types/list.spec.ts b/table/field/types/list.spec.ts index 9387cc45..606452df 100644 --- a/table/field/types/list.spec.ts +++ b/table/field/types/list.spec.ts @@ -1,6 +1,6 @@ import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { processTable } from "../../table/index.js" +import { processTable } from "../../table/index.ts" describe("parseListField", () => { describe("default settings (string items, comma delimiter)", () => { diff --git a/table/field/types/number.spec.ts b/table/field/types/number.spec.ts index 2b468b7c..bb375915 100644 --- a/table/field/types/number.spec.ts +++ b/table/field/types/number.spec.ts @@ -1,6 +1,6 @@ import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { processTable } from "../../table/index.js" +import { processTable } from "../../table/index.ts" describe("parseNumberField", () => { it.each([ diff --git a/table/field/types/object.spec.ts b/table/field/types/object.spec.ts index afdea5d7..64259d9a 100644 --- a/table/field/types/object.spec.ts +++ b/table/field/types/object.spec.ts @@ -1,6 +1,6 @@ import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { processTable } from "../../table/index.js" +import { processTable } from "../../table/index.ts" describe("parseObjectField", () => { it.each([ diff --git a/table/field/types/string.spec.ts b/table/field/types/string.spec.ts index 3fded186..3c5e6131 100644 --- a/table/field/types/string.spec.ts +++ b/table/field/types/string.spec.ts @@ -1,6 +1,6 @@ import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { processTable } from "../../table/index.js" +import { processTable } from "../../table/index.ts" // TODO: Implement proper tests // TODO: Currently, it fails on to JS conversion from Polars diff --git a/table/field/types/time.spec.ts b/table/field/types/time.spec.ts index c813fe50..3de524c4 100644 --- a/table/field/types/time.spec.ts +++ b/table/field/types/time.spec.ts @@ -1,6 +1,6 @@ import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { processTable } from "../../table/index.js" +import { processTable } from "../../table/index.ts" describe("parseTimeField", () => { it.each([ diff --git a/table/field/types/year.spec.ts b/table/field/types/year.spec.ts index 07c3cb6f..a47c05e5 100644 --- a/table/field/types/year.spec.ts +++ b/table/field/types/year.spec.ts @@ -1,6 +1,6 @@ import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { processTable } from "../../table/index.js" +import { processTable } from "../../table/index.ts" describe("parseYearField", () => { it.each([ diff --git a/table/field/types/yearmonth.spec.ts b/table/field/types/yearmonth.spec.ts index d10c234b..95f72aa4 100644 --- a/table/field/types/yearmonth.spec.ts +++ b/table/field/types/yearmonth.spec.ts @@ -1,6 +1,6 @@ import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { processTable } from "../../table/index.js" +import { processTable } from "../../table/index.ts" describe("parseYearmonthField", () => { it.each([ diff --git a/table/index.ts b/table/index.ts index c26a3102..d5e46f0e 100644 --- a/table/index.ts +++ b/table/index.ts @@ -1,5 +1,5 @@ -export * from "./error/index.js" -export * from "./field/index.js" -export * from "./schema/index.js" -export * from "./table/index.js" -export * from "./plugin.js" +export * from "./error/index.ts" +export * from "./field/index.ts" +export * from "./schema/index.ts" +export * from "./table/index.ts" +export * from "./plugin.ts" diff --git a/table/plugin.ts b/table/plugin.ts index 6962120b..d765d696 100644 --- a/table/plugin.ts +++ b/table/plugin.ts @@ -1,5 +1,5 @@ import type { Dialect, Plugin, Resource } from "@dpkit/core" -import type { Table } from "./table/index.js" +import type { Table } from "./table/index.ts" export type InferDialectOptions = { sampleBytes?: number } export type SaveTableOptions = { path: string; dialect?: Dialect } diff --git a/table/row/checks/unique.spec.ts b/table/row/checks/unique.spec.ts index 35c5578c..34c91c6b 100644 --- a/table/row/checks/unique.spec.ts +++ b/table/row/checks/unique.spec.ts @@ -1,7 +1,7 @@ import type { Schema } from "@dpkit/core" import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { inspectTable } from "../../table/index.js" +import { inspectTable } from "../../table/index.ts" describe("inspectTable (row/unique)", () => { it("should not report errors when all rows are unique for primary key", async () => { diff --git a/table/row/checks/unique.ts b/table/row/checks/unique.ts index fdc706be..3ed1e21e 100644 --- a/table/row/checks/unique.ts +++ b/table/row/checks/unique.ts @@ -1,6 +1,6 @@ import type { Schema } from "@dpkit/core" import { col, concatList } from "nodejs-polars" -import type { Table } from "../../table/Table.js" +import type { Table } from "../../table/Table.ts" // TODO: fold is not available so we use a tricky way to eliminate list nulls // TODO: Using comma as separator might rarely clash with comma in field names diff --git a/table/row/index.ts b/table/row/index.ts index 908c3482..7a4e2c8b 100644 --- a/table/row/index.ts +++ b/table/row/index.ts @@ -1 +1 @@ -export { inspectRows } from "./inspect.js" +export { inspectRows } from "./inspect.ts" diff --git a/table/row/inspect.ts b/table/row/inspect.ts index 8b4a980e..097c6c49 100644 --- a/table/row/inspect.ts +++ b/table/row/inspect.ts @@ -1,7 +1,7 @@ import type { Schema } from "@dpkit/core" -import type { TableError } from "../error/Table.js" -import type { Table } from "../table/Table.js" -import { checkRowUnique } from "./checks/unique.js" +import type { TableError } from "../error/Table.ts" +import type { Table } from "../table/Table.ts" +import { checkRowUnique } from "./checks/unique.ts" export function inspectRows(schema: Schema, errorTable: Table) { const errors: TableError[] = [] diff --git a/table/schema/Schema.ts b/table/schema/Schema.ts index 3da30622..c4ae7f44 100644 --- a/table/schema/Schema.ts +++ b/table/schema/Schema.ts @@ -1,5 +1,5 @@ import type { DataType } from "nodejs-polars" -import type { PolarsField } from "../field/index.js" +import type { PolarsField } from "../field/index.ts" export interface PolarsSchema { fields: PolarsField[] diff --git a/table/schema/index.ts b/table/schema/index.ts index ec5f5ee5..9d6f0cd4 100644 --- a/table/schema/index.ts +++ b/table/schema/index.ts @@ -1,2 +1,2 @@ -export { type InferSchemaOptions, inferSchema } from "./infer.js" -export { type PolarsSchema, getPolarsSchema } from "./Schema.js" +export { type InferSchemaOptions, inferSchema } from "./infer.ts" +export { type PolarsSchema, getPolarsSchema } from "./Schema.ts" diff --git a/table/schema/infer.spec.ts b/table/schema/infer.spec.ts index 643a5c0b..a04ea61e 100644 --- a/table/schema/infer.spec.ts +++ b/table/schema/infer.spec.ts @@ -1,7 +1,7 @@ import { DataFrame, Series } from "nodejs-polars" import { DataType } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { inferSchema } from "./infer.js" +import { inferSchema } from "./infer.ts" describe("inferSchema", () => { it("should infer from native types", async () => { diff --git a/table/schema/infer.ts b/table/schema/infer.ts index 97b7c2d6..7354fcce 100644 --- a/table/schema/infer.ts +++ b/table/schema/infer.ts @@ -1,7 +1,7 @@ import type { Field, Schema } from "@dpkit/core" import { col } from "nodejs-polars" -import { getPolarsSchema } from "../schema/index.js" -import type { Table } from "../table/index.js" +import { getPolarsSchema } from "../schema/index.ts" +import type { Table } from "../table/index.ts" export type InferSchemaOptions = { sampleRows?: number diff --git a/table/table/index.ts b/table/table/index.ts index 6d218e5a..de48fdc4 100644 --- a/table/table/index.ts +++ b/table/table/index.ts @@ -1,3 +1,3 @@ -export { processTable } from "./process.js" -export { inspectTable } from "./inspect.js" -export type { Table } from "./Table.js" +export { processTable } from "./process.ts" +export { inspectTable } from "./inspect.ts" +export type { Table } from "./Table.ts" diff --git a/table/table/inspect.spec.ts b/table/table/inspect.spec.ts index 65b4d3fd..75888ff9 100644 --- a/table/table/inspect.spec.ts +++ b/table/table/inspect.spec.ts @@ -1,7 +1,7 @@ import type { Schema } from "@dpkit/core" import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { inspectTable } from "./inspect.js" +import { inspectTable } from "./inspect.ts" describe("inspectTable", () => { describe("fields validation with fieldsMatch='exact'", () => { diff --git a/table/table/inspect.ts b/table/table/inspect.ts index fde5a3b4..1e95570f 100644 --- a/table/table/inspect.ts +++ b/table/table/inspect.ts @@ -1,13 +1,13 @@ import type { Schema } from "@dpkit/core" import { col, lit } from "nodejs-polars" -import type { TableError } from "../error/index.js" -import { matchField } from "../field/index.js" -import { inspectField } from "../field/index.js" -import { inspectRows } from "../row/index.js" -import { getPolarsSchema } from "../schema/index.js" -import type { PolarsSchema } from "../schema/index.js" -import type { Table } from "./Table.js" -import { processFields } from "./process.js" +import type { TableError } from "../error/index.ts" +import { matchField } from "../field/index.ts" +import { inspectField } from "../field/index.ts" +import { inspectRows } from "../row/index.ts" +import { getPolarsSchema } from "../schema/index.ts" +import type { PolarsSchema } from "../schema/index.ts" +import type { Table } from "./Table.ts" +import { processFields } from "./process.ts" export async function inspectTable( table: Table, diff --git a/table/table/process.spec.ts b/table/table/process.spec.ts index d3b1b7d3..ea4eb244 100644 --- a/table/table/process.spec.ts +++ b/table/table/process.spec.ts @@ -1,7 +1,7 @@ import type { Schema } from "@dpkit/core" import { DataFrame } from "nodejs-polars" import { describe, expect, it } from "vitest" -import { processTable } from "./process.js" +import { processTable } from "./process.ts" describe("processTable", () => { it("should work without schema", async () => { diff --git a/table/table/process.ts b/table/table/process.ts index 13a29de1..2b085473 100644 --- a/table/table/process.ts +++ b/table/table/process.ts @@ -2,11 +2,11 @@ import type { Schema } from "@dpkit/core" import type { Expr } from "nodejs-polars" import { DataType } from "nodejs-polars" import { col, lit } from "nodejs-polars" -import { matchField } from "../field/index.js" -import { parseField } from "../field/index.js" -import type { PolarsSchema } from "../schema/index.js" -import { getPolarsSchema } from "../schema/index.js" -import type { Table } from "./Table.js" +import { matchField } from "../field/index.ts" +import { parseField } from "../field/index.ts" +import type { PolarsSchema } from "../schema/index.ts" +import { getPolarsSchema } from "../schema/index.ts" +import type { Table } from "./Table.ts" export async function processTable( table: Table, diff --git a/test/index.ts b/test/index.ts index fa872042..fee0754e 100644 --- a/test/index.ts +++ b/test/index.ts @@ -1 +1 @@ -export * from "./recording/index.js" +export * from "./recording/index.ts" diff --git a/test/recording/index.ts b/test/recording/index.ts index 6ae78c0c..86c8b328 100644 --- a/test/recording/index.ts +++ b/test/recording/index.ts @@ -1 +1 @@ -export { useRecording } from "./recording.js" +export { useRecording } from "./recording.ts" diff --git a/zenodo/index.ts b/zenodo/index.ts index c3c86163..ae6326f6 100644 --- a/zenodo/index.ts +++ b/zenodo/index.ts @@ -1,3 +1,3 @@ -export * from "./package/index.js" -export * from "./resource/index.js" -export * from "./plugin.js" +export * from "./package/index.ts" +export * from "./resource/index.ts" +export * from "./plugin.ts" diff --git a/zenodo/package/Package.ts b/zenodo/package/Package.ts index e19f00b0..955dd23b 100644 --- a/zenodo/package/Package.ts +++ b/zenodo/package/Package.ts @@ -1,5 +1,5 @@ -import type { ZenodoResource } from "../resource/index.js" -import type { ZenodoCreator } from "./Creator.js" +import type { ZenodoResource } from "../resource/index.ts" +import type { ZenodoCreator } from "./Creator.ts" /** * Zenodo Deposit interface diff --git a/zenodo/package/index.ts b/zenodo/package/index.ts index 3ef3a5d1..8c9b2745 100644 --- a/zenodo/package/index.ts +++ b/zenodo/package/index.ts @@ -1,4 +1,4 @@ -export type { ZenodoPackage } from "./Package.js" -export type { ZenodoCreator } from "./Creator.js" -export { loadPackageFromZenodo } from "./load.js" -export { savePackageToZenodo } from "./save.js" +export type { ZenodoPackage } from "./Package.ts" +export type { ZenodoCreator } from "./Creator.ts" +export { loadPackageFromZenodo } from "./load.ts" +export { savePackageToZenodo } from "./save.ts" diff --git a/zenodo/package/load.spec.ts b/zenodo/package/load.spec.ts index 1b6f8420..2227e463 100644 --- a/zenodo/package/load.spec.ts +++ b/zenodo/package/load.spec.ts @@ -1,6 +1,6 @@ import { useRecording } from "@dpkit/test" import { describe, expect, it } from "vitest" -import { loadPackageFromZenodo } from "./load.js" +import { loadPackageFromZenodo } from "./load.ts" describe("loadPackageFromZenodo", () => { useRecording() diff --git a/zenodo/package/load.ts b/zenodo/package/load.ts index 31aaf40b..be9d5e32 100644 --- a/zenodo/package/load.ts +++ b/zenodo/package/load.ts @@ -1,7 +1,7 @@ import { mergePackages } from "@dpkit/core" -import { makeZenodoApiRequest } from "../zenodo/index.js" -import type { ZenodoPackage } from "./Package.js" -import { normalizeZenodoPackage } from "./process/normalize.js" +import { makeZenodoApiRequest } from "../zenodo/index.ts" +import type { ZenodoPackage } from "./Package.ts" +import { normalizeZenodoPackage } from "./process/normalize.ts" /** * Load a package from a Zenodo deposit diff --git a/zenodo/package/process/denormalize.ts b/zenodo/package/process/denormalize.ts index 9c7a3138..c2770475 100644 --- a/zenodo/package/process/denormalize.ts +++ b/zenodo/package/process/denormalize.ts @@ -1,6 +1,6 @@ import type { Package } from "@dpkit/core" -import type { ZenodoCreator } from "../Creator.js" -import type { ZenodoPackage } from "../Package.js" +import type { ZenodoCreator } from "../Creator.ts" +import type { ZenodoPackage } from "../Package.ts" /** * Denormalizes a Frictionless Data Package to Zenodo Deposit metadata format diff --git a/zenodo/package/process/normalize.ts b/zenodo/package/process/normalize.ts index 267fbff0..813ee28d 100644 --- a/zenodo/package/process/normalize.ts +++ b/zenodo/package/process/normalize.ts @@ -1,6 +1,6 @@ import type { Contributor, License, Package } from "@dpkit/core" -import { normalizeZenodoResource } from "../../resource/index.js" -import type { ZenodoPackage } from "../Package.js" +import { normalizeZenodoResource } from "../../resource/index.ts" +import type { ZenodoPackage } from "../Package.ts" /** * Normalizes a Zenodo deposit to Frictionless Data package format diff --git a/zenodo/package/save.spec.ts b/zenodo/package/save.spec.ts index 51032e86..c81d7df6 100644 --- a/zenodo/package/save.spec.ts +++ b/zenodo/package/save.spec.ts @@ -1,7 +1,7 @@ import { loadPackageDescriptor } from "@dpkit/core" //import { useRecording } from "@dpkit/test" import { describe, expect, it } from "vitest" -import { savePackageToZenodo } from "./save.js" +import { savePackageToZenodo } from "./save.ts" describe("savePackageToZenodo", () => { //useRecording() diff --git a/zenodo/package/save.ts b/zenodo/package/save.ts index 91ce08d8..c889f6b0 100644 --- a/zenodo/package/save.ts +++ b/zenodo/package/save.ts @@ -6,9 +6,9 @@ import { loadFileStream, saveResourceFiles, } from "@dpkit/file" -import { makeZenodoApiRequest } from "../zenodo/index.js" -import type { ZenodoPackage } from "./Package.js" -import { denormalizeZenodoPackage } from "./process/denormalize.js" +import { makeZenodoApiRequest } from "../zenodo/index.ts" +import type { ZenodoPackage } from "./Package.ts" +import { denormalizeZenodoPackage } from "./process/denormalize.ts" /** * Save a package to Zenodo diff --git a/zenodo/plugin.ts b/zenodo/plugin.ts index ef51e9d1..d02cee52 100644 --- a/zenodo/plugin.ts +++ b/zenodo/plugin.ts @@ -1,6 +1,6 @@ import type { Plugin } from "@dpkit/core" import { isRemotePath } from "@dpkit/core" -import { loadPackageFromZenodo } from "./package/load.js" +import { loadPackageFromZenodo } from "./package/load.ts" export class ZenodoPlugin implements Plugin { async loadPackage(source: string) { diff --git a/zenodo/resource/index.ts b/zenodo/resource/index.ts index 5d5851d7..9c1a6f5e 100644 --- a/zenodo/resource/index.ts +++ b/zenodo/resource/index.ts @@ -1,3 +1,3 @@ -export type { ZenodoResource } from "./Resource.js" -export { normalizeZenodoResource } from "./process/normalize.js" -export { denormalizeZenodoResource } from "./process/denormalize.js" +export type { ZenodoResource } from "./Resource.ts" +export { normalizeZenodoResource } from "./process/normalize.ts" +export { denormalizeZenodoResource } from "./process/denormalize.ts" diff --git a/zenodo/resource/process/denormalize.ts b/zenodo/resource/process/denormalize.ts index 6ef46165..ceac0d46 100644 --- a/zenodo/resource/process/denormalize.ts +++ b/zenodo/resource/process/denormalize.ts @@ -1,5 +1,5 @@ import type { Resource } from "@dpkit/core" -import type { ZenodoResource } from "../Resource.js" +import type { ZenodoResource } from "../Resource.ts" export function denormalizeZenodoResource(resource: Resource) { const zenodoResource: Partial = { diff --git a/zenodo/resource/process/normalize.ts b/zenodo/resource/process/normalize.ts index c08ed8ca..b5b57af6 100644 --- a/zenodo/resource/process/normalize.ts +++ b/zenodo/resource/process/normalize.ts @@ -1,5 +1,5 @@ import { getFormat, getName } from "@dpkit/core" -import type { ZenodoResource } from "../Resource.js" +import type { ZenodoResource } from "../Resource.ts" /** * Normalizes a Zenodo file to Frictionless Data resource format diff --git a/zenodo/zenodo/index.ts b/zenodo/zenodo/index.ts index 0e36dceb..6887883b 100644 --- a/zenodo/zenodo/index.ts +++ b/zenodo/zenodo/index.ts @@ -1 +1 @@ -export { makeZenodoApiRequest } from "./request.js" +export { makeZenodoApiRequest } from "./request.ts" diff --git a/zip/index.ts b/zip/index.ts index af05c222..8e03d380 100644 --- a/zip/index.ts +++ b/zip/index.ts @@ -1,2 +1,2 @@ -export * from "./package/index.js" -export * from "./plugin.js" +export * from "./package/index.ts" +export * from "./plugin.ts" diff --git a/zip/package/index.ts b/zip/package/index.ts index d66b41fc..33c3172e 100644 --- a/zip/package/index.ts +++ b/zip/package/index.ts @@ -1,2 +1,2 @@ -export { loadPackageFromZip } from "./load.js" -export { savePackageToZip } from "./save.js" +export { loadPackageFromZip } from "./load.ts" +export { savePackageToZip } from "./save.ts" diff --git a/zip/plugin.ts b/zip/plugin.ts index ac6e61d1..e575d8e4 100644 --- a/zip/plugin.ts +++ b/zip/plugin.ts @@ -1,5 +1,5 @@ import type { Package, Plugin } from "@dpkit/core" -import { loadPackageFromZip, savePackageToZip } from "./package/index.js" +import { loadPackageFromZip, savePackageToZip } from "./package/index.ts" export class ZipPlugin implements Plugin { async loadPackage(source: string) { From fbb0128a2be98ffda6e2f7c16b4216d271236149 Mon Sep 17 00:00:00 2001 From: roll Date: Fri, 8 Aug 2025 13:02:52 +0100 Subject: [PATCH 50/80] Enable cli building --- cli/package.json | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/cli/package.json b/cli/package.json index d01ae1fc..1339c5ba 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,7 @@ { "name": "@dpkit/cli", "type": "module", + "bin": { "dp": "./build/scripts/run.js" }, "version": "0.2.0", "license": "MIT", "author": "Evgeny Karev", @@ -18,11 +19,8 @@ "fair", "cli" ], - "bin": { - "dp": "./scripts/run.ts" - }, "scripts": { - "build": "tsc", + "build": "tsc && chmod +x ./build/scripts/run.js", "dev": "./scripts/dev.ts", "oclif": "oclif", "run": "./scripts/run.ts" From c093e822397b9ca5e4a977a447c48af0201c863c Mon Sep 17 00:00:00 2001 From: roll Date: Fri, 8 Aug 2025 14:43:45 +0100 Subject: [PATCH 51/80] Improved cli build command --- cli/assets/dev.cmd | 3 +++ cli/assets/run.cmd | 3 +++ cli/package.json | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 cli/assets/dev.cmd create mode 100644 cli/assets/run.cmd diff --git a/cli/assets/dev.cmd b/cli/assets/dev.cmd new file mode 100644 index 00000000..8ae2b12c --- /dev/null +++ b/cli/assets/dev.cmd @@ -0,0 +1,3 @@ +@echo off + +node "%~dp0\dev" %* diff --git a/cli/assets/run.cmd b/cli/assets/run.cmd new file mode 100644 index 00000000..968fc307 --- /dev/null +++ b/cli/assets/run.cmd @@ -0,0 +1,3 @@ +@echo off + +node "%~dp0\run" %* diff --git a/cli/package.json b/cli/package.json index 1339c5ba..3032eca1 100644 --- a/cli/package.json +++ b/cli/package.json @@ -20,7 +20,7 @@ "cli" ], "scripts": { - "build": "tsc && chmod +x ./build/scripts/run.js", + "build": "tsc && cp assets/* build/scripts && chmod +x ./build/scripts/*.js", "dev": "./scripts/dev.ts", "oclif": "oclif", "run": "./scripts/run.ts" From f6059a0691662ffe98242a14156621f13350fdf6 Mon Sep 17 00:00:00 2001 From: roll Date: Fri, 8 Aug 2025 15:09:29 +0100 Subject: [PATCH 52/80] Improved package:load --- cli/commands/package/load.ts | 10 ++++------ cli/options/json.ts | 7 ++++--- cli/params/index.ts | 1 + cli/params/path.ts | 6 ++++++ 4 files changed, 15 insertions(+), 9 deletions(-) create mode 100644 cli/params/index.ts create mode 100644 cli/params/path.ts diff --git a/cli/commands/package/load.ts b/cli/commands/package/load.ts index 993200e5..e4edb17d 100644 --- a/cli/commands/package/load.ts +++ b/cli/commands/package/load.ts @@ -1,19 +1,17 @@ -import { Args, Command } from "@oclif/core" +import { Command } from "@oclif/core" import { loadPackage } from "dpkit" import * as options from "../../options/index.ts" +import * as params from "../../params/index.ts" export default class PackageLoad extends Command { static override description = "Load a Data Package descriptor" static override args = { - path: Args.string({ - description: "local or remote path to the package descriptor", - required: true, - }), + path: params.requriedDescriptorPath, } static override flags = { - json: options.json(), + json: options.json, } public async run(): Promise { diff --git a/cli/options/json.ts b/cli/options/json.ts index d7fcc914..f7d62b3f 100644 --- a/cli/options/json.ts +++ b/cli/options/json.ts @@ -1,5 +1,6 @@ import { Flags } from "@oclif/core" -export const json = () => { - return Flags.boolean({ char: "j", description: "output as JSON" }) -} +export const json = Flags.boolean({ + description: "output as JSON", + char: "j", +}) diff --git a/cli/params/index.ts b/cli/params/index.ts new file mode 100644 index 00000000..5bec7a0e --- /dev/null +++ b/cli/params/index.ts @@ -0,0 +1 @@ +export * from "./path.ts" diff --git a/cli/params/path.ts b/cli/params/path.ts new file mode 100644 index 00000000..13bb6256 --- /dev/null +++ b/cli/params/path.ts @@ -0,0 +1,6 @@ +import { Args } from "@oclif/core" + +export const requriedDescriptorPath = Args.string({ + description: "local or remote path to the descriptor", + required: true, +}) From 07f98a7100ff22cce7702ad7212bbbd375929f25 Mon Sep 17 00:00:00 2001 From: roll Date: Fri, 8 Aug 2025 15:20:57 +0100 Subject: [PATCH 53/80] Fixed dpkit packageLoad --- dpkit/package/load.ts | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/dpkit/package/load.ts b/dpkit/package/load.ts index 7366c3f5..bfa090fe 100644 --- a/dpkit/package/load.ts +++ b/dpkit/package/load.ts @@ -7,10 +7,6 @@ export async function loadPackage(source: string) { if (result) return result } - if (source.endsWith("datapackage.json")) { - const dataPackage = await loadPackageDescriptor(source) - return dataPackage - } - - throw new Error(`No plugin can load the package: ${source}`) + const dataPackage = await loadPackageDescriptor(source) + return dataPackage } From 84d0f1020751c1c34a0dcaa7a8bac2afff5afe3a Mon Sep 17 00:00:00 2001 From: roll Date: Fri, 8 Aug 2025 15:26:09 +0100 Subject: [PATCH 54/80] Added inferDialect command --- cli/commands/dialect/infer.ts | 28 ++++++++++++++++++++++++++++ cli/commands/package/load.ts | 4 ++-- cli/params/path.ts | 5 +++++ 3 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 cli/commands/dialect/infer.ts diff --git a/cli/commands/dialect/infer.ts b/cli/commands/dialect/infer.ts new file mode 100644 index 00000000..bc2e8751 --- /dev/null +++ b/cli/commands/dialect/infer.ts @@ -0,0 +1,28 @@ +import { Command } from "@oclif/core" +import { inferDialect } from "dpkit" +import * as options from "../../options/index.ts" +import * as params from "../../params/index.ts" + +export default class InferDialect extends Command { + static override description = "Infer a dialect from a table" + + static override args = { + path: params.requriedTablePath, + } + + static override flags = { + json: options.json, + } + + public async run(): Promise { + const { args, flags } = await this.parse(InferDialect) + + const dialect = await inferDialect({ path: args.path }) + + if (flags.json) { + this.logJson(dialect) + } else { + console.log(dialect) + } + } +} diff --git a/cli/commands/package/load.ts b/cli/commands/package/load.ts index e4edb17d..3c6674e4 100644 --- a/cli/commands/package/load.ts +++ b/cli/commands/package/load.ts @@ -3,7 +3,7 @@ import { loadPackage } from "dpkit" import * as options from "../../options/index.ts" import * as params from "../../params/index.ts" -export default class PackageLoad extends Command { +export default class LoadPackage extends Command { static override description = "Load a Data Package descriptor" static override args = { @@ -15,7 +15,7 @@ export default class PackageLoad extends Command { } public async run(): Promise { - const { args, flags } = await this.parse(PackageLoad) + const { args, flags } = await this.parse(LoadPackage) const dp = await loadPackage(args.path) diff --git a/cli/params/path.ts b/cli/params/path.ts index 13bb6256..b94b40b8 100644 --- a/cli/params/path.ts +++ b/cli/params/path.ts @@ -4,3 +4,8 @@ export const requriedDescriptorPath = Args.string({ description: "local or remote path to the descriptor", required: true, }) + +export const requriedTablePath = Args.string({ + description: "local or remote path to the table", + required: true, +}) From 22bf1c0ac2329ba09e4cc4d14bf199d07a7a79ef Mon Sep 17 00:00:00 2001 From: roll Date: Fri, 8 Aug 2025 16:14:35 +0100 Subject: [PATCH 55/80] Bootstrapped ReadTable --- cli/commands/dialect/infer.ts | 7 ++- cli/commands/package/load.ts | 7 ++- cli/commands/resource/.keep | 0 cli/commands/schema/.keep | 0 cli/commands/table/read.tsx | 34 ++++++++++ cli/components/Table.tsx | 33 ++++++++++ cli/package.json | 8 ++- cli/scripts/dev.ts | 2 +- pnpm-lock.yaml | 115 +++++++++++++++++++++++----------- tsconfig.json | 2 +- 10 files changed, 163 insertions(+), 45 deletions(-) create mode 100644 cli/commands/resource/.keep create mode 100644 cli/commands/schema/.keep create mode 100644 cli/commands/table/read.tsx create mode 100644 cli/components/Table.tsx diff --git a/cli/commands/dialect/infer.ts b/cli/commands/dialect/infer.ts index bc2e8751..6c9ca7b8 100644 --- a/cli/commands/dialect/infer.ts +++ b/cli/commands/dialect/infer.ts @@ -14,15 +14,16 @@ export default class InferDialect extends Command { json: options.json, } - public async run(): Promise { + public async run() { const { args, flags } = await this.parse(InferDialect) const dialect = await inferDialect({ path: args.path }) if (flags.json) { this.logJson(dialect) - } else { - console.log(dialect) + return } + + console.log(dialect) } } diff --git a/cli/commands/package/load.ts b/cli/commands/package/load.ts index 3c6674e4..ce6c21b0 100644 --- a/cli/commands/package/load.ts +++ b/cli/commands/package/load.ts @@ -14,15 +14,16 @@ export default class LoadPackage extends Command { json: options.json, } - public async run(): Promise { + public async run() { const { args, flags } = await this.parse(LoadPackage) const dp = await loadPackage(args.path) if (flags.json) { this.logJson(dp) - } else { - console.log(dp) + return } + + console.log(dp) } } diff --git a/cli/commands/resource/.keep b/cli/commands/resource/.keep new file mode 100644 index 00000000..e69de29b diff --git a/cli/commands/schema/.keep b/cli/commands/schema/.keep new file mode 100644 index 00000000..e69de29b diff --git a/cli/commands/table/read.tsx b/cli/commands/table/read.tsx new file mode 100644 index 00000000..47f8bfdc --- /dev/null +++ b/cli/commands/table/read.tsx @@ -0,0 +1,34 @@ +import { Command } from "@oclif/core" +import { readTable } from "dpkit" +import { render } from "ink" +import React from "react" +import { Table } from "../../components/Table.tsx" +import * as options from "../../options/index.ts" +import * as params from "../../params/index.ts" + +export default class ReadTable extends Command { + static override description = "Read a table from a local or remote path" + + static override args = { + path: params.requriedTablePath, + } + + static override flags = { + json: options.json, + } + + public async run() { + const { args, flags } = await this.parse(ReadTable) + + const table = await readTable({ path: args.path }) + const df = await table.slice(0, 10).collect() + const data = df.toRecords() + + if (flags.json) { + this.logJson(data) + return + } + + render(
) + } +} diff --git a/cli/components/Table.tsx b/cli/components/Table.tsx new file mode 100644 index 00000000..e5c2b361 --- /dev/null +++ b/cli/components/Table.tsx @@ -0,0 +1,33 @@ +import { Box, Text } from "ink" +import React from "react" + +export function Table(props: { + data: Record[] +}) { + const { data } = props + + const names = Object.keys(data[0] ?? {}) + const width = 100 / names.length + + return ( + + + {names.map(col => ( + + {col} + + ))} + + + {data.map((row, index) => ( + + {names.map(col => ( + + {row[col]} + + ))} + + ))} + + ) +} diff --git a/cli/package.json b/cli/package.json index 3032eca1..1545574f 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,7 +1,9 @@ { "name": "@dpkit/cli", "type": "module", - "bin": { "dp": "./build/scripts/run.js" }, + "bin": { + "dp": "./build/scripts/run.js" + }, "version": "0.2.0", "license": "MIT", "author": "Evgeny Karev", @@ -32,6 +34,8 @@ "react": "^19.1.1" }, "devDependencies": { - "oclif": "4.22.6" + "@types/react": "19.1.9", + "oclif": "4.22.6", + "tsx": "4.20.3" } } diff --git a/cli/scripts/dev.ts b/cli/scripts/dev.ts index d9582c87..cefc0f18 100755 --- a/cli/scripts/dev.ts +++ b/cli/scripts/dev.ts @@ -1,4 +1,4 @@ -#!/usr/bin/env node +#!cli/node_modules/.bin/tsx import { execute } from "@oclif/core" await execute({ dir: import.meta.url, development: true }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5189332f..56728034 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -40,7 +40,7 @@ importers: version: 5.9.2 vitest: specifier: 3.1.4 - version: 3.1.4(@types/debug@4.1.12)(@types/node@24.2.0)(@vitest/ui@3.1.4)(yaml@2.8.1) + version: 3.1.4(@types/debug@4.1.12)(@types/node@24.2.0)(@vitest/ui@3.1.4)(tsx@4.20.3)(yaml@2.8.1) arrow: dependencies: @@ -95,14 +95,20 @@ importers: version: link:../dpkit ink: specifier: ^6.1.0 - version: 6.1.0(react@19.1.1) + version: 6.1.0(@types/react@19.1.9)(react@19.1.1) react: specifier: ^19.1.1 version: 19.1.1 devDependencies: + '@types/react': + specifier: 19.1.9 + version: 19.1.9 oclif: specifier: 4.22.6 version: 4.22.6(@types/node@24.2.0) + tsx: + specifier: 4.20.3 + version: 4.20.3 core: dependencies: @@ -157,10 +163,10 @@ importers: devDependencies: '@astrojs/starlight': specifier: 0.34.3 - version: 0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1)) + version: 0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.1)) astro: specifier: 5.7.12 - version: 5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1) + version: 5.7.12(@types/node@24.2.0)(rollup@4.46.2)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.1) dpkit: specifier: workspace:* version: link:../dpkit @@ -172,10 +178,10 @@ importers: version: 0.34.2 starlight-scroll-to-top: specifier: 0.1.1 - version: 0.1.1(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1))) + version: 0.1.1(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.1))) starlight-typedoc: specifier: 0.21.3 - version: 0.21.3(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1)))(typedoc-plugin-markdown@4.8.0(typedoc@0.28.9(typescript@5.9.2)))(typedoc@0.28.9(typescript@5.9.2)) + version: 0.21.3(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.1)))(typedoc-plugin-markdown@4.8.0(typedoc@0.28.9(typescript@5.9.2)))(typedoc@0.28.9(typescript@5.9.2)) tempy: specifier: 3.1.0 version: 3.1.0 @@ -1920,6 +1926,9 @@ packages: '@types/node@24.2.0': resolution: {integrity: sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw==} + '@types/react@19.1.9': + resolution: {integrity: sha512-WmdoynAX8Stew/36uTSVMcLJJ1KRh6L3IZRx1PZ7qJtBqT3dYTgyDTx8H1qoRghErydW7xw9mSJ3wS//tCRpFA==} + '@types/sax@1.2.7': resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} @@ -2364,6 +2373,9 @@ packages: engines: {node: '>=4'} hasBin: true + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + csv-sniffer@0.1.1: resolution: {integrity: sha512-HMFcKMGCaJNBtkEk1RYZxngODTx0gQnN5x494fWJizua2mdoM1h/LRooZQMkxx5RRHNP0mowlTw9xiS7QhXt/g==} @@ -2765,6 +2777,9 @@ packages: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} + get-tsconfig@4.10.1: + resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} + git-hooks-list@3.2.0: resolution: {integrity: sha512-ZHG9a1gEhUMX1TvGrLdyWb9kDopCBbTnI8z4JgRMYxsijWipgjSEYoPWqBuIB0DnRnvqlQSEeVmzpeuPm7NdFQ==} @@ -3939,6 +3954,9 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + responselike@3.0.0: resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} engines: {node: '>=14.16'} @@ -4307,6 +4325,11 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tsx@4.20.3: + resolution: {integrity: sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ==} + engines: {node: '>=18.0.0'} + hasBin: true + tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} @@ -4794,12 +4817,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/mdx@4.3.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1))': + '@astrojs/mdx@4.3.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.1))': dependencies: '@astrojs/markdown-remark': 6.3.5 '@mdx-js/mdx': 3.1.0(acorn@8.15.0) acorn: 8.15.0 - astro: 5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1) + astro: 5.7.12(@types/node@24.2.0)(rollup@4.46.2)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.1) es-module-lexer: 1.7.0 estree-util-visit: 2.0.0 hast-util-to-html: 9.0.5 @@ -4827,17 +4850,17 @@ snapshots: stream-replace-string: 2.0.0 zod: 3.25.76 - '@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1))': + '@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.1))': dependencies: '@astrojs/markdown-remark': 6.3.5 - '@astrojs/mdx': 4.3.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1)) + '@astrojs/mdx': 4.3.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.1)) '@astrojs/sitemap': 3.4.2 '@pagefind/default-ui': 1.3.0 '@types/hast': 3.0.4 '@types/js-yaml': 4.0.9 '@types/mdast': 4.0.4 - astro: 5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1) - astro-expressive-code: 0.41.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1)) + astro: 5.7.12(@types/node@24.2.0)(rollup@4.46.2)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.1) + astro-expressive-code: 0.41.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.1)) bcp-47: 2.1.0 hast-util-from-html: 2.0.3 hast-util-select: 6.0.4 @@ -6827,6 +6850,10 @@ snapshots: dependencies: undici-types: 7.10.0 + '@types/react@19.1.9': + dependencies: + csstype: 3.1.3 + '@types/sax@1.2.7': dependencies: '@types/node': 24.2.0 @@ -6867,7 +6894,7 @@ snapshots: std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.1.4(@types/debug@4.1.12)(@types/node@24.2.0)(@vitest/ui@3.1.4)(yaml@2.8.1) + vitest: 3.1.4(@types/debug@4.1.12)(@types/node@24.2.0)(@vitest/ui@3.1.4)(tsx@4.20.3)(yaml@2.8.1) transitivePeerDependencies: - supports-color @@ -6878,13 +6905,13 @@ snapshots: chai: 5.2.1 tinyrainbow: 2.0.0 - '@vitest/mocker@3.1.4(vite@6.3.5(@types/node@24.2.0)(yaml@2.8.1))': + '@vitest/mocker@3.1.4(vite@6.3.5(@types/node@24.2.0)(tsx@4.20.3)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.1.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.3.5(@types/node@24.2.0)(yaml@2.8.1) + vite: 6.3.5(@types/node@24.2.0)(tsx@4.20.3)(yaml@2.8.1) '@vitest/pretty-format@3.1.4': dependencies: @@ -6918,7 +6945,7 @@ snapshots: sirv: 3.0.1 tinyglobby: 0.2.14 tinyrainbow: 2.0.0 - vitest: 3.1.4(@types/debug@4.1.12)(@types/node@24.2.0)(@vitest/ui@3.1.4)(yaml@2.8.1) + vitest: 3.1.4(@types/debug@4.1.12)(@types/node@24.2.0)(@vitest/ui@3.1.4)(tsx@4.20.3)(yaml@2.8.1) '@vitest/utils@3.1.4': dependencies: @@ -6995,12 +7022,12 @@ snapshots: astring@1.9.0: {} - astro-expressive-code@0.41.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1)): + astro-expressive-code@0.41.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.1)): dependencies: - astro: 5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1) + astro: 5.7.12(@types/node@24.2.0)(rollup@4.46.2)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.1) rehype-expressive-code: 0.41.3 - astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1): + astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.1): dependencies: '@astrojs/compiler': 2.12.2 '@astrojs/internal-helpers': 0.6.1 @@ -7054,8 +7081,8 @@ snapshots: unist-util-visit: 5.0.0 unstorage: 1.16.1 vfile: 6.0.3 - vite: 6.3.5(@types/node@24.2.0)(yaml@2.8.1) - vitefu: 1.1.1(vite@6.3.5(@types/node@24.2.0)(yaml@2.8.1)) + vite: 6.3.5(@types/node@24.2.0)(tsx@4.20.3)(yaml@2.8.1) + vitefu: 1.1.1(vite@6.3.5(@types/node@24.2.0)(tsx@4.20.3)(yaml@2.8.1)) xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 yocto-spinner: 0.2.3 @@ -7379,6 +7406,8 @@ snapshots: cssesc@3.0.0: {} + csstype@3.1.3: {} + csv-sniffer@0.1.1: {} debug@2.6.9: @@ -7808,6 +7837,10 @@ snapshots: get-stream@6.0.1: {} + get-tsconfig@4.10.1: + dependencies: + resolve-pkg-maps: 1.0.0 + git-hooks-list@3.2.0: {} github-slugger@2.0.0: {} @@ -8145,7 +8178,7 @@ snapshots: ini@1.3.8: {} - ink@6.1.0(react@19.1.1): + ink@6.1.0(@types/react@19.1.9)(react@19.1.1): dependencies: '@alcalzone/ansi-tokenize': 0.1.3 ansi-escapes: 7.0.0 @@ -8172,6 +8205,8 @@ snapshots: wrap-ansi: 9.0.0 ws: 8.18.3 yoga-layout: 3.2.1 + optionalDependencies: + '@types/react': 19.1.9 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -9409,6 +9444,8 @@ snapshots: resolve-from@5.0.0: {} + resolve-pkg-maps@1.0.0: {} + responselike@3.0.0: dependencies: lowercase-keys: 3.0.0 @@ -9728,13 +9765,13 @@ snapshots: stackback@0.0.2: {} - starlight-scroll-to-top@0.1.1(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1))): + starlight-scroll-to-top@0.1.1(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.1))): dependencies: - '@astrojs/starlight': 0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1)) + '@astrojs/starlight': 0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.1)) - starlight-typedoc@0.21.3(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1)))(typedoc-plugin-markdown@4.8.0(typedoc@0.28.9(typescript@5.9.2)))(typedoc@0.28.9(typescript@5.9.2)): + starlight-typedoc@0.21.3(@astrojs/starlight@0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.1)))(typedoc-plugin-markdown@4.8.0(typedoc@0.28.9(typescript@5.9.2)))(typedoc@0.28.9(typescript@5.9.2)): dependencies: - '@astrojs/starlight': 0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(typescript@5.9.2)(yaml@2.8.1)) + '@astrojs/starlight': 0.34.3(astro@5.7.12(@types/node@24.2.0)(rollup@4.46.2)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.1)) github-slugger: 2.0.0 typedoc: 0.28.9(typescript@5.9.2) typedoc-plugin-markdown: 4.8.0(typedoc@0.28.9(typescript@5.9.2)) @@ -9860,6 +9897,13 @@ snapshots: tslib@2.8.1: {} + tsx@4.20.3: + dependencies: + esbuild: 0.25.8 + get-tsconfig: 4.10.1 + optionalDependencies: + fsevents: 2.3.3 + tunnel-agent@0.6.0: dependencies: safe-buffer: 5.2.1 @@ -10042,13 +10086,13 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-node@3.1.4(@types/node@24.2.0)(yaml@2.8.1): + vite-node@3.1.4(@types/node@24.2.0)(tsx@4.20.3)(yaml@2.8.1): dependencies: cac: 6.7.14 debug: 4.4.1(supports-color@8.1.1) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.3.5(@types/node@24.2.0)(yaml@2.8.1) + vite: 6.3.5(@types/node@24.2.0)(tsx@4.20.3)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -10063,7 +10107,7 @@ snapshots: - tsx - yaml - vite@6.3.5(@types/node@24.2.0)(yaml@2.8.1): + vite@6.3.5(@types/node@24.2.0)(tsx@4.20.3)(yaml@2.8.1): dependencies: esbuild: 0.25.8 fdir: 6.4.6(picomatch@4.0.3) @@ -10074,16 +10118,17 @@ snapshots: optionalDependencies: '@types/node': 24.2.0 fsevents: 2.3.3 + tsx: 4.20.3 yaml: 2.8.1 - vitefu@1.1.1(vite@6.3.5(@types/node@24.2.0)(yaml@2.8.1)): + vitefu@1.1.1(vite@6.3.5(@types/node@24.2.0)(tsx@4.20.3)(yaml@2.8.1)): optionalDependencies: - vite: 6.3.5(@types/node@24.2.0)(yaml@2.8.1) + vite: 6.3.5(@types/node@24.2.0)(tsx@4.20.3)(yaml@2.8.1) - vitest@3.1.4(@types/debug@4.1.12)(@types/node@24.2.0)(@vitest/ui@3.1.4)(yaml@2.8.1): + vitest@3.1.4(@types/debug@4.1.12)(@types/node@24.2.0)(@vitest/ui@3.1.4)(tsx@4.20.3)(yaml@2.8.1): dependencies: '@vitest/expect': 3.1.4 - '@vitest/mocker': 3.1.4(vite@6.3.5(@types/node@24.2.0)(yaml@2.8.1)) + '@vitest/mocker': 3.1.4(vite@6.3.5(@types/node@24.2.0)(tsx@4.20.3)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.1.4 '@vitest/snapshot': 3.1.4 @@ -10100,8 +10145,8 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 6.3.5(@types/node@24.2.0)(yaml@2.8.1) - vite-node: 3.1.4(@types/node@24.2.0)(yaml@2.8.1) + vite: 6.3.5(@types/node@24.2.0)(tsx@4.20.3)(yaml@2.8.1) + vite-node: 3.1.4(@types/node@24.2.0)(tsx@4.20.3)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 diff --git a/tsconfig.json b/tsconfig.json index 267a5d33..8b1e1a39 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,7 +4,6 @@ "exclude": ["${configDir}/**/build/", "${configDir}/**/docs/"], "compilerOptions": { - "jsx": "react-jsx", "target": "ES2022", "module": "NodeNext", "moduleResolution": "NodeNext", @@ -12,6 +11,7 @@ "lib": ["ESNext"], "types": ["node"], + "jsx": "react", "strict": true, "isolatedModules": true, From a83dc93e30be25d1eb2009c4ed6e33719a68db9f Mon Sep 17 00:00:00 2001 From: roll Date: Sat, 9 Aug 2025 10:49:34 +0100 Subject: [PATCH 56/80] Added Table component --- cli/commands/table/read.tsx | 8 +- cli/components/DataGrid.tsx | 59 + cli/components/Table.tsx | 33 - cli/components/TableGrid.tsx | 47 + cli/package.json | 6 +- pnpm-lock.yaml | 2435 ++-------------------------------- 6 files changed, 220 insertions(+), 2368 deletions(-) create mode 100644 cli/components/DataGrid.tsx delete mode 100644 cli/components/Table.tsx create mode 100644 cli/components/TableGrid.tsx diff --git a/cli/commands/table/read.tsx b/cli/commands/table/read.tsx index 47f8bfdc..4150025e 100644 --- a/cli/commands/table/read.tsx +++ b/cli/commands/table/read.tsx @@ -2,7 +2,7 @@ import { Command } from "@oclif/core" import { readTable } from "dpkit" import { render } from "ink" import React from "react" -import { Table } from "../../components/Table.tsx" +import { TableGrid } from "../../components/TableGrid.tsx" import * as options from "../../options/index.ts" import * as params from "../../params/index.ts" @@ -21,14 +21,14 @@ export default class ReadTable extends Command { const { args, flags } = await this.parse(ReadTable) const table = await readTable({ path: args.path }) - const df = await table.slice(0, 10).collect() - const data = df.toRecords() if (flags.json) { + const df = await table.slice(0, 10).collect() + const data = df.toRecords() this.logJson(data) return } - render(
) + render() } } diff --git a/cli/components/DataGrid.tsx b/cli/components/DataGrid.tsx new file mode 100644 index 00000000..4d624319 --- /dev/null +++ b/cli/components/DataGrid.tsx @@ -0,0 +1,59 @@ +import { Box, Text } from "ink" +import React from "react" + +const MIN_COLUMN_WIDTH = 15 + +export function DataGrid(props: { + data: Record[] +}) { + const { data } = props + + const colNames = Object.keys(data[0] ?? {}) + const colWidth = Math.min( + process.stdout.columns / colNames.length, + MIN_COLUMN_WIDTH, + ) + + const tableWidth = colNames.length * colWidth + + return ( + + + {colNames.map(name => ( + + {name} + + ))} + + + {data.map((row, index) => ( + + {colNames.map(name => ( + + {(row[name] ?? "").toString()} + + ))} + + ))} + + ) +} diff --git a/cli/components/Table.tsx b/cli/components/Table.tsx deleted file mode 100644 index e5c2b361..00000000 --- a/cli/components/Table.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { Box, Text } from "ink" -import React from "react" - -export function Table(props: { - data: Record[] -}) { - const { data } = props - - const names = Object.keys(data[0] ?? {}) - const width = 100 / names.length - - return ( - - - {names.map(col => ( - - {col} - - ))} - - - {data.map((row, index) => ( - - {names.map(col => ( - - {row[col]} - - ))} - - ))} - - ) -} diff --git a/cli/components/TableGrid.tsx b/cli/components/TableGrid.tsx new file mode 100644 index 00000000..132595c5 --- /dev/null +++ b/cli/components/TableGrid.tsx @@ -0,0 +1,47 @@ +import type { Table } from "dpkit" +import { useApp, useInput } from "ink" +import { useEffect, useState } from "react" +import React from "react" +import { DataGrid } from "./DataGrid.tsx" + +const PAGE_SIZE = 10 + +export function TableGrid(props: { table: Table }) { + const { table } = props + const { exit } = useApp() + const [page, setPage] = useState(1) + const [data, setData] = useState[]>([]) + + const handlePageChange = async (page: number) => { + if (page === 0) return + + const offset = (page - 1) * PAGE_SIZE + const df = await table.slice(offset, PAGE_SIZE).collect() + const data = df.toRecords() + + if (data.length) { + setPage(page) + setData(data) + } + } + + useEffect(() => { + handlePageChange(1) + }, [table]) + + useInput((input, key) => { + if (input === "q") { + exit() + } + + if (key.upArrow || input === "k") { + handlePageChange(page - 1) + } + + if (key.downArrow || input === "j") { + handlePageChange(page + 1) + } + }) + + return +} diff --git a/cli/package.json b/cli/package.json index 1545574f..1ab6b97c 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,9 +1,7 @@ { "name": "@dpkit/cli", "type": "module", - "bin": { - "dp": "./build/scripts/run.js" - }, + "bin": { "dp": "./build/scripts/run.js" }, "version": "0.2.0", "license": "MIT", "author": "Evgeny Karev", @@ -24,7 +22,6 @@ "scripts": { "build": "tsc && cp assets/* build/scripts && chmod +x ./build/scripts/*.js", "dev": "./scripts/dev.ts", - "oclif": "oclif", "run": "./scripts/run.ts" }, "dependencies": { @@ -35,7 +32,6 @@ }, "devDependencies": { "@types/react": "19.1.9", - "oclif": "4.22.6", "tsx": "4.20.3" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 56728034..6cc2a6ce 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -103,9 +103,6 @@ importers: '@types/react': specifier: 19.1.9 version: 19.1.9 - oclif: - specifier: 4.22.6 - version: 4.22.6(@types/node@24.2.0) tsx: specifier: 4.20.3 version: 4.20.3 @@ -454,161 +451,6 @@ packages: resolution: {integrity: sha512-SSVM820Jqc6wjsn7qYfV9qfeQvePtVc1nSofhyap7l0/iakUKywj3hfy3UJAOV4sGV4Q/u450RD4AaCaFvNPlg==} engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} - '@aws-crypto/crc32@5.2.0': - resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==} - engines: {node: '>=16.0.0'} - - '@aws-crypto/crc32c@5.2.0': - resolution: {integrity: sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==} - - '@aws-crypto/sha1-browser@5.2.0': - resolution: {integrity: sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==} - - '@aws-crypto/sha256-browser@5.2.0': - resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==} - - '@aws-crypto/sha256-js@5.2.0': - resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==} - engines: {node: '>=16.0.0'} - - '@aws-crypto/supports-web-crypto@5.2.0': - resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==} - - '@aws-crypto/util@5.2.0': - resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - - '@aws-sdk/client-cloudfront@3.863.0': - resolution: {integrity: sha512-04ME3EqDtWvV2nKl9qlk2TqjDwJL3sI2ey33sIJCL3d2z3cFIQOOdy9QleCPmYPMqPpENRC0qdKprR0yt2t7fg==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/client-s3@3.863.0': - resolution: {integrity: sha512-12iPziQtTolNiWFlN7Bg4jDfh1eOVB0hW6bsP1cI3JVr/IF0pVvPjQ1WEUhjTlOujC/U+JaYjw3iQ7nWKHX6vQ==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/client-sso@3.863.0': - resolution: {integrity: sha512-3DZE5lx5A+MgTVS8yRBz/Ne8pWvwc7tDy4KBx5sDd93wvnDYjZW28g7W73d1dD7jfN8ZIC0REtiuNj00Ty0PBg==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/core@3.863.0': - resolution: {integrity: sha512-6KUD82jb8Z+PWRoAwqpjFcrhcCvUlKNfUKKdkhj2yEdugem36d29avTpTPa6RiOEsfUi7CM4Yh60Qrj0pNI4xQ==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-env@3.863.0': - resolution: {integrity: sha512-KmA5cjJU5ihR+oFJtraraeQ7aDSp3GtogSoBUKaHBsiSP7awgxuVcAWSr8wCxi0kPUjCE7kHSLTv4i9UC4soYw==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-http@3.863.0': - resolution: {integrity: sha512-AsMgQgYG5YwBFHAuB5y/ngwT9K2axBqJm1ZM+wBMTqPvyQ7cjnfsliCAGEY2QPIxE2prX85Bc50s1OPQVPROHg==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-ini@3.863.0': - resolution: {integrity: sha512-RyyUZ7onXQdcjTnnmX3LvO3/tKsmYR9PJrLCnQQUVYlUzwref4E0ytBgk/mycxx6KHCJNVUzY4QV7s9VaUxcZA==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-node@3.863.0': - resolution: {integrity: sha512-ApRpvgB+DN4BHVmiLvXIdpFN21wBdL5p81G5cXmipJHStThAkk2N9SSG0XxhMaCpzdRWt+4JPRwR5pHiPvnxug==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-process@3.863.0': - resolution: {integrity: sha512-UN8AfjFvLGIHg2lMr4SNiOhCsDUv6uaD/XbAiRpt/u0z/xMsICxwkOawnKtHj24xGRAh+GgefMirl6QiTkbJ4Q==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-sso@3.863.0': - resolution: {integrity: sha512-oV4F1zY0o/txR9ruTCH+UlRf7LAKBiwkthsHplNJT0kVq98RtBIMrzk9DgibvjfBsJH1572wozDIc4yOpcB4YA==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-web-identity@3.863.0': - resolution: {integrity: sha512-INN5BNFalw68BxBFT+9sj2Yxia1XvS0+ZG0dkfFAmo8iXb2mw0o52PgqOiKlQfxnjbyOH7LgTB2hfbuuEwpKjw==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/middleware-bucket-endpoint@3.862.0': - resolution: {integrity: sha512-Wcsc7VPLjImQw+CP1/YkwyofMs9Ab6dVq96iS8p0zv0C6YTaMjvillkau4zFfrrrTshdzFWKptIFhKK8Zsei1g==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/middleware-expect-continue@3.862.0': - resolution: {integrity: sha512-oG3AaVUJ+26p0ESU4INFn6MmqqiBFZGrebST66Or+YBhteed2rbbFl7mCfjtPWUFgquQlvT1UP19P3LjQKeKpw==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/middleware-flexible-checksums@3.863.0': - resolution: {integrity: sha512-nZW9Rf4floAuxmPeik1FJ7/LwEnmWjdgoa0ls/x/KpAVM+LCbEBOV1Tcw2+jRpx3UQH4wAnJz18OFsXC+X/FAw==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/middleware-host-header@3.862.0': - resolution: {integrity: sha512-jDje8dCFeFHfuCAxMDXBs8hy8q9NCTlyK4ThyyfAj3U4Pixly2mmzY2u7b7AyGhWsjJNx8uhTjlYq5zkQPQCYw==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/middleware-location-constraint@3.862.0': - resolution: {integrity: sha512-MnwLxCw7Cc9OngEH3SHFhrLlDI9WVxaBkp3oTsdY9JE7v8OE38wQ9vtjaRsynjwu0WRtrctSHbpd7h/QVvtjyA==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/middleware-logger@3.862.0': - resolution: {integrity: sha512-N/bXSJznNBR/i7Ofmf9+gM6dx/SPBK09ZWLKsW5iQjqKxAKn/2DozlnE54uiEs1saHZWoNDRg69Ww4XYYSlG1Q==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/middleware-recursion-detection@3.862.0': - resolution: {integrity: sha512-KVoo3IOzEkTq97YKM4uxZcYFSNnMkhW/qj22csofLegZi5fk90ztUnnaeKfaEJHfHp/tm1Y3uSoOXH45s++kKQ==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/middleware-sdk-s3@3.863.0': - resolution: {integrity: sha512-3Ppx5J31DUuaASyzAMYzSUf8y8emCLt1iaU+6yuSV/PwiCzJL5Sspos5xF2F+JErw8p8lNN+7rvHVSNqtgi2Fg==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/middleware-ssec@3.862.0': - resolution: {integrity: sha512-72VtP7DZC8lYTE2L3Efx2BrD98oe9WTK8X6hmd3WTLkbIjvgWQWIdjgaFXBs8WevsXkewIctfyA3KEezvL5ggw==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/middleware-user-agent@3.863.0': - resolution: {integrity: sha512-AqXzUUpHM51E/cmq/h3yja+GFff7zxQFj6Fq1bVkkc4vzXBCGpyTmaMcUv4rrR/OmmWfidyzbxdy7PuhMNAspg==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/nested-clients@3.863.0': - resolution: {integrity: sha512-TgVr6d1MmJz7H6RehaFevZlJ+d1KSmyftp8oi2V5FCQ4OR22ITsTxmm5cIODYk8VInaie2ZABlPCN5fs+glJuA==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/region-config-resolver@3.862.0': - resolution: {integrity: sha512-VisR+/HuVFICrBPY+q9novEiE4b3mvDofWqyvmxHcWM7HumTz9ZQSuEtnlB/92GVM3KDUrR9EmBHNRrfXYZkcQ==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/signature-v4-multi-region@3.863.0': - resolution: {integrity: sha512-YEi1hER4OtVpeVBO9Ts8nYekF8Q9pcr4kzPxrzXHv83i2/jraPgacHlWvNSjdg8kvY+GsevBsirZXZmThkmKBA==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/token-providers@3.863.0': - resolution: {integrity: sha512-rGZ8QsnLWa725etzdPW2rH6+LN9eCcGsTIcxcCyh59cSgZLxT913q84WaUj6fOA7ElCOEU+WrV4Jiz4qwZI2DA==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/types@3.862.0': - resolution: {integrity: sha512-Bei+RL0cDxxV+lW2UezLbCYYNeJm6Nzee0TpW0FfyTRBhH9C1XQh4+x+IClriXvgBnRquTMMYsmJfvx8iyLKrg==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/util-arn-parser@3.804.0': - resolution: {integrity: sha512-wmBJqn1DRXnZu3b4EkE6CWnoWMo1ZMvlfkqU5zPz67xx1GMaXlDCchFvKAXMjk4jn/L1O3tKnoFDNsoLV1kgNQ==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/util-endpoints@3.862.0': - resolution: {integrity: sha512-eCZuScdE9MWWkHGM2BJxm726MCmWk/dlHjOKvkM0sN1zxBellBMw5JohNss1Z8/TUmnW2gb9XHTOiHuGjOdksA==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/util-locate-window@3.804.0': - resolution: {integrity: sha512-zVoRfpmBVPodYlnMjgVjfGoEZagyRF5IPn3Uo6ZvOZp24chnW/FRstH7ESDHDDRga4z3V+ElUQHKpFDXWyBW5A==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/util-user-agent-browser@3.862.0': - resolution: {integrity: sha512-BmPTlm0r9/10MMr5ND9E92r8KMZbq5ltYXYpVcUbAsnB1RJ8ASJuRoLne5F7mB3YMx0FJoOTuSq7LdQM3LgW3Q==} - - '@aws-sdk/util-user-agent-node@3.863.0': - resolution: {integrity: sha512-qoYXCe07xs0z+MjcDGuNBbP8P47i6h13BiHsXxiMKKiCihB3w2slvRbJYwUwc2fzZWSk0isKbdDmsdNZBKyBHg==} - engines: {node: '>=18.0.0'} - peerDependencies: - aws-crt: '>=1.0.0' - peerDependenciesMeta: - aws-crt: - optional: true - - '@aws-sdk/xml-builder@3.862.0': - resolution: {integrity: sha512-6Ed0kmC1NMbuFTEgNmamAUU1h5gShgxL1hBVLbEzUa3trX5aJBz1vU4bXaBTvOYUAnOHtiy1Ml4AMStd6hJnFA==} - engines: {node: '>=18.0.0'} - '@babel/helper-string-parser@7.27.1': resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} @@ -1150,151 +992,6 @@ packages: cpu: [x64] os: [win32] - '@inquirer/checkbox@4.2.0': - resolution: {integrity: sha512-fdSw07FLJEU5vbpOPzXo5c6xmMGDzbZE2+niuDHX5N6mc6V0Ebso/q3xiHra4D73+PMsC8MJmcaZKuAAoaQsSA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/confirm@3.2.0': - resolution: {integrity: sha512-oOIwPs0Dvq5220Z8lGL/6LHRTEr9TgLHmiI99Rj1PJ1p1czTys+olrgBqZk4E2qC0YTzeHprxSQmoHioVdJ7Lw==} - engines: {node: '>=18'} - - '@inquirer/confirm@5.1.14': - resolution: {integrity: sha512-5yR4IBfe0kXe59r1YCTG8WXkUbl7Z35HK87Sw+WUyGD8wNUx7JvY7laahzeytyE1oLn74bQnL7hstctQxisQ8Q==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/core@10.1.15': - resolution: {integrity: sha512-8xrp836RZvKkpNbVvgWUlxjT4CraKk2q+I3Ksy+seI2zkcE+y6wNs1BVhgcv8VyImFecUhdQrYLdW32pAjwBdA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/core@9.2.1': - resolution: {integrity: sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==} - engines: {node: '>=18'} - - '@inquirer/editor@4.2.15': - resolution: {integrity: sha512-wst31XT8DnGOSS4nNJDIklGKnf+8shuauVrWzgKegWUe28zfCftcWZ2vktGdzJgcylWSS2SrDnYUb6alZcwnCQ==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/expand@4.0.17': - resolution: {integrity: sha512-PSqy9VmJx/VbE3CT453yOfNa+PykpKg/0SYP7odez1/NWBGuDXgPhp4AeGYYKjhLn5lUUavVS/JbeYMPdH50Mw==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/figures@1.0.13': - resolution: {integrity: sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==} - engines: {node: '>=18'} - - '@inquirer/input@2.3.0': - resolution: {integrity: sha512-XfnpCStx2xgh1LIRqPXrTNEEByqQWoxsWYzNRSEUxJ5c6EQlhMogJ3vHKu8aXuTacebtaZzMAHwEL0kAflKOBw==} - engines: {node: '>=18'} - - '@inquirer/input@4.2.1': - resolution: {integrity: sha512-tVC+O1rBl0lJpoUZv4xY+WGWY8V5b0zxU1XDsMsIHYregdh7bN5X5QnIONNBAl0K765FYlAfNHS2Bhn7SSOVow==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/number@3.0.17': - resolution: {integrity: sha512-GcvGHkyIgfZgVnnimURdOueMk0CztycfC8NZTiIY9arIAkeOgt6zG57G+7vC59Jns3UX27LMkPKnKWAOF5xEYg==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/password@4.0.17': - resolution: {integrity: sha512-DJolTnNeZ00E1+1TW+8614F7rOJJCM4y4BAGQ3Gq6kQIG+OJ4zr3GLjIjVVJCbKsk2jmkmv6v2kQuN/vriHdZA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/prompts@7.8.0': - resolution: {integrity: sha512-JHwGbQ6wjf1dxxnalDYpZwZxUEosT+6CPGD9Zh4sm9WXdtUp9XODCQD3NjSTmu+0OAyxWXNOqf0spjIymJa2Tw==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/rawlist@4.1.5': - resolution: {integrity: sha512-R5qMyGJqtDdi4Ht521iAkNqyB6p2UPuZUbMifakg1sWtu24gc2Z8CJuw8rP081OckNDMgtDCuLe42Q2Kr3BolA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/search@3.1.0': - resolution: {integrity: sha512-PMk1+O/WBcYJDq2H7foV0aAZSmDdkzZB9Mw2v/DmONRJopwA/128cS9M/TXWLKKdEQKZnKwBzqu2G4x/2Nqx8Q==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/select@2.5.0': - resolution: {integrity: sha512-YmDobTItPP3WcEI86GvPo+T2sRHkxxOq/kXmsBjHS5BVXUgvgZ5AfJjkvQvZr03T81NnI3KrrRuMzeuYUQRFOA==} - engines: {node: '>=18'} - - '@inquirer/select@4.3.1': - resolution: {integrity: sha512-Gfl/5sqOF5vS/LIrSndFgOh7jgoe0UXEizDqahFRkq5aJBLegZ6WjuMh/hVEJwlFQjyLq1z9fRtvUMkb7jM1LA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/type@1.5.5': - resolution: {integrity: sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==} - engines: {node: '>=18'} - - '@inquirer/type@2.0.0': - resolution: {integrity: sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==} - engines: {node: '>=18'} - - '@inquirer/type@3.0.8': - resolution: {integrity: sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -1431,18 +1128,6 @@ packages: resolution: {integrity: sha512-eQcKyrEcDYeZJKu4vUWiu0ii/1Gfev6GF4FsLSgNez5/+aQyAUCjg3ZWlurf491WiYZTXCWyKAxyPWk8DKv2MA==} engines: {node: '>=18.0.0'} - '@oclif/plugin-help@6.2.32': - resolution: {integrity: sha512-LrmMdo9EMJciOvF8UurdoTcTMymv5npKtxMAyonZvhSvGR8YwCKnuHIh00+SO2mNtGOYam7f4xHnUmj2qmanyA==} - engines: {node: '>=18.0.0'} - - '@oclif/plugin-not-found@3.2.63': - resolution: {integrity: sha512-xW+I6czUGqaeocVt1+brUKzXvL85mBTKdmJGlsB8pl9qUL3PJoIBIIDhbleR499T0jR+j1hpy8yWSCrs54icMQ==} - engines: {node: '>=18.0.0'} - - '@oclif/plugin-warn-if-update-available@3.1.46': - resolution: {integrity: sha512-YDlr//SHmC80eZrt+0wNFWSo1cOSU60RoWdhSkAoPB3pUGPSNHZDquXDpo7KniinzYPsj1rfetCYk7UVXwYu7A==} - engines: {node: '>=18.0.0'} - '@oslojs/encoding@1.1.0': resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} @@ -1478,18 +1163,6 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@pnpm/config.env-replace@1.1.0': - resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} - engines: {node: '>=12.22.0'} - - '@pnpm/network.ca-file@1.0.2': - resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} - engines: {node: '>=12.22.0'} - - '@pnpm/npm-conf@2.3.1': - resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} - engines: {node: '>=12'} - '@polka/url@1.0.0-next.29': resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} @@ -1648,313 +1321,78 @@ packages: resolution: {integrity: sha512-suq9tRQ6bkpMukTG5K5z0sPWB7t0zExMzZCdmYm6xTSSIm/yCKNm7VCL36wVeyTsFr597/UhU1OAYdHGMDiHrw==} engines: {node: '>=10'} - '@sindresorhus/is@5.6.0': - resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} - engines: {node: '>=14.16'} - '@sindresorhus/slugify@0.9.1': resolution: {integrity: sha512-b6heYM9dzZD13t2GOiEQTDE0qX+I1GyOotMwKh9VQqzuNiVdPVT8dM43fe9HNb/3ul+Qwd5oKSEDrDIfhq3bnQ==} engines: {node: '>=8'} - '@smithy/abort-controller@4.0.5': - resolution: {integrity: sha512-jcrqdTQurIrBbUm4W2YdLVMQDoL0sA9DTxYd2s+R/y+2U9NLOP7Xf/YqfSg1FZhlZIYEnvk2mwbyvIfdLEPo8g==} - engines: {node: '>=18.0.0'} - - '@smithy/chunked-blob-reader-native@4.0.0': - resolution: {integrity: sha512-R9wM2yPmfEMsUmlMlIgSzOyICs0x9uu7UTHoccMyt7BWw8shcGM8HqB355+BZCPBcySvbTYMs62EgEQkNxz2ig==} - engines: {node: '>=18.0.0'} - - '@smithy/chunked-blob-reader@5.0.0': - resolution: {integrity: sha512-+sKqDBQqb036hh4NPaUiEkYFkTUGYzRsn3EuFhyfQfMy6oGHEUJDurLP9Ufb5dasr/XiAmPNMr6wa9afjQB+Gw==} - engines: {node: '>=18.0.0'} - - '@smithy/config-resolver@4.1.5': - resolution: {integrity: sha512-viuHMxBAqydkB0AfWwHIdwf/PRH2z5KHGUzqyRtS/Wv+n3IHI993Sk76VCA7dD/+GzgGOmlJDITfPcJC1nIVIw==} - engines: {node: '>=18.0.0'} - - '@smithy/core@3.8.0': - resolution: {integrity: sha512-EYqsIYJmkR1VhVE9pccnk353xhs+lB6btdutJEtsp7R055haMJp2yE16eSxw8fv+G0WUY6vqxyYOP8kOqawxYQ==} - engines: {node: '>=18.0.0'} + '@swc/helpers@0.5.17': + resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} - '@smithy/credential-provider-imds@4.0.7': - resolution: {integrity: sha512-dDzrMXA8d8riFNiPvytxn0mNwR4B3h8lgrQ5UjAGu6T9z/kRg/Xncf4tEQHE/+t25sY8IH3CowcmWi+1U5B1Gw==} - engines: {node: '>=18.0.0'} + '@tybys/wasm-util@0.10.0': + resolution: {integrity: sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==} - '@smithy/eventstream-codec@4.0.5': - resolution: {integrity: sha512-miEUN+nz2UTNoRYRhRqVTJCx7jMeILdAurStT2XoS+mhokkmz1xAPp95DFW9Gxt4iF2VBqpeF9HbTQ3kY1viOA==} - engines: {node: '>=18.0.0'} + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - '@smithy/eventstream-serde-browser@4.0.5': - resolution: {integrity: sha512-LCUQUVTbM6HFKzImYlSB9w4xafZmpdmZsOh9rIl7riPC3osCgGFVP+wwvYVw6pXda9PPT9TcEZxaq3XE81EdJQ==} - engines: {node: '>=18.0.0'} + '@types/estree-jsx@1.0.5': + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} - '@smithy/eventstream-serde-config-resolver@4.1.3': - resolution: {integrity: sha512-yTTzw2jZjn/MbHu1pURbHdpjGbCuMHWncNBpJnQAPxOVnFUAbSIUSwafiphVDjNV93TdBJWmeVAds7yl5QCkcA==} - engines: {node: '>=18.0.0'} + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - '@smithy/eventstream-serde-node@4.0.5': - resolution: {integrity: sha512-lGS10urI4CNzz6YlTe5EYG0YOpsSp3ra8MXyco4aqSkQDuyZPIw2hcaxDU82OUVtK7UY9hrSvgWtpsW5D4rb4g==} - engines: {node: '>=18.0.0'} + '@types/fontkit@2.0.8': + resolution: {integrity: sha512-wN+8bYxIpJf+5oZdrdtaX04qUuWHcKxcDEgRS9Qm9ZClSHjzEn13SxUC+5eRM+4yXIeTYk8mTzLAWGF64847ew==} - '@smithy/eventstream-serde-universal@4.0.5': - resolution: {integrity: sha512-JFnmu4SU36YYw3DIBVao3FsJh4Uw65vVDIqlWT4LzR6gXA0F3KP0IXFKKJrhaVzCBhAuMsrUUaT5I+/4ZhF7aw==} - engines: {node: '>=18.0.0'} + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - '@smithy/fetch-http-handler@5.1.1': - resolution: {integrity: sha512-61WjM0PWmZJR+SnmzaKI7t7G0UkkNFboDpzIdzSoy7TByUzlxo18Qlh9s71qug4AY4hlH/CwXdubMtkcNEb/sQ==} - engines: {node: '>=18.0.0'} + '@types/js-yaml@4.0.9': + resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} - '@smithy/hash-blob-browser@4.0.5': - resolution: {integrity: sha512-F7MmCd3FH/Q2edhcKd+qulWkwfChHbc9nhguBlVjSUE6hVHhec3q6uPQ+0u69S6ppvLtR3eStfCuEKMXBXhvvA==} - engines: {node: '>=18.0.0'} + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - '@smithy/hash-node@4.0.5': - resolution: {integrity: sha512-cv1HHkKhpyRb6ahD8Vcfb2Hgz67vNIXEp2vnhzfxLFGRukLCNEA5QdsorbUEzXma1Rco0u3rx5VTqbM06GcZqQ==} - engines: {node: '>=18.0.0'} + '@types/mdx@2.0.13': + resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} - '@smithy/hash-stream-node@4.0.5': - resolution: {integrity: sha512-IJuDS3+VfWB67UC0GU0uYBG/TA30w+PlOaSo0GPm9UHS88A6rCP6uZxNjNYiyRtOcjv7TXn/60cW8ox1yuZsLg==} - engines: {node: '>=18.0.0'} + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@smithy/invalid-dependency@4.0.5': - resolution: {integrity: sha512-IVnb78Qtf7EJpoEVo7qJ8BEXQwgC4n3igeJNNKEj/MLYtapnx8A67Zt/J3RXAj2xSO1910zk0LdFiygSemuLow==} - engines: {node: '>=18.0.0'} + '@types/nlcst@2.0.3': + resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} - '@smithy/is-array-buffer@2.2.0': - resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} - engines: {node: '>=14.0.0'} + '@types/node@12.20.55': + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - '@smithy/is-array-buffer@4.0.0': - resolution: {integrity: sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==} - engines: {node: '>=18.0.0'} + '@types/node@17.0.45': + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - '@smithy/md5-js@4.0.5': - resolution: {integrity: sha512-8n2XCwdUbGr8W/XhMTaxILkVlw2QebkVTn5tm3HOcbPbOpWg89zr6dPXsH8xbeTsbTXlJvlJNTQsKAIoqQGbdA==} - engines: {node: '>=18.0.0'} + '@types/node@24.2.0': + resolution: {integrity: sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw==} - '@smithy/middleware-content-length@4.0.5': - resolution: {integrity: sha512-l1jlNZoYzoCC7p0zCtBDE5OBXZ95yMKlRlftooE5jPWQn4YBPLgsp+oeHp7iMHaTGoUdFqmHOPa8c9G3gBsRpQ==} - engines: {node: '>=18.0.0'} + '@types/react@19.1.9': + resolution: {integrity: sha512-WmdoynAX8Stew/36uTSVMcLJJ1KRh6L3IZRx1PZ7qJtBqT3dYTgyDTx8H1qoRghErydW7xw9mSJ3wS//tCRpFA==} - '@smithy/middleware-endpoint@4.1.18': - resolution: {integrity: sha512-ZhvqcVRPZxnZlokcPaTwb+r+h4yOIOCJmx0v2d1bpVlmP465g3qpVSf7wxcq5zZdu4jb0H4yIMxuPwDJSQc3MQ==} - engines: {node: '>=18.0.0'} + '@types/sax@1.2.7': + resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} - '@smithy/middleware-retry@4.1.19': - resolution: {integrity: sha512-X58zx/NVECjeuUB6A8HBu4bhx72EoUz+T5jTMIyeNKx2lf+Gs9TmWPNNkH+5QF0COjpInP/xSpJGJ7xEnAklQQ==} - engines: {node: '>=18.0.0'} + '@types/set-cookie-parser@2.4.10': + resolution: {integrity: sha512-GGmQVGpQWUe5qglJozEjZV/5dyxbOOZ0LHe/lqyWssB88Y4svNfst0uqBVscdDeIKl5Jy5+aPSvy7mI9tYRguw==} - '@smithy/middleware-serde@4.0.9': - resolution: {integrity: sha512-uAFFR4dpeoJPGz8x9mhxp+RPjo5wW0QEEIPPPbLXiRRWeCATf/Km3gKIVR5vaP8bN1kgsPhcEeh+IZvUlBv6Xg==} - engines: {node: '>=18.0.0'} + '@types/unist@2.0.11': + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} - '@smithy/middleware-stack@4.0.5': - resolution: {integrity: sha512-/yoHDXZPh3ocRVyeWQFvC44u8seu3eYzZRveCMfgMOBcNKnAmOvjbL9+Cp5XKSIi9iYA9PECUuW2teDAk8T+OQ==} - engines: {node: '>=18.0.0'} + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@smithy/node-config-provider@4.1.4': - resolution: {integrity: sha512-+UDQV/k42jLEPPHSn39l0Bmc4sB1xtdI9Gd47fzo/0PbXzJ7ylgaOByVjF5EeQIumkepnrJyfx86dPa9p47Y+w==} - engines: {node: '>=18.0.0'} + '@types/yauzl-promise@4.0.1': + resolution: {integrity: sha512-qYEC3rJwqiJpdQ9b+bPNeuSY0c3JUM8vIuDy08qfuVN7xHm3ZDsHn2kGphUIB0ruEXrPGNXZ64nMUcu4fDjViQ==} - '@smithy/node-http-handler@4.1.1': - resolution: {integrity: sha512-RHnlHqFpoVdjSPPiYy/t40Zovf3BBHc2oemgD7VsVTFFZrU5erFFe0n52OANZZ/5sbshgD93sOh5r6I35Xmpaw==} - engines: {node: '>=18.0.0'} + '@types/yazl@3.3.0': + resolution: {integrity: sha512-mFL6lGkk2N5u5nIxpNV/K5LW3qVSbxhJrMxYGOOxZndWxMgCamr/iCsq/1t9kd8pEwhuNP91LC5qZm/qS9pOEw==} - '@smithy/property-provider@4.0.5': - resolution: {integrity: sha512-R/bswf59T/n9ZgfgUICAZoWYKBHcsVDurAGX88zsiUtOTA/xUAPyiT+qkNCPwFn43pZqN84M4MiUsbSGQmgFIQ==} - engines: {node: '>=18.0.0'} - - '@smithy/protocol-http@5.1.3': - resolution: {integrity: sha512-fCJd2ZR7D22XhDY0l+92pUag/7je2BztPRQ01gU5bMChcyI0rlly7QFibnYHzcxDvccMjlpM/Q1ev8ceRIb48w==} - engines: {node: '>=18.0.0'} - - '@smithy/querystring-builder@4.0.5': - resolution: {integrity: sha512-NJeSCU57piZ56c+/wY+AbAw6rxCCAOZLCIniRE7wqvndqxcKKDOXzwWjrY7wGKEISfhL9gBbAaWWgHsUGedk+A==} - engines: {node: '>=18.0.0'} - - '@smithy/querystring-parser@4.0.5': - resolution: {integrity: sha512-6SV7md2CzNG/WUeTjVe6Dj8noH32r4MnUeFKZrnVYsQxpGSIcphAanQMayi8jJLZAWm6pdM9ZXvKCpWOsIGg0w==} - engines: {node: '>=18.0.0'} - - '@smithy/service-error-classification@4.0.7': - resolution: {integrity: sha512-XvRHOipqpwNhEjDf2L5gJowZEm5nsxC16pAZOeEcsygdjv9A2jdOh3YoDQvOXBGTsaJk6mNWtzWalOB9976Wlg==} - engines: {node: '>=18.0.0'} - - '@smithy/shared-ini-file-loader@4.0.5': - resolution: {integrity: sha512-YVVwehRDuehgoXdEL4r1tAAzdaDgaC9EQvhK0lEbfnbrd0bd5+CTQumbdPryX3J2shT7ZqQE+jPW4lmNBAB8JQ==} - engines: {node: '>=18.0.0'} - - '@smithy/signature-v4@5.1.3': - resolution: {integrity: sha512-mARDSXSEgllNzMw6N+mC+r1AQlEBO3meEAkR/UlfAgnMzJUB3goRBWgip1EAMG99wh36MDqzo86SfIX5Y+VEaw==} - engines: {node: '>=18.0.0'} - - '@smithy/smithy-client@4.4.10': - resolution: {integrity: sha512-iW6HjXqN0oPtRS0NK/zzZ4zZeGESIFcxj2FkWed3mcK8jdSdHzvnCKXSjvewESKAgGKAbJRA+OsaqKhkdYRbQQ==} - engines: {node: '>=18.0.0'} - - '@smithy/types@4.3.2': - resolution: {integrity: sha512-QO4zghLxiQ5W9UZmX2Lo0nta2PuE1sSrXUYDoaB6HMR762C0P7v/HEPHf6ZdglTVssJG1bsrSBxdc3quvDSihw==} - engines: {node: '>=18.0.0'} - - '@smithy/url-parser@4.0.5': - resolution: {integrity: sha512-j+733Um7f1/DXjYhCbvNXABV53NyCRRA54C7bNEIxNPs0YjfRxeMKjjgm2jvTYrciZyCjsicHwQ6Q0ylo+NAUw==} - engines: {node: '>=18.0.0'} - - '@smithy/util-base64@4.0.0': - resolution: {integrity: sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==} - engines: {node: '>=18.0.0'} - - '@smithy/util-body-length-browser@4.0.0': - resolution: {integrity: sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==} - engines: {node: '>=18.0.0'} - - '@smithy/util-body-length-node@4.0.0': - resolution: {integrity: sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==} - engines: {node: '>=18.0.0'} - - '@smithy/util-buffer-from@2.2.0': - resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} - engines: {node: '>=14.0.0'} - - '@smithy/util-buffer-from@4.0.0': - resolution: {integrity: sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==} - engines: {node: '>=18.0.0'} - - '@smithy/util-config-provider@4.0.0': - resolution: {integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==} - engines: {node: '>=18.0.0'} - - '@smithy/util-defaults-mode-browser@4.0.26': - resolution: {integrity: sha512-xgl75aHIS/3rrGp7iTxQAOELYeyiwBu+eEgAk4xfKwJJ0L8VUjhO2shsDpeil54BOFsqmk5xfdesiewbUY5tKQ==} - engines: {node: '>=18.0.0'} - - '@smithy/util-defaults-mode-node@4.0.26': - resolution: {integrity: sha512-z81yyIkGiLLYVDetKTUeCZQ8x20EEzvQjrqJtb/mXnevLq2+w3XCEWTJ2pMp401b6BkEkHVfXb/cROBpVauLMQ==} - engines: {node: '>=18.0.0'} - - '@smithy/util-endpoints@3.0.7': - resolution: {integrity: sha512-klGBP+RpBp6V5JbrY2C/VKnHXn3d5V2YrifZbmMY8os7M6m8wdYFoO6w/fe5VkP+YVwrEktW3IWYaSQVNZJ8oQ==} - engines: {node: '>=18.0.0'} - - '@smithy/util-hex-encoding@4.0.0': - resolution: {integrity: sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==} - engines: {node: '>=18.0.0'} - - '@smithy/util-middleware@4.0.5': - resolution: {integrity: sha512-N40PfqsZHRSsByGB81HhSo+uvMxEHT+9e255S53pfBw/wI6WKDI7Jw9oyu5tJTLwZzV5DsMha3ji8jk9dsHmQQ==} - engines: {node: '>=18.0.0'} - - '@smithy/util-retry@4.0.7': - resolution: {integrity: sha512-TTO6rt0ppK70alZpkjwy+3nQlTiqNfoXja+qwuAchIEAIoSZW8Qyd76dvBv3I5bCpE38APafG23Y/u270NspiQ==} - engines: {node: '>=18.0.0'} - - '@smithy/util-stream@4.2.4': - resolution: {integrity: sha512-vSKnvNZX2BXzl0U2RgCLOwWaAP9x/ddd/XobPK02pCbzRm5s55M53uwb1rl/Ts7RXZvdJZerPkA+en2FDghLuQ==} - engines: {node: '>=18.0.0'} - - '@smithy/util-uri-escape@4.0.0': - resolution: {integrity: sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==} - engines: {node: '>=18.0.0'} - - '@smithy/util-utf8@2.3.0': - resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} - engines: {node: '>=14.0.0'} - - '@smithy/util-utf8@4.0.0': - resolution: {integrity: sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==} - engines: {node: '>=18.0.0'} - - '@smithy/util-waiter@4.0.7': - resolution: {integrity: sha512-mYqtQXPmrwvUljaHyGxYUIIRI3qjBTEb/f5QFi3A6VlxhpmZd5mWXn9W+qUkf2pVE1Hv3SqxefiZOPGdxmO64A==} - engines: {node: '>=18.0.0'} - - '@swc/helpers@0.5.17': - resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} - - '@szmarczak/http-timer@5.0.1': - resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} - engines: {node: '>=14.16'} - - '@tybys/wasm-util@0.10.0': - resolution: {integrity: sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==} - - '@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.8': - resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - - '@types/fontkit@2.0.8': - resolution: {integrity: sha512-wN+8bYxIpJf+5oZdrdtaX04qUuWHcKxcDEgRS9Qm9ZClSHjzEn13SxUC+5eRM+4yXIeTYk8mTzLAWGF64847ew==} - - '@types/hast@3.0.4': - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - - '@types/http-cache-semantics@4.0.4': - resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} - - '@types/js-yaml@4.0.9': - resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} - - '@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@2.1.0': - resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - - '@types/mute-stream@0.0.4': - resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} - - '@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@17.0.45': - resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - - '@types/node@22.17.0': - resolution: {integrity: sha512-bbAKTCqX5aNVryi7qXVMi+OkB3w/OyblodicMbvE38blyAz7GxXf6XYhklokijuPwwVg9sDLKRxt0ZHXQwZVfQ==} - - '@types/node@24.2.0': - resolution: {integrity: sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw==} - - '@types/react@19.1.9': - resolution: {integrity: sha512-WmdoynAX8Stew/36uTSVMcLJJ1KRh6L3IZRx1PZ7qJtBqT3dYTgyDTx8H1qoRghErydW7xw9mSJ3wS//tCRpFA==} - - '@types/sax@1.2.7': - resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} - - '@types/set-cookie-parser@2.4.10': - resolution: {integrity: sha512-GGmQVGpQWUe5qglJozEjZV/5dyxbOOZ0LHe/lqyWssB88Y4svNfst0uqBVscdDeIKl5Jy5+aPSvy7mI9tYRguw==} - - '@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==} - - '@types/uuid@9.0.8': - resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} - - '@types/wrap-ansi@3.0.0': - resolution: {integrity: sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==} - - '@types/yauzl-promise@4.0.1': - resolution: {integrity: sha512-qYEC3rJwqiJpdQ9b+bPNeuSY0c3JUM8vIuDy08qfuVN7xHm3ZDsHn2kGphUIB0ruEXrPGNXZ64nMUcu4fDjViQ==} - - '@types/yazl@3.3.0': - resolution: {integrity: sha512-mFL6lGkk2N5u5nIxpNV/K5LW3qVSbxhJrMxYGOOxZndWxMgCamr/iCsq/1t9kd8pEwhuNP91LC5qZm/qS9pOEw==} - - '@ungap/structured-clone@1.3.0': - resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} '@vitest/coverage-v8@3.1.4': resolution: {integrity: sha512-G4p6OtioySL+hPV7Y6JHlhpsODbJzt1ndwHAFkyk6vVjpK03PFsKnauZIzcd0PrK4zAbc5lc+jeZ+eNGiMA+iw==} @@ -2099,9 +1537,6 @@ packages: engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true - async-retry@1.3.3: - resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} - async@3.2.6: resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} @@ -2181,14 +1616,6 @@ packages: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} - cacheable-lookup@7.0.0: - resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} - engines: {node: '>=14.16'} - - cacheable-request@10.2.14: - resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} - engines: {node: '>=14.16'} - call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} @@ -2197,16 +1624,10 @@ packages: resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} engines: {node: '>= 0.4'} - camel-case@4.1.2: - resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} - camelcase@8.0.0: resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} engines: {node: '>=16'} - capital-case@1.0.4: - resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} - ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -2218,9 +1639,6 @@ packages: resolution: {integrity: sha512-1tm8DTaJhPBG3bIkVeZt1iZM9GfSX2lzOeDVZH9R9ffRHpmHvxZ/QhgQH/aDTkswQVt+YHdXAdS/In/30OjCbg==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - change-case@4.1.2: - resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} - character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} @@ -2272,10 +1690,6 @@ packages: resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} engines: {node: '>=18'} - cli-width@4.1.0: - resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} - engines: {node: '>= 12'} - clone@2.1.2: resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} engines: {node: '>=0.8'} @@ -2311,12 +1725,6 @@ packages: common-ancestor-path@1.0.1: resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} - config-chain@1.1.13: - resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} - - constant-case@3.0.4: - resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} - content-disposition@0.5.4: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} @@ -2399,18 +1807,10 @@ packages: decode-named-character-reference@1.2.0: resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} - decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} - deep-eql@5.0.2: resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} - defer-to-connect@2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} - engines: {node: '>=10'} - define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -2441,18 +1841,10 @@ packages: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} - detect-indent@7.0.1: - resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} - engines: {node: '>=12.20'} - detect-libc@2.0.4: resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} engines: {node: '>=8'} - detect-newline@4.0.1: - resolution: {integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - deterministic-object-hash@2.0.2: resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} engines: {node: '>=18'} @@ -2481,9 +1873,6 @@ packages: dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - dot-case@3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} - dset@3.1.4: resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} engines: {node: '>=4'} @@ -2536,9 +1925,6 @@ packages: resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} engines: {node: '>=18'} - error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - es-define-property@1.0.1: resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} engines: {node: '>= 0.4'} @@ -2658,20 +2044,9 @@ packages: fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - fast-levenshtein@3.0.0: - resolution: {integrity: sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==} - fast-uri@3.0.6: resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} - fast-xml-parser@5.2.5: - resolution: {integrity: sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==} - hasBin: true - - fastest-levenshtein@1.0.16: - resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} - engines: {node: '>= 4.9.1'} - fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} @@ -2701,9 +2076,6 @@ packages: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} - find-yarn-workspace-root@2.0.0: - resolution: {integrity: sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==} - flatted@3.3.3: resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} @@ -2721,10 +2093,6 @@ packages: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} - form-data-encoder@2.1.4: - resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} - engines: {node: '>= 14.17'} - forwarded@0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} @@ -2769,20 +2137,9 @@ packages: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} - get-stdin@9.0.0: - resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} - engines: {node: '>=12'} - - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - get-tsconfig@4.10.1: resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} - git-hooks-list@3.2.0: - resolution: {integrity: sha512-ZHG9a1gEhUMX1TvGrLdyWb9kDopCBbTnI8z4JgRMYxsijWipgjSEYoPWqBuIB0DnRnvqlQSEeVmzpeuPm7NdFQ==} - github-slugger@2.0.0: resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} @@ -2806,13 +2163,6 @@ packages: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} - got@13.0.0: - resolution: {integrity: sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==} - engines: {node: '>=16'} - - graceful-fs@4.2.10: - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} - graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -2894,13 +2244,6 @@ packages: hastscript@9.0.1: resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} - header-case@2.0.4: - resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} - - hosted-git-info@7.0.2: - resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} - engines: {node: ^16.14.0 || >=18.0.0} - html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} @@ -2916,10 +2259,6 @@ packages: http-cache-semantics@4.2.0: resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} - http-call@5.3.0: - resolution: {integrity: sha512-ahwimsC23ICE4kPl9xTBjKB4inbRaeLyZeRunC/1Jy/Z6X8tv22MEAjK+KBOMSVLaqXPTTmd8638waVIKLGx2w==} - engines: {node: '>=8.0.0'} - http-errors@2.0.0: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} @@ -2928,10 +2267,6 @@ packages: resolution: {integrity: sha512-aTbGAZDUtRt7gRmU+li7rt5WbJeemULZHLNrycJ1dRBU80Giut6NvzG8h5u1TW1zGHXkPGpEtoEKhPKogIRKdA==} engines: {node: '>=4.0.0'} - http2-wrapper@2.2.1: - resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} - engines: {node: '>=10.19.0'} - human-id@4.1.1: resolution: {integrity: sha512-3gKm/gCSUipeLsRYZbbdA1BD83lBoWUkZ7G9VFrhWPAU76KwYo5KR8V28bpoPm/ygy0x5/GCbpRQdY7VLYCoIg==} hasBin: true @@ -2966,9 +2301,6 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - ink@6.1.0: resolution: {integrity: sha512-YQ+lbMD79y3FBAJXXZnuRajLEgaMFp102361eY5NrBIEVCi9oFo7gNZU4z2LBWlcjZFiTt7jetlkIbKCCH4KJA==} engines: {node: '>=20'} @@ -3002,9 +2334,6 @@ packages: is-alphanumerical@2.0.1: resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} @@ -3066,14 +2395,6 @@ packages: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} - is-retry-allowed@1.2.0: - resolution: {integrity: sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==} - engines: {node: '>=0.10.0'} - - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3132,12 +2453,6 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - json-parse-better-errors@1.0.2: - resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} - json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} @@ -3147,9 +2462,6 @@ packages: jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - kleur@3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} @@ -3182,9 +2494,6 @@ packages: lodash.startcase@4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - loglevel@1.9.2: resolution: {integrity: sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==} engines: {node: '>= 0.6.0'} @@ -3199,13 +2508,6 @@ packages: loupe@3.2.0: resolution: {integrity: sha512-2NCfZcT5VGVNX9mSZIxLRkEAegDGBpuQZBy13desuHeVORmBDyAET4TkJr4SjqQy3A8JDofMN6LpkK8Xcm/dlw==} - lower-case@2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} - - lowercase-keys@3.0.0: - resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} @@ -3441,14 +2743,6 @@ packages: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} - mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - - mimic-response@4.0.0: - resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - minimatch@5.1.6: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} @@ -3479,14 +2773,6 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - mute-stream@1.0.0: - resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - mute-stream@2.0.0: - resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} - engines: {node: ^18.17.0 || >=20.5.0} - nanoid@3.3.11: resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -3503,9 +2789,6 @@ packages: nlcst-to-string@4.0.0: resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} - no-case@3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - nocache@3.0.4: resolution: {integrity: sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==} engines: {node: '>=12.0.0'} @@ -3577,18 +2860,10 @@ packages: resolution: {integrity: sha512-TN0InAOCzXS2Nrpr+8Sh9oAvILBjIoKMscz9P5XDJ+Q2F6EMb39Um9gwRzJ2kmEqYsufw6NwsafgbY41xKwVWg==} engines: {node: '>= 18'} - normalize-package-data@6.0.2: - resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} - engines: {node: ^16.14.0 || >=18.0.0} - normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - normalize-url@8.0.2: - resolution: {integrity: sha512-Ee/R3SyN4BuynXcnTaekmaVdbDAEiNrHqjQIA37mHU8G9pf7aaAD4ZX3XjBLo6rsdcxA/gtkcNYZLt30ACgynw==} - engines: {node: '>=14.16'} - npm-check-updates@18.0.1: resolution: {integrity: sha512-MO7mLp/8nm6kZNLLyPgz4gHmr9tLoU+pWPLdXuGAx+oZydBHkHWN0ibTonsrfwC2WEQNIQxuZagYwB67JQpAuw==} engines: {node: ^18.18.0 || >=20.0.0, npm: '>=8.12.1'} @@ -3609,11 +2884,6 @@ packages: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - oclif@4.22.6: - resolution: {integrity: sha512-TsFZfPdhOKtBRv3YKnJMUVbL/JTw5IDs4DoWekpn7c+jBDw/snp0STCe48YYW4hotULwfy2yPbKr0KyzDQ7gjw==} - engines: {node: '>=18.0.0'} - hasBin: true - ofetch@1.4.1: resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} @@ -3649,10 +2919,6 @@ packages: outdent@0.5.0: resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} - p-cancelable@3.0.0: - resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} - engines: {node: '>=12.20'} - p-filter@2.1.0: resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} engines: {node: '>=8'} @@ -3701,16 +2967,9 @@ packages: pako@0.2.9: resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} - param-case@3.0.4: - resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} - parse-entities@4.0.2: resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} - parse-json@4.0.0: - resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} - engines: {node: '>=4'} - parse-latin@7.0.0: resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} @@ -3721,16 +2980,10 @@ packages: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} - pascal-case@3.1.2: - resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} - patch-console@2.0.0: resolution: {integrity: sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - path-case@3.0.4: - resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} - path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -3805,9 +3058,6 @@ packages: property-information@7.1.0: resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} - proto-list@1.2.4: - resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} - proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} @@ -3833,10 +3083,6 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - quick-lru@7.0.1: resolution: {integrity: sha512-kLjThirJMkWKutUKbZ8ViqFc09tDQhlbQo2MNuVeLWbRauqYP96Sm6nzlQ24F0HFjUNZ4i9+AgldJ9H6DZXi7g==} engines: {node: '>=18'} @@ -3893,10 +3139,6 @@ packages: regex@6.0.1: resolution: {integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==} - registry-auth-token@5.1.0: - resolution: {integrity: sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw==} - engines: {node: '>=14'} - rehype-expressive-code@0.41.3: resolution: {integrity: sha512-8d9Py4c/V6I/Od2VIXFAdpiO2kc0SV2qTJsRAaqSIcM9aruW4ASLNe2kOEo1inXAAkIhpFzAHTc358HKbvpNUg==} @@ -3947,9 +3189,6 @@ packages: requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - resolve-alpn@1.2.1: - resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} - resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} @@ -3957,10 +3196,6 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - responselike@3.0.0: - resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} - engines: {node: '>=14.16'} - restore-cursor@4.0.0: resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3980,10 +3215,6 @@ packages: retext@9.0.0: resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==} - retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} - reusify@1.1.0: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -4026,9 +3257,6 @@ packages: resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} - sentence-case@3.0.4: - resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} - serve-static@1.16.2: resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} engines: {node: '>= 0.8.0'} @@ -4123,16 +3351,6 @@ packages: resolution: {integrity: sha512-CxdwHXyYTONGHThDbq5XdwbFsuY4wlClRGejfE2NtwUtiHYsP1QtNsHb/hnj31jKYSchztJsaA8pSQoVzkfCFg==} engines: {node: '>= 18'} - snake-case@3.0.4: - resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} - - sort-object-keys@1.1.3: - resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} - - sort-package-json@2.15.1: - resolution: {integrity: sha512-9x9+o8krTT2saA9liI4BljNjwAbvUnWf11Wq+i/iZt8nl2UGYnf3TH5uBydE7VALmP7AGwlfszuEeL8BDyb0YA==} - hasBin: true - source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -4147,18 +3365,6 @@ packages: spawndamnit@3.0.1: resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} - spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - - spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - - spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - - spdx-license-ids@3.0.22: - resolution: {integrity: sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==} - sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} @@ -4220,9 +3426,6 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} - strnum@2.1.1: - resolution: {integrity: sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==} - style-to-js@1.1.17: resolution: {integrity: sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==} @@ -4259,9 +3462,6 @@ packages: tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - tiny-jsonc@1.0.2: - resolution: {integrity: sha512-f5QDAfLq6zIVSyCZQZhhyl0QS6MvAyTxgz4X4x3+EoCktNWEYJ6PeoEA97fyb98njpBNNi88ybpD7m+BDFXaCw==} - tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} @@ -4330,9 +3530,6 @@ packages: engines: {node: '>=18.0.0'} hasBin: true - tunnel-agent@0.6.0: - resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} @@ -4383,9 +3580,6 @@ packages: uncrypto@0.1.3: resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - undici-types@7.10.0: resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==} @@ -4506,12 +3700,6 @@ packages: uploadthing: optional: true - upper-case-first@2.0.2: - resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} - - upper-case@2.0.2: - resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} - url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} @@ -4525,17 +3713,6 @@ packages: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} - uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true - - validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - - validate-npm-package-name@5.0.1: - resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} @@ -4664,10 +3841,6 @@ packages: wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} - wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -4719,10 +3892,6 @@ packages: resolution: {integrity: sha512-sqBChb33loEnkoXte1bLg45bEBsOP9N1kzQh5JZNKj/0rik4zAPTNSAVPj3uQAdc6slYJ0Ksc403G2XgxsJQFQ==} engines: {node: '>=18.19'} - yoctocolors-cjs@2.1.2: - resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} - engines: {node: '>=18'} - yoctocolors@2.1.1: resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} engines: {node: '>=18'} @@ -4895,535 +4064,22 @@ snapshots: transitivePeerDependencies: - supports-color - '@aws-crypto/crc32@5.2.0': - dependencies: - '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.862.0 - tslib: 2.8.1 + '@babel/helper-string-parser@7.27.1': {} - '@aws-crypto/crc32c@5.2.0': - dependencies: - '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.862.0 - tslib: 2.8.1 + '@babel/helper-validator-identifier@7.27.1': {} - '@aws-crypto/sha1-browser@5.2.0': + '@babel/parser@7.28.0': dependencies: - '@aws-crypto/supports-web-crypto': 5.2.0 - '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.862.0 - '@aws-sdk/util-locate-window': 3.804.0 - '@smithy/util-utf8': 2.3.0 - tslib: 2.8.1 + '@babel/types': 7.28.2 - '@aws-crypto/sha256-browser@5.2.0': - dependencies: - '@aws-crypto/sha256-js': 5.2.0 - '@aws-crypto/supports-web-crypto': 5.2.0 - '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.862.0 - '@aws-sdk/util-locate-window': 3.804.0 - '@smithy/util-utf8': 2.3.0 - tslib: 2.8.1 + '@babel/runtime@7.28.2': {} - '@aws-crypto/sha256-js@5.2.0': + '@babel/types@7.28.2': dependencies: - '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.862.0 - tslib: 2.8.1 + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 - '@aws-crypto/supports-web-crypto@5.2.0': - dependencies: - tslib: 2.8.1 - - '@aws-crypto/util@5.2.0': - dependencies: - '@aws-sdk/types': 3.862.0 - '@smithy/util-utf8': 2.3.0 - tslib: 2.8.1 - - '@aws-sdk/client-cloudfront@3.863.0': - dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.863.0 - '@aws-sdk/credential-provider-node': 3.863.0 - '@aws-sdk/middleware-host-header': 3.862.0 - '@aws-sdk/middleware-logger': 3.862.0 - '@aws-sdk/middleware-recursion-detection': 3.862.0 - '@aws-sdk/middleware-user-agent': 3.863.0 - '@aws-sdk/region-config-resolver': 3.862.0 - '@aws-sdk/types': 3.862.0 - '@aws-sdk/util-endpoints': 3.862.0 - '@aws-sdk/util-user-agent-browser': 3.862.0 - '@aws-sdk/util-user-agent-node': 3.863.0 - '@aws-sdk/xml-builder': 3.862.0 - '@smithy/config-resolver': 4.1.5 - '@smithy/core': 3.8.0 - '@smithy/fetch-http-handler': 5.1.1 - '@smithy/hash-node': 4.0.5 - '@smithy/invalid-dependency': 4.0.5 - '@smithy/middleware-content-length': 4.0.5 - '@smithy/middleware-endpoint': 4.1.18 - '@smithy/middleware-retry': 4.1.19 - '@smithy/middleware-serde': 4.0.9 - '@smithy/middleware-stack': 4.0.5 - '@smithy/node-config-provider': 4.1.4 - '@smithy/node-http-handler': 4.1.1 - '@smithy/protocol-http': 5.1.3 - '@smithy/smithy-client': 4.4.10 - '@smithy/types': 4.3.2 - '@smithy/url-parser': 4.0.5 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.26 - '@smithy/util-defaults-mode-node': 4.0.26 - '@smithy/util-endpoints': 3.0.7 - '@smithy/util-middleware': 4.0.5 - '@smithy/util-retry': 4.0.7 - '@smithy/util-stream': 4.2.4 - '@smithy/util-utf8': 4.0.0 - '@smithy/util-waiter': 4.0.7 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/client-s3@3.863.0': - dependencies: - '@aws-crypto/sha1-browser': 5.2.0 - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.863.0 - '@aws-sdk/credential-provider-node': 3.863.0 - '@aws-sdk/middleware-bucket-endpoint': 3.862.0 - '@aws-sdk/middleware-expect-continue': 3.862.0 - '@aws-sdk/middleware-flexible-checksums': 3.863.0 - '@aws-sdk/middleware-host-header': 3.862.0 - '@aws-sdk/middleware-location-constraint': 3.862.0 - '@aws-sdk/middleware-logger': 3.862.0 - '@aws-sdk/middleware-recursion-detection': 3.862.0 - '@aws-sdk/middleware-sdk-s3': 3.863.0 - '@aws-sdk/middleware-ssec': 3.862.0 - '@aws-sdk/middleware-user-agent': 3.863.0 - '@aws-sdk/region-config-resolver': 3.862.0 - '@aws-sdk/signature-v4-multi-region': 3.863.0 - '@aws-sdk/types': 3.862.0 - '@aws-sdk/util-endpoints': 3.862.0 - '@aws-sdk/util-user-agent-browser': 3.862.0 - '@aws-sdk/util-user-agent-node': 3.863.0 - '@aws-sdk/xml-builder': 3.862.0 - '@smithy/config-resolver': 4.1.5 - '@smithy/core': 3.8.0 - '@smithy/eventstream-serde-browser': 4.0.5 - '@smithy/eventstream-serde-config-resolver': 4.1.3 - '@smithy/eventstream-serde-node': 4.0.5 - '@smithy/fetch-http-handler': 5.1.1 - '@smithy/hash-blob-browser': 4.0.5 - '@smithy/hash-node': 4.0.5 - '@smithy/hash-stream-node': 4.0.5 - '@smithy/invalid-dependency': 4.0.5 - '@smithy/md5-js': 4.0.5 - '@smithy/middleware-content-length': 4.0.5 - '@smithy/middleware-endpoint': 4.1.18 - '@smithy/middleware-retry': 4.1.19 - '@smithy/middleware-serde': 4.0.9 - '@smithy/middleware-stack': 4.0.5 - '@smithy/node-config-provider': 4.1.4 - '@smithy/node-http-handler': 4.1.1 - '@smithy/protocol-http': 5.1.3 - '@smithy/smithy-client': 4.4.10 - '@smithy/types': 4.3.2 - '@smithy/url-parser': 4.0.5 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.26 - '@smithy/util-defaults-mode-node': 4.0.26 - '@smithy/util-endpoints': 3.0.7 - '@smithy/util-middleware': 4.0.5 - '@smithy/util-retry': 4.0.7 - '@smithy/util-stream': 4.2.4 - '@smithy/util-utf8': 4.0.0 - '@smithy/util-waiter': 4.0.7 - '@types/uuid': 9.0.8 - tslib: 2.8.1 - uuid: 9.0.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/client-sso@3.863.0': - dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.863.0 - '@aws-sdk/middleware-host-header': 3.862.0 - '@aws-sdk/middleware-logger': 3.862.0 - '@aws-sdk/middleware-recursion-detection': 3.862.0 - '@aws-sdk/middleware-user-agent': 3.863.0 - '@aws-sdk/region-config-resolver': 3.862.0 - '@aws-sdk/types': 3.862.0 - '@aws-sdk/util-endpoints': 3.862.0 - '@aws-sdk/util-user-agent-browser': 3.862.0 - '@aws-sdk/util-user-agent-node': 3.863.0 - '@smithy/config-resolver': 4.1.5 - '@smithy/core': 3.8.0 - '@smithy/fetch-http-handler': 5.1.1 - '@smithy/hash-node': 4.0.5 - '@smithy/invalid-dependency': 4.0.5 - '@smithy/middleware-content-length': 4.0.5 - '@smithy/middleware-endpoint': 4.1.18 - '@smithy/middleware-retry': 4.1.19 - '@smithy/middleware-serde': 4.0.9 - '@smithy/middleware-stack': 4.0.5 - '@smithy/node-config-provider': 4.1.4 - '@smithy/node-http-handler': 4.1.1 - '@smithy/protocol-http': 5.1.3 - '@smithy/smithy-client': 4.4.10 - '@smithy/types': 4.3.2 - '@smithy/url-parser': 4.0.5 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.26 - '@smithy/util-defaults-mode-node': 4.0.26 - '@smithy/util-endpoints': 3.0.7 - '@smithy/util-middleware': 4.0.5 - '@smithy/util-retry': 4.0.7 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/core@3.863.0': - dependencies: - '@aws-sdk/types': 3.862.0 - '@aws-sdk/xml-builder': 3.862.0 - '@smithy/core': 3.8.0 - '@smithy/node-config-provider': 4.1.4 - '@smithy/property-provider': 4.0.5 - '@smithy/protocol-http': 5.1.3 - '@smithy/signature-v4': 5.1.3 - '@smithy/smithy-client': 4.4.10 - '@smithy/types': 4.3.2 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-middleware': 4.0.5 - '@smithy/util-utf8': 4.0.0 - fast-xml-parser: 5.2.5 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-env@3.863.0': - dependencies: - '@aws-sdk/core': 3.863.0 - '@aws-sdk/types': 3.862.0 - '@smithy/property-provider': 4.0.5 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-http@3.863.0': - dependencies: - '@aws-sdk/core': 3.863.0 - '@aws-sdk/types': 3.862.0 - '@smithy/fetch-http-handler': 5.1.1 - '@smithy/node-http-handler': 4.1.1 - '@smithy/property-provider': 4.0.5 - '@smithy/protocol-http': 5.1.3 - '@smithy/smithy-client': 4.4.10 - '@smithy/types': 4.3.2 - '@smithy/util-stream': 4.2.4 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-ini@3.863.0': - dependencies: - '@aws-sdk/core': 3.863.0 - '@aws-sdk/credential-provider-env': 3.863.0 - '@aws-sdk/credential-provider-http': 3.863.0 - '@aws-sdk/credential-provider-process': 3.863.0 - '@aws-sdk/credential-provider-sso': 3.863.0 - '@aws-sdk/credential-provider-web-identity': 3.863.0 - '@aws-sdk/nested-clients': 3.863.0 - '@aws-sdk/types': 3.862.0 - '@smithy/credential-provider-imds': 4.0.7 - '@smithy/property-provider': 4.0.5 - '@smithy/shared-ini-file-loader': 4.0.5 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-node@3.863.0': - dependencies: - '@aws-sdk/credential-provider-env': 3.863.0 - '@aws-sdk/credential-provider-http': 3.863.0 - '@aws-sdk/credential-provider-ini': 3.863.0 - '@aws-sdk/credential-provider-process': 3.863.0 - '@aws-sdk/credential-provider-sso': 3.863.0 - '@aws-sdk/credential-provider-web-identity': 3.863.0 - '@aws-sdk/types': 3.862.0 - '@smithy/credential-provider-imds': 4.0.7 - '@smithy/property-provider': 4.0.5 - '@smithy/shared-ini-file-loader': 4.0.5 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-process@3.863.0': - dependencies: - '@aws-sdk/core': 3.863.0 - '@aws-sdk/types': 3.862.0 - '@smithy/property-provider': 4.0.5 - '@smithy/shared-ini-file-loader': 4.0.5 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-sso@3.863.0': - dependencies: - '@aws-sdk/client-sso': 3.863.0 - '@aws-sdk/core': 3.863.0 - '@aws-sdk/token-providers': 3.863.0 - '@aws-sdk/types': 3.862.0 - '@smithy/property-provider': 4.0.5 - '@smithy/shared-ini-file-loader': 4.0.5 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-web-identity@3.863.0': - dependencies: - '@aws-sdk/core': 3.863.0 - '@aws-sdk/nested-clients': 3.863.0 - '@aws-sdk/types': 3.862.0 - '@smithy/property-provider': 4.0.5 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/middleware-bucket-endpoint@3.862.0': - dependencies: - '@aws-sdk/types': 3.862.0 - '@aws-sdk/util-arn-parser': 3.804.0 - '@smithy/node-config-provider': 4.1.4 - '@smithy/protocol-http': 5.1.3 - '@smithy/types': 4.3.2 - '@smithy/util-config-provider': 4.0.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-expect-continue@3.862.0': - dependencies: - '@aws-sdk/types': 3.862.0 - '@smithy/protocol-http': 5.1.3 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@aws-sdk/middleware-flexible-checksums@3.863.0': - dependencies: - '@aws-crypto/crc32': 5.2.0 - '@aws-crypto/crc32c': 5.2.0 - '@aws-crypto/util': 5.2.0 - '@aws-sdk/core': 3.863.0 - '@aws-sdk/types': 3.862.0 - '@smithy/is-array-buffer': 4.0.0 - '@smithy/node-config-provider': 4.1.4 - '@smithy/protocol-http': 5.1.3 - '@smithy/types': 4.3.2 - '@smithy/util-middleware': 4.0.5 - '@smithy/util-stream': 4.2.4 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-host-header@3.862.0': - dependencies: - '@aws-sdk/types': 3.862.0 - '@smithy/protocol-http': 5.1.3 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@aws-sdk/middleware-location-constraint@3.862.0': - dependencies: - '@aws-sdk/types': 3.862.0 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@aws-sdk/middleware-logger@3.862.0': - dependencies: - '@aws-sdk/types': 3.862.0 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@aws-sdk/middleware-recursion-detection@3.862.0': - dependencies: - '@aws-sdk/types': 3.862.0 - '@smithy/protocol-http': 5.1.3 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@aws-sdk/middleware-sdk-s3@3.863.0': - dependencies: - '@aws-sdk/core': 3.863.0 - '@aws-sdk/types': 3.862.0 - '@aws-sdk/util-arn-parser': 3.804.0 - '@smithy/core': 3.8.0 - '@smithy/node-config-provider': 4.1.4 - '@smithy/protocol-http': 5.1.3 - '@smithy/signature-v4': 5.1.3 - '@smithy/smithy-client': 4.4.10 - '@smithy/types': 4.3.2 - '@smithy/util-config-provider': 4.0.0 - '@smithy/util-middleware': 4.0.5 - '@smithy/util-stream': 4.2.4 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-ssec@3.862.0': - dependencies: - '@aws-sdk/types': 3.862.0 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@aws-sdk/middleware-user-agent@3.863.0': - dependencies: - '@aws-sdk/core': 3.863.0 - '@aws-sdk/types': 3.862.0 - '@aws-sdk/util-endpoints': 3.862.0 - '@smithy/core': 3.8.0 - '@smithy/protocol-http': 5.1.3 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@aws-sdk/nested-clients@3.863.0': - dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.863.0 - '@aws-sdk/middleware-host-header': 3.862.0 - '@aws-sdk/middleware-logger': 3.862.0 - '@aws-sdk/middleware-recursion-detection': 3.862.0 - '@aws-sdk/middleware-user-agent': 3.863.0 - '@aws-sdk/region-config-resolver': 3.862.0 - '@aws-sdk/types': 3.862.0 - '@aws-sdk/util-endpoints': 3.862.0 - '@aws-sdk/util-user-agent-browser': 3.862.0 - '@aws-sdk/util-user-agent-node': 3.863.0 - '@smithy/config-resolver': 4.1.5 - '@smithy/core': 3.8.0 - '@smithy/fetch-http-handler': 5.1.1 - '@smithy/hash-node': 4.0.5 - '@smithy/invalid-dependency': 4.0.5 - '@smithy/middleware-content-length': 4.0.5 - '@smithy/middleware-endpoint': 4.1.18 - '@smithy/middleware-retry': 4.1.19 - '@smithy/middleware-serde': 4.0.9 - '@smithy/middleware-stack': 4.0.5 - '@smithy/node-config-provider': 4.1.4 - '@smithy/node-http-handler': 4.1.1 - '@smithy/protocol-http': 5.1.3 - '@smithy/smithy-client': 4.4.10 - '@smithy/types': 4.3.2 - '@smithy/url-parser': 4.0.5 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.26 - '@smithy/util-defaults-mode-node': 4.0.26 - '@smithy/util-endpoints': 3.0.7 - '@smithy/util-middleware': 4.0.5 - '@smithy/util-retry': 4.0.7 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/region-config-resolver@3.862.0': - dependencies: - '@aws-sdk/types': 3.862.0 - '@smithy/node-config-provider': 4.1.4 - '@smithy/types': 4.3.2 - '@smithy/util-config-provider': 4.0.0 - '@smithy/util-middleware': 4.0.5 - tslib: 2.8.1 - - '@aws-sdk/signature-v4-multi-region@3.863.0': - dependencies: - '@aws-sdk/middleware-sdk-s3': 3.863.0 - '@aws-sdk/types': 3.862.0 - '@smithy/protocol-http': 5.1.3 - '@smithy/signature-v4': 5.1.3 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@aws-sdk/token-providers@3.863.0': - dependencies: - '@aws-sdk/core': 3.863.0 - '@aws-sdk/nested-clients': 3.863.0 - '@aws-sdk/types': 3.862.0 - '@smithy/property-provider': 4.0.5 - '@smithy/shared-ini-file-loader': 4.0.5 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/types@3.862.0': - dependencies: - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@aws-sdk/util-arn-parser@3.804.0': - dependencies: - tslib: 2.8.1 - - '@aws-sdk/util-endpoints@3.862.0': - dependencies: - '@aws-sdk/types': 3.862.0 - '@smithy/types': 4.3.2 - '@smithy/url-parser': 4.0.5 - '@smithy/util-endpoints': 3.0.7 - tslib: 2.8.1 - - '@aws-sdk/util-locate-window@3.804.0': - dependencies: - tslib: 2.8.1 - - '@aws-sdk/util-user-agent-browser@3.862.0': - dependencies: - '@aws-sdk/types': 3.862.0 - '@smithy/types': 4.3.2 - bowser: 2.11.0 - tslib: 2.8.1 - - '@aws-sdk/util-user-agent-node@3.863.0': - dependencies: - '@aws-sdk/middleware-user-agent': 3.863.0 - '@aws-sdk/types': 3.862.0 - '@smithy/node-config-provider': 4.1.4 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@aws-sdk/xml-builder@3.862.0': - dependencies: - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@babel/helper-string-parser@7.27.1': {} - - '@babel/helper-validator-identifier@7.27.1': {} - - '@babel/parser@7.28.0': - dependencies: - '@babel/types': 7.28.2 - - '@babel/runtime@7.28.2': {} - - '@babel/types@7.28.2': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - - '@bcoe/v8-coverage@1.0.2': {} + '@bcoe/v8-coverage@1.0.2': {} '@biomejs/biome@1.9.4': optionalDependencies: @@ -5895,163 +4551,6 @@ snapshots: '@img/sharp-win32-x64@0.34.2': optional: true - '@inquirer/checkbox@4.2.0(@types/node@24.2.0)': - dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) - '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.2.0) - ansi-escapes: 4.3.2 - yoctocolors-cjs: 2.1.2 - optionalDependencies: - '@types/node': 24.2.0 - - '@inquirer/confirm@3.2.0': - dependencies: - '@inquirer/core': 9.2.1 - '@inquirer/type': 1.5.5 - - '@inquirer/confirm@5.1.14(@types/node@24.2.0)': - dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) - '@inquirer/type': 3.0.8(@types/node@24.2.0) - optionalDependencies: - '@types/node': 24.2.0 - - '@inquirer/core@10.1.15(@types/node@24.2.0)': - dependencies: - '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.2.0) - ansi-escapes: 4.3.2 - cli-width: 4.1.0 - mute-stream: 2.0.0 - signal-exit: 4.1.0 - wrap-ansi: 6.2.0 - yoctocolors-cjs: 2.1.2 - optionalDependencies: - '@types/node': 24.2.0 - - '@inquirer/core@9.2.1': - dependencies: - '@inquirer/figures': 1.0.13 - '@inquirer/type': 2.0.0 - '@types/mute-stream': 0.0.4 - '@types/node': 22.17.0 - '@types/wrap-ansi': 3.0.0 - ansi-escapes: 4.3.2 - cli-width: 4.1.0 - mute-stream: 1.0.0 - signal-exit: 4.1.0 - strip-ansi: 6.0.1 - wrap-ansi: 6.2.0 - yoctocolors-cjs: 2.1.2 - - '@inquirer/editor@4.2.15(@types/node@24.2.0)': - dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) - '@inquirer/type': 3.0.8(@types/node@24.2.0) - external-editor: 3.1.0 - optionalDependencies: - '@types/node': 24.2.0 - - '@inquirer/expand@4.0.17(@types/node@24.2.0)': - dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) - '@inquirer/type': 3.0.8(@types/node@24.2.0) - yoctocolors-cjs: 2.1.2 - optionalDependencies: - '@types/node': 24.2.0 - - '@inquirer/figures@1.0.13': {} - - '@inquirer/input@2.3.0': - dependencies: - '@inquirer/core': 9.2.1 - '@inquirer/type': 1.5.5 - - '@inquirer/input@4.2.1(@types/node@24.2.0)': - dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) - '@inquirer/type': 3.0.8(@types/node@24.2.0) - optionalDependencies: - '@types/node': 24.2.0 - - '@inquirer/number@3.0.17(@types/node@24.2.0)': - dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) - '@inquirer/type': 3.0.8(@types/node@24.2.0) - optionalDependencies: - '@types/node': 24.2.0 - - '@inquirer/password@4.0.17(@types/node@24.2.0)': - dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) - '@inquirer/type': 3.0.8(@types/node@24.2.0) - ansi-escapes: 4.3.2 - optionalDependencies: - '@types/node': 24.2.0 - - '@inquirer/prompts@7.8.0(@types/node@24.2.0)': - dependencies: - '@inquirer/checkbox': 4.2.0(@types/node@24.2.0) - '@inquirer/confirm': 5.1.14(@types/node@24.2.0) - '@inquirer/editor': 4.2.15(@types/node@24.2.0) - '@inquirer/expand': 4.0.17(@types/node@24.2.0) - '@inquirer/input': 4.2.1(@types/node@24.2.0) - '@inquirer/number': 3.0.17(@types/node@24.2.0) - '@inquirer/password': 4.0.17(@types/node@24.2.0) - '@inquirer/rawlist': 4.1.5(@types/node@24.2.0) - '@inquirer/search': 3.1.0(@types/node@24.2.0) - '@inquirer/select': 4.3.1(@types/node@24.2.0) - optionalDependencies: - '@types/node': 24.2.0 - - '@inquirer/rawlist@4.1.5(@types/node@24.2.0)': - dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) - '@inquirer/type': 3.0.8(@types/node@24.2.0) - yoctocolors-cjs: 2.1.2 - optionalDependencies: - '@types/node': 24.2.0 - - '@inquirer/search@3.1.0(@types/node@24.2.0)': - dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) - '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.2.0) - yoctocolors-cjs: 2.1.2 - optionalDependencies: - '@types/node': 24.2.0 - - '@inquirer/select@2.5.0': - dependencies: - '@inquirer/core': 9.2.1 - '@inquirer/figures': 1.0.13 - '@inquirer/type': 1.5.5 - ansi-escapes: 4.3.2 - yoctocolors-cjs: 2.1.2 - - '@inquirer/select@4.3.1(@types/node@24.2.0)': - dependencies: - '@inquirer/core': 10.1.15(@types/node@24.2.0) - '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.2.0) - ansi-escapes: 4.3.2 - yoctocolors-cjs: 2.1.2 - optionalDependencies: - '@types/node': 24.2.0 - - '@inquirer/type@1.5.5': - dependencies: - mute-stream: 1.0.0 - - '@inquirer/type@2.0.0': - dependencies: - mute-stream: 1.0.0 - - '@inquirer/type@3.0.8(@types/node@24.2.0)': - optionalDependencies: - '@types/node': 24.2.0 - '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -6224,30 +4723,6 @@ snapshots: wordwrap: 1.0.0 wrap-ansi: 7.0.0 - '@oclif/plugin-help@6.2.32': - dependencies: - '@oclif/core': 4.5.2 - - '@oclif/plugin-not-found@3.2.63(@types/node@24.2.0)': - dependencies: - '@inquirer/prompts': 7.8.0(@types/node@24.2.0) - '@oclif/core': 4.5.2 - ansis: 3.17.0 - fast-levenshtein: 3.0.0 - transitivePeerDependencies: - - '@types/node' - - '@oclif/plugin-warn-if-update-available@3.1.46': - dependencies: - '@oclif/core': 4.5.2 - ansis: 3.17.0 - debug: 4.4.1(supports-color@8.1.1) - http-call: 5.3.0 - lodash: 4.17.21 - registry-auth-token: 5.1.0 - transitivePeerDependencies: - - supports-color - '@oslojs/encoding@1.1.0': {} '@pagefind/darwin-arm64@1.3.0': @@ -6270,18 +4745,6 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@pnpm/config.env-replace@1.1.0': {} - - '@pnpm/network.ca-file@1.0.2': - dependencies: - graceful-fs: 4.2.10 - - '@pnpm/npm-conf@2.3.1': - dependencies: - '@pnpm/config.env-replace': 1.1.0 - '@pnpm/network.ca-file': 1.0.2 - config-chain: 1.1.13 - '@polka/url@1.0.0-next.29': {} '@pollyjs/adapter-fetch@6.0.7': @@ -6364,437 +4827,95 @@ snapshots: '@rollup/rollup-freebsd-arm64@4.46.2': optional: true - '@rollup/rollup-freebsd-x64@4.46.2': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.46.2': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.46.2': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.46.2': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.46.2': - optional: true - - '@rollup/rollup-linux-loongarch64-gnu@4.46.2': - optional: true - - '@rollup/rollup-linux-ppc64-gnu@4.46.2': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.46.2': - optional: true - - '@rollup/rollup-linux-riscv64-musl@4.46.2': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.46.2': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.46.2': - optional: true - - '@rollup/rollup-linux-x64-musl@4.46.2': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.46.2': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.46.2': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.46.2': - optional: true - - '@shikijs/core@3.9.2': - dependencies: - '@shikijs/types': 3.9.2 - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - hast-util-to-html: 9.0.5 - - '@shikijs/engine-javascript@3.9.2': - dependencies: - '@shikijs/types': 3.9.2 - '@shikijs/vscode-textmate': 10.0.2 - oniguruma-to-es: 4.3.3 - - '@shikijs/engine-oniguruma@3.9.2': - dependencies: - '@shikijs/types': 3.9.2 - '@shikijs/vscode-textmate': 10.0.2 - - '@shikijs/langs@3.9.2': - dependencies: - '@shikijs/types': 3.9.2 - - '@shikijs/themes@3.9.2': - dependencies: - '@shikijs/types': 3.9.2 - - '@shikijs/types@3.9.2': - dependencies: - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - - '@shikijs/vscode-textmate@10.0.2': {} - - '@sindresorhus/fnv1a@2.0.1': {} - - '@sindresorhus/is@5.6.0': {} - - '@sindresorhus/slugify@0.9.1': - dependencies: - escape-string-regexp: 1.0.5 - lodash.deburr: 4.1.0 - - '@smithy/abort-controller@4.0.5': - dependencies: - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@smithy/chunked-blob-reader-native@4.0.0': - dependencies: - '@smithy/util-base64': 4.0.0 - tslib: 2.8.1 - - '@smithy/chunked-blob-reader@5.0.0': - dependencies: - tslib: 2.8.1 - - '@smithy/config-resolver@4.1.5': - dependencies: - '@smithy/node-config-provider': 4.1.4 - '@smithy/types': 4.3.2 - '@smithy/util-config-provider': 4.0.0 - '@smithy/util-middleware': 4.0.5 - tslib: 2.8.1 - - '@smithy/core@3.8.0': - dependencies: - '@smithy/middleware-serde': 4.0.9 - '@smithy/protocol-http': 5.1.3 - '@smithy/types': 4.3.2 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-middleware': 4.0.5 - '@smithy/util-stream': 4.2.4 - '@smithy/util-utf8': 4.0.0 - '@types/uuid': 9.0.8 - tslib: 2.8.1 - uuid: 9.0.1 - - '@smithy/credential-provider-imds@4.0.7': - dependencies: - '@smithy/node-config-provider': 4.1.4 - '@smithy/property-provider': 4.0.5 - '@smithy/types': 4.3.2 - '@smithy/url-parser': 4.0.5 - tslib: 2.8.1 - - '@smithy/eventstream-codec@4.0.5': - dependencies: - '@aws-crypto/crc32': 5.2.0 - '@smithy/types': 4.3.2 - '@smithy/util-hex-encoding': 4.0.0 - tslib: 2.8.1 - - '@smithy/eventstream-serde-browser@4.0.5': - dependencies: - '@smithy/eventstream-serde-universal': 4.0.5 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@smithy/eventstream-serde-config-resolver@4.1.3': - dependencies: - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@smithy/eventstream-serde-node@4.0.5': - dependencies: - '@smithy/eventstream-serde-universal': 4.0.5 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@smithy/eventstream-serde-universal@4.0.5': - dependencies: - '@smithy/eventstream-codec': 4.0.5 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@smithy/fetch-http-handler@5.1.1': - dependencies: - '@smithy/protocol-http': 5.1.3 - '@smithy/querystring-builder': 4.0.5 - '@smithy/types': 4.3.2 - '@smithy/util-base64': 4.0.0 - tslib: 2.8.1 - - '@smithy/hash-blob-browser@4.0.5': - dependencies: - '@smithy/chunked-blob-reader': 5.0.0 - '@smithy/chunked-blob-reader-native': 4.0.0 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@smithy/hash-node@4.0.5': - dependencies: - '@smithy/types': 4.3.2 - '@smithy/util-buffer-from': 4.0.0 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 - - '@smithy/hash-stream-node@4.0.5': - dependencies: - '@smithy/types': 4.3.2 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 - - '@smithy/invalid-dependency@4.0.5': - dependencies: - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@smithy/is-array-buffer@2.2.0': - dependencies: - tslib: 2.8.1 - - '@smithy/is-array-buffer@4.0.0': - dependencies: - tslib: 2.8.1 - - '@smithy/md5-js@4.0.5': - dependencies: - '@smithy/types': 4.3.2 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 - - '@smithy/middleware-content-length@4.0.5': - dependencies: - '@smithy/protocol-http': 5.1.3 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@smithy/middleware-endpoint@4.1.18': - dependencies: - '@smithy/core': 3.8.0 - '@smithy/middleware-serde': 4.0.9 - '@smithy/node-config-provider': 4.1.4 - '@smithy/shared-ini-file-loader': 4.0.5 - '@smithy/types': 4.3.2 - '@smithy/url-parser': 4.0.5 - '@smithy/util-middleware': 4.0.5 - tslib: 2.8.1 - - '@smithy/middleware-retry@4.1.19': - dependencies: - '@smithy/node-config-provider': 4.1.4 - '@smithy/protocol-http': 5.1.3 - '@smithy/service-error-classification': 4.0.7 - '@smithy/smithy-client': 4.4.10 - '@smithy/types': 4.3.2 - '@smithy/util-middleware': 4.0.5 - '@smithy/util-retry': 4.0.7 - '@types/uuid': 9.0.8 - tslib: 2.8.1 - uuid: 9.0.1 - - '@smithy/middleware-serde@4.0.9': - dependencies: - '@smithy/protocol-http': 5.1.3 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@smithy/middleware-stack@4.0.5': - dependencies: - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@smithy/node-config-provider@4.1.4': - dependencies: - '@smithy/property-provider': 4.0.5 - '@smithy/shared-ini-file-loader': 4.0.5 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@smithy/node-http-handler@4.1.1': - dependencies: - '@smithy/abort-controller': 4.0.5 - '@smithy/protocol-http': 5.1.3 - '@smithy/querystring-builder': 4.0.5 - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@smithy/property-provider@4.0.5': - dependencies: - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@smithy/protocol-http@5.1.3': - dependencies: - '@smithy/types': 4.3.2 - tslib: 2.8.1 - - '@smithy/querystring-builder@4.0.5': - dependencies: - '@smithy/types': 4.3.2 - '@smithy/util-uri-escape': 4.0.0 - tslib: 2.8.1 - - '@smithy/querystring-parser@4.0.5': - dependencies: - '@smithy/types': 4.3.2 - tslib: 2.8.1 + '@rollup/rollup-freebsd-x64@4.46.2': + optional: true - '@smithy/service-error-classification@4.0.7': - dependencies: - '@smithy/types': 4.3.2 + '@rollup/rollup-linux-arm-gnueabihf@4.46.2': + optional: true - '@smithy/shared-ini-file-loader@4.0.5': - dependencies: - '@smithy/types': 4.3.2 - tslib: 2.8.1 + '@rollup/rollup-linux-arm-musleabihf@4.46.2': + optional: true - '@smithy/signature-v4@5.1.3': - dependencies: - '@smithy/is-array-buffer': 4.0.0 - '@smithy/protocol-http': 5.1.3 - '@smithy/types': 4.3.2 - '@smithy/util-hex-encoding': 4.0.0 - '@smithy/util-middleware': 4.0.5 - '@smithy/util-uri-escape': 4.0.0 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 + '@rollup/rollup-linux-arm64-gnu@4.46.2': + optional: true - '@smithy/smithy-client@4.4.10': - dependencies: - '@smithy/core': 3.8.0 - '@smithy/middleware-endpoint': 4.1.18 - '@smithy/middleware-stack': 4.0.5 - '@smithy/protocol-http': 5.1.3 - '@smithy/types': 4.3.2 - '@smithy/util-stream': 4.2.4 - tslib: 2.8.1 + '@rollup/rollup-linux-arm64-musl@4.46.2': + optional: true - '@smithy/types@4.3.2': - dependencies: - tslib: 2.8.1 + '@rollup/rollup-linux-loongarch64-gnu@4.46.2': + optional: true - '@smithy/url-parser@4.0.5': - dependencies: - '@smithy/querystring-parser': 4.0.5 - '@smithy/types': 4.3.2 - tslib: 2.8.1 + '@rollup/rollup-linux-ppc64-gnu@4.46.2': + optional: true - '@smithy/util-base64@4.0.0': - dependencies: - '@smithy/util-buffer-from': 4.0.0 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 + '@rollup/rollup-linux-riscv64-gnu@4.46.2': + optional: true - '@smithy/util-body-length-browser@4.0.0': - dependencies: - tslib: 2.8.1 + '@rollup/rollup-linux-riscv64-musl@4.46.2': + optional: true - '@smithy/util-body-length-node@4.0.0': - dependencies: - tslib: 2.8.1 + '@rollup/rollup-linux-s390x-gnu@4.46.2': + optional: true - '@smithy/util-buffer-from@2.2.0': - dependencies: - '@smithy/is-array-buffer': 2.2.0 - tslib: 2.8.1 + '@rollup/rollup-linux-x64-gnu@4.46.2': + optional: true - '@smithy/util-buffer-from@4.0.0': - dependencies: - '@smithy/is-array-buffer': 4.0.0 - tslib: 2.8.1 + '@rollup/rollup-linux-x64-musl@4.46.2': + optional: true - '@smithy/util-config-provider@4.0.0': - dependencies: - tslib: 2.8.1 + '@rollup/rollup-win32-arm64-msvc@4.46.2': + optional: true - '@smithy/util-defaults-mode-browser@4.0.26': - dependencies: - '@smithy/property-provider': 4.0.5 - '@smithy/smithy-client': 4.4.10 - '@smithy/types': 4.3.2 - bowser: 2.11.0 - tslib: 2.8.1 + '@rollup/rollup-win32-ia32-msvc@4.46.2': + optional: true - '@smithy/util-defaults-mode-node@4.0.26': - dependencies: - '@smithy/config-resolver': 4.1.5 - '@smithy/credential-provider-imds': 4.0.7 - '@smithy/node-config-provider': 4.1.4 - '@smithy/property-provider': 4.0.5 - '@smithy/smithy-client': 4.4.10 - '@smithy/types': 4.3.2 - tslib: 2.8.1 + '@rollup/rollup-win32-x64-msvc@4.46.2': + optional: true - '@smithy/util-endpoints@3.0.7': + '@shikijs/core@3.9.2': dependencies: - '@smithy/node-config-provider': 4.1.4 - '@smithy/types': 4.3.2 - tslib: 2.8.1 + '@shikijs/types': 3.9.2 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.5 - '@smithy/util-hex-encoding@4.0.0': + '@shikijs/engine-javascript@3.9.2': dependencies: - tslib: 2.8.1 + '@shikijs/types': 3.9.2 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 4.3.3 - '@smithy/util-middleware@4.0.5': + '@shikijs/engine-oniguruma@3.9.2': dependencies: - '@smithy/types': 4.3.2 - tslib: 2.8.1 + '@shikijs/types': 3.9.2 + '@shikijs/vscode-textmate': 10.0.2 - '@smithy/util-retry@4.0.7': + '@shikijs/langs@3.9.2': dependencies: - '@smithy/service-error-classification': 4.0.7 - '@smithy/types': 4.3.2 - tslib: 2.8.1 + '@shikijs/types': 3.9.2 - '@smithy/util-stream@4.2.4': + '@shikijs/themes@3.9.2': dependencies: - '@smithy/fetch-http-handler': 5.1.1 - '@smithy/node-http-handler': 4.1.1 - '@smithy/types': 4.3.2 - '@smithy/util-base64': 4.0.0 - '@smithy/util-buffer-from': 4.0.0 - '@smithy/util-hex-encoding': 4.0.0 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 + '@shikijs/types': 3.9.2 - '@smithy/util-uri-escape@4.0.0': + '@shikijs/types@3.9.2': dependencies: - tslib: 2.8.1 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 - '@smithy/util-utf8@2.3.0': - dependencies: - '@smithy/util-buffer-from': 2.2.0 - tslib: 2.8.1 + '@shikijs/vscode-textmate@10.0.2': {} - '@smithy/util-utf8@4.0.0': - dependencies: - '@smithy/util-buffer-from': 4.0.0 - tslib: 2.8.1 + '@sindresorhus/fnv1a@2.0.1': {} - '@smithy/util-waiter@4.0.7': + '@sindresorhus/slugify@0.9.1': dependencies: - '@smithy/abort-controller': 4.0.5 - '@smithy/types': 4.3.2 - tslib: 2.8.1 + escape-string-regexp: 1.0.5 + lodash.deburr: 4.1.0 '@swc/helpers@0.5.17': dependencies: tslib: 2.8.1 - '@szmarczak/http-timer@5.0.1': - dependencies: - defer-to-connect: 2.0.1 - '@tybys/wasm-util@0.10.0': dependencies: tslib: 2.8.1 @@ -6818,8 +4939,6 @@ snapshots: dependencies: '@types/unist': 3.0.3 - '@types/http-cache-semantics@4.0.4': {} - '@types/js-yaml@4.0.9': {} '@types/mdast@4.0.4': @@ -6830,10 +4949,6 @@ snapshots: '@types/ms@2.1.0': {} - '@types/mute-stream@0.0.4': - dependencies: - '@types/node': 24.2.0 - '@types/nlcst@2.0.3': dependencies: '@types/unist': 3.0.3 @@ -6842,10 +4957,6 @@ snapshots: '@types/node@17.0.45': {} - '@types/node@22.17.0': - dependencies: - undici-types: 6.21.0 - '@types/node@24.2.0': dependencies: undici-types: 7.10.0 @@ -6866,10 +4977,6 @@ snapshots: '@types/unist@3.0.3': {} - '@types/uuid@9.0.8': {} - - '@types/wrap-ansi@3.0.0': {} - '@types/yauzl-promise@4.0.1': dependencies: '@types/node': 24.2.0 @@ -7126,10 +5233,6 @@ snapshots: - uploadthing - yaml - async-retry@1.3.3: - dependencies: - retry: 0.13.1 - async@3.2.6: {} auto-bind@5.0.1: {} @@ -7214,18 +5317,6 @@ snapshots: cac@6.7.14: {} - cacheable-lookup@7.0.0: {} - - cacheable-request@10.2.14: - dependencies: - '@types/http-cache-semantics': 4.0.4 - get-stream: 6.0.1 - http-cache-semantics: 4.2.0 - keyv: 4.5.4 - mimic-response: 4.0.0 - normalize-url: 8.0.2 - responselike: 3.0.0 - call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 @@ -7236,19 +5327,8 @@ snapshots: call-bind-apply-helpers: 1.0.2 get-intrinsic: 1.3.0 - camel-case@4.1.2: - dependencies: - pascal-case: 3.1.2 - tslib: 2.8.1 - camelcase@8.0.0: {} - capital-case@1.0.4: - dependencies: - no-case: 3.0.4 - tslib: 2.8.1 - upper-case-first: 2.0.2 - ccount@2.0.1: {} chai@5.2.1: @@ -7261,21 +5341,6 @@ snapshots: chalk@5.5.0: {} - change-case@4.1.2: - dependencies: - camel-case: 4.1.2 - capital-case: 1.0.4 - constant-case: 3.0.4 - dot-case: 3.0.4 - header-case: 2.0.4 - no-case: 3.0.4 - param-case: 3.0.4 - pascal-case: 3.1.2 - path-case: 3.0.4 - sentence-case: 3.0.4 - snake-case: 3.0.4 - tslib: 2.8.1 - character-entities-html4@2.1.0: {} character-entities-legacy@3.0.0: {} @@ -7313,8 +5378,6 @@ snapshots: slice-ansi: 5.0.0 string-width: 7.2.0 - cli-width@4.1.0: {} - clone@2.1.2: {} clsx@2.1.1: {} @@ -7345,17 +5408,6 @@ snapshots: common-ancestor-path@1.0.1: {} - config-chain@1.1.13: - dependencies: - ini: 1.3.8 - proto-list: 1.2.4 - - constant-case@3.0.4: - dependencies: - no-case: 3.0.4 - tslib: 2.8.1 - upper-case: 2.0.2 - content-disposition@0.5.4: dependencies: safe-buffer: 5.2.1 @@ -7424,14 +5476,8 @@ snapshots: dependencies: character-entities: 2.0.2 - decompress-response@6.0.0: - dependencies: - mimic-response: 3.1.0 - deep-eql@5.0.2: {} - defer-to-connect@2.0.1: {} - define-data-property@1.1.4: dependencies: es-define-property: 1.0.1 @@ -7456,12 +5502,8 @@ snapshots: detect-indent@6.1.0: {} - detect-indent@7.0.1: {} - detect-libc@2.0.4: {} - detect-newline@4.0.1: {} - deterministic-object-hash@2.0.2: dependencies: base-64: 1.0.0 @@ -7484,11 +5526,6 @@ snapshots: dlv@1.1.3: {} - dot-case@3.0.4: - dependencies: - no-case: 3.0.4 - tslib: 2.8.1 - dset@3.1.4: {} dunder-proto@1.0.1: @@ -7526,10 +5563,6 @@ snapshots: environment@1.1.0: {} - error-ex@1.3.2: - dependencies: - is-arrayish: 0.2.1 - es-define-property@1.0.1: {} es-errors@1.3.0: {} @@ -7705,18 +5738,8 @@ snapshots: fast-json-stable-stringify@2.1.0: {} - fast-levenshtein@3.0.0: - dependencies: - fastest-levenshtein: 1.0.16 - fast-uri@3.0.6: {} - fast-xml-parser@5.2.5: - dependencies: - strnum: 2.1.1 - - fastest-levenshtein@1.0.16: {} - fastq@1.19.1: dependencies: reusify: 1.1.0 @@ -7752,10 +5775,6 @@ snapshots: locate-path: 5.0.0 path-exists: 4.0.0 - find-yarn-workspace-root@2.0.0: - dependencies: - micromatch: 4.0.8 - flatted@3.3.3: {} flattie@1.1.1: {} @@ -7782,8 +5801,6 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 - form-data-encoder@2.1.4: {} - forwarded@0.2.0: {} fresh@0.5.2: {} @@ -7833,16 +5850,10 @@ snapshots: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 - get-stdin@9.0.0: {} - - get-stream@6.0.1: {} - get-tsconfig@4.10.1: dependencies: resolve-pkg-maps: 1.0.0 - git-hooks-list@3.2.0: {} - github-slugger@2.0.0: {} glob-parent@5.1.2: @@ -7874,22 +5885,6 @@ snapshots: gopd@1.2.0: {} - got@13.0.0: - dependencies: - '@sindresorhus/is': 5.6.0 - '@szmarczak/http-timer': 5.0.1 - cacheable-lookup: 7.0.0 - cacheable-request: 10.2.14 - decompress-response: 6.0.0 - form-data-encoder: 2.1.4 - get-stream: 6.0.1 - http2-wrapper: 2.2.1 - lowercase-keys: 3.0.0 - p-cancelable: 3.0.0 - responselike: 3.0.0 - - graceful-fs@4.2.10: {} - graceful-fs@4.2.11: {} h3@1.15.4: @@ -8105,15 +6100,6 @@ snapshots: property-information: 7.1.0 space-separated-tokens: 2.0.2 - header-case@2.0.4: - dependencies: - capital-case: 1.0.4 - tslib: 2.8.1 - - hosted-git-info@7.0.2: - dependencies: - lru-cache: 10.4.3 - html-escaper@2.0.2: {} html-escaper@3.0.3: {} @@ -8124,17 +6110,6 @@ snapshots: http-cache-semantics@4.2.0: {} - http-call@5.3.0: - dependencies: - content-type: 1.0.5 - debug: 4.4.1(supports-color@8.1.1) - is-retry-allowed: 1.2.0 - is-stream: 2.0.1 - parse-json: 4.0.0 - tunnel-agent: 0.6.0 - transitivePeerDependencies: - - supports-color - http-errors@2.0.0: dependencies: depd: 2.0.0 @@ -8149,11 +6124,6 @@ snapshots: transitivePeerDependencies: - supports-color - http2-wrapper@2.2.1: - dependencies: - quick-lru: 5.1.1 - resolve-alpn: 1.2.1 - human-id@4.1.1: {} husky@9.1.7: {} @@ -8176,8 +6146,6 @@ snapshots: inherits@2.0.4: {} - ini@1.3.8: {} - ink@6.1.0(@types/react@19.1.9)(react@19.1.1): dependencies: '@alcalzone/ansi-tokenize': 0.1.3 @@ -8226,8 +6194,6 @@ snapshots: is-alphabetical: 2.0.1 is-decimal: 2.0.1 - is-arrayish@0.2.1: {} - is-arrayish@0.3.2: {} is-decimal@2.0.1: {} @@ -8266,10 +6232,6 @@ snapshots: is-plain-obj@4.1.0: {} - is-retry-allowed@1.2.0: {} - - is-stream@2.0.1: {} - is-stream@3.0.0: {} is-subdir@1.2.0: @@ -8332,10 +6294,6 @@ snapshots: dependencies: argparse: 2.0.1 - json-buffer@3.0.1: {} - - json-parse-better-errors@1.0.2: {} - json-schema-traverse@1.0.0: {} jsonfile@4.0.0: @@ -8348,10 +6306,6 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 - keyv@4.5.4: - dependencies: - json-buffer: 3.0.1 - kleur@3.0.3: {} kleur@4.1.5: {} @@ -8374,8 +6328,6 @@ snapshots: lodash.startcase@4.4.0: {} - lodash@4.17.21: {} - loglevel@1.9.2: {} longest-streak@3.1.0: {} @@ -8386,12 +6338,6 @@ snapshots: loupe@3.2.0: {} - lower-case@2.0.2: - dependencies: - tslib: 2.8.1 - - lowercase-keys@3.0.0: {} - lru-cache@10.4.3: {} lunr@2.3.9: {} @@ -8909,10 +6855,6 @@ snapshots: mimic-fn@2.1.0: {} - mimic-response@3.1.0: {} - - mimic-response@4.0.0: {} - minimatch@5.1.6: dependencies: brace-expansion: 2.0.2 @@ -8941,10 +6883,6 @@ snapshots: ms@2.1.3: {} - mute-stream@1.0.0: {} - - mute-stream@2.0.0: {} - nanoid@3.3.11: {} negotiator@0.6.3: {} @@ -8955,11 +6893,6 @@ snapshots: dependencies: '@types/nlcst': 2.0.3 - no-case@3.0.4: - dependencies: - lower-case: 2.0.2 - tslib: 2.8.1 - nocache@3.0.4: {} node-fetch-native@1.6.7: {} @@ -9005,16 +6938,8 @@ snapshots: nodejs-polars-linux-x64-musl: 0.18.0 nodejs-polars-win32-x64-msvc: 0.18.0 - normalize-package-data@6.0.2: - dependencies: - hosted-git-info: 7.0.2 - semver: 7.7.2 - validate-npm-package-license: 3.0.4 - normalize-path@3.0.0: {} - normalize-url@8.0.2: {} - npm-check-updates@18.0.1: {} nth-check@2.1.1: @@ -9027,37 +6952,6 @@ snapshots: object-keys@1.1.1: {} - oclif@4.22.6(@types/node@24.2.0): - dependencies: - '@aws-sdk/client-cloudfront': 3.863.0 - '@aws-sdk/client-s3': 3.863.0 - '@inquirer/confirm': 3.2.0 - '@inquirer/input': 2.3.0 - '@inquirer/select': 2.5.0 - '@oclif/core': 4.5.2 - '@oclif/plugin-help': 6.2.32 - '@oclif/plugin-not-found': 3.2.63(@types/node@24.2.0) - '@oclif/plugin-warn-if-update-available': 3.1.46 - ansis: 3.17.0 - async-retry: 1.3.3 - change-case: 4.1.2 - debug: 4.4.1(supports-color@8.1.1) - ejs: 3.1.10 - find-yarn-workspace-root: 2.0.0 - fs-extra: 8.1.0 - github-slugger: 2.0.0 - got: 13.0.0 - lodash: 4.17.21 - normalize-package-data: 6.0.2 - semver: 7.7.2 - sort-package-json: 2.15.1 - tiny-jsonc: 1.0.2 - validate-npm-package-name: 5.0.1 - transitivePeerDependencies: - - '@types/node' - - aws-crt - - supports-color - ofetch@1.4.1: dependencies: destr: 2.0.5 @@ -9092,8 +6986,6 @@ snapshots: outdent@0.5.0: {} - p-cancelable@3.0.0: {} - p-filter@2.1.0: dependencies: p-map: 2.1.0 @@ -9139,11 +7031,6 @@ snapshots: pako@0.2.9: {} - param-case@3.0.4: - dependencies: - dot-case: 3.0.4 - tslib: 2.8.1 - parse-entities@4.0.2: dependencies: '@types/unist': 2.0.11 @@ -9154,11 +7041,6 @@ snapshots: is-decimal: 2.0.1 is-hexadecimal: 2.0.1 - parse-json@4.0.0: - dependencies: - error-ex: 1.3.2 - json-parse-better-errors: 1.0.2 - parse-latin@7.0.0: dependencies: '@types/nlcst': 2.0.3 @@ -9174,18 +7056,8 @@ snapshots: parseurl@1.3.3: {} - pascal-case@3.1.2: - dependencies: - no-case: 3.0.4 - tslib: 2.8.1 - patch-console@2.0.0: {} - path-case@3.0.4: - dependencies: - dot-case: 3.0.4 - tslib: 2.8.1 - path-exists@4.0.0: {} path-key@3.1.1: {} @@ -9240,8 +7112,6 @@ snapshots: property-information@7.1.0: {} - proto-list@1.2.4: {} - proxy-addr@2.0.7: dependencies: forwarded: 0.2.0 @@ -9263,8 +7133,6 @@ snapshots: queue-microtask@1.2.3: {} - quick-lru@5.1.1: {} - quick-lru@7.0.1: {} radix3@1.1.2: {} @@ -9333,10 +7201,6 @@ snapshots: dependencies: regex-utilities: 2.3.0 - registry-auth-token@5.1.0: - dependencies: - '@pnpm/npm-conf': 2.3.1 - rehype-expressive-code@0.41.3: dependencies: expressive-code: 0.41.3 @@ -9440,16 +7304,10 @@ snapshots: requires-port@1.0.0: {} - resolve-alpn@1.2.1: {} - resolve-from@5.0.0: {} resolve-pkg-maps@1.0.0: {} - responselike@3.0.0: - dependencies: - lowercase-keys: 3.0.0 - restore-cursor@4.0.0: dependencies: onetime: 5.1.2 @@ -9482,8 +7340,6 @@ snapshots: retext-stringify: 4.0.0 unified: 11.0.5 - retry@0.13.1: {} - reusify@1.1.0: {} rollup@4.46.2: @@ -9552,12 +7408,6 @@ snapshots: transitivePeerDependencies: - supports-color - sentence-case@3.0.4: - dependencies: - no-case: 3.0.4 - tslib: 2.8.1 - upper-case-first: 2.0.2 - serve-static@1.16.2: dependencies: encodeurl: 2.0.0 @@ -9714,24 +7564,6 @@ snapshots: smol-toml@1.4.1: {} - snake-case@3.0.4: - dependencies: - dot-case: 3.0.4 - tslib: 2.8.1 - - sort-object-keys@1.1.3: {} - - sort-package-json@2.15.1: - dependencies: - detect-indent: 7.0.1 - detect-newline: 4.0.1 - get-stdin: 9.0.0 - git-hooks-list: 3.2.0 - is-plain-obj: 4.1.0 - semver: 7.7.2 - sort-object-keys: 1.1.3 - tinyglobby: 0.2.14 - source-map-js@1.2.1: {} source-map@0.7.6: {} @@ -9743,20 +7575,6 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 - spdx-correct@3.2.0: - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.22 - - spdx-exceptions@2.5.0: {} - - spdx-expression-parse@3.0.1: - dependencies: - spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.22 - - spdx-license-ids@3.0.22: {} - sprintf-js@1.0.3: {} stack-utils@2.0.6: @@ -9815,8 +7633,6 @@ snapshots: strip-bom@3.0.0: {} - strnum@2.1.1: {} - style-to-js@1.1.17: dependencies: style-to-object: 1.0.9 @@ -9854,8 +7670,6 @@ snapshots: tiny-invariant@1.3.3: {} - tiny-jsonc@1.0.2: {} - tinybench@2.9.0: {} tinyexec@0.3.2: {} @@ -9904,10 +7718,6 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - tunnel-agent@0.6.0: - dependencies: - safe-buffer: 5.2.1 - type-fest@0.21.3: {} type-fest@1.4.0: {} @@ -9944,8 +7754,6 @@ snapshots: uncrypto@0.1.3: {} - undici-types@6.21.0: {} - undici-types@7.10.0: {} unicode-properties@1.4.1: @@ -10041,14 +7849,6 @@ snapshots: ofetch: 1.4.1 ufo: 1.6.1 - upper-case-first@2.0.2: - dependencies: - tslib: 2.8.1 - - upper-case@2.0.2: - dependencies: - tslib: 2.8.1 - url-parse@1.5.10: dependencies: querystringify: 2.2.0 @@ -10060,15 +7860,6 @@ snapshots: utils-merge@1.0.1: {} - uuid@9.0.1: {} - - validate-npm-package-license@3.0.4: - dependencies: - spdx-correct: 3.2.0 - spdx-expression-parse: 3.0.1 - - validate-npm-package-name@5.0.1: {} - vary@1.1.2: {} vfile-location@5.0.3: @@ -10196,12 +7987,6 @@ snapshots: wordwrap@1.0.0: {} - wrap-ansi@6.2.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -10244,8 +8029,6 @@ snapshots: dependencies: yoctocolors: 2.1.1 - yoctocolors-cjs@2.1.2: {} - yoctocolors@2.1.1: {} yoga-layout@3.2.1: {} From e771d7bd7f45382fa77e35c6f1de0637017ca1bc Mon Sep 17 00:00:00 2001 From: roll Date: Sat, 9 Aug 2025 12:08:03 +0100 Subject: [PATCH 57/80] Implemented ordering --- cli/components/DataGrid.tsx | 34 +++++++++++++++++------ cli/components/TableGrid.tsx | 54 +++++++++++++++++++++++++++++++++--- 2 files changed, 76 insertions(+), 12 deletions(-) diff --git a/cli/components/DataGrid.tsx b/cli/components/DataGrid.tsx index 4d624319..5e0d562b 100644 --- a/cli/components/DataGrid.tsx +++ b/cli/components/DataGrid.tsx @@ -2,11 +2,14 @@ import { Box, Text } from "ink" import React from "react" const MIN_COLUMN_WIDTH = 15 +export type Order = { col: number; dir: "asc" | "desc" } export function DataGrid(props: { data: Record[] + col?: number + order?: Order }) { - const { data } = props + const { data, col, order } = props const colNames = Object.keys(data[0] ?? {}) const colWidth = Math.min( @@ -16,6 +19,10 @@ export function DataGrid(props: { const tableWidth = colNames.length * colWidth + const selectIndex = col ? col - 1 : -1 + const orderIndex = order?.col ? order?.col - 1 : -1 + const orderSign = order?.dir === "desc" ? " ▲" : " ▼" + return ( - {colNames.map(name => ( + {colNames.map((name, index) => ( - {name} + + {name} + {index === orderIndex ? orderSign : " "} + ))} - {data.map((row, index) => ( - - {colNames.map(name => ( + {data.map((row, rowIndex) => ( + + {colNames.map((name, index) => ( diff --git a/cli/components/TableGrid.tsx b/cli/components/TableGrid.tsx index 132595c5..4cd44f82 100644 --- a/cli/components/TableGrid.tsx +++ b/cli/components/TableGrid.tsx @@ -2,21 +2,48 @@ import type { Table } from "dpkit" import { useApp, useInput } from "ink" import { useEffect, useState } from "react" import React from "react" +import type { Order } from "./DataGrid.tsx" import { DataGrid } from "./DataGrid.tsx" const PAGE_SIZE = 10 +type Data = Record[] export function TableGrid(props: { table: Table }) { const { table } = props const { exit } = useApp() + const [col, setCol] = useState(0) const [page, setPage] = useState(1) - const [data, setData] = useState[]>([]) + const [order, setOrder] = useState() + const [data, setData] = useState([]) - const handlePageChange = async (page: number) => { + const handleColChange = async (col: number) => { + if (col === 0) return + if (col > table.columns.length) return + + setCol(col) + } + + const handleOrderChange = async (order?: Order) => { + setOrder(order) + + if (order) { + handlePageChange(1, order) + } + } + + const handlePageChange = async (page: number, order?: Order) => { if (page === 0) return + let ldf = table + if (order) { + const name = table.columns[order.col - 1] + if (name) { + ldf = ldf.sort(name, order.dir === "desc") + } + } + const offset = (page - 1) * PAGE_SIZE - const df = await table.slice(offset, PAGE_SIZE).collect() + const df = await ldf.slice(offset, PAGE_SIZE).collect() const data = df.toRecords() if (data.length) { @@ -41,7 +68,26 @@ export function TableGrid(props: { table: Table }) { if (key.downArrow || input === "j") { handlePageChange(page + 1) } + + if (key.leftArrow || input === "h") { + handleColChange(col - 1) + } + + if (key.rightArrow || input === "l") { + handleColChange(col + 1) + } + + if (key.return) { + let nextOrder: Order | undefined = { col, dir: "desc" } + + if (order?.col === col) { + if (order?.dir === "desc") nextOrder = { col, dir: "asc" } + if (order?.dir === "asc") nextOrder = undefined + } + + handleOrderChange(nextOrder) + } }) - return + return } From 9d199c674914c21248ab6ebacf120adbfb6398bb Mon Sep 17 00:00:00 2001 From: roll Date: Sat, 9 Aug 2025 12:16:45 +0100 Subject: [PATCH 58/80] Fixed csv header --- csv/dialect/infer.spec.ts | 3 ++- csv/dialect/infer.ts | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/csv/dialect/infer.spec.ts b/csv/dialect/infer.spec.ts index d46c16e6..3d9222b2 100644 --- a/csv/dialect/infer.spec.ts +++ b/csv/dialect/infer.spec.ts @@ -32,7 +32,8 @@ describe("inferCsvDialect", () => { }) }) - it("should infer header false when no header present", async () => { + // TODO: it gives false positives + it.skip("should infer header false when no header present", async () => { const path = await writeTempFile("1,english\n2,中文\n3,español") const dialect = await inferCsvDialect({ path }) diff --git a/csv/dialect/infer.ts b/csv/dialect/infer.ts index c0be8726..e2df3fb3 100644 --- a/csv/dialect/infer.ts +++ b/csv/dialect/infer.ts @@ -36,9 +36,10 @@ export async function inferCsvDialect( // dialect.lineTerminator = result.lineTerminator //} - if (!result.hasHeader) { - dialect.header = false - } + // TODO: it gives false positives + //if (!result.hasHeader) { + // dialect.header = false + //} } return dialect From f80ec162498f4e3d3df81deb6197ee8f450eb13d Mon Sep 17 00:00:00 2001 From: roll Date: Sat, 9 Aug 2025 12:47:25 +0100 Subject: [PATCH 59/80] Added shortcuts --- cli/components/TableGrid.tsx | 32 +++++++++++++++++++++++++++++--- cli/package.json | 4 +++- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/cli/components/TableGrid.tsx b/cli/components/TableGrid.tsx index 4cd44f82..81f9cfaf 100644 --- a/cli/components/TableGrid.tsx +++ b/cli/components/TableGrid.tsx @@ -1,5 +1,6 @@ import type { Table } from "dpkit" import { useApp, useInput } from "ink" +import { Box, Text } from "ink" import { useEffect, useState } from "react" import React from "react" import type { Order } from "./DataGrid.tsx" @@ -57,7 +58,7 @@ export function TableGrid(props: { table: Table }) { }, [table]) useInput((input, key) => { - if (input === "q") { + if (key.escape || input === "q") { exit() } @@ -77,7 +78,7 @@ export function TableGrid(props: { table: Table }) { handleColChange(col + 1) } - if (key.return) { + if (key.return || input === "o") { let nextOrder: Order | undefined = { col, dir: "desc" } if (order?.col === col) { @@ -89,5 +90,30 @@ export function TableGrid(props: { table: Table }) { } }) - return + return ( + + + + + ) +} + +function Controls() { + return ( + + + + + + + ) +} + +function Control(props: { button: string; description: string }) { + return ( + + {props.button} + — {props.description} + + ) } diff --git a/cli/package.json b/cli/package.json index 1ab6b97c..177764df 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,7 +1,9 @@ { "name": "@dpkit/cli", "type": "module", - "bin": { "dp": "./build/scripts/run.js" }, + "bin": { + "dp": "./build/scripts/run.js" + }, "version": "0.2.0", "license": "MIT", "author": "Evgeny Karev", From 23d7e406777500b8da2a4460e6374fbe0546440b Mon Sep 17 00:00:00 2001 From: roll Date: Sat, 9 Aug 2025 13:07:02 +0100 Subject: [PATCH 60/80] Added stats command --- cli/commands/table/stats.tsx | 34 ++++++++++++++++++++++++++++++++++ cli/components/DataGrid.tsx | 4 ++-- 2 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 cli/commands/table/stats.tsx diff --git a/cli/commands/table/stats.tsx b/cli/commands/table/stats.tsx new file mode 100644 index 00000000..358938e8 --- /dev/null +++ b/cli/commands/table/stats.tsx @@ -0,0 +1,34 @@ +import { Command } from "@oclif/core" +import { readTable } from "dpkit" +import { render } from "ink" +import React from "react" +import { TableGrid } from "../../components/TableGrid.tsx" +import * as options from "../../options/index.ts" +import * as params from "../../params/index.ts" + +export default class ReadTable extends Command { + static override description = "Read a table from a local or remote path" + + static override args = { + path: params.requriedTablePath, + } + + static override flags = { + json: options.json, + } + + public async run() { + const { args, flags } = await this.parse(ReadTable) + + const table = await readTable({ path: args.path }) + const df = await table.collect() + const stats = df.describe() + + if (flags.json) { + this.logJson(stats) + return + } + + render() + } +} diff --git a/cli/components/DataGrid.tsx b/cli/components/DataGrid.tsx index 5e0d562b..398da95a 100644 --- a/cli/components/DataGrid.tsx +++ b/cli/components/DataGrid.tsx @@ -30,7 +30,7 @@ export function DataGrid(props: { borderColor="green" width={tableWidth} > - + {colNames.map((name, index) => ( {data.map((row, rowIndex) => ( - + {colNames.map((name, index) => ( Date: Sat, 9 Aug 2025 13:41:48 +0100 Subject: [PATCH 61/80] Added dialect options --- cli/commands/table/read.tsx | 6 +- cli/commands/table/stats.tsx | 5 +- cli/options/dialect.ts | 178 +++++++++++++++++++++++++++++++++++ cli/options/index.ts | 1 + 4 files changed, 187 insertions(+), 3 deletions(-) create mode 100644 cli/options/dialect.ts diff --git a/cli/commands/table/read.tsx b/cli/commands/table/read.tsx index 4150025e..acaa1037 100644 --- a/cli/commands/table/read.tsx +++ b/cli/commands/table/read.tsx @@ -1,5 +1,5 @@ import { Command } from "@oclif/core" -import { readTable } from "dpkit" +import { type Dialect, readTable } from "dpkit" import { render } from "ink" import React from "react" import { TableGrid } from "../../components/TableGrid.tsx" @@ -14,13 +14,15 @@ export default class ReadTable extends Command { } static override flags = { + ...options.dialectOptions, json: options.json, } public async run() { const { args, flags } = await this.parse(ReadTable) - const table = await readTable({ path: args.path }) + const dialect = options.createDialectFromFlags(flags) + const table = await readTable({ path: args.path, dialect }) if (flags.json) { const df = await table.slice(0, 10).collect() diff --git a/cli/commands/table/stats.tsx b/cli/commands/table/stats.tsx index 358938e8..b1a36642 100644 --- a/cli/commands/table/stats.tsx +++ b/cli/commands/table/stats.tsx @@ -14,13 +14,16 @@ export default class ReadTable extends Command { } static override flags = { + ...options.dialectOptions, json: options.json, } public async run() { const { args, flags } = await this.parse(ReadTable) - const table = await readTable({ path: args.path }) + const dialect = options.createDialectFromFlags(flags) + const table = await readTable({ path: args.path, dialect }) + const df = await table.collect() const stats = df.describe() diff --git a/cli/options/dialect.ts b/cli/options/dialect.ts new file mode 100644 index 00000000..d5db981e --- /dev/null +++ b/cli/options/dialect.ts @@ -0,0 +1,178 @@ +import { Flags } from "@oclif/core" +import type { Dialect } from "dpkit" + +export const header = Flags.boolean({ + description: "whether the file includes a header row with field names", + default: true, +}) + +export const headerRows = Flags.string({ + description: + "comma-separated row numbers (zero-based) that are considered header rows", +}) + +export const headerJoin = Flags.string({ + description: "character used to join multi-line headers", +}) + +export const commentRows = Flags.string({ + description: "comma-separated rows to be excluded from the data (zero-based)", +}) + +export const commentChar = Flags.string({ + description: "character sequence denoting the start of a comment line", +}) + +export const delimiter = Flags.string({ + description: "character used to separate fields in the data", + char: "d", +}) + +export const lineTerminator = Flags.string({ + description: "character sequence used to terminate rows", +}) + +export const quoteChar = Flags.string({ + description: "character used to quote fields", +}) + +export const doubleQuote = Flags.boolean({ + description: + "whether a sequence of two quote characters represents a single quote", +}) + +export const escapeChar = Flags.string({ + description: "character used to escape the delimiter or quote characters", +}) + +export const nullSequence = Flags.string({ + description: + "character sequence representing null or missing values in the data", +}) + +export const skipInitialSpace = Flags.boolean({ + description: + "whether to ignore whitespace immediately following the delimiter", +}) + +export const property = Flags.string({ + description: "for JSON data, the property name containing the data array", +}) + +export const itemType = Flags.string({ + description: "the type of data item in the source", + options: ["array", "object"], +}) + +export const itemKeys = Flags.string({ + description: + "comma-separated object properties to extract as values (for object-based data items)", +}) + +export const sheetNumber = Flags.integer({ + description: "for spreadsheet data, the sheet number to read (zero-based)", +}) + +export const sheetName = Flags.string({ + description: "for spreadsheet data, the sheet name to read", +}) + +export const table = Flags.string({ + description: "for database sources, the table name to read", +}) + +export const dialectOptions = { + delimiter, + header, + headerRows, + headerJoin, + commentRows, + commentChar, + quoteChar, + doubleQuote, + escapeChar, + nullSequence, + skipInitialSpace, + property, + itemType, + itemKeys, + sheetNumber, + table, +} + +// TODO: rebase on types flags +export function createDialectFromFlags(flags: any) { + let dialect: Dialect | undefined + + if (flags.delimiter) { + dialect = { ...dialect, delimiter: flags.delimiter } + } + + if (flags.header === false) { + dialect = { ...dialect, header: flags.header } + } + + if (flags.headerRows) { + dialect = { + ...dialect, + headerRows: flags.headerRows.split(",").map(Number), + } + } + + if (flags.headerJoin) { + dialect = { ...dialect, headerJoin: flags.headerJoin } + } + + if (flags.commentRows) { + dialect = { + ...dialect, + commentRows: flags.commentRows.split(",").map(Number), + } + } + + if (flags.commentChar) { + dialect = { ...dialect, commentChar: flags.commentChar } + } + + if (flags.quoteChar) { + dialect = { ...dialect, quoteChar: flags.quoteChar } + } + + if (flags.doubleQuote) { + dialect = { ...dialect, doubleQuote: flags.doubleQuote } + } + + if (flags.escapeChar) { + dialect = { ...dialect, escapeChar: flags.escapeChar } + } + + if (flags.nullSequence) { + dialect = { ...dialect, nullSequence: flags.nullSequence } + } + + if (flags.skipInitialSpace) { + dialect = { ...dialect, skipInitialSpace: flags.skipInitialSpace } + } + + if (flags.property) { + dialect = { ...dialect, property: flags.property } + } + + if (flags.itemType) { + dialect = { ...dialect, itemType: flags.itemType } + } + + if (flags.itemKeys) { + dialect = { ...dialect, itemKeys: flags.itemKeys.split(",") } + } + + if (flags.sheetNumber) { + dialect = { ...dialect, sheetNumber: flags.sheetNumber } + } + + if (flags.table) { + dialect = { ...dialect, table: flags.table } + } + + return dialect +} diff --git a/cli/options/index.ts b/cli/options/index.ts index be0bdeb6..d0edf789 100644 --- a/cli/options/index.ts +++ b/cli/options/index.ts @@ -1 +1,2 @@ export * from "./json.ts" +export * from "./dialect.ts" From 75c15aaa0b152fa59fcb5c4bbcd27c7c3e075b9e Mon Sep 17 00:00:00 2001 From: roll Date: Sat, 9 Aug 2025 13:44:35 +0100 Subject: [PATCH 62/80] Renamed stats to describe --- cli/commands/table/{stats.tsx => describe.tsx} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename cli/commands/table/{stats.tsx => describe.tsx} (80%) diff --git a/cli/commands/table/stats.tsx b/cli/commands/table/describe.tsx similarity index 80% rename from cli/commands/table/stats.tsx rename to cli/commands/table/describe.tsx index b1a36642..4e7bc690 100644 --- a/cli/commands/table/stats.tsx +++ b/cli/commands/table/describe.tsx @@ -6,8 +6,8 @@ import { TableGrid } from "../../components/TableGrid.tsx" import * as options from "../../options/index.ts" import * as params from "../../params/index.ts" -export default class ReadTable extends Command { - static override description = "Read a table from a local or remote path" +export default class DescribeTable extends Command { + static override description = "Describe a table from a local or remote path" static override args = { path: params.requriedTablePath, @@ -19,7 +19,7 @@ export default class ReadTable extends Command { } public async run() { - const { args, flags } = await this.parse(ReadTable) + const { args, flags } = await this.parse(DescribeTable) const dialect = options.createDialectFromFlags(flags) const table = await readTable({ path: args.path, dialect }) From 98d0c52969253ce1e04c4b0c90cb1984cde3b42c Mon Sep 17 00:00:00 2001 From: roll Date: Sat, 9 Aug 2025 13:56:30 +0100 Subject: [PATCH 63/80] Added autocomplete support --- cli/.oclifrc.js | 1 + cli/package.json | 1 + pnpm-lock.yaml | 16 ++++++++++++++++ 3 files changed, 18 insertions(+) diff --git a/cli/.oclifrc.js b/cli/.oclifrc.js index 09fe279f..726cf92b 100644 --- a/cli/.oclifrc.js +++ b/cli/.oclifrc.js @@ -2,4 +2,5 @@ export default { bin: "dp", commands: "./commands", topicSeparator: " ", + plugins: ["@oclif/plugin-autocomplete"], } diff --git a/cli/package.json b/cli/package.json index 177764df..0ac0e98e 100644 --- a/cli/package.json +++ b/cli/package.json @@ -28,6 +28,7 @@ }, "dependencies": { "@oclif/core": "^4.5.2", + "@oclif/plugin-autocomplete": "^3.2.34", "dpkit": "workspace:*", "ink": "^6.1.0", "react": "^19.1.1" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6cc2a6ce..c83c25de 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -90,6 +90,9 @@ importers: '@oclif/core': specifier: ^4.5.2 version: 4.5.2 + '@oclif/plugin-autocomplete': + specifier: ^3.2.34 + version: 3.2.34 dpkit: specifier: workspace:* version: link:../dpkit @@ -1128,6 +1131,10 @@ packages: resolution: {integrity: sha512-eQcKyrEcDYeZJKu4vUWiu0ii/1Gfev6GF4FsLSgNez5/+aQyAUCjg3ZWlurf491WiYZTXCWyKAxyPWk8DKv2MA==} engines: {node: '>=18.0.0'} + '@oclif/plugin-autocomplete@3.2.34': + resolution: {integrity: sha512-KhbPcNjitAU7jUojMXJ3l7duWVub0L0pEr3r3bLrpJBNuIJhoIJ7p56Ropcb7OMH2xcaz5B8HGq56cTOe1FHEg==} + engines: {node: '>=18.0.0'} + '@oslojs/encoding@1.1.0': resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} @@ -4723,6 +4730,15 @@ snapshots: wordwrap: 1.0.0 wrap-ansi: 7.0.0 + '@oclif/plugin-autocomplete@3.2.34': + dependencies: + '@oclif/core': 4.5.2 + ansis: 3.17.0 + debug: 4.4.1(supports-color@8.1.1) + ejs: 3.1.10 + transitivePeerDependencies: + - supports-color + '@oslojs/encoding@1.1.0': {} '@pagefind/darwin-arm64@1.3.0': From 768a97b1a1a657c29e1f8d4b18f8116a3f5c3089 Mon Sep 17 00:00:00 2001 From: roll Date: Sat, 9 Aug 2025 14:21:57 +0100 Subject: [PATCH 64/80] Renamed read to explore --- cli/commands/table/{read.tsx => explore.tsx} | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) rename cli/commands/table/{read.tsx => explore.tsx} (76%) diff --git a/cli/commands/table/read.tsx b/cli/commands/table/explore.tsx similarity index 76% rename from cli/commands/table/read.tsx rename to cli/commands/table/explore.tsx index acaa1037..9b33c1f7 100644 --- a/cli/commands/table/read.tsx +++ b/cli/commands/table/explore.tsx @@ -1,13 +1,13 @@ import { Command } from "@oclif/core" -import { type Dialect, readTable } from "dpkit" +import { readTable } from "dpkit" import { render } from "ink" import React from "react" import { TableGrid } from "../../components/TableGrid.tsx" import * as options from "../../options/index.ts" import * as params from "../../params/index.ts" -export default class ReadTable extends Command { - static override description = "Read a table from a local or remote path" +export default class ExploreTable extends Command { + static override description = "Explore a table from a local or remote path" static override args = { path: params.requriedTablePath, @@ -19,7 +19,7 @@ export default class ReadTable extends Command { } public async run() { - const { args, flags } = await this.parse(ReadTable) + const { args, flags } = await this.parse(ExploreTable) const dialect = options.createDialectFromFlags(flags) const table = await readTable({ path: args.path, dialect }) From 819609ea2a232f7bd81f53561eba432f317e8540 Mon Sep 17 00:00:00 2001 From: roll Date: Sat, 9 Aug 2025 14:46:41 +0100 Subject: [PATCH 65/80] Bootstrapped table validate --- arrow/package.json | 2 +- cli/commands/table/validate.tsx | 34 ++++++++++ cli/components/ErrorGrid.tsx | 33 ++++++++++ cli/package.json | 4 +- csv/package.json | 2 +- docs/package.json | 2 +- inline/package.json | 2 +- json/package.json | 2 +- parquet/package.json | 2 +- pnpm-lock.yaml | 112 ++++++++++++++++++-------------- table/package.json | 2 +- 11 files changed, 140 insertions(+), 57 deletions(-) create mode 100644 cli/commands/table/validate.tsx create mode 100644 cli/components/ErrorGrid.tsx diff --git a/arrow/package.json b/arrow/package.json index 8a851c70..e49a99d6 100644 --- a/arrow/package.json +++ b/arrow/package.json @@ -27,7 +27,7 @@ "@dpkit/file": "workspace:*", "@dpkit/table": "workspace:*", "csv-sniffer": "^0.1.1", - "nodejs-polars": "^0.18.0" + "nodejs-polars": "^0.21.0" }, "devDependencies": { "@dpkit/test": "workspace:*" diff --git a/cli/commands/table/validate.tsx b/cli/commands/table/validate.tsx new file mode 100644 index 00000000..e788a84a --- /dev/null +++ b/cli/commands/table/validate.tsx @@ -0,0 +1,34 @@ +import { Command } from "@oclif/core" +import { validateTable } from "dpkit" +import { render } from "ink" +import React from "react" +import { ErrorGrid } from "../../components/ErrorGrid.tsx" +import * as options from "../../options/index.ts" +import * as params from "../../params/index.ts" + +export default class ExploreTable extends Command { + static override description = "Explore a table from a local or remote path" + + static override args = { + path: params.requriedTablePath, + } + + static override flags = { + ...options.dialectOptions, + json: options.json, + } + + public async run() { + const { args, flags } = await this.parse(ExploreTable) + + const dialect = options.createDialectFromFlags(flags) + const { errors } = await validateTable({ path: args.path, dialect }) + + if (flags.json) { + this.logJson(errors) + return + } + + render() + } +} diff --git a/cli/components/ErrorGrid.tsx b/cli/components/ErrorGrid.tsx new file mode 100644 index 00000000..cebee4a5 --- /dev/null +++ b/cli/components/ErrorGrid.tsx @@ -0,0 +1,33 @@ +import type { TableError } from "dpkit" +import { Box, Text } from "ink" +import { DataFrame } from "nodejs-polars" +import React from "react" +import { objectEntries } from "ts-extras" +import { TableGrid } from "./TableGrid.tsx" + +export function ErrorGrid(props: { errors: TableError[] }) { + const { errors } = props + + const errorsByType = Object.groupBy(errors, error => error.type) + const selectErrors = errorsByType["cell/type"] + + if (!selectErrors) { + return null + } + + const table = DataFrame(selectErrors).lazy() + + return ( + + + {objectEntries(errorsByType).map(([type, errors]) => ( + + {type} + {errors.length} + + ))} + + + + ) +} diff --git a/cli/package.json b/cli/package.json index 0ac0e98e..e998f991 100644 --- a/cli/package.json +++ b/cli/package.json @@ -31,7 +31,9 @@ "@oclif/plugin-autocomplete": "^3.2.34", "dpkit": "workspace:*", "ink": "^6.1.0", - "react": "^19.1.1" + "nodejs-polars": "^0.21.0", + "react": "^19.1.1", + "ts-extras": "^0.14.0" }, "devDependencies": { "@types/react": "19.1.9", diff --git a/csv/package.json b/csv/package.json index 9b9d4d33..b6a9d9c7 100644 --- a/csv/package.json +++ b/csv/package.json @@ -27,7 +27,7 @@ "@dpkit/file": "workspace:*", "@dpkit/table": "workspace:*", "csv-sniffer": "^0.1.1", - "nodejs-polars": "^0.18.0" + "nodejs-polars": "^0.21.0" }, "devDependencies": { "@dpkit/test": "workspace:*" diff --git a/docs/package.json b/docs/package.json index cf49ff14..22721e3a 100644 --- a/docs/package.json +++ b/docs/package.json @@ -16,7 +16,7 @@ "starlight-typedoc": "0.21.3", "typedoc": "0.28.9", "typedoc-plugin-markdown": "4.8.0", - "nodejs-polars": "0.18.0", + "nodejs-polars": "0.21.0", "tempy": "3.1.0" } } diff --git a/inline/package.json b/inline/package.json index bd57aae5..af37d5b8 100644 --- a/inline/package.json +++ b/inline/package.json @@ -23,7 +23,7 @@ "build": "tsc" }, "dependencies": { - "nodejs-polars": "^0.18.0", + "nodejs-polars": "^0.21.0", "@dpkit/core": "workspace:*", "@dpkit/table": "workspace:*" } diff --git a/json/package.json b/json/package.json index 4c3d93f3..a38ea6a9 100644 --- a/json/package.json +++ b/json/package.json @@ -27,7 +27,7 @@ "@dpkit/file": "workspace:*", "@dpkit/table": "workspace:*", "csv-sniffer": "^0.1.1", - "nodejs-polars": "^0.18.0" + "nodejs-polars": "^0.21.0" }, "devDependencies": { "@dpkit/test": "workspace:*" diff --git a/parquet/package.json b/parquet/package.json index f955bf05..674ca57d 100644 --- a/parquet/package.json +++ b/parquet/package.json @@ -27,7 +27,7 @@ "@dpkit/file": "workspace:*", "@dpkit/table": "workspace:*", "csv-sniffer": "^0.1.1", - "nodejs-polars": "^0.18.0" + "nodejs-polars": "^0.21.0" }, "devDependencies": { "@dpkit/test": "workspace:*" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c83c25de..1abdf9d4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,8 +57,8 @@ importers: specifier: ^0.1.1 version: 0.1.1 nodejs-polars: - specifier: ^0.18.0 - version: 0.18.0 + specifier: ^0.21.0 + version: 0.21.0 devDependencies: '@dpkit/test': specifier: workspace:* @@ -99,9 +99,15 @@ importers: ink: specifier: ^6.1.0 version: 6.1.0(@types/react@19.1.9)(react@19.1.1) + nodejs-polars: + specifier: ^0.21.0 + version: 0.21.0 react: specifier: ^19.1.1 version: 19.1.1 + ts-extras: + specifier: ^0.14.0 + version: 0.14.0 devDependencies: '@types/react': specifier: 19.1.9 @@ -140,8 +146,8 @@ importers: specifier: ^0.1.1 version: 0.1.1 nodejs-polars: - specifier: ^0.18.0 - version: 0.18.0 + specifier: ^0.21.0 + version: 0.21.0 devDependencies: '@dpkit/test': specifier: workspace:* @@ -171,8 +177,8 @@ importers: specifier: workspace:* version: link:../dpkit nodejs-polars: - specifier: 0.18.0 - version: 0.18.0 + specifier: 0.21.0 + version: 0.21.0 sharp: specifier: 0.34.2 version: 0.34.2 @@ -293,8 +299,8 @@ importers: specifier: workspace:* version: link:../table nodejs-polars: - specifier: ^0.18.0 - version: 0.18.0 + specifier: ^0.21.0 + version: 0.21.0 json: dependencies: @@ -311,8 +317,8 @@ importers: specifier: ^0.1.1 version: 0.1.1 nodejs-polars: - specifier: ^0.18.0 - version: 0.18.0 + specifier: ^0.21.0 + version: 0.21.0 devDependencies: '@dpkit/test': specifier: workspace:* @@ -335,8 +341,8 @@ importers: specifier: ^0.1.1 version: 0.1.1 nodejs-polars: - specifier: ^0.18.0 - version: 0.18.0 + specifier: ^0.21.0 + version: 0.21.0 devDependencies: '@dpkit/test': specifier: workspace:* @@ -348,8 +354,8 @@ importers: specifier: workspace:* version: link:../core nodejs-polars: - specifier: ^0.18.0 - version: 0.18.0 + specifier: ^0.21.0 + version: 0.21.0 test: dependencies: @@ -2815,56 +2821,56 @@ packages: node-mock-http@1.0.2: resolution: {integrity: sha512-zWaamgDUdo9SSLw47we78+zYw/bDr5gH8pH7oRRs8V3KmBtu8GLgGIbV2p/gRPd3LWpEOpjQj7X1FOU3VFMJ8g==} - nodejs-polars-android-arm64@0.18.0: - resolution: {integrity: sha512-ksmL8X2xsMkI9WMlzRw7Mt7csIDfNJVDlyybSDMMAfO1YWfC2aCFUroFc8UnXVK+8bIZXB7W+k1ZzTRhtSxPsQ==} + nodejs-polars-android-arm64@0.21.0: + resolution: {integrity: sha512-X2Y6iulWGJttGxOIqcZjSJ256TW4FJH/otkBdA6qnmS8jLTD6oDmrxvoMXEOroIBUOTWLC4wqFCeVIDHFMyUDQ==} engines: {node: '>= 16'} cpu: [arm64] os: [android] - nodejs-polars-darwin-arm64@0.18.0: - resolution: {integrity: sha512-Hs8pbyPZCvOLSVoPx6X07vmYu1NmGAvLFYVHry945alesjsMOXZ//9D8psKOsZAh8WRU36CHXHSS18+RxdzLyA==} + nodejs-polars-darwin-arm64@0.21.0: + resolution: {integrity: sha512-0QUeH7VW4hnojHBm5fUMfoWdWHfpt313cspK9sAjkhWtKtXEHs9Ade2Xqg7a2T2XTRpvcakhdQ4SkG6Wq9mJRg==} engines: {node: '>= 16'} cpu: [arm64] os: [darwin] - nodejs-polars-darwin-x64@0.18.0: - resolution: {integrity: sha512-AmLHJ4a4ufTAFohr7b7cQmPvn1Owl6AQBwwows447GfwEO65lu0PSUcmJbeiGJcLtjM9Dji6uiJdadRnGXC4sw==} + nodejs-polars-darwin-x64@0.21.0: + resolution: {integrity: sha512-xJh3JGWn3ZMAKwpFpv0EA8Z8IoiMgXs2WfE6ibTfLxVIHGJMZoI0eEGTnrQaPIkX+bXfiqEWtCcQrgQXfu4sew==} engines: {node: '>= 16'} cpu: [x64] os: [darwin] - nodejs-polars-linux-arm64-gnu@0.18.0: - resolution: {integrity: sha512-lqOA0b6XXd/8D0q4tfrlr9g+awN/lz1WoWlDJXlYDCXeEdiPzodHuKOROi/J8cwcM6RpiWLWviFkJ2FkxZBv7w==} + nodejs-polars-linux-arm64-gnu@0.21.0: + resolution: {integrity: sha512-UUVfc7Kjiwpdsh9YoIP/jTUSMWpEmbJk7/LWCEZAZsOiQKbHriPKNdzoG+4zhaNsu/mPDgOKZyXjY2OI5JEUYg==} engines: {node: '>= 16'} cpu: [arm64] os: [linux] - nodejs-polars-linux-arm64-musl@0.18.0: - resolution: {integrity: sha512-lylaOGB3c94UBpsDt4XtrS2RJymgICfAnMVlbvN+2bftejh7blDaYTJeLvZr4POHfltpWeSXjl28Zck7goDJCA==} + nodejs-polars-linux-arm64-musl@0.21.0: + resolution: {integrity: sha512-L26Xs1PAThiAcz9Om9KtEdyhreaFPhgdH0SI0MXATS63bLsIYK12CKC3DkEn+dwqqt/UBT8ApHnqQjeiluWJ2g==} engines: {node: '>= 16'} cpu: [arm64] os: [linux] - nodejs-polars-linux-x64-gnu@0.18.0: - resolution: {integrity: sha512-Gk6HJba0Hrea6yjDEj0u4jArWgry+s8/17g646vJdlcAWoaQYXDdfCseObGjtTqajVkFf2msrn76KWZ2Nadq5A==} + nodejs-polars-linux-x64-gnu@0.21.0: + resolution: {integrity: sha512-zvYOo8GeQBN+U9ZyXEEDSwjzmQyZIvGydmD5IYUX5iR6SwFrJ6EiYx6Lr8Pv4QPdYH9DQXxIb44xgst8FCjIWA==} engines: {node: '>= 16'} cpu: [x64] os: [linux] - nodejs-polars-linux-x64-musl@0.18.0: - resolution: {integrity: sha512-KAb72TGTphCUfTZj1mMyDAJ+/3pgifAucWjdCr6aO3Jw4XHJVu6mMRhfDUZgIGWilpwADwPLHnqPjs+qydOoCg==} + nodejs-polars-linux-x64-musl@0.21.0: + resolution: {integrity: sha512-FfvZjx4AuH+zCLNoM9OhlrQyeAEsh0gzGE6UDIvc+/FqsV2ISkn6NLSvwhWj9lvDK+8mZZWCTlxIj/aLqWq2Pw==} engines: {node: '>= 16'} cpu: [x64] os: [linux] - nodejs-polars-win32-x64-msvc@0.18.0: - resolution: {integrity: sha512-jQJST6yDmY/q4kBCCErSaxNrJClL7Dpk7IsdoPrFHXaFzL25nmDxfgow7VWDaEiE45jNL7TXANAgDs7dT61H2Q==} + nodejs-polars-win32-x64-msvc@0.21.0: + resolution: {integrity: sha512-+KAyDvfeEV4naz2XdGGCZlGIv5Jd4dxm7vSvlL63bUeSk0yrPdbCRUCIwsFLV3dpsJDmBCiwBwJpQe7sT4atUA==} engines: {node: '>= 16'} cpu: [x64] os: [win32] - nodejs-polars@0.18.0: - resolution: {integrity: sha512-TN0InAOCzXS2Nrpr+8Sh9oAvILBjIoKMscz9P5XDJ+Q2F6EMb39Um9gwRzJ2kmEqYsufw6NwsafgbY41xKwVWg==} + nodejs-polars@0.21.0: + resolution: {integrity: sha512-EBPp1YlRWcghkFMYZ7eXoGm0UhbA9AHUuBRaseZrtww/F10yphyXdgjN+0riJJjL+XFs5AFXc3k5IQjoobs0BQ==} engines: {node: '>= 18'} normalize-path@3.0.0: @@ -3519,6 +3525,10 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + ts-extras@0.14.0: + resolution: {integrity: sha512-hxaLXbdiDxTAMES3MLwdQhIY7B8+ZaS9GXht9aEIv1dVi2lB8C6syN6UmkCjdXpNzk/aBi3fOs/4NV9bo5+PtQ==} + engines: {node: '>=18'} + tsconfck@3.1.6: resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==} engines: {node: ^18 || >=20} @@ -6919,40 +6929,40 @@ snapshots: node-mock-http@1.0.2: {} - nodejs-polars-android-arm64@0.18.0: + nodejs-polars-android-arm64@0.21.0: optional: true - nodejs-polars-darwin-arm64@0.18.0: + nodejs-polars-darwin-arm64@0.21.0: optional: true - nodejs-polars-darwin-x64@0.18.0: + nodejs-polars-darwin-x64@0.21.0: optional: true - nodejs-polars-linux-arm64-gnu@0.18.0: + nodejs-polars-linux-arm64-gnu@0.21.0: optional: true - nodejs-polars-linux-arm64-musl@0.18.0: + nodejs-polars-linux-arm64-musl@0.21.0: optional: true - nodejs-polars-linux-x64-gnu@0.18.0: + nodejs-polars-linux-x64-gnu@0.21.0: optional: true - nodejs-polars-linux-x64-musl@0.18.0: + nodejs-polars-linux-x64-musl@0.21.0: optional: true - nodejs-polars-win32-x64-msvc@0.18.0: + nodejs-polars-win32-x64-msvc@0.21.0: optional: true - nodejs-polars@0.18.0: + nodejs-polars@0.21.0: optionalDependencies: - nodejs-polars-android-arm64: 0.18.0 - nodejs-polars-darwin-arm64: 0.18.0 - nodejs-polars-darwin-x64: 0.18.0 - nodejs-polars-linux-arm64-gnu: 0.18.0 - nodejs-polars-linux-arm64-musl: 0.18.0 - nodejs-polars-linux-x64-gnu: 0.18.0 - nodejs-polars-linux-x64-musl: 0.18.0 - nodejs-polars-win32-x64-msvc: 0.18.0 + nodejs-polars-android-arm64: 0.21.0 + nodejs-polars-darwin-arm64: 0.21.0 + nodejs-polars-darwin-x64: 0.21.0 + nodejs-polars-linux-arm64-gnu: 0.21.0 + nodejs-polars-linux-arm64-musl: 0.21.0 + nodejs-polars-linux-x64-gnu: 0.21.0 + nodejs-polars-linux-x64-musl: 0.21.0 + nodejs-polars-win32-x64-msvc: 0.21.0 normalize-path@3.0.0: {} @@ -7721,6 +7731,10 @@ snapshots: trough@2.2.0: {} + ts-extras@0.14.0: + dependencies: + type-fest: 4.41.0 + tsconfck@3.1.6(typescript@5.9.2): optionalDependencies: typescript: 5.9.2 diff --git a/table/package.json b/table/package.json index 95a020d1..86ecd30d 100644 --- a/table/package.json +++ b/table/package.json @@ -23,7 +23,7 @@ "build": "tsc" }, "dependencies": { - "nodejs-polars": "^0.18.0", + "nodejs-polars": "^0.21.0", "@dpkit/core": "workspace:*" } } From e74f28bd982136126b6d26676330a2d1d764e57e Mon Sep 17 00:00:00 2001 From: roll Date: Sat, 9 Aug 2025 15:05:09 +0100 Subject: [PATCH 66/80] Bootstrapped validate --- cli/commands/table/validate.tsx | 14 ++++++++++++- cli/components/ErrorGrid.tsx | 33 ++++++++++++++++------------- cli/package.json | 1 + pnpm-lock.yaml | 37 +++++++++++++++++++++++++++++++++ 4 files changed, 70 insertions(+), 15 deletions(-) diff --git a/cli/commands/table/validate.tsx b/cli/commands/table/validate.tsx index e788a84a..d3571d8f 100644 --- a/cli/commands/table/validate.tsx +++ b/cli/commands/table/validate.tsx @@ -29,6 +29,18 @@ export default class ExploreTable extends Command { return } - render() + render( + , + ) } } diff --git a/cli/components/ErrorGrid.tsx b/cli/components/ErrorGrid.tsx index cebee4a5..71818bfc 100644 --- a/cli/components/ErrorGrid.tsx +++ b/cli/components/ErrorGrid.tsx @@ -1,31 +1,36 @@ import type { TableError } from "dpkit" -import { Box, Text } from "ink" +import { Box } from "ink" +import SelectInput from "ink-select-input" import { DataFrame } from "nodejs-polars" +import { useState } from "react" import React from "react" -import { objectEntries } from "ts-extras" +import { objectKeys } from "ts-extras" import { TableGrid } from "./TableGrid.tsx" export function ErrorGrid(props: { errors: TableError[] }) { const { errors } = props + const [errorType, setErrorType] = useState(errors[0]?.type ?? "") const errorsByType = Object.groupBy(errors, error => error.type) - const selectErrors = errorsByType["cell/type"] - - if (!selectErrors) { - return null - } + // @ts-ignore + const selectErrors = errorsByType[errorType] const table = DataFrame(selectErrors).lazy() + const handleSelect = async (item: any) => { + setErrorType(item.value) + } + return ( - - {objectEntries(errorsByType).map(([type, errors]) => ( - - {type} - {errors.length} - - ))} + + ({ + label: type, + value: type, + }))} + /> diff --git a/cli/package.json b/cli/package.json index e998f991..faf71c96 100644 --- a/cli/package.json +++ b/cli/package.json @@ -31,6 +31,7 @@ "@oclif/plugin-autocomplete": "^3.2.34", "dpkit": "workspace:*", "ink": "^6.1.0", + "ink-select-input": "^6.2.0", "nodejs-polars": "^0.21.0", "react": "^19.1.1", "ts-extras": "^0.14.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1abdf9d4..df221f46 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -99,6 +99,9 @@ importers: ink: specifier: ^6.1.0 version: 6.1.0(@types/react@19.1.9)(react@19.1.1) + ink-select-input: + specifier: ^6.2.0 + version: 6.2.0(ink@6.1.0(@types/react@19.1.9)(react@19.1.1))(react@19.1.1) nodejs-polars: specifier: ^0.21.0 version: 0.21.0 @@ -2074,6 +2077,10 @@ packages: fflate@0.8.2: resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} + figures@6.1.0: + resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} + engines: {node: '>=18'} + filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} @@ -2314,6 +2321,13 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + ink-select-input@6.2.0: + resolution: {integrity: sha512-304fZXxkpYxJ9si5lxRCaX01GNlmPBgOZumXXRnPYbHW/iI31cgQynqk2tRypGLOF1cMIwPUzL2LSm6q4I5rQQ==} + engines: {node: '>=18'} + peerDependencies: + ink: '>=5.0.0' + react: '>=18.0.0' + ink@6.1.0: resolution: {integrity: sha512-YQ+lbMD79y3FBAJXXZnuRajLEgaMFp102361eY5NrBIEVCi9oFo7gNZU4z2LBWlcjZFiTt7jetlkIbKCCH4KJA==} engines: {node: '>=20'} @@ -2416,6 +2430,10 @@ packages: resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} engines: {node: '>=4'} + 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'} @@ -3508,6 +3526,10 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + to-rotated@1.0.0: + resolution: {integrity: sha512-KsEID8AfgUy+pxVRLsWp0VzCa69wxzUDZnzGbyIST/bcgcrMvTYoFBX/QORH4YApoD89EDuUovx4BTdpOn319Q==} + engines: {node: '>=18'} + toidentifier@1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} @@ -5776,6 +5798,10 @@ snapshots: fflate@0.8.2: {} + figures@6.1.0: + dependencies: + is-unicode-supported: 2.1.0 + filelist@1.0.4: dependencies: minimatch: 5.1.6 @@ -6172,6 +6198,13 @@ snapshots: inherits@2.0.4: {} + ink-select-input@6.2.0(ink@6.1.0(@types/react@19.1.9)(react@19.1.1))(react@19.1.1): + dependencies: + figures: 6.1.0 + ink: 6.1.0(@types/react@19.1.9)(react@19.1.1) + react: 19.1.1 + to-rotated: 1.0.0 + ink@6.1.0(@types/react@19.1.9)(react@19.1.1): dependencies: '@alcalzone/ansi-tokenize': 0.1.3 @@ -6264,6 +6297,8 @@ snapshots: dependencies: better-path-resolve: 1.0.0 + is-unicode-supported@2.1.0: {} + is-windows@1.0.2: {} is-wsl@2.2.0: @@ -7721,6 +7756,8 @@ snapshots: dependencies: is-number: 7.0.0 + to-rotated@1.0.0: {} + toidentifier@1.0.1: {} totalist@3.0.1: {} From ae1747ef4360adaf4f145b429a0bfd46ec5662f3 Mon Sep 17 00:00:00 2001 From: roll Date: Sat, 9 Aug 2025 15:14:40 +0100 Subject: [PATCH 67/80] Removed bin package --- bin/README.md | 3 --- bin/package.json | 5 ----- pnpm-lock.yaml | 2 -- pnpm-workspace.yaml | 1 - 4 files changed, 11 deletions(-) delete mode 100644 bin/README.md delete mode 100644 bin/package.json diff --git a/bin/README.md b/bin/README.md deleted file mode 100644 index 9fbb48a6..00000000 --- a/bin/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# @dpkit/bin - -dpkit is a fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames. It supports various formats like CSV, JSON, and Parquet and integrates with data platforms such as CKAN, Zenodo, and GitHub. For more information, please visit the [documentation portal](https://dpkit.datist.io). diff --git a/bin/package.json b/bin/package.json deleted file mode 100644 index 17ff3cdc..00000000 --- a/bin/package.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "@dpkit/bin", - "type": "module", - "private": true -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index df221f46..da40abf4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -64,8 +64,6 @@ importers: specifier: workspace:* version: link:../test - bin: {} - camtrap: dependencies: '@dpkit/core': diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 1c30c515..717b560a 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,7 +1,6 @@ dangerouslyAllowAllBuilds: true packages: - arrow - - bin - camtrap - ckan - cli From f7f499927438c88139b6af1c63c62d7223c0b186 Mon Sep 17 00:00:00 2001 From: roll Date: Sat, 9 Aug 2025 15:48:08 +0100 Subject: [PATCH 68/80] Added ConvertTable command --- cli/commands/table/convert.tsx | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 cli/commands/table/convert.tsx diff --git a/cli/commands/table/convert.tsx b/cli/commands/table/convert.tsx new file mode 100644 index 00000000..a77f635b --- /dev/null +++ b/cli/commands/table/convert.tsx @@ -0,0 +1,30 @@ +import { Command } from "@oclif/core" +import { readTable, saveTable } from "dpkit" +import * as options from "../../options/index.ts" +import * as params from "../../params/index.ts" + +export default class ConvertTable extends Command { + static override description = + "Convert a table from a local or remote source path to a target path" + + static override args = { + path: params.requriedTablePath, + toPath: params.requriedTablePath, + } + + // TODO: support toDialectOptions + static override flags = { + ...options.dialectOptions, + } + + public async run() { + const { args, flags } = await this.parse(ConvertTable) + + const dialect = options.createDialectFromFlags(flags) + const table = await readTable({ path: args.path, dialect }) + + await saveTable(table, { path: args.toPath }) + + this.log(`Converted table from ${args.path} to ${args.toPath}`) + } +} From 93a7ce68d8a769015c1d8c4e9e5f1538030b3c70 Mon Sep 17 00:00:00 2001 From: roll Date: Sat, 9 Aug 2025 16:00:08 +0100 Subject: [PATCH 69/80] Added more table commands --- cli/commands/table/chat.tsx | 22 ++++++++++++++++++++++ cli/commands/table/query.tsx | 22 ++++++++++++++++++++++ cli/commands/table/script.tsx | 28 ++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 cli/commands/table/chat.tsx create mode 100644 cli/commands/table/query.tsx create mode 100644 cli/commands/table/script.tsx diff --git a/cli/commands/table/chat.tsx b/cli/commands/table/chat.tsx new file mode 100644 index 00000000..506d4cf8 --- /dev/null +++ b/cli/commands/table/chat.tsx @@ -0,0 +1,22 @@ +import { Command } from "@oclif/core" +//import { readTable } from "dpkit" +import * as options from "../../options/index.ts" +import * as params from "../../params/index.ts" + +export default class ChatTable extends Command { + static override description = + "Start an AI chat sesstion for a table from a local or remote path" + + static override args = { + path: params.requriedTablePath, + } + + static override flags = { + ...options.dialectOptions, + } + + public async run() { + //const { args, flags } = await this.parse(ChatTable) + throw new Error("Not implemented") + } +} diff --git a/cli/commands/table/query.tsx b/cli/commands/table/query.tsx new file mode 100644 index 00000000..acd278a9 --- /dev/null +++ b/cli/commands/table/query.tsx @@ -0,0 +1,22 @@ +import { Command } from "@oclif/core" +//import { readTable } from "dpkit" +import * as options from "../../options/index.ts" +import * as params from "../../params/index.ts" + +export default class QueryTable extends Command { + static override description = + "Start a querying session for a table from a local or remote path" + + static override args = { + path: params.requriedTablePath, + } + + static override flags = { + ...options.dialectOptions, + } + + public async run() { + //const { args, flags } = await this.parse(QueryTable) + throw new Error("Not implemented") + } +} diff --git a/cli/commands/table/script.tsx b/cli/commands/table/script.tsx new file mode 100644 index 00000000..102dd237 --- /dev/null +++ b/cli/commands/table/script.tsx @@ -0,0 +1,28 @@ +import repl from "node:repl" +import { Command } from "@oclif/core" +import { readTable } from "dpkit" +import * as options from "../../options/index.ts" +import * as params from "../../params/index.ts" + +export default class ScriptTable extends Command { + static override description = + "Start a scripting session for a table from a local or remote path" + + static override args = { + path: params.requriedTablePath, + } + + static override flags = { + ...options.dialectOptions, + } + + public async run() { + const { args, flags } = await this.parse(ScriptTable) + + const dialect = options.createDialectFromFlags(flags) + const table = await readTable({ path: args.path, dialect }) + + const session = repl.start({ prompt: "dp> " }) + session.context.table = table + } +} From 97efb7273a5922ae2cda0febd0c019cfb285e7ba Mon Sep 17 00:00:00 2001 From: roll Date: Sat, 9 Aug 2025 16:24:09 +0100 Subject: [PATCH 70/80] Removed chat command --- cli/commands/table/chat.tsx | 22 ---------------------- 1 file changed, 22 deletions(-) delete mode 100644 cli/commands/table/chat.tsx diff --git a/cli/commands/table/chat.tsx b/cli/commands/table/chat.tsx deleted file mode 100644 index 506d4cf8..00000000 --- a/cli/commands/table/chat.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { Command } from "@oclif/core" -//import { readTable } from "dpkit" -import * as options from "../../options/index.ts" -import * as params from "../../params/index.ts" - -export default class ChatTable extends Command { - static override description = - "Start an AI chat sesstion for a table from a local or remote path" - - static override args = { - path: params.requriedTablePath, - } - - static override flags = { - ...options.dialectOptions, - } - - public async run() { - //const { args, flags } = await this.parse(ChatTable) - throw new Error("Not implemented") - } -} From 900cbde02b195e0079e0b5fbd741a37fb6e80a39 Mon Sep 17 00:00:00 2001 From: roll Date: Mon, 11 Aug 2025 11:02:22 +0100 Subject: [PATCH 71/80] Fixed tests --- arrow/table/save.ts | 11 ++++++----- csv/table/save.ts | 22 ++++++++++++---------- json/table/save.ts | 3 +++ parquet/table/save.ts | 14 ++++++++------ 4 files changed, 29 insertions(+), 21 deletions(-) diff --git a/arrow/table/save.ts b/arrow/table/save.ts index 2a8135e5..087e5143 100644 --- a/arrow/table/save.ts +++ b/arrow/table/save.ts @@ -1,12 +1,13 @@ import type { SaveTableOptions, Table } from "@dpkit/table" -// TODO: so currently, there is not streaming method? -// TODO: so currently, nodejs-polars uses sync sink/write functions?? +// TODO: rebase on sinkIPC when it is available +// https://github.com/pola-rs/nodejs-polars/issues/353 export async function saveArrowTable(table: Table, options: SaveTableOptions) { - const df = await table.collect() + const { path } = options - df.writeIPC(options?.path) + const df = await table.collect() + df.writeIPC(path) - return options.path + return path } diff --git a/csv/table/save.ts b/csv/table/save.ts index 12ab6377..bc2bdbb9 100644 --- a/csv/table/save.ts +++ b/csv/table/save.ts @@ -1,15 +1,17 @@ import type { SaveTableOptions, Table } from "@dpkit/table" -// TODO: so currently, nodejs-polars uses sync sink/write functions?? - export async function saveCsvTable(table: Table, options: SaveTableOptions) { - table.sinkCSV(options?.path, { - maintainOrder: true, - includeHeader: options?.dialect?.header ?? true, - separator: options?.dialect?.delimiter ?? ",", - //lineTerminator: options?.dialect?.lineTerminator ?? "\r\n", - quoteChar: options?.dialect?.quoteChar ?? '"', - }) + const { path } = options + + await table + .sinkCSV(path, { + maintainOrder: true, + includeHeader: options.dialect?.header ?? true, + separator: options.dialect?.delimiter ?? ",", + //lineTerminator: options.dialect?.lineTerminator ?? "\r\n", + quoteChar: options.dialect?.quoteChar ?? '"', + }) + .collect() - return options.path + return path } diff --git a/json/table/save.ts b/json/table/save.ts index eae803b6..4298d6e2 100644 --- a/json/table/save.ts +++ b/json/table/save.ts @@ -3,6 +3,9 @@ import { saveFile } from "@dpkit/file" import type { SaveTableOptions, Table } from "@dpkit/table" import { decodeJsonBuffer, encodeJsonBuffer } from "../buffer/index.ts" +// TODO: rebase on sinkJSON when it is available +// https://github.com/pola-rs/nodejs-polars/issues/353 + export async function saveJsonTable(table: Table, options: SaveTableOptions) { return await saveTable(table, { ...options, isLines: false }) } diff --git a/parquet/table/save.ts b/parquet/table/save.ts index f0c3fb44..4fae1f09 100644 --- a/parquet/table/save.ts +++ b/parquet/table/save.ts @@ -1,14 +1,16 @@ import type { SaveTableOptions, Table } from "@dpkit/table" -// TODO: so currently, nodejs-polars uses sync sink/write functions?? - export async function saveParquetTable( table: Table, options: SaveTableOptions, ) { - table.sinkParquet(options?.path, { - maintainOrder: true, - }) + const { path } = options + + await table + .sinkParquet(path, { + maintainOrder: true, + }) + .collect() - return options.path + return path } From dc9c48ac12fcb41b2419b92df43b36c1a5fd13ba Mon Sep 17 00:00:00 2001 From: roll Date: Mon, 11 Aug 2025 11:25:29 +0100 Subject: [PATCH 72/80] Added changesets --- .changeset/breezy-knives-greet.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .changeset/breezy-knives-greet.md diff --git a/.changeset/breezy-knives-greet.md b/.changeset/breezy-knives-greet.md new file mode 100644 index 00000000..cc0035bd --- /dev/null +++ b/.changeset/breezy-knives-greet.md @@ -0,0 +1,27 @@ +--- +"@dpkit/camtrap": minor +"@dpkit/datahub": minor +"@dpkit/parquet": minor +"@dpkit/extend": minor +"@dpkit/folder": minor +"@dpkit/github": minor +"@dpkit/inline": minor +"@dpkit/zenodo": minor +"@dpkit/arrow": minor +"dpkit": minor +"@dpkit/excel": minor +"@dpkit/table": minor +"@dpkit/ckan": minor +"@dpkit/core": minor +"@dpkit/file": minor +"@dpkit/json": minor +"@dpkit/test": minor +"@dpkit/cli": minor +"@dpkit/csv": minor +"@dpkit/ods": minor +"@dpkit/zip": minor +"@dpkit/db": minor +"@dpkit/ui": minor +--- + +Added Json/Jsonl/Arrow/Parquet support; Bootstrapped CLI From baaade02d9a373ccfe29e3d4761eed42328d9537 Mon Sep 17 00:00:00 2001 From: roll Date: Mon, 11 Aug 2025 11:54:04 +0100 Subject: [PATCH 73/80] Bootstrapped CLI topic docs --- docs/astro.config.ts | 1 + docs/content/docs/cli/commands.md | 54 +++++++++++++++++++++++++++ docs/content/docs/cli/dialect.md | 9 +++++ docs/content/docs/cli/installation.md | 21 +++++++++++ docs/content/docs/cli/package.md | 9 +++++ docs/content/docs/cli/resource.md | 9 +++++ docs/content/docs/cli/schema.md | 9 +++++ docs/content/docs/cli/table.md | 9 +++++ 8 files changed, 121 insertions(+) create mode 100644 docs/content/docs/cli/commands.md create mode 100644 docs/content/docs/cli/dialect.md create mode 100644 docs/content/docs/cli/installation.md create mode 100644 docs/content/docs/cli/package.md create mode 100644 docs/content/docs/cli/resource.md create mode 100644 docs/content/docs/cli/schema.md create mode 100644 docs/content/docs/cli/table.md diff --git a/docs/astro.config.ts b/docs/astro.config.ts index 14d5119f..8332cbe0 100644 --- a/docs/astro.config.ts +++ b/docs/astro.config.ts @@ -68,6 +68,7 @@ export default defineConfig({ sidebar: [ { label: "Overview", autogenerate: { directory: "overview" } }, { label: "Guides", autogenerate: { directory: "guides" } }, + { label: "Command-Line", autogenerate: { directory: "cli" } }, { label: "API Reference", collapsed: true, diff --git a/docs/content/docs/cli/commands.md b/docs/content/docs/cli/commands.md new file mode 100644 index 00000000..9df4e3e8 --- /dev/null +++ b/docs/content/docs/cli/commands.md @@ -0,0 +1,54 @@ +--- +title: Commands +sidebar: + order: 2 +--- + +:::note +After instalation, the dpkit's command-line tool is available in your terminal under name `dp` +::: + +## Command categories + +The CLI commands are organized into categories named after the main objects they support: + +- package +- resource +- dialect +- schema +- table + +Each category has its own commands for example the `table` category: + +- `dp table convert` +- `dp table describe` +- `dp table explore` +- `dp table query` +- `dp table validate` + +## Working with data packages + +Usually non-package command support the `-p/--package` and `-r/--resource` options to specify the datapackage file path and a resource name to access an object inside a data package. + +For example, we can explore a table using this command: + +```bash +dp table explore table.csv +``` + +Or this command using an interactive mode: + +```bash +dp table explore -p datapackage.json +# it will ask you to select a resource +``` + +Or this command using both the datapackage file path and the resource name making it non-interactive similarly to the plain path-based command: + +```bash +dp table explore -p datapackage.json -r table +``` + +:::tip +When you use the `-p` option, the CLI will open any supported Data Package source including Zenodo, Ckan, and others. +::: diff --git a/docs/content/docs/cli/dialect.md b/docs/content/docs/cli/dialect.md new file mode 100644 index 00000000..027e36c4 --- /dev/null +++ b/docs/content/docs/cli/dialect.md @@ -0,0 +1,9 @@ +--- +title: Dialect +sidebar: + order: 5 +--- + +:::caution +This article is under development. +::: diff --git a/docs/content/docs/cli/installation.md b/docs/content/docs/cli/installation.md new file mode 100644 index 00000000..dd12a5eb --- /dev/null +++ b/docs/content/docs/cli/installation.md @@ -0,0 +1,21 @@ +--- +title: Installation +sidebar: + order: 1 +--- + +:::tip +CLI binary distributions are in under development. Soon you will be able to install the CLI without using Node and its package manager. +::: + +You can install the CLI using this command: + +```bash +npm install @dpkit/cli +``` + +After that you can use the CLI binary: + +```bash +dp --version +``` diff --git a/docs/content/docs/cli/package.md b/docs/content/docs/cli/package.md new file mode 100644 index 00000000..1eea7ba2 --- /dev/null +++ b/docs/content/docs/cli/package.md @@ -0,0 +1,9 @@ +--- +title: Package +sidebar: + order: 3 +--- + +:::caution +This article is under development. +::: diff --git a/docs/content/docs/cli/resource.md b/docs/content/docs/cli/resource.md new file mode 100644 index 00000000..9f66f3b9 --- /dev/null +++ b/docs/content/docs/cli/resource.md @@ -0,0 +1,9 @@ +--- +title: Resource +sidebar: + order: 4 +--- + +:::caution +This article is under development. +::: diff --git a/docs/content/docs/cli/schema.md b/docs/content/docs/cli/schema.md new file mode 100644 index 00000000..eff29a19 --- /dev/null +++ b/docs/content/docs/cli/schema.md @@ -0,0 +1,9 @@ +--- +title: Schema +sidebar: + order: 6 +--- + +:::caution +This article is under development. +::: diff --git a/docs/content/docs/cli/table.md b/docs/content/docs/cli/table.md new file mode 100644 index 00000000..95e7eaeb --- /dev/null +++ b/docs/content/docs/cli/table.md @@ -0,0 +1,9 @@ +--- +title: Table +sidebar: + order: 7 +--- + +:::caution +This article is under development. +::: From c32678dda7b658ef05b8b50e91d51f27cac3fb10 Mon Sep 17 00:00:00 2001 From: roll Date: Mon, 11 Aug 2025 11:59:16 +0100 Subject: [PATCH 74/80] Updated guide sidebar labels --- docs/content/docs/guides/arrow.md | 1 + docs/content/docs/guides/csv.md | 1 + docs/content/docs/guides/inline.md | 1 + docs/content/docs/guides/json.md | 1 + docs/content/docs/guides/jupyter.md | 1 + docs/content/docs/guides/parquet.md | 1 + docs/content/docs/guides/table.md | 1 + 7 files changed, 7 insertions(+) diff --git a/docs/content/docs/guides/arrow.md b/docs/content/docs/guides/arrow.md index 159c8020..87a6ce5d 100644 --- a/docs/content/docs/guides/arrow.md +++ b/docs/content/docs/guides/arrow.md @@ -1,6 +1,7 @@ --- title: Working with Arrow sidebar: + label: Arrow order: 3 --- diff --git a/docs/content/docs/guides/csv.md b/docs/content/docs/guides/csv.md index 43f2bd8f..d8e4bf48 100644 --- a/docs/content/docs/guides/csv.md +++ b/docs/content/docs/guides/csv.md @@ -1,6 +1,7 @@ --- title: Working with CSV sidebar: + label: CSV order: 1 --- Comprehensive CSV and TSV file handling with automatic format detection, advanced header processing, and high-performance data operations. diff --git a/docs/content/docs/guides/inline.md b/docs/content/docs/guides/inline.md index fa9d865d..0ed632e2 100644 --- a/docs/content/docs/guides/inline.md +++ b/docs/content/docs/guides/inline.md @@ -1,6 +1,7 @@ --- title: Working with inline data sidebar: + label: Inline data order: 5 --- diff --git a/docs/content/docs/guides/json.md b/docs/content/docs/guides/json.md index 70c96c3d..62b1aa8b 100644 --- a/docs/content/docs/guides/json.md +++ b/docs/content/docs/guides/json.md @@ -1,6 +1,7 @@ --- title: Working with JSON sidebar: + label: JSON order: 2 --- diff --git a/docs/content/docs/guides/jupyter.md b/docs/content/docs/guides/jupyter.md index eba5c3c8..117171d6 100644 --- a/docs/content/docs/guides/jupyter.md +++ b/docs/content/docs/guides/jupyter.md @@ -1,6 +1,7 @@ --- title: Using dpkit in Jupyter Notebooks sidebar: + label: Jupyter Notebooks order: 10 --- diff --git a/docs/content/docs/guides/parquet.md b/docs/content/docs/guides/parquet.md index 272c7712..36634cd1 100644 --- a/docs/content/docs/guides/parquet.md +++ b/docs/content/docs/guides/parquet.md @@ -1,6 +1,7 @@ --- title: Working with Parquet sidebar: + label: Parquet order: 4 --- diff --git a/docs/content/docs/guides/table.md b/docs/content/docs/guides/table.md index 3c47f954..a996fc20 100644 --- a/docs/content/docs/guides/table.md +++ b/docs/content/docs/guides/table.md @@ -1,6 +1,7 @@ --- title: Working with tabular data sidebar: + label: Tabular data order: 6 --- From e45b6742872cfe336fbf70f1c84ed6f2675814c3 Mon Sep 17 00:00:00 2001 From: roll Date: Mon, 11 Aug 2025 12:07:40 +0100 Subject: [PATCH 75/80] Rebased on toPath in table convert --- cli/commands/table/convert.tsx | 6 +++--- cli/options/index.ts | 1 + cli/options/path.ts | 6 ++++++ 3 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 cli/options/path.ts diff --git a/cli/commands/table/convert.tsx b/cli/commands/table/convert.tsx index a77f635b..ffec0539 100644 --- a/cli/commands/table/convert.tsx +++ b/cli/commands/table/convert.tsx @@ -9,11 +9,11 @@ export default class ConvertTable extends Command { static override args = { path: params.requriedTablePath, - toPath: params.requriedTablePath, } // TODO: support toDialectOptions static override flags = { + toPath: options.requriedToPath, ...options.dialectOptions, } @@ -23,8 +23,8 @@ export default class ConvertTable extends Command { const dialect = options.createDialectFromFlags(flags) const table = await readTable({ path: args.path, dialect }) - await saveTable(table, { path: args.toPath }) + await saveTable(table, { path: flags.toPath }) - this.log(`Converted table from ${args.path} to ${args.toPath}`) + this.log(`Converted table from ${args.path} to ${flags.toPath}`) } } diff --git a/cli/options/index.ts b/cli/options/index.ts index d0edf789..e8bb2ae1 100644 --- a/cli/options/index.ts +++ b/cli/options/index.ts @@ -1,2 +1,3 @@ export * from "./json.ts" export * from "./dialect.ts" +export * from "./path.ts" diff --git a/cli/options/path.ts b/cli/options/path.ts new file mode 100644 index 00000000..4f82a69c --- /dev/null +++ b/cli/options/path.ts @@ -0,0 +1,6 @@ +import { Flags } from "@oclif/core" + +export const requriedToPath = Flags.string({ + description: "a local output path", + required: true, +}) From 1ebda945bc094326d9a448ff55f4af333fdee9fd Mon Sep 17 00:00:00 2001 From: roll Date: Mon, 11 Aug 2025 14:46:39 +0100 Subject: [PATCH 76/80] Fixed cli build --- cli/package.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cli/package.json b/cli/package.json index faf71c96..2af5480f 100644 --- a/cli/package.json +++ b/cli/package.json @@ -22,7 +22,9 @@ "cli" ], "scripts": { - "build": "tsc && cp assets/* build/scripts && chmod +x ./build/scripts/*.js", + "build": "tsc && pnpm build:copy && pnpm build:mode", + "build:copy": "cp assets/* build/scripts && cp package.json build && cp .oclifrc.js build", + "build:mode": "chmod +x ./build/scripts/*", "dev": "./scripts/dev.ts", "run": "./scripts/run.ts" }, From 0b8f0e9e562f0ab2b7ee3b9a3e63f6612364e4a8 Mon Sep 17 00:00:00 2001 From: roll Date: Mon, 11 Aug 2025 15:10:47 +0100 Subject: [PATCH 77/80] Separate entrypoints/scripts --- .gitignore | 1 + arrow/package.json | 2 +- camtrap/package.json | 2 +- ckan/package.json | 2 +- cli/{assets => entrypoints}/dev.cmd | 0 cli/{scripts => entrypoints}/dev.ts | 0 cli/{assets => entrypoints}/run.cmd | 0 cli/{scripts => entrypoints}/run.ts | 0 cli/package.json | 19 ++++-- cli/scripts/compile.ts | 21 +++++++ core/package.json | 2 +- csv/package.json | 2 +- datahub/package.json | 2 +- db/package.json | 2 +- dpkit/package.json | 2 +- excel/package.json | 2 +- extend/package.json | 2 +- file/package.json | 2 +- folder/package.json | 2 +- github/package.json | 2 +- inline/package.json | 2 +- json/package.json | 2 +- ods/package.json | 2 +- package.json | 1 + parquet/package.json | 2 +- pnpm-lock.yaml | 95 +++++++++++++++++++++++++++++ table/package.json | 2 +- test/package.json | 2 +- ui/package.json | 2 +- zenodo/package.json | 2 +- zip/package.json | 2 +- 31 files changed, 153 insertions(+), 28 deletions(-) rename cli/{assets => entrypoints}/dev.cmd (100%) rename cli/{scripts => entrypoints}/dev.ts (100%) rename cli/{assets => entrypoints}/run.cmd (100%) rename cli/{scripts => entrypoints}/run.ts (100%) create mode 100644 cli/scripts/compile.ts diff --git a/.gitignore b/.gitignore index eac9ce06..33dea10d 100644 --- a/.gitignore +++ b/.gitignore @@ -60,6 +60,7 @@ pids .vscode/ .wrangler/ build/ +compile/ dist/ .astro/ /docs/content/docs/reference/ diff --git a/arrow/package.json b/arrow/package.json index e49a99d6..338466ef 100644 --- a/arrow/package.json +++ b/arrow/package.json @@ -1,8 +1,8 @@ { "name": "@dpkit/arrow", "type": "module", - "exports": "./build/index.js", "version": "0.1.0", + "exports": "./build/index.js", "license": "MIT", "author": "Evgeny Karev", "repository": "https://github.com/datisthq/dpkit", diff --git a/camtrap/package.json b/camtrap/package.json index b1f8e9fe..c165f8a5 100644 --- a/camtrap/package.json +++ b/camtrap/package.json @@ -1,8 +1,8 @@ { "name": "@dpkit/camtrap", "type": "module", - "exports": "./build/index.js", "version": "0.5.1", + "exports": "./build/index.js", "license": "MIT", "author": "Evgeny Karev", "repository": "https://github.com/datisthq/dpkit", diff --git a/ckan/package.json b/ckan/package.json index a82ae74f..258d1db9 100644 --- a/ckan/package.json +++ b/ckan/package.json @@ -1,8 +1,8 @@ { "name": "@dpkit/ckan", "type": "module", - "exports": "./build/index.js", "version": "0.6.0", + "exports": "./build/index.js", "license": "MIT", "author": "Evgeny Karev", "repository": "https://github.com/datisthq/dpkit", diff --git a/cli/assets/dev.cmd b/cli/entrypoints/dev.cmd similarity index 100% rename from cli/assets/dev.cmd rename to cli/entrypoints/dev.cmd diff --git a/cli/scripts/dev.ts b/cli/entrypoints/dev.ts similarity index 100% rename from cli/scripts/dev.ts rename to cli/entrypoints/dev.ts diff --git a/cli/assets/run.cmd b/cli/entrypoints/run.cmd similarity index 100% rename from cli/assets/run.cmd rename to cli/entrypoints/run.cmd diff --git a/cli/scripts/run.ts b/cli/entrypoints/run.ts similarity index 100% rename from cli/scripts/run.ts rename to cli/entrypoints/run.ts diff --git a/cli/package.json b/cli/package.json index 2af5480f..afc8973c 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,10 +1,16 @@ { "name": "@dpkit/cli", "type": "module", + "version": "0.2.0", "bin": { - "dp": "./build/scripts/run.js" + "dp": "./build/entrypoints/run.js" + }, + "oclif": { + "bin": "dp", + "commands": "./commands", + "topicSeparator": " ", + "plugins": ["@oclif/plugin-autocomplete"] }, - "version": "0.2.0", "license": "MIT", "author": "Evgeny Karev", "repository": "https://github.com/datisthq/dpkit", @@ -23,10 +29,11 @@ ], "scripts": { "build": "tsc && pnpm build:copy && pnpm build:mode", - "build:copy": "cp assets/* build/scripts && cp package.json build && cp .oclifrc.js build", - "build:mode": "chmod +x ./build/scripts/*", - "dev": "./scripts/dev.ts", - "run": "./scripts/run.ts" + "build:copy": "cp entrypoints/*.cmd build/entrypoints && cp package.json build && cp .oclifrc.js build", + "build:mode": "chmod +x ./build/entrypoints/*.js", + "compile": "node ./scripts/compile.ts", + "dev": "node ./scripts/dev.ts", + "run": "node ./scripts/run.ts" }, "dependencies": { "@oclif/core": "^4.5.2", diff --git a/cli/scripts/compile.ts b/cli/scripts/compile.ts new file mode 100644 index 00000000..6b919e34 --- /dev/null +++ b/cli/scripts/compile.ts @@ -0,0 +1,21 @@ +import { execa } from "execa" +const $ = execa({ preferLocal: true, stdout: ["inherit"] }) + +// Cleanup + +await $`rm -rf compile` +await $`mkdir compile` + +// Prepare dependencies + +await $` +pnpm deploy compile +--legacy +--production +--filter cli +--config.node-linker=hoisted +` + +// Compile application + +await $({ cwd: "compile" })`deno compile --allow-all entrypoints/run.ts` diff --git a/core/package.json b/core/package.json index 7c6effd6..94f8d9e1 100644 --- a/core/package.json +++ b/core/package.json @@ -1,8 +1,8 @@ { "name": "@dpkit/core", "type": "module", - "exports": "./build/index.js", "version": "0.7.0", + "exports": "./build/index.js", "license": "MIT", "author": "Evgeny Karev", "repository": "https://github.com/datisthq/dpkit", diff --git a/csv/package.json b/csv/package.json index b6a9d9c7..46fb56ec 100644 --- a/csv/package.json +++ b/csv/package.json @@ -1,8 +1,8 @@ { "name": "@dpkit/csv", "type": "module", - "exports": "./build/index.js", "version": "0.3.0", + "exports": "./build/index.js", "license": "MIT", "author": "Evgeny Karev", "repository": "https://github.com/datisthq/dpkit", diff --git a/datahub/package.json b/datahub/package.json index 1df9042c..3cea5813 100644 --- a/datahub/package.json +++ b/datahub/package.json @@ -1,8 +1,8 @@ { "name": "@dpkit/datahub", "type": "module", - "exports": "./build/index.js", "version": "0.7.0", + "exports": "./build/index.js", "license": "MIT", "author": "Evgeny Karev", "repository": "https://github.com/datisthq/dpkit", diff --git a/db/package.json b/db/package.json index 90319885..69064351 100644 --- a/db/package.json +++ b/db/package.json @@ -1,7 +1,7 @@ { "name": "@dpkit/db", - "type": "module", "exports": "./build/index.js", + "type": "module", "version": "0.2.0", "license": "MIT", "author": "Evgeny Karev", diff --git a/dpkit/package.json b/dpkit/package.json index e9638501..ac58137f 100644 --- a/dpkit/package.json +++ b/dpkit/package.json @@ -1,8 +1,8 @@ { "name": "dpkit", "type": "module", - "exports": "./build/index.js", "version": "0.5.0", + "exports": "./build/index.js", "license": "MIT", "author": "Evgeny Karev", "repository": "https://github.com/datisthq/dpkit", diff --git a/excel/package.json b/excel/package.json index 4c94b49c..c69b35d3 100644 --- a/excel/package.json +++ b/excel/package.json @@ -1,8 +1,8 @@ { "name": "@dpkit/excel", "type": "module", - "exports": "./build/index.js", "version": "0.2.0", + "exports": "./build/index.js", "license": "MIT", "author": "Evgeny Karev", "repository": "https://github.com/datisthq/dpkit", diff --git a/extend/package.json b/extend/package.json index 20bb7210..1168970e 100644 --- a/extend/package.json +++ b/extend/package.json @@ -1,8 +1,8 @@ { "name": "@dpkit/extend", "type": "module", - "exports": "./build/index.js", "version": "0.2.0", + "exports": "./build/index.js", "license": "MIT", "author": "Evgeny Karev", "repository": "https://github.com/datisthq/dpkit", diff --git a/file/package.json b/file/package.json index 1dcdf17c..9f1db731 100644 --- a/file/package.json +++ b/file/package.json @@ -1,8 +1,8 @@ { "name": "@dpkit/file", "type": "module", - "exports": "./build/index.js", "version": "0.7.0", + "exports": "./build/index.js", "license": "MIT", "author": "Evgeny Karev", "repository": "https://github.com/datisthq/dpkit", diff --git a/folder/package.json b/folder/package.json index f391b9f1..8eebdd11 100644 --- a/folder/package.json +++ b/folder/package.json @@ -1,8 +1,8 @@ { "name": "@dpkit/folder", "type": "module", - "exports": "./build/index.js", "version": "0.7.0", + "exports": "./build/index.js", "license": "MIT", "author": "Evgeny Karev", "repository": "https://github.com/datisthq/dpkit", diff --git a/github/package.json b/github/package.json index 9b793539..1659d102 100644 --- a/github/package.json +++ b/github/package.json @@ -1,8 +1,8 @@ { "name": "@dpkit/github", "type": "module", - "exports": "./build/index.js", "version": "0.7.0", + "exports": "./build/index.js", "license": "MIT", "author": "Evgeny Karev", "repository": "https://github.com/datisthq/dpkit", diff --git a/inline/package.json b/inline/package.json index af37d5b8..2ea72582 100644 --- a/inline/package.json +++ b/inline/package.json @@ -1,8 +1,8 @@ { "name": "@dpkit/inline", "type": "module", - "exports": "./build/index.js", "version": "0.5.0", + "exports": "./build/index.js", "license": "MIT", "author": "Evgeny Karev", "repository": "https://github.com/datisthq/dpkit", diff --git a/json/package.json b/json/package.json index a38ea6a9..0e262662 100644 --- a/json/package.json +++ b/json/package.json @@ -1,8 +1,8 @@ { "name": "@dpkit/json", "type": "module", - "exports": "./build/index.js", "version": "0.2.0", + "exports": "./build/index.js", "license": "MIT", "author": "Evgeny Karev", "repository": "https://github.com/datisthq/dpkit", diff --git a/ods/package.json b/ods/package.json index 55fc9111..278ebc85 100644 --- a/ods/package.json +++ b/ods/package.json @@ -1,8 +1,8 @@ { "name": "@dpkit/ods", "type": "module", - "exports": "./build/index.js", "version": "0.2.0", + "exports": "./build/index.js", "license": "MIT", "author": "Evgeny Karev", "repository": "https://github.com/datisthq/dpkit", diff --git a/package.json b/package.json index 0fedb382..d7856e83 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "@types/node": "24.2.0", "@vitest/coverage-v8": "3.1.4", "@vitest/ui": "3.1.4", + "execa": "9.6.0", "husky": "9.1.7", "npm-check-updates": "18.0.1", "tempy": "3.1.0", diff --git a/parquet/package.json b/parquet/package.json index 674ca57d..07418497 100644 --- a/parquet/package.json +++ b/parquet/package.json @@ -1,8 +1,8 @@ { "name": "@dpkit/parquet", "type": "module", - "exports": "./build/index.js", "version": "0.2.0", + "exports": "./build/index.js", "license": "MIT", "author": "Evgeny Karev", "repository": "https://github.com/datisthq/dpkit", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index da40abf4..1dc950e3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,6 +23,9 @@ importers: '@vitest/ui': specifier: 3.1.4 version: 3.1.4(vitest@3.1.4) + execa: + specifier: 9.6.0 + version: 9.6.0 husky: specifier: 9.1.7 version: 9.1.7 @@ -1310,6 +1313,9 @@ packages: cpu: [x64] os: [win32] + '@sec-ant/readable-stream@0.4.1': + resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} + '@shikijs/core@3.9.2': resolution: {integrity: sha512-3q/mzmw09B2B6PgFNeiaN8pkNOixWS726IHmJEpjDAcneDPMQmUg2cweT9cWXY4XcyQS3i6mOOUgQz9RRUP6HA==} @@ -1335,6 +1341,10 @@ packages: resolution: {integrity: sha512-suq9tRQ6bkpMukTG5K5z0sPWB7t0zExMzZCdmYm6xTSSIm/yCKNm7VCL36wVeyTsFr597/UhU1OAYdHGMDiHrw==} engines: {node: '>=10'} + '@sindresorhus/merge-streams@4.0.0': + resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} + engines: {node: '>=18'} + '@sindresorhus/slugify@0.9.1': resolution: {integrity: sha512-b6heYM9dzZD13t2GOiEQTDE0qX+I1GyOotMwKh9VQqzuNiVdPVT8dM43fe9HNb/3ul+Qwd5oKSEDrDIfhq3bnQ==} engines: {node: '>=8'} @@ -2023,6 +2033,10 @@ packages: eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + execa@9.6.0: + resolution: {integrity: sha512-jpWzZ1ZhwUmeWRhS7Qv3mhpOhLfwI+uAX4e5fOcXqwMR7EcJ0pj2kV1CVzHVMX/LphnKWD3LObjZCoJ71lKpHw==} + engines: {node: ^18.19.0 || >=20.5.0} + exit-hook@4.0.0: resolution: {integrity: sha512-Fqs7ChZm72y40wKjOFXBKg7nJZvQJmewP5/7LtePDdnah/+FH9Hp5sgMujSCMPXlxOAW2//1jrW9pnsY7o20vQ==} engines: {node: '>=18'} @@ -2155,6 +2169,10 @@ packages: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} + get-stream@9.0.1: + resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} + engines: {node: '>=18'} + get-tsconfig@4.10.1: resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} @@ -2289,6 +2307,10 @@ packages: resolution: {integrity: sha512-3gKm/gCSUipeLsRYZbbdA1BD83lBoWUkZ7G9VFrhWPAU76KwYo5KR8V28bpoPm/ygy0x5/GCbpRQdY7VLYCoIg==} hasBin: true + human-signals@8.0.1: + resolution: {integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==} + engines: {node: '>=18.18.0'} + husky@9.1.7: resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} engines: {node: '>=18'} @@ -2424,6 +2446,10 @@ packages: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + is-stream@4.0.1: + resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} + engines: {node: '>=18'} + is-subdir@1.2.0: resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} engines: {node: '>=4'} @@ -2898,6 +2924,10 @@ packages: engines: {node: ^18.18.0 || >=20.0.0, npm: '>=8.12.1'} hasBin: true + npm-run-path@6.0.0: + resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} + engines: {node: '>=18'} + nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} @@ -3002,6 +3032,10 @@ packages: parse-latin@7.0.0: resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} + parse-ms@4.0.0: + resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} + engines: {node: '>=18'} + parse5@7.3.0: resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} @@ -3021,6 +3055,10 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + path-scurry@1.11.1: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} @@ -3073,6 +3111,10 @@ packages: engines: {node: '>=10.13.0'} hasBin: true + pretty-ms@9.2.0: + resolution: {integrity: sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==} + engines: {node: '>=18'} + prismjs@1.30.0: resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} engines: {node: '>=6'} @@ -3455,6 +3497,10 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} + strip-final-newline@4.0.0: + resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} + engines: {node: '>=18'} + style-to-js@1.1.17: resolution: {integrity: sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==} @@ -3626,6 +3672,10 @@ packages: unicode-trie@2.0.0: resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} + unicorn-magic@0.3.0: + resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} + engines: {node: '>=18'} + unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} @@ -4918,6 +4968,8 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.46.2': optional: true + '@sec-ant/readable-stream@0.4.1': {} + '@shikijs/core@3.9.2': dependencies: '@shikijs/types': 3.9.2 @@ -4953,6 +5005,8 @@ snapshots: '@sindresorhus/fnv1a@2.0.1': {} + '@sindresorhus/merge-streams@4.0.0': {} + '@sindresorhus/slugify@0.9.1': dependencies: escape-string-regexp: 1.0.5 @@ -5715,6 +5769,21 @@ snapshots: eventemitter3@5.0.1: {} + execa@9.6.0: + dependencies: + '@sindresorhus/merge-streams': 4.0.0 + cross-spawn: 7.0.6 + figures: 6.1.0 + get-stream: 9.0.1 + human-signals: 8.0.1 + is-plain-obj: 4.1.0 + is-stream: 4.0.1 + npm-run-path: 6.0.0 + pretty-ms: 9.2.0 + signal-exit: 4.1.0 + strip-final-newline: 4.0.0 + yoctocolors: 2.1.1 + exit-hook@4.0.0: {} expect-type@1.2.2: {} @@ -5900,6 +5969,11 @@ snapshots: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 + get-stream@9.0.1: + dependencies: + '@sec-ant/readable-stream': 0.4.1 + is-stream: 4.0.1 + get-tsconfig@4.10.1: dependencies: resolve-pkg-maps: 1.0.0 @@ -6176,6 +6250,8 @@ snapshots: human-id@4.1.1: {} + human-signals@8.0.1: {} + husky@9.1.7: {} i18next@23.16.8: @@ -6291,6 +6367,8 @@ snapshots: is-stream@3.0.0: {} + is-stream@4.0.1: {} + is-subdir@1.2.0: dependencies: better-path-resolve: 1.0.0 @@ -7001,6 +7079,11 @@ snapshots: npm-check-updates@18.0.1: {} + npm-run-path@6.0.0: + dependencies: + path-key: 4.0.0 + unicorn-magic: 0.3.0 + nth-check@2.1.1: dependencies: boolbase: 1.0.0 @@ -7109,6 +7192,8 @@ snapshots: unist-util-visit-children: 3.0.0 vfile: 6.0.3 + parse-ms@4.0.0: {} + parse5@7.3.0: dependencies: entities: 6.0.1 @@ -7121,6 +7206,8 @@ snapshots: path-key@3.1.1: {} + path-key@4.0.0: {} + path-scurry@1.11.1: dependencies: lru-cache: 10.4.3 @@ -7160,6 +7247,10 @@ snapshots: prettier@2.8.8: {} + pretty-ms@9.2.0: + dependencies: + parse-ms: 4.0.0 + prismjs@1.30.0: {} prompts@2.4.2: @@ -7692,6 +7783,8 @@ snapshots: strip-bom@3.0.0: {} + strip-final-newline@4.0.0: {} + style-to-js@1.1.17: dependencies: style-to-object: 1.0.9 @@ -7831,6 +7924,8 @@ snapshots: pako: 0.2.9 tiny-inflate: 1.0.3 + unicorn-magic@0.3.0: {} + unified@11.0.5: dependencies: '@types/unist': 3.0.3 diff --git a/table/package.json b/table/package.json index 86ecd30d..53b98875 100644 --- a/table/package.json +++ b/table/package.json @@ -1,8 +1,8 @@ { "name": "@dpkit/table", "type": "module", - "exports": "./build/index.js", "version": "0.5.0", + "exports": "./build/index.js", "license": "MIT", "author": "Evgeny Karev", "repository": "https://github.com/datisthq/dpkit", diff --git a/test/package.json b/test/package.json index cb443e42..c211a083 100644 --- a/test/package.json +++ b/test/package.json @@ -1,8 +1,8 @@ { "name": "@dpkit/test", "type": "module", - "exports": "./build/index.js", "version": "0.1.0", + "exports": "./build/index.js", "license": "MIT", "author": "Evgeny Karev", "repository": "https://github.com/datisthq/dpkit", diff --git a/ui/package.json b/ui/package.json index 0a52f0fe..b8b42c87 100644 --- a/ui/package.json +++ b/ui/package.json @@ -1,8 +1,8 @@ { "name": "@dpkit/ui", "type": "module", - "exports": "./build/index.js", "version": "0.2.0", + "exports": "./build/index.js", "license": "MIT", "author": "Evgeny Karev", "repository": "https://github.com/datisthq/dpkit", diff --git a/zenodo/package.json b/zenodo/package.json index 7eb69d90..d155e7b6 100644 --- a/zenodo/package.json +++ b/zenodo/package.json @@ -1,8 +1,8 @@ { "name": "@dpkit/zenodo", "type": "module", - "exports": "./build/index.js", "version": "0.6.0", + "exports": "./build/index.js", "license": "MIT", "author": "Evgeny Karev", "repository": "https://github.com/datisthq/dpkit", diff --git a/zip/package.json b/zip/package.json index cc584f4c..4a15b41d 100644 --- a/zip/package.json +++ b/zip/package.json @@ -1,8 +1,8 @@ { "name": "@dpkit/zip", "type": "module", - "exports": "./build/index.js", "version": "0.6.0", + "exports": "./build/index.js", "license": "MIT", "author": "Evgeny Karev", "repository": "https://github.com/datisthq/dpkit", From 8553fd09f15835986d27d88a3f87fd0c9e62b223 Mon Sep 17 00:00:00 2001 From: roll Date: Mon, 11 Aug 2025 16:19:05 +0100 Subject: [PATCH 78/80] Improved table help --- cli/components/TableGrid.tsx | 50 +++++++++++++++++++++++++++--------- 1 file changed, 38 insertions(+), 12 deletions(-) diff --git a/cli/components/TableGrid.tsx b/cli/components/TableGrid.tsx index 81f9cfaf..1ff5543e 100644 --- a/cli/components/TableGrid.tsx +++ b/cli/components/TableGrid.tsx @@ -93,27 +93,53 @@ export function TableGrid(props: { table: Table }) { return ( - + ) } -function Controls() { +function Help() { + const { exit } = useApp() + const [isOpen, setIsOpen] = useState(false) + + useInput((input, key) => { + if (key.escape || input === "q") { + exit() + } + + if (input === "d") { + setIsOpen(!isOpen) + } + }) + + if (!isOpen) { + return ( + + + {", "} + + + ) + } + return ( - - - - - + + Table Usage + + + + + + ) } -function Control(props: { button: string; description: string }) { +function HelpItem(props: { button: string; description: string }) { return ( - - {props.button} - — {props.description} - + + press {props.button}{" "} + {props.description} + ) } From ce6965a3b7df800ef4388ae2190d911d977b5b59 Mon Sep 17 00:00:00 2001 From: roll Date: Mon, 11 Aug 2025 16:59:30 +0100 Subject: [PATCH 79/80] Added support for convert into stdout --- arrow/plugin.ts | 2 +- cli/commands/table/convert.tsx | 20 +++- cli/commands/table/explore.tsx | 1 - cli/components/TableGrid.tsx | 2 +- cli/options/index.ts | 2 + cli/options/path.ts | 3 +- cli/options/resource.ts | 5 + cli/options/toDialect.ts | 180 +++++++++++++++++++++++++++++++++ csv/plugin.ts | 2 +- file/file/load.ts | 4 +- json/plugin.ts | 2 +- parquet/plugin.ts | 2 +- table/plugin.ts | 6 +- 13 files changed, 218 insertions(+), 13 deletions(-) create mode 100644 cli/options/resource.ts create mode 100644 cli/options/toDialect.ts diff --git a/arrow/plugin.ts b/arrow/plugin.ts index 865c79a9..133ee938 100644 --- a/arrow/plugin.ts +++ b/arrow/plugin.ts @@ -13,7 +13,7 @@ export class ArrowPlugin implements TablePlugin { } async saveTable(table: Table, options: SaveTableOptions) { - const isArrow = getIsArrow({ path: options.path }) + const isArrow = getIsArrow(options) if (!isArrow) return undefined return await saveArrowTable(table, options) diff --git a/cli/commands/table/convert.tsx b/cli/commands/table/convert.tsx index ffec0539..cfc29fe2 100644 --- a/cli/commands/table/convert.tsx +++ b/cli/commands/table/convert.tsx @@ -1,4 +1,5 @@ import { Command } from "@oclif/core" +import { getTempFilePath, loadFile } from "dpkit" import { readTable, saveTable } from "dpkit" import * as options from "../../options/index.ts" import * as params from "../../params/index.ts" @@ -13,8 +14,10 @@ export default class ConvertTable extends Command { // TODO: support toDialectOptions static override flags = { - toPath: options.requriedToPath, + toPath: options.toPath, + toFormat: options.toFormat, ...options.dialectOptions, + ...options.toDialectOptions, } public async run() { @@ -23,7 +26,20 @@ export default class ConvertTable extends Command { const dialect = options.createDialectFromFlags(flags) const table = await readTable({ path: args.path, dialect }) - await saveTable(table, { path: flags.toPath }) + const toPath = flags.toPath ?? getTempFilePath() + const toDialect = options.createToDialectFromFlags(flags) + await saveTable(table, { + path: toPath, + format: flags.toFormat, + dialect: toDialect, + }) + + if (!flags.toPath) { + // TODO: stream to stdout + const buffer = await loadFile(toPath) + this.log(buffer.toString().trim()) + return + } this.log(`Converted table from ${args.path} to ${flags.toPath}`) } diff --git a/cli/commands/table/explore.tsx b/cli/commands/table/explore.tsx index 9b33c1f7..76bc38ed 100644 --- a/cli/commands/table/explore.tsx +++ b/cli/commands/table/explore.tsx @@ -15,7 +15,6 @@ export default class ExploreTable extends Command { static override flags = { ...options.dialectOptions, - json: options.json, } public async run() { diff --git a/cli/components/TableGrid.tsx b/cli/components/TableGrid.tsx index 1ff5543e..a261af21 100644 --- a/cli/components/TableGrid.tsx +++ b/cli/components/TableGrid.tsx @@ -115,7 +115,7 @@ function Help() { if (!isOpen) { return ( - + {", "} diff --git a/cli/options/index.ts b/cli/options/index.ts index e8bb2ae1..ea9f8d80 100644 --- a/cli/options/index.ts +++ b/cli/options/index.ts @@ -1,3 +1,5 @@ export * from "./json.ts" export * from "./dialect.ts" export * from "./path.ts" +export * from "./resource.ts" +export * from "./toDialect.ts" diff --git a/cli/options/path.ts b/cli/options/path.ts index 4f82a69c..df4e97b5 100644 --- a/cli/options/path.ts +++ b/cli/options/path.ts @@ -1,6 +1,5 @@ import { Flags } from "@oclif/core" -export const requriedToPath = Flags.string({ +export const toPath = Flags.string({ description: "a local output path", - required: true, }) diff --git a/cli/options/resource.ts b/cli/options/resource.ts new file mode 100644 index 00000000..f42643f1 --- /dev/null +++ b/cli/options/resource.ts @@ -0,0 +1,5 @@ +import { Flags } from "@oclif/core" + +export const toFormat = Flags.string({ + description: "output resource format", +}) diff --git a/cli/options/toDialect.ts b/cli/options/toDialect.ts new file mode 100644 index 00000000..bdb2b459 --- /dev/null +++ b/cli/options/toDialect.ts @@ -0,0 +1,180 @@ +import { Flags } from "@oclif/core" +import type { Dialect } from "dpkit" + +// TODO: merge with dialect.ts + +export const toHeader = Flags.boolean({ + description: "whether the file includes a header row with field names", + default: true, +}) + +export const toHeaderRows = Flags.string({ + description: + "comma-separated row numbers (zero-based) that are considered header rows", +}) + +export const toHeaderJoin = Flags.string({ + description: "character used to join multi-line headers", +}) + +export const toCommentRows = Flags.string({ + description: "comma-separated rows to be excluded from the data (zero-based)", +}) + +export const toCommentChar = Flags.string({ + description: "character sequence denoting the start of a comment line", +}) + +export const toDelimiter = Flags.string({ + description: "character used to separate fields in the data", + char: "d", +}) + +export const toLineTerminator = Flags.string({ + description: "character sequence used to terminate rows", +}) + +export const toQuoteChar = Flags.string({ + description: "character used to quote fields", +}) + +export const toDoubleQuote = Flags.boolean({ + description: + "whether a sequence of two quote characters represents a single quote", +}) + +export const toEscapeChar = Flags.string({ + description: "character used to escape the delimiter or quote characters", +}) + +export const toNullSequence = Flags.string({ + description: + "character sequence representing null or missing values in the data", +}) + +export const toSkipInitialSpace = Flags.boolean({ + description: + "whether to ignore whitespace immediately following the delimiter", +}) + +export const toProperty = Flags.string({ + description: "for JSON data, the property name containing the data array", +}) + +export const toItemType = Flags.string({ + description: "the type of data item in the source", + options: ["array", "object"], +}) + +export const toItemKeys = Flags.string({ + description: + "comma-separated object properties to extract as values (for object-based data items)", +}) + +export const toSheetNumber = Flags.integer({ + description: "for spreadsheet data, the sheet number to read (zero-based)", +}) + +export const toSheetName = Flags.string({ + description: "for spreadsheet data, the sheet name to read", +}) + +export const toTable = Flags.string({ + description: "for database sources, the table name to read", +}) + +export const toDialectOptions = { + toDelimiter, + toHeader, + toHeaderRows, + toHeaderJoin, + toCommentRows, + toCommentChar, + toQuoteChar, + toDoubleQuote, + toEscapeChar, + toNullSequence, + toSkipInitialSpace, + toProperty, + toItemType, + toItemKeys, + toSheetNumber, + toTable, +} + +// TODO: rebase on types flags +export function createToDialectFromFlags(flags: any) { + let dialect: Dialect | undefined + + if (flags.toDelimiter) { + dialect = { ...dialect, delimiter: flags.toDelimiter } + } + + if (flags.toHeader === false) { + dialect = { ...dialect, header: flags.toHeader } + } + + if (flags.toHeaderRows) { + dialect = { + ...dialect, + headerRows: flags.toHeaderRows.split(",").map(Number), + } + } + + if (flags.toHeaderJoin) { + dialect = { ...dialect, headerJoin: flags.toHeaderJoin } + } + + if (flags.toCommentRows) { + dialect = { + ...dialect, + commentRows: flags.toCommentRows.split(",").map(Number), + } + } + + if (flags.toCommentChar) { + dialect = { ...dialect, commentChar: flags.toCommentChar } + } + + if (flags.toQuoteChar) { + dialect = { ...dialect, quoteChar: flags.toQuoteChar } + } + + if (flags.toDoubleQuote) { + dialect = { ...dialect, doubleQuote: flags.toDoubleQuote } + } + + if (flags.toEscapeChar) { + dialect = { ...dialect, escapeChar: flags.toEscapeChar } + } + + if (flags.toNullSequence) { + dialect = { ...dialect, nullSequence: flags.toNullSequence } + } + + if (flags.toSkipInitialSpace) { + dialect = { ...dialect, skipInitialSpace: flags.toSkipInitialSpace } + } + + if (flags.toProperty) { + dialect = { ...dialect, property: flags.toProperty } + } + + if (flags.toItemType) { + dialect = { ...dialect, itemType: flags.toItemType } + } + + if (flags.toItemKeys) { + dialect = { ...dialect, itemKeys: flags.toItemKeys.split(",") } + } + + if (flags.toSheetNumber) { + dialect = { ...dialect, sheetNumber: flags.toSheetNumber } + } + + if (flags.toTable) { + dialect = { ...dialect, table: flags.toTable } + } + + return dialect +} diff --git a/csv/plugin.ts b/csv/plugin.ts index f89c28e8..d34bc16f 100644 --- a/csv/plugin.ts +++ b/csv/plugin.ts @@ -24,7 +24,7 @@ export class CsvPlugin implements TablePlugin { } async saveTable(table: Table, options: SaveTableOptions) { - const isCsv = getIsCsv({ path: options.path }) + const isCsv = getIsCsv(options) if (!isCsv) return undefined return await saveCsvTable(table, options) diff --git a/file/file/load.ts b/file/file/load.ts index 0a5723df..6ff4e6b5 100644 --- a/file/file/load.ts +++ b/file/file/load.ts @@ -1,7 +1,7 @@ import { buffer } from "node:stream/consumers" import { loadFileStream } from "../stream/index.ts" -export async function loadFile(path: string) { - const stream = await loadFileStream(path) +export async function loadFile(path: string, options?: { maxBytes?: number }) { + const stream = await loadFileStream(path, options) return await buffer(stream) } diff --git a/json/plugin.ts b/json/plugin.ts index e5dcb66f..eab7b74e 100644 --- a/json/plugin.ts +++ b/json/plugin.ts @@ -21,7 +21,7 @@ export class JsonPlugin implements TablePlugin { } async saveTable(table: Table, options: SaveTableOptions) { - const formatInfo = getFormatInfo({ path: options.path }) + const formatInfo = getFormatInfo(options) if (formatInfo.isJson) { return await saveJsonTable(table, options) diff --git a/parquet/plugin.ts b/parquet/plugin.ts index 4a42edf8..4aacf435 100644 --- a/parquet/plugin.ts +++ b/parquet/plugin.ts @@ -13,7 +13,7 @@ export class ParquetPlugin implements TablePlugin { } async saveTable(table: Table, options: SaveTableOptions) { - const isParquet = getIsParquet({ path: options.path }) + const isParquet = getIsParquet(options) if (!isParquet) return undefined return await saveParquetTable(table, options) diff --git a/table/plugin.ts b/table/plugin.ts index d765d696..b6b57735 100644 --- a/table/plugin.ts +++ b/table/plugin.ts @@ -2,7 +2,11 @@ import type { Dialect, Plugin, Resource } from "@dpkit/core" import type { Table } from "./table/index.ts" export type InferDialectOptions = { sampleBytes?: number } -export type SaveTableOptions = { path: string; dialect?: Dialect } +export type SaveTableOptions = { + path: string + format?: string + dialect?: Dialect +} export interface TablePlugin extends Plugin { inferDialect?( From cf6c4cb75b0d0960cb92dcdf42db77137ac03253 Mon Sep 17 00:00:00 2001 From: roll Date: Tue, 12 Aug 2025 08:14:35 +0100 Subject: [PATCH 80/80] Added d/r func under dev --- docs/content/docs/cli/commands.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/content/docs/cli/commands.md b/docs/content/docs/cli/commands.md index 9df4e3e8..2df1ab49 100644 --- a/docs/content/docs/cli/commands.md +++ b/docs/content/docs/cli/commands.md @@ -28,6 +28,10 @@ Each category has its own commands for example the `table` category: ## Working with data packages +:::caution +This functionality is under development. +::: + Usually non-package command support the `-p/--package` and `-r/--resource` options to specify the datapackage file path and a resource name to access an object inside a data package. For example, we can explore a table using this command: