@catladder/pipeline 1.16.2 → 1.17.1
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/dist/constants.js +1 -1
- package/dist/context/index.d.ts +1 -1
- package/dist/context/index.js +21 -23
- package/dist/context/resolveReferences.d.ts +6 -0
- package/dist/context/resolveReferences.js +88 -0
- package/dist/context/resolveReferences.test.d.ts +1 -0
- package/dist/context/resolveReferences.test.js +141 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/config.d.ts +11 -1
- package/package.json +1 -1
- package/src/context/index.ts +40 -30
- package/src/context/resolveReferences.test.ts +158 -0
- package/src/context/resolveReferences.ts +62 -0
- package/src/types/config.ts +11 -1
package/dist/constants.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.DOCKER_REGISTRY = exports.PIPELINE_IMAGE_TAG = void 0;
|
|
5
|
-
exports.PIPELINE_IMAGE_TAG = "v1-
|
|
5
|
+
exports.PIPELINE_IMAGE_TAG = "v1-17-1-9acc63dd" || "";
|
|
6
6
|
exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || "";
|
package/dist/context/index.d.ts
CHANGED
|
@@ -2,5 +2,5 @@ import { Config } from "../types/config";
|
|
|
2
2
|
import { CommitInfo, Context, Environment } from "../types/context";
|
|
3
3
|
export declare const getSecretVarName: (env: string, componentName: string, key: string) => string;
|
|
4
4
|
export declare const getSecretVarNameForContext: (context: Context, key: string) => string;
|
|
5
|
-
export declare const getEnvironment: (config: Config, componentName: string, env: string, commitInfo?: CommitInfo | undefined
|
|
5
|
+
export declare const getEnvironment: (config: Config, componentName: string, env: string, commitInfo?: CommitInfo | undefined) => Environment;
|
|
6
6
|
export declare const createContext: (config: Config, componentName: string, env: string, commitInfo?: CommitInfo | undefined, packageManagerInfo?: import("../types/context").YarnPackageManagerInfo | undefined) => Context;
|
package/dist/context/index.js
CHANGED
|
@@ -48,6 +48,8 @@ var __importDefault = this && this.__importDefault || function (mod) {
|
|
|
48
48
|
exports.__esModule = true;
|
|
49
49
|
exports.createContext = exports.getEnvironment = exports.getSecretVarNameForContext = exports.getSecretVarName = void 0;
|
|
50
50
|
|
|
51
|
+
var lodash_1 = require("lodash");
|
|
52
|
+
|
|
51
53
|
var slugify_1 = __importDefault(require("slugify"));
|
|
52
54
|
|
|
53
55
|
var build_1 = require("../build");
|
|
@@ -58,6 +60,8 @@ var config_1 = require("../types/config");
|
|
|
58
60
|
|
|
59
61
|
var utils_1 = require("../utils");
|
|
60
62
|
|
|
63
|
+
var resolveReferences_1 = require("./resolveReferences");
|
|
64
|
+
|
|
61
65
|
var sanitizeForEnVar = function (s) {
|
|
62
66
|
return s.replace(/-/g, "_");
|
|
63
67
|
};
|
|
@@ -75,14 +79,9 @@ var getSecretVarNameForContext = function (context, key) {
|
|
|
75
79
|
|
|
76
80
|
exports.getSecretVarNameForContext = getSecretVarNameForContext;
|
|
77
81
|
|
|
78
|
-
var getEnvironment = function (config, componentName, env, commitInfo
|
|
79
|
-
) {
|
|
82
|
+
var getEnvironment = function (config, componentName, env, commitInfo) {
|
|
80
83
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
81
84
|
|
|
82
|
-
if (skipReferences === void 0) {
|
|
83
|
-
skipReferences = false;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
85
|
var componentConfig = config.components[componentName];
|
|
87
86
|
|
|
88
87
|
if (!componentConfig) {
|
|
@@ -121,6 +120,7 @@ var getEnvironment = function (config, componentName, env, commitInfo, skipRefer
|
|
|
121
120
|
host = "localhost:" + port;
|
|
122
121
|
url = "http://" + host;
|
|
123
122
|
predefinedVariables = {
|
|
123
|
+
ENV_SHORT: "local",
|
|
124
124
|
ROOT_URL: url,
|
|
125
125
|
PORT: port.toString()
|
|
126
126
|
};
|
|
@@ -145,30 +145,28 @@ var getEnvironment = function (config, componentName, env, commitInfo, skipRefer
|
|
|
145
145
|
});
|
|
146
146
|
}
|
|
147
147
|
|
|
148
|
-
var
|
|
148
|
+
var publicEnvVarsRaw = (_h = (_g = mergedConfig.vars) === null || _g === void 0 ? void 0 : _g.public) !== null && _h !== void 0 ? _h : {};
|
|
149
149
|
var secretEnvVarKeys = (_k = (_j = mergedConfig.vars) === null || _j === void 0 ? void 0 : _j.secret) !== null && _k !== void 0 ? _k : [];
|
|
150
150
|
var secretEnvVars = Object.fromEntries(secretEnvVarKeys.map(function (key) {
|
|
151
151
|
return [key, "$".concat((0, exports.getSecretVarName)(env, componentName, key))];
|
|
152
|
-
}));
|
|
153
|
-
var referencedRaw = (_m = (_l = mergedConfig.vars) === null || _l === void 0 ? void 0 : _l.fromComponents) !== null && _m !== void 0 ? _m : {};
|
|
154
|
-
var referenced = skipReferences ? {} : Object.entries(referencedRaw).reduce(function (acc, _a) {
|
|
155
|
-
var _b = __read(_a, 2),
|
|
156
|
-
otherApp = _b[0],
|
|
157
|
-
mapping = _b[1];
|
|
152
|
+
})); // this is deprecated, we now support: $componentname:FOO
|
|
158
153
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
154
|
+
var legacyFromComponents = (_m = (_l = mergedConfig.vars) === null || _l === void 0 ? void 0 : _l.fromComponents) !== null && _m !== void 0 ? _m : {};
|
|
155
|
+
var publicEnvVarsRawWithLegasyFromComponents = (0, lodash_1.merge)({}, (0, resolveReferences_1.translateLegacyFromComponents)(legacyFromComponents), publicEnvVarsRaw);
|
|
156
|
+
var publicEnvVarsRawSanitized = Object.fromEntries(Object.entries(publicEnvVarsRawWithLegasyFromComponents).map(function (_a) {
|
|
157
|
+
var _b = __read(_a, 2),
|
|
158
|
+
key = _b[0],
|
|
159
|
+
value = _b[1];
|
|
165
160
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
}, {});
|
|
161
|
+
return [key, (0, lodash_1.isObject)(value) ? JSON.stringify(value) : "".concat(value)];
|
|
162
|
+
}));
|
|
169
163
|
|
|
170
|
-
var
|
|
164
|
+
var envVarsRaw = __assign(__assign(__assign({}, predefinedVariables), secretEnvVars), publicEnvVarsRawSanitized);
|
|
171
165
|
|
|
166
|
+
var envVars = (0, resolveReferences_1.resolveReferences)(envVarsRaw, function (componentName, variableName) {
|
|
167
|
+
var envVars = (0, exports.getEnvironment)(config, componentName, env, commitInfo).envVars;
|
|
168
|
+
return envVars[variableName];
|
|
169
|
+
});
|
|
172
170
|
return {
|
|
173
171
|
envType: envType,
|
|
174
172
|
host: host,
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const resolveReferences: (vars: Record<string, string>, getOtherVariables?: ((componentName: string, variableName: string) => string | null) | undefined) => {
|
|
2
|
+
[k: string]: string;
|
|
3
|
+
};
|
|
4
|
+
export declare const translateLegacyFromComponents: (fromComponents: Record<string, Record<string, string>>) => {
|
|
5
|
+
[k: string]: string;
|
|
6
|
+
};
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __read = this && this.__read || function (o, n) {
|
|
4
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
5
|
+
if (!m) return o;
|
|
6
|
+
var i = m.call(o),
|
|
7
|
+
r,
|
|
8
|
+
ar = [],
|
|
9
|
+
e;
|
|
10
|
+
|
|
11
|
+
try {
|
|
12
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
13
|
+
} catch (error) {
|
|
14
|
+
e = {
|
|
15
|
+
error: error
|
|
16
|
+
};
|
|
17
|
+
} finally {
|
|
18
|
+
try {
|
|
19
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
20
|
+
} finally {
|
|
21
|
+
if (e) throw e.error;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return ar;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
exports.__esModule = true;
|
|
29
|
+
exports.translateLegacyFromComponents = exports.resolveReferences = void 0;
|
|
30
|
+
|
|
31
|
+
var lodash_1 = require("lodash");
|
|
32
|
+
|
|
33
|
+
var REGEX = /\$\{(([^:]+):)?([^}]+)}/gm;
|
|
34
|
+
|
|
35
|
+
var resolveReferences = function (vars, getOtherVariables) {
|
|
36
|
+
var replaceSingleValue = function (value, alreadyVisited) {
|
|
37
|
+
if (alreadyVisited === void 0) {
|
|
38
|
+
alreadyVisited = {};
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
if (REGEX.test(value)) {
|
|
42
|
+
return value.replace(REGEX, function (match, _, componentName, variableName) {
|
|
43
|
+
var _a, _b;
|
|
44
|
+
|
|
45
|
+
var _c, _d;
|
|
46
|
+
|
|
47
|
+
if ((_c = alreadyVisited[componentName]) === null || _c === void 0 ? void 0 : _c[variableName]) {
|
|
48
|
+
return match; // prevent endless loop
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
var result = componentName ? (_d = getOtherVariables === null || getOtherVariables === void 0 ? void 0 : getOtherVariables(componentName, variableName)) !== null && _d !== void 0 ? _d : null : vars[variableName]; // is self reference
|
|
52
|
+
|
|
53
|
+
var replaced = result !== null && result !== undefined ? replaceSingleValue(result, (0, lodash_1.merge)({}, alreadyVisited, (_a = {}, _a[componentName] = (_b = {}, _b[variableName] = true, _b), _a))) : match;
|
|
54
|
+
return replaced;
|
|
55
|
+
});
|
|
56
|
+
} else {
|
|
57
|
+
return value;
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
return Object.fromEntries(Object.entries(vars).map(function (_a) {
|
|
62
|
+
var _b = __read(_a, 2),
|
|
63
|
+
key = _b[0],
|
|
64
|
+
value = _b[1];
|
|
65
|
+
|
|
66
|
+
return [key, replaceSingleValue(value)];
|
|
67
|
+
}));
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
exports.resolveReferences = resolveReferences;
|
|
71
|
+
|
|
72
|
+
var translateLegacyFromComponents = function (fromComponents) {
|
|
73
|
+
return Object.fromEntries(Object.entries(fromComponents).flatMap(function (_a) {
|
|
74
|
+
var _b = __read(_a, 2),
|
|
75
|
+
componentName = _b[0],
|
|
76
|
+
variables = _b[1];
|
|
77
|
+
|
|
78
|
+
return Object.entries(variables).map(function (_a) {
|
|
79
|
+
var _b = __read(_a, 2),
|
|
80
|
+
ourName = _b[0],
|
|
81
|
+
otherName = _b[1];
|
|
82
|
+
|
|
83
|
+
return [ourName, "${" + componentName + ":" + otherName + "}"];
|
|
84
|
+
});
|
|
85
|
+
}));
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
exports.translateLegacyFromComponents = translateLegacyFromComponents;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
|
|
5
|
+
var resolveReferences_1 = require("./resolveReferences");
|
|
6
|
+
|
|
7
|
+
describe("resolveReferences", function () {
|
|
8
|
+
it("replaces occurences of ${componentName:VARIABLE_NAME}", function () {
|
|
9
|
+
var variables = {
|
|
10
|
+
a: "hello world",
|
|
11
|
+
b: "a replaced value looks like this: '${api:FOO}', nice!"
|
|
12
|
+
};
|
|
13
|
+
var otherVariables = {
|
|
14
|
+
api: {
|
|
15
|
+
FOO: "foo from api"
|
|
16
|
+
},
|
|
17
|
+
frontend: {
|
|
18
|
+
FOO: "foo from frontend"
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
var result = (0, resolveReferences_1.resolveReferences)(variables, function (componentName, variableName) {
|
|
22
|
+
var _a;
|
|
23
|
+
|
|
24
|
+
return (_a = otherVariables[componentName]) === null || _a === void 0 ? void 0 : _a[variableName];
|
|
25
|
+
});
|
|
26
|
+
expect(result).toEqual({
|
|
27
|
+
a: "hello world",
|
|
28
|
+
b: "a replaced value looks like this: 'foo from api', nice!"
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
it("replaces self references with structure ${VARIABLE_NAME}", function () {
|
|
32
|
+
var variables = {
|
|
33
|
+
FOO: "hello world",
|
|
34
|
+
BAR: "this: ${FOO}!"
|
|
35
|
+
};
|
|
36
|
+
var result = (0, resolveReferences_1.resolveReferences)(variables);
|
|
37
|
+
expect(result).toEqual({
|
|
38
|
+
FOO: "hello world",
|
|
39
|
+
BAR: "this: hello world!"
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
it("replaces self references mixed with other vars", function () {
|
|
43
|
+
var variables = {
|
|
44
|
+
FOO: "hello from ${api:FOO}",
|
|
45
|
+
BAR: "this: ${FOO}!"
|
|
46
|
+
};
|
|
47
|
+
var otherVariables = {
|
|
48
|
+
api: {
|
|
49
|
+
FOO: "foo from api"
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
var result = (0, resolveReferences_1.resolveReferences)(variables, function (componentName, variableName) {
|
|
53
|
+
var _a;
|
|
54
|
+
|
|
55
|
+
return (_a = otherVariables[componentName]) === null || _a === void 0 ? void 0 : _a[variableName];
|
|
56
|
+
});
|
|
57
|
+
expect(result).toEqual({
|
|
58
|
+
FOO: "hello from foo from api",
|
|
59
|
+
BAR: "this: hello from foo from api!"
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
it("keeps variables as is if not found (when null is returned)", function () {
|
|
63
|
+
var variables = {
|
|
64
|
+
a: "hello world",
|
|
65
|
+
b: "a not found value looks like this: '${api:FOO}'"
|
|
66
|
+
};
|
|
67
|
+
var otherVariables = {};
|
|
68
|
+
var result = (0, resolveReferences_1.resolveReferences)(variables, function (componentName, variableName) {
|
|
69
|
+
var _a;
|
|
70
|
+
|
|
71
|
+
return (_a = otherVariables[componentName]) === null || _a === void 0 ? void 0 : _a[variableName];
|
|
72
|
+
});
|
|
73
|
+
expect(result).toEqual({
|
|
74
|
+
a: "hello world",
|
|
75
|
+
b: "a not found value looks like this: '${api:FOO}'"
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
it("replaces mulitple levels deep", function () {
|
|
79
|
+
var variables = {
|
|
80
|
+
a: "value is ${frontend:FOO}!"
|
|
81
|
+
};
|
|
82
|
+
var otherVariables = {
|
|
83
|
+
api: {
|
|
84
|
+
FOO: "foo from api"
|
|
85
|
+
},
|
|
86
|
+
frontend: {
|
|
87
|
+
FOO: "hi, ${api:FOO}"
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
var result = (0, resolveReferences_1.resolveReferences)(variables, function (componentName, variableName) {
|
|
91
|
+
var _a, _b;
|
|
92
|
+
|
|
93
|
+
return (_b = (_a = otherVariables[componentName]) === null || _a === void 0 ? void 0 : _a[variableName]) !== null && _b !== void 0 ? _b : "";
|
|
94
|
+
});
|
|
95
|
+
expect(result).toEqual({
|
|
96
|
+
a: "value is hi, foo from api!"
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
it("prevents endless loops", function () {
|
|
100
|
+
var variables = {
|
|
101
|
+
a: "value is ${frontend:FOO}!"
|
|
102
|
+
};
|
|
103
|
+
var otherVariables = {
|
|
104
|
+
api: {
|
|
105
|
+
FOO: "api ${frontend:FOO}"
|
|
106
|
+
},
|
|
107
|
+
frontend: {
|
|
108
|
+
FOO: "frontend ${api:FOO}"
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
var result = (0, resolveReferences_1.resolveReferences)(variables, function (componentName, variableName) {
|
|
112
|
+
var _a, _b;
|
|
113
|
+
|
|
114
|
+
return (_b = (_a = otherVariables[componentName]) === null || _a === void 0 ? void 0 : _a[variableName]) !== null && _b !== void 0 ? _b : "";
|
|
115
|
+
});
|
|
116
|
+
expect(result).toEqual({
|
|
117
|
+
a: "value is frontend api ${frontend:FOO}!"
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
describe("translateLegacyFromComponents", function () {
|
|
122
|
+
it("translatetes the old `fromComponents` approach to ${componentName:variableName}", function () {
|
|
123
|
+
var fromComponents = {
|
|
124
|
+
api: {
|
|
125
|
+
API_FOO: "FOO",
|
|
126
|
+
API_BAR: "BAR"
|
|
127
|
+
},
|
|
128
|
+
www: {
|
|
129
|
+
WWW_X: "X",
|
|
130
|
+
WWW_Y: "Y"
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
var result = (0, resolveReferences_1.translateLegacyFromComponents)(fromComponents);
|
|
134
|
+
expect(result).toEqual({
|
|
135
|
+
API_FOO: "${api:FOO}",
|
|
136
|
+
API_BAR: "${api:BAR}",
|
|
137
|
+
WWW_X: "${www:X}",
|
|
138
|
+
WWW_Y: "${www:Y}"
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
});
|
|
@@ -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.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.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.esnext.intl.d.ts","../../node_modules/@types/js-yaml/index.d.ts","../src/build/types.ts","../src/deploy/types.ts","../../node_modules/type-fest/source/primitive.d.ts","../../node_modules/type-fest/source/typed-array.d.ts","../../node_modules/type-fest/source/basic.d.ts","../../node_modules/type-fest/source/observable-like.d.ts","../../node_modules/type-fest/source/internal.d.ts","../../node_modules/type-fest/source/except.d.ts","../../node_modules/type-fest/source/simplify.d.ts","../../node_modules/type-fest/source/mutable.d.ts","../../node_modules/type-fest/source/merge.d.ts","../../node_modules/type-fest/source/merge-exclusive.d.ts","../../node_modules/type-fest/source/require-at-least-one.d.ts","../../node_modules/type-fest/source/require-exactly-one.d.ts","../../node_modules/type-fest/source/require-all-or-none.d.ts","../../node_modules/type-fest/source/remove-index-signature.d.ts","../../node_modules/type-fest/source/partial-deep.d.ts","../../node_modules/type-fest/source/readonly-deep.d.ts","../../node_modules/type-fest/source/literal-union.d.ts","../../node_modules/type-fest/source/promisable.d.ts","../../node_modules/type-fest/source/opaque.d.ts","../../node_modules/type-fest/source/set-optional.d.ts","../../node_modules/type-fest/source/set-required.d.ts","../../node_modules/type-fest/source/value-of.d.ts","../../node_modules/type-fest/source/promise-value.d.ts","../../node_modules/type-fest/source/async-return-type.d.ts","../../node_modules/type-fest/source/conditional-keys.d.ts","../../node_modules/type-fest/source/conditional-except.d.ts","../../node_modules/type-fest/source/conditional-pick.d.ts","../../node_modules/type-fest/source/union-to-intersection.d.ts","../../node_modules/type-fest/source/stringified.d.ts","../../node_modules/type-fest/source/fixed-length-array.d.ts","../../node_modules/type-fest/source/multidimensional-array.d.ts","../../node_modules/type-fest/source/multidimensional-readonly-array.d.ts","../../node_modules/type-fest/source/iterable-element.d.ts","../../node_modules/type-fest/source/entry.d.ts","../../node_modules/type-fest/source/entries.d.ts","../../node_modules/type-fest/source/set-return-type.d.ts","../../node_modules/type-fest/source/asyncify.d.ts","../../node_modules/type-fest/source/jsonify.d.ts","../../node_modules/type-fest/source/literal-to-primitive.d.ts","../../node_modules/type-fest/source/numeric.d.ts","../../node_modules/type-fest/source/string-key-of.d.ts","../../node_modules/type-fest/source/utilities.d.ts","../../node_modules/type-fest/source/split.d.ts","../../node_modules/type-fest/source/camel-case.d.ts","../../node_modules/type-fest/source/camel-cased-properties.d.ts","../../node_modules/type-fest/source/camel-cased-properties-deep.d.ts","../../node_modules/type-fest/source/delimiter-case.d.ts","../../node_modules/type-fest/source/kebab-case.d.ts","../../node_modules/type-fest/source/delimiter-cased-properties.d.ts","../../node_modules/type-fest/source/kebab-cased-properties.d.ts","../../node_modules/type-fest/source/delimiter-cased-properties-deep.d.ts","../../node_modules/type-fest/source/kebab-cased-properties-deep.d.ts","../../node_modules/type-fest/source/pascal-case.d.ts","../../node_modules/type-fest/source/pascal-cased-properties.d.ts","../../node_modules/type-fest/source/pascal-cased-properties-deep.d.ts","../../node_modules/type-fest/source/snake-case.d.ts","../../node_modules/type-fest/source/snake-cased-properties.d.ts","../../node_modules/type-fest/source/snake-cased-properties-deep.d.ts","../../node_modules/type-fest/source/includes.d.ts","../../node_modules/type-fest/source/screaming-snake-case.d.ts","../../node_modules/type-fest/source/join.d.ts","../../node_modules/type-fest/source/trim.d.ts","../../node_modules/type-fest/source/get.d.ts","../../node_modules/type-fest/source/last-array-element.d.ts","../../node_modules/type-fest/source/package-json.d.ts","../../node_modules/type-fest/source/tsconfig-json.d.ts","../../node_modules/type-fest/index.d.ts","../src/types/config.ts","../src/types/gitlab-types.ts","../src/types/context.ts","../src/types/pipeline.ts","../src/types/index.ts","../src/config/configruedEnvs.ts","../../node_modules/make-error/index.d.ts","../../node_modules/typescript/lib/typescript.d.ts","../../node_modules/ts-node/dist/ts-compiler-types.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/ts-node/dist/esm.d.ts","../../node_modules/ts-node/dist/repl.d.ts","../../node_modules/ts-node/dist/transpilers/types.d.ts","../../node_modules/ts-node/dist/index.d.ts","../src/config/readConfig.ts","../src/config/index.ts","../src/constants.ts","../src/rules/index.ts","../src/runner/index.ts","../../node_modules/@types/child-process-promise/index.d.ts","../../node_modules/@types/lodash/common/common.d.ts","../../node_modules/@types/lodash/common/array.d.ts","../../node_modules/@types/lodash/common/collection.d.ts","../../node_modules/@types/lodash/common/date.d.ts","../../node_modules/@types/lodash/common/function.d.ts","../../node_modules/@types/lodash/common/lang.d.ts","../../node_modules/@types/lodash/common/math.d.ts","../../node_modules/@types/lodash/common/number.d.ts","../../node_modules/@types/lodash/common/object.d.ts","../../node_modules/@types/lodash/common/seq.d.ts","../../node_modules/@types/lodash/common/string.d.ts","../../node_modules/@types/lodash/common/util.d.ts","../../node_modules/@types/lodash/index.d.ts","../src/types/jobs.ts","../src/utils/index.ts","../src/build/base/constants.ts","../../node_modules/slugify/slugify.d.ts","../src/deploy/base.ts","../src/deploy/kubernetes/cloudsql.ts","../src/deploy/kubernetes/mongodb.ts","../src/deploy/kubernetes/deployJob.ts","../src/deploy/kubernetes/index.ts","../src/deploy/utils.ts","../src/deploy/index.ts","../src/context/index.ts","../src/index.ts","../src/build/base/getBuildInfo.ts","../src/build/base/createBuildJob.ts","../src/build/docker.ts","../src/build/node/cache.ts","../src/build/node/constants.ts","../src/build/node/yarn.ts","../src/build/node/buildJob.ts","../src/build/node/meteor.ts","../src/build/node/testJob.ts","../src/build/node/index.ts","../src/build/index.ts","../src/defaults/index.ts","../src/pipeline/gitlab/makeGitlabJob.ts","../../node_modules/path-equal/cjs/index.d.ts","../../node_modules/@types/memoizee/index.d.ts","../src/pipeline/packageManager.ts","../src/pipeline/createJobs.ts","../src/pipeline/createChildPipeline.ts","../src/pipeline/index.ts","../src/catladder-gitlab.ts","../src/build/tests/storybook.test.ts","../src/config/configruedEnvs.test.ts","../src/pipeline/createChildPipeline.test.ts","../../node_modules/@babel/types/lib/index.d.ts","../../node_modules/@types/babel__generator/index.d.ts","../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../node_modules/@types/babel__template/index.d.ts","../../node_modules/@types/babel__traverse/index.d.ts","../../node_modules/@types/babel__core/index.d.ts","../../node_modules/@types/events/index.d.ts","../../node_modules/@types/keyv/index.d.ts","../../node_modules/@types/http-cache-semantics/index.d.ts","../../node_modules/@types/responselike/index.d.ts","../../node_modules/@types/cacheable-request/index.d.ts","../../node_modules/@types/caseless/index.d.ts","../../node_modules/@types/common-tags/index.d.ts","../../node_modules/@types/fs-extra/index.d.ts","../../node_modules/@types/graceful-fs/index.d.ts","../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../node_modules/@types/istanbul-lib-report/index.d.ts","../../node_modules/@types/istanbul-reports/index.d.ts","../../node_modules/jest-diff/build/cleanupSemantic.d.ts","../../node_modules/pretty-format/build/types.d.ts","../../node_modules/pretty-format/build/index.d.ts","../../node_modules/jest-diff/build/types.d.ts","../../node_modules/jest-diff/build/diffLines.d.ts","../../node_modules/jest-diff/build/printDiffs.d.ts","../../node_modules/jest-diff/build/index.d.ts","../../node_modules/@types/jest/index.d.ts","../../node_modules/@types/json-schema/index.d.ts","../../node_modules/@types/minimist/index.d.ts","../../node_modules/@types/minipass/index.d.ts","../../node_modules/form-data/index.d.ts","../../node_modules/@types/node-fetch/externals.d.ts","../../node_modules/@types/node-fetch/index.d.ts","../../node_modules/@types/prettier/index.d.ts","../../node_modules/@types/request/node_modules/form-data/index.d.ts","../../node_modules/@types/tough-cookie/index.d.ts","../../node_modules/@types/request/index.d.ts","../../node_modules/@types/stack-utils/index.d.ts","../../node_modules/@types/stream-buffers/index.d.ts","../../node_modules/@types/tar/index.d.ts","../../node_modules/@types/tmp/index.d.ts","../../node_modules/@types/underscore/index.d.ts","../../node_modules/@types/update-notifier/index.d.ts","../../node_modules/@types/vorpal/index.d.ts","../../node_modules/@types/websocket/index.d.ts","../../node_modules/@types/ws/index.d.ts","../../node_modules/@types/yargs-parser/index.d.ts","../../node_modules/@types/yargs/index.d.ts"],"fileInfos":[{"version":"89f78430e422a0f06d13019d60d5a45b37ec2d28e67eb647f73b1b0d19a46b72","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940",{"version":"abba1071bfd89e55e88a054b0c851ea3e8a494c340d0f3fab19eb18f6afb0c9e","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"4378fc8122ec9d1a685b01eb66c46f62aba6b239ca7228bb6483bcf8259ee493","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","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":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"d071129cba6a5f2700be09c86c07ad2791ab67d4e5ed1eb301d6746c62745ea4","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"686e548ae30250d62532c8cacb43fccc922b693408371bd3503563c4a0f28eed","04ad01e27e22ed8918248c81240e982939b11f85ee594fe8c4d419c56985f267","5dde90e55cd4800cdae74ead51ee9b8370690e72dfe84bcafe22da345a441c83","cd51ceafea7762ad639afb3ca5b68e1e4ffeaacaa402d7ef2cae17016e29e098","1b8357b3fef5be61b5de6d6a4805a534d68fe3e040c11f1944e27d4aec85936a","4a15fc59b27b65b9894952048be2afc561865ec37606cd0f5e929ee4a102233b",{"version":"744e7c636288493667d553c8f8ebd666ccbc0e715df445a4a7c4a48812f20544","affectsGlobalScope":true},"7e54932a41fec3a9c7e0753e52c8b18cc67b3ffdd01aaacd49b73d638186ee22","af4e1dce65c1820f6fe21bdf2c3931209c539cb498da760f05ab709f2033f2b3","73ab4f2d7964bbad113751c4d13dac7b834407ef4570b50ff67b3b765c07d312","d70d12830ae15bd5967b2b38cb7e24b3ba43bff853e305b33ed519253055ce08","c0618e33d0191171349412c9c7b983bc05081c29c635da9003a6cf7bc5d81746","c974e1ad2639f94de0b566947273e3f3b2dad004c9383bf0ea8df7cf96b1afea","5ab8773f7671da7bafa0f95a5530425a3e8374b8de4f352e64f6dd48c65681ed","bcaa4b2494b205265de37f2b4d5def521055753e8ac8aaabdfb53fd514e2bfb4","2c04fbe9e9b0ca02a0e6a549d21274b72424f3b091416fd63229114c6ac255b7","c19d76cf730f70c239ddcdc84cb78123f43964866e3cedf1ec98f640c5f3ea25","99e9a144144565db9b916035289ee80760c7542170a182312d8c9f4dcca1c276","2d86e9c4f2558362bf95cf15ec81ee170a0353e3b5b2921cb13436f98dbbd723","1043a791036b9136fe8b3e287b24f14df803a503f6abb3f347b48d1c444a6954","094501dd2107ce40723bbcf30fbc0012631031c3337cbcc2dad153d8d550d7bc","bc1ed67a1d1491918740d86502e5b86369f4b7d6af10ca86340e6df9218ed9c9","c5efedb8f1bd29ca1fd7720a45087344e14d1ea66378ac470450ea00d0f63975","161156b76821d27d22affa815f02d96706aa0861751aece957b5740dd33139ca","4023372ecd33decd9e17cd21272a86403ad60a4a913ccde6b01982a8535db442","d62e0155e4e6eb3d7a799e1fb555bb24ed6ecbebd158f87fc31e98ec6b5fcf73","c38b9f9179364943113b3eb1dd1d86d580dd1b56b68203ced15a013e9e317f29","e157c542921a03c19bafc06a1ae6bfc377359b0d88d8995591a8cdc66d7bf027","491357771c3101332dbd241a58b3733c194a1ed1ca92e371361e702c8849afe2","d1406b0eee2a415d31130b6e8771b6d0eddf70658efbafe9723aad38f58dc63c","b05b738e0e28dfa84e59a038c8287335b6ca9f16c858bd95ed930de0845f18af","dff0fdb7dc8f8ed00db44b493f77b921312ce9ed8493cda4cc82a92e48914756","338aeec8241a5d326cf4afd96408f6ff36b20ff461ee35597bf84a8f707a2745","13b6d7b987a6c306c0f7d27d77136797edc88ac47fd5893c93b8ed51f9912be9","cfa6b71c0cb889d2a210dac350ef928d532cadb26f4035bc405ef03f80b4ce17","4de53c71c9fc54d7fa8870b95b44092ff53eb6fddcfd402e360ac421318f1ca8","1c6c29857deb02e33ec045a67c375eb210a3ea4bc61b5e8078d2fab2ebf7831e","8f36a2e511f634b14983b31199a813b6d91e9f5c8ca1a81c446cfcbe3a8cda45","7e7bf5e592f90ac5784005a7d10f9960d6ff02edebdc18ab87f8cb154d5c16ab","e1b74834e5baec5460bd44dd7c5e389337ebe9eb7903743d1a9dd5b75702ac73","d34c80f2b33a4440c3d5555da6fc7780ceee568da53bd298c1562177feabcd0e","87b0641dd8bb365de2f97ec5be3ea7aa1bd714ea43f76b6b36039c5dd194e3eb","a47240f5153913c434c66cd660bbcbb01c97f6717756a14c2f59ac7feb49a134","b415d8fc78ef908cc3f02d031e5e9a1cf269dd386212aedd273a0601de175bac","679a500b60fdb879af3ff20dab0bc5937098dd1ea5b75f786c672fde09faaeef","4372b912f51cbf9f0da164599e0934031bff3f5135af1cd6425bd9e384167e0b","5a988bc94b1937ee835a83ae7bb7555a21b8bbcdfd4c8c705d1789d7a8244bc2","0eda42cf7a88e5186bbab20c42eef4cc3a7377da80c71a7bae01f224223f667c","3b2f213b50c0a3abc9ee877b3af6cb7d42bd7939c00801bfc39cb44fb9a4ac05","b484c72c73b4ae0cdee6bfb85f0ae6152b4435b59169fb460044305ef18429cf","d9df799b7d4d7d9a24b201ddffc575b1840e25f1a273650de6eef40f384b6239","ca89e452207fee3233d2cb45c28ad0a4a7e30ddf40b9ac69891dd2242859c6f9","dac79ace008b4b9147644e4d8834b4a62378990e1a1730843ac488fdf6ff5f32","54f6aeeb17ad58793455ad005027bc452b722f31755ac4d15c46bef05f941e58","48fc89daea2775641083563b0671d541dfa464f4aed9ecd6d1e1f61647e759d1","55eb179223f788fcb055cba854b63effc973f7d51cf130ab866fc161c30dd918","03107dc521b6273cf190f0be264b6f69cb43355c24320cc9e760c9ab6a7fdb22","8fb7a5ccc8533b5950772a7722d1f99c846274c7dec01d40c8f96f4fb559a7b8","1a9958339bc9d1092c53a7f13c08d29eac812534c3f61c7c7a2157ef558131a1","30137eda48ba9ccce5dfd6fa79dea587739cddfab6e280fc85f019d21488b393","e6c5a9682cb3328d41eb7f25fa231075f29307319a9d7ac679e52a7b74b6539c","0617c0c6bc0e35226b6000ef3e47fc45697348d33c305e61484b7d264f4737da","73a5569de4e23f58160c68e74b48587950b118d0105f9d71b86ae40fa5c258c4","16d7f5de02bfb62a7a69ef9497c790ed4a8119ce159b14cb763f2432298286e8","c79b44c1518bd3d1ad75aa82f2e54be1bde86cd7663624874c4047a8fc97f833","6457756d3988bd861f5c63b32fc31e7af5e9c72218333795809e26174350977d","1ccd27d6127a24d5abe36413f68b5e928c9e6f2cbab9825898379ecf18108dc2","7ce044ddf0e2f6da414622c01e2c8e3f6ca53abc046c6c24d6c8c133b3e77fa5","c0b8f2f3a9bcd9cb66b3b0ba87f43b523cef3c6486232a818b7a7f4609270097","280a982a029fb5cd1fca5de7be171b9f90891aeff96f1d017306155e2d9248f4","06e1cf7bd654ad292bbaa9512e5be45f5361e26e66cdadd0d4838ecf9478e2f8","4cedf6cd21e7160ee9c25de6fc6715224de479450a8b4f58795558c34db80e44","098a0c609e5e87af5a877840b01d440dae71eb5a969e77432efac59c8db55453","2d10907e0818a7c7d6543b0f5e78565c52e6ed4853791c2ac27caff21cc12709","3daf3efc5ede103e9f1e7a631a9de69f2071bdcbbe5499ab85b0bb711a2c8a73","9595b0440ea56e6165a6e6e53054a1790fd17fe4ab9719f03ae03281cd55dae9","2ced5214fb4159e282ccc5c84fa9eeac92a16ee70be4d2b0b099d460c765d72f","bbfbfa714a8f9fdf10e9483b4abd82ccb546fc0fc069ad80d0a254fa40930e98","4fe89ef54fee4b9502f3cbe712bf275155245b6c728bed6e5de56280ca2b5813","0cba3a5d7b81356222594442753cf90dd2892e5ccfe1d262aaca6896ba6c1380","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"c2ab70bbc7a24c42a790890739dd8a0ba9d2e15038b40dff8163a97a5d148c00","affectsGlobalScope":true},"422dbb183fdced59425ca072c8bd09efaa77ce4e2ab928ec0d8a1ce062d2a45a",{"version":"2a801b0322994c3dd7f0ef30265d19b3dd3bae6d793596879166ed6219c3da68","affectsGlobalScope":true},"1dab5ab6bcf11de47ab9db295df8c4f1d92ffa750e8f095e88c71ce4c3299628","f71f46ccd5a90566f0a37b25b23bc4684381ab2180bdf6733f4e6624474e1894",{"version":"54e65985a3ee3cec182e6a555e20974ea936fc8b8d1738c14e8ed8a42bd921d4","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","bcc8caf03ee65fe8610d258752f255fbdddbb2e4de7b6c5628956a5a0d859ec8","34e5de87d983bc6aefef8b17658556e3157003e8d9555d3cb098c6bef0b5fbc8","cc0b61316c4f37393f1f9595e93b673f4184e9d07f4c127165a490ec4a928668","f27371653aded82b2b160f7a7033fb4a5b1534b6f6081ef7be1468f0f15327d3","c762cd6754b13a461c54b59d0ae0ab7aeef3c292c6cf889873f786ee4d8e75c9","f4ea7d5df644785bd9fbf419930cbaec118f0d8b4160037d2339b8e23c059e79",{"version":"c28e5baab1b53377c90d12970e207a2644bc3627840066449e37e2a59125d07e","affectsGlobalScope":true},"7a5459efa09ea82088234e6533a203d528c594b01787fb90fba148885a36e8b6","ae97e20f2e10dbeec193d6a2f9cd9a367a1e293e7d6b33b68bacea166afd7792","10d4796a130577d57003a77b95d8723530bbec84718e364aa2129fa8ffba0378","ad41bb744149e92adb06eb953da195115620a3f2ad48e7d3ae04d10762dae197","bf73c576885408d4a176f44a9035d798827cc5020d58284cb18d7573430d9022","7ae078ca42a670445ae0c6a97c029cb83d143d62abd1730efb33f68f0b2c0e82",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"5d0a9ea09d990b5788f867f1c79d4878f86f7384cb7dab38eecbf22f9efd063d","12eea70b5e11e924bb0543aea5eadc16ced318aa26001b453b0d561c2fd0bd1e","08777cd9318d294646b121838574e1dd7acbb22c21a03df84e1f2c87b1ad47f2","08a90bcdc717df3d50a2ce178d966a8c353fd23e5c392fd3594a6e39d9bb6304",{"version":"8207e7e6db9aa5fc7e61c8f17ba74cf9c115d26f51f91ee93f790815a7ea9dfb","affectsGlobalScope":true},"2a12d2da5ac4c4979401a3f6eaafa874747a37c365e4bc18aa2b171ae134d21b","002b837927b53f3714308ecd96f72ee8a053b8aeb28213d8ec6de23ed1608b66","1dc9c847473bb47279e398b22c740c83ea37a5c88bf66629666e3cf4c5b9f99c","a9e4a5a24bf2c44de4c98274975a1a705a0abbaad04df3557c2d3cd8b1727949","00fa7ce8bc8acc560dc341bbfdf37840a8c59e6a67c9bfa3fa5f36254df35db2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"cfe724f7c694aab65a9bdd1acb05997848c504548c9d4c71645c187a091cfa2a","5f0ed51db151c2cdc4fa3bb0f44ce6066912ad001b607a34e65a96c52eb76248",{"version":"3345c276cab0e76dda86c0fb79104ff915a4580ba0f3e440870e183b1baec476","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","e383ff72aabf294913f8c346f5da1445ae6ad525836d28efd52cbadc01a361a6","f52fbf64c7e480271a9096763c4882d356b05cab05bf56a64e68a95313cd2ce2","59bdb65f28d7ce52ccfc906e9aaf422f8b8534b2d21c32a27d7819be5ad81df7","1835259a20b9fa6b1882931375b69ae5978195f2b139b4e0db51ec8319261649","b52cd693219a63dd21282ac99a7bf55f77cbe8a91f097968856419cc2e05f017","3aff9c8c36192e46a84afe7b926136d520487155154ab9ba982a8b544ea8fc95","a880cf8d85af2e4189c709b0fea613741649c0e40fffb4360ec70762563d5de0","85bbf436a15bbeda4db888be3062d47f99c66fd05d7c50f0f6473a9151b6a070","9f9c49c95ecd25e0cb2587751925976cf64fd184714cb11e213749c80cf0f927","f0c75c08a71f9212c93a719a25fb0320d53f2e50ca89a812640e08f8ad8c408c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"0b3eba6dca8c6e534d16ef7b7d76cb546cd3cbab616c8f71daa0a151b5412b9e","33c7c5147cc69b98472e52ee2d93399114fd8fb8bcfdcd4e23ad6ad862dc7445","1833b783a6ce2327137bc6e19548610b40bfe2c0ac23e51408c254a529d7fb9c","1a719edd0abb1f010bfb5ef8d926a5533021ed7837ea2ab87c3780fcc0448bce",{"version":"193124bd98f21119fdf26804fcea276f684a0ee3d32fcebd4260a3bbe3d0cba3","affectsGlobalScope":true},"007e7c8b61645862f851429909e6b06129325757c75f52ef41b24c281ddcfb74","f0063dcf66a19b8ccc5d601b76f7e746372414eb1ce0a47a39ae0043bbecbb60","1c70c3f15eb88da6c44d5b2f3d151a60bd076db0f7beb0654857cb50fa5e844a","18d4f5add28a69aae67f0c7748e5944710df4697451244e308ac61e60667ae9e","0910b15e63feac986b5c8940d60b62f4ba3edd2c29c677e1c733f7dd863350a8","41436cd5d8dfba4a428037dab82c50cca9f45f7135c8cc6f8a924c8c4fd60765","675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","fe4a2042d087990ebfc7dc0142d5aaf5a152e4baea86b45f283f103ec1e871ea","d88a479cccf787b4aa82362150fbeba5211a32dbfafa7b92ba6995ecaf9a1a89","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","c24ad9be9adf28f0927e3d9d9e9cec1c677022356f241ccbbfb97bfe8fb3d1a1","0ec0998e2d085e8ea54266f547976ae152c9dd6cdb9ac4d8a520a230f5ebae84","9364c7566b0be2f7b70ff5285eb34686f83ccb01bda529b82d23b2a844653bfb","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","ae9930989ed57478eb03b9b80ad3efa7a3eacdfeff0f78ecf7894c4963a64f93","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3e59f00ab03c33717b3130066d4debb272da90eeded4935ff0604c2bc25a5cae","6ac6f24aff52e62c3950461aa17eab26e3a156927858e6b654baef0058b4cd1e",{"version":"0714e2046df66c0e93c3330d30dbc0565b3e8cd3ee302cf99e4ede6220e5fec8","affectsGlobalScope":true},"b11c90c1fc550dcd31c018fa22eb8274d44a18e81d5e29a2780259f33d7313c2","f475f2d19e8bfd7c43121c906a95a9833fc2f13ba270fc29b780871e1ba7c359","ca73b3176a5a33b07f4f484844cf803dcf418b045eeb81495948d1d494ea67ed","2d526d2a2d6dfd1980fb6eaf7aa668c24d339e27b41cac2a72efc75abe301b35","4882ba77f05c638a4dfe6a55e2827d2aca823fc5b46bdfe475e88487f305e80c","3af78f0dbc5b2d7299e3d32f0d539188d54fc77891423f80d2c09758d17234f2","a07d8bb79d2247df0d4acb17d0d313411501fab7dedeeb152b0c8a452e2716af","a5499a2434458a72963161f1f54597dec1345f5efb1a2ceceb655c912f8758c1","4ba0adc55b5a5aca95277f1bc18df05f8003d88bc3bffacbc516a516f846375b","ddadf729e875fee7e9329acd62797ddd2161f251157c7a20edff38844a3d5312","a99c79c2b83cb10abb9250b94aaf54d501faed36d68663b00df19ad118bbeb78","cd585ee27a4eb58d2240c3174865a2918d8a3a9403dcf1b2b7b7036a0c83a464","f2df4ef5d0889f666d69ad9a4e61909c7e003fc89fe0380b7a2c1f62a7f39258","d7376e09bc4d5ce1fee55f4498fd1a70a0d0a1f55be5c1bd14efddfe51028d8d","990e1cd2708ac6c48008693c4284329dbbc0ef4a884867df82364d4ea7505b84","3de0f18b9582dc01e511cb7c0adc0eaf1cf6aa314332847f95f38adbdb34e5b9","6488bb544140d9197361382e7f7da74e8931263ebaca9800f3d00ddb09410bbf","b7f95d605462b878edcb8a58fdee2f1fcad915f3cd628abd02f702d4accc1ce0","f1e975e7fde5fb3d4ed0259e116b8f95fdde7f685b7f9a3eda2e13139e3459fb","08cf74fdd3d2fbcd4d0579e71631b87a1e918a9f4a317ce30763e20463b5fb7f","a6f82ab806229d1ed40e5ae989ddca5881e836815567b88bb6b4f9ad33d95dc5","10073cd38b4a08e2a8558d85946fada14164cd2e1633cdc8b16b21fee61760e3","d70e6cf190d24b571c4a7a6ad049bc1190463bc6a288fa36ba72da5ad66c23fe","51b8d8c7f3e046e1ee8c25d89b480fc4e2bcc5037f8140a62a0d904e494c39f8","e1b3fca68f8f3b74e85d863f77d71a3e6d71083c543cc8770baae1bb111eec57","67e121b809c5d38bfe6aba1b6c76e8a2a7540fa98f0bac47cee73e1de1828364","e4ac388c3f3ab98b646fbbbf030799bb47ded363d5dc745494a13930e7611eb0","34ef06f1d5e0ae95afb816e93c40f04f93641c11ad06e54b6fbe9335c3238c03","626115931e833877cd0c6da046456986c2f2b01ff80894976d08d22901a5ff4f","75df673efca57a792611256e6b61597c4a5af49e81fae7ece9f4dedc4bc1f30e","198fc37cff54b9be08353b3a722de1c19fb1d8439a2209c40dfdfd436d4ebb27","441bd4492e213881e831327b61c5c6a3c8727b1a36a024ea8a70a9e092050894","9e51b7021b761b39355745574b94277b67be054b2ef4f98ce5c5520a284b97a9","be7f658e763a2b556ce01fc0e255fba3df93b4c9b52d3101b138462ca20d9576","7aba3ef16595b61f5ec0373c2019b0ebd68b01e26b3396ebb6013d25c73b08bf","c27108810cd8ee0b4c7ad2869a801a62faa7e76d49b637903d7b680182629429","d5d7b68f5369a210c235cd65458369888f8b839192d088c964f21cab3ac954db","cc957354aa3c94c9961ebf46282cfde1e81d107fc5785a61f62c67f1dd3ac2eb","64b867c61effed7b5bc0cc06b3d8eac23b067a3fba581fc7d3c292fa593e6a45","93de1c6dab503f053efe8d304cb522bb3a89feab8c98f307a674a4fae04773e9","3b043cf9a81854a72963fdb57d1884fc4da1cf5be69b5e0a4c5b751e58cb6d88","80164ffebe1723a50e020a648e0623c026ff39be13c5cd45e6a82d0fcc06e2d0","400db42c3a46984118bff14260d60cec580057dc1ab4c2d7310beb643e4f5935","82169f198ffdfc787fba368ccfad2b2d8ef3712f3c696df94ac13f6884bbbe2d","cab425b5559edac18327eb2c3c0f47e7e9f71b667290b7689faafd28aac69eae","3cfb0cb51cc2c2e1b313d7c4df04dbf7e5bda0a133c6b309bf6af77cf614b971","f992cd6cc0bcbaa4e6c810468c90f2d8595f8c6c3cf050c806397d3de8585562","5343f3c160282dfbaab9af350119a0c3b59b7076ef0117bb5995a66e240dab28","c5590caef278ad8ba2532ec93e29a32ac354dfb333277348acce18512891d3b2","aca36e2d27783f4bad7fc1786a532ff76024f0fc8575df48bcd9a5eb452fe7e7","3ebae8c00411116a66fca65b08228ea0cf0b72724701f9b854442100aab55aba","8b06ac3faeacb8484d84ddb44571d8f410697f98d7bfa86c0fda60373a9f5215","7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","f5638f7c2f12a9a1a57b5c41b3c1ea7db3876c003bab68e6a57afd6bcc169af0","d8aab31ba8e618cc3eea10b0945de81cb93b7e8150a013a482332263b9305322","462bccdf75fcafc1ae8c30400c9425e1a4681db5d605d1a0edb4f990a54d8094","5923d8facbac6ecf7c84739a5c701a57af94a6f6648d6229a6c768cf28f0f8cb","7adecb2c3238794c378d336a8182d4c3dd2c4fa6fa1785e2797a3db550edea62","dc12dc0e5aa06f4e1a7692149b78f89116af823b9e1f1e4eae140cd3e0e674e6","1bfc6565b90c8771615cd8cfcf9b36efc0275e5e83ac7d9181307e96eb495161","8a8a96898906f065f296665e411f51010b51372fa260d5373bf9f64356703190",{"version":"6ff2ca51e2c9d88d6d904c481879b12ec0cad2a69b88e220859a52207444773b","affectsGlobalScope":true},"0359682c54e487c4cab2b53b2b4d35cc8dea4d9914bc6abcdb5701f8b8e745a4","209e814e8e71aec74f69686a9506dd7610b97ab59dcee9446266446f72a76d05","fbdb2f9a17acdb6de71dd363fd0d8b79b823ac8fbf2423558871ddea14333682","736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","208bb742e0f201470da121bc73847c74b62cff4172f38ae5949ae77d6c9c6b71","062bd2910098fc059ba93e347649b3e126c555f7b144033d21d3f8ef63d3e39b","9d9e658d1d5b805562749ce383ef8c67ccb796394d8734d9c138788d7dab6ee3","e91ad231af87f864b3f07cd0e39b1cf6c133988156f087c1c3ccb0a5491c9115","660fa40695c7ca19a59fd09d31d495d952eee946e445a2c455ec63f255ec3050","bf0b1297461549a0e32cd57dffb992c63d7c7134fe0f9e15d359abcc88dbd28c","b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","229b8c23448b98db8507667e46f54d20bd1e8425eaa8f3093bf9fecfbab862ec","239f0c1d83d1ca9677327198196ee2ce6827dc7b469771ab5abf7bea7fbdb674","6061aa83817c30d3a590f037b3cba22cdd809fbe697926d6511b45147928a342",{"version":"0609dda5350cd6d8c42daef710dffe3b51521ffbd00109e234f7bfb7533194e7","affectsGlobalScope":true},"f4d98f30a512c76f6de4c7ed21ccab0f544d60a612af0e0b0a65ccbe16784b7a","6ffffca02d7bdb0ee802d75b5f4de8270a0c1e1164873db8e76dc5d518dcd150","6e40a3a87126255d4c1aa4d613923b6e3c5c28273d018a8591af338232f393ab","829c6dfd3224be3b599c64ce7fa9136a3422ac7ab4569cc52469c65574facb23","f7e133b20ee2669b6c0e5d7f0cd510868c57cd64b283e68c7f598e30ce9d76d2","d9f5e2cb6bce0d05a252e991b33e051f6385299b0dd18d842fc863b59173a18e"],"options":{"declaration":true,"downlevelIteration":true,"esModuleInterop":true,"outDir":"./","strict":true},"fileIdsList":[[162,229],[162],[162,229,230,231,232,233],[162,229,231],[134,137,161,162,169,236,237,238],[124,162,169],[135,162,169],[162,244],[162,245],[162,249,253],[134,162,169],[162,180,182,183,184,185,186,187,188,189,190,191,192],[162,180,181,183,184,185,186,187,188,189,190,191,192],[162,181,182,183,184,185,186,187,188,189,190,191,192],[162,180,181,182,184,185,186,187,188,189,190,191,192],[162,180,181,182,183,185,186,187,188,189,190,191,192],[162,180,181,182,183,184,186,187,188,189,190,191,192],[162,180,181,182,183,184,185,187,188,189,190,191,192],[162,180,181,182,183,184,185,186,188,189,190,191,192],[162,180,181,182,183,184,185,186,187,189,190,191,192],[162,180,181,182,183,184,185,186,187,188,190,191,192],[162,180,181,182,183,184,185,186,187,188,189,191,192],[162,180,181,182,183,184,185,186,187,188,189,190,192],[162,180,181,182,183,184,185,186,187,188,189,190,191],[137,161,162,169,258,259],[119,162],[122,162],[123,128,162],[124,134,135,142,151,161,162],[124,125,134,142,162],[126,162],[127,128,135,143,162],[128,151,158,162],[129,131,134,142,162],[130,162],[131,132,162],[133,134,162],[134,162],[134,135,136,151,161,162],[134,135,136,151,162],[137,142,151,161,162],[134,135,137,138,142,151,158,161,162],[137,139,151,158,161,162],[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,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168],[134,140,162],[141,161,162],[131,134,142,151,162],[143,162],[144,162],[122,145,162],[146,160,162,166],[147,162],[148,162],[134,149,162],[149,150,162,164],[134,151,152,153,162],[151,153,162],[151,152,162],[154,162],[155,162],[134,156,157,162],[156,157,162],[128,142,151,158,162],[159,162],[142,160,162],[123,137,148,161,162],[128,162],[151,162,163],[162,164],[162,165],[123,128,134,136,145,151,161,162,164,166],[151,162,167],[135,137,139,142,151,161,162,169,240,262,263],[137,151,162,169],[151,162,169],[134,151,162,167,169,257],[134,137,139,142,161,162,169],[134,137,139,142,161,162,167,169],[162,274],[162,247,250],[162,247,250,251,252],[162,249],[162,248],[162,169,173],[116,117,118,162,170,171,172],[117,162,173],[117,162],[43,44,45,46,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,162],[65,162],[65,78,162],[84,85,162],[86,162],[48,67,162],[67,162],[84,162],[89,162],[76,162],[47,162],[83,84,85,162],[43,162],[45,162],[93,162],[91,162],[48,49,162],[59,162],[95,162],[48,162],[89,98,101,162],[162,192,193,194,195,205,206],[114,162],[114,162,178,192,193],[41,112,162,193,215],[41,112,144,162,193,194,195,207,208,209,210,211],[111,112,144,162],[112,162,193,212,213,214],[41,112,114,144,162,178,193,195,207,208,209,211],[112,162,193,194,209,210,211],[114,162,205],[40,114,135,162,175,176,224],[114,162,175,205],[115,162,174],[40,114,135,162,173],[41,42,110,112,162,194,196,203,216],[114,162,193],[42,112,162,193,201,202],[162,205],[40,42,112,162,178,192,193,194,197,198,199,203,205],[162,200],[42,114,162],[114,162,175,177,178,203,204,216,224],[114,162,223],[110,114,162,175,177,178,222],[110,112,114,162,179,192,193,194,203,204,216,218,221],[114,162,193,217],[162,222,223],[114,135,144,162,179,219,220],[162,176],[41,42,109,162],[110,162],[110,111,112,113,162],[111,162],[162,192]],"referencedMap":[[231,1],[229,2],[234,3],[230,1],[232,4],[233,1],[239,5],[240,2],[179,6],[241,2],[235,2],[242,7],[243,7],[237,2],[244,2],[245,8],[246,9],[254,10],[40,2],[255,2],[236,11],[181,12],[182,13],[180,14],[183,15],[184,16],[185,17],[186,18],[187,19],[188,20],[189,21],[190,22],[191,23],[192,24],[220,2],[256,2],[257,11],[259,2],[260,25],[119,26],[120,26],[122,27],[123,28],[124,29],[125,30],[126,31],[127,32],[128,33],[129,34],[130,35],[131,36],[132,36],[133,37],[134,38],[135,39],[136,40],[121,2],[168,2],[137,41],[138,42],[139,43],[169,44],[140,45],[141,46],[142,47],[143,48],[144,49],[145,50],[146,51],[147,52],[148,53],[149,54],[150,55],[151,56],[153,57],[152,58],[154,59],[155,60],[156,61],[157,62],[158,63],[159,64],[160,65],[161,66],[162,67],[163,68],[164,69],[165,70],[166,71],[167,72],[261,2],[264,73],[262,74],[238,74],[265,2],[266,75],[267,76],[268,2],[263,2],[269,2],[270,2],[271,2],[272,77],[273,78],[274,2],[275,79],[258,74],[247,2],[251,80],[253,81],[252,80],[250,82],[116,2],[219,2],[249,83],[248,2],[196,2],[170,84],[173,85],[171,84],[172,86],[118,87],[109,88],[66,89],[79,90],[45,2],[86,91],[88,92],[87,92],[68,93],[67,2],[69,94],[89,95],[93,96],[91,96],[77,97],[76,2],[48,98],[72,2],[105,99],[101,98],[47,100],[75,2],[103,2],[80,101],[90,96],[94,102],[92,103],[106,2],[81,2],[59,100],[52,2],[51,104],[73,98],[74,98],[50,104],[82,2],[46,2],[61,2],[107,105],[57,98],[95,92],[97,106],[96,106],[43,2],[60,2],[65,2],[58,98],[56,2],[55,2],[53,107],[54,2],[102,108],[62,104],[63,104],[78,2],[49,2],[98,96],[100,102],[99,103],[85,2],[83,2],[71,2],[104,2],[108,2],[44,2],[70,2],[84,2],[64,2],[8,2],[10,2],[9,2],[2,2],[11,2],[12,2],[13,2],[14,2],[15,2],[16,2],[17,2],[18,2],[3,2],[4,2],[22,2],[19,2],[20,2],[21,2],[23,2],[24,2],[25,2],[5,2],[26,2],[27,2],[28,2],[29,2],[6,2],[30,2],[31,2],[32,2],[33,2],[7,2],[38,2],[34,2],[35,2],[36,2],[37,2],[1,2],[39,2],[117,2],[195,2],[207,109],[206,110],[208,111],[216,112],[212,113],[209,114],[210,2],[215,115],[213,116],[214,117],[211,110],[226,118],[41,2],[225,119],[227,120],[115,110],[175,121],[174,122],[176,2],[204,123],[217,110],[197,124],[203,125],[198,126],[200,127],[201,128],[199,126],[42,2],[202,129],[205,130],[228,131],[223,132],[222,133],[218,134],[224,135],[221,136],[177,110],[178,137],[110,138],[112,139],[111,2],[114,140],[193,141],[113,141],[194,142]],"exportedModulesMap":[[231,1],[229,2],[234,3],[230,1],[232,4],[233,1],[239,5],[240,2],[179,6],[241,2],[235,2],[242,7],[243,7],[237,2],[244,2],[245,8],[246,9],[254,10],[40,2],[255,2],[236,11],[181,12],[182,13],[180,14],[183,15],[184,16],[185,17],[186,18],[187,19],[188,20],[189,21],[190,22],[191,23],[192,24],[220,2],[256,2],[257,11],[259,2],[260,25],[119,26],[120,26],[122,27],[123,28],[124,29],[125,30],[126,31],[127,32],[128,33],[129,34],[130,35],[131,36],[132,36],[133,37],[134,38],[135,39],[136,40],[121,2],[168,2],[137,41],[138,42],[139,43],[169,44],[140,45],[141,46],[142,47],[143,48],[144,49],[145,50],[146,51],[147,52],[148,53],[149,54],[150,55],[151,56],[153,57],[152,58],[154,59],[155,60],[156,61],[157,62],[158,63],[159,64],[160,65],[161,66],[162,67],[163,68],[164,69],[165,70],[166,71],[167,72],[261,2],[264,73],[262,74],[238,74],[265,2],[266,75],[267,76],[268,2],[263,2],[269,2],[270,2],[271,2],[272,77],[273,78],[274,2],[275,79],[258,74],[247,2],[251,80],[253,81],[252,80],[250,82],[116,2],[219,2],[249,83],[248,2],[196,2],[170,84],[173,85],[171,84],[172,86],[118,87],[109,88],[66,89],[79,90],[45,2],[86,91],[88,92],[87,92],[68,93],[67,2],[69,94],[89,95],[93,96],[91,96],[77,97],[76,2],[48,98],[72,2],[105,99],[101,98],[47,100],[75,2],[103,2],[80,101],[90,96],[94,102],[92,103],[106,2],[81,2],[59,100],[52,2],[51,104],[73,98],[74,98],[50,104],[82,2],[46,2],[61,2],[107,105],[57,98],[95,92],[97,106],[96,106],[43,2],[60,2],[65,2],[58,98],[56,2],[55,2],[53,107],[54,2],[102,108],[62,104],[63,104],[78,2],[49,2],[98,96],[100,102],[99,103],[85,2],[83,2],[71,2],[104,2],[108,2],[44,2],[70,2],[84,2],[64,2],[8,2],[10,2],[9,2],[2,2],[11,2],[12,2],[13,2],[14,2],[15,2],[16,2],[17,2],[18,2],[3,2],[4,2],[22,2],[19,2],[20,2],[21,2],[23,2],[24,2],[25,2],[5,2],[26,2],[27,2],[28,2],[29,2],[6,2],[30,2],[31,2],[32,2],[33,2],[7,2],[38,2],[34,2],[35,2],[36,2],[37,2],[1,2],[39,2],[117,2],[195,2],[207,109],[206,110],[208,111],[216,112],[212,113],[209,114],[210,2],[215,115],[213,116],[214,117],[211,110],[226,118],[41,2],[225,119],[227,120],[115,110],[175,121],[174,122],[176,2],[204,123],[217,110],[197,124],[203,125],[198,126],[200,127],[201,128],[199,126],[42,2],[202,129],[205,130],[228,131],[223,132],[222,133],[218,134],[224,135],[221,136],[177,110],[178,137],[110,138],[112,139],[111,2],[114,140],[193,141],[113,141],[194,142]],"semanticDiagnosticsPerFile":[231,229,234,230,232,233,239,240,179,241,235,242,243,237,244,245,246,254,40,255,236,181,182,180,183,184,185,186,187,188,189,190,191,192,220,256,257,259,260,119,120,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,121,168,137,138,139,169,140,141,142,143,144,145,146,147,148,149,150,151,153,152,154,155,156,157,158,159,160,161,162,163,164,165,166,167,261,264,262,238,265,266,267,268,263,269,270,271,272,273,274,275,258,247,251,253,252,250,116,219,249,248,196,170,173,171,172,118,109,66,79,45,86,88,87,68,67,69,89,93,91,77,76,48,72,105,101,47,75,103,80,90,94,92,106,81,59,52,51,73,74,50,82,46,61,107,57,95,97,96,43,60,65,58,56,55,53,54,102,62,63,78,49,98,100,99,85,83,71,104,108,44,70,84,64,8,10,9,2,11,12,13,14,15,16,17,18,3,4,22,19,20,21,23,24,25,5,26,27,28,29,6,30,31,32,33,7,38,34,35,36,37,1,39,117,195,207,206,208,216,212,209,210,215,213,214,211,226,41,225,227,115,175,174,176,204,217,197,203,198,200,201,199,42,202,205,228,223,222,218,224,221,177,178,110,112,111,114,193,113,194]},"version":"4.5.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.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.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.esnext.intl.d.ts","../../node_modules/@types/js-yaml/index.d.ts","../src/build/types.ts","../src/deploy/types.ts","../../node_modules/type-fest/source/primitive.d.ts","../../node_modules/type-fest/source/typed-array.d.ts","../../node_modules/type-fest/source/basic.d.ts","../../node_modules/type-fest/source/observable-like.d.ts","../../node_modules/type-fest/source/internal.d.ts","../../node_modules/type-fest/source/except.d.ts","../../node_modules/type-fest/source/simplify.d.ts","../../node_modules/type-fest/source/mutable.d.ts","../../node_modules/type-fest/source/merge.d.ts","../../node_modules/type-fest/source/merge-exclusive.d.ts","../../node_modules/type-fest/source/require-at-least-one.d.ts","../../node_modules/type-fest/source/require-exactly-one.d.ts","../../node_modules/type-fest/source/require-all-or-none.d.ts","../../node_modules/type-fest/source/remove-index-signature.d.ts","../../node_modules/type-fest/source/partial-deep.d.ts","../../node_modules/type-fest/source/readonly-deep.d.ts","../../node_modules/type-fest/source/literal-union.d.ts","../../node_modules/type-fest/source/promisable.d.ts","../../node_modules/type-fest/source/opaque.d.ts","../../node_modules/type-fest/source/set-optional.d.ts","../../node_modules/type-fest/source/set-required.d.ts","../../node_modules/type-fest/source/value-of.d.ts","../../node_modules/type-fest/source/promise-value.d.ts","../../node_modules/type-fest/source/async-return-type.d.ts","../../node_modules/type-fest/source/conditional-keys.d.ts","../../node_modules/type-fest/source/conditional-except.d.ts","../../node_modules/type-fest/source/conditional-pick.d.ts","../../node_modules/type-fest/source/union-to-intersection.d.ts","../../node_modules/type-fest/source/stringified.d.ts","../../node_modules/type-fest/source/fixed-length-array.d.ts","../../node_modules/type-fest/source/multidimensional-array.d.ts","../../node_modules/type-fest/source/multidimensional-readonly-array.d.ts","../../node_modules/type-fest/source/iterable-element.d.ts","../../node_modules/type-fest/source/entry.d.ts","../../node_modules/type-fest/source/entries.d.ts","../../node_modules/type-fest/source/set-return-type.d.ts","../../node_modules/type-fest/source/asyncify.d.ts","../../node_modules/type-fest/source/jsonify.d.ts","../../node_modules/type-fest/source/literal-to-primitive.d.ts","../../node_modules/type-fest/source/numeric.d.ts","../../node_modules/type-fest/source/string-key-of.d.ts","../../node_modules/type-fest/source/utilities.d.ts","../../node_modules/type-fest/source/split.d.ts","../../node_modules/type-fest/source/camel-case.d.ts","../../node_modules/type-fest/source/camel-cased-properties.d.ts","../../node_modules/type-fest/source/camel-cased-properties-deep.d.ts","../../node_modules/type-fest/source/delimiter-case.d.ts","../../node_modules/type-fest/source/kebab-case.d.ts","../../node_modules/type-fest/source/delimiter-cased-properties.d.ts","../../node_modules/type-fest/source/kebab-cased-properties.d.ts","../../node_modules/type-fest/source/delimiter-cased-properties-deep.d.ts","../../node_modules/type-fest/source/kebab-cased-properties-deep.d.ts","../../node_modules/type-fest/source/pascal-case.d.ts","../../node_modules/type-fest/source/pascal-cased-properties.d.ts","../../node_modules/type-fest/source/pascal-cased-properties-deep.d.ts","../../node_modules/type-fest/source/snake-case.d.ts","../../node_modules/type-fest/source/snake-cased-properties.d.ts","../../node_modules/type-fest/source/snake-cased-properties-deep.d.ts","../../node_modules/type-fest/source/includes.d.ts","../../node_modules/type-fest/source/screaming-snake-case.d.ts","../../node_modules/type-fest/source/join.d.ts","../../node_modules/type-fest/source/trim.d.ts","../../node_modules/type-fest/source/get.d.ts","../../node_modules/type-fest/source/last-array-element.d.ts","../../node_modules/type-fest/source/package-json.d.ts","../../node_modules/type-fest/source/tsconfig-json.d.ts","../../node_modules/type-fest/index.d.ts","../src/types/config.ts","../src/types/gitlab-types.ts","../src/types/context.ts","../src/types/pipeline.ts","../src/types/index.ts","../src/config/configruedEnvs.ts","../../node_modules/make-error/index.d.ts","../../node_modules/typescript/lib/typescript.d.ts","../../node_modules/ts-node/dist/ts-compiler-types.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/ts-node/dist/esm.d.ts","../../node_modules/ts-node/dist/repl.d.ts","../../node_modules/ts-node/dist/transpilers/types.d.ts","../../node_modules/ts-node/dist/index.d.ts","../src/config/readConfig.ts","../src/config/index.ts","../src/constants.ts","../src/rules/index.ts","../src/runner/index.ts","../../node_modules/@types/child-process-promise/index.d.ts","../../node_modules/@types/lodash/common/common.d.ts","../../node_modules/@types/lodash/common/array.d.ts","../../node_modules/@types/lodash/common/collection.d.ts","../../node_modules/@types/lodash/common/date.d.ts","../../node_modules/@types/lodash/common/function.d.ts","../../node_modules/@types/lodash/common/lang.d.ts","../../node_modules/@types/lodash/common/math.d.ts","../../node_modules/@types/lodash/common/number.d.ts","../../node_modules/@types/lodash/common/object.d.ts","../../node_modules/@types/lodash/common/seq.d.ts","../../node_modules/@types/lodash/common/string.d.ts","../../node_modules/@types/lodash/common/util.d.ts","../../node_modules/@types/lodash/index.d.ts","../src/types/jobs.ts","../src/utils/index.ts","../src/build/base/constants.ts","../../node_modules/slugify/slugify.d.ts","../src/deploy/base.ts","../src/deploy/kubernetes/cloudsql.ts","../src/deploy/kubernetes/mongodb.ts","../src/deploy/kubernetes/deployJob.ts","../src/deploy/kubernetes/index.ts","../src/deploy/utils.ts","../src/deploy/index.ts","../src/context/resolveReferences.ts","../src/context/index.ts","../src/index.ts","../src/build/base/getBuildInfo.ts","../src/build/base/createBuildJob.ts","../src/build/docker.ts","../src/build/node/cache.ts","../src/build/node/constants.ts","../src/build/node/yarn.ts","../src/build/node/buildJob.ts","../src/build/node/meteor.ts","../src/build/node/testJob.ts","../src/build/node/index.ts","../src/build/index.ts","../src/defaults/index.ts","../src/pipeline/gitlab/makeGitlabJob.ts","../../node_modules/path-equal/cjs/index.d.ts","../../node_modules/@types/memoizee/index.d.ts","../src/pipeline/packageManager.ts","../src/pipeline/createJobs.ts","../src/pipeline/createChildPipeline.ts","../src/pipeline/index.ts","../src/catladder-gitlab.ts","../src/build/tests/storybook.test.ts","../src/config/configruedEnvs.test.ts","../src/context/resolveReferences.test.ts","../src/pipeline/createChildPipeline.test.ts","../../node_modules/@babel/types/lib/index.d.ts","../../node_modules/@types/babel__generator/index.d.ts","../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../node_modules/@types/babel__template/index.d.ts","../../node_modules/@types/babel__traverse/index.d.ts","../../node_modules/@types/babel__core/index.d.ts","../../node_modules/@types/events/index.d.ts","../../node_modules/@types/keyv/index.d.ts","../../node_modules/@types/http-cache-semantics/index.d.ts","../../node_modules/@types/responselike/index.d.ts","../../node_modules/@types/cacheable-request/index.d.ts","../../node_modules/@types/caseless/index.d.ts","../../node_modules/@types/common-tags/index.d.ts","../../node_modules/@types/fs-extra/index.d.ts","../../node_modules/@types/graceful-fs/index.d.ts","../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../node_modules/@types/istanbul-lib-report/index.d.ts","../../node_modules/@types/istanbul-reports/index.d.ts","../../node_modules/jest-diff/build/cleanupSemantic.d.ts","../../node_modules/pretty-format/build/types.d.ts","../../node_modules/pretty-format/build/index.d.ts","../../node_modules/jest-diff/build/types.d.ts","../../node_modules/jest-diff/build/diffLines.d.ts","../../node_modules/jest-diff/build/printDiffs.d.ts","../../node_modules/jest-diff/build/index.d.ts","../../node_modules/@types/jest/index.d.ts","../../node_modules/@types/json-schema/index.d.ts","../../node_modules/@types/minimist/index.d.ts","../../node_modules/@types/minipass/index.d.ts","../../node_modules/form-data/index.d.ts","../../node_modules/@types/node-fetch/externals.d.ts","../../node_modules/@types/node-fetch/index.d.ts","../../node_modules/@types/prettier/index.d.ts","../../node_modules/@types/request/node_modules/form-data/index.d.ts","../../node_modules/@types/tough-cookie/index.d.ts","../../node_modules/@types/request/index.d.ts","../../node_modules/@types/stack-utils/index.d.ts","../../node_modules/@types/stream-buffers/index.d.ts","../../node_modules/@types/tar/index.d.ts","../../node_modules/@types/tmp/index.d.ts","../../node_modules/@types/underscore/index.d.ts","../../node_modules/@types/update-notifier/index.d.ts","../../node_modules/@types/vorpal/index.d.ts","../../node_modules/@types/websocket/index.d.ts","../../node_modules/@types/ws/index.d.ts","../../node_modules/@types/yargs-parser/index.d.ts","../../node_modules/@types/yargs/index.d.ts"],"fileInfos":[{"version":"89f78430e422a0f06d13019d60d5a45b37ec2d28e67eb647f73b1b0d19a46b72","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940",{"version":"abba1071bfd89e55e88a054b0c851ea3e8a494c340d0f3fab19eb18f6afb0c9e","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"4378fc8122ec9d1a685b01eb66c46f62aba6b239ca7228bb6483bcf8259ee493","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","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":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"d071129cba6a5f2700be09c86c07ad2791ab67d4e5ed1eb301d6746c62745ea4","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"686e548ae30250d62532c8cacb43fccc922b693408371bd3503563c4a0f28eed","04ad01e27e22ed8918248c81240e982939b11f85ee594fe8c4d419c56985f267","5dde90e55cd4800cdae74ead51ee9b8370690e72dfe84bcafe22da345a441c83","cd51ceafea7762ad639afb3ca5b68e1e4ffeaacaa402d7ef2cae17016e29e098","1b8357b3fef5be61b5de6d6a4805a534d68fe3e040c11f1944e27d4aec85936a","4a15fc59b27b65b9894952048be2afc561865ec37606cd0f5e929ee4a102233b",{"version":"744e7c636288493667d553c8f8ebd666ccbc0e715df445a4a7c4a48812f20544","affectsGlobalScope":true},"7e54932a41fec3a9c7e0753e52c8b18cc67b3ffdd01aaacd49b73d638186ee22","af4e1dce65c1820f6fe21bdf2c3931209c539cb498da760f05ab709f2033f2b3","73ab4f2d7964bbad113751c4d13dac7b834407ef4570b50ff67b3b765c07d312","d70d12830ae15bd5967b2b38cb7e24b3ba43bff853e305b33ed519253055ce08","c0618e33d0191171349412c9c7b983bc05081c29c635da9003a6cf7bc5d81746","c974e1ad2639f94de0b566947273e3f3b2dad004c9383bf0ea8df7cf96b1afea","5ab8773f7671da7bafa0f95a5530425a3e8374b8de4f352e64f6dd48c65681ed","bcaa4b2494b205265de37f2b4d5def521055753e8ac8aaabdfb53fd514e2bfb4","2c04fbe9e9b0ca02a0e6a549d21274b72424f3b091416fd63229114c6ac255b7","c19d76cf730f70c239ddcdc84cb78123f43964866e3cedf1ec98f640c5f3ea25","99e9a144144565db9b916035289ee80760c7542170a182312d8c9f4dcca1c276","2d86e9c4f2558362bf95cf15ec81ee170a0353e3b5b2921cb13436f98dbbd723","1043a791036b9136fe8b3e287b24f14df803a503f6abb3f347b48d1c444a6954","094501dd2107ce40723bbcf30fbc0012631031c3337cbcc2dad153d8d550d7bc","bc1ed67a1d1491918740d86502e5b86369f4b7d6af10ca86340e6df9218ed9c9","c5efedb8f1bd29ca1fd7720a45087344e14d1ea66378ac470450ea00d0f63975","161156b76821d27d22affa815f02d96706aa0861751aece957b5740dd33139ca","4023372ecd33decd9e17cd21272a86403ad60a4a913ccde6b01982a8535db442","d62e0155e4e6eb3d7a799e1fb555bb24ed6ecbebd158f87fc31e98ec6b5fcf73","c38b9f9179364943113b3eb1dd1d86d580dd1b56b68203ced15a013e9e317f29","e157c542921a03c19bafc06a1ae6bfc377359b0d88d8995591a8cdc66d7bf027","491357771c3101332dbd241a58b3733c194a1ed1ca92e371361e702c8849afe2","d1406b0eee2a415d31130b6e8771b6d0eddf70658efbafe9723aad38f58dc63c","b05b738e0e28dfa84e59a038c8287335b6ca9f16c858bd95ed930de0845f18af","dff0fdb7dc8f8ed00db44b493f77b921312ce9ed8493cda4cc82a92e48914756","338aeec8241a5d326cf4afd96408f6ff36b20ff461ee35597bf84a8f707a2745","13b6d7b987a6c306c0f7d27d77136797edc88ac47fd5893c93b8ed51f9912be9","cfa6b71c0cb889d2a210dac350ef928d532cadb26f4035bc405ef03f80b4ce17","4de53c71c9fc54d7fa8870b95b44092ff53eb6fddcfd402e360ac421318f1ca8","1c6c29857deb02e33ec045a67c375eb210a3ea4bc61b5e8078d2fab2ebf7831e","8f36a2e511f634b14983b31199a813b6d91e9f5c8ca1a81c446cfcbe3a8cda45","7e7bf5e592f90ac5784005a7d10f9960d6ff02edebdc18ab87f8cb154d5c16ab","e1b74834e5baec5460bd44dd7c5e389337ebe9eb7903743d1a9dd5b75702ac73","d34c80f2b33a4440c3d5555da6fc7780ceee568da53bd298c1562177feabcd0e","87b0641dd8bb365de2f97ec5be3ea7aa1bd714ea43f76b6b36039c5dd194e3eb","a47240f5153913c434c66cd660bbcbb01c97f6717756a14c2f59ac7feb49a134","b415d8fc78ef908cc3f02d031e5e9a1cf269dd386212aedd273a0601de175bac","679a500b60fdb879af3ff20dab0bc5937098dd1ea5b75f786c672fde09faaeef","4372b912f51cbf9f0da164599e0934031bff3f5135af1cd6425bd9e384167e0b","5a988bc94b1937ee835a83ae7bb7555a21b8bbcdfd4c8c705d1789d7a8244bc2","0eda42cf7a88e5186bbab20c42eef4cc3a7377da80c71a7bae01f224223f667c","3b2f213b50c0a3abc9ee877b3af6cb7d42bd7939c00801bfc39cb44fb9a4ac05","b484c72c73b4ae0cdee6bfb85f0ae6152b4435b59169fb460044305ef18429cf","d9df799b7d4d7d9a24b201ddffc575b1840e25f1a273650de6eef40f384b6239","ca89e452207fee3233d2cb45c28ad0a4a7e30ddf40b9ac69891dd2242859c6f9","dac79ace008b4b9147644e4d8834b4a62378990e1a1730843ac488fdf6ff5f32","54f6aeeb17ad58793455ad005027bc452b722f31755ac4d15c46bef05f941e58","48fc89daea2775641083563b0671d541dfa464f4aed9ecd6d1e1f61647e759d1","55eb179223f788fcb055cba854b63effc973f7d51cf130ab866fc161c30dd918","03107dc521b6273cf190f0be264b6f69cb43355c24320cc9e760c9ab6a7fdb22","8fb7a5ccc8533b5950772a7722d1f99c846274c7dec01d40c8f96f4fb559a7b8","1a9958339bc9d1092c53a7f13c08d29eac812534c3f61c7c7a2157ef558131a1","30137eda48ba9ccce5dfd6fa79dea587739cddfab6e280fc85f019d21488b393","e6c5a9682cb3328d41eb7f25fa231075f29307319a9d7ac679e52a7b74b6539c","0617c0c6bc0e35226b6000ef3e47fc45697348d33c305e61484b7d264f4737da","73a5569de4e23f58160c68e74b48587950b118d0105f9d71b86ae40fa5c258c4","16d7f5de02bfb62a7a69ef9497c790ed4a8119ce159b14cb763f2432298286e8","c79b44c1518bd3d1ad75aa82f2e54be1bde86cd7663624874c4047a8fc97f833","6457756d3988bd861f5c63b32fc31e7af5e9c72218333795809e26174350977d","1ccd27d6127a24d5abe36413f68b5e928c9e6f2cbab9825898379ecf18108dc2","7ce044ddf0e2f6da414622c01e2c8e3f6ca53abc046c6c24d6c8c133b3e77fa5","c0b8f2f3a9bcd9cb66b3b0ba87f43b523cef3c6486232a818b7a7f4609270097","280a982a029fb5cd1fca5de7be171b9f90891aeff96f1d017306155e2d9248f4","7e307f206f75b0596520e6677178d9f859e367bdedff25cf168beb207d9b6740","4cedf6cd21e7160ee9c25de6fc6715224de479450a8b4f58795558c34db80e44","098a0c609e5e87af5a877840b01d440dae71eb5a969e77432efac59c8db55453","2d10907e0818a7c7d6543b0f5e78565c52e6ed4853791c2ac27caff21cc12709","3daf3efc5ede103e9f1e7a631a9de69f2071bdcbbe5499ab85b0bb711a2c8a73","9595b0440ea56e6165a6e6e53054a1790fd17fe4ab9719f03ae03281cd55dae9","2ced5214fb4159e282ccc5c84fa9eeac92a16ee70be4d2b0b099d460c765d72f","bbfbfa714a8f9fdf10e9483b4abd82ccb546fc0fc069ad80d0a254fa40930e98","4fe89ef54fee4b9502f3cbe712bf275155245b6c728bed6e5de56280ca2b5813","0cba3a5d7b81356222594442753cf90dd2892e5ccfe1d262aaca6896ba6c1380","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"c2ab70bbc7a24c42a790890739dd8a0ba9d2e15038b40dff8163a97a5d148c00","affectsGlobalScope":true},"422dbb183fdced59425ca072c8bd09efaa77ce4e2ab928ec0d8a1ce062d2a45a",{"version":"2a801b0322994c3dd7f0ef30265d19b3dd3bae6d793596879166ed6219c3da68","affectsGlobalScope":true},"1dab5ab6bcf11de47ab9db295df8c4f1d92ffa750e8f095e88c71ce4c3299628","f71f46ccd5a90566f0a37b25b23bc4684381ab2180bdf6733f4e6624474e1894",{"version":"54e65985a3ee3cec182e6a555e20974ea936fc8b8d1738c14e8ed8a42bd921d4","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","bcc8caf03ee65fe8610d258752f255fbdddbb2e4de7b6c5628956a5a0d859ec8","34e5de87d983bc6aefef8b17658556e3157003e8d9555d3cb098c6bef0b5fbc8","cc0b61316c4f37393f1f9595e93b673f4184e9d07f4c127165a490ec4a928668","f27371653aded82b2b160f7a7033fb4a5b1534b6f6081ef7be1468f0f15327d3","c762cd6754b13a461c54b59d0ae0ab7aeef3c292c6cf889873f786ee4d8e75c9","f4ea7d5df644785bd9fbf419930cbaec118f0d8b4160037d2339b8e23c059e79",{"version":"c28e5baab1b53377c90d12970e207a2644bc3627840066449e37e2a59125d07e","affectsGlobalScope":true},"7a5459efa09ea82088234e6533a203d528c594b01787fb90fba148885a36e8b6","ae97e20f2e10dbeec193d6a2f9cd9a367a1e293e7d6b33b68bacea166afd7792","10d4796a130577d57003a77b95d8723530bbec84718e364aa2129fa8ffba0378","ad41bb744149e92adb06eb953da195115620a3f2ad48e7d3ae04d10762dae197","bf73c576885408d4a176f44a9035d798827cc5020d58284cb18d7573430d9022","7ae078ca42a670445ae0c6a97c029cb83d143d62abd1730efb33f68f0b2c0e82",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"5d0a9ea09d990b5788f867f1c79d4878f86f7384cb7dab38eecbf22f9efd063d","12eea70b5e11e924bb0543aea5eadc16ced318aa26001b453b0d561c2fd0bd1e","08777cd9318d294646b121838574e1dd7acbb22c21a03df84e1f2c87b1ad47f2","08a90bcdc717df3d50a2ce178d966a8c353fd23e5c392fd3594a6e39d9bb6304",{"version":"8207e7e6db9aa5fc7e61c8f17ba74cf9c115d26f51f91ee93f790815a7ea9dfb","affectsGlobalScope":true},"2a12d2da5ac4c4979401a3f6eaafa874747a37c365e4bc18aa2b171ae134d21b","002b837927b53f3714308ecd96f72ee8a053b8aeb28213d8ec6de23ed1608b66","1dc9c847473bb47279e398b22c740c83ea37a5c88bf66629666e3cf4c5b9f99c","a9e4a5a24bf2c44de4c98274975a1a705a0abbaad04df3557c2d3cd8b1727949","00fa7ce8bc8acc560dc341bbfdf37840a8c59e6a67c9bfa3fa5f36254df35db2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"cfe724f7c694aab65a9bdd1acb05997848c504548c9d4c71645c187a091cfa2a","5f0ed51db151c2cdc4fa3bb0f44ce6066912ad001b607a34e65a96c52eb76248",{"version":"3345c276cab0e76dda86c0fb79104ff915a4580ba0f3e440870e183b1baec476","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","e383ff72aabf294913f8c346f5da1445ae6ad525836d28efd52cbadc01a361a6","f52fbf64c7e480271a9096763c4882d356b05cab05bf56a64e68a95313cd2ce2","59bdb65f28d7ce52ccfc906e9aaf422f8b8534b2d21c32a27d7819be5ad81df7","1835259a20b9fa6b1882931375b69ae5978195f2b139b4e0db51ec8319261649","b52cd693219a63dd21282ac99a7bf55f77cbe8a91f097968856419cc2e05f017","3aff9c8c36192e46a84afe7b926136d520487155154ab9ba982a8b544ea8fc95","a880cf8d85af2e4189c709b0fea613741649c0e40fffb4360ec70762563d5de0","85bbf436a15bbeda4db888be3062d47f99c66fd05d7c50f0f6473a9151b6a070","9f9c49c95ecd25e0cb2587751925976cf64fd184714cb11e213749c80cf0f927","f0c75c08a71f9212c93a719a25fb0320d53f2e50ca89a812640e08f8ad8c408c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"0b3eba6dca8c6e534d16ef7b7d76cb546cd3cbab616c8f71daa0a151b5412b9e","33c7c5147cc69b98472e52ee2d93399114fd8fb8bcfdcd4e23ad6ad862dc7445","1833b783a6ce2327137bc6e19548610b40bfe2c0ac23e51408c254a529d7fb9c","1a719edd0abb1f010bfb5ef8d926a5533021ed7837ea2ab87c3780fcc0448bce",{"version":"193124bd98f21119fdf26804fcea276f684a0ee3d32fcebd4260a3bbe3d0cba3","affectsGlobalScope":true},"007e7c8b61645862f851429909e6b06129325757c75f52ef41b24c281ddcfb74","f0063dcf66a19b8ccc5d601b76f7e746372414eb1ce0a47a39ae0043bbecbb60","1c70c3f15eb88da6c44d5b2f3d151a60bd076db0f7beb0654857cb50fa5e844a","18d4f5add28a69aae67f0c7748e5944710df4697451244e308ac61e60667ae9e","0910b15e63feac986b5c8940d60b62f4ba3edd2c29c677e1c733f7dd863350a8","41436cd5d8dfba4a428037dab82c50cca9f45f7135c8cc6f8a924c8c4fd60765","675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","fe4a2042d087990ebfc7dc0142d5aaf5a152e4baea86b45f283f103ec1e871ea","d88a479cccf787b4aa82362150fbeba5211a32dbfafa7b92ba6995ecaf9a1a89","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","c24ad9be9adf28f0927e3d9d9e9cec1c677022356f241ccbbfb97bfe8fb3d1a1","0ec0998e2d085e8ea54266f547976ae152c9dd6cdb9ac4d8a520a230f5ebae84","9364c7566b0be2f7b70ff5285eb34686f83ccb01bda529b82d23b2a844653bfb","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","ae9930989ed57478eb03b9b80ad3efa7a3eacdfeff0f78ecf7894c4963a64f93","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3e59f00ab03c33717b3130066d4debb272da90eeded4935ff0604c2bc25a5cae","6ac6f24aff52e62c3950461aa17eab26e3a156927858e6b654baef0058b4cd1e",{"version":"0714e2046df66c0e93c3330d30dbc0565b3e8cd3ee302cf99e4ede6220e5fec8","affectsGlobalScope":true},"b11c90c1fc550dcd31c018fa22eb8274d44a18e81d5e29a2780259f33d7313c2","f475f2d19e8bfd7c43121c906a95a9833fc2f13ba270fc29b780871e1ba7c359","ca73b3176a5a33b07f4f484844cf803dcf418b045eeb81495948d1d494ea67ed","2d526d2a2d6dfd1980fb6eaf7aa668c24d339e27b41cac2a72efc75abe301b35","4882ba77f05c638a4dfe6a55e2827d2aca823fc5b46bdfe475e88487f305e80c","3af78f0dbc5b2d7299e3d32f0d539188d54fc77891423f80d2c09758d17234f2","a07d8bb79d2247df0d4acb17d0d313411501fab7dedeeb152b0c8a452e2716af","a5499a2434458a72963161f1f54597dec1345f5efb1a2ceceb655c912f8758c1","4ba0adc55b5a5aca95277f1bc18df05f8003d88bc3bffacbc516a516f846375b","ddadf729e875fee7e9329acd62797ddd2161f251157c7a20edff38844a3d5312","a99c79c2b83cb10abb9250b94aaf54d501faed36d68663b00df19ad118bbeb78","0cb7224bfefb722005c3da3e66a5d3c140047552d2e5bde9ffce5d5ef14f6030","2b504697b8fc664ab7b662dbaa871e58863a9530d9ff50583ba97be4b26275ac","f2df4ef5d0889f666d69ad9a4e61909c7e003fc89fe0380b7a2c1f62a7f39258","d7376e09bc4d5ce1fee55f4498fd1a70a0d0a1f55be5c1bd14efddfe51028d8d","990e1cd2708ac6c48008693c4284329dbbc0ef4a884867df82364d4ea7505b84","3de0f18b9582dc01e511cb7c0adc0eaf1cf6aa314332847f95f38adbdb34e5b9","6488bb544140d9197361382e7f7da74e8931263ebaca9800f3d00ddb09410bbf","b7f95d605462b878edcb8a58fdee2f1fcad915f3cd628abd02f702d4accc1ce0","f1e975e7fde5fb3d4ed0259e116b8f95fdde7f685b7f9a3eda2e13139e3459fb","08cf74fdd3d2fbcd4d0579e71631b87a1e918a9f4a317ce30763e20463b5fb7f","a6f82ab806229d1ed40e5ae989ddca5881e836815567b88bb6b4f9ad33d95dc5","10073cd38b4a08e2a8558d85946fada14164cd2e1633cdc8b16b21fee61760e3","d70e6cf190d24b571c4a7a6ad049bc1190463bc6a288fa36ba72da5ad66c23fe","51b8d8c7f3e046e1ee8c25d89b480fc4e2bcc5037f8140a62a0d904e494c39f8","e1b3fca68f8f3b74e85d863f77d71a3e6d71083c543cc8770baae1bb111eec57","67e121b809c5d38bfe6aba1b6c76e8a2a7540fa98f0bac47cee73e1de1828364","e4ac388c3f3ab98b646fbbbf030799bb47ded363d5dc745494a13930e7611eb0","34ef06f1d5e0ae95afb816e93c40f04f93641c11ad06e54b6fbe9335c3238c03","626115931e833877cd0c6da046456986c2f2b01ff80894976d08d22901a5ff4f","75df673efca57a792611256e6b61597c4a5af49e81fae7ece9f4dedc4bc1f30e","198fc37cff54b9be08353b3a722de1c19fb1d8439a2209c40dfdfd436d4ebb27","441bd4492e213881e831327b61c5c6a3c8727b1a36a024ea8a70a9e092050894","9e51b7021b761b39355745574b94277b67be054b2ef4f98ce5c5520a284b97a9","be7f658e763a2b556ce01fc0e255fba3df93b4c9b52d3101b138462ca20d9576","7aba3ef16595b61f5ec0373c2019b0ebd68b01e26b3396ebb6013d25c73b08bf","d1876ebcbf00399214028175bf31405b8de0c31b668eaa8115e6ebbe90c92b1f","c27108810cd8ee0b4c7ad2869a801a62faa7e76d49b637903d7b680182629429","d5d7b68f5369a210c235cd65458369888f8b839192d088c964f21cab3ac954db","cc957354aa3c94c9961ebf46282cfde1e81d107fc5785a61f62c67f1dd3ac2eb","64b867c61effed7b5bc0cc06b3d8eac23b067a3fba581fc7d3c292fa593e6a45","93de1c6dab503f053efe8d304cb522bb3a89feab8c98f307a674a4fae04773e9","3b043cf9a81854a72963fdb57d1884fc4da1cf5be69b5e0a4c5b751e58cb6d88","80164ffebe1723a50e020a648e0623c026ff39be13c5cd45e6a82d0fcc06e2d0","400db42c3a46984118bff14260d60cec580057dc1ab4c2d7310beb643e4f5935","82169f198ffdfc787fba368ccfad2b2d8ef3712f3c696df94ac13f6884bbbe2d","cab425b5559edac18327eb2c3c0f47e7e9f71b667290b7689faafd28aac69eae","3cfb0cb51cc2c2e1b313d7c4df04dbf7e5bda0a133c6b309bf6af77cf614b971","f992cd6cc0bcbaa4e6c810468c90f2d8595f8c6c3cf050c806397d3de8585562","5343f3c160282dfbaab9af350119a0c3b59b7076ef0117bb5995a66e240dab28","c5590caef278ad8ba2532ec93e29a32ac354dfb333277348acce18512891d3b2","aca36e2d27783f4bad7fc1786a532ff76024f0fc8575df48bcd9a5eb452fe7e7","3ebae8c00411116a66fca65b08228ea0cf0b72724701f9b854442100aab55aba","8b06ac3faeacb8484d84ddb44571d8f410697f98d7bfa86c0fda60373a9f5215","7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","f5638f7c2f12a9a1a57b5c41b3c1ea7db3876c003bab68e6a57afd6bcc169af0","d8aab31ba8e618cc3eea10b0945de81cb93b7e8150a013a482332263b9305322","462bccdf75fcafc1ae8c30400c9425e1a4681db5d605d1a0edb4f990a54d8094","5923d8facbac6ecf7c84739a5c701a57af94a6f6648d6229a6c768cf28f0f8cb","7adecb2c3238794c378d336a8182d4c3dd2c4fa6fa1785e2797a3db550edea62","dc12dc0e5aa06f4e1a7692149b78f89116af823b9e1f1e4eae140cd3e0e674e6","1bfc6565b90c8771615cd8cfcf9b36efc0275e5e83ac7d9181307e96eb495161","8a8a96898906f065f296665e411f51010b51372fa260d5373bf9f64356703190",{"version":"6ff2ca51e2c9d88d6d904c481879b12ec0cad2a69b88e220859a52207444773b","affectsGlobalScope":true},"0359682c54e487c4cab2b53b2b4d35cc8dea4d9914bc6abcdb5701f8b8e745a4","209e814e8e71aec74f69686a9506dd7610b97ab59dcee9446266446f72a76d05","fbdb2f9a17acdb6de71dd363fd0d8b79b823ac8fbf2423558871ddea14333682","736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","208bb742e0f201470da121bc73847c74b62cff4172f38ae5949ae77d6c9c6b71","062bd2910098fc059ba93e347649b3e126c555f7b144033d21d3f8ef63d3e39b","9d9e658d1d5b805562749ce383ef8c67ccb796394d8734d9c138788d7dab6ee3","e91ad231af87f864b3f07cd0e39b1cf6c133988156f087c1c3ccb0a5491c9115","660fa40695c7ca19a59fd09d31d495d952eee946e445a2c455ec63f255ec3050","bf0b1297461549a0e32cd57dffb992c63d7c7134fe0f9e15d359abcc88dbd28c","b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","229b8c23448b98db8507667e46f54d20bd1e8425eaa8f3093bf9fecfbab862ec","239f0c1d83d1ca9677327198196ee2ce6827dc7b469771ab5abf7bea7fbdb674","6061aa83817c30d3a590f037b3cba22cdd809fbe697926d6511b45147928a342",{"version":"0609dda5350cd6d8c42daef710dffe3b51521ffbd00109e234f7bfb7533194e7","affectsGlobalScope":true},"f4d98f30a512c76f6de4c7ed21ccab0f544d60a612af0e0b0a65ccbe16784b7a","6ffffca02d7bdb0ee802d75b5f4de8270a0c1e1164873db8e76dc5d518dcd150","6e40a3a87126255d4c1aa4d613923b6e3c5c28273d018a8591af338232f393ab","829c6dfd3224be3b599c64ce7fa9136a3422ac7ab4569cc52469c65574facb23","f7e133b20ee2669b6c0e5d7f0cd510868c57cd64b283e68c7f598e30ce9d76d2","d9f5e2cb6bce0d05a252e991b33e051f6385299b0dd18d842fc863b59173a18e"],"options":{"declaration":true,"downlevelIteration":true,"esModuleInterop":true,"outDir":"./","strict":true},"fileIdsList":[[162,231],[162],[162,231,232,233,234,235],[162,231,233],[134,137,161,162,169,238,239,240],[124,162,169],[135,162,169],[162,246],[162,247],[162,251,255],[134,162,169],[162,180,182,183,184,185,186,187,188,189,190,191,192],[162,180,181,183,184,185,186,187,188,189,190,191,192],[162,181,182,183,184,185,186,187,188,189,190,191,192],[162,180,181,182,184,185,186,187,188,189,190,191,192],[162,180,181,182,183,185,186,187,188,189,190,191,192],[162,180,181,182,183,184,186,187,188,189,190,191,192],[162,180,181,182,183,184,185,187,188,189,190,191,192],[162,180,181,182,183,184,185,186,188,189,190,191,192],[162,180,181,182,183,184,185,186,187,189,190,191,192],[162,180,181,182,183,184,185,186,187,188,190,191,192],[162,180,181,182,183,184,185,186,187,188,189,191,192],[162,180,181,182,183,184,185,186,187,188,189,190,192],[162,180,181,182,183,184,185,186,187,188,189,190,191],[137,161,162,169,260,261],[119,162],[122,162],[123,128,162],[124,134,135,142,151,161,162],[124,125,134,142,162],[126,162],[127,128,135,143,162],[128,151,158,162],[129,131,134,142,162],[130,162],[131,132,162],[133,134,162],[134,162],[134,135,136,151,161,162],[134,135,136,151,162],[137,142,151,161,162],[134,135,137,138,142,151,158,161,162],[137,139,151,158,161,162],[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,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168],[134,140,162],[141,161,162],[131,134,142,151,162],[143,162],[144,162],[122,145,162],[146,160,162,166],[147,162],[148,162],[134,149,162],[149,150,162,164],[134,151,152,153,162],[151,153,162],[151,152,162],[154,162],[155,162],[134,156,157,162],[156,157,162],[128,142,151,158,162],[159,162],[142,160,162],[123,137,148,161,162],[128,162],[151,162,163],[162,164],[162,165],[123,128,134,136,145,151,161,162,164,166],[151,162,167],[135,137,139,142,151,161,162,169,242,264,265],[137,151,162,169],[151,162,169],[134,151,162,167,169,259],[134,137,139,142,161,162,169],[134,137,139,142,161,162,167,169],[162,276],[162,249,252],[162,249,252,253,254],[162,251],[162,250],[162,169,173],[116,117,118,162,170,171,172],[117,162,173],[117,162],[43,44,45,46,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,162],[65,162],[65,78,162],[84,85,162],[86,162],[48,67,162],[67,162],[84,162],[89,162],[76,162],[47,162],[83,84,85,162],[43,162],[45,162],[93,162],[91,162],[48,49,162],[59,162],[95,162],[48,162],[89,98,101,162],[162,192,193,194,195,206,207],[114,162],[114,162,178,192,193],[41,112,162,193,216],[41,112,144,162,193,194,195,208,209,210,211,212],[111,112,144,162],[112,162,193,213,214,215],[41,112,114,144,162,178,193,195,208,209,210,212],[112,162,193,194,210,211,212],[114,162,206],[40,114,135,162,175,176,225],[114,162,175,206],[115,162,174],[40,114,135,162,173],[41,42,110,112,162,192,194,196,203,204,217],[162,204],[162,192],[114,162,193],[42,112,162,193,201,202],[162,206],[40,42,112,162,178,192,193,194,197,198,199,203,206],[162,200],[42,114,162],[114,162,175,177,178,203,205,217,225],[114,162,224],[110,114,162,175,177,178,223],[110,112,114,162,179,192,193,194,203,205,217,219,222],[114,162,193,218],[162,223,224],[114,135,144,162,179,220,221],[162,176],[41,42,109,162],[110,162],[110,111,112,113,162],[111,162]],"referencedMap":[[233,1],[231,2],[236,3],[232,1],[234,4],[235,1],[241,5],[242,2],[179,6],[243,2],[237,2],[244,7],[245,7],[239,2],[246,2],[247,8],[248,9],[256,10],[40,2],[257,2],[238,11],[181,12],[182,13],[180,14],[183,15],[184,16],[185,17],[186,18],[187,19],[188,20],[189,21],[190,22],[191,23],[192,24],[221,2],[258,2],[259,11],[261,2],[262,25],[119,26],[120,26],[122,27],[123,28],[124,29],[125,30],[126,31],[127,32],[128,33],[129,34],[130,35],[131,36],[132,36],[133,37],[134,38],[135,39],[136,40],[121,2],[168,2],[137,41],[138,42],[139,43],[169,44],[140,45],[141,46],[142,47],[143,48],[144,49],[145,50],[146,51],[147,52],[148,53],[149,54],[150,55],[151,56],[153,57],[152,58],[154,59],[155,60],[156,61],[157,62],[158,63],[159,64],[160,65],[161,66],[162,67],[163,68],[164,69],[165,70],[166,71],[167,72],[263,2],[266,73],[264,74],[240,74],[267,2],[268,75],[269,76],[270,2],[265,2],[271,2],[272,2],[273,2],[274,77],[275,78],[276,2],[277,79],[260,74],[249,2],[253,80],[255,81],[254,80],[252,82],[116,2],[220,2],[251,83],[250,2],[196,2],[170,84],[173,85],[171,84],[172,86],[118,87],[109,88],[66,89],[79,90],[45,2],[86,91],[88,92],[87,92],[68,93],[67,2],[69,94],[89,95],[93,96],[91,96],[77,97],[76,2],[48,98],[72,2],[105,99],[101,98],[47,100],[75,2],[103,2],[80,101],[90,96],[94,102],[92,103],[106,2],[81,2],[59,100],[52,2],[51,104],[73,98],[74,98],[50,104],[82,2],[46,2],[61,2],[107,105],[57,98],[95,92],[97,106],[96,106],[43,2],[60,2],[65,2],[58,98],[56,2],[55,2],[53,107],[54,2],[102,108],[62,104],[63,104],[78,2],[49,2],[98,96],[100,102],[99,103],[85,2],[83,2],[71,2],[104,2],[108,2],[44,2],[70,2],[84,2],[64,2],[8,2],[10,2],[9,2],[2,2],[11,2],[12,2],[13,2],[14,2],[15,2],[16,2],[17,2],[18,2],[3,2],[4,2],[22,2],[19,2],[20,2],[21,2],[23,2],[24,2],[25,2],[5,2],[26,2],[27,2],[28,2],[29,2],[6,2],[30,2],[31,2],[32,2],[33,2],[7,2],[38,2],[34,2],[35,2],[36,2],[37,2],[1,2],[39,2],[117,2],[195,2],[208,109],[207,110],[209,111],[217,112],[213,113],[210,114],[211,2],[216,115],[214,116],[215,117],[212,110],[227,118],[41,2],[226,119],[228,120],[115,110],[175,121],[174,122],[176,2],[205,123],[229,124],[204,125],[218,110],[197,126],[203,127],[198,128],[200,129],[201,130],[199,128],[42,2],[202,131],[206,132],[230,133],[224,134],[223,135],[219,136],[225,137],[222,138],[177,110],[178,139],[110,140],[112,141],[111,2],[114,142],[193,143],[113,143],[194,125]],"exportedModulesMap":[[233,1],[231,2],[236,3],[232,1],[234,4],[235,1],[241,5],[242,2],[179,6],[243,2],[237,2],[244,7],[245,7],[239,2],[246,2],[247,8],[248,9],[256,10],[40,2],[257,2],[238,11],[181,12],[182,13],[180,14],[183,15],[184,16],[185,17],[186,18],[187,19],[188,20],[189,21],[190,22],[191,23],[192,24],[221,2],[258,2],[259,11],[261,2],[262,25],[119,26],[120,26],[122,27],[123,28],[124,29],[125,30],[126,31],[127,32],[128,33],[129,34],[130,35],[131,36],[132,36],[133,37],[134,38],[135,39],[136,40],[121,2],[168,2],[137,41],[138,42],[139,43],[169,44],[140,45],[141,46],[142,47],[143,48],[144,49],[145,50],[146,51],[147,52],[148,53],[149,54],[150,55],[151,56],[153,57],[152,58],[154,59],[155,60],[156,61],[157,62],[158,63],[159,64],[160,65],[161,66],[162,67],[163,68],[164,69],[165,70],[166,71],[167,72],[263,2],[266,73],[264,74],[240,74],[267,2],[268,75],[269,76],[270,2],[265,2],[271,2],[272,2],[273,2],[274,77],[275,78],[276,2],[277,79],[260,74],[249,2],[253,80],[255,81],[254,80],[252,82],[116,2],[220,2],[251,83],[250,2],[196,2],[170,84],[173,85],[171,84],[172,86],[118,87],[109,88],[66,89],[79,90],[45,2],[86,91],[88,92],[87,92],[68,93],[67,2],[69,94],[89,95],[93,96],[91,96],[77,97],[76,2],[48,98],[72,2],[105,99],[101,98],[47,100],[75,2],[103,2],[80,101],[90,96],[94,102],[92,103],[106,2],[81,2],[59,100],[52,2],[51,104],[73,98],[74,98],[50,104],[82,2],[46,2],[61,2],[107,105],[57,98],[95,92],[97,106],[96,106],[43,2],[60,2],[65,2],[58,98],[56,2],[55,2],[53,107],[54,2],[102,108],[62,104],[63,104],[78,2],[49,2],[98,96],[100,102],[99,103],[85,2],[83,2],[71,2],[104,2],[108,2],[44,2],[70,2],[84,2],[64,2],[8,2],[10,2],[9,2],[2,2],[11,2],[12,2],[13,2],[14,2],[15,2],[16,2],[17,2],[18,2],[3,2],[4,2],[22,2],[19,2],[20,2],[21,2],[23,2],[24,2],[25,2],[5,2],[26,2],[27,2],[28,2],[29,2],[6,2],[30,2],[31,2],[32,2],[33,2],[7,2],[38,2],[34,2],[35,2],[36,2],[37,2],[1,2],[39,2],[117,2],[195,2],[208,109],[207,110],[209,111],[217,112],[213,113],[210,114],[211,2],[216,115],[214,116],[215,117],[212,110],[227,118],[41,2],[226,119],[228,120],[115,110],[175,121],[174,122],[176,2],[205,123],[229,124],[204,125],[218,110],[197,126],[203,127],[198,128],[200,129],[201,130],[199,128],[42,2],[202,131],[206,132],[230,133],[224,134],[223,135],[219,136],[225,137],[222,138],[177,110],[178,139],[110,140],[112,141],[111,2],[114,142],[193,143],[113,143],[194,125]],"semanticDiagnosticsPerFile":[233,231,236,232,234,235,241,242,179,243,237,244,245,239,246,247,248,256,40,257,238,181,182,180,183,184,185,186,187,188,189,190,191,192,221,258,259,261,262,119,120,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,121,168,137,138,139,169,140,141,142,143,144,145,146,147,148,149,150,151,153,152,154,155,156,157,158,159,160,161,162,163,164,165,166,167,263,266,264,240,267,268,269,270,265,271,272,273,274,275,276,277,260,249,253,255,254,252,116,220,251,250,196,170,173,171,172,118,109,66,79,45,86,88,87,68,67,69,89,93,91,77,76,48,72,105,101,47,75,103,80,90,94,92,106,81,59,52,51,73,74,50,82,46,61,107,57,95,97,96,43,60,65,58,56,55,53,54,102,62,63,78,49,98,100,99,85,83,71,104,108,44,70,84,64,8,10,9,2,11,12,13,14,15,16,17,18,3,4,22,19,20,21,23,24,25,5,26,27,28,29,6,30,31,32,33,7,38,34,35,36,37,1,39,117,195,208,207,209,217,213,210,211,216,214,215,212,227,41,226,228,115,175,174,176,205,229,204,218,197,203,198,200,201,199,42,202,206,230,224,223,219,225,222,177,178,110,112,111,114,193,113,194]},"version":"4.5.4"}
|
package/dist/types/config.d.ts
CHANGED
|
@@ -37,7 +37,15 @@ export declare type EnvType = keyof typeof ENV_TYPES;
|
|
|
37
37
|
export declare const isKnowEnvType: (env: string) => env is "dev" | "review" | "stage" | "prod" | "local";
|
|
38
38
|
export declare type EnvVars = {
|
|
39
39
|
/**
|
|
40
|
-
* public env vars (means: they are checked in the repo)
|
|
40
|
+
* public env vars (means: they are checked in the repo).
|
|
41
|
+
*
|
|
42
|
+
* You can reuse env vars in other vars using ${OTHER_VAR}.
|
|
43
|
+
* You an reuse other public env vars, or secret env vars
|
|
44
|
+
*
|
|
45
|
+
* EXAMPLE: A_VAR: "the other var is ${OTHER_VAR}"
|
|
46
|
+
*
|
|
47
|
+
* You can reuse vars from other components in the same project using ${componentName:variableName}
|
|
48
|
+
* EXAMPLE: A_VAR: "the other var is ${api:OTHER_VAR}"
|
|
41
49
|
*/
|
|
42
50
|
public?: Record<string, any>;
|
|
43
51
|
/**
|
|
@@ -46,6 +54,8 @@ export declare type EnvVars = {
|
|
|
46
54
|
|
|
47
55
|
secret?: string[];
|
|
48
56
|
/**
|
|
57
|
+
* @deprecated, use ${componentName:variableName} instead
|
|
58
|
+
*
|
|
49
59
|
* With fromComponents you can inject env vars from other components.
|
|
50
60
|
*/
|
|
51
61
|
|
package/package.json
CHANGED
package/src/context/index.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isObject, merge } from "lodash";
|
|
1
2
|
import slugify from "slugify";
|
|
2
3
|
import { BUILD_TYPES } from "../build";
|
|
3
4
|
import { BuildConfig } from "../build/types";
|
|
@@ -11,6 +12,10 @@ import {
|
|
|
11
12
|
PackageManagerInfo,
|
|
12
13
|
} from "../types/context";
|
|
13
14
|
import { mergeWithMergingArrays } from "../utils";
|
|
15
|
+
import {
|
|
16
|
+
resolveReferences,
|
|
17
|
+
translateLegacyFromComponents,
|
|
18
|
+
} from "./resolveReferences";
|
|
14
19
|
|
|
15
20
|
const sanitizeForEnVar = (s: string) => s.replace(/-/g, "_");
|
|
16
21
|
export const getSecretVarName = (
|
|
@@ -25,8 +30,7 @@ export const getEnvironment = (
|
|
|
25
30
|
config: Config,
|
|
26
31
|
componentName: string,
|
|
27
32
|
env: string,
|
|
28
|
-
commitInfo?: CommitInfo
|
|
29
|
-
skipReferences = false // to prevent infinit loop
|
|
33
|
+
commitInfo?: CommitInfo
|
|
30
34
|
): Environment => {
|
|
31
35
|
const componentConfig = config.components[componentName];
|
|
32
36
|
if (!componentConfig) {
|
|
@@ -77,6 +81,7 @@ export const getEnvironment = (
|
|
|
77
81
|
host = "localhost:" + port;
|
|
78
82
|
url = "http://" + host;
|
|
79
83
|
predefinedVariables = {
|
|
84
|
+
ENV_SHORT: "local",
|
|
80
85
|
ROOT_URL: url,
|
|
81
86
|
PORT: port.toString(),
|
|
82
87
|
};
|
|
@@ -112,7 +117,7 @@ export const getEnvironment = (
|
|
|
112
117
|
RELEASE_NAME,
|
|
113
118
|
};
|
|
114
119
|
}
|
|
115
|
-
const
|
|
120
|
+
const publicEnvVarsRaw = mergedConfig.vars?.public ?? {};
|
|
116
121
|
const secretEnvVarKeys = mergedConfig.vars?.secret ?? [];
|
|
117
122
|
const secretEnvVars = Object.fromEntries(
|
|
118
123
|
secretEnvVarKeys.map((key) => [
|
|
@@ -120,37 +125,42 @@ export const getEnvironment = (
|
|
|
120
125
|
`$${getSecretVarName(env, componentName, key)}`,
|
|
121
126
|
])
|
|
122
127
|
);
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
const
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
])
|
|
143
|
-
),
|
|
144
|
-
};
|
|
145
|
-
}, {});
|
|
146
|
-
|
|
147
|
-
const envVars = {
|
|
128
|
+
|
|
129
|
+
// this is deprecated, we now support: $componentname:FOO
|
|
130
|
+
const legacyFromComponents = mergedConfig.vars?.fromComponents ?? {};
|
|
131
|
+
const publicEnvVarsRawWithLegasyFromComponents = merge(
|
|
132
|
+
{},
|
|
133
|
+
translateLegacyFromComponents(legacyFromComponents),
|
|
134
|
+
publicEnvVarsRaw
|
|
135
|
+
);
|
|
136
|
+
|
|
137
|
+
const publicEnvVarsRawSanitized = Object.fromEntries(
|
|
138
|
+
Object.entries(publicEnvVarsRawWithLegasyFromComponents).map(
|
|
139
|
+
([key, value]) => [
|
|
140
|
+
key,
|
|
141
|
+
isObject(value) ? JSON.stringify(value) : `${value}`,
|
|
142
|
+
]
|
|
143
|
+
)
|
|
144
|
+
);
|
|
145
|
+
|
|
146
|
+
const envVarsRaw = {
|
|
148
147
|
...predefinedVariables,
|
|
149
148
|
...secretEnvVars,
|
|
150
|
-
...
|
|
151
|
-
...publicEnvVars,
|
|
149
|
+
...publicEnvVarsRawSanitized,
|
|
152
150
|
};
|
|
153
151
|
|
|
152
|
+
const envVars = resolveReferences(
|
|
153
|
+
envVarsRaw,
|
|
154
|
+
(componentName, variableName) => {
|
|
155
|
+
const { envVars } = getEnvironment(
|
|
156
|
+
config,
|
|
157
|
+
componentName,
|
|
158
|
+
env,
|
|
159
|
+
commitInfo
|
|
160
|
+
);
|
|
161
|
+
return envVars[variableName];
|
|
162
|
+
}
|
|
163
|
+
);
|
|
154
164
|
return {
|
|
155
165
|
envType,
|
|
156
166
|
host,
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import {
|
|
2
|
+
resolveReferences,
|
|
3
|
+
translateLegacyFromComponents,
|
|
4
|
+
} from "./resolveReferences";
|
|
5
|
+
|
|
6
|
+
describe("resolveReferences", () => {
|
|
7
|
+
it("replaces occurences of ${componentName:VARIABLE_NAME}", () => {
|
|
8
|
+
const variables = {
|
|
9
|
+
a: "hello world",
|
|
10
|
+
b: "a replaced value looks like this: '${api:FOO}', nice!",
|
|
11
|
+
};
|
|
12
|
+
const otherVariables: Record<string, Record<string, string>> = {
|
|
13
|
+
api: {
|
|
14
|
+
FOO: "foo from api",
|
|
15
|
+
},
|
|
16
|
+
frontend: {
|
|
17
|
+
FOO: "foo from frontend",
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
const result = resolveReferences(
|
|
21
|
+
variables,
|
|
22
|
+
(componentName, variableName) => {
|
|
23
|
+
return otherVariables[componentName]?.[variableName];
|
|
24
|
+
}
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
expect(result).toEqual({
|
|
28
|
+
a: "hello world",
|
|
29
|
+
b: "a replaced value looks like this: 'foo from api', nice!",
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
it("replaces self references with structure ${VARIABLE_NAME}", () => {
|
|
34
|
+
const variables = {
|
|
35
|
+
FOO: "hello world",
|
|
36
|
+
BAR: "this: ${FOO}!",
|
|
37
|
+
};
|
|
38
|
+
const result = resolveReferences(variables);
|
|
39
|
+
|
|
40
|
+
expect(result).toEqual({
|
|
41
|
+
FOO: "hello world",
|
|
42
|
+
BAR: "this: hello world!",
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it("replaces self references mixed with other vars", () => {
|
|
47
|
+
const variables = {
|
|
48
|
+
FOO: "hello from ${api:FOO}",
|
|
49
|
+
BAR: "this: ${FOO}!",
|
|
50
|
+
};
|
|
51
|
+
const otherVariables: Record<string, Record<string, string>> = {
|
|
52
|
+
api: {
|
|
53
|
+
FOO: "foo from api",
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
const result = resolveReferences(
|
|
57
|
+
variables,
|
|
58
|
+
(componentName, variableName) => {
|
|
59
|
+
return otherVariables[componentName]?.[variableName];
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
expect(result).toEqual({
|
|
64
|
+
FOO: "hello from foo from api",
|
|
65
|
+
BAR: "this: hello from foo from api!",
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
it("keeps variables as is if not found (when null is returned)", () => {
|
|
70
|
+
const variables = {
|
|
71
|
+
a: "hello world",
|
|
72
|
+
b: "a not found value looks like this: '${api:FOO}'",
|
|
73
|
+
};
|
|
74
|
+
const otherVariables: Record<string, Record<string, string>> = {};
|
|
75
|
+
const result = resolveReferences(
|
|
76
|
+
variables,
|
|
77
|
+
(componentName, variableName) => {
|
|
78
|
+
return otherVariables[componentName]?.[variableName];
|
|
79
|
+
}
|
|
80
|
+
);
|
|
81
|
+
|
|
82
|
+
expect(result).toEqual({
|
|
83
|
+
a: "hello world",
|
|
84
|
+
b: "a not found value looks like this: '${api:FOO}'",
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
it("replaces mulitple levels deep", () => {
|
|
89
|
+
const variables = {
|
|
90
|
+
a: "value is ${frontend:FOO}!",
|
|
91
|
+
};
|
|
92
|
+
const otherVariables: Record<string, Record<string, string>> = {
|
|
93
|
+
api: {
|
|
94
|
+
FOO: "foo from api",
|
|
95
|
+
},
|
|
96
|
+
frontend: {
|
|
97
|
+
FOO: "hi, ${api:FOO}",
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
const result = resolveReferences(
|
|
101
|
+
variables,
|
|
102
|
+
(componentName, variableName) => {
|
|
103
|
+
return otherVariables[componentName]?.[variableName] ?? "";
|
|
104
|
+
}
|
|
105
|
+
);
|
|
106
|
+
|
|
107
|
+
expect(result).toEqual({
|
|
108
|
+
a: "value is hi, foo from api!",
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
it("prevents endless loops", () => {
|
|
113
|
+
const variables = {
|
|
114
|
+
a: "value is ${frontend:FOO}!",
|
|
115
|
+
};
|
|
116
|
+
const otherVariables: Record<string, Record<string, string>> = {
|
|
117
|
+
api: {
|
|
118
|
+
FOO: "api ${frontend:FOO}",
|
|
119
|
+
},
|
|
120
|
+
frontend: {
|
|
121
|
+
FOO: "frontend ${api:FOO}",
|
|
122
|
+
},
|
|
123
|
+
};
|
|
124
|
+
const result = resolveReferences(
|
|
125
|
+
variables,
|
|
126
|
+
(componentName, variableName) => {
|
|
127
|
+
return otherVariables[componentName]?.[variableName] ?? "";
|
|
128
|
+
}
|
|
129
|
+
);
|
|
130
|
+
|
|
131
|
+
expect(result).toEqual({
|
|
132
|
+
a: "value is frontend api ${frontend:FOO}!",
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
describe("translateLegacyFromComponents", () => {
|
|
138
|
+
it("translatetes the old `fromComponents` approach to ${componentName:variableName}", () => {
|
|
139
|
+
const fromComponents = {
|
|
140
|
+
api: {
|
|
141
|
+
API_FOO: "FOO",
|
|
142
|
+
API_BAR: "BAR",
|
|
143
|
+
},
|
|
144
|
+
www: {
|
|
145
|
+
WWW_X: "X",
|
|
146
|
+
WWW_Y: "Y",
|
|
147
|
+
},
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
const result = translateLegacyFromComponents(fromComponents);
|
|
151
|
+
expect(result).toEqual({
|
|
152
|
+
API_FOO: "${api:FOO}",
|
|
153
|
+
API_BAR: "${api:BAR}",
|
|
154
|
+
WWW_X: "${www:X}",
|
|
155
|
+
WWW_Y: "${www:Y}",
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
});
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { merge } from "lodash";
|
|
2
|
+
|
|
3
|
+
const REGEX = /\$\{(([^:]+):)?([^}]+)}/gm;
|
|
4
|
+
|
|
5
|
+
export const resolveReferences = (
|
|
6
|
+
vars: Record<string, string>,
|
|
7
|
+
getOtherVariables?: (
|
|
8
|
+
componentName: string,
|
|
9
|
+
variableName: string
|
|
10
|
+
) => string | null
|
|
11
|
+
) => {
|
|
12
|
+
const replaceSingleValue = (
|
|
13
|
+
value: string,
|
|
14
|
+
alreadyVisited: Record<string, Record<string, boolean>> = {}
|
|
15
|
+
): string => {
|
|
16
|
+
if (REGEX.test(value)) {
|
|
17
|
+
return value.replace(REGEX, (match, _, componentName, variableName) => {
|
|
18
|
+
if (alreadyVisited[componentName]?.[variableName]) {
|
|
19
|
+
return match; // prevent endless loop
|
|
20
|
+
}
|
|
21
|
+
const result = componentName
|
|
22
|
+
? getOtherVariables?.(componentName, variableName) ?? null
|
|
23
|
+
: vars[variableName]; // is self reference
|
|
24
|
+
|
|
25
|
+
const replaced =
|
|
26
|
+
result !== null && result !== undefined
|
|
27
|
+
? replaceSingleValue(
|
|
28
|
+
result,
|
|
29
|
+
merge({}, alreadyVisited, {
|
|
30
|
+
[componentName]: {
|
|
31
|
+
[variableName]: true,
|
|
32
|
+
},
|
|
33
|
+
})
|
|
34
|
+
)
|
|
35
|
+
: match;
|
|
36
|
+
|
|
37
|
+
return replaced;
|
|
38
|
+
});
|
|
39
|
+
} else {
|
|
40
|
+
return value;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
return Object.fromEntries(
|
|
45
|
+
Object.entries(vars).map(([key, value]) => {
|
|
46
|
+
return [key, replaceSingleValue(value)];
|
|
47
|
+
})
|
|
48
|
+
);
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export const translateLegacyFromComponents = (
|
|
52
|
+
fromComponents: Record<string, Record<string, string>>
|
|
53
|
+
) => {
|
|
54
|
+
return Object.fromEntries(
|
|
55
|
+
Object.entries(fromComponents).flatMap(([componentName, variables]) => {
|
|
56
|
+
return Object.entries(variables).map(([ourName, otherName]) => [
|
|
57
|
+
ourName,
|
|
58
|
+
"${" + componentName + ":" + otherName + "}",
|
|
59
|
+
]);
|
|
60
|
+
})
|
|
61
|
+
);
|
|
62
|
+
};
|
package/src/types/config.ts
CHANGED
|
@@ -47,7 +47,15 @@ export const isKnowEnvType = (env: string): env is EnvType => {
|
|
|
47
47
|
|
|
48
48
|
export type EnvVars = {
|
|
49
49
|
/**
|
|
50
|
-
* public env vars (means: they are checked in the repo)
|
|
50
|
+
* public env vars (means: they are checked in the repo).
|
|
51
|
+
*
|
|
52
|
+
* You can reuse env vars in other vars using ${OTHER_VAR}.
|
|
53
|
+
* You an reuse other public env vars, or secret env vars
|
|
54
|
+
*
|
|
55
|
+
* EXAMPLE: A_VAR: "the other var is ${OTHER_VAR}"
|
|
56
|
+
*
|
|
57
|
+
* You can reuse vars from other components in the same project using ${componentName:variableName}
|
|
58
|
+
* EXAMPLE: A_VAR: "the other var is ${api:OTHER_VAR}"
|
|
51
59
|
*/
|
|
52
60
|
public?: Record<string, any>;
|
|
53
61
|
/**
|
|
@@ -55,6 +63,8 @@ export type EnvVars = {
|
|
|
55
63
|
*/
|
|
56
64
|
secret?: string[];
|
|
57
65
|
/**
|
|
66
|
+
* @deprecated, use ${componentName:variableName} instead
|
|
67
|
+
*
|
|
58
68
|
* With fromComponents you can inject env vars from other components.
|
|
59
69
|
*/
|
|
60
70
|
fromComponents?: {
|