@toa.io/bindings.amqp 1.0.0-alpha.0 → 1.0.0-alpha.107

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 (59) hide show
  1. package/package.json +6 -7
  2. package/source/broadcast.js +1 -1
  3. package/source/communication.js +8 -0
  4. package/source/consumer.js +8 -0
  5. package/source/deployment/context.ts +14 -11
  6. package/source/deployment/sources.ts +5 -3
  7. package/source/producer.js +5 -1
  8. package/source/receiver.js +15 -4
  9. package/test/broadcast.test.js +4 -1
  10. package/test/communication.mock.js +2 -0
  11. package/transpiled/broadcast.d.ts +10 -0
  12. package/transpiled/broadcast.js +31 -0
  13. package/transpiled/broadcast.js.map +1 -0
  14. package/transpiled/communication.d.ts +14 -0
  15. package/transpiled/communication.js +42 -0
  16. package/transpiled/communication.js.map +1 -0
  17. package/transpiled/constants.d.ts +1 -0
  18. package/transpiled/constants.js +3 -0
  19. package/transpiled/constants.js.map +1 -0
  20. package/transpiled/consumer.d.ts +10 -0
  21. package/transpiled/consumer.js +29 -0
  22. package/transpiled/consumer.js.map +1 -0
  23. package/transpiled/deployment/annotation.d.ts +10 -0
  24. package/transpiled/deployment/annotation.js +43 -0
  25. package/transpiled/deployment/annotation.js.map +1 -0
  26. package/transpiled/deployment/context.d.ts +7 -0
  27. package/transpiled/deployment/context.js +84 -0
  28. package/transpiled/deployment/context.js.map +1 -0
  29. package/transpiled/deployment/index.d.ts +4 -0
  30. package/transpiled/deployment/index.js +34 -0
  31. package/transpiled/deployment/index.js.map +1 -0
  32. package/transpiled/deployment/instance.d.ts +2 -0
  33. package/transpiled/deployment/instance.js +3 -0
  34. package/transpiled/deployment/instance.js.map +1 -0
  35. package/transpiled/deployment/sources.d.ts +8 -0
  36. package/transpiled/deployment/sources.js +35 -0
  37. package/transpiled/deployment/sources.js.map +1 -0
  38. package/transpiled/deployment.d.ts +4 -0
  39. package/transpiled/deployment.js +38 -0
  40. package/transpiled/deployment.js.map +1 -0
  41. package/transpiled/emitter.d.ts +9 -0
  42. package/transpiled/emitter.js +24 -0
  43. package/transpiled/emitter.js.map +1 -0
  44. package/transpiled/factory.d.ts +13 -0
  45. package/transpiled/factory.js +46 -0
  46. package/transpiled/factory.js.map +1 -0
  47. package/transpiled/index.d.ts +5 -0
  48. package/transpiled/index.js +9 -0
  49. package/transpiled/index.js.map +1 -0
  50. package/transpiled/producer.d.ts +6 -0
  51. package/transpiled/producer.js +34 -0
  52. package/transpiled/producer.js.map +1 -0
  53. package/transpiled/queues.d.ts +6 -0
  54. package/transpiled/queues.js +10 -0
  55. package/transpiled/queues.js.map +1 -0
  56. package/transpiled/receiver.d.ts +6 -0
  57. package/transpiled/receiver.js +44 -0
  58. package/transpiled/receiver.js.map +1 -0
  59. package/transpiled/tsconfig.tsbuildinfo +1 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toa.io/bindings.amqp",
3
- "version": "1.0.0-alpha.0",
3
+ "version": "1.0.0-alpha.107",
4
4
  "description": "Toa AMQP Binding",
5
5
  "author": "temich <tema.gurtovoy@gmail.com>",
6
6
  "homepage": "https://github.com/toa-io/toa#readme",
@@ -17,11 +17,10 @@
17
17
  "main": "transpiled/index.js",
18
18
  "types": "transpiled/index.d.ts",
19
19
  "dependencies": {
20
- "@toa.io/console": "1.0.0-alpha.0",
21
- "@toa.io/core": "1.0.0-alpha.0",
22
- "@toa.io/generic": "1.0.0-alpha.0",
23
- "@toa.io/pointer": "1.0.0-alpha.0",
24
- "comq": "0.10.1"
20
+ "@toa.io/core": "1.0.0-alpha.107",
21
+ "@toa.io/generic": "1.0.0-alpha.93",
22
+ "@toa.io/pointer": "1.0.0-alpha.93",
23
+ "comq": "0.12.0"
25
24
  },
26
25
  "scripts": {
27
26
  "transpile": "tsc"
@@ -30,5 +29,5 @@
30
29
  "preset": "ts-jest",
31
30
  "testEnvironment": "node"
32
31
  },
33
- "gitHead": "06c64546f6292cc07c52f74b31415101037f7616"
32
+ "gitHead": "0c69afa09e2515ed76f88eaa9c9f5e5c97d8c5db"
34
33
  }
@@ -30,7 +30,7 @@ class Broadcast extends Connector {
30
30
  async transmit (label, payload) {
31
31
  const exchange = name(this.#locator, label)
32
32
 
33
- await this.#comm.emit(exchange, payload)
33
+ await this.#comm.emit(exchange, payload, { deliveryMode: 1, expiration: 1000 })
34
34
  }
35
35
 
36
36
  async receive (label, callback) {
@@ -44,6 +44,14 @@ class Communication extends Connector {
44
44
  async consume (exchange, group, consumer) {
45
45
  await this.#io.consume(exchange, group, consumer)
46
46
  }
47
+
48
+ async process (queue, consumer) {
49
+ await this.#io.process(queue, consumer)
50
+ }
51
+
52
+ async enqueue (queue, message) {
53
+ await this.#io.enqueue(queue, message)
54
+ }
47
55
  }
48
56
 
49
57
  exports.Communication = Communication
@@ -10,6 +10,9 @@ class Consumer extends Connector {
10
10
  /** @type {string} */
11
11
  #queue
12
12
 
13
+ /** @type {string} */
14
+ #tasksQueue
15
+
13
16
  /** @type {toa.amqp.Communication} */
14
17
  #comm
15
18
 
@@ -17,6 +20,7 @@ class Consumer extends Connector {
17
20
  super()
18
21
 
19
22
  this.#queue = name(locator, endpoint)
23
+ this.#tasksQueue = this.#queue + '..tasks'
20
24
  this.#comm = comm
21
25
 
22
26
  this.depends(comm)
@@ -25,6 +29,10 @@ class Consumer extends Connector {
25
29
  async request (request) {
26
30
  return this.#comm.request(this.#queue, request)
27
31
  }
32
+
33
+ async task (request) {
34
+ await this.#comm.enqueue(this.#tasksQueue, request)
35
+ }
28
36
  }
29
37
 
30
38
  exports.Consumer = Consumer
@@ -3,8 +3,8 @@ import { encode, decode } from '@toa.io/generic'
3
3
  import { resolveRecord, naming } from '@toa.io/pointer'
4
4
  import { type Locator } from '@toa.io/core'
5
5
  import { type AnnotationRecord } from '@toa.io/pointer/transpiled/Deployment'
6
- import { dedupe } from '@toa.io/dns'
7
6
  import { type Annotation } from './annotation'
7
+ import type { URIMap } from '@toa.io/pointer'
8
8
 
9
9
  export function createDependency (context: Context): Dependency {
10
10
  const global: Variable[] = []
@@ -17,17 +17,19 @@ export function createDependency (context: Context): Dependency {
17
17
  return { variables }
18
18
  }
19
19
 
20
- export async function resolveURIs (locator: Locator): Promise<string[]> {
21
- if (process.env.TOA_DEV === '1') return ['amqp://developer:secret@localhost']
20
+ export function resolveURIs (locator: Locator): string[] {
21
+ if (process.env.TOA_DEV === '1')
22
+ return ['amqp://developer:secret@localhost']
22
23
 
23
24
  const value = process.env[VARIABLE]
24
25
 
25
- if (value === undefined) throw new Error(`Environment variable ${VARIABLE} is not specified`)
26
+ if (value === undefined)
27
+ throw new Error(`Environment variable ${VARIABLE} is not specified`)
26
28
 
27
- const map = decode(value)
29
+ const map = decode<URIMap>(value)
28
30
  const record = resolveRecord(map, locator.id)
29
31
 
30
- return await parseRecord(record)
32
+ return parseRecord(record)
31
33
  }
32
34
 
33
35
  function createVariables (context: Context): Variable[] {
@@ -79,9 +81,8 @@ function createSecretVariable (key: string, secretKey: string): Variable {
79
81
  }
80
82
  }
81
83
 
82
- async function parseRecord (record: AnnotationRecord): Promise<string[]> {
83
- const unique = await dedupe(record.references)
84
- const urls = new Array(unique.length)
84
+ function parseRecord (record: AnnotationRecord): string[] {
85
+ const urls = new Array(record.references.length)
85
86
  const key = record.key === '.' ? '' : record.key
86
87
  const username = readEnv(key, 'USERNAME')
87
88
  const password = readEnv(key, 'PASSWORD')
@@ -102,8 +103,10 @@ function readEnv (key: string, name: string): string {
102
103
  const variable = naming.nameVariable(ID, key, name)
103
104
  const value = process.env[variable]
104
105
 
105
- if (value === undefined) throw new Error(variable + ' is not set')
106
- else return value
106
+ if (value === undefined)
107
+ throw new Error(variable + ' is not set')
108
+ else
109
+ return value
107
110
  }
108
111
 
109
112
  const ID = 'amqp-context'
@@ -20,15 +20,17 @@ export function createDependency (sources: Sources, instances: Instance[]): Depe
20
20
  }
21
21
 
22
22
  export async function resolveURIs (locator: Locator): Promise<string[]> {
23
- return await resolve(ID, locator.id)
23
+ return resolve(ID, locator.id)
24
24
  }
25
25
 
26
26
  function createRequest (instance: Instance): Request | null {
27
27
  const group = instance.locator.label
28
28
  const selectors = createSelectors(instance.component)
29
29
 
30
- if (selectors === null) return null
31
- else return { group, selectors }
30
+ if (selectors === null)
31
+ return null
32
+ else
33
+ return { group, selectors }
32
34
  }
33
35
 
34
36
  function createSelectors (component: Manifest): string[] | null {
@@ -35,8 +35,12 @@ class Producer extends Connector {
35
35
 
36
36
  async #endpoint (endpoint) {
37
37
  const queue = name(this.#locator, endpoint)
38
+ const promises = [this.#comm.reply(queue, (request) => this.#component.invoke(endpoint, request))]
38
39
 
39
- await this.#comm.reply(queue, (request) => this.#component.invoke(endpoint, request))
40
+ if (endpoint[0] !== '.')
41
+ promises.push(this.#comm.process(queue + '..tasks', async (request) => await this.#component.invoke(endpoint, request)))
42
+
43
+ await Promise.all(promises)
40
44
  }
41
45
  }
42
46
 
@@ -3,9 +3,12 @@
3
3
  const { Connector } = require('@toa.io/core')
4
4
 
5
5
  class Receiver extends Connector {
6
- /** @type {string} */
6
+ /** @type {string | undefined} */
7
7
  #exchange
8
8
 
9
+ /** @type {string | undefined} */
10
+ #queue
11
+
9
12
  /** @type {string} */
10
13
  #group
11
14
 
@@ -15,19 +18,27 @@ class Receiver extends Connector {
15
18
  /** @type {toa.core.Receiver} */
16
19
  #receiver
17
20
 
18
- constructor (comm, exchange, group, receiver) {
21
+ constructor (comm, label, group, receiver) {
19
22
  super()
20
23
 
21
- this.#exchange = exchange
24
+ const [name, type] = label.split(':').reverse()
25
+
26
+ if (type === 'queue') this.#queue = name
27
+ else this.#exchange = name
28
+
22
29
  this.#group = group
23
30
  this.#comm = comm
24
31
  this.#receiver = receiver
25
32
 
26
33
  this.depends(comm)
34
+ this.depends(receiver)
27
35
  }
28
36
 
29
37
  async open () {
30
- await this.#comm.consume(this.#exchange, this.#group, this.#receive)
38
+ if (this.#queue !== undefined)
39
+ await this.#comm.process(this.#queue, this.#receive)
40
+ else
41
+ await this.#comm.consume(this.#exchange, this.#group, this.#receive)
31
42
  }
32
43
 
33
44
  /**
@@ -51,7 +51,10 @@ it('should transmit', async () => {
51
51
 
52
52
  const exchange = mock.queues.name.mock.results[0].value
53
53
 
54
- expect(comm.emit).toHaveBeenCalledWith(exchange, message)
54
+ expect(comm.emit).toHaveBeenCalledWith(exchange, message, {
55
+ 'deliveryMode': 1,
56
+ 'expiration': 1000
57
+ })
55
58
  })
56
59
 
57
60
  it('should receive', async () => {
@@ -12,6 +12,8 @@ const communication = () => (
12
12
  reply: jest.fn(async () => undefined),
13
13
  emit: jest.fn(async () => undefined),
14
14
  consume: jest.fn(async () => undefined),
15
+ enqueue: jest.fn(async () => undefined),
16
+ process: jest.fn(async () => undefined),
15
17
 
16
18
  link: jest.fn()
17
19
  }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @implements {toa.core.bindings.Broadcast}
3
+ */
4
+ export class Broadcast extends Connector implements toa.core.bindings.Broadcast {
5
+ constructor(comm: any, locator: any, group: any);
6
+ transmit(label: any, payload: any): Promise<void>;
7
+ receive(label: any, callback: any): Promise<void>;
8
+ #private;
9
+ }
10
+ import { Connector } from "@toa.io/core";
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+ const { Connector } = require('@toa.io/core');
3
+ const { name } = require('./queues');
4
+ /**
5
+ * @implements {toa.core.bindings.Broadcast}
6
+ */
7
+ class Broadcast extends Connector {
8
+ /** @type {toa.amqp.Communication} */
9
+ #comm;
10
+ /** @type {toa.core.Locator} */
11
+ #locator;
12
+ /** @type {string} */
13
+ #group;
14
+ constructor(comm, locator, group) {
15
+ super();
16
+ this.#comm = comm;
17
+ this.#locator = locator;
18
+ this.#group = group;
19
+ this.depends(comm);
20
+ }
21
+ async transmit(label, payload) {
22
+ const exchange = name(this.#locator, label);
23
+ await this.#comm.emit(exchange, payload, { deliveryMode: 1, expiration: 1000 });
24
+ }
25
+ async receive(label, callback) {
26
+ const exchange = name(this.#locator, label);
27
+ await this.#comm.consume(exchange, this.#group, callback);
28
+ }
29
+ }
30
+ exports.Broadcast = Broadcast;
31
+ //# sourceMappingURL=broadcast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../source/broadcast.js"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;AAE7C,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAEpC;;GAEG;AACH,MAAM,SAAU,SAAQ,SAAS;IAC/B,qCAAqC;IACrC,KAAK,CAAA;IAEL,+BAA+B;IAC/B,QAAQ,CAAA;IAER,qBAAqB;IACrB,MAAM,CAAA;IAEN,YAAa,IAAI,EAAE,OAAO,EAAE,KAAK;QAC/B,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QAEnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAE,KAAK,EAAE,OAAO;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QAE3C,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;IACjF,CAAC;IAED,KAAK,CAAC,OAAO,CAAE,KAAK,EAAE,QAAQ;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QAE3C,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC3D,CAAC;CACF;AAED,OAAO,CAAC,SAAS,GAAG,SAAS,CAAA"}
@@ -0,0 +1,14 @@
1
+ export class Communication extends Connector {
2
+ constructor(resolve: any);
3
+ open(): Promise<void>;
4
+ close(): Promise<void>;
5
+ dispose(): Promise<void>;
6
+ reply(queue: any, process: any): Promise<void>;
7
+ request(queue: any, request: any): Promise<any>;
8
+ emit(exchange: any, message: any, properties: any): Promise<void>;
9
+ consume(exchange: any, group: any, consumer: any): Promise<void>;
10
+ process(queue: any, consumer: any): Promise<void>;
11
+ enqueue(queue: any, message: any): Promise<void>;
12
+ #private;
13
+ }
14
+ import { Connector } from "@toa.io/core";
@@ -0,0 +1,42 @@
1
+ 'use strict';
2
+ const { assert } = require('comq');
3
+ const { Connector } = require('@toa.io/core');
4
+ class Communication extends Connector {
5
+ #resolve;
6
+ /** @type {comq.IO} */
7
+ #io;
8
+ constructor(resolve) {
9
+ super();
10
+ this.#resolve = resolve;
11
+ }
12
+ async open() {
13
+ const references = await this.#resolve();
14
+ this.#io = await assert(...references);
15
+ }
16
+ async close() {
17
+ await this.#io?.seal();
18
+ }
19
+ async dispose() {
20
+ await this.#io?.close();
21
+ }
22
+ async reply(queue, process) {
23
+ await this.#io.reply(queue, process);
24
+ }
25
+ async request(queue, request) {
26
+ return this.#io.request(queue, request);
27
+ }
28
+ async emit(exchange, message, properties) {
29
+ await this.#io.emit(exchange, message, properties);
30
+ }
31
+ async consume(exchange, group, consumer) {
32
+ await this.#io.consume(exchange, group, consumer);
33
+ }
34
+ async process(queue, consumer) {
35
+ await this.#io.process(queue, consumer);
36
+ }
37
+ async enqueue(queue, message) {
38
+ await this.#io.enqueue(queue, message);
39
+ }
40
+ }
41
+ exports.Communication = Communication;
42
+ //# sourceMappingURL=communication.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"communication.js","sourceRoot":"","sources":["../source/communication.js"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAClC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;AAE7C,MAAM,aAAc,SAAQ,SAAS;IACnC,QAAQ,CAAA;IAER,sBAAsB;IACtB,GAAG,CAAA;IAEH,YAAa,OAAO;QAClB,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;QAExC,IAAI,CAAC,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,UAAU,CAAC,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,KAAK,CAAE,KAAK,EAAE,OAAO;QACzB,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,OAAO,CAAE,KAAK,EAAE,OAAO;QAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACzC,CAAC;IAED,KAAK,CAAC,IAAI,CAAE,QAAQ,EAAE,OAAO,EAAE,UAAU;QACvC,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;IACpD,CAAC;IAED,KAAK,CAAC,OAAO,CAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ;QACtC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;IACnD,CAAC;IAED,KAAK,CAAC,OAAO,CAAE,KAAK,EAAE,QAAQ;QAC5B,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IACzC,CAAC;IAED,KAAK,CAAC,OAAO,CAAE,KAAK,EAAE,OAAO;QAC3B,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACxC,CAAC;CACF;AAED,OAAO,CAAC,aAAa,GAAG,aAAa,CAAA"}
@@ -0,0 +1 @@
1
+ export const SYSTEM: "system";
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ exports.SYSTEM = 'system';
3
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../source/constants.js"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAA"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @implements {toa.core.bindings.Consumer}
3
+ */
4
+ export class Consumer extends Connector implements toa.core.bindings.Consumer {
5
+ constructor(comm: any, locator: any, endpoint: any);
6
+ request(request: any): Promise<any>;
7
+ task(request: any): Promise<void>;
8
+ #private;
9
+ }
10
+ import { Connector } from "@toa.io/core";
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+ const { Connector } = require('@toa.io/core');
3
+ const { name } = require('./queues');
4
+ /**
5
+ * @implements {toa.core.bindings.Consumer}
6
+ */
7
+ class Consumer extends Connector {
8
+ /** @type {string} */
9
+ #queue;
10
+ /** @type {string} */
11
+ #tasksQueue;
12
+ /** @type {toa.amqp.Communication} */
13
+ #comm;
14
+ constructor(comm, locator, endpoint) {
15
+ super();
16
+ this.#queue = name(locator, endpoint);
17
+ this.#tasksQueue = this.#queue + '..tasks';
18
+ this.#comm = comm;
19
+ this.depends(comm);
20
+ }
21
+ async request(request) {
22
+ return this.#comm.request(this.#queue, request);
23
+ }
24
+ async task(request) {
25
+ await this.#comm.enqueue(this.#tasksQueue, request);
26
+ }
27
+ }
28
+ exports.Consumer = Consumer;
29
+ //# sourceMappingURL=consumer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer.js","sourceRoot":"","sources":["../source/consumer.js"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;AAC7C,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAEpC;;GAEG;AACH,MAAM,QAAS,SAAQ,SAAS;IAC9B,qBAAqB;IACrB,MAAM,CAAA;IAEN,qBAAqB;IACrB,WAAW,CAAA;IAEX,qCAAqC;IACrC,KAAK,CAAA;IAEL,YAAa,IAAI,EAAE,OAAO,EAAE,QAAQ;QAClC,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;QAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QAEjB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,OAAO,CAAE,OAAO;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjD,CAAC;IAED,KAAK,CAAC,IAAI,CAAE,OAAO;QACjB,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IACrD,CAAC;CACF;AAED,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { type URIMap } from '@toa.io/pointer';
2
+ export declare function normalize(declaration: string | Declaration): Annotation;
3
+ export interface Annotation {
4
+ context: URIMap;
5
+ sources?: URIMap;
6
+ }
7
+ export interface Declaration {
8
+ context: string | Record<string, string | string[]>;
9
+ sources?: Record<string, string | string[]>;
10
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.normalize = void 0;
27
+ const pointer = __importStar(require("@toa.io/pointer"));
28
+ function normalize(declaration) {
29
+ const annotation = expand(declaration);
30
+ const context = pointer.normalize(annotation.context);
31
+ const sources = pointer.normalize(annotation.sources);
32
+ return { context, sources };
33
+ }
34
+ exports.normalize = normalize;
35
+ function expand(declaration) {
36
+ if (typeof declaration === 'string')
37
+ return { context: { '.': [declaration] } };
38
+ else if (Array.isArray(declaration))
39
+ return { context: { '.': declaration } };
40
+ else
41
+ return declaration;
42
+ }
43
+ //# sourceMappingURL=annotation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotation.js","sourceRoot":"","sources":["../../source/deployment/annotation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAA0C;AAG1C,SAAgB,SAAS,CAAE,WAAiC;IAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;IACtC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IACrD,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IAErD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;AAC7B,CAAC;AAND,8BAMC;AAED,SAAS,MAAM,CAAE,WAAiC;IAChD,IAAI,OAAO,WAAW,KAAK,QAAQ;QAAE,OAAO,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,CAAA;SAC1E,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,CAAA;;QACxE,OAAO,WAAW,CAAA;AACzB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { type Dependency } from '@toa.io/operations';
2
+ import { type Locator } from '@toa.io/core';
3
+ import { type Annotation } from './annotation';
4
+ export declare function createDependency(context: Context): Dependency;
5
+ export declare function resolveURIs(locator: Locator): string[];
6
+ type Context = Annotation['context'];
7
+ export {};
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveURIs = exports.createDependency = void 0;
4
+ const generic_1 = require("@toa.io/generic");
5
+ const pointer_1 = require("@toa.io/pointer");
6
+ function createDependency(context) {
7
+ const global = [];
8
+ const variables = { global };
9
+ const contextVariables = createVariables(context);
10
+ global.push(...contextVariables);
11
+ return { variables };
12
+ }
13
+ exports.createDependency = createDependency;
14
+ function resolveURIs(locator) {
15
+ if (process.env.TOA_DEV === '1')
16
+ return ['amqp://developer:secret@localhost'];
17
+ const value = process.env[VARIABLE];
18
+ if (value === undefined)
19
+ throw new Error(`Environment variable ${VARIABLE} is not specified`);
20
+ const map = (0, generic_1.decode)(value);
21
+ const record = (0, pointer_1.resolveRecord)(map, locator.id);
22
+ return parseRecord(record);
23
+ }
24
+ exports.resolveURIs = resolveURIs;
25
+ function createVariables(context) {
26
+ const variables = [];
27
+ const uris = (0, generic_1.encode)(context);
28
+ const contextVariable = {
29
+ name: VARIABLE,
30
+ value: uris
31
+ };
32
+ const secrets = createSecrets(context);
33
+ variables.push(contextVariable, ...secrets);
34
+ return variables;
35
+ }
36
+ function createSecrets(context) {
37
+ const secrets = [];
38
+ for (const key of Object.keys(context)) {
39
+ const keySecrets = createKeySecrets(key);
40
+ secrets.push(...keySecrets);
41
+ }
42
+ return secrets;
43
+ }
44
+ function createKeySecrets(key) {
45
+ const username = createSecretVariable(key, 'username');
46
+ const password = createSecretVariable(key, 'password');
47
+ return [username, password];
48
+ }
49
+ function createSecretVariable(key, secretKey) {
50
+ const varKey = key === '.' ? '' : key;
51
+ const varName = pointer_1.naming.nameVariable(ID, varKey, secretKey.toUpperCase());
52
+ const secName = pointer_1.naming.nameSecret(ID, key);
53
+ return {
54
+ name: varName,
55
+ secret: {
56
+ name: secName,
57
+ key: secretKey
58
+ }
59
+ };
60
+ }
61
+ function parseRecord(record) {
62
+ const urls = new Array(record.references.length);
63
+ const key = record.key === '.' ? '' : record.key;
64
+ const username = readEnv(key, 'USERNAME');
65
+ const password = readEnv(key, 'PASSWORD');
66
+ for (let i = 0; i < record.references.length; i++) {
67
+ const url = new URL(record.references[i]);
68
+ url.username = username;
69
+ url.password = password;
70
+ urls[i] = url.href;
71
+ }
72
+ return urls;
73
+ }
74
+ function readEnv(key, name) {
75
+ const variable = pointer_1.naming.nameVariable(ID, key, name);
76
+ const value = process.env[variable];
77
+ if (value === undefined)
78
+ throw new Error(variable + ' is not set');
79
+ else
80
+ return value;
81
+ }
82
+ const ID = 'amqp-context';
83
+ const VARIABLE = 'TOA_AMQP_CONTEXT';
84
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../source/deployment/context.ts"],"names":[],"mappings":";;;AACA,6CAAgD;AAChD,6CAAuD;AAMvD,SAAgB,gBAAgB,CAAE,OAAgB;IAChD,MAAM,MAAM,GAAe,EAAE,CAAA;IAC7B,MAAM,SAAS,GAAG,EAAE,MAAM,EAAE,CAAA;IAE5B,MAAM,gBAAgB,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;IAEjD,MAAM,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAA;IAEhC,OAAO,EAAE,SAAS,EAAE,CAAA;AACtB,CAAC;AATD,4CASC;AAED,SAAgB,WAAW,CAAE,OAAgB;IAC3C,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,GAAG;QAC7B,OAAO,CAAC,mCAAmC,CAAC,CAAA;IAE9C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAEnC,IAAI,KAAK,KAAK,SAAS;QACrB,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,mBAAmB,CAAC,CAAA;IAEtE,MAAM,GAAG,GAAG,IAAA,gBAAM,EAAS,KAAK,CAAC,CAAA;IACjC,MAAM,MAAM,GAAG,IAAA,uBAAa,EAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;IAE7C,OAAO,WAAW,CAAC,MAAM,CAAC,CAAA;AAC5B,CAAC;AAbD,kCAaC;AAED,SAAS,eAAe,CAAE,OAAgB;IACxC,MAAM,SAAS,GAAe,EAAE,CAAA;IAChC,MAAM,IAAI,GAAG,IAAA,gBAAM,EAAC,OAAO,CAAC,CAAA;IAE5B,MAAM,eAAe,GAAa;QAChC,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,IAAI;KACZ,CAAA;IAED,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;IAEtC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,OAAO,CAAC,CAAA;IAE3C,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,aAAa,CAAE,OAAgB;IACtC,MAAM,OAAO,GAAe,EAAE,CAAA;IAE9B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAA;QAExC,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAA;IAC7B,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAE,GAAW;IACpC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;IACtD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;IAEtD,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;AAC7B,CAAC;AAED,SAAS,oBAAoB,CAAE,GAAW,EAAE,SAAiB;IAC3D,MAAM,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;IACrC,MAAM,OAAO,GAAG,gBAAM,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;IACxE,MAAM,OAAO,GAAG,gBAAM,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IAE1C,OAAO;QACL,IAAI,EAAE,OAAO;QACb,MAAM,EAAE;YACN,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,SAAS;SACf;KACF,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAE,MAAwB;IAC5C,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAChD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAA;IAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;IACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;IAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;QAEzC,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACvB,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAEvB,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAA;IACpB,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,OAAO,CAAE,GAAW,EAAE,IAAY;IACzC,MAAM,QAAQ,GAAG,gBAAM,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IACnD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAEnC,IAAI,KAAK,KAAK,SAAS;QACrB,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,aAAa,CAAC,CAAA;;QAEzC,OAAO,KAAK,CAAA;AAChB,CAAC;AAED,MAAM,EAAE,GAAG,cAAc,CAAA;AACzB,MAAM,QAAQ,GAAG,kBAAkB,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { type Dependency } from '@toa.io/operations';
2
+ import { type Declaration } from './annotation';
3
+ import { type Instance } from './instance';
4
+ export declare function deployment(instances: Instance[], declaration: Declaration): Dependency;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.deployment = void 0;
27
+ const annotation_1 = require("./annotation");
28
+ const sources = __importStar(require("./sources"));
29
+ function deployment(instances, declaration) {
30
+ const annotation = (0, annotation_1.normalize)(declaration);
31
+ return sources.createDependency(annotation.sources, instances);
32
+ }
33
+ exports.deployment = deployment;
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/deployment/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6CAA0D;AAC1D,mDAAoC;AAGpC,SAAgB,UAAU,CAAE,SAAqB,EAAE,WAAwB;IACzE,MAAM,UAAU,GAAG,IAAA,sBAAS,EAAC,WAAW,CAAC,CAAA;IAEzC,OAAO,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;AAChE,CAAC;AAJD,gCAIC"}
@@ -0,0 +1,2 @@
1
+ import { type context } from '@toa.io/norm';
2
+ export type Instance = context.Dependency;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=instance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance.js","sourceRoot":"","sources":["../../source/deployment/instance.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import { type Dependency } from '@toa.io/operations';
2
+ import { type Locator } from '@toa.io/core';
3
+ import { type Instance } from './instance';
4
+ import { type Annotation } from './annotation';
5
+ export declare function createDependency(sources: Sources, instances: Instance[]): Dependency;
6
+ export declare function resolveURIs(locator: Locator): Promise<string[]>;
7
+ type Sources = Annotation['sources'];
8
+ export {};
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveURIs = exports.createDependency = void 0;
4
+ const pointer_1 = require("@toa.io/pointer");
5
+ function createDependency(sources, instances) {
6
+ const requests = [];
7
+ for (const instance of instances) {
8
+ const request = createRequest(instance);
9
+ if (request !== null)
10
+ requests.push(request);
11
+ }
12
+ const variables = (0, pointer_1.createVariables)(ID, sources, requests);
13
+ return { variables };
14
+ }
15
+ exports.createDependency = createDependency;
16
+ async function resolveURIs(locator) {
17
+ return (0, pointer_1.resolve)(ID, locator.id);
18
+ }
19
+ exports.resolveURIs = resolveURIs;
20
+ function createRequest(instance) {
21
+ const group = instance.locator.label;
22
+ const selectors = createSelectors(instance.component);
23
+ if (selectors === null)
24
+ return null;
25
+ else
26
+ return { group, selectors };
27
+ }
28
+ function createSelectors(component) {
29
+ if (component.receivers === undefined)
30
+ return null;
31
+ const sources = Object.values(component.receivers).map((receiver) => receiver.source);
32
+ return sources.filter((source) => source !== undefined);
33
+ }
34
+ const ID = 'amqp-sources';
35
+ //# sourceMappingURL=sources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sources.js","sourceRoot":"","sources":["../../source/deployment/sources.ts"],"names":[],"mappings":";;;AAAA,6CAAwE;AAOxE,SAAgB,gBAAgB,CAAE,OAAgB,EAAE,SAAqB;IACvE,MAAM,QAAQ,GAAG,EAAE,CAAA;IAEnB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;QAEvC,IAAI,OAAO,KAAK,IAAI;YAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC9C,CAAC;IAED,MAAM,SAAS,GAAG,IAAA,yBAAe,EAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAExD,OAAO,EAAE,SAAS,EAAE,CAAA;AACtB,CAAC;AAZD,4CAYC;AAEM,KAAK,UAAU,WAAW,CAAE,OAAgB;IACjD,OAAO,IAAA,iBAAO,EAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;AAChC,CAAC;AAFD,kCAEC;AAED,SAAS,aAAa,CAAE,QAAkB;IACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAA;IACpC,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IAErD,IAAI,SAAS,KAAK,IAAI;QACpB,OAAO,IAAI,CAAA;;QAEX,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;AAC/B,CAAC;AAED,SAAS,eAAe,CAAE,SAAmB;IAC3C,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IAElD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAErF,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,SAAS,CAAa,CAAA;AACrE,CAAC;AAED,MAAM,EAAE,GAAG,cAAc,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { type Dependency } from '@toa.io/operations';
2
+ import { type Declaration } from './deployment/annotation';
3
+ import { type Instance } from './deployment/instance';
4
+ export declare function deployment(instances: Instance[], declaration: Declaration): Dependency;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.deployment = void 0;
27
+ const generic_1 = require("@toa.io/generic");
28
+ const annotation_1 = require("./deployment/annotation");
29
+ const sources = __importStar(require("./deployment/sources"));
30
+ const context = __importStar(require("./deployment/context"));
31
+ function deployment(instances, declaration) {
32
+ const annotation = (0, annotation_1.normalize)(declaration);
33
+ const contextDependency = context.createDependency(annotation.context);
34
+ const sourcesDependency = sources.createDependency(annotation.sources, instances);
35
+ return (0, generic_1.merge)(contextDependency, sourcesDependency);
36
+ }
37
+ exports.deployment = deployment;
38
+ //# sourceMappingURL=deployment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment.js","sourceRoot":"","sources":["../source/deployment.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6CAAuC;AACvC,wDAAqE;AACrE,8DAA+C;AAC/C,8DAA+C;AAG/C,SAAgB,UAAU,CAAE,SAAqB,EAAE,WAAwB;IACzE,MAAM,UAAU,GAAG,IAAA,sBAAS,EAAC,WAAW,CAAC,CAAA;IACzC,MAAM,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IACtE,MAAM,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IAEjF,OAAO,IAAA,eAAK,EAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAA;AACpD,CAAC;AAND,gCAMC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @implements {toa.core.bindings.Emitter}
3
+ */
4
+ export class Emitter extends Connector implements toa.core.bindings.Emitter {
5
+ constructor(comm: any, locator: any, label: any);
6
+ emit(message: any): Promise<void>;
7
+ #private;
8
+ }
9
+ import { Connector } from "@toa.io/core";
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+ const { Connector } = require('@toa.io/core');
3
+ const { name } = require('./queues');
4
+ /**
5
+ * @implements {toa.core.bindings.Emitter}
6
+ */
7
+ class Emitter extends Connector {
8
+ /** @type {string} */
9
+ #exchange;
10
+ /** @type {toa.amqp.Communication} */
11
+ #comm;
12
+ constructor(comm, locator, label) {
13
+ super();
14
+ this.#exchange = name(locator, label);
15
+ this.#comm = comm;
16
+ this.depends(comm);
17
+ }
18
+ async emit(message) {
19
+ await this.#comm.emit(this.#exchange, message, PROPERTIES);
20
+ }
21
+ }
22
+ const PROPERTIES = { headers: { 'toa.io/amqp': '0' } };
23
+ exports.Emitter = Emitter;
24
+ //# sourceMappingURL=emitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../source/emitter.js"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;AAE7C,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAEpC;;GAEG;AACH,MAAM,OAAQ,SAAQ,SAAS;IAC7B,qBAAqB;IACrB,SAAS,CAAA;IAET,qCAAqC;IACrC,KAAK,CAAA;IAEL,YAAa,IAAI,EAAE,OAAO,EAAE,KAAK;QAC/B,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QAEjB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,IAAI,CAAE,OAAO;QACjB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;IAC5D,CAAC;CACF;AAED,MAAM,UAAU,GAAG,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,CAAA;AAEtD,OAAO,CAAC,OAAO,GAAG,OAAO,CAAA"}
@@ -0,0 +1,13 @@
1
+ export class Factory {
2
+ producer(locator: any, endpoints: any, component: any): Producer;
3
+ consumer(locator: any, endpoint: any): Consumer;
4
+ emitter(locator: any, label: any): Emitter;
5
+ receiver(locator: any, label: any, group: any, receiver: any): Receiver;
6
+ broadcast(name: any, group: any): Broadcast;
7
+ #private;
8
+ }
9
+ import { Producer } from "./producer";
10
+ import { Consumer } from "./consumer";
11
+ import { Emitter } from "./emitter";
12
+ import { Receiver } from "./receiver";
13
+ import { Broadcast } from "./broadcast";
@@ -0,0 +1,46 @@
1
+ 'use strict';
2
+ const { Locator } = require('@toa.io/core');
3
+ const { Producer } = require('./producer');
4
+ const { Consumer } = require('./consumer');
5
+ const { Emitter } = require('./emitter');
6
+ const { Receiver } = require('./receiver');
7
+ const { Broadcast } = require('./broadcast');
8
+ const context = require('./deployment/context');
9
+ const sources = require('./deployment/sources');
10
+ const { SYSTEM } = require('./constants');
11
+ const { Communication } = require('./communication');
12
+ class Factory {
13
+ producer(locator, endpoints, component) {
14
+ const comm = this.#getContext(locator);
15
+ return new Producer(comm, locator, endpoints, component);
16
+ }
17
+ consumer(locator, endpoint) {
18
+ const comm = this.#getContext(locator);
19
+ return new Consumer(comm, locator, endpoint);
20
+ }
21
+ emitter(locator, label) {
22
+ const comm = this.#getContext(locator);
23
+ return new Emitter(comm, locator, label);
24
+ }
25
+ receiver(locator, label, group, receiver) {
26
+ const comm = this.#getSource(locator);
27
+ return new Receiver(comm, label, group, receiver);
28
+ }
29
+ broadcast(name, group) {
30
+ const locator = new Locator(name, SYSTEM);
31
+ const comm = this.#getContext(locator);
32
+ return new Broadcast(comm, locator, group);
33
+ }
34
+ #getContext(locator) {
35
+ const resolve = async () => context.resolveURIs(locator);
36
+ return new Communication(resolve);
37
+ }
38
+ #getSource(locator) {
39
+ const resolve = (locator.namespace === undefined)
40
+ ? async () => sources.resolveURIs(locator)
41
+ : async () => context.resolveURIs(locator);
42
+ return new Communication(resolve);
43
+ }
44
+ }
45
+ exports.Factory = Factory;
46
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../source/factory.js"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;AAE3C,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;AAC1C,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;AAC1C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;AACxC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;AAC1C,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAA;AAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAA;AAE/C,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AACzC,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;AAEpD,MAAM,OAAO;IACX,QAAQ,CAAE,OAAO,EAAE,SAAS,EAAE,SAAS;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAEtC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;IAC1D,CAAC;IAED,QAAQ,CAAE,OAAO,EAAE,QAAQ;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAEtC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC9C,CAAC;IAED,OAAO,CAAE,OAAO,EAAE,KAAK;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAEtC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IAC1C,CAAC;IAED,QAAQ,CAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QAErC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;IACnD,CAAC;IAED,SAAS,CAAE,IAAI,EAAE,KAAK;QACpB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAEtC,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IAC5C,CAAC;IAED,WAAW,CAAE,OAAO;QAClB,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAExD,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,CAAA;IACnC,CAAC;IAED,UAAU,CAAE,OAAO;QACjB,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC;YAC/C,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;YAC1C,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAE5C,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,CAAA;IACnC,CAAC;CACF;AAED,OAAO,CAAC,OAAO,GAAG,OAAO,CAAA"}
@@ -0,0 +1,5 @@
1
+ /** @type {toa.core.bindings.Properties} */
2
+ export const properties: toa.core.bindings.Properties;
3
+ import { deployment } from "./deployment";
4
+ import { Factory } from "./factory";
5
+ export { deployment, Factory };
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+ const { deployment } = require('./deployment');
3
+ const { Factory } = require('./factory');
4
+ /** @type {toa.core.bindings.Properties} */
5
+ const properties = { async: true };
6
+ exports.properties = properties;
7
+ exports.deployment = deployment;
8
+ exports.Factory = Factory;
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.js"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;AAC9C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;AAExC,2CAA2C;AAC3C,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;AAElC,OAAO,CAAC,UAAU,GAAG,UAAU,CAAA;AAC/B,OAAO,CAAC,UAAU,GAAG,UAAU,CAAA;AAC/B,OAAO,CAAC,OAAO,GAAG,OAAO,CAAA"}
@@ -0,0 +1,6 @@
1
+ export class Producer extends Connector {
2
+ constructor(comm: any, locator: any, endpoints: any, component: any);
3
+ open(): Promise<void>;
4
+ #private;
5
+ }
6
+ import { Connector } from "@toa.io/core";
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+ const { Connector } = require('@toa.io/core');
3
+ const { name } = require('./queues');
4
+ class Producer extends Connector {
5
+ /** @type {toa.amqp.Communication} */
6
+ #comm;
7
+ /** @type {toa.core.Locator} */
8
+ #locator;
9
+ /** @type {string[]} */
10
+ #endpoints;
11
+ /** @type {toa.core.Component} */
12
+ #component;
13
+ constructor(comm, locator, endpoints, component) {
14
+ super();
15
+ this.#comm = comm;
16
+ this.#locator = locator;
17
+ this.#endpoints = endpoints;
18
+ this.#component = component;
19
+ this.depends(comm);
20
+ this.depends(component);
21
+ }
22
+ async open() {
23
+ await Promise.all(this.#endpoints.map((endpoint) => this.#endpoint(endpoint)));
24
+ }
25
+ async #endpoint(endpoint) {
26
+ const queue = name(this.#locator, endpoint);
27
+ const promises = [this.#comm.reply(queue, (request) => this.#component.invoke(endpoint, request))];
28
+ if (endpoint[0] !== '.')
29
+ promises.push(this.#comm.process(queue + '..tasks', async (request) => await this.#component.invoke(endpoint, request)));
30
+ await Promise.all(promises);
31
+ }
32
+ }
33
+ exports.Producer = Producer;
34
+ //# sourceMappingURL=producer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"producer.js","sourceRoot":"","sources":["../source/producer.js"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;AAE7C,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAEpC,MAAM,QAAS,SAAQ,SAAS;IAC9B,qCAAqC;IACrC,KAAK,CAAA;IAEL,+BAA+B;IAC/B,QAAQ,CAAA;IAER,uBAAuB;IACvB,UAAU,CAAA;IAEV,iCAAiC;IACjC,UAAU,CAAA;IAEV,YAAa,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;QAC9C,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;QAC3B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;QAE3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAClB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IAChF,CAAC;IAED,KAAK,CAAC,SAAS,CAAE,QAAQ;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAC3C,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;QAElG,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG;YACrB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;QAE1H,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC7B,CAAC;CACF;AAED,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAA"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @param {toa.core.Locator} locator
3
+ * @param {string} endpoint
4
+ * @returns {string}
5
+ */
6
+ export function name(locator: toa.core.Locator, endpoint: string): string;
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+ const { concat } = require('@toa.io/generic');
3
+ /**
4
+ * @param {toa.core.Locator} locator
5
+ * @param {string} endpoint
6
+ * @returns {string}
7
+ */
8
+ const name = (locator, endpoint) => locator.namespace + '.' + concat(locator.name, '.') + endpoint;
9
+ exports.name = name;
10
+ //# sourceMappingURL=queues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queues.js","sourceRoot":"","sources":["../source/queues.js"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;AAE7C;;;;GAIG;AACH,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CACjC,OAAO,CAAC,SAAS,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,QAAQ,CAAA;AAEhE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA"}
@@ -0,0 +1,6 @@
1
+ export class Receiver extends Connector {
2
+ constructor(comm: any, label: any, group: any, receiver: any);
3
+ open(): Promise<void>;
4
+ #private;
5
+ }
6
+ import { Connector } from "@toa.io/core";
@@ -0,0 +1,44 @@
1
+ 'use strict';
2
+ const { Connector } = require('@toa.io/core');
3
+ class Receiver extends Connector {
4
+ /** @type {string | undefined} */
5
+ #exchange;
6
+ /** @type {string | undefined} */
7
+ #queue;
8
+ /** @type {string} */
9
+ #group;
10
+ /** @type {toa.amqp.Communication} */
11
+ #comm;
12
+ /** @type {toa.core.Receiver} */
13
+ #receiver;
14
+ constructor(comm, label, group, receiver) {
15
+ super();
16
+ const [name, type] = label.split(':').reverse();
17
+ if (type === 'queue')
18
+ this.#queue = name;
19
+ else
20
+ this.#exchange = name;
21
+ this.#group = group;
22
+ this.#comm = comm;
23
+ this.#receiver = receiver;
24
+ this.depends(comm);
25
+ this.depends(receiver);
26
+ }
27
+ async open() {
28
+ if (this.#queue !== undefined)
29
+ await this.#comm.process(this.#queue, this.#receive);
30
+ else
31
+ await this.#comm.consume(this.#exchange, this.#group, this.#receive);
32
+ }
33
+ /**
34
+ * @param {any} message
35
+ * @param {object} properties
36
+ */
37
+ #receive = async (message, properties) => {
38
+ if (!('toa.io/amqp' in properties.headers))
39
+ message = { payload: message };
40
+ await this.#receiver.receive(message);
41
+ };
42
+ }
43
+ exports.Receiver = Receiver;
44
+ //# sourceMappingURL=receiver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receiver.js","sourceRoot":"","sources":["../source/receiver.js"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;AAE7C,MAAM,QAAS,SAAQ,SAAS;IAC9B,iCAAiC;IACjC,SAAS,CAAA;IAET,iCAAiC;IACjC,MAAM,CAAA;IAEN,qBAAqB;IACrB,MAAM,CAAA;IAEN,qCAAqC;IACrC,KAAK,CAAA;IAEL,gCAAgC;IAChC,SAAS,CAAA;IAET,YAAa,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ;QACvC,KAAK,EAAE,CAAA;QAEP,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAA;QAE/C,IAAI,IAAI,KAAK,OAAO;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;;YACnC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QAE1B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;QAEzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAClB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAC3B,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;;YAEpD,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IACxE,CAAC;IAED;;;OAGG;IACH,QAAQ,GAAG,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE;QACvC,IAAI,CAAC,CAAC,aAAa,IAAI,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;QAE1E,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACvC,CAAC,CAAA;CACF;AAED,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAA"}
@@ -0,0 +1 @@
1
+ {"program":{"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.es2023.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.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.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.sharedmemory.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.es2023.array.d.ts","../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/typescript/lib/lib.esnext.full.d.ts","../../../runtime/core/types/bindings.d.ts","../../../runtime/core/types/connector.d.ts","../../../runtime/core/types/locator.d.ts","../../../runtime/core/types/exception.d.ts","../../../runtime/core/types/request.d.ts","../../../runtime/core/types/operations.d.ts","../../../runtime/core/types/component.d.ts","../../../runtime/core/types/context.d.ts","../../../runtime/core/types/storages.d.ts","../../../runtime/norm/types/component.d.ts","../../../runtime/norm/types/context/declaration.d.ts","../../../runtime/norm/types/context.d.ts","../../../runtime/norm/types/index.d.ts","../../../runtime/core/types/extensions.d.ts","../../../runtime/core/types/bridges.ts","../../../runtime/core/types/remote.d.ts","../../../runtime/core/types/message.d.ts","../../../runtime/core/types/receiver.d.ts","../../../runtime/core/types/index.ts","../../../libraries/generic/types/promex.d.ts","../../../libraries/generic/types/merge.d.ts","../../../libraries/generic/types/map.d.ts","../../../libraries/generic/types/letters.d.ts","../../../libraries/generic/types/index.d.ts","../source/queues.js","../source/broadcast.js","../../../node_modules/comq/types/diagnostic.d.ts","../../../node_modules/comq/types/channel.d.ts","../../../node_modules/comq/types/encoding.d.ts","../../../node_modules/comq/types/topology.d.ts","../../../node_modules/comq/types/amqp.d.ts","../../../node_modules/comq/types/io.d.ts","../../../node_modules/comq/types/connection.d.ts","../../../node_modules/comq/types/index.d.ts","../source/communication.js","../source/constants.js","../source/consumer.js","../../../operations/types/dependency.ts","../../../operations/types/index.ts","../../../libraries/pointer/transpiled/Deployment.d.ts","../../../libraries/pointer/transpiled/annotation.d.ts","../../../libraries/pointer/transpiled/createVariables.d.ts","../../../libraries/pointer/transpiled/resolve.d.ts","../../../libraries/pointer/transpiled/naming.d.ts","../../../libraries/pointer/transpiled/index.d.ts","../source/deployment/annotation.ts","../source/deployment/instance.ts","../source/deployment/sources.ts","../source/deployment/context.ts","../source/deployment.ts","../source/emitter.js","../source/producer.js","../source/receiver.js","../source/factory.js","../source/index.js","../source/deployment/index.ts","../../../node_modules/@babel/types/lib/index.d.ts","../../../node_modules/@types/babel__generator/index.d.ts","../../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../../node_modules/@types/babel__template/index.d.ts","../../../node_modules/@types/babel__traverse/index.d.ts","../../../node_modules/@types/babel__core/index.d.ts","../../../node_modules/@types/bcryptjs/index.d.ts","../../../node_modules/@types/caseless/index.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.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/api.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/globals.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/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/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/conventional-commits-parser/index.d.ts","../../../node_modules/@types/cors/index.d.ts","../../../node_modules/@types/duplexify/index.d.ts","../../../node_modules/@types/graceful-fs/index.d.ts","../../../node_modules/@types/http-cache-semantics/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/@jest/expect-utils/build/index.d.ts","../../../node_modules/jest-matcher-utils/node_modules/chalk/index.d.ts","../../../node_modules/@sinclair/typebox/typebox.d.ts","../../../node_modules/@jest/schemas/build/index.d.ts","../../../node_modules/pretty-format/build/index.d.ts","../../../node_modules/jest-matcher-utils/node_modules/jest-diff/build/index.d.ts","../../../node_modules/jest-matcher-utils/build/index.d.ts","../../../node_modules/expect/build/index.d.ts","../../../node_modules/@types/jest/index.d.ts","../../../node_modules/@types/js-yaml/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/json5/index.d.ts","../../../node_modules/@types/long/index.d.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/minimist/index.d.ts","../../../node_modules/@types/negotiator/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/@types/randomstring/index.d.ts","../../../node_modules/@types/request/node_modules/form-data/index.d.ts","../../../node_modules/@types/tough-cookie/index.d.ts","../../../node_modules/@types/request/index.d.ts","../../../node_modules/@types/semver/classes/semver.d.ts","../../../node_modules/@types/semver/functions/parse.d.ts","../../../node_modules/@types/semver/functions/valid.d.ts","../../../node_modules/@types/semver/functions/clean.d.ts","../../../node_modules/@types/semver/functions/inc.d.ts","../../../node_modules/@types/semver/functions/diff.d.ts","../../../node_modules/@types/semver/functions/major.d.ts","../../../node_modules/@types/semver/functions/minor.d.ts","../../../node_modules/@types/semver/functions/patch.d.ts","../../../node_modules/@types/semver/functions/prerelease.d.ts","../../../node_modules/@types/semver/functions/compare.d.ts","../../../node_modules/@types/semver/functions/rcompare.d.ts","../../../node_modules/@types/semver/functions/compare-loose.d.ts","../../../node_modules/@types/semver/functions/compare-build.d.ts","../../../node_modules/@types/semver/functions/sort.d.ts","../../../node_modules/@types/semver/functions/rsort.d.ts","../../../node_modules/@types/semver/functions/gt.d.ts","../../../node_modules/@types/semver/functions/lt.d.ts","../../../node_modules/@types/semver/functions/eq.d.ts","../../../node_modules/@types/semver/functions/neq.d.ts","../../../node_modules/@types/semver/functions/gte.d.ts","../../../node_modules/@types/semver/functions/lte.d.ts","../../../node_modules/@types/semver/functions/cmp.d.ts","../../../node_modules/@types/semver/functions/coerce.d.ts","../../../node_modules/@types/semver/classes/comparator.d.ts","../../../node_modules/@types/semver/classes/range.d.ts","../../../node_modules/@types/semver/functions/satisfies.d.ts","../../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../../node_modules/@types/semver/ranges/min-version.d.ts","../../../node_modules/@types/semver/ranges/valid.d.ts","../../../node_modules/@types/semver/ranges/outside.d.ts","../../../node_modules/@types/semver/ranges/gtr.d.ts","../../../node_modules/@types/semver/ranges/ltr.d.ts","../../../node_modules/@types/semver/ranges/intersects.d.ts","../../../node_modules/@types/semver/ranges/simplify.d.ts","../../../node_modules/@types/semver/ranges/subset.d.ts","../../../node_modules/@types/semver/internals/identifiers.d.ts","../../../node_modules/@types/semver/index.d.ts","../../../node_modules/@types/ssh2-streams/index.d.ts","../../../node_modules/@types/ssh2/index.d.ts","../../../node_modules/@types/stack-utils/index.d.ts","../../../node_modules/@types/uuid/index.d.ts","../../../node_modules/@types/webidl-conversions/index.d.ts","../../../node_modules/@types/whatwg-url/index.d.ts","../../../node_modules/@types/yargs-parser/index.d.ts","../../../node_modules/@types/yargs/index.d.ts"],"fileInfos":[{"version":"f33e5332b24c3773e930e212cbb8b6867c8ba3ec4492064ea78e55a524d57450","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","26f2f787e82c4222710f3b676b4d83eb5ad0a72fa7b746f03449e7a026ce5073","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","1c0cdb8dc619bc549c3e5020643e7cf7ae7940058e8c7e5aefa5871b6d86f44b","bed7b7ba0eb5a160b69af72814b4dde371968e40b6c5e73d3a9f7bee407d158c",{"version":"21e41a76098aa7a191028256e52a726baafd45a925ea5cf0222eb430c96c1d83","affectsGlobalScope":true},{"version":"35299ae4a62086698444a5aaee27fc7aa377c68cbb90b441c9ace246ffd05c97","affectsGlobalScope":true},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"e0275cd0e42990dc3a16f0b7c8bca3efe87f1c8ad404f80c6db1c7c0b828c59f","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"acae90d417bee324b1372813b5a00829d31c7eb670d299cd7f8f9a648ac05688","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true},{"version":"62a4966981264d1f04c44eb0f4b5bdc3d81c1a54725608861e44755aa24ad6a5","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"86a34c7a13de9cabc43161348f663624b56871ed80986e41d214932ddd8d6719","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"4350e5922fecd4bedda2964d69c213a1436349d0b8d260dd902795f5b94dc74b","affectsGlobalScope":true},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"fd1adc28ce106d6b5f7204355726a7ec922191ad5a8cc1a01841cbf9df9a7e64","360748ddf78dcf045b72c26569a82a3a4097963a4de9ca165a608ee557a70d77","b297d49b7ce31c940c72329a2a8e0d3ea4493da2d02dbb2e10d18a70c41c2dbd","ae1b493f13f348cb8e05c1217e500ab7365162758dd02304ae07b36ce5eadfa3","2beb94ef1961eb5c639e8f3cbbe1483bf2d9d53855fde0b20c1a3429d3a6160b","a52a24e0f94197f743997495bd7395239843226d1389ac05bfbde5eaca166e65","5c35e8ebe93b84dfffca5ab4348524af630144bd40640c09275011389c2620ac","d85578011e82176f27814764118ee840b4c1ab195aa1a8a551d7ef259930b03d","279541f81029449f33b96790cd7222664bdf66eaa6c1c719c8b451ae8b69ebe5","863a16bffa4414a6784927eec1b17523521761b2b2344a0b98f140c91d659859","503d1e771e298776cb5c75e2ed29962ce9a7360dafc65b5126911b3fa8a2c339","71e46111f57a5c82031adbac22eb542b5f63a8be4d5ee9253036cafe81d16112","bee841486123ba419b764cc86c5e4faf47317eb9c2d048408b88e7efa885106e","53e95c2c536d057f438646855f24e39f888dc415ca56ef8fae1ec1d5b5485883","a95f1ba9fe001c254c7405c949f88d2c8df2a335f95d8e9ccd14ee0054284ab9","1f3d731ec6a2963e054fe46cfe1eecea1b29f71fc4ee1bf9ddd1c9908637b48d","e125f1060f25e6fe336221493926a866bc8d6ac66c8a292bc658f987ec5c2587","dcd8de07b4735d845b06e546f4f4c6014388cceaf171495e8e7ec40551e167cf","a06788dcbb350c361b23aad1671f6818641850ab75050e7abc0ae42f6ae49090","0c07ec827d8a0b669851f65f0f8a59abb73fec2b50099c673848ef449a10feb6","4386f08376491cdc43b83e6dc3e29173263e0e353a41863de4bc35ca14be916d","6c898f2bb237aee867bc2f89a2d9201b4c336c10320d083371ecf148bb0ffd54","937cbc9ffa856e3e4811c23481bf5416112fd6c8e6f31bbd2525cfff22fb8905","f7913adfae3602c58650945fc516db14ee8ee0ff761fd153bc7ee60089985e0a","c7c21a3a3ddc7780bd13068e7b5a723346b4d3d8ddb705c1d1ab690037d4653a",{"version":"c5b508d2367e4e82085786d76e41d9b6269016d7705ace3094de5c2b67121307","signature":"cb0f63b77fa8c0695b36c2c78145c497702a9c63f9c75367e90d16172ba6294c"},{"version":"7298e780ce00bb3ed77cac89a326f113f456164e2b776b674de1c1e77ddc8971","signature":"bbc7df66d7d77b810c1f473978054f0bf685ad7a4f318ea71973b7fcc0370ef0"},"3488b6a8a63710bef00bfec939073f16fb5dff3202551b8295978844894751cd","68bdb410327adddbccfba6a338a867d1d0fa4e48386d98b7bdc861f92ebf3ddf","4b16679b0f7378842ff9f482df9037cd1f5e2e400c90ddd764f331cbe23dd1b4","94f91b3d112e13ae8da95d492faaac48b36b172bbeaad21be05d0396c1f277e4","1c0c9696e9dbe9f406437da313618a3e36de69bd10cec98a28bff2e074fd1ee7","3318269ec3c57ca3c420b9c7e4443580988018afd37e96c05efe2f5a6bb7c3e4","0a850b3b9d35c3a5ddb4dee5ed0c9d1de171d69ad4f5e179d8a27645fb42335f","f293b8edde762f4ec34b5bb6f7a99df838f0cf71670d9fe6553f309bb559ea30",{"version":"0d047e06dc2eb494b39127b857df786a9cf3b7ebb974cd493c7450c5bdada68d","signature":"63c7c3dd10f0de81bfab314bf16bc304b3997e7df95c31ebdde96a20dbeb54c0"},{"version":"c6b447bed376ceec13706436d5e09d04398199bb0bf1ab52280fe1f8b0308a48","signature":"6eb3bcdaf5b58cf3faff44d24c19b1ab2bde0c5969b16621eb65a9babdd1c06c"},{"version":"599dc2efe853c538bef864c92df2b005737f7dea763bff50e07365341732bf20","signature":"9d24871749089eb2d3d8dd21740e5c8c73f3f0d414a483fa1893c6a30877bff8"},"c5a68394960c2fe824c802e5e7d59dfab5ce5cbc5d95b1e4a5fab8032deaeb4c","6e77fb2250275d3945569ac61104a29927624b5a7ba0e905e7e1defd1f2ed151","280fa9495d2cf36da6566c652231d3807119adedc0f5cd70fe60b33c44c7ca03","31db44390050eec522abcf9268e697fc78d609e2b5e547c51533f885b9e3c9a8","ee3ed46dc8dccb018423839a1ee04b4bce7b0300d1debcaf52abbf97aaf75e87","31d01071b638f2a1dfd8558f540956f4edcaeff68eb69736a75232fbee05aa03","53d785402c344d04199b00b6dd00e9382cad52548ddc6c907f49157efa44cb00","95edbe862fbb62a384d2adec2b2278c5ece55d935d382da1386c4a63057b39a5",{"version":"ee2e65cab35f3fb56b5a7447dac6cf5d183b4657cf90d79812a3fa254fe76513","signature":"47e67da18b2557386142f3b1e10ea108a2ac4f346c62afd3e48b0cc2db390842"},{"version":"d174e7a74c4e930390824e3e8f725aa10c2464f2dd820226b75a3e9ad8a0796e","signature":"705f2bfb6ce918511afba46efaa21ec00be376eb3b93e92590e8abc600ea7a12"},{"version":"2d2b04369332ee16ce8043c9c64f7e604f8e950403923bd49d0ef2df49be01b9","signature":"7307cc3202ec80dab0b2f03639991855b5eea255c855fedfac89dc2dce081158"},{"version":"9166f864fae3fe49371b0b985d7a79da16f502ba096e9603125f05810f113db6","signature":"d7621815e1a7af3d91ba7b245bc9d73cedc87402230f72584f9c188a03c8ac7d"},{"version":"bc60b45b07248d7ae3355b6b4bb0140615562eeb91299928a5cfde05e01b15a3","signature":"90bcc143cac35ce0aa82e027c7c647ec858e5fe672ea94a1934068cdf56a460c"},{"version":"8c37cadabe8078e12e93f169f02d392630748607a437ca6ee2ee454d0a9084e1","signature":"13c2c6eb74c6933fcf891298fcfe68ca2856bac605c8df6324c55ca3c3347a8e"},{"version":"45a2002965f0a59e72bd458004254a45fef7a5820c32c18a580b9892075765e2","signature":"979dd50d73e751a2718a4763a253029968188d4e62b5e3c3a3e7cc38bc9a5772"},{"version":"12cd98a50d60bc13100255dac934e663f6a22d0856c393f67190483c441ca39b","signature":"416d28699883a1f1ec426830b112a1f5a432d172a10dd6f802ae5dd14e5030d0"},{"version":"c9c04cfcc2526bb9060a1e75c72358a68354174b61ac0e626a6667915d8bb45c","signature":"b3cafeef6748bf883000e5aef70bfe260785d34b0d11a357a77344e498760d15"},{"version":"7b6a11b06b1e6c96b42a17740f1b784a20a6c79136a0857c6c4ee2e436472283","signature":"1960f4420b2efc38aa2a064e967b0897622b27637eae0e83d63c874fe32cf45f"},{"version":"133439293f86c54a33359663b6996a8dd285cd21958b1d98709b18d4c641aac6","signature":"be3237bfe9133c007afc396ce38974ee72b1b05f25daa1da956faf9f6736a882"},"7983487d0fbefb9b6ccc94390e8c826328d87e21cd4a62ea5b4c6b8f99f32550","2c8e55457aaf4902941dfdba4061935922e8ee6e120539c9801cd7b400fae050","5f02abbb1b17e3d1e68c5eea14adf4705696e6255e2982b010c0dc2a5417b606","670a76db379b27c8ff42f1ba927828a22862e2ab0b0908e38b671f0e912cc5ed","9e0cf651e8e2c5b9bebbabdff2f7c6f8cedd91b1d9afcc0a854cdff053a88f1b","069bebfee29864e3955378107e243508b163e77ab10de6a5ee03ae06939f0bb9","dbe8bd931d343b9804d5398afb6dd6d6728975b2e23a3314bc4911f81c5e5a33","2174e20517788d2a1379fc0aaacd87899a70f9e0197b4295edabfe75c4db03d8","09df3b4f1c937f02e7fee2836d4c4d7a63e66db70fd4d4e97126f4542cc21d9d","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"4d719cfab49ae4045d15cb6bed0f38ad3d7d6eb7f277d2603502a0f862ca3182","affectsGlobalScope":true},"cce1f5f86974c1e916ec4a8cab6eec9aa8e31e8148845bf07fbaa8e1d97b1a2c",{"version":"5a856afb15f9dc9983faa391dde989826995a33983c1cccb173e9606688e9709","affectsGlobalScope":true},"546ab07e19116d935ad982e76a223275b53bff7771dab94f433b7ab04652936e","7b43160a49cf2c6082da0465876c4a0b164e160b81187caeb0a6ca7a281e85ba",{"version":"aefb5a4a209f756b580eb53ea771cca8aad411603926f307a5e5b8ec6b16dcf6","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","f5a8b7ec4b798c88679194a8ebc25dcb6f5368e6e5811fcda9fe12b0d445b8db","b86e1a45b29437f3a99bad4147cb9fe2357617e8008c0484568e5bb5138d6e13","b5b719a47968cd61a6f83f437236bb6fe22a39223b6620da81ef89f5d7a78fb7","42c431e7965b641106b5e25ab3283aa4865ca7bb9909610a2abfa6226e4348be","0b7e732af0a9599be28c091d6bd1cb22c856ec0d415d4749c087c3881ca07a56","b7fe70be794e13d1b7940e318b8770cd1fb3eced7707805318a2e3aaac2c3e9e",{"version":"2c71199d1fc83bf17636ad5bf63a945633406b7b94887612bba4ef027c662b3e","affectsGlobalScope":true},{"version":"8d6138a264ddc6f94f16e99d4e117a2d6eb31b217891cf091b6437a2f114d561","affectsGlobalScope":true},"3b4c85eea12187de9929a76792b98406e8778ce575caca8c574f06da82622c54","f788131a39c81e0c9b9e463645dd7132b5bc1beb609b0e31e5c1ceaea378b4df","0c236069ce7bded4f6774946e928e4b3601894d294054af47a553f7abcafe2c1","21894466693f64957b9bd4c80fa3ec7fdfd4efa9d1861e070aca23f10220c9b2","396a8939b5e177542bdf9b5262b4eee85d29851b2d57681fa9d7eae30e225830","21773f5ac69ddf5a05636ba1f50b5239f4f2d27e4420db147fc2f76a5ae598ac",{"version":"6ec93c745c5e3e25e278fa35451bf18ef857f733de7e57c15e7920ac463baa2a","affectsGlobalScope":true},"a5fe4cc622c3bf8e09ababde5f4096ceac53163eefcd95e9cd53f062ff9bb67a","30c2ec6abf6aaa60eb4f32fb1235531506b7961c6d1bdc7430711aec8fd85295","0f05c06ff6196958d76b865ae17245b52d8fe01773626ac3c43214a2458ea7b7",{"version":"308b84e1943ef30015469770e931eb21b795348893b2a6562ca54ea8f0b3c41c","affectsGlobalScope":true},{"version":"d48009cbe8a30a504031cc82e1286f78fed33b7a42abf7602c23b5547b382563","affectsGlobalScope":true},"7aaeb5e62f90e1b2be0fc4844df78cdb1be15c22b427bc6c39d57308785b8f10","3ba30205a029ebc0c91d7b1ab4da73f6277d730ca1fc6692d5a9144c6772c76b","d8dba11dc34d50cb4202de5effa9a1b296d7a2f4a029eec871f894bddfb6430d","8b71dd18e7e63b6f991b511a201fad7c3bf8d1e0dd98acb5e3d844f335a73634","01d8e1419c84affad359cc240b2b551fb9812b450b4d3d456b64cda8102d4f60","458b216959c231df388a5de9dcbcafd4b4ca563bc3784d706d0455467d7d4942","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","f8c87b19eae111f8720b0345ab301af8d81add39621b63614dfc2d15fd6f140a","831c22d257717bf2cbb03afe9c4bcffc5ccb8a2074344d4238bf16d3a857bb12",{"version":"24ba151e213906027e2b1f5223d33575a3612b0234a0e2b56119520bbe0e594b","affectsGlobalScope":true},{"version":"cbf046714f3a3ba2544957e1973ac94aa819fa8aa668846fa8de47eb1c41b0b2","affectsGlobalScope":true},"aa34c3aa493d1c699601027c441b9664547c3024f9dbab1639df7701d63d18fa","eae74e3d50820f37c72c0679fed959cd1e63c98f6a146a55b8c4361582fa6a52","7c651f8dce91a927ab62925e73f190763574c46098f2b11fb8ddc1b147a6709a","7440ab60f4cb031812940cc38166b8bb6fbf2540cfe599f87c41c08011f0c1df",{"version":"aed89e3c18f4c659ee8153a76560dffda23e2d801e1e60d7a67abd84bc555f8d","affectsGlobalScope":true},{"version":"0ed13c80faeb2b7160bffb4926ff299c468e67a37a645b3ae0917ba0db633c1b","affectsGlobalScope":true},"e393915d3dc385e69c0e2390739c87b2d296a610662eb0b1cb85224e55992250","2f940651c2f30e6b29f8743fae3f40b7b1c03615184f837132b56ea75edad08b","5749c327c3f789f658072f8340786966c8b05ea124a56c1d8d60e04649495a4d",{"version":"c9d62b2a51b2ff166314d8be84f6881a7fcbccd37612442cf1c70d27d5352f50","affectsGlobalScope":true},"e7dbf5716d76846c7522e910896c5747b6df1abd538fee8f5291bdc843461795",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"b510d0a18e3db42ac9765d26711083ec1e8b4e21caaca6dc4d25ae6e8623f447","f96f3c445afc7d65d4790386e37c5b57f095f285cc89b8315b209fe0c81837c1","efdced704bd09db6984a2a26e3573bc43cdc2379bdef3bcff6cff77efe8ba82b","f6e4d465828539e051c5c1a40ee835fd954ce5cfc45de8e31ac1561bad5d947b","afe73051ff6a03a9565cbd8ebb0e956ee3df5e913ad5c1ded64218aabfa3dcb5","d7dbe0ad36bdca8a6ecf143422a48e72cc8927bab7b23a1a2485c2f78a7022c6","035a5df183489c2e22f3cf59fc1ed2b043d27f357eecc0eb8d8e840059d44245","a4809f4d92317535e6b22b01019437030077a76fec1d93b9881c9ed4738fcc54","5f53fa0bd22096d2a78533f94e02c899143b8f0f9891a46965294ee8b91a9434","cdcc132f207d097d7d3aa75615ab9a2e71d6a478162dde8b67f88ea19f3e54de","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","d96cc6598148bf1a98fb2e8dcf01c63a4b3558bdaec6ef35e087fd0562eb40ec",{"version":"b2fdcc3836d425833af10e536ae5491c34e218bc71870f12a401720f874b6ce4","affectsGlobalScope":true},"686e548ae30250d62532c8cacb43fccc922b693408371bd3503563c4a0f28eed","f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","0e60e0cbf2283adfd5a15430ae548cd2f662d581b5da6ecd98220203e7067c70","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","fbca5ffaebf282ec3cdac47b0d1d4a138a8b0bb32105251a38acb235087d3318","f4694959db84d3792ca4d4e04c0bc157c4d28627cb0406c9236351f261a3f5e0","22293bd6fa12747929f8dfca3ec1684a3fe08638aa18023dd286ab337e88a592",{"version":"4698841dc5a91fe716dd41ec7136867bbde9a274ce21031e5ef6ce2d8a552ceb","affectsGlobalScope":true},"e91ad231af87f864b3f07cd0e39b1cf6c133988156f087c1c3ccb0a5491c9115","03c258e060b7da220973f84b89615e4e9850e9b5d30b3a8e4840b3e3268ae8eb","319c37263037e8d9481a3dc7eadf6afa6a5f5c002189ebe28776ac1a62a38e15","cf3d384d082b933d987c4e2fe7bfb8710adfd9dc8155190056ed6695a25a559e","9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","c2576a4083232b0e2d9bd06875dd43d371dee2e090325a9eac0133fd5650c1cb","4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","f40ac11d8859092d20f953aae14ba967282c3bb056431a37fced1866ec7a2681","cc11e9e79d4746cc59e0e17473a59d6f104692fd0eeea1bdb2e206eabed83b03","b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","7d8ddf0f021c53099e34ee831a06c394d50371816caa98684812f089b4c6b3d4","7abf54763b6709a2b72ecd1247c3cfe96f8c44fe6e7ce3897951ee8f4c394640","85976d1088db28912f61f76fd68103dd3625480f5ad5ba4c98519a81693ef717","ab82804a14454734010dcdcd43f564ff7b0389bee4c5692eec76ff5b30d4cf66","12fe557e4c2d5ce9e11362f69a8d7c05d0588de4ae415afe8c5106da5c2772aa","f2f23fe34b735887db1d5597714ae37a6ffae530cafd6908c9d79d485667c956","5bba0e6cd8375fd37047e99a080d1bd9a808c95ecb7f3043e3adc125196f6607","bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","26a770cec4bd2e7dbba95c6e536390fffe83c6268b78974a93727903b515c4e7"],"root":[93,94,[103,105],[114,124]],"options":{"allowJs":true,"declaration":true,"esModuleInterop":true,"experimentalDecorators":true,"module":1,"noImplicitOverride":true,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"target":99},"fileIdsList":[[87,93,212],[87,102,212],[212],[92,107,114,115,116,117,212],[113,212],[87,92,107,108,113,114,212],[107,114,115,116,212],[81,212],[81,87,107,113,114,115,212],[87,94,103,104,105,116,117,119,120,121,212],[118,122,212],[92,212],[87,212],[88,89,90,91,200,212],[107,212],[108,212],[107,108,109,212],[108,109,110,111,112,212],[125,212],[212,230],[125,126,127,128,129,212],[125,127,212],[200,212,219],[185,212,219],[183,212,219],[212,225],[212,226],[212,232,235],[133,212],[169,212],[170,175,203,212],[171,182,183,190,200,211,212],[171,172,182,190,212],[173,212],[174,175,183,191,212],[175,200,208,212],[176,178,182,190,212],[177,212],[178,179,212],[182,212],[180,182,212],[169,182,212],[182,183,184,200,211,212],[182,183,184,197,200,203,212],[167,212,216],[178,182,185,190,200,211,212],[182,183,185,186,190,200,208,211,212],[185,187,200,208,211,212],[133,134,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218],[182,188,212],[189,211,212,216],[178,182,190,200,212],[191,212],[192,212],[169,193,212],[194,210,212,216],[195,212],[196,212],[182,197,198,212],[197,199,212,214],[170,182,200,201,202,203,212],[170,200,202,212],[200,201,212],[203,212],[204,212],[169,200,212],[182,206,207,212],[206,207,212],[175,190,200,208,212],[209,212],[190,210,212],[170,185,196,211,212],[175,212],[200,212,213],[189,212,214],[212,215],[170,175,182,184,193,200,211,212,214,216],[200,212,217],[132,183,185,187,190,200,211,212,219,246,247],[185,200,212,219],[212,249,288],[212,249,273,288],[212,288],[212,249],[212,249,274,288],[212,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287],[212,274,288],[182,190,200,212,219,289],[212,295],[95,212],[95,96,98,100,212],[100,101,212],[95,97,98,99,182,200,212],[212,228,234],[212,229,233],[212,232],[212,231],[144,148,211,212],[144,200,211,212],[139,212],[141,144,208,211,212],[190,208,212],[212,219],[139,212,219],[141,144,190,211,212],[136,137,140,143,170,182,200,211,212],[136,142,212],[140,144,170,203,211,212,219],[170,212,219],[160,170,212,219],[138,139,212,219],[144,212],[138,139,140,141,142,143,144,145,146,148,149,150,151,152,153,154,155,156,157,158,159,161,162,163,164,165,166,212],[144,151,152,212],[142,144,152,153,212],[143,212],[136,139,144,212],[144,148,152,153,212],[148,212],[142,144,147,211,212],[136,141,142,144,148,151,212],[170,200,212],[139,144,160,170,212,216,219],[81,87,212],[106,212],[73,76,212],[70,71,73,74,212],[70,73,82,212],[69,75,76,77,81,87,212],[69,70,71,72,73,74,75,76,77,82,83,84,85,86,212],[73,212],[70,85,212],[75,212],[72,212],[70,71,212],[78,79,87,212],[80,212],[78,80,212],[107,114,115],[113],[87,107,114],[81],[87,107,114,115]],"referencedMap":[[94,1],[103,2],[104,3],[105,1],[118,4],[114,5],[117,6],[124,7],[115,8],[116,9],[119,1],[122,10],[123,11],[120,1],[93,12],[121,13],[92,14],[91,3],[90,3],[89,3],[88,3],[108,15],[109,16],[110,17],[113,18],[112,3],[111,16],[127,19],[125,3],[228,3],[231,20],[230,3],[130,21],[126,19],[128,22],[129,19],[131,3],[132,3],[220,23],[221,24],[222,23],[223,25],[224,3],[225,3],[226,26],[227,27],[236,28],[237,3],[238,3],[239,3],[240,3],[241,3],[242,3],[243,3],[133,29],[134,29],[169,30],[170,31],[171,32],[172,33],[173,34],[174,35],[175,36],[176,37],[177,38],[178,39],[179,39],[181,40],[180,41],[182,42],[183,43],[184,44],[168,45],[218,3],[185,46],[186,47],[187,48],[219,49],[188,50],[189,51],[190,52],[191,53],[192,54],[193,55],[194,56],[195,57],[196,58],[197,59],[198,59],[199,60],[200,61],[202,62],[201,63],[203,64],[204,65],[205,66],[206,67],[207,68],[208,69],[209,70],[210,71],[211,72],[212,73],[213,74],[214,75],[215,76],[216,77],[217,78],[244,3],[245,3],[248,79],[246,80],[273,81],[274,82],[249,83],[252,83],[271,81],[272,81],[262,81],[261,84],[259,81],[254,81],[267,81],[265,81],[269,81],[253,81],[266,81],[270,81],[255,81],[256,81],[268,81],[250,81],[257,81],[258,81],[260,81],[264,81],[275,85],[263,81],[251,81],[288,86],[287,3],[282,85],[284,87],[283,85],[276,85],[277,85],[279,85],[281,85],[285,87],[286,87],[278,87],[280,87],[289,23],[290,88],[291,3],[247,3],[292,3],[293,3],[294,3],[295,3],[296,89],[135,3],[99,3],[96,90],[101,91],[95,3],[97,3],[102,92],[100,93],[98,3],[235,94],[234,95],[229,3],[233,96],[232,97],[66,3],[67,3],[12,3],[13,3],[17,3],[16,3],[2,3],[18,3],[19,3],[20,3],[21,3],[22,3],[23,3],[24,3],[25,3],[3,3],[4,3],[26,3],[30,3],[27,3],[28,3],[29,3],[31,3],[32,3],[33,3],[5,3],[34,3],[35,3],[36,3],[37,3],[6,3],[41,3],[38,3],[39,3],[40,3],[42,3],[7,3],[43,3],[48,3],[49,3],[44,3],[45,3],[46,3],[47,3],[8,3],[53,3],[50,3],[51,3],[52,3],[54,3],[9,3],[55,3],[56,3],[57,3],[60,3],[58,3],[59,3],[61,3],[62,3],[10,3],[1,3],[11,3],[65,3],[64,3],[68,3],[63,3],[15,3],[14,3],[151,98],[158,99],[150,98],[165,100],[142,101],[141,102],[164,103],[159,104],[162,105],[144,106],[143,107],[139,108],[138,109],[161,110],[140,111],[145,112],[146,3],[149,112],[136,3],[167,113],[166,112],[153,114],[154,115],[156,116],[152,117],[155,118],[160,103],[147,119],[148,120],[157,121],[137,122],[163,123],[106,124],[107,125],[69,13],[83,126],[75,127],[70,3],[76,128],[72,3],[82,129],[87,130],[71,3],[85,3],[74,131],[86,132],[84,133],[73,134],[77,135],[78,13],[80,136],[79,137],[81,138]],"exportedModulesMap":[[118,139],[114,140],[117,141],[124,139],[115,142],[116,143],[92,14],[91,3],[90,3],[89,3],[88,3],[108,15],[109,16],[110,17],[113,18],[112,3],[111,16],[127,19],[125,3],[228,3],[231,20],[230,3],[130,21],[126,19],[128,22],[129,19],[131,3],[132,3],[220,23],[221,24],[222,23],[223,25],[224,3],[225,3],[226,26],[227,27],[236,28],[237,3],[238,3],[239,3],[240,3],[241,3],[242,3],[243,3],[133,29],[134,29],[169,30],[170,31],[171,32],[172,33],[173,34],[174,35],[175,36],[176,37],[177,38],[178,39],[179,39],[181,40],[180,41],[182,42],[183,43],[184,44],[168,45],[218,3],[185,46],[186,47],[187,48],[219,49],[188,50],[189,51],[190,52],[191,53],[192,54],[193,55],[194,56],[195,57],[196,58],[197,59],[198,59],[199,60],[200,61],[202,62],[201,63],[203,64],[204,65],[205,66],[206,67],[207,68],[208,69],[209,70],[210,71],[211,72],[212,73],[213,74],[214,75],[215,76],[216,77],[217,78],[244,3],[245,3],[248,79],[246,80],[273,81],[274,82],[249,83],[252,83],[271,81],[272,81],[262,81],[261,84],[259,81],[254,81],[267,81],[265,81],[269,81],[253,81],[266,81],[270,81],[255,81],[256,81],[268,81],[250,81],[257,81],[258,81],[260,81],[264,81],[275,85],[263,81],[251,81],[288,86],[287,3],[282,85],[284,87],[283,85],[276,85],[277,85],[279,85],[281,85],[285,87],[286,87],[278,87],[280,87],[289,23],[290,88],[291,3],[247,3],[292,3],[293,3],[294,3],[295,3],[296,89],[135,3],[99,3],[96,90],[101,91],[95,3],[97,3],[102,92],[100,93],[98,3],[235,94],[234,95],[229,3],[233,96],[232,97],[66,3],[67,3],[12,3],[13,3],[17,3],[16,3],[2,3],[18,3],[19,3],[20,3],[21,3],[22,3],[23,3],[24,3],[25,3],[3,3],[4,3],[26,3],[30,3],[27,3],[28,3],[29,3],[31,3],[32,3],[33,3],[5,3],[34,3],[35,3],[36,3],[37,3],[6,3],[41,3],[38,3],[39,3],[40,3],[42,3],[7,3],[43,3],[48,3],[49,3],[44,3],[45,3],[46,3],[47,3],[8,3],[53,3],[50,3],[51,3],[52,3],[54,3],[9,3],[55,3],[56,3],[57,3],[60,3],[58,3],[59,3],[61,3],[62,3],[10,3],[1,3],[11,3],[65,3],[64,3],[68,3],[63,3],[15,3],[14,3],[151,98],[158,99],[150,98],[165,100],[142,101],[141,102],[164,103],[159,104],[162,105],[144,106],[143,107],[139,108],[138,109],[161,110],[140,111],[145,112],[146,3],[149,112],[136,3],[167,113],[166,112],[153,114],[154,115],[156,116],[152,117],[155,118],[160,103],[147,119],[148,120],[157,121],[137,122],[163,123],[106,124],[107,125],[69,13],[83,126],[75,127],[70,3],[76,128],[72,3],[82,129],[87,130],[71,3],[85,3],[74,131],[86,132],[84,133],[73,134],[77,135],[78,13],[80,136],[79,137],[81,138]],"semanticDiagnosticsPerFile":[94,103,104,105,118,114,117,124,115,116,119,122,123,120,93,121,92,91,90,89,88,108,109,110,113,112,111,127,125,228,231,230,130,126,128,129,131,132,220,221,222,223,224,225,226,227,236,237,238,239,240,241,242,243,133,134,169,170,171,172,173,174,175,176,177,178,179,181,180,182,183,184,168,218,185,186,187,219,188,189,190,191,192,193,194,195,196,197,198,199,200,202,201,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,244,245,248,246,273,274,249,252,271,272,262,261,259,254,267,265,269,253,266,270,255,256,268,250,257,258,260,264,275,263,251,288,287,282,284,283,276,277,279,281,285,286,278,280,289,290,291,247,292,293,294,295,296,135,99,96,101,95,97,102,100,98,235,234,229,233,232,66,67,12,13,17,16,2,18,19,20,21,22,23,24,25,3,4,26,30,27,28,29,31,32,33,5,34,35,36,37,6,41,38,39,40,42,7,43,48,49,44,45,46,47,8,53,50,51,52,54,9,55,56,57,60,58,59,61,62,10,1,11,65,64,68,63,15,14,151,158,150,165,142,141,164,159,162,144,143,139,138,161,140,145,146,149,136,167,166,153,154,156,152,155,160,147,148,157,137,163,106,107,69,83,75,70,76,72,82,87,71,85,74,86,84,73,77,78,80,79,81]},"version":"5.3.3"}