@squiz/component-cli-lib 1.2.1-alpha.65 → 1.2.1-alpha.69

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/.gitlab-ci.yml CHANGED
@@ -1,15 +1,46 @@
1
- smoke-test:
2
- stage: smoke-test
3
- tags:
4
- - size/l
5
- except:
6
- - tags
7
- only:
8
- - develop
1
+ ---
2
+ # uat target branch only.
3
+ .rules:when-uat:
4
+ rules:
5
+ - if: $CI_COMMIT_BRANCH == $TARGET_BRANCH_UAT
6
+ when: on_success
7
+ - when: never
8
+
9
+ .rules:when-development:
10
+ rules:
11
+ - if: $CI_COMMIT_BRANCH == $TARGET_BRANCH_DEVELOPMENT
12
+ when: on_success
13
+ - when: never
14
+
15
+ .rules:when-other-branch:
16
+ rules:
17
+ - if: $CI_COMMIT_BRANCH != $TARGET_BRANCH_DEVELOPMENT && $CI_COMMIT_BRANCH != $TARGET_BRANCH_UAT
18
+ when: on_success
19
+ - when: never
20
+
21
+ .get-service-urls:
22
+ stage: smoke-test-setup
23
+ image:
24
+ name: amazon/aws-cli
9
25
  variables:
10
- COMPONENT_MANAGEMENT_SERVICE_URL: $COMPONENT_MANAGEMENT_SERVICE_URL
11
- COMPONENT_RENDER_SERVICE_URL: $COMPONENT_RENDER_SERVICE_URL
26
+ GIT_LAB_CI: "true"
27
+ DEPLOYMENT_LABEL: $CI_COMMIT_BRANCH
28
+ tags:
29
+ - access/aws-dx-nonprod
30
+ script:
31
+ - set -e
32
+ - echo "COMPONENT_MANAGEMENT_SERVICE_URL=$(aws --region $AWS_REGION cloudformation describe-stacks --stack-name dx-${DEPLOYMENT_LABEL}-cmp --max-items 1 --query "Stacks[].Outputs[?contains(OutputKey,'managementServiceURL')].OutputValue" --output text)" >> service-urls.env
33
+ - echo "COMPONENT_RENDER_SERVICE_URL=$(aws --region $AWS_REGION cloudformation describe-stacks --stack-name dx-${DEPLOYMENT_LABEL}-cmp --max-items 1 --query "Stacks[].Outputs[?contains(OutputKey,'renderServiceURL')].OutputValue" --output text)" >> service-urls.env
34
+ artifacts:
35
+ reports:
36
+ dotenv: service-urls.env
37
+
38
+ .smoke-test:
39
+ stage: smoke-test
40
+ tags:
41
+ - access/aws-dx-nonprod
12
42
  script:
43
+ - env
13
44
  - npm i
14
45
  - npm run bootstrap
15
46
  - npm run clean
@@ -22,4 +53,67 @@ smoke-test:
22
53
  max: 2
23
54
  when:
24
55
  - runner_system_failure
25
- - stuck_or_timeout_failure
56
+ - stuck_or_timeout_failure
57
+
58
+ get-branch-service-urls:
59
+ extends:
60
+ - .rules:when-other-branch
61
+ - .get-service-urls
62
+ needs:
63
+ - job: deploy-update-branch-render-service
64
+ - job: deploy-update-branch-management-service
65
+ environment:
66
+ name: non-production-development
67
+ url: components.dev.dx.squiz.cloud
68
+
69
+ get-development-service-urls:
70
+ extends:
71
+ - .rules:when-development
72
+ - .get-service-urls
73
+ needs:
74
+ - job: deploy-update-development-render-service
75
+ - job: deploy-update-development-management-service
76
+ environment:
77
+ name: non-production-development
78
+ url: components.dev.dx.squiz.cloud
79
+
80
+ get-uat-service-urls:
81
+ extends:
82
+ - .rules:when-uat
83
+ - .get-service-urls
84
+ needs:
85
+ - job: deploy-update-uat-render-service
86
+ - job: deploy-update-uat-management-service
87
+ environment:
88
+ name: non-production-development
89
+ url: components.dev.dx.squiz.cloud
90
+
91
+ smoke-test-branch:
92
+ extends:
93
+ - .rules:when-other-branch
94
+ - .smoke-test
95
+ needs:
96
+ - job: get-branch-service-urls
97
+ environment:
98
+ name: non-production-development
99
+ url: components.dev.dx.squiz.cloud
100
+
101
+ smoke-test-development:
102
+ extends:
103
+ - .rules:when-development
104
+ - .smoke-test
105
+ needs:
106
+ - job: get-development-service-urls
107
+ environment:
108
+ name: non-production-development
109
+ url: components.dev.dx.squiz.cloud
110
+
111
+ smoke-test-uat:
112
+ extends:
113
+ - .rules:when-uat
114
+ - .smoke-test
115
+ needs:
116
+ - job: get-uat-service-urls
117
+ environment:
118
+ name: non-production-uat
119
+ url: components.uat.dx.squiz.cloud
package/CHANGELOG.md CHANGED
@@ -3,6 +3,38 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [1.2.1-alpha.69](https://gitlab.squiz.net/developer-experience/cmp/compare/v1.2.1-alpha.67...v1.2.1-alpha.69) (2022-07-19)
7
+
8
+ **Note:** Version bump only for package @squiz/component-cli-lib
9
+
10
+
11
+
12
+
13
+
14
+ ## [1.2.1-alpha.68](https://gitlab.squiz.net/developer-experience/cmp/compare/v1.2.1-alpha.67...v1.2.1-alpha.68) (2022-07-05)
15
+
16
+ **Note:** Version bump only for package @squiz/component-cli-lib
17
+
18
+
19
+
20
+
21
+
22
+ ## [1.2.1-alpha.67](https://gitlab.squiz.net/developer-experience/cmp/compare/v1.2.1-alpha.64...v1.2.1-alpha.67) (2022-07-04)
23
+
24
+ **Note:** Version bump only for package @squiz/component-cli-lib
25
+
26
+
27
+
28
+
29
+
30
+ ## [1.2.1-alpha.66](https://gitlab.squiz.net/developer-experience/cmp/compare/v1.2.1-alpha.64...v1.2.1-alpha.66) (2022-07-04)
31
+
32
+ **Note:** Version bump only for package @squiz/component-cli-lib
33
+
34
+
35
+
36
+
37
+
6
38
  ## [1.2.1-alpha.65](https://gitlab.squiz.net/developer-experience/cmp/compare/v1.2.1-alpha.64...v1.2.1-alpha.65) (2022-07-01)
7
39
 
8
40
  **Note:** Version bump only for package @squiz/component-cli-lib
package/jest.config.ts CHANGED
@@ -4,8 +4,13 @@ import type { Config } from 'jest';
4
4
  const config: Config = {
5
5
  preset: 'ts-jest',
6
6
  testEnvironment: 'node',
7
- testPathIgnorePatterns: ['<rootDir>/lib/'],
7
+ testPathIgnorePatterns: ['<rootDir>/lib/', '<rootDir>/src/integration-tests', '<rootDir>/src/test.ts'],
8
8
  maxWorkers: '80%',
9
+ globals: {
10
+ 'ts-jest': {
11
+ tsconfig: 'tsconfig.json',
12
+ },
13
+ },
9
14
  };
10
15
 
11
16
  export default config;
@@ -6,7 +6,8 @@
6
6
  * this function should be piped into `npx bunyan`.
7
7
  * @param {string} componentPath - The directory with the component to be rendered
8
8
  * @param {object} options - Additional configuration for the dev stack
9
+ * @returns a function to stop the render stack
9
10
  */
10
11
  export declare function startDevelopmentRender(componentPath: string, options: {
11
12
  port: number;
12
- }): Promise<void>;
13
+ }): Promise<() => Promise<void>>;
@@ -14,20 +14,24 @@ const path_1 = __importDefault(require("path"));
14
14
  * this function should be piped into `npx bunyan`.
15
15
  * @param {string} componentPath - The directory with the component to be rendered
16
16
  * @param {object} options - Additional configuration for the dev stack
17
+ * @returns a function to stop the render stack
17
18
  */
18
19
  async function startDevelopmentRender(componentPath, options) {
19
20
  await (0, render_runtime_lib_1.startRenderStack)({
20
21
  webserver: {
21
22
  port: options.port,
22
23
  rootUrl: `http://localhost:${options.port}`,
24
+ shouldRunMigrations: false,
23
25
  },
24
26
  componentRunner: {
25
27
  // Considering the component path will be passed in from CLI
26
28
  // We need to generate the path from the calling directory
27
29
  dataMountPoint: path_1.default.resolve(process.cwd(), componentPath),
28
30
  doDevReload: true,
31
+ workerTimeout: 20000,
29
32
  },
30
33
  });
34
+ return () => (0, render_runtime_lib_1.stopRenderStack)();
31
35
  }
32
36
  exports.startDevelopmentRender = startDevelopmentRender;
33
37
  //# sourceMappingURL=component-dev.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"component-dev.js","sourceRoot":"","sources":["../src/component-dev.ts"],"names":[],"mappings":";;;;;;AAAA,kEAA6D;AAC7D,gDAAwB;AAExB;;;;;;;;GAQG;AACI,KAAK,UAAU,sBAAsB,CAAC,aAAqB,EAAE,OAAyB;IAC3F,MAAM,IAAA,qCAAgB,EAAC;QACrB,SAAS,EAAE;YACT,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,oBAAoB,OAAO,CAAC,IAAI,EAAE;SAC5C;QACD,eAAe,EAAE;YACf,4DAA4D;YAC5D,0DAA0D;YAC1D,cAAc,EAAE,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC;YAC1D,WAAW,EAAE,IAAI;SAClB;KACF,CAAC,CAAC;AACL,CAAC;AAbD,wDAaC"}
1
+ {"version":3,"file":"component-dev.js","sourceRoot":"","sources":["../src/component-dev.ts"],"names":[],"mappings":";;;;;;AAAA,kEAA8E;AAC9E,gDAAwB;AAExB;;;;;;;;;GASG;AACI,KAAK,UAAU,sBAAsB,CAAC,aAAqB,EAAE,OAAyB;IAC3F,MAAM,IAAA,qCAAgB,EAAC;QACrB,SAAS,EAAE;YACT,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,oBAAoB,OAAO,CAAC,IAAI,EAAE;YAC3C,mBAAmB,EAAE,KAAK;SAC3B;QACD,eAAe,EAAE;YACf,4DAA4D;YAC5D,0DAA0D;YAC1D,cAAc,EAAE,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC;YAC1D,WAAW,EAAE,IAAI;YAEjB,aAAa,EAAE,KAAM;SACtB;KACF,CAAC,CAAC;IAEH,OAAO,GAAG,EAAE,CAAC,IAAA,oCAAe,GAAE,CAAC;AACjC,CAAC;AAlBD,wDAkBC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,86 @@
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
+ const path_1 = __importDefault(require("path"));
7
+ const promises_1 = __importDefault(require("fs/promises"));
8
+ const render_runtime_lib_1 = require("@squiz/render-runtime-lib");
9
+ const component_dev_1 = require("./component-dev");
10
+ const supertest_1 = __importDefault(require("supertest"));
11
+ jest.setTimeout(20000);
12
+ describe('component-dev', () => {
13
+ describe('production style folder structure', () => {
14
+ let doStopStack;
15
+ beforeAll(async () => {
16
+ doStopStack = await (0, component_dev_1.startDevelopmentRender)(path_1.default.join(__dirname, '../../../test-components'), { port: 0 });
17
+ });
18
+ afterAll(async () => {
19
+ await doStopStack();
20
+ });
21
+ it('should find the component', async () => {
22
+ const testServer = render_runtime_lib_1.TestHelpers.getTestServer();
23
+ const response = await testServer.get(`/r/set/test-component/1.0.0?something=hello`);
24
+ expect(response.text).toEqual('<h1>hello</h1>');
25
+ });
26
+ });
27
+ describe('local developer style folders', () => {
28
+ let doStopStack;
29
+ let version;
30
+ let componentName;
31
+ let fixtureDirectory;
32
+ beforeAll(async () => {
33
+ const { fixtureDirectory: ceratedFixtureDirectory, version: createdVersion, componentName: createdName, } = await render_runtime_lib_1.TestHelpers.ComponentFixture.setupFullComponentDirectory('<h1>Hello World</h1>');
34
+ version = createdVersion;
35
+ fixtureDirectory = ceratedFixtureDirectory;
36
+ componentName = createdName;
37
+ doStopStack = await (0, component_dev_1.startDevelopmentRender)(fixtureDirectory, { port: 0 });
38
+ });
39
+ afterAll(async () => {
40
+ await doStopStack();
41
+ await promises_1.default.rm(path_1.default.join(fixtureDirectory, componentName), { force: true, recursive: true });
42
+ });
43
+ it('should handle recursing folders to find the component', async () => {
44
+ const testServer = render_runtime_lib_1.TestHelpers.getTestServer();
45
+ const response = await testServer.get(`/r/set/${componentName}/${version}/`);
46
+ expect(response.text).toEqual('<h1>Hello World</h1>');
47
+ });
48
+ });
49
+ describe('accessing local dev routes', () => {
50
+ let stopServer;
51
+ const port = 3006;
52
+ const url = `http://localhost:${port}`;
53
+ const request = (0, supertest_1.default)(url);
54
+ beforeAll(async () => {
55
+ const compDir = path_1.default.join(__dirname, '../', '../../test-components');
56
+ stopServer = await (0, component_dev_1.startDevelopmentRender)(compDir, {
57
+ port: port,
58
+ });
59
+ });
60
+ afterAll(async () => {
61
+ await stopServer();
62
+ });
63
+ describe('definition routes', () => {
64
+ render_runtime_lib_1.routeTests.definition(url, url);
65
+ });
66
+ describe('static routes', () => {
67
+ render_runtime_lib_1.routeTests.static(url);
68
+ });
69
+ describe('render routes', () => {
70
+ render_runtime_lib_1.routeTests.render(url, url);
71
+ });
72
+ describe('GET /r/set/test-component/1.0.1', () => {
73
+ //
74
+ // this scenario is different to the 'production' tests
75
+ // this is should 500 in prod and 404 locally
76
+ it('should fail validation if trying to render a component with an invalid schema', async () => {
77
+ const response = await request.get('/r/set/test-component/1.0.1?something=not-used');
78
+ expect(response.statusCode).toEqual(404);
79
+ expect(response.body).toEqual({
80
+ message: 'manifest could not be found',
81
+ });
82
+ });
83
+ });
84
+ });
85
+ });
86
+ //# sourceMappingURL=component-dev.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-dev.spec.js","sourceRoot":"","sources":["../src/component-dev.spec.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -1,2 +1 @@
1
- export { startDevelopmentRender } from './component-dev';
2
1
  export declare function uploadComponentFolder(folderPath: string, componentServiceManagementUrl: string): Promise<void>;
package/lib/index.js CHANGED
@@ -3,15 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.uploadComponentFolder = exports.startDevelopmentRender = void 0;
6
+ exports.uploadComponentFolder = void 0;
7
7
  const virus_scanner_lib_1 = require("@squiz/virus-scanner-lib");
8
8
  const component_lib_1 = require("@squiz/component-lib");
9
9
  const promises_1 = __importDefault(require("fs/promises"));
10
10
  const path_1 = __importDefault(require("path"));
11
11
  const axios_1 = __importDefault(require("axios"));
12
12
  const cli_color_1 = __importDefault(require("cli-color"));
13
- var component_dev_1 = require("./component-dev");
14
- Object.defineProperty(exports, "startDevelopmentRender", { enumerable: true, get: function () { return component_dev_1.startDevelopmentRender; } });
15
13
  async function uploadComponentFolder(folderPath, componentServiceManagementUrl) {
16
14
  const tmpDir = path_1.default.resolve(await promises_1.default.mkdtemp('cmp-upload'));
17
15
  try {
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ {
2
+ "$schema": "http://localhost:3000/schemas/v1.json#",
3
+ "name": "big-package",
4
+ "version": "1.0.2",
5
+ "main-function": "render-json",
6
+ "functions": [
7
+ {
8
+ "name": "render-json",
9
+ "entry": "render-json.js",
10
+ "input": {
11
+ "type": "object",
12
+ "properties": {
13
+ "something": {
14
+ "type": "string"
15
+ }
16
+ },
17
+ "required": ["something"]
18
+ },
19
+ "output": {
20
+ "response-type": "json",
21
+ "definition": {
22
+ "properties": {
23
+ "my-prop": {
24
+ "type": "string"
25
+ }
26
+ },
27
+ "required": ["my-prop"]
28
+ }
29
+ }
30
+ }
31
+ ]
32
+ }
@@ -1,3 +1,5 @@
1
1
  export declare const managementService: import("axios").AxiosInstance;
2
2
  export declare const renderService: import("axios").AxiosInstance;
3
3
  export declare function getTestComponents(): string[];
4
+ export declare function createFile(filePath: string, sizeInMB: number): Promise<void>;
5
+ export declare function removeFile(filePath: string): void;
@@ -3,11 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getTestComponents = exports.renderService = exports.managementService = void 0;
6
+ exports.removeFile = exports.createFile = exports.getTestComponents = exports.renderService = exports.managementService = void 0;
7
7
  const axios_1 = __importDefault(require("axios"));
8
8
  const fs_1 = __importDefault(require("fs"));
9
9
  const path_1 = __importDefault(require("path"));
10
10
  const config_1 = __importDefault(require("../config"));
11
+ const promises_1 = __importDefault(require("fs/promises"));
12
+ const crypto_1 = require("crypto");
11
13
  exports.managementService = axios_1.default.create({
12
14
  baseURL: config_1.default.managementServiceUrl,
13
15
  });
@@ -27,4 +29,13 @@ function getTestComponents() {
27
29
  return componets;
28
30
  }
29
31
  exports.getTestComponents = getTestComponents;
32
+ async function createFile(filePath, sizeInMB) {
33
+ const content = (0, crypto_1.randomBytes)(sizeInMB * 1000000);
34
+ await promises_1.default.writeFile(`${filePath}`, content);
35
+ }
36
+ exports.createFile = createFile;
37
+ function removeFile(filePath) {
38
+ promises_1.default.unlink(filePath);
39
+ }
40
+ exports.removeFile = removeFile;
30
41
  //# sourceMappingURL=helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../src/integration-tests/helper.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,4CAAoB;AACpB,gDAAwB;AACxB,uDAAmC;AAEtB,QAAA,iBAAiB,GAAG,eAAK,CAAC,MAAM,CAAC;IAC5C,OAAO,EAAE,gBAAU,CAAC,oBAAoB;CACzC,CAAC,CAAC;AAEU,QAAA,aAAa,GAAG,eAAK,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,gBAAU,CAAC,gBAAgB;CACrC,CAAC,CAAC;AAEH,SAAgB,iBAAiB;IAC/B,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,YAAE,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,MAAM,IAAI,GAAG,YAAE,CAAC,QAAQ,CAAC,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;QACzD,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,EAAE;YACzD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACtB;KACF;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAXD,8CAWC"}
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../src/integration-tests/helper.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,4CAAoB;AACpB,gDAAwB;AACxB,uDAAmC;AACnC,2DAA8B;AAC9B,mCAAqC;AAExB,QAAA,iBAAiB,GAAG,eAAK,CAAC,MAAM,CAAC;IAC5C,OAAO,EAAE,gBAAU,CAAC,oBAAoB;CACzC,CAAC,CAAC;AAEU,QAAA,aAAa,GAAG,eAAK,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,gBAAU,CAAC,gBAAgB;CACrC,CAAC,CAAC;AAEH,SAAgB,iBAAiB;IAC/B,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,YAAE,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,MAAM,IAAI,GAAG,YAAE,CAAC,QAAQ,CAAC,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;QACzD,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,EAAE;YACzD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACtB;KACF;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAXD,8CAWC;AACM,KAAK,UAAU,UAAU,CAAC,QAAgB,EAAE,QAAgB;IACjE,MAAM,OAAO,GAAG,IAAA,oBAAW,EAAC,QAAQ,GAAG,OAAO,CAAC,CAAC;IAChD,MAAM,kBAAG,CAAC,SAAS,CAAC,GAAG,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAHD,gCAGC;AAED,SAAgB,UAAU,CAAC,QAAgB;IACzC,kBAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACvB,CAAC;AAFD,gCAEC"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
- jest.setTimeout(30000);
2
+ jest.setTimeout(60000);
3
3
  //# sourceMappingURL=test-setup.js.map
@@ -15,10 +15,15 @@ const orgConsoleError = console.error;
15
15
  afterAll(async () => {
16
16
  // clean up the component added by the test
17
17
  (0, helper_1.getTestComponents)().forEach(async (componentName) => {
18
- await helper_1.managementService.delete(`/component/${componentName}`);
18
+ try {
19
+ await helper_1.managementService.delete(`/component/${componentName}`);
20
+ }
21
+ catch {
22
+ // no op
23
+ }
19
24
  });
20
25
  });
21
- describe('Deploy basic component having a static file', () => {
26
+ describe('Test isolated test cases', () => {
22
27
  beforeEach(() => {
23
28
  console.error = mockConsoleError;
24
29
  console.log = mockConsoleLog;
@@ -26,27 +31,47 @@ describe('Deploy basic component having a static file', () => {
26
31
  afterEach(() => {
27
32
  console.error = orgConsoleError;
28
33
  });
34
+ it('Should fail uploading the component that has size more than 100MB', async () => {
35
+ const componentPath = path_1.default.join(__dirname, '/__components__/big-package');
36
+ const filePath = `${componentPath}/105mb-file`;
37
+ await (0, helper_1.createFile)(filePath, 105); // Higher limit has been used because compression reduces the size if you use closer to 100MB
38
+ await (0, index_1.uploadComponentFolder)(componentPath, config_1.default.managementServiceUrl);
39
+ expect(mockConsoleError.mock.calls[0][0]).toEqual(cli_color_1.default.red(['Request body larger than maxBodyLength limit'].join('')));
40
+ (0, helper_1.removeFile)(filePath);
41
+ });
42
+ });
43
+ describe('Deploy basic component having a static file', () => {
29
44
  // component to deploy for this test
30
45
  const componentPath = path_1.default.join(__dirname, '/__components__/cmp-static-file-test');
31
- let url = '';
46
+ beforeAll(async () => {
47
+ try {
48
+ await helper_1.managementService.delete(`/component/cmp-static-file-test`);
49
+ }
50
+ catch {
51
+ // no op
52
+ }
53
+ });
54
+ beforeEach(() => {
55
+ console.error = mockConsoleError;
56
+ console.log = mockConsoleLog;
57
+ });
58
+ afterEach(() => {
59
+ console.error = orgConsoleError;
60
+ });
32
61
  it('Should upload the component and return a valid url to preview', async () => {
33
- var _a;
62
+ var _a, _b;
34
63
  mockConsoleLog.mockClear();
35
64
  await (0, index_1.uploadComponentFolder)(componentPath, config_1.default.managementServiceUrl);
36
- url = ((_a = /uploaded location: (.*)/.exec(mockConsoleLog.mock.lastCall)) === null || _a === void 0 ? void 0 : _a[1]) || '';
37
- expect(url).toEqual(`${config_1.default.renderServiceUrl}/r/set/cmp-static-file-test/1.0.0`);
38
- const get = await (0, supertest_1.default)(url).get('');
39
- expect(get.status).toEqual(400);
40
- expect(get.body).toEqual({
41
- message: 'input validation failed: "must have required property \'something\'"',
42
- });
65
+ const url = ((_a = /uploaded location: (.*)/.exec(mockConsoleLog.mock.lastCall)) === null || _a === void 0 ? void 0 : _a[1]) || '';
66
+ const uploadedComponent = '<a href="/r/set/cmp-static-file-test/1.0.0">1.0.0</a>';
67
+ const get = await (0, supertest_1.default)(url).get('/');
68
+ expect(get.status).toEqual(200);
69
+ expect((_b = get === null || get === void 0 ? void 0 : get.res) === null || _b === void 0 ? void 0 : _b.text).toContain(uploadedComponent);
43
70
  });
44
71
  it('Should fail upload the component with same version', async () => {
72
+ mockConsoleError.mockClear();
45
73
  await (0, index_1.uploadComponentFolder)(componentPath, config_1.default.managementServiceUrl);
46
- expect(mockConsoleError.mock.calls[0][0]).toEqual(cli_color_1.default.red([
47
- 'Unexpected response code 400. message: ',
48
- 'cmp-static-file-test version 1.0.0 already exists and cannot be uploaded',
49
- ].join('')));
74
+ expect(mockConsoleError.mock.calls[0][0]).toEqual(cli_color_1.default.red('Unexpected response code 400. message: Component cmp-static-file-test 1.0.0 already exists'));
50
75
  });
51
76
  it('Should render component', async () => {
52
77
  const response = await helper_1.renderService.get('/r/set/cmp-static-file-test/1.0.0/?something=hello');
@@ -1 +1 @@
1
- {"version":3,"file":"upload-and-render-component.spec.js","sourceRoot":"","sources":["../../src/integration-tests/upload-and-render-component.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upload-and-render-component.spec.js","sourceRoot":"","sources":["../../src/integration-tests/upload-and-render-component.spec.ts"],"names":[],"mappings":"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"}
package/lib/test.js CHANGED
@@ -1,13 +1,7 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const _1 = require(".");
7
- const config_1 = __importDefault(require("./config"));
8
- const path_1 = __importDefault(require("path"));
9
- const dir = path_1.default.resolve(process.argv[2]);
10
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
11
- const componentManagementURL = config_1.default.managementServiceUrl || process.argv[3];
12
- (0, _1.uploadComponentFolder)(dir, componentManagementURL);
3
+ const component_dev_1 = require("./component-dev");
4
+ (0, component_dev_1.startDevelopmentRender)('/Users/wfagerstrom/Code/component-service/test-components', { port: 3000 }).then(() => {
5
+ console.log('starting');
6
+ });
13
7
  //# sourceMappingURL=test.js.map
package/lib/test.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":";;;;;AAAA,wBAA0C;AAC1C,sDAAkC;AAClC,gDAAwB;AAExB,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,oEAAoE;AACpE,MAAM,sBAAsB,GAAG,gBAAU,CAAC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClF,IAAA,wBAAqB,EAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":";;AAAA,mDAAyD;AAEzD,IAAA,sCAAsB,EAAC,2DAA2D,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;IAC5G,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@squiz/component-cli-lib",
3
- "version": "1.2.1-alpha.65",
3
+ "version": "1.2.1-alpha.69",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
7
7
  "start": "node ./lib/index.js",
8
8
  "compile": "tsc",
9
9
  "lint": "eslint ./src --ext .ts",
10
- "test": "echo \"No unit tests, to be tested in integration tests\"",
10
+ "test": "jest -c jest.config.ts",
11
11
  "test:integration": "jest -c jest.integration.config.ts",
12
12
  "clean": "rimraf \".tsbuildinfo\" \"./lib\""
13
13
  },
@@ -16,25 +16,25 @@
16
16
  "devDependencies": {
17
17
  "@types/cli-color": "2.0.2",
18
18
  "@types/express": "4.17.13",
19
- "@types/jest": "28.1.3",
19
+ "@types/jest": "28.1.6",
20
20
  "@types/node": "17.0.27",
21
21
  "@types/supertest": "2.0.12",
22
22
  "dotenv": "16.0.1",
23
23
  "eslint": "8.18.0",
24
- "jest": "28.1.1",
24
+ "jest": "28.1.3",
25
25
  "ts-jest": "28.0.5",
26
26
  "ts-loader": "9.3.1",
27
27
  "ts-node": "10.8.1",
28
28
  "typescript": "4.7.4"
29
29
  },
30
30
  "dependencies": {
31
- "@squiz/component-lib": "^1.2.1-alpha.64",
32
- "@squiz/render-runtime-lib": "^1.2.1-alpha.64",
33
- "@squiz/virus-scanner-lib": "^1.2.1-alpha.65",
31
+ "@squiz/component-lib": "^1.2.1-alpha.69",
32
+ "@squiz/render-runtime-lib": "^1.2.1-alpha.69",
33
+ "@squiz/virus-scanner-lib": "^1.2.1-alpha.69",
34
34
  "archiver": "5.3.1",
35
35
  "axios": "0.27.2",
36
36
  "cli-color": "^2.0.2",
37
37
  "supertest": "^6.2.3"
38
38
  },
39
- "gitHead": "78116390dccd440df6ad09c499475ccc253c2e2d"
39
+ "gitHead": "e12247b1ce835c218f322bc541b0f01bc114d643"
40
40
  }
@@ -0,0 +1,105 @@
1
+ import path from 'path';
2
+ import fsp from 'fs/promises';
3
+
4
+ import { routeTests, TestHelpers } from '@squiz/render-runtime-lib';
5
+ import { startDevelopmentRender } from './component-dev';
6
+ import supertest from 'supertest';
7
+
8
+ jest.setTimeout(20_000);
9
+
10
+ describe('component-dev', () => {
11
+ describe('production style folder structure', () => {
12
+ let doStopStack: Awaited<ReturnType<typeof startDevelopmentRender>>;
13
+
14
+ beforeAll(async () => {
15
+ doStopStack = await startDevelopmentRender(path.join(__dirname, '../../../test-components'), { port: 0 });
16
+ });
17
+
18
+ afterAll(async () => {
19
+ await doStopStack();
20
+ });
21
+
22
+ it('should find the component', async () => {
23
+ const testServer = TestHelpers.getTestServer();
24
+ const response = await testServer.get(`/r/set/test-component/1.0.0?something=hello`);
25
+ expect(response.text).toEqual('<h1>hello</h1>');
26
+ });
27
+ });
28
+
29
+ describe('local developer style folders', () => {
30
+ let doStopStack: Awaited<ReturnType<typeof startDevelopmentRender>>;
31
+ let version: string;
32
+ let componentName: string;
33
+ let fixtureDirectory: string;
34
+
35
+ beforeAll(async () => {
36
+ const {
37
+ fixtureDirectory: ceratedFixtureDirectory,
38
+ version: createdVersion,
39
+ componentName: createdName,
40
+ } = await TestHelpers.ComponentFixture.setupFullComponentDirectory('<h1>Hello World</h1>');
41
+
42
+ version = createdVersion;
43
+ fixtureDirectory = ceratedFixtureDirectory;
44
+ componentName = createdName;
45
+
46
+ doStopStack = await startDevelopmentRender(fixtureDirectory, { port: 0 });
47
+ });
48
+
49
+ afterAll(async () => {
50
+ await doStopStack();
51
+ await fsp.rm(path.join(fixtureDirectory, componentName), { force: true, recursive: true });
52
+ });
53
+
54
+ it('should handle recursing folders to find the component', async () => {
55
+ const testServer = TestHelpers.getTestServer();
56
+ const response = await testServer.get(`/r/set/${componentName}/${version}/`);
57
+ expect(response.text).toEqual('<h1>Hello World</h1>');
58
+ });
59
+ });
60
+
61
+ describe('accessing local dev routes', () => {
62
+ let stopServer: Awaited<ReturnType<typeof startDevelopmentRender>>;
63
+ const port = 3006;
64
+ const url = `http://localhost:${port}`;
65
+ const request = supertest(url);
66
+
67
+ beforeAll(async () => {
68
+ const compDir = path.join(__dirname, '../', '../../test-components');
69
+
70
+ stopServer = await startDevelopmentRender(compDir, {
71
+ port: port,
72
+ });
73
+ });
74
+
75
+ afterAll(async () => {
76
+ await stopServer();
77
+ });
78
+
79
+ describe('definition routes', () => {
80
+ routeTests.definition(url, url);
81
+ });
82
+
83
+ describe('static routes', () => {
84
+ routeTests.static(url);
85
+ });
86
+
87
+ describe('render routes', () => {
88
+ routeTests.render(url, url);
89
+ });
90
+
91
+ describe('GET /r/set/test-component/1.0.1', () => {
92
+ //
93
+ // this scenario is different to the 'production' tests
94
+ // this is should 500 in prod and 404 locally
95
+ it('should fail validation if trying to render a component with an invalid schema', async () => {
96
+ const response = await request.get('/r/set/test-component/1.0.1?something=not-used');
97
+
98
+ expect(response.statusCode).toEqual(404);
99
+ expect(response.body).toEqual({
100
+ message: 'manifest could not be found',
101
+ });
102
+ });
103
+ });
104
+ });
105
+ });
@@ -1,4 +1,4 @@
1
- import { startRenderStack } from '@squiz/render-runtime-lib';
1
+ import { startRenderStack, stopRenderStack } from '@squiz/render-runtime-lib';
2
2
  import path from 'path';
3
3
 
4
4
  /**
@@ -9,18 +9,24 @@ import path from 'path';
9
9
  * this function should be piped into `npx bunyan`.
10
10
  * @param {string} componentPath - The directory with the component to be rendered
11
11
  * @param {object} options - Additional configuration for the dev stack
12
+ * @returns a function to stop the render stack
12
13
  */
13
14
  export async function startDevelopmentRender(componentPath: string, options: { port: number }) {
14
15
  await startRenderStack({
15
16
  webserver: {
16
17
  port: options.port,
17
18
  rootUrl: `http://localhost:${options.port}`,
19
+ shouldRunMigrations: false,
18
20
  },
19
21
  componentRunner: {
20
22
  // Considering the component path will be passed in from CLI
21
23
  // We need to generate the path from the calling directory
22
24
  dataMountPoint: path.resolve(process.cwd(), componentPath),
23
25
  doDevReload: true,
26
+
27
+ workerTimeout: 20_000,
24
28
  },
25
29
  });
30
+
31
+ return () => stopRenderStack();
26
32
  }
package/src/index.ts CHANGED
@@ -5,8 +5,6 @@ import path from 'path';
5
5
  import axios, { AxiosResponse, AxiosError, AxiosInstance } from 'axios';
6
6
  import color from 'cli-color';
7
7
 
8
- export { startDevelopmentRender } from './component-dev';
9
-
10
8
  export async function uploadComponentFolder(folderPath: string, componentServiceManagementUrl: string): Promise<void> {
11
9
  const tmpDir = path.resolve(await fsp.mkdtemp('cmp-upload'));
12
10
 
@@ -14,6 +12,7 @@ export async function uploadComponentFolder(folderPath: string, componentService
14
12
  const axiosInstance = axios.create({
15
13
  baseURL: componentServiceManagementUrl,
16
14
  });
15
+
17
16
  console.log('Initial scanning');
18
17
  const zip = await zipDirectory(folderPath, tmpDir);
19
18
 
@@ -0,0 +1,33 @@
1
+ {
2
+ "$schema": "http://localhost:3000/schemas/v1.json#",
3
+
4
+ "name": "big-package",
5
+ "version": "1.0.2",
6
+ "main-function": "render-json",
7
+ "functions": [
8
+ {
9
+ "name": "render-json",
10
+ "entry": "render-json.js",
11
+ "input": {
12
+ "type": "object",
13
+ "properties": {
14
+ "something": {
15
+ "type": "string"
16
+ }
17
+ },
18
+ "required": ["something"]
19
+ },
20
+ "output": {
21
+ "response-type": "json",
22
+ "definition": {
23
+ "properties": {
24
+ "my-prop": {
25
+ "type": "string"
26
+ }
27
+ },
28
+ "required": ["my-prop"]
29
+ }
30
+ }
31
+ }
32
+ ]
33
+ }
@@ -0,0 +1,5 @@
1
+ module.exports = async function () {
2
+ return {
3
+ 'my-prop': 'test value for my-prop',
4
+ };
5
+ };
@@ -2,6 +2,8 @@ import axios from 'axios';
2
2
  import fs from 'fs';
3
3
  import path from 'path';
4
4
  import configVars from '../config';
5
+ import fsp from 'fs/promises';
6
+ import { randomBytes } from 'crypto';
5
7
 
6
8
  export const managementService = axios.create({
7
9
  baseURL: configVars.managementServiceUrl,
@@ -23,3 +25,11 @@ export function getTestComponents(): string[] {
23
25
  }
24
26
  return componets;
25
27
  }
28
+ export async function createFile(filePath: string, sizeInMB: number) {
29
+ const content = randomBytes(sizeInMB * 1000000);
30
+ await fsp.writeFile(`${filePath}`, content);
31
+ }
32
+
33
+ export function removeFile(filePath: string) {
34
+ fsp.unlink(filePath);
35
+ }
@@ -1 +1 @@
1
- jest.setTimeout(30_000);
1
+ jest.setTimeout(60_000);
@@ -1,5 +1,5 @@
1
1
  import { uploadComponentFolder } from '../index';
2
- import { renderService, managementService, getTestComponents } from './helper';
2
+ import { renderService, managementService, getTestComponents, createFile, removeFile } from './helper';
3
3
  import configVars from '../config';
4
4
  import color from 'cli-color';
5
5
  import path from 'path';
@@ -13,11 +13,15 @@ const orgConsoleError = console.error;
13
13
  afterAll(async () => {
14
14
  // clean up the component added by the test
15
15
  getTestComponents().forEach(async (componentName) => {
16
- await managementService.delete(`/component/${componentName}`);
16
+ try {
17
+ await managementService.delete(`/component/${componentName}`);
18
+ } catch {
19
+ // no op
20
+ }
17
21
  });
18
22
  });
19
23
 
20
- describe('Deploy basic component having a static file', () => {
24
+ describe('Test isolated test cases', () => {
21
25
  beforeEach(() => {
22
26
  console.error = mockConsoleError;
23
27
  console.log = mockConsoleLog;
@@ -27,34 +31,56 @@ describe('Deploy basic component having a static file', () => {
27
31
  console.error = orgConsoleError;
28
32
  });
29
33
 
34
+ it('Should fail uploading the component that has size more than 100MB', async () => {
35
+ const componentPath = path.join(__dirname, '/__components__/big-package');
36
+ const filePath = `${componentPath}/105mb-file`;
37
+ await createFile(filePath, 105); // Higher limit has been used because compression reduces the size if you use closer to 100MB
38
+ await uploadComponentFolder(componentPath, configVars.managementServiceUrl);
39
+ expect(mockConsoleError.mock.calls[0][0]).toEqual(
40
+ color.red(['Request body larger than maxBodyLength limit'].join('')),
41
+ );
42
+ removeFile(filePath);
43
+ });
44
+ });
45
+
46
+ describe('Deploy basic component having a static file', () => {
30
47
  // component to deploy for this test
31
48
  const componentPath = path.join(__dirname, '/__components__/cmp-static-file-test');
32
- let url = '';
49
+
50
+ beforeAll(async () => {
51
+ try {
52
+ await managementService.delete(`/component/cmp-static-file-test`);
53
+ } catch {
54
+ // no op
55
+ }
56
+ });
57
+
58
+ beforeEach(() => {
59
+ console.error = mockConsoleError;
60
+ console.log = mockConsoleLog;
61
+ });
62
+
63
+ afterEach(() => {
64
+ console.error = orgConsoleError;
65
+ });
33
66
 
34
67
  it('Should upload the component and return a valid url to preview', async () => {
35
68
  mockConsoleLog.mockClear();
36
-
37
69
  await uploadComponentFolder(componentPath, configVars.managementServiceUrl);
38
70
 
39
- url = /uploaded location: (.*)/.exec(mockConsoleLog.mock.lastCall)?.[1] || '';
40
- expect(url).toEqual(`${configVars.renderServiceUrl}/r/set/cmp-static-file-test/1.0.0`);
71
+ const url = /uploaded location: (.*)/.exec(mockConsoleLog.mock.lastCall)?.[1] || '';
72
+ const uploadedComponent = '<a href="/r/set/cmp-static-file-test/1.0.0">1.0.0</a>';
73
+ const get = await supertest(url).get('/');
41
74
 
42
- const get = await supertest(url).get('');
43
- expect(get.status).toEqual(400);
44
- expect(get.body).toEqual({
45
- message: 'input validation failed: "must have required property \'something\'"',
46
- });
75
+ expect(get.status).toEqual(200);
76
+ expect((get as any)?.res?.text).toContain(uploadedComponent);
47
77
  });
48
78
 
49
79
  it('Should fail upload the component with same version', async () => {
80
+ mockConsoleError.mockClear();
50
81
  await uploadComponentFolder(componentPath, configVars.managementServiceUrl);
51
82
  expect(mockConsoleError.mock.calls[0][0]).toEqual(
52
- color.red(
53
- [
54
- 'Unexpected response code 400. message: ',
55
- 'cmp-static-file-test version 1.0.0 already exists and cannot be uploaded',
56
- ].join(''),
57
- ),
83
+ color.red('Unexpected response code 400. message: Component cmp-static-file-test 1.0.0 already exists'),
58
84
  );
59
85
  });
60
86
 
package/src/test.ts CHANGED
@@ -1,8 +1,5 @@
1
- import { uploadComponentFolder } from '.';
2
- import configVars from './config';
3
- import path from 'path';
1
+ import { startDevelopmentRender } from './component-dev';
4
2
 
5
- const dir = path.resolve(process.argv[2]);
6
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
7
- const componentManagementURL = configVars.managementServiceUrl || process.argv[3];
8
- uploadComponentFolder(dir, componentManagementURL);
3
+ startDevelopmentRender('/Users/wfagerstrom/Code/component-service/test-components', { port: 3000 }).then(() => {
4
+ console.log('starting');
5
+ });
@@ -1 +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.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.webworker.importscripts.d.ts","./node_modules/typescript/lib/lib.scripthost.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.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.esnext.intl.d.ts","./node_modules/typescript/lib/lib.es2019.full.d.ts","../component-lib/lib/manifest-schemas/v1.d.ts","../component-lib/lib/Manifest.d.ts","../component-lib/node_modules/uri-js/dist/es5/uri.all.d.ts","../component-lib/node_modules/ajv/dist/compile/codegen/code.d.ts","../component-lib/node_modules/ajv/dist/compile/codegen/scope.d.ts","../component-lib/node_modules/ajv/dist/compile/codegen/index.d.ts","../component-lib/node_modules/ajv/dist/compile/rules.d.ts","../component-lib/node_modules/ajv/dist/compile/util.d.ts","../component-lib/node_modules/ajv/dist/compile/validate/subschema.d.ts","../component-lib/node_modules/ajv/dist/compile/errors.d.ts","../component-lib/node_modules/ajv/dist/compile/validate/index.d.ts","../component-lib/node_modules/ajv/dist/compile/validate/dataType.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/applicator/additionalItems.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/applicator/items2020.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/applicator/contains.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/applicator/dependencies.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/applicator/propertyNames.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/applicator/not.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/applicator/anyOf.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/applicator/oneOf.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/applicator/if.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/applicator/index.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/validation/limitNumber.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/validation/multipleOf.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/validation/pattern.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/validation/required.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/validation/uniqueItems.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/validation/const.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/validation/enum.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/validation/index.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/format/format.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/validation/dependentRequired.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/discriminator/types.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/discriminator/index.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/errors.d.ts","../component-lib/node_modules/ajv/dist/types/json-schema.d.ts","../component-lib/node_modules/ajv/dist/types/jtd-schema.d.ts","../component-lib/node_modules/ajv/dist/runtime/validation_error.d.ts","../component-lib/node_modules/ajv/dist/compile/ref_error.d.ts","../component-lib/node_modules/ajv/dist/core.d.ts","../component-lib/node_modules/ajv/dist/compile/resolve.d.ts","../component-lib/node_modules/ajv/dist/compile/index.d.ts","../component-lib/node_modules/ajv/dist/types/index.d.ts","../component-lib/node_modules/ajv/dist/ajv.d.ts","../component-lib/lib/validator/schemas.d.ts","../component-lib/lib/validator/ValidationFailure.d.ts","../component-lib/lib/validator/ValidationSuccess.d.ts","../component-lib/lib/validator/validateManifest.d.ts","../component-lib/lib/validator/isValidationFailure.d.ts","../component-lib/lib/component-sets/loadComponentSet.d.ts","../component-lib/lib/loaders/LoadedComponent.d.ts","../component-lib/lib/loaders/loadComponent.d.ts","../component-lib/lib/loaders/loadManifest.d.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.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/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/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/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/range-parser/index.d.ts","./node_modules/@types/qs/index.d.ts","./node_modules/@types/express-serve-static-core/index.d.ts","./node_modules/@types/mime/index.d.ts","./node_modules/@types/serve-static/index.d.ts","../component-lib/node_modules/@types/connect/index.d.ts","../component-lib/node_modules/@types/body-parser/index.d.ts","../component-lib/node_modules/@types/serve-static/index.d.ts","../component-lib/node_modules/@types/express-serve-static-core/index.d.ts","../component-lib/node_modules/@types/qs/index.d.ts","../component-lib/node_modules/@types/express/index.d.ts","../component-lib/lib/server-utils/errorMiddleware.d.ts","../component-lib/lib/server-utils/requestLogger.d.ts","../component-lib/lib/zip/zipDirectory.d.ts","../component-lib/lib/error/ErrorWithHttpStatusCode.d.ts","../component-lib/lib/error/BadRequestError.d.ts","../component-lib/lib/error/InternalServerError.d.ts","../component-lib/lib/error/ResourceNotFoundError.d.ts","../component-lib/lib/error/TimeoutError.d.ts","../component-lib/lib/error/ComponentError.d.ts","../component-lib/lib/error/index.d.ts","../component-lib/lib/component-context/createComponentContext.d.ts","../component-lib/lib/util/joinAbsoluteUrlPath.d.ts","../component-lib/lib/util/parseEnvVarForVar.d.ts","../component-lib/lib/util/getNodeEnv.d.ts","../component-lib/lib/index.d.ts","../render-runtime-lib/lib/component-runner/index.d.ts","../render-runtime-lib/lib/webserver/index.d.ts","../render-runtime-lib/lib/index.d.ts","./src/component-dev.ts","./node_modules/dotenv/lib/main.d.ts","./src/config.ts","../virus-scanner-lib/node_modules/axios/index.d.ts","../virus-scanner-lib/lib/generated/models/InitialScan.d.ts","../virus-scanner-lib/lib/generated/models/ScanStatus.d.ts","../virus-scanner-lib/lib/generated/schemas/$InitialScan.d.ts","../virus-scanner-lib/lib/generated/schemas/$ScanStatus.d.ts","../virus-scanner-lib/lib/generated/index.d.ts","../virus-scanner-lib/lib/VirusScanner.d.ts","../virus-scanner-lib/lib/uploadFile.d.ts","../virus-scanner-lib/lib/index.d.ts","./node_modules/axios/index.d.ts","./node_modules/@types/cli-color/art.d.ts","./node_modules/@types/cli-color/bare.d.ts","./node_modules/@types/cli-color/beep.d.ts","./node_modules/@types/cli-color/columns.d.ts","./node_modules/@types/cli-color/erase.d.ts","./node_modules/@types/cli-color/move.d.ts","./node_modules/@types/cli-color/get-stripped-length.d.ts","./node_modules/@types/cli-color/slice.d.ts","./node_modules/@types/cli-color/strip.d.ts","./node_modules/@types/cli-color/throbber.d.ts","./node_modules/@types/cli-color/reset.d.ts","./node_modules/@types/cli-color/window-size.d.ts","./node_modules/@types/cli-color/index.d.ts","./src/index.ts","./src/test.ts","./src/integration-tests/helper.ts","./src/integration-tests/service-deployment.spec.ts","./src/integration-tests/test-setup.ts","./node_modules/@types/cookiejar/index.d.ts","./node_modules/buffer/index.d.ts","./node_modules/@types/superagent/index.d.ts","./node_modules/@types/supertest/index.d.ts","./src/integration-tests/upload-and-render-component.spec.ts","./src/integration-tests/__components__/cmp-static-file-test/manifest.json","./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-diff/build/index.d.ts","./node_modules/jest-matcher-utils/build/index.d.ts","./node_modules/@types/jest/index.d.ts","../render-runtime-lib/node_modules/@types/node/index.d.ts"],"fileInfos":[{"version":"f5c28122bee592cfaf5c72ed7bcc47f453b79778ffa6e301f45d21a0970719d4","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"3f149f903dd20dfeb7c80e228b659f0e436532de772469980dbd00702cc05cc1","affectsGlobalScope":true},{"version":"1272277fe7daa738e555eb6cc45ded42cc2d0f76c07294142283145d49e96186","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"cd483c056da900716879771893a3c9772b66c3c88f8943b4205aec738a94b1d0","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"c37f8a49593a0030eecb51bbfa270e709bec9d79a6cc3bb851ef348d4e6b26f8","affectsGlobalScope":true},"1f03b495671c3a1bd24510f38b8947f0991dfd6bf0278c68eca14af15b306e1f","4335dec7ce54653abcb176bc8b3798fc3b78f71facac76caa7248c800dce13bc","3f28cb39b92af8c1fa0577f97f78649dd1088f7034bad4c2447eb247973d33a0","9f3c5498245c38c9016a369795ec5ef1768d09db63643c8dba9656e5ab294825","44a8d350600656882fd7462774e32e8d13788313ba2e36d2e8d5437ac91b98df","60bb0e47502bf8716d1230288b4e6387c1d34cded12752ab5338108e2e662e67","b8870b5155d11a273c75718a4f19026da49f91c548703858cd3400d06c3bd3b8","b3ae4ded82f27cabba780b9af9647f6e08c9a4cabe8fbb7a0cca69c7add9ef4b","8d26ae32e5c9c080e44aee4a67e5ef02b5fda0604e6fecbb7b753c537e5282d9","05c4e792dae38912ba333725cdf8c42d242337d006c0d887f4ce5a7787871a95","cd44995ee13d5d23df17a10213fed7b483fabfd5ea08f267ab52c07ce0b6b4da","58ce1486f851942bd2d3056b399079bc9cb978ec933fe9833ea417e33eab676e","1a23b521db8d7ec9e2b96c6fbd4c7e96d12f408b1e03661b3b9f7da7291103e6","d3d0d11d30c9878ada3356b9c36a2754b8c7b6204a41c86bfb1488c08ce263b0","a6493f1f479637ed89a3ebec03f6dc117e3b1851d7e938ac4c8501396b8639a8","ae0951e44973e928fe2e999b11960493835d094b16adac0b085a79cff181bcb9","9d00e3a59eff68fa8c40e89953083eeaad1c5b2580ed7da2304424b249ecb237","1609ad4d488c356ee91eba7d7aa87cc6fb59bc8ac05c1a8f08665285ba3b71ad","8add088f72326098d68d622ddb024c00ae56a912383efe96b03f0481db88f7c9","dd17fe6332567b8f13e33dd3ff8926553cdcea2ad32d4350ce0063a2addaa764","4091d56a4622480549350b8811ec64c7826cd41a70ce5d9c1cc20384bb144049","353c0125b9e50c2a71e18394d46be5ccb37161cc0f0e7c69216aa6932c8cdafb","9c5d5f167e86b6ddf7142559a17d13fd39c34e868ae947c40381db866eed6609","4430dea494b0ee77bf823d9a7c4850a539e1060d5d865316bb23fb393e4f01d7","aae698ceead4edad0695b9ea87e43f274e698bdb302c8cb5fd2cab4dc496ccf0","51631e9a0c041e12479ab01f5801d8a237327d19e9ee37d5f1f66be912631425","c9d5d8adb1455f49182751ce885745dcc5f9697e9c260388bc3ae9d1860d5d10","f64289e3fa8d5719eaf5ba1bb02dd32dbbf7c603dda75c16770a6bc6e9c6b6d9","b1aa0e2e3511a8d10990f35866405c64c9e576258ef99eeb9ebafed980fd7506","2d255a5287f2fb5295688cb25bd18e1cd59866179f795f3f1fd6b71b7f0edf8f","43c1dbb78d5277a5fdd8fddce8b257f84ffa2b4253f58b95c04a310710d19e97","6c669d7e080344c1574aa276a89e57c3b9f0e97fab96a09427e7dfb19ca261bf","b71ac126853867d8e64c910f47d46d05c5ea797987d2604f63d401507dc43b6d","9a37238558d28b7ee06d08599e92eab30b90704541cc85e6448009d6d55fffa9","120b14d66a061910309ff97e7b06b5c6c09444218178b80b687a92af4d22d5dc","3de958065e3a44cbe0bfa667813bc59c63e63c9ce522af8dc1b64714910fa9ba","66e655f7c43558bae6703242cbd6c0551a94d0a97204bd4c4bbf7e77f24d1f85","72f7b32e023814078046c036ed4b7ad92414be0aebb63e805c682e14103ae38a","a89d8e67966d085ff971c9900cfa1abdd9732bab66d9c1914ecc15befdf8623d","7dfd0308261bb91b058eb91802690fe3f09192b263e070a19df4d629df29e265","608eb9d411ac76e93a10e05f8aae92b3a5cefc87594219b737df7c8737ba2bd7","cde493e09daad4bb29922fe633f760be9f0e8e2f39cdca999cce3b8690b5e13a","3d7f9eb12aface876f7b535cc89dcd416daf77f0b3573333f16ec0a70bcf902a","93ba4ac36f570c70a12d588e21c10dda9f351fad3e77d416952acddb27bff01d","8750f9dc1e277ffff7446c95571bae61aca0984e8f99e40fc1e8cb7161ae0642","66408d81ba8962282b1a55da34c6bd767105141f54d0ba14dca330efe0c8f552","7481b9d93ca44eb1f689e0b939545ff00dead7bdb9daba401dfb74292d83f831","821e64ddbdfa10fac5f0aed1c1d4e1f275840400caa96357ddfd15d02e5afba1","419564ce933b3a54b5d44beb063dd025106042440080bceba32c04938d61a484","bf2b9e09ab805a9dfd942bce104f9b08c4aca6acd6d2bc51c1558269f7d6dbf8","c5c02cf97dd48e47f77dc973fa082b4610ea30964f8d92a83e6366ac944380d0","42bf40a061bfd8d72f0b2590bd437cffe189c19cd44e3bf5e7a0b7c6d76862d2","5b312a14de195172d56bee9129237403eca227b03c214af351196bd91cf94fe0","e6d30c042473d086896f5d16cd4fe9ab080196fe83c71fc488f10aaaf23213e3","e63f5f6b41f97a9cbe453d2c114dadbab317551a1b382fa11f37aa4a9af550a0","7ea356b4d80a33924b6144122832d8fe8f045266d09bd3ed27d6f186c980d733","0c3dc3807897264f5304fd236fbad5a467937cf5f0ed74db0fe24ff8e5d58a7f","0cba3a5d7b81356222594442753cf90dd2892e5ccfe1d262aaca6896ba6c1380","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"c2ab70bbc7a24c42a790890739dd8a0ba9d2e15038b40dff8163a97a5d148c00","affectsGlobalScope":true},"422dbb183fdced59425ca072c8bd09efaa77ce4e2ab928ec0d8a1ce062d2a45a",{"version":"fcdcb42da18dd98dc286b1876dd425791772036012ae61263c011a76b13a190f","affectsGlobalScope":true},"1dab5ab6bcf11de47ab9db295df8c4f1d92ffa750e8f095e88c71ce4c3299628","f71f46ccd5a90566f0a37b25b23bc4684381ab2180bdf6733f4e6624474e1894",{"version":"54e65985a3ee3cec182e6a555e20974ea936fc8b8d1738c14e8ed8a42bd921d4","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","918a76828d88a73924bb26fef58040a6eb8a9adb7e407ea7264175520dda9450","34e5de87d983bc6aefef8b17658556e3157003e8d9555d3cb098c6bef0b5fbc8","cc0b61316c4f37393f1f9595e93b673f4184e9d07f4c127165a490ec4a928668","f27371653aded82b2b160f7a7033fb4a5b1534b6f6081ef7be1468f0f15327d3","c762cd6754b13a461c54b59d0ae0ab7aeef3c292c6cf889873f786ee4d8e75c9","f4ea7d5df644785bd9fbf419930cbaec118f0d8b4160037d2339b8e23c059e79",{"version":"bfea28e6162ed21a0aeed181b623dcf250aa79abf49e24a6b7e012655af36d81","affectsGlobalScope":true},"b8aca9d0c81abb02bec9b7621983ae65bde71da6727580070602bd2500a9ce2a","ae97e20f2e10dbeec193d6a2f9cd9a367a1e293e7d6b33b68bacea166afd7792","10d4796a130577d57003a77b95d8723530bbec84718e364aa2129fa8ffba0378","063f53ff674228c190efa19dd9448bcbd540acdbb48a928f4cf3a1b9f9478e43","bf73c576885408d4a176f44a9035d798827cc5020d58284cb18d7573430d9022","7ae078ca42a670445ae0c6a97c029cb83d143d62abd1730efb33f68f0b2c0e82",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"287b21dc1d1b9701c92e15e7dd673dfe6044b15812956377adffb6f08825b1bc","12eea70b5e11e924bb0543aea5eadc16ced318aa26001b453b0d561c2fd0bd1e","08777cd9318d294646b121838574e1dd7acbb22c21a03df84e1f2c87b1ad47f2","08a90bcdc717df3d50a2ce178d966a8c353fd23e5c392fd3594a6e39d9bb6304",{"version":"4cd4cff679c9b3d9239fd7bf70293ca4594583767526916af8e5d5a47d0219c7","affectsGlobalScope":true},"2a12d2da5ac4c4979401a3f6eaafa874747a37c365e4bc18aa2b171ae134d21b","002b837927b53f3714308ecd96f72ee8a053b8aeb28213d8ec6de23ed1608b66","1dc9c847473bb47279e398b22c740c83ea37a5c88bf66629666e3cf4c5b9f99c","a9e4a5a24bf2c44de4c98274975a1a705a0abbaad04df3557c2d3cd8b1727949","00fa7ce8bc8acc560dc341bbfdf37840a8c59e6a67c9bfa3fa5f36254df35db2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","5f0ed51db151c2cdc4fa3bb0f44ce6066912ad001b607a34e65a96c52eb76248",{"version":"3345c276cab0e76dda86c0fb79104ff915a4580ba0f3e440870e183b1baec476","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","103d70bfbeb3cd3a3f26d1705bf986322d8738c2c143f38ebb743b1e228d7444","f52fbf64c7e480271a9096763c4882d356b05cab05bf56a64e68a95313cd2ce2","59bdb65f28d7ce52ccfc906e9aaf422f8b8534b2d21c32a27d7819be5ad81df7",{"version":"3a2da34079a2567161c1359316a32e712404b56566c45332ac9dcee015ecce9f","affectsGlobalScope":true},"28a2e7383fd898c386ffdcacedf0ec0845e5d1a86b5a43f25b86bc315f556b79","3aff9c8c36192e46a84afe7b926136d520487155154ab9ba982a8b544ea8fc95","a880cf8d85af2e4189c709b0fea613741649c0e40fffb4360ec70762563d5de0","85bbf436a15bbeda4db888be3062d47f99c66fd05d7c50f0f6473a9151b6a070","9f9c49c95ecd25e0cb2587751925976cf64fd184714cb11e213749c80cf0f927","f0c75c08a71f9212c93a719a25fb0320d53f2e50ca89a812640e08f8ad8c408c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"9cafe917bf667f1027b2bb62e2de454ecd2119c80873ad76fc41d941089753b8","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"101eb8b4e972b9326f39591e2e40e967e3331e8d960f81248daeb266ea1affec","affectsGlobalScope":true},"84e3bbd6f80983d468260fdbfeeb431cc81f7ea98d284d836e4d168e36875e86","0b85cb069d0e427ba946e5eb2d86ef65ffd19867042810516d16919f6c1a5aec","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","0b85cb069d0e427ba946e5eb2d86ef65ffd19867042810516d16919f6c1a5aec",{"version":"101eb8b4e972b9326f39591e2e40e967e3331e8d960f81248daeb266ea1affec","affectsGlobalScope":true},"ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc","15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae","1c26b05af1ecc2d8a9d2e682931ec21658c842a792ced4dcf18ea5a49f1a695e","580304f233b87c918b6ee81c358b2efe818284fe19584e28e5a26026d8a355cf","558e0d1c797f78421be23db3c79a93db5b6c26a42a1e2b55a3efba037f26ab48","048c8482f35a0f3abd2ec8c86ba7b3c86af4906ebb7a12e4fbdc8d6896eb19dc","69c97795fcaf5bf566a1efcc24e5a5bf2d8c261ad1851239b0504c9c4a9e9cc0","9dfc364342a667c968f9be3ff7865abaf477df206a936b578b2a98eeaff0e318","56d6e24f71ed721db5a196fc6ab8523f0f469f7ae01b663ddea59981e0d82423","0bccccdd597d8a14213654d62b6ec25f37925bcd9bf6b9470006867478d7f612","b089e61130588931583bb35fa3de8fbf8695ed2b84de63d6623cdc935f6da676","9acbadd311ff3c3befca95fffdebbb1e703c437f708ff22c1324243c8f1c8d19","8671015544c781db69e1812986381ebc2b6dd303dfdf57b5c4ad45ed4c471deb","4889ae7c801238c611fcc96216b4b0bcdf39f0da707c77ca19fe561371029d11","e5e691ae3d8407aace8fba0029a6092c58eabaeeacc1325fa9c26e44f2776d53","87307be8e09e256fef6f626127e27cb03b10a9a488ebbaa0ec6ee748e9b14b78","7233eea4ab11ee4abbcbe0aef76630e14f26dedfab60c601cab0e7b8608891a2","ad7a17754b381a391e986ac5a53bf5e9307d3aab509b1f8fce8c55a519b0ad79","05edf07a702a86b82c89b14a050fb34330b39aeacb325fdf01b0034b50157ccc","73d35efac7e47d79633133720bff16f36401ab96b06c124f3421ebba76011cf2",{"version":"b864874554512ebf50ce26b2f92d79d42b204d19934f7666f0345059012c90e9","signature":"d9929e5afb23d553750f353cf103f834e903a92da284e9a202df5bde81f0997c"},"cfdd927a5eae7a7e623b9745722ef3f2b7a2997fddc5d32b7e3dcaeeb15ff4a3",{"version":"391d539fedad1fc7cacd17c1b421017c38402e0c80c3958b91c08e7adeeb6fb0","signature":"b6ff98628b0e3d5e9f59982914559e8fd76f81b3675acc0a40fdb3519162116e"},"d88dc05fd345b7a4e1816bbfd2dd087eefa9b9e36096818c2348f5b246971125","ca9ebc5b0d02b1a6417aa85f7c8c685a8ed1b71e496367f21fa80b5884e648c7","4dd414d700d383f51e95de06a3dd767ecfc6e884207df2ab6bbf0a5ee2947197","dd1376343798071eca045504b679ce66db19e716df789de32a34e6cd4117e56e","d6916856643459f6295b01a3c2bb1a91885d50a13bb2a675b4c760947c881938","b1f03c33978d580e40b089312d9b86c827af12db5939d001e2b6ddeed864f216","4aa198370b45595ab2b079184272dacdd1d3a6e185b5a8bc25b6c57822eb301d","fb6ea4754383178e666a5839222f181c5cc28e0b07e3324dcd19dbd61062d844","37ce3e0b120cdeb2028f060b8c0e4ef399647bba65812e376b65721ac4256421","d88dc05fd345b7a4e1816bbfd2dd087eefa9b9e36096818c2348f5b246971125","a7b9533447378e7f34fa432e26be9102173e79bceb65b20d258d61c4042e90ad","d71ffe64592c4e61c6b431d8fbaff58735cd659738d788a4c8423a27f78f01b7","b869f848bec826c9d3645d10a183b905672a4675747f41700fd30e1b7e0d0308","62cc84c2971b16cc82e1f7cb1dac7d8c70b589d492fbc2f6efbcbfc53b61d514","67729b7b26e1ecf2afeb2f4a0a8c3ba16712918ef22d23bb615f033169ebe0f3","903da09dbdfea0af66cb6b7b25950e42e350f1f3cc87f3516baa553cc4de882f","e237aa7b157ebfb2699d2e3bbf07c65a8cea0382201dc44c9da006f0f730de67","05e8a403b04248dbe9eebd2025d58e95495de303f37b39f13e7562f5f414087a","a56bf5dce7c05192e4c2d95eb1527feda15f9225afea8c5ad67034a79992ebb6","fcb510be50b0756cb770f8caf321dba38ae074665efbea090584f8a8d3e6b8f4","d4c9c56a2f4ecedcc224a495dfbaee88072c8e99679504fb32ef1d0629f843a1","5ec537948044f7c0280d6175729bf7aa13deae28fe0f6346628a8cf15569aefa","94998ffb6165ce44d492327169a7f7cb0e1e11a967f068fbda6796029a4a40dd",{"version":"a68d234894cff66858f2da326fde7bf8c539bb147f9f45305b50b96adbdbbac2","signature":"9d419e25e76a59aea4fe0b16768b18c216e1b427b449ac559473646af803e352"},{"version":"2a8060db74972bc7624a0240e5cbb5ab52dfcc27732ff5376bb851c0b43cce82","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"f97c59c0709d2b68b9b37853554571ef9fede5f0e4c7366da930bf42f19145a6","signature":"0155ad91d9eeab5c1858e2989485b66800aad24884cab49bba8bcb0b90b3e470"},{"version":"e1d1990438e06ef9b5b8239f4d489ec96a0fe5529afa5d90accd87b39909bce6","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"ca359b5cf8ca716abad8e9169fd12ddc625b159bae3cf0aff057f14cd8bb76df","signature":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","affectsGlobalScope":true},"8d48b8f8a377ade8dd1f000625bc276eea067f2529cc9cafdf082d17142107d6","8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","31c502014e5ba046d5cb060136929b73fd53f0f989aa37b2b0424644cb0d93ef","76232dbb982272b182a76ad8745a9b02724dc9896e2328ce360e2c56c64c9778",{"version":"f84082986bff7d23b820ddeb3f4190448180842de0e61026774e5e51e9d1cb4b","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"1d507604bd101871a8ad6eb17c7de82b940b3eab0222a049e72d43fc86c77351","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","7980bf9d2972585cdf76b5a72105f7817be0723ccb2256090f6335f45b462abe","301d7466eb591139c7d456958f732153b3400f3243f68d3321956b43a64769e9","22f13de9e2fe5f0f4724797abd3d34a1cdd6e47ef81fc4933fea3b8bf4ad524b","e3ba509d3dce019b3190ceb2f3fc88e2610ab717122dabd91a9efaa37804040d","cda0cb09b995489b7f4c57f168cd31b83dcbaa7aad49612734fb3c9c73f6e4f2",{"version":"2abad7477cf6761b55c18bea4c21b5a5dcf319748c13696df3736b35f8ac149e","affectsGlobalScope":true}],"options":{"composite":true,"declaration":true,"esModuleInterop":true,"module":1,"outDir":"./lib","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":6},"fileIdsList":[[145,220],[145],[145,195,196,197,198,199,200,201,202,203,204,205,206],[117,120,145,152,153,154],[145,222,224],[102,145],[105,145],[106,111,145],[107,117,118,125,134,144,145],[107,108,117,125,145],[109,145],[110,111,118,126,145],[111,134,141,145],[112,114,117,125,145],[113,145],[114,115,145],[116,117,145],[117,145],[117,118,119,134,144,145],[117,118,119,134,145],[120,125,134,144,145],[117,118,120,121,125,134,141,144,145],[120,122,134,141,144,145],[102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151],[117,123,145],[124,144,145],[114,117,125,134,145],[126,145],[127,145],[105,128,145],[129,143,145,149],[130,145],[131,145],[117,132,145],[132,133,145,147],[117,134,135,136,145],[134,136,145],[134,135,145],[137,145],[138,145],[117,139,140,145],[139,140,145],[111,125,134,141,145],[142,145],[125,143,145],[106,120,131,144,145],[111,145],[134,145,146],[145,147],[145,148],[106,111,117,119,128,134,144,145,147,149],[134,145,150],[120,145,152,156],[106,118,120,134,145,152,213],[145,215],[145,152],[145,222],[145,219,223],[145,221],[127,145,181],[145,178,183],[119,127,145,178,182,185,193,207],[118,127,145,184,185],[119,127,145,210],[127,145,184,207,208,210,216],[127,145,184,208],[46,145],[98,145],[145,167],[145,167,168,169,170,171,172],[46,47,93,94,95,96,97,98,99,100,101,145,164,165,166,173,174,175,176,177],[46,47,92,98,145,178],[99,145],[47,145],[145,163],[94,145],[92,145],[47,93,94,95,145],[120,145,152,158],[120,145,152],[145,154,155,157,159],[51,52,56,83,84,88,90,91,145],[49,50,145],[49,145],[51,91,145],[51,52,88,89,91,145],[91,145],[48,91,92,145],[51,52,90,91,145],[51,52,54,55,90,91,145],[51,52,53,90,91,145],[51,52,56,83,84,85,86,87,90,91,145],[48,51,52,56,88,90,145],[56,91,145],[58,59,60,61,62,63,64,65,66,67,91,145],[81,91,145],[57,68,76,77,78,79,80,82,145],[61,91,145],[69,70,71,72,73,74,75,91,145],[145,178],[145,179,180],[120,145,226],[145,185,190],[145,186,187,188,189],[145,190,191,192],[182],[185]],"referencedMap":[[221,1],[220,2],[195,2],[196,2],[197,2],[198,2],[199,2],[201,2],[207,3],[200,2],[205,2],[202,2],[203,2],[204,2],[206,2],[213,2],[155,4],[225,5],[156,2],[102,6],[103,6],[105,7],[106,8],[107,9],[108,10],[109,11],[110,12],[111,13],[112,14],[113,15],[114,16],[115,16],[116,17],[117,18],[118,19],[119,20],[104,2],[151,2],[120,21],[121,22],[122,23],[152,24],[123,25],[124,26],[125,27],[126,28],[127,29],[128,30],[129,31],[130,32],[131,33],[132,34],[133,35],[134,36],[136,37],[135,38],[137,39],[138,40],[139,41],[140,42],[141,43],[142,44],[143,45],[144,46],[145,47],[146,48],[147,49],[148,50],[149,51],[150,52],[154,2],[153,2],[157,53],[215,54],[216,55],[194,2],[214,2],[219,2],[183,56],[223,57],[224,58],[222,59],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[45,2],[33,2],[34,2],[35,2],[36,2],[7,2],[37,2],[42,2],[43,2],[38,2],[39,2],[40,2],[41,2],[1,2],[44,2],[11,2],[10,2],[182,60],[184,61],[208,62],[218,2],[210,63],[211,64],[212,2],[217,65],[209,66],[47,67],[174,68],[98,2],[168,69],[172,69],[167,2],[169,69],[170,69],[171,69],[173,70],[178,71],[99,72],[100,73],[101,74],[46,2],[164,75],[165,75],[177,2],[175,2],[176,2],[94,2],[95,2],[97,76],[93,77],[96,78],[166,2],[159,79],[158,80],[161,4],[163,81],[162,2],[160,53],[92,82],[49,2],[51,83],[50,84],[55,85],[90,86],[87,87],[89,88],[52,87],[53,89],[57,89],[56,90],[54,91],[88,92],[86,87],[91,93],[84,2],[85,2],[58,94],[63,87],[65,87],[60,87],[61,94],[67,87],[68,95],[59,87],[64,87],[66,87],[62,87],[82,96],[81,87],[83,97],[77,87],[79,87],[78,87],[74,87],[80,98],[75,87],[76,99],[69,87],[70,87],[71,87],[72,87],[73,87],[48,2],[179,100],[181,101],[180,102],[191,103],[190,104],[186,2],[187,2],[188,2],[189,2],[193,105],[192,103],[185,2]],"exportedModulesMap":[[221,1],[220,2],[195,2],[196,2],[197,2],[198,2],[199,2],[201,2],[207,3],[200,2],[205,2],[202,2],[203,2],[204,2],[206,2],[213,2],[155,4],[225,5],[156,2],[102,6],[103,6],[105,7],[106,8],[107,9],[108,10],[109,11],[110,12],[111,13],[112,14],[113,15],[114,16],[115,16],[116,17],[117,18],[118,19],[119,20],[104,2],[151,2],[120,21],[121,22],[122,23],[152,24],[123,25],[124,26],[125,27],[126,28],[127,29],[128,30],[129,31],[130,32],[131,33],[132,34],[133,35],[134,36],[136,37],[135,38],[137,39],[138,40],[139,41],[140,42],[141,43],[142,44],[143,45],[144,46],[145,47],[146,48],[147,49],[148,50],[149,51],[150,52],[154,2],[153,2],[157,53],[215,54],[216,55],[194,2],[214,2],[219,2],[183,56],[223,57],[224,58],[222,59],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[45,2],[33,2],[34,2],[35,2],[36,2],[7,2],[37,2],[42,2],[43,2],[38,2],[39,2],[40,2],[41,2],[1,2],[44,2],[11,2],[10,2],[208,106],[218,2],[210,107],[47,67],[174,68],[98,2],[168,69],[172,69],[167,2],[169,69],[170,69],[171,69],[173,70],[178,71],[99,72],[100,73],[101,74],[46,2],[164,75],[165,75],[177,2],[175,2],[176,2],[94,2],[95,2],[97,76],[93,77],[96,78],[166,2],[159,79],[158,80],[161,4],[163,81],[162,2],[160,53],[92,82],[49,2],[51,83],[50,84],[55,85],[90,86],[87,87],[89,88],[52,87],[53,89],[57,89],[56,90],[54,91],[88,92],[86,87],[91,93],[84,2],[85,2],[58,94],[63,87],[65,87],[60,87],[61,94],[67,87],[68,95],[59,87],[64,87],[66,87],[62,87],[82,96],[81,87],[83,97],[77,87],[79,87],[78,87],[74,87],[80,98],[75,87],[76,99],[69,87],[70,87],[71,87],[72,87],[73,87],[48,2],[179,100],[181,101],[180,102],[191,103],[190,104],[186,2],[187,2],[188,2],[189,2],[193,105],[192,103],[185,2]],"semanticDiagnosticsPerFile":[221,220,195,196,197,198,199,201,207,200,205,202,203,204,206,213,155,225,156,102,103,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,104,151,120,121,122,152,123,124,125,126,127,128,129,130,131,132,133,134,136,135,137,138,139,140,141,142,143,144,145,146,147,148,149,150,154,153,157,215,216,194,214,219,183,223,224,222,8,9,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,45,33,34,35,36,7,37,42,43,38,39,40,41,1,44,11,10,182,184,208,218,210,211,212,217,209,47,174,98,168,172,167,169,170,171,173,178,99,100,101,46,164,165,177,175,176,94,95,97,93,96,166,159,158,161,163,162,160,92,49,51,50,55,90,87,89,52,53,57,56,54,88,86,91,84,85,58,63,65,60,61,67,68,59,64,66,62,82,81,83,77,79,78,74,80,75,76,69,70,71,72,73,48,179,181,180,191,190,186,187,188,189,193,192,185]},"version":"4.7.4"}
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.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.webworker.importscripts.d.ts","./node_modules/typescript/lib/lib.scripthost.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.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.esnext.intl.d.ts","./node_modules/typescript/lib/lib.es2019.full.d.ts","../component-lib/lib/manifest-schemas/v1.d.ts","../component-lib/lib/Manifest.d.ts","../component-lib/node_modules/uri-js/dist/es5/uri.all.d.ts","../component-lib/node_modules/ajv/dist/compile/codegen/code.d.ts","../component-lib/node_modules/ajv/dist/compile/codegen/scope.d.ts","../component-lib/node_modules/ajv/dist/compile/codegen/index.d.ts","../component-lib/node_modules/ajv/dist/compile/rules.d.ts","../component-lib/node_modules/ajv/dist/compile/util.d.ts","../component-lib/node_modules/ajv/dist/compile/validate/subschema.d.ts","../component-lib/node_modules/ajv/dist/compile/errors.d.ts","../component-lib/node_modules/ajv/dist/compile/validate/index.d.ts","../component-lib/node_modules/ajv/dist/compile/validate/dataType.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/applicator/additionalItems.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/applicator/items2020.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/applicator/contains.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/applicator/dependencies.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/applicator/propertyNames.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/applicator/not.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/applicator/anyOf.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/applicator/oneOf.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/applicator/if.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/applicator/index.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/validation/limitNumber.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/validation/multipleOf.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/validation/pattern.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/validation/required.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/validation/uniqueItems.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/validation/const.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/validation/enum.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/validation/index.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/format/format.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/validation/dependentRequired.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/discriminator/types.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/discriminator/index.d.ts","../component-lib/node_modules/ajv/dist/vocabularies/errors.d.ts","../component-lib/node_modules/ajv/dist/types/json-schema.d.ts","../component-lib/node_modules/ajv/dist/types/jtd-schema.d.ts","../component-lib/node_modules/ajv/dist/runtime/validation_error.d.ts","../component-lib/node_modules/ajv/dist/compile/ref_error.d.ts","../component-lib/node_modules/ajv/dist/core.d.ts","../component-lib/node_modules/ajv/dist/compile/resolve.d.ts","../component-lib/node_modules/ajv/dist/compile/index.d.ts","../component-lib/node_modules/ajv/dist/types/index.d.ts","../component-lib/node_modules/ajv/dist/ajv.d.ts","../component-lib/lib/validator/schemas.d.ts","../component-lib/lib/validator/ValidationFailure.d.ts","../component-lib/lib/validator/ValidationSuccess.d.ts","../component-lib/lib/validator/validateManifest.d.ts","../component-lib/lib/validator/isValidationFailure.d.ts","../component-lib/lib/component-sets/loadComponentSet.d.ts","../component-lib/lib/loaders/LoadedComponent.d.ts","../component-lib/lib/loaders/loadComponent.d.ts","../component-lib/lib/loaders/loadManifest.d.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.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/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/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/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/range-parser/index.d.ts","./node_modules/@types/qs/index.d.ts","./node_modules/@types/express-serve-static-core/index.d.ts","./node_modules/@types/mime/index.d.ts","./node_modules/@types/serve-static/index.d.ts","../component-lib/node_modules/@types/connect/index.d.ts","../component-lib/node_modules/@types/body-parser/index.d.ts","../component-lib/node_modules/@types/serve-static/index.d.ts","../component-lib/node_modules/@types/express-serve-static-core/index.d.ts","../component-lib/node_modules/@types/qs/index.d.ts","../component-lib/node_modules/@types/express/index.d.ts","../component-lib/lib/server-utils/errorMiddleware.d.ts","../component-lib/lib/server-utils/requestLogger.d.ts","../component-lib/lib/zip/zipDirectory.d.ts","../component-lib/lib/error/ErrorWithHttpStatusCode.d.ts","../component-lib/lib/error/BadRequestError.d.ts","../component-lib/lib/error/InternalServerError.d.ts","../component-lib/lib/error/ResourceNotFoundError.d.ts","../component-lib/lib/error/TimeoutError.d.ts","../component-lib/lib/error/ComponentError.d.ts","../component-lib/lib/error/index.d.ts","../component-lib/lib/component-context/createComponentContext.d.ts","../component-lib/lib/util/joinAbsoluteUrlPath.d.ts","../component-lib/lib/util/parseEnvVarForVar.d.ts","../component-lib/lib/util/getNodeEnv.d.ts","../component-lib/lib/util/isPathTryingToAccessOutsideOfRoot.d.ts","../component-lib/lib/index.d.ts","../render-runtime-lib/lib/component-runner/index.d.ts","../component-db-lib/node_modules/pg-types/index.d.ts","../component-db-lib/node_modules/pg-protocol/dist/messages.d.ts","../component-db-lib/node_modules/pg-protocol/dist/serializer.d.ts","../component-db-lib/node_modules/pg-protocol/dist/parser.d.ts","../component-db-lib/node_modules/pg-protocol/dist/index.d.ts","../component-db-lib/node_modules/@types/pg/index.d.ts","../component-db-lib/lib/domains/component/models/Component.d.ts","../component-db-lib/lib/db/AbstractRepository.d.ts","../component-db-lib/lib/domains/component/repositories/ComponentRepository.d.ts","../component-db-lib/lib/domains/component/models/ComponentVersion.d.ts","../component-db-lib/lib/domains/component/repositories/ComponentVersionRepository.d.ts","../component-db-lib/lib/Repositories.d.ts","../component-db-lib/lib/ConnectionManager.d.ts","../component-db-lib/lib/getConnectionInfo.d.ts","../component-db-lib/lib/index.d.ts","../render-runtime-lib/lib/webserver/index.d.ts","../render-runtime-lib/lib/test/helpers/fixtures.d.ts","../render-runtime-lib/node_modules/@types/cookiejar/index.d.ts","../render-runtime-lib/node_modules/@types/superagent/index.d.ts","../render-runtime-lib/node_modules/@types/supertest/index.d.ts","../render-runtime-lib/lib/test/helpers/stack.d.ts","../render-runtime-lib/lib/test/index.d.ts","../render-runtime-lib/lib/webserver/controllers/test/definition-route-tests.d.ts","../render-runtime-lib/lib/webserver/controllers/test/static-route-tests.d.ts","../render-runtime-lib/lib/webserver/controllers/test/render-route-tests.d.ts","../render-runtime-lib/lib/index.d.ts","./src/component-dev.ts","./node_modules/@types/supertest/index.d.ts","./src/component-dev.spec.ts","./node_modules/dotenv/lib/main.d.ts","./src/config.ts","../virus-scanner-lib/node_modules/axios/index.d.ts","../virus-scanner-lib/lib/generated/models/InitialScan.d.ts","../virus-scanner-lib/lib/generated/models/ScanStatus.d.ts","../virus-scanner-lib/lib/generated/schemas/$InitialScan.d.ts","../virus-scanner-lib/lib/generated/schemas/$ScanStatus.d.ts","../virus-scanner-lib/lib/generated/index.d.ts","../virus-scanner-lib/lib/VirusScanner.d.ts","../virus-scanner-lib/lib/uploadFile.d.ts","../virus-scanner-lib/lib/index.d.ts","./node_modules/axios/index.d.ts","./node_modules/@types/cli-color/art.d.ts","./node_modules/@types/cli-color/bare.d.ts","./node_modules/@types/cli-color/beep.d.ts","./node_modules/@types/cli-color/columns.d.ts","./node_modules/@types/cli-color/erase.d.ts","./node_modules/@types/cli-color/move.d.ts","./node_modules/@types/cli-color/get-stripped-length.d.ts","./node_modules/@types/cli-color/slice.d.ts","./node_modules/@types/cli-color/strip.d.ts","./node_modules/@types/cli-color/throbber.d.ts","./node_modules/@types/cli-color/reset.d.ts","./node_modules/@types/cli-color/window-size.d.ts","./node_modules/@types/cli-color/index.d.ts","./src/index.ts","./src/test.ts","./src/integration-tests/helper.ts","./src/integration-tests/service-deployment.spec.ts","./src/integration-tests/test-setup.ts","./src/integration-tests/upload-and-render-component.spec.ts","./src/integration-tests/__components__/big-package/manifest.json","./src/integration-tests/__components__/cmp-static-file-test/manifest.json","./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-diff/build/index.d.ts","./node_modules/jest-matcher-utils/build/index.d.ts","./node_modules/@types/jest/index.d.ts","../render-runtime-lib/node_modules/@types/node/index.d.ts"],"fileInfos":[{"version":"f5c28122bee592cfaf5c72ed7bcc47f453b79778ffa6e301f45d21a0970719d4","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"3f149f903dd20dfeb7c80e228b659f0e436532de772469980dbd00702cc05cc1","affectsGlobalScope":true},{"version":"1272277fe7daa738e555eb6cc45ded42cc2d0f76c07294142283145d49e96186","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"cd483c056da900716879771893a3c9772b66c3c88f8943b4205aec738a94b1d0","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"c37f8a49593a0030eecb51bbfa270e709bec9d79a6cc3bb851ef348d4e6b26f8","affectsGlobalScope":true},"1f03b495671c3a1bd24510f38b8947f0991dfd6bf0278c68eca14af15b306e1f","4335dec7ce54653abcb176bc8b3798fc3b78f71facac76caa7248c800dce13bc","3f28cb39b92af8c1fa0577f97f78649dd1088f7034bad4c2447eb247973d33a0","9f3c5498245c38c9016a369795ec5ef1768d09db63643c8dba9656e5ab294825","44a8d350600656882fd7462774e32e8d13788313ba2e36d2e8d5437ac91b98df","60bb0e47502bf8716d1230288b4e6387c1d34cded12752ab5338108e2e662e67","b8870b5155d11a273c75718a4f19026da49f91c548703858cd3400d06c3bd3b8","b3ae4ded82f27cabba780b9af9647f6e08c9a4cabe8fbb7a0cca69c7add9ef4b","8d26ae32e5c9c080e44aee4a67e5ef02b5fda0604e6fecbb7b753c537e5282d9","05c4e792dae38912ba333725cdf8c42d242337d006c0d887f4ce5a7787871a95","cd44995ee13d5d23df17a10213fed7b483fabfd5ea08f267ab52c07ce0b6b4da","58ce1486f851942bd2d3056b399079bc9cb978ec933fe9833ea417e33eab676e","1a23b521db8d7ec9e2b96c6fbd4c7e96d12f408b1e03661b3b9f7da7291103e6","d3d0d11d30c9878ada3356b9c36a2754b8c7b6204a41c86bfb1488c08ce263b0","a6493f1f479637ed89a3ebec03f6dc117e3b1851d7e938ac4c8501396b8639a8","ae0951e44973e928fe2e999b11960493835d094b16adac0b085a79cff181bcb9","9d00e3a59eff68fa8c40e89953083eeaad1c5b2580ed7da2304424b249ecb237","1609ad4d488c356ee91eba7d7aa87cc6fb59bc8ac05c1a8f08665285ba3b71ad","8add088f72326098d68d622ddb024c00ae56a912383efe96b03f0481db88f7c9","dd17fe6332567b8f13e33dd3ff8926553cdcea2ad32d4350ce0063a2addaa764","4091d56a4622480549350b8811ec64c7826cd41a70ce5d9c1cc20384bb144049","353c0125b9e50c2a71e18394d46be5ccb37161cc0f0e7c69216aa6932c8cdafb","9c5d5f167e86b6ddf7142559a17d13fd39c34e868ae947c40381db866eed6609","4430dea494b0ee77bf823d9a7c4850a539e1060d5d865316bb23fb393e4f01d7","aae698ceead4edad0695b9ea87e43f274e698bdb302c8cb5fd2cab4dc496ccf0","51631e9a0c041e12479ab01f5801d8a237327d19e9ee37d5f1f66be912631425","c9d5d8adb1455f49182751ce885745dcc5f9697e9c260388bc3ae9d1860d5d10","f64289e3fa8d5719eaf5ba1bb02dd32dbbf7c603dda75c16770a6bc6e9c6b6d9","b1aa0e2e3511a8d10990f35866405c64c9e576258ef99eeb9ebafed980fd7506","2d255a5287f2fb5295688cb25bd18e1cd59866179f795f3f1fd6b71b7f0edf8f","43c1dbb78d5277a5fdd8fddce8b257f84ffa2b4253f58b95c04a310710d19e97","6c669d7e080344c1574aa276a89e57c3b9f0e97fab96a09427e7dfb19ca261bf","b71ac126853867d8e64c910f47d46d05c5ea797987d2604f63d401507dc43b6d","9a37238558d28b7ee06d08599e92eab30b90704541cc85e6448009d6d55fffa9","120b14d66a061910309ff97e7b06b5c6c09444218178b80b687a92af4d22d5dc","3de958065e3a44cbe0bfa667813bc59c63e63c9ce522af8dc1b64714910fa9ba","66e655f7c43558bae6703242cbd6c0551a94d0a97204bd4c4bbf7e77f24d1f85","72f7b32e023814078046c036ed4b7ad92414be0aebb63e805c682e14103ae38a","a89d8e67966d085ff971c9900cfa1abdd9732bab66d9c1914ecc15befdf8623d","7dfd0308261bb91b058eb91802690fe3f09192b263e070a19df4d629df29e265","608eb9d411ac76e93a10e05f8aae92b3a5cefc87594219b737df7c8737ba2bd7","cde493e09daad4bb29922fe633f760be9f0e8e2f39cdca999cce3b8690b5e13a","3d7f9eb12aface876f7b535cc89dcd416daf77f0b3573333f16ec0a70bcf902a","93ba4ac36f570c70a12d588e21c10dda9f351fad3e77d416952acddb27bff01d","8750f9dc1e277ffff7446c95571bae61aca0984e8f99e40fc1e8cb7161ae0642","66408d81ba8962282b1a55da34c6bd767105141f54d0ba14dca330efe0c8f552","7481b9d93ca44eb1f689e0b939545ff00dead7bdb9daba401dfb74292d83f831","821e64ddbdfa10fac5f0aed1c1d4e1f275840400caa96357ddfd15d02e5afba1","419564ce933b3a54b5d44beb063dd025106042440080bceba32c04938d61a484","bf2b9e09ab805a9dfd942bce104f9b08c4aca6acd6d2bc51c1558269f7d6dbf8","c5c02cf97dd48e47f77dc973fa082b4610ea30964f8d92a83e6366ac944380d0","42bf40a061bfd8d72f0b2590bd437cffe189c19cd44e3bf5e7a0b7c6d76862d2","5b312a14de195172d56bee9129237403eca227b03c214af351196bd91cf94fe0","e6d30c042473d086896f5d16cd4fe9ab080196fe83c71fc488f10aaaf23213e3","e63f5f6b41f97a9cbe453d2c114dadbab317551a1b382fa11f37aa4a9af550a0","fc6c5f80278a557771c3e05a7b7165e564d596cfd182e767918720281ef3fc9a","01e3ba30dc29ed4ce3c1b499540ab47cd8aebd1422e2a9f9035bab2b3319105e","0cba3a5d7b81356222594442753cf90dd2892e5ccfe1d262aaca6896ba6c1380","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"c2ab70bbc7a24c42a790890739dd8a0ba9d2e15038b40dff8163a97a5d148c00","affectsGlobalScope":true},"422dbb183fdced59425ca072c8bd09efaa77ce4e2ab928ec0d8a1ce062d2a45a",{"version":"fcdcb42da18dd98dc286b1876dd425791772036012ae61263c011a76b13a190f","affectsGlobalScope":true},"1dab5ab6bcf11de47ab9db295df8c4f1d92ffa750e8f095e88c71ce4c3299628","f71f46ccd5a90566f0a37b25b23bc4684381ab2180bdf6733f4e6624474e1894",{"version":"54e65985a3ee3cec182e6a555e20974ea936fc8b8d1738c14e8ed8a42bd921d4","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","918a76828d88a73924bb26fef58040a6eb8a9adb7e407ea7264175520dda9450","34e5de87d983bc6aefef8b17658556e3157003e8d9555d3cb098c6bef0b5fbc8","cc0b61316c4f37393f1f9595e93b673f4184e9d07f4c127165a490ec4a928668","f27371653aded82b2b160f7a7033fb4a5b1534b6f6081ef7be1468f0f15327d3","c762cd6754b13a461c54b59d0ae0ab7aeef3c292c6cf889873f786ee4d8e75c9","f4ea7d5df644785bd9fbf419930cbaec118f0d8b4160037d2339b8e23c059e79",{"version":"bfea28e6162ed21a0aeed181b623dcf250aa79abf49e24a6b7e012655af36d81","affectsGlobalScope":true},"b8aca9d0c81abb02bec9b7621983ae65bde71da6727580070602bd2500a9ce2a","ae97e20f2e10dbeec193d6a2f9cd9a367a1e293e7d6b33b68bacea166afd7792","10d4796a130577d57003a77b95d8723530bbec84718e364aa2129fa8ffba0378","063f53ff674228c190efa19dd9448bcbd540acdbb48a928f4cf3a1b9f9478e43","bf73c576885408d4a176f44a9035d798827cc5020d58284cb18d7573430d9022","7ae078ca42a670445ae0c6a97c029cb83d143d62abd1730efb33f68f0b2c0e82",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"287b21dc1d1b9701c92e15e7dd673dfe6044b15812956377adffb6f08825b1bc","12eea70b5e11e924bb0543aea5eadc16ced318aa26001b453b0d561c2fd0bd1e","08777cd9318d294646b121838574e1dd7acbb22c21a03df84e1f2c87b1ad47f2","08a90bcdc717df3d50a2ce178d966a8c353fd23e5c392fd3594a6e39d9bb6304",{"version":"4cd4cff679c9b3d9239fd7bf70293ca4594583767526916af8e5d5a47d0219c7","affectsGlobalScope":true},"2a12d2da5ac4c4979401a3f6eaafa874747a37c365e4bc18aa2b171ae134d21b","002b837927b53f3714308ecd96f72ee8a053b8aeb28213d8ec6de23ed1608b66","1dc9c847473bb47279e398b22c740c83ea37a5c88bf66629666e3cf4c5b9f99c","a9e4a5a24bf2c44de4c98274975a1a705a0abbaad04df3557c2d3cd8b1727949","00fa7ce8bc8acc560dc341bbfdf37840a8c59e6a67c9bfa3fa5f36254df35db2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","5f0ed51db151c2cdc4fa3bb0f44ce6066912ad001b607a34e65a96c52eb76248",{"version":"3345c276cab0e76dda86c0fb79104ff915a4580ba0f3e440870e183b1baec476","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","103d70bfbeb3cd3a3f26d1705bf986322d8738c2c143f38ebb743b1e228d7444","f52fbf64c7e480271a9096763c4882d356b05cab05bf56a64e68a95313cd2ce2","59bdb65f28d7ce52ccfc906e9aaf422f8b8534b2d21c32a27d7819be5ad81df7",{"version":"3a2da34079a2567161c1359316a32e712404b56566c45332ac9dcee015ecce9f","affectsGlobalScope":true},"28a2e7383fd898c386ffdcacedf0ec0845e5d1a86b5a43f25b86bc315f556b79","3aff9c8c36192e46a84afe7b926136d520487155154ab9ba982a8b544ea8fc95","a880cf8d85af2e4189c709b0fea613741649c0e40fffb4360ec70762563d5de0","85bbf436a15bbeda4db888be3062d47f99c66fd05d7c50f0f6473a9151b6a070","9f9c49c95ecd25e0cb2587751925976cf64fd184714cb11e213749c80cf0f927","f0c75c08a71f9212c93a719a25fb0320d53f2e50ca89a812640e08f8ad8c408c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"9cafe917bf667f1027b2bb62e2de454ecd2119c80873ad76fc41d941089753b8","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"101eb8b4e972b9326f39591e2e40e967e3331e8d960f81248daeb266ea1affec","affectsGlobalScope":true},"84e3bbd6f80983d468260fdbfeeb431cc81f7ea98d284d836e4d168e36875e86","0b85cb069d0e427ba946e5eb2d86ef65ffd19867042810516d16919f6c1a5aec","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","0b85cb069d0e427ba946e5eb2d86ef65ffd19867042810516d16919f6c1a5aec",{"version":"101eb8b4e972b9326f39591e2e40e967e3331e8d960f81248daeb266ea1affec","affectsGlobalScope":true},"ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc","15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae","1c26b05af1ecc2d8a9d2e682931ec21658c842a792ced4dcf18ea5a49f1a695e","580304f233b87c918b6ee81c358b2efe818284fe19584e28e5a26026d8a355cf","558e0d1c797f78421be23db3c79a93db5b6c26a42a1e2b55a3efba037f26ab48","048c8482f35a0f3abd2ec8c86ba7b3c86af4906ebb7a12e4fbdc8d6896eb19dc","69c97795fcaf5bf566a1efcc24e5a5bf2d8c261ad1851239b0504c9c4a9e9cc0","9dfc364342a667c968f9be3ff7865abaf477df206a936b578b2a98eeaff0e318","56d6e24f71ed721db5a196fc6ab8523f0f469f7ae01b663ddea59981e0d82423","0bccccdd597d8a14213654d62b6ec25f37925bcd9bf6b9470006867478d7f612","b089e61130588931583bb35fa3de8fbf8695ed2b84de63d6623cdc935f6da676","9acbadd311ff3c3befca95fffdebbb1e703c437f708ff22c1324243c8f1c8d19","8671015544c781db69e1812986381ebc2b6dd303dfdf57b5c4ad45ed4c471deb","4889ae7c801238c611fcc96216b4b0bcdf39f0da707c77ca19fe561371029d11","e5e691ae3d8407aace8fba0029a6092c58eabaeeacc1325fa9c26e44f2776d53","87307be8e09e256fef6f626127e27cb03b10a9a488ebbaa0ec6ee748e9b14b78","02d39a917634d874c61968720d803fc08c236a5e5e22dfa910a8582a58d8f772","96706c03a99ba8a64a964739204a2050cabf6bb9f8d2fb57a7b49852bec77741","c86c188d3fdb1fc45176d23b0caf6adfb6a9d01eac10ed30a8404f70de1f0618","f60e3e3060207ac982da13363181fd7ee4beecc19a7c569f0d6bb034331066c2","17230b34bb564a3a2e36f9d3985372ccab4ad1722df2c43f7c5c2b553f68e5db","87ed0f84f0691d5c724b23159db96342e6b04ac69201b02c65936f4281ce1fbe","13868c5792808236b17dfe2803eafce911ea4d09d3b2fda95391891a494f988f","0dfe35191a04e8f9dc7caeb9f52f2ee07402736563d12cbccd15fb5f31ac877f","fa5c2d3fcd8e227e180815df0a0903ed4b116400452af8a75ac5b68e5e1de9da","52d7bb5404c05f86c6b97365ec0a40a07ab8e809dd33a642f56b017232d546e6","1d04900f8a79e798268ed3c58bc5c45e5f467e296453aa249b5584762d888109","21a34f247fbe2d60105e8dc67ca23e14d902a2bf53275545fa28eff784d781bb","2c79bdadf3bca2286ef11e176b4dc832c8e3722744dc686bdde0b93dece3e5f7","8654cc26c50b8a2113c6e01a42471961b6ec605144208304500e99a8d3335c5f","fcdab80f2cbf75c8faed4a376ed3f7775ed70a74574f9eff4485cc39102fa44f","5c6282585651ced50f9b43577f9eb4552f8bda49b460b3afb44cde6d14b5e615","016b1d5159ee90e7dc54361629b64fe3c4950705b68b431035447a0c4e33f39a","56e29174aac70e6cf2409a40b93125b543f595db45b21e5a25d74ed2b3ed0416","e0520fe27bd137cc5fd929553deb709e611de74e793b8b98ec93a2d4a3bc08fe","0f336e17ce13e0a4d142220f8e1ae0cd93f8205ee45f6d468a9bf80d21b2f46a","8d48b8f8a377ade8dd1f000625bc276eea067f2529cc9cafdf082d17142107d6","31c502014e5ba046d5cb060136929b73fd53f0f989aa37b2b0424644cb0d93ef","76232dbb982272b182a76ad8745a9b02724dc9896e2328ce360e2c56c64c9778","06ecf824b4dfc90230aa004c346ed18b0ea3f55c364ac91c31c24beb877c0777","bb5077aa8b1acaed1d5ef6c20c4efa82b74465be99b3e83137d4a50a1b48aa4a","29868a2e889c5bb3f6c00c9513f5678a5b0b86f03c6bdae433ae285ed6289ddf","fb707ce406246f61190384489204eaa70de40e9aa4dedb3fbc9eacfc2a4ee890","fce50162c435aa1421f2b095060b38691e4b34b1a25b66b41916aa0031c56a52","e8ab430528ecbf32794e9b4408db5119d572dba105f1789fb3888055be01afdf",{"version":"d90d0f81618a3490fb002889542933f3db9ccfbd93dcbd321728e373c9fae990","signature":"1fa505e7e271e4af6432d45a0cdfa54f28d94eafeaf1e24bc9e5f6774918f994"},"76232dbb982272b182a76ad8745a9b02724dc9896e2328ce360e2c56c64c9778",{"version":"b2df868da8b56fc6986968ac37cd3a6d377df96e10a504b4d22672bc88ae8ab6","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"cfdd927a5eae7a7e623b9745722ef3f2b7a2997fddc5d32b7e3dcaeeb15ff4a3",{"version":"391d539fedad1fc7cacd17c1b421017c38402e0c80c3958b91c08e7adeeb6fb0","signature":"b6ff98628b0e3d5e9f59982914559e8fd76f81b3675acc0a40fdb3519162116e"},"d88dc05fd345b7a4e1816bbfd2dd087eefa9b9e36096818c2348f5b246971125","ca9ebc5b0d02b1a6417aa85f7c8c685a8ed1b71e496367f21fa80b5884e648c7","4dd414d700d383f51e95de06a3dd767ecfc6e884207df2ab6bbf0a5ee2947197","dd1376343798071eca045504b679ce66db19e716df789de32a34e6cd4117e56e","d6916856643459f6295b01a3c2bb1a91885d50a13bb2a675b4c760947c881938","b1f03c33978d580e40b089312d9b86c827af12db5939d001e2b6ddeed864f216","4aa198370b45595ab2b079184272dacdd1d3a6e185b5a8bc25b6c57822eb301d","fb6ea4754383178e666a5839222f181c5cc28e0b07e3324dcd19dbd61062d844","37ce3e0b120cdeb2028f060b8c0e4ef399647bba65812e376b65721ac4256421","d88dc05fd345b7a4e1816bbfd2dd087eefa9b9e36096818c2348f5b246971125","a7b9533447378e7f34fa432e26be9102173e79bceb65b20d258d61c4042e90ad","d71ffe64592c4e61c6b431d8fbaff58735cd659738d788a4c8423a27f78f01b7","b869f848bec826c9d3645d10a183b905672a4675747f41700fd30e1b7e0d0308","62cc84c2971b16cc82e1f7cb1dac7d8c70b589d492fbc2f6efbcbfc53b61d514","67729b7b26e1ecf2afeb2f4a0a8c3ba16712918ef22d23bb615f033169ebe0f3","903da09dbdfea0af66cb6b7b25950e42e350f1f3cc87f3516baa553cc4de882f","e237aa7b157ebfb2699d2e3bbf07c65a8cea0382201dc44c9da006f0f730de67","05e8a403b04248dbe9eebd2025d58e95495de303f37b39f13e7562f5f414087a","a56bf5dce7c05192e4c2d95eb1527feda15f9225afea8c5ad67034a79992ebb6","fcb510be50b0756cb770f8caf321dba38ae074665efbea090584f8a8d3e6b8f4","d4c9c56a2f4ecedcc224a495dfbaee88072c8e99679504fb32ef1d0629f843a1","5ec537948044f7c0280d6175729bf7aa13deae28fe0f6346628a8cf15569aefa","94998ffb6165ce44d492327169a7f7cb0e1e11a967f068fbda6796029a4a40dd",{"version":"4fd786e1b93ce07f30b7c5251a74f4cfe58a3bf97cb3afa8f6935e34859b42e2","signature":"575c89f0099618634f45b3b4b9d472e691f878c12dfc6fece5ca3251de077d19"},{"version":"97560ea82d40b94c73c7ac05bf2be01d8af3307cdc5ee5f6f214987d58191c72","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"f135a55f4d45b44c03e17f7d76ab23b71e3ef564c42dee6c9980c696ae6a9f8c","signature":"aeb63ea894e744bc4e1d4b3219914f3b83ac619ab3631128e3f8a93144a95f93"},{"version":"e1d1990438e06ef9b5b8239f4d489ec96a0fe5529afa5d90accd87b39909bce6","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"6cbf5df81765e05550be69f69e84ba04271846b1772ae48ba76024a40fd1da34","signature":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","affectsGlobalScope":true},{"version":"8849e4a1d49d5dcc1705da6e7a3a7e52228bdcd17392c4e9778f2319950aca32","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"c86701cdbbe77e01aada879efb3cd8c00d03bf734fef6e95e71b1c2ab4594ebd","1d507604bd101871a8ad6eb17c7de82b940b3eab0222a049e72d43fc86c77351","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","d982cdd2610155b3cbcbfa62ccabcf2d2b739f821518ef113348d160ef0010d9","ffcc5500e77223169833fc6eb59b3a507944a1f89574e0a1276b0ea7fc22c4a4","22f13de9e2fe5f0f4724797abd3d34a1cdd6e47ef81fc4933fea3b8bf4ad524b","e3ba509d3dce019b3190ceb2f3fc88e2610ab717122dabd91a9efaa37804040d","cda0cb09b995489b7f4c57f168cd31b83dcbaa7aad49612734fb3c9c73f6e4f2",{"version":"1de1ad6a1929317171d8cfcd55bb2732257680c1bf89bcd53e1d46a4d8dbda22","affectsGlobalScope":true}],"options":{"composite":true,"declaration":true,"esModuleInterop":true,"module":1,"outDir":"./lib","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":6},"fileIdsList":[[145,244],[145],[145,222,223,224,225,226,227,228,229,230,231,232,233],[117,120,145,152,153,154],[145,246,248],[102,145],[105,145],[106,111,145],[107,117,118,125,134,144,145],[107,108,117,125,145],[109,145],[110,111,118,126,145],[111,134,141,145],[112,114,117,125,145],[113,145],[114,115,145],[116,117,145],[117,145],[117,118,119,134,144,145],[117,118,119,134,145],[120,125,134,144,145],[117,118,120,121,125,134,141,144,145],[120,122,134,141,144,145],[102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151],[117,123,145],[124,144,145],[114,117,125,134,145],[126,145],[127,145],[105,128,145],[129,143,145,149],[130,145],[131,145],[117,132,145],[132,133,145,147],[117,134,135,136,145],[134,136,145],[134,135,145],[137,145],[138,145],[117,139,140,145],[139,140,145],[111,125,134,141,145],[142,145],[125,143,145],[106,120,131,144,145],[111,145],[134,145,146],[145,147],[145,148],[106,111,117,119,128,134,144,145,147,149],[134,145,150],[120,145,152,156],[145,199],[145,152],[145,246],[145,243,247],[145,245],[119,127,145,200,206,207],[127,145,206],[145,179,210],[119,127,145,179,212,220,234],[111,118,119,127,145,211,212],[119,127,145,237],[127,145,200,211,234,235,237],[145,207],[145,186,192],[145,189,191],[145,186,187,188,192],[145,186,188,190,192],[145,193],[145,192,193,194],[117,134,141,145,152,181,182,185,186],[145,152,182,183,184],[134,145,152,182],[46,145],[98,145],[145,167],[145,167,168,169,170,171,172],[46,47,93,94,95,96,97,98,99,100,101,145,164,165,166,173,174,175,176,177,178],[46,47,92,98,145,179],[99,145],[47,145],[145,163],[94,145],[92,145],[47,93,94,95,145],[120,145,152,158],[120,145,152],[145,154,155,157,159],[51,52,56,83,84,88,90,91,145],[49,50,145],[49,145],[51,91,145],[51,52,88,89,91,145],[91,145],[48,91,92,145],[51,52,90,91,145],[51,52,54,55,90,91,145],[51,52,53,90,91,145],[51,52,56,83,84,85,86,87,90,91,145],[48,51,52,56,88,90,145],[56,91,145],[58,59,60,61,62,63,64,65,66,67,91,145],[81,91,145],[57,68,76,77,78,79,80,82,145],[61,91,145],[69,70,71,72,73,74,75,91,145],[145,179],[145,180,196,202,203,204,205],[145,200,206],[145,197,201],[120,145,195,250],[106,118,120,134,145,152,198],[145,212,217],[145,213,214,215,216],[145,217,218,219],[212]],"referencedMap":[[245,1],[244,2],[222,2],[223,2],[224,2],[225,2],[226,2],[228,2],[234,3],[227,2],[232,2],[229,2],[230,2],[231,2],[233,2],[155,4],[249,5],[156,2],[102,6],[103,6],[105,7],[106,8],[107,9],[108,10],[109,11],[110,12],[111,13],[112,14],[113,15],[114,16],[115,16],[116,17],[117,18],[118,19],[119,20],[104,2],[151,2],[120,21],[121,22],[122,23],[152,24],[123,25],[124,26],[125,27],[126,28],[127,29],[128,30],[129,31],[130,32],[131,33],[132,34],[133,35],[134,36],[136,37],[135,38],[137,39],[138,40],[139,41],[140,42],[141,43],[142,44],[143,45],[144,46],[145,47],[146,48],[147,49],[148,50],[149,51],[150,52],[154,2],[153,2],[157,53],[208,54],[221,2],[243,2],[210,55],[247,56],[248,57],[246,58],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[45,2],[33,2],[34,2],[35,2],[36,2],[7,2],[37,2],[42,2],[43,2],[38,2],[39,2],[40,2],[41,2],[1,2],[44,2],[11,2],[10,2],[209,59],[207,60],[211,61],[235,62],[241,2],[242,2],[237,63],[238,64],[239,2],[240,65],[236,66],[193,67],[192,68],[188,67],[187,2],[190,2],[189,69],[191,70],[194,71],[195,72],[186,73],[185,74],[182,55],[184,75],[183,55],[181,2],[47,76],[174,77],[98,2],[168,78],[172,78],[167,2],[169,78],[170,78],[171,78],[173,79],[179,80],[99,81],[100,82],[101,83],[46,2],[164,84],[165,84],[177,2],[178,2],[175,2],[176,2],[94,2],[95,2],[97,85],[93,86],[96,87],[166,2],[159,88],[158,89],[161,4],[163,90],[162,2],[160,53],[92,91],[49,2],[51,92],[50,93],[55,94],[90,95],[87,96],[89,97],[52,96],[53,98],[57,98],[56,99],[54,100],[88,101],[86,96],[91,102],[84,2],[85,2],[58,103],[63,96],[65,96],[60,96],[61,103],[67,96],[68,104],[59,96],[64,96],[66,96],[62,96],[82,105],[81,96],[83,106],[77,96],[79,96],[78,96],[74,96],[80,107],[75,96],[76,108],[69,96],[70,96],[71,96],[72,96],[73,96],[48,2],[180,109],[206,110],[197,109],[201,111],[202,112],[203,2],[205,2],[204,2],[196,113],[198,2],[199,114],[200,54],[218,115],[217,116],[213,2],[214,2],[215,2],[216,2],[220,117],[219,115],[212,2]],"exportedModulesMap":[[245,1],[244,2],[222,2],[223,2],[224,2],[225,2],[226,2],[228,2],[234,3],[227,2],[232,2],[229,2],[230,2],[231,2],[233,2],[155,4],[249,5],[156,2],[102,6],[103,6],[105,7],[106,8],[107,9],[108,10],[109,11],[110,12],[111,13],[112,14],[113,15],[114,16],[115,16],[116,17],[117,18],[118,19],[119,20],[104,2],[151,2],[120,21],[121,22],[122,23],[152,24],[123,25],[124,26],[125,27],[126,28],[127,29],[128,30],[129,31],[130,32],[131,33],[132,34],[133,35],[134,36],[136,37],[135,38],[137,39],[138,40],[139,41],[140,42],[141,43],[142,44],[143,45],[144,46],[145,47],[146,48],[147,49],[148,50],[149,51],[150,52],[154,2],[153,2],[157,53],[208,54],[221,2],[243,2],[210,55],[247,56],[248,57],[246,58],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[45,2],[33,2],[34,2],[35,2],[36,2],[7,2],[37,2],[42,2],[43,2],[38,2],[39,2],[40,2],[41,2],[1,2],[44,2],[11,2],[10,2],[241,2],[242,2],[237,118],[193,67],[192,68],[188,67],[187,2],[190,2],[189,69],[191,70],[194,71],[195,72],[186,73],[185,74],[182,55],[184,75],[183,55],[181,2],[47,76],[174,77],[98,2],[168,78],[172,78],[167,2],[169,78],[170,78],[171,78],[173,79],[179,80],[99,81],[100,82],[101,83],[46,2],[164,84],[165,84],[177,2],[178,2],[175,2],[176,2],[94,2],[95,2],[97,85],[93,86],[96,87],[166,2],[159,88],[158,89],[161,4],[163,90],[162,2],[160,53],[92,91],[49,2],[51,92],[50,93],[55,94],[90,95],[87,96],[89,97],[52,96],[53,98],[57,98],[56,99],[54,100],[88,101],[86,96],[91,102],[84,2],[85,2],[58,103],[63,96],[65,96],[60,96],[61,103],[67,96],[68,104],[59,96],[64,96],[66,96],[62,96],[82,105],[81,96],[83,106],[77,96],[79,96],[78,96],[74,96],[80,107],[75,96],[76,108],[69,96],[70,96],[71,96],[72,96],[73,96],[48,2],[180,109],[206,110],[197,109],[201,111],[202,112],[203,2],[205,2],[204,2],[196,113],[198,2],[199,114],[200,54],[218,115],[217,116],[213,2],[214,2],[215,2],[216,2],[220,117],[219,115],[212,2]],"semanticDiagnosticsPerFile":[245,244,222,223,224,225,226,228,234,227,232,229,230,231,233,155,249,156,102,103,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,104,151,120,121,122,152,123,124,125,126,127,128,129,130,131,132,133,134,136,135,137,138,139,140,141,142,143,144,145,146,147,148,149,150,154,153,157,208,221,243,210,247,248,246,8,9,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,45,33,34,35,36,7,37,42,43,38,39,40,41,1,44,11,10,209,207,211,235,241,242,237,238,239,240,236,193,192,188,187,190,189,191,194,195,186,185,182,184,183,181,47,174,98,168,172,167,169,170,171,173,179,99,100,101,46,164,165,177,178,175,176,94,95,97,93,96,166,159,158,161,163,162,160,92,49,51,50,55,90,87,89,52,53,57,56,54,88,86,91,84,85,58,63,65,60,61,67,68,59,64,66,62,82,81,83,77,79,78,74,80,75,76,69,70,71,72,73,48,180,206,197,201,202,203,205,204,196,198,199,200,218,217,213,214,215,216,220,219,212]},"version":"4.7.4"}