@toa.io/extensions.origins 0.24.0-alpha.4 → 0.24.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/package.json +6 -6
  2. package/transpiled/Factory.d.ts +17 -0
  3. package/transpiled/Factory.js +65 -0
  4. package/transpiled/Factory.js.map +1 -0
  5. package/transpiled/annotation.d.ts +10 -0
  6. package/transpiled/annotation.js +91 -0
  7. package/transpiled/annotation.js.map +1 -0
  8. package/transpiled/constants.d.ts +1 -0
  9. package/transpiled/constants.js +3 -0
  10. package/transpiled/constants.js.map +1 -0
  11. package/transpiled/env.d.ts +5 -0
  12. package/transpiled/env.js +40 -0
  13. package/transpiled/env.js.map +1 -0
  14. package/transpiled/extension.d.ts +10 -0
  15. package/transpiled/extension.js +49 -0
  16. package/transpiled/extension.js.map +1 -0
  17. package/transpiled/index.d.ts +2 -0
  18. package/transpiled/index.js +9 -0
  19. package/transpiled/index.js.map +1 -0
  20. package/transpiled/manifest.d.ts +2 -0
  21. package/transpiled/manifest.js +36 -0
  22. package/transpiled/manifest.js.map +1 -0
  23. package/transpiled/protocols/amqp/aspect.d.ts +11 -0
  24. package/transpiled/protocols/amqp/aspect.js +53 -0
  25. package/transpiled/protocols/amqp/aspect.js.map +1 -0
  26. package/transpiled/protocols/amqp/deployment.d.ts +5 -0
  27. package/transpiled/protocols/amqp/deployment.js +55 -0
  28. package/transpiled/protocols/amqp/deployment.js.map +1 -0
  29. package/transpiled/protocols/amqp/id.d.ts +1 -0
  30. package/transpiled/protocols/amqp/id.js +3 -0
  31. package/transpiled/protocols/amqp/id.js.map +1 -0
  32. package/transpiled/protocols/amqp/index.d.ts +5 -0
  33. package/transpiled/protocols/amqp/index.js +10 -0
  34. package/transpiled/protocols/amqp/index.js.map +1 -0
  35. package/transpiled/protocols/amqp/protocols.d.ts +2 -0
  36. package/transpiled/protocols/amqp/protocols.js +3 -0
  37. package/transpiled/protocols/amqp/protocols.js.map +1 -0
  38. package/transpiled/protocols/http/.aspect/permissions.d.ts +7 -0
  39. package/transpiled/protocols/http/.aspect/permissions.js +52 -0
  40. package/transpiled/protocols/http/.aspect/permissions.js.map +1 -0
  41. package/transpiled/protocols/http/aspect.d.ts +11 -0
  42. package/transpiled/protocols/http/aspect.js +87 -0
  43. package/transpiled/protocols/http/aspect.js.map +1 -0
  44. package/transpiled/protocols/http/id.d.ts +1 -0
  45. package/transpiled/protocols/http/id.js +3 -0
  46. package/transpiled/protocols/http/id.js.map +1 -0
  47. package/transpiled/protocols/http/index.d.ts +4 -0
  48. package/transpiled/protocols/http/index.js +8 -0
  49. package/transpiled/protocols/http/index.js.map +1 -0
  50. package/transpiled/protocols/http/protocols.d.ts +2 -0
  51. package/transpiled/protocols/http/protocols.js +3 -0
  52. package/transpiled/protocols/http/protocols.js.map +1 -0
  53. package/transpiled/protocols/index.d.ts +9 -0
  54. package/transpiled/protocols/index.js +10 -0
  55. package/transpiled/protocols/index.js.map +1 -0
  56. package/transpiled/tsconfig.tsbuildinfo +1 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toa.io/extensions.origins",
3
- "version": "0.24.0-alpha.4",
3
+ "version": "0.24.0-alpha.6",
4
4
  "description": "Toa Origins",
5
5
  "author": "temich <tema.gurtovoy@gmail.com>",
6
6
  "homepage": "https://github.com/toa-io/toa#readme",
@@ -17,10 +17,10 @@
17
17
  "main": "transpiled/index.js",
18
18
  "types": "transpiled/index.d.ts",
19
19
  "dependencies": {
20
- "@toa.io/core": "0.24.0-alpha.4",
21
- "@toa.io/generic": "0.24.0-alpha.4",
22
- "@toa.io/pointer": "0.24.0-alpha.4",
23
- "@toa.io/schemas": "0.24.0-alpha.4",
20
+ "@toa.io/core": "0.24.0-alpha.6",
21
+ "@toa.io/generic": "0.24.0-alpha.6",
22
+ "@toa.io/pointer": "0.24.0-alpha.6",
23
+ "@toa.io/schemas": "0.24.0-alpha.6",
24
24
  "comq": "0.10.1",
25
25
  "msgpackr": "1.9.5"
26
26
  },
@@ -31,5 +31,5 @@
31
31
  "preset": "ts-jest",
32
32
  "testEnvironment": "node"
33
33
  },
34
- "gitHead": "41f549ae652b625d65f4ba12ea1025f0214fdb0f"
34
+ "gitHead": "2918121971720c55091e07ccb818ecdbd2de00d1"
35
35
  }
@@ -0,0 +1,17 @@
1
+ import { type URIMap } from '@toa.io/pointer';
2
+ import type { Locator, extensions } from '@toa.io/core';
3
+ import type { Manifest } from './manifest';
4
+ export declare class Factory implements extensions.Factory {
5
+ aspect(locator: Locator, manifest: Manifest): extensions.Aspect[];
6
+ private createAspect;
7
+ private resolver;
8
+ private getURIs;
9
+ private filterOrigins;
10
+ private readOrigin;
11
+ private getProperties;
12
+ }
13
+ export interface Configuration {
14
+ origins: URIMap;
15
+ properties: Record<string, boolean>;
16
+ }
17
+ export type Resolver = () => Promise<Configuration>;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Factory = void 0;
4
+ const msgpackr_1 = require("msgpackr");
5
+ const pointer_1 = require("@toa.io/pointer");
6
+ const generic_1 = require("@toa.io/generic");
7
+ const protocols_1 = require("./protocols");
8
+ const extension_1 = require("./extension");
9
+ class Factory {
10
+ aspect(locator, manifest) {
11
+ return protocols_1.protocols.map((protocol) => this.createAspect(locator, manifest, protocol));
12
+ }
13
+ createAspect(locator, manifest, protocol) {
14
+ const resolver = this.resolver(locator, manifest, protocol);
15
+ return protocol.create(resolver);
16
+ }
17
+ resolver(locator, manifest, protocol) {
18
+ return (0, generic_1.memo)(async () => {
19
+ const uris = await this.getURIs(locator, manifest);
20
+ const allProperties = this.getProperties(locator);
21
+ const origins = this.filterOrigins(uris, protocol.protocols);
22
+ const properties = allProperties['.' + protocol.id] ?? {};
23
+ return { origins, properties };
24
+ });
25
+ }
26
+ async getURIs(locator, manifest) {
27
+ const map = {};
28
+ if (manifest === null)
29
+ return map;
30
+ for (const [name, value] of Object.entries(manifest))
31
+ try {
32
+ map[name] = await this.readOrigin(locator, name);
33
+ }
34
+ catch {
35
+ // eslint-disable-next-line max-depth
36
+ if (value === null)
37
+ throw new Error(`Origin value ${name} is not defined`);
38
+ map[name] = [value];
39
+ }
40
+ return map;
41
+ }
42
+ filterOrigins(uris, protocols) {
43
+ const filtered = {};
44
+ for (const [name, references] of Object.entries(uris)) {
45
+ const url = new URL(references[0]);
46
+ if (protocols.includes(url.protocol))
47
+ filtered[name] = references;
48
+ }
49
+ return filtered;
50
+ }
51
+ async readOrigin(locator, name) {
52
+ const id = extension_1.ID_PREFIX + locator.label;
53
+ return await (0, pointer_1.resolve)(id, name);
54
+ }
55
+ getProperties(locator) {
56
+ const variable = extension_1.ENV_PREFIX + locator.uppercase + extension_1.PROPERTIES_SUFFIX;
57
+ const value = process.env[variable];
58
+ if (value === undefined)
59
+ return {};
60
+ const buffer = Buffer.from(value, 'base64');
61
+ return (0, msgpackr_1.decode)(buffer);
62
+ }
63
+ }
64
+ exports.Factory = Factory;
65
+ //# sourceMappingURL=Factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Factory.js","sourceRoot":"","sources":["../source/Factory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { Instance } from './extension';
2
+ export declare function normalize(instances: Instance[], annotation: Annotation): void;
3
+ export declare function split(component: Component): {
4
+ origins: Origins;
5
+ properties: Properties;
6
+ };
7
+ export type Component = Origins | Properties;
8
+ export type Annotation = Record<string, Component>;
9
+ export type Properties = Partial<Record<'.http', Record<string, boolean>>>;
10
+ export type Origins = Record<string, string | string[]>;
@@ -0,0 +1,91 @@
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.split = exports.normalize = void 0;
27
+ const node_path_1 = require("node:path");
28
+ const schemas = __importStar(require("@toa.io/schemas"));
29
+ const protocols_1 = require("./protocols");
30
+ function normalize(instances, annotation) {
31
+ schema.validate(annotation);
32
+ mergeDefaults(annotation, instances);
33
+ checkProtocols(annotation);
34
+ }
35
+ exports.normalize = normalize;
36
+ function split(component) {
37
+ const origins = {};
38
+ const properties = {};
39
+ for (const [key, value] of Object.entries(component))
40
+ if (key[0] === '.')
41
+ properties[key] = value;
42
+ else
43
+ origins[key] = value;
44
+ return { origins, properties };
45
+ }
46
+ exports.split = split;
47
+ function mergeDefaults(annotation, instances) {
48
+ for (const instance of instances) {
49
+ const component = annotation[instance.locator.id] ?? {};
50
+ annotation[instance.locator.id] = mergeInstance(component, instance);
51
+ }
52
+ }
53
+ function mergeInstance(origins, instance) {
54
+ if (instance.manifest === null)
55
+ return origins;
56
+ for (const [origin, value] of Object.entries(instance.manifest))
57
+ if (origins[origin] === undefined)
58
+ if (value === null)
59
+ throw new Error(`Origin '${origin}' is not defined for '${instance.locator.id}'`);
60
+ else
61
+ origins[origin] = value;
62
+ return origins;
63
+ }
64
+ function checkProtocols(annotation) {
65
+ for (const component of Object.values(annotation)) {
66
+ const { origins } = split(component);
67
+ const urlSets = Object.values(origins);
68
+ for (const urls of urlSets)
69
+ checkURLs(Array.isArray(urls) ? urls : [urls]);
70
+ }
71
+ }
72
+ function checkURLs(urls) {
73
+ let id = null;
74
+ for (const url of urls) {
75
+ const protocol = resolveProtocol(url);
76
+ if (id === null)
77
+ id = protocol.id;
78
+ else if (id !== protocol.id)
79
+ throw new Error(`Origin has inconsistent protocols: ${id}, ${protocol.id}`);
80
+ }
81
+ }
82
+ function resolveProtocol(reference) {
83
+ const url = new URL(reference);
84
+ for (const protocol of protocols_1.protocols)
85
+ if (protocol.protocols.includes(url.protocol))
86
+ return protocol;
87
+ throw new Error(`Protocol '${url.protocol}' is not supported.`);
88
+ }
89
+ const path = (0, node_path_1.resolve)(__dirname, '../schemas/annotation.cos.yaml');
90
+ const schema = schemas.schema(path);
91
+ //# sourceMappingURL=annotation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotation.js","sourceRoot":"","sources":["../source/annotation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export const PREFIX: "TOA_ORIGINS_";
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ exports.PREFIX = 'TOA_ORIGINS_';
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,cAAc,CAAA"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @param {toa.core.Locator} locator
3
+ * @param {toa.origins.Manifest} manifest
4
+ */
5
+ export function apply(locator: toa.core.Locator, manifest: toa.origins.Manifest): void;
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+ const { PREFIX } = require('./constants');
3
+ const { overwrite, remap, letters: { up } } = require('@toa.io/generic');
4
+ /**
5
+ * @param {toa.core.Locator} locator
6
+ * @param {toa.origins.Manifest} manifest
7
+ */
8
+ function apply(locator, manifest) {
9
+ const variable = PREFIX + locator.uppercase;
10
+ const envValue = readEnv(variable);
11
+ overwrite(manifest, envValue);
12
+ addCredentials(manifest, variable);
13
+ }
14
+ function readEnv(variable) {
15
+ if (!(variable in process.env))
16
+ return;
17
+ const base64 = process.env[variable];
18
+ const json = atob(base64);
19
+ return JSON.parse(json);
20
+ }
21
+ /**
22
+ * @param {toa.origins.Manifest} manifest
23
+ * @param {string} variable
24
+ */
25
+ function addCredentials(manifest, variable) {
26
+ const prefix = variable + '_';
27
+ remap(manifest, (reference, origin) => {
28
+ const originPrefix = prefix + up(origin);
29
+ const username = process.env[originPrefix + '_USERNAME'];
30
+ const password = process.env[originPrefix + '_PASSWORD'];
31
+ if (username === undefined && password === undefined)
32
+ return;
33
+ const url = new URL(reference);
34
+ url.username = username;
35
+ url.password = password;
36
+ manifest[origin] = url.href;
37
+ });
38
+ }
39
+ exports.apply = apply;
40
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../source/env.js"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AACzC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;AAExE;;;GAGG;AACH,SAAS,KAAK,CAAE,OAAO,EAAE,QAAQ;IAC/B,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC,SAAS,CAAA;IAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAElC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC7B,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;AACpC,CAAC;AAED,SAAS,OAAO,CAAE,QAAQ;IACxB,IAAI,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC;QAAE,OAAM;IAEtC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;IAEzB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAE,QAAQ,EAAE,QAAQ;IACzC,MAAM,MAAM,GAAG,QAAQ,GAAG,GAAG,CAAA;IAE7B,KAAK,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE;QACpC,MAAM,YAAY,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,CAAA;QACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,WAAW,CAAC,CAAA;QACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,WAAW,CAAC,CAAA;QAExD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAM;QAE5D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;QAE9B,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACvB,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAEvB,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAA;IAC7B,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { type Annotation } from './annotation';
2
+ import { type Manifest } from './manifest';
3
+ import type { Dependency } from '@toa.io/operations';
4
+ import type { context } from '@toa.io/norm';
5
+ export declare function deployment(instances: Instance[], annotation?: Annotation): Dependency;
6
+ export declare function manifest(manifest: Manifest): Manifest;
7
+ export declare const ID_PREFIX = "origins-";
8
+ export declare const ENV_PREFIX = "TOA_ORIGINS_";
9
+ export declare const PROPERTIES_SUFFIX = "__PROPERTIES";
10
+ export type Instance = context.Dependency<Manifest>;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PROPERTIES_SUFFIX = exports.ENV_PREFIX = exports.ID_PREFIX = exports.manifest = exports.deployment = void 0;
4
+ const msgpackr_1 = require("msgpackr");
5
+ const pointer_1 = require("@toa.io/pointer");
6
+ const generic_1 = require("@toa.io/generic");
7
+ const annotation_1 = require("./annotation");
8
+ const manifest_1 = require("./manifest");
9
+ function deployment(instances, annotation = {}) {
10
+ (0, annotation_1.normalize)(instances, annotation);
11
+ const variables = {};
12
+ for (const instance of instances) {
13
+ const component = annotation[instance.locator.id];
14
+ const { origins, properties } = (0, annotation_1.split)(component);
15
+ const instanceVariables = createInstanceVariables(instance, origins);
16
+ const propertiesVariable = createPropertiesVariable(instance.locator, properties);
17
+ (0, generic_1.merge)(variables, instanceVariables);
18
+ (0, generic_1.merge)(variables, propertiesVariable);
19
+ }
20
+ return { variables };
21
+ }
22
+ exports.deployment = deployment;
23
+ function manifest(manifest) {
24
+ (0, manifest_1.validate)(manifest);
25
+ return manifest;
26
+ }
27
+ exports.manifest = manifest;
28
+ function createInstanceVariables(instance, origins) {
29
+ if (instance.manifest === null)
30
+ return {};
31
+ const label = instance.locator.label;
32
+ const id = exports.ID_PREFIX + label;
33
+ const selectors = Object.keys(instance.manifest);
34
+ const request = { group: label, selectors };
35
+ return (0, pointer_1.createVariables)(id, origins, [request]);
36
+ }
37
+ function createPropertiesVariable(locator, properties) {
38
+ const name = exports.ENV_PREFIX + locator.uppercase + exports.PROPERTIES_SUFFIX;
39
+ const value = (0, msgpackr_1.encode)(properties).toString('base64');
40
+ return {
41
+ [locator.label]: [
42
+ { name, value }
43
+ ]
44
+ };
45
+ }
46
+ exports.ID_PREFIX = 'origins-';
47
+ exports.ENV_PREFIX = 'TOA_ORIGINS_';
48
+ exports.PROPERTIES_SUFFIX = '__PROPERTIES';
49
+ //# sourceMappingURL=extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension.js","sourceRoot":"","sources":["../source/extension.ts"],"names":[],"mappings":";;;AAAA,uCAAiC;AACjC,6CAA+D;AAC/D,6CAAuC;AACvC,6CAA+F;AAC/F,yCAAoD;AAKpD,SAAgB,UAAU,CAAE,SAAqB,EAAE,aAAyB,EAAE;IAC5E,IAAA,sBAAS,EAAC,SAAS,EAAE,UAAU,CAAC,CAAA;IAEhC,MAAM,SAAS,GAAc,EAAE,CAAA;IAE/B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;QAChC,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACjD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAA,kBAAK,EAAC,SAAS,CAAC,CAAA;QAChD,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QACpE,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;QAEjF,IAAA,eAAK,EAAC,SAAS,EAAE,iBAAiB,CAAC,CAAA;QACnC,IAAA,eAAK,EAAC,SAAS,EAAE,kBAAkB,CAAC,CAAA;KACrC;IAED,OAAO,EAAE,SAAS,EAAE,CAAA;AACtB,CAAC;AAhBD,gCAgBC;AAED,SAAgB,QAAQ,CAAE,QAAkB;IAC1C,IAAA,mBAAQ,EAAC,QAAQ,CAAC,CAAA;IAElB,OAAO,QAAQ,CAAA;AACjB,CAAC;AAJD,4BAIC;AAED,SAAS,uBAAuB,CAAE,QAAkB,EAAE,OAAgB;IACpE,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI;QAAE,OAAO,EAAE,CAAA;IAEzC,MAAM,KAAK,GAAW,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAA;IAC5C,MAAM,EAAE,GAAG,iBAAS,GAAG,KAAK,CAAA;IAC5B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAChD,MAAM,OAAO,GAAY,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;IAEpD,OAAO,IAAA,yBAAe,EAAC,EAAE,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;AAChD,CAAC;AAED,SAAS,wBAAwB,CAAE,OAAgB,EAAE,UAAsB;IACzE,MAAM,IAAI,GAAG,kBAAU,GAAG,OAAO,CAAC,SAAS,GAAG,yBAAiB,CAAA;IAC/D,MAAM,KAAK,GAAG,IAAA,iBAAM,EAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAEnD,OAAO;QACL,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACf,EAAE,IAAI,EAAE,KAAK,EAAE;SAChB;KACF,CAAA;AACH,CAAC;AAEY,QAAA,SAAS,GAAG,UAAU,CAAA;AACtB,QAAA,UAAU,GAAG,cAAc,CAAA;AAC3B,QAAA,iBAAiB,GAAG,cAAc,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { deployment, manifest } from './extension';
2
+ export { Factory } from './Factory';
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Factory = exports.manifest = exports.deployment = void 0;
4
+ var extension_1 = require("./extension");
5
+ Object.defineProperty(exports, "deployment", { enumerable: true, get: function () { return extension_1.deployment; } });
6
+ Object.defineProperty(exports, "manifest", { enumerable: true, get: function () { return extension_1.manifest; } });
7
+ var Factory_1 = require("./Factory");
8
+ Object.defineProperty(exports, "Factory", { enumerable: true, get: function () { return Factory_1.Factory; } });
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":";;;AAAA,yCAAkD;AAAzC,uGAAA,UAAU,OAAA;AAAE,qGAAA,QAAQ,OAAA;AAC7B,qCAAmC;AAA1B,kGAAA,OAAO,OAAA"}
@@ -0,0 +1,2 @@
1
+ export declare function validate(manifest: Manifest): void;
2
+ export type Manifest = Record<string, string | null> | null;
@@ -0,0 +1,36 @@
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.validate = void 0;
27
+ const node_path_1 = require("node:path");
28
+ const schemas = __importStar(require("@toa.io/schemas"));
29
+ function validate(manifest) {
30
+ if (manifest !== null)
31
+ schema.validate(manifest);
32
+ }
33
+ exports.validate = validate;
34
+ const path = (0, node_path_1.resolve)(__dirname, '../schemas/manifest.cos.yaml');
35
+ const schema = schemas.schema(path);
36
+ //# sourceMappingURL=manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../source/manifest.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAmC;AACnC,yDAA0C;AAE1C,SAAgB,QAAQ,CAAE,QAAkB;IAC1C,IAAI,QAAQ,KAAK,IAAI;QAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;AAClD,CAAC;AAFD,4BAEC;AAED,MAAM,IAAI,GAAG,IAAA,mBAAO,EAAC,SAAS,EAAE,8BAA8B,CAAC,CAAA;AAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA"}
@@ -0,0 +1,11 @@
1
+ export function create(resolve: any): Aspect;
2
+ declare class Aspect extends Connector {
3
+ constructor(resolve: any);
4
+ name: "amqp";
5
+ open(): Promise<void>;
6
+ close(): Promise<void>;
7
+ invoke(origin: any, method: any, ...args: any[]): Promise<any>;
8
+ #private;
9
+ }
10
+ import { Connector } from "@toa.io/core";
11
+ export {};
@@ -0,0 +1,53 @@
1
+ 'use strict';
2
+ const { assert } = require('comq');
3
+ const { Connector } = require('@toa.io/core');
4
+ const protocol = require('./index');
5
+ class Aspect extends Connector {
6
+ name = protocol.id;
7
+ #resolve;
8
+ /** @type {Record<string, Partial<comq.IO>>} */
9
+ #origins = {};
10
+ constructor(resolve) {
11
+ super();
12
+ this.#resolve = resolve;
13
+ }
14
+ async open() {
15
+ const cfg = await this.#resolve();
16
+ const promises = Object.entries(cfg.origins).map(this.#open);
17
+ await Promise.all(promises);
18
+ }
19
+ async close() {
20
+ const promises = Object.values(this.#origins).map(this.#close);
21
+ await Promise.all(promises);
22
+ }
23
+ async invoke(origin, method, ...args) {
24
+ if (this.#origins[origin]?.[method] === undefined) {
25
+ throw new Error(`Origin "${origin}" or method "${method}" is undefined`);
26
+ }
27
+ return this.#origins[origin][method](...args);
28
+ }
29
+ #open = async ([origin, references]) => {
30
+ const io = await assert(...references);
31
+ this.#origins[origin] = restrict(io);
32
+ };
33
+ #close = async (io) => {
34
+ await io.close();
35
+ };
36
+ }
37
+ /**
38
+ * @param {comq.IO} io
39
+ * @return {Partial<comq.IO>}
40
+ */
41
+ function restrict(io) {
42
+ // noinspection JSUnresolvedReference
43
+ return {
44
+ request: (...args) => io.request(...args),
45
+ emit: (...args) => io.emit(...args),
46
+ close: () => io.close()
47
+ };
48
+ }
49
+ function create(resolve) {
50
+ return new Aspect(resolve);
51
+ }
52
+ exports.create = create;
53
+ //# sourceMappingURL=aspect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aspect.js","sourceRoot":"","sources":["../../../source/protocols/amqp/aspect.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;AAC7C,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;AAEnC,MAAM,MAAO,SAAQ,SAAS;IAC5B,IAAI,GAAG,QAAQ,CAAC,EAAE,CAAA;IAElB,QAAQ,CAAA;IAER,+CAA+C;IAC/C,QAAQ,GAAG,EAAE,CAAA;IAEb,YAAa,OAAO;QAClB,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;QACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAE5D,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAE9D,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;QACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;YACjD,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,gBAAgB,MAAM,gBAAgB,CAAC,CAAA;SACzE;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IAC/C,CAAC;IAED,KAAK,GAAG,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE;QACrC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,UAAU,CAAC,CAAA;QAEtC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IACtC,CAAC,CAAA;IAED,MAAM,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE;QACpB,MAAM,EAAE,CAAC,KAAK,EAAE,CAAA;IAClB,CAAC,CAAA;CACF;AAED;;;GAGG;AACH,SAAS,QAAQ,CAAE,EAAE;IACnB,qCAAqC;IACrC,OAAO;QACL,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;QACzC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACnC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE;KACxB,CAAA;AACH,CAAC;AAED,SAAS,MAAM,CAAE,OAAO;IACtB,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAA;AAC5B,CAAC;AAED,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @param {toa.norm.context.dependencies.Instance[]} instances
3
+ * @returns {toa.deployment.dependency.Variables}
4
+ */
5
+ export function deployment(instances: toa.norm.context.dependencies.Instance[]): toa.deployment.dependency.Variables;
@@ -0,0 +1,55 @@
1
+ 'use strict';
2
+ const { letters: { up } } = require('@toa.io/generic');
3
+ const protocols = require('./protocols');
4
+ /**
5
+ * @param {toa.norm.context.dependencies.Instance[]} instances
6
+ * @returns {toa.deployment.dependency.Variables}
7
+ */
8
+ function deployment(instances) {
9
+ /** @type {toa.deployment.dependency.Variables} */
10
+ const variables = {};
11
+ for (const { locator, manifest } of instances) {
12
+ const secrets = [];
13
+ for (const [origin, reference] of Object.entries(manifest)) {
14
+ let protocol;
15
+ const match = reference.match(RX);
16
+ if (match !== null)
17
+ protocol = match.groups.protocol;
18
+ if (protocols.includes(protocol)) {
19
+ const originSecrets = createSecrets(locator, origin);
20
+ secrets.push(...originSecrets);
21
+ }
22
+ }
23
+ variables[locator.label] = secrets;
24
+ }
25
+ return variables;
26
+ }
27
+ /**
28
+ * @param {toa.core.Locator} locator
29
+ * @param {string} origin
30
+ * @return {toa.deployment.dependency.Variable[]}
31
+ */
32
+ function createSecrets(locator, origin) {
33
+ const properties = ['username', 'password'];
34
+ return properties.map((property) => createSecret(locator, origin, property));
35
+ }
36
+ /**
37
+ * @param {toa.core.Locator} locator
38
+ * @param {string} origin
39
+ * @param {string} property
40
+ * @return {toa.deployment.dependency.Variable}
41
+ */
42
+ function createSecret(locator, origin, property) {
43
+ const variable = `TOA_ORIGINS_${locator.uppercase}_${up(origin)}_${up(property)}`;
44
+ const secret = `toa-origins-${locator.label}-${origin}`;
45
+ return {
46
+ name: variable,
47
+ secret: {
48
+ name: secret,
49
+ key: property
50
+ }
51
+ };
52
+ }
53
+ const RX = /^(?<protocol>\w{1,12}:)/;
54
+ exports.deployment = deployment;
55
+ //# sourceMappingURL=deployment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment.js","sourceRoot":"","sources":["../../../source/protocols/amqp/deployment.js"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;AACtD,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AAExC;;;GAGG;AACH,SAAS,UAAU,CAAE,SAAS;IAC5B,kDAAkD;IAClD,MAAM,SAAS,GAAG,EAAE,CAAA;IAEpB,KAAK,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,SAAS,EAAE;QAC7C,MAAM,OAAO,GAAG,EAAE,CAAA;QAElB,KAAK,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC1D,IAAI,QAAQ,CAAA;YAEZ,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YAEjC,IAAI,KAAK,KAAK,IAAI;gBAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAA;YAEpD,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBAChC,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;gBAEpD,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAA;aAC/B;SACF;QAED,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAA;KACnC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAE,OAAO,EAAE,MAAM;IACrC,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;IAE3C,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;AAC9E,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAE,OAAO,EAAE,MAAM,EAAE,QAAQ;IAC9C,MAAM,QAAQ,GAAG,eAAe,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAA;IACjF,MAAM,MAAM,GAAG,eAAe,OAAO,CAAC,KAAK,IAAI,MAAM,EAAE,CAAA;IAEvD,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE;YACN,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,QAAQ;SACd;KACF,CAAA;AACH,CAAC;AAED,MAAM,EAAE,GAAG,yBAAyB,CAAA;AAEpC,OAAO,CAAC,UAAU,GAAG,UAAU,CAAA"}
@@ -0,0 +1 @@
1
+ export const id: "amqp";
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ exports.id = 'amqp';
3
+ //# sourceMappingURL=id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id.js","sourceRoot":"","sources":["../../../source/protocols/amqp/id.js"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,CAAC,EAAE,GAAG,MAAM,CAAA"}
@@ -0,0 +1,5 @@
1
+ import protocols = require("./protocols");
2
+ import { id } from "./id";
3
+ import { create } from "./aspect";
4
+ import { deployment } from "./deployment";
5
+ export { protocols, id, create, deployment };
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+ const protocols = require('./protocols');
3
+ const { id } = require('./id');
4
+ const { create } = require('./aspect');
5
+ const { deployment } = require('./deployment');
6
+ exports.protocols = protocols;
7
+ exports.id = id;
8
+ exports.create = create;
9
+ exports.deployment = deployment;
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/protocols/amqp/index.js"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AACxC,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC9B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AACtC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;AAE9C,OAAO,CAAC,SAAS,GAAG,SAAS,CAAA;AAC7B,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;AACf,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;AACvB,OAAO,CAAC,UAAU,GAAG,UAAU,CAAA"}
@@ -0,0 +1,2 @@
1
+ declare const _exports: string[];
2
+ export = _exports;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ module.exports = ['amqp:', 'amqps:'];
3
+ //# sourceMappingURL=protocols.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocols.js","sourceRoot":"","sources":["../../../source/protocols/amqp/protocols.js"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,CAAC,OAAO,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ export class Permissions extends Connector {
2
+ constructor(resolve: any);
3
+ open(): Promise<void>;
4
+ test(url: any): boolean;
5
+ #private;
6
+ }
7
+ import { Connector } from "@toa.io/core";
@@ -0,0 +1,52 @@
1
+ 'use strict';
2
+ const { echo } = require('@toa.io/generic');
3
+ const { Connector } = require('@toa.io/core');
4
+ class Permissions extends Connector {
5
+ /** @type {RegExp[]} */
6
+ #allowances = [];
7
+ /** @type {RegExp[]} */
8
+ #denials = [];
9
+ #resolve;
10
+ constructor(resolve) {
11
+ super();
12
+ this.#resolve = resolve;
13
+ }
14
+ async open() {
15
+ const { properties } = await this.#resolve();
16
+ if (properties !== undefined)
17
+ this.#parse(properties);
18
+ }
19
+ test(url) {
20
+ const denial = this.#denials.findIndex((regexp) => regexp.test(url));
21
+ if (denial !== -1)
22
+ return false;
23
+ const allowance = this.#allowances.findIndex((regexp) => regexp.test(url));
24
+ return allowance !== -1;
25
+ }
26
+ #parse(properties) {
27
+ if ('null' in properties) {
28
+ const always = /** @type {RegExp} */ { test: () => true };
29
+ this.#addRule(always, properties.null);
30
+ delete properties.null;
31
+ }
32
+ for (const [key, rule] of Object.entries(properties)) {
33
+ const match = key.match(EXPRESSION);
34
+ if (match === null)
35
+ throw new Error(`'${key}' is not a regular expression`);
36
+ const expression = echo(match.groups.expression);
37
+ const regex = new RegExp(expression);
38
+ this.#addRule(regex, rule);
39
+ }
40
+ }
41
+ /**
42
+ * @param {RegExp} regex
43
+ * @param {boolean} rule
44
+ */
45
+ #addRule(regex, rule) {
46
+ const rules = rule ? this.#allowances : this.#denials;
47
+ rules.push(regex);
48
+ }
49
+ }
50
+ const EXPRESSION = /^\/(?<expression>.+)\/$/;
51
+ exports.Permissions = Permissions;
52
+ //# sourceMappingURL=permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../../source/protocols/http/.aspect/permissions.js"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;AAC3C,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;AAE7C,MAAM,WAAY,SAAQ,SAAS;IACjC,uBAAuB;IACvB,WAAW,GAAG,EAAE,CAAA;IAEhB,uBAAuB;IACvB,QAAQ,GAAG,EAAE,CAAA;IAEb,QAAQ,CAAA;IAER,YAAa,OAAO;QAClB,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;QAE5C,IAAI,UAAU,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACvD,CAAC;IAED,IAAI,CAAE,GAAG;QACP,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QAEpE,IAAI,MAAM,KAAK,CAAC,CAAC;YAAE,OAAO,KAAK,CAAA;QAE/B,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QAE1E,OAAO,SAAS,KAAK,CAAC,CAAC,CAAA;IACzB,CAAC;IAED,MAAM,CAAE,UAAU;QAChB,IAAI,MAAM,IAAI,UAAU,EAAE;YACxB,MAAM,MAAM,GAAG,qBAAqB,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAA;YAEzD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAA;YACtC,OAAO,UAAU,CAAC,IAAI,CAAA;SACvB;QAED,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACpD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;YAEnC,IAAI,KAAK,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,IAAI,GAAG,+BAA+B,CAAC,CAAA;YAE3E,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YAChD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;YAEpC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;SAC3B;IACH,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAE,KAAK,EAAE,IAAI;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAA;QAErD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACnB,CAAC;CACF;AAED,MAAM,UAAU,GAAG,yBAAyB,CAAA;AAE5C,OAAO,CAAC,WAAW,GAAG,WAAW,CAAA"}
@@ -0,0 +1,11 @@
1
+ export function create(resolve: any): Aspect;
2
+ declare class Aspect extends Connector {
3
+ constructor(resolve: any, permissions: any);
4
+ /** @readonly */
5
+ readonly name: "http";
6
+ open(): Promise<void>;
7
+ invoke(name: any, path: any, request: any, options: any): Promise<any>;
8
+ #private;
9
+ }
10
+ import { Connector } from "@toa.io/core";
11
+ export {};
@@ -0,0 +1,87 @@
1
+ 'use strict';
2
+ const { Connector } = require('@toa.io/core');
3
+ const { retry } = require('@toa.io/generic');
4
+ const { Permissions } = require('./.aspect/permissions');
5
+ const protocols = require('./protocols');
6
+ const protocol = require('./index');
7
+ class Aspect extends Connector {
8
+ /** @readonly */
9
+ name = protocol.id;
10
+ #resolve;
11
+ #origins;
12
+ #permissions;
13
+ constructor(resolve, permissions) {
14
+ super();
15
+ this.#resolve = resolve;
16
+ this.#permissions = permissions;
17
+ this.depends(permissions);
18
+ }
19
+ async open() {
20
+ const { origins } = await this.#resolve();
21
+ this.#origins = origins;
22
+ }
23
+ async invoke(name, path, request, options) {
24
+ let origin = this.#origins[name];
25
+ if (origin === undefined) {
26
+ if (isAbsoluteURL(name))
27
+ return this.#invokeURL(name, /** @type {Request} */ path);
28
+ else
29
+ throw new Error(`Origin '${name}' is not defined`);
30
+ }
31
+ // absolute urls are forbidden when using origins
32
+ if (typeof path === 'string' && isAbsoluteURL(path))
33
+ throw new Error(`Absolute URLs are forbidden (${path})`);
34
+ if (options?.substitutions !== undefined)
35
+ origin = substitute(origin, options.substitutions);
36
+ const url = path === undefined ? new URL(origin) : new URL(path, origin);
37
+ return this.#request(url.href, request, options?.retry);
38
+ }
39
+ async #invokeURL(url, request) {
40
+ if (this.#permissions.test(url) === false)
41
+ throw new Error(`URL '${url}' is not allowed`);
42
+ return this.#request(url, request);
43
+ }
44
+ async #request(url, request, options) {
45
+ const call = () => fetch(url, request);
46
+ if (options === undefined)
47
+ return call();
48
+ else
49
+ return this.#retry(call, options);
50
+ }
51
+ /**
52
+ * @param {Function} call
53
+ * @param {toa.generic.retry.Options} options
54
+ * @return {any}
55
+ */
56
+ #retry(call, options) {
57
+ return retry(async (retry) => {
58
+ const response = await call();
59
+ if (Math.floor(response.status / 100) !== 2)
60
+ return retry();
61
+ return response;
62
+ }, options);
63
+ }
64
+ }
65
+ /**
66
+ * @param {string} origin
67
+ * @param {string[]} substitutions
68
+ * @returns {string}
69
+ */
70
+ function substitute(origin, substitutions) {
71
+ const replace = () => substitutions.shift();
72
+ return origin.replace(PLACEHOLDER, replace);
73
+ }
74
+ /**
75
+ * @param {string} path
76
+ * @returns {boolean}
77
+ */
78
+ function isAbsoluteURL(path) {
79
+ return protocols.findIndex((protocol) => path.indexOf(protocol) === 0) !== -1;
80
+ }
81
+ const PLACEHOLDER = /\*/g;
82
+ function create(resolve) {
83
+ const permissions = new Permissions(resolve);
84
+ return new Aspect(resolve, permissions);
85
+ }
86
+ exports.create = create;
87
+ //# sourceMappingURL=aspect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aspect.js","sourceRoot":"","sources":["../../../source/protocols/http/aspect.js"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export const id: "http";
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ exports.id = 'http';
3
+ //# sourceMappingURL=id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id.js","sourceRoot":"","sources":["../../../source/protocols/http/id.js"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,CAAC,EAAE,GAAG,MAAM,CAAA"}
@@ -0,0 +1,4 @@
1
+ import protocols = require("./protocols");
2
+ import { id } from "./id";
3
+ import { create } from "./aspect";
4
+ export { protocols, id, create };
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+ const protocols = require('./protocols');
3
+ const { id } = require('./id');
4
+ const { create } = require('./aspect');
5
+ exports.protocols = protocols;
6
+ exports.id = id;
7
+ exports.create = create;
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/protocols/http/index.js"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AACxC,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC9B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAEtC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAA;AAC7B,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;AACf,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA"}
@@ -0,0 +1,2 @@
1
+ declare const _exports: string[];
2
+ export = _exports;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ module.exports = ['http:', 'https:'];
3
+ //# sourceMappingURL=protocols.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocols.js","sourceRoot":"","sources":["../../../source/protocols/http/protocols.js"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,CAAC,OAAO,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { type Resolver } from '../Factory';
2
+ import type { extensions } from '@toa.io/core';
3
+ export declare const protocols: Protocol[];
4
+ export interface Protocol {
5
+ id: ProtocolID;
6
+ protocols: string[];
7
+ create: (resolver: Resolver) => extensions.Aspect;
8
+ }
9
+ export type ProtocolID = 'http' | 'amqp';
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.protocols = void 0;
7
+ const amqp_1 = __importDefault(require("./amqp"));
8
+ const http_1 = __importDefault(require("./http"));
9
+ exports.protocols = [http_1.default, amqp_1.default];
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/protocols/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;AAGZ,kDAAyB;AACzB,kDAAyB;AAGZ,QAAA,SAAS,GAAe,CAAC,cAAI,EAAE,cAAI,CAAC,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.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.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.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.full.d.ts","../node_modules/msgpackr/index.d.ts","../../../operations/types/dependency.d.ts","../../../operations/types/index.d.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","../../../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/protocols/amqp/protocols.js","../source/protocols/amqp/id.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","../../../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/component.d.ts","../../../runtime/core/types/context.d.ts","../../../runtime/core/types/storages.d.ts","../../../runtime/core/types/extensions.d.ts","../../../runtime/core/types/bridges.d.ts","../../../runtime/core/types/operations.d.ts","../../../runtime/core/types/message.d.ts","../../../runtime/core/types/receiver.d.ts","../../../runtime/core/types/index.d.ts","../source/protocols/amqp/aspect.js","../source/protocols/amqp/deployment.js","../source/protocols/amqp/index.js","../source/protocols/http/protocols.js","../source/protocols/http/id.js","../source/protocols/http/.aspect/permissions.js","../source/protocols/http/aspect.js","../source/protocols/http/index.js","../source/protocols/index.ts","../../../libraries/schemas/types/schema.d.ts","../../../libraries/schemas/types/namespace.d.ts","../../../libraries/schemas/types/index.d.ts","../source/annotation.ts","../source/manifest.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","../source/extension.ts","../source/Factory.ts","../source/constants.js","../source/env.js","../source/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/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/connect/index.d.ts","../../../node_modules/@types/body-parser/index.d.ts","../../../node_modules/@types/cors/index.d.ts","../../../node_modules/@types/mime/index.d.ts","../../../node_modules/@types/send/index.d.ts","../../../node_modules/@types/qs/index.d.ts","../../../node_modules/@types/range-parser/index.d.ts","../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../node_modules/@types/http-errors/index.d.ts","../../../node_modules/@types/serve-static/index.d.ts","../../../node_modules/@types/express/index.d.ts","../../../node_modules/@types/jsonfile/index.d.ts","../../../node_modules/@types/jsonfile/utils.d.ts","../../../node_modules/@types/fs-extra/index.d.ts","../../../node_modules/@types/graceful-fs/index.d.ts","../../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../../node_modules/@types/istanbul-lib-report/index.d.ts","../../../node_modules/@types/istanbul-reports/index.d.ts","../../../node_modules/@jest/expect-utils/build/index.d.ts","../../../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/minimist/index.d.ts","../../../node_modules/@types/negotiator/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/@types/parse-json/index.d.ts","../../../node_modules/@types/randomstring/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/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":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"f3d4da15233e593eacb3965cde7960f3fddf5878528d882bcedd5cbaba0193c7","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"d96fa8a56871904776165ceb8e00bd56127e1a017bb2664cae76223b5f815141","2a644159d517fde538191edfe276c4b2185bab433b9dfd0445fa080fd34b0c8b","856972a708b040dd0624eab8474be57023bca19758d92e40a8e2c53733545a32","6e77fb2250275d3945569ac61104a29927624b5a7ba0e905e7e1defd1f2ed151","2790a9aa9f46374da594d045c1c92f277d74741c9adf0591353528148004cc50","31db44390050eec522abcf9268e697fc78d609e2b5e547c51533f885b9e3c9a8","ee3ed46dc8dccb018423839a1ee04b4bce7b0300d1debcaf52abbf97aaf75e87","e8bb99484b05d5b923363d02b6641cd2d2feac44d6f9480cf0be54f59db2c480","53d785402c344d04199b00b6dd00e9382cad52548ddc6c907f49157efa44cb00","95edbe862fbb62a384d2adec2b2278c5ece55d935d382da1386c4a63057b39a5","4386f08376491cdc43b83e6dc3e29173263e0e353a41863de4bc35ca14be916d","6c898f2bb237aee867bc2f89a2d9201b4c336c10320d083371ecf148bb0ffd54","937cbc9ffa856e3e4811c23481bf5416112fd6c8e6f31bbd2525cfff22fb8905","f7913adfae3602c58650945fc516db14ee8ee0ff761fd153bc7ee60089985e0a","c7c21a3a3ddc7780bd13068e7b5a723346b4d3d8ddb705c1d1ab690037d4653a",{"version":"96e7be849824a0e893e8ab857a028209b86f1804edc65d28fdcf32ee9978a142","signature":"7e2eff3e1139fb63fcd72a2f1a53a7781e30bb509305e0dfa8c552779f607e88"},{"version":"70adfdd684410770fcdf755750e2a0eb3804903f7b91516a9cce9891a5b003d9","signature":"18371ac3f35d9efffecfcdf14d9f440622e2ed8872d66dbbbed2a71f7082eb4e"},"3488b6a8a63710bef00bfec939073f16fb5dff3202551b8295978844894751cd","68bdb410327adddbccfba6a338a867d1d0fa4e48386d98b7bdc861f92ebf3ddf","4b16679b0f7378842ff9f482df9037cd1f5e2e400c90ddd764f331cbe23dd1b4","94f91b3d112e13ae8da95d492faaac48b36b172bbeaad21be05d0396c1f277e4","1c0c9696e9dbe9f406437da313618a3e36de69bd10cec98a28bff2e074fd1ee7","46e4cc64a82224228d590a421fe89a9cc2375b2db1669a74e31477f314dc6f92","0a850b3b9d35c3a5ddb4dee5ed0c9d1de171d69ad4f5e179d8a27645fb42335f","f293b8edde762f4ec34b5bb6f7a99df838f0cf71670d9fe6553f309bb559ea30","e5300e469f90dd71a75ae0363c7338e9dda720c4906e3c029a5652e02f17a889","b297d49b7ce31c940c72329a2a8e0d3ea4493da2d02dbb2e10d18a70c41c2dbd","5b12673719e49d2ef56a8263d60f95b6b4e48aa6bd1837c7b2e3c39232431ffb","2beb94ef1961eb5c639e8f3cbbe1483bf2d9d53855fde0b20c1a3429d3a6160b","d9c3ed7e2851a2331b0053d3128d730aa19ce0685a0a0409adc0e1e86c00e17c","93f5a43dafa0ed136ac2c886648862de399d97aefb32c946dfe2ab780cd460f6","eccae7a0380fece7bedcce018b5429da725a59c76eaf1f29d9483ea909115ea0","863a16bffa4414a6784927eec1b17523521761b2b2344a0b98f140c91d659859","1d59fdf9e61f92e14aebf97a22991748e60be71db2145783aa81e12e449b3a08","2ece68fc449934b9b5988584816a997bd94e8960bc28ba83b58c0b79b639447b","d721d38f03dbf541b5fc4fe9056ef0fbd2b1650af027b57a41050b6d5eb7deea","dcd8de07b4735d845b06e546f4f4c6014388cceaf171495e8e7ec40551e167cf","a06788dcbb350c361b23aad1671f6818641850ab75050e7abc0ae42f6ae49090","4ab8f1d6f72266e22a333b9a6e284765a1d6a3020c7272799003143269705b0c",{"version":"ef88a0b62294b3db6953c44c9ce92730d000bc303c67e0aac38618ed7b53e0a2","signature":"69d458edf95708728df77306a56ed62643ca804d0d360008a4e4fe9d6d6dfd8e"},{"version":"13e5077961333dfef7b45b61cf397824a29d5714f70019b492cdbdc2cd972d07","signature":"4ff8ab5333ebf91e138ae7f2aa7c2b573af6c287220388ae9f47242c9e0cd5b5"},{"version":"7ff4d9a694191b925a8d779db5143ce8b24efa116f09af2a7797f5253d83d92f","signature":"3dc1d4404ab4ec6b709830df84377c9a0c9e04b3e53a15b26719135f37d40f7f"},{"version":"459f9fff2e8effefafbf6e7ac9b44b827327d4b3a513b729d6d6094fa2318d26","signature":"7e2eff3e1139fb63fcd72a2f1a53a7781e30bb509305e0dfa8c552779f607e88"},{"version":"55aece49d3a387b3acc7fbf672328c62422aebb7e98cf9e8c1f62da780d615fb","signature":"ee57cf1731dc27fa5f1db512b4964be0efb2aa24adde19892c21a0d5c765ec03"},{"version":"6152f81fc56c9bb7861c382fa6d235075dfe4080e6570d9a728903fc37c81af0","signature":"ffe1b4673d41b1f40610de2517e0428c67a6981ddc881e583b33561572ea6aae"},{"version":"15a49a2929b03c5931a1ca663b4103e5b6bd64b4217d1f1c2d7a381aa108da59","signature":"28d3554b38d500c9323ae01c053aa0336d3832e2e75cd4aedce1bea5141af0f6"},{"version":"bab73c662d5c3f79a86a4e6dc3ad616287d1de1a17e91b40a21d57d3ddc3af06","signature":"cdc7b5474fc61d043a72869dc60a85a2e68da61afc4fc4a1b644ed9b28fdc82a"},{"version":"8afc29dcfc689168c29ab085ee8996e205d7e3367c455da79969152938f6cd0d","signature":"f53be8979697a1e2c81f318dde8b792b601461d9ef4f4fed33a00393d8653236"},"fb2be9f927c3a43265b4ca090a72fe4701455fce5532e57dc94d93919ad484b8","15a134b3be788325ea13d4d018fcd9b7137dda29105953af10b4f2231a6652f0","7743128e292694a468242260f9f440be96221e1190aa3cc1e3244e67ac780c01",{"version":"cddb18d3a367163ee8c7f9bc3275cf801a5b0f4f1224edc223e6c70af7cfa150","signature":"fd264726367f522dbf60f46b2c014d1a433e9015870eb15574257fd35e616af2"},{"version":"ff400dbe0326155d1b04858a83e86e55635d95d285ed74f8f7c8c7e86644522d","signature":"02cd5fcc7ca5feba54971ad54e819212216af17387904fefb0d0fbb8dc47ec38"},"6b9b9d6fc6a1a50ce90fad4295f61f0c83a974f5c9eb2ed57cd05316552e3a08","71e46111f57a5c82031adbac22eb542b5f63a8be4d5ee9253036cafe81d16112","5522b38638cff1f4a648918bce4a297d25bc3c4406e1e001a0433f2fd8dd2d22","53e95c2c536d057f438646855f24e39f888dc415ca56ef8fae1ec1d5b5485883",{"version":"ba3a9e16a4404b0da1113e0ab593b2f4401b0f30a73bc76e80159cde25665741","signature":"dafc15b2377bb59f132d10f8c8285f7dc2e64d3288a290db35a4366b69bed024"},{"version":"859a6e76cf34d82fb71e864d5dfe6470dd298c39b088325bd346eff87a48c458","signature":"97d4814e25bfa13cf15afa5e4892df2ba7e1e60310398bf242a02be9da8f9a64"},{"version":"86ed435bb953c97e7476d851f6d8ebf8a1b6c84616328f9de1f3aa8c87b5a9fa","signature":"af898d865eba87228607c9f51ebadc3281b779546a827477c88b2221132ba137"},{"version":"ee5b11bf95024d740540a1137f9f6a79c730403d9801bbeeeb30c6309063d28c","signature":"206cc1c976788945272abac46d80680d95d691db82cb3fb932f1da766a8f95f8"},{"version":"3153f06c2c3a14ae77ab7c1472ddd0bf3e28aff57c73aef2df8b167b3ff20057","signature":"a0be985fe55ad62bff14e3a560588107ba65d3751cbdc32ff83cc8baa65f850c"},"f713064ca751dc588bc13832137c418cb70cf0446de92ade60ad631071558fca","7a1f3d0b8dd0e869c58b44848d9f0be3592c3ff6dc77091e7130306f6d2907ed","96c23535f4f9dd15beb767e070559ea672f6a35f103152836a67100605136a96","670a76db379b27c8ff42f1ba927828a22862e2ab0b0908e38b671f0e912cc5ed","29a46d003ca3c721e6405f00dee7e3de91b14e09701eba5d887bf76fb2d47d38","3df59a50b6fdd703016b81e254633080b3fa1e9035a462e730235876470d0012","dbe8bd931d343b9804d5398afb6dd6d6728975b2e23a3314bc4911f81c5e5a33","09df3b4f1c937f02e7fee2836d4c4d7a63e66db70fd4d4e97126f4542cc21d9d","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","ef18cbf1d8374576e3db03ff33c2c7499845972eb0c4adf87392949709c5e160","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","104c67f0da1bdf0d94865419247e20eded83ce7f9911a1aa75fc675c077ca66e","cc0d0b339f31ce0ab3b7a5b714d8e578ce698f1e13d7f8c60bfb766baeb1d35c","efdced704bd09db6984a2a26e3573bc43cdc2379bdef3bcff6cff77efe8ba82b","d3f2d715f57df3f04bf7b16dde01dec10366f64fce44503c92b8f78f614c1769","b78cd10245a90e27e62d0558564f5d9a16576294eee724a59ae21b91f9269e4a","fedd311d427fdafac411b4e0edc0d1014668853679e021e04717a6de45ff5c0c","2f5747b1508ccf83fad0c251ba1e5da2f5a30b78b09ffa1cfaf633045160afed",{"version":"50072f976cfa86af1a3044f55cd729d992abe39222d2f6cdf929266c77a42b0b","affectsGlobalScope":true},"b71c603a539078a5e3a039b20f2b0a0d1708967530cf97dec8850a9ca45baa2b","34118be360cdd3381bbebbfd4b093c394460c8fc5df40688d58f45d86ab1448b","43cdd474c5aa3340da4816bb8f1ae7f3b1bcf9e70d997afc36a0f2c432378c84","211440ce81e87b3491cdf07155881344b0a61566df6e749acff0be7e8b9d1a07","5d9a0b6e6be8dbb259f64037bce02f34692e8c1519f5cd5d467d7fa4490dced4","880da0e0f3ebca42f9bd1bc2d3e5e7df33f2619d85f18ee0ed4bd16d1800bc32","afe73051ff6a03a9565cbd8ebb0e956ee3df5e913ad5c1ded64218aabfa3dcb5","035a5df183489c2e22f3cf59fc1ed2b043d27f357eecc0eb8d8e840059d44245","a4809f4d92317535e6b22b01019437030077a76fec1d93b9881c9ed4738fcc54","5f53fa0bd22096d2a78533f94e02c899143b8f0f9891a46965294ee8b91a9434","cdcc132f207d097d7d3aa75615ab9a2e71d6a478162dde8b67f88ea19f3e54de","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","d96cc6598148bf1a98fb2e8dcf01c63a4b3558bdaec6ef35e087fd0562eb40ec",{"version":"b2fdcc3836d425833af10e536ae5491c34e218bc71870f12a401720f874b6ce4","affectsGlobalScope":true},"686e548ae30250d62532c8cacb43fccc922b693408371bd3503563c4a0f28eed","f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","fbca5ffaebf282ec3cdac47b0d1d4a138a8b0bb32105251a38acb235087d3318","f4694959db84d3792ca4d4e04c0bc157c4d28627cb0406c9236351f261a3f5e0","22293bd6fa12747929f8dfca3ec1684a3fe08638aa18023dd286ab337e88a592","916be7d770b0ae0406be9486ac12eb9825f21514961dd050594c4b250617d5a8",{"version":"4698841dc5a91fe716dd41ec7136867bbde9a274ce21031e5ef6ce2d8a552ceb","affectsGlobalScope":true},"cc0700b1b97e18a3d5d9184470502d8762ec85158819d662730c3a8c5d702584","9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","f77ff4cd234d3fd18ddd5aeadb6f94374511931976d41f4b9f594cb71f7ce6f3","4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","4f18b4e6081e5e980ef53ddf57b9c959d36cffe1eb153865f512a01aeffb5e1e","7f17d4846a88eca5fe71c4474ef687ee89c4acf9b5372ab9b2ee68644b7e0fe0","b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","85f8ebd7f245e8bf29da270e8b53dcdd17528826ffd27176c5fc7e426213ef5a","ab82804a14454734010dcdcd43f564ff7b0389bee4c5692eec76ff5b30d4cf66","12fe557e4c2d5ce9e11362f69a8d7c05d0588de4ae415afe8c5106da5c2772aa","f2f23fe34b735887db1d5597714ae37a6ffae530cafd6908c9d79d485667c956","67483628398336d0f9368578a9514bd8cc823a4f3b3ab784f3942077e5047335","bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","8495c63868f001b156fdeb6382ddd63dc6b2c9b91529ce08019caf312da37c59"],"options":{"declaration":true,"esModuleInterop":true,"experimentalDecorators":true,"module":1,"noImplicitOverride":true,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"target":99},"fileIdsList":[[195,207],[60,68,73,97,106,110,111,116,207],[106,109,116,187,207],[207],[73,118,207],[60,62,68,73,97,110,111,115,207],[116,117,207],[109,187,207],[83,97,100,207],[73,74,207],[74,75,98,99,207],[73,97,207],[73,97,101,103,105,207],[101,102,104,207],[97,100,105,117,207],[69,70,71,72,195,207],[62,207],[63,207],[62,63,64,207],[63,64,65,66,67,207],[107,108,207],[107,207],[121,207],[207,235],[121,122,123,124,125,207],[121,123,207],[180,207,214,215],[180,207,214],[177,180,207,214,219,220,221],[207,216,220,222,224],[178,207,214,226,227],[178,207,214],[207,230],[207,231],[207,237,240],[178,206,207,214],[128,207],[164,207],[165,170,198,207],[166,177,178,185,195,206,207],[166,167,177,185,207],[168,207],[169,170,178,186,207],[170,195,203,207],[171,173,177,185,207],[172,207],[173,174,207],[177,207],[175,177,207],[164,177,207],[177,178,179,195,206,207],[177,178,179,192,195,198,207],[162,207,211],[173,177,180,185,195,206,207],[177,178,180,181,185,195,203,206,207],[180,182,195,203,206,207],[128,129,163,164,165,166,167,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],[177,183,207],[184,206,207,211],[173,177,185,195,207],[186,207],[187,207],[164,188,207],[189,205,207,211],[190,207],[191,207],[177,192,193,207],[192,194,207,209],[165,177,195,196,197,198,207],[165,195,197,207],[195,196,207],[198,207],[199,207],[164,195,207],[177,201,202,207],[201,202,207],[170,185,195,203,207],[204,207],[185,205,207],[165,180,191,206,207],[170,207],[195,207,208],[184,207,209],[207,210],[165,170,177,179,188,195,206,207,209,211],[195,207,212],[207,250,289],[207,250,274,289],[207,289],[207,250],[207,250,275,289],[207,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,288],[207,275,289],[178,195,207,214,218],[180,207,214,218,223],[207,214],[207,294],[76,207],[76,77,79,81,207],[81,82,207],[76,78,79,80,177,195,207],[207,233,239],[207,234,238],[207,237],[207,236],[139,143,206,207],[139,195,206,207],[134,207],[136,139,203,206,207],[185,203,207],[134,207,214],[136,139,185,206,207],[131,132,135,138,165,177,195,206,207],[131,137,207],[135,139,165,198,206,207,214],[165,207,214],[155,165,207,214],[133,134,207,214],[139,207],[133,134,135,136,137,138,139,140,141,143,144,145,146,147,148,149,150,151,152,153,154,156,157,158,159,160,161,207],[139,146,147,207],[137,139,147,148,207],[138,207],[131,134,139,207],[139,143,147,148,207],[143,207],[137,139,142,206,207],[131,136,137,139,143,146,207],[165,195,207],[134,139,155,165,207,211,214],[61,207],[97,207],[85,90,97,207],[85,86,88,207],[85,88,92,207],[84,89,90,91,97,207],[84,85,86,87,88,89,90,91,92,93,94,95,96,207],[85,95,207],[87,207],[85,86,207],[97,112,113,207],[114,207],[112,114,207],[68,97,111],[116],[62,110,111,115],[116,117],[97,117]],"referencedMap":[[60,1],[117,2],[110,3],[118,4],[119,5],[116,6],[120,7],[111,8],[98,9],[99,10],[75,4],[100,11],[74,4],[103,12],[104,13],[102,4],[105,14],[101,4],[106,15],[73,16],[72,4],[71,4],[70,4],[69,4],[63,17],[64,18],[65,19],[68,20],[67,4],[66,18],[109,21],[108,22],[107,4],[123,23],[121,4],[233,4],[236,24],[235,4],[126,25],[122,23],[124,26],[125,23],[127,4],[216,27],[215,28],[217,28],[222,29],[225,30],[228,31],[229,32],[223,4],[230,4],[231,33],[232,34],[241,35],[242,4],[243,4],[244,4],[226,36],[227,4],[218,4],[245,4],[246,4],[128,37],[129,37],[164,38],[165,39],[166,40],[167,41],[168,42],[169,43],[170,44],[171,45],[172,46],[173,47],[174,47],[176,48],[175,49],[177,50],[178,51],[179,52],[163,53],[213,4],[180,54],[181,55],[182,56],[214,57],[183,58],[184,59],[185,60],[186,61],[187,62],[188,63],[189,64],[190,65],[191,66],[192,67],[193,67],[194,68],[195,69],[197,70],[196,71],[198,72],[199,73],[200,74],[201,75],[202,76],[203,77],[204,78],[205,79],[206,80],[207,81],[208,82],[209,83],[210,84],[211,85],[212,86],[247,4],[248,4],[220,4],[249,4],[221,4],[274,87],[275,88],[250,89],[253,89],[272,87],[273,87],[263,87],[262,90],[260,87],[255,87],[268,87],[266,87],[270,87],[254,87],[267,87],[271,87],[256,87],[257,87],[269,87],[251,87],[258,87],[259,87],[261,87],[265,87],[276,91],[264,87],[252,87],[289,92],[288,4],[283,91],[285,93],[284,91],[277,91],[278,91],[280,91],[282,91],[286,93],[287,93],[279,93],[281,93],[219,94],[224,95],[290,4],[291,4],[292,4],[293,96],[294,4],[295,97],[130,4],[234,4],[80,4],[77,98],[82,99],[76,4],[78,4],[83,100],[81,101],[79,4],[240,102],[239,103],[238,104],[237,105],[11,4],[12,4],[16,4],[15,4],[2,4],[17,4],[18,4],[19,4],[20,4],[21,4],[22,4],[23,4],[24,4],[3,4],[4,4],[28,4],[25,4],[26,4],[27,4],[29,4],[30,4],[31,4],[5,4],[32,4],[33,4],[34,4],[35,4],[6,4],[39,4],[36,4],[37,4],[38,4],[40,4],[7,4],[41,4],[46,4],[47,4],[42,4],[43,4],[44,4],[45,4],[8,4],[51,4],[48,4],[49,4],[50,4],[52,4],[9,4],[53,4],[54,4],[55,4],[56,4],[57,4],[1,4],[10,4],[59,4],[58,4],[14,4],[13,4],[146,106],[153,107],[145,106],[160,108],[137,109],[136,110],[159,96],[154,111],[157,112],[139,113],[138,114],[134,115],[133,116],[156,117],[135,118],[140,119],[141,4],[144,119],[131,4],[162,120],[161,119],[148,121],[149,122],[151,123],[147,124],[150,125],[155,96],[142,126],[143,127],[152,128],[132,129],[158,130],[61,4],[62,131],[84,132],[93,133],[89,134],[85,4],[90,135],[87,4],[92,136],[97,137],[86,4],[95,4],[94,4],[96,138],[88,139],[91,140],[112,132],[114,141],[113,142],[115,143]],"exportedModulesMap":[[60,1],[117,144],[110,145],[116,146],[120,147],[106,148],[73,16],[72,4],[71,4],[70,4],[69,4],[63,17],[64,18],[65,19],[68,20],[67,4],[66,18],[109,21],[108,22],[107,4],[123,23],[121,4],[233,4],[236,24],[235,4],[126,25],[122,23],[124,26],[125,23],[127,4],[216,27],[215,28],[217,28],[222,29],[225,30],[228,31],[229,32],[223,4],[230,4],[231,33],[232,34],[241,35],[242,4],[243,4],[244,4],[226,36],[227,4],[218,4],[245,4],[246,4],[128,37],[129,37],[164,38],[165,39],[166,40],[167,41],[168,42],[169,43],[170,44],[171,45],[172,46],[173,47],[174,47],[176,48],[175,49],[177,50],[178,51],[179,52],[163,53],[213,4],[180,54],[181,55],[182,56],[214,57],[183,58],[184,59],[185,60],[186,61],[187,62],[188,63],[189,64],[190,65],[191,66],[192,67],[193,67],[194,68],[195,69],[197,70],[196,71],[198,72],[199,73],[200,74],[201,75],[202,76],[203,77],[204,78],[205,79],[206,80],[207,81],[208,82],[209,83],[210,84],[211,85],[212,86],[247,4],[248,4],[220,4],[249,4],[221,4],[274,87],[275,88],[250,89],[253,89],[272,87],[273,87],[263,87],[262,90],[260,87],[255,87],[268,87],[266,87],[270,87],[254,87],[267,87],[271,87],[256,87],[257,87],[269,87],[251,87],[258,87],[259,87],[261,87],[265,87],[276,91],[264,87],[252,87],[289,92],[288,4],[283,91],[285,93],[284,91],[277,91],[278,91],[280,91],[282,91],[286,93],[287,93],[279,93],[281,93],[219,94],[224,95],[290,4],[291,4],[292,4],[293,96],[294,4],[295,97],[130,4],[234,4],[80,4],[77,98],[82,99],[76,4],[78,4],[83,100],[81,101],[79,4],[240,102],[239,103],[238,104],[237,105],[11,4],[12,4],[16,4],[15,4],[2,4],[17,4],[18,4],[19,4],[20,4],[21,4],[22,4],[23,4],[24,4],[3,4],[4,4],[28,4],[25,4],[26,4],[27,4],[29,4],[30,4],[31,4],[5,4],[32,4],[33,4],[34,4],[35,4],[6,4],[39,4],[36,4],[37,4],[38,4],[40,4],[7,4],[41,4],[46,4],[47,4],[42,4],[43,4],[44,4],[45,4],[8,4],[51,4],[48,4],[49,4],[50,4],[52,4],[9,4],[53,4],[54,4],[55,4],[56,4],[57,4],[1,4],[10,4],[59,4],[58,4],[14,4],[13,4],[146,106],[153,107],[145,106],[160,108],[137,109],[136,110],[159,96],[154,111],[157,112],[139,113],[138,114],[134,115],[133,116],[156,117],[135,118],[140,119],[141,4],[144,119],[131,4],[162,120],[161,119],[148,121],[149,122],[151,123],[147,124],[150,125],[155,96],[142,126],[143,127],[152,128],[132,129],[158,130],[61,4],[62,131],[84,132],[93,133],[89,134],[85,4],[90,135],[87,4],[92,136],[97,137],[86,4],[95,4],[94,4],[96,138],[88,139],[91,140],[112,132],[114,141],[113,142],[115,143]],"semanticDiagnosticsPerFile":[60,117,110,118,119,116,120,111,98,99,75,100,74,103,104,102,105,101,106,73,72,71,70,69,63,64,65,68,67,66,109,108,107,123,121,233,236,235,126,122,124,125,127,216,215,217,222,225,228,229,223,230,231,232,241,242,243,244,226,227,218,245,246,128,129,164,165,166,167,168,169,170,171,172,173,174,176,175,177,178,179,163,213,180,181,182,214,183,184,185,186,187,188,189,190,191,192,193,194,195,197,196,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,247,248,220,249,221,274,275,250,253,272,273,263,262,260,255,268,266,270,254,267,271,256,257,269,251,258,259,261,265,276,264,252,289,288,283,285,284,277,278,280,282,286,287,279,281,219,224,290,291,292,293,294,295,130,234,80,77,82,76,78,83,81,79,240,239,238,237,11,12,16,15,2,17,18,19,20,21,22,23,24,3,4,28,25,26,27,29,30,31,5,32,33,34,35,6,39,36,37,38,40,7,41,46,47,42,43,44,45,8,51,48,49,50,52,9,53,54,55,56,57,1,10,59,58,14,13,146,153,145,160,137,136,159,154,157,139,138,134,133,156,135,140,141,144,131,162,161,148,149,151,147,150,155,142,143,152,132,158,61,62,84,93,89,85,90,87,92,97,86,95,94,96,88,91,112,114,113,115]},"version":"4.9.5"}