@rdfc/js-runner 2.0.0-alpha.7 → 2.0.0-alpha.9

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.
Files changed (62) hide show
  1. package/.idea/LNKD.tech Editor.xml +194 -0
  2. package/.idea/codeStyles/Project.xml +52 -0
  3. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  4. package/.idea/inspectionProfiles/Project_Default.xml +6 -0
  5. package/.idea/js-runner.iml +12 -0
  6. package/{examples/echo/.idea → .idea}/modules.xml +1 -1
  7. package/.idea/vcs.xml +6 -0
  8. package/dist/args.d.ts +4 -0
  9. package/dist/args.js +58 -0
  10. package/dist/connectors/file.d.ts +15 -0
  11. package/dist/connectors/file.js +89 -0
  12. package/dist/connectors/http.d.ts +14 -0
  13. package/dist/connectors/http.js +82 -0
  14. package/dist/connectors/kafka.d.ts +48 -0
  15. package/dist/connectors/kafka.js +68 -0
  16. package/dist/connectors/ws.d.ts +10 -0
  17. package/dist/connectors/ws.js +72 -0
  18. package/dist/connectors.d.ts +73 -0
  19. package/dist/connectors.js +168 -0
  20. package/dist/index.cjs +732 -0
  21. package/dist/index.d.ts +42 -0
  22. package/dist/index.js +83 -0
  23. package/dist/tsconfig.tsbuildinfo +1 -0
  24. package/dist/util.d.ts +71 -0
  25. package/dist/util.js +92 -0
  26. package/examples/echo/src/processors.ts +29 -31
  27. package/lib/index.d.ts +2 -1
  28. package/lib/index.js +3 -2
  29. package/lib/jsonld.js +3 -2
  30. package/lib/logger.d.ts +3 -1
  31. package/lib/logger.js +23 -1
  32. package/lib/reader.js +8 -16
  33. package/lib/reexports.d.ts +2 -2
  34. package/lib/reexports.js +3 -3
  35. package/lib/runner.js +27 -16
  36. package/lib/testUtils.js +6 -4
  37. package/lib/tsconfig.tsbuildinfo +1 -1
  38. package/lib/util_processors.js +1 -1
  39. package/lib/writer.js +1 -1
  40. package/package.json +1 -1
  41. package/src/index.ts +2 -1
  42. package/src/jsonld.ts +4 -1
  43. package/src/logger.ts +27 -1
  44. package/src/reader.ts +124 -130
  45. package/src/reexports.ts +5 -2
  46. package/src/runner.ts +158 -143
  47. package/src/testUtils.ts +34 -25
  48. package/src/util_processors.ts +1 -1
  49. package/src/writer.ts +66 -66
  50. package/examples/echo/.idea/echo.iml +0 -9
  51. package/examples/echo/.idea/misc.xml +0 -6
  52. package/examples/echo/.idea/vcs.xml +0 -7
  53. package/examples/echo/.swls/config.json +0 -1
  54. package/examples/echo/index.ttl +0 -3
  55. package/examples/echo/minimal.ttl +0 -90
  56. package/examples/echo/shacl.ttl +0 -9
  57. package/examples/echo/shape.ttl +0 -1339
  58. package/examples/echo/test.ttl +0 -11
  59. package/examples/echo/untitled:/types/MyType.ttl +0 -0
  60. package/file:/home/silvius/Projects/mumo-pipeline/ldes/http_3A_2F_2Fdata.mumo.be_2Fstreams_2Fnodes_2Fdefault/root/index.trig +0 -3
  61. package/ldes/http_3A_2F_2Fdata.mumo.be_2Fstreams_2Fnodes_2Fdefault/root/index.trig +0 -3
  62. package/minimal.ttl +0 -99
package/lib/logger.js CHANGED
@@ -1,3 +1,4 @@
1
+ import winston from 'winston';
1
2
  import Transport from 'winston-transport';
2
3
  export class RpcTransport extends Transport {
3
4
  stream;
@@ -23,5 +24,26 @@ export class RpcTransport extends Transport {
23
24
  callback();
24
25
  }
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
+ });
26
48
  }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLFNBQVMsTUFBTSxtQkFBbUIsQ0FBQTtBQUl6QyxNQUFNLE9BQU8sWUFBYSxTQUFRLFNBQVM7SUFDeEIsTUFBTSxDQUF1QztJQUM3QyxRQUFRLENBQVU7SUFDbEIsT0FBTyxDQUFVO0lBQ2xDLFlBQVksSUFJWDtRQUNDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFBO1FBRXpCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQTtRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUE7UUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQTtJQUNuQyxDQUFDO0lBRUQsR0FBRyxDQUFDLElBQXNCLEVBQUUsUUFBb0I7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2Y7Z0JBQ0UsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPO2dCQUNqQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2FBQ3RCLEVBQ0QsUUFBUSxDQUNULENBQUE7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtZQUNuQyxRQUFRLEVBQUUsQ0FBQTtRQUNaLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgd2luc3RvbiBmcm9tICd3aW5zdG9uJ1xuaW1wb3J0IFRyYW5zcG9ydCBmcm9tICd3aW5zdG9uLXRyYW5zcG9ydCdcblxuaW1wb3J0ICogYXMgZ3JwYyBmcm9tICdAZ3JwYy9ncnBjLWpzJ1xuaW1wb3J0IHsgTG9nTWVzc2FnZSB9IGZyb20gJ0ByZGZjL3Byb3RvJ1xuZXhwb3J0IGNsYXNzIFJwY1RyYW5zcG9ydCBleHRlbmRzIFRyYW5zcG9ydCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3RyZWFtOiBncnBjLkNsaWVudFdyaXRhYmxlU3RyZWFtPExvZ01lc3NhZ2U+XG4gIHByaXZhdGUgcmVhZG9ubHkgZW50aXRpZXM6IHN0cmluZ1tdXG4gIHByaXZhdGUgcmVhZG9ubHkgYWxpYXNlczogc3RyaW5nW11cbiAgY29uc3RydWN0b3Iob3B0czoge1xuICAgIHN0cmVhbTogZ3JwYy5DbGllbnRXcml0YWJsZVN0cmVhbTxMb2dNZXNzYWdlPlxuICAgIGVudGl0aWVzOiBzdHJpbmdbXVxuICAgIGFsaWFzZXM/OiBzdHJpbmdbXVxuICB9KSB7XG4gICAgc3VwZXIoeyBsZXZlbDogJ2RlYnVnJyB9KVxuXG4gICAgdGhpcy5zdHJlYW0gPSBvcHRzLnN0cmVhbVxuICAgIHRoaXMuZW50aXRpZXMgPSBvcHRzLmVudGl0aWVzXG4gICAgdGhpcy5hbGlhc2VzID0gb3B0cy5hbGlhc2VzIHx8IFtdXG4gIH1cblxuICBsb2coaW5mbzogd2luc3Rvbi5Mb2dFbnRyeSwgY2FsbGJhY2s6ICgpID0+IHZvaWQpIHtcbiAgICBpZiAoIXRoaXMuc3RyZWFtLmNsb3NlZCkge1xuICAgICAgdGhpcy5zdHJlYW0ud3JpdGUoXG4gICAgICAgIHtcbiAgICAgICAgICBtc2c6IGluZm8ubWVzc2FnZSxcbiAgICAgICAgICBsZXZlbDogaW5mby5sZXZlbCxcbiAgICAgICAgICBlbnRpdGllczogdGhpcy5lbnRpdGllcyxcbiAgICAgICAgICBhbGlhc2VzOiB0aGlzLmFsaWFzZXMsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGxiYWNrLFxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZygnT3V0cHV0IHN0cmVhbSBjbG9zZWQnKVxuICAgICAgY2FsbGJhY2soKVxuICAgIH1cbiAgfVxufVxuIl19
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE9BQW1CLE1BQU0sU0FBUyxDQUFBO0FBQ3pDLE9BQU8sU0FBUyxNQUFNLG1CQUFtQixDQUFBO0FBS3pDLE1BQU0sT0FBTyxZQUFhLFNBQVEsU0FBUztJQUN4QixNQUFNLENBQXVDO0lBQzdDLFFBQVEsQ0FBVTtJQUNsQixPQUFPLENBQVU7SUFFbEMsWUFBWSxJQUlYO1FBQ0MsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUE7UUFFekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFBO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQTtRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFBO0lBQ25DLENBQUM7SUFFRCxHQUFHLENBQUMsSUFBc0IsRUFBRSxRQUFvQjtRQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZjtnQkFDRSxHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQ2pCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUN2QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87YUFDdEIsRUFDRCxRQUFRLENBQ1QsQ0FBQTtRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO1lBQ25DLFFBQVEsRUFBRSxDQUFBO1FBQ1osQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsTUFBYztRQUN2QixPQUFPLElBQUksWUFBWSxDQUFDO1lBQ3RCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixRQUFRLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDO1lBQ3BDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDLENBQUE7SUFDSixDQUFDO0NBQ0Y7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLFVBQWtCLEVBQUUsU0FBaUI7SUFDaEUsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNwRCxJQUFJLENBQUMsWUFBWSxZQUFZLEVBQUUsQ0FBQztZQUM5QixPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDaEMsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFBO0lBQ1YsQ0FBQyxDQUFDLENBQUE7SUFFRixPQUFPLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDMUIsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLO1FBQ3ZCLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTTtRQUN6QixXQUFXLEVBQUUsVUFBVSxDQUFDLFdBQVc7UUFDbkMsVUFBVSxFQUFFLGFBQWE7S0FDMUIsQ0FBQyxDQUFBO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB3aW5zdG9uLCB7IExvZ2dlciB9IGZyb20gJ3dpbnN0b24nXG5pbXBvcnQgVHJhbnNwb3J0IGZyb20gJ3dpbnN0b24tdHJhbnNwb3J0J1xuXG5pbXBvcnQgKiBhcyBncnBjIGZyb20gJ0BncnBjL2dycGMtanMnXG5pbXBvcnQgeyBMb2dNZXNzYWdlIH0gZnJvbSAnQHJkZmMvcHJvdG8nXG5cbmV4cG9ydCBjbGFzcyBScGNUcmFuc3BvcnQgZXh0ZW5kcyBUcmFuc3BvcnQge1xuICBwcml2YXRlIHJlYWRvbmx5IHN0cmVhbTogZ3JwYy5DbGllbnRXcml0YWJsZVN0cmVhbTxMb2dNZXNzYWdlPlxuICBwcml2YXRlIHJlYWRvbmx5IGVudGl0aWVzOiBzdHJpbmdbXVxuICBwcml2YXRlIHJlYWRvbmx5IGFsaWFzZXM6IHN0cmluZ1tdXG5cbiAgY29uc3RydWN0b3Iob3B0czoge1xuICAgIHN0cmVhbTogZ3JwYy5DbGllbnRXcml0YWJsZVN0cmVhbTxMb2dNZXNzYWdlPlxuICAgIGVudGl0aWVzOiBzdHJpbmdbXVxuICAgIGFsaWFzZXM/OiBzdHJpbmdbXVxuICB9KSB7XG4gICAgc3VwZXIoeyBsZXZlbDogJ2RlYnVnJyB9KVxuXG4gICAgdGhpcy5zdHJlYW0gPSBvcHRzLnN0cmVhbVxuICAgIHRoaXMuZW50aXRpZXMgPSBvcHRzLmVudGl0aWVzXG4gICAgdGhpcy5hbGlhc2VzID0gb3B0cy5hbGlhc2VzIHx8IFtdXG4gIH1cblxuICBsb2coaW5mbzogd2luc3Rvbi5Mb2dFbnRyeSwgY2FsbGJhY2s6ICgpID0+IHZvaWQpIHtcbiAgICBpZiAoIXRoaXMuc3RyZWFtLmNsb3NlZCkge1xuICAgICAgdGhpcy5zdHJlYW0ud3JpdGUoXG4gICAgICAgIHtcbiAgICAgICAgICBtc2c6IGluZm8ubWVzc2FnZSxcbiAgICAgICAgICBsZXZlbDogaW5mby5sZXZlbCxcbiAgICAgICAgICBlbnRpdGllczogdGhpcy5lbnRpdGllcyxcbiAgICAgICAgICBhbGlhc2VzOiB0aGlzLmFsaWFzZXMsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGxiYWNrLFxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZygnT3V0cHV0IHN0cmVhbSBjbG9zZWQnKVxuICAgICAgY2FsbGJhY2soKVxuICAgIH1cbiAgfVxuXG4gIHdpdGhFbnRpdHkoZW50aXR5OiBzdHJpbmcpOiBScGNUcmFuc3BvcnQge1xuICAgIHJldHVybiBuZXcgUnBjVHJhbnNwb3J0KHtcbiAgICAgIHN0cmVhbTogdGhpcy5zdHJlYW0sXG4gICAgICBlbnRpdGllczogWy4uLnRoaXMuZW50aXRpZXMsIGVudGl0eV0sXG4gICAgICBhbGlhc2VzOiB0aGlzLmFsaWFzZXMsXG4gICAgfSlcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0ZW5kTG9nZ2VyKGJhc2VMb2dnZXI6IExvZ2dlciwgbmV3RW50aXR5OiBzdHJpbmcpOiBMb2dnZXIge1xuICBjb25zdCBuZXdUcmFuc3BvcnRzID0gYmFzZUxvZ2dlci50cmFuc3BvcnRzLm1hcCgodCkgPT4ge1xuICAgIGlmICh0IGluc3RhbmNlb2YgUnBjVHJhbnNwb3J0KSB7XG4gICAgICByZXR1cm4gdC53aXRoRW50aXR5KG5ld0VudGl0eSlcbiAgICB9XG4gICAgcmV0dXJuIHRcbiAgfSlcblxuICByZXR1cm4gd2luc3Rvbi5jcmVhdGVMb2dnZXIoe1xuICAgIGxldmVsOiBiYXNlTG9nZ2VyLmxldmVsLFxuICAgIGZvcm1hdDogYmFzZUxvZ2dlci5mb3JtYXQsXG4gICAgZGVmYXVsdE1ldGE6IGJhc2VMb2dnZXIuZGVmYXVsdE1ldGEsXG4gICAgdHJhbnNwb3J0czogbmV3VHJhbnNwb3J0cyxcbiAgfSlcbn1cbiJdfQ==
package/lib/reader.js CHANGED
@@ -8,22 +8,18 @@ class MyIter {
8
8
  }
9
9
  push(buffer) {
10
10
  const item = this.convertor.from(buffer);
11
+ this.queue.push(item);
11
12
  if (this.resolveNext) {
12
- this.resolveNext(item);
13
+ this.resolveNext(undefined);
13
14
  this.resolveNext = null;
14
15
  }
15
- else {
16
- this.queue.push(item);
17
- }
18
16
  }
19
17
  close() {
18
+ this.queue.push(undefined);
20
19
  if (this.resolveNext) {
21
20
  this.resolveNext(undefined);
22
21
  this.resolveNext = null;
23
22
  }
24
- else {
25
- this.queue.push(undefined);
26
- }
27
23
  }
28
24
  async pushStream(chunks) {
29
25
  const stream = (async function* (stream) {
@@ -33,13 +29,11 @@ class MyIter {
33
29
  }
34
30
  })(chunks);
35
31
  const item = await this.convertor.fromStream(stream);
32
+ this.queue.push(item);
36
33
  if (this.resolveNext) {
37
- this.resolveNext(item);
34
+ this.resolveNext(undefined);
38
35
  this.resolveNext = null;
39
36
  }
40
- else {
41
- this.queue.push(item);
42
- }
43
37
  }
44
38
  async *[Symbol.asyncIterator]() {
45
39
  while (true) {
@@ -50,10 +44,7 @@ class MyIter {
50
44
  yield item;
51
45
  }
52
46
  else {
53
- const item = await new Promise((resolve) => (this.resolveNext = resolve));
54
- if (item === undefined)
55
- break;
56
- yield item;
47
+ await new Promise((resolve) => (this.resolveNext = resolve));
57
48
  }
58
49
  }
59
50
  }
@@ -90,6 +81,7 @@ export class ReaderInstance {
90
81
  }
91
82
  handleMsg(msg) {
92
83
  this.logger.debug(`${this.uri} handling message`);
84
+ console.log(`${this.uri} handling message`);
93
85
  for (const iter of this.iterators) {
94
86
  iter.push(msg.data);
95
87
  }
@@ -107,4 +99,4 @@ export class ReaderInstance {
107
99
  }
108
100
  }
109
101
  }
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQ0gsWUFBWSxFQUVaLFdBQVcsRUFDWCxlQUFlLEVBQ2YsZUFBZSxHQUNsQixNQUFNLGFBQWEsQ0FBQTtBQXFCcEIsTUFBTSxNQUFNO0lBQ0EsU0FBUyxDQUFjO0lBQ3ZCLEtBQUssR0FBc0IsRUFBRSxDQUFBO0lBQzdCLFdBQVcsR0FBNEMsSUFBSSxDQUFBO0lBRW5FLFlBQVksU0FBdUI7UUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUE7SUFDOUIsQ0FBQztJQUVELElBQUksQ0FBQyxNQUFrQjtRQUNuQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN4QyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFBO1FBQzNCLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDekIsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtZQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQTtRQUMzQixDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQzlCLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUF1QztRQUNwRCxNQUFNLE1BQU0sR0FBRyxDQUFDLEtBQUssU0FBUyxDQUFD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SSxDQUFDLEdBQUcsbUJBQW1CLENBQUMsQ0FBQTtRQUNqRCxLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUN2QixDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUs7UUFDRCxLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDaEIsQ0FBQztJQUNMLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxHQUFrQjtRQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLDZCQUE2QixDQUFDLENBQUE7UUFDM0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsRUFBRyxDQUFDLENBQUE7UUFDeEQsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUMzQixDQUFDO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xpZW50UmVhZGFibGVTdHJlYW0gfSBmcm9tICdAZ3JwYy9ncnBjLWpzJ1xuaW1wb3J0IHsgRGF0YUNodW5rLCBNZXNzYWdlLCBSdW5uZXJDbGllbnQsIFN0cmVhbU1lc3NhZ2UgfSBmcm9tICdAcmRmYy9wcm90bydcbmltcG9ydCB3aW5zdG9uIGZyb20gJ3dpbnN0b24nXG5pbXBvcnQge1xuICAgIEFueUNvbnZlcnRvcixcbiAgICBDb252ZXJ0b3IsXG4gICAgTm9Db252ZXJ0b3IsXG4gICAgU3RyZWFtQ29udmVydG9yLFxuICAgIFN0cmluZ0NvbnZlcnRvcixcbn0gZnJvbSAnLi9jb252ZXJ0b3InXG5cbmV4cG9ydCB0eXBlIEFueSA9XG4gICAgfCB7XG4gICAgICAgIHN0cmluZzogc3RyaW5nXG4gICAgfVxuICAgIHwge1xuICAgICAgICBzdHJlYW06IEFzeW5jR2VuZXJhdG9yPFVpbnQ4QXJyYXk+XG4gICAgfVxuICAgIHwge1xuICAgICAgICBidWZmZXI6IFVpbnQ4QXJyYXlcbiAgICB9XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVhZGVyIHtcbiAgICByZWFkb25seSB1cmk6IHN0cmluZ1xuICAgIHN0cmluZ3MoKTogQXN5bmNJdGVyYWJsZTxzdHJpbmc+XG4gICAgc3RyZWFtcygpOiBBc3luY0l0ZXJhYmxlPEFzeW5jR2VuZXJhdG9yPFVpbnQ4QXJyYXk+PlxuICAgIGJ1ZmZlcnMoKTogQXN5bmNJdGVyYWJsZTxVaW50OEFycmF5PlxuICAgIGFueXMoKTogQXN5bmNJdGVyYWJsZTxBbnk+XG59XG5cbmNsYXNzIE15SXRlcjxUPiBpbXBsZW1lbnRzIEFzeW5jSXRlcmFibGU8VD4ge1xuICAgIHByaXZhdGUgY29udmVydG9yOiBDb252ZXJ0b3I8VD5cbiAgICBwcml2YXRlIHF1ZXVlOiAoVCB8IHVuZGVmaW5lZClbXSA9IFtdXG4gICAgcHJpdmF0ZSByZXNvbHZlTmV4dDogKCh2YWx1ZTogVCB8IHVuZGVmaW5lZCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbFxuXG4gICAgY29uc3RydWN0b3IoY29udmVydG9yOiBDb252ZXJ0b3I8VD4pIHtcbiAgICAgICAgdGhpcy5jb252ZXJ0b3IgPSBjb252ZXJ0b3JcbiAgICB9XG5cbiAgICBwdXNoKGJ1ZmZlcjogVWludDhBcnJheSkge1xuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5jb252ZXJ0b3IuZnJvbShidWZmZXIpXG4gICAgICAgIGlmICh0aGlzLnJlc29sdmVOZXh0KSB7XG4gICAgICAgICAgICB0aGlzLnJlc29sdmVOZXh0KGl0ZW0pXG4gICAgICAgICAgICB0aGlzLnJlc29sdmVOZXh0ID0gbnVsbFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5xdWV1ZS5wdXNoKGl0ZW0pXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbG9zZSgpIHtcbiAgICAgICAgaWYgKHRoaXMucmVzb2x2ZU5leHQpIHtcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZU5leHQodW5kZWZpbmVkKVxuICAgICAgICAgICAgdGhpcy5yZXNvbHZlTmV4dCA9IG51bGxcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucXVldWUucHVzaCh1bmRlZmluZWQpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBwdXNoU3RyZWFtKGNodW5rczogQ2xpZW50UmVhZGFibGVTdHJlYW08RGF0YUNodW5rPikge1xuICAgICAgICBjb25zdCBzdHJlYW0gPSAoYXN5bmMgZnVuY3Rpb24qKHN0cmVhbSkge1xuICAgICAgICAgICAgZm9yIGF3YWl0IChjb25zdCBjIG9mIHN0cmVhbSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNodW5rOiBEYXRhQ2h1bmsgPSBjXG4gICAgICAgICAgICAgICAgeWllbGQgY2h1bmsuZGF0YVxuICAgICAgICAgICAgfVxuICAgICAgICB9KShjaHVua3MpXG4gICAgICAgIGNvbnN0IGl0ZW0gPSBhd2FpdCB0aGlzLmNvbnZlcnRvci5mcm9tU3RyZWFtKHN0cmVhbSlcbiAgICAgICAgaWYgKHRoaXMucmVzb2x2ZU5leHQpIHtcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZU5leHQoaXRlbSlcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZU5leHQgPSBudWxsXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnF1ZXVlLnB1c2goaXRlbSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jICpbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCkge1xuICAgICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucXVldWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLnF1ZXVlLnNoaWZ0KCkhXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0gPT09IHVuZGVmaW5lZCkgYnJlYWtcbiAgICAgICAgICAgICAgICB5aWVsZCBpdGVtXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBhd2FpdCBuZXcgUHJvbWlzZTxUIHwgdW5kZWZpbmVkPihcbiAgICAgICAgICAgICAgICAgICAgKHJlc29sdmUpID0+ICh0aGlzLnJlc29sdmVOZXh0ID0gcmVzb2x2ZSksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGlmIChpdGVtID09PSB1bmRlZmluZWQpIGJyZWFrXG4gICAgICAgICAgICAgICAgeWllbGQgaXRlbVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmVhZGVySW5zdGFuY2UgaW1wbGVtZW50cyBSZWFkZXIge1xuICAgIHByaXZhdGUgY2xpZW50OiBSdW5uZXJDbGllbnRcbiAgICByZWFkb25seSB1cmk6IHN0cmluZ1xuICAgIHByaXZhdGUgbG9nZ2VyOiB3aW5zdG9uLkxvZ2dlclxuXG4gICAgcHJpdmF0ZSBpdGVyYXRvcnM6IE15SXRlcjx1bmtub3duPltdID0gW11cblxuICAgIGNvbnN0cnVjdG9yKHVyaTogc3RyaW5nLCBjbGllbnQ6IFJ1bm5lckNsaWVudCwgbG9nZ2VyOiB3aW5zdG9uLkxvZ2dlcikge1xuICAgICAgICB0aGlzLnVyaSA9IHVyaVxuICAgICAgICB0aGlzLmNsaWVudCA9IGNsaWVudFxuICAgICAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlclxuICAgIH1cblxuICAgIGFueXMoKTogQXN5bmNJdGVyYWJsZTxBbnk+IHtcbiAgICAgICAgY29uc3QgaXRlciA9IG5ldyBNeUl0ZXIoQW55Q29udmVydG9yKVxuICAgICAgICB0aGlzLml0ZXJhdG9ycy5wdXNoKGl0ZXIpXG4gICAgICAgIHJldHVybiBpdGVyXG4gICAgfVxuXG4gICAgc3RyaW5ncygpOiBBc3luY0l0ZXJhYmxlPHN0cmluZz4ge1xuICAgICAgICBjb25zdCBpdGVyID0gbmV3IE15SXRlcihTdHJpbmdDb252ZXJ0b3IpXG4gICAgICAgIHRoaXMuaXRlcmF0b3JzLnB1c2goaXRlcilcbiAgICAgICAgcmV0dXJuIGl0ZXJcbiAgICB9XG5cbiAgICBidWZmZXJzKCk6IEFzeW5jSXRlcmFibGU8VWludDhBcnJheT4ge1xuICAgICAgICBjb25zdCBpdGVyID0gbmV3IE15SXRlcihOb0NvbnZlcnRvcilcbiAgICAgICAgdGhpcy5pdGVyYXRvcnMucHVzaChpdGVyKVxuICAgICAgICByZXR1cm4gaXRlclxuICAgIH1cblxuICAgIHN0cmVhbXMoKTogQXN5bmNJdGVyYWJsZTxBc3luY0dlbmVyYXRvcjxVaW50OEFycmF5Pj4ge1xuICAgICAgICBjb25zdCBpdGVyID0gbmV3IE15SXRlcihTdHJlYW1Db252ZXJ0b3IpXG4gICAgICAgIHRoaXMuaXRlcmF0b3JzLnB1c2goaXRlcilcbiAgICAgICAgcmV0dXJuIGl0ZXJcbiAgICB9XG5cbiAgICBoYW5kbGVNc2cobXNnOiBNZXNzYWdlKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGAke3RoaXMudXJpfSBoYW5kbGluZyBtZXNzYWdlYClcbiAgICAgICAgZm9yIChjb25zdCBpdGVyIG9mIHRoaXMuaXRlcmF0b3JzKSB7XG4gICAgICAgICAgICBpdGVyLnB1c2gobXNnLmRhdGEpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbG9zZSgpIHtcbiAgICAgICAgZm9yIChjb25zdCBpdGVyIG9mIHRoaXMuaXRlcmF0b3JzKSB7XG4gICAgICAgICAgICBpdGVyLmNsb3NlKClcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZVN0cmVhbWluZ01lc3NhZ2UobXNnOiBTdHJlYW1NZXNzYWdlKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGAke3RoaXMudXJpfSBoYW5kbGluZyBzdHJlYW1pbmcgbWVzc2FnZWApXG4gICAgICAgIGNvbnN0IGNodW5rcyA9IHRoaXMuY2xpZW50LnJlY2VpdmVTdHJlYW1NZXNzYWdlKG1zZy5pZCEpXG4gICAgICAgIGZvciAoY29uc3QgaXRlciBvZiB0aGlzLml0ZXJhdG9ycykge1xuICAgICAgICAgICAgaXRlci5wdXNoU3RyZWFtKGNodW5rcylcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQ0wsWUFBWSxFQUVaLFdBQVcsRUFDWCxlQUFlLEVBQ2YsZUFBZSxHQUNoQixNQUFNLGFBQWEsQ0FBQTtBQXFCcEIsTUFBTSxNQUFNO0lBQ0YsU0FBUyxDQUFjO0lBQ3ZCLEtBQUssR0FBc0IsRUFBRSxDQUFBO0lBQzdCLFdBQVcsR0FBd0MsSUFBSSxDQUFBO0lBRS9ELFlBQVksU0FBdUI7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUE7SUFDNUIsQ0FBQztJQUVELElBQUksQ0FBQyxNQUFrQjtRQUNyQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN4QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNyQixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1lBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFBO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQzFCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUE7WUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUE7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQXVDO1FBQ3RELE1BQU0sTUFBTSxHQUFHLENBQUMsS0FBSyxTQUFTLENBQUMsRUFBRSxNQUFNO1lBQ3JDLElBQUksS0FBSyxFQUFFLE1BQU0sQ0FB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QUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDckIsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLO1FBQ0gsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxHQUFrQjtRQUN2QyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLDZCQUE2QixDQUFDLENBQUE7UUFDM0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsRUFBRyxDQUFDLENBQUE7UUFDeEQsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN6QixDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xpZW50UmVhZGFibGVTdHJlYW0gfSBmcm9tICdAZ3JwYy9ncnBjLWpzJ1xuaW1wb3J0IHsgRGF0YUNodW5rLCBNZXNzYWdlLCBSdW5uZXJDbGllbnQsIFN0cmVhbU1lc3NhZ2UgfSBmcm9tICdAcmRmYy9wcm90bydcbmltcG9ydCB3aW5zdG9uIGZyb20gJ3dpbnN0b24nXG5pbXBvcnQge1xuICBBbnlDb252ZXJ0b3IsXG4gIENvbnZlcnRvcixcbiAgTm9Db252ZXJ0b3IsXG4gIFN0cmVhbUNvbnZlcnRvcixcbiAgU3RyaW5nQ29udmVydG9yLFxufSBmcm9tICcuL2NvbnZlcnRvcidcblxuZXhwb3J0IHR5cGUgQW55ID1cbiAgfCB7XG4gICAgICBzdHJpbmc6IHN0cmluZ1xuICAgIH1cbiAgfCB7XG4gICAgICBzdHJlYW06IEFzeW5jR2VuZXJhdG9yPFVpbnQ4QXJyYXk+XG4gICAgfVxuICB8IHtcbiAgICAgIGJ1ZmZlcjogVWludDhBcnJheVxuICAgIH1cblxuZXhwb3J0IGludGVyZmFjZSBSZWFkZXIge1xuICByZWFkb25seSB1cmk6IHN0cmluZ1xuICBzdHJpbmdzKCk6IEFzeW5jSXRlcmFibGU8c3RyaW5nPlxuICBzdHJlYW1zKCk6IEFzeW5jSXRlcmFibGU8QXN5bmNHZW5lcmF0b3I8VWludDhBcnJheT4+XG4gIGJ1ZmZlcnMoKTogQXN5bmNJdGVyYWJsZTxVaW50OEFycmF5PlxuICBhbnlzKCk6IEFzeW5jSXRlcmFibGU8QW55PlxufVxuXG5jbGFzcyBNeUl0ZXI8VD4gaW1wbGVtZW50cyBBc3luY0l0ZXJhYmxlPFQ+IHtcbiAgcHJpdmF0ZSBjb252ZXJ0b3I6IENvbnZlcnRvcjxUPlxuICBwcml2YXRlIHF1ZXVlOiAoVCB8IHVuZGVmaW5lZClbXSA9IFtdXG4gIHByaXZhdGUgcmVzb2x2ZU5leHQ6ICgodmFsdWU6IHVuZGVmaW5lZCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbFxuXG4gIGNvbnN0cnVjdG9yKGNvbnZlcnRvcjogQ29udmVydG9yPFQ+KSB7XG4gICAgdGhpcy5jb252ZXJ0b3IgPSBjb252ZXJ0b3JcbiAgfVxuXG4gIHB1c2goYnVmZmVyOiBVaW50OEFycmF5KSB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuY29udmVydG9yLmZyb20oYnVmZmVyKVxuICAgIHRoaXMucXVldWUucHVzaChpdGVtKVxuICAgIGlmICh0aGlzLnJlc29sdmVOZXh0KSB7XG4gICAgICB0aGlzLnJlc29sdmVOZXh0KHVuZGVmaW5lZClcbiAgICAgIHRoaXMucmVzb2x2ZU5leHQgPSBudWxsXG4gICAgfVxuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5xdWV1ZS5wdXNoKHVuZGVmaW5lZClcbiAgICBpZiAodGhpcy5yZXNvbHZlTmV4dCkge1xuICAgICAgdGhpcy5yZXNvbHZlTmV4dCh1bmRlZmluZWQpXG4gICAgICB0aGlzLnJlc29sdmVOZXh0ID0gbnVsbFxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHB1c2hTdHJlYW0oY2h1bmtzOiBDbGllbnRSZWFkYWJsZVN0cmVhbTxEYXRhQ2h1bms+KSB7XG4gICAgY29uc3Qgc3RyZWFtID0gKGFzeW5jIGZ1bmN0aW9uKiAoc3RyZWFtKSB7XG4gICAgICBmb3IgYXdhaXQgKGNvbnN0IGMgb2Ygc3RyZWFtKSB7XG4gICAgICAgIGNvbnN0IGNodW5rOiBEYXRhQ2h1bmsgPSBjXG4gICAgICAgIHlpZWxkIGNodW5rLmRhdGFcbiAgICAgIH1cbiAgICB9KShjaHVua3MpXG4gICAgY29uc3QgaXRlbSA9IGF3YWl0IHRoaXMuY29udmVydG9yLmZyb21TdHJlYW0oc3RyZWFtKVxuICAgIHRoaXMucXVldWUucHVzaChpdGVtKVxuICAgIGlmICh0aGlzLnJlc29sdmVOZXh0KSB7XG4gICAgICB0aGlzLnJlc29sdmVOZXh0KHVuZGVmaW5lZClcbiAgICAgIHRoaXMucmVzb2x2ZU5leHQgPSBudWxsXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgKltTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKSB7XG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGlmICh0aGlzLnF1ZXVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMucXVldWUuc2hpZnQoKSFcbiAgICAgICAgaWYgKGl0ZW0gPT09IHVuZGVmaW5lZCkgYnJlYWtcbiAgICAgICAgeWllbGQgaXRlbVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgbmV3IFByb21pc2U8dW5kZWZpbmVkPigocmVzb2x2ZSkgPT4gKHRoaXMucmVzb2x2ZU5leHQgPSByZXNvbHZlKSlcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlYWRlckluc3RhbmNlIGltcGxlbWVudHMgUmVhZGVyIHtcbiAgcHJpdmF0ZSBjbGllbnQ6IFJ1bm5lckNsaWVudFxuICByZWFkb25seSB1cmk6IHN0cmluZ1xuICBwcml2YXRlIGxvZ2dlcjogd2luc3Rvbi5Mb2dnZXJcblxuICBwcml2YXRlIGl0ZXJhdG9yczogTXlJdGVyPHVua25vd24+W10gPSBbXVxuXG4gIGNvbnN0cnVjdG9yKHVyaTogc3RyaW5nLCBjbGllbnQ6IFJ1bm5lckNsaWVudCwgbG9nZ2VyOiB3aW5zdG9uLkxvZ2dlcikge1xuICAgIHRoaXMudXJpID0gdXJpXG4gICAgdGhpcy5jbGllbnQgPSBjbGllbnRcbiAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlclxuICB9XG5cbiAgYW55cygpOiBBc3luY0l0ZXJhYmxlPEFueT4ge1xuICAgIGNvbnN0IGl0ZXIgPSBuZXcgTXlJdGVyKEFueUNvbnZlcnRvcilcbiAgICB0aGlzLml0ZXJhdG9ycy5wdXNoKGl0ZXIpXG4gICAgcmV0dXJuIGl0ZXJcbiAgfVxuXG4gIHN0cmluZ3MoKTogQXN5bmNJdGVyYWJsZTxzdHJpbmc+IHtcbiAgICBjb25zdCBpdGVyID0gbmV3IE15SXRlcihTdHJpbmdDb252ZXJ0b3IpXG4gICAgdGhpcy5pdGVyYXRvcnMucHVzaChpdGVyKVxuICAgIHJldHVybiBpdGVyXG4gIH1cblxuICBidWZmZXJzKCk6IEFzeW5jSXRlcmFibGU8VWludDhBcnJheT4ge1xuICAgIGNvbnN0IGl0ZXIgPSBuZXcgTXlJdGVyKE5vQ29udmVydG9yKVxuICAgIHRoaXMuaXRlcmF0b3JzLnB1c2goaXRlcilcbiAgICByZXR1cm4gaXRlclxuICB9XG5cbiAgc3RyZWFtcygpOiBBc3luY0l0ZXJhYmxlPEFzeW5jR2VuZXJhdG9yPFVpbnQ4QXJyYXk+PiB7XG4gICAgY29uc3QgaXRlciA9IG5ldyBNeUl0ZXIoU3RyZWFtQ29udmVydG9yKVxuICAgIHRoaXMuaXRlcmF0b3JzLnB1c2goaXRlcilcbiAgICByZXR1cm4gaXRlclxuICB9XG5cbiAgaGFuZGxlTXNnKG1zZzogTWVzc2FnZSkge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKGAke3RoaXMudXJpfSBoYW5kbGluZyBtZXNzYWdlYClcbiAgICBjb25zb2xlLmxvZyhgJHt0aGlzLnVyaX0gaGFuZGxpbmcgbWVzc2FnZWApXG4gICAgZm9yIChjb25zdCBpdGVyIG9mIHRoaXMuaXRlcmF0b3JzKSB7XG4gICAgICBpdGVyLnB1c2gobXNnLmRhdGEpXG4gICAgfVxuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgZm9yIChjb25zdCBpdGVyIG9mIHRoaXMuaXRlcmF0b3JzKSB7XG4gICAgICBpdGVyLmNsb3NlKClcbiAgICB9XG4gIH1cblxuICBoYW5kbGVTdHJlYW1pbmdNZXNzYWdlKG1zZzogU3RyZWFtTWVzc2FnZSkge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKGAke3RoaXMudXJpfSBoYW5kbGluZyBzdHJlYW1pbmcgbWVzc2FnZWApXG4gICAgY29uc3QgY2h1bmtzID0gdGhpcy5jbGllbnQucmVjZWl2ZVN0cmVhbU1lc3NhZ2UobXNnLmlkISlcbiAgICBmb3IgKGNvbnN0IGl0ZXIgb2YgdGhpcy5pdGVyYXRvcnMpIHtcbiAgICAgIGl0ZXIucHVzaFN0cmVhbShjaHVua3MpXG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,3 +1,3 @@
1
- export * from "@rdfc/proto";
2
- export { ClientReadableStreamImpl, ClientReadableStream } from '@grpc/grpc-js/build/src/call.js';
1
+ export * from '@rdfc/proto';
2
+ export { ClientReadableStreamImpl, ClientReadableStream, } from '@grpc/grpc-js/build/src/call.js';
3
3
  export * as grpc from '@grpc/grpc-js';
package/lib/reexports.js CHANGED
@@ -1,4 +1,4 @@
1
- export * from "@rdfc/proto";
2
- export { ClientReadableStreamImpl } from '@grpc/grpc-js/build/src/call.js';
1
+ export * from '@rdfc/proto';
2
+ export { ClientReadableStreamImpl, } from '@grpc/grpc-js/build/src/call.js';
3
3
  export * as grpc from '@grpc/grpc-js';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVleHBvcnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JlZXhwb3J0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGFBQWEsQ0FBQztBQUM1QixPQUFPLEVBQUUsd0JBQXdCLEVBQXdCLE1BQU0saUNBQWlDLENBQUE7QUFDaEcsT0FBTyxLQUFLLElBQUksTUFBTSxlQUFlLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiQHJkZmMvcHJvdG9cIjtcbmV4cG9ydCB7IENsaWVudFJlYWRhYmxlU3RyZWFtSW1wbCwgQ2xpZW50UmVhZGFibGVTdHJlYW0gfSBmcm9tICdAZ3JwYy9ncnBjLWpzL2J1aWxkL3NyYy9jYWxsLmpzJ1xuZXhwb3J0ICogYXMgZ3JwYyBmcm9tICdAZ3JwYy9ncnBjLWpzJ1xuIl19
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVleHBvcnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JlZXhwb3J0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGFBQWEsQ0FBQTtBQUMzQixPQUFPLEVBQ0wsd0JBQXdCLEdBRXpCLE1BQU0saUNBQWlDLENBQUE7QUFDeEMsT0FBTyxLQUFLLElBQUksTUFBTSxlQUFlLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICdAcmRmYy9wcm90bydcbmV4cG9ydCB7XG4gIENsaWVudFJlYWRhYmxlU3RyZWFtSW1wbCxcbiAgQ2xpZW50UmVhZGFibGVTdHJlYW0sXG59IGZyb20gJ0BncnBjL2dycGMtanMvYnVpbGQvc3JjL2NhbGwuanMnXG5leHBvcnQgKiBhcyBncnBjIGZyb20gJ0BncnBjL2dycGMtanMnXG4iXX0=
package/lib/runner.js CHANGED
@@ -33,8 +33,10 @@ export class Runner {
33
33
  }),
34
34
  ],
35
35
  });
36
- const ty = JSON.stringify(this.quads.filter(x => x.subject.value === proc.uri && x.predicate.equals(RDF.terms.type)).map(x => x.object.value));
37
- this.logger.info("parsing " + proc.uri + " type " + ty);
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);
38
40
  const args = this.shapes.lenses[RDFL.TypedExtract].execute({
39
41
  id: new NamedNode(proc.uri),
40
42
  quads: this.quads,
@@ -44,15 +46,20 @@ export class Runner {
44
46
  const clazz = jsProgram[config.clazz || 'default'];
45
47
  const instance = new clazz(args, procLogger);
46
48
  await instance.init();
47
- this.logger.info("inited " + proc.uri + " type " + ty);
49
+ this.logger.info('inited ' + proc.uri + ' type ' + ty);
48
50
  this.processors.push(instance);
49
51
  this.processorTransforms.push(instance.transform());
50
52
  await this.write({ init: { uri: proc.uri } });
51
53
  return instance;
52
54
  }
53
55
  async start() {
54
- await Promise.all(this.processors.map((x) => x.produce()));
55
- await Promise.all(this.processorTransforms);
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
+ }
56
63
  }
57
64
  createWriter(uri) {
58
65
  const ids = uri.value;
@@ -94,17 +101,21 @@ export class Runner {
94
101
  }
95
102
  }
96
103
  if (msg.pipeline) {
97
- const quads = new Parser().parse(msg.pipeline);
98
- this.shapes = extractShapes(quads, {
99
- [RDFC.Reader]: (x) => this.createReader(x.id),
100
- [RDFC.Writer]: (x) => this.createWriter(x.id)
101
- }, {
102
- [RDFC.Reader]: empty(),
103
- [RDFC.Writer]: empty()
104
- });
105
- this.quads = quads;
106
- this.logger.info("extracted shapes " + JSON.stringify(Object.keys(this.shapes.lenses)));
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
+ }
107
118
  }
108
119
  }
109
120
  }
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVubmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3J1bm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQVUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ2pELE9BQU8sRUFBVSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFJakQsT0FBTyxPQUFPLE1BQU0sU0FBUyxDQUFBO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFdkMsT0FBTyxFQUFRLEtBQUssRUFBRSxhQUFhLEVBQVUsTUFBTSxVQUFVLENBQUE7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFDdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSx5QkFBeUIsRUFBRSxHQUFHLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHL0UsTUFBTSxJQUFJLEdBQUcseUJBQXlCLENBQ2xDLHFDQUFxQyxFQUNyQyxLQUFLLEVBQ0wsTUFBTSxFQUNOLFVBQVUsRUFDVixTQUFTLEVBQ1QsY0FBYyxFQUNkLGFBQWEsRUFDYixRQUFRLEVBQ1IsWUFBWSxFQUNaLFVBQVUsQ0FDYixDQUFBO0FBRUQsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUN4QiwrQkFBK0IsRUFDL0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDUixRQUFRLEVBQ1IsUUFBUSxDQUNYLENBQUE7QUFXRCxNQUFNLE9BQU8sTUFBTTtJQUNFLE9BQU8sR0FBd0MsRUFBRSxDQUFBO0lBQ2pELE9BQU8sR0FBd0MsRUFBRSxDQUFBO0lBQ2pELE1BQU0sQ0FBYztJQUNwQixLQUFLLENBQVU7SUFDZixNQUFNLENBQVE7SUFDdkIsTUFBTSxDQUFRO0lBQ2QsS0FBSyxHQUFXLEVBQUUsQ0FBQTtJQUVULEdBQUcsQ0FBUTtJQUVYLFVBQVUsR0FBb0IsRUFBRSxDQUFBO0lBQ2hDLG1CQUFtQixHQUF1QixFQUFFLENBQUE7SUFF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QVEsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDLEtBQUssRUFBRTtnQkFDL0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDbkQsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUN0RCxFQUFFO2dCQUNDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBUTtnQkFDNUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFRO2FBQy9CLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RixDQUFDO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBPcmNoZXN0cmF0b3JNZXNzYWdlLFxuICAgIFByb2Nlc3NvcixcbiAgICBSdW5uZXJDbGllbnQsXG4gICAgUnVubmVyTWVzc2FnZSxcbn0gZnJvbSAnQHJkZmMvcHJvdG8nXG5pbXBvcnQgeyBSZWFkZXIsIFJlYWRlckluc3RhbmNlIH0gZnJvbSAnLi9yZWFkZXInXG5pbXBvcnQgeyBXcml0ZXIsIFdyaXRlckluc3RhbmNlIH0gZnJvbSAnLi93cml0ZXInXG5pbXBvcnQgeyBQcm9jZXNzb3IgYXMgUHJvYyB9IGZyb20gJy4vcHJvY2Vzc29yJ1xuaW1wb3J0IHsgTG9nZ2VyIH0gZnJvbSAnd2luc3RvbidcblxuaW1wb3J0IHdpbnN0b24gZnJvbSAnd2luc3RvbidcbmltcG9ydCB7IFJwY1RyYW5zcG9ydCB9IGZyb20gJy4vbG9nZ2VyJ1xuaW1wb3J0IHsgcGFyc2VfanNvbmxkIH0gZnJvbSAnLi9qc29ubGQnXG5pbXBvcnQgeyBDb250LCBlbXB0eSwgZXh0cmFjdFNoYXBlcywgU2hhcGVzIH0gZnJvbSAncmRmLWxlbnMnXG5pbXBvcnQgeyBOYW1lZE5vZGUsIFBhcnNlciB9IGZyb20gJ24zJ1xuaW1wb3J0IHsgY3JlYXRlTmFtZXNwYWNlLCBjcmVhdGVVcmlBbmRUZXJtTmFtZXNwYWNlLCBSREYgfSBmcm9tICdAdHJlZWNnL3R5cGVzJ1xuaW1wb3J0IHsgUXVhZCwgVGVybSB9IGZyb20gJ0ByZGZqcy90eXBlcydcblxuY29uc3QgUkRGTCA9IGNyZWF0ZVVyaUFuZFRlcm1OYW1lc3BhY2UoXG4gICAgJ2h0dHBzOi8vdzNpZC5vcmcvcmRmLWxlbnMvb250b2xvZ3kjJyxcbiAgICAnQ0JEJyxcbiAgICAnUGF0aCcsXG4gICAgJ1BhdGhMZW5zJyxcbiAgICAnQ29udGV4dCcsXG4gICAgJ1R5cGVkRXh0cmFjdCcsXG4gICAgJ0VudlZhcmlhYmxlJyxcbiAgICAnZW52S2V5JyxcbiAgICAnZW52RGVmYXVsdCcsXG4gICAgJ2RhdGF0eXBlJyxcbilcblxuY29uc3QgUkRGQyA9IGNyZWF0ZU5hbWVzcGFjZShcbiAgICAnaHR0cHM6Ly93M2lkLm9yZy9yZGYtY29ubmVjdCMnLFxuICAgICh4KSA9PiB4LFxuICAgICdSZWFkZXInLFxuICAgICdXcml0ZXInLFxuKVxuXG5leHBvcnQgdHlwZSBXcml0YWJsZSA9IChtc2c6IE9yY2hlc3RyYXRvck1lc3NhZ2UpID0+IFByb21pc2U8dW5rbm93bj5cblxudHlwZSBQcm9jZXNzb3JDb25maWcgPSB7XG4gICAgbG9jYXRpb246IHN0cmluZ1xuICAgIGZpbGU6IHN0cmluZ1xuICAgIGNsYXp6Pzogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIEZ1bGxQcm9jPEMgZXh0ZW5kcyBQcm9jPHVua25vd24+PiA9IEMgZXh0ZW5kcyBQcm9jPGluZmVyIFQ+ID8gVCAmIEMgOiB1bmtub3duO1xuZXhwb3J0IGNsYXNzIFJ1bm5lciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZWFkZXJzOiB7IFt1cmk6IHN0cmluZ106IFJlYWRlckluc3RhbmNlW10gfSA9IHt9XG4gICAgcHJpdmF0ZSByZWFkb25seSB3cml0ZXJzOiB7IFt1cmk6IHN0cmluZ106IFdyaXRlckluc3RhbmNlW10gfSA9IHt9XG4gICAgcHJpdmF0ZSByZWFkb25seSBjbGllbnQ6IFJ1bm5lckNsaWVudFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd3JpdGU6IFdyaXRhYmxlXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IExvZ2dlclxuICAgIHByaXZhdGUgc2hhcGVzOiBTaGFwZXNcbiAgICBwcml2YXRlIHF1YWRzOiBRdWFkW10gPSBbXVxuXG4gICAgcHJpdmF0ZSByZWFkb25seSB1cmk6IHN0cmluZ1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9jZXNzb3JzOiBQcm9jPHVua25vd24+W10gPSBbXVxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvY2Vzc29yVHJhbnNmb3JtczogUHJvbWlzZTx1bmtub3duPltdID0gW11cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBjbGllbnQ6IFJ1bm5lckNsaWVudCxcbiAgICAgICAgd3JpdGU6IFdyaXRhYmxlLFxuICAgICAgICB1cmk6IHN0cmluZyxcbiAgICAgICAgbG9nZ2VyOiBMb2dnZXIsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY2xpZW50ID0gY2xpZW50XG4gICAgICAgIHRoaXMud3JpdGUgPSB3cml0ZVxuICAgICAgICB0aGlzLnVyaSA9IHVyaVxuICAgICAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlclxuICAgIH1cblxuICAgIGFzeW5jIGFkZFByb2Nlc3NvcjxQIGV4dGVuZHMgUHJvYzx1bmtub3duPj4ocHJvYzogUHJvY2Vzc29yKTogUHJvbWlzZTxGdWxsUHJvYzxQPj4ge1xuICAgICAgICBjb25zdCBwcm9jTG9nZ2VyID0gd2luc3Rvbi5jcmVhdGVMb2dnZXIoe1xuICAgICAgICAgICAgdHJhbnNwb3J0czogW1xuICAgICAgICAgICAgICAgIG5ldyBScGNUcmFuc3BvcnQoe1xuICAgICAgICAgICAgICAgICAgICBlbnRpdGllczogW3Byb2MudXJpLCB0aGlzLnVyaV0sXG4gICAgICAgICAgICAgICAgICAgIHN0cmVhbTogdGhpcy5jbGllbnQubG9nU3RyZWFtKCgpID0+IHsgfSksXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBdLFxuICAgICAgICB9KVxuXG4gICAgICAgIGNvbnN0IHR5ID0gSlNPTi5zdHJpbmdpZnkodGhpcy5xdWFkcy5maWx0ZXIoeCA9PiB4LnN1YmplY3QudmFsdWUgPT09IHByb2MudXJpICYmIHgucHJlZGljYXRlLmVxdWFscyhSREYudGVybXMudHlwZSkpLm1hcCh4ID0+IHgub2JqZWN0LnZhbHVlKSlcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcInBhcnNpbmcgXCIgKyBwcm9jLnVyaSArIFwiIHR5cGUgXCIgKyB0eSlcbiAgICAgICAgY29uc3QgYXJncyA9IHRoaXMuc2hhcGVzLmxlbnNlc1tSREZMLlR5cGVkRXh0cmFjdF0uZXhlY3V0ZSh7XG4gICAgICAgICAgICBpZDogbmV3IE5hbWVkTm9kZShwcm9jLnVyaSksXG4gICAgICAgICAgICBxdWFkczogdGhpcy5xdWFkcyxcbiAgICAgICAgfSlcblxuICAgICAgICBjb25zdCBjb25maWc6IFByb2Nlc3NvckNvbmZpZyA9IEpTT04ucGFyc2UocHJvYy5jb25maWcpXG4gICAgICAgIC8vIGNvbnN0IHVybCA9IG5ldyBVUkwoY29uZmlnLmxvY2F0aW9uKVxuICAgICAgICAvLyBwcm9jZXNzLmNoZGlyKHVybC5wYXRobmFtZSlcbiAgICAgICAgY29uc3QganNQcm9ncmFtID0gYXdhaXQgaW1wb3J0KGNvbmZpZy5maWxlKVxuICAgICAgICBjb25zdCBjbGF6eiA9IGpzUHJvZ3JhbVtjb25maWcuY2xhenogfHwgJ2RlZmF1bHQnXVxuICAgICAgICBjb25zdCBpbnN0YW5jZTogUHJvYzx1bmtub3duPiA9IG5ldyBjbGF6eihhcmdzLCBwcm9jTG9nZ2VyKVxuICAgICAgICBhd2FpdCBpbnN0YW5jZS5pbml0KClcblxuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFwiaW5pdGVkIFwiICsgcHJvYy51cmkgKyBcIiB0eXBlIFwiICsgdHkpXG5cbiAgICAgICAgdGhpcy5wcm9jZXNzb3JzLnB1c2goaW5zdGFuY2UpXG4gICAgICAgIHRoaXMucHJvY2Vzc29yVHJhbnNmb3Jtcy5wdXNoKGluc3RhbmNlLnRyYW5zZm9ybSgpKVxuXG4gICAgICAgIGF3YWl0IHRoaXMud3JpdGUoeyBpbml0OiB7IHVyaTogcHJvYy51cmkgfSB9KVxuXG4gICAgICAgIHJldHVybiA8RnVsbFByb2M8UD4+aW5zdGFuY2U7XG4gICAgfVxuXG4gICAgYXN5bmMgc3RhcnQoKSB7XG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHRoaXMucHJvY2Vzc29ycy5tYXAoKHgpID0+IHgucHJvZHVjZSgpKSlcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5wcm9jZXNzb3JUcmFuc2Zvcm1zKVxuICAgIH1cblxuICAgIGNyZWF0ZVdyaXRlcih1cmk6IFRlcm0pOiBXcml0ZXIge1xuICAgICAgICBjb25zdCBpZHMgPSB1cmkudmFsdWU7XG5cbiAgICAgICAgaWYgKHRoaXMud3JpdGVyc1tpZHNdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMud3JpdGVyc1tpZHNdID0gW11cbiAgICAgICAgfVxuICAgICAgICBjb25zdCB3cml0ZXIgPSBuZXcgV3JpdGVySW5zdGFuY2UoXG4gICAgICAgICAgICBpZHMsXG4gICAgICAgICAgICB0aGlzLmNsaWVudCxcbiAgICAgICAgICAgIHRoaXMud3JpdGUsXG4gICAgICAgICAgICB0aGlzLmxvZ2dlcixcbiAgICAgICAgKVxuICAgICAgICB0aGlzLndyaXRlcnNbaWRzXS5wdXNoKHdyaXRlcilcbiAgICAgICAgcmV0dXJuIHdyaXRlclxuICAgIH1cblxuICAgIGNyZWF0ZVJlYWRlcih1cmk6IFRlcm0pOiBSZWFkZXIge1xuICAgICAgICBjb25zdCBpZHMgPSB1cmkudmFsdWU7XG5cbiAgICAgICAgaWYgKHRoaXMucmVhZGVyc1tpZHNdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMucmVhZGVyc1tpZHNdID0gW11cbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgUmVhZGVySW5zdGFuY2UoaWRzLCB0aGlzLmNsaWVudCwgdGhpcy5sb2dnZXIpXG4gICAgICAgIHRoaXMucmVhZGVyc1tpZHNdLnB1c2gocmVhZGVyKVxuICAgICAgICByZXR1cm4gcmVhZGVyXG4gICAgfVxuXG4gICAgYXN5bmMgaGFuZGxlT3JjaE1lc3NhZ2UobXNnOiBSdW5uZXJNZXNzYWdlKSB7XG4gICAgICAgIGlmIChtc2cubXNnKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnSGFuZGxpbmcgZGF0YSBtc2cgZm9yICcgKyBtc2cubXNnLmNoYW5uZWwpXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlYWRlciBvZiB0aGlzLnJlYWRlcnNbbXNnLm1zZy5jaGFubmVsXSB8fCBbXSkge1xuICAgICAgICAgICAgICAgIHJlYWRlci5oYW5kbGVNc2cobXNnLm1zZylcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtc2cuc3RyZWFtTXNnKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlYWRlciBvZiB0aGlzLnJlYWRlcnNbbXNnLnN0cmVhbU1zZy5jaGFubmVsXSB8fCBbXSkge1xuICAgICAgICAgICAgICAgIHJlYWRlci5oYW5kbGVTdHJlYW1pbmdNZXNzYWdlKG1zZy5zdHJlYW1Nc2cpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobXNnLmNsb3NlKSB7XG4gICAgICAgICAgICBjb25zdCB1cmkgPSBtc2cuY2xvc2UuY2hhbm5lbFxuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlYWRlciBvZiB0aGlzLnJlYWRlcnNbdXJpXSB8fCBbXSkge1xuICAgICAgICAgICAgICAgIHJlYWRlci5jbG9zZSgpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvciAoY29uc3Qgd3JpdGVyIG9mIHRoaXMud3JpdGVyc1t1cmldIHx8IFtdKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgd3JpdGVyLmNsb3NlKHRydWUpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobXNnLnBpcGVsaW5lKSB7XG4gICAgICAgICAgICAvLyBoZXJlXG4gICAgICAgICAgICBjb25zdCBxdWFkcyA9IG5ldyBQYXJzZXIoKS5wYXJzZShtc2cucGlwZWxpbmUpO1xuICAgICAgICAgICAgdGhpcy5zaGFwZXMgPSBleHRyYWN0U2hhcGVzKHF1YWRzLCB7XG4gICAgICAgICAgICAgICAgW1JERkMuUmVhZGVyXTogKHg6IENvbnQpID0+IHRoaXMuY3JlYXRlUmVhZGVyKHguaWQpLFxuICAgICAgICAgICAgICAgIFtSREZDLldyaXRlcl06ICh4OiBDb250KSA9PiB0aGlzLmNyZWF0ZVdyaXRlcih4LmlkKVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIFtSREZDLlJlYWRlcl06IGVtcHR5PENvbnQ+KCksXG4gICAgICAgICAgICAgICAgW1JERkMuV3JpdGVyXTogZW1wdHk8Q29udD4oKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnF1YWRzID0gcXVhZHM7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFwiZXh0cmFjdGVkIHNoYXBlcyBcIiArIEpTT04uc3RyaW5naWZ5KE9iamVjdC5rZXlzKHRoaXMuc2hhcGVzLmxlbnNlcykpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVubmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3J1bm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQVUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ2pELE9BQU8sRUFBVSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFJakQsT0FBTyxPQUFPLE1BQU0sU0FBUyxDQUFBO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDdkMsT0FBTyxFQUFRLEtBQUssRUFBRSxhQUFhLEVBQVUsTUFBTSxVQUFVLENBQUE7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFDdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSx5QkFBeUIsRUFBRSxHQUFHLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHL0UsTUFBTSxJQUFJLEdBQUcseUJBQXlCLENBQ3BDLHFDQUFxQyxFQUNyQyxLQUFLLEVBQ0wsTUFBTSxFQUNOLFVBQVUsRUFDVixTQUFTLEVBQ1QsY0FBYyxFQUNkLGFBQWEsRUFDYixRQUFRLEVBQ1IsWUFBWSxFQUNaLFVBQVUsQ0FDWCxDQUFBO0FBRUQsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUMxQiwrQkFBK0IsRUFDL0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDUixRQUFRLEVBQ1IsUUFBUSxDQUNULENBQUE7QUFZRCxNQUFNLE9BQU8sTUFBTTtJQUNBLE9BQU8sR0FBd0MsRUFBRSxDQUFBO0lBQ2pELE9BQU8sR0FBd0MsRUFBRSxDQUFBO0lBQ2pELE1BQU0sQ0FBYztJQUNwQixLQUFLLENBQVU7SUFDZixNQUFNLENBQVE7SUFDdkIsTUFBTSxDQUFRO0lBQ2QsS0FBSyxHQUFXLEVBQUUsQ0FBQTtJQUVULEdBQUcsQ0FBUTtJQUVYLFVBQVUsR0FBb0IsRUFBRSxDQUFBO0lBQ2hDLG1CQUFtQixHQUF1QixFQUFFLENBQUE7SUFF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TUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQzFCLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDO2dCQUVILE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQTtnQkFDOUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQ3pCLEtBQUssRUFDTDtvQkFDRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNuRCxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2lCQUNwRCxFQUNEO29CQUNFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBUTtvQkFDNUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFRO2lCQUM3QixDQUNGLENBQUE7Z0JBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7WUFDcEIsQ0FBQztZQUFDLE9BQU8sRUFBVyxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUM3RCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE9yY2hlc3RyYXRvck1lc3NhZ2UsXG4gIFByb2Nlc3NvcixcbiAgUnVubmVyQ2xpZW50LFxuICBSdW5uZXJNZXNzYWdlLFxufSBmcm9tICdAcmRmYy9wcm90bydcbmltcG9ydCB7IFJlYWRlciwgUmVhZGVySW5zdGFuY2UgfSBmcm9tICcuL3JlYWRlcidcbmltcG9ydCB7IFdyaXRlciwgV3JpdGVySW5zdGFuY2UgfSBmcm9tICcuL3dyaXRlcidcbmltcG9ydCB7IFByb2Nlc3NvciBhcyBQcm9jIH0gZnJvbSAnLi9wcm9jZXNzb3InXG5pbXBvcnQgeyBMb2dnZXIgfSBmcm9tICd3aW5zdG9uJ1xuXG5pbXBvcnQgd2luc3RvbiBmcm9tICd3aW5zdG9uJ1xuaW1wb3J0IHsgUnBjVHJhbnNwb3J0IH0gZnJvbSAnLi9sb2dnZXInXG5pbXBvcnQgeyBDb250LCBlbXB0eSwgZXh0cmFjdFNoYXBlcywgU2hhcGVzIH0gZnJvbSAncmRmLWxlbnMnXG5pbXBvcnQgeyBOYW1lZE5vZGUsIFBhcnNlciB9IGZyb20gJ24zJ1xuaW1wb3J0IHsgY3JlYXRlTmFtZXNwYWNlLCBjcmVhdGVVcmlBbmRUZXJtTmFtZXNwYWNlLCBSREYgfSBmcm9tICdAdHJlZWNnL3R5cGVzJ1xuaW1wb3J0IHsgUXVhZCwgVGVybSB9IGZyb20gJ0ByZGZqcy90eXBlcydcblxuY29uc3QgUkRGTCA9IGNyZWF0ZVVyaUFuZFRlcm1OYW1lc3BhY2UoXG4gICdodHRwczovL3czaWQub3JnL3JkZi1sZW5zL29udG9sb2d5IycsXG4gICdDQkQnLFxuICAnUGF0aCcsXG4gICdQYXRoTGVucycsXG4gICdDb250ZXh0JyxcbiAgJ1R5cGVkRXh0cmFjdCcsXG4gICdFbnZWYXJpYWJsZScsXG4gICdlbnZLZXknLFxuICAnZW52RGVmYXVsdCcsXG4gICdkYXRhdHlwZScsXG4pXG5cbmNvbnN0IFJERkMgPSBjcmVhdGVOYW1lc3BhY2UoXG4gICdodHRwczovL3czaWQub3JnL3JkZi1jb25uZWN0IycsXG4gICh4KSA9PiB4LFxuICAnUmVhZGVyJyxcbiAgJ1dyaXRlcicsXG4pXG5cbmV4cG9ydCB0eXBlIFdyaXRhYmxlID0gKG1zZzogT3JjaGVzdHJhdG9yTWVzc2FnZSkgPT4gUHJvbWlzZTx1bmtub3duPlxuXG50eXBlIFByb2Nlc3NvckNvbmZpZyA9IHtcbiAgbG9jYXRpb246IHN0cmluZ1xuICBmaWxlOiBzdHJpbmdcbiAgY2xheno/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgRnVsbFByb2M8QyBleHRlbmRzIFByb2M8dW5rbm93bj4+ID1cbiAgQyBleHRlbmRzIFByb2M8aW5mZXIgVD4gPyBUICYgQyA6IHVua25vd25cbmV4cG9ydCBjbGFzcyBSdW5uZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHJlYWRlcnM6IHsgW3VyaTogc3RyaW5nXTogUmVhZGVySW5zdGFuY2VbXSB9ID0ge31cbiAgcHJpdmF0ZSByZWFkb25seSB3cml0ZXJzOiB7IFt1cmk6IHN0cmluZ106IFdyaXRlckluc3RhbmNlW10gfSA9IHt9XG4gIHByaXZhdGUgcmVhZG9ubHkgY2xpZW50OiBSdW5uZXJDbGllbnRcbiAgcHJpdmF0ZSByZWFkb25seSB3cml0ZTogV3JpdGFibGVcbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IExvZ2dlclxuICBwcml2YXRlIHNoYXBlczogU2hhcGVzXG4gIHByaXZhdGUgcXVhZHM6IFF1YWRbXSA9IFtdXG5cbiAgcHJpdmF0ZSByZWFkb25seSB1cmk6IHN0cmluZ1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvY2Vzc29yczogUHJvYzx1bmtub3duPltdID0gW11cbiAgcHJpdmF0ZSByZWFkb25seSBwcm9jZXNzb3JUcmFuc2Zvcm1zOiBQcm9taXNlPHVua25vd24+W10gPSBbXVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNsaWVudDogUnVubmVyQ2xpZW50LFxuICAgIHdyaXRlOiBXcml0YWJsZSxcbiAgICB1cmk6IHN0cmluZyxcbiAgICBsb2dnZXI6IExvZ2dlcixcbiAgKSB7XG4gICAgdGhpcy5jbGllbnQgPSBjbGllbnRcbiAgICB0aGlzLndyaXRlID0gd3JpdGVcbiAgICB0aGlzLnVyaSA9IHVyaVxuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyXG4gIH1cblxuICBhc3luYyBhZGRQcm9jZXNzb3I8UCBleHRlbmRzIFByb2M8dW5rbm93bj4+KFxuICAgIHByb2M6IFByb2Nlc3NvcixcbiAgKTogUHJvbWlzZTxGdWxsUHJvYzxQPj4ge1xuICAgIGNvbnN0IHByb2NMb2dnZXIgPSB3aW5zdG9uLmNyZWF0ZUxvZ2dlcih7XG4gICAgICB0cmFuc3BvcnRzOiBbXG4gICAgICAgIG5ldyBScGNUcmFuc3BvcnQoe1xuICAgICAgICAgIGVudGl0aWVzOiBbcHJvYy51cmksIHRoaXMudXJpXSxcbiAgICAgICAgICBzdHJlYW06IHRoaXMuY2xpZW50LmxvZ1N0cmVhbSgoKSA9PiB7fSksXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9KVxuXG4gICAgY29uc3QgdHkgPSBKU09OLnN0cmluZ2lmeShcbiAgICAgIHRoaXMucXVhZHNcbiAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAoeCkgPT5cbiAgICAgICAgICAgIHguc3ViamVjdC52YWx1ZSA9PT0gcHJvYy51cmkgJiYgeC5wcmVkaWNhdGUuZXF1YWxzKFJERi50ZXJtcy50eXBlKSxcbiAgICAgICAgKVxuICAgICAgICAubWFwKCh4KSA9PiB4Lm9iamVjdC52YWx1ZSksXG4gICAgKVxuICAgIHRoaXMubG9nZ2VyLmluZm8oJ3BhcnNpbmcgJyArIHByb2MudXJpICsgJyB0eXBlICcgKyB0eSlcbiAgICBjb25zdCBhcmdzID0gdGhpcy5zaGFwZXMubGVuc2VzW1JERkwuVHlwZWRFeHRyYWN0XS5leGVjdXRlKHtcbiAgICAgIGlkOiBuZXcgTmFtZWROb2RlKHByb2MudXJpKSxcbiAgICAgIHF1YWRzOiB0aGlzLnF1YWRzLFxuICAgIH0pXG5cbiAgICBjb25zdCBjb25maWc6IFByb2Nlc3NvckNvbmZpZyA9IEpTT04ucGFyc2UocHJvYy5jb25maWcpXG4gICAgLy8gY29uc3QgdXJsID0gbmV3IFVSTChjb25maWcubG9jYXRpb24pXG4gICAgLy8gcHJvY2Vzcy5jaGRpcih1cmwucGF0aG5hbWUpXG4gICAgY29uc3QganNQcm9ncmFtID0gYXdhaXQgaW1wb3J0KGNvbmZpZy5maWxlKVxuICAgIGNvbnN0IGNsYXp6ID0ganNQcm9ncmFtW2NvbmZpZy5jbGF6eiB8fCAnZGVmYXVsdCddXG4gICAgY29uc3QgaW5zdGFuY2U6IFByb2M8dW5rbm93bj4gPSBuZXcgY2xhenooYXJncywgcHJvY0xvZ2dlcilcbiAgICBhd2FpdCBpbnN0YW5jZS5pbml0KClcblxuICAgIHRoaXMubG9nZ2VyLmluZm8oJ2luaXRlZCAnICsgcHJvYy51cmkgKyAnIHR5cGUgJyArIHR5KVxuXG4gICAgdGhpcy5wcm9jZXNzb3JzLnB1c2goaW5zdGFuY2UpXG4gICAgdGhpcy5wcm9jZXNzb3JUcmFuc2Zvcm1zLnB1c2goaW5zdGFuY2UudHJhbnNmb3JtKCkpXG5cbiAgICBhd2FpdCB0aGlzLndyaXRlKHsgaW5pdDogeyB1cmk6IHByb2MudXJpIH0gfSlcblxuICAgIHJldHVybiA8RnVsbFByb2M8UD4+aW5zdGFuY2VcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0KCkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLnByb2Nlc3NvcnMubWFwKCh4KSA9PiB4LnByb2R1Y2UoKSkpXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLnByb2Nlc3NvclRyYW5zZm9ybXMpXG4gICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdTdGFydCBmYWlsZWQ6ICcgKyBKU09OLnN0cmluZ2lmeShleCkpXG4gICAgfVxuICB9XG5cbiAgY3JlYXRlV3JpdGVyKHVyaTogVGVybSk6IFdyaXRlciB7XG4gICAgY29uc3QgaWRzID0gdXJpLnZhbHVlXG5cbiAgICBpZiAodGhpcy53cml0ZXJzW2lkc10gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy53cml0ZXJzW2lkc10gPSBbXVxuICAgIH1cbiAgICBjb25zdCB3cml0ZXIgPSBuZXcgV3JpdGVySW5zdGFuY2UoaWRzLCB0aGlzLmNsaWVudCwgdGhpcy53cml0ZSwgdGhpcy5sb2dnZXIpXG4gICAgdGhpcy53cml0ZXJzW2lkc10ucHVzaCh3cml0ZXIpXG4gICAgcmV0dXJuIHdyaXRlclxuICB9XG5cbiAgY3JlYXRlUmVhZGVyKHVyaTogVGVybSk6IFJlYWRlciB7XG4gICAgY29uc3QgaWRzID0gdXJpLnZhbHVlXG5cbiAgICBpZiAodGhpcy5yZWFkZXJzW2lkc10gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5yZWFkZXJzW2lkc10gPSBbXVxuICAgIH1cbiAgICBjb25zdCByZWFkZXIgPSBuZXcgUmVhZGVySW5zdGFuY2UoaWRzLCB0aGlzLmNsaWVudCwgdGhpcy5sb2dnZXIpXG4gICAgdGhpcy5yZWFkZXJzW2lkc10ucHVzaChyZWFkZXIpXG4gICAgcmV0dXJuIHJlYWRlclxuICB9XG5cbiAgYXN5bmMgaGFuZGxlT3JjaE1lc3NhZ2UobXNnOiBSdW5uZXJNZXNzYWdlKSB7XG4gICAgaWYgKG1zZy5tc2cpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdIYW5kbGluZyBkYXRhIG1zZyBmb3IgJyArIG1zZy5tc2cuY2hhbm5lbClcbiAgICAgIGZvciAoY29uc3QgcmVhZGVyIG9mIHRoaXMucmVhZGVyc1ttc2cubXNnLmNoYW5uZWxdIHx8IFtdKSB7XG4gICAgICAgIHJlYWRlci5oYW5kbGVNc2cobXNnLm1zZylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobXNnLnN0cmVhbU1zZykge1xuICAgICAgZm9yIChjb25zdCByZWFkZXIgb2YgdGhpcy5yZWFkZXJzW21zZy5zdHJlYW1Nc2cuY2hhbm5lbF0gfHwgW10pIHtcbiAgICAgICAgcmVhZGVyLmhhbmRsZVN0cmVhbWluZ01lc3NhZ2UobXNnLnN0cmVhbU1zZylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobXNnLmNsb3NlKSB7XG4gICAgICBjb25zdCB1cmkgPSBtc2cuY2xvc2UuY2hhbm5lbFxuXG4gICAgICBmb3IgKGNvbnN0IHJlYWRlciBvZiB0aGlzLnJlYWRlcnNbdXJpXSB8fCBbXSkge1xuICAgICAgICByZWFkZXIuY2xvc2UoKVxuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IHdyaXRlciBvZiB0aGlzLndyaXRlcnNbdXJpXSB8fCBbXSkge1xuICAgICAgICBhd2FpdCB3cml0ZXIuY2xvc2UodHJ1ZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobXNnLnBpcGVsaW5lKSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBoZXJlXG4gICAgICAgIGNvbnN0IHF1YWRzID0gbmV3IFBhcnNlcigpLnBhcnNlKG1zZy5waXBlbGluZSlcbiAgICAgICAgdGhpcy5zaGFwZXMgPSBleHRyYWN0U2hhcGVzKFxuICAgICAgICAgIHF1YWRzLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFtSREZDLlJlYWRlcl06ICh4OiBDb250KSA9PiB0aGlzLmNyZWF0ZVJlYWRlcih4LmlkKSxcbiAgICAgICAgICAgIFtSREZDLldyaXRlcl06ICh4OiBDb250KSA9PiB0aGlzLmNyZWF0ZVdyaXRlcih4LmlkKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFtSREZDLlJlYWRlcl06IGVtcHR5PENvbnQ+KCksXG4gICAgICAgICAgICBbUkRGQy5Xcml0ZXJdOiBlbXB0eTxDb250PigpLFxuICAgICAgICAgIH0sXG4gICAgICAgIClcbiAgICAgICAgdGhpcy5xdWFkcyA9IHF1YWRzXG4gICAgICB9IGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcignUGlwZWxpbmUgZmFpbGVkOiAnICsgSlNPTi5zdHJpbmdpZnkoZXgpKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
package/lib/testUtils.js CHANGED
@@ -7,8 +7,8 @@ import { readFile } from 'fs/promises';
7
7
  import winston, { createLogger } from 'winston';
8
8
  import { WriterInstance } from './writer.js';
9
9
  import { ReaderInstance } from './reader.js';
10
- export async function getProcessorShape(baseIRI = process.cwd() + "/node_modules/@rdfc/js-runner/index.ttl") {
11
- const configFile = await readFile(baseIRI, { encoding: "utf8" });
10
+ export async function getProcessorShape(baseIRI = process.cwd() + '/node_modules/@rdfc/js-runner/index.ttl') {
11
+ const configFile = await readFile(baseIRI, { encoding: 'utf8' });
12
12
  const configQuads = new Parser().parse(configFile);
13
13
  const shapes = extractShapes(configQuads);
14
14
  return shapes;
@@ -37,7 +37,9 @@ export async function one(iter) {
37
37
  export const client = new TestClient();
38
38
  export const uri = 'someUri';
39
39
  export const logger = createLogger({
40
- transports: new winston.transports.Console({ level: process.env['DEBUG'] || 'info' }),
40
+ transports: new winston.transports.Console({
41
+ level: process.env['DEBUG'] || 'info',
42
+ }),
41
43
  });
42
44
  export function createWriter(iri = uri) {
43
45
  const reader = createReader(iri);
@@ -55,4 +57,4 @@ export function createReader(iri = uri) {
55
57
  const reader = new ReaderInstance(iri, client, logger);
56
58
  return reader;
57
59
  }
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdFV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Rlc3RVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtDLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUUxRSxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxPQUFPLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRTFDLE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUJBQWlCLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyx5Q0FBeUM7SUFDekcsTUFBTSxVQUFVLEdBQUcsTUFBTSxRQUFRLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDakUsTUFBTSxXQUFXLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkQsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRTFDLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxNQUFNLE9BQU8sVUFBVyxTQUFRLFlBQVk7SUFDMUMsSUFBSSxDQUFzRDtJQUUxRDtRQUNFLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUE7SUFDNUQsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUNoRCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE1BQU0sTUFBTSxHQUFHLElBQUksd0JBQXdCLENBQVksQ0FBQyxJQUFZLEVBQUUsRUFBRTtZQUN0RSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUE7UUFDakIsQ0FBQyxDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ2pCLE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxHQUFHLENBQUksSUFBc0I7SUFDakQsSUFBSSxLQUFLLEVBQUUsTUFBTSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7UUFDOUIsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFBO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUE7QUFDNUIsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQztJQUNqQyxVQUFVLEVBQUUsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sRUFBRSxDQUFDO0NBQ3RGLENBQUMsQ0FBQTtBQUVGLE1BQU0sVUFBVSxZQUFZLENBQUMsR0FBRyxHQUFHLEdBQUc7SUFDcEMsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLE1BQU0sV0FBVyxHQUFHLElBQUksY0FBYyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ2hFLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1osTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUNELElBQUcsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2hCLENBQUM7SUFDSCxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDVixPQUFPLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLEdBQUcsR0FBRyxHQUFHO0lBQ3BDLE1BQU0sTUFBTSxHQUFHLElBQUksY0FBYyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdkQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFDaHVuaywgT3JjaGVzdHJhdG9yTWVzc2FnZSwgUnVubmVyQ2xpZW50IH0gZnJvbSAnQHJkZmMvcHJvdG8nXG5pbXBvcnQgeyBDbGllbnRSZWFkYWJsZVN0cmVhbSB9IGZyb20gJ0BncnBjL2dycGMtanMnXG5pbXBvcnQgKiBhcyBncnBjIGZyb20gJ0BncnBjL2dycGMtanMnXG5pbXBvcnQgeyBDbGllbnRSZWFkYWJsZVN0cmVhbUltcGwgfSBmcm9tICcuL3JlZXhwb3J0cydcbmltcG9ydCB7IGV4dHJhY3RTaGFwZXMgfSBmcm9tICdyZGYtbGVucyc7XG5pbXBvcnQgeyBQYXJzZXIgfSBmcm9tICduMyc7XG5pbXBvcnQgeyByZWFkRmlsZSB9IGZyb20gJ2ZzL3Byb21pc2VzJztcbmltcG9ydCB3aW5zdG9uLCB7IGNyZWF0ZUxvZ2dlciB9IGZyb20gJ3dpbnN0b24nO1xuaW1wb3J0IHsgV3JpdGVySW5zdGFuY2UgfSBmcm9tICcuL3dyaXRlcic7XG5pbXBvcnQgeyBSZWFkZXJJbnN0YW5jZSB9IGZyb20gJy4vcmVhZGVyJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFByb2Nlc3NvclNoYXBlKGJhc2VJUkkgPSBwcm9jZXNzLmN3ZCgpICsgXCIvbm9kZV9tb2R1bGVzL0ByZGZjL2pzLXJ1bm5lci9pbmRleC50dGxcIikge1xuICBjb25zdCBjb25maWdGaWxlID0gYXdhaXQgcmVhZEZpbGUoYmFzZUlSSSwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSk7XG4gIGNvbnN0IGNvbmZpZ1F1YWRzID0gbmV3IFBhcnNlcigpLnBhcnNlKGNvbmZpZ0ZpbGUpO1xuICBjb25zdCBzaGFwZXMgPSBleHRyYWN0U2hhcGVzKGNvbmZpZ1F1YWRzKTtcblxuICByZXR1cm4gc2hhcGVzO1xufVxuXG5leHBvcnQgY2xhc3MgVGVzdENsaWVudCBleHRlbmRzIFJ1bm5lckNsaWVudCB7XG4gIG5leHQ6IChzdHJlYW06IENsaWVudFJlYWRhYmxlU3RyZWFtPERhdGFDaHVuaz4pID0+IHVua25vd25cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignbG9jYWxob3N0OjU0MDAnLCBncnBjLmNyZWRlbnRpYWxzLmNyZWF0ZUluc2VjdXJlKCkpXG4gIH1cblxuICBuZXh0U3RyZWFtKCk6IFByb21pc2U8Q2xpZW50UmVhZGFibGVTdHJlYW08RGF0YUNodW5rPj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzKSA9PiAodGhpcy5uZXh0ID0gcmVzKSlcbiAgfVxuXG4gIHJlY2VpdmVTdHJlYW1NZXNzYWdlKCk6IENsaWVudFJlYWRhYmxlU3RyZWFtPERhdGFDaHVuaz4ge1xuICAgIGNvbnN0IHN0cmVhbSA9IG5ldyBDbGllbnRSZWFkYWJsZVN0cmVhbUltcGw8RGF0YUNodW5rPigoZGF0YTogQnVmZmVyKSA9PiB7XG4gICAgICByZXR1cm4geyBkYXRhIH1cbiAgICB9KVxuICAgIHRoaXMubmV4dChzdHJlYW0pXG4gICAgcmV0dXJuIHN0cmVhbVxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBvbmU8VD4oaXRlcjogQXN5bmNJdGVyYWJsZTxUPik6IFByb21pc2U8VCB8IHVuZGVmaW5lZD4ge1xuICBmb3IgYXdhaXQgKGNvbnN0IGl0ZW0gb2YgaXRlcikge1xuICAgIHJldHVybiBpdGVtXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGNsaWVudCA9IG5ldyBUZXN0Q2xpZW50KClcbmV4cG9ydCBjb25zdCB1cmkgPSAnc29tZVVyaSdcbmV4cG9ydCBjb25zdCBsb2dnZXIgPSBjcmVhdGVMb2dnZXIoe1xuICB0cmFuc3BvcnRzOiBuZXcgd2luc3Rvbi50cmFuc3BvcnRzLkNvbnNvbGUoeyBsZXZlbDogcHJvY2Vzcy5lbnZbJ0RFQlVHJ10gfHwgJ2luZm8nIH0pLFxufSlcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVdyaXRlcihpcmkgPSB1cmkpOiBbV3JpdGVySW5zdGFuY2UsIFJlYWRlckluc3RhbmNlXSB7XG4gIGNvbnN0IHJlYWRlciA9IGNyZWF0ZVJlYWRlcihpcmkpO1xuICBjb25zdCB3cml0ZVN0cmVhbSA9IG5ldyBXcml0ZXJJbnN0YW5jZShpcmksIGNsaWVudCwgYXN5bmMgKG1zZykgPT4ge1xuICAgIGlmIChtc2cubXNnKSB7XG4gICAgICByZWFkZXIuaGFuZGxlTXNnKG1zZy5tc2cpO1xuICAgIH1cbiAgICBpZihtc2cuY2xvc2UpIHtcbiAgICAgIHJlYWRlci5jbG9zZSgpXG4gICAgfVxuICB9LCBsb2dnZXIpXG4gIHJldHVybiBbd3JpdGVTdHJlYW0sIHJlYWRlcl07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZWFkZXIoaXJpID0gdXJpKTogUmVhZGVySW5zdGFuY2Uge1xuICBjb25zdCByZWFkZXIgPSBuZXcgUmVhZGVySW5zdGFuY2UoaXJpLCBjbGllbnQsIGxvZ2dlcik7XG4gIHJldHVybiByZWFkZXI7XG59XG4iXX0=
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdFV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Rlc3RVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWEsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRXJELE9BQU8sS0FBSyxJQUFJLE1BQU0sZUFBZSxDQUFBO0FBQ3JDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFDM0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUN0QyxPQUFPLE9BQU8sRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFekMsTUFBTSxDQUFDLEtBQUssVUFBVSxpQkFBaUIsQ0FDckMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyx5Q0FBeUM7SUFFbkUsTUFBTSxVQUFVLEdBQUcsTUFBTSxRQUFRLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUE7SUFDaEUsTUFBTSxXQUFXLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDbEQsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBRXpDLE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQztBQUVELE1BQU0sT0FBTyxVQUFXLFNBQVEsWUFBWTtJQUMxQyxJQUFJLENBQXNEO0lBRTFEO1FBQ0UsS0FBSyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQTtJQUM1RCxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQ2hELENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsTUFBTSxNQUFNLEdBQUcsSUFBSSx3QkFBd0IsQ0FBWSxDQUFDLElBQVksRUFBRSxFQUFFO1lBQ3RFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQTtRQUNqQixDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDakIsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDO0NBQ0Y7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLEdBQUcsQ0FBSSxJQUFzQjtJQUNqRCxJQUFJLEtBQUssRUFBRSxNQUFNLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUE7QUFDdEMsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQTtBQUM1QixNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDO0lBQ2pDLFVBQVUsRUFBRSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQ3pDLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU07S0FDdEMsQ0FBQztDQUNILENBQUMsQ0FBQTtBQUVGLE1BQU0sVUFBVSxZQUFZLENBQUMsR0FBRyxHQUFHLEdBQUc7SUFDcEMsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ2hDLE1BQU0sV0FBVyxHQUFHLElBQUksY0FBYyxDQUNwQyxHQUFHLEVBQ0gsTUFBTSxFQUNOLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUNaLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1osTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDM0IsQ0FBQztRQUNELElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2QsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2hCLENBQUM7SUFDSCxDQUFDLEVBQ0QsTUFBTSxDQUNQLENBQUE7SUFDRCxPQUFPLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBQzlCLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLEdBQUcsR0FBRyxHQUFHO0lBQ3BDLE1BQU0sTUFBTSxHQUFHLElBQUksY0FBYyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDdEQsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YUNodW5rLCBSdW5uZXJDbGllbnQgfSBmcm9tICdAcmRmYy9wcm90bydcbmltcG9ydCB7IENsaWVudFJlYWRhYmxlU3RyZWFtIH0gZnJvbSAnQGdycGMvZ3JwYy1qcydcbmltcG9ydCAqIGFzIGdycGMgZnJvbSAnQGdycGMvZ3JwYy1qcydcbmltcG9ydCB7IENsaWVudFJlYWRhYmxlU3RyZWFtSW1wbCB9IGZyb20gJy4vcmVleHBvcnRzJ1xuaW1wb3J0IHsgZXh0cmFjdFNoYXBlcyB9IGZyb20gJ3JkZi1sZW5zJ1xuaW1wb3J0IHsgUGFyc2VyIH0gZnJvbSAnbjMnXG5pbXBvcnQgeyByZWFkRmlsZSB9IGZyb20gJ2ZzL3Byb21pc2VzJ1xuaW1wb3J0IHdpbnN0b24sIHsgY3JlYXRlTG9nZ2VyIH0gZnJvbSAnd2luc3RvbidcbmltcG9ydCB7IFdyaXRlckluc3RhbmNlIH0gZnJvbSAnLi93cml0ZXInXG5pbXBvcnQgeyBSZWFkZXJJbnN0YW5jZSB9IGZyb20gJy4vcmVhZGVyJ1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UHJvY2Vzc29yU2hhcGUoXG4gIGJhc2VJUkkgPSBwcm9jZXNzLmN3ZCgpICsgJy9ub2RlX21vZHVsZXMvQHJkZmMvanMtcnVubmVyL2luZGV4LnR0bCcsXG4pIHtcbiAgY29uc3QgY29uZmlnRmlsZSA9IGF3YWl0IHJlYWRGaWxlKGJhc2VJUkksIHsgZW5jb2Rpbmc6ICd1dGY4JyB9KVxuICBjb25zdCBjb25maWdRdWFkcyA9IG5ldyBQYXJzZXIoKS5wYXJzZShjb25maWdGaWxlKVxuICBjb25zdCBzaGFwZXMgPSBleHRyYWN0U2hhcGVzKGNvbmZpZ1F1YWRzKVxuXG4gIHJldHVybiBzaGFwZXNcbn1cblxuZXhwb3J0IGNsYXNzIFRlc3RDbGllbnQgZXh0ZW5kcyBSdW5uZXJDbGllbnQge1xuICBuZXh0OiAoc3RyZWFtOiBDbGllbnRSZWFkYWJsZVN0cmVhbTxEYXRhQ2h1bms+KSA9PiB1bmtub3duXG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ2xvY2FsaG9zdDo1NDAwJywgZ3JwYy5jcmVkZW50aWFscy5jcmVhdGVJbnNlY3VyZSgpKVxuICB9XG5cbiAgbmV4dFN0cmVhbSgpOiBQcm9taXNlPENsaWVudFJlYWRhYmxlU3RyZWFtPERhdGFDaHVuaz4+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlcykgPT4gKHRoaXMubmV4dCA9IHJlcykpXG4gIH1cblxuICByZWNlaXZlU3RyZWFtTWVzc2FnZSgpOiBDbGllbnRSZWFkYWJsZVN0cmVhbTxEYXRhQ2h1bms+IHtcbiAgICBjb25zdCBzdHJlYW0gPSBuZXcgQ2xpZW50UmVhZGFibGVTdHJlYW1JbXBsPERhdGFDaHVuaz4oKGRhdGE6IEJ1ZmZlcikgPT4ge1xuICAgICAgcmV0dXJuIHsgZGF0YSB9XG4gICAgfSlcbiAgICB0aGlzLm5leHQoc3RyZWFtKVxuICAgIHJldHVybiBzdHJlYW1cbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gb25lPFQ+KGl0ZXI6IEFzeW5jSXRlcmFibGU8VD4pOiBQcm9taXNlPFQgfCB1bmRlZmluZWQ+IHtcbiAgZm9yIGF3YWl0IChjb25zdCBpdGVtIG9mIGl0ZXIpIHtcbiAgICByZXR1cm4gaXRlbVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBjbGllbnQgPSBuZXcgVGVzdENsaWVudCgpXG5leHBvcnQgY29uc3QgdXJpID0gJ3NvbWVVcmknXG5leHBvcnQgY29uc3QgbG9nZ2VyID0gY3JlYXRlTG9nZ2VyKHtcbiAgdHJhbnNwb3J0czogbmV3IHdpbnN0b24udHJhbnNwb3J0cy5Db25zb2xlKHtcbiAgICBsZXZlbDogcHJvY2Vzcy5lbnZbJ0RFQlVHJ10gfHwgJ2luZm8nLFxuICB9KSxcbn0pXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVXcml0ZXIoaXJpID0gdXJpKTogW1dyaXRlckluc3RhbmNlLCBSZWFkZXJJbnN0YW5jZV0ge1xuICBjb25zdCByZWFkZXIgPSBjcmVhdGVSZWFkZXIoaXJpKVxuICBjb25zdCB3cml0ZVN0cmVhbSA9IG5ldyBXcml0ZXJJbnN0YW5jZShcbiAgICBpcmksXG4gICAgY2xpZW50LFxuICAgIGFzeW5jIChtc2cpID0+IHtcbiAgICAgIGlmIChtc2cubXNnKSB7XG4gICAgICAgIHJlYWRlci5oYW5kbGVNc2cobXNnLm1zZylcbiAgICAgIH1cbiAgICAgIGlmIChtc2cuY2xvc2UpIHtcbiAgICAgICAgcmVhZGVyLmNsb3NlKClcbiAgICAgIH1cbiAgICB9LFxuICAgIGxvZ2dlcixcbiAgKVxuICByZXR1cm4gW3dyaXRlU3RyZWFtLCByZWFkZXJdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZWFkZXIoaXJpID0gdXJpKTogUmVhZGVySW5zdGFuY2Uge1xuICBjb25zdCByZWFkZXIgPSBuZXcgUmVhZGVySW5zdGFuY2UoaXJpLCBjbGllbnQsIGxvZ2dlcilcbiAgcmV0dXJuIHJlYWRlclxufVxuIl19