@rdfc/js-runner 1.0.0 → 2.0.0-alpha.10
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/.husky/pre-commit +6 -0
- package/.idea/LNKD.tech Editor.xml +194 -0
- package/.idea/codeStyles/Project.xml +52 -0
- package/.idea/codeStyles/codeStyleConfig.xml +5 -0
- package/.idea/inspectionProfiles/Project_Default.xml +6 -0
- package/.idea/js-runner.iml +12 -0
- package/.idea/modules.xml +8 -0
- package/.idea/vcs.xml +6 -0
- package/.prettierrc +4 -0
- package/README.md +3 -38
- package/__tests__/channels.test.ts +96 -0
- package/bin/runner.js +8 -0
- package/dist/args.d.ts +3 -3
- package/dist/args.js +50 -51
- package/dist/connectors/file.d.ts +11 -11
- package/dist/connectors/file.js +79 -79
- package/dist/connectors/http.d.ts +10 -10
- package/dist/connectors/http.js +76 -76
- package/dist/connectors/kafka.d.ts +36 -36
- package/dist/connectors/kafka.js +66 -62
- package/dist/connectors/ws.d.ts +6 -6
- package/dist/connectors/ws.js +66 -63
- package/dist/connectors.d.ts +61 -42
- package/dist/connectors.js +155 -132
- package/dist/index.cjs +650 -595
- package/dist/index.d.ts +40 -31
- package/dist/index.js +72 -63
- package/dist/util.d.ts +63 -35
- package/dist/util.js +80 -63
- package/eslint.config.mjs +21 -0
- package/examples/echo/package-lock.json +80 -0
- package/examples/echo/package.json +18 -0
- package/examples/echo/pipeline.ttl +48 -0
- package/examples/echo/processors.ttl +82 -0
- package/examples/echo/src/processors.ts +74 -0
- package/examples/echo/tsconfig.json +114 -0
- package/index.ttl +71 -0
- package/jest.config.js +2 -0
- package/lib/client.d.ts +1 -0
- package/lib/client.js +43 -0
- package/lib/convertor.d.ts +9 -0
- package/lib/convertor.js +51 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.js +8 -0
- package/lib/jsonld.d.ts +17 -0
- package/lib/jsonld.js +135 -0
- package/lib/logger.d.ts +17 -0
- package/lib/logger.js +49 -0
- package/lib/processor.d.ts +19 -0
- package/lib/processor.js +13 -0
- package/lib/reader.d.ts +30 -0
- package/lib/reader.js +101 -0
- package/lib/reexports.d.ts +3 -0
- package/lib/reexports.js +4 -0
- package/lib/runner.d.ts +26 -0
- package/lib/runner.js +121 -0
- package/lib/testUtils.d.ts +24 -0
- package/lib/testUtils.js +150 -0
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/lib/util_processors.d.ts +11 -0
- package/lib/util_processors.js +13 -0
- package/lib/writer.d.ts +26 -0
- package/lib/writer.js +57 -0
- package/package.json +49 -51
- package/src/client.ts +52 -0
- package/src/convertor.ts +59 -0
- package/src/index.ts +8 -0
- package/src/jsonld.ts +220 -0
- package/src/logger.ts +64 -0
- package/src/processor.ts +39 -0
- package/src/reader.ts +142 -0
- package/src/reexports.ts +6 -0
- package/src/runner.ts +197 -0
- package/src/testUtils.ts +196 -0
- package/src/util_processors.ts +20 -0
- package/src/writer.ts +90 -0
- package/tsconfig.json +33 -0
- package/vite.config.ts +10 -0
- package/LICENSE +0 -21
- package/bin/js-runner.js +0 -4
- package/channels/file.ttl +0 -37
- package/channels/http.ttl +0 -59
- package/channels/kafka.ttl +0 -98
- package/channels/ws.ttl +0 -33
- package/ontology.ttl +0 -169
- package/processor/echo.ttl +0 -38
- package/processor/resc.ttl +0 -34
- package/processor/send.ttl +0 -40
- package/processor/test.js +0 -35
package/lib/jsonld.js
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { createNamespace, createUriAndTermNamespace } from '@treecg/types';
|
|
2
|
+
import { ReaderInstance } from './reader.js';
|
|
3
|
+
import { WriterInstance } from './writer.js';
|
|
4
|
+
import { JsonLdParser } from 'jsonld-streaming-parser';
|
|
5
|
+
import { pred, ShaclPath } from 'rdf-lens';
|
|
6
|
+
import { NamedNode } from 'n3';
|
|
7
|
+
const RDFL = createUriAndTermNamespace('https://w3id.org/rdf-lens/ontology#', 'CBD', 'Path', 'PathLens', 'Context', 'TypedExtract', 'EnvVariable', 'envKey', 'envDefault', 'datatype');
|
|
8
|
+
const RDFC = createNamespace('https://w3id.org/rdf-connect#', (x) => x, 'Reader', 'Writer');
|
|
9
|
+
function as_string_array(obj) {
|
|
10
|
+
const out = Array.isArray(obj) ? obj : [obj];
|
|
11
|
+
return out.filter((x) => typeof x === 'string');
|
|
12
|
+
}
|
|
13
|
+
function cbdToQuads(value) {
|
|
14
|
+
const quads = [];
|
|
15
|
+
const parser = new JsonLdParser();
|
|
16
|
+
const promise = new Promise((res, rej) => parser
|
|
17
|
+
.on('end', () => res({ value: quads }))
|
|
18
|
+
.on('error', (e) => rej(e))
|
|
19
|
+
.on('data', (q) => {
|
|
20
|
+
quads.push(q);
|
|
21
|
+
}));
|
|
22
|
+
if (value instanceof Object && '@type' in value) {
|
|
23
|
+
delete value['@type'];
|
|
24
|
+
}
|
|
25
|
+
parser.write(JSON.stringify(value));
|
|
26
|
+
parser.end();
|
|
27
|
+
return promise;
|
|
28
|
+
}
|
|
29
|
+
async function cbdToPath(value) {
|
|
30
|
+
const qs = (await cbdToQuads({
|
|
31
|
+
'@id': 'http://example.com/ns#me1234',
|
|
32
|
+
'http://example.com/ns#innerPred': value,
|
|
33
|
+
})).value;
|
|
34
|
+
const path = pred(new NamedNode('http://example.com/ns#innerPred'))
|
|
35
|
+
.one()
|
|
36
|
+
.then(ShaclPath)
|
|
37
|
+
.execute({
|
|
38
|
+
quads: qs,
|
|
39
|
+
id: new NamedNode('http://example.com/ns#me1234'),
|
|
40
|
+
});
|
|
41
|
+
return { value: path };
|
|
42
|
+
}
|
|
43
|
+
async function jsonldToQuads(value) {
|
|
44
|
+
const qs = (await cbdToQuads({
|
|
45
|
+
'@id': 'http://example.com/ns#me1234',
|
|
46
|
+
'http://example.com/ns#innerPred': value,
|
|
47
|
+
})).value;
|
|
48
|
+
const idx = qs.findIndex((x) => x.predicate.equals(new NamedNode('http://example.com/ns#innerPred')) &&
|
|
49
|
+
x.subject.equals(new NamedNode('http://example.com/ns#me1234')));
|
|
50
|
+
if (idx < 0)
|
|
51
|
+
throw 'This cannot happen';
|
|
52
|
+
const id = qs[idx].object;
|
|
53
|
+
qs.splice(idx, 1);
|
|
54
|
+
return {
|
|
55
|
+
quads: qs,
|
|
56
|
+
id,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
function revive(_key, value, logger, promises, runnerItems) {
|
|
60
|
+
if (typeof value === 'object') {
|
|
61
|
+
const types = as_string_array(value['@type'] || []);
|
|
62
|
+
const ids = as_string_array(value['@id'] || [])[0] || '';
|
|
63
|
+
if (types.includes(RDFC.Reader)) {
|
|
64
|
+
if (runnerItems.readers[ids] === undefined) {
|
|
65
|
+
runnerItems.readers[ids] = [];
|
|
66
|
+
}
|
|
67
|
+
const reader = new ReaderInstance(ids, runnerItems.client, logger);
|
|
68
|
+
runnerItems.readers[ids].push(reader);
|
|
69
|
+
return reader;
|
|
70
|
+
}
|
|
71
|
+
if (types.includes(RDFC.Writer)) {
|
|
72
|
+
if (runnerItems.writers[ids] === undefined) {
|
|
73
|
+
runnerItems.writers[ids] = [];
|
|
74
|
+
}
|
|
75
|
+
const writer = new WriterInstance(ids, runnerItems.client, runnerItems.write, logger);
|
|
76
|
+
runnerItems.writers[ids].push(writer);
|
|
77
|
+
return writer;
|
|
78
|
+
}
|
|
79
|
+
if (types.includes(RDFL.CBD)) {
|
|
80
|
+
return cbdToQuads(value);
|
|
81
|
+
}
|
|
82
|
+
if (types.includes(RDFL.Path)) {
|
|
83
|
+
return cbdToPath(value);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
Object.entries(value).forEach(([k, v]) => {
|
|
87
|
+
if (v instanceof Promise) {
|
|
88
|
+
logger.info('Found promise');
|
|
89
|
+
promises.push(v.then((x) => {
|
|
90
|
+
logger.info('Setting field ' + k);
|
|
91
|
+
value[k] = x.value;
|
|
92
|
+
}));
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
return value;
|
|
96
|
+
}
|
|
97
|
+
function expandArgs(args, cont, logger) {
|
|
98
|
+
const context = args['@context'];
|
|
99
|
+
if (!context)
|
|
100
|
+
return;
|
|
101
|
+
for (const key of Object.keys(args)) {
|
|
102
|
+
if (key == '@context')
|
|
103
|
+
continue;
|
|
104
|
+
const ctxObj = context[key];
|
|
105
|
+
if (!ctxObj) {
|
|
106
|
+
logger.debug("Didn't find ctx things for " + key);
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
logger.debug('Did find ctx things for ' +
|
|
110
|
+
key +
|
|
111
|
+
' ' +
|
|
112
|
+
JSON.stringify(ctxObj) +
|
|
113
|
+
': ' +
|
|
114
|
+
JSON.stringify(Object.entries(args[key]).map(([k, v]) => {
|
|
115
|
+
let x = 'object';
|
|
116
|
+
try {
|
|
117
|
+
x = JSON.stringify(v);
|
|
118
|
+
}
|
|
119
|
+
catch (_e) {
|
|
120
|
+
}
|
|
121
|
+
return k + ': ' + x;
|
|
122
|
+
})));
|
|
123
|
+
expandArgs(args[key], cont, logger);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
export async function parse_jsonld(args, logger, items) {
|
|
127
|
+
const promises = [];
|
|
128
|
+
logger.info(args);
|
|
129
|
+
const cont = await jsonldToQuads(JSON.parse(args));
|
|
130
|
+
const out = JSON.parse(args, (k, v) => revive(k, v, logger, promises, items));
|
|
131
|
+
await Promise.all(promises);
|
|
132
|
+
expandArgs(out, cont, logger);
|
|
133
|
+
return out;
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbmxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2pzb25sZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZUFBZSxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUV6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDdEQsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLElBQUksQ0FBQTtBQVM5QixNQUFNLElBQUksR0FBRyx5QkFBeUIsQ0FDcEMscUNBQXFDLEVBQ3JDLEtBQUssRUFDTCxNQUFNLEVBQ04sVUFBVSxFQUNWLFNBQVMsRUFDVCxjQUFjLEVBQ2QsYUFBYSxFQUNiLFFBQVEsRUFDUixZQUFZLEVBQ1osVUFBVSxDQUNYLENBQUE7QUFHRCxNQUFNLElBQUksR0FBRyxlQUFlLENBQzFCLCtCQUErQixFQUMvQixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUNSLFFBQVEsRUFDUixRQUFRLENBQ1QsQ0FBQTtBQUVELFNBQVMsZUFBZSxDQUFDLEdBQVk7SUFDbkMsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzVDLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUE7QUFDakQsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEtBQWM7SUFDaEMsTUFBTSxLQUFLLEdBQVcsRUFBRSxDQUFB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USxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFFN0UsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBRTNCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQzdCLE9BQU8sR0FBRyxDQUFBO0FBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9yY2hlc3RyYXRvck1lc3NhZ2UsIFJ1bm5lckNsaWVudCB9IGZyb20gJ0ByZGZjL3Byb3RvJ1xuaW1wb3J0IHsgY3JlYXRlTmFtZXNwYWNlLCBjcmVhdGVVcmlBbmRUZXJtTmFtZXNwYWNlIH0gZnJvbSAnQHRyZWVjZy90eXBlcydcbmltcG9ydCB7IFJlYWRlckluc3RhbmNlIH0gZnJvbSAnLi9yZWFkZXInXG5pbXBvcnQgeyBXcml0ZXJJbnN0YW5jZSB9IGZyb20gJy4vd3JpdGVyJ1xuaW1wb3J0IHsgTG9nZ2VyIH0gZnJvbSAnd2luc3RvbidcbmltcG9ydCB7IEpzb25MZFBhcnNlciB9IGZyb20gJ2pzb25sZC1zdHJlYW1pbmctcGFyc2VyJ1xuaW1wb3J0IHsgcHJlZCwgU2hhY2xQYXRoIH0gZnJvbSAncmRmLWxlbnMnXG5pbXBvcnQgeyBRdWFkLCBUZXJtIH0gZnJvbSAnQHJkZmpzL3R5cGVzJ1xuaW1wb3J0IHsgTmFtZWROb2RlIH0gZnJvbSAnbjMnXG5cbmV4cG9ydCB0eXBlIFJ1bm5lckl0ZW1zID0ge1xuICByZWFkZXJzOiB7IFt1cmk6IHN0cmluZ106IFJlYWRlckluc3RhbmNlW10gfVxuICB3cml0ZXJzOiB7IFt1cmk6IHN0cmluZ106IFdyaXRlckluc3RhbmNlW10gfVxuICBjbGllbnQ6IFJ1bm5lckNsaWVudFxuICB3cml0ZTogV3JpdGFibGVcbn1cblxuY29uc3QgUkRGTCA9IGNyZWF0ZVVyaUFuZFRlcm1OYW1lc3BhY2UoXG4gICdodHRwczovL3czaWQub3JnL3JkZi1sZW5zL29udG9sb2d5IycsXG4gICdDQkQnLFxuICAnUGF0aCcsXG4gICdQYXRoTGVucycsXG4gICdDb250ZXh0JyxcbiAgJ1R5cGVkRXh0cmFjdCcsXG4gICdFbnZWYXJpYWJsZScsXG4gICdlbnZLZXknLFxuICAnZW52RGVmYXVsdCcsXG4gICdkYXRhdHlwZScsXG4pXG5cbnR5cGUgV3JpdGFibGUgPSAobXNnOiBPcmNoZXN0cmF0b3JNZXNzYWdlKSA9PiBQcm9taXNlPHVua25vd24+XG5jb25zdCBSREZDID0gY3JlYXRlTmFtZXNwYWNlKFxuICAnaHR0cHM6Ly93M2lkLm9yZy9yZGYtY29ubmVjdCMnLFxuICAoeCkgPT4geCxcbiAgJ1JlYWRlcicsXG4gICdXcml0ZXInLFxuKVxuXG5mdW5jdGlvbiBhc19zdHJpbmdfYXJyYXkob2JqOiB1bmtub3duKTogc3RyaW5nW10ge1xuICBjb25zdCBvdXQgPSBBcnJheS5pc0FycmF5KG9iaikgPyBvYmogOiBbb2JqXVxuICByZXR1cm4gb3V0LmZpbHRlcigoeCkgPT4gdHlwZW9mIHggPT09ICdzdHJpbmcnKVxufVxuXG5mdW5jdGlvbiBjYmRUb1F1YWRzKHZhbHVlOiB1bmtub3duKSB7XG4gIGNvbnN0IHF1YWRzOiBRdWFkW10gPSBbXVxuICBjb25zdCBwYXJzZXIgPSBuZXcgSnNvbkxkUGFyc2VyKClcbiAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlPHsgdmFsdWU6IFF1YWRbXSB9PigocmVzLCByZWopID0+XG4gICAgcGFyc2VyXG4gICAgICAub24oJ2VuZCcsICgpID0+IHJlcyh7IHZhbHVlOiBxdWFkcyB9KSlcbiAgICAgIC5vbignZXJyb3InLCAoZSkgPT4gcmVqKGUpKVxuICAgICAgLm9uKCdkYXRhJywgKHEpID0+IHtcbiAgICAgICAgcXVhZHMucHVzaChxKVxuICAgICAgfSksXG4gIClcblxuICBpZiAodmFsdWUgaW5zdGFuY2VvZiBPYmplY3QgJiYgJ0B0eXBlJyBpbiB2YWx1ZSkge1xuICAgIGRlbGV0ZSB2YWx1ZVsnQHR5cGUnXVxuICB9XG4gIHBhcnNlci53cml0ZShKU09OLnN0cmluZ2lmeSh2YWx1ZSkpXG4gIHBhcnNlci5lbmQoKVxuICByZXR1cm4gcHJvbWlzZVxufVxuXG5hc3luYyBmdW5jdGlvbiBjYmRUb1BhdGgodmFsdWU6IHVua25vd24pOiBQcm9taXNlPHsgdmFsdWU6IHVua25vd24gfT4ge1xuICBjb25zdCBxcyA9IChcbiAgICBhd2FpdCBjYmRUb1F1YWRzKHtcbiAgICAgICdAaWQnOiAnaHR0cDovL2V4YW1wbGUuY29tL25zI21lMTIzNCcsXG4gICAgICAnaHR0cDovL2V4YW1wbGUuY29tL25zI2lubmVyUHJlZCc6IHZhbHVlLFxuICAgIH0pXG4gICkudmFsdWVcblxuICBjb25zdCBwYXRoID0gcHJlZChuZXcgTmFtZWROb2RlKCdodHRwOi8vZXhhbXBsZS5jb20vbnMjaW5uZXJQcmVkJykpXG4gICAgLm9uZSgpXG4gICAgLnRoZW4oU2hhY2xQYXRoKVxuICAgIC5leGVjdXRlKHtcbiAgICAgIHF1YWRzOiBxcyxcbiAgICAgIGlkOiBuZXcgTmFtZWROb2RlKCdodHRwOi8vZXhhbXBsZS5jb20vbnMjbWUxMjM0JyksXG4gICAgfSlcbiAgcmV0dXJuIHsgdmFsdWU6IHBhdGggfVxufVxuXG50eXBlIENvbnQgPSB7IHF1YWRzOiBRdWFkW107IGlkOiBUZXJtIH1cbmFzeW5jIGZ1bmN0aW9uIGpzb25sZFRvUXVhZHModmFsdWU6IHVua25vd24pOiBQcm9taXNlPENvbnQ+IHtcbiAgY29uc3QgcXMgPSAoXG4gICAgYXdhaXQgY2JkVG9RdWFkcyh7XG4gICAgICAnQGlkJzogJ2h0dHA6Ly9leGFtcGxlLmNvbS9ucyNtZTEyMzQnLFxuICAgICAgJ2h0dHA6Ly9leGFtcGxlLmNvbS9ucyNpbm5lclByZWQnOiB2YWx1ZSxcbiAgICB9KVxuICApLnZhbHVlXG5cbiAgY29uc3QgaWR4ID0gcXMuZmluZEluZGV4KFxuICAgICh4KSA9PlxuICAgICAgeC5wcmVkaWNhdGUuZXF1YWxzKG5ldyBOYW1lZE5vZGUoJ2h0dHA6Ly9leGFtcGxlLmNvbS9ucyNpbm5lclByZWQnKSkgJiZcbiAgICAgIHguc3ViamVjdC5lcXVhbHMobmV3IE5hbWVkTm9kZSgnaHR0cDovL2V4YW1wbGUuY29tL25zI21lMTIzNCcpKSxcbiAgKVxuICBpZiAoaWR4IDwgMCkgdGhyb3cgJ1RoaXMgY2Fubm90IGhhcHBlbidcbiAgY29uc3QgaWQgPSBxc1tpZHhdLm9iamVjdFxuXG4gIHFzLnNwbGljZShpZHgsIDEpXG5cbiAgcmV0dXJuIHtcbiAgICBxdWFkczogcXMsXG4gICAgaWQsXG4gIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmZ1bmN0aW9uIHJldml2ZShcbiAgX2tleTogc3RyaW5nLFxuICB2YWx1ZTogYW55LFxuICBsb2dnZXI6IExvZ2dlcixcbiAgcHJvbWlzZXM6IFByb21pc2U8dW5rbm93bj5bXSxcbiAgcnVubmVySXRlbXM6IFJ1bm5lckl0ZW1zLFxuKTogYW55IHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICBjb25zdCB0eXBlcyA9IGFzX3N0cmluZ19hcnJheSh2YWx1ZVsnQHR5cGUnXSB8fCBbXSlcbiAgICBjb25zdCBpZHMgPSBhc19zdHJpbmdfYXJyYXkodmFsdWVbJ0BpZCddIHx8IFtdKVswXSB8fCAnJ1xuXG4gICAgaWYgKHR5cGVzLmluY2x1ZGVzKFJERkMuUmVhZGVyKSkge1xuICAgICAgaWYgKHJ1bm5lckl0ZW1zLnJlYWRlcnNbaWRzXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJ1bm5lckl0ZW1zLnJlYWRlcnNbaWRzXSA9IFtdXG4gICAgICB9XG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgUmVhZGVySW5zdGFuY2UoaWRzLCBydW5uZXJJdGVtcy5jbGllbnQsIGxvZ2dlcilcbiAgICAgIHJ1bm5lckl0ZW1zLnJlYWRlcnNbaWRzXS5wdXNoKHJlYWRlcilcbiAgICAgIHJldHVybiByZWFkZXJcbiAgICB9XG5cbiAgICBpZiAodHlwZXMuaW5jbHVkZXMoUkRGQy5Xcml0ZXIpKSB7XG4gICAgICBpZiAocnVubmVySXRlbXMud3JpdGVyc1tpZHNdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcnVubmVySXRlbXMud3JpdGVyc1tpZHNdID0gW11cbiAgICAgIH1cbiAgICAgIGNvbnN0IHdyaXRlciA9IG5ldyBXcml0ZXJJbnN0YW5jZShcbiAgICAgICAgaWRzLFxuICAgICAgICBydW5uZXJJdGVtcy5jbGllbnQsXG4gICAgICAgIHJ1bm5lckl0ZW1zLndyaXRlLFxuICAgICAgICBsb2dnZXIsXG4gICAgICApXG4gICAgICBydW5uZXJJdGVtcy53cml0ZXJzW2lkc10ucHVzaCh3cml0ZXIpXG4gICAgICByZXR1cm4gd3JpdGVyXG4gICAgfVxuXG4gICAgaWYgKHR5cGVzLmluY2x1ZGVzKFJERkwuQ0JEKSkge1xuICAgICAgcmV0dXJuIGNiZFRvUXVhZHModmFsdWUpXG4gICAgfVxuXG4gICAgaWYgKHR5cGVzLmluY2x1ZGVzKFJERkwuUGF0aCkpIHtcbiAgICAgIHJldHVybiBjYmRUb1BhdGgodmFsdWUpXG4gICAgfVxuICB9XG5cbiAgT2JqZWN0LmVudHJpZXModmFsdWUpLmZvckVhY2goKFtrLCB2XSkgPT4ge1xuICAgIGlmICh2IGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgbG9nZ2VyLmluZm8oJ0ZvdW5kIHByb21pc2UnKVxuICAgICAgcHJvbWlzZXMucHVzaChcbiAgICAgICAgdi50aGVuKCh4KSA9PiB7XG4gICAgICAgICAgbG9nZ2VyLmluZm8oJ1NldHRpbmcgZmllbGQgJyArIGspXG4gICAgICAgICAgdmFsdWVba10gPSB4LnZhbHVlXG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgIH1cbiAgfSlcblxuICByZXR1cm4gdmFsdWVcbn1cblxudHlwZSBBcmcgPSB7XG4gIFtpZDogc3RyaW5nXTogYW55XG59XG5mdW5jdGlvbiBleHBhbmRBcmdzKGFyZ3M6IEFyZywgY29udDogQ29udCwgbG9nZ2VyOiBMb2dnZXIpIHtcbiAgY29uc3QgY29udGV4dCA9IGFyZ3NbJ0Bjb250ZXh0J11cbiAgaWYgKCFjb250ZXh0KSByZXR1cm5cblxuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhhcmdzKSkge1xuICAgIGlmIChrZXkgPT0gJ0Bjb250ZXh0JykgY29udGludWVcbiAgICBjb25zdCBjdHhPYmogPSBjb250ZXh0W2tleV1cbiAgICBpZiAoIWN0eE9iaikge1xuICAgICAgbG9nZ2VyLmRlYnVnKFwiRGlkbid0IGZpbmQgY3R4IHRoaW5ncyBmb3IgXCIgKyBrZXkpXG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgICdEaWQgZmluZCBjdHggdGhpbmdzIGZvciAnICtcbiAgICAgICAga2V5ICtcbiAgICAgICAgJyAnICtcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoY3R4T2JqKSArXG4gICAgICAgICc6ICcgK1xuICAgICAgICBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICBPYmplY3QuZW50cmllcyhhcmdzW2tleV0pLm1hcCgoW2ssIHZdKSA9PiB7XG4gICAgICAgICAgICBsZXQgeCA9ICdvYmplY3QnXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICB4ID0gSlNPTi5zdHJpbmdpZnkodilcbiAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICAgICAgfSBjYXRjaCAoX2U6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgLy8gZGVmYXVsdCBpcyBzZXRcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGsgKyAnOiAnICsgeFxuICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgIClcblxuICAgIGV4cGFuZEFyZ3MoYXJnc1trZXldLCBjb250LCBsb2dnZXIpXG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBhcnNlX2pzb25sZChcbiAgYXJnczogc3RyaW5nLFxuICBsb2dnZXI6IExvZ2dlcixcbiAgaXRlbXM6IFJ1bm5lckl0ZW1zLFxuKTogUHJvbWlzZTx1bmtub3duPiB7XG4gIGNvbnN0IHByb21pc2VzOiBQcm9taXNlPHVua25vd24+W10gPSBbXVxuICBsb2dnZXIuaW5mbyhhcmdzKVxuICBjb25zdCBjb250ID0gYXdhaXQganNvbmxkVG9RdWFkcyhKU09OLnBhcnNlKGFyZ3MpKVxuICBjb25zdCBvdXQgPSBKU09OLnBhcnNlKGFyZ3MsIChrLCB2KSA9PiByZXZpdmUoaywgdiwgbG9nZ2VyLCBwcm9taXNlcywgaXRlbXMpKVxuXG4gIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKVxuXG4gIGV4cGFuZEFyZ3Mob3V0LCBjb250LCBsb2dnZXIpXG4gIHJldHVybiBvdXRcbn1cbiJdfQ==
|
package/lib/logger.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import winston, { Logger } from 'winston';
|
|
2
|
+
import Transport from 'winston-transport';
|
|
3
|
+
import * as grpc from '@grpc/grpc-js';
|
|
4
|
+
import { LogMessage } from '@rdfc/proto';
|
|
5
|
+
export declare class RpcTransport extends Transport {
|
|
6
|
+
private readonly stream;
|
|
7
|
+
private readonly entities;
|
|
8
|
+
private readonly aliases;
|
|
9
|
+
constructor(opts: {
|
|
10
|
+
stream: grpc.ClientWritableStream<LogMessage>;
|
|
11
|
+
entities: string[];
|
|
12
|
+
aliases?: string[];
|
|
13
|
+
});
|
|
14
|
+
log(info: winston.LogEntry, callback: () => void): void;
|
|
15
|
+
withEntity(entity: string): RpcTransport;
|
|
16
|
+
}
|
|
17
|
+
export declare function extendLogger(baseLogger: Logger, newEntity: string): Logger;
|
package/lib/logger.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import winston from 'winston';
|
|
2
|
+
import Transport from 'winston-transport';
|
|
3
|
+
export class RpcTransport extends Transport {
|
|
4
|
+
stream;
|
|
5
|
+
entities;
|
|
6
|
+
aliases;
|
|
7
|
+
constructor(opts) {
|
|
8
|
+
super({ level: 'debug' });
|
|
9
|
+
this.stream = opts.stream;
|
|
10
|
+
this.entities = opts.entities;
|
|
11
|
+
this.aliases = opts.aliases || [];
|
|
12
|
+
}
|
|
13
|
+
log(info, callback) {
|
|
14
|
+
if (!this.stream.closed) {
|
|
15
|
+
this.stream.write({
|
|
16
|
+
msg: info.message,
|
|
17
|
+
level: info.level,
|
|
18
|
+
entities: this.entities,
|
|
19
|
+
aliases: this.aliases,
|
|
20
|
+
}, callback);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
console.log('Output stream closed');
|
|
24
|
+
callback();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
withEntity(entity) {
|
|
28
|
+
return new RpcTransport({
|
|
29
|
+
stream: this.stream,
|
|
30
|
+
entities: [...this.entities, entity],
|
|
31
|
+
aliases: this.aliases,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export function extendLogger(baseLogger, newEntity) {
|
|
36
|
+
const newTransports = baseLogger.transports.map((t) => {
|
|
37
|
+
if (t instanceof RpcTransport) {
|
|
38
|
+
return t.withEntity(newEntity);
|
|
39
|
+
}
|
|
40
|
+
return t;
|
|
41
|
+
});
|
|
42
|
+
return winston.createLogger({
|
|
43
|
+
level: baseLogger.level,
|
|
44
|
+
format: baseLogger.format,
|
|
45
|
+
defaultMeta: baseLogger.defaultMeta,
|
|
46
|
+
transports: newTransports,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE9BQW1CLE1BQU0sU0FBUyxDQUFBO0FBQ3pDLE9BQU8sU0FBUyxNQUFNLG1CQUFtQixDQUFBO0FBS3pDLE1BQU0sT0FBTyxZQUFhLFNBQVEsU0FBUztJQUN4QixNQUFNLENBQXVDO0lBQzdDLFFBQVEsQ0FBVTtJQUNsQixPQUFPLENBQVU7SUFFbEMsWUFBWSxJQUlYO1FBQ0MsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUE7UUFFekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFBO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQTtRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFBO0lBQ25DLENBQUM7SUFFRCxHQUFHLENBQUMsSUFBc0IsRUFBRSxRQUFvQjtRQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZjtnQkFDRSxHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQ2pCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUN2QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87YUFDdEIsRUFDRCxRQUFRLENBQ1QsQ0FBQTtRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO1lBQ25DLFFBQVEsRUFBRSxDQUFBO1FBQ1osQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsTUFBYztRQUN2QixPQUFPLElBQUksWUFBWSxDQUFDO1lBQ3RCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixRQUFRLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDO1lBQ3BDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDLENBQUE7SUFDSixDQUFDO0NBQ0Y7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLFVBQWtCLEVBQUUsU0FBaUI7SUFDaEUsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNwRCxJQUFJLENBQUMsWUFBWSxZQUFZLEVBQUUsQ0FBQztZQUM5QixPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDaEMsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFBO0lBQ1YsQ0FBQyxDQUFDLENBQUE7SUFFRixPQUFPLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDMUIsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLO1FBQ3ZCLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTTtRQUN6QixXQUFXLEVBQUUsVUFBVSxDQUFDLFdBQVc7UUFDbkMsVUFBVSxFQUFFLGFBQWE7S0FDMUIsQ0FBQyxDQUFBO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB3aW5zdG9uLCB7IExvZ2dlciB9IGZyb20gJ3dpbnN0b24nXG5pbXBvcnQgVHJhbnNwb3J0IGZyb20gJ3dpbnN0b24tdHJhbnNwb3J0J1xuXG5pbXBvcnQgKiBhcyBncnBjIGZyb20gJ0BncnBjL2dycGMtanMnXG5pbXBvcnQgeyBMb2dNZXNzYWdlIH0gZnJvbSAnQHJkZmMvcHJvdG8nXG5cbmV4cG9ydCBjbGFzcyBScGNUcmFuc3BvcnQgZXh0ZW5kcyBUcmFuc3BvcnQge1xuICBwcml2YXRlIHJlYWRvbmx5IHN0cmVhbTogZ3JwYy5DbGllbnRXcml0YWJsZVN0cmVhbTxMb2dNZXNzYWdlPlxuICBwcml2YXRlIHJlYWRvbmx5IGVudGl0aWVzOiBzdHJpbmdbXVxuICBwcml2YXRlIHJlYWRvbmx5IGFsaWFzZXM6IHN0cmluZ1tdXG5cbiAgY29uc3RydWN0b3Iob3B0czoge1xuICAgIHN0cmVhbTogZ3JwYy5DbGllbnRXcml0YWJsZVN0cmVhbTxMb2dNZXNzYWdlPlxuICAgIGVudGl0aWVzOiBzdHJpbmdbXVxuICAgIGFsaWFzZXM/OiBzdHJpbmdbXVxuICB9KSB7XG4gICAgc3VwZXIoeyBsZXZlbDogJ2RlYnVnJyB9KVxuXG4gICAgdGhpcy5zdHJlYW0gPSBvcHRzLnN0cmVhbVxuICAgIHRoaXMuZW50aXRpZXMgPSBvcHRzLmVudGl0aWVzXG4gICAgdGhpcy5hbGlhc2VzID0gb3B0cy5hbGlhc2VzIHx8IFtdXG4gIH1cblxuICBsb2coaW5mbzogd2luc3Rvbi5Mb2dFbnRyeSwgY2FsbGJhY2s6ICgpID0+IHZvaWQpIHtcbiAgICBpZiAoIXRoaXMuc3RyZWFtLmNsb3NlZCkge1xuICAgICAgdGhpcy5zdHJlYW0ud3JpdGUoXG4gICAgICAgIHtcbiAgICAgICAgICBtc2c6IGluZm8ubWVzc2FnZSxcbiAgICAgICAgICBsZXZlbDogaW5mby5sZXZlbCxcbiAgICAgICAgICBlbnRpdGllczogdGhpcy5lbnRpdGllcyxcbiAgICAgICAgICBhbGlhc2VzOiB0aGlzLmFsaWFzZXMsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGxiYWNrLFxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZygnT3V0cHV0IHN0cmVhbSBjbG9zZWQnKVxuICAgICAgY2FsbGJhY2soKVxuICAgIH1cbiAgfVxuXG4gIHdpdGhFbnRpdHkoZW50aXR5OiBzdHJpbmcpOiBScGNUcmFuc3BvcnQge1xuICAgIHJldHVybiBuZXcgUnBjVHJhbnNwb3J0KHtcbiAgICAgIHN0cmVhbTogdGhpcy5zdHJlYW0sXG4gICAgICBlbnRpdGllczogWy4uLnRoaXMuZW50aXRpZXMsIGVudGl0eV0sXG4gICAgICBhbGlhc2VzOiB0aGlzLmFsaWFzZXMsXG4gICAgfSlcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0ZW5kTG9nZ2VyKGJhc2VMb2dnZXI6IExvZ2dlciwgbmV3RW50aXR5OiBzdHJpbmcpOiBMb2dnZXIge1xuICBjb25zdCBuZXdUcmFuc3BvcnRzID0gYmFzZUxvZ2dlci50cmFuc3BvcnRzLm1hcCgodCkgPT4ge1xuICAgIGlmICh0IGluc3RhbmNlb2YgUnBjVHJhbnNwb3J0KSB7XG4gICAgICByZXR1cm4gdC53aXRoRW50aXR5KG5ld0VudGl0eSlcbiAgICB9XG4gICAgcmV0dXJuIHRcbiAgfSlcblxuICByZXR1cm4gd2luc3Rvbi5jcmVhdGVMb2dnZXIoe1xuICAgIGxldmVsOiBiYXNlTG9nZ2VyLmxldmVsLFxuICAgIGZvcm1hdDogYmFzZUxvZ2dlci5mb3JtYXQsXG4gICAgZGVmYXVsdE1ldGE6IGJhc2VMb2dnZXIuZGVmYXVsdE1ldGEsXG4gICAgdHJhbnNwb3J0czogbmV3VHJhbnNwb3J0cyxcbiAgfSlcbn1cbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Logger } from 'winston';
|
|
2
|
+
import { Reader } from './reader.js';
|
|
3
|
+
import { Writer } from './writer.js';
|
|
4
|
+
export type Primitive = string | number | Writer | Reader | ProcessorArgs;
|
|
5
|
+
export type ProcessorArgs = {
|
|
6
|
+
[id: string]: Primitive | Primitive[];
|
|
7
|
+
};
|
|
8
|
+
export type BGetter<T> = {
|
|
9
|
+
[K in keyof T]: T[K];
|
|
10
|
+
};
|
|
11
|
+
export declare abstract class Processor<T> {
|
|
12
|
+
protected readonly args: T;
|
|
13
|
+
protected readonly logger: Logger;
|
|
14
|
+
constructor(args: T, logger: Logger);
|
|
15
|
+
protected get<K extends keyof T>(key: K): T[K];
|
|
16
|
+
abstract init(this: T & this): Promise<void>;
|
|
17
|
+
abstract transform(this: T & this): Promise<void>;
|
|
18
|
+
abstract produce(this: T & this): Promise<void>;
|
|
19
|
+
}
|
package/lib/processor.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export class Processor {
|
|
2
|
+
args;
|
|
3
|
+
logger;
|
|
4
|
+
constructor(args, logger) {
|
|
5
|
+
Object.assign(this, args);
|
|
6
|
+
this.args = args;
|
|
7
|
+
this.logger = logger;
|
|
8
|
+
}
|
|
9
|
+
get(key) {
|
|
10
|
+
return this.args[key];
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Byb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFhQSxNQUFNLE9BQWdCLFNBQVM7SUFDVixJQUFJLENBQUc7SUFDUCxNQUFNLENBQVE7SUFFakMsWUFBWSxJQUFPLEVBQUUsTUFBYztRQUNqQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtRQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtJQUN0QixDQUFDO0lBRVMsR0FBRyxDQUFvQixHQUFNO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUN2QixDQUFDO0NBYUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2dnZXIgfSBmcm9tICd3aW5zdG9uJ1xuaW1wb3J0IHsgUmVhZGVyIH0gZnJvbSAnLi9yZWFkZXInXG5pbXBvcnQgeyBXcml0ZXIgfSBmcm9tICcuL3dyaXRlcidcblxuZXhwb3J0IHR5cGUgUHJpbWl0aXZlID0gc3RyaW5nIHwgbnVtYmVyIHwgV3JpdGVyIHwgUmVhZGVyIHwgUHJvY2Vzc29yQXJnc1xuXG5leHBvcnQgdHlwZSBQcm9jZXNzb3JBcmdzID0ge1xuICBbaWQ6IHN0cmluZ106IFByaW1pdGl2ZSB8IFByaW1pdGl2ZVtdXG59XG5leHBvcnQgdHlwZSBCR2V0dGVyPFQ+ID0ge1xuICBbSyBpbiBrZXlvZiBUXTogVFtLXVxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUHJvY2Vzc29yPFQ+IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFyZ3M6IFQgLy8gU3RvcmUgYXJncyBzYWZlbHlcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxvZ2dlcjogTG9nZ2VyXG5cbiAgY29uc3RydWN0b3IoYXJnczogVCwgbG9nZ2VyOiBMb2dnZXIpIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIGFyZ3MpXG4gICAgdGhpcy5hcmdzID0gYXJnc1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyXG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0PEsgZXh0ZW5kcyBrZXlvZiBUPihrZXk6IEspOiBUW0tdIHtcbiAgICByZXR1cm4gdGhpcy5hcmdzW2tleV1cbiAgfVxuXG4gIC8vIFRoaXMgaXMgdGhlIGZpcnN0IGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIChhbmQgYXdhaXRlZCksIHdoZW4gY3JlYXRpbmcgYSBwcm9jZXNzb3JcbiAgLy8gVGhpcyBpcyB0aGUgcGVyZmVjdCBsb2NhdGlvbiB0byBzdGFydCB0aGluZ3MgbGlrZSBkYXRhYmFzZSBjb25uZWN0aW9uc1xuICBhYnN0cmFjdCBpbml0KHRoaXM6IFQgJiB0aGlzKTogUHJvbWlzZTx2b2lkPlxuXG4gIC8vIEZ1bmN0aW9uIHRvIHN0YXJ0IHJlYWRpbmcgY2hhbm5lbHNcbiAgLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZm9yIGVhY2ggcHJvY2Vzc29yIGJlZm9yZSBfcHJvZHVjZV8gaXMgY2FsbGVkXG4gIGFic3RyYWN0IHRyYW5zZm9ybSh0aGlzOiBUICYgdGhpcyk6IFByb21pc2U8dm9pZD5cblxuICAvLyBGdW5jdGlvbiB0byBzdGFydCB0aGUgcHJvZHVjdGlvbiBvZiBkYXRhLCBzdGFydGluZyB0aGUgcGlwZWxpbmVcbiAgLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYWZ0ZXIgYWxsIHByb2Nlc3NvcnMgYXJlIGNvbXBsZXRlbHkgc2V0dXBcbiAgYWJzdHJhY3QgcHJvZHVjZSh0aGlzOiBUICYgdGhpcyk6IFByb21pc2U8dm9pZD5cbn1cbiJdfQ==
|
package/lib/reader.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Message, RunnerClient, StreamMessage } from '@rdfc/proto';
|
|
2
|
+
import winston from 'winston';
|
|
3
|
+
export type Any = {
|
|
4
|
+
string: string;
|
|
5
|
+
} | {
|
|
6
|
+
stream: AsyncGenerator<Uint8Array>;
|
|
7
|
+
} | {
|
|
8
|
+
buffer: Uint8Array;
|
|
9
|
+
};
|
|
10
|
+
export interface Reader {
|
|
11
|
+
readonly uri: string;
|
|
12
|
+
strings(): AsyncIterable<string>;
|
|
13
|
+
streams(): AsyncIterable<AsyncGenerator<Uint8Array>>;
|
|
14
|
+
buffers(): AsyncIterable<Uint8Array>;
|
|
15
|
+
anys(): AsyncIterable<Any>;
|
|
16
|
+
}
|
|
17
|
+
export declare class ReaderInstance implements Reader {
|
|
18
|
+
private client;
|
|
19
|
+
readonly uri: string;
|
|
20
|
+
private logger;
|
|
21
|
+
private iterators;
|
|
22
|
+
constructor(uri: string, client: RunnerClient, logger: winston.Logger);
|
|
23
|
+
anys(): AsyncIterable<Any>;
|
|
24
|
+
strings(): AsyncIterable<string>;
|
|
25
|
+
buffers(): AsyncIterable<Uint8Array>;
|
|
26
|
+
streams(): AsyncIterable<AsyncGenerator<Uint8Array>>;
|
|
27
|
+
handleMsg(msg: Message): void;
|
|
28
|
+
close(): void;
|
|
29
|
+
handleStreamingMessage(msg: StreamMessage): void;
|
|
30
|
+
}
|
package/lib/reader.js
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { AnyConvertor, NoConvertor, StreamConvertor, StringConvertor, } from './convertor.js';
|
|
2
|
+
class MyIter {
|
|
3
|
+
convertor;
|
|
4
|
+
queue = [];
|
|
5
|
+
resolveNext = null;
|
|
6
|
+
constructor(convertor) {
|
|
7
|
+
this.convertor = convertor;
|
|
8
|
+
}
|
|
9
|
+
push(buffer) {
|
|
10
|
+
const item = this.convertor.from(buffer);
|
|
11
|
+
this.queue.push(item);
|
|
12
|
+
if (this.resolveNext) {
|
|
13
|
+
this.resolveNext(undefined);
|
|
14
|
+
this.resolveNext = null;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
close() {
|
|
18
|
+
this.queue.push(undefined);
|
|
19
|
+
if (this.resolveNext) {
|
|
20
|
+
this.resolveNext(undefined);
|
|
21
|
+
this.resolveNext = null;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
async pushStream(chunks) {
|
|
25
|
+
const stream = (async function* (stream) {
|
|
26
|
+
for await (const c of stream) {
|
|
27
|
+
const chunk = c;
|
|
28
|
+
yield chunk.data;
|
|
29
|
+
}
|
|
30
|
+
})(chunks);
|
|
31
|
+
const item = await this.convertor.fromStream(stream);
|
|
32
|
+
this.queue.push(item);
|
|
33
|
+
if (this.resolveNext) {
|
|
34
|
+
this.resolveNext(undefined);
|
|
35
|
+
this.resolveNext = null;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
async *[Symbol.asyncIterator]() {
|
|
39
|
+
while (true) {
|
|
40
|
+
if (this.queue.length > 0) {
|
|
41
|
+
const item = this.queue.shift();
|
|
42
|
+
if (item === undefined)
|
|
43
|
+
break;
|
|
44
|
+
yield item;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
await new Promise((resolve) => (this.resolveNext = resolve));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
export class ReaderInstance {
|
|
53
|
+
client;
|
|
54
|
+
uri;
|
|
55
|
+
logger;
|
|
56
|
+
iterators = [];
|
|
57
|
+
constructor(uri, client, logger) {
|
|
58
|
+
this.uri = uri;
|
|
59
|
+
this.client = client;
|
|
60
|
+
this.logger = logger;
|
|
61
|
+
}
|
|
62
|
+
anys() {
|
|
63
|
+
const iter = new MyIter(AnyConvertor);
|
|
64
|
+
this.iterators.push(iter);
|
|
65
|
+
return iter;
|
|
66
|
+
}
|
|
67
|
+
strings() {
|
|
68
|
+
const iter = new MyIter(StringConvertor);
|
|
69
|
+
this.iterators.push(iter);
|
|
70
|
+
return iter;
|
|
71
|
+
}
|
|
72
|
+
buffers() {
|
|
73
|
+
const iter = new MyIter(NoConvertor);
|
|
74
|
+
this.iterators.push(iter);
|
|
75
|
+
return iter;
|
|
76
|
+
}
|
|
77
|
+
streams() {
|
|
78
|
+
const iter = new MyIter(StreamConvertor);
|
|
79
|
+
this.iterators.push(iter);
|
|
80
|
+
return iter;
|
|
81
|
+
}
|
|
82
|
+
handleMsg(msg) {
|
|
83
|
+
this.logger.debug(`${this.uri} handling message`);
|
|
84
|
+
for (const iter of this.iterators) {
|
|
85
|
+
iter.push(msg.data);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
close() {
|
|
89
|
+
for (const iter of this.iterators) {
|
|
90
|
+
iter.close();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
handleStreamingMessage(msg) {
|
|
94
|
+
this.logger.debug(`${this.uri} handling streaming message`);
|
|
95
|
+
const chunks = this.client.receiveStreamMessage(msg.id);
|
|
96
|
+
for (const iter of this.iterators) {
|
|
97
|
+
iter.pushStream(chunks);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQ0wsWUFBWSxFQUVaLFdBQVcsRUFDWCxlQUFlLEVBQ2YsZUFBZSxHQUNoQixNQUFNLGFBQWEsQ0FBQTtBQXFCcEIsTUFBTSxNQUFNO0lBQ0YsU0FBUyxDQUFjO0lBQ3ZCLEtBQUssR0FBc0IsRUFBRSxDQUFBO0lBQzdCLFdBQVcsR0FBd0MsSUFBSSxDQUFBO0lBRS9ELFlBQVksU0FBdUI7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUE7SUFDNUIsQ0FBQztJQUVELElBQUksQ0FBQyxNQUFrQjtRQUNyQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN4QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNyQixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1lBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFBO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQzFCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUE7WUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUE7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQXVDO1FBQ3RELE1BQU0sTUFBTSxHQUFHLENBQUMsS0FBSyxTQUFTLENBQUMsRUFBRSxNQUFNO1lBQ3JDLElBQUksS0FBSyxFQUFFLE1BQU0sQ0FB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ckIsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLO1FBQ0gsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxHQUFrQjtRQUN2QyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLDZCQUE2QixDQUFDLENBQUE7UUFDM0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsRUFBRyxDQUFDLENBQUE7UUFDeEQsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN6QixDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xpZW50UmVhZGFibGVTdHJlYW0gfSBmcm9tICdAZ3JwYy9ncnBjLWpzJ1xuaW1wb3J0IHsgRGF0YUNodW5rLCBNZXNzYWdlLCBSdW5uZXJDbGllbnQsIFN0cmVhbU1lc3NhZ2UgfSBmcm9tICdAcmRmYy9wcm90bydcbmltcG9ydCB3aW5zdG9uIGZyb20gJ3dpbnN0b24nXG5pbXBvcnQge1xuICBBbnlDb252ZXJ0b3IsXG4gIENvbnZlcnRvcixcbiAgTm9Db252ZXJ0b3IsXG4gIFN0cmVhbUNvbnZlcnRvcixcbiAgU3RyaW5nQ29udmVydG9yLFxufSBmcm9tICcuL2NvbnZlcnRvcidcblxuZXhwb3J0IHR5cGUgQW55ID1cbiAgfCB7XG4gICAgICBzdHJpbmc6IHN0cmluZ1xuICAgIH1cbiAgfCB7XG4gICAgICBzdHJlYW06IEFzeW5jR2VuZXJhdG9yPFVpbnQ4QXJyYXk+XG4gICAgfVxuICB8IHtcbiAgICAgIGJ1ZmZlcjogVWludDhBcnJheVxuICAgIH1cblxuZXhwb3J0IGludGVyZmFjZSBSZWFkZXIge1xuICByZWFkb25seSB1cmk6IHN0cmluZ1xuICBzdHJpbmdzKCk6IEFzeW5jSXRlcmFibGU8c3RyaW5nPlxuICBzdHJlYW1zKCk6IEFzeW5jSXRlcmFibGU8QXN5bmNHZW5lcmF0b3I8VWludDhBcnJheT4+XG4gIGJ1ZmZlcnMoKTogQXN5bmNJdGVyYWJsZTxVaW50OEFycmF5PlxuICBhbnlzKCk6IEFzeW5jSXRlcmFibGU8QW55PlxufVxuXG5jbGFzcyBNeUl0ZXI8VD4gaW1wbGVtZW50cyBBc3luY0l0ZXJhYmxlPFQ+IHtcbiAgcHJpdmF0ZSBjb252ZXJ0b3I6IENvbnZlcnRvcjxUPlxuICBwcml2YXRlIHF1ZXVlOiAoVCB8IHVuZGVmaW5lZClbXSA9IFtdXG4gIHByaXZhdGUgcmVzb2x2ZU5leHQ6ICgodmFsdWU6IHVuZGVmaW5lZCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbFxuXG4gIGNvbnN0cnVjdG9yKGNvbnZlcnRvcjogQ29udmVydG9yPFQ+KSB7XG4gICAgdGhpcy5jb252ZXJ0b3IgPSBjb252ZXJ0b3JcbiAgfVxuXG4gIHB1c2goYnVmZmVyOiBVaW50OEFycmF5KSB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuY29udmVydG9yLmZyb20oYnVmZmVyKVxuICAgIHRoaXMucXVldWUucHVzaChpdGVtKVxuICAgIGlmICh0aGlzLnJlc29sdmVOZXh0KSB7XG4gICAgICB0aGlzLnJlc29sdmVOZXh0KHVuZGVmaW5lZClcbiAgICAgIHRoaXMucmVzb2x2ZU5leHQgPSBudWxsXG4gICAgfVxuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5xdWV1ZS5wdXNoKHVuZGVmaW5lZClcbiAgICBpZiAodGhpcy5yZXNvbHZlTmV4dCkge1xuICAgICAgdGhpcy5yZXNvbHZlTmV4dCh1bmRlZmluZWQpXG4gICAgICB0aGlzLnJlc29sdmVOZXh0ID0gbnVsbFxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHB1c2hTdHJlYW0oY2h1bmtzOiBDbGllbnRSZWFkYWJsZVN0cmVhbTxEYXRhQ2h1bms+KSB7XG4gICAgY29uc3Qgc3RyZWFtID0gKGFzeW5jIGZ1bmN0aW9uKiAoc3RyZWFtKSB7XG4gICAgICBmb3IgYXdhaXQgKGNvbnN0IGMgb2Ygc3RyZWFtKSB7XG4gICAgICAgIGNvbnN0IGNodW5rOiBEYXRhQ2h1bmsgPSBjXG4gICAgICAgIHlpZWxkIGNodW5rLmRhdGFcbiAgICAgIH1cbiAgICB9KShjaHVua3MpXG4gICAgY29uc3QgaXRlbSA9IGF3YWl0IHRoaXMuY29udmVydG9yLmZyb21TdHJlYW0oc3RyZWFtKVxuICAgIHRoaXMucXVldWUucHVzaChpdGVtKVxuICAgIGlmICh0aGlzLnJlc29sdmVOZXh0KSB7XG4gICAgICB0aGlzLnJlc29sdmVOZXh0KHVuZGVmaW5lZClcbiAgICAgIHRoaXMucmVzb2x2ZU5leHQgPSBudWxsXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgKltTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKSB7XG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGlmICh0aGlzLnF1ZXVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMucXVldWUuc2hpZnQoKSFcbiAgICAgICAgaWYgKGl0ZW0gPT09IHVuZGVmaW5lZCkgYnJlYWtcbiAgICAgICAgeWllbGQgaXRlbVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgbmV3IFByb21pc2U8dW5kZWZpbmVkPigocmVzb2x2ZSkgPT4gKHRoaXMucmVzb2x2ZU5leHQgPSByZXNvbHZlKSlcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlYWRlckluc3RhbmNlIGltcGxlbWVudHMgUmVhZGVyIHtcbiAgcHJpdmF0ZSBjbGllbnQ6IFJ1bm5lckNsaWVudFxuICByZWFkb25seSB1cmk6IHN0cmluZ1xuICBwcml2YXRlIGxvZ2dlcjogd2luc3Rvbi5Mb2dnZXJcblxuICBwcml2YXRlIGl0ZXJhdG9yczogTXlJdGVyPHVua25vd24+W10gPSBbXVxuXG4gIGNvbnN0cnVjdG9yKHVyaTogc3RyaW5nLCBjbGllbnQ6IFJ1bm5lckNsaWVudCwgbG9nZ2VyOiB3aW5zdG9uLkxvZ2dlcikge1xuICAgIHRoaXMudXJpID0gdXJpXG4gICAgdGhpcy5jbGllbnQgPSBjbGllbnRcbiAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlclxuICB9XG5cbiAgYW55cygpOiBBc3luY0l0ZXJhYmxlPEFueT4ge1xuICAgIGNvbnN0IGl0ZXIgPSBuZXcgTXlJdGVyKEFueUNvbnZlcnRvcilcbiAgICB0aGlzLml0ZXJhdG9ycy5wdXNoKGl0ZXIpXG4gICAgcmV0dXJuIGl0ZXJcbiAgfVxuXG4gIHN0cmluZ3MoKTogQXN5bmNJdGVyYWJsZTxzdHJpbmc+IHtcbiAgICBjb25zdCBpdGVyID0gbmV3IE15SXRlcihTdHJpbmdDb252ZXJ0b3IpXG4gICAgdGhpcy5pdGVyYXRvcnMucHVzaChpdGVyKVxuICAgIHJldHVybiBpdGVyXG4gIH1cblxuICBidWZmZXJzKCk6IEFzeW5jSXRlcmFibGU8VWludDhBcnJheT4ge1xuICAgIGNvbnN0IGl0ZXIgPSBuZXcgTXlJdGVyKE5vQ29udmVydG9yKVxuICAgIHRoaXMuaXRlcmF0b3JzLnB1c2goaXRlcilcbiAgICByZXR1cm4gaXRlclxuICB9XG5cbiAgc3RyZWFtcygpOiBBc3luY0l0ZXJhYmxlPEFzeW5jR2VuZXJhdG9yPFVpbnQ4QXJyYXk+PiB7XG4gICAgY29uc3QgaXRlciA9IG5ldyBNeUl0ZXIoU3RyZWFtQ29udmVydG9yKVxuICAgIHRoaXMuaXRlcmF0b3JzLnB1c2goaXRlcilcbiAgICByZXR1cm4gaXRlclxuICB9XG5cbiAgaGFuZGxlTXNnKG1zZzogTWVzc2FnZSkge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKGAke3RoaXMudXJpfSBoYW5kbGluZyBtZXNzYWdlYClcbiAgICBmb3IgKGNvbnN0IGl0ZXIgb2YgdGhpcy5pdGVyYXRvcnMpIHtcbiAgICAgIGl0ZXIucHVzaChtc2cuZGF0YSlcbiAgICB9XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICBmb3IgKGNvbnN0IGl0ZXIgb2YgdGhpcy5pdGVyYXRvcnMpIHtcbiAgICAgIGl0ZXIuY2xvc2UoKVxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZVN0cmVhbWluZ01lc3NhZ2UobXNnOiBTdHJlYW1NZXNzYWdlKSB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoYCR7dGhpcy51cml9IGhhbmRsaW5nIHN0cmVhbWluZyBtZXNzYWdlYClcbiAgICBjb25zdCBjaHVua3MgPSB0aGlzLmNsaWVudC5yZWNlaXZlU3RyZWFtTWVzc2FnZShtc2cuaWQhKVxuICAgIGZvciAoY29uc3QgaXRlciBvZiB0aGlzLml0ZXJhdG9ycykge1xuICAgICAgaXRlci5wdXNoU3RyZWFtKGNodW5rcylcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/lib/reexports.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from '@rdfc/proto';
|
|
2
|
+
export { ClientReadableStreamImpl, } from '@grpc/grpc-js/build/src/call.js';
|
|
3
|
+
export * as grpc from '@grpc/grpc-js';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVleHBvcnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JlZXhwb3J0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGFBQWEsQ0FBQTtBQUMzQixPQUFPLEVBQ0wsd0JBQXdCLEdBRXpCLE1BQU0saUNBQWlDLENBQUE7QUFDeEMsT0FBTyxLQUFLLElBQUksTUFBTSxlQUFlLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICdAcmRmYy9wcm90bydcbmV4cG9ydCB7XG4gIENsaWVudFJlYWRhYmxlU3RyZWFtSW1wbCxcbiAgQ2xpZW50UmVhZGFibGVTdHJlYW0sXG59IGZyb20gJ0BncnBjL2dycGMtanMvYnVpbGQvc3JjL2NhbGwuanMnXG5leHBvcnQgKiBhcyBncnBjIGZyb20gJ0BncnBjL2dycGMtanMnXG4iXX0=
|
package/lib/runner.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { OrchestratorMessage, Processor, RunnerClient, RunnerMessage } from '@rdfc/proto';
|
|
2
|
+
import { Reader } from './reader.js';
|
|
3
|
+
import { Writer } from './writer.js';
|
|
4
|
+
import { Processor as Proc } from './processor.js';
|
|
5
|
+
import { Logger } from 'winston';
|
|
6
|
+
import { Term } from '@rdfjs/types';
|
|
7
|
+
export type Writable = (msg: OrchestratorMessage) => Promise<unknown>;
|
|
8
|
+
export type FullProc<C extends Proc<unknown>> = C extends Proc<infer T> ? T & C : unknown;
|
|
9
|
+
export declare class Runner {
|
|
10
|
+
private readonly readers;
|
|
11
|
+
private readonly writers;
|
|
12
|
+
private readonly client;
|
|
13
|
+
private readonly write;
|
|
14
|
+
private readonly logger;
|
|
15
|
+
private shapes;
|
|
16
|
+
private quads;
|
|
17
|
+
private readonly uri;
|
|
18
|
+
private readonly processors;
|
|
19
|
+
private readonly processorTransforms;
|
|
20
|
+
constructor(client: RunnerClient, write: Writable, uri: string, logger: Logger);
|
|
21
|
+
addProcessor<P extends Proc<unknown>>(proc: Processor): Promise<FullProc<P>>;
|
|
22
|
+
start(): Promise<void>;
|
|
23
|
+
createWriter(uri: Term): Writer;
|
|
24
|
+
createReader(uri: Term): Reader;
|
|
25
|
+
handleOrchMessage(msg: RunnerMessage): Promise<void>;
|
|
26
|
+
}
|
package/lib/runner.js
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { ReaderInstance } from './reader.js';
|
|
2
|
+
import { WriterInstance } from './writer.js';
|
|
3
|
+
import winston from 'winston';
|
|
4
|
+
import { RpcTransport } from './logger.js';
|
|
5
|
+
import { empty, extractShapes } from 'rdf-lens';
|
|
6
|
+
import { NamedNode, Parser } from 'n3';
|
|
7
|
+
import { createNamespace, createUriAndTermNamespace, RDF } from '@treecg/types';
|
|
8
|
+
const RDFL = createUriAndTermNamespace('https://w3id.org/rdf-lens/ontology#', 'CBD', 'Path', 'PathLens', 'Context', 'TypedExtract', 'EnvVariable', 'envKey', 'envDefault', 'datatype');
|
|
9
|
+
const RDFC = createNamespace('https://w3id.org/rdf-connect#', (x) => x, 'Reader', 'Writer');
|
|
10
|
+
export class Runner {
|
|
11
|
+
readers = {};
|
|
12
|
+
writers = {};
|
|
13
|
+
client;
|
|
14
|
+
write;
|
|
15
|
+
logger;
|
|
16
|
+
shapes;
|
|
17
|
+
quads = [];
|
|
18
|
+
uri;
|
|
19
|
+
processors = [];
|
|
20
|
+
processorTransforms = [];
|
|
21
|
+
constructor(client, write, uri, logger) {
|
|
22
|
+
this.client = client;
|
|
23
|
+
this.write = write;
|
|
24
|
+
this.uri = uri;
|
|
25
|
+
this.logger = logger;
|
|
26
|
+
}
|
|
27
|
+
async addProcessor(proc) {
|
|
28
|
+
const procLogger = winston.createLogger({
|
|
29
|
+
transports: [
|
|
30
|
+
new RpcTransport({
|
|
31
|
+
entities: [proc.uri, this.uri],
|
|
32
|
+
stream: this.client.logStream(() => { }),
|
|
33
|
+
}),
|
|
34
|
+
],
|
|
35
|
+
});
|
|
36
|
+
const ty = JSON.stringify(this.quads
|
|
37
|
+
.filter((x) => x.subject.value === proc.uri && x.predicate.equals(RDF.terms.type))
|
|
38
|
+
.map((x) => x.object.value));
|
|
39
|
+
this.logger.info('parsing ' + proc.uri + ' type ' + ty);
|
|
40
|
+
const args = this.shapes.lenses[RDFL.TypedExtract].execute({
|
|
41
|
+
id: new NamedNode(proc.uri),
|
|
42
|
+
quads: this.quads,
|
|
43
|
+
});
|
|
44
|
+
const config = JSON.parse(proc.config);
|
|
45
|
+
const jsProgram = await import(config.file);
|
|
46
|
+
const clazz = jsProgram[config.clazz || 'default'];
|
|
47
|
+
const instance = new clazz(args, procLogger);
|
|
48
|
+
await instance.init();
|
|
49
|
+
this.logger.info('inited ' + proc.uri + ' type ' + ty);
|
|
50
|
+
this.processors.push(instance);
|
|
51
|
+
this.processorTransforms.push(instance.transform());
|
|
52
|
+
await this.write({ init: { uri: proc.uri } });
|
|
53
|
+
return instance;
|
|
54
|
+
}
|
|
55
|
+
async start() {
|
|
56
|
+
try {
|
|
57
|
+
await Promise.all(this.processors.map((x) => x.produce()));
|
|
58
|
+
await Promise.all(this.processorTransforms);
|
|
59
|
+
}
|
|
60
|
+
catch (ex) {
|
|
61
|
+
this.logger.error('Start failed: ' + JSON.stringify(ex));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
createWriter(uri) {
|
|
65
|
+
const ids = uri.value;
|
|
66
|
+
if (this.writers[ids] === undefined) {
|
|
67
|
+
this.writers[ids] = [];
|
|
68
|
+
}
|
|
69
|
+
const writer = new WriterInstance(ids, this.client, this.write, this.logger);
|
|
70
|
+
this.writers[ids].push(writer);
|
|
71
|
+
return writer;
|
|
72
|
+
}
|
|
73
|
+
createReader(uri) {
|
|
74
|
+
const ids = uri.value;
|
|
75
|
+
if (this.readers[ids] === undefined) {
|
|
76
|
+
this.readers[ids] = [];
|
|
77
|
+
}
|
|
78
|
+
const reader = new ReaderInstance(ids, this.client, this.logger);
|
|
79
|
+
this.readers[ids].push(reader);
|
|
80
|
+
return reader;
|
|
81
|
+
}
|
|
82
|
+
async handleOrchMessage(msg) {
|
|
83
|
+
if (msg.msg) {
|
|
84
|
+
this.logger.debug('Handling data msg for ' + msg.msg.channel);
|
|
85
|
+
for (const reader of this.readers[msg.msg.channel] || []) {
|
|
86
|
+
reader.handleMsg(msg.msg);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
if (msg.streamMsg) {
|
|
90
|
+
for (const reader of this.readers[msg.streamMsg.channel] || []) {
|
|
91
|
+
reader.handleStreamingMessage(msg.streamMsg);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (msg.close) {
|
|
95
|
+
const uri = msg.close.channel;
|
|
96
|
+
for (const reader of this.readers[uri] || []) {
|
|
97
|
+
reader.close();
|
|
98
|
+
}
|
|
99
|
+
for (const writer of this.writers[uri] || []) {
|
|
100
|
+
await writer.close(true);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
if (msg.pipeline) {
|
|
104
|
+
try {
|
|
105
|
+
const quads = new Parser().parse(msg.pipeline);
|
|
106
|
+
this.shapes = extractShapes(quads, {
|
|
107
|
+
[RDFC.Reader]: (x) => this.createReader(x.id),
|
|
108
|
+
[RDFC.Writer]: (x) => this.createWriter(x.id),
|
|
109
|
+
}, {
|
|
110
|
+
[RDFC.Reader]: empty(),
|
|
111
|
+
[RDFC.Writer]: empty(),
|
|
112
|
+
});
|
|
113
|
+
this.quads = quads;
|
|
114
|
+
}
|
|
115
|
+
catch (ex) {
|
|
116
|
+
this.logger.error('Pipeline failed: ' + JSON.stringify(ex));
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVubmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3J1bm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQVUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ2pELE9BQU8sRUFBVSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFJakQsT0FBTyxPQUFPLE1BQU0sU0FBUyxDQUFBO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDdkMsT0FBTyxFQUFRLEtBQUssRUFBRSxhQUFhLEVBQVUsTUFBTSxVQUFVLENBQUE7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFDdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSx5QkFBeUIsRUFBRSxHQUFHLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHL0UsTUFBTSxJQUFJLEdBQUcseUJBQXlCLENBQ3BDLHFDQUFxQyxFQUNyQyxLQUFLLEVBQ0wsTUFBTSxFQUNOLFVBQVUsRUFDVixTQUFTLEVBQ1QsY0FBYyxFQUNkLGFBQWEsRUFDYixRQUFRLEVBQ1IsWUFBWSxFQUNaLFVBQVUsQ0FDWCxDQUFBO0FBRUQsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUMxQiwrQkFBK0IsRUFDL0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDUixRQUFRLEVBQ1IsUUFBUSxDQUNULENBQUE7QUFZRCxNQUFNLE9BQU8sTUFBTTtJQUNBLE9BQU8sR0FBd0MsRUFBRSxDQUFBO0lBQ2pELE9BQU8sR0FBd0MsRUFBRSxDQUFBO0lBQ2pELE1BQU0sQ0FBYztJQUNwQixLQUFLLENBQVU7SUFDZixNQUFNLENBQVE7SUFDdkIsTUFBTSxDQUFRO0lBQ2QsS0FBSyxHQUFXLEVBQUUsQ0FBQTtJQUVULEdBQUcsQ0FBUTtJQUVYLFVBQVUsR0FBb0IsRUFBRSxDQUFBO0lBQ2hDLG1CQUFtQixHQUF1QixFQUFFLENBQUE7SUFF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TUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQzFCLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDO2dCQUVILE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQTtnQkFDOUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQ3pCLEtBQUssRUFDTDtvQkFDRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNuRCxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2lCQUNwRCxFQUNEO29CQUNFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBUTtvQkFDNUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFRO2lCQUM3QixDQUNGLENBQUE7Z0JBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7WUFDcEIsQ0FBQztZQUFDLE9BQU8sRUFBVyxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUM3RCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE9yY2hlc3RyYXRvck1lc3NhZ2UsXG4gIFByb2Nlc3NvcixcbiAgUnVubmVyQ2xpZW50LFxuICBSdW5uZXJNZXNzYWdlLFxufSBmcm9tICdAcmRmYy9wcm90bydcbmltcG9ydCB7IFJlYWRlciwgUmVhZGVySW5zdGFuY2UgfSBmcm9tICcuL3JlYWRlcidcbmltcG9ydCB7IFdyaXRlciwgV3JpdGVySW5zdGFuY2UgfSBmcm9tICcuL3dyaXRlcidcbmltcG9ydCB7IFByb2Nlc3NvciBhcyBQcm9jIH0gZnJvbSAnLi9wcm9jZXNzb3InXG5pbXBvcnQgeyBMb2dnZXIgfSBmcm9tICd3aW5zdG9uJ1xuXG5pbXBvcnQgd2luc3RvbiBmcm9tICd3aW5zdG9uJ1xuaW1wb3J0IHsgUnBjVHJhbnNwb3J0IH0gZnJvbSAnLi9sb2dnZXInXG5pbXBvcnQgeyBDb250LCBlbXB0eSwgZXh0cmFjdFNoYXBlcywgU2hhcGVzIH0gZnJvbSAncmRmLWxlbnMnXG5pbXBvcnQgeyBOYW1lZE5vZGUsIFBhcnNlciB9IGZyb20gJ24zJ1xuaW1wb3J0IHsgY3JlYXRlTmFtZXNwYWNlLCBjcmVhdGVVcmlBbmRUZXJtTmFtZXNwYWNlLCBSREYgfSBmcm9tICdAdHJlZWNnL3R5cGVzJ1xuaW1wb3J0IHsgUXVhZCwgVGVybSB9IGZyb20gJ0ByZGZqcy90eXBlcydcblxuY29uc3QgUkRGTCA9IGNyZWF0ZVVyaUFuZFRlcm1OYW1lc3BhY2UoXG4gICdodHRwczovL3czaWQub3JnL3JkZi1sZW5zL29udG9sb2d5IycsXG4gICdDQkQnLFxuICAnUGF0aCcsXG4gICdQYXRoTGVucycsXG4gICdDb250ZXh0JyxcbiAgJ1R5cGVkRXh0cmFjdCcsXG4gICdFbnZWYXJpYWJsZScsXG4gICdlbnZLZXknLFxuICAnZW52RGVmYXVsdCcsXG4gICdkYXRhdHlwZScsXG4pXG5cbmNvbnN0IFJERkMgPSBjcmVhdGVOYW1lc3BhY2UoXG4gICdodHRwczovL3czaWQub3JnL3JkZi1jb25uZWN0IycsXG4gICh4KSA9PiB4LFxuICAnUmVhZGVyJyxcbiAgJ1dyaXRlcicsXG4pXG5cbmV4cG9ydCB0eXBlIFdyaXRhYmxlID0gKG1zZzogT3JjaGVzdHJhdG9yTWVzc2FnZSkgPT4gUHJvbWlzZTx1bmtub3duPlxuXG50eXBlIFByb2Nlc3NvckNvbmZpZyA9IHtcbiAgbG9jYXRpb246IHN0cmluZ1xuICBmaWxlOiBzdHJpbmdcbiAgY2xheno/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgRnVsbFByb2M8QyBleHRlbmRzIFByb2M8dW5rbm93bj4+ID1cbiAgQyBleHRlbmRzIFByb2M8aW5mZXIgVD4gPyBUICYgQyA6IHVua25vd25cbmV4cG9ydCBjbGFzcyBSdW5uZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHJlYWRlcnM6IHsgW3VyaTogc3RyaW5nXTogUmVhZGVySW5zdGFuY2VbXSB9ID0ge31cbiAgcHJpdmF0ZSByZWFkb25seSB3cml0ZXJzOiB7IFt1cmk6IHN0cmluZ106IFdyaXRlckluc3RhbmNlW10gfSA9IHt9XG4gIHByaXZhdGUgcmVhZG9ubHkgY2xpZW50OiBSdW5uZXJDbGllbnRcbiAgcHJpdmF0ZSByZWFkb25seSB3cml0ZTogV3JpdGFibGVcbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IExvZ2dlclxuICBwcml2YXRlIHNoYXBlczogU2hhcGVzXG4gIHByaXZhdGUgcXVhZHM6IFF1YWRbXSA9IFtdXG5cbiAgcHJpdmF0ZSByZWFkb25seSB1cmk6IHN0cmluZ1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvY2Vzc29yczogUHJvYzx1bmtub3duPltdID0gW11cbiAgcHJpdmF0ZSByZWFkb25seSBwcm9jZXNzb3JUcmFuc2Zvcm1zOiBQcm9taXNlPHVua25vd24+W10gPSBbXVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNsaWVudDogUnVubmVyQ2xpZW50LFxuICAgIHdyaXRlOiBXcml0YWJsZSxcbiAgICB1cmk6IHN0cmluZyxcbiAgICBsb2dnZXI6IExvZ2dlcixcbiAgKSB7XG4gICAgdGhpcy5jbGllbnQgPSBjbGllbnRcbiAgICB0aGlzLndyaXRlID0gd3JpdGVcbiAgICB0aGlzLnVyaSA9IHVyaVxuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyXG4gIH1cblxuICBhc3luYyBhZGRQcm9jZXNzb3I8UCBleHRlbmRzIFByb2M8dW5rbm93bj4+KFxuICAgIHByb2M6IFByb2Nlc3NvcixcbiAgKTogUHJvbWlzZTxGdWxsUHJvYzxQPj4ge1xuICAgIGNvbnN0IHByb2NMb2dnZXIgPSB3aW5zdG9uLmNyZWF0ZUxvZ2dlcih7XG4gICAgICB0cmFuc3BvcnRzOiBbXG4gICAgICAgIG5ldyBScGNUcmFuc3BvcnQoe1xuICAgICAgICAgIGVudGl0aWVzOiBbcHJvYy51cmksIHRoaXMudXJpXSxcbiAgICAgICAgICBzdHJlYW06IHRoaXMuY2xpZW50LmxvZ1N0cmVhbSgoKSA9PiB7fSksXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9KVxuXG4gICAgY29uc3QgdHkgPSBKU09OLnN0cmluZ2lmeShcbiAgICAgIHRoaXMucXVhZHNcbiAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAoeCkgPT5cbiAgICAgICAgICAgIHguc3ViamVjdC52YWx1ZSA9PT0gcHJvYy51cmkgJiYgeC5wcmVkaWNhdGUuZXF1YWxzKFJERi50ZXJtcy50eXBlKSxcbiAgICAgICAgKVxuICAgICAgICAubWFwKCh4KSA9PiB4Lm9iamVjdC52YWx1ZSksXG4gICAgKVxuICAgIHRoaXMubG9nZ2VyLmluZm8oJ3BhcnNpbmcgJyArIHByb2MudXJpICsgJyB0eXBlICcgKyB0eSlcbiAgICBjb25zdCBhcmdzID0gdGhpcy5zaGFwZXMubGVuc2VzW1JERkwuVHlwZWRFeHRyYWN0XS5leGVjdXRlKHtcbiAgICAgIGlkOiBuZXcgTmFtZWROb2RlKHByb2MudXJpKSxcbiAgICAgIHF1YWRzOiB0aGlzLnF1YWRzLFxuICAgIH0pXG5cbiAgICBjb25zdCBjb25maWc6IFByb2Nlc3NvckNvbmZpZyA9IEpTT04ucGFyc2UocHJvYy5jb25maWcpXG4gICAgLy8gY29uc3QgdXJsID0gbmV3IFVSTChjb25maWcubG9jYXRpb24pXG4gICAgLy8gcHJvY2Vzcy5jaGRpcih1cmwucGF0aG5hbWUpXG4gICAgY29uc3QganNQcm9ncmFtID0gYXdhaXQgaW1wb3J0KGNvbmZpZy5maWxlKVxuICAgIGNvbnN0IGNsYXp6ID0ganNQcm9ncmFtW2NvbmZpZy5jbGF6eiB8fCAnZGVmYXVsdCddXG4gICAgY29uc3QgaW5zdGFuY2U6IFByb2M8dW5rbm93bj4gPSBuZXcgY2xhenooYXJncywgcHJvY0xvZ2dlcilcbiAgICBhd2FpdCBpbnN0YW5jZS5pbml0KClcblxuICAgIHRoaXMubG9nZ2VyLmluZm8oJ2luaXRlZCAnICsgcHJvYy51cmkgKyAnIHR5cGUgJyArIHR5KVxuXG4gICAgdGhpcy5wcm9jZXNzb3JzLnB1c2goaW5zdGFuY2UpXG4gICAgdGhpcy5wcm9jZXNzb3JUcmFuc2Zvcm1zLnB1c2goaW5zdGFuY2UudHJhbnNmb3JtKCkpXG5cbiAgICBhd2FpdCB0aGlzLndyaXRlKHsgaW5pdDogeyB1cmk6IHByb2MudXJpIH0gfSlcblxuICAgIHJldHVybiA8RnVsbFByb2M8UD4+aW5zdGFuY2VcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0KCkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLnByb2Nlc3NvcnMubWFwKCh4KSA9PiB4LnByb2R1Y2UoKSkpXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLnByb2Nlc3NvclRyYW5zZm9ybXMpXG4gICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdTdGFydCBmYWlsZWQ6ICcgKyBKU09OLnN0cmluZ2lmeShleCkpXG4gICAgfVxuICB9XG5cbiAgY3JlYXRlV3JpdGVyKHVyaTogVGVybSk6IFdyaXRlciB7XG4gICAgY29uc3QgaWRzID0gdXJpLnZhbHVlXG5cbiAgICBpZiAodGhpcy53cml0ZXJzW2lkc10gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy53cml0ZXJzW2lkc10gPSBbXVxuICAgIH1cbiAgICBjb25zdCB3cml0ZXIgPSBuZXcgV3JpdGVySW5zdGFuY2UoaWRzLCB0aGlzLmNsaWVudCwgdGhpcy53cml0ZSwgdGhpcy5sb2dnZXIpXG4gICAgdGhpcy53cml0ZXJzW2lkc10ucHVzaCh3cml0ZXIpXG4gICAgcmV0dXJuIHdyaXRlclxuICB9XG5cbiAgY3JlYXRlUmVhZGVyKHVyaTogVGVybSk6IFJlYWRlciB7XG4gICAgY29uc3QgaWRzID0gdXJpLnZhbHVlXG5cbiAgICBpZiAodGhpcy5yZWFkZXJzW2lkc10gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5yZWFkZXJzW2lkc10gPSBbXVxuICAgIH1cbiAgICBjb25zdCByZWFkZXIgPSBuZXcgUmVhZGVySW5zdGFuY2UoaWRzLCB0aGlzLmNsaWVudCwgdGhpcy5sb2dnZXIpXG4gICAgdGhpcy5yZWFkZXJzW2lkc10ucHVzaChyZWFkZXIpXG4gICAgcmV0dXJuIHJlYWRlclxuICB9XG5cbiAgYXN5bmMgaGFuZGxlT3JjaE1lc3NhZ2UobXNnOiBSdW5uZXJNZXNzYWdlKSB7XG4gICAgaWYgKG1zZy5tc2cpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdIYW5kbGluZyBkYXRhIG1zZyBmb3IgJyArIG1zZy5tc2cuY2hhbm5lbClcbiAgICAgIGZvciAoY29uc3QgcmVhZGVyIG9mIHRoaXMucmVhZGVyc1ttc2cubXNnLmNoYW5uZWxdIHx8IFtdKSB7XG4gICAgICAgIHJlYWRlci5oYW5kbGVNc2cobXNnLm1zZylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobXNnLnN0cmVhbU1zZykge1xuICAgICAgZm9yIChjb25zdCByZWFkZXIgb2YgdGhpcy5yZWFkZXJzW21zZy5zdHJlYW1Nc2cuY2hhbm5lbF0gfHwgW10pIHtcbiAgICAgICAgcmVhZGVyLmhhbmRsZVN0cmVhbWluZ01lc3NhZ2UobXNnLnN0cmVhbU1zZylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobXNnLmNsb3NlKSB7XG4gICAgICBjb25zdCB1cmkgPSBtc2cuY2xvc2UuY2hhbm5lbFxuXG4gICAgICBmb3IgKGNvbnN0IHJlYWRlciBvZiB0aGlzLnJlYWRlcnNbdXJpXSB8fCBbXSkge1xuICAgICAgICByZWFkZXIuY2xvc2UoKVxuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IHdyaXRlciBvZiB0aGlzLndyaXRlcnNbdXJpXSB8fCBbXSkge1xuICAgICAgICBhd2FpdCB3cml0ZXIuY2xvc2UodHJ1ZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobXNnLnBpcGVsaW5lKSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBoZXJlXG4gICAgICAgIGNvbnN0IHF1YWRzID0gbmV3IFBhcnNlcigpLnBhcnNlKG1zZy5waXBlbGluZSlcbiAgICAgICAgdGhpcy5zaGFwZXMgPSBleHRyYWN0U2hhcGVzKFxuICAgICAgICAgIHF1YWRzLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFtSREZDLlJlYWRlcl06ICh4OiBDb250KSA9PiB0aGlzLmNyZWF0ZVJlYWRlcih4LmlkKSxcbiAgICAgICAgICAgIFtSREZDLldyaXRlcl06ICh4OiBDb250KSA9PiB0aGlzLmNyZWF0ZVdyaXRlcih4LmlkKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFtSREZDLlJlYWRlcl06IGVtcHR5PENvbnQ+KCksXG4gICAgICAgICAgICBbUkRGQy5Xcml0ZXJdOiBlbXB0eTxDb250PigpLFxuICAgICAgICAgIH0sXG4gICAgICAgIClcbiAgICAgICAgdGhpcy5xdWFkcyA9IHF1YWRzXG4gICAgICB9IGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcignUGlwZWxpbmUgZmFpbGVkOiAnICsgSlNPTi5zdHJpbmdpZnkoZXgpKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { DataChunk, RunnerClient } from "@rdfc/proto";
|
|
2
|
+
import { ClientReadableStream } from "@grpc/grpc-js";
|
|
3
|
+
import winston from "winston";
|
|
4
|
+
import { WriterInstance } from "./writer.js";
|
|
5
|
+
import { ReaderInstance } from "./reader.js";
|
|
6
|
+
import { Processor } from "./processor.js";
|
|
7
|
+
import { FullProc } from "./runner.js";
|
|
8
|
+
import { Quad } from "@rdfjs/types";
|
|
9
|
+
export declare function getProcessorShape(baseIRI?: string): Promise<import("rdf-lens").Shapes>;
|
|
10
|
+
export declare class TestClient extends RunnerClient {
|
|
11
|
+
next: (stream: ClientReadableStream<DataChunk>) => unknown;
|
|
12
|
+
constructor();
|
|
13
|
+
nextStream(): Promise<ClientReadableStream<DataChunk>>;
|
|
14
|
+
receiveStreamMessage(): ClientReadableStream<DataChunk>;
|
|
15
|
+
}
|
|
16
|
+
export declare function one<T>(iter: AsyncIterable<T>): Promise<T | undefined>;
|
|
17
|
+
export declare const client: TestClient;
|
|
18
|
+
export declare const uri = "someUri";
|
|
19
|
+
export declare const logger: winston.Logger;
|
|
20
|
+
export declare function createWriter(iri?: string): [WriterInstance, ReaderInstance];
|
|
21
|
+
export declare function createReader(iri?: string): ReaderInstance;
|
|
22
|
+
export declare function importFile(file: string): Promise<Quad[]>;
|
|
23
|
+
export declare function getProc<T extends Processor<unknown>>(config: string, ty: string, configLocation: string, uri?: string): Promise<FullProc<T>>;
|
|
24
|
+
export declare function checkProcDefinition(file: string, n: string): Promise<void>;
|