@hydrofoil/talos 0.4.17 → 0.5.0
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/CHANGELOG.md +6 -0
- package/lib/bootstrap.d.ts +4 -4
- package/lib/bootstrap.js +27 -58
- package/lib/command/put.js +11 -47
- package/lib/log.d.ts +3 -2
- package/lib/log.js +3 -2
- package/lib/ns.d.ts +5 -0
- package/lib/ns.js +9 -0
- package/lib/resources.d.ts +2 -0
- package/lib/resources.js +87 -0
- package/package.json +6 -2
package/CHANGELOG.md
CHANGED
package/lib/bootstrap.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { NamedNode } from 'rdf-js';
|
|
2
2
|
import { StreamClientOptions } from 'sparql-http-client';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
import type DatasetExt from 'rdf-ext/lib/Dataset';
|
|
4
|
+
declare type Bootstrap = StreamClientOptions & {
|
|
5
|
+
dataset: DatasetExt;
|
|
5
6
|
apiUri: NamedNode;
|
|
6
|
-
cwd: string;
|
|
7
7
|
};
|
|
8
|
-
export declare function bootstrap({
|
|
8
|
+
export declare function bootstrap({ dataset, apiUri, ...options }: Bootstrap): Promise<void>;
|
|
9
9
|
export {};
|
package/lib/bootstrap.js
CHANGED
|
@@ -4,76 +4,45 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.bootstrap = void 0;
|
|
7
|
-
const path_1 = __importDefault(require("path"));
|
|
8
|
-
const walk_1 = __importDefault(require("@fcostarodrigo/walk"));
|
|
9
7
|
const sparql_http_client_1 = __importDefault(require("sparql-http-client"));
|
|
10
|
-
const rdf_ext_1 = __importDefault(require("rdf-ext"));
|
|
11
8
|
const clownface_1 = __importDefault(require("clownface"));
|
|
12
9
|
const store_1 = require("@hydrofoil/knossos/lib/store");
|
|
13
10
|
const rdf_ns_builders_1 = require("@tpluscode/rdf-ns-builders");
|
|
14
|
-
const
|
|
15
|
-
const
|
|
11
|
+
const is_graph_pointer_1 = require("is-graph-pointer");
|
|
12
|
+
const rdf_ext_1 = __importDefault(require("rdf-ext"));
|
|
16
13
|
const log_1 = require("./log");
|
|
17
|
-
const
|
|
18
|
-
async function bootstrap({
|
|
14
|
+
const ns_1 = require("./ns");
|
|
15
|
+
async function bootstrap({ dataset, apiUri, ...options }) {
|
|
19
16
|
const store = new store_1.ResourcePerGraphStore(new sparql_http_client_1.default(options));
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
.
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const resourceOptions = {
|
|
33
|
-
existingResource: 'overwrite',
|
|
34
|
-
};
|
|
35
|
-
parserStream.on('prefix', (0, prefixHandler_1.optionsFromPrefixes)(resourceOptions));
|
|
36
|
-
const graphs = new term_map_1.default();
|
|
37
|
-
try {
|
|
38
|
-
for await (const { subject, predicate, object, graph } of parserStream) {
|
|
39
|
-
let dataset = graphs.get(graph);
|
|
40
|
-
if (!dataset) {
|
|
41
|
-
dataset = rdf_ext_1.default.dataset();
|
|
42
|
-
graphs.set(graph, dataset);
|
|
43
|
-
}
|
|
44
|
-
dataset.add(rdf_ext_1.default.quad(subject, predicate, object));
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
catch (e) {
|
|
48
|
-
(0, log_1.log)('Failed to parse %s: %s', relative, e.message);
|
|
17
|
+
const graph = (0, clownface_1.default)({ dataset, graph: ns_1.talosNs.resources });
|
|
18
|
+
const resources = graph.has(ns_1.talosNs.action);
|
|
19
|
+
for (const resource of resources.toArray().filter(is_graph_pointer_1.isNamedNode)) {
|
|
20
|
+
const resourceData = dataset.match(null, null, null, resource.term)
|
|
21
|
+
.map(({ subject, predicate, object }) => rdf_ext_1.default.quad(subject, predicate, object));
|
|
22
|
+
const pointer = (0, clownface_1.default)({ dataset: resourceData })
|
|
23
|
+
.namedNode(resource)
|
|
24
|
+
.addOut(rdf_ns_builders_1.hydra.apiDocumentation, apiUri);
|
|
25
|
+
const action = resource.out(ns_1.talosNs.action).value;
|
|
26
|
+
const exists = await store.exists(pointer.term);
|
|
27
|
+
if (exists && action === 'skip') {
|
|
28
|
+
(0, log_1.log)(`Skipping resource ${resource}`);
|
|
49
29
|
continue;
|
|
50
30
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
.namedNode(resource)
|
|
55
|
-
.addOut(rdf_ns_builders_1.hydra.apiDocumentation, apiUri);
|
|
56
|
-
const exists = await store.exists(pointer.term);
|
|
57
|
-
if (exists && resourceOptions.existingResource === 'skip') {
|
|
58
|
-
(0, log_1.log)(`Skipping resource ${resource}`);
|
|
59
|
-
continue;
|
|
60
|
-
}
|
|
61
|
-
if (exists) {
|
|
62
|
-
if (resourceOptions.existingResource === 'overwrite') {
|
|
63
|
-
(0, log_1.log)(`Replacing resource ${resource}`);
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
(0, log_1.log)(`Merging existing resource ${resource}`);
|
|
67
|
-
const current = await store.load(pointer.term);
|
|
68
|
-
pointer.dataset.addAll(current.dataset);
|
|
69
|
-
}
|
|
31
|
+
if (exists) {
|
|
32
|
+
if (action === 'overwrite') {
|
|
33
|
+
(0, log_1.log)(`Replacing resource ${resource}`);
|
|
70
34
|
}
|
|
71
35
|
else {
|
|
72
|
-
(0, log_1.log)(`
|
|
36
|
+
(0, log_1.log)(`Merging existing resource ${resource}`);
|
|
37
|
+
const current = await store.load(pointer.term);
|
|
38
|
+
pointer.dataset.addAll(current.dataset);
|
|
73
39
|
}
|
|
74
|
-
await store.save(pointer);
|
|
75
40
|
}
|
|
41
|
+
else {
|
|
42
|
+
(0, log_1.log)(`Creating resource ${resource}`);
|
|
43
|
+
}
|
|
44
|
+
await store.save(pointer);
|
|
76
45
|
}
|
|
77
46
|
}
|
|
78
47
|
exports.bootstrap = bootstrap;
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYm9vdHN0cmFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLDRFQUFzRTtBQUV0RSwwREFBaUM7QUFDakMsd0RBQW9FO0FBQ3BFLGdFQUFrRDtBQUNsRCx1REFBOEM7QUFDOUMsc0RBQTBCO0FBQzFCLCtCQUEyQjtBQUMzQiw2QkFBOEI7QUFPdkIsS0FBSyxVQUFVLFNBQVMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLEVBQWE7SUFDeEUsTUFBTSxLQUFLLEdBQUcsSUFBSSw2QkFBcUIsQ0FBQyxJQUFJLDRCQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtJQUVsRSxNQUFNLEtBQUssR0FBRyxJQUFBLG1CQUFTLEVBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO0lBQzlELE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzNDLEtBQUssTUFBTSxRQUFRLElBQUksU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyw4QkFBVyxDQUFDLEVBQUU7UUFDOUQsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDO2FBQ2hFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsaUJBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFBO1FBQ2pGLE1BQU0sT0FBTyxHQUFHLElBQUEsbUJBQVMsRUFBQyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsQ0FBQzthQUNqRCxTQUFTLENBQUMsUUFBUSxDQUFDO2FBQ25CLE1BQU0sQ0FBQyx1QkFBSyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBRXpDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsWUFBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQTtRQUNqRCxNQUFNLE1BQU0sR0FBRyxNQUFNLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQy9DLElBQUksTUFBTSxJQUFJLE1BQU0sS0FBSyxNQUFNLEVBQUU7WUFDL0IsSUFBQSxTQUFHLEVBQUMscUJBQXFCLFFBQVEsRUFBRSxDQUFDLENBQUE7WUFDcEMsU0FBUTtTQUNUO1FBRUQsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFJLE1BQU0sS0FBSyxXQUFXLEVBQUU7Z0JBQzFCLElBQUEsU0FBRyxFQUFDLHNCQUFzQixRQUFRLEVBQUUsQ0FBQyxDQUFBO2FBQ3RDO2lCQUFNO2dCQUNMLElBQUEsU0FBRyxFQUFDLDZCQUE2QixRQUFRLEVBQUUsQ0FBQyxDQUFBO2dCQUM1QyxNQUFNLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUM5QyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7YUFDeEM7U0FDRjthQUFNO1lBQ0wsSUFBQSxTQUFHLEVBQUMscUJBQXFCLFFBQVEsRUFBRSxDQUFDLENBQUE7U0FDckM7UUFFRCxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7S0FDMUI7QUFDSCxDQUFDO0FBakNELDhCQWlDQyJ9
|
package/lib/command/put.js
CHANGED
|
@@ -1,61 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
4
|
};
|
|
28
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
6
|
exports.put = void 0;
|
|
30
|
-
const path_1 = __importDefault(require("path"));
|
|
31
|
-
const fs = __importStar(require("fs"));
|
|
32
7
|
const rdf_ext_1 = __importDefault(require("rdf-ext"));
|
|
33
8
|
const bootstrap_1 = require("../bootstrap");
|
|
34
9
|
const deleteApi_1 = require("../deleteApi");
|
|
35
|
-
const
|
|
10
|
+
const resources_1 = require("../resources");
|
|
36
11
|
async function put(directories, { token, api, endpoint, updateEndpoint, user, password, apiPath = '/api' }) {
|
|
37
12
|
const apiUri = rdf_ext_1.default.namedNode(`${api}${apiPath}`);
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
await (0, bootstrap_1.bootstrap)({
|
|
49
|
-
api,
|
|
50
|
-
apiUri,
|
|
51
|
-
cwd,
|
|
52
|
-
endpointUrl: endpoint,
|
|
53
|
-
updateUrl: updateEndpoint || endpoint,
|
|
54
|
-
user,
|
|
55
|
-
password,
|
|
56
|
-
});
|
|
57
|
-
}
|
|
13
|
+
const dataset = await (0, resources_1.fromDirectories)(directories, api);
|
|
14
|
+
await (0, bootstrap_1.bootstrap)({
|
|
15
|
+
dataset,
|
|
16
|
+
apiUri,
|
|
17
|
+
endpointUrl: endpoint,
|
|
18
|
+
updateUrl: updateEndpoint || endpoint,
|
|
19
|
+
user,
|
|
20
|
+
password,
|
|
21
|
+
});
|
|
58
22
|
await (0, deleteApi_1.deleteApi)({ apiUri, token });
|
|
59
23
|
}
|
|
60
24
|
exports.put = put;
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHNEQUEwQjtBQUMxQiw0Q0FBd0M7QUFDeEMsNENBQXdDO0FBQ3hDLDRDQUE4QztBQVF2QyxLQUFLLFVBQVUsR0FBRyxDQUFDLFdBQXFCLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEdBQUcsTUFBTSxFQUFPO0lBQzlILE1BQU0sTUFBTSxHQUFHLGlCQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUE7SUFFakQsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFBLDJCQUFlLEVBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBRXZELE1BQU0sSUFBQSxxQkFBUyxFQUFDO1FBQ2QsT0FBTztRQUNQLE1BQU07UUFDTixXQUFXLEVBQUUsUUFBUTtRQUNyQixTQUFTLEVBQUUsY0FBYyxJQUFJLFFBQVE7UUFDckMsSUFBSTtRQUNKLFFBQVE7S0FDVCxDQUFDLENBQUE7SUFFRixNQUFNLElBQUEscUJBQVMsRUFBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO0FBQ3BDLENBQUM7QUFmRCxrQkFlQyJ9
|
package/lib/log.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
export declare const log:
|
|
1
|
+
import Debugger from 'debug';
|
|
2
|
+
export declare const log: Debugger.Debugger;
|
|
3
|
+
export declare const debug: Debugger.Debugger;
|
package/lib/log.js
CHANGED
|
@@ -3,8 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.log = void 0;
|
|
6
|
+
exports.debug = exports.log = void 0;
|
|
7
7
|
const debug_1 = __importDefault(require("debug"));
|
|
8
8
|
exports.log = (0, debug_1.default)('talos');
|
|
9
9
|
exports.log.enabled = true;
|
|
10
|
-
|
|
10
|
+
exports.debug = exports.log.extend('debug');
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibG9nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUE0QjtBQUVmLFFBQUEsR0FBRyxHQUFHLElBQUEsZUFBUSxFQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQ3BDLFdBQUcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFBO0FBRUwsUUFBQSxLQUFLLEdBQUcsV0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQSJ9
|
package/lib/ns.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/// <reference types="rdfjs__namespace" />
|
|
2
|
+
import namespace from '@rdfjs/namespace';
|
|
3
|
+
declare type TalosTerms = 'resources' | 'action' | 'default' | 'overwrite' | 'skip' | 'merge' | 'environmentRepresentation' | 'replace';
|
|
4
|
+
export declare const talosNs: namespace.NamespaceBuilder<TalosTerms>;
|
|
5
|
+
export {};
|
package/lib/ns.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.talosNs = void 0;
|
|
7
|
+
const namespace_1 = __importDefault(require("@rdfjs/namespace"));
|
|
8
|
+
exports.talosNs = (0, namespace_1.default)('urn:talos:');
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxpRUFBd0M7QUFZM0IsUUFBQSxPQUFPLEdBQUcsSUFBQSxtQkFBUyxFQUFhLFlBQVksQ0FBQyxDQUFBIn0=
|
package/lib/resources.js
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.fromDirectories = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const walk_1 = __importDefault(require("@fcostarodrigo/walk"));
|
|
10
|
+
const rdf_ext_1 = __importDefault(require("rdf-ext"));
|
|
11
|
+
const term_set_1 = __importDefault(require("@rdfjs/term-set"));
|
|
12
|
+
const clownface_1 = __importDefault(require("clownface"));
|
|
13
|
+
const rdf_dataset_ext_1 = require("rdf-dataset-ext");
|
|
14
|
+
const log_1 = require("./log");
|
|
15
|
+
const fileStream_1 = require("./fileStream");
|
|
16
|
+
const prefixHandler_1 = require("./prefixHandler");
|
|
17
|
+
const ns_1 = require("./ns");
|
|
18
|
+
async function fromDirectories(directories, api) {
|
|
19
|
+
const validDirs = directories.filter(isValidDir);
|
|
20
|
+
return validDirs.reduce(toGraphs(api), Promise.resolve(rdf_ext_1.default.dataset()));
|
|
21
|
+
}
|
|
22
|
+
exports.fromDirectories = fromDirectories;
|
|
23
|
+
function toGraphs(api) {
|
|
24
|
+
return async function (previousPromise, dir) {
|
|
25
|
+
let previous = await previousPromise;
|
|
26
|
+
const dataset = rdf_ext_1.default.dataset();
|
|
27
|
+
(0, log_1.debug)('Processing dir %s', dir);
|
|
28
|
+
for await (const file of (0, walk_1.default)(dir)) {
|
|
29
|
+
const relative = path_1.default.relative(dir, file);
|
|
30
|
+
const resourcePath = path_1.default.relative(dir, file)
|
|
31
|
+
.replace(/\.[^.]+$/, '')
|
|
32
|
+
.replace(/\/?index$/, '');
|
|
33
|
+
const url = resourcePath === ''
|
|
34
|
+
? encodeURI(api)
|
|
35
|
+
: encodeURI(`${api}/${resourcePath}`);
|
|
36
|
+
const parserStream = (0, fileStream_1.getPatchedStream)(file, dir, api, url);
|
|
37
|
+
if (!parserStream) {
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
(0, log_1.debug)('Parsing %s', relative);
|
|
41
|
+
const parsedResourceOptions = {};
|
|
42
|
+
parserStream.on('prefix', (0, prefixHandler_1.optionsFromPrefixes)(parsedResourceOptions));
|
|
43
|
+
const resources = new term_set_1.default();
|
|
44
|
+
const resourceOptions = (0, clownface_1.default)({ dataset: previous, graph: ns_1.talosNs.resources });
|
|
45
|
+
try {
|
|
46
|
+
for await (const { subject, predicate, object, ...quad } of parserStream) {
|
|
47
|
+
const graph = quad.graph.equals(rdf_ext_1.default.defaultGraph()) ? rdf_ext_1.default.namedNode(url) : quad.graph;
|
|
48
|
+
if (!resources.has(graph)) {
|
|
49
|
+
(0, log_1.debug)('Parsed resource %s', graph.value);
|
|
50
|
+
}
|
|
51
|
+
resources.add(graph);
|
|
52
|
+
dataset.add(rdf_ext_1.default.quad(subject, predicate, object, graph));
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
catch (e) {
|
|
56
|
+
(0, log_1.log)('Failed to parse %s: %s', relative, e.message);
|
|
57
|
+
}
|
|
58
|
+
resources.forEach(id => {
|
|
59
|
+
const action = parsedResourceOptions.existingResource || 'default';
|
|
60
|
+
const environmentRepresentation = parsedResourceOptions.environmentRepresentation || 'default';
|
|
61
|
+
const options = resourceOptions.node(id);
|
|
62
|
+
options
|
|
63
|
+
.deleteOut(ns_1.talosNs.action, ns_1.talosNs.default)
|
|
64
|
+
.addOut(ns_1.talosNs.action, (0, ns_1.talosNs)(action))
|
|
65
|
+
.deleteOut(ns_1.talosNs.environmentRepresentation, ns_1.talosNs.default)
|
|
66
|
+
.addOut(ns_1.talosNs.environmentRepresentation, (0, ns_1.talosNs)(environmentRepresentation));
|
|
67
|
+
if (options.has(ns_1.talosNs.environmentRepresentation, ns_1.talosNs.replace).terms.length) {
|
|
68
|
+
previous = (0, rdf_dataset_ext_1.deleteMatch)(previous, undefined, undefined, undefined, id);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
previous.addAll(dataset);
|
|
73
|
+
return previous;
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
function isValidDir(dir) {
|
|
77
|
+
if (!fs_1.default.existsSync(dir)) {
|
|
78
|
+
(0, log_1.log)('Skipping path %s which does not exist', dir);
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
if (!fs_1.default.statSync(dir).isDirectory()) {
|
|
82
|
+
(0, log_1.log)('Skipping path %s which is not a directory', dir);
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicmVzb3VyY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGdEQUF1QjtBQUN2Qiw0Q0FBbUI7QUFFbkIsK0RBQXNDO0FBQ3RDLHNEQUEwQjtBQUUxQiwrREFBcUM7QUFDckMsMERBQWlDO0FBQ2pDLHFEQUE2QztBQUM3QywrQkFBa0M7QUFDbEMsNkNBQStDO0FBQy9DLG1EQUFxRDtBQUNyRCw2QkFBOEI7QUFPdkIsS0FBSyxVQUFVLGVBQWUsQ0FBQyxXQUFxQixFQUFFLEdBQVc7SUFDdEUsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUNoRCxPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsaUJBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFDekUsQ0FBQztBQUhELDBDQUdDO0FBRUQsU0FBUyxRQUFRLENBQUMsR0FBVztJQUMzQixPQUFPLEtBQUssV0FBVyxlQUFvQyxFQUFFLEdBQVc7UUFDdEUsSUFBSSxRQUFRLEdBQUcsTUFBTSxlQUFlLENBQUE7UUFDcEMsTUFBTSxPQUFPLEdBQUcsaUJBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUU5QixJQUFBLFdBQUssRUFBQyxtQkFBbUIsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUUvQixJQUFJLEtBQUssRUFBRSxNQUFNLElBQUksSUFBSSxJQUFBLGNBQUksRUFBQyxHQUFHLENBQUMsRUFBRTtZQUNsQyxNQUFNLFFBQVEsR0FBRyxjQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQTtZQUN6QyxNQUFNLFlBQVksR0FBRyxjQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUM7aUJBQzFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxD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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hydrofoil/talos",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"bin": {
|
|
6
6
|
"talos": "bin/talos.js"
|
|
@@ -23,7 +23,9 @@
|
|
|
23
23
|
"@hydrofoil/knossos": "^0.9.7",
|
|
24
24
|
"@hydrofoil/vocabularies": "^0.3",
|
|
25
25
|
"@rdfjs/formats-common": "^2.2.0",
|
|
26
|
+
"@rdfjs/namespace": "^1.1.0",
|
|
26
27
|
"@rdfjs/term-map": "^1",
|
|
28
|
+
"@rdfjs/term-set": "^1",
|
|
27
29
|
"@tpluscode/rdf-ns-builders": "^2.0.0",
|
|
28
30
|
"@tpluscode/rdf-string": "^0.2.26",
|
|
29
31
|
"@tpluscode/sparql-builder": "^0.3.23",
|
|
@@ -32,14 +34,15 @@
|
|
|
32
34
|
"commander": "^9.4.0",
|
|
33
35
|
"debug": "^4.3.4",
|
|
34
36
|
"is-absolute-url": "^3",
|
|
37
|
+
"is-graph-pointer": "^1.2.2",
|
|
35
38
|
"mime-types": "^2.1.35",
|
|
36
39
|
"node-fetch": "^2.6.7",
|
|
40
|
+
"rdf-dataset-ext": "^1.0.1",
|
|
37
41
|
"rdf-ext": "^1.3.5",
|
|
38
42
|
"replacestream": "^4.0.3",
|
|
39
43
|
"sparql-http-client": "^2.4.1"
|
|
40
44
|
},
|
|
41
45
|
"devDependencies": {
|
|
42
|
-
"@rdfjs/namespace": "^1.1.0",
|
|
43
46
|
"@types/mime-types": "^2.1.1",
|
|
44
47
|
"@types/replacestream": "^4.0.1",
|
|
45
48
|
"@wikibus/vocabularies": "^0.2.2",
|
|
@@ -47,6 +50,7 @@
|
|
|
47
50
|
"get-stream": "^5",
|
|
48
51
|
"into-stream": "^6.0.0",
|
|
49
52
|
"mocha": "^10.0.0",
|
|
53
|
+
"rdf-dataset-ext": "^1.0.1",
|
|
50
54
|
"rdf-ext": "^1.3.5",
|
|
51
55
|
"sinon": "^14"
|
|
52
56
|
}
|