@rdfc/js-runner 2.0.0-alpha.8 → 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 (56) 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/lib/client.js +1 -1
  27. package/lib/index.d.ts +1 -0
  28. package/lib/index.js +2 -1
  29. package/lib/logger.d.ts +3 -1
  30. package/lib/logger.js +23 -1
  31. package/lib/reader.js +1 -1
  32. package/lib/runner.js +3 -3
  33. package/lib/tsconfig.tsbuildinfo +1 -1
  34. package/package.json +1 -1
  35. package/src/client.ts +14 -16
  36. package/src/index.ts +1 -0
  37. package/src/logger.ts +27 -1
  38. package/src/reader.ts +8 -10
  39. package/src/runner.ts +4 -6
  40. package/.editorconfig +0 -9
  41. package/__tests__/channels.test.js +0 -117
  42. package/examples/echo/.idea/echo.iml +0 -9
  43. package/examples/echo/.idea/misc.xml +0 -6
  44. package/examples/echo/.idea/vcs.xml +0 -7
  45. package/examples/echo/.swls/config.json +0 -1
  46. package/examples/echo/index.ttl +0 -3
  47. package/examples/echo/minimal.ttl +0 -90
  48. package/examples/echo/shacl.ttl +0 -9
  49. package/examples/echo/shape.ttl +0 -1339
  50. package/examples/echo/src/processors.js +0 -123
  51. package/examples/echo/test.ttl +0 -11
  52. package/examples/echo/untitled:/types/MyType.ttl +0 -0
  53. package/file:/home/silvius/Projects/mumo-pipeline/ldes/http_3A_2F_2Fdata.mumo.be_2Fstreams_2Fnodes_2Fdefault/root/index.trig +0 -3
  54. package/ldes/http_3A_2F_2Fdata.mumo.be_2Fstreams_2Fnodes_2Fdefault/root/index.trig +0 -3
  55. package/minimal.ttl +0 -99
  56. package/vite.config.js +0 -11
@@ -0,0 +1,42 @@
1
+ import { Quad, Term } from '@rdfjs/types'
2
+ import { Shapes } from 'rdf-lens'
3
+ export * from './connectors.js'
4
+ type Processor = {
5
+ ty: Term
6
+ file: string
7
+ location: string
8
+ func: string
9
+ mapping: {
10
+ parameters: {
11
+ parameter: string
12
+ position: number
13
+ }[]
14
+ }
15
+ }
16
+ export type Source =
17
+ | {
18
+ type: 'remote'
19
+ location: string
20
+ }
21
+ | {
22
+ type: 'memory'
23
+ value: string
24
+ baseIRI: string
25
+ }
26
+ export type Extracted = {
27
+ processors: Processor[]
28
+ quads: Quad[]
29
+ shapes: Shapes
30
+ }
31
+ export declare function extractProcessors(
32
+ source: Source,
33
+ apply?: {
34
+ [label: string]: (item: any) => any
35
+ },
36
+ ): Promise<Extracted>
37
+ export declare function extractSteps(
38
+ proc: Processor,
39
+ quads: Quad[],
40
+ config: Shapes,
41
+ ): any[][]
42
+ export declare function jsRunner(): Promise<void>
package/dist/index.js ADDED
@@ -0,0 +1,83 @@
1
+ import { Store } from 'n3'
2
+ import { getArgs } from './args.js'
3
+ import { load_store, LOG } from './util.js'
4
+ import path from 'path'
5
+ import { RDF } from '@treecg/types'
6
+ import { ChannelFactory, Conn, JsOntology } from './connectors.js'
7
+ import { envReplace, extractShapes } from 'rdf-lens'
8
+ export * from './connectors.js'
9
+ function safeJoin(a, b) {
10
+ if (b.startsWith('/')) {
11
+ return b
12
+ }
13
+ return path.join(a, b)
14
+ }
15
+ export async function extractProcessors(source, apply) {
16
+ const store = new Store()
17
+ await load_store(source, store)
18
+ const quads = store.getQuads(null, null, null, null)
19
+ const config = extractShapes(quads, apply)
20
+ const subjects = quads
21
+ .filter(
22
+ (x) =>
23
+ x.predicate.equals(RDF.terms.type) &&
24
+ x.object.equals(JsOntology.JsProcess),
25
+ )
26
+ .map((x) => x.subject)
27
+ const processorLens = config.lenses[JsOntology.JsProcess.value]
28
+ const processors = subjects.map((id) => processorLens.execute({ id, quads }))
29
+ const newQuads = envReplace().execute(quads)
30
+ return { processors, quads: newQuads, shapes: config }
31
+ }
32
+ export function extractSteps(proc, quads, config) {
33
+ const out = []
34
+ const subjects = quads
35
+ .filter(
36
+ (x) => x.predicate.equals(RDF.terms.type) && x.object.equals(proc.ty),
37
+ )
38
+ .map((x) => x.subject)
39
+ const processorLens = config.lenses[proc.ty.value]
40
+ const fields = proc.mapping.parameters
41
+ for (const id of subjects) {
42
+ const obj = processorLens.execute({ id, quads })
43
+ const functionArgs = new Array(fields.length)
44
+ for (const field of fields) {
45
+ functionArgs[field.position] = obj[field.parameter]
46
+ }
47
+ out.push(functionArgs)
48
+ }
49
+ return out
50
+ }
51
+ export async function jsRunner() {
52
+ const args = getArgs()
53
+ const cwd = process.cwd()
54
+ const source = {
55
+ location: safeJoin(cwd, args.input).replaceAll('\\', '/'),
56
+ type: 'remote',
57
+ }
58
+ const factory = new ChannelFactory()
59
+ const apply = {}
60
+ apply[Conn.ReaderChannel.value] = factory.createReader.bind(factory)
61
+ apply[Conn.WriterChannel.value] = factory.createWriter.bind(factory)
62
+ const {
63
+ processors,
64
+ quads,
65
+ shapes: config,
66
+ } = await extractProcessors(source, apply)
67
+ LOG.main('Found %d processors', processors.length)
68
+ const starts = []
69
+ for (const proc of processors) {
70
+ const argss = extractSteps(proc, quads, config)
71
+ const jsProgram = await import('file://' + proc.file)
72
+ process.chdir(proc.location)
73
+ for (const args of argss) {
74
+ starts.push(await jsProgram[proc.func](...args))
75
+ }
76
+ }
77
+ await factory.init()
78
+ for (const s of starts) {
79
+ if (s && typeof s === 'function') {
80
+ s()
81
+ }
82
+ }
83
+ }
@@ -0,0 +1 @@
1
+ {"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/@types/command-line-args/index.d.ts","../node_modules/@types/command-line-usage/index.d.ts","../src/args.ts","../node_modules/@types/node/compatibility/disposable.d.ts","../node_modules/@types/node/compatibility/indexable.d.ts","../node_modules/@types/node/compatibility/iterators.d.ts","../node_modules/@types/node/compatibility/index.d.ts","../node_modules/@types/node/globals.typedarray.d.ts","../node_modules/@types/node/buffer.buffer.d.ts","../node_modules/buffer/index.d.ts","../node_modules/undici-types/header.d.ts","../node_modules/undici-types/readable.d.ts","../node_modules/undici-types/file.d.ts","../node_modules/undici-types/fetch.d.ts","../node_modules/undici-types/formdata.d.ts","../node_modules/undici-types/connector.d.ts","../node_modules/undici-types/client.d.ts","../node_modules/undici-types/errors.d.ts","../node_modules/undici-types/dispatcher.d.ts","../node_modules/undici-types/global-dispatcher.d.ts","../node_modules/undici-types/global-origin.d.ts","../node_modules/undici-types/pool-stats.d.ts","../node_modules/undici-types/pool.d.ts","../node_modules/undici-types/handlers.d.ts","../node_modules/undici-types/balanced-pool.d.ts","../node_modules/undici-types/agent.d.ts","../node_modules/undici-types/mock-interceptor.d.ts","../node_modules/undici-types/mock-agent.d.ts","../node_modules/undici-types/mock-client.d.ts","../node_modules/undici-types/mock-pool.d.ts","../node_modules/undici-types/mock-errors.d.ts","../node_modules/undici-types/proxy-agent.d.ts","../node_modules/undici-types/env-http-proxy-agent.d.ts","../node_modules/undici-types/retry-handler.d.ts","../node_modules/undici-types/retry-agent.d.ts","../node_modules/undici-types/api.d.ts","../node_modules/undici-types/interceptors.d.ts","../node_modules/undici-types/util.d.ts","../node_modules/undici-types/cookies.d.ts","../node_modules/undici-types/patch.d.ts","../node_modules/undici-types/websocket.d.ts","../node_modules/undici-types/eventsource.d.ts","../node_modules/undici-types/filereader.d.ts","../node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/undici-types/content-type.d.ts","../node_modules/undici-types/cache.d.ts","../node_modules/undici-types/index.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/dom-events.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/readline/promises.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/sea.d.ts","../node_modules/@types/node/sqlite.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/@rdfjs/types/data-model.d.ts","../node_modules/@rdfjs/types/stream.d.ts","../node_modules/@rdfjs/types/dataset.d.ts","../node_modules/@rdfjs/types/query/common.d.ts","../node_modules/@rdfjs/types/query/queryable.d.ts","../node_modules/@rdfjs/types/query.d.ts","../node_modules/@rdfjs/types/index.d.ts","../node_modules/@treecg/types/dist/lib/bucketizer.d.ts","../node_modules/@treecg/types/dist/lib/bucketizeroptions.d.ts","../node_modules/@treecg/types/dist/lib/member.d.ts","../node_modules/@treecg/types/dist/lib/relationparameters.d.ts","../node_modules/@treecg/types/dist/lib/fragment.d.ts","../node_modules/@treecg/types/dist/lib/utils/logger-browser.d.ts","../node_modules/@treecg/types/dist/lib/vocabularies.d.ts","../node_modules/@treecg/types/dist/index.d.ts","../src/connectors/file.ts","../node_modules/@types/ws/index.d.ts","../src/connectors/ws.ts","../node_modules/kafkajs/types/index.d.ts","../src/connectors/kafka.ts","../src/connectors/http.ts","../node_modules/@types/n3/node_modules/@rdfjs/types/data-model.d.ts","../node_modules/@types/n3/node_modules/@rdfjs/types/stream.d.ts","../node_modules/@types/n3/node_modules/@rdfjs/types/dataset.d.ts","../node_modules/@types/n3/node_modules/@rdfjs/types/query/common.d.ts","../node_modules/@types/n3/node_modules/@rdfjs/types/query/queryable.d.ts","../node_modules/@types/n3/node_modules/@rdfjs/types/query.d.ts","../node_modules/@types/n3/node_modules/@rdfjs/types/index.d.ts","../node_modules/@types/n3/index.d.ts","../node_modules/rdf-lens/node_modules/@rdfjs/types/index.d.ts","../node_modules/rdf-lens/dist/lens.d.ts","../node_modules/rdf-lens/dist/shacl.d.ts","../node_modules/rdf-lens/dist/index.d.ts","../src/index.ts","../node_modules/@types/ms/index.d.ts","../node_modules/@types/debug/index.d.ts","../src/util.ts","../src/connectors.ts","../node_modules/@types/estree/index.d.ts","../node_modules/@types/graceful-fs/index.d.ts","../node_modules/@types/istanbul-lib-coverage/index.d.ts","../node_modules/@types/istanbul-lib-report/index.d.ts","../node_modules/@types/istanbul-reports/index.d.ts","../node_modules/@types/normalize-package-data/index.d.ts","../node_modules/@types/stack-utils/index.d.ts","../node_modules/@types/yargs-parser/index.d.ts","../node_modules/@types/yargs/index.d.ts"],"fileIdsList":[[66,109],[66,109,160,161],[66,109,159,160,161,162,165],[66,109,163,164],[66,109,121,160],[66,109,160,163],[66,109,121,141,160],[66,109,167,168,169,170,171,172,173],[66,109,166],[66,109,166,169,170],[66,109,194],[66,109,122,159],[66,109,200],[66,109,201],[66,109,121,141,159,187],[66,109,181,182],[66,109,159,181,182,183,186],[66,109,184,185],[66,109,121,181],[66,109,181,184],[66,109,121,141,181],[66,106,109],[66,108,109],[109],[66,109,114,144],[66,109,110,115,121,122,129,141,152],[66,109,110,111,121,129],[61,62,63,66,109],[66,109,112,153],[66,109,113,114,122,130],[66,109,114,141,149],[66,109,115,117,121,129],[66,108,109,116],[66,109,117,118],[66,109,121],[66,109,119,121],[66,108,109,121],[66,109,121,122,123,141,152],[66,109,121,122,123,136,141,144],[66,104,109,157],[66,104,109,117,121,124,129,141,152],[66,109,121,122,124,125,129,141,149,152],[66,109,124,126,141,149,152],[64,65,66,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158],[66,109,121,127],[66,109,128,152,157],[66,109,117,121,129,141],[66,109,130],[66,109,131],[66,108,109,132],[66,106,107,108,109,110,111,112,113,114,115,116,117,118,119,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158],[66,109,134],[66,109,135],[66,109,121,136,137],[66,109,136,138,153,155],[66,109,121,141,142,143,144],[66,109,141,143],[66,109,141,142],[66,109,144],[66,109,145],[66,106,109,141],[66,109,121,147,148],[66,109,147,148],[66,109,114,129,141,149],[66,109,150],[66,109,129,151],[66,109,124,135,152],[66,109,114,153],[66,109,141,154],[66,109,128,155],[66,109,156],[66,109,114,121,123,132,141,152,155,157],[66,109,141,158],[66,109,121,124,126,141,149,152,158,159],[66,109,205],[66,109,129,149,159],[66,109,190,191],[66,109,187],[66,109,187,190],[66,109,181,182,183,186],[66,76,80,109,152],[66,76,109,141,152],[66,71,109],[66,73,76,109,149,152],[66,109,129,149],[66,109,159],[66,71,109,159],[66,73,76,109,129,152],[66,68,69,72,75,109,121,141,152],[66,76,83,109],[66,68,74,109],[66,76,97,98,109],[66,72,76,109,144,152,159],[66,97,109,159],[66,70,71,109,159],[66,76,109],[66,70,71,72,73,74,75,76,77,78,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,98,99,100,101,102,103,109],[66,76,91,109],[66,76,83,84,109],[66,74,76,84,85,109],[66,75,109],[66,68,71,76,109],[66,76,80,84,85,109],[66,80,109],[66,74,76,79,109,152],[66,68,73,76,83,109],[66,109,141],[66,71,76,97,109,157,159],[58,59,66,109],[66,109,166,174,175,177,179,180,196],[66,109,122,123,131,197],[66,109,124,126,141,197],[66,109,122,178,197],[66,109,176,197],[60,66,109,131,166,174,188,192,196,197],[66,109,122,124,126,141,166,174,188,193,195]],"fileInfos":[{"version":"e41c290ef7dd7dab3493e6cbe5909e0148edf4a8dad0271be08edec368a0f7b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"62bb211266ee48b2d0edf0d8d1b191f0c24fc379a82bd4c1692a082c540bc6b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"f1e2a172204962276504466a6393426d2ca9c54894b1ad0a6c9dad867a65f876","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"5b7206ca5f2f6eeaac6daa285664f424e0b728f3e31937da89deb8696c5f1dbc","impliedFormat":1},{"version":"53dd92e141efe47b413a058f3fbcc6e40a84f5afdde16f45de550a476da25d98","impliedFormat":1},{"version":"7c2809ab9b3e9be9c1600d16b39df3367487275efbf995ea8fd9c478f5580f01","signature":"868c24a79becad6edb3001a86ccade1033cb9b3553b200e71f6eb43cb32f78e3"},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"030e350db2525514580ed054f712ffb22d273e6bc7eddc1bb7eda1e0ba5d395e","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fd06258805d26c72f5997e07a23155d322d5f05387adb3744a791fe6a0b042d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"24bd580b5743dc56402c440dc7f9a4f5d592ad7a419f25414d37a7bfe11e342b","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"6bdc71028db658243775263e93a7db2fd2abfce3ca569c3cca5aee6ed5eb186d","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"ba97261afafe85aafe76d988e65e531da8e8cf791c49caf0531f5dd1689bd91b","affectsGlobalScope":true,"impliedFormat":1},{"version":"f52e8dacc97d71dcc96af29e49584353f9c54cb916d132e3e768d8b8129c928d","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"76103716ba397bbb61f9fa9c9090dca59f39f9047cb1352b2179c5d8e7f4e8d0","impliedFormat":1},{"version":"53eac70430b30089a3a1959d8306b0f9cfaf0de75224b68ef25243e0b5ad1ca3","affectsGlobalScope":true,"impliedFormat":1},{"version":"4314c7a11517e221f7296b46547dbc4df047115b182f544d072bdccffa57fc72","impliedFormat":1},{"version":"115971d64632ea4742b5b115fb64ed04bcaae2c3c342f13d9ba7e3f9ee39c4e7","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"86956cc2eb9dd371d6fab493d326a574afedebf76eef3fa7833b8e0d9b52d6f1","affectsGlobalScope":true,"impliedFormat":1},{"version":"24642567d3729bcc545bacb65ee7c0db423400c7f1ef757cab25d05650064f98","impliedFormat":1},{"version":"e6f5a38687bebe43a4cef426b69d34373ef68be9a6b1538ec0a371e69f309354","impliedFormat":1},{"version":"a6bf63d17324010ca1fbf0389cab83f93389bb0b9a01dc8a346d092f65b3605f","impliedFormat":1},{"version":"e009777bef4b023a999b2e5b9a136ff2cde37dc3f77c744a02840f05b18be8ff","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"88bc59b32d0d5b4e5d9632ac38edea23454057e643684c3c0b94511296f2998c","affectsGlobalScope":true,"impliedFormat":1},{"version":"e9ad08a376ac84948fcca0013d6f1d4ae4f9522e26b91f87945b97c99d7cc30b","impliedFormat":1},{"version":"eaf9ee1d90a35d56264f0bf39842282c58b9219e112ac7d0c1bce98c6c5da672","impliedFormat":1},{"version":"c15c4427ae7fd1dcd7f312a8a447ac93581b0d4664ddf151ecd07de4bf2bb9d7","impliedFormat":1},{"version":"5135bdd72cc05a8192bd2e92f0914d7fc43ee077d1293dc622a049b7035a0afb","impliedFormat":1},{"version":"4f80de3a11c0d2f1329a72e92c7416b2f7eab14f67e92cac63bb4e8d01c6edc8","impliedFormat":1},{"version":"6d386bc0d7f3afa1d401afc3e00ed6b09205a354a9795196caed937494a713e6","impliedFormat":1},{"version":"aeac7c51bde4658c192bc45819344eb20fc64743264b0465be6025201220a6b7","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4047ed87e765bd3bcc316a0c4c4c8b0061628460d8a5412d1c4b53a4658665a","impliedFormat":1},{"version":"b1b6ee0d012aeebe11d776a155d8979730440082797695fc8e2a5c326285678f","impliedFormat":1},{"version":"45875bcae57270aeb3ebc73a5e3fb4c7b9d91d6b045f107c1d8513c28ece71c0","impliedFormat":1},{"version":"3eb62baae4df08c9173e6903d3ca45942ccec8c3659b0565684a75f3292cffbb","affectsGlobalScope":true,"impliedFormat":1},{"version":"42aaa94addeed66a04b61e433c14e829c43d1efd653cf2fda480c5fb3d722ed8","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"c6b4e0a02545304935ecbf7de7a8e056a31bb50939b5b321c9d50a405b5a0bba","impliedFormat":1},{"version":"fab29e6d649aa074a6b91e3bdf2bff484934a46067f6ee97a30fcd9762ae2213","impliedFormat":1},{"version":"8145e07aad6da5f23f2fcd8c8e4c5c13fb26ee986a79d03b0829b8fce152d8b2","impliedFormat":1},{"version":"e1120271ebbc9952fdc7b2dd3e145560e52e06956345e6fdf91d70ca4886464f","impliedFormat":1},{"version":"15c5e91b5f08be34a78e3d976179bf5b7a9cc28dc0ef1ffebffeb3c7812a2dca","impliedFormat":1},{"version":"58832ded29e0094047596544ac391d68c799d7bd7d35936f47221857141628f1","impliedFormat":1},{"version":"553870e516f8c772b89f3820576152ebc70181d7994d96917bb943e37da7f8a7","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","impliedFormat":1},{"version":"745c4240220559bd340c8aeb6e3c5270a709d3565e934dc22a69c304703956bc","affectsGlobalScope":true,"impliedFormat":1},{"version":"2754d8221d77c7b382096651925eb476f1066b3348da4b73fe71ced7801edada","impliedFormat":1},{"version":"9212c6e9d80cb45441a3614e95afd7235a55a18584c2ed32d6c1aca5a0c53d93","affectsGlobalScope":true,"impliedFormat":1},{"version":"bef91efa0baea5d0e0f0f27b574a8bc100ce62a6d7e70220a0d58af6acab5e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"282fd2a1268a25345b830497b4b7bf5037a5e04f6a9c44c840cb605e19fea841","impliedFormat":1},{"version":"5360a27d3ebca11b224d7d3e38e3e2c63f8290cb1fcf6c3610401898f8e68bc3","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"7d6ff413e198d25639f9f01f16673e7df4e4bd2875a42455afd4ecc02ef156da","affectsGlobalScope":true,"impliedFormat":1},{"version":"6bd91a2a356600dee28eb0438082d0799a18a974a6537c4410a796bab749813c","affectsGlobalScope":true,"impliedFormat":1},{"version":"f689c4237b70ae6be5f0e4180e8833f34ace40529d1acc0676ab8fb8f70457d7","impliedFormat":1},{"version":"ae25afbbf1ed5df63a177d67b9048bf7481067f1b8dc9c39212e59db94fc9fc6","impliedFormat":1},{"version":"ac5ed35e649cdd8143131964336ab9076937fa91802ec760b3ea63b59175c10a","impliedFormat":1},{"version":"52a8e7e8a1454b6d1b5ad428efae3870ffc56f2c02d923467f2940c454aa9aec","affectsGlobalScope":true,"impliedFormat":1},{"version":"78dc0513cc4f1642906b74dda42146bcbd9df7401717d6e89ea6d72d12ecb539","impliedFormat":1},{"version":"ad90122e1cb599b3bc06a11710eb5489101be678f2920f2322b0ac3e195af78d","impliedFormat":1},{"version":"23c992090c336c34af55673d1d865b55a5f5c23a5fd2b4a6049e2df7058207c0","impliedFormat":1},{"version":"b1cac4e06205000177d05342bc524983550157a72fcf450b701e747deb19e6af","impliedFormat":1},{"version":"d2cdba5be077b28a91fd380157e423d093279590aedb605f51ed6b6f398657c1","impliedFormat":1},{"version":"26e5fdc90b7bf9f7e5b107f2368adc69c72c74e4a125e6109ccde781b87bbd57","impliedFormat":1},{"version":"8953bf122fc832d335954e3a9188cbe4766ee2ef9be51f577de52234cd8a630e","impliedFormat":1},{"version":"642970856d429003a8a04298231d0dedac726519411a8b88afd90e2ab689f094","impliedFormat":1},{"version":"d399f2e8fb5a30229e0ebfae43e5d6c90ad23c0b4128d1e8d2499b809660cf4d","impliedFormat":1},{"version":"aa1196da64d7fb641934dbf9683d45c2feea84f8aed23795c7793564bb2b8e08","impliedFormat":1},{"version":"a8b9548c59b33326a9fe601dad0242350e801af3091d2cf8f29279bd3d766a84","impliedFormat":1},{"version":"691ca3c93dc4aa9e14880dfcaa141df361b8cff75a8d298ed026b3e342561e02","impliedFormat":1},{"version":"ad44c5b327076d4f9c1fa00aaa41a3a0d2858df3adfb8cd0cdd944e05dd4a86a","impliedFormat":1},{"version":"5ee0f472c2200c82722e5b0f33646ac2dc8529204d81a32ac74ec794a07758ac","impliedFormat":1},{"version":"4a7e35c3dca7a40e70c2eefd62458ba6d84fcac7e1a3ed7ffe90a76b576af6dd","impliedFormat":1},{"version":"7b4903e52d29404a1be01654d222dc5b4e69323c6dc1be4842ba1718eec364c5","impliedFormat":1},{"version":"588f0e8ab710dca145e2ea80f0ecad3a072b06c110c31728027aa23024b5d06d","impliedFormat":1},{"version":"8fa34c73c0e31cc904487597822d444fe82430d211b553b734235df7b25dd9fa","signature":"d60e1442381b68677b579286e409d292d7a72b05aca68cd12e6612ec8c581072"},{"version":"eb15edfcef078300657e1d5d678e1944b3518c2dd8f26792fdba2fe29f73d32b","impliedFormat":1},{"version":"abf42c502b8c2c7b0535eb2444076220178e7d9a66004d7e13b47b7df8531789","signature":"bc7e6cc3b1a0f4bafb908fb25abe8f4e02f971ab3b6861e589a890e44082037f"},{"version":"c724034e22cbbde98550aca4ee32006f7f4c566885328949ac16ff9ff2f76e89","impliedFormat":1},{"version":"c80b256621ce182e6e7f592c53f54c8e5ccbb390543b0cb7cd142ff9d3cd96c2","signature":"663b1f2f533658817dbc0a077a3b7c7731912848ee265846207ea8f69b48d185"},{"version":"4fdf97ba577722cd94e450586cc0c6e487d9092425eb2c2f217e38c0f627d683","signature":"96c7eabd37baeeb90ee8b4636a0e17aefd2d1ffd8062e8c34889793bc52b018f"},{"version":"c0156ff6b3c5f5b6699fafa0e36635590651aa70a07314425cf212f11c2443f8","impliedFormat":1},{"version":"b1cac4e06205000177d05342bc524983550157a72fcf450b701e747deb19e6af","impliedFormat":1},{"version":"d2cdba5be077b28a91fd380157e423d093279590aedb605f51ed6b6f398657c1","impliedFormat":1},{"version":"0d278d3cf006676a7c6c30424326bd38aba8344c471b64289ab89e4dcdb6e799","impliedFormat":1},{"version":"8953bf122fc832d335954e3a9188cbe4766ee2ef9be51f577de52234cd8a630e","impliedFormat":1},{"version":"642970856d429003a8a04298231d0dedac726519411a8b88afd90e2ab689f094","impliedFormat":1},{"version":"25006341224db03de63a44dea009de6523428c1bfe214ce069d10d0748838f12","impliedFormat":1},{"version":"19072093a6454f9db6316ac7f3cfdca7d0cbb34c25628754e3dfa2a630e9a1db","impliedFormat":1},{"version":"25006341224db03de63a44dea009de6523428c1bfe214ce069d10d0748838f12","impliedFormat":1},{"version":"17f37e72086ac4f75de46f81ec4ba33f2a64b57c8d13bfa2c9c9e4032dc46e36","impliedFormat":99},{"version":"db2a2230814e8d7356529a0eb23e63ba37a2966ae719f29b98c26e06df2200b7","impliedFormat":99},{"version":"0231e5425f539b30c9665bbff15496ab31c7ce9f29fcfb834b988f790218fe87","impliedFormat":99},{"version":"6c5500fd43c2b467395e6c6bc45c82a208fc6c2b4f4b18fe88f768940ed6e50a","signature":"82f6f5ac64b69f2367b66c2b3ebeb38c76701cb4925bc2bcb2a51eeed00c33dc"},{"version":"68cc8d6fcc2f270d7108f02f3ebc59480a54615be3e09a47e14527f349e9d53e","impliedFormat":1},{"version":"3eb11dbf3489064a47a2e1cf9d261b1f100ef0b3b50ffca6c44dd99d6dd81ac1","impliedFormat":1},{"version":"b46857872b8479100a74c4b152aa798506e1a18adb42e5d5ed1ff40c80df97cc","signature":"d6c8cf477384a1f41c47bc997353817b121056e36c71e9b4eb4ea680d6f6cd2d"},{"version":"21aae63bafe6ceafe74c5174a79d5a4ceb6ab0f0b5ef6c1b8aee857aad76567d","signature":"ad8a231202df1ce6e66ddfffd4ec8b134bbd34fd46a4039a59b6eb6cb582771d"},{"version":"785b9d575b49124ce01b46f5b9402157c7611e6532effa562ac6aebec0074dfc","impliedFormat":1},{"version":"afe73051ff6a03a9565cbd8ebb0e956ee3df5e913ad5c1ded64218aabfa3dcb5","impliedFormat":1},{"version":"035a5df183489c2e22f3cf59fc1ed2b043d27f357eecc0eb8d8e840059d44245","impliedFormat":1},{"version":"a4809f4d92317535e6b22b01019437030077a76fec1d93b9881c9ed4738fcc54","impliedFormat":1},{"version":"5f53fa0bd22096d2a78533f94e02c899143b8f0f9891a46965294ee8b91a9434","impliedFormat":1},{"version":"22293bd6fa12747929f8dfca3ec1684a3fe08638aa18023dd286ab337e88a592","impliedFormat":1},{"version":"ab82804a14454734010dcdcd43f564ff7b0389bee4c5692eec76ff5b30d4cf66","impliedFormat":1},{"version":"bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","impliedFormat":1},{"version":"5d30d04a14ed8527ac5d654dc345a4db11b593334c11a65efb6e4facc5484a0e","impliedFormat":1}],"root":[60,175,177,179,180,193,196,197],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"downlevelIteration":true,"esModuleInterop":true,"experimentalDecorators":true,"module":7,"outDir":"./","preserveConstEnums":true,"removeComments":true,"skipLibCheck":true,"strict":true,"strictFunctionTypes":false,"strictPropertyInitialization":false,"target":9},"referencedMap":[[160,1],[162,2],[166,3],[165,4],[163,5],[164,6],[161,7],[174,8],[167,9],[168,9],[171,10],[169,9],[170,9],[172,1],[173,9],[58,1],[59,1],[195,11],[198,1],[199,12],[200,1],[201,13],[202,14],[194,1],[188,15],[181,1],[183,16],[187,17],[186,18],[184,19],[185,20],[182,21],[106,22],[107,22],[108,23],[66,24],[109,25],[110,26],[111,27],[61,1],[64,28],[62,1],[63,1],[112,29],[113,30],[114,31],[115,32],[116,33],[117,34],[118,34],[120,35],[119,36],[121,37],[122,38],[123,39],[105,40],[65,1],[124,41],[125,42],[126,43],[159,44],[127,45],[128,46],[129,47],[130,48],[131,49],[132,50],[133,51],[134,52],[135,53],[136,54],[137,54],[138,55],[139,1],[140,1],[141,56],[143,57],[142,58],[144,59],[145,60],[146,61],[147,62],[148,63],[149,64],[150,65],[151,66],[152,67],[153,68],[154,69],[155,70],[156,71],[157,72],[158,73],[203,1],[204,1],[176,74],[205,1],[206,75],[67,1],[178,76],[192,77],[190,78],[191,79],[189,80],[56,1],[57,1],[11,1],[10,1],[2,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[3,1],[20,1],[21,1],[4,1],[22,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[5,1],[30,1],[31,1],[32,1],[33,1],[6,1],[37,1],[34,1],[35,1],[36,1],[38,1],[7,1],[39,1],[44,1],[45,1],[40,1],[41,1],[42,1],[43,1],[8,1],[49,1],[46,1],[47,1],[48,1],[50,1],[9,1],[51,1],[52,1],[53,1],[55,1],[54,1],[1,1],[83,81],[93,82],[82,81],[103,83],[74,84],[73,85],[102,86],[96,87],[101,88],[76,89],[90,90],[75,91],[99,92],[71,93],[70,86],[100,94],[72,95],[77,96],[78,1],[81,96],[68,1],[104,97],[94,98],[85,99],[86,100],[88,101],[84,102],[87,103],[97,86],[79,104],[80,105],[89,106],[69,107],[92,98],[91,96],[95,1],[98,108],[60,109],[197,110],[175,111],[180,112],[179,113],[177,114],[193,115],[196,116]],"version":"5.7.3"}
package/dist/util.d.ts ADDED
@@ -0,0 +1,71 @@
1
+ import stream from 'stream'
2
+ import { Store } from 'n3'
3
+ import { Source } from './index.js'
4
+ import { Quad, Term } from '@rdfjs/types'
5
+ import debug from 'debug'
6
+ export declare const LOG: {
7
+ main: debug.Debugger
8
+ channel: debug.Debugger
9
+ util: debug.Debugger
10
+ }
11
+ export declare function toArray<T>(stream: stream.Readable): Promise<T[]>
12
+ export declare const OWL: {
13
+ namespace: string
14
+ custom: (input: string) => string
15
+ } & {
16
+ imports: string
17
+ } & {
18
+ terms: import('@treecg/types').Namespace<
19
+ 'imports'[],
20
+ import('@rdfjs/types').NamedNode<string>,
21
+ string
22
+ >
23
+ }
24
+ export declare const CONN2: {
25
+ namespace: string
26
+ custom: (input: string) => string
27
+ } & {
28
+ install: string
29
+ build: string
30
+ GitInstall: string
31
+ LocalInstall: string
32
+ url: string
33
+ procFile: string
34
+ path: string
35
+ EnvVariable: string
36
+ envKey: string
37
+ envDefault: string
38
+ } & {
39
+ terms: import('@treecg/types').Namespace<
40
+ (
41
+ | 'install'
42
+ | 'build'
43
+ | 'GitInstall'
44
+ | 'LocalInstall'
45
+ | 'url'
46
+ | 'procFile'
47
+ | 'path'
48
+ | 'EnvVariable'
49
+ | 'envKey'
50
+ | 'envDefault'
51
+ )[],
52
+ import('@rdfjs/types').NamedNode<string>,
53
+ string
54
+ >
55
+ }
56
+ export declare const namedNode: <Iri extends string = string>(
57
+ value: Iri,
58
+ ) => import('n3').NamedNode<Iri>
59
+ export type Keyed<T> = {
60
+ [Key in keyof T]: Term | undefined
61
+ }
62
+ export type Map<V, K, T, O> = (value: V, key: K, item: T) => O
63
+ export declare function load_quads(
64
+ location: string,
65
+ baseIRI?: string,
66
+ ): Promise<Quad[]>
67
+ export declare function load_store(
68
+ location: Source,
69
+ store: Store,
70
+ recursive?: boolean,
71
+ ): Promise<void>
package/dist/util.js ADDED
@@ -0,0 +1,92 @@
1
+ import { createReadStream } from 'fs'
2
+ import http from 'http'
3
+ import https from 'https'
4
+ import { DataFactory, Parser, StreamParser } from 'n3'
5
+ import { createUriAndTermNamespace } from '@treecg/types'
6
+ import debug from 'debug'
7
+ export const LOG = (function () {
8
+ const main = debug('js-runner')
9
+ const channel = main.extend('channel')
10
+ const util = main.extend('util')
11
+ return { main, channel, util }
12
+ })()
13
+ export function toArray(stream) {
14
+ const output = []
15
+ return new Promise((res, rej) => {
16
+ stream.on('data', (x) => output.push(x))
17
+ stream.on('end', () => res(output))
18
+ stream.on('close', () => res(output))
19
+ stream.on('error', rej)
20
+ })
21
+ }
22
+ export const OWL = createUriAndTermNamespace(
23
+ 'http://www.w3.org/2002/07/owl#',
24
+ 'imports',
25
+ )
26
+ export const CONN2 = createUriAndTermNamespace(
27
+ 'https://w3id.org/conn#',
28
+ 'install',
29
+ 'build',
30
+ 'GitInstall',
31
+ 'LocalInstall',
32
+ 'url',
33
+ 'procFile',
34
+ 'path',
35
+ 'EnvVariable',
36
+ 'envKey',
37
+ 'envDefault',
38
+ )
39
+ export const { namedNode } = DataFactory
40
+ async function get_readstream(location) {
41
+ if (location.startsWith('https')) {
42
+ return new Promise((res) => {
43
+ https.get(location, res)
44
+ })
45
+ } else if (location.startsWith('http')) {
46
+ return new Promise((res) => {
47
+ http.get(location, res)
48
+ })
49
+ } else {
50
+ return createReadStream(location)
51
+ }
52
+ }
53
+ export async function load_quads(location, baseIRI) {
54
+ try {
55
+ LOG.util('Loading quads %s', location)
56
+ const parser = new StreamParser({ baseIRI: baseIRI || location })
57
+ const rdfStream = await get_readstream(location)
58
+ rdfStream.pipe(parser)
59
+ const quads = await toArray(parser)
60
+ return quads
61
+ } catch (ex) {
62
+ console.error('Failed to load_quads', location, baseIRI)
63
+ console.error(ex)
64
+ return []
65
+ }
66
+ }
67
+ function load_memory_quads(value, baseIRI) {
68
+ const parser = new Parser({ baseIRI })
69
+ return parser.parse(value)
70
+ }
71
+ const loaded = new Set()
72
+ export async function load_store(location, store, recursive = true) {
73
+ if (loaded.has(location)) return
74
+ loaded.add(location)
75
+ const quads =
76
+ location.type === 'remote'
77
+ ? await load_quads(location.location)
78
+ : load_memory_quads(location.value, location.baseIRI)
79
+ store.addQuads(quads)
80
+ if (recursive) {
81
+ const loc =
82
+ location.type === 'remote' ? location.location : location.baseIRI
83
+ const other_imports = store.getObjects(
84
+ namedNode(loc),
85
+ OWL.terms.imports,
86
+ null,
87
+ )
88
+ for (const other of other_imports) {
89
+ await load_store({ location: other.value, type: 'remote' }, store, true)
90
+ }
91
+ }
92
+ }
package/lib/client.js CHANGED
@@ -40,4 +40,4 @@ export async function start(addr, uri) {
40
40
  client.close();
41
41
  process.exit(0);
42
42
  }
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ2hDLE9BQU8sRUFBRSxZQUFZLEVBQWlCLE1BQU0sYUFBYSxDQUFBO0FBQ3pELE9BQU8sT0FBTyxNQUFNLFNBQVMsQ0FBQTtBQUM3QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFakMsTUFBTSxDQUFDLEtBQUssVUFBVSxLQUFLLENBQUMsSUFBWSxFQUFFLEdBQVc7SUFDbkQsTUFBTSxNQUFNLEdBQUcsSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQTtJQUl4RSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQ2xDLFVBQVUsRUFBRTtZQUNWLElBQUksWUFBWSxDQUFDO2dCQUNmLFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUM7Z0JBQ3RCLE1BQU0sRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQzthQUNwQyxDQUFDO1NBQ0g7S0FDRixDQUFDLENBQUE7SUFFRixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUE7SUFFL0IsTUFBTSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsQ0FBQTtJQUM1QyxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUNyRCxNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUV4RCxNQUFNLFFBQVEsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUVyQyxJQUFJLGFBQXVDLENBQUE7SUFDM0MsTUFBTSxlQUFlLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQ2hFO0lBQUMsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNaLElBQUksS0FBSyxFQUFFLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ2pDLE1BQU0sR0FBRyxHQUFrQixLQUFLLENBQUE7WUFDaEMsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2IsTUFBTSxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNyQyxDQUFDO1lBQ0QsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2QsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtZQUNwQyxDQUFDO1lBRUQsTUFBTSxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDckMsQ0FBQztRQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDOUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUVOLE1BQU0sZUFBZSxDQUFBO0lBRXJCLE1BQU0sQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtJQUMxQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUE7SUFDWixNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBncnBjIGZyb20gJ0BncnBjL2dycGMtanMnXG5pbXBvcnQgeyBwcm9taXNpZnkgfSBmcm9tICd1dGlsJ1xuaW1wb3J0IHsgUnVubmVyQ2xpZW50LCBSdW5uZXJNZXNzYWdlIH0gZnJvbSAnQHJkZmMvcHJvdG8nXG5pbXBvcnQgd2luc3RvbiBmcm9tICd3aW5zdG9uJ1xuaW1wb3J0IHsgUnBjVHJhbnNwb3J0IH0gZnJvbSAnLi9sb2dnZXInXG5pbXBvcnQgeyBSdW5uZXIgfSBmcm9tICcuL3J1bm5lcidcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0KGFkZHI6IHN0cmluZywgdXJpOiBzdHJpbmcpIHtcbiAgY29uc3QgY2xpZW50ID0gbmV3IFJ1bm5lckNsaWVudChhZGRyLCBncnBjLmNyZWRlbnRpYWxzLmNyZWF0ZUluc2VjdXJlKCkpXG5cblxuXG4gIGNvbnN0IGxvZ2dlciA9IHdpbnN0b24uY3JlYXRlTG9nZ2VyKHtcbiAgICB0cmFuc3BvcnRzOiBbXG4gICAgICBuZXcgUnBjVHJhbnNwb3J0KHtcbiAgICAgICAgZW50aXRpZXM6IFt1cmksICdjbGknXSxcbiAgICAgICAgc3RyZWFtOiBjbGllbnQubG9nU3RyZWFtKCgpID0+IHsgfSksXG4gICAgICB9KSxcbiAgICBdLFxuICB9KVxuXG4gIGNvbnN0IHN0cmVhbSA9IGNsaWVudC5jb25uZWN0KClcblxuICBsb2dnZXIuaW5mbygnQ29ubmVjdGVkIHdpdGggc2VydmVyICcgKyBhZGRyKVxuICBjb25zdCB3cml0YWJsZSA9IHByb21pc2lmeShzdHJlYW0ud3JpdGUuYmluZChzdHJlYW0pKVxuICBjb25zdCBydW5uZXIgPSBuZXcgUnVubmVyKGNsaWVudCwgd3JpdGFibGUsIHVyaSwgbG9nZ2VyKVxuXG4gIGF3YWl0IHdyaXRhYmxlKHsgaWRlbnRpZnk6IHsgdXJpIH0gfSlcblxuICBsZXQgcHJvY2Vzc29yc0VuZCE6ICh2OiB1bmtub3duKSA9PiB1bmtub3duXG4gIGNvbnN0IHByb2Nlc3NvcnNFbmRlZCA9IG5ldyBQcm9taXNlKChyZXMpID0+IChwcm9jZXNzb3JzRW5kID0gcmVzKSlcbiAgICA7IChhc3luYyAoKSA9PiB7XG4gICAgICBmb3IgYXdhaXQgKGNvbnN0IGNodW5rIG9mIHN0cmVhbSkge1xuICAgICAgICBjb25zdCBtc2c6IFJ1bm5lck1lc3NhZ2UgPSBjaHVua1xuICAgICAgICBpZiAobXNnLnByb2MpIHtcbiAgICAgICAgICBhd2FpdCBydW5uZXIuYWRkUHJvY2Vzc29yKG1zZy5wcm9jKVxuICAgICAgICB9XG4gICAgICAgIGlmIChtc2cuc3RhcnQpIHtcbiAgICAgICAgICBydW5uZXIuc3RhcnQoKS50aGVuKHByb2Nlc3NvcnNFbmQpXG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBydW5uZXIuaGFuZGxlT3JjaE1lc3NhZ2UobXNnKVxuICAgICAgfVxuXG4gICAgICBsb2dnZXIuZXJyb3IoJ1N0cmVhbSBlbmRlZCcpXG4gICAgfSkoKVxuXG4gIGF3YWl0IHByb2Nlc3NvcnNFbmRlZFxuXG4gIGxvZ2dlci5pbmZvKCdBbGwgcHJvY2Vzc29ycyBhcmUgZmluaXNoZWQnKVxuICBzdHJlYW0uZW5kKClcbiAgY2xpZW50LmNsb3NlKClcbiAgcHJvY2Vzcy5leGl0KDApXG59XG4iXX0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ2hDLE9BQU8sRUFBRSxZQUFZLEVBQWlCLE1BQU0sYUFBYSxDQUFBO0FBQ3pELE9BQU8sT0FBTyxNQUFNLFNBQVMsQ0FBQTtBQUM3QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFakMsTUFBTSxDQUFDLEtBQUssVUFBVSxLQUFLLENBQUMsSUFBWSxFQUFFLEdBQVc7SUFDbkQsTUFBTSxNQUFNLEdBQUcsSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQTtJQUV4RSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQ2xDLFVBQVUsRUFBRTtZQUNWLElBQUksWUFBWSxDQUFDO2dCQUNmLFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUM7Z0JBQ3RCLE1BQU0sRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQzthQUNuQyxDQUFDO1NBQ0g7S0FDRixDQUFDLENBQUE7SUFFRixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUE7SUFFL0IsTUFBTSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsQ0FBQTtJQUM1QyxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUNyRCxNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUV4RCxNQUFNLFFBQVEsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUVyQyxJQUFJLGFBQXVDLENBQUE7SUFDM0MsTUFBTSxlQUFlLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQ2xFO0lBQUEsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNYLElBQUksS0FBSyxFQUFFLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ2pDLE1BQU0sR0FBRyxHQUFrQixLQUFLLENBQUE7WUFDaEMsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2IsTUFBTSxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNyQyxDQUFDO1lBQ0QsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2QsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtZQUNwQyxDQUFDO1lBRUQsTUFBTSxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDckMsQ0FBQztRQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDOUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUVKLE1BQU0sZUFBZSxDQUFBO0lBRXJCLE1BQU0sQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtJQUMxQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUE7SUFDWixNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBncnBjIGZyb20gJ0BncnBjL2dycGMtanMnXG5pbXBvcnQgeyBwcm9taXNpZnkgfSBmcm9tICd1dGlsJ1xuaW1wb3J0IHsgUnVubmVyQ2xpZW50LCBSdW5uZXJNZXNzYWdlIH0gZnJvbSAnQHJkZmMvcHJvdG8nXG5pbXBvcnQgd2luc3RvbiBmcm9tICd3aW5zdG9uJ1xuaW1wb3J0IHsgUnBjVHJhbnNwb3J0IH0gZnJvbSAnLi9sb2dnZXInXG5pbXBvcnQgeyBSdW5uZXIgfSBmcm9tICcuL3J1bm5lcidcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0KGFkZHI6IHN0cmluZywgdXJpOiBzdHJpbmcpIHtcbiAgY29uc3QgY2xpZW50ID0gbmV3IFJ1bm5lckNsaWVudChhZGRyLCBncnBjLmNyZWRlbnRpYWxzLmNyZWF0ZUluc2VjdXJlKCkpXG5cbiAgY29uc3QgbG9nZ2VyID0gd2luc3Rvbi5jcmVhdGVMb2dnZXIoe1xuICAgIHRyYW5zcG9ydHM6IFtcbiAgICAgIG5ldyBScGNUcmFuc3BvcnQoe1xuICAgICAgICBlbnRpdGllczogW3VyaSwgJ2NsaSddLFxuICAgICAgICBzdHJlYW06IGNsaWVudC5sb2dTdHJlYW0oKCkgPT4ge30pLFxuICAgICAgfSksXG4gICAgXSxcbiAgfSlcblxuICBjb25zdCBzdHJlYW0gPSBjbGllbnQuY29ubmVjdCgpXG5cbiAgbG9nZ2VyLmluZm8oJ0Nvbm5lY3RlZCB3aXRoIHNlcnZlciAnICsgYWRkcilcbiAgY29uc3Qgd3JpdGFibGUgPSBwcm9taXNpZnkoc3RyZWFtLndyaXRlLmJpbmQoc3RyZWFtKSlcbiAgY29uc3QgcnVubmVyID0gbmV3IFJ1bm5lcihjbGllbnQsIHdyaXRhYmxlLCB1cmksIGxvZ2dlcilcblxuICBhd2FpdCB3cml0YWJsZSh7IGlkZW50aWZ5OiB7IHVyaSB9IH0pXG5cbiAgbGV0IHByb2Nlc3NvcnNFbmQhOiAodjogdW5rbm93bikgPT4gdW5rbm93blxuICBjb25zdCBwcm9jZXNzb3JzRW5kZWQgPSBuZXcgUHJvbWlzZSgocmVzKSA9PiAocHJvY2Vzc29yc0VuZCA9IHJlcykpXG4gIDsoYXN5bmMgKCkgPT4ge1xuICAgIGZvciBhd2FpdCAoY29uc3QgY2h1bmsgb2Ygc3RyZWFtKSB7XG4gICAgICBjb25zdCBtc2c6IFJ1bm5lck1lc3NhZ2UgPSBjaHVua1xuICAgICAgaWYgKG1zZy5wcm9jKSB7XG4gICAgICAgIGF3YWl0IHJ1bm5lci5hZGRQcm9jZXNzb3IobXNnLnByb2MpXG4gICAgICB9XG4gICAgICBpZiAobXNnLnN0YXJ0KSB7XG4gICAgICAgIHJ1bm5lci5zdGFydCgpLnRoZW4ocHJvY2Vzc29yc0VuZClcbiAgICAgIH1cblxuICAgICAgYXdhaXQgcnVubmVyLmhhbmRsZU9yY2hNZXNzYWdlKG1zZylcbiAgICB9XG5cbiAgICBsb2dnZXIuZXJyb3IoJ1N0cmVhbSBlbmRlZCcpXG4gIH0pKClcblxuICBhd2FpdCBwcm9jZXNzb3JzRW5kZWRcblxuICBsb2dnZXIuaW5mbygnQWxsIHByb2Nlc3NvcnMgYXJlIGZpbmlzaGVkJylcbiAgc3RyZWFtLmVuZCgpXG4gIGNsaWVudC5jbG9zZSgpXG4gIHByb2Nlc3MuZXhpdCgwKVxufVxuIl19
package/lib/index.d.ts CHANGED
@@ -3,4 +3,5 @@ export * from './writer.js';
3
3
  export * from './reader.js';
4
4
  export * from './processor.js';
5
5
  export * from './runner.js';
6
+ export * from './logger.js';
6
7
  export * as reexports from './reexports.js';
package/lib/index.js CHANGED
@@ -3,5 +3,6 @@ export * from './writer.js';
3
3
  export * from './reader.js';
4
4
  export * from './processor.js';
5
5
  export * from './runner.js';
6
+ export * from './logger.js';
6
7
  export * as reexports from './reexports.js';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxhQUFhLENBQUE7QUFDM0IsY0FBYyxVQUFVLENBQUE7QUFFeEIsT0FBTyxLQUFLLFNBQVMsTUFBTSxhQUFhLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NsaWVudCdcbmV4cG9ydCAqIGZyb20gJy4vd3JpdGVyJ1xuZXhwb3J0ICogZnJvbSAnLi9yZWFkZXInXG5leHBvcnQgKiBmcm9tICcuL3Byb2Nlc3NvcidcbmV4cG9ydCAqIGZyb20gJy4vcnVubmVyJ1xuXG5leHBvcnQgKiBhcyByZWV4cG9ydHMgZnJvbSAnLi9yZWV4cG9ydHMnXG4iXX0=
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxhQUFhLENBQUE7QUFDM0IsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxVQUFVLENBQUE7QUFFeEIsT0FBTyxLQUFLLFNBQVMsTUFBTSxhQUFhLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NsaWVudCdcbmV4cG9ydCAqIGZyb20gJy4vd3JpdGVyJ1xuZXhwb3J0ICogZnJvbSAnLi9yZWFkZXInXG5leHBvcnQgKiBmcm9tICcuL3Byb2Nlc3NvcidcbmV4cG9ydCAqIGZyb20gJy4vcnVubmVyJ1xuZXhwb3J0ICogZnJvbSAnLi9sb2dnZXInXG5cbmV4cG9ydCAqIGFzIHJlZXhwb3J0cyBmcm9tICcuL3JlZXhwb3J0cydcbiJdfQ==
package/lib/logger.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import winston from 'winston';
1
+ import winston, { Logger } from 'winston';
2
2
  import Transport from 'winston-transport';
3
3
  import * as grpc from '@grpc/grpc-js';
4
4
  import { LogMessage } from '@rdfc/proto';
@@ -12,4 +12,6 @@ export declare class RpcTransport extends Transport {
12
12
  aliases?: string[];
13
13
  });
14
14
  log(info: winston.LogEntry, callback: () => void): void;
15
+ withEntity(entity: string): RpcTransport;
15
16
  }
17
+ export declare function extendLogger(baseLogger: Logger, newEntity: string): Logger;
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
@@ -99,4 +99,4 @@ export class ReaderInstance {
99
99
  }
100
100
  }
101
101
  }
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQ0wsWUFBWSxFQUVaLFdBQVcsRUFDWCxlQUFlLEVBQ2YsZUFBZSxHQUNoQixNQUFNLGFBQWEsQ0FBQTtBQXFCcEIsTUFBTSxNQUFNO0lBQ0YsU0FBUyxDQUFjO0lBQ3ZCLEtBQUssR0FBc0IsRUFBRSxDQUFBO0lBQzdCLFdBQVcsR0FBd0MsSUFBSSxDQUFBO0lBRS9ELFlBQVksU0FBdUI7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUE7SUFDNUIsQ0FBQztJQUVELElBQUksQ0FBQyxNQUFrQjtRQUNyQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN4QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNyQixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1lBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFBO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQzFCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUE7WUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUE7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQXVDO1FBQ3RELE1BQU0sTUFBTSxHQUFHLENBQUMsS0FBSyxTQUFTLENBQUMsRUFBQyxNQUFNO1lBQ3BDLElBQUksS0FBSyxFQUFFLE1BQU0sQ0FB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QUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDckIsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLO1FBQ0gsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxHQUFrQjtRQUN2QyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLDZCQUE2QixDQUFDLENBQUE7UUFDM0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsRUFBRyxDQUFDLENBQUE7UUFDeEQsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN6QixDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xpZW50UmVhZGFibGVTdHJlYW0gfSBmcm9tICdAZ3JwYy9ncnBjLWpzJ1xuaW1wb3J0IHsgRGF0YUNodW5rLCBNZXNzYWdlLCBSdW5uZXJDbGllbnQsIFN0cmVhbU1lc3NhZ2UgfSBmcm9tICdAcmRmYy9wcm90bydcbmltcG9ydCB3aW5zdG9uIGZyb20gJ3dpbnN0b24nXG5pbXBvcnQge1xuICBBbnlDb252ZXJ0b3IsXG4gIENvbnZlcnRvcixcbiAgTm9Db252ZXJ0b3IsXG4gIFN0cmVhbUNvbnZlcnRvcixcbiAgU3RyaW5nQ29udmVydG9yLFxufSBmcm9tICcuL2NvbnZlcnRvcidcblxuZXhwb3J0IHR5cGUgQW55ID1cbiAgfCB7XG4gICAgc3RyaW5nOiBzdHJpbmdcbiAgfVxuICB8IHtcbiAgICBzdHJlYW06IEFzeW5jR2VuZXJhdG9yPFVpbnQ4QXJyYXk+XG4gIH1cbiAgfCB7XG4gICAgYnVmZmVyOiBVaW50OEFycmF5XG4gIH1cblxuZXhwb3J0IGludGVyZmFjZSBSZWFkZXIge1xuICByZWFkb25seSB1cmk6IHN0cmluZ1xuICBzdHJpbmdzKCk6IEFzeW5jSXRlcmFibGU8c3RyaW5nPlxuICBzdHJlYW1zKCk6IEFzeW5jSXRlcmFibGU8QXN5bmNHZW5lcmF0b3I8VWludDhBcnJheT4+XG4gIGJ1ZmZlcnMoKTogQXN5bmNJdGVyYWJsZTxVaW50OEFycmF5PlxuICBhbnlzKCk6IEFzeW5jSXRlcmFibGU8QW55PlxufVxuXG5jbGFzcyBNeUl0ZXI8VD4gaW1wbGVtZW50cyBBc3luY0l0ZXJhYmxlPFQ+IHtcbiAgcHJpdmF0ZSBjb252ZXJ0b3I6IENvbnZlcnRvcjxUPlxuICBwcml2YXRlIHF1ZXVlOiAoVCB8IHVuZGVmaW5lZClbXSA9IFtdXG4gIHByaXZhdGUgcmVzb2x2ZU5leHQ6ICgodmFsdWU6IHVuZGVmaW5lZCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbFxuXG4gIGNvbnN0cnVjdG9yKGNvbnZlcnRvcjogQ29udmVydG9yPFQ+KSB7XG4gICAgdGhpcy5jb252ZXJ0b3IgPSBjb252ZXJ0b3JcbiAgfVxuXG4gIHB1c2goYnVmZmVyOiBVaW50OEFycmF5KSB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuY29udmVydG9yLmZyb20oYnVmZmVyKVxuICAgIHRoaXMucXVldWUucHVzaChpdGVtKVxuICAgIGlmICh0aGlzLnJlc29sdmVOZXh0KSB7XG4gICAgICB0aGlzLnJlc29sdmVOZXh0KHVuZGVmaW5lZClcbiAgICAgIHRoaXMucmVzb2x2ZU5leHQgPSBudWxsXG4gICAgfVxuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5xdWV1ZS5wdXNoKHVuZGVmaW5lZClcbiAgICBpZiAodGhpcy5yZXNvbHZlTmV4dCkge1xuICAgICAgdGhpcy5yZXNvbHZlTmV4dCh1bmRlZmluZWQpXG4gICAgICB0aGlzLnJlc29sdmVOZXh0ID0gbnVsbFxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHB1c2hTdHJlYW0oY2h1bmtzOiBDbGllbnRSZWFkYWJsZVN0cmVhbTxEYXRhQ2h1bms+KSB7XG4gICAgY29uc3Qgc3RyZWFtID0gKGFzeW5jIGZ1bmN0aW9uKihzdHJlYW0pIHtcbiAgICAgIGZvciBhd2FpdCAoY29uc3QgYyBvZiBzdHJlYW0pIHtcbiAgICAgICAgY29uc3QgY2h1bms6IERhdGFDaHVuayA9IGNcbiAgICAgICAgeWllbGQgY2h1bmsuZGF0YVxuICAgICAgfVxuICAgIH0pKGNodW5rcylcbiAgICBjb25zdCBpdGVtID0gYXdhaXQgdGhpcy5jb252ZXJ0b3IuZnJvbVN0cmVhbShzdHJlYW0pXG4gICAgdGhpcy5xdWV1ZS5wdXNoKGl0ZW0pXG4gICAgaWYgKHRoaXMucmVzb2x2ZU5leHQpIHtcbiAgICAgIHRoaXMucmVzb2x2ZU5leHQodW5kZWZpbmVkKVxuICAgICAgdGhpcy5yZXNvbHZlTmV4dCA9IG51bGxcbiAgICB9XG4gIH1cblxuICBhc3luYyAqW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpIHtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgaWYgKHRoaXMucXVldWUubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5xdWV1ZS5zaGlmdCgpIVxuICAgICAgICBpZiAoaXRlbSA9PT0gdW5kZWZpbmVkKSBicmVha1xuICAgICAgICB5aWVsZCBpdGVtXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZTx1bmRlZmluZWQ+KFxuICAgICAgICAgIChyZXNvbHZlKSA9PiAodGhpcy5yZXNvbHZlTmV4dCA9IHJlc29sdmUpLFxuICAgICAgICApXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSZWFkZXJJbnN0YW5jZSBpbXBsZW1lbnRzIFJlYWRlciB7XG4gIHByaXZhdGUgY2xpZW50OiBSdW5uZXJDbGllbnRcbiAgcmVhZG9ubHkgdXJpOiBzdHJpbmdcbiAgcHJpdmF0ZSBsb2dnZXI6IHdpbnN0b24uTG9nZ2VyXG5cbiAgcHJpdmF0ZSBpdGVyYXRvcnM6IE15SXRlcjx1bmtub3duPltdID0gW11cblxuICBjb25zdHJ1Y3Rvcih1cmk6IHN0cmluZywgY2xpZW50OiBSdW5uZXJDbGllbnQsIGxvZ2dlcjogd2luc3Rvbi5Mb2dnZXIpIHtcbiAgICB0aGlzLnVyaSA9IHVyaVxuICAgIHRoaXMuY2xpZW50ID0gY2xpZW50XG4gICAgdGhpcy5sb2dnZXIgPSBsb2dnZXJcbiAgfVxuXG4gIGFueXMoKTogQXN5bmNJdGVyYWJsZTxBbnk+IHtcbiAgICBjb25zdCBpdGVyID0gbmV3IE15SXRlcihBbnlDb252ZXJ0b3IpXG4gICAgdGhpcy5pdGVyYXRvcnMucHVzaChpdGVyKVxuICAgIHJldHVybiBpdGVyXG4gIH1cblxuICBzdHJpbmdzKCk6IEFzeW5jSXRlcmFibGU8c3RyaW5nPiB7XG4gICAgY29uc3QgaXRlciA9IG5ldyBNeUl0ZXIoU3RyaW5nQ29udmVydG9yKVxuICAgIHRoaXMuaXRlcmF0b3JzLnB1c2goaXRlcilcbiAgICByZXR1cm4gaXRlclxuICB9XG5cbiAgYnVmZmVycygpOiBBc3luY0l0ZXJhYmxlPFVpbnQ4QXJyYXk+IHtcbiAgICBjb25zdCBpdGVyID0gbmV3IE15SXRlcihOb0NvbnZlcnRvcilcbiAgICB0aGlzLml0ZXJhdG9ycy5wdXNoKGl0ZXIpXG4gICAgcmV0dXJuIGl0ZXJcbiAgfVxuXG4gIHN0cmVhbXMoKTogQXN5bmNJdGVyYWJsZTxBc3luY0dlbmVyYXRvcjxVaW50OEFycmF5Pj4ge1xuICAgIGNvbnN0IGl0ZXIgPSBuZXcgTXlJdGVyKFN0cmVhbUNvbnZlcnRvcilcbiAgICB0aGlzLml0ZXJhdG9ycy5wdXNoKGl0ZXIpXG4gICAgcmV0dXJuIGl0ZXJcbiAgfVxuXG4gIGhhbmRsZU1zZyhtc2c6IE1lc3NhZ2UpIHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgJHt0aGlzLnVyaX0gaGFuZGxpbmcgbWVzc2FnZWApXG4gICAgY29uc29sZS5sb2coYCR7dGhpcy51cml9IGhhbmRsaW5nIG1lc3NhZ2VgKVxuICAgIGZvciAoY29uc3QgaXRlciBvZiB0aGlzLml0ZXJhdG9ycykge1xuICAgICAgaXRlci5wdXNoKG1zZy5kYXRhKVxuICAgIH1cbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIGZvciAoY29uc3QgaXRlciBvZiB0aGlzLml0ZXJhdG9ycykge1xuICAgICAgaXRlci5jbG9zZSgpXG4gICAgfVxuICB9XG5cbiAgaGFuZGxlU3RyZWFtaW5nTWVzc2FnZShtc2c6IFN0cmVhbU1lc3NhZ2UpIHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgJHt0aGlzLnVyaX0gaGFuZGxpbmcgc3RyZWFtaW5nIG1lc3NhZ2VgKVxuICAgIGNvbnN0IGNodW5rcyA9IHRoaXMuY2xpZW50LnJlY2VpdmVTdHJlYW1NZXNzYWdlKG1zZy5pZCEpXG4gICAgZm9yIChjb25zdCBpdGVyIG9mIHRoaXMuaXRlcmF0b3JzKSB7XG4gICAgICBpdGVyLnB1c2hTdHJlYW0oY2h1bmtzKVxuICAgIH1cbiAgfVxufVxuIl19
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQ0wsWUFBWSxFQUVaLFdBQVcsRUFDWCxlQUFlLEVBQ2YsZUFBZSxHQUNoQixNQUFNLGFBQWEsQ0FBQTtBQXFCcEIsTUFBTSxNQUFNO0lBQ0YsU0FBUyxDQUFjO0lBQ3ZCLEtBQUssR0FBc0IsRUFBRSxDQUFBO0lBQzdCLFdBQVcsR0FBd0MsSUFBSSxDQUFBO0lBRS9ELFlBQVksU0FBdUI7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUE7SUFDNUIsQ0FBQztJQUVELElBQUksQ0FBQyxNQUFrQjtRQUNyQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN4QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNyQixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1lBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFBO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQzFCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUE7WUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUE7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQXVDO1FBQ3RELE1BQU0sTUFBTSxHQUFHLENBQUMsS0FBSyxTQUFTLENBQUMsRUFBRSxNQUFNO1lBQ3JDLElBQUksS0FBSyxFQUFFLE1BQU0sQ0FB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QUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDckIsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLO1FBQ0gsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxHQUFrQjtRQUN2QyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLDZCQUE2QixDQUFDLENBQUE7UUFDM0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsRUFBRyxDQUFDLENBQUE7UUFDeEQsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN6QixDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xpZW50UmVhZGFibGVTdHJlYW0gfSBmcm9tICdAZ3JwYy9ncnBjLWpzJ1xuaW1wb3J0IHsgRGF0YUNodW5rLCBNZXNzYWdlLCBSdW5uZXJDbGllbnQsIFN0cmVhbU1lc3NhZ2UgfSBmcm9tICdAcmRmYy9wcm90bydcbmltcG9ydCB3aW5zdG9uIGZyb20gJ3dpbnN0b24nXG5pbXBvcnQge1xuICBBbnlDb252ZXJ0b3IsXG4gIENvbnZlcnRvcixcbiAgTm9Db252ZXJ0b3IsXG4gIFN0cmVhbUNvbnZlcnRvcixcbiAgU3RyaW5nQ29udmVydG9yLFxufSBmcm9tICcuL2NvbnZlcnRvcidcblxuZXhwb3J0IHR5cGUgQW55ID1cbiAgfCB7XG4gICAgICBzdHJpbmc6IHN0cmluZ1xuICAgIH1cbiAgfCB7XG4gICAgICBzdHJlYW06IEFzeW5jR2VuZXJhdG9yPFVpbnQ4QXJyYXk+XG4gICAgfVxuICB8IHtcbiAgICAgIGJ1ZmZlcjogVWludDhBcnJheVxuICAgIH1cblxuZXhwb3J0IGludGVyZmFjZSBSZWFkZXIge1xuICByZWFkb25seSB1cmk6IHN0cmluZ1xuICBzdHJpbmdzKCk6IEFzeW5jSXRlcmFibGU8c3RyaW5nPlxuICBzdHJlYW1zKCk6IEFzeW5jSXRlcmFibGU8QXN5bmNHZW5lcmF0b3I8VWludDhBcnJheT4+XG4gIGJ1ZmZlcnMoKTogQXN5bmNJdGVyYWJsZTxVaW50OEFycmF5PlxuICBhbnlzKCk6IEFzeW5jSXRlcmFibGU8QW55PlxufVxuXG5jbGFzcyBNeUl0ZXI8VD4gaW1wbGVtZW50cyBBc3luY0l0ZXJhYmxlPFQ+IHtcbiAgcHJpdmF0ZSBjb252ZXJ0b3I6IENvbnZlcnRvcjxUPlxuICBwcml2YXRlIHF1ZXVlOiAoVCB8IHVuZGVmaW5lZClbXSA9IFtdXG4gIHByaXZhdGUgcmVzb2x2ZU5leHQ6ICgodmFsdWU6IHVuZGVmaW5lZCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbFxuXG4gIGNvbnN0cnVjdG9yKGNvbnZlcnRvcjogQ29udmVydG9yPFQ+KSB7XG4gICAgdGhpcy5jb252ZXJ0b3IgPSBjb252ZXJ0b3JcbiAgfVxuXG4gIHB1c2goYnVmZmVyOiBVaW50OEFycmF5KSB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuY29udmVydG9yLmZyb20oYnVmZmVyKVxuICAgIHRoaXMucXVldWUucHVzaChpdGVtKVxuICAgIGlmICh0aGlzLnJlc29sdmVOZXh0KSB7XG4gICAgICB0aGlzLnJlc29sdmVOZXh0KHVuZGVmaW5lZClcbiAgICAgIHRoaXMucmVzb2x2ZU5leHQgPSBudWxsXG4gICAgfVxuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5xdWV1ZS5wdXNoKHVuZGVmaW5lZClcbiAgICBpZiAodGhpcy5yZXNvbHZlTmV4dCkge1xuICAgICAgdGhpcy5yZXNvbHZlTmV4dCh1bmRlZmluZWQpXG4gICAgICB0aGlzLnJlc29sdmVOZXh0ID0gbnVsbFxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHB1c2hTdHJlYW0oY2h1bmtzOiBDbGllbnRSZWFkYWJsZVN0cmVhbTxEYXRhQ2h1bms+KSB7XG4gICAgY29uc3Qgc3RyZWFtID0gKGFzeW5jIGZ1bmN0aW9uKiAoc3RyZWFtKSB7XG4gICAgICBmb3IgYXdhaXQgKGNvbnN0IGMgb2Ygc3RyZWFtKSB7XG4gICAgICAgIGNvbnN0IGNodW5rOiBEYXRhQ2h1bmsgPSBjXG4gICAgICAgIHlpZWxkIGNodW5rLmRhdGFcbiAgICAgIH1cbiAgICB9KShjaHVua3MpXG4gICAgY29uc3QgaXRlbSA9IGF3YWl0IHRoaXMuY29udmVydG9yLmZyb21TdHJlYW0oc3RyZWFtKVxuICAgIHRoaXMucXVldWUucHVzaChpdGVtKVxuICAgIGlmICh0aGlzLnJlc29sdmVOZXh0KSB7XG4gICAgICB0aGlzLnJlc29sdmVOZXh0KHVuZGVmaW5lZClcbiAgICAgIHRoaXMucmVzb2x2ZU5leHQgPSBudWxsXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgKltTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKSB7XG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGlmICh0aGlzLnF1ZXVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMucXVldWUuc2hpZnQoKSFcbiAgICAgICAgaWYgKGl0ZW0gPT09IHVuZGVmaW5lZCkgYnJlYWtcbiAgICAgICAgeWllbGQgaXRlbVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgbmV3IFByb21pc2U8dW5kZWZpbmVkPigocmVzb2x2ZSkgPT4gKHRoaXMucmVzb2x2ZU5leHQgPSByZXNvbHZlKSlcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlYWRlckluc3RhbmNlIGltcGxlbWVudHMgUmVhZGVyIHtcbiAgcHJpdmF0ZSBjbGllbnQ6IFJ1bm5lckNsaWVudFxuICByZWFkb25seSB1cmk6IHN0cmluZ1xuICBwcml2YXRlIGxvZ2dlcjogd2luc3Rvbi5Mb2dnZXJcblxuICBwcml2YXRlIGl0ZXJhdG9yczogTXlJdGVyPHVua25vd24+W10gPSBbXVxuXG4gIGNvbnN0cnVjdG9yKHVyaTogc3RyaW5nLCBjbGllbnQ6IFJ1bm5lckNsaWVudCwgbG9nZ2VyOiB3aW5zdG9uLkxvZ2dlcikge1xuICAgIHRoaXMudXJpID0gdXJpXG4gICAgdGhpcy5jbGllbnQgPSBjbGllbnRcbiAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlclxuICB9XG5cbiAgYW55cygpOiBBc3luY0l0ZXJhYmxlPEFueT4ge1xuICAgIGNvbnN0IGl0ZXIgPSBuZXcgTXlJdGVyKEFueUNvbnZlcnRvcilcbiAgICB0aGlzLml0ZXJhdG9ycy5wdXNoKGl0ZXIpXG4gICAgcmV0dXJuIGl0ZXJcbiAgfVxuXG4gIHN0cmluZ3MoKTogQXN5bmNJdGVyYWJsZTxzdHJpbmc+IHtcbiAgICBjb25zdCBpdGVyID0gbmV3IE15SXRlcihTdHJpbmdDb252ZXJ0b3IpXG4gICAgdGhpcy5pdGVyYXRvcnMucHVzaChpdGVyKVxuICAgIHJldHVybiBpdGVyXG4gIH1cblxuICBidWZmZXJzKCk6IEFzeW5jSXRlcmFibGU8VWludDhBcnJheT4ge1xuICAgIGNvbnN0IGl0ZXIgPSBuZXcgTXlJdGVyKE5vQ29udmVydG9yKVxuICAgIHRoaXMuaXRlcmF0b3JzLnB1c2goaXRlcilcbiAgICByZXR1cm4gaXRlclxuICB9XG5cbiAgc3RyZWFtcygpOiBBc3luY0l0ZXJhYmxlPEFzeW5jR2VuZXJhdG9yPFVpbnQ4QXJyYXk+PiB7XG4gICAgY29uc3QgaXRlciA9IG5ldyBNeUl0ZXIoU3RyZWFtQ29udmVydG9yKVxuICAgIHRoaXMuaXRlcmF0b3JzLnB1c2goaXRlcilcbiAgICByZXR1cm4gaXRlclxuICB9XG5cbiAgaGFuZGxlTXNnKG1zZzogTWVzc2FnZSkge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKGAke3RoaXMudXJpfSBoYW5kbGluZyBtZXNzYWdlYClcbiAgICBjb25zb2xlLmxvZyhgJHt0aGlzLnVyaX0gaGFuZGxpbmcgbWVzc2FnZWApXG4gICAgZm9yIChjb25zdCBpdGVyIG9mIHRoaXMuaXRlcmF0b3JzKSB7XG4gICAgICBpdGVyLnB1c2gobXNnLmRhdGEpXG4gICAgfVxuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgZm9yIChjb25zdCBpdGVyIG9mIHRoaXMuaXRlcmF0b3JzKSB7XG4gICAgICBpdGVyLmNsb3NlKClcbiAgICB9XG4gIH1cblxuICBoYW5kbGVTdHJlYW1pbmdNZXNzYWdlKG1zZzogU3RyZWFtTWVzc2FnZSkge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKGAke3RoaXMudXJpfSBoYW5kbGluZyBzdHJlYW1pbmcgbWVzc2FnZWApXG4gICAgY29uc3QgY2h1bmtzID0gdGhpcy5jbGllbnQucmVjZWl2ZVN0cmVhbU1lc3NhZ2UobXNnLmlkISlcbiAgICBmb3IgKGNvbnN0IGl0ZXIgb2YgdGhpcy5pdGVyYXRvcnMpIHtcbiAgICAgIGl0ZXIucHVzaFN0cmVhbShjaHVua3MpXG4gICAgfVxuICB9XG59XG4iXX0=
package/lib/runner.js CHANGED
@@ -58,7 +58,7 @@ export class Runner {
58
58
  await Promise.all(this.processorTransforms);
59
59
  }
60
60
  catch (ex) {
61
- this.logger.error("Start failed: " + JSON.stringify(ex));
61
+ this.logger.error('Start failed: ' + JSON.stringify(ex));
62
62
  }
63
63
  }
64
64
  createWriter(uri) {
@@ -113,9 +113,9 @@ export class Runner {
113
113
  this.quads = quads;
114
114
  }
115
115
  catch (ex) {
116
- this.logger.error("Pipeline failed: " + JSON.stringify(ex));
116
+ this.logger.error('Pipeline failed: ' + JSON.stringify(ex));
117
117
  }
118
118
  }
119
119
  }
120
120
  }
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVubmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3J1bm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQVUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ2pELE9BQU8sRUFBVSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFJakQsT0FBTyxPQUFPLE1BQU0sU0FBUyxDQUFBO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDdkMsT0FBTyxFQUFRLEtBQUssRUFBRSxhQUFhLEVBQVUsTUFBTSxVQUFVLENBQUE7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFDdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSx5QkFBeUIsRUFBRSxHQUFHLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHL0UsTUFBTSxJQUFJLEdBQUcseUJBQXlCLENBQ3BDLHFDQUFxQyxFQUNyQyxLQUFLLEVBQ0wsTUFBTSxFQUNOLFVBQVUsRUFDVixTQUFTLEVBQ1QsY0FBYyxFQUNkLGFBQWEsRUFDYixRQUFRLEVBQ1IsWUFBWSxFQUNaLFVBQVUsQ0FDWCxDQUFBO0FBRUQsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUMxQiwrQkFBK0IsRUFDL0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDUixRQUFRLEVBQ1IsUUFBUSxDQUNULENBQUE7QUFZRCxNQUFNLE9BQU8sTUFBTTtJQUNBLE9BQU8sR0FBd0MsRUFBRSxDQUFBO0lBQ2pELE9BQU8sR0FBd0MsRUFBRSxDQUFBO0lBQ2pELE1BQU0sQ0FBYztJQUNwQixLQUFLLENBQVU7SUFDZixNQUFNLENBQVE7SUFDdkIsTUFBTSxDQUFRO0lBQ2QsS0FBSyxHQUFXLEVBQUUsQ0FBQTtJQUVULEdBQUcsQ0FBUTtJQUVYLFVBQVUsR0FBb0IsRUFBRSxDQUFBO0lBQ2hDLG1CQUFtQixHQUF1QixFQUFFLENBQUE7SUFF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TUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQzFCLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDO2dCQUdILE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQTtnQkFDOUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQ3pCLEtBQUssRUFDTDtvQkFDRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNuRCxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2lCQUNwRCxFQUNEO29CQUNFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBUTtvQkFDNUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFRO2lCQUM3QixDQUNGLENBQUE7Z0JBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7WUFDcEIsQ0FBQztZQUNELE9BQU8sRUFBVyxFQUFFLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUM3RCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE9yY2hlc3RyYXRvck1lc3NhZ2UsXG4gIFByb2Nlc3NvcixcbiAgUnVubmVyQ2xpZW50LFxuICBSdW5uZXJNZXNzYWdlLFxufSBmcm9tICdAcmRmYy9wcm90bydcbmltcG9ydCB7IFJlYWRlciwgUmVhZGVySW5zdGFuY2UgfSBmcm9tICcuL3JlYWRlcidcbmltcG9ydCB7IFdyaXRlciwgV3JpdGVySW5zdGFuY2UgfSBmcm9tICcuL3dyaXRlcidcbmltcG9ydCB7IFByb2Nlc3NvciBhcyBQcm9jIH0gZnJvbSAnLi9wcm9jZXNzb3InXG5pbXBvcnQgeyBMb2dnZXIgfSBmcm9tICd3aW5zdG9uJ1xuXG5pbXBvcnQgd2luc3RvbiBmcm9tICd3aW5zdG9uJ1xuaW1wb3J0IHsgUnBjVHJhbnNwb3J0IH0gZnJvbSAnLi9sb2dnZXInXG5pbXBvcnQgeyBDb250LCBlbXB0eSwgZXh0cmFjdFNoYXBlcywgU2hhcGVzIH0gZnJvbSAncmRmLWxlbnMnXG5pbXBvcnQgeyBOYW1lZE5vZGUsIFBhcnNlciB9IGZyb20gJ24zJ1xuaW1wb3J0IHsgY3JlYXRlTmFtZXNwYWNlLCBjcmVhdGVVcmlBbmRUZXJtTmFtZXNwYWNlLCBSREYgfSBmcm9tICdAdHJlZWNnL3R5cGVzJ1xuaW1wb3J0IHsgUXVhZCwgVGVybSB9IGZyb20gJ0ByZGZqcy90eXBlcydcblxuY29uc3QgUkRGTCA9IGNyZWF0ZVVyaUFuZFRlcm1OYW1lc3BhY2UoXG4gICdodHRwczovL3czaWQub3JnL3JkZi1sZW5zL29udG9sb2d5IycsXG4gICdDQkQnLFxuICAnUGF0aCcsXG4gICdQYXRoTGVucycsXG4gICdDb250ZXh0JyxcbiAgJ1R5cGVkRXh0cmFjdCcsXG4gICdFbnZWYXJpYWJsZScsXG4gICdlbnZLZXknLFxuICAnZW52RGVmYXVsdCcsXG4gICdkYXRhdHlwZScsXG4pXG5cbmNvbnN0IFJERkMgPSBjcmVhdGVOYW1lc3BhY2UoXG4gICdodHRwczovL3czaWQub3JnL3JkZi1jb25uZWN0IycsXG4gICh4KSA9PiB4LFxuICAnUmVhZGVyJyxcbiAgJ1dyaXRlcicsXG4pXG5cbmV4cG9ydCB0eXBlIFdyaXRhYmxlID0gKG1zZzogT3JjaGVzdHJhdG9yTWVzc2FnZSkgPT4gUHJvbWlzZTx1bmtub3duPlxuXG50eXBlIFByb2Nlc3NvckNvbmZpZyA9IHtcbiAgbG9jYXRpb246IHN0cmluZ1xuICBmaWxlOiBzdHJpbmdcbiAgY2xheno/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgRnVsbFByb2M8QyBleHRlbmRzIFByb2M8dW5rbm93bj4+ID1cbiAgQyBleHRlbmRzIFByb2M8aW5mZXIgVD4gPyBUICYgQyA6IHVua25vd25cbmV4cG9ydCBjbGFzcyBSdW5uZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHJlYWRlcnM6IHsgW3VyaTogc3RyaW5nXTogUmVhZGVySW5zdGFuY2VbXSB9ID0ge31cbiAgcHJpdmF0ZSByZWFkb25seSB3cml0ZXJzOiB7IFt1cmk6IHN0cmluZ106IFdyaXRlckluc3RhbmNlW10gfSA9IHt9XG4gIHByaXZhdGUgcmVhZG9ubHkgY2xpZW50OiBSdW5uZXJDbGllbnRcbiAgcHJpdmF0ZSByZWFkb25seSB3cml0ZTogV3JpdGFibGVcbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IExvZ2dlclxuICBwcml2YXRlIHNoYXBlczogU2hhcGVzXG4gIHByaXZhdGUgcXVhZHM6IFF1YWRbXSA9IFtdXG5cbiAgcHJpdmF0ZSByZWFkb25seSB1cmk6IHN0cmluZ1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvY2Vzc29yczogUHJvYzx1bmtub3duPltdID0gW11cbiAgcHJpdmF0ZSByZWFkb25seSBwcm9jZXNzb3JUcmFuc2Zvcm1zOiBQcm9taXNlPHVua25vd24+W10gPSBbXVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNsaWVudDogUnVubmVyQ2xpZW50LFxuICAgIHdyaXRlOiBXcml0YWJsZSxcbiAgICB1cmk6IHN0cmluZyxcbiAgICBsb2dnZXI6IExvZ2dlcixcbiAgKSB7XG4gICAgdGhpcy5jbGllbnQgPSBjbGllbnRcbiAgICB0aGlzLndyaXRlID0gd3JpdGVcbiAgICB0aGlzLnVyaSA9IHVyaVxuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyXG4gIH1cblxuICBhc3luYyBhZGRQcm9jZXNzb3I8UCBleHRlbmRzIFByb2M8dW5rbm93bj4+KFxuICAgIHByb2M6IFByb2Nlc3NvcixcbiAgKTogUHJvbWlzZTxGdWxsUHJvYzxQPj4ge1xuICAgIGNvbnN0IHByb2NMb2dnZXIgPSB3aW5zdG9uLmNyZWF0ZUxvZ2dlcih7XG4gICAgICB0cmFuc3BvcnRzOiBbXG4gICAgICAgIG5ldyBScGNUcmFuc3BvcnQoe1xuICAgICAgICAgIGVudGl0aWVzOiBbcHJvYy51cmksIHRoaXMudXJpXSxcbiAgICAgICAgICBzdHJlYW06IHRoaXMuY2xpZW50LmxvZ1N0cmVhbSgoKSA9PiB7IH0pLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgfSlcblxuICAgIGNvbnN0IHR5ID0gSlNPTi5zdHJpbmdpZnkoXG4gICAgICB0aGlzLnF1YWRzXG4gICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgKHgpID0+XG4gICAgICAgICAgICB4LnN1YmplY3QudmFsdWUgPT09IHByb2MudXJpICYmIHgucHJlZGljYXRlLmVxdWFscyhSREYudGVybXMudHlwZSksXG4gICAgICAgIClcbiAgICAgICAgLm1hcCgoeCkgPT4geC5vYmplY3QudmFsdWUpLFxuICAgIClcbiAgICB0aGlzLmxvZ2dlci5pbmZvKCdwYXJzaW5nICcgKyBwcm9jLnVyaSArICcgdHlwZSAnICsgdHkpXG4gICAgY29uc3QgYXJncyA9IHRoaXMuc2hhcGVzLmxlbnNlc1tSREZMLlR5cGVkRXh0cmFjdF0uZXhlY3V0ZSh7XG4gICAgICBpZDogbmV3IE5hbWVkTm9kZShwcm9jLnVyaSksXG4gICAgICBxdWFkczogdGhpcy5xdWFkcyxcbiAgICB9KVxuXG4gICAgY29uc3QgY29uZmlnOiBQcm9jZXNzb3JDb25maWcgPSBKU09OLnBhcnNlKHByb2MuY29uZmlnKVxuICAgIC8vIGNvbnN0IHVybCA9IG5ldyBVUkwoY29uZmlnLmxvY2F0aW9uKVxuICAgIC8vIHByb2Nlc3MuY2hkaXIodXJsLnBhdGhuYW1lKVxuICAgIGNvbnN0IGpzUHJvZ3JhbSA9IGF3YWl0IGltcG9ydChjb25maWcuZmlsZSlcbiAgICBjb25zdCBjbGF6eiA9IGpzUHJvZ3JhbVtjb25maWcuY2xhenogfHwgJ2RlZmF1bHQnXVxuICAgIGNvbnN0IGluc3RhbmNlOiBQcm9jPHVua25vd24+ID0gbmV3IGNsYXp6KGFyZ3MsIHByb2NMb2dnZXIpXG4gICAgYXdhaXQgaW5zdGFuY2UuaW5pdCgpXG5cbiAgICB0aGlzLmxvZ2dlci5pbmZvKCdpbml0ZWQgJyArIHByb2MudXJpICsgJyB0eXBlICcgKyB0eSlcblxuICAgIHRoaXMucHJvY2Vzc29ycy5wdXNoKGluc3RhbmNlKVxuICAgIHRoaXMucHJvY2Vzc29yVHJhbnNmb3Jtcy5wdXNoKGluc3RhbmNlLnRyYW5zZm9ybSgpKVxuXG4gICAgYXdhaXQgdGhpcy53cml0ZSh7IGluaXQ6IHsgdXJpOiBwcm9jLnVyaSB9IH0pXG5cbiAgICByZXR1cm4gPEZ1bGxQcm9jPFA+Pmluc3RhbmNlXG4gIH1cblxuICBhc3luYyBzdGFydCgpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5wcm9jZXNzb3JzLm1hcCgoeCkgPT4geC5wcm9kdWNlKCkpKVxuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5wcm9jZXNzb3JUcmFuc2Zvcm1zKVxuICAgIH0gY2F0Y2ggKGV4OiB1bmtub3duKSB7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihcIlN0YXJ0IGZhaWxlZDogXCIgKyBKU09OLnN0cmluZ2lmeShleCkpXG4gICAgfVxuICB9XG5cbiAgY3JlYXRlV3JpdGVyKHVyaTogVGVybSk6IFdyaXRlciB7XG4gICAgY29uc3QgaWRzID0gdXJpLnZhbHVlXG5cbiAgICBpZiAodGhpcy53cml0ZXJzW2lkc10gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy53cml0ZXJzW2lkc10gPSBbXVxuICAgIH1cbiAgICBjb25zdCB3cml0ZXIgPSBuZXcgV3JpdGVySW5zdGFuY2UoaWRzLCB0aGlzLmNsaWVudCwgdGhpcy53cml0ZSwgdGhpcy5sb2dnZXIpXG4gICAgdGhpcy53cml0ZXJzW2lkc10ucHVzaCh3cml0ZXIpXG4gICAgcmV0dXJuIHdyaXRlclxuICB9XG5cbiAgY3JlYXRlUmVhZGVyKHVyaTogVGVybSk6IFJlYWRlciB7XG4gICAgY29uc3QgaWRzID0gdXJpLnZhbHVlXG5cbiAgICBpZiAodGhpcy5yZWFkZXJzW2lkc10gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5yZWFkZXJzW2lkc10gPSBbXVxuICAgIH1cbiAgICBjb25zdCByZWFkZXIgPSBuZXcgUmVhZGVySW5zdGFuY2UoaWRzLCB0aGlzLmNsaWVudCwgdGhpcy5sb2dnZXIpXG4gICAgdGhpcy5yZWFkZXJzW2lkc10ucHVzaChyZWFkZXIpXG4gICAgcmV0dXJuIHJlYWRlclxuICB9XG5cbiAgYXN5bmMgaGFuZGxlT3JjaE1lc3NhZ2UobXNnOiBSdW5uZXJNZXNzYWdlKSB7XG4gICAgaWYgKG1zZy5tc2cpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdIYW5kbGluZyBkYXRhIG1zZyBmb3IgJyArIG1zZy5tc2cuY2hhbm5lbClcbiAgICAgIGZvciAoY29uc3QgcmVhZGVyIG9mIHRoaXMucmVhZGVyc1ttc2cubXNnLmNoYW5uZWxdIHx8IFtdKSB7XG4gICAgICAgIHJlYWRlci5oYW5kbGVNc2cobXNnLm1zZylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobXNnLnN0cmVhbU1zZykge1xuICAgICAgZm9yIChjb25zdCByZWFkZXIgb2YgdGhpcy5yZWFkZXJzW21zZy5zdHJlYW1Nc2cuY2hhbm5lbF0gfHwgW10pIHtcbiAgICAgICAgcmVhZGVyLmhhbmRsZVN0cmVhbWluZ01lc3NhZ2UobXNnLnN0cmVhbU1zZylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobXNnLmNsb3NlKSB7XG4gICAgICBjb25zdCB1cmkgPSBtc2cuY2xvc2UuY2hhbm5lbFxuXG4gICAgICBmb3IgKGNvbnN0IHJlYWRlciBvZiB0aGlzLnJlYWRlcnNbdXJpXSB8fCBbXSkge1xuICAgICAgICByZWFkZXIuY2xvc2UoKVxuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IHdyaXRlciBvZiB0aGlzLndyaXRlcnNbdXJpXSB8fCBbXSkge1xuICAgICAgICBhd2FpdCB3cml0ZXIuY2xvc2UodHJ1ZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobXNnLnBpcGVsaW5lKSB7XG4gICAgICB0cnkge1xuXG4gICAgICAgIC8vIGhlcmVcbiAgICAgICAgY29uc3QgcXVhZHMgPSBuZXcgUGFyc2VyKCkucGFyc2UobXNnLnBpcGVsaW5lKVxuICAgICAgICB0aGlzLnNoYXBlcyA9IGV4dHJhY3RTaGFwZXMoXG4gICAgICAgICAgcXVhZHMsXG4gICAgICAgICAge1xuICAgICAgICAgICAgW1JERkMuUmVhZGVyXTogKHg6IENvbnQpID0+IHRoaXMuY3JlYXRlUmVhZGVyKHguaWQpLFxuICAgICAgICAgICAgW1JERkMuV3JpdGVyXTogKHg6IENvbnQpID0+IHRoaXMuY3JlYXRlV3JpdGVyKHguaWQpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgW1JERkMuUmVhZGVyXTogZW1wdHk8Q29udD4oKSxcbiAgICAgICAgICAgIFtSREZDLldyaXRlcl06IGVtcHR5PENvbnQ+KCksXG4gICAgICAgICAgfSxcbiAgICAgICAgKVxuICAgICAgICB0aGlzLnF1YWRzID0gcXVhZHNcbiAgICAgIH1cbiAgICAgIGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihcIlBpcGVsaW5lIGZhaWxlZDogXCIgKyBKU09OLnN0cmluZ2lmeShleCkpXG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVubmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3J1bm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQVUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ2pELE9BQU8sRUFBVSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFJakQsT0FBTyxPQUFPLE1BQU0sU0FBUyxDQUFBO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDdkMsT0FBTyxFQUFRLEtBQUssRUFBRSxhQUFhLEVBQVUsTUFBTSxVQUFVLENBQUE7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFDdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSx5QkFBeUIsRUFBRSxHQUFHLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHL0UsTUFBTSxJQUFJLEdBQUcseUJBQXlCLENBQ3BDLHFDQUFxQyxFQUNyQyxLQUFLLEVBQ0wsTUFBTSxFQUNOLFVBQVUsRUFDVixTQUFTLEVBQ1QsY0FBYyxFQUNkLGFBQWEsRUFDYixRQUFRLEVBQ1IsWUFBWSxFQUNaLFVBQVUsQ0FDWCxDQUFBO0FBRUQsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUMxQiwrQkFBK0IsRUFDL0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDUixRQUFRLEVBQ1IsUUFBUSxDQUNULENBQUE7QUFZRCxNQUFNLE9BQU8sTUFBTTtJQUNBLE9BQU8sR0FBd0MsRUFBRSxDQUFBO0lBQ2pELE9BQU8sR0FBd0MsRUFBRSxDQUFBO0lBQ2pELE1BQU0sQ0FBYztJQUNwQixLQUFLLENBQVU7SUFDZixNQUFNLENBQVE7SUFDdkIsTUFBTSxDQUFRO0lBQ2QsS0FBSyxHQUFXLEVBQUUsQ0FBQTtJQUVULEdBQUcsQ0FBUTtJQUVYLFVBQVUsR0FBb0IsRUFBRSxDQUFBO0lBQ2hDLG1CQUFtQixHQUF1QixFQUFFLENBQUE7SUFF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TUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQzFCLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDO2dCQUVILE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQTtnQkFDOUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQ3pCLEtBQUssRUFDTDtvQkFDRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNuRCxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2lCQUNwRCxFQUNEO29CQUNFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBUTtvQkFDNUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFRO2lCQUM3QixDQUNGLENBQUE7Z0JBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7WUFDcEIsQ0FBQztZQUFDLE9BQU8sRUFBVyxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUM3RCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE9yY2hlc3RyYXRvck1lc3NhZ2UsXG4gIFByb2Nlc3NvcixcbiAgUnVubmVyQ2xpZW50LFxuICBSdW5uZXJNZXNzYWdlLFxufSBmcm9tICdAcmRmYy9wcm90bydcbmltcG9ydCB7IFJlYWRlciwgUmVhZGVySW5zdGFuY2UgfSBmcm9tICcuL3JlYWRlcidcbmltcG9ydCB7IFdyaXRlciwgV3JpdGVySW5zdGFuY2UgfSBmcm9tICcuL3dyaXRlcidcbmltcG9ydCB7IFByb2Nlc3NvciBhcyBQcm9jIH0gZnJvbSAnLi9wcm9jZXNzb3InXG5pbXBvcnQgeyBMb2dnZXIgfSBmcm9tICd3aW5zdG9uJ1xuXG5pbXBvcnQgd2luc3RvbiBmcm9tICd3aW5zdG9uJ1xuaW1wb3J0IHsgUnBjVHJhbnNwb3J0IH0gZnJvbSAnLi9sb2dnZXInXG5pbXBvcnQgeyBDb250LCBlbXB0eSwgZXh0cmFjdFNoYXBlcywgU2hhcGVzIH0gZnJvbSAncmRmLWxlbnMnXG5pbXBvcnQgeyBOYW1lZE5vZGUsIFBhcnNlciB9IGZyb20gJ24zJ1xuaW1wb3J0IHsgY3JlYXRlTmFtZXNwYWNlLCBjcmVhdGVVcmlBbmRUZXJtTmFtZXNwYWNlLCBSREYgfSBmcm9tICdAdHJlZWNnL3R5cGVzJ1xuaW1wb3J0IHsgUXVhZCwgVGVybSB9IGZyb20gJ0ByZGZqcy90eXBlcydcblxuY29uc3QgUkRGTCA9IGNyZWF0ZVVyaUFuZFRlcm1OYW1lc3BhY2UoXG4gICdodHRwczovL3czaWQub3JnL3JkZi1sZW5zL29udG9sb2d5IycsXG4gICdDQkQnLFxuICAnUGF0aCcsXG4gICdQYXRoTGVucycsXG4gICdDb250ZXh0JyxcbiAgJ1R5cGVkRXh0cmFjdCcsXG4gICdFbnZWYXJpYWJsZScsXG4gICdlbnZLZXknLFxuICAnZW52RGVmYXVsdCcsXG4gICdkYXRhdHlwZScsXG4pXG5cbmNvbnN0IFJERkMgPSBjcmVhdGVOYW1lc3BhY2UoXG4gICdodHRwczovL3czaWQub3JnL3JkZi1jb25uZWN0IycsXG4gICh4KSA9PiB4LFxuICAnUmVhZGVyJyxcbiAgJ1dyaXRlcicsXG4pXG5cbmV4cG9ydCB0eXBlIFdyaXRhYmxlID0gKG1zZzogT3JjaGVzdHJhdG9yTWVzc2FnZSkgPT4gUHJvbWlzZTx1bmtub3duPlxuXG50eXBlIFByb2Nlc3NvckNvbmZpZyA9IHtcbiAgbG9jYXRpb246IHN0cmluZ1xuICBmaWxlOiBzdHJpbmdcbiAgY2xheno/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgRnVsbFByb2M8QyBleHRlbmRzIFByb2M8dW5rbm93bj4+ID1cbiAgQyBleHRlbmRzIFByb2M8aW5mZXIgVD4gPyBUICYgQyA6IHVua25vd25cbmV4cG9ydCBjbGFzcyBSdW5uZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHJlYWRlcnM6IHsgW3VyaTogc3RyaW5nXTogUmVhZGVySW5zdGFuY2VbXSB9ID0ge31cbiAgcHJpdmF0ZSByZWFkb25seSB3cml0ZXJzOiB7IFt1cmk6IHN0cmluZ106IFdyaXRlckluc3RhbmNlW10gfSA9IHt9XG4gIHByaXZhdGUgcmVhZG9ubHkgY2xpZW50OiBSdW5uZXJDbGllbnRcbiAgcHJpdmF0ZSByZWFkb25seSB3cml0ZTogV3JpdGFibGVcbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IExvZ2dlclxuICBwcml2YXRlIHNoYXBlczogU2hhcGVzXG4gIHByaXZhdGUgcXVhZHM6IFF1YWRbXSA9IFtdXG5cbiAgcHJpdmF0ZSByZWFkb25seSB1cmk6IHN0cmluZ1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvY2Vzc29yczogUHJvYzx1bmtub3duPltdID0gW11cbiAgcHJpdmF0ZSByZWFkb25seSBwcm9jZXNzb3JUcmFuc2Zvcm1zOiBQcm9taXNlPHVua25vd24+W10gPSBbXVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNsaWVudDogUnVubmVyQ2xpZW50LFxuICAgIHdyaXRlOiBXcml0YWJsZSxcbiAgICB1cmk6IHN0cmluZyxcbiAgICBsb2dnZXI6IExvZ2dlcixcbiAgKSB7XG4gICAgdGhpcy5jbGllbnQgPSBjbGllbnRcbiAgICB0aGlzLndyaXRlID0gd3JpdGVcbiAgICB0aGlzLnVyaSA9IHVyaVxuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyXG4gIH1cblxuICBhc3luYyBhZGRQcm9jZXNzb3I8UCBleHRlbmRzIFByb2M8dW5rbm93bj4+KFxuICAgIHByb2M6IFByb2Nlc3NvcixcbiAgKTogUHJvbWlzZTxGdWxsUHJvYzxQPj4ge1xuICAgIGNvbnN0IHByb2NMb2dnZXIgPSB3aW5zdG9uLmNyZWF0ZUxvZ2dlcih7XG4gICAgICB0cmFuc3BvcnRzOiBbXG4gICAgICAgIG5ldyBScGNUcmFuc3BvcnQoe1xuICAgICAgICAgIGVudGl0aWVzOiBbcHJvYy51cmksIHRoaXMudXJpXSxcbiAgICAgICAgICBzdHJlYW06IHRoaXMuY2xpZW50LmxvZ1N0cmVhbSgoKSA9PiB7fSksXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9KVxuXG4gICAgY29uc3QgdHkgPSBKU09OLnN0cmluZ2lmeShcbiAgICAgIHRoaXMucXVhZHNcbiAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAoeCkgPT5cbiAgICAgICAgICAgIHguc3ViamVjdC52YWx1ZSA9PT0gcHJvYy51cmkgJiYgeC5wcmVkaWNhdGUuZXF1YWxzKFJERi50ZXJtcy50eXBlKSxcbiAgICAgICAgKVxuICAgICAgICAubWFwKCh4KSA9PiB4Lm9iamVjdC52YWx1ZSksXG4gICAgKVxuICAgIHRoaXMubG9nZ2VyLmluZm8oJ3BhcnNpbmcgJyArIHByb2MudXJpICsgJyB0eXBlICcgKyB0eSlcbiAgICBjb25zdCBhcmdzID0gdGhpcy5zaGFwZXMubGVuc2VzW1JERkwuVHlwZWRFeHRyYWN0XS5leGVjdXRlKHtcbiAgICAgIGlkOiBuZXcgTmFtZWROb2RlKHByb2MudXJpKSxcbiAgICAgIHF1YWRzOiB0aGlzLnF1YWRzLFxuICAgIH0pXG5cbiAgICBjb25zdCBjb25maWc6IFByb2Nlc3NvckNvbmZpZyA9IEpTT04ucGFyc2UocHJvYy5jb25maWcpXG4gICAgLy8gY29uc3QgdXJsID0gbmV3IFVSTChjb25maWcubG9jYXRpb24pXG4gICAgLy8gcHJvY2Vzcy5jaGRpcih1cmwucGF0aG5hbWUpXG4gICAgY29uc3QganNQcm9ncmFtID0gYXdhaXQgaW1wb3J0KGNvbmZpZy5maWxlKVxuICAgIGNvbnN0IGNsYXp6ID0ganNQcm9ncmFtW2NvbmZpZy5jbGF6eiB8fCAnZGVmYXVsdCddXG4gICAgY29uc3QgaW5zdGFuY2U6IFByb2M8dW5rbm93bj4gPSBuZXcgY2xhenooYXJncywgcHJvY0xvZ2dlcilcbiAgICBhd2FpdCBpbnN0YW5jZS5pbml0KClcblxuICAgIHRoaXMubG9nZ2VyLmluZm8oJ2luaXRlZCAnICsgcHJvYy51cmkgKyAnIHR5cGUgJyArIHR5KVxuXG4gICAgdGhpcy5wcm9jZXNzb3JzLnB1c2goaW5zdGFuY2UpXG4gICAgdGhpcy5wcm9jZXNzb3JUcmFuc2Zvcm1zLnB1c2goaW5zdGFuY2UudHJhbnNmb3JtKCkpXG5cbiAgICBhd2FpdCB0aGlzLndyaXRlKHsgaW5pdDogeyB1cmk6IHByb2MudXJpIH0gfSlcblxuICAgIHJldHVybiA8RnVsbFByb2M8UD4+aW5zdGFuY2VcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0KCkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLnByb2Nlc3NvcnMubWFwKCh4KSA9PiB4LnByb2R1Y2UoKSkpXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLnByb2Nlc3NvclRyYW5zZm9ybXMpXG4gICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdTdGFydCBmYWlsZWQ6ICcgKyBKU09OLnN0cmluZ2lmeShleCkpXG4gICAgfVxuICB9XG5cbiAgY3JlYXRlV3JpdGVyKHVyaTogVGVybSk6IFdyaXRlciB7XG4gICAgY29uc3QgaWRzID0gdXJpLnZhbHVlXG5cbiAgICBpZiAodGhpcy53cml0ZXJzW2lkc10gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy53cml0ZXJzW2lkc10gPSBbXVxuICAgIH1cbiAgICBjb25zdCB3cml0ZXIgPSBuZXcgV3JpdGVySW5zdGFuY2UoaWRzLCB0aGlzLmNsaWVudCwgdGhpcy53cml0ZSwgdGhpcy5sb2dnZXIpXG4gICAgdGhpcy53cml0ZXJzW2lkc10ucHVzaCh3cml0ZXIpXG4gICAgcmV0dXJuIHdyaXRlclxuICB9XG5cbiAgY3JlYXRlUmVhZGVyKHVyaTogVGVybSk6IFJlYWRlciB7XG4gICAgY29uc3QgaWRzID0gdXJpLnZhbHVlXG5cbiAgICBpZiAodGhpcy5yZWFkZXJzW2lkc10gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5yZWFkZXJzW2lkc10gPSBbXVxuICAgIH1cbiAgICBjb25zdCByZWFkZXIgPSBuZXcgUmVhZGVySW5zdGFuY2UoaWRzLCB0aGlzLmNsaWVudCwgdGhpcy5sb2dnZXIpXG4gICAgdGhpcy5yZWFkZXJzW2lkc10ucHVzaChyZWFkZXIpXG4gICAgcmV0dXJuIHJlYWRlclxuICB9XG5cbiAgYXN5bmMgaGFuZGxlT3JjaE1lc3NhZ2UobXNnOiBSdW5uZXJNZXNzYWdlKSB7XG4gICAgaWYgKG1zZy5tc2cpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdIYW5kbGluZyBkYXRhIG1zZyBmb3IgJyArIG1zZy5tc2cuY2hhbm5lbClcbiAgICAgIGZvciAoY29uc3QgcmVhZGVyIG9mIHRoaXMucmVhZGVyc1ttc2cubXNnLmNoYW5uZWxdIHx8IFtdKSB7XG4gICAgICAgIHJlYWRlci5oYW5kbGVNc2cobXNnLm1zZylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobXNnLnN0cmVhbU1zZykge1xuICAgICAgZm9yIChjb25zdCByZWFkZXIgb2YgdGhpcy5yZWFkZXJzW21zZy5zdHJlYW1Nc2cuY2hhbm5lbF0gfHwgW10pIHtcbiAgICAgICAgcmVhZGVyLmhhbmRsZVN0cmVhbWluZ01lc3NhZ2UobXNnLnN0cmVhbU1zZylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobXNnLmNsb3NlKSB7XG4gICAgICBjb25zdCB1cmkgPSBtc2cuY2xvc2UuY2hhbm5lbFxuXG4gICAgICBmb3IgKGNvbnN0IHJlYWRlciBvZiB0aGlzLnJlYWRlcnNbdXJpXSB8fCBbXSkge1xuICAgICAgICByZWFkZXIuY2xvc2UoKVxuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IHdyaXRlciBvZiB0aGlzLndyaXRlcnNbdXJpXSB8fCBbXSkge1xuICAgICAgICBhd2FpdCB3cml0ZXIuY2xvc2UodHJ1ZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobXNnLnBpcGVsaW5lKSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBoZXJlXG4gICAgICAgIGNvbnN0IHF1YWRzID0gbmV3IFBhcnNlcigpLnBhcnNlKG1zZy5waXBlbGluZSlcbiAgICAgICAgdGhpcy5zaGFwZXMgPSBleHRyYWN0U2hhcGVzKFxuICAgICAgICAgIHF1YWRzLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFtSREZDLlJlYWRlcl06ICh4OiBDb250KSA9PiB0aGlzLmNyZWF0ZVJlYWRlcih4LmlkKSxcbiAgICAgICAgICAgIFtSREZDLldyaXRlcl06ICh4OiBDb250KSA9PiB0aGlzLmNyZWF0ZVdyaXRlcih4LmlkKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFtSREZDLlJlYWRlcl06IGVtcHR5PENvbnQ+KCksXG4gICAgICAgICAgICBbUkRGQy5Xcml0ZXJdOiBlbXB0eTxDb250PigpLFxuICAgICAgICAgIH0sXG4gICAgICAgIClcbiAgICAgICAgdGhpcy5xdWFkcyA9IHF1YWRzXG4gICAgICB9IGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcignUGlwZWxpbmUgZmFpbGVkOiAnICsgSlNPTi5zdHJpbmdpZnkoZXgpKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19