@frictionless-ts/dataset 1.0.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/README.md +3 -0
- package/build/file/copy.d.ts +4 -0
- package/build/file/copy.js +7 -0
- package/build/file/copy.spec.d.ts +1 -0
- package/build/file/copy.spec.js +104 -0
- package/build/file/describe.d.ts +7 -0
- package/build/file/describe.js +9 -0
- package/build/file/fetch.d.ts +2 -0
- package/build/file/fetch.js +21 -0
- package/build/file/index.d.ts +9 -0
- package/build/file/index.js +10 -0
- package/build/file/infer.d.ts +10 -0
- package/build/file/infer.js +48 -0
- package/build/file/infer.spec.d.ts +1 -0
- package/build/file/infer.spec.js +141 -0
- package/build/file/load.d.ts +3 -0
- package/build/file/load.js +7 -0
- package/build/file/path.d.ts +2 -0
- package/build/file/path.js +17 -0
- package/build/file/save.d.ts +3 -0
- package/build/file/save.js +7 -0
- package/build/file/temp.d.ts +11 -0
- package/build/file/temp.js +23 -0
- package/build/file/validate.d.ts +6 -0
- package/build/file/validate.js +47 -0
- package/build/file/validate.spec.d.ts +1 -0
- package/build/file/validate.spec.js +180 -0
- package/build/folder/create.d.ts +1 -0
- package/build/folder/create.js +5 -0
- package/build/folder/index.d.ts +2 -0
- package/build/folder/index.js +3 -0
- package/build/folder/temp.d.ts +3 -0
- package/build/folder/temp.js +16 -0
- package/build/index.d.ts +36 -0
- package/build/index.js +35 -0
- package/build/package/index.d.ts +2 -0
- package/build/package/index.js +3 -0
- package/build/package/merge.d.ts +23 -0
- package/build/package/merge.js +12 -0
- package/build/package/path.d.ts +3 -0
- package/build/package/path.js +43 -0
- package/build/package/path.spec.d.ts +1 -0
- package/build/package/path.spec.js +56 -0
- package/build/plugin.d.ts +11 -0
- package/build/plugin.js +2 -0
- package/build/plugins/ckan/ckan/index.d.ts +1 -0
- package/build/plugins/ckan/ckan/index.js +2 -0
- package/build/plugins/ckan/ckan/request.d.ts +11 -0
- package/build/plugins/ckan/ckan/request.js +35 -0
- package/build/plugins/ckan/index.d.ts +4 -0
- package/build/plugins/ckan/index.js +5 -0
- package/build/plugins/ckan/package/Organization.d.ts +21 -0
- package/build/plugins/ckan/package/Organization.js +2 -0
- package/build/plugins/ckan/package/Package.d.ts +76 -0
- package/build/plugins/ckan/package/Package.js +2 -0
- package/build/plugins/ckan/package/Tag.d.ts +17 -0
- package/build/plugins/ckan/package/Tag.js +2 -0
- package/build/plugins/ckan/package/convert/fromCkan.d.ts +3 -0
- package/build/plugins/ckan/package/convert/fromCkan.js +63 -0
- package/build/plugins/ckan/package/convert/fromCkan.spec.d.ts +1 -0
- package/build/plugins/ckan/package/convert/fromCkan.spec.js +80 -0
- package/build/plugins/ckan/package/convert/toCkan.d.ts +22 -0
- package/build/plugins/ckan/package/convert/toCkan.js +51 -0
- package/build/plugins/ckan/package/convert/toCkan.spec.d.ts +1 -0
- package/build/plugins/ckan/package/convert/toCkan.spec.js +153 -0
- package/build/plugins/ckan/package/fixtures/ckan-package.json +308 -0
- package/build/plugins/ckan/package/index.d.ts +7 -0
- package/build/plugins/ckan/package/index.js +5 -0
- package/build/plugins/ckan/package/load.d.ts +21 -0
- package/build/plugins/ckan/package/load.js +74 -0
- package/build/plugins/ckan/package/load.spec.d.ts +1 -0
- package/build/plugins/ckan/package/load.spec.js +11 -0
- package/build/plugins/ckan/package/save.d.ts +10 -0
- package/build/plugins/ckan/package/save.js +83 -0
- package/build/plugins/ckan/package/save.spec.d.ts +1 -0
- package/build/plugins/ckan/package/save.spec.js +319 -0
- package/build/plugins/ckan/plugin.d.ts +19 -0
- package/build/plugins/ckan/plugin.js +18 -0
- package/build/plugins/ckan/plugin.spec.d.ts +1 -0
- package/build/plugins/ckan/plugin.spec.js +83 -0
- package/build/plugins/ckan/resource/Resource.d.ts +56 -0
- package/build/plugins/ckan/resource/Resource.js +2 -0
- package/build/plugins/ckan/resource/convert/fromCkan.d.ts +3 -0
- package/build/plugins/ckan/resource/convert/fromCkan.js +39 -0
- package/build/plugins/ckan/resource/convert/toCkan.d.ts +3 -0
- package/build/plugins/ckan/resource/convert/toCkan.js +20 -0
- package/build/plugins/ckan/resource/index.d.ts +3 -0
- package/build/plugins/ckan/resource/index.js +3 -0
- package/build/plugins/ckan/schema/Field.d.ts +34 -0
- package/build/plugins/ckan/schema/Field.js +2 -0
- package/build/plugins/ckan/schema/Schema.d.ts +10 -0
- package/build/plugins/ckan/schema/Schema.js +2 -0
- package/build/plugins/ckan/schema/convert/fixtures/ckan-schema.json +115 -0
- package/build/plugins/ckan/schema/convert/fromCkan.d.ts +3 -0
- package/build/plugins/ckan/schema/convert/fromCkan.js +47 -0
- package/build/plugins/ckan/schema/convert/fromCkan.spec.d.ts +1 -0
- package/build/plugins/ckan/schema/convert/fromCkan.spec.js +157 -0
- package/build/plugins/ckan/schema/convert/toCkan.d.ts +3 -0
- package/build/plugins/ckan/schema/convert/toCkan.js +50 -0
- package/build/plugins/ckan/schema/convert/toCkan.spec.d.ts +1 -0
- package/build/plugins/ckan/schema/convert/toCkan.spec.js +278 -0
- package/build/plugins/ckan/schema/index.d.ts +4 -0
- package/build/plugins/ckan/schema/index.js +3 -0
- package/build/plugins/datahub/index.d.ts +2 -0
- package/build/plugins/datahub/index.js +3 -0
- package/build/plugins/datahub/package/index.d.ts +1 -0
- package/build/plugins/datahub/package/index.js +2 -0
- package/build/plugins/datahub/package/load.d.ts +1 -0
- package/build/plugins/datahub/package/load.js +9 -0
- package/build/plugins/datahub/package/load.spec.d.ts +1 -0
- package/build/plugins/datahub/package/load.spec.js +11 -0
- package/build/plugins/datahub/plugin.d.ts +4 -0
- package/build/plugins/datahub/plugin.js +18 -0
- package/build/plugins/datahub/plugin.spec.d.ts +1 -0
- package/build/plugins/datahub/plugin.spec.js +78 -0
- package/build/plugins/descriptor/index.d.ts +1 -0
- package/build/plugins/descriptor/index.js +2 -0
- package/build/plugins/descriptor/plugin.d.ts +11 -0
- package/build/plugins/descriptor/plugin.js +29 -0
- package/build/plugins/descriptor/plugin.spec.d.ts +1 -0
- package/build/plugins/descriptor/plugin.spec.js +169 -0
- package/build/plugins/folder/index.d.ts +2 -0
- package/build/plugins/folder/index.js +3 -0
- package/build/plugins/folder/package/index.d.ts +2 -0
- package/build/plugins/folder/package/index.js +3 -0
- package/build/plugins/folder/package/load.d.ts +1 -0
- package/build/plugins/folder/package/load.js +6 -0
- package/build/plugins/folder/package/load.spec.d.ts +1 -0
- package/build/plugins/folder/package/load.spec.js +175 -0
- package/build/plugins/folder/package/save.d.ts +7 -0
- package/build/plugins/folder/package/save.js +35 -0
- package/build/plugins/folder/package/save.spec.d.ts +1 -0
- package/build/plugins/folder/package/save.spec.js +328 -0
- package/build/plugins/folder/plugin.d.ts +4 -0
- package/build/plugins/folder/plugin.js +19 -0
- package/build/plugins/folder/plugin.spec.d.ts +1 -0
- package/build/plugins/folder/plugin.spec.js +53 -0
- package/build/plugins/github/github/index.d.ts +1 -0
- package/build/plugins/github/github/index.js +2 -0
- package/build/plugins/github/github/path.d.ts +1 -0
- package/build/plugins/github/github/path.js +4 -0
- package/build/plugins/github/github/request.d.ts +15 -0
- package/build/plugins/github/github/request.js +43 -0
- package/build/plugins/github/index.d.ts +3 -0
- package/build/plugins/github/index.js +4 -0
- package/build/plugins/github/package/License.d.ts +21 -0
- package/build/plugins/github/package/License.js +2 -0
- package/build/plugins/github/package/Owner.d.ts +25 -0
- package/build/plugins/github/package/Owner.js +2 -0
- package/build/plugins/github/package/Package.d.ts +87 -0
- package/build/plugins/github/package/Package.js +2 -0
- package/build/plugins/github/package/convert/fromGithub.d.ts +3 -0
- package/build/plugins/github/package/convert/fromGithub.js +50 -0
- package/build/plugins/github/package/index.d.ts +6 -0
- package/build/plugins/github/package/index.js +4 -0
- package/build/plugins/github/package/load.d.ts +23 -0
- package/build/plugins/github/package/load.js +48 -0
- package/build/plugins/github/package/load.spec.d.ts +1 -0
- package/build/plugins/github/package/load.spec.js +15 -0
- package/build/plugins/github/package/save.d.ts +14 -0
- package/build/plugins/github/package/save.js +69 -0
- package/build/plugins/github/package/save.spec.d.ts +1 -0
- package/build/plugins/github/package/save.spec.js +566 -0
- package/build/plugins/github/plugin.d.ts +19 -0
- package/build/plugins/github/plugin.js +18 -0
- package/build/plugins/github/plugin.spec.d.ts +1 -0
- package/build/plugins/github/plugin.spec.js +73 -0
- package/build/plugins/github/resource/Resource.d.ts +29 -0
- package/build/plugins/github/resource/Resource.js +2 -0
- package/build/plugins/github/resource/convert/fromGithub.d.ts +5 -0
- package/build/plugins/github/resource/convert/fromGithub.js +24 -0
- package/build/plugins/github/resource/convert/toGithub.d.ts +3 -0
- package/build/plugins/github/resource/convert/toGithub.js +10 -0
- package/build/plugins/github/resource/index.d.ts +3 -0
- package/build/plugins/github/resource/index.js +3 -0
- package/build/plugins/zenodo/index.d.ts +3 -0
- package/build/plugins/zenodo/index.js +4 -0
- package/build/plugins/zenodo/package/Creator.d.ts +20 -0
- package/build/plugins/zenodo/package/Creator.js +2 -0
- package/build/plugins/zenodo/package/Package.d.ts +94 -0
- package/build/plugins/zenodo/package/Package.js +2 -0
- package/build/plugins/zenodo/package/convert/fromZenodo.d.ts +3 -0
- package/build/plugins/zenodo/package/convert/fromZenodo.js +43 -0
- package/build/plugins/zenodo/package/convert/toZenodo.d.ts +3 -0
- package/build/plugins/zenodo/package/convert/toZenodo.js +79 -0
- package/build/plugins/zenodo/package/index.d.ts +6 -0
- package/build/plugins/zenodo/package/index.js +5 -0
- package/build/plugins/zenodo/package/load.d.ts +23 -0
- package/build/plugins/zenodo/package/load.js +45 -0
- package/build/plugins/zenodo/package/load.spec.d.ts +1 -0
- package/build/plugins/zenodo/package/load.spec.js +15 -0
- package/build/plugins/zenodo/package/save.d.ts +13 -0
- package/build/plugins/zenodo/package/save.js +74 -0
- package/build/plugins/zenodo/package/save.spec.d.ts +1 -0
- package/build/plugins/zenodo/package/save.spec.js +524 -0
- package/build/plugins/zenodo/plugin.d.ts +19 -0
- package/build/plugins/zenodo/plugin.js +18 -0
- package/build/plugins/zenodo/plugin.spec.d.ts +1 -0
- package/build/plugins/zenodo/plugin.spec.js +78 -0
- package/build/plugins/zenodo/resource/Resource.d.ts +27 -0
- package/build/plugins/zenodo/resource/Resource.js +2 -0
- package/build/plugins/zenodo/resource/convert/fromZenodo.d.ts +10 -0
- package/build/plugins/zenodo/resource/convert/fromZenodo.js +18 -0
- package/build/plugins/zenodo/resource/convert/toZenodo.d.ts +3 -0
- package/build/plugins/zenodo/resource/convert/toZenodo.js +13 -0
- package/build/plugins/zenodo/resource/index.d.ts +3 -0
- package/build/plugins/zenodo/resource/index.js +3 -0
- package/build/plugins/zenodo/zenodo/index.d.ts +1 -0
- package/build/plugins/zenodo/zenodo/index.js +2 -0
- package/build/plugins/zenodo/zenodo/request.d.ts +12 -0
- package/build/plugins/zenodo/zenodo/request.js +36 -0
- package/build/plugins/zip/index.d.ts +2 -0
- package/build/plugins/zip/index.js +3 -0
- package/build/plugins/zip/package/index.d.ts +2 -0
- package/build/plugins/zip/package/index.js +3 -0
- package/build/plugins/zip/package/load.d.ts +1 -0
- package/build/plugins/zip/package/load.js +30 -0
- package/build/plugins/zip/package/load.spec.d.ts +1 -0
- package/build/plugins/zip/package/load.spec.js +173 -0
- package/build/plugins/zip/package/save.d.ts +5 -0
- package/build/plugins/zip/package/save.js +50 -0
- package/build/plugins/zip/package/save.spec.d.ts +1 -0
- package/build/plugins/zip/package/save.spec.js +287 -0
- package/build/plugins/zip/plugin.d.ts +11 -0
- package/build/plugins/zip/plugin.js +24 -0
- package/build/plugins/zip/plugin.spec.d.ts +1 -0
- package/build/plugins/zip/plugin.spec.js +158 -0
- package/build/resource/index.d.ts +1 -0
- package/build/resource/index.js +2 -0
- package/build/resource/save.d.ts +13 -0
- package/build/resource/save.js +53 -0
- package/build/resource/save.spec.d.ts +1 -0
- package/build/resource/save.spec.js +107 -0
- package/build/stream/concat.d.ts +3 -0
- package/build/stream/concat.js +5 -0
- package/build/stream/index.d.ts +3 -0
- package/build/stream/index.js +4 -0
- package/build/stream/load.d.ts +5 -0
- package/build/stream/load.js +46 -0
- package/build/stream/save.d.ts +5 -0
- package/build/stream/save.js +13 -0
- package/package.json +48 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export async function makeCkanApiRequest(options) {
|
|
2
|
+
let body;
|
|
3
|
+
const headers = {};
|
|
4
|
+
const url = new URL(options.ckanUrl);
|
|
5
|
+
url.pathname = `/api/3/action/${options.action}`;
|
|
6
|
+
if (options.apiKey) {
|
|
7
|
+
headers.Authorization = options.apiKey;
|
|
8
|
+
}
|
|
9
|
+
if (options.upload) {
|
|
10
|
+
body = new FormData();
|
|
11
|
+
body.append("upload", options.upload.data, options.upload.name);
|
|
12
|
+
for (const [key, value] of Object.entries(options.payload)) {
|
|
13
|
+
body.append(key, value);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
body = JSON.stringify(options.payload);
|
|
18
|
+
headers["Content-Type"] = "application/json";
|
|
19
|
+
}
|
|
20
|
+
const response = await fetch(url.toString(), {
|
|
21
|
+
method: "POST",
|
|
22
|
+
headers,
|
|
23
|
+
body,
|
|
24
|
+
});
|
|
25
|
+
if (!response.ok) {
|
|
26
|
+
const errorText = await response.text();
|
|
27
|
+
throw new Error(`CKAN API error: ${response.status} ${response.statusText}\n${errorText}`);
|
|
28
|
+
}
|
|
29
|
+
const data = (await response.json());
|
|
30
|
+
if (!data.success) {
|
|
31
|
+
throw new Error(`CKAN API error: ${data.error}`);
|
|
32
|
+
}
|
|
33
|
+
return data.result;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BsdWdpbnMvY2thbi9ja2FuL3JlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLEtBQUssVUFBVSxrQkFBa0IsQ0FBaUIsT0FNeEQ7SUFDQyxJQUFJLElBQXVCLENBQUE7SUFDM0IsTUFBTSxPQUFPLEdBQXdCLEVBQUUsQ0FBQTtJQUV2QyxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDcEMsR0FBRyxDQUFDLFFBQVEsR0FBRyxpQkFBaUIsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBRWhELElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ25CLE9BQU8sQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQTtJQUN4QyxDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbkIsSUFBSSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUE7UUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUUvRCxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMzRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUN6QixDQUFDO0lBQ0gsQ0FBQztTQUFNLENBQUM7UUFDTixJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDdEMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxHQUFHLGtCQUFrQixDQUFBO0lBQzlDLENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUU7UUFDM0MsTUFBTSxFQUFFLE1BQU07UUFDZCxPQUFPO1FBQ1AsSUFBSTtLQUNMLENBQUMsQ0FBQTtJQUVGLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDakIsTUFBTSxTQUFTLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FDYixtQkFBbUIsUUFBUSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUMxRSxDQUFBO0lBQ0gsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQWUsQ0FBQTtJQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFBO0lBQ2xELENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQyxNQUFXLENBQUE7QUFDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGVzY3JpcHRvciB9IGZyb20gXCJAZnJpY3Rpb25sZXNzLXRzL21ldGFkYXRhXCJcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1ha2VDa2FuQXBpUmVxdWVzdDxUID0gRGVzY3JpcHRvcj4ob3B0aW9uczoge1xuICBja2FuVXJsOiBzdHJpbmdcbiAgYWN0aW9uOiBzdHJpbmdcbiAgcGF5bG9hZDogRGVzY3JpcHRvclxuICB1cGxvYWQ/OiB7IG5hbWU6IHN0cmluZzsgZGF0YTogQmxvYiB9XG4gIGFwaUtleT86IHN0cmluZ1xufSkge1xuICBsZXQgYm9keTogc3RyaW5nIHwgRm9ybURhdGFcbiAgY29uc3QgaGVhZGVyczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9XG5cbiAgY29uc3QgdXJsID0gbmV3IFVSTChvcHRpb25zLmNrYW5VcmwpXG4gIHVybC5wYXRobmFtZSA9IGAvYXBpLzMvYWN0aW9uLyR7b3B0aW9ucy5hY3Rpb259YFxuXG4gIGlmIChvcHRpb25zLmFwaUtleSkge1xuICAgIGhlYWRlcnMuQXV0aG9yaXphdGlvbiA9IG9wdGlvbnMuYXBpS2V5XG4gIH1cblxuICBpZiAob3B0aW9ucy51cGxvYWQpIHtcbiAgICBib2R5ID0gbmV3IEZvcm1EYXRhKClcbiAgICBib2R5LmFwcGVuZChcInVwbG9hZFwiLCBvcHRpb25zLnVwbG9hZC5kYXRhLCBvcHRpb25zLnVwbG9hZC5uYW1lKVxuXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMob3B0aW9ucy5wYXlsb2FkKSkge1xuICAgICAgYm9keS5hcHBlbmQoa2V5LCB2YWx1ZSlcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgYm9keSA9IEpTT04uc3RyaW5naWZ5KG9wdGlvbnMucGF5bG9hZClcbiAgICBoZWFkZXJzW1wiQ29udGVudC1UeXBlXCJdID0gXCJhcHBsaWNhdGlvbi9qc29uXCJcbiAgfVxuXG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsLnRvU3RyaW5nKCksIHtcbiAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgIGhlYWRlcnMsXG4gICAgYm9keSxcbiAgfSlcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgY29uc3QgZXJyb3JUZXh0ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYENLQU4gQVBJIGVycm9yOiAke3Jlc3BvbnNlLnN0YXR1c30gJHtyZXNwb25zZS5zdGF0dXNUZXh0fVxcbiR7ZXJyb3JUZXh0fWAsXG4gICAgKVxuICB9XG5cbiAgY29uc3QgZGF0YSA9IChhd2FpdCByZXNwb25zZS5qc29uKCkpIGFzIERlc2NyaXB0b3JcbiAgaWYgKCFkYXRhLnN1Y2Nlc3MpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENLQU4gQVBJIGVycm9yOiAke2RhdGEuZXJyb3J9YClcbiAgfVxuXG4gIHJldHVybiBkYXRhLnJlc3VsdCBhcyBUXG59XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from "./package/index.js";
|
|
2
|
+
export * from "./resource/index.js";
|
|
3
|
+
export * from "./schema/index.js";
|
|
4
|
+
export * from "./plugin.js";
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wbHVnaW5zL2NrYW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLHFCQUFxQixDQUFBO0FBQ25DLGNBQWMsbUJBQW1CLENBQUE7QUFDakMsY0FBYyxhQUFhLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9wYWNrYWdlL2luZGV4LnRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL3Jlc291cmNlL2luZGV4LnRzXCJcbmV4cG9ydCAqIGZyb20gXCIuL3NjaGVtYS9pbmRleC50c1wiXG5leHBvcnQgKiBmcm9tIFwiLi9wbHVnaW4udHNcIlxuIl19
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CKAN Organization interface
|
|
3
|
+
*/
|
|
4
|
+
export interface CkanOrganization {
|
|
5
|
+
/**
|
|
6
|
+
* Organization identifier
|
|
7
|
+
*/
|
|
8
|
+
id: string;
|
|
9
|
+
/**
|
|
10
|
+
* Organization name
|
|
11
|
+
*/
|
|
12
|
+
name: string;
|
|
13
|
+
/**
|
|
14
|
+
* Organization title
|
|
15
|
+
*/
|
|
16
|
+
title: string;
|
|
17
|
+
/**
|
|
18
|
+
* Organization description
|
|
19
|
+
*/
|
|
20
|
+
description: string;
|
|
21
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JnYW5pemF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGx1Z2lucy9ja2FuL3BhY2thZ2UvT3JnYW5pemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENLQU4gT3JnYW5pemF0aW9uIGludGVyZmFjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENrYW5Pcmdhbml6YXRpb24ge1xuICAvKipcbiAgICogT3JnYW5pemF0aW9uIGlkZW50aWZpZXJcbiAgICovXG4gIGlkOiBzdHJpbmdcblxuICAvKipcbiAgICogT3JnYW5pemF0aW9uIG5hbWVcbiAgICovXG4gIG5hbWU6IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBPcmdhbml6YXRpb24gdGl0bGVcbiAgICovXG4gIHRpdGxlOiBzdHJpbmdcblxuICAvKipcbiAgICogT3JnYW5pemF0aW9uIGRlc2NyaXB0aW9uXG4gICAqL1xuICBkZXNjcmlwdGlvbjogc3RyaW5nXG59XG4iXX0=
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import type { CkanResource } from "../resource/index.ts";
|
|
2
|
+
import type { CkanOrganization } from "./Organization.ts";
|
|
3
|
+
import type { CkanTag } from "./Tag.ts";
|
|
4
|
+
/**
|
|
5
|
+
* CKAN Package interface
|
|
6
|
+
*/
|
|
7
|
+
export interface CkanPackage {
|
|
8
|
+
/**
|
|
9
|
+
* List of resources
|
|
10
|
+
*/
|
|
11
|
+
resources: CkanResource[];
|
|
12
|
+
/**
|
|
13
|
+
* Organization information
|
|
14
|
+
*/
|
|
15
|
+
organization?: CkanOrganization;
|
|
16
|
+
/**
|
|
17
|
+
* List of tags
|
|
18
|
+
*/
|
|
19
|
+
tags: CkanTag[];
|
|
20
|
+
/**
|
|
21
|
+
* Package identifier
|
|
22
|
+
*/
|
|
23
|
+
id: string;
|
|
24
|
+
/**
|
|
25
|
+
* Package name
|
|
26
|
+
*/
|
|
27
|
+
name: string;
|
|
28
|
+
/**
|
|
29
|
+
* Package title
|
|
30
|
+
*/
|
|
31
|
+
title?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Package notes/description
|
|
34
|
+
*/
|
|
35
|
+
notes?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Package version
|
|
38
|
+
*/
|
|
39
|
+
version?: string;
|
|
40
|
+
/**
|
|
41
|
+
* License identifier
|
|
42
|
+
*/
|
|
43
|
+
license_id?: string;
|
|
44
|
+
/**
|
|
45
|
+
* License title
|
|
46
|
+
*/
|
|
47
|
+
license_title?: string;
|
|
48
|
+
/**
|
|
49
|
+
* License URL
|
|
50
|
+
*/
|
|
51
|
+
license_url?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Package author
|
|
54
|
+
*/
|
|
55
|
+
author?: string;
|
|
56
|
+
/**
|
|
57
|
+
* Package author email
|
|
58
|
+
*/
|
|
59
|
+
author_email?: string;
|
|
60
|
+
/**
|
|
61
|
+
* Package maintainer
|
|
62
|
+
*/
|
|
63
|
+
maintainer?: string;
|
|
64
|
+
/**
|
|
65
|
+
* Package maintainer email
|
|
66
|
+
*/
|
|
67
|
+
maintainer_email?: string;
|
|
68
|
+
/**
|
|
69
|
+
* Metadata creation timestamp
|
|
70
|
+
*/
|
|
71
|
+
metadata_created?: string;
|
|
72
|
+
/**
|
|
73
|
+
* Metadata modification timestamp
|
|
74
|
+
*/
|
|
75
|
+
metadata_modified?: string;
|
|
76
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BsdWdpbnMvY2thbi9wYWNrYWdlL1BhY2thZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ2thblJlc291cmNlIH0gZnJvbSBcIi4uL3Jlc291cmNlL2luZGV4LnRzXCJcbmltcG9ydCB0eXBlIHsgQ2thbk9yZ2FuaXphdGlvbiB9IGZyb20gXCIuL09yZ2FuaXphdGlvbi50c1wiXG5pbXBvcnQgdHlwZSB7IENrYW5UYWcgfSBmcm9tIFwiLi9UYWcudHNcIlxuXG4vKipcbiAqIENLQU4gUGFja2FnZSBpbnRlcmZhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDa2FuUGFja2FnZSB7XG4gIC8qKlxuICAgKiBMaXN0IG9mIHJlc291cmNlc1xuICAgKi9cbiAgcmVzb3VyY2VzOiBDa2FuUmVzb3VyY2VbXVxuXG4gIC8qKlxuICAgKiBPcmdhbml6YXRpb24gaW5mb3JtYXRpb25cbiAgICovXG4gIG9yZ2FuaXphdGlvbj86IENrYW5Pcmdhbml6YXRpb25cblxuICAvKipcbiAgICogTGlzdCBvZiB0YWdzXG4gICAqL1xuICB0YWdzOiBDa2FuVGFnW11cblxuICAvKipcbiAgICogUGFja2FnZSBpZGVudGlmaWVyXG4gICAqL1xuICBpZDogc3RyaW5nXG5cbiAgLyoqXG4gICAqIFBhY2thZ2UgbmFtZVxuICAgKi9cbiAgbmFtZTogc3RyaW5nXG5cbiAgLyoqXG4gICAqIFBhY2thZ2UgdGl0bGVcbiAgICovXG4gIHRpdGxlPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIFBhY2thZ2Ugbm90ZXMvZGVzY3JpcHRpb25cbiAgICovXG4gIG5vdGVzPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIFBhY2thZ2UgdmVyc2lvblxuICAgKi9cbiAgdmVyc2lvbj86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBMaWNlbnNlIGlkZW50aWZpZXJcbiAgICovXG4gIGxpY2Vuc2VfaWQ/OiBzdHJpbmdcblxuICAvKipcbiAgICogTGljZW5zZSB0aXRsZVxuICAgKi9cbiAgbGljZW5zZV90aXRsZT86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBMaWNlbnNlIFVSTFxuICAgKi9cbiAgbGljZW5zZV91cmw/OiBzdHJpbmdcblxuICAvKipcbiAgICogUGFja2FnZSBhdXRob3JcbiAgICovXG4gIGF1dGhvcj86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBQYWNrYWdlIGF1dGhvciBlbWFpbFxuICAgKi9cbiAgYXV0aG9yX2VtYWlsPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIFBhY2thZ2UgbWFpbnRhaW5lclxuICAgKi9cbiAgbWFpbnRhaW5lcj86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBQYWNrYWdlIG1haW50YWluZXIgZW1haWxcbiAgICovXG4gIG1haW50YWluZXJfZW1haWw/OiBzdHJpbmdcblxuICAvKipcbiAgICogTWV0YWRhdGEgY3JlYXRpb24gdGltZXN0YW1wXG4gICAqL1xuICBtZXRhZGF0YV9jcmVhdGVkPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIE1ldGFkYXRhIG1vZGlmaWNhdGlvbiB0aW1lc3RhbXBcbiAgICovXG4gIG1ldGFkYXRhX21vZGlmaWVkPzogc3RyaW5nXG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGx1Z2lucy9ja2FuL3BhY2thZ2UvVGFnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENLQU4gVGFnIGludGVyZmFjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENrYW5UYWcge1xuICAvKipcbiAgICogVGFnIGlkZW50aWZpZXJcbiAgICovXG4gIGlkOiBzdHJpbmdcblxuICAvKipcbiAgICogVGFnIG5hbWVcbiAgICovXG4gIG5hbWU6IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBUYWcgZGlzcGxheSBuYW1lXG4gICAqL1xuICBkaXNwbGF5X25hbWU6IHN0cmluZ1xufVxuIl19
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { convertResourceFromCkan } from "../../resource/index.js";
|
|
2
|
+
export function convertPackageFromCkan(ckanPackage) {
|
|
3
|
+
const datapackage = {
|
|
4
|
+
name: ckanPackage.name,
|
|
5
|
+
resources: [],
|
|
6
|
+
};
|
|
7
|
+
if (ckanPackage.title) {
|
|
8
|
+
datapackage.title = ckanPackage.title;
|
|
9
|
+
}
|
|
10
|
+
if (ckanPackage.notes) {
|
|
11
|
+
datapackage.description = ckanPackage.notes;
|
|
12
|
+
}
|
|
13
|
+
if (ckanPackage.version) {
|
|
14
|
+
datapackage.version = ckanPackage.version;
|
|
15
|
+
}
|
|
16
|
+
if (ckanPackage.resources && ckanPackage.resources.length > 0) {
|
|
17
|
+
datapackage.resources = ckanPackage.resources.map(resource => convertResourceFromCkan(resource));
|
|
18
|
+
}
|
|
19
|
+
if (ckanPackage.license_id) {
|
|
20
|
+
const license = {
|
|
21
|
+
name: ckanPackage.license_id,
|
|
22
|
+
};
|
|
23
|
+
if (ckanPackage.license_title) {
|
|
24
|
+
license.title = ckanPackage.license_title;
|
|
25
|
+
}
|
|
26
|
+
if (ckanPackage.license_url) {
|
|
27
|
+
license.path = ckanPackage.license_url;
|
|
28
|
+
}
|
|
29
|
+
datapackage.licenses = [license];
|
|
30
|
+
}
|
|
31
|
+
const contributors = [];
|
|
32
|
+
if (ckanPackage.author) {
|
|
33
|
+
const authorContributor = {
|
|
34
|
+
title: ckanPackage.author,
|
|
35
|
+
role: "author",
|
|
36
|
+
};
|
|
37
|
+
if (ckanPackage.author_email) {
|
|
38
|
+
authorContributor.email = ckanPackage.author_email;
|
|
39
|
+
}
|
|
40
|
+
contributors.push(authorContributor);
|
|
41
|
+
}
|
|
42
|
+
if (ckanPackage.maintainer) {
|
|
43
|
+
const maintainerContributor = {
|
|
44
|
+
title: ckanPackage.maintainer,
|
|
45
|
+
role: "maintainer",
|
|
46
|
+
};
|
|
47
|
+
if (ckanPackage.maintainer_email) {
|
|
48
|
+
maintainerContributor.email = ckanPackage.maintainer_email;
|
|
49
|
+
}
|
|
50
|
+
contributors.push(maintainerContributor);
|
|
51
|
+
}
|
|
52
|
+
if (contributors.length > 0) {
|
|
53
|
+
datapackage.contributors = contributors;
|
|
54
|
+
}
|
|
55
|
+
if (ckanPackage.tags && ckanPackage.tags.length > 0) {
|
|
56
|
+
datapackage.keywords = ckanPackage.tags.map(tag => tag.name);
|
|
57
|
+
}
|
|
58
|
+
if (ckanPackage.metadata_created) {
|
|
59
|
+
datapackage.created = ckanPackage.metadata_created;
|
|
60
|
+
}
|
|
61
|
+
return datapackage;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbUNrYW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wbHVnaW5zL2NrYW4vcGFja2FnZS9jb252ZXJ0L2Zyb21Da2FuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBR2pFLE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxXQUF3QjtJQUM3RCxNQUFNLFdBQVcsR0FBWTtRQUMzQixJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUk7UUFDdEIsU0FBUyxFQUFFLEVBQUU7S0FDZCxDQUFBO0lBRUQsSUFBSSxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEIsV0FBVyxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFBO0lBQ3ZDLENBQUM7SUFFRCxJQUFJLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QixXQUFXLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUE7SUFDN0MsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLFdBQVcsQ0FBQyxPQUFPLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQTtJQUMzQyxDQUFDO0lBRUQsSUFBSSxXQUFXLENBQUMsU0FBUyxJQUFJLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzlELFdBQVcsQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FDM0QsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQ2xDLENBQUE7SUFDSCxDQUFDO0lBRUQsSUFBSSxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDM0IsTUFBTSxPQUFPLEdBQVk7WUFDdkIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxVQUFVO1NBQzdCLENBQUE7UUFFRCxJQUFJLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM5QixPQUFPLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUE7UUFDM0MsQ0FBQztRQUVELElBQUksV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzVCLE9BQU8sQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQTtRQUN4QyxDQUFDO1FBRUQsV0FBVyxDQUFDLFFBQVEsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRCxNQUFNLFlBQVksR0FBa0IsRUFBRSxDQUFBO0lBRXRDLElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3ZCLE1BQU0saUJBQWlCLEdBQWdCO1lBQ3JDLEtBQUssRUFBRSxXQUFXLENBQUMsTUFBTTtZQUN6QixJQUFJLEVBQUUsUUFBUTtTQUNmLENBQUE7UUFFRCxJQUFJLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM3QixpQkFBaUIsQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQTtRQUNwRCxDQUFDO1FBRUQsWUFBWSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBQ3RDLENBQUM7SUFFRCxJQUFJLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzQixNQUFNLHFCQUFxQixHQUFnQjtZQUN6QyxLQUFLLEVBQUUsV0FBVyxDQUFDLFVBQVU7WUFDN0IsSUFBSSxFQUFFLFlBQVk7U0FDbkIsQ0FBQTtRQUVELElBQUksV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDakMscUJBQXFCLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQTtRQUM1RCxDQUFDO1FBRUQsWUFBWSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO0lBQzFDLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDNUIsV0FBVyxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUE7SUFDekMsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLElBQUksSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNwRCxXQUFXLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzlELENBQUM7SUFFRCxJQUFJLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ2pDLFdBQVcsQ0FBQyxPQUFPLEdBQUcsV0FBVyxDQUFDLGdCQUFnQixDQUFBO0lBQ3BELENBQUM7SUFFRCxPQUFPLFdBQVcsQ0FBQTtBQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb250cmlidXRvciwgUGFja2FnZSB9IGZyb20gXCJAZnJpY3Rpb25sZXNzLXRzL21ldGFkYXRhXCJcbmltcG9ydCB0eXBlIHsgTGljZW5zZSB9IGZyb20gXCJAZnJpY3Rpb25sZXNzLXRzL21ldGFkYXRhXCJcbmltcG9ydCB7IGNvbnZlcnRSZXNvdXJjZUZyb21Da2FuIH0gZnJvbSBcIi4uLy4uL3Jlc291cmNlL2luZGV4LnRzXCJcbmltcG9ydCB0eXBlIHsgQ2thblBhY2thZ2UgfSBmcm9tIFwiLi4vUGFja2FnZS50c1wiXG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0UGFja2FnZUZyb21Da2FuKGNrYW5QYWNrYWdlOiBDa2FuUGFja2FnZSk6IFBhY2thZ2Uge1xuICBjb25zdCBkYXRhcGFja2FnZTogUGFja2FnZSA9IHtcbiAgICBuYW1lOiBja2FuUGFja2FnZS5uYW1lLFxuICAgIHJlc291cmNlczogW10sXG4gIH1cblxuICBpZiAoY2thblBhY2thZ2UudGl0bGUpIHtcbiAgICBkYXRhcGFja2FnZS50aXRsZSA9IGNrYW5QYWNrYWdlLnRpdGxlXG4gIH1cblxuICBpZiAoY2thblBhY2thZ2Uubm90ZXMpIHtcbiAgICBkYXRhcGFja2FnZS5kZXNjcmlwdGlvbiA9IGNrYW5QYWNrYWdlLm5vdGVzXG4gIH1cblxuICBpZiAoY2thblBhY2thZ2UudmVyc2lvbikge1xuICAgIGRhdGFwYWNrYWdlLnZlcnNpb24gPSBja2FuUGFja2FnZS52ZXJzaW9uXG4gIH1cblxuICBpZiAoY2thblBhY2thZ2UucmVzb3VyY2VzICYmIGNrYW5QYWNrYWdlLnJlc291cmNlcy5sZW5ndGggPiAwKSB7XG4gICAgZGF0YXBhY2thZ2UucmVzb3VyY2VzID0gY2thblBhY2thZ2UucmVzb3VyY2VzLm1hcChyZXNvdXJjZSA9PlxuICAgICAgY29udmVydFJlc291cmNlRnJvbUNrYW4ocmVzb3VyY2UpLFxuICAgIClcbiAgfVxuXG4gIGlmIChja2FuUGFja2FnZS5saWNlbnNlX2lkKSB7XG4gICAgY29uc3QgbGljZW5zZTogTGljZW5zZSA9IHtcbiAgICAgIG5hbWU6IGNrYW5QYWNrYWdlLmxpY2Vuc2VfaWQsXG4gICAgfVxuXG4gICAgaWYgKGNrYW5QYWNrYWdlLmxpY2Vuc2VfdGl0bGUpIHtcbiAgICAgIGxpY2Vuc2UudGl0bGUgPSBja2FuUGFja2FnZS5saWNlbnNlX3RpdGxlXG4gICAgfVxuXG4gICAgaWYgKGNrYW5QYWNrYWdlLmxpY2Vuc2VfdXJsKSB7XG4gICAgICBsaWNlbnNlLnBhdGggPSBja2FuUGFja2FnZS5saWNlbnNlX3VybFxuICAgIH1cblxuICAgIGRhdGFwYWNrYWdlLmxpY2Vuc2VzID0gW2xpY2Vuc2VdXG4gIH1cblxuICBjb25zdCBjb250cmlidXRvcnM6IENvbnRyaWJ1dG9yW10gPSBbXVxuXG4gIGlmIChja2FuUGFja2FnZS5hdXRob3IpIHtcbiAgICBjb25zdCBhdXRob3JDb250cmlidXRvcjogQ29udHJpYnV0b3IgPSB7XG4gICAgICB0aXRsZTogY2thblBhY2thZ2UuYXV0aG9yLFxuICAgICAgcm9sZTogXCJhdXRob3JcIixcbiAgICB9XG5cbiAgICBpZiAoY2thblBhY2thZ2UuYXV0aG9yX2VtYWlsKSB7XG4gICAgICBhdXRob3JDb250cmlidXRvci5lbWFpbCA9IGNrYW5QYWNrYWdlLmF1dGhvcl9lbWFpbFxuICAgIH1cblxuICAgIGNvbnRyaWJ1dG9ycy5wdXNoKGF1dGhvckNvbnRyaWJ1dG9yKVxuICB9XG5cbiAgaWYgKGNrYW5QYWNrYWdlLm1haW50YWluZXIpIHtcbiAgICBjb25zdCBtYWludGFpbmVyQ29udHJpYnV0b3I6IENvbnRyaWJ1dG9yID0ge1xuICAgICAgdGl0bGU6IGNrYW5QYWNrYWdlLm1haW50YWluZXIsXG4gICAgICByb2xlOiBcIm1haW50YWluZXJcIixcbiAgICB9XG5cbiAgICBpZiAoY2thblBhY2thZ2UubWFpbnRhaW5lcl9lbWFpbCkge1xuICAgICAgbWFpbnRhaW5lckNvbnRyaWJ1dG9yLmVtYWlsID0gY2thblBhY2thZ2UubWFpbnRhaW5lcl9lbWFpbFxuICAgIH1cblxuICAgIGNvbnRyaWJ1dG9ycy5wdXNoKG1haW50YWluZXJDb250cmlidXRvcilcbiAgfVxuXG4gIGlmIChjb250cmlidXRvcnMubGVuZ3RoID4gMCkge1xuICAgIGRhdGFwYWNrYWdlLmNvbnRyaWJ1dG9ycyA9IGNvbnRyaWJ1dG9yc1xuICB9XG5cbiAgaWYgKGNrYW5QYWNrYWdlLnRhZ3MgJiYgY2thblBhY2thZ2UudGFncy5sZW5ndGggPiAwKSB7XG4gICAgZGF0YXBhY2thZ2Uua2V5d29yZHMgPSBja2FuUGFja2FnZS50YWdzLm1hcCh0YWcgPT4gdGFnLm5hbWUpXG4gIH1cblxuICBpZiAoY2thblBhY2thZ2UubWV0YWRhdGFfY3JlYXRlZCkge1xuICAgIGRhdGFwYWNrYWdlLmNyZWF0ZWQgPSBja2FuUGFja2FnZS5tZXRhZGF0YV9jcmVhdGVkXG4gIH1cblxuICByZXR1cm4gZGF0YXBhY2thZ2Vcbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import ckanPackageFixture from "../fixtures/ckan-package.json" with {
|
|
3
|
+
type: "json"
|
|
4
|
+
};
|
|
5
|
+
import { convertPackageFromCkan } from "./fromCkan.js";
|
|
6
|
+
describe("convertPackageFromCkan", () => {
|
|
7
|
+
it("converts a CKAN package to a Frictionless Data Package", () => {
|
|
8
|
+
const ckanPackage = ckanPackageFixture;
|
|
9
|
+
const result = convertPackageFromCkan(ckanPackage);
|
|
10
|
+
expect(result.name).toEqual(ckanPackage.name);
|
|
11
|
+
expect(result.title).toEqual(ckanPackage.title);
|
|
12
|
+
expect(result.description).toEqual(ckanPackage.notes);
|
|
13
|
+
expect(result.version).toEqual(ckanPackage.version);
|
|
14
|
+
expect(result.created).toEqual(ckanPackage.metadata_created);
|
|
15
|
+
expect(result.licenses).toHaveLength(1);
|
|
16
|
+
if (result.licenses && result.licenses.length > 0 && result.licenses[0]) {
|
|
17
|
+
const license = result.licenses[0];
|
|
18
|
+
if (ckanPackage.license_id)
|
|
19
|
+
expect(license.name).toEqual(ckanPackage.license_id);
|
|
20
|
+
if (ckanPackage.license_title)
|
|
21
|
+
expect(license.title).toEqual(ckanPackage.license_title);
|
|
22
|
+
if (ckanPackage.license_url)
|
|
23
|
+
expect(license.path).toEqual(ckanPackage.license_url);
|
|
24
|
+
}
|
|
25
|
+
expect(result.contributors).toHaveLength(2);
|
|
26
|
+
if (result.contributors) {
|
|
27
|
+
const author = result.contributors.find(c => c.role === "author");
|
|
28
|
+
expect(author).toBeTruthy();
|
|
29
|
+
if (author) {
|
|
30
|
+
expect(author.title).toEqual(ckanPackage.author);
|
|
31
|
+
expect(author.email).toEqual(ckanPackage.author_email);
|
|
32
|
+
}
|
|
33
|
+
const maintainer = result.contributors.find(c => c.role === "maintainer");
|
|
34
|
+
expect(maintainer).toBeTruthy();
|
|
35
|
+
if (maintainer) {
|
|
36
|
+
expect(maintainer.title).toEqual(ckanPackage.maintainer);
|
|
37
|
+
expect(maintainer.email).toEqual(ckanPackage.maintainer_email);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
expect(result.keywords).toHaveLength(ckanPackage.tags.length);
|
|
41
|
+
expect(result.keywords).toEqual(ckanPackage.tags.map(tag => tag.name));
|
|
42
|
+
expect(result.resources).toHaveLength(ckanPackage.resources.length);
|
|
43
|
+
const firstCkanResource = ckanPackage.resources[0];
|
|
44
|
+
const firstResource = result.resources[0];
|
|
45
|
+
expect(firstCkanResource).toBeDefined();
|
|
46
|
+
expect(firstResource).toBeDefined();
|
|
47
|
+
if (firstResource && firstCkanResource) {
|
|
48
|
+
expect(firstResource.path).toEqual(firstCkanResource.url);
|
|
49
|
+
expect(firstResource.name).toMatch(/^sample[-_]linked[-_]csv$/);
|
|
50
|
+
expect(firstResource.description).toEqual(firstCkanResource.description);
|
|
51
|
+
expect(firstResource.format).toEqual(firstCkanResource.format?.toLowerCase());
|
|
52
|
+
expect(firstResource.mediatype).toEqual(firstCkanResource.mimetype);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
it("handles empty resources array", () => {
|
|
56
|
+
const ckanPackage = {
|
|
57
|
+
...ckanPackageFixture,
|
|
58
|
+
resources: [],
|
|
59
|
+
};
|
|
60
|
+
const result = convertPackageFromCkan(ckanPackage);
|
|
61
|
+
expect(result.resources).toEqual([]);
|
|
62
|
+
});
|
|
63
|
+
it("handles undefined optional properties", () => {
|
|
64
|
+
const ckanPackage = {
|
|
65
|
+
resources: [],
|
|
66
|
+
tags: [],
|
|
67
|
+
};
|
|
68
|
+
const result = convertPackageFromCkan(ckanPackage);
|
|
69
|
+
expect(result.name).toBeUndefined();
|
|
70
|
+
expect(result.title).toBeUndefined();
|
|
71
|
+
expect(result.description).toBeUndefined();
|
|
72
|
+
expect(result.version).toBeUndefined();
|
|
73
|
+
expect(result.created).toBeUndefined();
|
|
74
|
+
expect(result.licenses).toBeUndefined();
|
|
75
|
+
expect(result.contributors).toBeUndefined();
|
|
76
|
+
expect(result.keywords).toBeUndefined();
|
|
77
|
+
expect(result.resources).toEqual([]);
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbUNrYW4uc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BsdWdpbnMvY2thbi9wYWNrYWdlL2NvbnZlcnQvZnJvbUNrYW4uc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFFN0MsT0FBTyxrQkFBa0IsTUFBTSwrQkFBK0IsQ0FBQztJQUM3RCxJQUFJLEVBQUUsTUFBTTtDQUNiLENBQUE7QUFDRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFdEQsUUFBUSxDQUFDLHdCQUF3QixFQUFFLEdBQUcsRUFBRTtJQUN0QyxFQUFFLENBQUMsd0RBQXdELEVBQUUsR0FBRyxFQUFFO1FBQ2hFLE1BQU0sV0FBVyxHQUFHLGtCQUFpQyxDQUFBO1FBRXJELE1BQU0sTUFBTSxHQUFHLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBRWxELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM3QyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDL0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3JELE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNuRCxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUU1RCxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFD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TUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFBO1FBQ25DLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDcEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUMxQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFBO1FBQ3RDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDdEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUN2QyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFBO1FBQzNDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDdkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDdEMsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlc2NyaWJlLCBleHBlY3QsIGl0IH0gZnJvbSBcInZpdGVzdFwiXG5pbXBvcnQgdHlwZSB7IENrYW5QYWNrYWdlIH0gZnJvbSBcIi4uL1BhY2thZ2UudHNcIlxuaW1wb3J0IGNrYW5QYWNrYWdlRml4dHVyZSBmcm9tIFwiLi4vZml4dHVyZXMvY2thbi1wYWNrYWdlLmpzb25cIiB3aXRoIHtcbiAgdHlwZTogXCJqc29uXCIsXG59XG5pbXBvcnQgeyBjb252ZXJ0UGFja2FnZUZyb21Da2FuIH0gZnJvbSBcIi4vZnJvbUNrYW4udHNcIlxuXG5kZXNjcmliZShcImNvbnZlcnRQYWNrYWdlRnJvbUNrYW5cIiwgKCkgPT4ge1xuICBpdChcImNvbnZlcnRzIGEgQ0tBTiBwYWNrYWdlIHRvIGEgRnJpY3Rpb25sZXNzIERhdGEgUGFja2FnZVwiLCAoKSA9PiB7XG4gICAgY29uc3QgY2thblBhY2thZ2UgPSBja2FuUGFja2FnZUZpeHR1cmUgYXMgQ2thblBhY2thZ2VcblxuICAgIGNvbnN0IHJlc3VsdCA9IGNvbnZlcnRQYWNrYWdlRnJvbUNrYW4oY2thblBhY2thZ2UpXG5cbiAgICBleHBlY3QocmVzdWx0Lm5hbWUpLnRvRXF1YWwoY2thblBhY2thZ2UubmFtZSlcbiAgICBleHBlY3QocmVzdWx0LnRpdGxlKS50b0VxdWFsKGNrYW5QYWNrYWdlLnRpdGxlKVxuICAgIGV4cGVjdChyZXN1bHQuZGVzY3JpcHRpb24pLnRvRXF1YWwoY2thblBhY2thZ2Uubm90ZXMpXG4gICAgZXhwZWN0KHJlc3VsdC52ZXJzaW9uKS50b0VxdWFsKGNrYW5QYWNrYWdlLnZlcnNpb24pXG4gICAgZXhwZWN0KHJlc3VsdC5jcmVhdGVkKS50b0VxdWFsKGNrYW5QYWNrYWdlLm1ldGFkYXRhX2NyZWF0ZWQpXG5cbiAgICBleHBlY3QocmVzdWx0LmxpY2Vuc2VzKS50b0hhdmVMZW5ndGgoMSlcbiAgICBpZiAocmVzdWx0LmxpY2Vuc2VzICYmIHJlc3VsdC5saWNlbnNlcy5sZW5ndGggPiAwICYmIHJlc3VsdC5saWNlbnNlc1swXSkge1xuICAgICAgY29uc3QgbGljZW5zZSA9IHJlc3VsdC5saWNlbnNlc1swXVxuICAgICAgaWYgKGNrYW5QYWNrYWdlLmxpY2Vuc2VfaWQpXG4gICAgICAgIGV4cGVjdChsaWNlbnNlLm5hbWUpLnRvRXF1YWwoY2thblBhY2thZ2UubGljZW5zZV9pZClcbiAgICAgIGlmIChja2FuUGFja2FnZS5saWNlbnNlX3RpdGxlKVxuICAgICAgICBleHBlY3QobGljZW5zZS50aXRsZSkudG9FcXVhbChja2FuUGFja2FnZS5saWNlbnNlX3RpdGxlKVxuICAgICAgaWYgKGNrYW5QYWNrYWdlLmxpY2Vuc2VfdXJsKVxuICAgICAgICBleHBlY3QobGljZW5zZS5wYXRoKS50b0VxdWFsKGNrYW5QYWNrYWdlLmxpY2Vuc2VfdXJsKVxuICAgIH1cblxuICAgIGV4cGVjdChyZXN1bHQuY29udHJpYnV0b3JzKS50b0hhdmVMZW5ndGgoMilcbiAgICBpZiAocmVzdWx0LmNvbnRyaWJ1dG9ycykge1xuICAgICAgY29uc3QgYXV0aG9yID0gcmVzdWx0LmNvbnRyaWJ1dG9ycy5maW5kKGMgPT4gYy5yb2xlID09PSBcImF1dGhvclwiKVxuICAgICAgZXhwZWN0KGF1dGhvcikudG9CZVRydXRoeSgpXG4gICAgICBpZiAoYXV0aG9yKSB7XG4gICAgICAgIGV4cGVjdChhdXRob3IudGl0bGUpLnRvRXF1YWwoY2thblBhY2thZ2UuYXV0aG9yKVxuICAgICAgICBleHBlY3QoYXV0aG9yLmVtYWlsKS50b0VxdWFsKGNrYW5QYWNrYWdlLmF1dGhvcl9lbWFpbClcbiAgICAgIH1cblxuICAgICAgY29uc3QgbWFpbnRhaW5lciA9IHJlc3VsdC5jb250cmlidXRvcnMuZmluZChjID0+IGMucm9sZSA9PT0gXCJtYWludGFpbmVyXCIpXG4gICAgICBleHBlY3QobWFpbnRhaW5lcikudG9CZVRydXRoeSgpXG4gICAgICBpZiAobWFpbnRhaW5lcikge1xuICAgICAgICBleHBlY3QobWFpbnRhaW5lci50aXRsZSkudG9FcXVhbChja2FuUGFja2FnZS5tYWludGFpbmVyKVxuICAgICAgICBleHBlY3QobWFpbnRhaW5lci5lbWFpbCkudG9FcXVhbChja2FuUGFja2FnZS5tYWludGFpbmVyX2VtYWlsKVxuICAgICAgfVxuICAgIH1cblxuICAgIGV4cGVjdChyZXN1bHQua2V5d29yZHMpLnRvSGF2ZUxlbmd0aChja2FuUGFja2FnZS50YWdzLmxlbmd0aClcbiAgICBleHBlY3QocmVzdWx0LmtleXdvcmRzKS50b0VxdWFsKGNrYW5QYWNrYWdlLnRhZ3MubWFwKHRhZyA9PiB0YWcubmFtZSkpXG5cbiAgICBleHBlY3QocmVzdWx0LnJlc291cmNlcykudG9IYXZlTGVuZ3RoKGNrYW5QYWNrYWdlLnJlc291cmNlcy5sZW5ndGgpXG5cbiAgICBjb25zdCBmaXJzdENrYW5SZXNvdXJjZSA9IGNrYW5QYWNrYWdlLnJlc291cmNlc1swXVxuICAgIGNvbnN0IGZpcnN0UmVzb3VyY2UgPSByZXN1bHQucmVzb3VyY2VzWzBdXG5cbiAgICBleHBlY3QoZmlyc3RDa2FuUmVzb3VyY2UpLnRvQmVEZWZpbmVkKClcbiAgICBleHBlY3QoZmlyc3RSZXNvdXJjZSkudG9CZURlZmluZWQoKVxuXG4gICAgaWYgKGZpcnN0UmVzb3VyY2UgJiYgZmlyc3RDa2FuUmVzb3VyY2UpIHtcbiAgICAgIGV4cGVjdChmaXJzdFJlc291cmNlLnBhdGgpLnRvRXF1YWwoZmlyc3RDa2FuUmVzb3VyY2UudXJsKVxuICAgICAgZXhwZWN0KGZpcnN0UmVzb3VyY2UubmFtZSkudG9NYXRjaCgvXnNhbXBsZVstX11saW5rZWRbLV9dY3N2JC8pXG4gICAgICBleHBlY3QoZmlyc3RSZXNvdXJjZS5kZXNjcmlwdGlvbikudG9FcXVhbChmaXJzdENrYW5SZXNvdXJjZS5kZXNjcmlwdGlvbilcbiAgICAgIGV4cGVjdChmaXJzdFJlc291cmNlLmZvcm1hdCkudG9FcXVhbChcbiAgICAgICAgZmlyc3RDa2FuUmVzb3VyY2UuZm9ybWF0Py50b0xvd2VyQ2FzZSgpLFxuICAgICAgKVxuICAgICAgZXhwZWN0KGZpcnN0UmVzb3VyY2UubWVkaWF0eXBlKS50b0VxdWFsKGZpcnN0Q2thblJlc291cmNlLm1pbWV0eXBlKVxuICAgIH1cbiAgfSlcblxuICBpdChcImhhbmRsZXMgZW1wdHkgcmVzb3VyY2VzIGFycmF5XCIsICgpID0+IHtcbiAgICBjb25zdCBja2FuUGFja2FnZTogQ2thblBhY2thZ2UgPSB7XG4gICAgICAuLi4oY2thblBhY2thZ2VGaXh0dXJlIGFzIENrYW5QYWNrYWdlKSxcbiAgICAgIHJlc291cmNlczogW10sXG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gY29udmVydFBhY2thZ2VGcm9tQ2thbihja2FuUGFja2FnZSlcblxuICAgIGV4cGVjdChyZXN1bHQucmVzb3VyY2VzKS50b0VxdWFsKFtdKVxuICB9KVxuXG4gIGl0KFwiaGFuZGxlcyB1bmRlZmluZWQgb3B0aW9uYWwgcHJvcGVydGllc1wiLCAoKSA9PiB7XG4gICAgY29uc3QgY2thblBhY2thZ2U6IFBhcnRpYWw8Q2thblBhY2thZ2U+ID0ge1xuICAgICAgcmVzb3VyY2VzOiBbXSxcbiAgICAgIHRhZ3M6IFtdLFxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGNvbnZlcnRQYWNrYWdlRnJvbUNrYW4oY2thblBhY2thZ2UgYXMgQ2thblBhY2thZ2UpXG5cbiAgICBleHBlY3QocmVzdWx0Lm5hbWUpLnRvQmVVbmRlZmluZWQoKVxuICAgIGV4cGVjdChyZXN1bHQudGl0bGUpLnRvQmVVbmRlZmluZWQoKVxuICAgIGV4cGVjdChyZXN1bHQuZGVzY3JpcHRpb24pLnRvQmVVbmRlZmluZWQoKVxuICAgIGV4cGVjdChyZXN1bHQudmVyc2lvbikudG9CZVVuZGVmaW5lZCgpXG4gICAgZXhwZWN0KHJlc3VsdC5jcmVhdGVkKS50b0JlVW5kZWZpbmVkKClcbiAgICBleHBlY3QocmVzdWx0LmxpY2Vuc2VzKS50b0JlVW5kZWZpbmVkKClcbiAgICBleHBlY3QocmVzdWx0LmNvbnRyaWJ1dG9ycykudG9CZVVuZGVmaW5lZCgpXG4gICAgZXhwZWN0KHJlc3VsdC5rZXl3b3JkcykudG9CZVVuZGVmaW5lZCgpXG4gICAgZXhwZWN0KHJlc3VsdC5yZXNvdXJjZXMpLnRvRXF1YWwoW10pXG4gIH0pXG59KVxuIl19
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Package } from "@frictionless-ts/metadata";
|
|
2
|
+
import type { CkanResource } from "../../resource/Resource.ts";
|
|
3
|
+
import type { CkanTag } from "../Tag.ts";
|
|
4
|
+
export declare function convertPackageToCkan(dataPackage: Package): {
|
|
5
|
+
organization?: import("../Organization.ts").CkanOrganization | undefined;
|
|
6
|
+
id?: string | undefined;
|
|
7
|
+
name?: string | undefined;
|
|
8
|
+
title?: string | undefined;
|
|
9
|
+
notes?: string | undefined;
|
|
10
|
+
version?: string | undefined;
|
|
11
|
+
license_id?: string | undefined;
|
|
12
|
+
license_title?: string | undefined;
|
|
13
|
+
license_url?: string | undefined;
|
|
14
|
+
author?: string | undefined;
|
|
15
|
+
author_email?: string | undefined;
|
|
16
|
+
maintainer?: string | undefined;
|
|
17
|
+
maintainer_email?: string | undefined;
|
|
18
|
+
metadata_created?: string | undefined;
|
|
19
|
+
metadata_modified?: string | undefined;
|
|
20
|
+
resources: CkanResource[];
|
|
21
|
+
tags: CkanTag[];
|
|
22
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { convertResourceToCkan } from "../../resource/index.js";
|
|
2
|
+
export function convertPackageToCkan(dataPackage) {
|
|
3
|
+
const ckanPackage = {
|
|
4
|
+
resources: [],
|
|
5
|
+
tags: [],
|
|
6
|
+
};
|
|
7
|
+
if (dataPackage.name)
|
|
8
|
+
ckanPackage.name = dataPackage.name;
|
|
9
|
+
if (dataPackage.title)
|
|
10
|
+
ckanPackage.title = dataPackage.title;
|
|
11
|
+
if (dataPackage.description)
|
|
12
|
+
ckanPackage.notes = dataPackage.description;
|
|
13
|
+
if (dataPackage.version)
|
|
14
|
+
ckanPackage.version = dataPackage.version;
|
|
15
|
+
if (dataPackage.licenses && dataPackage.licenses.length > 0) {
|
|
16
|
+
const license = dataPackage.licenses[0];
|
|
17
|
+
if (license?.name)
|
|
18
|
+
ckanPackage.license_id = license.name;
|
|
19
|
+
if (license?.title)
|
|
20
|
+
ckanPackage.license_title = license.title;
|
|
21
|
+
if (license?.path)
|
|
22
|
+
ckanPackage.license_url = license.path;
|
|
23
|
+
}
|
|
24
|
+
if (dataPackage.contributors) {
|
|
25
|
+
const author = dataPackage.contributors.find(c => c.role === "author");
|
|
26
|
+
if (author) {
|
|
27
|
+
ckanPackage.author = author.title;
|
|
28
|
+
if (author.email)
|
|
29
|
+
ckanPackage.author_email = author.email;
|
|
30
|
+
}
|
|
31
|
+
const maintainer = dataPackage.contributors.find(c => c.role === "maintainer");
|
|
32
|
+
if (maintainer) {
|
|
33
|
+
ckanPackage.maintainer = maintainer.title;
|
|
34
|
+
if (maintainer.email)
|
|
35
|
+
ckanPackage.maintainer_email = maintainer.email;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (dataPackage.resources && dataPackage.resources.length > 0) {
|
|
39
|
+
ckanPackage.resources = dataPackage.resources
|
|
40
|
+
.map(resource => convertResourceToCkan(resource))
|
|
41
|
+
.filter((resource) => resource !== undefined);
|
|
42
|
+
}
|
|
43
|
+
if (dataPackage.keywords && dataPackage.keywords.length > 0) {
|
|
44
|
+
ckanPackage.tags = dataPackage.keywords.map(keyword => ({
|
|
45
|
+
name: keyword,
|
|
46
|
+
display_name: keyword,
|
|
47
|
+
}));
|
|
48
|
+
}
|
|
49
|
+
return ckanPackage;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9Da2FuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGx1Z2lucy9ja2FuL3BhY2thZ2UvY29udmVydC90b0NrYW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFJL0QsTUFBTSxVQUFVLG9CQUFvQixDQUFDLFdBQW9CO0lBQ3ZELE1BQU0sV0FBVyxHQUE0RDtRQUMzRSxTQUFTLEVBQUUsRUFBRTtRQUNiLElBQUksRUFBRSxFQUFFO0tBQ1QsQ0FBQTtJQUVELElBQUksV0FBVyxDQUFDLElBQUk7UUFBRSxXQUFXLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUE7SUFDekQsSUFBSSxXQUFXLENBQUMsS0FBSztRQUFFLFdBQVcsQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQTtJQUM1RCxJQUFJLFdBQVcsQ0FBQyxXQUFXO1FBQUUsV0FBVyxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFBO0lBQ3hFLElBQUksV0FBVyxDQUFDLE9BQU87UUFBRSxXQUFXLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUE7SUFFbEUsSUFBSSxXQUFXLENBQUMsUUFBUSxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzVELE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFdkMsSUFBSSxPQUFPLEVBQUUsSUFBSTtZQUFFLFdBQVcsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQTtRQUN4RCxJQUFJLE9BQU8sRUFBRSxLQUFLO1lBQUUsV0FBVyxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFBO1FBQzdELElBQUksT0FBTyxFQUFFLElBQUk7WUFBRSxXQUFXLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUE7SUFDM0QsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzdCLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQTtRQUN0RSxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsV0FBVyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFBO1lBQ2pDLElBQUksTUFBTSxDQUFDLEtBQUs7Z0JBQUUsV0FBVyxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFBO1FBQzNELENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDOUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FDN0IsQ0FBQTtRQUNELElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixXQUFXLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUE7WUFDekMsSUFBSSxVQUFVLENBQUMsS0FBSztnQkFBRSxXQUFXLENBQUMsZ0JBQWdCLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQTtRQUN2RSxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLFNBQVMsSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM5RCxXQUFXLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxTQUFTO2FBQzFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ2hELE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBNEIsRUFBRSxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FBQTtJQUMzRSxDQUFDO0lBRUQsSUFBSSxXQUFXLENBQUMsUUFBUSxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzVELFdBQVcsQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELElBQUksRUFBRSxPQUFPO1lBQ2IsWUFBWSxFQUFFLE9BQU87U0FDdEIsQ0FBQyxDQUFjLENBQUE7SUFDbEIsQ0FBQztJQUVELE9BQU8sV0FBVyxDQUFBO0FBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBhY2thZ2UgfSBmcm9tIFwiQGZyaWN0aW9ubGVzcy10cy9tZXRhZGF0YVwiXG5pbXBvcnQgdHlwZSB7IFNldFJlcXVpcmVkIH0gZnJvbSBcInR5cGUtZmVzdFwiXG5pbXBvcnQgdHlwZSB7IENrYW5SZXNvdXJjZSB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZS9SZXNvdXJjZS50c1wiXG5pbXBvcnQgeyBjb252ZXJ0UmVzb3VyY2VUb0NrYW4gfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2UvaW5kZXgudHNcIlxuaW1wb3J0IHR5cGUgeyBDa2FuUGFja2FnZSB9IGZyb20gXCIuLi9QYWNrYWdlLnRzXCJcbmltcG9ydCB0eXBlIHsgQ2thblRhZyB9IGZyb20gXCIuLi9UYWcudHNcIlxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFBhY2thZ2VUb0NrYW4oZGF0YVBhY2thZ2U6IFBhY2thZ2UpIHtcbiAgY29uc3QgY2thblBhY2thZ2U6IFNldFJlcXVpcmVkPFBhcnRpYWw8Q2thblBhY2thZ2U+LCBcInJlc291cmNlc1wiIHwgXCJ0YWdzXCI+ID0ge1xuICAgIHJlc291cmNlczogW10sXG4gICAgdGFnczogW10sXG4gIH1cblxuICBpZiAoZGF0YVBhY2thZ2UubmFtZSkgY2thblBhY2thZ2UubmFtZSA9IGRhdGFQYWNrYWdlLm5hbWVcbiAgaWYgKGRhdGFQYWNrYWdlLnRpdGxlKSBja2FuUGFja2FnZS50aXRsZSA9IGRhdGFQYWNrYWdlLnRpdGxlXG4gIGlmIChkYXRhUGFja2FnZS5kZXNjcmlwdGlvbikgY2thblBhY2thZ2Uubm90ZXMgPSBkYXRhUGFja2FnZS5kZXNjcmlwdGlvblxuICBpZiAoZGF0YVBhY2thZ2UudmVyc2lvbikgY2thblBhY2thZ2UudmVyc2lvbiA9IGRhdGFQYWNrYWdlLnZlcnNpb25cblxuICBpZiAoZGF0YVBhY2thZ2UubGljZW5zZXMgJiYgZGF0YVBhY2thZ2UubGljZW5zZXMubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IGxpY2Vuc2UgPSBkYXRhUGFja2FnZS5saWNlbnNlc1swXVxuXG4gICAgaWYgKGxpY2Vuc2U/Lm5hbWUpIGNrYW5QYWNrYWdlLmxpY2Vuc2VfaWQgPSBsaWNlbnNlLm5hbWVcbiAgICBpZiAobGljZW5zZT8udGl0bGUpIGNrYW5QYWNrYWdlLmxpY2Vuc2VfdGl0bGUgPSBsaWNlbnNlLnRpdGxlXG4gICAgaWYgKGxpY2Vuc2U/LnBhdGgpIGNrYW5QYWNrYWdlLmxpY2Vuc2VfdXJsID0gbGljZW5zZS5wYXRoXG4gIH1cblxuICBpZiAoZGF0YVBhY2thZ2UuY29udHJpYnV0b3JzKSB7XG4gICAgY29uc3QgYXV0aG9yID0gZGF0YVBhY2thZ2UuY29udHJpYnV0b3JzLmZpbmQoYyA9PiBjLnJvbGUgPT09IFwiYXV0aG9yXCIpXG4gICAgaWYgKGF1dGhvcikge1xuICAgICAgY2thblBhY2thZ2UuYXV0aG9yID0gYXV0aG9yLnRpdGxlXG4gICAgICBpZiAoYXV0aG9yLmVtYWlsKSBja2FuUGFja2FnZS5hdXRob3JfZW1haWwgPSBhdXRob3IuZW1haWxcbiAgICB9XG5cbiAgICBjb25zdCBtYWludGFpbmVyID0gZGF0YVBhY2thZ2UuY29udHJpYnV0b3JzLmZpbmQoXG4gICAgICBjID0+IGMucm9sZSA9PT0gXCJtYWludGFpbmVyXCIsXG4gICAgKVxuICAgIGlmIChtYWludGFpbmVyKSB7XG4gICAgICBja2FuUGFja2FnZS5tYWludGFpbmVyID0gbWFpbnRhaW5lci50aXRsZVxuICAgICAgaWYgKG1haW50YWluZXIuZW1haWwpIGNrYW5QYWNrYWdlLm1haW50YWluZXJfZW1haWwgPSBtYWludGFpbmVyLmVtYWlsXG4gICAgfVxuICB9XG5cbiAgaWYgKGRhdGFQYWNrYWdlLnJlc291cmNlcyAmJiBkYXRhUGFja2FnZS5yZXNvdXJjZXMubGVuZ3RoID4gMCkge1xuICAgIGNrYW5QYWNrYWdlLnJlc291cmNlcyA9IGRhdGFQYWNrYWdlLnJlc291cmNlc1xuICAgICAgLm1hcChyZXNvdXJjZSA9PiBjb252ZXJ0UmVzb3VyY2VUb0NrYW4ocmVzb3VyY2UpKVxuICAgICAgLmZpbHRlcigocmVzb3VyY2UpOiByZXNvdXJjZSBpcyBDa2FuUmVzb3VyY2UgPT4gcmVzb3VyY2UgIT09IHVuZGVmaW5lZClcbiAgfVxuXG4gIGlmIChkYXRhUGFja2FnZS5rZXl3b3JkcyAmJiBkYXRhUGFja2FnZS5rZXl3b3Jkcy5sZW5ndGggPiAwKSB7XG4gICAgY2thblBhY2thZ2UudGFncyA9IGRhdGFQYWNrYWdlLmtleXdvcmRzLm1hcChrZXl3b3JkID0+ICh7XG4gICAgICBuYW1lOiBrZXl3b3JkLFxuICAgICAgZGlzcGxheV9uYW1lOiBrZXl3b3JkLFxuICAgIH0pKSBhcyBDa2FuVGFnW11cbiAgfVxuXG4gIHJldHVybiBja2FuUGFja2FnZVxufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|