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,80 +0,0 @@
|
|
|
1
|
-
import * as fs from "node:fs/promises";
|
|
2
|
-
import * as path from "node:path";
|
|
3
|
-
import { temporaryDirectory } from "tempy";
|
|
4
|
-
import { afterEach, beforeEach, describe, expect, it } from "vitest";
|
|
5
|
-
import { saveMetadata } from "./save.js";
|
|
6
|
-
describe("saveMetadata", () => {
|
|
7
|
-
const testMetadata = {
|
|
8
|
-
name: "test-metadata",
|
|
9
|
-
version: "1.0.0",
|
|
10
|
-
description: "Test metadata for save function",
|
|
11
|
-
resources: [
|
|
12
|
-
{
|
|
13
|
-
name: "resource1",
|
|
14
|
-
path: "data/resource1.csv",
|
|
15
|
-
},
|
|
16
|
-
],
|
|
17
|
-
};
|
|
18
|
-
let testDir;
|
|
19
|
-
let testPath;
|
|
20
|
-
beforeEach(() => {
|
|
21
|
-
testDir = temporaryDirectory();
|
|
22
|
-
testPath = path.join(testDir, "metadata.json");
|
|
23
|
-
});
|
|
24
|
-
afterEach(async () => {
|
|
25
|
-
try {
|
|
26
|
-
await fs.rm(testDir, { recursive: true, force: true });
|
|
27
|
-
}
|
|
28
|
-
catch (error) {
|
|
29
|
-
if (error instanceof Error && !error.message.includes("ENOENT")) {
|
|
30
|
-
console.error(`Failed to clean up test directory: ${testDir}`, error);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
it("should save a metadata to the specified path", async () => {
|
|
35
|
-
const result = await saveMetadata({
|
|
36
|
-
metadata: testMetadata,
|
|
37
|
-
path: testPath,
|
|
38
|
-
});
|
|
39
|
-
expect(result).toBe(true);
|
|
40
|
-
const fileExists = await fs
|
|
41
|
-
.stat(testPath)
|
|
42
|
-
.then(() => true)
|
|
43
|
-
.catch(() => false);
|
|
44
|
-
expect(fileExists).toBe(true);
|
|
45
|
-
const content = await fs.readFile(testPath, "utf-8");
|
|
46
|
-
const parsedContent = JSON.parse(content);
|
|
47
|
-
expect(parsedContent).toEqual(testMetadata);
|
|
48
|
-
});
|
|
49
|
-
it("should save a metadata to a nested directory path", async () => {
|
|
50
|
-
const nestedPath = path.join(testDir, "nested", "dir", "metadata.json");
|
|
51
|
-
const result = await saveMetadata({
|
|
52
|
-
metadata: testMetadata,
|
|
53
|
-
path: nestedPath,
|
|
54
|
-
});
|
|
55
|
-
expect(result).toBe(true);
|
|
56
|
-
const fileExists = await fs
|
|
57
|
-
.stat(nestedPath)
|
|
58
|
-
.then(() => true)
|
|
59
|
-
.catch(() => false);
|
|
60
|
-
expect(fileExists).toBe(true);
|
|
61
|
-
const content = await fs.readFile(nestedPath, "utf-8");
|
|
62
|
-
const parsedContent = JSON.parse(content);
|
|
63
|
-
expect(parsedContent).toEqual(testMetadata);
|
|
64
|
-
});
|
|
65
|
-
it("should use pretty formatting with 2-space indentation", async () => {
|
|
66
|
-
await saveMetadata({
|
|
67
|
-
metadata: testMetadata,
|
|
68
|
-
path: testPath,
|
|
69
|
-
});
|
|
70
|
-
const content = await fs.readFile(testPath, "utf-8");
|
|
71
|
-
const expectedFormat = JSON.stringify(testMetadata, null, 2);
|
|
72
|
-
expect(content).toEqual(expectedFormat);
|
|
73
|
-
const lines = content.split("\n");
|
|
74
|
-
expect(lines.length).toBeGreaterThan(1);
|
|
75
|
-
if (lines.length > 1 && lines[1]) {
|
|
76
|
-
expect(lines[1].startsWith(" ")).toBe(true);
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbWV0YWRhdGEvc2F2ZS5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDdEMsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUE7QUFDakMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sT0FBTyxDQUFBO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFeEMsUUFBUSxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUU7SUFDNUIsTUFBTSxZQUFZLEdBQUc7UUFDbkIsSUFBSSxFQUFFLGVBQWU7UUFDckIsT0FBTyxFQUFFLE9BQU87UUFDaEIsV0FBVyxFQUFFLGlDQUFpQztRQUM5QyxTQUFTLEVBQUU7WUFDVDtnQkFDRSxJQUFJLEVBQUUsV0FBVztnQkFDakIsSUFBSSxFQUFFLG9CQUFvQjthQUMzQjtTQUNGO0tBQ0YsQ0FBQTtJQUVELElBQUksT0FBZSxDQUFBO0lBQ25CLElBQUksUUFBZ0IsQ0FBQTtJQUVwQixVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsT0FBTyxHQUFHLGtCQUFrQixFQUFFLENBQUE7UUFDOUIsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFBO0lBQ2hELENBQUMsQ0FBQyxDQUFBO0lBRUYsU0FBUyxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ25CLElBQUksQ0FBQztZQUNILE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQ3hELENBQUM7UUFB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QUMsQ0FBQTtRQUV2QyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2pDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRXZDLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDakMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDOUMsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJub2RlOnBhdGhcIlxuaW1wb3J0IHsgdGVtcG9yYXJ5RGlyZWN0b3J5IH0gZnJvbSBcInRlbXB5XCJcbmltcG9ydCB7IGFmdGVyRWFjaCwgYmVmb3JlRWFjaCwgZGVzY3JpYmUsIGV4cGVjdCwgaXQgfSBmcm9tIFwidml0ZXN0XCJcbmltcG9ydCB7IHNhdmVNZXRhZGF0YSB9IGZyb20gXCIuL3NhdmUuanNcIlxuXG5kZXNjcmliZShcInNhdmVNZXRhZGF0YVwiLCAoKSA9PiB7XG4gIGNvbnN0IHRlc3RNZXRhZGF0YSA9IHtcbiAgICBuYW1lOiBcInRlc3QtbWV0YWRhdGFcIixcbiAgICB2ZXJzaW9uOiBcIjEuMC4wXCIsXG4gICAgZGVzY3JpcHRpb246IFwiVGVzdCBtZXRhZGF0YSBmb3Igc2F2ZSBmdW5jdGlvblwiLFxuICAgIHJlc291cmNlczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiBcInJlc291cmNlMVwiLFxuICAgICAgICBwYXRoOiBcImRhdGEvcmVzb3VyY2UxLmNzdlwiLFxuICAgICAgfSxcbiAgICBdLFxuICB9XG5cbiAgbGV0IHRlc3REaXI6IHN0cmluZ1xuICBsZXQgdGVzdFBhdGg6IHN0cmluZ1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIHRlc3REaXIgPSB0ZW1wb3JhcnlEaXJlY3RvcnkoKVxuICAgIHRlc3RQYXRoID0gcGF0aC5qb2luKHRlc3REaXIsIFwibWV0YWRhdGEuanNvblwiKVxuICB9KVxuXG4gIGFmdGVyRWFjaChhc3luYyAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGZzLnJtKHRlc3REaXIsIHsgcmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZSB9KVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciAmJiAhZXJyb3IubWVzc2FnZS5pbmNsdWRlcyhcIkVOT0VOVFwiKSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gY2xlYW4gdXAgdGVzdCBkaXJlY3Rvcnk6ICR7dGVzdERpcn1gLCBlcnJvcilcbiAgICAgIH1cbiAgICB9XG4gIH0pXG5cbiAgaXQoXCJzaG91bGQgc2F2ZSBhIG1ldGFkYXRhIHRvIHRoZSBzcGVjaWZpZWQgcGF0aFwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2F2ZU1ldGFkYXRhKHtcbiAgICAgIG1ldGFkYXRhOiB0ZXN0TWV0YWRhdGEsXG4gICAgICBwYXRoOiB0ZXN0UGF0aCxcbiAgICB9KVxuXG4gICAgZXhwZWN0KHJlc3VsdCkudG9CZSh0cnVlKVxuXG4gICAgY29uc3QgZmlsZUV4aXN0cyA9IGF3YWl0IGZzXG4gICAgICAuc3RhdCh0ZXN0UGF0aClcbiAgICAgIC50aGVuKCgpID0+IHRydWUpXG4gICAgICAuY2F0Y2goKCkgPT4gZmFsc2UpXG4gICAgZXhwZWN0KGZpbGVFeGlzdHMpLnRvQmUodHJ1ZSlcblxuICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBmcy5yZWFkRmlsZSh0ZXN0UGF0aCwgXCJ1dGYtOFwiKVxuICAgIGNvbnN0IHBhcnNlZENvbnRlbnQgPSBKU09OLnBhcnNlKGNvbnRlbnQpXG4gICAgZXhwZWN0KHBhcnNlZENvbnRlbnQpLnRvRXF1YWwodGVzdE1ldGFkYXRhKVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIHNhdmUgYSBtZXRhZGF0YSB0byBhIG5lc3RlZCBkaXJlY3RvcnkgcGF0aFwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgbmVzdGVkUGF0aCA9IHBhdGguam9pbih0ZXN0RGlyLCBcIm5lc3RlZFwiLCBcImRpclwiLCBcIm1ldGFkYXRhLmpzb25cIilcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHNhdmVNZXRhZGF0YSh7XG4gICAgICBtZXRhZGF0YTogdGVzdE1ldGFkYXRhLFxuICAgICAgcGF0aDogbmVzdGVkUGF0aCxcbiAgICB9KVxuXG4gICAgZXhwZWN0KHJlc3VsdCkudG9CZSh0cnVlKVxuXG4gICAgY29uc3QgZmlsZUV4aXN0cyA9IGF3YWl0IGZzXG4gICAgICAuc3RhdChuZXN0ZWRQYXRoKVxuICAgICAgLnRoZW4oKCkgPT4gdHJ1ZSlcbiAgICAgIC5jYXRjaCgoKSA9PiBmYWxzZSlcbiAgICBleHBlY3QoZmlsZUV4aXN0cykudG9CZSh0cnVlKVxuXG4gICAgY29uc3QgY29udGVudCA9IGF3YWl0IGZzLnJlYWRGaWxlKG5lc3RlZFBhdGgsIFwidXRmLThcIilcbiAgICBjb25zdCBwYXJzZWRDb250ZW50ID0gSlNPTi5wYXJzZShjb250ZW50KVxuICAgIGV4cGVjdChwYXJzZWRDb250ZW50KS50b0VxdWFsKHRlc3RNZXRhZGF0YSlcbiAgfSlcblxuICBpdChcInNob3VsZCB1c2UgcHJldHR5IGZvcm1hdHRpbmcgd2l0aCAyLXNwYWNlIGluZGVudGF0aW9uXCIsIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBzYXZlTWV0YWRhdGEoe1xuICAgICAgbWV0YWRhdGE6IHRlc3RNZXRhZGF0YSxcbiAgICAgIHBhdGg6IHRlc3RQYXRoLFxuICAgIH0pXG5cbiAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgZnMucmVhZEZpbGUodGVzdFBhdGgsIFwidXRmLThcIilcbiAgICBjb25zdCBleHBlY3RlZEZvcm1hdCA9IEpTT04uc3RyaW5naWZ5KHRlc3RNZXRhZGF0YSwgbnVsbCwgMilcbiAgICBleHBlY3QoY29udGVudCkudG9FcXVhbChleHBlY3RlZEZvcm1hdClcblxuICAgIGNvbnN0IGxpbmVzID0gY29udGVudC5zcGxpdChcIlxcblwiKVxuICAgIGV4cGVjdChsaW5lcy5sZW5ndGgpLnRvQmVHcmVhdGVyVGhhbigxKVxuXG4gICAgaWYgKGxpbmVzLmxlbmd0aCA+IDEgJiYgbGluZXNbMV0pIHtcbiAgICAgIGV4cGVjdChsaW5lc1sxXS5zdGFydHNXaXRoKFwiICBcIikpLnRvQmUodHJ1ZSlcbiAgICB9XG4gIH0pXG59KVxuIl19
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Validate a metadata (JSON Object) against a JSON Schema
|
|
3
|
-
* It uses Ajv for JSON Schema validation under the hood
|
|
4
|
-
* It returns a list of errors (empty if valid)
|
|
5
|
-
*/
|
|
6
|
-
export declare function validateMetadata(props: {
|
|
7
|
-
metadata: Record<string, any>;
|
|
8
|
-
profile: Record<string, any>;
|
|
9
|
-
}): Promise<import("ajv").ErrorObject<string, Record<string, any>, unknown>[]>;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Ajv } from "ajv";
|
|
2
|
-
/**
|
|
3
|
-
* Validate a metadata (JSON Object) against a JSON Schema
|
|
4
|
-
* It uses Ajv for JSON Schema validation under the hood
|
|
5
|
-
* It returns a list of errors (empty if valid)
|
|
6
|
-
*/
|
|
7
|
-
export async function validateMetadata(props) {
|
|
8
|
-
const { metadata, profile } = props;
|
|
9
|
-
const ajv = new Ajv();
|
|
10
|
-
const validate = ajv.compile(profile);
|
|
11
|
-
validate(metadata);
|
|
12
|
-
return validate.errors ?? [];
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9tZXRhZGF0YS92YWxpZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sS0FBSyxDQUFBO0FBRXpCOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGdCQUFnQixDQUFDLEtBR3RDO0lBQ0MsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUE7SUFFbkMsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQTtJQUNyQixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3JDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNsQixPQUFPLFFBQVEsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFBO0FBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBanYgfSBmcm9tIFwiYWp2XCJcblxuLyoqXG4gKiBWYWxpZGF0ZSBhIG1ldGFkYXRhIChKU09OIE9iamVjdCkgYWdhaW5zdCBhIEpTT04gU2NoZW1hXG4gKiBJdCB1c2VzIEFqdiBmb3IgSlNPTiBTY2hlbWEgdmFsaWRhdGlvbiB1bmRlciB0aGUgaG9vZFxuICogSXQgcmV0dXJucyBhIGxpc3Qgb2YgZXJyb3JzIChlbXB0eSBpZiB2YWxpZClcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHZhbGlkYXRlTWV0YWRhdGEocHJvcHM6IHtcbiAgbWV0YWRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgcHJvZmlsZTogUmVjb3JkPHN0cmluZywgYW55PlxufSkge1xuICBjb25zdCB7IG1ldGFkYXRhLCBwcm9maWxlIH0gPSBwcm9wc1xuXG4gIGNvbnN0IGFqdiA9IG5ldyBBanYoKVxuICBjb25zdCB2YWxpZGF0ZSA9IGFqdi5jb21waWxlKHByb2ZpbGUpXG4gIHZhbGlkYXRlKG1ldGFkYXRhKVxuICByZXR1cm4gdmFsaWRhdGUuZXJyb3JzID8/IFtdXG59XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from "vitest";
|
|
2
|
-
import { validateMetadata } from "./validate.js";
|
|
3
|
-
describe("validateMetadata", () => {
|
|
4
|
-
it("returns empty array for valid metadata", 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 metadata = {
|
|
15
|
-
name: "test-package",
|
|
16
|
-
version: "1.0.0",
|
|
17
|
-
description: "A test package",
|
|
18
|
-
};
|
|
19
|
-
const result = await validateMetadata({
|
|
20
|
-
metadata,
|
|
21
|
-
profile,
|
|
22
|
-
});
|
|
23
|
-
expect(result).toEqual([]);
|
|
24
|
-
});
|
|
25
|
-
it("returns validation errors for invalid metadata", 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 metadata = {
|
|
36
|
-
name: "test-package",
|
|
37
|
-
version: 123,
|
|
38
|
-
description: "A test package with wrong version type",
|
|
39
|
-
};
|
|
40
|
-
const result = await validateMetadata({
|
|
41
|
-
metadata,
|
|
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 metadata = {
|
|
65
|
-
name: "test-package",
|
|
66
|
-
version: "1.0.0",
|
|
67
|
-
};
|
|
68
|
-
const result = await validateMetadata({
|
|
69
|
-
metadata,
|
|
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 metadata", 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 metadata = {
|
|
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 validateMetadata({
|
|
113
|
-
metadata,
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL21ldGFkYXRhL3ZhbGlkYXRlLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQzdDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUVoRCxRQUFRLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFO0lBQ2hDLEVBQUUsQ0FBQyx3Q0FBd0MsRUFBRSxLQUFLLElBQUksRUFBRTtRQUN0RCxNQUFNLE9BQU8sR0FBRztZQUNkLElBQUksRUFBRSxRQUFRO1lBQ2QsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQztZQUM3QixVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtnQkFDeEIsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtnQkFDM0IsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTthQUNoQztTQUNGLENBQUE7UUFFRCxNQUFNLFFBQVEsR0FBRztZQUNmLElBQUksRUFBRSxjQUFjO1lBQ3BCLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLFdBQVcsRUFBRSxnQkFBZ0I7U0FDOUIsQ0FBQTtRQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sZ0JBQWdCLENBQUM7WUFDcEMsUUFBUTtZQUNSLE9BQU87U0FDUixDQUFDLENBQUE7UUFFRixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQzVCLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLGdEQUFnRCxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQzlELE1BQU0sT0FBTyxHQUFHO1lBQ2QsSUFBSSxFQUFFLFFBQVE7WUFDZCxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVB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WUFBWSxLQUFLLGVBQWU7WUFDdEMsS0FBSyxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQzlCLENBQUE7UUFFRCxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDekMsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlc2NyaWJlLCBleHBlY3QsIGl0IH0gZnJvbSBcInZpdGVzdFwiXG5pbXBvcnQgeyB2YWxpZGF0ZU1ldGFkYXRhIH0gZnJvbSBcIi4vdmFsaWRhdGUuanNcIlxuXG5kZXNjcmliZShcInZhbGlkYXRlTWV0YWRhdGFcIiwgKCkgPT4ge1xuICBpdChcInJldHVybnMgZW1wdHkgYXJyYXkgZm9yIHZhbGlkIG1ldGFkYXRhXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwcm9maWxlID0ge1xuICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgIHJlcXVpcmVkOiBbXCJuYW1lXCIsIFwidmVyc2lvblwiXSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgbmFtZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgIHZlcnNpb246IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICBkZXNjcmlwdGlvbjogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICB9LFxuICAgIH1cblxuICAgIGNvbnN0IG1ldGFkYXRhID0ge1xuICAgICAgbmFtZTogXCJ0ZXN0LXBhY2thZ2VcIixcbiAgICAgIHZlcnNpb246IFwiMS4wLjBcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkEgdGVzdCBwYWNrYWdlXCIsXG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdmFsaWRhdGVNZXRhZGF0YSh7XG4gICAgICBtZXRhZGF0YSxcbiAgICAgIHByb2ZpbGUsXG4gICAgfSlcblxuICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoW10pXG4gIH0pXG5cbiAgaXQoXCJyZXR1cm5zIHZhbGlkYXRpb24gZXJyb3JzIGZvciBpbnZhbGlkIG1ldGFkYXRhXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwcm9maWxlID0ge1xuICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgIHJlcXVpcmVkOiBbXCJuYW1lXCIsIFwidmVyc2lvblwiXSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgbmFtZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgIHZlcnNpb246IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICBkZXNjcmlwdGlvbjogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICB9LFxuICAgIH1cblxuICAgIGNvbnN0IG1ldGFkYXRhID0ge1xuICAgICAgbmFtZTogXCJ0ZXN0LXBhY2thZ2VcIixcbiAgICAgIHZlcnNpb246IDEyMyxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkEgdGVzdCBwYWNrYWdlIHdpdGggd3JvbmcgdmVyc2lvbiB0eXBlXCIsXG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdmFsaWRhdGVNZXRhZGF0YSh7XG4gICAgICBtZXRhZGF0YSxcbiAgICAgIHByb2ZpbGUsXG4gICAgfSlcblxuICAgIGV4cGVjdChyZXN1bHQpLm5vdC50b0JlTnVsbCgpXG4gICAgZXhwZWN0KEFycmF5LmlzQXJyYXkocmVzdWx0KSkudG9CZSh0cnVlKVxuICAgIGV4cGVjdChyZXN1bHQubGVuZ3RoKS50b0JlR3JlYXRlclRoYW4oMClcblxuICAgIGNvbnN0IGVycm9yID0gcmVzdWx0WzBdXG4gICAgZXhwZWN0KGVycm9yKS50b0JlRGVmaW5lZCgpXG4gICAgaWYgKGVycm9yKSB7XG4gICAgICBleHBlY3QoZXJyb3Iua2V5d29yZCkudG9CZShcInR5cGVcIilcbiAgICAgIGV4cGVjdChlcnJvci5pbnN0YW5jZVBhdGgpLnRvQmUoXCIvdmVyc2lvblwiKVxuICAgIH1cbiAgfSlcblxuICBpdChcInJldHVybnMgZXJyb3JzIHdoZW4gcmVxdWlyZWQgZmllbGRzIGFyZSBtaXNzaW5nXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwcm9maWxlID0ge1xuICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgIHJlcXVpcmVkOiBbXCJuYW1lXCIsIFwidmVyc2lvblwiLCBcInJlcXVpcmVkX2ZpZWxkXCJdLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBuYW1lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgdmVyc2lvbjogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgIHJlcXVpcmVkX2ZpZWxkOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgY29uc3QgbWV0YWRhdGEgPSB7XG4gICAgICBuYW1lOiBcInRlc3QtcGFja2FnZVwiLFxuICAgICAgdmVyc2lvbjogXCIxLjAuMFwiLFxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHZhbGlkYXRlTWV0YWRhdGEoe1xuICAgICAgbWV0YWRhdGEsXG4gICAgICBwcm9maWxlLFxuICAgIH0pXG5cbiAgICBleHBlY3QoQXJyYXkuaXNBcnJheShyZXN1bHQpKS50b0JlKHRydWUpXG4gICAgZXhwZWN0KHJlc3VsdC5sZW5ndGgpLnRvQmVHcmVhdGVyVGhhbigwKVxuXG4gICAgY29uc3QgZXJyb3IgPSByZXN1bHRbMF1cbiAgICBleHBlY3QoZXJyb3IpLnRvQmVEZWZpbmVkKClcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIGV4cGVjdChlcnJvci5rZXl3b3JkKS50b0JlKFwicmVxdWlyZWRcIilcbiAgICAgIGV4cGVjdChlcnJvci5wYXJhbXMpLnRvQmVEZWZpbmVkKClcbiAgICAgIGlmIChlcnJvci5wYXJhbXMpIHtcbiAgICAgICAgZXhwZWN0KGVycm9yLnBhcmFtcy5taXNzaW5nUHJvcGVydHkpLnRvQmUoXCJyZXF1aXJlZF9maWVsZFwiKVxuICAgICAgfVxuICAgIH1cbiAgfSlcblxuICBpdChcInZhbGlkYXRlcyBuZXN0ZWQgb2JqZWN0cyBpbiB0aGUgbWV0YWRhdGFcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHByb2ZpbGUgPSB7XG4gICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgcmVxdWlyZWQ6IFtcIm5hbWVcIiwgXCJ2ZXJzaW9uXCIsIFwiYXV0aG9yXCJdLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBuYW1lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgdmVyc2lvbjogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgIGF1dGhvcjoge1xuICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgcmVxdWlyZWQ6IFtcIm5hbWVcIiwgXCJlbWFpbFwiXSxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBuYW1lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgIGVtYWlsOiB7XG4gICAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIHBhdHRlcm46IFwiXlteQF0rQFteQF0rXFxcXC5bXkBdKyRcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgY29uc3QgbWV0YWRhdGEgPSB7XG4gICAgICBuYW1lOiBcInRlc3QtcGFja2FnZVwiLFxuICAgICAgdmVyc2lvbjogXCIxLjAuMFwiLFxuICAgICAgYXV0aG9yOiB7XG4gICAgICAgIG5hbWU6IFwiVGVzdCBBdXRob3JcIixcbiAgICAgICAgZW1haWw6IFwiaW52YWxpZC1lbWFpbFwiLFxuICAgICAgfSxcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB2YWxpZGF0ZU1ldGFkYXRhKHtcbiAgICAgIG1ldGFkYXRhLFxuICAgICAgcHJvZmlsZSxcbiAgICB9KVxuXG4gICAgZXhwZWN0KEFycmF5LmlzQXJyYXkocmVzdWx0KSkudG9CZSh0cnVlKVxuICAgIGV4cGVjdChyZXN1bHQubGVuZ3RoKS50b0JlR3JlYXRlclRoYW4oMClcblxuICAgIGNvbnN0IGhhc0VtYWlsUGF0dGVybkVycm9yID0gcmVzdWx0LnNvbWUoXG4gICAgICBlcnJvciA9PlxuICAgICAgICBlcnJvciAmJlxuICAgICAgICBlcnJvci5pbnN0YW5jZVBhdGggPT09IFwiL2F1dGhvci9lbWFpbFwiICYmXG4gICAgICAgIGVycm9yLmtleXdvcmQgPT09IFwicGF0dGVyblwiLFxuICAgIClcblxuICAgIGV4cGVjdChoYXNFbWFpbFBhdHRlcm5FcnJvcikudG9CZSh0cnVlKVxuICB9KVxufSlcbiJdfQ==
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Contributor information
|
|
3
|
-
*/
|
|
4
|
-
export interface Contributor {
|
|
5
|
-
/**
|
|
6
|
-
* Full name of the contributor
|
|
7
|
-
*/
|
|
8
|
-
title: string;
|
|
9
|
-
/**
|
|
10
|
-
* Email address of the contributor
|
|
11
|
-
*/
|
|
12
|
-
email?: string;
|
|
13
|
-
/**
|
|
14
|
-
* Path to relevant contributor information
|
|
15
|
-
*/
|
|
16
|
-
path?: string;
|
|
17
|
-
/**
|
|
18
|
-
* Role of the contributor
|
|
19
|
-
*/
|
|
20
|
-
role?: string;
|
|
21
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJpYnV0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9wYWNrYWdlL0NvbnRyaWJ1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbnRyaWJ1dG9yIGluZm9ybWF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udHJpYnV0b3Ige1xuICAvKipcbiAgICogRnVsbCBuYW1lIG9mIHRoZSBjb250cmlidXRvclxuICAgKi9cbiAgdGl0bGU6IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBFbWFpbCBhZGRyZXNzIG9mIHRoZSBjb250cmlidXRvclxuICAgKi9cbiAgZW1haWw/OiBzdHJpbmdcblxuICAvKipcbiAgICogUGF0aCB0byByZWxldmFudCBjb250cmlidXRvciBpbmZvcm1hdGlvblxuICAgKi9cbiAgcGF0aD86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBSb2xlIG9mIHRoZSBjb250cmlidXRvclxuICAgKi9cbiAgcm9sZT86IHN0cmluZ1xufVxuIl19
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import type { License } from "../resource/License.js";
|
|
2
|
-
import type { Resource } from "../resource/Resource.js";
|
|
3
|
-
import type { Source } from "../resource/Source.js";
|
|
4
|
-
import type { Contributor } from "./Contributor.js";
|
|
5
|
-
/**
|
|
6
|
-
* Data Package interface based on the Frictionless Data specification
|
|
7
|
-
* @see https://datapackage.org/standard/data-package/
|
|
8
|
-
*/
|
|
9
|
-
export interface Package {
|
|
10
|
-
/**
|
|
11
|
-
* Unique package identifier
|
|
12
|
-
* Should use lowercase alphanumeric characters, periods, hyphens, and underscores
|
|
13
|
-
*/
|
|
14
|
-
name: string;
|
|
15
|
-
/**
|
|
16
|
-
* Package schema URL for validation
|
|
17
|
-
*/
|
|
18
|
-
$schema?: string;
|
|
19
|
-
/**
|
|
20
|
-
* Human-readable title
|
|
21
|
-
*/
|
|
22
|
-
title?: string;
|
|
23
|
-
/**
|
|
24
|
-
* A description of the package
|
|
25
|
-
*/
|
|
26
|
-
description?: string;
|
|
27
|
-
/**
|
|
28
|
-
* A URL for the home page of the package
|
|
29
|
-
*/
|
|
30
|
-
homepage?: string;
|
|
31
|
-
/**
|
|
32
|
-
* Version of the package using SemVer
|
|
33
|
-
* @example "1.0.0"
|
|
34
|
-
*/
|
|
35
|
-
version?: string;
|
|
36
|
-
/**
|
|
37
|
-
* License information
|
|
38
|
-
*/
|
|
39
|
-
licenses?: License[];
|
|
40
|
-
/**
|
|
41
|
-
* List of contributors
|
|
42
|
-
*/
|
|
43
|
-
contributors?: Contributor[];
|
|
44
|
-
/**
|
|
45
|
-
* Data sources for this package
|
|
46
|
-
*/
|
|
47
|
-
sources?: Source[];
|
|
48
|
-
/**
|
|
49
|
-
* Keywords for the package
|
|
50
|
-
*/
|
|
51
|
-
keywords?: string[];
|
|
52
|
-
/**
|
|
53
|
-
* Create time of the package
|
|
54
|
-
* @format ISO 8601 format
|
|
55
|
-
*/
|
|
56
|
-
created?: string;
|
|
57
|
-
/**
|
|
58
|
-
* Data resources in this package (required)
|
|
59
|
-
*/
|
|
60
|
-
resources: Resource[];
|
|
61
|
-
/**
|
|
62
|
-
* Package image
|
|
63
|
-
*/
|
|
64
|
-
image?: string;
|
|
65
|
-
}
|
package/build/package/Package.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3BhY2thZ2UvUGFja2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMaWNlbnNlIH0gZnJvbSBcIi4uL3Jlc291cmNlL0xpY2Vuc2UuanNcIlxuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZSB9IGZyb20gXCIuLi9yZXNvdXJjZS9SZXNvdXJjZS5qc1wiXG5pbXBvcnQgdHlwZSB7IFNvdXJjZSB9IGZyb20gXCIuLi9yZXNvdXJjZS9Tb3VyY2UuanNcIlxuaW1wb3J0IHR5cGUgeyBDb250cmlidXRvciB9IGZyb20gXCIuL0NvbnRyaWJ1dG9yLmpzXCJcblxuLyoqXG4gKiBEYXRhIFBhY2thZ2UgaW50ZXJmYWNlIGJhc2VkIG9uIHRoZSBGcmljdGlvbmxlc3MgRGF0YSBzcGVjaWZpY2F0aW9uXG4gKiBAc2VlIGh0dHBzOi8vZGF0YXBhY2thZ2Uub3JnL3N0YW5kYXJkL2RhdGEtcGFja2FnZS9cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYWNrYWdlIHtcbiAgLyoqXG4gICAqIFVuaXF1ZSBwYWNrYWdlIGlkZW50aWZpZXJcbiAgICogU2hvdWxkIHVzZSBsb3dlcmNhc2UgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIHBlcmlvZHMsIGh5cGhlbnMsIGFuZCB1bmRlcnNjb3Jlc1xuICAgKi9cbiAgbmFtZTogc3RyaW5nXG5cbiAgLyoqXG4gICAqIFBhY2thZ2Ugc2NoZW1hIFVSTCBmb3IgdmFsaWRhdGlvblxuICAgKi9cbiAgJHNjaGVtYT86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBIdW1hbi1yZWFkYWJsZSB0aXRsZVxuICAgKi9cbiAgdGl0bGU/OiBzdHJpbmdcblxuICAvKipcbiAgICogQSBkZXNjcmlwdGlvbiBvZiB0aGUgcGFja2FnZVxuICAgKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcblxuICAvKipcbiAgICogQSBVUkwgZm9yIHRoZSBob21lIHBhZ2Ugb2YgdGhlIHBhY2thZ2VcbiAgICovXG4gIGhvbWVwYWdlPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgdGhlIHBhY2thZ2UgdXNpbmcgU2VtVmVyXG4gICAqIEBleGFtcGxlIFwiMS4wLjBcIlxuICAgKi9cbiAgdmVyc2lvbj86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBMaWNlbnNlIGluZm9ybWF0aW9uXG4gICAqL1xuICBsaWNlbnNlcz86IExpY2Vuc2VbXVxuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGNvbnRyaWJ1dG9yc1xuICAgKi9cbiAgY29udHJpYnV0b3JzPzogQ29udHJpYnV0b3JbXVxuXG4gIC8qKlxuICAgKiBEYXRhIHNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZVxuICAgKi9cbiAgc291cmNlcz86IFNvdXJjZVtdXG5cbiAgLyoqXG4gICAqIEtleXdvcmRzIGZvciB0aGUgcGFja2FnZVxuICAgKi9cbiAga2V5d29yZHM/OiBzdHJpbmdbXVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdGltZSBvZiB0aGUgcGFja2FnZVxuICAgKiBAZm9ybWF0IElTTyA4NjAxIGZvcm1hdFxuICAgKi9cbiAgY3JlYXRlZD86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBEYXRhIHJlc291cmNlcyBpbiB0aGlzIHBhY2thZ2UgKHJlcXVpcmVkKVxuICAgKi9cbiAgcmVzb3VyY2VzOiBSZXNvdXJjZVtdXG5cbiAgLyoqXG4gICAqIFBhY2thZ2UgaW1hZ2VcbiAgICovXG4gIGltYWdlPzogc3RyaW5nXG59XG4iXX0=
|
package/build/package/index.d.ts
DELETED
package/build/package/index.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export { validatePackage } from "./validate.js";
|
|
2
|
-
export { loadPackage } from "./load.js";
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9wYWNrYWdlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IHZhbGlkYXRlUGFja2FnZSB9IGZyb20gXCIuL3ZhbGlkYXRlLmpzXCJcbmV4cG9ydCB0eXBlIHsgUGFja2FnZSB9IGZyb20gXCIuL1BhY2thZ2UuanNcIlxuZXhwb3J0IHR5cGUgeyBDb250cmlidXRvciB9IGZyb20gXCIuL0NvbnRyaWJ1dG9yLmpzXCJcbmV4cG9ydCB7IGxvYWRQYWNrYWdlIH0gZnJvbSBcIi4vbG9hZC5qc1wiXG4iXX0=
|
package/build/package/load.d.ts
DELETED
package/build/package/load.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { loadDescriptor } from "../descriptor/load.js";
|
|
2
|
-
export async function loadPackage(props) {
|
|
3
|
-
const descriptor = await loadDescriptor(props);
|
|
4
|
-
// TODO: validate descriptor against schema
|
|
5
|
-
return descriptor;
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3BhY2thZ2UvbG9hZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFHdEQsTUFBTSxDQUFDLEtBQUssVUFBVSxXQUFXLENBQUMsS0FBdUI7SUFDdkQsTUFBTSxVQUFVLEdBQUcsTUFBTSxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDOUMsMkNBQTJDO0lBQzNDLE9BQU8sVUFBcUIsQ0FBQTtBQUM5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbG9hZERlc2NyaXB0b3IgfSBmcm9tIFwiLi4vZGVzY3JpcHRvci9sb2FkLmpzXCJcbmltcG9ydCB0eXBlIHsgUGFja2FnZSB9IGZyb20gXCIuL1BhY2thZ2UuanNcIlxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZFBhY2thZ2UocHJvcHM6IHsgcGF0aDogc3RyaW5nIH0pIHtcbiAgY29uc3QgZGVzY3JpcHRvciA9IGF3YWl0IGxvYWREZXNjcmlwdG9yKHByb3BzKVxuICAvLyBUT0RPOiB2YWxpZGF0ZSBkZXNjcmlwdG9yIGFnYWluc3Qgc2NoZW1hXG4gIHJldHVybiBkZXNjcmlwdG9yIGFzIFBhY2thZ2Vcbn1cbiJdfQ==
|
package/build/package/save.d.ts
DELETED
package/build/package/save.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { saveDescriptor } from "../descriptor/save.js";
|
|
2
|
-
/**
|
|
3
|
-
* Save a Package to a file path
|
|
4
|
-
* Works in Node.js environments
|
|
5
|
-
*/
|
|
6
|
-
export async function savePackage(props) {
|
|
7
|
-
const { package: pkg, path } = props;
|
|
8
|
-
return saveDescriptor({
|
|
9
|
-
descriptor: pkg,
|
|
10
|
-
path,
|
|
11
|
-
});
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3BhY2thZ2Uvc2F2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFHdEQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxXQUFXLENBQUMsS0FHakM7SUFDQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUE7SUFFcEMsT0FBTyxjQUFjLENBQUM7UUFDcEIsVUFBVSxFQUFFLEdBQUc7UUFDZixJQUFJO0tBQ0wsQ0FBQyxDQUFBO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNhdmVEZXNjcmlwdG9yIH0gZnJvbSBcIi4uL2Rlc2NyaXB0b3Ivc2F2ZS5qc1wiXG5pbXBvcnQgdHlwZSB7IFBhY2thZ2UgfSBmcm9tIFwiLi9QYWNrYWdlLmpzXCJcblxuLyoqXG4gKiBTYXZlIGEgUGFja2FnZSB0byBhIGZpbGUgcGF0aFxuICogV29ya3MgaW4gTm9kZS5qcyBlbnZpcm9ubWVudHNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNhdmVQYWNrYWdlKHByb3BzOiB7XG4gIHBhY2thZ2U6IFBhY2thZ2VcbiAgcGF0aDogc3RyaW5nXG59KSB7XG4gIGNvbnN0IHsgcGFja2FnZTogcGtnLCBwYXRoIH0gPSBwcm9wc1xuXG4gIHJldHVybiBzYXZlRGVzY3JpcHRvcih7XG4gICAgZGVzY3JpcHRvcjogcGtnLFxuICAgIHBhdGgsXG4gIH0pXG59XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function validatePackage(dpackage: string): Promise<string>;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export async function validatePackage(dpackage) {
|
|
2
|
-
return dpackage;
|
|
3
|
-
}
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9wYWNrYWdlL3ZhbGlkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxLQUFLLFVBQVUsZUFBZSxDQUFDLFFBQWdCO0lBQ3BELE9BQU8sUUFBUSxDQUFBO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgYXN5bmMgZnVuY3Rpb24gdmFsaWRhdGVQYWNrYWdlKGRwYWNrYWdlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGRwYWNrYWdlXG59XG4iXX0=
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* License information
|
|
3
|
-
*/
|
|
4
|
-
export interface License {
|
|
5
|
-
/**
|
|
6
|
-
* The name of the license
|
|
7
|
-
* @example "MIT", "Apache-2.0"
|
|
8
|
-
*/
|
|
9
|
-
name?: string;
|
|
10
|
-
/**
|
|
11
|
-
* A URL to the license text
|
|
12
|
-
*/
|
|
13
|
-
path?: string;
|
|
14
|
-
/**
|
|
15
|
-
* Human-readable title of the license
|
|
16
|
-
*/
|
|
17
|
-
title?: string;
|
|
18
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGljZW5zZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3Jlc291cmNlL0xpY2Vuc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTGljZW5zZSBpbmZvcm1hdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpY2Vuc2Uge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGxpY2Vuc2VcbiAgICogQGV4YW1wbGUgXCJNSVRcIiwgXCJBcGFjaGUtMi4wXCJcbiAgICovXG4gIG5hbWU/OiBzdHJpbmdcblxuICAvKipcbiAgICogQSBVUkwgdG8gdGhlIGxpY2Vuc2UgdGV4dFxuICAgKi9cbiAgcGF0aD86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBIdW1hbi1yZWFkYWJsZSB0aXRsZSBvZiB0aGUgbGljZW5zZVxuICAgKi9cbiAgdGl0bGU/OiBzdHJpbmdcbn1cbiJdfQ==
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import type { License } from "./License.js";
|
|
2
|
-
import type { Source } from "./Source.js";
|
|
3
|
-
/**
|
|
4
|
-
* Data Resource interface based on the Frictionless Data specification
|
|
5
|
-
* @see https://datapackage.org/standard/data-resource/
|
|
6
|
-
*/
|
|
7
|
-
export interface Resource {
|
|
8
|
-
/**
|
|
9
|
-
* Unique resource identifier
|
|
10
|
-
* Should use lowercase alphanumeric characters, periods, hyphens, and underscores
|
|
11
|
-
*/
|
|
12
|
-
name: string;
|
|
13
|
-
/**
|
|
14
|
-
* A reference to the data itself, can be a path URL or array of paths
|
|
15
|
-
* Either path or data must be provided
|
|
16
|
-
*/
|
|
17
|
-
path?: string | string[];
|
|
18
|
-
/**
|
|
19
|
-
* Inline data content instead of referencing an external file
|
|
20
|
-
* Either path or data must be provided
|
|
21
|
-
*/
|
|
22
|
-
data?: unknown;
|
|
23
|
-
/**
|
|
24
|
-
* The resource type
|
|
25
|
-
* @example "table"
|
|
26
|
-
*/
|
|
27
|
-
type?: "table";
|
|
28
|
-
/**
|
|
29
|
-
* The file format
|
|
30
|
-
* @example "csv", "json", "xlsx"
|
|
31
|
-
*/
|
|
32
|
-
format?: string;
|
|
33
|
-
/**
|
|
34
|
-
* The media type of the resource
|
|
35
|
-
* @example "text/csv", "application/json"
|
|
36
|
-
*/
|
|
37
|
-
mediatype?: string;
|
|
38
|
-
/**
|
|
39
|
-
* Character encoding of the resource
|
|
40
|
-
* @default "utf-8"
|
|
41
|
-
*/
|
|
42
|
-
encoding?: string;
|
|
43
|
-
/**
|
|
44
|
-
* Human-readable title
|
|
45
|
-
*/
|
|
46
|
-
title?: string;
|
|
47
|
-
/**
|
|
48
|
-
* A description of the resource
|
|
49
|
-
*/
|
|
50
|
-
description?: string;
|
|
51
|
-
/**
|
|
52
|
-
* Size of the file in bytes
|
|
53
|
-
*/
|
|
54
|
-
bytes?: number;
|
|
55
|
-
/**
|
|
56
|
-
* Hash of the resource data
|
|
57
|
-
*/
|
|
58
|
-
hash?: string;
|
|
59
|
-
/**
|
|
60
|
-
* Data sources
|
|
61
|
-
*/
|
|
62
|
-
sources?: Source[];
|
|
63
|
-
/**
|
|
64
|
-
* License information
|
|
65
|
-
*/
|
|
66
|
-
licenses?: License[];
|
|
67
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9yZXNvdXJjZS9SZXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMaWNlbnNlIH0gZnJvbSBcIi4vTGljZW5zZS5qc1wiXG5pbXBvcnQgdHlwZSB7IFNvdXJjZSB9IGZyb20gXCIuL1NvdXJjZS5qc1wiXG5cbi8qKlxuICogRGF0YSBSZXNvdXJjZSBpbnRlcmZhY2UgYmFzZWQgb24gdGhlIEZyaWN0aW9ubGVzcyBEYXRhIHNwZWNpZmljYXRpb25cbiAqIEBzZWUgaHR0cHM6Ly9kYXRhcGFja2FnZS5vcmcvc3RhbmRhcmQvZGF0YS1yZXNvdXJjZS9cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBVbmlxdWUgcmVzb3VyY2UgaWRlbnRpZmllclxuICAgKiBTaG91bGQgdXNlIGxvd2VyY2FzZSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgcGVyaW9kcywgaHlwaGVucywgYW5kIHVuZGVyc2NvcmVzXG4gICAqL1xuICBuYW1lOiBzdHJpbmdcblxuICAvKipcbiAgICogQSByZWZlcmVuY2UgdG8gdGhlIGRhdGEgaXRzZWxmLCBjYW4gYmUgYSBwYXRoIFVSTCBvciBhcnJheSBvZiBwYXRoc1xuICAgKiBFaXRoZXIgcGF0aCBvciBkYXRhIG11c3QgYmUgcHJvdmlkZWRcbiAgICovXG4gIHBhdGg/OiBzdHJpbmcgfCBzdHJpbmdbXVxuXG4gIC8qKlxuICAgKiBJbmxpbmUgZGF0YSBjb250ZW50IGluc3RlYWQgb2YgcmVmZXJlbmNpbmcgYW4gZXh0ZXJuYWwgZmlsZVxuICAgKiBFaXRoZXIgcGF0aCBvciBkYXRhIG11c3QgYmUgcHJvdmlkZWRcbiAgICovXG4gIGRhdGE/OiB1bmtub3duXG5cbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZSB0eXBlXG4gICAqIEBleGFtcGxlIFwidGFibGVcIlxuICAgKi9cbiAgdHlwZT86IFwidGFibGVcIlxuXG4gIC8qKlxuICAgKiBUaGUgZmlsZSBmb3JtYXRcbiAgICogQGV4YW1wbGUgXCJjc3ZcIiwgXCJqc29uXCIsIFwieGxzeFwiXG4gICAqL1xuICBmb3JtYXQ/OiBzdHJpbmdcblxuICAvKipcbiAgICogVGhlIG1lZGlhIHR5cGUgb2YgdGhlIHJlc291cmNlXG4gICAqIEBleGFtcGxlIFwidGV4dC9jc3ZcIiwgXCJhcHBsaWNhdGlvbi9qc29uXCJcbiAgICovXG4gIG1lZGlhdHlwZT86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBDaGFyYWN0ZXIgZW5jb2Rpbmcgb2YgdGhlIHJlc291cmNlXG4gICAqIEBkZWZhdWx0IFwidXRmLThcIlxuICAgKi9cbiAgZW5jb2Rpbmc/OiBzdHJpbmdcblxuICAvKipcbiAgICogSHVtYW4tcmVhZGFibGUgdGl0bGVcbiAgICovXG4gIHRpdGxlPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIEEgZGVzY3JpcHRpb24gb2YgdGhlIHJlc291cmNlXG4gICAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBTaXplIG9mIHRoZSBmaWxlIGluIGJ5dGVzXG4gICAqL1xuICBieXRlcz86IG51bWJlclxuXG4gIC8qKlxuICAgKiBIYXNoIG9mIHRoZSByZXNvdXJjZSBkYXRhXG4gICAqL1xuICBoYXNoPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIERhdGEgc291cmNlc1xuICAgKi9cbiAgc291cmNlcz86IFNvdXJjZVtdXG5cbiAgLyoqXG4gICAqIExpY2Vuc2UgaW5mb3JtYXRpb25cbiAgICovXG4gIGxpY2Vuc2VzPzogTGljZW5zZVtdXG59XG4iXX0=
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Source information
|
|
3
|
-
*/
|
|
4
|
-
export interface Source {
|
|
5
|
-
/**
|
|
6
|
-
* Human-readable title of the source
|
|
7
|
-
*/
|
|
8
|
-
title?: string;
|
|
9
|
-
/**
|
|
10
|
-
* URL or path to the source
|
|
11
|
-
*/
|
|
12
|
-
path?: string;
|
|
13
|
-
/**
|
|
14
|
-
* Email contact for the source
|
|
15
|
-
*/
|
|
16
|
-
email?: string;
|
|
17
|
-
}
|
package/build/resource/Source.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vcmVzb3VyY2UvU291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNvdXJjZSBpbmZvcm1hdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZSB7XG4gIC8qKlxuICAgKiBIdW1hbi1yZWFkYWJsZSB0aXRsZSBvZiB0aGUgc291cmNlXG4gICAqL1xuICB0aXRsZT86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBVUkwgb3IgcGF0aCB0byB0aGUgc291cmNlXG4gICAqL1xuICBwYXRoPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIEVtYWlsIGNvbnRhY3QgZm9yIHRoZSBzb3VyY2VcbiAgICovXG4gIGVtYWlsPzogc3RyaW5nXG59XG4iXX0=
|
package/build/resource/index.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export { validateResource } from "./validate.js";
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9yZXNvdXJjZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyB2YWxpZGF0ZVJlc291cmNlIH0gZnJvbSBcIi4vdmFsaWRhdGUuanNcIlxuZXhwb3J0IHR5cGUgeyBSZXNvdXJjZSB9IGZyb20gXCIuL1Jlc291cmNlLmpzXCJcbmV4cG9ydCB0eXBlIHsgU291cmNlIH0gZnJvbSBcIi4vU291cmNlLmpzXCJcbmV4cG9ydCB0eXBlIHsgTGljZW5zZSB9IGZyb20gXCIuL0xpY2Vuc2UuanNcIlxuZXhwb3J0IHR5cGUgKiBmcm9tIFwiLi90eXBlcy9pbmRleC5qc1wiXG4iXX0=
|
package/build/resource/load.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/build/resource/load.js
DELETED
package/build/resource/save.d.ts
DELETED
package/build/resource/save.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { saveDescriptor } from "../descriptor/save.js";
|
|
2
|
-
/**
|
|
3
|
-
* Save a Resource to a file path
|
|
4
|
-
* Works in Node.js environments
|
|
5
|
-
*/
|
|
6
|
-
export async function saveResource(props) {
|
|
7
|
-
const { resource, path } = props;
|
|
8
|
-
return saveDescriptor({
|
|
9
|
-
descriptor: resource,
|
|
10
|
-
path,
|
|
11
|
-
});
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3Jlc291cmNlL3NhdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBR3REOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsWUFBWSxDQUFDLEtBR2xDO0lBQ0MsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUE7SUFFaEMsT0FBTyxjQUFjLENBQUM7UUFDcEIsVUFBVSxFQUFFLFFBQVE7UUFDcEIsSUFBSTtLQUNMLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzYXZlRGVzY3JpcHRvciB9IGZyb20gXCIuLi9kZXNjcmlwdG9yL3NhdmUuanNcIlxuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZSB9IGZyb20gXCIuL1Jlc291cmNlLmpzXCJcblxuLyoqXG4gKiBTYXZlIGEgUmVzb3VyY2UgdG8gYSBmaWxlIHBhdGhcbiAqIFdvcmtzIGluIE5vZGUuanMgZW52aXJvbm1lbnRzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzYXZlUmVzb3VyY2UocHJvcHM6IHtcbiAgcmVzb3VyY2U6IFJlc291cmNlXG4gIHBhdGg6IHN0cmluZ1xufSkge1xuICBjb25zdCB7IHJlc291cmNlLCBwYXRoIH0gPSBwcm9wc1xuXG4gIHJldHVybiBzYXZlRGVzY3JpcHRvcih7XG4gICAgZGVzY3JpcHRvcjogcmVzb3VyY2UsXG4gICAgcGF0aCxcbiAgfSlcbn1cbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export type { TableResource } from "./table.js";
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9yZXNvdXJjZS90eXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgeyBUYWJsZVJlc291cmNlIH0gZnJvbSBcIi4vdGFibGUuanNcIlxuIl19
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import type { Dialect } from "../../dialect/Dialect.js";
|
|
2
|
-
import type { Resource } from "../../resource/Resource.js";
|
|
3
|
-
import type { Schema } from "../../schema/Schema.js";
|
|
4
|
-
/**
|
|
5
|
-
* Table Resource interface extending the base Resource interface
|
|
6
|
-
* @see https://datapackage.org/standard/table-resource/
|
|
7
|
-
*/
|
|
8
|
-
export interface TableResource extends Resource {
|
|
9
|
-
/**
|
|
10
|
-
* Resource type must be "table"
|
|
11
|
-
*/
|
|
12
|
-
type: "table";
|
|
13
|
-
/**
|
|
14
|
-
* Inline tabular data
|
|
15
|
-
*/
|
|
16
|
-
data: any[][] | Record<string, any>[];
|
|
17
|
-
/**
|
|
18
|
-
* CSV dialect specification
|
|
19
|
-
* Describes delimiters, quote characters, etc.
|
|
20
|
-
* @see https://datapackage.org/standard/table-dialect/
|
|
21
|
-
*/
|
|
22
|
-
dialect?: Dialect;
|
|
23
|
-
/**
|
|
24
|
-
* Schema for the tabular data
|
|
25
|
-
* Describes fields in the table, constraints, etc.
|
|
26
|
-
* @see https://datapackage.org/standard/table-schema/
|
|
27
|
-
*/
|
|
28
|
-
schema: Schema;
|
|
29
|
-
}
|