@squiz/component-cli-lib 1.2.1-alpha.87 → 1.2.1-alpha.89
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/.env +10 -0
- package/CHANGELOG.md +17 -1
- package/jest.integration.config.ts +7 -2
- package/package.json +5 -5
- package/src/component-dev.ts +3 -3
- package/src/integration-tests/__components__/cmp-static-file-test/manifest.json +9 -1
- package/src/integration-tests/__components__/invalid-manifest/main.js +7 -0
- package/src/integration-tests/__components__/invalid-manifest/manifest.json +26 -0
- package/src/integration-tests/__components__/invalid-upload/main.js +7 -0
- package/src/integration-tests/upload-and-render-component.spec.ts +18 -1
- package/src/test.ts +2 -1
- package/src/upload-component-folder.ts +48 -9
- package/lib/component-dev.d.ts +0 -13
- package/lib/component-dev.js +0 -37
- package/lib/component-dev.js.map +0 -1
- package/lib/component-dev.spec.d.ts +0 -1
- package/lib/component-dev.spec.js +0 -91
- package/lib/component-dev.spec.js.map +0 -1
- package/lib/config.d.ts +0 -8
- package/lib/config.js +0 -13
- package/lib/config.js.map +0 -1
- package/lib/index.d.ts +0 -2
- package/lib/index.js +0 -8
- package/lib/index.js.map +0 -1
- package/lib/integration-tests/__components__/big-package/manifest.json +0 -32
- package/lib/integration-tests/__components__/cmp-static-file-test/manifest.json +0 -28
- package/lib/integration-tests/helper.d.ts +0 -7
- package/lib/integration-tests/helper.js +0 -43
- package/lib/integration-tests/helper.js.map +0 -1
- package/lib/integration-tests/service-deployment.spec.d.ts +0 -1
- package/lib/integration-tests/service-deployment.spec.js +0 -16
- package/lib/integration-tests/service-deployment.spec.js.map +0 -1
- package/lib/integration-tests/test-setup.d.ts +0 -0
- package/lib/integration-tests/test-setup.js +0 -3
- package/lib/integration-tests/test-setup.js.map +0 -1
- package/lib/integration-tests/upload-and-render-component.spec.d.ts +0 -1
- package/lib/integration-tests/upload-and-render-component.spec.js +0 -86
- package/lib/integration-tests/upload-and-render-component.spec.js.map +0 -1
- package/lib/test.d.ts +0 -1
- package/lib/test.js +0 -22
- package/lib/test.js.map +0 -1
- package/lib/upload-component-folder.d.ts +0 -1
- package/lib/upload-component-folder.js +0 -90
- package/lib/upload-component-folder.js.map +0 -1
- package/tsconfig.tsbuildinfo +0 -1
package/.env
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# COMPONENT_MANAGEMENT_SERVICE_URL=https://management.devx-512.components.dev.dx.squiz.cloud
|
|
2
|
+
|
|
3
|
+
# COMPONENT_RENDER_SERVICE_URL=https://render.devx-512.components.dev.dx.squiz.cloud
|
|
4
|
+
|
|
5
|
+
CI_COMMIT_SHORT_SHA=undefined
|
|
6
|
+
CI_COMMIT_REF_NAME=undefined
|
|
7
|
+
|
|
8
|
+
COMPONENT_MANAGEMENT_SERVICE_URL=http://localhost:3010
|
|
9
|
+
|
|
10
|
+
COMPONENT_RENDER_SERVICE_URL=http://localhost:3000
|
package/CHANGELOG.md
CHANGED
|
@@ -3,7 +3,23 @@
|
|
|
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.
|
|
6
|
+
## [1.2.1-alpha.89](https://gitlab.squiz.net/developer-experience/cmp/compare/v1.2.1-alpha.88...v1.2.1-alpha.89) (2022-08-05)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @squiz/component-cli-lib
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [1.2.1-alpha.88](https://gitlab.squiz.net/developer-experience/cmp/compare/v1.2.1-alpha.67...v1.2.1-alpha.88) (2022-08-05)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @squiz/component-cli-lib
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## [1.2.1-alpha.87](https://gitlab.squiz.net/developer-experience/cmp/compare/v1.2.1-alpha.67...v1.2.1-alpha.87) (2022-08-05)
|
|
7
23
|
|
|
8
24
|
**Note:** Version bump only for package @squiz/component-cli-lib
|
|
9
25
|
|
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
import type { Config } from '
|
|
1
|
+
import type { Config } from 'jest';
|
|
2
2
|
|
|
3
3
|
// Sync object
|
|
4
|
-
const config: Config
|
|
4
|
+
const config: Config = {
|
|
5
5
|
preset: 'ts-jest',
|
|
6
6
|
testEnvironment: 'node',
|
|
7
7
|
testRegex: '/integration-tests/.*\\.spec\\.ts$',
|
|
8
8
|
setupFiles: ['./src/integration-tests/test-setup.ts'],
|
|
9
9
|
detectOpenHandles: true,
|
|
10
|
+
|
|
11
|
+
globals: {
|
|
12
|
+
BUILD_VERSION: 'undefined',
|
|
13
|
+
BUILD_BRANCH: 'undefined',
|
|
14
|
+
},
|
|
10
15
|
};
|
|
11
16
|
|
|
12
17
|
export default config;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@squiz/component-cli-lib",
|
|
3
|
-
"version": "1.2.1-alpha.
|
|
3
|
+
"version": "1.2.1-alpha.89",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -28,13 +28,13 @@
|
|
|
28
28
|
"typescript": "4.7.4"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@squiz/component-lib": "^1.2.1-alpha.
|
|
32
|
-
"@squiz/render-runtime-lib": "^1.2.1-alpha.
|
|
33
|
-
"@squiz/virus-scanner-lib": "^1.2.1-alpha.
|
|
31
|
+
"@squiz/component-lib": "^1.2.1-alpha.89",
|
|
32
|
+
"@squiz/render-runtime-lib": "^1.2.1-alpha.89",
|
|
33
|
+
"@squiz/virus-scanner-lib": "^1.2.1-alpha.89",
|
|
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": "
|
|
39
|
+
"gitHead": "d42ff3393c6e336ee05519872dbb58112ef045d1"
|
|
40
40
|
}
|
package/src/component-dev.ts
CHANGED
|
@@ -11,7 +11,7 @@ import path from 'path';
|
|
|
11
11
|
* @param {object} options - Additional configuration for the dev stack
|
|
12
12
|
* @returns a function to stop the render stack
|
|
13
13
|
*/
|
|
14
|
-
export async function startDevelopmentRender(componentPath: string, options: { port: number }) {
|
|
14
|
+
export async function startDevelopmentRender(componentPath: string, options: { port: number; previewFile?: string }) {
|
|
15
15
|
await startRenderStack({
|
|
16
16
|
webserver: {
|
|
17
17
|
port: options.port,
|
|
@@ -22,8 +22,8 @@ export async function startDevelopmentRender(componentPath: string, options: { p
|
|
|
22
22
|
// Considering the component path will be passed in from CLI
|
|
23
23
|
// We need to generate the path from the calling directory
|
|
24
24
|
dataMountPoint: path.resolve(process.cwd(), componentPath),
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
localDevMode: true,
|
|
26
|
+
previewFile: options.previewFile,
|
|
27
27
|
workerTimeout: 20_000,
|
|
28
28
|
},
|
|
29
29
|
});
|
|
@@ -21,7 +21,15 @@
|
|
|
21
21
|
"output": {
|
|
22
22
|
"response-type": "html",
|
|
23
23
|
|
|
24
|
-
"static-files": [
|
|
24
|
+
"static-files": [
|
|
25
|
+
{
|
|
26
|
+
"location": "header",
|
|
27
|
+
"file": {
|
|
28
|
+
"filepath": "static-library-file.js",
|
|
29
|
+
"type": "js"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
]
|
|
25
33
|
}
|
|
26
34
|
}
|
|
27
35
|
],
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://localhost:3000/schemas/v1.json#",
|
|
3
|
+
|
|
4
|
+
"name": "invalid-manifes@t",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"main-function": "main",
|
|
7
|
+
|
|
8
|
+
"functions": [
|
|
9
|
+
{
|
|
10
|
+
"entry": "main.js",
|
|
11
|
+
"name": "main",
|
|
12
|
+
"input": {
|
|
13
|
+
"type": "object",
|
|
14
|
+
"properties": {
|
|
15
|
+
"something": {
|
|
16
|
+
"type": "string"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"required": ["something"]
|
|
20
|
+
},
|
|
21
|
+
"output": {
|
|
22
|
+
"response-type": "html"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
]
|
|
26
|
+
}
|
|
@@ -31,7 +31,24 @@ describe('Test isolated test cases', () => {
|
|
|
31
31
|
console.error = orgConsoleError;
|
|
32
32
|
});
|
|
33
33
|
|
|
34
|
+
it('Should fail uploading a component without manifest.json', async () => {
|
|
35
|
+
mockConsoleError.mockClear();
|
|
36
|
+
const componentPath = path.join(__dirname, '/__components__/invalid-upload');
|
|
37
|
+
await uploadComponentFolder(componentPath, configVars.managementServiceUrl);
|
|
38
|
+
expect(mockConsoleError.mock.calls[0][0]).toEqual(color.red('manifest could not be found'));
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
it('Should fail uploading a component that has invalid manifest.json', async () => {
|
|
42
|
+
mockConsoleError.mockClear();
|
|
43
|
+
const componentPath = path.join(__dirname, '/__components__/invalid-manifest');
|
|
44
|
+
await uploadComponentFolder(componentPath, configVars.managementServiceUrl);
|
|
45
|
+
expect(mockConsoleError.mock.calls[0][0]).toEqual(
|
|
46
|
+
color.red('/name: pattern must match pattern "^[a-zA-Z0-9_\\-]+$"'),
|
|
47
|
+
);
|
|
48
|
+
});
|
|
49
|
+
|
|
34
50
|
it('Should fail uploading the component that has size more than 100MB', async () => {
|
|
51
|
+
mockConsoleError.mockClear();
|
|
35
52
|
const componentPath = path.join(__dirname, '/__components__/big-package');
|
|
36
53
|
const filePath = `${componentPath}/105mb-file`;
|
|
37
54
|
await createFile(filePath, 105); // Higher limit has been used because compression reduces the size if you use closer to 100MB
|
|
@@ -80,7 +97,7 @@ describe('Deploy basic component having a static file', () => {
|
|
|
80
97
|
mockConsoleError.mockClear();
|
|
81
98
|
await uploadComponentFolder(componentPath, configVars.managementServiceUrl);
|
|
82
99
|
expect(mockConsoleError.mock.calls[0][0]).toEqual(
|
|
83
|
-
color.red('
|
|
100
|
+
color.red('Cannot upload component version, cmp-static-file-test 1.0.0 already exists'),
|
|
84
101
|
);
|
|
85
102
|
});
|
|
86
103
|
|
package/src/test.ts
CHANGED
|
@@ -12,7 +12,8 @@ if (command === 'dev') {
|
|
|
12
12
|
const dataMountPoint = process.env.DATA_MOUNT_POINT || '/Users/wfagerstrom/Code/component-service/test-components';
|
|
13
13
|
const port = process.env.PORT || '3000';
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
const previewFile = process.argv[3];
|
|
16
|
+
startDevelopmentRender(dataMountPoint, { port: parseInt(port), previewFile }).then(() => {
|
|
16
17
|
console.log('starting');
|
|
17
18
|
});
|
|
18
19
|
}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { ScanStatus, uploadFile } from '@squiz/virus-scanner-lib';
|
|
2
|
-
import { zipDirectory } from '@squiz/component-lib';
|
|
2
|
+
import { loadManifest, zipDirectory } from '@squiz/component-lib';
|
|
3
3
|
import fsp from 'fs/promises';
|
|
4
4
|
import path from 'path';
|
|
5
5
|
import axios, { AxiosResponse, AxiosError, AxiosInstance } from 'axios';
|
|
6
6
|
import color from 'cli-color';
|
|
7
|
+
import configObj from './config';
|
|
8
|
+
import { V1 } from '@squiz/component-lib';
|
|
7
9
|
|
|
8
10
|
export async function uploadComponentFolder(folderPath: string, componentServiceManagementUrl: string): Promise<void> {
|
|
9
11
|
const tmpDir = path.resolve(await fsp.mkdtemp('cmp-upload'));
|
|
@@ -11,8 +13,12 @@ export async function uploadComponentFolder(folderPath: string, componentService
|
|
|
11
13
|
try {
|
|
12
14
|
const axiosInstance = axios.create({
|
|
13
15
|
baseURL: componentServiceManagementUrl,
|
|
16
|
+
headers: {
|
|
17
|
+
'content-type': 'application/json',
|
|
18
|
+
},
|
|
14
19
|
});
|
|
15
20
|
|
|
21
|
+
await preUploadChecks(folderPath);
|
|
16
22
|
console.log('Initial scanning');
|
|
17
23
|
const zip = await zipDirectory(folderPath, tmpDir);
|
|
18
24
|
|
|
@@ -45,6 +51,35 @@ export async function uploadComponentFolder(folderPath: string, componentService
|
|
|
45
51
|
}
|
|
46
52
|
}
|
|
47
53
|
|
|
54
|
+
async function preUploadChecks(folderPath: string) {
|
|
55
|
+
const result = await loadManifest(path.join(folderPath, `manifest.json`));
|
|
56
|
+
if (await checkIfVersionExists(result)) {
|
|
57
|
+
throw new Error(`Cannot upload component version, ${result.name} ${result.version} already exists`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
async function checkIfVersionExists(inputManifest: V1) {
|
|
62
|
+
const axiosInstance = axios.create({
|
|
63
|
+
baseURL: configObj.renderServiceUrl,
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
try {
|
|
67
|
+
const response = await axiosInstance.get(`d/${inputManifest.name}/${inputManifest.version}/manifest.json`);
|
|
68
|
+
if (response.status === 200) {
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
throw new Error(`Unexpected response code ${response.status}`);
|
|
72
|
+
} catch (error) {
|
|
73
|
+
if (isAxiosError(error)) {
|
|
74
|
+
const { response } = error;
|
|
75
|
+
if (response?.status === 404) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
throw error;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
48
83
|
async function watchAndWaitForUploadAndScanComplete(id: string, axiosInstance: AxiosInstance): Promise<void> {
|
|
49
84
|
const poll = () => handleResponse<ScanStatus>(axiosInstance.get('upload-component/status/' + id));
|
|
50
85
|
|
|
@@ -69,17 +104,17 @@ async function watchAndWaitForUploadAndScanComplete(id: string, axiosInstance: A
|
|
|
69
104
|
}
|
|
70
105
|
|
|
71
106
|
async function handleResponse<T>(axiosInstance: Promise<AxiosResponse<T>>): Promise<T> {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
.
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
107
|
+
try {
|
|
108
|
+
const response = await axiosInstance;
|
|
109
|
+
return response.data;
|
|
110
|
+
} catch (error) {
|
|
111
|
+
throw handleError(error);
|
|
112
|
+
}
|
|
78
113
|
}
|
|
79
114
|
|
|
80
|
-
function
|
|
115
|
+
function handleError(error: any): Error {
|
|
81
116
|
const { response } = error;
|
|
82
|
-
if (!response || (
|
|
117
|
+
if (!response || !isAxiosError(error)) {
|
|
83
118
|
return error;
|
|
84
119
|
}
|
|
85
120
|
const message = (response.data as any).message;
|
|
@@ -89,3 +124,7 @@ function handleAxiosError(error: AxiosError): Error {
|
|
|
89
124
|
return new Error(`Unexpected response code ${response.status}.`);
|
|
90
125
|
}
|
|
91
126
|
}
|
|
127
|
+
|
|
128
|
+
function isAxiosError(error: any): error is AxiosError {
|
|
129
|
+
return error && error.isAxiosError === true;
|
|
130
|
+
}
|
package/lib/component-dev.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* startDevelopmentRender starts a dev-mode render stack for any
|
|
3
|
-
* local directory. This should start an express server on a random unused port
|
|
4
|
-
* which can be accessed for viewing the component in development.
|
|
5
|
-
* As the render stack outputs log using `bunyan`, the CLI command that runs
|
|
6
|
-
* this function should be piped into `npx bunyan`.
|
|
7
|
-
* @param {string} componentPath - The directory with the component to be rendered
|
|
8
|
-
* @param {object} options - Additional configuration for the dev stack
|
|
9
|
-
* @returns a function to stop the render stack
|
|
10
|
-
*/
|
|
11
|
-
export declare function startDevelopmentRender(componentPath: string, options: {
|
|
12
|
-
port: number;
|
|
13
|
-
}): Promise<() => Promise<void>>;
|
package/lib/component-dev.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.startDevelopmentRender = void 0;
|
|
7
|
-
const render_runtime_lib_1 = require("@squiz/render-runtime-lib");
|
|
8
|
-
const path_1 = __importDefault(require("path"));
|
|
9
|
-
/**
|
|
10
|
-
* startDevelopmentRender starts a dev-mode render stack for any
|
|
11
|
-
* local directory. This should start an express server on a random unused port
|
|
12
|
-
* which can be accessed for viewing the component in development.
|
|
13
|
-
* As the render stack outputs log using `bunyan`, the CLI command that runs
|
|
14
|
-
* this function should be piped into `npx bunyan`.
|
|
15
|
-
* @param {string} componentPath - The directory with the component to be rendered
|
|
16
|
-
* @param {object} options - Additional configuration for the dev stack
|
|
17
|
-
* @returns a function to stop the render stack
|
|
18
|
-
*/
|
|
19
|
-
async function startDevelopmentRender(componentPath, options) {
|
|
20
|
-
await (0, render_runtime_lib_1.startRenderStack)({
|
|
21
|
-
webserver: {
|
|
22
|
-
port: options.port,
|
|
23
|
-
rootUrl: `http://localhost:${options.port}`,
|
|
24
|
-
shouldRunMigrations: false,
|
|
25
|
-
},
|
|
26
|
-
componentRunner: {
|
|
27
|
-
// Considering the component path will be passed in from CLI
|
|
28
|
-
// We need to generate the path from the calling directory
|
|
29
|
-
dataMountPoint: path_1.default.resolve(process.cwd(), componentPath),
|
|
30
|
-
doDevReload: true,
|
|
31
|
-
workerTimeout: 20000,
|
|
32
|
-
},
|
|
33
|
-
});
|
|
34
|
-
return () => (0, render_runtime_lib_1.stopRenderStack)();
|
|
35
|
-
}
|
|
36
|
-
exports.startDevelopmentRender = startDevelopmentRender;
|
|
37
|
-
//# sourceMappingURL=component-dev.js.map
|
package/lib/component-dev.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,91 +0,0 @@
|
|
|
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
|
-
it('should handle serving static files from single component directory', async () => {
|
|
49
|
-
const testServer = render_runtime_lib_1.TestHelpers.getTestServer();
|
|
50
|
-
const response = await testServer.get(`/s/${componentName}/${version}/static.txt`);
|
|
51
|
-
expect(response.text).toEqual('hello');
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
describe('accessing local dev routes', () => {
|
|
55
|
-
let stopServer;
|
|
56
|
-
const port = 3006;
|
|
57
|
-
const url = `http://localhost:${port}`;
|
|
58
|
-
const request = (0, supertest_1.default)(url);
|
|
59
|
-
beforeAll(async () => {
|
|
60
|
-
const compDir = path_1.default.join(__dirname, '../', '../../test-components');
|
|
61
|
-
stopServer = await (0, component_dev_1.startDevelopmentRender)(compDir, {
|
|
62
|
-
port: port,
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
afterAll(async () => {
|
|
66
|
-
await stopServer();
|
|
67
|
-
});
|
|
68
|
-
describe('definition routes', () => {
|
|
69
|
-
render_runtime_lib_1.routeTests.definition(url, url);
|
|
70
|
-
});
|
|
71
|
-
describe('static routes', () => {
|
|
72
|
-
render_runtime_lib_1.routeTests.static(url);
|
|
73
|
-
});
|
|
74
|
-
describe('render routes', () => {
|
|
75
|
-
render_runtime_lib_1.routeTests.render(url, url);
|
|
76
|
-
});
|
|
77
|
-
describe('GET /r/set/test-component/1.0.1', () => {
|
|
78
|
-
//
|
|
79
|
-
// this scenario is different to the 'production' tests
|
|
80
|
-
// this is should 500 in prod and 404 locally
|
|
81
|
-
it('should fail validation if trying to render a component with an invalid schema', async () => {
|
|
82
|
-
const response = await request.get('/r/set/test-component/1.0.1?something=not-used');
|
|
83
|
-
expect(response.statusCode).toEqual(404);
|
|
84
|
-
expect(response.body).toEqual({
|
|
85
|
-
message: 'manifest could not be found',
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
});
|
|
91
|
-
//# sourceMappingURL=component-dev.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component-dev.spec.js","sourceRoot":"","sources":["../src/component-dev.spec.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,2DAA8B;AAE9B,kEAAoE;AACpE,mDAAyD;AACzD,0DAAkC;AAElC,IAAI,CAAC,UAAU,CAAC,KAAM,CAAC,CAAC;AAExB,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;QACjD,IAAI,WAA+D,CAAC;QAEpE,SAAS,CAAC,KAAK,IAAI,EAAE;YACnB,WAAW,GAAG,MAAM,IAAA,sCAAsB,EAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,0BAA0B,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5G,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;YAClB,MAAM,WAAW,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;YACzC,MAAM,UAAU,GAAG,gCAAW,CAAC,aAAa,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;YACrF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,IAAI,WAA+D,CAAC;QACpE,IAAI,OAAe,CAAC;QACpB,IAAI,aAAqB,CAAC;QAC1B,IAAI,gBAAwB,CAAC;QAE7B,SAAS,CAAC,KAAK,IAAI,EAAE;YACnB,MAAM,EACJ,gBAAgB,EAAE,uBAAuB,EACzC,OAAO,EAAE,cAAc,EACvB,aAAa,EAAE,WAAW,GAC3B,GAAG,MAAM,gCAAW,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,sBAAsB,CAAC,CAAC;YAE3F,OAAO,GAAG,cAAc,CAAC;YACzB,gBAAgB,GAAG,uBAAuB,CAAC;YAC3C,aAAa,GAAG,WAAW,CAAC;YAE5B,WAAW,GAAG,MAAM,IAAA,sCAAsB,EAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;YAClB,MAAM,WAAW,EAAE,CAAC;YACpB,MAAM,kBAAG,CAAC,EAAE,CAAC,cAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,UAAU,GAAG,gCAAW,CAAC,aAAa,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,UAAU,aAAa,IAAI,OAAO,GAAG,CAAC,CAAC;YAC7E,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;YAClF,MAAM,UAAU,GAAG,gCAAW,CAAC,aAAa,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,MAAM,aAAa,IAAI,OAAO,aAAa,CAAC,CAAC;YACnF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAC1C,IAAI,UAA8D,CAAC;QACnE,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,GAAG,GAAG,oBAAoB,IAAI,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,IAAA,mBAAS,EAAC,GAAG,CAAC,CAAC;QAE/B,SAAS,CAAC,KAAK,IAAI,EAAE;YACnB,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,uBAAuB,CAAC,CAAC;YAErE,UAAU,GAAG,MAAM,IAAA,sCAAsB,EAAC,OAAO,EAAE;gBACjD,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;YAClB,MAAM,UAAU,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;YACjC,+BAAU,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;YAC7B,+BAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;YAC7B,+BAAU,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;YAC/C,EAAE;YACF,uDAAuD;YACvD,6CAA6C;YAC7C,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;gBAC7F,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;gBAErF,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACzC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;oBAC5B,OAAO,EAAE,6BAA6B;iBACvC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/lib/config.d.ts
DELETED
package/lib/config.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const component_lib_1 = require("@squiz/component-lib");
|
|
4
|
-
const dotenv_1 = require("dotenv");
|
|
5
|
-
(0, dotenv_1.config)();
|
|
6
|
-
const configObj = {
|
|
7
|
-
managementServiceUrl: (0, component_lib_1.parseEnvVarForVar)('COMPONENT_MANAGEMENT_SERVICE_URL').replace(/\/+$/, ''),
|
|
8
|
-
renderServiceUrl: (0, component_lib_1.parseEnvVarForVar)('COMPONENT_RENDER_SERVICE_URL').replace(/\/+$/, ''),
|
|
9
|
-
ci_buildVersion: (0, component_lib_1.parseEnvVarForVar)('CI_COMMIT_SHORT_SHA'),
|
|
10
|
-
ci_buildBranch: (0, component_lib_1.parseEnvVarForVar)('CI_COMMIT_REF_NAME'),
|
|
11
|
-
};
|
|
12
|
-
exports.default = configObj;
|
|
13
|
-
//# sourceMappingURL=config.js.map
|
package/lib/config.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;AAAA,wDAAyD;AACzD,mCAAgC;AAEhC,IAAA,eAAM,GAAE,CAAC;AAST,MAAM,SAAS,GAAW;IACxB,oBAAoB,EAAE,IAAA,iCAAiB,EAAC,kCAAkC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAC/F,gBAAgB,EAAE,IAAA,iCAAiB,EAAC,8BAA8B,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IACvF,eAAe,EAAE,IAAA,iCAAiB,EAAC,qBAAqB,CAAC;IACzD,cAAc,EAAE,IAAA,iCAAiB,EAAC,oBAAoB,CAAC;CACxD,CAAC;AAEF,kBAAe,SAAS,CAAC"}
|
package/lib/index.d.ts
DELETED
package/lib/index.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.startDevelopmentRender = exports.uploadComponentFolder = void 0;
|
|
4
|
-
var upload_component_folder_1 = require("./upload-component-folder");
|
|
5
|
-
Object.defineProperty(exports, "uploadComponentFolder", { enumerable: true, get: function () { return upload_component_folder_1.uploadComponentFolder; } });
|
|
6
|
-
var component_dev_1 = require("./component-dev");
|
|
7
|
-
Object.defineProperty(exports, "startDevelopmentRender", { enumerable: true, get: function () { return component_dev_1.startDevelopmentRender; } });
|
|
8
|
-
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qEAAkE;AAAzD,gIAAA,qBAAqB,OAAA;AAC9B,iDAAyD;AAAhD,uHAAA,sBAAsB,OAAA"}
|
|
@@ -1,32 +0,0 @@
|
|
|
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,28 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "http://localhost:3000/schemas/v1.json#",
|
|
3
|
-
"name": "cmp-static-file-test",
|
|
4
|
-
"version": "1.0.0",
|
|
5
|
-
"main-function": "main",
|
|
6
|
-
"functions": [
|
|
7
|
-
{
|
|
8
|
-
"entry": "main.js",
|
|
9
|
-
"name": "main",
|
|
10
|
-
"input": {
|
|
11
|
-
"type": "object",
|
|
12
|
-
"properties": {
|
|
13
|
-
"something": {
|
|
14
|
-
"type": "string"
|
|
15
|
-
}
|
|
16
|
-
},
|
|
17
|
-
"required": ["something"]
|
|
18
|
-
},
|
|
19
|
-
"output": {
|
|
20
|
-
"response-type": "html",
|
|
21
|
-
"static-files": [{ "location": "header", "file": "static-library-file.js" }]
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
],
|
|
25
|
-
"static-files": {
|
|
26
|
-
"location-root": "public"
|
|
27
|
-
}
|
|
28
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export declare const managementService: import("axios").AxiosInstance;
|
|
2
|
-
export declare const renderService: import("axios").AxiosInstance;
|
|
3
|
-
export declare const ci_buildVersion: string;
|
|
4
|
-
export declare const ci_buildBranch: string;
|
|
5
|
-
export declare function getTestComponents(): string[];
|
|
6
|
-
export declare function createFile(filePath: string, sizeInMB: number): Promise<void>;
|
|
7
|
-
export declare function removeFile(filePath: string): void;
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.removeFile = exports.createFile = exports.getTestComponents = exports.ci_buildBranch = exports.ci_buildVersion = exports.renderService = exports.managementService = void 0;
|
|
7
|
-
const axios_1 = __importDefault(require("axios"));
|
|
8
|
-
const fs_1 = __importDefault(require("fs"));
|
|
9
|
-
const path_1 = __importDefault(require("path"));
|
|
10
|
-
const config_1 = __importDefault(require("../config"));
|
|
11
|
-
const promises_1 = __importDefault(require("fs/promises"));
|
|
12
|
-
const crypto_1 = require("crypto");
|
|
13
|
-
exports.managementService = axios_1.default.create({
|
|
14
|
-
baseURL: config_1.default.managementServiceUrl,
|
|
15
|
-
});
|
|
16
|
-
exports.renderService = axios_1.default.create({
|
|
17
|
-
baseURL: config_1.default.renderServiceUrl,
|
|
18
|
-
});
|
|
19
|
-
exports.ci_buildVersion = config_1.default.ci_buildVersion;
|
|
20
|
-
exports.ci_buildBranch = config_1.default.ci_buildBranch;
|
|
21
|
-
function getTestComponents() {
|
|
22
|
-
const componets = [];
|
|
23
|
-
const componentsDir = path_1.default.join(__dirname, '/__components__/');
|
|
24
|
-
const files = fs_1.default.readdirSync(componentsDir);
|
|
25
|
-
for (const file of files) {
|
|
26
|
-
const stat = fs_1.default.statSync(path_1.default.join(componentsDir, file));
|
|
27
|
-
if (stat.isDirectory() && file.substring(0, 4) === 'cmp-') {
|
|
28
|
-
componets.push(file);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return componets;
|
|
32
|
-
}
|
|
33
|
-
exports.getTestComponents = getTestComponents;
|
|
34
|
-
async function createFile(filePath, sizeInMB) {
|
|
35
|
-
const content = (0, crypto_1.randomBytes)(sizeInMB * 1000000);
|
|
36
|
-
await promises_1.default.writeFile(`${filePath}`, content);
|
|
37
|
-
}
|
|
38
|
-
exports.createFile = createFile;
|
|
39
|
-
function removeFile(filePath) {
|
|
40
|
-
promises_1.default.unlink(filePath);
|
|
41
|
-
}
|
|
42
|
-
exports.removeFile = removeFile;
|
|
43
|
-
//# sourceMappingURL=helper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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;AAEU,QAAA,eAAe,GAAG,gBAAU,CAAC,eAAe,CAAC;AAC7C,QAAA,cAAc,GAAG,gBAAU,CAAC,cAAc,CAAC;AAExD,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 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const helper_1 = require("./helper");
|
|
4
|
-
describe('Verify latest services deployments', () => {
|
|
5
|
-
it('Should have latest Management API service', async () => {
|
|
6
|
-
const response = (await helper_1.managementService.get('/health')).data;
|
|
7
|
-
expect(response.buildVersion).toBe(helper_1.ci_buildVersion);
|
|
8
|
-
expect(response.buildBranch).toBe(helper_1.ci_buildBranch);
|
|
9
|
-
});
|
|
10
|
-
it('Should have latest Render Runtime service', async () => {
|
|
11
|
-
const response = (await helper_1.renderService.get('/health')).data;
|
|
12
|
-
expect(response.buildVersion).toBe(helper_1.ci_buildVersion);
|
|
13
|
-
expect(response.buildBranch).toBe(helper_1.ci_buildBranch);
|
|
14
|
-
});
|
|
15
|
-
});
|
|
16
|
-
//# sourceMappingURL=service-deployment.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"service-deployment.spec.js","sourceRoot":"","sources":["../../src/integration-tests/service-deployment.spec.ts"],"names":[],"mappings":";;AAAA,qCAA6F;AAQ7F,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,QAAQ,GAAe,CAAC,MAAM,0BAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3E,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,wBAAe,CAAC,CAAC;QACpD,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,uBAAc,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,QAAQ,GAAe,CAAC,MAAM,sBAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QACvE,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,wBAAe,CAAC,CAAC;QACpD,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,uBAAc,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
File without changes
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-setup.js","sourceRoot":"","sources":["../../src/integration-tests/test-setup.ts"],"names":[],"mappings":";AAAA,IAAI,CAAC,UAAU,CAAC,KAAM,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,86 +0,0 @@
|
|
|
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 index_1 = require("../index");
|
|
7
|
-
const helper_1 = require("./helper");
|
|
8
|
-
const config_1 = __importDefault(require("../config"));
|
|
9
|
-
const cli_color_1 = __importDefault(require("cli-color"));
|
|
10
|
-
const path_1 = __importDefault(require("path"));
|
|
11
|
-
const supertest_1 = __importDefault(require("supertest"));
|
|
12
|
-
const mockConsoleError = jest.fn();
|
|
13
|
-
const mockConsoleLog = jest.fn();
|
|
14
|
-
const orgConsoleError = console.error;
|
|
15
|
-
afterAll(async () => {
|
|
16
|
-
// clean up the component added by the test
|
|
17
|
-
(0, helper_1.getTestComponents)().forEach(async (componentName) => {
|
|
18
|
-
try {
|
|
19
|
-
await helper_1.managementService.delete(`/component/${componentName}`);
|
|
20
|
-
}
|
|
21
|
-
catch {
|
|
22
|
-
// no op
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
describe('Test isolated test cases', () => {
|
|
27
|
-
beforeEach(() => {
|
|
28
|
-
console.error = mockConsoleError;
|
|
29
|
-
console.log = mockConsoleLog;
|
|
30
|
-
});
|
|
31
|
-
afterEach(() => {
|
|
32
|
-
console.error = orgConsoleError;
|
|
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(['File size exceeds the maximum limit of 100MB'].join('')));
|
|
40
|
-
(0, helper_1.removeFile)(filePath);
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
describe('Deploy basic component having a static file', () => {
|
|
44
|
-
// component to deploy for this test
|
|
45
|
-
const componentPath = path_1.default.join(__dirname, '/__components__/cmp-static-file-test');
|
|
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
|
-
});
|
|
61
|
-
it('Should upload the component and return a valid url to preview', async () => {
|
|
62
|
-
var _a, _b;
|
|
63
|
-
mockConsoleLog.mockClear();
|
|
64
|
-
await (0, index_1.uploadComponentFolder)(componentPath, config_1.default.managementServiceUrl);
|
|
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);
|
|
70
|
-
});
|
|
71
|
-
it('Should fail upload the component with same version', async () => {
|
|
72
|
-
mockConsoleError.mockClear();
|
|
73
|
-
await (0, index_1.uploadComponentFolder)(componentPath, config_1.default.managementServiceUrl);
|
|
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'));
|
|
75
|
-
});
|
|
76
|
-
it('Should render component', async () => {
|
|
77
|
-
const response = await helper_1.renderService.get('/r/set/cmp-static-file-test/1.0.0/?something=hello');
|
|
78
|
-
expect(response.status).toEqual(200);
|
|
79
|
-
expect(response.data).toEqual([
|
|
80
|
-
'<div>Input: hello</div>',
|
|
81
|
-
'<div>cmp-static-file-test 1.0.0 ',
|
|
82
|
-
`${config_1.default.renderServiceUrl}/s/cmp-static-file-test/1.0.0/birthday-cake.png</div>`,
|
|
83
|
-
].join(''));
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
//# sourceMappingURL=upload-and-render-component.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/lib/test.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const dotenv_1 = require("dotenv");
|
|
4
|
-
(0, dotenv_1.config)();
|
|
5
|
-
const component_dev_1 = require("./component-dev");
|
|
6
|
-
const upload_component_folder_1 = require("./upload-component-folder");
|
|
7
|
-
// Commands test for CMP
|
|
8
|
-
const command = process.argv[2];
|
|
9
|
-
console.log('command', command);
|
|
10
|
-
if (command === 'dev') {
|
|
11
|
-
const dataMountPoint = process.env.DATA_MOUNT_POINT || '/Users/wfagerstrom/Code/component-service/test-components';
|
|
12
|
-
const port = process.env.PORT || '3000';
|
|
13
|
-
(0, component_dev_1.startDevelopmentRender)(dataMountPoint, { port: parseInt(port) }).then(() => {
|
|
14
|
-
console.log('starting');
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
if (command === 'upload') {
|
|
18
|
-
const pathToUploadTo = process.argv[3];
|
|
19
|
-
const componentServiceUrl = process.env.COMPONENT_MANAGEMENT_SERVICE_URL || process.argv[4];
|
|
20
|
-
(0, upload_component_folder_1.uploadComponentFolder)(pathToUploadTo, componentServiceUrl);
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=test.js.map
|
package/lib/test.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":";;AAAA,mCAAgC;AAEhC,IAAA,eAAM,GAAE,CAAC;AACT,mDAAyD;AACzD,uEAAkE;AAElE,wBAAwB;AAExB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAChC,IAAI,OAAO,KAAK,KAAK,EAAE;IACrB,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,2DAA2D,CAAC;IACnH,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC;IAExC,IAAA,sCAAsB,EAAC,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;QACzE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;CACJ;AACD,IAAI,OAAO,KAAK,QAAQ,EAAE;IACxB,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5F,IAAA,+CAAqB,EAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;CAC5D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function uploadComponentFolder(folderPath: string, componentServiceManagementUrl: string): Promise<void>;
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.uploadComponentFolder = void 0;
|
|
7
|
-
const virus_scanner_lib_1 = require("@squiz/virus-scanner-lib");
|
|
8
|
-
const component_lib_1 = require("@squiz/component-lib");
|
|
9
|
-
const promises_1 = __importDefault(require("fs/promises"));
|
|
10
|
-
const path_1 = __importDefault(require("path"));
|
|
11
|
-
const axios_1 = __importDefault(require("axios"));
|
|
12
|
-
const cli_color_1 = __importDefault(require("cli-color"));
|
|
13
|
-
async function uploadComponentFolder(folderPath, componentServiceManagementUrl) {
|
|
14
|
-
const tmpDir = path_1.default.resolve(await promises_1.default.mkdtemp('cmp-upload'));
|
|
15
|
-
try {
|
|
16
|
-
const axiosInstance = axios_1.default.create({
|
|
17
|
-
baseURL: componentServiceManagementUrl,
|
|
18
|
-
});
|
|
19
|
-
console.log('Initial scanning');
|
|
20
|
-
const zip = await (0, component_lib_1.zipDirectory)(folderPath, tmpDir);
|
|
21
|
-
const initialUpload = await handleResponse(axiosInstance.post('upload-component'));
|
|
22
|
-
console.log(`deployment id: ${initialUpload.id} status: transferring`);
|
|
23
|
-
await (0, virus_scanner_lib_1.uploadFile)(initialUpload, zip);
|
|
24
|
-
await watchAndWaitForUploadAndScanComplete(initialUpload.id, axiosInstance);
|
|
25
|
-
console.log(`deployment id: ${initialUpload.id} status: deploying component folder`);
|
|
26
|
-
const result = await handleResponse(axiosInstance.post(`upload-component/next/${initialUpload.id}`));
|
|
27
|
-
await promises_1.default.rm(tmpDir, { force: true, recursive: true });
|
|
28
|
-
if (result.status === 'successful') {
|
|
29
|
-
console.log(`deployment id: ${initialUpload.id} status: ${cli_color_1.default.green('success')}`);
|
|
30
|
-
console.log(`uploaded location: ${result.accessLink}`);
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
console.error('failed for an unknown reason', cli_color_1.default.red(result));
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
catch (e) {
|
|
37
|
-
await promises_1.default.rm(tmpDir, { force: true, recursive: true });
|
|
38
|
-
if (e instanceof Error) {
|
|
39
|
-
console.error(cli_color_1.default.red(e.message));
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
throw e;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
exports.uploadComponentFolder = uploadComponentFolder;
|
|
47
|
-
async function watchAndWaitForUploadAndScanComplete(id, axiosInstance) {
|
|
48
|
-
const poll = () => handleResponse(axiosInstance.get('upload-component/status/' + id));
|
|
49
|
-
return new Promise((resolve, reject) => {
|
|
50
|
-
const recurse = () => poll().then(async (req) => {
|
|
51
|
-
if (req.status == 'Success') {
|
|
52
|
-
resolve();
|
|
53
|
-
}
|
|
54
|
-
else if (req.status == 'Flagged') {
|
|
55
|
-
reject(new Error('upload has been flagged as a virus'));
|
|
56
|
-
}
|
|
57
|
-
else if (req.status == 'Error') {
|
|
58
|
-
reject(new Error('there has been an error'));
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
setTimeout(async () => {
|
|
62
|
-
await recurse();
|
|
63
|
-
}, 1000);
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
recurse();
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
async function handleResponse(axiosInstance) {
|
|
70
|
-
const result = axiosInstance
|
|
71
|
-
.then((response) => response.data)
|
|
72
|
-
.catch((error) => {
|
|
73
|
-
throw handleAxiosError(error);
|
|
74
|
-
});
|
|
75
|
-
return result;
|
|
76
|
-
}
|
|
77
|
-
function handleAxiosError(error) {
|
|
78
|
-
const { response } = error;
|
|
79
|
-
if (!response || (typeof error == 'object' && !error.isAxiosError)) {
|
|
80
|
-
return error;
|
|
81
|
-
}
|
|
82
|
-
const message = response.data.message;
|
|
83
|
-
if (message) {
|
|
84
|
-
return new Error(`Unexpected response code ${response.status}. message: ${message}`);
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
return new Error(`Unexpected response code ${response.status}.`);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
//# sourceMappingURL=upload-component-folder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"upload-component-folder.js","sourceRoot":"","sources":["../src/upload-component-folder.ts"],"names":[],"mappings":"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"}
|
package/tsconfig.tsbuildinfo
DELETED
|
@@ -1 +0,0 @@
|
|
|
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/domains/component/models/ComponentSet.d.ts","../component-db-lib/lib/domains/component/repositories/ComponentSetRepository.d.ts","../component-db-lib/lib/domains/component/models/ComponentSetComponentVersion.d.ts","../component-db-lib/lib/domains/component/repositories/ComponentSetComponentVersionRepository.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/upload-component-folder.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","23a85fefe39e3f42be95d0ee78f2c182e0c76755886502a1906216ddcd3eb6f7","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","9bc74a2728e1a37270f79cde3b962587519a88c686ebb0b0230694d1cbada437","bf2b9e09ab805a9dfd942bce104f9b08c4aca6acd6d2bc51c1558269f7d6dbf8","c5c02cf97dd48e47f77dc973fa082b4610ea30964f8d92a83e6366ac944380d0","42bf40a061bfd8d72f0b2590bd437cffe189c19cd44e3bf5e7a0b7c6d76862d2","5b312a14de195172d56bee9129237403eca227b03c214af351196bd91cf94fe0","e6d30c042473d086896f5d16cd4fe9ab080196fe83c71fc488f10aaaf23213e3","b05e978fd77d25c54a386e1fdb9dac6cb06101281462cfce340e790b9b30a1b4","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","1e6d3950437cbba1ca1d3a4d4449d036abf668fba709d5cdb40b239f2a9b8b6a","21a34f247fbe2d60105e8dc67ca23e14d902a2bf53275545fa28eff784d781bb","2c79bdadf3bca2286ef11e176b4dc832c8e3722744dc686bdde0b93dece3e5f7","8654cc26c50b8a2113c6e01a42471961b6ec605144208304500e99a8d3335c5f","11eaaa936aa6bda15f6c29abe702e05ef8fe5a8476202b184416cfdd1caa3b91","47ba92fcf6edfd2856bd68f37224a6f2c3391f8f17b0c63cb7a46e8967db139f","cddc319d62dbf2846274e3e5843c0b81528d4d633842388fd3d2666190468870","c4746217c36801cbcc8da783229cabe6893975072b85043ef1cb918888181f82","5b320fc29da28f0bc097cf01f25bbe393de38df68abb70b7efecbfa3e7983ad5","c019fd48707eb607a4380993bd7c6bc6305a1cdc46c2f49c4919bb5b146f388d","016b1d5159ee90e7dc54361629b64fe3c4950705b68b431035447a0c4e33f39a","56e29174aac70e6cf2409a40b93125b543f595db45b21e5a25d74ed2b3ed0416","751936d9fa559ce678f027ca75370fcf83789cc0bdac413896ce35900c59d2ba","92a5f5f848269cadd55e46460445947804a49bf80d6f36043ad6b9ff8cda815a","8d48b8f8a377ade8dd1f000625bc276eea067f2529cc9cafdf082d17142107d6","31c502014e5ba046d5cb060136929b73fd53f0f989aa37b2b0424644cb0d93ef","76232dbb982272b182a76ad8745a9b02724dc9896e2328ce360e2c56c64c9778","06ecf824b4dfc90230aa004c346ed18b0ea3f55c364ac91c31c24beb877c0777","bb5077aa8b1acaed1d5ef6c20c4efa82b74465be99b3e83137d4a50a1b48aa4a","29868a2e889c5bb3f6c00c9513f5678a5b0b86f03c6bdae433ae285ed6289ddf","fb707ce406246f61190384489204eaa70de40e9aa4dedb3fbc9eacfc2a4ee890","fce50162c435aa1421f2b095060b38691e4b34b1a25b66b41916aa0031c56a52","8750c48a3f5e9159bc7cae33f7ac334d6a81d873bb48e4261145eed5587fc21f",{"version":"d90d0f81618a3490fb002889542933f3db9ccfbd93dcbd321728e373c9fae990","signature":"1fa505e7e271e4af6432d45a0cdfa54f28d94eafeaf1e24bc9e5f6774918f994"},"76232dbb982272b182a76ad8745a9b02724dc9896e2328ce360e2c56c64c9778",{"version":"1f254358a2b8f3a01ccb9f5984bc2d037269f9b0987cf97a45eb173d2be580fa","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"cfdd927a5eae7a7e623b9745722ef3f2b7a2997fddc5d32b7e3dcaeeb15ff4a3",{"version":"4197515c3fb4bc35d9015c0dbca82e0bea10f8458000c6712bb4e80ed9dc2cbc","signature":"80b8f0cbb904521beaa1c256d6c02dfbbb83740d0e1424c906103895f2938c7d"},"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"},"5a4f366f85908cc58de4dbfd113c950375333a7ba742579f34fb4ebd773558af",{"version":"d758934ccf45cb7e4b675a9fb9e78cf2620d56ab30d3fdfa6bf7da9099ef9b14","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e22fbd681f39e22e5869019943fdd543f31f720d1b7c64dcb042b2e0ae51bbcf","signature":"f32ecdbee19d8ade6d02097632230f05a071b5b41d1d7307a5b01a1975745891"},{"version":"cff3473b09c017b5f62f2c120d826916a0d81dc4f0d613e80850245f46582e08","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"6cbf5df81765e05550be69f69e84ba04271846b1772ae48ba76024a40fd1da34","signature":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","affectsGlobalScope":true},{"version":"9b74d5c1e5c22f438f2d95014468fa9c3f5168006e0fe53dbb159e3bfc592238","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,249],[145],[145,226,227,228,229,230,231,232,233,234,235,236,237],[117,120,145,152,153,154],[145,251,253],[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,203],[145,152],[145,251],[145,248,252],[145,250],[119,127,145,204,210,211],[127,145,210],[145,179,214],[145,211,239],[111,118,119,127,145,215,216],[145,242],[127,145,204,215,238,240,242],[145,211,214,239],[119,127,145,179,216,224,238],[145,186,196],[145,189,191,193,195],[145,186,187,188,196],[145,186,188,194,196],[145,186,188,192,196],[145,186,188,190,196],[145,197],[145,196,197,198],[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,200,206,207,208,209],[145,204,210],[145,201,205],[120,145,199,255],[106,118,120,134,145,152,202],[145,216,221],[145,217,218,219,220],[145,221,222,223],[216]],"referencedMap":[[250,1],[249,2],[226,2],[227,2],[228,2],[229,2],[230,2],[232,2],[238,3],[231,2],[236,2],[233,2],[234,2],[235,2],[237,2],[155,4],[254,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],[212,54],[225,2],[248,2],[214,55],[252,56],[253,57],[251,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],[213,59],[211,60],[215,61],[240,62],[246,2],[247,2],[242,63],[243,64],[244,2],[245,65],[241,66],[239,67],[197,68],[196,69],[188,68],[187,2],[192,2],[194,2],[190,2],[189,70],[195,71],[193,72],[191,73],[198,74],[199,75],[186,76],[185,77],[182,55],[184,78],[183,55],[181,2],[47,79],[174,80],[98,2],[168,81],[172,81],[167,2],[169,81],[170,81],[171,81],[173,82],[179,83],[99,84],[100,85],[101,86],[46,2],[164,87],[165,87],[177,2],[178,2],[175,2],[176,2],[94,2],[95,2],[97,88],[93,89],[96,90],[166,2],[159,91],[158,92],[161,4],[163,93],[162,2],[160,53],[92,94],[49,2],[51,95],[50,96],[55,97],[90,98],[87,99],[89,100],[52,99],[53,101],[57,101],[56,102],[54,103],[88,104],[86,99],[91,105],[84,2],[85,2],[58,106],[63,99],[65,99],[60,99],[61,106],[67,99],[68,107],[59,99],[64,99],[66,99],[62,99],[82,108],[81,99],[83,109],[77,99],[79,99],[78,99],[74,99],[80,110],[75,99],[76,111],[69,99],[70,99],[71,99],[72,99],[73,99],[48,2],[180,112],[210,113],[201,112],[205,114],[206,115],[207,2],[209,2],[208,2],[200,116],[202,2],[203,117],[204,54],[222,118],[221,119],[217,2],[218,2],[219,2],[220,2],[224,120],[223,118],[216,2]],"exportedModulesMap":[[250,1],[249,2],[226,2],[227,2],[228,2],[229,2],[230,2],[232,2],[238,3],[231,2],[236,2],[233,2],[234,2],[235,2],[237,2],[155,4],[254,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],[212,54],[225,2],[248,2],[214,55],[252,56],[253,57],[251,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],[240,62],[246,2],[247,2],[242,121],[197,68],[196,69],[188,68],[187,2],[192,2],[194,2],[190,2],[189,70],[195,71],[193,72],[191,73],[198,74],[199,75],[186,76],[185,77],[182,55],[184,78],[183,55],[181,2],[47,79],[174,80],[98,2],[168,81],[172,81],[167,2],[169,81],[170,81],[171,81],[173,82],[179,83],[99,84],[100,85],[101,86],[46,2],[164,87],[165,87],[177,2],[178,2],[175,2],[176,2],[94,2],[95,2],[97,88],[93,89],[96,90],[166,2],[159,91],[158,92],[161,4],[163,93],[162,2],[160,53],[92,94],[49,2],[51,95],[50,96],[55,97],[90,98],[87,99],[89,100],[52,99],[53,101],[57,101],[56,102],[54,103],[88,104],[86,99],[91,105],[84,2],[85,2],[58,106],[63,99],[65,99],[60,99],[61,106],[67,99],[68,107],[59,99],[64,99],[66,99],[62,99],[82,108],[81,99],[83,109],[77,99],[79,99],[78,99],[74,99],[80,110],[75,99],[76,111],[69,99],[70,99],[71,99],[72,99],[73,99],[48,2],[180,112],[210,113],[201,112],[205,114],[206,115],[207,2],[209,2],[208,2],[200,116],[202,2],[203,117],[204,54],[222,118],[221,119],[217,2],[218,2],[219,2],[220,2],[224,120],[223,118],[216,2]],"semanticDiagnosticsPerFile":[250,249,226,227,228,229,230,232,238,231,236,233,234,235,237,155,254,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,212,225,248,214,252,253,251,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,213,211,215,240,246,247,242,243,244,245,241,239,197,196,188,187,192,194,190,189,195,193,191,198,199,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,210,201,205,206,207,209,208,200,202,203,204,222,221,217,218,219,220,224,223,216]},"version":"4.7.4"}
|