livemark 0.2.0 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +9 -0
- package/README.md +5 -1
- package/build/actions/changelog/build.d.ts +14 -0
- package/build/actions/changelog/build.js +158 -0
- package/build/actions/changelog/build.unit.js +66 -0
- package/build/actions/config/define.d.ts +6 -0
- package/build/actions/config/define.js +8 -0
- package/build/actions/config/define.unit.js +29 -0
- package/build/actions/config/load.d.ts +5 -0
- package/build/actions/config/load.js +25 -0
- package/build/actions/config/load.unit.js +23 -0
- package/build/commands/build.d.ts +5 -0
- package/build/commands/build.js +14 -0
- package/build/commands/escape.d.ts +9 -0
- package/build/commands/escape.js +56 -0
- package/build/commands/preview.d.ts +5 -0
- package/build/commands/preview.js +18 -0
- package/build/commands/start.d.ts +5 -0
- package/build/commands/start.js +19 -0
- package/build/docs/markdown/includes/example.d.ts +58 -0
- package/build/docs/markdown/includes/example.js +5 -0
- package/build/entrypoints/main.d.ts +2 -0
- package/build/entrypoints/main.js +12 -0
- package/build/helpers/program.d.ts +2 -0
- package/build/helpers/program.js +5 -0
- package/build/index.d.ts +1 -4
- package/build/index.js +2 -5
- package/build/livemark.config.d.ts +58 -0
- package/build/livemark.config.js +25 -0
- package/build/models/config.d.ts +340 -0
- package/build/models/config.js +34 -0
- package/build/models/link.d.ts +13 -0
- package/build/models/link.js +9 -0
- package/build/models/patch.d.ts +21 -0
- package/build/models/patch.js +7 -0
- package/build/models/section.d.ts +75 -0
- package/build/models/section.js +26 -0
- package/build/models/theme.d.ts +72 -0
- package/build/models/theme.js +73 -0
- package/build/program.d.ts +2 -0
- package/build/program.js +16 -0
- package/build/vite.config.d.ts +2 -0
- package/build/vite.config.js +48 -0
- package/build/website/assets/logo.svg +117 -0
- package/build/website/client.tsx +10 -0
- package/build/website/components/Abbr.tsx +17 -0
- package/build/website/components/AnsiCode.tsx +15 -0
- package/build/website/components/Article.tsx +172 -0
- package/build/website/components/BackToTop.tsx +32 -0
- package/build/website/components/Banner.tsx +32 -0
- package/build/website/components/BlogIndex.tsx +121 -0
- package/build/website/components/BlogSidebar.tsx +162 -0
- package/build/website/components/Breadcrumbs.tsx +22 -0
- package/build/website/components/Callout.tsx +72 -0
- package/build/website/components/Card.tsx +48 -0
- package/build/website/components/Cards.tsx +8 -0
- package/build/website/components/ChangelogIndex.tsx +111 -0
- package/build/website/components/ChangelogSidebar.tsx +120 -0
- package/build/website/components/CodeBlock.tsx +135 -0
- package/build/website/components/CodeTabs.tsx +83 -0
- package/build/website/components/Column.tsx +4 -0
- package/build/website/components/Columns.tsx +12 -0
- package/build/website/components/Content.tsx +7 -0
- package/build/website/components/ContentTab.tsx +7 -0
- package/build/website/components/ContentTabs.tsx +82 -0
- package/build/website/components/DefaultCatchBoundary.tsx +54 -0
- package/build/website/components/DefinitionList.tsx +21 -0
- package/build/website/components/Details.tsx +30 -0
- package/build/website/components/FileTree.tsx +52 -0
- package/build/website/components/Footer.tsx +16 -0
- package/build/website/components/FootnoteRef.tsx +52 -0
- package/build/website/components/Heading.tsx +20 -0
- package/build/website/components/InlineBadge.tsx +9 -0
- package/build/website/components/InlineIcon.tsx +10 -0
- package/build/website/components/InlineToc.tsx +31 -0
- package/build/website/components/Layout.tsx +190 -0
- package/build/website/components/LinkButton.tsx +31 -0
- package/build/website/components/Mermaid.tsx +18 -0
- package/build/website/components/MermaidRenderer.tsx +37 -0
- package/build/website/components/MiniSidebar.tsx +49 -0
- package/build/website/components/NotFound.tsx +27 -0
- package/build/website/components/PackageTabs.tsx +74 -0
- package/build/website/components/PageToolbar.tsx +75 -0
- package/build/website/components/PrevNext.tsx +60 -0
- package/build/website/components/Search.tsx +28 -0
- package/build/website/components/SearchDialog.tsx +245 -0
- package/build/website/components/Section.tsx +24 -0
- package/build/website/components/SectionHeader.tsx +35 -0
- package/build/website/components/Sidebar.tsx +160 -0
- package/build/website/components/SidebarLinks.tsx +70 -0
- package/build/website/components/SidebarSections.tsx +71 -0
- package/build/website/components/SiteTitle.tsx +21 -0
- package/build/website/components/SortableTable.tsx +81 -0
- package/build/website/components/SoundCloud.tsx +16 -0
- package/build/website/components/TagIndex.tsx +120 -0
- package/build/website/components/Theme.tsx +39 -0
- package/build/website/components/Toc.tsx +226 -0
- package/build/website/components/YouTube.tsx +16 -0
- package/build/website/components/ZoomImage.tsx +25 -0
- package/build/website/content/article.ts +78 -0
- package/build/website/content/tag.ts +29 -0
- package/build/website/content-collections.ts +208 -0
- package/build/website/elements/accordion.tsx +78 -0
- package/build/website/elements/alert-dialog.tsx +185 -0
- package/build/website/elements/alert.tsx +74 -0
- package/build/website/elements/aspect-ratio.tsx +22 -0
- package/build/website/elements/avatar.tsx +107 -0
- package/build/website/elements/badge.tsx +51 -0
- package/build/website/elements/breadcrumb.tsx +120 -0
- package/build/website/elements/button-group.tsx +87 -0
- package/build/website/elements/button.tsx +57 -0
- package/build/website/elements/calendar.tsx +229 -0
- package/build/website/elements/card.tsx +102 -0
- package/build/website/elements/carousel.tsx +240 -0
- package/build/website/elements/chart.tsx +372 -0
- package/build/website/elements/checkbox.tsx +26 -0
- package/build/website/elements/collapsible.tsx +19 -0
- package/build/website/elements/command.tsx +210 -0
- package/build/website/elements/context-menu.tsx +270 -0
- package/build/website/elements/dialog.tsx +152 -0
- package/build/website/elements/direction.tsx +4 -0
- package/build/website/elements/drawer.tsx +127 -0
- package/build/website/elements/dropdown-menu.tsx +260 -0
- package/build/website/elements/empty.tsx +104 -0
- package/build/website/elements/field.tsx +235 -0
- package/build/website/elements/hover-card.tsx +49 -0
- package/build/website/elements/input-group.tsx +171 -0
- package/build/website/elements/input-otp.tsx +84 -0
- package/build/website/elements/input.tsx +18 -0
- package/build/website/elements/item.tsx +199 -0
- package/build/website/elements/kbd.tsx +26 -0
- package/build/website/elements/label.tsx +17 -0
- package/build/website/elements/menubar.tsx +282 -0
- package/build/website/elements/native-select.tsx +56 -0
- package/build/website/elements/navigation-menu.tsx +171 -0
- package/build/website/elements/pagination.tsx +133 -0
- package/build/website/elements/popover.tsx +88 -0
- package/build/website/elements/progress.tsx +81 -0
- package/build/website/elements/radio-group.tsx +36 -0
- package/build/website/elements/resizable.tsx +48 -0
- package/build/website/elements/scroll-area.tsx +51 -0
- package/build/website/elements/select.tsx +200 -0
- package/build/website/elements/separator.tsx +22 -0
- package/build/website/elements/sheet.tsx +130 -0
- package/build/website/elements/sidebar.tsx +717 -0
- package/build/website/elements/skeleton.tsx +13 -0
- package/build/website/elements/slider.tsx +57 -0
- package/build/website/elements/sonner.tsx +40 -0
- package/build/website/elements/spinner.tsx +16 -0
- package/build/website/elements/switch.tsx +30 -0
- package/build/website/elements/table.tsx +112 -0
- package/build/website/elements/tabs.tsx +79 -0
- package/build/website/elements/textarea.tsx +16 -0
- package/build/website/elements/toggle-group.tsx +87 -0
- package/build/website/elements/toggle.tsx +43 -0
- package/build/website/elements/tooltip.tsx +67 -0
- package/build/website/env.d.ts +14 -0
- package/build/website/helpers/article-icon.ts +61 -0
- package/build/website/helpers/article.ts +90 -0
- package/build/website/helpers/changelog-source.ts +16 -0
- package/build/website/helpers/changelog-source.unit.ts +38 -0
- package/build/website/helpers/dynamic-icon-resolver.tsx +19 -0
- package/build/website/helpers/dynamic-icon.tsx +12 -0
- package/build/website/helpers/favicon.ts +7 -0
- package/build/website/helpers/model.ts +4 -0
- package/build/website/helpers/resolve-asset-path.ts +9 -0
- package/build/website/helpers/resolve-includes.ts +131 -0
- package/build/website/helpers/resolve-includes.unit.ts +126 -0
- package/build/website/helpers/search-text.ts +15 -0
- package/build/website/helpers/section.ts +50 -0
- package/build/website/helpers/section.unit.ts +71 -0
- package/build/website/helpers/style.ts +6 -0
- package/build/website/helpers/theme.ts +27 -0
- package/build/website/helpers/toc-context.ts +10 -0
- package/build/website/helpers/toc.ts +46 -0
- package/build/website/helpers/toc.unit.ts +74 -0
- package/build/website/hooks/in-view.ts +30 -0
- package/build/website/hooks/media.ts +19 -0
- package/build/website/models/article.ts +55 -0
- package/build/website/models/toc.ts +5 -0
- package/build/website/plugins/rehype-inline-code.ts +107 -0
- package/build/website/plugins/rehype-task-list-a11y.ts +33 -0
- package/build/website/plugins/remark-abbr.ts +46 -0
- package/build/website/plugins/remark-abbr.unit.ts +99 -0
- package/build/website/plugins/remark-ansi.ts +248 -0
- package/build/website/plugins/remark-ansi.unit.ts +197 -0
- package/build/website/plugins/remark-badge.ts +50 -0
- package/build/website/plugins/remark-badge.unit.ts +96 -0
- package/build/website/plugins/remark-button.ts +60 -0
- package/build/website/plugins/remark-button.unit.ts +147 -0
- package/build/website/plugins/remark-callout.ts +57 -0
- package/build/website/plugins/remark-card.ts +80 -0
- package/build/website/plugins/remark-code-tabs.ts +87 -0
- package/build/website/plugins/remark-columns.ts +66 -0
- package/build/website/plugins/remark-custom-heading-id.ts +70 -0
- package/build/website/plugins/remark-custom-heading-id.unit.ts +131 -0
- package/build/website/plugins/remark-deflist.ts +36 -0
- package/build/website/plugins/remark-details.ts +49 -0
- package/build/website/plugins/remark-filetree.ts +89 -0
- package/build/website/plugins/remark-filetree.unit.ts +137 -0
- package/build/website/plugins/remark-github-callout.ts +71 -0
- package/build/website/plugins/remark-icon.ts +42 -0
- package/build/website/plugins/remark-image.ts +34 -0
- package/build/website/plugins/remark-media.ts +62 -0
- package/build/website/plugins/remark-media.unit.ts +74 -0
- package/build/website/plugins/remark-mermaid.ts +23 -0
- package/build/website/plugins/remark-npm.ts +52 -0
- package/build/website/plugins/remark-steps.ts +36 -0
- package/build/website/plugins/remark-steps.unit.ts +97 -0
- package/build/website/plugins/remark-tab.ts +100 -0
- package/build/website/plugins/remark-tab.unit.ts +181 -0
- package/build/website/plugins/remark-toc.ts +39 -0
- package/build/website/plugins/remark-toc.unit.ts +82 -0
- package/build/website/plugins/shiki-icon.ts +82 -0
- package/build/website/plugins/shiki-line-highlight.ts +174 -0
- package/build/website/plugins/vite-livemark.ts +91 -0
- package/build/website/routeTree.gen.ts +86 -0
- package/build/website/router.tsx +34 -0
- package/build/website/routes/$.tsx +92 -0
- package/build/website/routes/__root.tsx +97 -0
- package/build/website/server.ts +7 -0
- package/build/website/styles/general.css +163 -0
- package/build/website/styles/markdown.css +214 -0
- package/build/website/vite.config.ts +71 -0
- package/package.json +120 -12
- package/skills/authoring/SKILL.md +97 -0
- package/skills/configuration/SKILL.md +120 -0
- package/skills/customization/SKILL.md +118 -0
- package/build/descriptor/index.d.ts +0 -3
- package/build/descriptor/index.js +0 -4
- package/build/descriptor/load.d.ts +0 -8
- package/build/descriptor/load.js +0 -40
- package/build/descriptor/node.d.ts +0 -125
- package/build/descriptor/node.js +0 -9
- package/build/descriptor/save.d.ts +0 -8
- package/build/descriptor/save.js +0 -17
- package/build/descriptor/save.spec.js +0 -80
- package/build/descriptor/validate.d.ts +0 -9
- package/build/descriptor/validate.js +0 -14
- package/build/descriptor/validate.spec.js +0 -124
- package/build/dialect/Dialect.d.ts +0 -88
- package/build/dialect/Dialect.js +0 -2
- package/build/dialect/index.d.ts +0 -3
- package/build/dialect/index.js +0 -3
- package/build/dialect/load.d.ts +0 -4
- package/build/dialect/load.js +0 -7
- package/build/dialect/save.d.ts +0 -9
- package/build/dialect/save.js +0 -13
- package/build/dialect/validate.d.ts +0 -1
- package/build/dialect/validate.js +0 -4
- package/build/metadata/index.d.ts +0 -3
- package/build/metadata/index.js +0 -4
- package/build/metadata/load.d.ts +0 -10
- package/build/metadata/load.js +0 -55
- package/build/metadata/node.d.ts +0 -125
- package/build/metadata/node.js +0 -9
- package/build/metadata/save.d.ts +0 -8
- package/build/metadata/save.js +0 -17
- package/build/metadata/save.spec.js +0 -80
- package/build/metadata/validate.d.ts +0 -9
- package/build/metadata/validate.js +0 -14
- package/build/metadata/validate.spec.d.ts +0 -1
- package/build/metadata/validate.spec.js +0 -124
- package/build/package/Contributor.d.ts +0 -21
- package/build/package/Contributor.js +0 -2
- package/build/package/Package.d.ts +0 -65
- package/build/package/Package.js +0 -2
- package/build/package/index.d.ts +0 -4
- package/build/package/index.js +0 -3
- package/build/package/load.d.ts +0 -4
- package/build/package/load.js +0 -7
- package/build/package/save.d.ts +0 -9
- package/build/package/save.js +0 -13
- package/build/package/validate.d.ts +0 -1
- package/build/package/validate.js +0 -4
- package/build/resource/License.d.ts +0 -18
- package/build/resource/License.js +0 -2
- package/build/resource/Resource.d.ts +0 -67
- package/build/resource/Resource.js +0 -2
- package/build/resource/Source.d.ts +0 -17
- package/build/resource/Source.js +0 -2
- package/build/resource/index.d.ts +0 -5
- package/build/resource/index.js +0 -2
- package/build/resource/load.d.ts +0 -1
- package/build/resource/load.js +0 -2
- package/build/resource/save.d.ts +0 -9
- package/build/resource/save.js +0 -13
- package/build/resource/types/index.d.ts +0 -1
- package/build/resource/types/index.js +0 -2
- package/build/resource/types/table.d.ts +0 -29
- package/build/resource/types/table.js +0 -2
- package/build/resource/validate.d.ts +0 -1
- package/build/resource/validate.js +0 -4
- package/build/schema/Field.d.ts +0 -5
- package/build/schema/Field.js +0 -2
- package/build/schema/Schema.d.ts +0 -55
- package/build/schema/Schema.js +0 -2
- package/build/schema/fields/any.d.ts +0 -20
- package/build/schema/fields/any.js +0 -2
- package/build/schema/fields/array.d.ts +0 -32
- package/build/schema/fields/array.js +0 -2
- package/build/schema/fields/base.d.ts +0 -42
- package/build/schema/fields/base.js +0 -2
- package/build/schema/fields/boolean.d.ts +0 -28
- package/build/schema/fields/boolean.js +0 -2
- package/build/schema/fields/date.d.ts +0 -35
- package/build/schema/fields/date.js +0 -2
- package/build/schema/fields/datetime.d.ts +0 -35
- package/build/schema/fields/datetime.js +0 -2
- package/build/schema/fields/duration.d.ts +0 -28
- package/build/schema/fields/duration.js +0 -2
- package/build/schema/fields/geojson.d.ts +0 -26
- package/build/schema/fields/geojson.js +0 -2
- package/build/schema/fields/geopoint.d.ts +0 -27
- package/build/schema/fields/geopoint.js +0 -2
- package/build/schema/fields/index.d.ts +0 -16
- package/build/schema/fields/index.js +0 -17
- package/build/schema/fields/integer.d.ts +0 -37
- package/build/schema/fields/integer.js +0 -2
- package/build/schema/fields/list.d.ts +0 -36
- package/build/schema/fields/list.js +0 -2
- package/build/schema/fields/number.d.ts +0 -40
- package/build/schema/fields/number.js +0 -2
- package/build/schema/fields/object.d.ts +0 -32
- package/build/schema/fields/object.js +0 -2
- package/build/schema/fields/string.d.ts +0 -40
- package/build/schema/fields/string.js +0 -2
- package/build/schema/fields/time.d.ts +0 -35
- package/build/schema/fields/time.js +0 -2
- package/build/schema/fields/year.d.ts +0 -28
- package/build/schema/fields/year.js +0 -2
- package/build/schema/fields/yearmonth.d.ts +0 -28
- package/build/schema/fields/yearmonth.js +0 -2
- package/build/schema/index.d.ts +0 -4
- package/build/schema/index.js +0 -2
- package/build/schema/load.d.ts +0 -1
- package/build/schema/load.js +0 -2
- package/build/schema/save.d.ts +0 -9
- package/build/schema/save.js +0 -13
- package/build/schema/validate.d.ts +0 -1
- package/build/schema/validate.js +0 -4
- package/build/tsconfig.tsbuildinfo +0 -1
- package/index.ts +0 -0
- package/tsconfig.json +0 -10
- package/typedoc.json +0 -4
- /package/build/{descriptor/save.spec.d.ts → actions/changelog/build.unit.d.ts} +0 -0
- /package/build/{descriptor/validate.spec.d.ts → actions/config/define.unit.d.ts} +0 -0
- /package/build/{metadata/save.spec.d.ts → actions/config/load.unit.d.ts} +0 -0
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from "vitest";
|
|
2
|
-
import { validateDescriptor } from "./validate.js";
|
|
3
|
-
describe("validateDescriptor", () => {
|
|
4
|
-
it("returns empty array for valid descriptor", async () => {
|
|
5
|
-
const profile = {
|
|
6
|
-
type: "object",
|
|
7
|
-
required: ["name", "version"],
|
|
8
|
-
properties: {
|
|
9
|
-
name: { type: "string" },
|
|
10
|
-
version: { type: "string" },
|
|
11
|
-
description: { type: "string" },
|
|
12
|
-
},
|
|
13
|
-
};
|
|
14
|
-
const descriptor = {
|
|
15
|
-
name: "test-package",
|
|
16
|
-
version: "1.0.0",
|
|
17
|
-
description: "A test package",
|
|
18
|
-
};
|
|
19
|
-
const result = await validateDescriptor({
|
|
20
|
-
descriptor,
|
|
21
|
-
profile,
|
|
22
|
-
});
|
|
23
|
-
expect(result).toEqual([]);
|
|
24
|
-
});
|
|
25
|
-
it("returns validation errors for invalid descriptor", async () => {
|
|
26
|
-
const profile = {
|
|
27
|
-
type: "object",
|
|
28
|
-
required: ["name", "version"],
|
|
29
|
-
properties: {
|
|
30
|
-
name: { type: "string" },
|
|
31
|
-
version: { type: "string" },
|
|
32
|
-
description: { type: "string" },
|
|
33
|
-
},
|
|
34
|
-
};
|
|
35
|
-
const descriptor = {
|
|
36
|
-
name: "test-package",
|
|
37
|
-
version: 123,
|
|
38
|
-
description: "A test package with wrong version type",
|
|
39
|
-
};
|
|
40
|
-
const result = await validateDescriptor({
|
|
41
|
-
descriptor,
|
|
42
|
-
profile,
|
|
43
|
-
});
|
|
44
|
-
expect(result).not.toBeNull();
|
|
45
|
-
expect(Array.isArray(result)).toBe(true);
|
|
46
|
-
expect(result.length).toBeGreaterThan(0);
|
|
47
|
-
const error = result[0];
|
|
48
|
-
expect(error).toBeDefined();
|
|
49
|
-
if (error) {
|
|
50
|
-
expect(error.keyword).toBe("type");
|
|
51
|
-
expect(error.instancePath).toBe("/version");
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
it("returns errors when required fields are missing", async () => {
|
|
55
|
-
const profile = {
|
|
56
|
-
type: "object",
|
|
57
|
-
required: ["name", "version", "required_field"],
|
|
58
|
-
properties: {
|
|
59
|
-
name: { type: "string" },
|
|
60
|
-
version: { type: "string" },
|
|
61
|
-
required_field: { type: "string" },
|
|
62
|
-
},
|
|
63
|
-
};
|
|
64
|
-
const descriptor = {
|
|
65
|
-
name: "test-package",
|
|
66
|
-
version: "1.0.0",
|
|
67
|
-
};
|
|
68
|
-
const result = await validateDescriptor({
|
|
69
|
-
descriptor,
|
|
70
|
-
profile,
|
|
71
|
-
});
|
|
72
|
-
expect(Array.isArray(result)).toBe(true);
|
|
73
|
-
expect(result.length).toBeGreaterThan(0);
|
|
74
|
-
const error = result[0];
|
|
75
|
-
expect(error).toBeDefined();
|
|
76
|
-
if (error) {
|
|
77
|
-
expect(error.keyword).toBe("required");
|
|
78
|
-
expect(error.params).toBeDefined();
|
|
79
|
-
if (error.params) {
|
|
80
|
-
expect(error.params.missingProperty).toBe("required_field");
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
it("validates nested objects in the descriptor", async () => {
|
|
85
|
-
const profile = {
|
|
86
|
-
type: "object",
|
|
87
|
-
required: ["name", "version", "author"],
|
|
88
|
-
properties: {
|
|
89
|
-
name: { type: "string" },
|
|
90
|
-
version: { type: "string" },
|
|
91
|
-
author: {
|
|
92
|
-
type: "object",
|
|
93
|
-
required: ["name", "email"],
|
|
94
|
-
properties: {
|
|
95
|
-
name: { type: "string" },
|
|
96
|
-
email: {
|
|
97
|
-
type: "string",
|
|
98
|
-
pattern: "^[^@]+@[^@]+\\.[^@]+$",
|
|
99
|
-
},
|
|
100
|
-
},
|
|
101
|
-
},
|
|
102
|
-
},
|
|
103
|
-
};
|
|
104
|
-
const descriptor = {
|
|
105
|
-
name: "test-package",
|
|
106
|
-
version: "1.0.0",
|
|
107
|
-
author: {
|
|
108
|
-
name: "Test Author",
|
|
109
|
-
email: "invalid-email",
|
|
110
|
-
},
|
|
111
|
-
};
|
|
112
|
-
const result = await validateDescriptor({
|
|
113
|
-
descriptor,
|
|
114
|
-
profile,
|
|
115
|
-
});
|
|
116
|
-
expect(Array.isArray(result)).toBe(true);
|
|
117
|
-
expect(result.length).toBeGreaterThan(0);
|
|
118
|
-
const hasEmailPatternError = result.some(error => error &&
|
|
119
|
-
error.instancePath === "/author/email" &&
|
|
120
|
-
error.keyword === "pattern");
|
|
121
|
-
expect(hasEmailPatternError).toBe(true);
|
|
122
|
-
});
|
|
123
|
-
});
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2Rlc2NyaXB0b3IvdmFsaWRhdGUuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRWxELFFBQVEsQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUU7SUFDbEMsRUFBRSxDQUFDLDBDQUEwQyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3hELE1BQU0sT0FBTyxHQUFHO1lBQ2QsSUFBSSxFQUFFLFFBQVE7WUFDZCxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDO1lBQzdCLFVBQVUsRUFBRTtnQkFDVixJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO2dCQUN4QixPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO2dCQUMzQixXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO2FBQ2hDO1NBQ0YsQ0FBQTtRQUVELE1BQU0sVUFBVSxHQUFHO1lBQ2pCLElBQUksRUFBRSxjQUFjO1lBQ3BCLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLFdBQVcsRUFBRSxnQkFBZ0I7U0FDOUIsQ0FBQTtRQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sa0JBQWtCLENBQUM7WUFDdEMsVUFBVTtZQUNWLE9BQU87U0FDUixDQUFDLENBQUE7UUFFRixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQzVCLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLGtEQUFrRCxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ2hFLE1BQU0sT0FBTyxHQUFHO1lBQ2QsSUFBSSxFQUFFLFFBQVE7WUFDZCxRQUFRLEVBQUUsQ0FBQyxNQUFN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LENBQUMsWUFBWSxLQUFLLGVBQWU7WUFDdEMsS0FBSyxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQzlCLENBQUE7UUFFRCxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDekMsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlc2NyaWJlLCBleHBlY3QsIGl0IH0gZnJvbSBcInZpdGVzdFwiXG5pbXBvcnQgeyB2YWxpZGF0ZURlc2NyaXB0b3IgfSBmcm9tIFwiLi92YWxpZGF0ZS5qc1wiXG5cbmRlc2NyaWJlKFwidmFsaWRhdGVEZXNjcmlwdG9yXCIsICgpID0+IHtcbiAgaXQoXCJyZXR1cm5zIGVtcHR5IGFycmF5IGZvciB2YWxpZCBkZXNjcmlwdG9yXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwcm9maWxlID0ge1xuICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgIHJlcXVpcmVkOiBbXCJuYW1lXCIsIFwidmVyc2lvblwiXSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgbmFtZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgIHZlcnNpb246IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICBkZXNjcmlwdGlvbjogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICB9LFxuICAgIH1cblxuICAgIGNvbnN0IGRlc2NyaXB0b3IgPSB7XG4gICAgICBuYW1lOiBcInRlc3QtcGFja2FnZVwiLFxuICAgICAgdmVyc2lvbjogXCIxLjAuMFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiQSB0ZXN0IHBhY2thZ2VcIixcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB2YWxpZGF0ZURlc2NyaXB0b3Ioe1xuICAgICAgZGVzY3JpcHRvcixcbiAgICAgIHByb2ZpbGUsXG4gICAgfSlcblxuICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoW10pXG4gIH0pXG5cbiAgaXQoXCJyZXR1cm5zIHZhbGlkYXRpb24gZXJyb3JzIGZvciBpbnZhbGlkIGRlc2NyaXB0b3JcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHByb2ZpbGUgPSB7XG4gICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgcmVxdWlyZWQ6IFtcIm5hbWVcIiwgXCJ2ZXJzaW9uXCJdLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBuYW1lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgdmVyc2lvbjogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgIGRlc2NyaXB0aW9uOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgY29uc3QgZGVzY3JpcHRvciA9IHtcbiAgICAgIG5hbWU6IFwidGVzdC1wYWNrYWdlXCIsXG4gICAgICB2ZXJzaW9uOiAxMjMsXG4gICAgICBkZXNjcmlwdGlvbjogXCJBIHRlc3QgcGFja2FnZSB3aXRoIHdyb25nIHZlcnNpb24gdHlwZVwiLFxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHZhbGlkYXRlRGVzY3JpcHRvcih7XG4gICAgICBkZXNjcmlwdG9yLFxuICAgICAgcHJvZmlsZSxcbiAgICB9KVxuXG4gICAgZXhwZWN0KHJlc3VsdCkubm90LnRvQmVOdWxsKClcbiAgICBleHBlY3QoQXJyYXkuaXNBcnJheShyZXN1bHQpKS50b0JlKHRydWUpXG4gICAgZXhwZWN0KHJlc3VsdC5sZW5ndGgpLnRvQmVHcmVhdGVyVGhhbigwKVxuXG4gICAgY29uc3QgZXJyb3IgPSByZXN1bHRbMF1cbiAgICBleHBlY3QoZXJyb3IpLnRvQmVEZWZpbmVkKClcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIGV4cGVjdChlcnJvci5rZXl3b3JkKS50b0JlKFwidHlwZVwiKVxuICAgICAgZXhwZWN0KGVycm9yLmluc3RhbmNlUGF0aCkudG9CZShcIi92ZXJzaW9uXCIpXG4gICAgfVxuICB9KVxuXG4gIGl0KFwicmV0dXJucyBlcnJvcnMgd2hlbiByZXF1aXJlZCBmaWVsZHMgYXJlIG1pc3NpbmdcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHByb2ZpbGUgPSB7XG4gICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgcmVxdWlyZWQ6IFtcIm5hbWVcIiwgXCJ2ZXJzaW9uXCIsIFwicmVxdWlyZWRfZmllbGRcIl0sXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIG5hbWU6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICB2ZXJzaW9uOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgcmVxdWlyZWRfZmllbGQ6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgfSxcbiAgICB9XG5cbiAgICBjb25zdCBkZXNjcmlwdG9yID0ge1xuICAgICAgbmFtZTogXCJ0ZXN0LXBhY2thZ2VcIixcbiAgICAgIHZlcnNpb246IFwiMS4wLjBcIixcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB2YWxpZGF0ZURlc2NyaXB0b3Ioe1xuICAgICAgZGVzY3JpcHRvcixcbiAgICAgIHByb2ZpbGUsXG4gICAgfSlcblxuICAgIGV4cGVjdChBcnJheS5pc0FycmF5KHJlc3VsdCkpLnRvQmUodHJ1ZSlcbiAgICBleHBlY3QocmVzdWx0Lmxlbmd0aCkudG9CZUdyZWF0ZXJUaGFuKDApXG5cbiAgICBjb25zdCBlcnJvciA9IHJlc3VsdFswXVxuICAgIGV4cGVjdChlcnJvcikudG9CZURlZmluZWQoKVxuICAgIGlmIChlcnJvcikge1xuICAgICAgZXhwZWN0KGVycm9yLmtleXdvcmQpLnRvQmUoXCJyZXF1aXJlZFwiKVxuICAgICAgZXhwZWN0KGVycm9yLnBhcmFtcykudG9CZURlZmluZWQoKVxuICAgICAgaWYgKGVycm9yLnBhcmFtcykge1xuICAgICAgICBleHBlY3QoZXJyb3IucGFyYW1zLm1pc3NpbmdQcm9wZXJ0eSkudG9CZShcInJlcXVpcmVkX2ZpZWxkXCIpXG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIGl0KFwidmFsaWRhdGVzIG5lc3RlZCBvYmplY3RzIGluIHRoZSBkZXNjcmlwdG9yXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwcm9maWxlID0ge1xuICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgIHJlcXVpcmVkOiBbXCJuYW1lXCIsIFwidmVyc2lvblwiLCBcImF1dGhvclwiXSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgbmFtZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgIHZlcnNpb246IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICBhdXRob3I6IHtcbiAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgIHJlcXVpcmVkOiBbXCJuYW1lXCIsIFwiZW1haWxcIl0sXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgbmFtZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICBlbWFpbDoge1xuICAgICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICBwYXR0ZXJuOiBcIl5bXkBdK0BbXkBdK1xcXFwuW15AXSskXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH1cblxuICAgIGNvbnN0IGRlc2NyaXB0b3IgPSB7XG4gICAgICBuYW1lOiBcInRlc3QtcGFja2FnZVwiLFxuICAgICAgdmVyc2lvbjogXCIxLjAuMFwiLFxuICAgICAgYXV0aG9yOiB7XG4gICAgICAgIG5hbWU6IFwiVGVzdCBBdXRob3JcIixcbiAgICAgICAgZW1haWw6IFwiaW52YWxpZC1lbWFpbFwiLFxuICAgICAgfSxcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB2YWxpZGF0ZURlc2NyaXB0b3Ioe1xuICAgICAgZGVzY3JpcHRvcixcbiAgICAgIHByb2ZpbGUsXG4gICAgfSlcblxuICAgIGV4cGVjdChBcnJheS5pc0FycmF5KHJlc3VsdCkpLnRvQmUodHJ1ZSlcbiAgICBleHBlY3QocmVzdWx0Lmxlbmd0aCkudG9CZUdyZWF0ZXJUaGFuKDApXG5cbiAgICBjb25zdCBoYXNFbWFpbFBhdHRlcm5FcnJvciA9IHJlc3VsdC5zb21lKFxuICAgICAgZXJyb3IgPT5cbiAgICAgICAgZXJyb3IgJiZcbiAgICAgICAgZXJyb3IuaW5zdGFuY2VQYXRoID09PSBcIi9hdXRob3IvZW1haWxcIiAmJlxuICAgICAgICBlcnJvci5rZXl3b3JkID09PSBcInBhdHRlcm5cIixcbiAgICApXG5cbiAgICBleHBlY3QoaGFzRW1haWxQYXR0ZXJuRXJyb3IpLnRvQmUodHJ1ZSlcbiAgfSlcbn0pXG4iXX0=
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Descriptor that describes the structure of tabular data, such as delimiters,
|
|
3
|
-
* headers, and other features. Following the Data Package standard:
|
|
4
|
-
* https://datapackage.org/standard/table-dialect/
|
|
5
|
-
*/
|
|
6
|
-
export interface Dialect {
|
|
7
|
-
/**
|
|
8
|
-
* The name of this dialect
|
|
9
|
-
*/
|
|
10
|
-
name?: string;
|
|
11
|
-
/**
|
|
12
|
-
* JSON schema profile URL for validation
|
|
13
|
-
*/
|
|
14
|
-
$schema?: string;
|
|
15
|
-
/**
|
|
16
|
-
* Whether the file includes a header row with field names
|
|
17
|
-
*/
|
|
18
|
-
header?: boolean;
|
|
19
|
-
/**
|
|
20
|
-
* Row numbers (zero-based) that are considered header rows
|
|
21
|
-
*/
|
|
22
|
-
headerRows?: number[];
|
|
23
|
-
/**
|
|
24
|
-
* The character used to join multi-line headers
|
|
25
|
-
*/
|
|
26
|
-
headerJoin?: string;
|
|
27
|
-
/**
|
|
28
|
-
* Specific rows to be excluded from the data (zero-based)
|
|
29
|
-
*/
|
|
30
|
-
commentRows?: number[];
|
|
31
|
-
/**
|
|
32
|
-
* Character sequence denoting the start of a comment line
|
|
33
|
-
*/
|
|
34
|
-
commentChar?: string;
|
|
35
|
-
/**
|
|
36
|
-
* The character used to separate fields in the data
|
|
37
|
-
*/
|
|
38
|
-
delimiter?: string;
|
|
39
|
-
/**
|
|
40
|
-
* Character sequence used to terminate rows
|
|
41
|
-
*/
|
|
42
|
-
lineTerminator?: string;
|
|
43
|
-
/**
|
|
44
|
-
* Character used to quote fields
|
|
45
|
-
*/
|
|
46
|
-
quoteChar?: string;
|
|
47
|
-
/**
|
|
48
|
-
* Controls whether a sequence of two quote characters represents a single quote
|
|
49
|
-
*/
|
|
50
|
-
doubleQuote?: boolean;
|
|
51
|
-
/**
|
|
52
|
-
* Character used to escape the delimiter or quote characters
|
|
53
|
-
*/
|
|
54
|
-
escapeChar?: string;
|
|
55
|
-
/**
|
|
56
|
-
* Character sequence representing null or missing values in the data
|
|
57
|
-
*/
|
|
58
|
-
nullSequence?: string;
|
|
59
|
-
/**
|
|
60
|
-
* Whether to ignore whitespace immediately following the delimiter
|
|
61
|
-
*/
|
|
62
|
-
skipInitialSpace?: boolean;
|
|
63
|
-
/**
|
|
64
|
-
* For JSON data, the property name containing the data array
|
|
65
|
-
*/
|
|
66
|
-
property?: string;
|
|
67
|
-
/**
|
|
68
|
-
* The type of data item in the source: 'array' for rows represented as arrays,
|
|
69
|
-
* or 'object' for rows represented as objects
|
|
70
|
-
*/
|
|
71
|
-
itemType?: "array" | "object";
|
|
72
|
-
/**
|
|
73
|
-
* For object-based data items, specifies which object properties to extract as values
|
|
74
|
-
*/
|
|
75
|
-
itemKeys?: string[];
|
|
76
|
-
/**
|
|
77
|
-
* For spreadsheet data, the sheet number to read (zero-based)
|
|
78
|
-
*/
|
|
79
|
-
sheetNumber?: number;
|
|
80
|
-
/**
|
|
81
|
-
* For spreadsheet data, the sheet name to read
|
|
82
|
-
*/
|
|
83
|
-
sheetName?: string;
|
|
84
|
-
/**
|
|
85
|
-
* For database sources, the table name to read
|
|
86
|
-
*/
|
|
87
|
-
table?: string;
|
|
88
|
-
}
|
package/build/dialect/Dialect.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlhbGVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2RpYWxlY3QvRGlhbGVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZXNjcmlwdG9yIHRoYXQgZGVzY3JpYmVzIHRoZSBzdHJ1Y3R1cmUgb2YgdGFidWxhciBkYXRhLCBzdWNoIGFzIGRlbGltaXRlcnMsXG4gKiBoZWFkZXJzLCBhbmQgb3RoZXIgZmVhdHVyZXMuIEZvbGxvd2luZyB0aGUgRGF0YSBQYWNrYWdlIHN0YW5kYXJkOlxuICogaHR0cHM6Ly9kYXRhcGFja2FnZS5vcmcvc3RhbmRhcmQvdGFibGUtZGlhbGVjdC9cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEaWFsZWN0IHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoaXMgZGlhbGVjdFxuICAgKi9cbiAgbmFtZT86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBKU09OIHNjaGVtYSBwcm9maWxlIFVSTCBmb3IgdmFsaWRhdGlvblxuICAgKi9cbiAgJHNjaGVtYT86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBmaWxlIGluY2x1ZGVzIGEgaGVhZGVyIHJvdyB3aXRoIGZpZWxkIG5hbWVzXG4gICAqL1xuICBoZWFkZXI/OiBib29sZWFuXG5cbiAgLyoqXG4gICAqIFJvdyBudW1iZXJzICh6ZXJvLWJhc2VkKSB0aGF0IGFyZSBjb25zaWRlcmVkIGhlYWRlciByb3dzXG4gICAqL1xuICBoZWFkZXJSb3dzPzogbnVtYmVyW11cblxuICAvKipcbiAgICogVGhlIGNoYXJhY3RlciB1c2VkIHRvIGpvaW4gbXVsdGktbGluZSBoZWFkZXJzXG4gICAqL1xuICBoZWFkZXJKb2luPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIFNwZWNpZmljIHJvd3MgdG8gYmUgZXhjbHVkZWQgZnJvbSB0aGUgZGF0YSAoemVyby1iYXNlZClcbiAgICovXG4gIGNvbW1lbnRSb3dzPzogbnVtYmVyW11cblxuICAvKipcbiAgICogQ2hhcmFjdGVyIHNlcXVlbmNlIGRlbm90aW5nIHRoZSBzdGFydCBvZiBhIGNvbW1lbnQgbGluZVxuICAgKi9cbiAgY29tbWVudENoYXI/OiBzdHJpbmdcblxuICAvKipcbiAgICogVGhlIGNoYXJhY3RlciB1c2VkIHRvIHNlcGFyYXRlIGZpZWxkcyBpbiB0aGUgZGF0YVxuICAgKi9cbiAgZGVsaW1pdGVyPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIENoYXJhY3RlciBzZXF1ZW5jZSB1c2VkIHRvIHRlcm1pbmF0ZSByb3dzXG4gICAqL1xuICBsaW5lVGVybWluYXRvcj86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBDaGFyYWN0ZXIgdXNlZCB0byBxdW90ZSBmaWVsZHNcbiAgICovXG4gIHF1b3RlQ2hhcj86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBDb250cm9scyB3aGV0aGVyIGEgc2VxdWVuY2Ugb2YgdHdvIHF1b3RlIGNoYXJhY3RlcnMgcmVwcmVzZW50cyBhIHNpbmdsZSBxdW90ZVxuICAgKi9cbiAgZG91YmxlUXVvdGU/OiBib29sZWFuXG5cbiAgLyoqXG4gICAqIENoYXJhY3RlciB1c2VkIHRvIGVzY2FwZSB0aGUgZGVsaW1pdGVyIG9yIHF1b3RlIGNoYXJhY3RlcnNcbiAgICovXG4gIGVzY2FwZUNoYXI/OiBzdHJpbmdcblxuICAvKipcbiAgICogQ2hhcmFjdGVyIHNlcXVlbmNlIHJlcHJlc2VudGluZyBudWxsIG9yIG1pc3NpbmcgdmFsdWVzIGluIHRoZSBkYXRhXG4gICAqL1xuICBudWxsU2VxdWVuY2U/OiBzdHJpbmdcblxuICAvKipcbiAgICogV2hldGhlciB0byBpZ25vcmUgd2hpdGVzcGFjZSBpbW1lZGlhdGVseSBmb2xsb3dpbmcgdGhlIGRlbGltaXRlclxuICAgKi9cbiAgc2tpcEluaXRpYWxTcGFjZT86IGJvb2xlYW5cblxuICAvKipcbiAgICogRm9yIEpTT04gZGF0YSwgdGhlIHByb3BlcnR5IG5hbWUgY29udGFpbmluZyB0aGUgZGF0YSBhcnJheVxuICAgKi9cbiAgcHJvcGVydHk/OiBzdHJpbmdcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgZGF0YSBpdGVtIGluIHRoZSBzb3VyY2U6ICdhcnJheScgZm9yIHJvd3MgcmVwcmVzZW50ZWQgYXMgYXJyYXlzLFxuICAgKiBvciAnb2JqZWN0JyBmb3Igcm93cyByZXByZXNlbnRlZCBhcyBvYmplY3RzXG4gICAqL1xuICBpdGVtVHlwZT86IFwiYXJyYXlcIiB8IFwib2JqZWN0XCJcblxuICAvKipcbiAgICogRm9yIG9iamVjdC1iYXNlZCBkYXRhIGl0ZW1zLCBzcGVjaWZpZXMgd2hpY2ggb2JqZWN0IHByb3BlcnRpZXMgdG8gZXh0cmFjdCBhcyB2YWx1ZXNcbiAgICovXG4gIGl0ZW1LZXlzPzogc3RyaW5nW11cblxuICAvKipcbiAgICogRm9yIHNwcmVhZHNoZWV0IGRhdGEsIHRoZSBzaGVldCBudW1iZXIgdG8gcmVhZCAoemVyby1iYXNlZClcbiAgICovXG4gIHNoZWV0TnVtYmVyPzogbnVtYmVyXG5cbiAgLyoqXG4gICAqIEZvciBzcHJlYWRzaGVldCBkYXRhLCB0aGUgc2hlZXQgbmFtZSB0byByZWFkXG4gICAqL1xuICBzaGVldE5hbWU/OiBzdHJpbmdcblxuICAvKipcbiAgICogRm9yIGRhdGFiYXNlIHNvdXJjZXMsIHRoZSB0YWJsZSBuYW1lIHRvIHJlYWRcbiAgICovXG4gIHRhYmxlPzogc3RyaW5nXG59XG4iXX0=
|
package/build/dialect/index.d.ts
DELETED
package/build/dialect/index.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export { validateDialect } from "./validate.js";
|
|
2
|
-
export { loadDialect } from "./load.js";
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9kaWFsZWN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IHZhbGlkYXRlRGlhbGVjdCB9IGZyb20gXCIuL3ZhbGlkYXRlLmpzXCJcbmV4cG9ydCB0eXBlIHsgRGlhbGVjdCB9IGZyb20gXCIuL0RpYWxlY3QuanNcIlxuZXhwb3J0IHsgbG9hZERpYWxlY3QgfSBmcm9tIFwiLi9sb2FkLmpzXCJcbiJdfQ==
|
package/build/dialect/load.d.ts
DELETED
package/build/dialect/load.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { loadDescriptor } from "../descriptor/load.js";
|
|
2
|
-
export async function loadDialect(props) {
|
|
3
|
-
const descriptor = await loadDescriptor(props);
|
|
4
|
-
// TODO: validate descriptor against schema
|
|
5
|
-
return descriptor;
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2RpYWxlY3QvbG9hZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFHdEQsTUFBTSxDQUFDLEtBQUssVUFBVSxXQUFXLENBQUMsS0FBdUI7SUFDdkQsTUFBTSxVQUFVLEdBQUcsTUFBTSxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDOUMsMkNBQTJDO0lBQzNDLE9BQU8sVUFBcUIsQ0FBQTtBQUM5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbG9hZERlc2NyaXB0b3IgfSBmcm9tIFwiLi4vZGVzY3JpcHRvci9sb2FkLmpzXCJcbmltcG9ydCB0eXBlIHsgRGlhbGVjdCB9IGZyb20gXCIuL0RpYWxlY3QuanNcIlxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZERpYWxlY3QocHJvcHM6IHsgcGF0aDogc3RyaW5nIH0pIHtcbiAgY29uc3QgZGVzY3JpcHRvciA9IGF3YWl0IGxvYWREZXNjcmlwdG9yKHByb3BzKVxuICAvLyBUT0RPOiB2YWxpZGF0ZSBkZXNjcmlwdG9yIGFnYWluc3Qgc2NoZW1hXG4gIHJldHVybiBkZXNjcmlwdG9yIGFzIERpYWxlY3Rcbn1cbiJdfQ==
|
package/build/dialect/save.d.ts
DELETED
package/build/dialect/save.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { saveDescriptor } from "../descriptor/save.js";
|
|
2
|
-
/**
|
|
3
|
-
* Save a Dialect to a file path
|
|
4
|
-
* Works in Node.js environments
|
|
5
|
-
*/
|
|
6
|
-
export async function saveDialect(props) {
|
|
7
|
-
const { dialect, path } = props;
|
|
8
|
-
return saveDescriptor({
|
|
9
|
-
descriptor: dialect,
|
|
10
|
-
path,
|
|
11
|
-
});
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2RpYWxlY3Qvc2F2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFHdEQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxXQUFXLENBQUMsS0FBeUM7SUFDekUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUE7SUFFL0IsT0FBTyxjQUFjLENBQUM7UUFDcEIsVUFBVSxFQUFFLE9BQU87UUFDbkIsSUFBSTtLQUNMLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzYXZlRGVzY3JpcHRvciB9IGZyb20gXCIuLi9kZXNjcmlwdG9yL3NhdmUuanNcIlxuaW1wb3J0IHR5cGUgeyBEaWFsZWN0IH0gZnJvbSBcIi4vRGlhbGVjdC5qc1wiXG5cbi8qKlxuICogU2F2ZSBhIERpYWxlY3QgdG8gYSBmaWxlIHBhdGhcbiAqIFdvcmtzIGluIE5vZGUuanMgZW52aXJvbm1lbnRzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzYXZlRGlhbGVjdChwcm9wczogeyBkaWFsZWN0OiBEaWFsZWN0OyBwYXRoOiBzdHJpbmcgfSkge1xuICBjb25zdCB7IGRpYWxlY3QsIHBhdGggfSA9IHByb3BzXG5cbiAgcmV0dXJuIHNhdmVEZXNjcmlwdG9yKHtcbiAgICBkZXNjcmlwdG9yOiBkaWFsZWN0LFxuICAgIHBhdGgsXG4gIH0pXG59XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function validateDialect(dialect: string): Promise<string>;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export async function validateDialect(dialect) {
|
|
2
|
-
return dialect;
|
|
3
|
-
}
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9kaWFsZWN0L3ZhbGlkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxLQUFLLFVBQVUsZUFBZSxDQUFDLE9BQWU7SUFDbkQsT0FBTyxPQUFPLENBQUE7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBhc3luYyBmdW5jdGlvbiB2YWxpZGF0ZURpYWxlY3QoZGlhbGVjdDogc3RyaW5nKSB7XG4gIHJldHVybiBkaWFsZWN0XG59XG4iXX0=
|
package/build/metadata/index.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export { loadMetadata } from "./load.js";
|
|
2
|
-
export { saveMetadata } from "./save.js";
|
|
3
|
-
export { validateMetadata } from "./validate.js";
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9tZXRhZGF0YS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDeEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgbG9hZE1ldGFkYXRhIH0gZnJvbSBcIi4vbG9hZC5qc1wiXG5leHBvcnQgeyBzYXZlTWV0YWRhdGEgfSBmcm9tIFwiLi9zYXZlLmpzXCJcbmV4cG9ydCB7IHZhbGlkYXRlTWV0YWRhdGEgfSBmcm9tIFwiLi92YWxpZGF0ZS5qc1wiXG4iXX0=
|
package/build/metadata/load.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Load a metadata (JSON Object) from a file or URL
|
|
3
|
-
* Uses dynamic imports to work in both Node.js and browser environments
|
|
4
|
-
* Supports HTTP, HTTPS, FTP, and FTPS protocols
|
|
5
|
-
*
|
|
6
|
-
* @param props Object containing the path to the metadata
|
|
7
|
-
*/
|
|
8
|
-
export declare function loadMetadata(props: {
|
|
9
|
-
path: string;
|
|
10
|
-
}): Promise<Record<string, any>>;
|
package/build/metadata/load.js
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Load a metadata (JSON Object) from a file or URL
|
|
3
|
-
* Uses dynamic imports to work in both Node.js and browser environments
|
|
4
|
-
* Supports HTTP, HTTPS, FTP, and FTPS protocols
|
|
5
|
-
*
|
|
6
|
-
* @param props Object containing the path to the metadata
|
|
7
|
-
*/
|
|
8
|
-
export async function loadMetadata(props) {
|
|
9
|
-
const { path } = props;
|
|
10
|
-
let isUrl = false;
|
|
11
|
-
try {
|
|
12
|
-
new URL(path);
|
|
13
|
-
isUrl = true;
|
|
14
|
-
}
|
|
15
|
-
catch {
|
|
16
|
-
isUrl = false;
|
|
17
|
-
}
|
|
18
|
-
return isUrl
|
|
19
|
-
? await loadRemoteMetadata(props)
|
|
20
|
-
: await loadLocalMetadata(props);
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Load a metadata (JSON Object) from a remote URL
|
|
24
|
-
* Supports HTTP, HTTPS, FTP, and FTPS protocols
|
|
25
|
-
*
|
|
26
|
-
* @param props Object containing the remote URL path
|
|
27
|
-
*/
|
|
28
|
-
async function loadRemoteMetadata(props) {
|
|
29
|
-
const { path } = props;
|
|
30
|
-
const url = new URL(path);
|
|
31
|
-
const protocol = url.protocol.toLowerCase();
|
|
32
|
-
if (!["http:", "https:", "ftp:", "ftps:"].includes(protocol)) {
|
|
33
|
-
throw new Error(`Unsupported URL protocol: ${protocol}`);
|
|
34
|
-
}
|
|
35
|
-
const response = await fetch(path);
|
|
36
|
-
if (!response.ok) {
|
|
37
|
-
throw new Error(`Failed to load metadata from URL: ${path}, status: ${response.status}`);
|
|
38
|
-
}
|
|
39
|
-
const data = (await response.json());
|
|
40
|
-
return data;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Load a metadata (JSON Object) from a local file
|
|
44
|
-
* Works in Node.js environments only
|
|
45
|
-
*
|
|
46
|
-
* @param props Object containing the file path
|
|
47
|
-
*/
|
|
48
|
-
async function loadLocalMetadata(props) {
|
|
49
|
-
const { path } = props;
|
|
50
|
-
const fs = await import("node:fs/promises");
|
|
51
|
-
await fs.access(path, fs.constants.R_OK);
|
|
52
|
-
const content = await fs.readFile(path, "utf-8");
|
|
53
|
-
return JSON.parse(content);
|
|
54
|
-
}
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL21ldGFkYXRhL2xvYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxZQUFZLENBQUMsS0FBdUI7SUFDeEQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQTtJQUV0QixJQUFJLEtBQUssR0FBRyxLQUFLLENBQUE7SUFDakIsSUFBSSxDQUFDO1FBQ0gsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDYixLQUFLLEdBQUcsSUFBSSxDQUFBO0lBQ2QsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLEtBQUssR0FBRyxLQUFLLENBQUE7SUFDZixDQUFDO0lBRUQsT0FBTyxLQUFLO1FBQ1YsQ0FBQyxDQUFDLE1BQU0sa0JBQWtCLENBQUMsS0FBSyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxNQUFNLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFBO0FBQ3BDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxLQUF1QjtJQUN2RCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFBO0lBRXRCLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3pCLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUE7SUFFM0MsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDN0QsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUMxRCxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNqQixNQUFNLElBQUksS0FBSyxDQUNiLHFDQUFxQyxJQUFJLGFBQWEsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUN4RSxDQUFBO0lBQ0gsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQXdCLENBQUE7SUFDM0QsT0FBTyxJQUFJLENBQUE7QUFDYixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxLQUFLLFVBQVUsaUJBQWlCLENBQUMsS0FBdUI7SUFDdEQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQTtJQUV0QixNQUFNLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO0lBQzNDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUV4QyxNQUFNLE9BQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ2hELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQXdCLENBQUE7QUFDbkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTG9hZCBhIG1ldGFkYXRhIChKU09OIE9iamVjdCkgZnJvbSBhIGZpbGUgb3IgVVJMXG4gKiBVc2VzIGR5bmFtaWMgaW1wb3J0cyB0byB3b3JrIGluIGJvdGggTm9kZS5qcyBhbmQgYnJvd3NlciBlbnZpcm9ubWVudHNcbiAqIFN1cHBvcnRzIEhUVFAsIEhUVFBTLCBGVFAsIGFuZCBGVFBTIHByb3RvY29sc1xuICpcbiAqIEBwYXJhbSBwcm9wcyBPYmplY3QgY29udGFpbmluZyB0aGUgcGF0aCB0byB0aGUgbWV0YWRhdGFcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRNZXRhZGF0YShwcm9wczogeyBwYXRoOiBzdHJpbmcgfSkge1xuICBjb25zdCB7IHBhdGggfSA9IHByb3BzXG5cbiAgbGV0IGlzVXJsID0gZmFsc2VcbiAgdHJ5IHtcbiAgICBuZXcgVVJMKHBhdGgpXG4gICAgaXNVcmwgPSB0cnVlXG4gIH0gY2F0Y2gge1xuICAgIGlzVXJsID0gZmFsc2VcbiAgfVxuXG4gIHJldHVybiBpc1VybFxuICAgID8gYXdhaXQgbG9hZFJlbW90ZU1ldGFkYXRhKHByb3BzKVxuICAgIDogYXdhaXQgbG9hZExvY2FsTWV0YWRhdGEocHJvcHMpXG59XG5cbi8qKlxuICogTG9hZCBhIG1ldGFkYXRhIChKU09OIE9iamVjdCkgZnJvbSBhIHJlbW90ZSBVUkxcbiAqIFN1cHBvcnRzIEhUVFAsIEhUVFBTLCBGVFAsIGFuZCBGVFBTIHByb3RvY29sc1xuICpcbiAqIEBwYXJhbSBwcm9wcyBPYmplY3QgY29udGFpbmluZyB0aGUgcmVtb3RlIFVSTCBwYXRoXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGxvYWRSZW1vdGVNZXRhZGF0YShwcm9wczogeyBwYXRoOiBzdHJpbmcgfSkge1xuICBjb25zdCB7IHBhdGggfSA9IHByb3BzXG5cbiAgY29uc3QgdXJsID0gbmV3IFVSTChwYXRoKVxuICBjb25zdCBwcm90b2NvbCA9IHVybC5wcm90b2NvbC50b0xvd2VyQ2FzZSgpXG5cbiAgaWYgKCFbXCJodHRwOlwiLCBcImh0dHBzOlwiLCBcImZ0cDpcIiwgXCJmdHBzOlwiXS5pbmNsdWRlcyhwcm90b2NvbCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIFVSTCBwcm90b2NvbDogJHtwcm90b2NvbH1gKVxuICB9XG5cbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChwYXRoKVxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEZhaWxlZCB0byBsb2FkIG1ldGFkYXRhIGZyb20gVVJMOiAke3BhdGh9LCBzdGF0dXM6ICR7cmVzcG9uc2Uuc3RhdHVzfWAsXG4gICAgKVxuICB9XG5cbiAgY29uc3QgZGF0YSA9IChhd2FpdCByZXNwb25zZS5qc29uKCkpIGFzIFJlY29yZDxzdHJpbmcsIGFueT5cbiAgcmV0dXJuIGRhdGFcbn1cblxuLyoqXG4gKiBMb2FkIGEgbWV0YWRhdGEgKEpTT04gT2JqZWN0KSBmcm9tIGEgbG9jYWwgZmlsZVxuICogV29ya3MgaW4gTm9kZS5qcyBlbnZpcm9ubWVudHMgb25seVxuICpcbiAqIEBwYXJhbSBwcm9wcyBPYmplY3QgY29udGFpbmluZyB0aGUgZmlsZSBwYXRoXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGxvYWRMb2NhbE1ldGFkYXRhKHByb3BzOiB7IHBhdGg6IHN0cmluZyB9KSB7XG4gIGNvbnN0IHsgcGF0aCB9ID0gcHJvcHNcblxuICBjb25zdCBmcyA9IGF3YWl0IGltcG9ydChcIm5vZGU6ZnMvcHJvbWlzZXNcIilcbiAgYXdhaXQgZnMuYWNjZXNzKHBhdGgsIGZzLmNvbnN0YW50cy5SX09LKVxuXG4gIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBmcy5yZWFkRmlsZShwYXRoLCBcInV0Zi04XCIpXG4gIHJldHVybiBKU09OLnBhcnNlKGNvbnRlbnQpIGFzIFJlY29yZDxzdHJpbmcsIGFueT5cbn1cbiJdfQ==
|
package/build/metadata/node.d.ts
DELETED
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
export declare function loadNodeApis(): Promise<{
|
|
2
|
-
fs: {
|
|
3
|
-
default: typeof import("node:fs/promises");
|
|
4
|
-
access(path: import("fs").PathLike, mode?: number): Promise<void>;
|
|
5
|
-
copyFile(src: import("fs").PathLike, dest: import("fs").PathLike, mode?: number): Promise<void>;
|
|
6
|
-
open(path: import("fs").PathLike, flags?: string | number, mode?: import("fs").Mode): Promise<import("fs/promises").FileHandle>;
|
|
7
|
-
rename(oldPath: import("fs").PathLike, newPath: import("fs").PathLike): Promise<void>;
|
|
8
|
-
truncate(path: import("fs").PathLike, len?: number): Promise<void>;
|
|
9
|
-
rmdir(path: import("fs").PathLike, options?: import("fs").RmDirOptions): Promise<void>;
|
|
10
|
-
rm(path: import("fs").PathLike, options?: import("fs").RmOptions): Promise<void>;
|
|
11
|
-
mkdir(path: import("fs").PathLike, options: import("fs").MakeDirectoryOptions & {
|
|
12
|
-
recursive: true;
|
|
13
|
-
}): Promise<string | undefined>;
|
|
14
|
-
mkdir(path: import("fs").PathLike, options?: import("fs").Mode | (import("fs").MakeDirectoryOptions & {
|
|
15
|
-
recursive?: false | undefined;
|
|
16
|
-
}) | null): Promise<void>;
|
|
17
|
-
mkdir(path: import("fs").PathLike, options?: import("fs").Mode | import("fs").MakeDirectoryOptions | null): Promise<string | undefined>;
|
|
18
|
-
readdir(path: import("fs").PathLike, options?: (import("fs").ObjectEncodingOptions & {
|
|
19
|
-
withFileTypes?: false | undefined;
|
|
20
|
-
recursive?: boolean | undefined;
|
|
21
|
-
}) | BufferEncoding | null): Promise<string[]>;
|
|
22
|
-
readdir(path: import("fs").PathLike, options: {
|
|
23
|
-
encoding: "buffer";
|
|
24
|
-
withFileTypes?: false | undefined;
|
|
25
|
-
recursive?: boolean | undefined;
|
|
26
|
-
} | "buffer"): Promise<Buffer[]>;
|
|
27
|
-
readdir(path: import("fs").PathLike, options?: (import("fs").ObjectEncodingOptions & {
|
|
28
|
-
withFileTypes?: false | undefined;
|
|
29
|
-
recursive?: boolean | undefined;
|
|
30
|
-
}) | BufferEncoding | null): Promise<string[] | Buffer[]>;
|
|
31
|
-
readdir(path: import("fs").PathLike, options: import("fs").ObjectEncodingOptions & {
|
|
32
|
-
withFileTypes: true;
|
|
33
|
-
recursive?: boolean | undefined;
|
|
34
|
-
}): Promise<import("fs").Dirent[]>;
|
|
35
|
-
readlink(path: import("fs").PathLike, options?: import("fs").ObjectEncodingOptions | BufferEncoding | null): Promise<string>;
|
|
36
|
-
readlink(path: import("fs").PathLike, options: import("fs").BufferEncodingOption): Promise<Buffer>;
|
|
37
|
-
readlink(path: import("fs").PathLike, options?: import("fs").ObjectEncodingOptions | string | null): Promise<string | Buffer>;
|
|
38
|
-
symlink(target: import("fs").PathLike, path: import("fs").PathLike, type?: string | null): Promise<void>;
|
|
39
|
-
lstat(path: import("fs").PathLike, opts?: import("fs").StatOptions & {
|
|
40
|
-
bigint?: false | undefined;
|
|
41
|
-
}): Promise<import("fs").Stats>;
|
|
42
|
-
lstat(path: import("fs").PathLike, opts: import("fs").StatOptions & {
|
|
43
|
-
bigint: true;
|
|
44
|
-
}): Promise<import("fs").BigIntStats>;
|
|
45
|
-
lstat(path: import("fs").PathLike, opts?: import("fs").StatOptions): Promise<import("fs").Stats | import("fs").BigIntStats>;
|
|
46
|
-
stat(path: import("fs").PathLike, opts?: import("fs").StatOptions & {
|
|
47
|
-
bigint?: false | undefined;
|
|
48
|
-
}): Promise<import("fs").Stats>;
|
|
49
|
-
stat(path: import("fs").PathLike, opts: import("fs").StatOptions & {
|
|
50
|
-
bigint: true;
|
|
51
|
-
}): Promise<import("fs").BigIntStats>;
|
|
52
|
-
stat(path: import("fs").PathLike, opts?: import("fs").StatOptions): Promise<import("fs").Stats | import("fs").BigIntStats>;
|
|
53
|
-
statfs(path: import("fs").PathLike, opts?: import("fs").StatFsOptions & {
|
|
54
|
-
bigint?: false | undefined;
|
|
55
|
-
}): Promise<import("fs").StatsFs>;
|
|
56
|
-
statfs(path: import("fs").PathLike, opts: import("fs").StatFsOptions & {
|
|
57
|
-
bigint: true;
|
|
58
|
-
}): Promise<import("fs").BigIntStatsFs>;
|
|
59
|
-
statfs(path: import("fs").PathLike, opts?: import("fs").StatFsOptions): Promise<import("fs").StatsFs | import("fs").BigIntStatsFs>;
|
|
60
|
-
link(existingPath: import("fs").PathLike, newPath: import("fs").PathLike): Promise<void>;
|
|
61
|
-
unlink(path: import("fs").PathLike): Promise<void>;
|
|
62
|
-
chmod(path: import("fs").PathLike, mode: import("fs").Mode): Promise<void>;
|
|
63
|
-
lchmod(path: import("fs").PathLike, mode: import("fs").Mode): Promise<void>;
|
|
64
|
-
lchown(path: import("fs").PathLike, uid: number, gid: number): Promise<void>;
|
|
65
|
-
lutimes(path: import("fs").PathLike, atime: import("fs").TimeLike, mtime: import("fs").TimeLike): Promise<void>;
|
|
66
|
-
chown(path: import("fs").PathLike, uid: number, gid: number): Promise<void>;
|
|
67
|
-
utimes(path: import("fs").PathLike, atime: import("fs").TimeLike, mtime: import("fs").TimeLike): Promise<void>;
|
|
68
|
-
realpath(path: import("fs").PathLike, options?: import("fs").ObjectEncodingOptions | BufferEncoding | null): Promise<string>;
|
|
69
|
-
realpath(path: import("fs").PathLike, options: import("fs").BufferEncodingOption): Promise<Buffer>;
|
|
70
|
-
realpath(path: import("fs").PathLike, options?: import("fs").ObjectEncodingOptions | BufferEncoding | null): Promise<string | Buffer>;
|
|
71
|
-
mkdtemp(prefix: string, options?: import("fs").ObjectEncodingOptions | BufferEncoding | null): Promise<string>;
|
|
72
|
-
mkdtemp(prefix: string, options: import("fs").BufferEncodingOption): Promise<Buffer>;
|
|
73
|
-
mkdtemp(prefix: string, options?: import("fs").ObjectEncodingOptions | BufferEncoding | null): Promise<string | Buffer>;
|
|
74
|
-
writeFile(file: import("fs").PathLike | import("fs/promises").FileHandle, data: string | NodeJS.ArrayBufferView | Iterable<string | NodeJS.ArrayBufferView> | AsyncIterable<string | NodeJS.ArrayBufferView> | import("stream"), options?: (import("fs").ObjectEncodingOptions & {
|
|
75
|
-
mode?: import("fs").Mode | undefined;
|
|
76
|
-
flag?: import("fs").OpenMode | undefined;
|
|
77
|
-
flush?: boolean | undefined;
|
|
78
|
-
} & import("events").Abortable) | BufferEncoding | null): Promise<void>;
|
|
79
|
-
appendFile(path: import("fs").PathLike | import("fs/promises").FileHandle, data: string | Uint8Array, options?: (import("fs").ObjectEncodingOptions & import("fs/promises").FlagAndOpenMode & {
|
|
80
|
-
flush?: boolean | undefined;
|
|
81
|
-
}) | BufferEncoding | null): Promise<void>;
|
|
82
|
-
readFile(path: import("fs").PathLike | import("fs/promises").FileHandle, options?: ({
|
|
83
|
-
encoding?: null | undefined;
|
|
84
|
-
flag?: import("fs").OpenMode | undefined;
|
|
85
|
-
} & import("events").Abortable) | null): Promise<Buffer>;
|
|
86
|
-
readFile(path: import("fs").PathLike | import("fs/promises").FileHandle, options: ({
|
|
87
|
-
encoding: BufferEncoding;
|
|
88
|
-
flag?: import("fs").OpenMode | undefined;
|
|
89
|
-
} & import("events").Abortable) | BufferEncoding): Promise<string>;
|
|
90
|
-
readFile(path: import("fs").PathLike | import("fs/promises").FileHandle, options?: (import("fs").ObjectEncodingOptions & import("events").Abortable & {
|
|
91
|
-
flag?: import("fs").OpenMode | undefined;
|
|
92
|
-
}) | BufferEncoding | null): Promise<string | Buffer>;
|
|
93
|
-
opendir(path: import("fs").PathLike, options?: import("fs").OpenDirOptions): Promise<import("fs").Dir>;
|
|
94
|
-
watch(filename: import("fs").PathLike, options: (import("fs").WatchOptions & {
|
|
95
|
-
encoding: "buffer";
|
|
96
|
-
}) | "buffer"): AsyncIterable<import("fs/promises").FileChangeInfo<Buffer>>;
|
|
97
|
-
watch(filename: import("fs").PathLike, options?: import("fs").WatchOptions | BufferEncoding): AsyncIterable<import("fs/promises").FileChangeInfo<string>>;
|
|
98
|
-
watch(filename: import("fs").PathLike, options: import("fs").WatchOptions | string): AsyncIterable<import("fs/promises").FileChangeInfo<string>> | AsyncIterable<import("fs/promises").FileChangeInfo<Buffer>>;
|
|
99
|
-
cp(source: string | URL, destination: string | URL, opts?: import("fs").CopyOptions): Promise<void>;
|
|
100
|
-
glob(pattern: string | string[]): NodeJS.AsyncIterator<string>;
|
|
101
|
-
glob(pattern: string | string[], opt: import("fs").GlobOptionsWithFileTypes): NodeJS.AsyncIterator<import("fs").Dirent>;
|
|
102
|
-
glob(pattern: string | string[], opt: import("fs").GlobOptionsWithoutFileTypes): NodeJS.AsyncIterator<string>;
|
|
103
|
-
glob(pattern: string | string[], opt: import("fs").GlobOptions): NodeJS.AsyncIterator<import("fs").Dirent | string>;
|
|
104
|
-
constants: typeof import("fs").constants;
|
|
105
|
-
};
|
|
106
|
-
path: {
|
|
107
|
-
default: import("path").PlatformPath;
|
|
108
|
-
normalize(path: string): string;
|
|
109
|
-
join(...paths: string[]): string;
|
|
110
|
-
resolve(...paths: string[]): string;
|
|
111
|
-
matchesGlob(path: string, pattern: string): boolean;
|
|
112
|
-
isAbsolute(path: string): boolean;
|
|
113
|
-
relative(from: string, to: string): string;
|
|
114
|
-
dirname(path: string): string;
|
|
115
|
-
basename(path: string, suffix?: string): string;
|
|
116
|
-
extname(path: string): string;
|
|
117
|
-
sep: "\\" | "/";
|
|
118
|
-
delimiter: ";" | ":";
|
|
119
|
-
parse(path: string): import("path").ParsedPath;
|
|
120
|
-
format(pathObject: import("path").FormatInputPathObject): string;
|
|
121
|
-
toNamespacedPath(path: string): string;
|
|
122
|
-
posix: import("path").PlatformPath;
|
|
123
|
-
win32: import("path").PlatformPath;
|
|
124
|
-
};
|
|
125
|
-
} | undefined>;
|
package/build/metadata/node.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export async function loadNodeApis() {
|
|
2
|
-
if (globalThis.process) {
|
|
3
|
-
const fs = await import("node:fs/promises");
|
|
4
|
-
const path = await import("node:path");
|
|
5
|
-
return { fs, path };
|
|
6
|
-
}
|
|
7
|
-
return undefined;
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL21ldGFkYXRhL25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLEtBQUssVUFBVSxZQUFZO0lBQ2hDLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFDM0MsTUFBTSxJQUFJLEdBQUcsTUFBTSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDdEMsT0FBTyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQTtJQUNyQixDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUE7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkTm9kZUFwaXMoKSB7XG4gIGlmIChnbG9iYWxUaGlzLnByb2Nlc3MpIHtcbiAgICBjb25zdCBmcyA9IGF3YWl0IGltcG9ydChcIm5vZGU6ZnMvcHJvbWlzZXNcIilcbiAgICBjb25zdCBwYXRoID0gYXdhaXQgaW1wb3J0KFwibm9kZTpwYXRoXCIpXG4gICAgcmV0dXJuIHsgZnMsIHBhdGggfVxuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZFxufVxuIl19
|
package/build/metadata/save.d.ts
DELETED
package/build/metadata/save.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { loadNodeApis } from "./node.js";
|
|
2
|
-
/**
|
|
3
|
-
* Save a metadata (JSON Object) to a file path
|
|
4
|
-
* Works in Node.js environments
|
|
5
|
-
*/
|
|
6
|
-
export async function saveMetadata(props) {
|
|
7
|
-
const { metadata, path } = props;
|
|
8
|
-
const node = await loadNodeApis();
|
|
9
|
-
if (!node) {
|
|
10
|
-
throw new Error("File system operations are not supported in this environment");
|
|
11
|
-
}
|
|
12
|
-
const content = JSON.stringify(metadata, null, 2);
|
|
13
|
-
await node.fs.mkdir(node.path.dirname(path), { recursive: true });
|
|
14
|
-
await node.fs.writeFile(path, content, "utf-8");
|
|
15
|
-
return true;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL21ldGFkYXRhL3NhdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUV4Qzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFlBQVksQ0FBQyxLQUdsQztJQUNDLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFBO0lBRWhDLE1BQU0sSUFBSSxHQUFHLE1BQU0sWUFBWSxFQUFFLENBQUE7SUFDakMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1YsTUFBTSxJQUFJLEtBQUssQ0FDYiw4REFBOEQsQ0FDL0QsQ0FBQTtJQUNILENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFFakQsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBQ2pFLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUUvQyxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBsb2FkTm9kZUFwaXMgfSBmcm9tIFwiLi9ub2RlLmpzXCJcblxuLyoqXG4gKiBTYXZlIGEgbWV0YWRhdGEgKEpTT04gT2JqZWN0KSB0byBhIGZpbGUgcGF0aFxuICogV29ya3MgaW4gTm9kZS5qcyBlbnZpcm9ubWVudHNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNhdmVNZXRhZGF0YShwcm9wczoge1xuICBtZXRhZGF0YTogUmVjb3JkPHN0cmluZywgYW55PlxuICBwYXRoOiBzdHJpbmdcbn0pIHtcbiAgY29uc3QgeyBtZXRhZGF0YSwgcGF0aCB9ID0gcHJvcHNcblxuICBjb25zdCBub2RlID0gYXdhaXQgbG9hZE5vZGVBcGlzKClcbiAgaWYgKCFub2RlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJGaWxlIHN5c3RlbSBvcGVyYXRpb25zIGFyZSBub3Qgc3VwcG9ydGVkIGluIHRoaXMgZW52aXJvbm1lbnRcIixcbiAgICApXG4gIH1cblxuICBjb25zdCBjb250ZW50ID0gSlNPTi5zdHJpbmdpZnkobWV0YWRhdGEsIG51bGwsIDIpXG5cbiAgYXdhaXQgbm9kZS5mcy5ta2Rpcihub2RlLnBhdGguZGlybmFtZShwYXRoKSwgeyByZWN1cnNpdmU6IHRydWUgfSlcbiAgYXdhaXQgbm9kZS5mcy53cml0ZUZpbGUocGF0aCwgY29udGVudCwgXCJ1dGYtOFwiKVxuXG4gIHJldHVybiB0cnVlXG59XG4iXX0=
|