@catladder/cli 0.0.0-next-e2e4f00a → 0.0.0-next-c0c5f6da
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/bundles/catenv/index.js +55 -159
- package/dist/bundles/cli/index.js +55 -159
- package/dist/pipeline/src/build/base/createAppBuildJob.js +2 -3
- package/dist/pipeline/src/build/base/createAppBuildJob.js.map +1 -1
- package/dist/pipeline/src/build/custom/testJob.js +10 -11
- package/dist/pipeline/src/build/custom/testJob.js.map +1 -1
- package/dist/pipeline/src/build/node/buildJob.js +1 -1
- package/dist/pipeline/src/build/node/buildJob.js.map +1 -1
- package/dist/pipeline/src/build/node/cache.d.ts +1 -3
- package/dist/pipeline/src/build/node/cache.js +1 -27
- package/dist/pipeline/src/build/node/cache.js.map +1 -1
- package/dist/pipeline/src/build/node/testJob.js +10 -11
- package/dist/pipeline/src/build/node/testJob.js.map +1 -1
- package/dist/pipeline/src/build/rails/build.js +0 -1
- package/dist/pipeline/src/build/rails/build.js.map +1 -1
- package/dist/pipeline/src/build/rails/test.js +7 -8
- package/dist/pipeline/src/build/rails/test.js.map +1 -1
- package/dist/pipeline/src/build/types.d.ts +0 -10
- package/dist/pipeline/src/build/types.js.map +1 -1
- package/dist/pipeline/src/context/createComponentContext.js +0 -1
- package/dist/pipeline/src/context/createComponentContext.js.map +1 -1
- package/dist/pipeline/src/context/getEnvironment.js +0 -1
- package/dist/pipeline/src/context/getEnvironment.js.map +1 -1
- package/dist/pipeline/src/context/getEnvironmentVariables.d.ts +2 -5
- package/dist/pipeline/src/context/getEnvironmentVariables.js +9 -19
- package/dist/pipeline/src/context/getEnvironmentVariables.js.map +1 -1
- package/dist/pipeline/src/context/resolveReferences.d.ts +0 -3
- package/dist/pipeline/src/context/resolveReferences.js +1 -10
- package/dist/pipeline/src/context/resolveReferences.js.map +1 -1
- package/dist/pipeline/src/deploy/base/deploy.js +3 -4
- package/dist/pipeline/src/deploy/base/deploy.js.map +1 -1
- package/dist/pipeline/src/deploy/cloudRun/index.js +2 -2
- package/dist/pipeline/src/deploy/cloudRun/index.js.map +1 -1
- package/dist/pipeline/src/deploy/kubernetes/cloudSql/index.js +3 -15
- package/dist/pipeline/src/deploy/kubernetes/cloudSql/index.js.map +1 -1
- package/dist/pipeline/src/deploy/kubernetes/deployJob.js +0 -2
- package/dist/pipeline/src/deploy/kubernetes/deployJob.js.map +1 -1
- package/dist/pipeline/src/deploy/kubernetes/index.js +2 -2
- package/dist/pipeline/src/deploy/kubernetes/index.js.map +1 -1
- package/dist/pipeline/src/deploy/kubernetes/kubeValues.d.ts +1 -2
- package/dist/pipeline/src/deploy/kubernetes/kubeValues.js +2 -3
- package/dist/pipeline/src/deploy/kubernetes/kubeValues.js.map +1 -1
- package/dist/pipeline/src/deploy/types/base.d.ts +0 -6
- package/dist/pipeline/src/deploy/types/kubernetes.d.ts +1 -34
- package/dist/pipeline/src/pipeline/gitlab/createGitlabJobs.js +2 -4
- package/dist/pipeline/src/pipeline/gitlab/createGitlabJobs.js.map +1 -1
- package/dist/pipeline/src/types/config.d.ts +0 -8
- package/dist/pipeline/src/types/context.d.ts +0 -8
- package/dist/pipeline/src/types/context.js.map +1 -1
- package/dist/pipeline/src/types/jobs.d.ts +0 -8
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/pipeline/src/deploy/kubernetes/processSecretsAsFiles.d.ts +0 -85
- package/dist/pipeline/src/deploy/kubernetes/processSecretsAsFiles.js +0 -27
- package/dist/pipeline/src/deploy/kubernetes/processSecretsAsFiles.js.map +0 -1
|
@@ -1063,7 +1063,7 @@ const constants_1 = __nccwpck_require__(2786);
|
|
|
1063
1063
|
const writeBuildInfo_1 = __nccwpck_require__(9578);
|
|
1064
1064
|
const writeDotEnv_1 = __nccwpck_require__(8052);
|
|
1065
1065
|
const createAppBuildJob = (context, { script, variables, runnerVariables, cache, ...def }) => {
|
|
1066
|
-
var _a
|
|
1066
|
+
var _a;
|
|
1067
1067
|
return (0, lodash_1.merge)({
|
|
1068
1068
|
name: constants_1.APP_BUILD_JOB_NAME,
|
|
1069
1069
|
envMode: "jobPerEnv",
|
|
@@ -1077,14 +1077,13 @@ const createAppBuildJob = (context, { script, variables, runnerVariables, cache,
|
|
|
1077
1077
|
? {
|
|
1078
1078
|
...context.environment.envVars,
|
|
1079
1079
|
...context.environment.jobOnlyVars.build.envVars,
|
|
1080
|
-
...((_a = context.build.config.extraVars) !== null && _a !== void 0 ? _a : {}),
|
|
1081
1080
|
}
|
|
1082
1081
|
: {}),
|
|
1083
1082
|
},
|
|
1084
1083
|
runnerVariables: {
|
|
1085
1084
|
...constants_1.RUNNER_BUILD_RESOURCE_VARIABLES,
|
|
1086
1085
|
...(runnerVariables !== null && runnerVariables !== void 0 ? runnerVariables : {}),
|
|
1087
|
-
...((
|
|
1086
|
+
...((_a = context.build.config.runnerVariables) !== null && _a !== void 0 ? _a : {}),
|
|
1088
1087
|
},
|
|
1089
1088
|
script: [
|
|
1090
1089
|
...(context.type === "component"
|
|
@@ -1484,7 +1483,7 @@ const RUNNER_CUSTOM_TEST_VARIABLES = {
|
|
|
1484
1483
|
KUBERNETES_MEMORY_LIMIT: "4Gi",
|
|
1485
1484
|
};
|
|
1486
1485
|
const createCustomTestJobs = (context) => {
|
|
1487
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q
|
|
1486
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
1488
1487
|
// don't run tests after release
|
|
1489
1488
|
// TODO: this will be replaced by using rules
|
|
1490
1489
|
if (context.trigger === "taggedRelease") {
|
|
@@ -1498,7 +1497,6 @@ const createCustomTestJobs = (context) => {
|
|
|
1498
1497
|
variables: {
|
|
1499
1498
|
APP_PATH: context.build.dir,
|
|
1500
1499
|
...context.environment.jobOnlyVars.build.envVars,
|
|
1501
|
-
...((_a = buildConfig.extraVars) !== null && _a !== void 0 ? _a : {}),
|
|
1502
1500
|
},
|
|
1503
1501
|
runnerVariables: RUNNER_CUSTOM_TEST_VARIABLES,
|
|
1504
1502
|
services: buildConfig.jobServices,
|
|
@@ -1511,29 +1509,29 @@ const createCustomTestJobs = (context) => {
|
|
|
1511
1509
|
? {
|
|
1512
1510
|
name: "🛡 audit",
|
|
1513
1511
|
...base,
|
|
1514
|
-
image: (
|
|
1512
|
+
image: (_b = (_a = buildConfig.audit) === null || _a === void 0 ? void 0 : _a.jobImage) !== null && _b !== void 0 ? _b : buildConfig.jobImage,
|
|
1515
1513
|
cache: undefined,
|
|
1516
|
-
script: [...(0, utils_1.ensureArray)((
|
|
1514
|
+
script: [...(0, utils_1.ensureArray)((_c = buildConfig.audit) === null || _c === void 0 ? void 0 : _c.command)],
|
|
1517
1515
|
allow_failure: true,
|
|
1518
|
-
...(0, createArtifactsConfig_1.createArtifactsConfig)(context.build.dir, (
|
|
1516
|
+
...(0, createArtifactsConfig_1.createArtifactsConfig)(context.build.dir, (_d = buildConfig.audit) === null || _d === void 0 ? void 0 : _d.artifactsReports, (_e = buildConfig.audit) === null || _e === void 0 ? void 0 : _e.artifacts),
|
|
1519
1517
|
}
|
|
1520
1518
|
: null;
|
|
1521
1519
|
const lintJob = buildConfig.lint
|
|
1522
1520
|
? {
|
|
1523
1521
|
name: "👮 lint",
|
|
1524
1522
|
...base,
|
|
1525
|
-
image: (
|
|
1526
|
-
script: [...(0, utils_1.ensureArray)((
|
|
1527
|
-
...(0, createArtifactsConfig_1.createArtifactsConfig)(context.build.dir, (
|
|
1523
|
+
image: (_g = (_f = buildConfig.lint) === null || _f === void 0 ? void 0 : _f.jobImage) !== null && _g !== void 0 ? _g : buildConfig.jobImage,
|
|
1524
|
+
script: [...(0, utils_1.ensureArray)((_h = buildConfig.lint) === null || _h === void 0 ? void 0 : _h.command)],
|
|
1525
|
+
...(0, createArtifactsConfig_1.createArtifactsConfig)(context.build.dir, (_j = buildConfig.lint) === null || _j === void 0 ? void 0 : _j.artifactsReports, (_k = buildConfig.lint) === null || _k === void 0 ? void 0 : _k.artifacts),
|
|
1528
1526
|
}
|
|
1529
1527
|
: null;
|
|
1530
1528
|
const testJob = buildConfig.test
|
|
1531
1529
|
? {
|
|
1532
1530
|
name: "🧪 test",
|
|
1533
1531
|
...base,
|
|
1534
|
-
image: (
|
|
1535
|
-
script: [...(0, utils_1.ensureArray)((
|
|
1536
|
-
...(0, createArtifactsConfig_1.createArtifactsConfig)(context.build.dir, (
|
|
1532
|
+
image: (_m = (_l = buildConfig.test) === null || _l === void 0 ? void 0 : _l.jobImage) !== null && _m !== void 0 ? _m : buildConfig.jobImage,
|
|
1533
|
+
script: [...(0, utils_1.ensureArray)((_o = buildConfig.test) === null || _o === void 0 ? void 0 : _o.command)],
|
|
1534
|
+
...(0, createArtifactsConfig_1.createArtifactsConfig)(context.build.dir, (_p = buildConfig.test) === null || _p === void 0 ? void 0 : _p.artifactsReports, (_q = buildConfig.test) === null || _q === void 0 ? void 0 : _q.artifacts),
|
|
1537
1535
|
}
|
|
1538
1536
|
: null;
|
|
1539
1537
|
return [auditJob, lintJob, testJob].filter(utils_1.notNil);
|
|
@@ -1835,7 +1833,7 @@ const createNodeBuildJobDefinition = (context) => {
|
|
|
1835
1833
|
const yarnInstall = (0, yarn_1.getYarnInstall)(context);
|
|
1836
1834
|
return (0, createBuildJobDefinition_1.createBuildJobDefinition)(context, buildConfig, {
|
|
1837
1835
|
prescript: yarnInstall,
|
|
1838
|
-
cache:
|
|
1836
|
+
cache: (0, cache_1.getNodeCache)(context),
|
|
1839
1837
|
});
|
|
1840
1838
|
};
|
|
1841
1839
|
exports.createNodeBuildJobDefinition = createNodeBuildJobDefinition;
|
|
@@ -1870,7 +1868,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
1870
1868
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
1871
1869
|
};
|
|
1872
1870
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1873
|
-
exports.
|
|
1871
|
+
exports.getNodeCache = exports.getNodeModulesCache = exports.getYarnCache = void 0;
|
|
1874
1872
|
const lodash_1 = __nccwpck_require__(3255);
|
|
1875
1873
|
const path_1 = __nccwpck_require__(1017);
|
|
1876
1874
|
const slugify_1 = __importDefault(__nccwpck_require__(4035));
|
|
@@ -1919,35 +1917,9 @@ const getNodeCache = (context, policy = "pull-push") => {
|
|
|
1919
1917
|
return [
|
|
1920
1918
|
...(0, exports.getYarnCache)(context, policy),
|
|
1921
1919
|
...(0, exports.getNodeModulesCache)(context, policy),
|
|
1922
|
-
...(context.type === "workspace" ? (0, exports.getWorkspaceDefaultCaches)(context) : []),
|
|
1923
1920
|
];
|
|
1924
1921
|
};
|
|
1925
1922
|
exports.getNodeCache = getNodeCache;
|
|
1926
|
-
const getNextCache = (context) => {
|
|
1927
|
-
const paths = context.build
|
|
1928
|
-
.getComponentDirs("direct")
|
|
1929
|
-
.map((c) => (0, path_1.join)(c, ".next/cache"));
|
|
1930
|
-
return [
|
|
1931
|
-
{
|
|
1932
|
-
pathMode: "absolute",
|
|
1933
|
-
key: "next-cache",
|
|
1934
|
-
policy: "pull-push",
|
|
1935
|
-
paths,
|
|
1936
|
-
},
|
|
1937
|
-
];
|
|
1938
|
-
};
|
|
1939
|
-
exports.getNextCache = getNextCache;
|
|
1940
|
-
const getWorkspaceDefaultCaches = (context) => {
|
|
1941
|
-
return [
|
|
1942
|
-
{
|
|
1943
|
-
// turbo repo
|
|
1944
|
-
key: "turbo",
|
|
1945
|
-
policy: "pull-push",
|
|
1946
|
-
paths: [".turbo"],
|
|
1947
|
-
},
|
|
1948
|
-
];
|
|
1949
|
-
};
|
|
1950
|
-
exports.getWorkspaceDefaultCaches = getWorkspaceDefaultCaches;
|
|
1951
1923
|
//# sourceMappingURL=cache.js.map
|
|
1952
1924
|
|
|
1953
1925
|
/***/ }),
|
|
@@ -2072,7 +2044,7 @@ const constants_1 = __nccwpck_require__(1765);
|
|
|
2072
2044
|
const yarn_1 = __nccwpck_require__(5043);
|
|
2073
2045
|
const createJobCache_1 = __nccwpck_require__(4372);
|
|
2074
2046
|
const createNodeTestJobs = (context) => {
|
|
2075
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t
|
|
2047
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
2076
2048
|
// don't run tests after release
|
|
2077
2049
|
// TODO: this will be replaced by using rules
|
|
2078
2050
|
if (context.trigger === "taggedRelease") {
|
|
@@ -2090,7 +2062,6 @@ const createNodeTestJobs = (context) => {
|
|
|
2090
2062
|
...(context.type === "component"
|
|
2091
2063
|
? {
|
|
2092
2064
|
...context.environment.jobOnlyVars.build.envVars,
|
|
2093
|
-
...((_a = context.build.config.extraVars) !== null && _a !== void 0 ? _a : {}),
|
|
2094
2065
|
}
|
|
2095
2066
|
: {}),
|
|
2096
2067
|
},
|
|
@@ -2105,48 +2076,48 @@ const createNodeTestJobs = (context) => {
|
|
|
2105
2076
|
? {
|
|
2106
2077
|
name: "🛡 audit",
|
|
2107
2078
|
...base,
|
|
2108
|
-
image: (
|
|
2079
|
+
image: (_b = (_a = buildConfig.audit) === null || _a === void 0 ? void 0 : _a.jobImage) !== null && _b !== void 0 ? _b : defaultImage,
|
|
2109
2080
|
cache: undefined, // audit does not need yarn install and no cache
|
|
2110
2081
|
script: [
|
|
2111
2082
|
`cd ${context.build.dir}`,
|
|
2112
|
-
...((
|
|
2083
|
+
...((_d = (0, utils_1.ensureArrayOrNull)((_c = buildConfig.audit) === null || _c === void 0 ? void 0 : _c.command)) !== null && _d !== void 0 ? _d : [
|
|
2113
2084
|
context.packageManagerInfo.isClassic
|
|
2114
2085
|
? "yarn audit"
|
|
2115
2086
|
: "yarn npm audit --environment production", // yarn 2
|
|
2116
2087
|
]),
|
|
2117
2088
|
],
|
|
2118
2089
|
allow_failure: true,
|
|
2119
|
-
...(0, createArtifactsConfig_1.createArtifactsConfig)(context.build.dir, (
|
|
2090
|
+
...(0, createArtifactsConfig_1.createArtifactsConfig)(context.build.dir, (_e = buildConfig.audit) === null || _e === void 0 ? void 0 : _e.artifactsReports, (_f = buildConfig.audit) === null || _f === void 0 ? void 0 : _f.artifacts),
|
|
2120
2091
|
}
|
|
2121
2092
|
: null;
|
|
2122
2093
|
const lintJob = buildConfig.lint !== false
|
|
2123
2094
|
? {
|
|
2124
2095
|
name: "👮 lint",
|
|
2125
2096
|
...base,
|
|
2126
|
-
image: (
|
|
2097
|
+
image: (_h = (_g = buildConfig.lint) === null || _g === void 0 ? void 0 : _g.jobImage) !== null && _h !== void 0 ? _h : defaultImage,
|
|
2127
2098
|
cache: (0, createJobCache_1.createJobCacheFromCacheConfigs)(context, (0, cache_1.getNodeCache)(context)),
|
|
2128
2099
|
script: [
|
|
2129
2100
|
...(0, yarn_1.ensureNodeVersion)(context),
|
|
2130
2101
|
`cd ${context.build.dir}`,
|
|
2131
2102
|
...yarnInstall,
|
|
2132
|
-
...((
|
|
2103
|
+
...((_k = (0, utils_1.ensureArrayOrNull)((_j = buildConfig.lint) === null || _j === void 0 ? void 0 : _j.command)) !== null && _k !== void 0 ? _k : ["yarn lint"]),
|
|
2133
2104
|
],
|
|
2134
|
-
...(0, createArtifactsConfig_1.createArtifactsConfig)(context.build.dir, (
|
|
2105
|
+
...(0, createArtifactsConfig_1.createArtifactsConfig)(context.build.dir, (_l = buildConfig.lint) === null || _l === void 0 ? void 0 : _l.artifactsReports, (_m = buildConfig.lint) === null || _m === void 0 ? void 0 : _m.artifacts),
|
|
2135
2106
|
}
|
|
2136
2107
|
: null;
|
|
2137
2108
|
const testJob = buildConfig.test !== false
|
|
2138
2109
|
? {
|
|
2139
2110
|
name: "🧪 test",
|
|
2140
2111
|
...base,
|
|
2141
|
-
image: (
|
|
2112
|
+
image: (_p = (_o = buildConfig.test) === null || _o === void 0 ? void 0 : _o.jobImage) !== null && _p !== void 0 ? _p : (0, runner_1.getRunnerImage)("jobs-testing-chrome"),
|
|
2142
2113
|
cache: (0, createJobCache_1.createJobCacheFromCacheConfigs)(context, (0, cache_1.getNodeCache)(context)),
|
|
2143
2114
|
script: [
|
|
2144
2115
|
...(0, yarn_1.ensureNodeVersion)(context),
|
|
2145
2116
|
`cd ${context.build.dir}`,
|
|
2146
2117
|
...yarnInstall,
|
|
2147
|
-
...((
|
|
2118
|
+
...((_r = (0, utils_1.ensureArrayOrNull)((_q = buildConfig.test) === null || _q === void 0 ? void 0 : _q.command)) !== null && _r !== void 0 ? _r : ["yarn test"]),
|
|
2148
2119
|
],
|
|
2149
|
-
...(0, createArtifactsConfig_1.createArtifactsConfig)(context.build.dir, (
|
|
2120
|
+
...(0, createArtifactsConfig_1.createArtifactsConfig)(context.build.dir, (_s = buildConfig.test) === null || _s === void 0 ? void 0 : _s.artifactsReports, (_t = buildConfig.test) === null || _t === void 0 ? void 0 : _t.artifacts),
|
|
2150
2121
|
}
|
|
2151
2122
|
: null;
|
|
2152
2123
|
return [auditJob, lintJob, testJob].filter(utils_1.notNil);
|
|
@@ -2262,7 +2233,6 @@ const createRailsBuildJobs = (context) => {
|
|
|
2262
2233
|
dockerBuild: {
|
|
2263
2234
|
variables: {
|
|
2264
2235
|
...context.environment.jobOnlyVars.build.envVars,
|
|
2265
|
-
...context.build.config.extraVars,
|
|
2266
2236
|
},
|
|
2267
2237
|
// custom script
|
|
2268
2238
|
script: [
|
|
@@ -2310,7 +2280,7 @@ exports.createRailsTestJobs = void 0;
|
|
|
2310
2280
|
const __1 = __nccwpck_require__(603);
|
|
2311
2281
|
const utils_1 = __nccwpck_require__(2497);
|
|
2312
2282
|
const createRailsTestJobs = (context) => {
|
|
2313
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q
|
|
2283
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
2314
2284
|
// don't run tests after release
|
|
2315
2285
|
// TODO: this will be replaced by using rules
|
|
2316
2286
|
if (context.trigger === "taggedRelease") {
|
|
@@ -2324,7 +2294,6 @@ const createRailsTestJobs = (context) => {
|
|
|
2324
2294
|
const base = {
|
|
2325
2295
|
variables: {
|
|
2326
2296
|
...context.environment.jobOnlyVars.build.envVars,
|
|
2327
|
-
...((_a = buildConfig.extraVars) !== null && _a !== void 0 ? _a : {}),
|
|
2328
2297
|
},
|
|
2329
2298
|
stage: "test",
|
|
2330
2299
|
needs: [],
|
|
@@ -2348,10 +2317,10 @@ const createRailsTestJobs = (context) => {
|
|
|
2348
2317
|
name: "🛡 audit",
|
|
2349
2318
|
...base,
|
|
2350
2319
|
cache: undefined, // audit does not need bundle install and no cache
|
|
2351
|
-
image: (
|
|
2320
|
+
image: (_c = (_b = (_a = buildConfig.audit) === null || _a === void 0 ? void 0 : _a.jobImage) !== null && _b !== void 0 ? _b : buildConfig.jobImage) !== null && _c !== void 0 ? _c : defaultImage,
|
|
2352
2321
|
script: [
|
|
2353
2322
|
`cd ${context.build.dir}`,
|
|
2354
|
-
...((
|
|
2323
|
+
...((_e = (0, utils_1.ensureArrayOrNull)((_d = buildConfig.audit) === null || _d === void 0 ? void 0 : _d.command)) !== null && _e !== void 0 ? _e : [
|
|
2355
2324
|
"gem install bundler-audit",
|
|
2356
2325
|
"bundle audit check",
|
|
2357
2326
|
]),
|
|
@@ -2364,11 +2333,11 @@ const createRailsTestJobs = (context) => {
|
|
|
2364
2333
|
name: "👮 lint",
|
|
2365
2334
|
...base,
|
|
2366
2335
|
cache: bundlerCache,
|
|
2367
|
-
image: (
|
|
2336
|
+
image: (_h = (_g = (_f = buildConfig.lint) === null || _f === void 0 ? void 0 : _f.jobImage) !== null && _g !== void 0 ? _g : buildConfig.jobImage) !== null && _h !== void 0 ? _h : defaultImage,
|
|
2368
2337
|
script: [
|
|
2369
2338
|
`cd ${context.build.dir}`,
|
|
2370
2339
|
...bundlerInstall,
|
|
2371
|
-
...((
|
|
2340
|
+
...((_k = (0, utils_1.ensureArrayOrNull)((_j = buildConfig.lint) === null || _j === void 0 ? void 0 : _j.command)) !== null && _k !== void 0 ? _k : [
|
|
2372
2341
|
"bundle exec rubocop",
|
|
2373
2342
|
]),
|
|
2374
2343
|
],
|
|
@@ -2379,11 +2348,11 @@ const createRailsTestJobs = (context) => {
|
|
|
2379
2348
|
name: "🧪 test",
|
|
2380
2349
|
...base,
|
|
2381
2350
|
cache: bundlerCache,
|
|
2382
|
-
image: (
|
|
2351
|
+
image: (_o = (_m = (_l = buildConfig.test) === null || _l === void 0 ? void 0 : _l.jobImage) !== null && _m !== void 0 ? _m : buildConfig.jobImage) !== null && _o !== void 0 ? _o : defaultImage,
|
|
2383
2352
|
script: [
|
|
2384
2353
|
`cd ${context.build.dir}`,
|
|
2385
2354
|
...bundlerInstall,
|
|
2386
|
-
...((
|
|
2355
|
+
...((_q = (0, utils_1.ensureArrayOrNull)((_p = buildConfig.test) === null || _p === void 0 ? void 0 : _p.command)) !== null && _q !== void 0 ? _q : [
|
|
2387
2356
|
"bundle exec rspec",
|
|
2388
2357
|
]),
|
|
2389
2358
|
],
|
|
@@ -2700,7 +2669,6 @@ const createComponentContext = async (ctx) => {
|
|
|
2700
2669
|
const context = {
|
|
2701
2670
|
type: "component",
|
|
2702
2671
|
name: ctx.componentName,
|
|
2703
|
-
componentName: ctx.componentName,
|
|
2704
2672
|
env: ctx.env,
|
|
2705
2673
|
fullConfig: ctx.config,
|
|
2706
2674
|
componentConfig,
|
|
@@ -2873,7 +2841,6 @@ const getEnvironment = async (ctx) => {
|
|
|
2873
2841
|
slugPrefix: envContext.environmentSlugPrefix,
|
|
2874
2842
|
reviewSlug: envContext.reviewSlug,
|
|
2875
2843
|
slug: envContext.environmentSlug,
|
|
2876
|
-
shortName: env,
|
|
2877
2844
|
...variables,
|
|
2878
2845
|
};
|
|
2879
2846
|
};
|
|
@@ -2933,7 +2900,6 @@ exports.getEnvironmentContext = getEnvironmentContext;
|
|
|
2933
2900
|
|
|
2934
2901
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
2935
2902
|
exports.getSecretVarNameForContext = exports.getSecretVarName = exports.getEnvironmentVariables = void 0;
|
|
2936
|
-
const lodash_1 = __nccwpck_require__(3255);
|
|
2937
2903
|
const deploy_1 = __nccwpck_require__(8483);
|
|
2938
2904
|
const BashExpression_1 = __nccwpck_require__(2376);
|
|
2939
2905
|
const types_1 = __nccwpck_require__(4466);
|
|
@@ -2951,7 +2917,7 @@ const getBasePredefinedVariables = (ctx) => {
|
|
|
2951
2917
|
};
|
|
2952
2918
|
};
|
|
2953
2919
|
const getEnvironmentVariables = async (ctx, alreadyVisited = {}) => {
|
|
2954
|
-
var _a, _b, _c, _d, _e, _f, _g
|
|
2920
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
2955
2921
|
const environmentContext = (0, getEnvironmentContext_1.getEnvironmentContext)(ctx);
|
|
2956
2922
|
const { config, env, componentName } = ctx;
|
|
2957
2923
|
const { envConfigRaw, deployConfigRaw, buildConfigRaw, envType } = environmentContext;
|
|
@@ -2968,12 +2934,8 @@ const getEnvironmentVariables = async (ctx, alreadyVisited = {}) => {
|
|
|
2968
2934
|
...basePredefinedVariables,
|
|
2969
2935
|
ENV_SHORT: "local",
|
|
2970
2936
|
ROOT_URL: url,
|
|
2971
|
-
|
|
2972
|
-
|
|
2973
|
-
buildConfigRaw.type === "rails"
|
|
2974
|
-
? {}
|
|
2975
|
-
: { HOST: host }),
|
|
2976
|
-
HOST_INTERNAL: host,
|
|
2937
|
+
HOSTNAME: host,
|
|
2938
|
+
HOSTNAME_INTERNAL: host,
|
|
2977
2939
|
ROOT_URL_INTERNAL: "http://" + host,
|
|
2978
2940
|
PORT: port.toString(),
|
|
2979
2941
|
};
|
|
@@ -2982,8 +2944,8 @@ const getEnvironmentVariables = async (ctx, alreadyVisited = {}) => {
|
|
|
2982
2944
|
const additionalEnvVars = deployConfigRaw
|
|
2983
2945
|
? deploy_1.DEPLOY_TYPES[deployConfigRaw.type].getAdditionalEnvVars(environmentContext)
|
|
2984
2946
|
: {};
|
|
2985
|
-
const
|
|
2986
|
-
host = (_c = envConfigRaw === null || envConfigRaw === void 0 ? void 0 : envConfigRaw.host) !== null && _c !== void 0 ? _c :
|
|
2947
|
+
const HOSTNAME_INTERNAL = (_b = additionalEnvVars.HOSTNAME_INTERNAL) !== null && _b !== void 0 ? _b : "unknown-host.example.com";
|
|
2948
|
+
host = (_c = envConfigRaw === null || envConfigRaw === void 0 ? void 0 : envConfigRaw.host) !== null && _c !== void 0 ? _c : HOSTNAME_INTERNAL;
|
|
2987
2949
|
url = (0, BashExpression_1.joinBashExpressions)(["https://", host]);
|
|
2988
2950
|
predefinedVariables = {
|
|
2989
2951
|
...basePredefinedVariables,
|
|
@@ -2991,12 +2953,10 @@ const getEnvironmentVariables = async (ctx, alreadyVisited = {}) => {
|
|
|
2991
2953
|
...((0, types_1.isStandaloneBuildConfig)(buildConfigRaw) &&
|
|
2992
2954
|
buildConfigRaw.type === "rails"
|
|
2993
2955
|
? {}
|
|
2994
|
-
: {
|
|
2956
|
+
: { HOSTNAME: host }),
|
|
2995
2957
|
ROOT_URL: url,
|
|
2996
|
-
|
|
2997
|
-
|
|
2998
|
-
HOST_CANONICAL: HOST_INTERNAL, // legacy alias for HOST_INTERNAL
|
|
2999
|
-
ROOT_URL_INTERNAL: (0, BashExpression_1.joinBashExpressions)(["https://", HOST_INTERNAL]),
|
|
2958
|
+
HOSTNAME_INTERNAL,
|
|
2959
|
+
ROOT_URL_INTERNAL: (0, BashExpression_1.joinBashExpressions)(["https://", HOSTNAME_INTERNAL]),
|
|
3000
2960
|
...additionalEnvVars,
|
|
3001
2961
|
};
|
|
3002
2962
|
}
|
|
@@ -3009,10 +2969,7 @@ const getEnvironmentVariables = async (ctx, alreadyVisited = {}) => {
|
|
|
3009
2969
|
...additionalSecretKeys,
|
|
3010
2970
|
];
|
|
3011
2971
|
const secretEnvVars = (0, envVars_1.makeSecretEnvVarMapping)(env, componentName, secretEnvVarKeys);
|
|
3012
|
-
|
|
3013
|
-
const legacyFromComponents = (_j = (_h = envConfigRaw.vars) === null || _h === void 0 ? void 0 : _h.fromComponents) !== null && _j !== void 0 ? _j : {};
|
|
3014
|
-
const publicEnvVarsRawWithLegacyFromComponents = (0, lodash_1.merge)({}, (0, resolveReferences_1.translateLegacyFromComponents)(legacyFromComponents), publicEnvVarsRaw);
|
|
3015
|
-
const publicEnvVarsRawSanitized = (0, envVars_1.stringifyValues)(publicEnvVarsRawWithLegacyFromComponents);
|
|
2972
|
+
const publicEnvVarsRawSanitized = (0, envVars_1.stringifyValues)(publicEnvVarsRaw);
|
|
3016
2973
|
const envVarsRaw = addIndexVar({
|
|
3017
2974
|
...predefinedVariables,
|
|
3018
2975
|
...secretEnvVars,
|
|
@@ -3151,7 +3108,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3151
3108
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
3152
3109
|
};
|
|
3153
3110
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
3154
|
-
exports.
|
|
3111
|
+
exports.resolveReferences = void 0;
|
|
3155
3112
|
const lodash_1 = __nccwpck_require__(3255);
|
|
3156
3113
|
const replaceAsync_1 = __importDefault(__nccwpck_require__(2233));
|
|
3157
3114
|
// regex to resolve references in catladder variables
|
|
@@ -3201,15 +3158,6 @@ const resolveReferences = async (vars, getOtherVariables, alreadyVisitedBase = {
|
|
|
3201
3158
|
})));
|
|
3202
3159
|
};
|
|
3203
3160
|
exports.resolveReferences = resolveReferences;
|
|
3204
|
-
const translateLegacyFromComponents = (fromComponents) => {
|
|
3205
|
-
return Object.fromEntries(Object.entries(fromComponents).flatMap(([componentName, variables]) => {
|
|
3206
|
-
return Object.entries(variables).map(([ourName, otherName]) => [
|
|
3207
|
-
ourName,
|
|
3208
|
-
"${" + componentName + ":" + otherName + "}",
|
|
3209
|
-
]);
|
|
3210
|
-
}));
|
|
3211
|
-
};
|
|
3212
|
-
exports.translateLegacyFromComponents = translateLegacyFromComponents;
|
|
3213
3161
|
//# sourceMappingURL=resolveReferences.js.map
|
|
3214
3162
|
|
|
3215
3163
|
/***/ }),
|
|
@@ -3315,7 +3263,7 @@ const stop_1 = __nccwpck_require__(2846);
|
|
|
3315
3263
|
const variables_1 = __nccwpck_require__(2422);
|
|
3316
3264
|
exports.DEPLOY_JOB_NAME = "🚀 Deploy";
|
|
3317
3265
|
const createDeployJob = (context, jobDefinition) => {
|
|
3318
|
-
var _a, _b, _c, _d, _e, _f
|
|
3266
|
+
var _a, _b, _c, _d, _e, _f;
|
|
3319
3267
|
const hasDocker = (0, docker_1.requiresDockerBuild)(context);
|
|
3320
3268
|
const isStoppable = (0, utils_1.contextIsStoppable)(context);
|
|
3321
3269
|
const autoStop = context.environment.envType === "review"
|
|
@@ -3394,13 +3342,12 @@ const createDeployJob = (context, jobDefinition) => {
|
|
|
3394
3342
|
...context.environment.envVars,
|
|
3395
3343
|
...(hasDocker ? (0, docker_1.getDockerImageVariables)(context) : {}),
|
|
3396
3344
|
...context.environment.jobOnlyVars.deploy.envVars,
|
|
3397
|
-
...(deployConfig ? (_e = deployConfig.extraVars) !== null && _e !== void 0 ? _e : {} : {}),
|
|
3398
3345
|
...jobDefinition.variables,
|
|
3399
3346
|
},
|
|
3400
3347
|
runnerVariables: {
|
|
3401
3348
|
...variables_1.DEPLOY_RUNNER_VARIABLES,
|
|
3402
|
-
...((
|
|
3403
|
-
...(deployConfig ? (
|
|
3349
|
+
...((_e = jobDefinition.runnerVariables) !== null && _e !== void 0 ? _e : {}),
|
|
3350
|
+
...(deployConfig ? (_f = deployConfig.runnerVariables) !== null && _f !== void 0 ? _f : {} : {}),
|
|
3404
3351
|
},
|
|
3405
3352
|
environment: isStoppable
|
|
3406
3353
|
? {
|
|
@@ -4249,7 +4196,7 @@ exports.GCLOUD_RUN_DEPLOY_TYPE = {
|
|
|
4249
4196
|
],
|
|
4250
4197
|
getAdditionalEnvVars: (ctx) => {
|
|
4251
4198
|
const { fullName, env, componentName, deployConfigRaw } = ctx;
|
|
4252
|
-
const
|
|
4199
|
+
const HOSTNAME_INTERNAL = (0, BashExpression_1.joinBashExpressions)([
|
|
4253
4200
|
fullName,
|
|
4254
4201
|
(0, BashExpression_1.getBashVariable)((0, context_1.getSecretVarName)(env, componentName, exports.GCLOUD_RUN_CANONICAL_HOST_SUFFIX)),
|
|
4255
4202
|
], "-").toLowerCase();
|
|
@@ -4260,7 +4207,7 @@ exports.GCLOUD_RUN_DEPLOY_TYPE = {
|
|
|
4260
4207
|
]))
|
|
4261
4208
|
: {};
|
|
4262
4209
|
return {
|
|
4263
|
-
|
|
4210
|
+
HOSTNAME_INTERNAL,
|
|
4264
4211
|
...getCloudSqlVariables(ctx),
|
|
4265
4212
|
...jobTriggers,
|
|
4266
4213
|
DEPLOY_CLOUD_RUN_PROJECT_ID: deployConfigRaw
|
|
@@ -4672,7 +4619,7 @@ const hasKubernetesCloudSQL = (context) => {
|
|
|
4672
4619
|
};
|
|
4673
4620
|
exports.hasKubernetesCloudSQL = hasKubernetesCloudSQL;
|
|
4674
4621
|
const createKubernetesCloudsqlBaseValues = (context) => {
|
|
4675
|
-
var _a, _b, _c
|
|
4622
|
+
var _a, _b, _c;
|
|
4676
4623
|
const deployConfig = (_a = context.deploy) === null || _a === void 0 ? void 0 : _a.config;
|
|
4677
4624
|
if (!(0, types_1.isOfDeployType)(deployConfig, "kubernetes")) {
|
|
4678
4625
|
throw new Error("cannot get cloud sql config");
|
|
@@ -4682,23 +4629,11 @@ const createKubernetesCloudsqlBaseValues = (context) => {
|
|
|
4682
4629
|
throw new Error("cannot get cloud sql config");
|
|
4683
4630
|
}
|
|
4684
4631
|
const proxyCredentials = `$${(0, context_1.getSecretVarNameForContext)(context, "cloudsqlProxyCredentials")}`;
|
|
4685
|
-
if (
|
|
4686
|
-
const instanceConnectionName = `${(_c = config.projectId) !== null && _c !== void 0 ? _c : "skynet-164509"}:${(_d = config.region) !== null && _d !== void 0 ? _d : "europe-west6"}:${(_e = config.instanceId) !== null && _e !== void 0 ? _e : context.environment.envVars.KUBE_NAMESPACE}`;
|
|
4687
|
-
return {
|
|
4688
|
-
cloudsql: {
|
|
4689
|
-
enabled: config.enabled,
|
|
4690
|
-
dbUser: "postgres",
|
|
4691
|
-
instanceConnectionName,
|
|
4692
|
-
proxyCredentials,
|
|
4693
|
-
fullDbName: (_f = context.environment.envVars.KUBE_APP_NAME) !== null && _f !== void 0 ? _f : "",
|
|
4694
|
-
},
|
|
4695
|
-
};
|
|
4696
|
-
}
|
|
4697
|
-
else if (config.type === "unmanaged") {
|
|
4632
|
+
if (config.type === "unmanaged") {
|
|
4698
4633
|
return {
|
|
4699
4634
|
cloudsql: {
|
|
4700
4635
|
enabled: config.enabled,
|
|
4701
|
-
dbUser: (
|
|
4636
|
+
dbUser: (_c = config.dbUser) !== null && _c !== void 0 ? _c : "postgres",
|
|
4702
4637
|
instanceConnectionName: config.instanceConnectionName,
|
|
4703
4638
|
proxyCredentials,
|
|
4704
4639
|
fullDbName: (0, utils_1.getFullDbName)(config, context.fullConfig, context.environment.slugPrefix, context.name),
|
|
@@ -4760,8 +4695,6 @@ const createKubernetesDeployJobs = (context) => {
|
|
|
4760
4695
|
...((_c = deployConfig.additionalHelmArgs) !== null && _c !== void 0 ? _c : []),
|
|
4761
4696
|
].join(" "),
|
|
4762
4697
|
COMPONENT_NAME: context.name,
|
|
4763
|
-
/** @deprecated */
|
|
4764
|
-
BUILD_ID: context.environment.envVars.BUILD_INFO_BUILD_ID,
|
|
4765
4698
|
},
|
|
4766
4699
|
};
|
|
4767
4700
|
const clusterName = `kube-${context.environment.fullName}`;
|
|
@@ -4845,7 +4778,7 @@ exports.KUBERNETES_DEPLOY_TYPE = {
|
|
|
4845
4778
|
const domainCanonical = (deployConfigRaw && ((_a = deployConfigRaw.cluster) === null || _a === void 0 ? void 0 : _a.domainCanonical)) || // for convenience, we allow clusters to define a canonical domain, because a cluster has a fixed ip and you will usually have a domain pointing to that cluster
|
|
4846
4779
|
fullConfig.domainCanonical ||
|
|
4847
4780
|
"panter.cloud";
|
|
4848
|
-
const
|
|
4781
|
+
const HOSTNAME_INTERNAL = (0, BashExpression_1.joinBashExpressions)([
|
|
4849
4782
|
componentSlug,
|
|
4850
4783
|
...(envType === "review" && reviewSlug ? [reviewSlug] : []),
|
|
4851
4784
|
env,
|
|
@@ -4857,7 +4790,7 @@ exports.KUBERNETES_DEPLOY_TYPE = {
|
|
|
4857
4790
|
KUBE_NAMESPACE,
|
|
4858
4791
|
KUBE_APP_NAME,
|
|
4859
4792
|
KUBE_APP_NAME_PREFIX,
|
|
4860
|
-
|
|
4793
|
+
HOSTNAME_INTERNAL,
|
|
4861
4794
|
};
|
|
4862
4795
|
},
|
|
4863
4796
|
};
|
|
@@ -4930,7 +4863,6 @@ const types_1 = __nccwpck_require__(5781);
|
|
|
4930
4863
|
const cloudSql_1 = __nccwpck_require__(5129);
|
|
4931
4864
|
const kubeEnv_1 = __nccwpck_require__(6769);
|
|
4932
4865
|
const mongodb_1 = __nccwpck_require__(4139);
|
|
4933
|
-
const processSecretsAsFiles_1 = __nccwpck_require__(6089);
|
|
4934
4866
|
const createAppConfig = (context, application) => {
|
|
4935
4867
|
if (application === false) {
|
|
4936
4868
|
return {
|
|
@@ -4987,11 +4919,11 @@ const createKubeValues = (context) => {
|
|
|
4987
4919
|
: {}, ((_c = (_b = deployConfig.values) === null || _b === void 0 ? void 0 : _b.mongodb) === null || _c === void 0 ? void 0 : _c.enabled)
|
|
4988
4920
|
? (0, mongodb_1.createMongodbBaseConfig)(context)
|
|
4989
4921
|
: {});
|
|
4990
|
-
const kubeValues = (0,
|
|
4922
|
+
const kubeValues = (0, utils_1.mergeWithMergingArrays)(defaultKubeValues, {
|
|
4991
4923
|
jobs: removeFalsy(jobs),
|
|
4992
4924
|
cronjobs: removeFalsy(cronjobs),
|
|
4993
4925
|
...rest,
|
|
4994
|
-
})
|
|
4926
|
+
});
|
|
4995
4927
|
return kubeValues;
|
|
4996
4928
|
};
|
|
4997
4929
|
exports.createKubeValues = createKubeValues;
|
|
@@ -5110,40 +5042,6 @@ exports.createMongodbBaseConfig = createMongodbBaseConfig;
|
|
|
5110
5042
|
|
|
5111
5043
|
/***/ }),
|
|
5112
5044
|
|
|
5113
|
-
/***/ 6089:
|
|
5114
|
-
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
|
5115
|
-
|
|
5116
|
-
"use strict";
|
|
5117
|
-
|
|
5118
|
-
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
5119
|
-
exports.processSecretsAsFiles = void 0;
|
|
5120
|
-
const lodash_1 = __nccwpck_require__(3255);
|
|
5121
|
-
const processSecretsAsFiles = (values) => {
|
|
5122
|
-
if (!values.secretsAsFile || values.secretsAsFile.length === 0) {
|
|
5123
|
-
return values;
|
|
5124
|
-
}
|
|
5125
|
-
// the initial idea was that we "shadow" secrets that we mount as files,
|
|
5126
|
-
// but there is a weird kubernetes issue with that (https://github.com/kubernetes/kubernetes/issues/46861),
|
|
5127
|
-
// so instead we rename the secrets and append _content, so that inside kuberentes, we can use the original name to contain the path and name+_content as the actual content
|
|
5128
|
-
return {
|
|
5129
|
-
...values,
|
|
5130
|
-
env: {
|
|
5131
|
-
...values.env,
|
|
5132
|
-
secret: {
|
|
5133
|
-
...(0, lodash_1.omit)(values.env.secret, values.secretsAsFile),
|
|
5134
|
-
...Object.fromEntries(values.secretsAsFile.map((key) => [
|
|
5135
|
-
key + "_content",
|
|
5136
|
-
values.env.secret[key],
|
|
5137
|
-
])),
|
|
5138
|
-
},
|
|
5139
|
-
},
|
|
5140
|
-
};
|
|
5141
|
-
};
|
|
5142
|
-
exports.processSecretsAsFiles = processSecretsAsFiles;
|
|
5143
|
-
//# sourceMappingURL=processSecretsAsFiles.js.map
|
|
5144
|
-
|
|
5145
|
-
/***/ }),
|
|
5146
|
-
|
|
5147
5045
|
/***/ 4986:
|
|
5148
5046
|
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
|
|
5149
5047
|
|
|
@@ -5720,7 +5618,7 @@ const getFullReferencedJobNameFromWorkspace = (referencedJobName, workspaceName,
|
|
|
5720
5618
|
const getJobName = (need) => (0, lodash_1.isObject)(need) ? need.job : need;
|
|
5721
5619
|
const makeGitlabJob = (context, job, allJobs, baseRules) => {
|
|
5722
5620
|
var _a, _b;
|
|
5723
|
-
const { environment, envMode, needsStages,
|
|
5621
|
+
const { environment, envMode, needsStages, name, needs, jobTags, script, variables, runnerVariables, when, ...rest } = job;
|
|
5724
5622
|
const stage = envMode === "stagePerEnv" ? `${job.stage} ${context.env}` : job.stage;
|
|
5725
5623
|
const deduplicatedGitlabNeeds = getGitlabNeeds(context, job, allJobs);
|
|
5726
5624
|
const fullJobName = getFullJobName({
|
|
@@ -5844,7 +5742,7 @@ function deduplicateNeeds(needs) {
|
|
|
5844
5742
|
? [...new Map(needs.map((n) => [(0, lodash_1.isObject)(n) ? n.job : n, n])).values()]
|
|
5845
5743
|
: undefined;
|
|
5846
5744
|
}
|
|
5847
|
-
function getGitlabNeedsForComponentJob(context, { needsStages, needs
|
|
5745
|
+
function getGitlabNeedsForComponentJob(context, { needsStages, needs }, allJobs) {
|
|
5848
5746
|
const needsFromStages = needsStages === null || needsStages === void 0 ? void 0 : needsStages.flatMap((n) => {
|
|
5849
5747
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
5850
5748
|
const componentName = context.name;
|
|
@@ -5878,8 +5776,6 @@ function getGitlabNeedsForComponentJob(context, { needsStages, needs, needsOther
|
|
|
5878
5776
|
const cleanedNeeds = [
|
|
5879
5777
|
...(needsFromStages !== null && needsFromStages !== void 0 ? needsFromStages : []),
|
|
5880
5778
|
...(needs !== null && needs !== void 0 ? needs : []),
|
|
5881
|
-
// pull in legacy needs from other component, which is now identical to needs
|
|
5882
|
-
...(needsOtherComponent !== null && needsOtherComponent !== void 0 ? needsOtherComponent : []),
|
|
5883
5779
|
];
|
|
5884
5780
|
return cleanedNeeds === null || cleanedNeeds === void 0 ? void 0 : cleanedNeeds.map((n) => {
|
|
5885
5781
|
var _a;
|