@toa.io/extensions.origins 1.0.0-alpha.0 → 1.0.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +7 -7
- package/source/annotation.ts +2 -1
- package/source/manifest.ts +2 -1
- package/transpiled/Factory.d.ts +17 -0
- package/transpiled/Factory.js +65 -0
- package/transpiled/Factory.js.map +1 -0
- package/transpiled/annotation.d.ts +10 -0
- package/transpiled/annotation.js +91 -0
- package/transpiled/annotation.js.map +1 -0
- package/transpiled/constants.d.ts +1 -0
- package/transpiled/constants.js +3 -0
- package/transpiled/constants.js.map +1 -0
- package/transpiled/env.d.ts +5 -0
- package/transpiled/env.js +40 -0
- package/transpiled/env.js.map +1 -0
- package/transpiled/extension.d.ts +10 -0
- package/transpiled/extension.js +49 -0
- package/transpiled/extension.js.map +1 -0
- package/transpiled/index.d.ts +2 -0
- package/transpiled/index.js +9 -0
- package/transpiled/index.js.map +1 -0
- package/transpiled/manifest.d.ts +2 -0
- package/transpiled/manifest.js +36 -0
- package/transpiled/manifest.js.map +1 -0
- package/transpiled/protocols/amqp/aspect.d.ts +11 -0
- package/transpiled/protocols/amqp/aspect.js +53 -0
- package/transpiled/protocols/amqp/aspect.js.map +1 -0
- package/transpiled/protocols/amqp/deployment.d.ts +5 -0
- package/transpiled/protocols/amqp/deployment.js +55 -0
- package/transpiled/protocols/amqp/deployment.js.map +1 -0
- package/transpiled/protocols/amqp/id.d.ts +1 -0
- package/transpiled/protocols/amqp/id.js +3 -0
- package/transpiled/protocols/amqp/id.js.map +1 -0
- package/transpiled/protocols/amqp/index.d.ts +5 -0
- package/transpiled/protocols/amqp/index.js +10 -0
- package/transpiled/protocols/amqp/index.js.map +1 -0
- package/transpiled/protocols/amqp/protocols.d.ts +2 -0
- package/transpiled/protocols/amqp/protocols.js +3 -0
- package/transpiled/protocols/amqp/protocols.js.map +1 -0
- package/transpiled/protocols/http/.aspect/permissions.d.ts +7 -0
- package/transpiled/protocols/http/.aspect/permissions.js +52 -0
- package/transpiled/protocols/http/.aspect/permissions.js.map +1 -0
- package/transpiled/protocols/http/aspect.d.ts +11 -0
- package/transpiled/protocols/http/aspect.js +87 -0
- package/transpiled/protocols/http/aspect.js.map +1 -0
- package/transpiled/protocols/http/id.d.ts +1 -0
- package/transpiled/protocols/http/id.js +3 -0
- package/transpiled/protocols/http/id.js.map +1 -0
- package/transpiled/protocols/http/index.d.ts +4 -0
- package/transpiled/protocols/http/index.js +8 -0
- package/transpiled/protocols/http/index.js.map +1 -0
- package/transpiled/protocols/http/protocols.d.ts +2 -0
- package/transpiled/protocols/http/protocols.js +3 -0
- package/transpiled/protocols/http/protocols.js.map +1 -0
- package/transpiled/protocols/index.d.ts +9 -0
- package/transpiled/protocols/index.js +10 -0
- package/transpiled/protocols/index.js.map +1 -0
- 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": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.3",
|
|
4
4
|
"description": "Toa Origins",
|
|
5
5
|
"author": "temich <tema.gurtovoy@gmail.com>",
|
|
6
6
|
"homepage": "https://github.com/toa-io/toa#readme",
|
|
@@ -17,12 +17,12 @@
|
|
|
17
17
|
"main": "transpiled/index.js",
|
|
18
18
|
"types": "transpiled/index.d.ts",
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@toa.io/core": "1.0.0-alpha.
|
|
21
|
-
"@toa.io/generic": "1.0.0-alpha.
|
|
22
|
-
"@toa.io/pointer": "1.0.0-alpha.
|
|
23
|
-
"@toa.io/schemas": "1.0.0-alpha.
|
|
20
|
+
"@toa.io/core": "1.0.0-alpha.3",
|
|
21
|
+
"@toa.io/generic": "1.0.0-alpha.3",
|
|
22
|
+
"@toa.io/pointer": "1.0.0-alpha.3",
|
|
23
|
+
"@toa.io/schemas": "1.0.0-alpha.3",
|
|
24
24
|
"comq": "0.10.1",
|
|
25
|
-
"msgpackr": "1.
|
|
25
|
+
"msgpackr": "1.10.1"
|
|
26
26
|
},
|
|
27
27
|
"scripts": {
|
|
28
28
|
"transpile": "tsc"
|
|
@@ -31,5 +31,5 @@
|
|
|
31
31
|
"preset": "ts-jest",
|
|
32
32
|
"testEnvironment": "node"
|
|
33
33
|
},
|
|
34
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "e36ac7871fc14d15863aaf8f9bbdeace8bdfa9f0"
|
|
35
35
|
}
|
package/source/annotation.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { resolve } from 'node:path'
|
|
2
2
|
import * as schemas from '@toa.io/schemas'
|
|
3
3
|
import { type Protocol, protocols } from './protocols'
|
|
4
|
+
import type { Schema } from '@toa.io/schemas'
|
|
4
5
|
import type { Instance } from './extension'
|
|
5
6
|
|
|
6
7
|
export function normalize (instances: Instance[], annotation: Annotation): void {
|
|
@@ -75,7 +76,7 @@ function resolveProtocol (reference: string): Protocol {
|
|
|
75
76
|
}
|
|
76
77
|
|
|
77
78
|
const path = resolve(__dirname, '../schemas/annotation.cos.yaml')
|
|
78
|
-
const schema = schemas.schema(path)
|
|
79
|
+
const schema: Schema<any> = schemas.schema(path)
|
|
79
80
|
|
|
80
81
|
export type Component = Origins | Properties
|
|
81
82
|
export type Annotation = Record<string, Component>
|
package/source/manifest.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { resolve } from 'node:path'
|
|
2
2
|
import * as schemas from '@toa.io/schemas'
|
|
3
|
+
import type { Schema } from '@toa.io/schemas'
|
|
3
4
|
|
|
4
5
|
export function validate (manifest: Manifest): void {
|
|
5
6
|
if (manifest !== null) schema.validate(manifest)
|
|
6
7
|
}
|
|
7
8
|
|
|
8
9
|
const path = resolve(__dirname, '../schemas/manifest.cos.yaml')
|
|
9
|
-
const schema = schemas.schema(path)
|
|
10
|
+
const schema: Schema<any> = schemas.schema(path)
|
|
10
11
|
|
|
11
12
|
export type Manifest = Record<string, string | null> | null
|
|
@@ -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 @@
|
|
|
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,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,CAAC;QACjC,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;IACtC,CAAC;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,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,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;AAG1C,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,GAAgB,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,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,gBAAgB,MAAM,gBAAgB,CAAC,CAAA;QAC1E,CAAC;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,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,CAAC;QAC9C,MAAM,OAAO,GAAG,EAAE,CAAA;QAElB,KAAK,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3D,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,CAAC;gBACjC,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;gBAEpD,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAA;YAChC,CAAC;QACH,CAAC;QAED,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAA;IACpC,CAAC;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 @@
|
|
|
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,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 @@
|
|
|
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,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,CAAC;YACzB,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;QACxB,CAAC;QAED,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACrD,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;QAC5B,CAAC;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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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.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","../../../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.ts","../../../runtime/core/types/operations.d.ts","../../../runtime/core/types/message.d.ts","../../../runtime/core/types/receiver.d.ts","../../../runtime/core/types/index.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/cookie/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/minimatch/dist/cjs/ast.d.ts","../../../node_modules/minimatch/dist/cjs/escape.d.ts","../../../node_modules/minimatch/dist/cjs/unescape.d.ts","../../../node_modules/minimatch/dist/cjs/index.d.ts","../../../node_modules/@types/glob/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/lodash/common/common.d.ts","../../../node_modules/@types/lodash/common/array.d.ts","../../../node_modules/@types/lodash/common/collection.d.ts","../../../node_modules/@types/lodash/common/date.d.ts","../../../node_modules/@types/lodash/common/function.d.ts","../../../node_modules/@types/lodash/common/lang.d.ts","../../../node_modules/@types/lodash/common/math.d.ts","../../../node_modules/@types/lodash/common/number.d.ts","../../../node_modules/@types/lodash/common/object.d.ts","../../../node_modules/@types/lodash/common/seq.d.ts","../../../node_modules/@types/lodash/common/string.d.ts","../../../node_modules/@types/lodash/common/util.d.ts","../../../node_modules/@types/lodash/index.d.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/minimist/index.d.ts","../../../node_modules/@types/mute-stream/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/prettier/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/ssh2-streams/index.d.ts","../../../node_modules/@types/ssh2/index.d.ts","../../../node_modules/@types/stack-utils/index.d.ts","../../../node_modules/@types/statuses/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/wrap-ansi/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","9c27c480056fd6f51691274b2900434ea2d94f3f4fb7aa3dc636f1a6fdc0077b","7fb2db0c433324740f8fbe131d3e8feef5b1003d4e9812398748f0febd4261da","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","a082f228d494500d41d1b7618b581357f833030a9cdbebeec705c88f8e5a8173","b297d49b7ce31c940c72329a2a8e0d3ea4493da2d02dbb2e10d18a70c41c2dbd","5b12673719e49d2ef56a8263d60f95b6b4e48aa6bd1837c7b2e3c39232431ffb","2beb94ef1961eb5c639e8f3cbbe1483bf2d9d53855fde0b20c1a3429d3a6160b","d9c3ed7e2851a2331b0053d3128d730aa19ce0685a0a0409adc0e1e86c00e17c","93f5a43dafa0ed136ac2c886648862de399d97aefb32c946dfe2ab780cd460f6","279541f81029449f33b96790cd7222664bdf66eaa6c1c719c8b451ae8b69ebe5","863a16bffa4414a6784927eec1b17523521761b2b2344a0b98f140c91d659859","1d59fdf9e61f92e14aebf97a22991748e60be71db2145783aa81e12e449b3a08","1f3d731ec6a2963e054fe46cfe1eecea1b29f71fc4ee1bf9ddd1c9908637b48d","d721d38f03dbf541b5fc4fe9056ef0fbd2b1650af027b57a41050b6d5eb7deea","dcd8de07b4735d845b06e546f4f4c6014388cceaf171495e8e7ec40551e167cf","a06788dcbb350c361b23aad1671f6818641850ab75050e7abc0ae42f6ae49090","d0527ff4a59e0993c280322bacc078d1ae663b6a4d198698cc4d50fcfa145d05",{"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"},"fa8f0e2be1c4afd57834adef975c24d2072aae796f0c9ae8928edc7a59119a4b","737c0fb72ee31b95412399b944f7584a4033c553126f3675e567aeeebe9cd50a","3836f34a2657045779393e3952dd4f6a6dd47248ca4850bffb46ab4f5793ebeb",{"version":"299f0c142b4d9b29f9dce26d5892899e4915832731aa11084ca206ef39e612e5","signature":"fd264726367f522dbf60f46b2c014d1a433e9015870eb15574257fd35e616af2"},{"version":"d718e21fff2fde1575fc68e95e94f04102fbf40511c0e1c655ed6f86e43a81b2","signature":"02cd5fcc7ca5feba54971ad54e819212216af17387904fefb0d0fbb8dc47ec38"},"8ad066c1733d278694e9e32415d98d72a702867626be6e0401a6cd8a541905fc","71e46111f57a5c82031adbac22eb542b5f63a8be4d5ee9253036cafe81d16112","bee841486123ba419b764cc86c5e4faf47317eb9c2d048408b88e7efa885106e","53e95c2c536d057f438646855f24e39f888dc415ca56ef8fae1ec1d5b5485883",{"version":"ba3a9e16a4404b0da1113e0ab593b2f4401b0f30a73bc76e80159cde25665741","signature":"dafc15b2377bb59f132d10f8c8285f7dc2e64d3288a290db35a4366b69bed024"},{"version":"859a6e76cf34d82fb71e864d5dfe6470dd298c39b088325bd346eff87a48c458","signature":"97d4814e25bfa13cf15afa5e4892df2ba7e1e60310398bf242a02be9da8f9a64"},{"version":"86ed435bb953c97e7476d851f6d8ebf8a1b6c84616328f9de1f3aa8c87b5a9fa","signature":"af898d865eba87228607c9f51ebadc3281b779546a827477c88b2221132ba137"},{"version":"ee5b11bf95024d740540a1137f9f6a79c730403d9801bbeeeb30c6309063d28c","signature":"206cc1c976788945272abac46d80680d95d691db82cb3fb932f1da766a8f95f8"},{"version":"3153f06c2c3a14ae77ab7c1472ddd0bf3e28aff57c73aef2df8b167b3ff20057","signature":"a0be985fe55ad62bff14e3a560588107ba65d3751cbdc32ff83cc8baa65f850c"},"923c136dcbf20f140c369078a7eb56f6697889d104397d694f70e21dd08b1810","2c8e55457aaf4902941dfdba4061935922e8ee6e120539c9801cd7b400fae050","8041cfce439ff29d339742389de04c136e3029d6b1817f07b2d7fcbfb7534990","670a76db379b27c8ff42f1ba927828a22862e2ab0b0908e38b671f0e912cc5ed","9d38964b57191567a14b396422c87488cecd48f405c642daa734159875ee81d9","069bebfee29864e3955378107e243508b163e77ab10de6a5ee03ae06939f0bb9","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","1748c03e7a7d118f7f6648c709507971eb0d416f489958492c5ae625de445184","efdced704bd09db6984a2a26e3573bc43cdc2379bdef3bcff6cff77efe8ba82b","d3f2d715f57df3f04bf7b16dde01dec10366f64fce44503c92b8f78f614c1769","b78cd10245a90e27e62d0558564f5d9a16576294eee724a59ae21b91f9269e4a","dcc9081d68c2ade5c51ac7bf5f37cce630359408e713999269b77f611a30d871","2f5747b1508ccf83fad0c251ba1e5da2f5a30b78b09ffa1cfaf633045160afed",{"version":"50072f976cfa86af1a3044f55cd729d992abe39222d2f6cdf929266c77a42b0b","affectsGlobalScope":true},"b71c603a539078a5e3a039b20f2b0a0d1708967530cf97dec8850a9ca45baa2b","34118be360cdd3381bbebbfd4b093c394460c8fc5df40688d58f45d86ab1448b","43cdd474c5aa3340da4816bb8f1ae7f3b1bcf9e70d997afc36a0f2c432378c84","c56ef8201a294d65d1132160ebc76ed0c0a98dcf983d20775c8c8c0912210572","de0199a112f75809a7f80ec071495159dcf3e434bc021347e0175627398264c3","1a2bed55cfa62b4649485df27c0e560b04d4da4911e3a9f0475468721495563f","854045924626ba585f454b53531c42aed4365f02301aa8eca596423f4675b71f","fd326577c62145816fe1acc306c734c2396487f76719d3785d4e825b34540b33","afe73051ff6a03a9565cbd8ebb0e956ee3df5e913ad5c1ded64218aabfa3dcb5","035a5df183489c2e22f3cf59fc1ed2b043d27f357eecc0eb8d8e840059d44245","a4809f4d92317535e6b22b01019437030077a76fec1d93b9881c9ed4738fcc54","5f53fa0bd22096d2a78533f94e02c899143b8f0f9891a46965294ee8b91a9434","cdcc132f207d097d7d3aa75615ab9a2e71d6a478162dde8b67f88ea19f3e54de","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","d96cc6598148bf1a98fb2e8dcf01c63a4b3558bdaec6ef35e087fd0562eb40ec",{"version":"b2fdcc3836d425833af10e536ae5491c34e218bc71870f12a401720f874b6ce4","affectsGlobalScope":true},"686e548ae30250d62532c8cacb43fccc922b693408371bd3503563c4a0f28eed","f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","b8442e9db28157344d1bc5d8a5a256f1692de213f0c0ddeb84359834015a008c","458111fc89d11d2151277c822dfdc1a28fa5b6b2493cf942e37d4cd0a6ee5f22","da2b6356b84a40111aaecb18304ea4e4fcb43d70efb1c13ca7d7a906445ee0d3","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","febf0b2de54781102b00f61653b21377390a048fbf5262718c91860d11ff34a6","6f294731b495c65ecf46a5694f0082954b961cf05463bea823f8014098eaffa0","0aaef8cded245bf5036a7a40b65622dd6c4da71f7a35343112edbe112b348a1e","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","68a0d0c508e1b6d8d23a519a8a0a3303dc5baa4849ca049f21e5bad41945e3fc","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","b03afe4bec768ae333582915146f48b161e567a81b5ebc31c4d78af089770ac9","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9","4f6a12044ee6f458db11964153830abbc499e73d065c51c329ec97407f4b13dd","963d59066dd6742da1918a6213a209bcc205b8ee53b1876ee2b4e6d80f97c85e","fbca5ffaebf282ec3cdac47b0d1d4a138a8b0bb32105251a38acb235087d3318","dcefc29f25daf56cd69c0a3d3d19f51938efe1e6a15391950be43a76222ee3ed","f4694959db84d3792ca4d4e04c0bc157c4d28627cb0406c9236351f261a3f5e0","22293bd6fa12747929f8dfca3ec1684a3fe08638aa18023dd286ab337e88a592","916be7d770b0ae0406be9486ac12eb9825f21514961dd050594c4b250617d5a8","d88a5e779faf033be3d52142a04fbe1cb96009868e3bbdd296b2bc6c59e06c0e",{"version":"4698841dc5a91fe716dd41ec7136867bbde9a274ce21031e5ef6ce2d8a552ceb","affectsGlobalScope":true},"5b5337f28573ffdbc95c3653c4a7961d0f02fdf4788888253bf74a3b5a05443e","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","85f8ebd7f245e8bf29da270e8b53dcdd17528826ffd27176c5fc7e426213ef5a","7abf54763b6709a2b72ecd1247c3cfe96f8c44fe6e7ce3897951ee8f4c394640","85976d1088db28912f61f76fd68103dd3625480f5ad5ba4c98519a81693ef717","ab82804a14454734010dcdcd43f564ff7b0389bee4c5692eec76ff5b30d4cf66","1f4ae755492a669b317903a6b1664cb7af3fe0c3d1eec6447f4e95a80616d15a","12fe557e4c2d5ce9e11362f69a8d7c05d0588de4ae415afe8c5106da5c2772aa","f2f23fe34b735887db1d5597714ae37a6ffae530cafd6908c9d79d485667c956","7fae4b2bc906f3e6840725cc24affaa4e684e6c9cc20254242c5df4bede5b6f6","24112d1a55250f4da7f9edb9dabeac8e3badebdf4a55b421fc7b8ca5ccc03133","bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","5d30d04a14ed8527ac5d654dc345a4db11b593334c11a65efb6e4facc5484a0e"],"root":[83,84,[107,111],[113,115],119,120,[125,129]],"options":{"allowJs":true,"declaration":true,"esModuleInterop":true,"experimentalDecorators":true,"module":1,"noImplicitOverride":true,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"target":99},"fileIdsList":[[69,77,82,106,115,119,120,125,216],[115,118,125,196,216],[216],[82,127,216],[69,71,77,82,106,119,120,124,216],[125,126,216],[118,196,216],[92,106,109,216],[82,83,216],[83,84,107,108,216],[82,106,216],[82,106,110,112,114,216],[110,111,113,216],[106,109,114,126,216],[78,79,80,81,204,216],[71,216],[72,216],[71,72,73,216],[72,73,74,75,76,216],[116,117,216],[116,216],[130,216],[216,247],[130,131,132,133,134,216],[130,132,216],[189,216,223,224],[189,216,223],[186,189,216,223,229,230,231],[216,225,230,232,234],[186,187,216,223,239],[187,216,223],[216,242],[216,243],[216,249,252],[216,257,259,260,261,262,263,264,265,266,267,268,269],[216,257,258,260,261,262,263,264,265,266,267,268,269],[216,258,259,260,261,262,263,264,265,266,267,268,269],[216,257,258,259,261,262,263,264,265,266,267,268,269],[216,257,258,259,260,262,263,264,265,266,267,268,269],[216,257,258,259,260,261,263,264,265,266,267,268,269],[216,257,258,259,260,261,262,264,265,266,267,268,269],[216,257,258,259,260,261,262,263,265,266,267,268,269],[216,257,258,259,260,261,262,263,264,266,267,268,269],[216,257,258,259,260,261,262,263,264,265,267,268,269],[216,257,258,259,260,261,262,263,264,265,266,268,269],[216,257,258,259,260,261,262,263,264,265,266,267,269],[216,257,258,259,260,261,262,263,264,265,266,267,268],[204,216,223],[137,216],[173,216],[174,179,207,216],[175,186,187,194,204,215,216],[175,176,186,194,216],[177,216],[178,179,187,195,216],[179,204,212,216],[180,182,186,194,216],[181,216],[182,183,216],[186,216],[184,186,216],[173,186,216],[186,187,188,204,215,216],[186,187,188,201,204,207,216],[171,216,220],[182,186,189,194,204,215,216],[186,187,189,190,194,204,212,215,216],[189,191,204,212,215,216],[137,138,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,219,220,221,222],[186,192,216],[193,215,216,220],[182,186,194,204,216],[195,216],[196,216],[173,197,216],[198,214,216,220],[199,216],[200,216],[186,201,202,216],[201,203,216,218],[174,186,204,205,206,207,216],[174,204,206,216],[204,205,216],[207,216],[208,216],[173,204,216],[186,210,211,216],[210,211,216],[179,194,204,212,216],[213,216],[194,214,216],[174,189,200,215,216],[179,216],[204,216,217],[193,216,218],[216,219],[174,179,186,188,197,204,215,216,218,220],[204,216,221],[216,278,317],[216,278,302,317],[216,317],[216,278],[216,278,303,317],[216,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316],[216,303,317],[187,204,216,223,228],[189,216,223,228,233],[186,194,204,216,223,318],[216,326],[85,216],[85,86,88,90,216],[90,91,216],[85,87,88,89,186,204,216],[216,245,251],[216,246,250],[216,249],[216,239],[216,236,237,238],[204,216],[216,248],[148,152,215,216],[148,204,215,216],[143,216],[145,148,212,215,216],[194,212,216],[216,223],[143,216,223],[145,148,194,215,216],[140,141,144,147,174,186,204,215,216],[140,146,216],[144,148,174,207,215,216,223],[174,216,223],[164,174,216,223],[142,143,216,223],[148,216],[142,143,144,145,146,147,148,149,150,152,153,154,155,156,157,158,159,160,161,162,163,165,166,167,168,169,170,216],[148,155,156,216],[146,148,156,157,216],[147,216],[140,143,148,216],[148,152,156,157,216],[152,216],[146,148,151,215,216],[140,145,146,148,152,155,216],[174,204,216],[143,148,164,174,216,220,223],[70,216],[106,216],[97,99,216],[94,95,97,216],[94,97,101,216],[93,98,99,100,106,216],[93,94,95,96,97,98,99,100,101,102,103,104,105,216],[94,104,216],[96,216],[94,95,216],[106,121,122,216],[123,216],[121,123,216],[77,106,120],[125],[71,119,120,124],[125,126],[106,126]],"referencedMap":[[126,1],[119,2],[127,3],[128,4],[125,5],[129,6],[120,7],[107,8],[108,9],[84,3],[109,10],[83,3],[112,11],[113,12],[111,3],[114,13],[110,3],[115,14],[82,15],[81,3],[80,3],[79,3],[78,3],[72,16],[73,17],[74,18],[77,19],[76,3],[75,17],[118,20],[117,21],[116,3],[132,22],[130,3],[245,3],[248,23],[247,3],[135,24],[131,22],[133,25],[134,22],[136,3],[225,26],[224,27],[226,3],[227,27],[232,28],[235,29],[240,30],[241,31],[233,3],[242,3],[243,32],[244,33],[253,34],[254,3],[255,3],[256,3],[258,35],[259,36],[257,37],[260,38],[261,39],[262,40],[263,41],[264,42],[265,43],[266,44],[267,45],[268,46],[269,47],[228,3],[270,3],[271,3],[272,48],[273,3],[137,49],[138,49],[173,50],[174,51],[175,52],[176,53],[177,54],[178,55],[179,56],[180,57],[181,58],[182,59],[183,59],[185,60],[184,61],[186,62],[187,63],[188,64],[172,65],[222,3],[189,66],[190,67],[191,68],[223,69],[192,70],[193,71],[194,72],[195,73],[196,74],[197,75],[198,76],[199,77],[200,78],[201,79],[202,79],[203,80],[204,81],[206,82],[205,83],[207,84],[208,85],[209,86],[210,87],[211,88],[212,89],[213,90],[214,91],[215,92],[216,93],[217,94],[218,95],[219,96],[220,97],[221,98],[274,3],[275,3],[276,3],[230,3],[277,3],[231,3],[302,99],[303,100],[278,101],[281,101],[300,99],[301,99],[291,99],[290,102],[288,99],[283,99],[296,99],[294,99],[298,99],[282,99],[295,99],[299,99],[284,99],[285,99],[297,99],[279,99],[286,99],[287,99],[289,99],[293,99],[304,103],[292,99],[280,99],[317,104],[316,3],[311,103],[313,105],[312,103],[305,103],[306,103],[308,103],[310,103],[314,105],[315,105],[307,105],[309,105],[229,106],[234,107],[318,48],[319,108],[320,3],[321,3],[322,3],[323,3],[324,3],[325,3],[326,3],[327,109],[139,3],[246,3],[89,3],[86,110],[91,111],[85,3],[87,3],[92,112],[90,113],[88,3],[252,114],[251,115],[250,116],[236,117],[237,117],[239,118],[238,117],[69,119],[249,120],[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],[155,121],[162,122],[154,121],[169,123],[146,124],[145,125],[168,126],[163,127],[166,128],[148,129],[147,130],[143,131],[142,132],[165,133],[144,134],[149,135],[150,3],[153,135],[140,3],[171,136],[170,135],[157,137],[158,138],[160,139],[156,140],[159,141],[164,126],[151,142],[152,143],[161,144],[141,145],[167,146],[70,3],[71,147],[93,148],[102,149],[98,150],[94,3],[99,151],[96,3],[101,152],[106,153],[95,3],[104,3],[103,3],[105,154],[97,155],[100,156],[121,148],[123,157],[122,158],[124,159]],"exportedModulesMap":[[126,160],[119,161],[125,162],[129,163],[115,164],[82,15],[81,3],[80,3],[79,3],[78,3],[72,16],[73,17],[74,18],[77,19],[76,3],[75,17],[118,20],[117,21],[116,3],[132,22],[130,3],[245,3],[248,23],[247,3],[135,24],[131,22],[133,25],[134,22],[136,3],[225,26],[224,27],[226,3],[227,27],[232,28],[235,29],[240,30],[241,31],[233,3],[242,3],[243,32],[244,33],[253,34],[254,3],[255,3],[256,3],[258,35],[259,36],[257,37],[260,38],[261,39],[262,40],[263,41],[264,42],[265,43],[266,44],[267,45],[268,46],[269,47],[228,3],[270,3],[271,3],[272,48],[273,3],[137,49],[138,49],[173,50],[174,51],[175,52],[176,53],[177,54],[178,55],[179,56],[180,57],[181,58],[182,59],[183,59],[185,60],[184,61],[186,62],[187,63],[188,64],[172,65],[222,3],[189,66],[190,67],[191,68],[223,69],[192,70],[193,71],[194,72],[195,73],[196,74],[197,75],[198,76],[199,77],[200,78],[201,79],[202,79],[203,80],[204,81],[206,82],[205,83],[207,84],[208,85],[209,86],[210,87],[211,88],[212,89],[213,90],[214,91],[215,92],[216,93],[217,94],[218,95],[219,96],[220,97],[221,98],[274,3],[275,3],[276,3],[230,3],[277,3],[231,3],[302,99],[303,100],[278,101],[281,101],[300,99],[301,99],[291,99],[290,102],[288,99],[283,99],[296,99],[294,99],[298,99],[282,99],[295,99],[299,99],[284,99],[285,99],[297,99],[279,99],[286,99],[287,99],[289,99],[293,99],[304,103],[292,99],[280,99],[317,104],[316,3],[311,103],[313,105],[312,103],[305,103],[306,103],[308,103],[310,103],[314,105],[315,105],[307,105],[309,105],[229,106],[234,107],[318,48],[319,108],[320,3],[321,3],[322,3],[323,3],[324,3],[325,3],[326,3],[327,109],[139,3],[246,3],[89,3],[86,110],[91,111],[85,3],[87,3],[92,112],[90,113],[88,3],[252,114],[251,115],[250,116],[236,117],[237,117],[239,118],[238,117],[69,119],[249,120],[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],[155,121],[162,122],[154,121],[169,123],[146,124],[145,125],[168,126],[163,127],[166,128],[148,129],[147,130],[143,131],[142,132],[165,133],[144,134],[149,135],[150,3],[153,135],[140,3],[171,136],[170,135],[157,137],[158,138],[160,139],[156,140],[159,141],[164,126],[151,142],[152,143],[161,144],[141,145],[167,146],[70,3],[71,147],[93,148],[102,149],[98,150],[94,3],[99,151],[96,3],[101,152],[106,153],[95,3],[104,3],[103,3],[105,154],[97,155],[100,156],[121,148],[123,157],[122,158],[124,159]],"semanticDiagnosticsPerFile":[126,119,127,128,125,129,120,107,108,84,109,83,112,113,111,114,110,115,82,81,80,79,78,72,73,74,77,76,75,118,117,116,132,130,245,248,247,135,131,133,134,136,225,224,226,227,232,235,240,241,233,242,243,244,253,254,255,256,258,259,257,260,261,262,263,264,265,266,267,268,269,228,270,271,272,273,137,138,173,174,175,176,177,178,179,180,181,182,183,185,184,186,187,188,172,222,189,190,191,223,192,193,194,195,196,197,198,199,200,201,202,203,204,206,205,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,274,275,276,230,277,231,302,303,278,281,300,301,291,290,288,283,296,294,298,282,295,299,284,285,297,279,286,287,289,293,304,292,280,317,316,311,313,312,305,306,308,310,314,315,307,309,229,234,318,319,320,321,322,323,324,325,326,327,139,246,89,86,91,85,87,92,90,88,252,251,250,236,237,239,238,69,249,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,155,162,154,169,146,145,168,163,166,148,147,143,142,165,144,149,150,153,140,171,170,157,158,160,156,159,164,151,152,161,141,167,70,71,93,102,98,94,99,96,101,106,95,104,103,105,97,100,121,123,122,124]},"version":"5.3.3"}
|