@rdfc/js-runner 2.0.0-alpha.5 → 2.0.0-alpha.7
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/examples/echo/.idea/echo.iml +9 -0
- package/examples/echo/.idea/misc.xml +6 -0
- package/examples/echo/.idea/modules.xml +8 -0
- package/examples/echo/.idea/vcs.xml +7 -0
- package/examples/echo/.swls/config.json +1 -0
- package/examples/echo/index.ttl +3 -0
- package/examples/echo/minimal.ttl +90 -0
- package/examples/echo/pipeline.ttl +22 -4
- package/examples/echo/processors.ttl +5 -7
- package/examples/echo/shacl.ttl +9 -0
- package/examples/echo/shape.ttl +1339 -0
- package/examples/echo/src/processors.ts +31 -30
- package/examples/echo/test.ttl +9 -12
- package/file:/home/silvius/Projects/mumo-pipeline/ldes/http_3A_2F_2Fdata.mumo.be_2Fstreams_2Fnodes_2Fdefault/root/index.trig +3 -0
- package/index.ttl +28 -20
- package/ldes/http_3A_2F_2Fdata.mumo.be_2Fstreams_2Fnodes_2Fdefault/root/index.trig +3 -0
- package/lib/jsonld.js +2 -2
- package/lib/reader.d.ts +2 -1
- package/lib/reader.js +1 -3
- package/lib/runner.d.ts +2 -2
- package/lib/runner.js +3 -5
- package/lib/testUtils.js +4 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/util_processors.js +1 -1
- package/lib/writer.d.ts +2 -1
- package/lib/writer.js +1 -1
- package/minimal.ttl +99 -0
- package/package.json +1 -1
- package/src/jsonld.ts +1 -1
- package/src/reader.ts +130 -131
- package/src/runner.ts +144 -143
- package/src/testUtils.ts +3 -0
- package/src/util_processors.ts +1 -1
- package/src/writer.ts +66 -65
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
import { Processor, Reader, Writer } from
|
|
1
|
+
import { FullProc, Processor, Reader, Writer } from "@rdfc/js-runner";
|
|
2
2
|
|
|
3
3
|
export class TestProcessor extends Processor<unknown> {
|
|
4
4
|
async init(this: this): Promise<void> {
|
|
5
|
-
this.logger.info(JSON.stringify(this.args, undefined, 2))
|
|
5
|
+
this.logger.info(JSON.stringify(this.args, undefined, 2));
|
|
6
6
|
}
|
|
7
|
-
async transform(this: this): Promise<void> {}
|
|
8
|
-
async produce(this: this): Promise<void> {}
|
|
7
|
+
async transform(this: this): Promise<void> { }
|
|
8
|
+
async produce(this: this): Promise<void> { }
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
type EchoArgs = {
|
|
12
|
-
reader: Reader
|
|
13
|
-
writer: Writer
|
|
14
|
-
}
|
|
12
|
+
reader: Reader;
|
|
13
|
+
writer: Writer;
|
|
14
|
+
};
|
|
15
15
|
|
|
16
16
|
export class EchoProcessor extends Processor<EchoArgs> {
|
|
17
17
|
async init(this: this & EchoArgs): Promise<void> {
|
|
18
|
-
this.logger.info(
|
|
18
|
+
this.logger.info("Init echo processor");
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
async transform(this: EchoArgs & this): Promise<void> {
|
|
22
22
|
for await (const msg of this.reader.streams()) {
|
|
23
|
-
this.logger.info(
|
|
24
|
-
await this.writer.stream(msg)
|
|
23
|
+
this.logger.info("Echoing message");
|
|
24
|
+
await this.writer.stream(msg);
|
|
25
25
|
}
|
|
26
|
-
await this.writer.close()
|
|
27
|
-
this.logger.info(
|
|
26
|
+
await this.writer.close();
|
|
27
|
+
this.logger.info("closed");
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
async produce(this: this & EchoArgs): Promise<void> {
|
|
@@ -33,43 +33,44 @@ export class EchoProcessor extends Processor<EchoArgs> {
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
type LogArgs = {
|
|
36
|
-
reader: Reader
|
|
37
|
-
writer: Writer
|
|
38
|
-
}
|
|
36
|
+
reader: Reader;
|
|
37
|
+
writer: Writer;
|
|
38
|
+
};
|
|
39
39
|
|
|
40
40
|
export class LogProcessor extends Processor<LogArgs> {
|
|
41
|
+
async produce(this: LogArgs & LogProcessor): Promise<void> {
|
|
42
|
+
}
|
|
41
43
|
async init(): Promise<void> {
|
|
42
|
-
this.logger.info(
|
|
44
|
+
this.logger.info("Init log processor");
|
|
43
45
|
}
|
|
44
46
|
|
|
45
|
-
async transform(this:
|
|
47
|
+
async transform(this: FullProc<this>): Promise<void> {
|
|
46
48
|
for await (const msg of this.args.reader.strings()) {
|
|
47
|
-
this.logger.info(
|
|
49
|
+
this.logger.info("Got msg" + msg);
|
|
48
50
|
}
|
|
49
51
|
}
|
|
50
52
|
|
|
51
|
-
async produce() {}
|
|
52
53
|
}
|
|
53
54
|
|
|
54
55
|
type SendArgs = {
|
|
55
|
-
msgs: string[]
|
|
56
|
-
writer: Writer
|
|
57
|
-
}
|
|
56
|
+
msgs: string[];
|
|
57
|
+
writer: Writer;
|
|
58
|
+
};
|
|
58
59
|
|
|
59
60
|
export class SendProcessor extends Processor<SendArgs> {
|
|
60
61
|
async init(): Promise<void> {
|
|
61
|
-
this.logger.info(
|
|
62
|
+
this.logger.info("Init send processor");
|
|
62
63
|
}
|
|
63
64
|
|
|
64
|
-
async transform(): Promise<void> {}
|
|
65
|
+
async transform(): Promise<void> { }
|
|
65
66
|
async produce(): Promise<void> {
|
|
66
|
-
for (const msg of this.get(
|
|
67
|
-
await this.get(
|
|
67
|
+
for (const msg of this.get("msgs")) {
|
|
68
|
+
await this.get("writer").string(msg);
|
|
68
69
|
|
|
69
|
-
this.logger.info(
|
|
70
|
-
await new Promise((res) => setTimeout(res, 1000))
|
|
70
|
+
this.logger.info("Sending " + msg);
|
|
71
|
+
await new Promise((res) => setTimeout(res, 1000));
|
|
71
72
|
}
|
|
72
|
-
await this.get(
|
|
73
|
-
this.logger.info(
|
|
73
|
+
await this.get("writer").close();
|
|
74
|
+
this.logger.info("Closed");
|
|
74
75
|
}
|
|
75
76
|
}
|
package/examples/echo/test.ttl
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
@prefix
|
|
2
|
-
@prefix
|
|
1
|
+
@prefix rdfc: <https://w3id.org/rdf-connect#>.
|
|
2
|
+
@prefix foaf: <http://xmlns.com/foaf/0.1/>.
|
|
3
3
|
|
|
4
|
-
[]
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
<
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
sh:node [ sh:property [
|
|
11
|
-
sh:path sh:prop;
|
|
12
|
-
] ];
|
|
13
|
-
].
|
|
4
|
+
[ ] foaf:knows [
|
|
5
|
+
foaf:name "Arthur";
|
|
6
|
+
foaf:img <img>;
|
|
7
|
+
foaf:knows <me>;
|
|
8
|
+
];
|
|
9
|
+
foaf:name "Arthur".
|
|
14
10
|
|
|
11
|
+
<b> <c> <D>
|
package/index.ttl
CHANGED
|
@@ -6,42 +6,50 @@
|
|
|
6
6
|
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
|
|
7
7
|
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
|
|
8
8
|
@prefix sh: <http://www.w3.org/ns/shacl#>.
|
|
9
|
-
@prefix rdfc: <https://w3id.org/rdf-connect
|
|
9
|
+
@prefix rdfc: <https://w3id.org/rdf-connect#>.
|
|
10
10
|
|
|
11
|
+
# rdfc:LogProcessor a rdfc:JsProcessor;
|
|
12
|
+
# rdfs:label "Simple Log Processor";
|
|
13
|
+
# rdfs:comment "Logs incoming messages";
|
|
14
|
+
# rdfc:entrypoint <./>;
|
|
15
|
+
# rdfc:file <./lib/util_processors.js>;
|
|
16
|
+
# rdfc:class "LogProcessor".
|
|
17
|
+
# [ ] a sh:NodeShape; sh:targetClass rdfc:LogProcessor;
|
|
18
|
+
# sh:property [
|
|
19
|
+
# sh:path rdfc:reader;
|
|
20
|
+
# sh:name "reader";
|
|
21
|
+
# sh:minCount 1;
|
|
22
|
+
# sh:maxCount 1;
|
|
23
|
+
# sh:class rdfc:Reader;
|
|
24
|
+
# ].
|
|
11
25
|
# rdfc:JsRunner a rdfc:CommandRunner;
|
|
12
26
|
# rdfc:command "npx js-runner";
|
|
13
27
|
# rdfc:processor_definition <JsProcessorShape>.
|
|
14
28
|
#
|
|
15
29
|
rdfc:JsRunner a rdfc:CommandRunner;
|
|
16
30
|
rdfc:handles rdfc:JsProcessor;
|
|
31
|
+
rdfc:command "node node_modules/@rdfc/js-runner/bin/runner.js";
|
|
32
|
+
rdfc:processor_definition <JsProcessorShape>.
|
|
33
|
+
|
|
34
|
+
rdfc:NodeRunner a rdfc:Runner;
|
|
17
35
|
rdfc:handlesSubjectsOf rdfc:jsImplementationOf;
|
|
18
36
|
rdfc:command "npx js-runner";
|
|
19
37
|
rdfc:processor_definition <JsProcessorShape>.
|
|
20
38
|
|
|
39
|
+
# rdfc:NodeRunner a rdfc:JsRunner;
|
|
40
|
+
# rdfc:command "npx js-runner";
|
|
41
|
+
# rdfc:processor_definition <JsProcessorShape>.
|
|
42
|
+
rdfc:BunRunner a rdfc:CommandRunner;
|
|
43
|
+
rdfc:handlesSubjectsOf rdfc:jsImplementationOf;
|
|
44
|
+
rdfc:command "bunx js-runner";
|
|
45
|
+
rdfc:processor_definition <JsProcessorShape>.
|
|
46
|
+
|
|
21
47
|
sds:Activity rdfs:subClassOf prov:Activity.
|
|
22
48
|
rdfc:Processor rdfs:subClassOf sds:Activity.
|
|
23
49
|
sds:implementationOf rdfs:subPropertyOf rdfs:subClassOf.
|
|
24
50
|
rdfc:jsImplementationOf rdfs:subPropertyOf sds:implementationOf.
|
|
25
|
-
|
|
26
|
-
# rdfc:LogProcessor sds:jsImplementationOf rdfc:Processor;
|
|
27
|
-
# rdfs:label "Simple Log Processor";
|
|
28
|
-
# rdfs:comment "Logs incoming messages";
|
|
29
|
-
# rdfc:entrypoint <./>;
|
|
30
|
-
# rdfc:file <./lib/util_processors.js>;
|
|
31
|
-
# rdfc:class "LogProcessor".
|
|
32
|
-
#
|
|
33
|
-
# [ ] a sh:NodeShape;
|
|
34
|
-
# sh:targetClass rdfc:LogProcessor;
|
|
35
|
-
# sh:property [
|
|
36
|
-
# sh:path rdfc:reader;
|
|
37
|
-
# sh:name "reader";
|
|
38
|
-
# sh:minCount 1;
|
|
39
|
-
# sh:maxCount 1;
|
|
40
|
-
# sh:class rdfc:Reader;
|
|
41
|
-
# ].
|
|
42
|
-
|
|
43
51
|
[ ] a sh:NodeShape;
|
|
44
|
-
sh:
|
|
52
|
+
sh:targetSubjectsOf rdfc:jsImplementationOf;
|
|
45
53
|
sh:property [
|
|
46
54
|
sh:path rdfc:entrypoint;
|
|
47
55
|
sh:name "location";
|
package/lib/jsonld.js
CHANGED
|
@@ -5,7 +5,7 @@ import { JsonLdParser } from 'jsonld-streaming-parser';
|
|
|
5
5
|
import { pred, ShaclPath } from 'rdf-lens';
|
|
6
6
|
import { NamedNode } from 'n3';
|
|
7
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
|
|
8
|
+
const RDFC = createNamespace('https://w3id.org/rdf-connect#', (x) => x, 'Reader', 'Writer');
|
|
9
9
|
function as_string_array(obj) {
|
|
10
10
|
const out = Array.isArray(obj) ? obj : [obj];
|
|
11
11
|
return out.filter((x) => typeof x === 'string');
|
|
@@ -131,4 +131,4 @@ export async function parse_jsonld(args, logger, items) {
|
|
|
131
131
|
expandArgs(out, cont, logger);
|
|
132
132
|
return out;
|
|
133
133
|
}
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbmxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2pzb25sZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZUFBZSxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUV6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDdEQsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLElBQUksQ0FBQTtBQVM5QixNQUFNLElBQUksR0FBRyx5QkFBeUIsQ0FDcEMscUNBQXFDLEVBQ3JDLEtBQUssRUFDTCxNQUFNLEVBQ04sVUFBVSxFQUNWLFNBQVMsRUFDVCxjQUFjLEVBQ2QsYUFBYSxFQUNiLFFBQVEsRUFDUixZQUFZLEVBQ1osVUFBVSxDQUNYLENBQUE7QUFHRCxNQUFNLElBQUksR0FBRyxlQUFlLENBQzFCLHdDQUF3QyxFQUN4QyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUNSLFFBQVEsRUFDUixRQUFRLENBQ1QsQ0FBQTtBQUVELFNBQVMsZUFBZSxDQUFDLEdBQVk7SUFDbkMsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzVDLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUE7QUFDakQsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEtBQWM7SUFDaEMsTUFBTSxLQUFLLEdBQVcsRUFBRSxDQUFB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RUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBRTdFLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUUzQixVQUFVLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUM3QixPQUFPLEdBQUcsQ0FBQTtBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcmNoZXN0cmF0b3JNZXNzYWdlLCBSdW5uZXJDbGllbnQgfSBmcm9tICdAcmRmYy9wcm90bydcbmltcG9ydCB7IGNyZWF0ZU5hbWVzcGFjZSwgY3JlYXRlVXJpQW5kVGVybU5hbWVzcGFjZSB9IGZyb20gJ0B0cmVlY2cvdHlwZXMnXG5pbXBvcnQgeyBSZWFkZXJJbnN0YW5jZSB9IGZyb20gJy4vcmVhZGVyJ1xuaW1wb3J0IHsgV3JpdGVySW5zdGFuY2UgfSBmcm9tICcuL3dyaXRlcidcbmltcG9ydCB7IExvZ2dlciB9IGZyb20gJ3dpbnN0b24nXG5pbXBvcnQgeyBKc29uTGRQYXJzZXIgfSBmcm9tICdqc29ubGQtc3RyZWFtaW5nLXBhcnNlcidcbmltcG9ydCB7IHByZWQsIFNoYWNsUGF0aCB9IGZyb20gJ3JkZi1sZW5zJ1xuaW1wb3J0IHsgUXVhZCwgVGVybSB9IGZyb20gJ0ByZGZqcy90eXBlcydcbmltcG9ydCB7IE5hbWVkTm9kZSB9IGZyb20gJ24zJ1xuXG5leHBvcnQgdHlwZSBSdW5uZXJJdGVtcyA9IHtcbiAgcmVhZGVyczogeyBbdXJpOiBzdHJpbmddOiBSZWFkZXJJbnN0YW5jZVtdIH1cbiAgd3JpdGVyczogeyBbdXJpOiBzdHJpbmddOiBXcml0ZXJJbnN0YW5jZVtdIH1cbiAgY2xpZW50OiBSdW5uZXJDbGllbnRcbiAgd3JpdGU6IFdyaXRhYmxlXG59XG5cbmNvbnN0IFJERkwgPSBjcmVhdGVVcmlBbmRUZXJtTmFtZXNwYWNlKFxuICAnaHR0cHM6Ly93M2lkLm9yZy9yZGYtbGVucy9vbnRvbG9neSMnLFxuICAnQ0JEJyxcbiAgJ1BhdGgnLFxuICAnUGF0aExlbnMnLFxuICAnQ29udGV4dCcsXG4gICdUeXBlZEV4dHJhY3QnLFxuICAnRW52VmFyaWFibGUnLFxuICAnZW52S2V5JyxcbiAgJ2VudkRlZmF1bHQnLFxuICAnZGF0YXR5cGUnLFxuKVxuXG50eXBlIFdyaXRhYmxlID0gKG1zZzogT3JjaGVzdHJhdG9yTWVzc2FnZSkgPT4gUHJvbWlzZTx1bmtub3duPlxuY29uc3QgUkRGQyA9IGNyZWF0ZU5hbWVzcGFjZShcbiAgJ2h0dHBzOi8vdzNpZC5vcmcvcmRmLWNvbm5lY3Qvb250b2xvZ3kjJyxcbiAgKHgpID0+IHgsXG4gICdSZWFkZXInLFxuICAnV3JpdGVyJyxcbilcblxuZnVuY3Rpb24gYXNfc3RyaW5nX2FycmF5KG9iajogdW5rbm93bik6IHN0cmluZ1tdIHtcbiAgY29uc3Qgb3V0ID0gQXJyYXkuaXNBcnJheShvYmopID8gb2JqIDogW29ial1cbiAgcmV0dXJuIG91dC5maWx0ZXIoKHgpID0+IHR5cGVvZiB4ID09PSAnc3RyaW5nJylcbn1cblxuZnVuY3Rpb24gY2JkVG9RdWFkcyh2YWx1ZTogdW5rbm93bikge1xuICBjb25zdCBxdWFkczogUXVhZFtdID0gW11cbiAgY29uc3QgcGFyc2VyID0gbmV3IEpzb25MZFBhcnNlcigpXG4gIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZTx7IHZhbHVlOiBRdWFkW10gfT4oKHJlcywgcmVqKSA9PlxuICAgIHBhcnNlclxuICAgICAgLm9uKCdlbmQnLCAoKSA9PiByZXMoeyB2YWx1ZTogcXVhZHMgfSkpXG4gICAgICAub24oJ2Vycm9yJywgKGUpID0+IHJlaihlKSlcbiAgICAgIC5vbignZGF0YScsIChxKSA9PiB7XG4gICAgICAgIHF1YWRzLnB1c2gocSlcbiAgICAgIH0pLFxuICApXG5cbiAgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0ICYmICdAdHlwZScgaW4gdmFsdWUpIHtcbiAgICBkZWxldGUgdmFsdWVbJ0B0eXBlJ11cbiAgfVxuICBwYXJzZXIud3JpdGUoSlNPTi5zdHJpbmdpZnkodmFsdWUpKVxuICBwYXJzZXIuZW5kKClcbiAgcmV0dXJuIHByb21pc2Vcbn1cblxuYXN5bmMgZnVuY3Rpb24gY2JkVG9QYXRoKHZhbHVlOiB1bmtub3duKTogUHJvbWlzZTx7IHZhbHVlOiB1bmtub3duIH0+IHtcbiAgY29uc3QgcXMgPSAoXG4gICAgYXdhaXQgY2JkVG9RdWFkcyh7XG4gICAgICAnQGlkJzogJ2h0dHA6Ly9leGFtcGxlLmNvbS9ucyNtZTEyMzQnLFxuICAgICAgJ2h0dHA6Ly9leGFtcGxlLmNvbS9ucyNpbm5lclByZWQnOiB2YWx1ZSxcbiAgICB9KVxuICApLnZhbHVlXG5cbiAgY29uc3QgcGF0aCA9IHByZWQobmV3IE5hbWVkTm9kZSgnaHR0cDovL2V4YW1wbGUuY29tL25zI2lubmVyUHJlZCcpKVxuICAgIC5vbmUoKVxuICAgIC50aGVuKFNoYWNsUGF0aClcbiAgICAuZXhlY3V0ZSh7XG4gICAgICBxdWFkczogcXMsXG4gICAgICBpZDogbmV3IE5hbWVkTm9kZSgnaHR0cDovL2V4YW1wbGUuY29tL25zI21lMTIzNCcpLFxuICAgIH0pXG4gIHJldHVybiB7IHZhbHVlOiBwYXRoIH1cbn1cblxudHlwZSBDb250ID0geyBxdWFkczogUXVhZFtdOyBpZDogVGVybSB9XG5hc3luYyBmdW5jdGlvbiBqc29ubGRUb1F1YWRzKHZhbHVlOiB1bmtub3duKTogUHJvbWlzZTxDb250PiB7XG4gIGNvbnN0IHFzID0gKFxuICAgIGF3YWl0IGNiZFRvUXVhZHMoe1xuICAgICAgJ0BpZCc6ICdodHRwOi8vZXhhbXBsZS5jb20vbnMjbWUxMjM0JyxcbiAgICAgICdodHRwOi8vZXhhbXBsZS5jb20vbnMjaW5uZXJQcmVkJzogdmFsdWUsXG4gICAgfSlcbiAgKS52YWx1ZVxuXG4gIGNvbnN0IGlkeCA9IHFzLmZpbmRJbmRleChcbiAgICAoeCkgPT5cbiAgICAgIHgucHJlZGljYXRlLmVxdWFscyhuZXcgTmFtZWROb2RlKCdodHRwOi8vZXhhbXBsZS5jb20vbnMjaW5uZXJQcmVkJykpICYmXG4gICAgICB4LnN1YmplY3QuZXF1YWxzKG5ldyBOYW1lZE5vZGUoJ2h0dHA6Ly9leGFtcGxlLmNvbS9ucyNtZTEyMzQnKSksXG4gIClcbiAgaWYgKGlkeCA8IDApIHRocm93ICdUaGlzIGNhbm5vdCBoYXBwZW4nXG4gIGNvbnN0IGlkID0gcXNbaWR4XS5vYmplY3RcblxuICBxcy5zcGxpY2UoaWR4LCAxKVxuXG4gIHJldHVybiB7XG4gICAgcXVhZHM6IHFzLFxuICAgIGlkLFxuICB9XG59XG5cbi8qIGVzbGludC1kaXNhYmxlICBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5mdW5jdGlvbiByZXZpdmUoXG4gIF9rZXk6IHN0cmluZyxcbiAgdmFsdWU6IGFueSxcbiAgbG9nZ2VyOiBMb2dnZXIsXG4gIHByb21pc2VzOiBQcm9taXNlPHVua25vd24+W10sXG4gIHJ1bm5lckl0ZW1zOiBSdW5uZXJJdGVtcyxcbik6IGFueSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgY29uc3QgdHlwZXMgPSBhc19zdHJpbmdfYXJyYXkodmFsdWVbJ0B0eXBlJ10gfHwgW10pXG4gICAgY29uc3QgaWRzID0gYXNfc3RyaW5nX2FycmF5KHZhbHVlWydAaWQnXSB8fCBbXSlbMF0gfHwgJydcblxuICAgIGlmICh0eXBlcy5pbmNsdWRlcyhSREZDLlJlYWRlcikpIHtcbiAgICAgIGlmIChydW5uZXJJdGVtcy5yZWFkZXJzW2lkc10gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBydW5uZXJJdGVtcy5yZWFkZXJzW2lkc10gPSBbXVxuICAgICAgfVxuICAgICAgY29uc3QgcmVhZGVyID0gbmV3IFJlYWRlckluc3RhbmNlKGlkcywgcnVubmVySXRlbXMuY2xpZW50LCBsb2dnZXIpXG4gICAgICBydW5uZXJJdGVtcy5yZWFkZXJzW2lkc10ucHVzaChyZWFkZXIpXG4gICAgICByZXR1cm4gcmVhZGVyXG4gICAgfVxuXG4gICAgaWYgKHR5cGVzLmluY2x1ZGVzKFJERkMuV3JpdGVyKSkge1xuICAgICAgaWYgKHJ1bm5lckl0ZW1zLndyaXRlcnNbaWRzXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJ1bm5lckl0ZW1zLndyaXRlcnNbaWRzXSA9IFtdXG4gICAgICB9XG4gICAgICBjb25zdCB3cml0ZXIgPSBuZXcgV3JpdGVySW5zdGFuY2UoXG4gICAgICAgIGlkcyxcbiAgICAgICAgcnVubmVySXRlbXMuY2xpZW50LFxuICAgICAgICBydW5uZXJJdGVtcy53cml0ZSxcbiAgICAgICAgbG9nZ2VyLFxuICAgICAgKVxuICAgICAgcnVubmVySXRlbXMud3JpdGVyc1tpZHNdLnB1c2god3JpdGVyKVxuICAgICAgcmV0dXJuIHdyaXRlclxuICAgIH1cblxuICAgIGlmICh0eXBlcy5pbmNsdWRlcyhSREZMLkNCRCkpIHtcbiAgICAgIHJldHVybiBjYmRUb1F1YWRzKHZhbHVlKVxuICAgIH1cblxuICAgIGlmICh0eXBlcy5pbmNsdWRlcyhSREZMLlBhdGgpKSB7XG4gICAgICByZXR1cm4gY2JkVG9QYXRoKHZhbHVlKVxuICAgIH1cbiAgfVxuXG4gIE9iamVjdC5lbnRyaWVzKHZhbHVlKS5mb3JFYWNoKChbaywgdl0pID0+IHtcbiAgICBpZiAodiBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgIGxvZ2dlci5pbmZvKCdGb3VuZCBwcm9taXNlJylcbiAgICAgIHByb21pc2VzLnB1c2goXG4gICAgICAgIHYudGhlbigoeCkgPT4ge1xuICAgICAgICAgIGxvZ2dlci5pbmZvKCdTZXR0aW5nIGZpZWxkICcgKyBrKVxuICAgICAgICAgIHZhbHVlW2tdID0geC52YWx1ZVxuICAgICAgICB9KSxcbiAgICAgIClcbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIHZhbHVlXG59XG5cbnR5cGUgQXJnID0ge1xuICBbaWQ6IHN0cmluZ106IGFueVxufVxuZnVuY3Rpb24gZXhwYW5kQXJncyhhcmdzOiBBcmcsIGNvbnQ6IENvbnQsIGxvZ2dlcjogTG9nZ2VyKSB7XG4gIGNvbnN0IGNvbnRleHQgPSBhcmdzWydAY29udGV4dCddXG4gIGlmICghY29udGV4dCkgcmV0dXJuXG5cbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoYXJncykpIHtcbiAgICBpZiAoa2V5ID09ICdAY29udGV4dCcpIGNvbnRpbnVlXG4gICAgY29uc3QgY3R4T2JqID0gY29udGV4dFtrZXldXG4gICAgaWYgKCFjdHhPYmopIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhcIkRpZG4ndCBmaW5kIGN0eCB0aGluZ3MgZm9yIFwiICsga2V5KVxuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICAnRGlkIGZpbmQgY3R4IHRoaW5ncyBmb3IgJyArXG4gICAgICAgIGtleSArXG4gICAgICAgICcgJyArXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KGN0eE9iaikgK1xuICAgICAgICAnOiAnICtcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoYXJnc1trZXldKS5tYXAoKFtrLCB2XSkgPT4ge1xuICAgICAgICAgICAgbGV0IHggPSAnb2JqZWN0J1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgeCA9IEpTT04uc3RyaW5naWZ5KHYpXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxuXG4gICAgICAgICAgICByZXR1cm4gayArICc6ICcgKyB4XG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgKVxuXG4gICAgZXhwYW5kQXJncyhhcmdzW2tleV0sIGNvbnQsIGxvZ2dlcilcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcGFyc2VfanNvbmxkKFxuICBhcmdzOiBzdHJpbmcsXG4gIGxvZ2dlcjogTG9nZ2VyLFxuICBpdGVtczogUnVubmVySXRlbXMsXG4pOiBQcm9taXNlPHVua25vd24+IHtcbiAgY29uc3QgcHJvbWlzZXM6IFByb21pc2U8dW5rbm93bj5bXSA9IFtdXG4gIGxvZ2dlci5pbmZvKGFyZ3MpXG4gIGNvbnN0IGNvbnQgPSBhd2FpdCBqc29ubGRUb1F1YWRzKEpTT04ucGFyc2UoYXJncykpXG4gIGNvbnN0IG91dCA9IEpTT04ucGFyc2UoYXJncywgKGssIHYpID0+IHJldml2ZShrLCB2LCBsb2dnZXIsIHByb21pc2VzLCBpdGVtcykpXG5cbiAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpXG5cbiAgZXhwYW5kQXJncyhvdXQsIGNvbnQsIGxvZ2dlcilcbiAgcmV0dXJuIG91dFxufVxuIl19
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbmxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2pzb25sZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZUFBZSxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUV6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDdEQsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLElBQUksQ0FBQTtBQVM5QixNQUFNLElBQUksR0FBRyx5QkFBeUIsQ0FDcEMscUNBQXFDLEVBQ3JDLEtBQUssRUFDTCxNQUFNLEVBQ04sVUFBVSxFQUNWLFNBQVMsRUFDVCxjQUFjLEVBQ2QsYUFBYSxFQUNiLFFBQVEsRUFDUixZQUFZLEVBQ1osVUFBVSxDQUNYLENBQUE7QUFHRCxNQUFNLElBQUksR0FBRyxlQUFlLENBQzFCLCtCQUErQixFQUMvQixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUNSLFFBQVEsRUFDUixRQUFRLENBQ1QsQ0FBQTtBQUVELFNBQVMsZUFBZSxDQUFDLEdBQVk7SUFDbkMsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzVDLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUE7QUFDakQsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEtBQWM7SUFDaEMsTUFBTSxLQUFLLEdBQVcsRUFBRSxDQUFB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RUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBRTdFLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUUzQixVQUFVLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUM3QixPQUFPLEdBQUcsQ0FBQTtBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcmNoZXN0cmF0b3JNZXNzYWdlLCBSdW5uZXJDbGllbnQgfSBmcm9tICdAcmRmYy9wcm90bydcbmltcG9ydCB7IGNyZWF0ZU5hbWVzcGFjZSwgY3JlYXRlVXJpQW5kVGVybU5hbWVzcGFjZSB9IGZyb20gJ0B0cmVlY2cvdHlwZXMnXG5pbXBvcnQgeyBSZWFkZXJJbnN0YW5jZSB9IGZyb20gJy4vcmVhZGVyJ1xuaW1wb3J0IHsgV3JpdGVySW5zdGFuY2UgfSBmcm9tICcuL3dyaXRlcidcbmltcG9ydCB7IExvZ2dlciB9IGZyb20gJ3dpbnN0b24nXG5pbXBvcnQgeyBKc29uTGRQYXJzZXIgfSBmcm9tICdqc29ubGQtc3RyZWFtaW5nLXBhcnNlcidcbmltcG9ydCB7IHByZWQsIFNoYWNsUGF0aCB9IGZyb20gJ3JkZi1sZW5zJ1xuaW1wb3J0IHsgUXVhZCwgVGVybSB9IGZyb20gJ0ByZGZqcy90eXBlcydcbmltcG9ydCB7IE5hbWVkTm9kZSB9IGZyb20gJ24zJ1xuXG5leHBvcnQgdHlwZSBSdW5uZXJJdGVtcyA9IHtcbiAgcmVhZGVyczogeyBbdXJpOiBzdHJpbmddOiBSZWFkZXJJbnN0YW5jZVtdIH1cbiAgd3JpdGVyczogeyBbdXJpOiBzdHJpbmddOiBXcml0ZXJJbnN0YW5jZVtdIH1cbiAgY2xpZW50OiBSdW5uZXJDbGllbnRcbiAgd3JpdGU6IFdyaXRhYmxlXG59XG5cbmNvbnN0IFJERkwgPSBjcmVhdGVVcmlBbmRUZXJtTmFtZXNwYWNlKFxuICAnaHR0cHM6Ly93M2lkLm9yZy9yZGYtbGVucy9vbnRvbG9neSMnLFxuICAnQ0JEJyxcbiAgJ1BhdGgnLFxuICAnUGF0aExlbnMnLFxuICAnQ29udGV4dCcsXG4gICdUeXBlZEV4dHJhY3QnLFxuICAnRW52VmFyaWFibGUnLFxuICAnZW52S2V5JyxcbiAgJ2VudkRlZmF1bHQnLFxuICAnZGF0YXR5cGUnLFxuKVxuXG50eXBlIFdyaXRhYmxlID0gKG1zZzogT3JjaGVzdHJhdG9yTWVzc2FnZSkgPT4gUHJvbWlzZTx1bmtub3duPlxuY29uc3QgUkRGQyA9IGNyZWF0ZU5hbWVzcGFjZShcbiAgJ2h0dHBzOi8vdzNpZC5vcmcvcmRmLWNvbm5lY3QjJyxcbiAgKHgpID0+IHgsXG4gICdSZWFkZXInLFxuICAnV3JpdGVyJyxcbilcblxuZnVuY3Rpb24gYXNfc3RyaW5nX2FycmF5KG9iajogdW5rbm93bik6IHN0cmluZ1tdIHtcbiAgY29uc3Qgb3V0ID0gQXJyYXkuaXNBcnJheShvYmopID8gb2JqIDogW29ial1cbiAgcmV0dXJuIG91dC5maWx0ZXIoKHgpID0+IHR5cGVvZiB4ID09PSAnc3RyaW5nJylcbn1cblxuZnVuY3Rpb24gY2JkVG9RdWFkcyh2YWx1ZTogdW5rbm93bikge1xuICBjb25zdCBxdWFkczogUXVhZFtdID0gW11cbiAgY29uc3QgcGFyc2VyID0gbmV3IEpzb25MZFBhcnNlcigpXG4gIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZTx7IHZhbHVlOiBRdWFkW10gfT4oKHJlcywgcmVqKSA9PlxuICAgIHBhcnNlclxuICAgICAgLm9uKCdlbmQnLCAoKSA9PiByZXMoeyB2YWx1ZTogcXVhZHMgfSkpXG4gICAgICAub24oJ2Vycm9yJywgKGUpID0+IHJlaihlKSlcbiAgICAgIC5vbignZGF0YScsIChxKSA9PiB7XG4gICAgICAgIHF1YWRzLnB1c2gocSlcbiAgICAgIH0pLFxuICApXG5cbiAgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0ICYmICdAdHlwZScgaW4gdmFsdWUpIHtcbiAgICBkZWxldGUgdmFsdWVbJ0B0eXBlJ11cbiAgfVxuICBwYXJzZXIud3JpdGUoSlNPTi5zdHJpbmdpZnkodmFsdWUpKVxuICBwYXJzZXIuZW5kKClcbiAgcmV0dXJuIHByb21pc2Vcbn1cblxuYXN5bmMgZnVuY3Rpb24gY2JkVG9QYXRoKHZhbHVlOiB1bmtub3duKTogUHJvbWlzZTx7IHZhbHVlOiB1bmtub3duIH0+IHtcbiAgY29uc3QgcXMgPSAoXG4gICAgYXdhaXQgY2JkVG9RdWFkcyh7XG4gICAgICAnQGlkJzogJ2h0dHA6Ly9leGFtcGxlLmNvbS9ucyNtZTEyMzQnLFxuICAgICAgJ2h0dHA6Ly9leGFtcGxlLmNvbS9ucyNpbm5lclByZWQnOiB2YWx1ZSxcbiAgICB9KVxuICApLnZhbHVlXG5cbiAgY29uc3QgcGF0aCA9IHByZWQobmV3IE5hbWVkTm9kZSgnaHR0cDovL2V4YW1wbGUuY29tL25zI2lubmVyUHJlZCcpKVxuICAgIC5vbmUoKVxuICAgIC50aGVuKFNoYWNsUGF0aClcbiAgICAuZXhlY3V0ZSh7XG4gICAgICBxdWFkczogcXMsXG4gICAgICBpZDogbmV3IE5hbWVkTm9kZSgnaHR0cDovL2V4YW1wbGUuY29tL25zI21lMTIzNCcpLFxuICAgIH0pXG4gIHJldHVybiB7IHZhbHVlOiBwYXRoIH1cbn1cblxudHlwZSBDb250ID0geyBxdWFkczogUXVhZFtdOyBpZDogVGVybSB9XG5hc3luYyBmdW5jdGlvbiBqc29ubGRUb1F1YWRzKHZhbHVlOiB1bmtub3duKTogUHJvbWlzZTxDb250PiB7XG4gIGNvbnN0IHFzID0gKFxuICAgIGF3YWl0IGNiZFRvUXVhZHMoe1xuICAgICAgJ0BpZCc6ICdodHRwOi8vZXhhbXBsZS5jb20vbnMjbWUxMjM0JyxcbiAgICAgICdodHRwOi8vZXhhbXBsZS5jb20vbnMjaW5uZXJQcmVkJzogdmFsdWUsXG4gICAgfSlcbiAgKS52YWx1ZVxuXG4gIGNvbnN0IGlkeCA9IHFzLmZpbmRJbmRleChcbiAgICAoeCkgPT5cbiAgICAgIHgucHJlZGljYXRlLmVxdWFscyhuZXcgTmFtZWROb2RlKCdodHRwOi8vZXhhbXBsZS5jb20vbnMjaW5uZXJQcmVkJykpICYmXG4gICAgICB4LnN1YmplY3QuZXF1YWxzKG5ldyBOYW1lZE5vZGUoJ2h0dHA6Ly9leGFtcGxlLmNvbS9ucyNtZTEyMzQnKSksXG4gIClcbiAgaWYgKGlkeCA8IDApIHRocm93ICdUaGlzIGNhbm5vdCBoYXBwZW4nXG4gIGNvbnN0IGlkID0gcXNbaWR4XS5vYmplY3RcblxuICBxcy5zcGxpY2UoaWR4LCAxKVxuXG4gIHJldHVybiB7XG4gICAgcXVhZHM6IHFzLFxuICAgIGlkLFxuICB9XG59XG5cbi8qIGVzbGludC1kaXNhYmxlICBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5mdW5jdGlvbiByZXZpdmUoXG4gIF9rZXk6IHN0cmluZyxcbiAgdmFsdWU6IGFueSxcbiAgbG9nZ2VyOiBMb2dnZXIsXG4gIHByb21pc2VzOiBQcm9taXNlPHVua25vd24+W10sXG4gIHJ1bm5lckl0ZW1zOiBSdW5uZXJJdGVtcyxcbik6IGFueSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgY29uc3QgdHlwZXMgPSBhc19zdHJpbmdfYXJyYXkodmFsdWVbJ0B0eXBlJ10gfHwgW10pXG4gICAgY29uc3QgaWRzID0gYXNfc3RyaW5nX2FycmF5KHZhbHVlWydAaWQnXSB8fCBbXSlbMF0gfHwgJydcblxuICAgIGlmICh0eXBlcy5pbmNsdWRlcyhSREZDLlJlYWRlcikpIHtcbiAgICAgIGlmIChydW5uZXJJdGVtcy5yZWFkZXJzW2lkc10gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBydW5uZXJJdGVtcy5yZWFkZXJzW2lkc10gPSBbXVxuICAgICAgfVxuICAgICAgY29uc3QgcmVhZGVyID0gbmV3IFJlYWRlckluc3RhbmNlKGlkcywgcnVubmVySXRlbXMuY2xpZW50LCBsb2dnZXIpXG4gICAgICBydW5uZXJJdGVtcy5yZWFkZXJzW2lkc10ucHVzaChyZWFkZXIpXG4gICAgICByZXR1cm4gcmVhZGVyXG4gICAgfVxuXG4gICAgaWYgKHR5cGVzLmluY2x1ZGVzKFJERkMuV3JpdGVyKSkge1xuICAgICAgaWYgKHJ1bm5lckl0ZW1zLndyaXRlcnNbaWRzXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJ1bm5lckl0ZW1zLndyaXRlcnNbaWRzXSA9IFtdXG4gICAgICB9XG4gICAgICBjb25zdCB3cml0ZXIgPSBuZXcgV3JpdGVySW5zdGFuY2UoXG4gICAgICAgIGlkcyxcbiAgICAgICAgcnVubmVySXRlbXMuY2xpZW50LFxuICAgICAgICBydW5uZXJJdGVtcy53cml0ZSxcbiAgICAgICAgbG9nZ2VyLFxuICAgICAgKVxuICAgICAgcnVubmVySXRlbXMud3JpdGVyc1tpZHNdLnB1c2god3JpdGVyKVxuICAgICAgcmV0dXJuIHdyaXRlclxuICAgIH1cblxuICAgIGlmICh0eXBlcy5pbmNsdWRlcyhSREZMLkNCRCkpIHtcbiAgICAgIHJldHVybiBjYmRUb1F1YWRzKHZhbHVlKVxuICAgIH1cblxuICAgIGlmICh0eXBlcy5pbmNsdWRlcyhSREZMLlBhdGgpKSB7XG4gICAgICByZXR1cm4gY2JkVG9QYXRoKHZhbHVlKVxuICAgIH1cbiAgfVxuXG4gIE9iamVjdC5lbnRyaWVzKHZhbHVlKS5mb3JFYWNoKChbaywgdl0pID0+IHtcbiAgICBpZiAodiBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgIGxvZ2dlci5pbmZvKCdGb3VuZCBwcm9taXNlJylcbiAgICAgIHByb21pc2VzLnB1c2goXG4gICAgICAgIHYudGhlbigoeCkgPT4ge1xuICAgICAgICAgIGxvZ2dlci5pbmZvKCdTZXR0aW5nIGZpZWxkICcgKyBrKVxuICAgICAgICAgIHZhbHVlW2tdID0geC52YWx1ZVxuICAgICAgICB9KSxcbiAgICAgIClcbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIHZhbHVlXG59XG5cbnR5cGUgQXJnID0ge1xuICBbaWQ6IHN0cmluZ106IGFueVxufVxuZnVuY3Rpb24gZXhwYW5kQXJncyhhcmdzOiBBcmcsIGNvbnQ6IENvbnQsIGxvZ2dlcjogTG9nZ2VyKSB7XG4gIGNvbnN0IGNvbnRleHQgPSBhcmdzWydAY29udGV4dCddXG4gIGlmICghY29udGV4dCkgcmV0dXJuXG5cbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoYXJncykpIHtcbiAgICBpZiAoa2V5ID09ICdAY29udGV4dCcpIGNvbnRpbnVlXG4gICAgY29uc3QgY3R4T2JqID0gY29udGV4dFtrZXldXG4gICAgaWYgKCFjdHhPYmopIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhcIkRpZG4ndCBmaW5kIGN0eCB0aGluZ3MgZm9yIFwiICsga2V5KVxuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICAnRGlkIGZpbmQgY3R4IHRoaW5ncyBmb3IgJyArXG4gICAgICAgIGtleSArXG4gICAgICAgICcgJyArXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KGN0eE9iaikgK1xuICAgICAgICAnOiAnICtcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoYXJnc1trZXldKS5tYXAoKFtrLCB2XSkgPT4ge1xuICAgICAgICAgICAgbGV0IHggPSAnb2JqZWN0J1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgeCA9IEpTT04uc3RyaW5naWZ5KHYpXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxuXG4gICAgICAgICAgICByZXR1cm4gayArICc6ICcgKyB4XG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgKVxuXG4gICAgZXhwYW5kQXJncyhhcmdzW2tleV0sIGNvbnQsIGxvZ2dlcilcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcGFyc2VfanNvbmxkKFxuICBhcmdzOiBzdHJpbmcsXG4gIGxvZ2dlcjogTG9nZ2VyLFxuICBpdGVtczogUnVubmVySXRlbXMsXG4pOiBQcm9taXNlPHVua25vd24+IHtcbiAgY29uc3QgcHJvbWlzZXM6IFByb21pc2U8dW5rbm93bj5bXSA9IFtdXG4gIGxvZ2dlci5pbmZvKGFyZ3MpXG4gIGNvbnN0IGNvbnQgPSBhd2FpdCBqc29ubGRUb1F1YWRzKEpTT04ucGFyc2UoYXJncykpXG4gIGNvbnN0IG91dCA9IEpTT04ucGFyc2UoYXJncywgKGssIHYpID0+IHJldml2ZShrLCB2LCBsb2dnZXIsIHByb21pc2VzLCBpdGVtcykpXG5cbiAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpXG5cbiAgZXhwYW5kQXJncyhvdXQsIGNvbnQsIGxvZ2dlcilcbiAgcmV0dXJuIG91dFxufVxuIl19
|
package/lib/reader.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export type Any = {
|
|
|
8
8
|
buffer: Uint8Array;
|
|
9
9
|
};
|
|
10
10
|
export interface Reader {
|
|
11
|
+
readonly uri: string;
|
|
11
12
|
strings(): AsyncIterable<string>;
|
|
12
13
|
streams(): AsyncIterable<AsyncGenerator<Uint8Array>>;
|
|
13
14
|
buffers(): AsyncIterable<Uint8Array>;
|
|
@@ -15,7 +16,7 @@ export interface Reader {
|
|
|
15
16
|
}
|
|
16
17
|
export declare class ReaderInstance implements Reader {
|
|
17
18
|
private client;
|
|
18
|
-
|
|
19
|
+
readonly uri: string;
|
|
19
20
|
private logger;
|
|
20
21
|
private iterators;
|
|
21
22
|
constructor(uri: string, client: RunnerClient, logger: winston.Logger);
|
package/lib/reader.js
CHANGED
|
@@ -74,7 +74,6 @@ export class ReaderInstance {
|
|
|
74
74
|
return iter;
|
|
75
75
|
}
|
|
76
76
|
strings() {
|
|
77
|
-
console.log("Strings");
|
|
78
77
|
const iter = new MyIter(StringConvertor);
|
|
79
78
|
this.iterators.push(iter);
|
|
80
79
|
return iter;
|
|
@@ -91,7 +90,6 @@ export class ReaderInstance {
|
|
|
91
90
|
}
|
|
92
91
|
handleMsg(msg) {
|
|
93
92
|
this.logger.debug(`${this.uri} handling message`);
|
|
94
|
-
console.log(this.uri, "handling message", this.iterators.length, "iterators");
|
|
95
93
|
for (const iter of this.iterators) {
|
|
96
94
|
iter.push(msg.data);
|
|
97
95
|
}
|
|
@@ -109,4 +107,4 @@ export class ReaderInstance {
|
|
|
109
107
|
}
|
|
110
108
|
}
|
|
111
109
|
}
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQ0gsWUFBWSxFQUVaLFdBQVcsRUFDWCxlQUFlLEVBQ2YsZUFBZSxHQUNsQixNQUFNLGFBQWEsQ0FBQTtBQXFCcEIsTUFBTSxNQUFNO0lBQ0EsU0FBUyxDQUFjO0lBQ3ZCLEtBQUssR0FBc0IsRUFBRSxDQUFBO0lBQzdCLFdBQVcsR0FBNEMsSUFBSSxDQUFBO0lBRW5FLFlBQVksU0FBdUI7UUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUE7SUFDOUIsQ0FBQztJQUVELElBQUksQ0FBQyxNQUFrQjtRQUNuQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN4QyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFBO1FBQzNCLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDekIsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtZQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQTtRQUMzQixDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQzlCLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUF1QztRQUNwRCxNQUFNLE1BQU0sR0FBRyxDQUFDLEtBQUssU0FBUyxDQUFD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SSxDQUFDLEdBQUcsbUJBQW1CLENBQUMsQ0FBQTtRQUNqRCxLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUN2QixDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUs7UUFDRCxLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDaEIsQ0FBQztJQUNMLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxHQUFrQjtRQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLDZCQUE2QixDQUFDLENBQUE7UUFDM0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsRUFBRyxDQUFDLENBQUE7UUFDeEQsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUMzQixDQUFDO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xpZW50UmVhZGFibGVTdHJlYW0gfSBmcm9tICdAZ3JwYy9ncnBjLWpzJ1xuaW1wb3J0IHsgRGF0YUNodW5rLCBNZXNzYWdlLCBSdW5uZXJDbGllbnQsIFN0cmVhbU1lc3NhZ2UgfSBmcm9tICdAcmRmYy9wcm90bydcbmltcG9ydCB3aW5zdG9uIGZyb20gJ3dpbnN0b24nXG5pbXBvcnQge1xuICAgIEFueUNvbnZlcnRvcixcbiAgICBDb252ZXJ0b3IsXG4gICAgTm9Db252ZXJ0b3IsXG4gICAgU3RyZWFtQ29udmVydG9yLFxuICAgIFN0cmluZ0NvbnZlcnRvcixcbn0gZnJvbSAnLi9jb252ZXJ0b3InXG5cbmV4cG9ydCB0eXBlIEFueSA9XG4gICAgfCB7XG4gICAgICAgIHN0cmluZzogc3RyaW5nXG4gICAgfVxuICAgIHwge1xuICAgICAgICBzdHJlYW06IEFzeW5jR2VuZXJhdG9yPFVpbnQ4QXJyYXk+XG4gICAgfVxuICAgIHwge1xuICAgICAgICBidWZmZXI6IFVpbnQ4QXJyYXlcbiAgICB9XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVhZGVyIHtcbiAgICByZWFkb25seSB1cmk6IHN0cmluZ1xuICAgIHN0cmluZ3MoKTogQXN5bmNJdGVyYWJsZTxzdHJpbmc+XG4gICAgc3RyZWFtcygpOiBBc3luY0l0ZXJhYmxlPEFzeW5jR2VuZXJhdG9yPFVpbnQ4QXJyYXk+PlxuICAgIGJ1ZmZlcnMoKTogQXN5bmNJdGVyYWJsZTxVaW50OEFycmF5PlxuICAgIGFueXMoKTogQXN5bmNJdGVyYWJsZTxBbnk+XG59XG5cbmNsYXNzIE15SXRlcjxUPiBpbXBsZW1lbnRzIEFzeW5jSXRlcmFibGU8VD4ge1xuICAgIHByaXZhdGUgY29udmVydG9yOiBDb252ZXJ0b3I8VD5cbiAgICBwcml2YXRlIHF1ZXVlOiAoVCB8IHVuZGVmaW5lZClbXSA9IFtdXG4gICAgcHJpdmF0ZSByZXNvbHZlTmV4dDogKCh2YWx1ZTogVCB8IHVuZGVmaW5lZCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbFxuXG4gICAgY29uc3RydWN0b3IoY29udmVydG9yOiBDb252ZXJ0b3I8VD4pIHtcbiAgICAgICAgdGhpcy5jb252ZXJ0b3IgPSBjb252ZXJ0b3JcbiAgICB9XG5cbiAgICBwdXNoKGJ1ZmZlcjogVWludDhBcnJheSkge1xuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5jb252ZXJ0b3IuZnJvbShidWZmZXIpXG4gICAgICAgIGlmICh0aGlzLnJlc29sdmVOZXh0KSB7XG4gICAgICAgICAgICB0aGlzLnJlc29sdmVOZXh0KGl0ZW0pXG4gICAgICAgICAgICB0aGlzLnJlc29sdmVOZXh0ID0gbnVsbFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5xdWV1ZS5wdXNoKGl0ZW0pXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbG9zZSgpIHtcbiAgICAgICAgaWYgKHRoaXMucmVzb2x2ZU5leHQpIHtcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZU5leHQodW5kZWZpbmVkKVxuICAgICAgICAgICAgdGhpcy5yZXNvbHZlTmV4dCA9IG51bGxcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucXVldWUucHVzaCh1bmRlZmluZWQpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBwdXNoU3RyZWFtKGNodW5rczogQ2xpZW50UmVhZGFibGVTdHJlYW08RGF0YUNodW5rPikge1xuICAgICAgICBjb25zdCBzdHJlYW0gPSAoYXN5bmMgZnVuY3Rpb24qKHN0cmVhbSkge1xuICAgICAgICAgICAgZm9yIGF3YWl0IChjb25zdCBjIG9mIHN0cmVhbSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNodW5rOiBEYXRhQ2h1bmsgPSBjXG4gICAgICAgICAgICAgICAgeWllbGQgY2h1bmsuZGF0YVxuICAgICAgICAgICAgfVxuICAgICAgICB9KShjaHVua3MpXG4gICAgICAgIGNvbnN0IGl0ZW0gPSBhd2FpdCB0aGlzLmNvbnZlcnRvci5mcm9tU3RyZWFtKHN0cmVhbSlcbiAgICAgICAgaWYgKHRoaXMucmVzb2x2ZU5leHQpIHtcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZU5leHQoaXRlbSlcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZU5leHQgPSBudWxsXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnF1ZXVlLnB1c2goaXRlbSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jICpbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCkge1xuICAgICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucXVldWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLnF1ZXVlLnNoaWZ0KCkhXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0gPT09IHVuZGVmaW5lZCkgYnJlYWtcbiAgICAgICAgICAgICAgICB5aWVsZCBpdGVtXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBhd2FpdCBuZXcgUHJvbWlzZTxUIHwgdW5kZWZpbmVkPihcbiAgICAgICAgICAgICAgICAgICAgKHJlc29sdmUpID0+ICh0aGlzLnJlc29sdmVOZXh0ID0gcmVzb2x2ZSksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGlmIChpdGVtID09PSB1bmRlZmluZWQpIGJyZWFrXG4gICAgICAgICAgICAgICAgeWllbGQgaXRlbVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmVhZGVySW5zdGFuY2UgaW1wbGVtZW50cyBSZWFkZXIge1xuICAgIHByaXZhdGUgY2xpZW50OiBSdW5uZXJDbGllbnRcbiAgICByZWFkb25seSB1cmk6IHN0cmluZ1xuICAgIHByaXZhdGUgbG9nZ2VyOiB3aW5zdG9uLkxvZ2dlclxuXG4gICAgcHJpdmF0ZSBpdGVyYXRvcnM6IE15SXRlcjx1bmtub3duPltdID0gW11cblxuICAgIGNvbnN0cnVjdG9yKHVyaTogc3RyaW5nLCBjbGllbnQ6IFJ1bm5lckNsaWVudCwgbG9nZ2VyOiB3aW5zdG9uLkxvZ2dlcikge1xuICAgICAgICB0aGlzLnVyaSA9IHVyaVxuICAgICAgICB0aGlzLmNsaWVudCA9IGNsaWVudFxuICAgICAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlclxuICAgIH1cblxuICAgIGFueXMoKTogQXN5bmNJdGVyYWJsZTxBbnk+IHtcbiAgICAgICAgY29uc3QgaXRlciA9IG5ldyBNeUl0ZXIoQW55Q29udmVydG9yKVxuICAgICAgICB0aGlzLml0ZXJhdG9ycy5wdXNoKGl0ZXIpXG4gICAgICAgIHJldHVybiBpdGVyXG4gICAgfVxuXG4gICAgc3RyaW5ncygpOiBBc3luY0l0ZXJhYmxlPHN0cmluZz4ge1xuICAgICAgICBjb25zdCBpdGVyID0gbmV3IE15SXRlcihTdHJpbmdDb252ZXJ0b3IpXG4gICAgICAgIHRoaXMuaXRlcmF0b3JzLnB1c2goaXRlcilcbiAgICAgICAgcmV0dXJuIGl0ZXJcbiAgICB9XG5cbiAgICBidWZmZXJzKCk6IEFzeW5jSXRlcmFibGU8VWludDhBcnJheT4ge1xuICAgICAgICBjb25zdCBpdGVyID0gbmV3IE15SXRlcihOb0NvbnZlcnRvcilcbiAgICAgICAgdGhpcy5pdGVyYXRvcnMucHVzaChpdGVyKVxuICAgICAgICByZXR1cm4gaXRlclxuICAgIH1cblxuICAgIHN0cmVhbXMoKTogQXN5bmNJdGVyYWJsZTxBc3luY0dlbmVyYXRvcjxVaW50OEFycmF5Pj4ge1xuICAgICAgICBjb25zdCBpdGVyID0gbmV3IE15SXRlcihTdHJlYW1Db252ZXJ0b3IpXG4gICAgICAgIHRoaXMuaXRlcmF0b3JzLnB1c2goaXRlcilcbiAgICAgICAgcmV0dXJuIGl0ZXJcbiAgICB9XG5cbiAgICBoYW5kbGVNc2cobXNnOiBNZXNzYWdlKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGAke3RoaXMudXJpfSBoYW5kbGluZyBtZXNzYWdlYClcbiAgICAgICAgZm9yIChjb25zdCBpdGVyIG9mIHRoaXMuaXRlcmF0b3JzKSB7XG4gICAgICAgICAgICBpdGVyLnB1c2gobXNnLmRhdGEpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbG9zZSgpIHtcbiAgICAgICAgZm9yIChjb25zdCBpdGVyIG9mIHRoaXMuaXRlcmF0b3JzKSB7XG4gICAgICAgICAgICBpdGVyLmNsb3NlKClcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZVN0cmVhbWluZ01lc3NhZ2UobXNnOiBTdHJlYW1NZXNzYWdlKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGAke3RoaXMudXJpfSBoYW5kbGluZyBzdHJlYW1pbmcgbWVzc2FnZWApXG4gICAgICAgIGNvbnN0IGNodW5rcyA9IHRoaXMuY2xpZW50LnJlY2VpdmVTdHJlYW1NZXNzYWdlKG1zZy5pZCEpXG4gICAgICAgIGZvciAoY29uc3QgaXRlciBvZiB0aGlzLml0ZXJhdG9ycykge1xuICAgICAgICAgICAgaXRlci5wdXNoU3RyZWFtKGNodW5rcylcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
package/lib/runner.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { Processor as Proc } from './processor.js';
|
|
|
5
5
|
import { Logger } from 'winston';
|
|
6
6
|
import { Term } from '@rdfjs/types';
|
|
7
7
|
export type Writable = (msg: OrchestratorMessage) => Promise<unknown>;
|
|
8
|
-
export type
|
|
8
|
+
export type FullProc<C extends Proc<unknown>> = C extends Proc<infer T> ? T & C : unknown;
|
|
9
9
|
export declare class Runner {
|
|
10
10
|
private readonly readers;
|
|
11
11
|
private readonly writers;
|
|
@@ -18,7 +18,7 @@ export declare class Runner {
|
|
|
18
18
|
private readonly processors;
|
|
19
19
|
private readonly processorTransforms;
|
|
20
20
|
constructor(client: RunnerClient, write: Writable, uri: string, logger: Logger);
|
|
21
|
-
addProcessor<P extends Proc<unknown>>(proc: Processor): Promise<
|
|
21
|
+
addProcessor<P extends Proc<unknown>>(proc: Processor): Promise<FullProc<P>>;
|
|
22
22
|
start(): Promise<void>;
|
|
23
23
|
createWriter(uri: Term): Writer;
|
|
24
24
|
createReader(uri: Term): Reader;
|
package/lib/runner.js
CHANGED
|
@@ -6,7 +6,7 @@ import { empty, extractShapes } from 'rdf-lens';
|
|
|
6
6
|
import { NamedNode, Parser } from 'n3';
|
|
7
7
|
import { createNamespace, createUriAndTermNamespace, RDF } from '@treecg/types';
|
|
8
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
|
|
9
|
+
const RDFC = createNamespace('https://w3id.org/rdf-connect#', (x) => x, 'Reader', 'Writer');
|
|
10
10
|
export class Runner {
|
|
11
11
|
readers = {};
|
|
12
12
|
writers = {};
|
|
@@ -40,16 +40,14 @@ export class Runner {
|
|
|
40
40
|
quads: this.quads,
|
|
41
41
|
});
|
|
42
42
|
const config = JSON.parse(proc.config);
|
|
43
|
-
const url = new URL(config.location);
|
|
44
|
-
process.chdir(url.pathname);
|
|
45
43
|
const jsProgram = await import(config.file);
|
|
46
44
|
const clazz = jsProgram[config.clazz || 'default'];
|
|
47
45
|
const instance = new clazz(args, procLogger);
|
|
48
46
|
await instance.init();
|
|
49
47
|
this.logger.info("inited " + proc.uri + " type " + ty);
|
|
50
|
-
await this.write({ init: { uri: proc.uri } });
|
|
51
48
|
this.processors.push(instance);
|
|
52
49
|
this.processorTransforms.push(instance.transform());
|
|
50
|
+
await this.write({ init: { uri: proc.uri } });
|
|
53
51
|
return instance;
|
|
54
52
|
}
|
|
55
53
|
async start() {
|
|
@@ -109,4 +107,4 @@ export class Runner {
|
|
|
109
107
|
}
|
|
110
108
|
}
|
|
111
109
|
}
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVubmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3J1bm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQVUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ2pELE9BQU8sRUFBVSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFJakQsT0FBTyxPQUFPLE1BQU0sU0FBUyxDQUFBO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFdkMsT0FBTyxFQUFRLEtBQUssRUFBRSxhQUFhLEVBQVUsTUFBTSxVQUFVLENBQUE7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFDdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSx5QkFBeUIsRUFBRSxHQUFHLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHL0UsTUFBTSxJQUFJLEdBQUcseUJBQXlCLENBQ3BDLHFDQUFxQyxFQUNyQyxLQUFLLEVBQ0wsTUFBTSxFQUNOLFVBQVUsRUFDVixTQUFTLEVBQ1QsY0FBYyxFQUNkLGFBQWEsRUFDYixRQUFRLEVBQ1IsWUFBWSxFQUNaLFVBQVUsQ0FDWCxDQUFBO0FBRUQsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUMxQix3Q0FBd0MsRUFDeEMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDUixRQUFRLEVBQ1IsUUFBUSxDQUNULENBQUE7QUFXRCxNQUFNLE9BQU8sTUFBTTtJQUNBLE9BQU8sR0FBd0MsRUFBRSxDQUFBO0lBQ2pELE9BQU8sR0FBd0MsRUFBRSxDQUFBO0lBQ2pELE1BQU0sQ0FBYztJQUNwQixLQUFLLENBQVU7SUFDZixNQUFNLENBQVE7SUFDdkIsTUFBTSxDQUFRO0lBQ2QsS0FBSyxHQUFXLEVBQUUsQ0FBQTtJQUVULEdBQUcsQ0FBUTtJQUVYLFVBQVUsR0FBb0IsRUFBRSxDQUFBO0lBQ2hDLG1CQUFtQixHQUF1QixFQUFFLENBQUE7SUFF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QUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7WUFFakIsTUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDLEtBQUssRUFBRTtnQkFDakMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDbkQsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUNwRCxFQUFFO2dCQUNELENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBUTtnQkFDNUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFRO2FBQzdCLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRixDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgT3JjaGVzdHJhdG9yTWVzc2FnZSxcbiAgUHJvY2Vzc29yLFxuICBSdW5uZXJDbGllbnQsXG4gIFJ1bm5lck1lc3NhZ2UsXG59IGZyb20gJ0ByZGZjL3Byb3RvJ1xuaW1wb3J0IHsgUmVhZGVyLCBSZWFkZXJJbnN0YW5jZSB9IGZyb20gJy4vcmVhZGVyJ1xuaW1wb3J0IHsgV3JpdGVyLCBXcml0ZXJJbnN0YW5jZSB9IGZyb20gJy4vd3JpdGVyJ1xuaW1wb3J0IHsgUHJvY2Vzc29yIGFzIFByb2MgfSBmcm9tICcuL3Byb2Nlc3NvcidcbmltcG9ydCB7IExvZ2dlciB9IGZyb20gJ3dpbnN0b24nXG5cbmltcG9ydCB3aW5zdG9uIGZyb20gJ3dpbnN0b24nXG5pbXBvcnQgeyBScGNUcmFuc3BvcnQgfSBmcm9tICcuL2xvZ2dlcidcbmltcG9ydCB7IHBhcnNlX2pzb25sZCB9IGZyb20gJy4vanNvbmxkJ1xuaW1wb3J0IHsgQ29udCwgZW1wdHksIGV4dHJhY3RTaGFwZXMsIFNoYXBlcyB9IGZyb20gJ3JkZi1sZW5zJ1xuaW1wb3J0IHsgTmFtZWROb2RlLCBQYXJzZXIgfSBmcm9tICduMydcbmltcG9ydCB7IGNyZWF0ZU5hbWVzcGFjZSwgY3JlYXRlVXJpQW5kVGVybU5hbWVzcGFjZSwgUkRGIH0gZnJvbSAnQHRyZWVjZy90eXBlcydcbmltcG9ydCB7IFF1YWQsIFRlcm0gfSBmcm9tICdAcmRmanMvdHlwZXMnXG5cbmNvbnN0IFJERkwgPSBjcmVhdGVVcmlBbmRUZXJtTmFtZXNwYWNlKFxuICAnaHR0cHM6Ly93M2lkLm9yZy9yZGYtbGVucy9vbnRvbG9neSMnLFxuICAnQ0JEJyxcbiAgJ1BhdGgnLFxuICAnUGF0aExlbnMnLFxuICAnQ29udGV4dCcsXG4gICdUeXBlZEV4dHJhY3QnLFxuICAnRW52VmFyaWFibGUnLFxuICAnZW52S2V5JyxcbiAgJ2VudkRlZmF1bHQnLFxuICAnZGF0YXR5cGUnLFxuKVxuXG5jb25zdCBSREZDID0gY3JlYXRlTmFtZXNwYWNlKFxuICAnaHR0cHM6Ly93M2lkLm9yZy9yZGYtY29ubmVjdC9vbnRvbG9neSMnLFxuICAoeCkgPT4geCxcbiAgJ1JlYWRlcicsXG4gICdXcml0ZXInLFxuKVxuXG5leHBvcnQgdHlwZSBXcml0YWJsZSA9IChtc2c6IE9yY2hlc3RyYXRvck1lc3NhZ2UpID0+IFByb21pc2U8dW5rbm93bj5cblxudHlwZSBQcm9jZXNzb3JDb25maWcgPSB7XG4gIGxvY2F0aW9uOiBzdHJpbmdcbiAgZmlsZTogc3RyaW5nXG4gIGNsYXp6Pzogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIEdldE15Q2xhc3NUPEMgZXh0ZW5kcyBQcm9jPHVua25vd24+PiA9IEMgZXh0ZW5kcyBQcm9jPGluZmVyIFQ+ID8gVCA6IHVua25vd247XG5leHBvcnQgY2xhc3MgUnVubmVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSByZWFkZXJzOiB7IFt1cmk6IHN0cmluZ106IFJlYWRlckluc3RhbmNlW10gfSA9IHt9XG4gIHByaXZhdGUgcmVhZG9ubHkgd3JpdGVyczogeyBbdXJpOiBzdHJpbmddOiBXcml0ZXJJbnN0YW5jZVtdIH0gPSB7fVxuICBwcml2YXRlIHJlYWRvbmx5IGNsaWVudDogUnVubmVyQ2xpZW50XG4gIHByaXZhdGUgcmVhZG9ubHkgd3JpdGU6IFdyaXRhYmxlXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXJcbiAgcHJpdmF0ZSBzaGFwZXM6IFNoYXBlc1xuICBwcml2YXRlIHF1YWRzOiBRdWFkW10gPSBbXVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgdXJpOiBzdHJpbmdcblxuICBwcml2YXRlIHJlYWRvbmx5IHByb2Nlc3NvcnM6IFByb2M8dW5rbm93bj5bXSA9IFtdXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvY2Vzc29yVHJhbnNmb3JtczogUHJvbWlzZTx1bmtub3duPltdID0gW11cblxuICBjb25zdHJ1Y3RvcihcbiAgICBjbGllbnQ6IFJ1bm5lckNsaWVudCxcbiAgICB3cml0ZTogV3JpdGFibGUsXG4gICAgdXJpOiBzdHJpbmcsXG4gICAgbG9nZ2VyOiBMb2dnZXIsXG4gICkge1xuICAgIHRoaXMuY2xpZW50ID0gY2xpZW50XG4gICAgdGhpcy53cml0ZSA9IHdyaXRlXG4gICAgdGhpcy51cmkgPSB1cmlcbiAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlclxuICB9XG5cbiAgYXN5bmMgYWRkUHJvY2Vzc29yPFAgZXh0ZW5kcyBQcm9jPHVua25vd24+Pihwcm9jOiBQcm9jZXNzb3IpOiBQcm9taXNlPFAgJiBHZXRNeUNsYXNzVDxQPj4ge1xuICAgIGNvbnN0IHByb2NMb2dnZXIgPSB3aW5zdG9uLmNyZWF0ZUxvZ2dlcih7XG4gICAgICB0cmFuc3BvcnRzOiBbXG4gICAgICAgIG5ldyBScGNUcmFuc3BvcnQoe1xuICAgICAgICAgIGVudGl0aWVzOiBbcHJvYy51cmksIHRoaXMudXJpXSxcbiAgICAgICAgICBzdHJlYW06IHRoaXMuY2xpZW50LmxvZ1N0cmVhbSgoKSA9PiB7IH0pLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgfSlcblxuICAgIGNvbnN0IHR5ID0gSlNPTi5zdHJpbmdpZnkodGhpcy5xdWFkcy5maWx0ZXIoeCA9PiB4LnN1YmplY3QudmFsdWUgPT09IHByb2MudXJpICYmIHgucHJlZGljYXRlLmVxdWFscyhSREYudGVybXMudHlwZSkpLm1hcCh4ID0+IHgub2JqZWN0LnZhbHVlKSlcbiAgICB0aGlzLmxvZ2dlci5pbmZvKFwicGFyc2luZyBcIiArIHByb2MudXJpICsgXCIgdHlwZSBcIiArIHR5KVxuICAgIGNvbnN0IGFyZ3MgPSB0aGlzLnNoYXBlcy5sZW5zZXNbUkRGTC5UeXBlZEV4dHJhY3RdLmV4ZWN1dGUoe1xuICAgICAgaWQ6IG5ldyBOYW1lZE5vZGUocHJvYy51cmkpLFxuICAgICAgcXVhZHM6IHRoaXMucXVhZHMsXG4gICAgfSlcblxuICAgIGNvbnN0IGNvbmZpZzogUHJvY2Vzc29yQ29uZmlnID0gSlNPTi5wYXJzZShwcm9jLmNvbmZpZylcbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKGNvbmZpZy5sb2NhdGlvbilcbiAgICBwcm9jZXNzLmNoZGlyKHVybC5wYXRobmFtZSlcbiAgICBjb25zdCBqc1Byb2dyYW0gPSBhd2FpdCBpbXBvcnQoY29uZmlnLmZpbGUpXG4gICAgY29uc3QgY2xhenogPSBqc1Byb2dyYW1bY29uZmlnLmNsYXp6IHx8ICdkZWZhdWx0J11cbiAgICBjb25zdCBpbnN0YW5jZTogUHJvYzx1bmtub3duPiA9IG5ldyBjbGF6eihhcmdzLCBwcm9jTG9nZ2VyKVxuICAgIGF3YWl0IGluc3RhbmNlLmluaXQoKVxuXG4gICAgdGhpcy5sb2dnZXIuaW5mbyhcImluaXRlZCBcIiArIHByb2MudXJpICsgXCIgdHlwZSBcIiArIHR5KVxuICAgIGF3YWl0IHRoaXMud3JpdGUoeyBpbml0OiB7IHVyaTogcHJvYy51cmkgfSB9KVxuXG4gICAgdGhpcy5wcm9jZXNzb3JzLnB1c2goaW5zdGFuY2UpXG4gICAgdGhpcy5wcm9jZXNzb3JUcmFuc2Zvcm1zLnB1c2goaW5zdGFuY2UudHJhbnNmb3JtKCkpXG5cbiAgICByZXR1cm4gPFAgJiBHZXRNeUNsYXNzVDxQPj5pbnN0YW5jZTtcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0KCkge1xuICAgIGF3YWl0IFByb21pc2UuYWxsKHRoaXMucHJvY2Vzc29ycy5tYXAoKHgpID0+IHgucHJvZHVjZSgpKSlcbiAgICBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLnByb2Nlc3NvclRyYW5zZm9ybXMpXG4gIH1cblxuICBjcmVhdGVXcml0ZXIodXJpOiBUZXJtKTogV3JpdGVyIHtcbiAgICBjb25zdCBpZHMgPSB1cmkudmFsdWU7XG5cbiAgICBpZiAodGhpcy53cml0ZXJzW2lkc10gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy53cml0ZXJzW2lkc10gPSBbXVxuICAgIH1cbiAgICBjb25zdCB3cml0ZXIgPSBuZXcgV3JpdGVySW5zdGFuY2UoXG4gICAgICBpZHMsXG4gICAgICB0aGlzLmNsaWVudCxcbiAgICAgIHRoaXMud3JpdGUsXG4gICAgICB0aGlzLmxvZ2dlcixcbiAgICApXG4gICAgdGhpcy53cml0ZXJzW2lkc10ucHVzaCh3cml0ZXIpXG4gICAgcmV0dXJuIHdyaXRlclxuICB9XG5cbiAgY3JlYXRlUmVhZGVyKHVyaTogVGVybSk6IFJlYWRlciB7XG4gICAgY29uc3QgaWRzID0gdXJpLnZhbHVlO1xuXG4gICAgaWYgKHRoaXMucmVhZGVyc1tpZHNdID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucmVhZGVyc1tpZHNdID0gW11cbiAgICB9XG4gICAgY29uc3QgcmVhZGVyID0gbmV3IFJlYWRlckluc3RhbmNlKGlkcywgdGhpcy5jbGllbnQsIHRoaXMubG9nZ2VyKVxuICAgIHRoaXMucmVhZGVyc1tpZHNdLnB1c2gocmVhZGVyKVxuICAgIHJldHVybiByZWFkZXJcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZU9yY2hNZXNzYWdlKG1zZzogUnVubmVyTWVzc2FnZSkge1xuICAgIGlmIChtc2cubXNnKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnSGFuZGxpbmcgZGF0YSBtc2cgZm9yICcgKyBtc2cubXNnLmNoYW5uZWwpXG4gICAgICBmb3IgKGNvbnN0IHJlYWRlciBvZiB0aGlzLnJlYWRlcnNbbXNnLm1zZy5jaGFubmVsXSB8fCBbXSkge1xuICAgICAgICByZWFkZXIuaGFuZGxlTXNnKG1zZy5tc2cpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1zZy5zdHJlYW1Nc2cpIHtcbiAgICAgIGZvciAoY29uc3QgcmVhZGVyIG9mIHRoaXMucmVhZGVyc1ttc2cuc3RyZWFtTXNnLmNoYW5uZWxdIHx8IFtdKSB7XG4gICAgICAgIHJlYWRlci5oYW5kbGVTdHJlYW1pbmdNZXNzYWdlKG1zZy5zdHJlYW1Nc2cpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1zZy5jbG9zZSkge1xuICAgICAgY29uc3QgdXJpID0gbXNnLmNsb3NlLmNoYW5uZWxcblxuICAgICAgZm9yIChjb25zdCByZWFkZXIgb2YgdGhpcy5yZWFkZXJzW3VyaV0gfHwgW10pIHtcbiAgICAgICAgcmVhZGVyLmNsb3NlKClcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCB3cml0ZXIgb2YgdGhpcy53cml0ZXJzW3VyaV0gfHwgW10pIHtcbiAgICAgICAgYXdhaXQgd3JpdGVyLmNsb3NlKHRydWUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1zZy5waXBlbGluZSkge1xuICAgICAgLy8gaGVyZVxuICAgICAgY29uc3QgcXVhZHMgPSBuZXcgUGFyc2VyKCkucGFyc2UobXNnLnBpcGVsaW5lKTtcbiAgICAgIHRoaXMuc2hhcGVzID0gZXh0cmFjdFNoYXBlcyhxdWFkcywge1xuICAgICAgICBbUkRGQy5SZWFkZXJdOiAoeDogQ29udCkgPT4gdGhpcy5jcmVhdGVSZWFkZXIoeC5pZCksXG4gICAgICAgIFtSREZDLldyaXRlcl06ICh4OiBDb250KSA9PiB0aGlzLmNyZWF0ZVdyaXRlcih4LmlkKVxuICAgICAgfSwge1xuICAgICAgICBbUkRGQy5SZWFkZXJdOiBlbXB0eTxDb250PigpLFxuICAgICAgICBbUkRGQy5Xcml0ZXJdOiBlbXB0eTxDb250PigpXG4gICAgICB9KTtcbiAgICAgIHRoaXMucXVhZHMgPSBxdWFkcztcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oXCJleHRyYWN0ZWQgc2hhcGVzIFwiICsgSlNPTi5zdHJpbmdpZnkoT2JqZWN0LmtleXModGhpcy5zaGFwZXMubGVuc2VzKSkpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVubmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3J1bm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQVUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ2pELE9BQU8sRUFBVSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFJakQsT0FBTyxPQUFPLE1BQU0sU0FBUyxDQUFBO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFdkMsT0FBTyxFQUFRLEtBQUssRUFBRSxhQUFhLEVBQVUsTUFBTSxVQUFVLENBQUE7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFDdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSx5QkFBeUIsRUFBRSxHQUFHLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHL0UsTUFBTSxJQUFJLEdBQUcseUJBQXlCLENBQ2xDLHFDQUFxQyxFQUNyQyxLQUFLLEVBQ0wsTUFBTSxFQUNOLFVBQVUsRUFDVixTQUFTLEVBQ1QsY0FBYyxFQUNkLGFBQWEsRUFDYixRQUFRLEVBQ1IsWUFBWSxFQUNaLFVBQVUsQ0FDYixDQUFBO0FBRUQsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUN4QiwrQkFBK0IsRUFDL0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDUixRQUFRLEVBQ1IsUUFBUSxDQUNYLENBQUE7QUFXRCxNQUFNLE9BQU8sTUFBTTtJQUNFLE9BQU8sR0FBd0MsRUFBRSxDQUFBO0lBQ2pELE9BQU8sR0FBd0MsRUFBRSxDQUFBO0lBQ2pELE1BQU0sQ0FBYztJQUNwQixLQUFLLENBQVU7SUFDZixNQUFNLENBQVE7SUFDdkIsTUFBTSxDQUFRO0lBQ2QsS0FBSyxHQUFXLEVBQUUsQ0FBQTtJQUVULEdBQUcsQ0FBUTtJQUVYLFVBQVUsR0FBb0IsRUFBRSxDQUFBO0lBQ2hDLG1CQUFtQixHQUF1QixFQUFFLENBQUE7SUFFN0QsWUFDSSxNQUFvQixFQUNwQixLQUFlLEVBQ2YsR0FBVyxFQUNYLE1BQWM7UUFFZCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtRQUNsQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQTtRQUNkLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWSxDQUEwQixJQUFlO1FBQ3ZELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFDcEMsVUFBVSxFQUFFO2dCQUNSLElBQUksWUFBWSxDQUFDO29CQUNiLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQztvQkFDOUIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztpQkFDM0MsQ0FBQzthQUNMO1NBQ0osQ0FBQyxDQUFBO1FBRUYsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUM5SSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxRQUFRLEdBQUcsRUFBRSxDQUFDLENBQUE7UUFDdkQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUN2RCxFQUFFLEVBQUUsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUMzQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDcEIsQ0FBQyxDQUFBO1FBRUYsTUFBTSxNQUFNLEdBQW9CLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBR3ZELE1BQU0sU0FBUyxHQUFHLE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUMzQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsQ0FBQTtRQUNsRCxNQUFNLFFBQVEsR0FBa0IsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFBO1FBQzNELE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFBO1FBRXJCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLFFBQVEsR0FBRyxFQUFFLENBQUMsQ0FBQTtRQUV0RCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUM5QixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRW5ELE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRTdDLE9BQW9CLFFBQVEsQ0FBQztJQUNqQyxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUs7UUFDUCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDMUQsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO0lBQy9DLENBQUM7SUFFRCxZQUFZLENBQUMsR0FBUztRQUNsQixNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1FBRXRCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtRQUMxQixDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQzdCLEdBQUcsRUFDSCxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxLQUFLLEVBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FDZCxDQUFBO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDOUIsT0FBTyxNQUFNLENBQUE7SUFDakIsQ0FBQztJQUVELFlBQVksQ0FBQyxHQUFTO1FBQ2xCLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7UUFFdEIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBQzFCLENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDaEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDOUIsT0FBTyxNQUFNLENBQUE7SUFDakIsQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFrQjtRQUN0QyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHdCQUF3QixHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUE7WUFDN0QsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ3ZELE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQzdCLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDaEIsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQzdELE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUE7WUFDaEQsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNaLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFBO1lBRTdCLEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDM0MsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFBO1lBQ2xCLENBQUM7WUFFRCxLQUFLLE1BQU0sTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQzNDLE1BQU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUM1QixDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBRWYsTUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDLEtBQUssRUFBRTtnQkFDL0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDbkQsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUN0RCxFQUFFO2dCQUNDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBUTtnQkFDNUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFRO2FBQy9CLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RixDQUFDO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBPcmNoZXN0cmF0b3JNZXNzYWdlLFxuICAgIFByb2Nlc3NvcixcbiAgICBSdW5uZXJDbGllbnQsXG4gICAgUnVubmVyTWVzc2FnZSxcbn0gZnJvbSAnQHJkZmMvcHJvdG8nXG5pbXBvcnQgeyBSZWFkZXIsIFJlYWRlckluc3RhbmNlIH0gZnJvbSAnLi9yZWFkZXInXG5pbXBvcnQgeyBXcml0ZXIsIFdyaXRlckluc3RhbmNlIH0gZnJvbSAnLi93cml0ZXInXG5pbXBvcnQgeyBQcm9jZXNzb3IgYXMgUHJvYyB9IGZyb20gJy4vcHJvY2Vzc29yJ1xuaW1wb3J0IHsgTG9nZ2VyIH0gZnJvbSAnd2luc3RvbidcblxuaW1wb3J0IHdpbnN0b24gZnJvbSAnd2luc3RvbidcbmltcG9ydCB7IFJwY1RyYW5zcG9ydCB9IGZyb20gJy4vbG9nZ2VyJ1xuaW1wb3J0IHsgcGFyc2VfanNvbmxkIH0gZnJvbSAnLi9qc29ubGQnXG5pbXBvcnQgeyBDb250LCBlbXB0eSwgZXh0cmFjdFNoYXBlcywgU2hhcGVzIH0gZnJvbSAncmRmLWxlbnMnXG5pbXBvcnQgeyBOYW1lZE5vZGUsIFBhcnNlciB9IGZyb20gJ24zJ1xuaW1wb3J0IHsgY3JlYXRlTmFtZXNwYWNlLCBjcmVhdGVVcmlBbmRUZXJtTmFtZXNwYWNlLCBSREYgfSBmcm9tICdAdHJlZWNnL3R5cGVzJ1xuaW1wb3J0IHsgUXVhZCwgVGVybSB9IGZyb20gJ0ByZGZqcy90eXBlcydcblxuY29uc3QgUkRGTCA9IGNyZWF0ZVVyaUFuZFRlcm1OYW1lc3BhY2UoXG4gICAgJ2h0dHBzOi8vdzNpZC5vcmcvcmRmLWxlbnMvb250b2xvZ3kjJyxcbiAgICAnQ0JEJyxcbiAgICAnUGF0aCcsXG4gICAgJ1BhdGhMZW5zJyxcbiAgICAnQ29udGV4dCcsXG4gICAgJ1R5cGVkRXh0cmFjdCcsXG4gICAgJ0VudlZhcmlhYmxlJyxcbiAgICAnZW52S2V5JyxcbiAgICAnZW52RGVmYXVsdCcsXG4gICAgJ2RhdGF0eXBlJyxcbilcblxuY29uc3QgUkRGQyA9IGNyZWF0ZU5hbWVzcGFjZShcbiAgICAnaHR0cHM6Ly93M2lkLm9yZy9yZGYtY29ubmVjdCMnLFxuICAgICh4KSA9PiB4LFxuICAgICdSZWFkZXInLFxuICAgICdXcml0ZXInLFxuKVxuXG5leHBvcnQgdHlwZSBXcml0YWJsZSA9IChtc2c6IE9yY2hlc3RyYXRvck1lc3NhZ2UpID0+IFByb21pc2U8dW5rbm93bj5cblxudHlwZSBQcm9jZXNzb3JDb25maWcgPSB7XG4gICAgbG9jYXRpb246IHN0cmluZ1xuICAgIGZpbGU6IHN0cmluZ1xuICAgIGNsYXp6Pzogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIEZ1bGxQcm9jPEMgZXh0ZW5kcyBQcm9jPHVua25vd24+PiA9IEMgZXh0ZW5kcyBQcm9jPGluZmVyIFQ+ID8gVCAmIEMgOiB1bmtub3duO1xuZXhwb3J0IGNsYXNzIFJ1bm5lciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZWFkZXJzOiB7IFt1cmk6IHN0cmluZ106IFJlYWRlckluc3RhbmNlW10gfSA9IHt9XG4gICAgcHJpdmF0ZSByZWFkb25seSB3cml0ZXJzOiB7IFt1cmk6IHN0cmluZ106IFdyaXRlckluc3RhbmNlW10gfSA9IHt9XG4gICAgcHJpdmF0ZSByZWFkb25seSBjbGllbnQ6IFJ1bm5lckNsaWVudFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd3JpdGU6IFdyaXRhYmxlXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IExvZ2dlclxuICAgIHByaXZhdGUgc2hhcGVzOiBTaGFwZXNcbiAgICBwcml2YXRlIHF1YWRzOiBRdWFkW10gPSBbXVxuXG4gICAgcHJpdmF0ZSByZWFkb25seSB1cmk6IHN0cmluZ1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9jZXNzb3JzOiBQcm9jPHVua25vd24+W10gPSBbXVxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvY2Vzc29yVHJhbnNmb3JtczogUHJvbWlzZTx1bmtub3duPltdID0gW11cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBjbGllbnQ6IFJ1bm5lckNsaWVudCxcbiAgICAgICAgd3JpdGU6IFdyaXRhYmxlLFxuICAgICAgICB1cmk6IHN0cmluZyxcbiAgICAgICAgbG9nZ2VyOiBMb2dnZXIsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY2xpZW50ID0gY2xpZW50XG4gICAgICAgIHRoaXMud3JpdGUgPSB3cml0ZVxuICAgICAgICB0aGlzLnVyaSA9IHVyaVxuICAgICAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlclxuICAgIH1cblxuICAgIGFzeW5jIGFkZFByb2Nlc3NvcjxQIGV4dGVuZHMgUHJvYzx1bmtub3duPj4ocHJvYzogUHJvY2Vzc29yKTogUHJvbWlzZTxGdWxsUHJvYzxQPj4ge1xuICAgICAgICBjb25zdCBwcm9jTG9nZ2VyID0gd2luc3Rvbi5jcmVhdGVMb2dnZXIoe1xuICAgICAgICAgICAgdHJhbnNwb3J0czogW1xuICAgICAgICAgICAgICAgIG5ldyBScGNUcmFuc3BvcnQoe1xuICAgICAgICAgICAgICAgICAgICBlbnRpdGllczogW3Byb2MudXJpLCB0aGlzLnVyaV0sXG4gICAgICAgICAgICAgICAgICAgIHN0cmVhbTogdGhpcy5jbGllbnQubG9nU3RyZWFtKCgpID0+IHsgfSksXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBdLFxuICAgICAgICB9KVxuXG4gICAgICAgIGNvbnN0IHR5ID0gSlNPTi5zdHJpbmdpZnkodGhpcy5xdWFkcy5maWx0ZXIoeCA9PiB4LnN1YmplY3QudmFsdWUgPT09IHByb2MudXJpICYmIHgucHJlZGljYXRlLmVxdWFscyhSREYudGVybXMudHlwZSkpLm1hcCh4ID0+IHgub2JqZWN0LnZhbHVlKSlcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcInBhcnNpbmcgXCIgKyBwcm9jLnVyaSArIFwiIHR5cGUgXCIgKyB0eSlcbiAgICAgICAgY29uc3QgYXJncyA9IHRoaXMuc2hhcGVzLmxlbnNlc1tSREZMLlR5cGVkRXh0cmFjdF0uZXhlY3V0ZSh7XG4gICAgICAgICAgICBpZDogbmV3IE5hbWVkTm9kZShwcm9jLnVyaSksXG4gICAgICAgICAgICBxdWFkczogdGhpcy5xdWFkcyxcbiAgICAgICAgfSlcblxuICAgICAgICBjb25zdCBjb25maWc6IFByb2Nlc3NvckNvbmZpZyA9IEpTT04ucGFyc2UocHJvYy5jb25maWcpXG4gICAgICAgIC8vIGNvbnN0IHVybCA9IG5ldyBVUkwoY29uZmlnLmxvY2F0aW9uKVxuICAgICAgICAvLyBwcm9jZXNzLmNoZGlyKHVybC5wYXRobmFtZSlcbiAgICAgICAgY29uc3QganNQcm9ncmFtID0gYXdhaXQgaW1wb3J0KGNvbmZpZy5maWxlKVxuICAgICAgICBjb25zdCBjbGF6eiA9IGpzUHJvZ3JhbVtjb25maWcuY2xhenogfHwgJ2RlZmF1bHQnXVxuICAgICAgICBjb25zdCBpbnN0YW5jZTogUHJvYzx1bmtub3duPiA9IG5ldyBjbGF6eihhcmdzLCBwcm9jTG9nZ2VyKVxuICAgICAgICBhd2FpdCBpbnN0YW5jZS5pbml0KClcblxuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFwiaW5pdGVkIFwiICsgcHJvYy51cmkgKyBcIiB0eXBlIFwiICsgdHkpXG5cbiAgICAgICAgdGhpcy5wcm9jZXNzb3JzLnB1c2goaW5zdGFuY2UpXG4gICAgICAgIHRoaXMucHJvY2Vzc29yVHJhbnNmb3Jtcy5wdXNoKGluc3RhbmNlLnRyYW5zZm9ybSgpKVxuXG4gICAgICAgIGF3YWl0IHRoaXMud3JpdGUoeyBpbml0OiB7IHVyaTogcHJvYy51cmkgfSB9KVxuXG4gICAgICAgIHJldHVybiA8RnVsbFByb2M8UD4+aW5zdGFuY2U7XG4gICAgfVxuXG4gICAgYXN5bmMgc3RhcnQoKSB7XG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHRoaXMucHJvY2Vzc29ycy5tYXAoKHgpID0+IHgucHJvZHVjZSgpKSlcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5wcm9jZXNzb3JUcmFuc2Zvcm1zKVxuICAgIH1cblxuICAgIGNyZWF0ZVdyaXRlcih1cmk6IFRlcm0pOiBXcml0ZXIge1xuICAgICAgICBjb25zdCBpZHMgPSB1cmkudmFsdWU7XG5cbiAgICAgICAgaWYgKHRoaXMud3JpdGVyc1tpZHNdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMud3JpdGVyc1tpZHNdID0gW11cbiAgICAgICAgfVxuICAgICAgICBjb25zdCB3cml0ZXIgPSBuZXcgV3JpdGVySW5zdGFuY2UoXG4gICAgICAgICAgICBpZHMsXG4gICAgICAgICAgICB0aGlzLmNsaWVudCxcbiAgICAgICAgICAgIHRoaXMud3JpdGUsXG4gICAgICAgICAgICB0aGlzLmxvZ2dlcixcbiAgICAgICAgKVxuICAgICAgICB0aGlzLndyaXRlcnNbaWRzXS5wdXNoKHdyaXRlcilcbiAgICAgICAgcmV0dXJuIHdyaXRlclxuICAgIH1cblxuICAgIGNyZWF0ZVJlYWRlcih1cmk6IFRlcm0pOiBSZWFkZXIge1xuICAgICAgICBjb25zdCBpZHMgPSB1cmkudmFsdWU7XG5cbiAgICAgICAgaWYgKHRoaXMucmVhZGVyc1tpZHNdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMucmVhZGVyc1tpZHNdID0gW11cbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgUmVhZGVySW5zdGFuY2UoaWRzLCB0aGlzLmNsaWVudCwgdGhpcy5sb2dnZXIpXG4gICAgICAgIHRoaXMucmVhZGVyc1tpZHNdLnB1c2gocmVhZGVyKVxuICAgICAgICByZXR1cm4gcmVhZGVyXG4gICAgfVxuXG4gICAgYXN5bmMgaGFuZGxlT3JjaE1lc3NhZ2UobXNnOiBSdW5uZXJNZXNzYWdlKSB7XG4gICAgICAgIGlmIChtc2cubXNnKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnSGFuZGxpbmcgZGF0YSBtc2cgZm9yICcgKyBtc2cubXNnLmNoYW5uZWwpXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlYWRlciBvZiB0aGlzLnJlYWRlcnNbbXNnLm1zZy5jaGFubmVsXSB8fCBbXSkge1xuICAgICAgICAgICAgICAgIHJlYWRlci5oYW5kbGVNc2cobXNnLm1zZylcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtc2cuc3RyZWFtTXNnKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlYWRlciBvZiB0aGlzLnJlYWRlcnNbbXNnLnN0cmVhbU1zZy5jaGFubmVsXSB8fCBbXSkge1xuICAgICAgICAgICAgICAgIHJlYWRlci5oYW5kbGVTdHJlYW1pbmdNZXNzYWdlKG1zZy5zdHJlYW1Nc2cpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobXNnLmNsb3NlKSB7XG4gICAgICAgICAgICBjb25zdCB1cmkgPSBtc2cuY2xvc2UuY2hhbm5lbFxuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlYWRlciBvZiB0aGlzLnJlYWRlcnNbdXJpXSB8fCBbXSkge1xuICAgICAgICAgICAgICAgIHJlYWRlci5jbG9zZSgpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvciAoY29uc3Qgd3JpdGVyIG9mIHRoaXMud3JpdGVyc1t1cmldIHx8IFtdKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgd3JpdGVyLmNsb3NlKHRydWUpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobXNnLnBpcGVsaW5lKSB7XG4gICAgICAgICAgICAvLyBoZXJlXG4gICAgICAgICAgICBjb25zdCBxdWFkcyA9IG5ldyBQYXJzZXIoKS5wYXJzZShtc2cucGlwZWxpbmUpO1xuICAgICAgICAgICAgdGhpcy5zaGFwZXMgPSBleHRyYWN0U2hhcGVzKHF1YWRzLCB7XG4gICAgICAgICAgICAgICAgW1JERkMuUmVhZGVyXTogKHg6IENvbnQpID0+IHRoaXMuY3JlYXRlUmVhZGVyKHguaWQpLFxuICAgICAgICAgICAgICAgIFtSREZDLldyaXRlcl06ICh4OiBDb250KSA9PiB0aGlzLmNyZWF0ZVdyaXRlcih4LmlkKVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIFtSREZDLlJlYWRlcl06IGVtcHR5PENvbnQ+KCksXG4gICAgICAgICAgICAgICAgW1JERkMuV3JpdGVyXTogZW1wdHk8Q29udD4oKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnF1YWRzID0gcXVhZHM7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFwiZXh0cmFjdGVkIHNoYXBlcyBcIiArIEpTT04uc3RyaW5naWZ5KE9iamVjdC5rZXlzKHRoaXMuc2hhcGVzLmxlbnNlcykpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
package/lib/testUtils.js
CHANGED
|
@@ -45,6 +45,9 @@ export function createWriter(iri = uri) {
|
|
|
45
45
|
if (msg.msg) {
|
|
46
46
|
reader.handleMsg(msg.msg);
|
|
47
47
|
}
|
|
48
|
+
if (msg.close) {
|
|
49
|
+
reader.close();
|
|
50
|
+
}
|
|
48
51
|
}, logger);
|
|
49
52
|
return [writeStream, reader];
|
|
50
53
|
}
|
|
@@ -52,4 +55,4 @@ export function createReader(iri = uri) {
|
|
|
52
55
|
const reader = new ReaderInstance(iri, client, logger);
|
|
53
56
|
return reader;
|
|
54
57
|
}
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdFV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Rlc3RVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtDLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUUxRSxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxPQUFPLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRTFDLE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUJBQWlCLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyx5Q0FBeUM7SUFDekcsTUFBTSxVQUFVLEdBQUcsTUFBTSxRQUFRLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDakUsTUFBTSxXQUFXLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkQsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRTFDLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxNQUFNLE9BQU8sVUFBVyxTQUFRLFlBQVk7SUFDMUMsSUFBSSxDQUFzRDtJQUUxRDtRQUNFLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUE7SUFDNUQsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUNoRCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE1BQU0sTUFBTSxHQUFHLElBQUksd0JBQXdCLENBQVksQ0FBQyxJQUFZLEVBQUUsRUFBRTtZQUN0RSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUE7UUFDakIsQ0FBQyxDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ2pCLE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxHQUFHLENBQUksSUFBc0I7SUFDakQsSUFBSSxLQUFLLEVBQUUsTUFBTSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7UUFDOUIsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFBO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUE7QUFDNUIsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQztJQUNqQyxVQUFVLEVBQUUsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sRUFBRSxDQUFDO0NBQ3RGLENBQUMsQ0FBQTtBQUVGLE1BQU0sVUFBVSxZQUFZLENBQUMsR0FBRyxHQUFHLEdBQUc7SUFDcEMsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLE1BQU0sV0FBVyxHQUFHLElBQUksY0FBYyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ2hFLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1osTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUNELElBQUcsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2hCLENBQUM7SUFDSCxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDVixPQUFPLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLEdBQUcsR0FBRyxHQUFHO0lBQ3BDLE1BQU0sTUFBTSxHQUFHLElBQUksY0FBYyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdkQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFDaHVuaywgT3JjaGVzdHJhdG9yTWVzc2FnZSwgUnVubmVyQ2xpZW50IH0gZnJvbSAnQHJkZmMvcHJvdG8nXG5pbXBvcnQgeyBDbGllbnRSZWFkYWJsZVN0cmVhbSB9IGZyb20gJ0BncnBjL2dycGMtanMnXG5pbXBvcnQgKiBhcyBncnBjIGZyb20gJ0BncnBjL2dycGMtanMnXG5pbXBvcnQgeyBDbGllbnRSZWFkYWJsZVN0cmVhbUltcGwgfSBmcm9tICcuL3JlZXhwb3J0cydcbmltcG9ydCB7IGV4dHJhY3RTaGFwZXMgfSBmcm9tICdyZGYtbGVucyc7XG5pbXBvcnQgeyBQYXJzZXIgfSBmcm9tICduMyc7XG5pbXBvcnQgeyByZWFkRmlsZSB9IGZyb20gJ2ZzL3Byb21pc2VzJztcbmltcG9ydCB3aW5zdG9uLCB7IGNyZWF0ZUxvZ2dlciB9IGZyb20gJ3dpbnN0b24nO1xuaW1wb3J0IHsgV3JpdGVySW5zdGFuY2UgfSBmcm9tICcuL3dyaXRlcic7XG5pbXBvcnQgeyBSZWFkZXJJbnN0YW5jZSB9IGZyb20gJy4vcmVhZGVyJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFByb2Nlc3NvclNoYXBlKGJhc2VJUkkgPSBwcm9jZXNzLmN3ZCgpICsgXCIvbm9kZV9tb2R1bGVzL0ByZGZjL2pzLXJ1bm5lci9pbmRleC50dGxcIikge1xuICBjb25zdCBjb25maWdGaWxlID0gYXdhaXQgcmVhZEZpbGUoYmFzZUlSSSwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSk7XG4gIGNvbnN0IGNvbmZpZ1F1YWRzID0gbmV3IFBhcnNlcigpLnBhcnNlKGNvbmZpZ0ZpbGUpO1xuICBjb25zdCBzaGFwZXMgPSBleHRyYWN0U2hhcGVzKGNvbmZpZ1F1YWRzKTtcblxuICByZXR1cm4gc2hhcGVzO1xufVxuXG5leHBvcnQgY2xhc3MgVGVzdENsaWVudCBleHRlbmRzIFJ1bm5lckNsaWVudCB7XG4gIG5leHQ6IChzdHJlYW06IENsaWVudFJlYWRhYmxlU3RyZWFtPERhdGFDaHVuaz4pID0+IHVua25vd25cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignbG9jYWxob3N0OjU0MDAnLCBncnBjLmNyZWRlbnRpYWxzLmNyZWF0ZUluc2VjdXJlKCkpXG4gIH1cblxuICBuZXh0U3RyZWFtKCk6IFByb21pc2U8Q2xpZW50UmVhZGFibGVTdHJlYW08RGF0YUNodW5rPj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzKSA9PiAodGhpcy5uZXh0ID0gcmVzKSlcbiAgfVxuXG4gIHJlY2VpdmVTdHJlYW1NZXNzYWdlKCk6IENsaWVudFJlYWRhYmxlU3RyZWFtPERhdGFDaHVuaz4ge1xuICAgIGNvbnN0IHN0cmVhbSA9IG5ldyBDbGllbnRSZWFkYWJsZVN0cmVhbUltcGw8RGF0YUNodW5rPigoZGF0YTogQnVmZmVyKSA9PiB7XG4gICAgICByZXR1cm4geyBkYXRhIH1cbiAgICB9KVxuICAgIHRoaXMubmV4dChzdHJlYW0pXG4gICAgcmV0dXJuIHN0cmVhbVxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBvbmU8VD4oaXRlcjogQXN5bmNJdGVyYWJsZTxUPik6IFByb21pc2U8VCB8IHVuZGVmaW5lZD4ge1xuICBmb3IgYXdhaXQgKGNvbnN0IGl0ZW0gb2YgaXRlcikge1xuICAgIHJldHVybiBpdGVtXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGNsaWVudCA9IG5ldyBUZXN0Q2xpZW50KClcbmV4cG9ydCBjb25zdCB1cmkgPSAnc29tZVVyaSdcbmV4cG9ydCBjb25zdCBsb2dnZXIgPSBjcmVhdGVMb2dnZXIoe1xuICB0cmFuc3BvcnRzOiBuZXcgd2luc3Rvbi50cmFuc3BvcnRzLkNvbnNvbGUoeyBsZXZlbDogcHJvY2Vzcy5lbnZbJ0RFQlVHJ10gfHwgJ2luZm8nIH0pLFxufSlcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVdyaXRlcihpcmkgPSB1cmkpOiBbV3JpdGVySW5zdGFuY2UsIFJlYWRlckluc3RhbmNlXSB7XG4gIGNvbnN0IHJlYWRlciA9IGNyZWF0ZVJlYWRlcihpcmkpO1xuICBjb25zdCB3cml0ZVN0cmVhbSA9IG5ldyBXcml0ZXJJbnN0YW5jZShpcmksIGNsaWVudCwgYXN5bmMgKG1zZykgPT4ge1xuICAgIGlmIChtc2cubXNnKSB7XG4gICAgICByZWFkZXIuaGFuZGxlTXNnKG1zZy5tc2cpO1xuICAgIH1cbiAgICBpZihtc2cuY2xvc2UpIHtcbiAgICAgIHJlYWRlci5jbG9zZSgpXG4gICAgfVxuICB9LCBsb2dnZXIpXG4gIHJldHVybiBbd3JpdGVTdHJlYW0sIHJlYWRlcl07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZWFkZXIoaXJpID0gdXJpKTogUmVhZGVySW5zdGFuY2Uge1xuICBjb25zdCByZWFkZXIgPSBuZXcgUmVhZGVySW5zdGFuY2UoaXJpLCBjbGllbnQsIGxvZ2dlcik7XG4gIHJldHVybiByZWFkZXI7XG59XG4iXX0=
|