@comet/upgrade 1.115.0 → 1.117.0
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/bin/index.js +1 -1
- package/lib/index.js +33 -73
- package/lib/util/execute-command.util.js +3 -6
- package/lib/util/format-code.util.js +3 -6
- package/lib/util/get-latest-package-version.js +3 -9
- package/lib/util/package-json.util.js +5 -9
- package/lib/util/update-dependency-version.util.js +5 -8
- package/lib/v4/remove-clear-types-script.js +7 -13
- package/lib/v6/rename-build-runtime.js +7 -10
- package/lib/v6/rename-job-status-enum.js +7 -10
- package/lib/v6/rename-subject-entity-decorator.js +7 -10
- package/lib/v7/add-site-preview-secret.js +26 -65
- package/lib/v7/hide-graphql-field-suggestions.js +6 -9
- package/lib/v7/import-admin-theme-types.js +7 -13
- package/lib/v7/rename-date-filter-to-date-time-filter.js +7 -10
- package/lib/v7/replace-exception-interceptor-with-exception-filter.js +8 -11
- package/lib/v7/replace-gridcoldef-import.js +7 -10
- package/lib/v7/replace-roboto-with-roboto-flex.js +11 -14
- package/lib/v7/use-graphql-scalars.js +11 -14
- package/lib/v8/admin/after-install/add-dialog-content-to-edit-dialog.js +14 -17
- package/lib/v8/admin/after-install/clipboard-helpers.js +7 -10
- package/lib/v8/admin/after-install/comet-config-provider.js +66 -69
- package/lib/v8/admin/after-install/merge-admin-theme-into-admin.js +10 -13
- package/lib/v8/admin/after-install/merge-blocks-admin-into-cms-admin.js +8 -11
- package/lib/v8/admin/after-install/mui-codemods.js +9 -12
- package/lib/v8/admin/after-install/mui-data-grid-remove-error-prop.js +6 -9
- package/lib/v8/admin/after-install/mui-grid-sort-to-gql.js +6 -9
- package/lib/v8/admin/after-install/mui-x-codemods.js +4 -7
- package/lib/v8/admin/after-install/rename-menu-components-in-admin.js +7 -10
- package/lib/v8/admin/after-install/replace-mui-button-with-comet-admin-button.js +3 -6
- package/lib/v8/admin/after-install/tooltip-1-update-import.js +5 -8
- package/lib/v8/admin/after-install/tooltip-2-remove-trigger-prop.js +6 -9
- package/lib/v8/admin/after-install/update-import-of-dialog.js +5 -8
- package/lib/v8/admin/before-install/remove-admin-theme-package.js +6 -10
- package/lib/v8/admin/before-install/remove-blocks-packages-admin.js +6 -10
- package/lib/v8/admin/before-install/remove-comet-admin-react-select-dependency.js +6 -10
- package/lib/v8/admin/before-install/remove-v8-eslint-disable-comments-admin.js +4 -8
- package/lib/v8/admin/before-install/update-graphql-admin.js +6 -10
- package/lib/v8/admin/before-install/update-mui-dependencies.js +6 -10
- package/lib/v8/admin/before-install/update-mui-x-dependencies.js +6 -10
- package/lib/v8/admin/before-install/update-react-dependencies.js +6 -10
- package/lib/v8/admin/before-install/update-swc-dependencies.js +6 -10
- package/lib/v8/admin/before-install/use-mui-date-picker-in-grid.js +10 -14
- package/lib/v8/api/after-install/merge-blocks-api-into-cms-api.js +8 -11
- package/lib/v8/api/after-install/mikro-orm-base-entity-generic.js +6 -9
- package/lib/v8/api/after-install/mikro-orm-create-request-context.js +7 -10
- package/lib/v8/api/after-install/mikro-orm-custom-type.js +6 -9
- package/lib/v8/api/after-install/mikro-orm-delete-rule.js +6 -9
- package/lib/v8/api/after-install/mikro-orm-dotenv.js +5 -8
- package/lib/v8/api/after-install/mikro-orm-imports.js +6 -9
- package/lib/v8/api/after-install/mikro-orm-ormconfig.js +5 -8
- package/lib/v8/api/after-install/move-maxSrcResolution-in-comet-config.js +7 -13
- package/lib/v8/api/after-install/replace-playground-with-graphiql.js +12 -15
- package/lib/v8/api/after-install/update-dam-configuration.js +13 -16
- package/lib/v8/api/after-install/update-graphql-format-error.js +4 -7
- package/lib/v8/api/after-install/update-s3-config.js +8 -11
- package/lib/v8/api/before-install/nest-peer-dependencies.js +6 -10
- package/lib/v8/api/before-install/remove-blocks-packages-api.js +6 -10
- package/lib/v8/api/before-install/remove-passport.js +6 -10
- package/lib/v8/api/before-install/replace-nestjs-console-with-nest-commander.js +6 -10
- package/lib/v8/api/before-install/update-class-validator.js +7 -11
- package/lib/v8/api/before-install/update-kubernetes-client-node.js +6 -10
- package/lib/v8/api/before-install/update-mikro-orm-dependencies.js +6 -10
- package/lib/v8/api/before-install/update-nest-dependencies.js +6 -10
- package/lib/v8/api/before-install/update-sentry.js +9 -13
- package/lib/v8/eslint-dev-dependencies.js +22 -26
- package/lib/v8/ignore-restricted-imports-admin.js +4 -8
- package/lib/v8/prettier-dev-dependencies.js +12 -16
- package/lib/v8/remove-react-barrel-imports-admin.js +5 -8
- package/lib/v8/remove-react-barrel-imports-site.js +5 -8
- package/lib/v8/replace-node-with-v22-in-gitlab-ci-files.js +6 -43
- package/lib/v8/replace-node-with-v22-locally.js +9 -13
- package/lib/v8/site/after-install/remove-graphql-client-from-site-preview-handlers.js +7 -10
- package/lib/v8/site/before-install/update-graphql-site.js +6 -10
- package/lib/v9/admin/after-install/tooltip-replace-variant-prop.js +13 -16
- package/lib/v9/site/before-install/update-next-dependencies.js +6 -10
- package/package.json +4 -3
package/bin/index.js
CHANGED
package/lib/index.js
CHANGED
|
@@ -1,52 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
const util = __importStar(require("node:util"));
|
|
40
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
41
|
-
const fs_1 = __importDefault(require("fs"));
|
|
42
|
-
const glob_1 = require("glob");
|
|
43
|
-
const path_1 = __importDefault(require("path"));
|
|
44
|
-
const semver_1 = __importDefault(require("semver"));
|
|
45
|
-
const execute_command_util_1 = require("./util/execute-command.util");
|
|
46
|
-
const get_latest_package_version_1 = require("./util/get-latest-package-version");
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import * as util from "node:util";
|
|
4
|
+
import chalk from "chalk";
|
|
5
|
+
import { globSync } from "glob";
|
|
6
|
+
import semver from "semver";
|
|
7
|
+
import { executeCommand } from "./util/execute-command.util.js";
|
|
8
|
+
import { getLatestPackageVersion } from "./util/get-latest-package-version.js";
|
|
47
9
|
const microservices = ["api", "admin", "site"];
|
|
48
10
|
function microserviceExists(microservice) {
|
|
49
|
-
return
|
|
11
|
+
return fs.existsSync(`${microservice}/package.json`);
|
|
50
12
|
}
|
|
51
13
|
const isLocalDevelopment = !process.argv[1].includes("_npx");
|
|
52
14
|
const skipLint = process.argv.includes("--skip-lint");
|
|
@@ -62,12 +24,12 @@ async function main() {
|
|
|
62
24
|
const isUpgradeScript = targetVersionArg.endsWith(".ts");
|
|
63
25
|
const isSubfolder = targetVersionArg.includes("/");
|
|
64
26
|
if (isUpgradeScript) {
|
|
65
|
-
if (
|
|
66
|
-
const module = await import(
|
|
27
|
+
if (fs.existsSync(path.join(import.meta.dirname, targetVersionArg.replace(/\.ts$/, ".js")))) {
|
|
28
|
+
const module = await import(path.join(import.meta.dirname, targetVersionArg.replace(/\.ts$/, ".js")));
|
|
67
29
|
await runUpgradeScript({
|
|
68
30
|
name: targetVersionArg,
|
|
69
31
|
stage: "before-install",
|
|
70
|
-
script: module.default
|
|
32
|
+
script: module.default,
|
|
71
33
|
});
|
|
72
34
|
if (!skipLint)
|
|
73
35
|
await runEslintFix();
|
|
@@ -95,16 +57,16 @@ async function executeSubfolder(targetVersionArg) {
|
|
|
95
57
|
}
|
|
96
58
|
async function executeAll(targetVersionArg) {
|
|
97
59
|
if (!targetVersionArg.includes(".")) {
|
|
98
|
-
targetVersionArg = await
|
|
60
|
+
targetVersionArg = await getLatestPackageVersion("@comet/admin", semver.coerce(targetVersionArg)?.major);
|
|
99
61
|
}
|
|
100
|
-
const targetVersion =
|
|
62
|
+
const targetVersion = semver.coerce(targetVersionArg, { includePrerelease: true });
|
|
101
63
|
if (!targetVersion) {
|
|
102
64
|
console.error("Can't parse version number. Example usage: npx @comet/upgrade v4");
|
|
103
65
|
process.exit(-1);
|
|
104
66
|
}
|
|
105
67
|
const targetVersionFolder = `v${targetVersion.major}`;
|
|
106
|
-
const scriptsFolder =
|
|
107
|
-
if (!
|
|
68
|
+
const scriptsFolder = path.join(import.meta.dirname, targetVersionFolder);
|
|
69
|
+
if (!fs.existsSync(scriptsFolder)) {
|
|
108
70
|
console.error(`Can't find upgrade scripts for target version '${targetVersionFolder}'`);
|
|
109
71
|
listTargetVersions();
|
|
110
72
|
process.exit(-1);
|
|
@@ -131,7 +93,7 @@ function getCurrentVersion() {
|
|
|
131
93
|
console.error(`File 'admin/package.json' doesn't exist. Make sure to call the script in the root of your project`);
|
|
132
94
|
process.exit(-1);
|
|
133
95
|
}
|
|
134
|
-
const packageJson = JSON.parse(
|
|
96
|
+
const packageJson = JSON.parse(fs.readFileSync("admin/package.json").toString());
|
|
135
97
|
const versionRange = packageJson.dependencies?.["@comet/admin"];
|
|
136
98
|
if (versionRange === undefined) {
|
|
137
99
|
console.error(`Package '@comet/admin' isn't listed as a dependency. Is this a Comet DXP project?`);
|
|
@@ -144,10 +106,10 @@ function getCurrentVersion() {
|
|
|
144
106
|
process.exit(-1);
|
|
145
107
|
}
|
|
146
108
|
const version = versionMatches[0];
|
|
147
|
-
return
|
|
109
|
+
return semver.major(version);
|
|
148
110
|
}
|
|
149
111
|
async function updateDependencies(targetVersion, isMajorUpdate = false) {
|
|
150
|
-
await
|
|
112
|
+
await executeCommand("npm", ["install", "--no-audit", "--loglevel", "error", "--save-exact", `@comet/cli@${targetVersion.version}`]);
|
|
151
113
|
const packages = {
|
|
152
114
|
api: ["@comet/blocks-api", "@comet/cms-api"],
|
|
153
115
|
admin: [
|
|
@@ -168,7 +130,7 @@ async function updateDependencies(targetVersion, isMajorUpdate = false) {
|
|
|
168
130
|
console.warn(`File '${microservice}/package.json' doesn't exist. Skipping microservice`);
|
|
169
131
|
continue;
|
|
170
132
|
}
|
|
171
|
-
const packageJson = JSON.parse(
|
|
133
|
+
const packageJson = JSON.parse(fs.readFileSync(`${microservice}/package.json`).toString());
|
|
172
134
|
const dependencies = packages[microservice].filter((packageName) => packageJson.dependencies?.[packageName] !== undefined);
|
|
173
135
|
const devDependencies = [
|
|
174
136
|
"@comet/cli",
|
|
@@ -182,14 +144,14 @@ async function updateDependencies(targetVersion, isMajorUpdate = false) {
|
|
|
182
144
|
continue;
|
|
183
145
|
}
|
|
184
146
|
if (isMajorUpdate) {
|
|
185
|
-
if (
|
|
186
|
-
|
|
147
|
+
if (fs.existsSync(`${microservice}/node_modules`)) {
|
|
148
|
+
fs.rmSync(`${microservice}/node_modules`, { recursive: true, force: true });
|
|
187
149
|
}
|
|
188
|
-
if (
|
|
189
|
-
|
|
150
|
+
if (fs.existsSync(`${microservice}/package-lock.json`)) {
|
|
151
|
+
fs.rmSync(`${microservice}/package-lock.json`);
|
|
190
152
|
}
|
|
191
153
|
}
|
|
192
|
-
await
|
|
154
|
+
await executeCommand("npm", [
|
|
193
155
|
"install",
|
|
194
156
|
"--prefix",
|
|
195
157
|
microservice,
|
|
@@ -204,18 +166,16 @@ async function updateDependencies(targetVersion, isMajorUpdate = false) {
|
|
|
204
166
|
}
|
|
205
167
|
async function findUpgradeScripts(targetVersionFolder) {
|
|
206
168
|
const scripts = [];
|
|
207
|
-
const scriptsFolder =
|
|
208
|
-
const files =
|
|
169
|
+
const scriptsFolder = path.join(import.meta.dirname, targetVersionFolder);
|
|
170
|
+
const files = globSync("**/*.js", { cwd: scriptsFolder, nodir: true });
|
|
209
171
|
for (const relativePath of files) {
|
|
210
|
-
const module = await import(
|
|
172
|
+
const module = await import(path.join(scriptsFolder, relativePath));
|
|
211
173
|
const folders = relativePath.split("/");
|
|
212
174
|
const stage = folders.length >= 3 ? folders[1] : module.stage;
|
|
213
175
|
scripts.push({
|
|
214
176
|
name: relativePath,
|
|
215
177
|
stage: stage ?? "after-install",
|
|
216
|
-
|
|
217
|
-
// See https://www.typescriptlang.org/docs/handbook/modules/reference.html#node16-nodenext.
|
|
218
|
-
script: module.default.default,
|
|
178
|
+
script: module.default,
|
|
219
179
|
});
|
|
220
180
|
}
|
|
221
181
|
return scripts;
|
|
@@ -246,7 +206,7 @@ async function runEslintFix() {
|
|
|
246
206
|
continue;
|
|
247
207
|
}
|
|
248
208
|
try {
|
|
249
|
-
await
|
|
209
|
+
await executeCommand("npm", ["run", "--prefix", microservice, "--no-audit", "--loglevel", "error", "lint:eslint", "--", "--fix"], {
|
|
250
210
|
silent: true,
|
|
251
211
|
});
|
|
252
212
|
}
|
|
@@ -257,17 +217,17 @@ async function runEslintFix() {
|
|
|
257
217
|
}
|
|
258
218
|
function listTargetVersions() {
|
|
259
219
|
console.info("Available target versions");
|
|
260
|
-
const targetVersions =
|
|
220
|
+
const targetVersions = fs.readdirSync(import.meta.dirname).filter((entry) => entry.startsWith("v"));
|
|
261
221
|
console.info(targetVersions.map((version) => `- ${version}`).join("\n"));
|
|
262
222
|
}
|
|
263
223
|
const originalError = console.error;
|
|
264
224
|
const originalWarn = console.warn;
|
|
265
225
|
console.error = (...args) => {
|
|
266
|
-
const formattedArgs = args.map((arg) => (typeof arg === "object" ? util.inspect(arg, { depth: null, colors: true }) :
|
|
226
|
+
const formattedArgs = args.map((arg) => (typeof arg === "object" ? util.inspect(arg, { depth: null, colors: true }) : chalk.red(arg)));
|
|
267
227
|
originalError(...formattedArgs);
|
|
268
228
|
};
|
|
269
229
|
console.warn = (...args) => {
|
|
270
|
-
const formattedArgs = args.map((arg) => (typeof arg === "object" ? util.inspect(arg, { depth: null, colors: true }) :
|
|
230
|
+
const formattedArgs = args.map((arg) => (typeof arg === "object" ? util.inspect(arg, { depth: null, colors: true }) : chalk.yellow(arg)));
|
|
271
231
|
originalWarn(...formattedArgs);
|
|
272
232
|
};
|
|
273
233
|
main();
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.executeCommand = executeCommand;
|
|
4
|
-
const child_process_1 = require("child_process");
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
5
2
|
// Inspired by https://github.com/facebook/create-react-app/blob/main/packages/create-react-app/createReactApp.js#L383
|
|
6
|
-
function executeCommand(command, args = [], options) {
|
|
3
|
+
export function executeCommand(command, args = [], options) {
|
|
7
4
|
return new Promise((resolve, reject) => {
|
|
8
5
|
console.debug("Executing command: ", command, args.join(" "));
|
|
9
6
|
const stdio = options?.silent ? "ignore" : "inherit";
|
|
10
|
-
const child =
|
|
7
|
+
const child = spawn(command, args, { stdio });
|
|
11
8
|
child.on("close", (code) => {
|
|
12
9
|
if (code !== 0) {
|
|
13
10
|
reject({
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const eslint_1 = require("eslint");
|
|
5
|
-
async function formatCode(code, filePath) {
|
|
6
|
-
const eslint = new eslint_1.ESLint({ cwd: process.cwd(), fix: true });
|
|
1
|
+
import { ESLint } from "eslint";
|
|
2
|
+
export async function formatCode(code, filePath) {
|
|
3
|
+
const eslint = new ESLint({ cwd: process.cwd(), fix: true });
|
|
7
4
|
const lintResult = await eslint.lintText(code, { filePath });
|
|
8
5
|
return lintResult[0]?.output ?? lintResult[0]?.source ?? code;
|
|
9
6
|
}
|
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getLatestPackageVersion = getLatestPackageVersion;
|
|
7
|
-
const semver_1 = __importDefault(require("semver"));
|
|
8
|
-
async function getLatestPackageVersion(packageName, majorVersion) {
|
|
1
|
+
import semver from "semver";
|
|
2
|
+
export async function getLatestPackageVersion(packageName, majorVersion) {
|
|
9
3
|
const url = `https://registry.npmjs.org/${packageName}`;
|
|
10
4
|
try {
|
|
11
5
|
const response = await fetch(url);
|
|
@@ -17,7 +11,7 @@ async function getLatestPackageVersion(packageName, majorVersion) {
|
|
|
17
11
|
return packageInfo.version;
|
|
18
12
|
}
|
|
19
13
|
const versions = Object.keys(packageInfo.versions);
|
|
20
|
-
const latestForMajor = versions.filter((version) =>
|
|
14
|
+
const latestForMajor = versions.filter((version) => semver.satisfies(version, `^${majorVersion}.0.0`)).sort(semver.rcompare)[0];
|
|
21
15
|
return latestForMajor;
|
|
22
16
|
}
|
|
23
17
|
catch (error) {
|
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.PackageJson = void 0;
|
|
4
|
-
const fs_1 = require("fs");
|
|
5
|
-
class PackageJson {
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
2
|
+
export class PackageJson {
|
|
6
3
|
path;
|
|
7
4
|
json;
|
|
8
5
|
constructor(path) {
|
|
9
|
-
if (!
|
|
6
|
+
if (!existsSync(path)) {
|
|
10
7
|
throw new Error("File does not exist");
|
|
11
8
|
}
|
|
12
9
|
this.path = path;
|
|
13
|
-
this.json = JSON.parse(
|
|
10
|
+
this.json = JSON.parse(readFileSync(path, "utf-8"));
|
|
14
11
|
}
|
|
15
12
|
addDependency(name, version, dev = false) {
|
|
16
13
|
if (dev) {
|
|
@@ -41,7 +38,7 @@ class PackageJson {
|
|
|
41
38
|
return !!(this.json.dependencies?.[name] || this.json.devDependencies?.[name]);
|
|
42
39
|
}
|
|
43
40
|
save() {
|
|
44
|
-
|
|
41
|
+
writeFileSync(this.path, `${JSON.stringify(this.json, null, 4)}\n`);
|
|
45
42
|
}
|
|
46
43
|
addScript(name, script) {
|
|
47
44
|
this.json.scripts ??= {};
|
|
@@ -51,4 +48,3 @@ class PackageJson {
|
|
|
51
48
|
delete this.json.scripts?.[name];
|
|
52
49
|
}
|
|
53
50
|
}
|
|
54
|
-
exports.PackageJson = PackageJson;
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const format_code_util_1 = require("./format-code.util");
|
|
6
|
-
async function updateDependencyVersion(packageJsonPath, packageName, newVersion) {
|
|
7
|
-
const fileContent = (await (0, promises_1.readFile)(packageJsonPath)).toString();
|
|
1
|
+
import { readFile, writeFile } from "node:fs/promises";
|
|
2
|
+
import { formatCode } from "./format-code.util.js";
|
|
3
|
+
export async function updateDependencyVersion(packageJsonPath, packageName, newVersion) {
|
|
4
|
+
const fileContent = (await readFile(packageJsonPath)).toString();
|
|
8
5
|
const packageJson = JSON.parse(fileContent);
|
|
9
6
|
if (packageJson.dependencies && packageJson.dependencies[packageName]) {
|
|
10
7
|
packageJson.dependencies[packageName] = newVersion;
|
|
11
8
|
}
|
|
12
9
|
const updatedContent = JSON.stringify(packageJson, null, 4);
|
|
13
|
-
await
|
|
10
|
+
await writeFile(packageJsonPath, await formatCode(updatedContent, packageJsonPath));
|
|
14
11
|
}
|
|
@@ -1,19 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.default = removeClearTypesScript;
|
|
7
|
-
const fs_1 = __importDefault(require("fs"));
|
|
8
|
-
const prettier_1 = __importDefault(require("prettier"));
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import prettier from "prettier";
|
|
9
3
|
/**
|
|
10
4
|
* Removes unnecessary clear:types script before GraphQL code generation that interferes with block code generation.
|
|
11
5
|
*/
|
|
12
|
-
async function removeClearTypesScript() {
|
|
13
|
-
if (!
|
|
6
|
+
export default async function removeClearTypesScript() {
|
|
7
|
+
if (!fs.existsSync("site/package.json")) {
|
|
14
8
|
return;
|
|
15
9
|
}
|
|
16
|
-
const sitePackageJson = JSON.parse(
|
|
10
|
+
const sitePackageJson = JSON.parse(fs.readFileSync("site/package.json").toString());
|
|
17
11
|
if (sitePackageJson.scripts["clear:types"]) {
|
|
18
12
|
delete sitePackageJson.scripts["clear:types"];
|
|
19
13
|
}
|
|
@@ -23,6 +17,6 @@ async function removeClearTypesScript() {
|
|
|
23
17
|
if (sitePackageJson.scripts["gql:watch"]) {
|
|
24
18
|
sitePackageJson.scripts["gql:watch"] = sitePackageJson.scripts["gql:watch"].replace("npm run clear:types && ", "");
|
|
25
19
|
}
|
|
26
|
-
const prettierConfig = await
|
|
27
|
-
|
|
20
|
+
const prettierConfig = await prettier.resolveConfig(process.cwd());
|
|
21
|
+
fs.writeFileSync("site/package.json", await prettier.format(JSON.stringify(sitePackageJson), { ...prettierConfig, parser: "json" }));
|
|
28
22
|
}
|
|
@@ -1,20 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const promises_1 = require("fs/promises");
|
|
5
|
-
const glob_1 = require("glob");
|
|
6
|
-
const format_code_util_1 = require("../util/format-code.util");
|
|
1
|
+
import { readFile, writeFile } from "node:fs/promises";
|
|
2
|
+
import { glob } from "glob";
|
|
3
|
+
import { formatCode } from "../util/format-code.util.js";
|
|
7
4
|
/**
|
|
8
5
|
* Renames BuildRuntime component to JobRuntime.
|
|
9
6
|
*/
|
|
10
|
-
async function renameBuildRuntime() {
|
|
11
|
-
const files =
|
|
7
|
+
export default async function renameBuildRuntime() {
|
|
8
|
+
const files = glob.sync(["admin/src/**/*.tsx"]);
|
|
12
9
|
for (const filePath of files) {
|
|
13
|
-
let fileContent = (await
|
|
10
|
+
let fileContent = (await readFile(filePath)).toString();
|
|
14
11
|
if (!fileContent.includes("BuildRuntime")) {
|
|
15
12
|
continue;
|
|
16
13
|
}
|
|
17
14
|
fileContent = fileContent.replace(/BuildRuntime/g, "JobRuntime");
|
|
18
|
-
await
|
|
15
|
+
await writeFile(filePath, await formatCode(fileContent, filePath));
|
|
19
16
|
}
|
|
20
17
|
}
|
|
@@ -1,21 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const promises_1 = require("fs/promises");
|
|
5
|
-
const glob_1 = require("glob");
|
|
6
|
-
const format_code_util_1 = require("../util/format-code.util");
|
|
1
|
+
import { readFile, writeFile } from "node:fs/promises";
|
|
2
|
+
import { glob } from "glob";
|
|
3
|
+
import { formatCode } from "../util/format-code.util.js";
|
|
7
4
|
/**
|
|
8
5
|
* Renames JobStatus enum to KubernetesJobStatus.
|
|
9
6
|
*/
|
|
10
|
-
async function renameJobStatusEnum() {
|
|
11
|
-
const files =
|
|
7
|
+
export default async function renameJobStatusEnum() {
|
|
8
|
+
const files = glob.sync(["api/src/**/*.ts"]);
|
|
12
9
|
for (const filePath of files) {
|
|
13
|
-
let fileContent = (await
|
|
10
|
+
let fileContent = (await readFile(filePath)).toString();
|
|
14
11
|
// Some of our projects have a custom JobStatus enum, so we need to check for that.
|
|
15
12
|
if (!/import { .*JobStatus.*} from "@comet\/cms-api";/.test(fileContent)) {
|
|
16
13
|
continue;
|
|
17
14
|
}
|
|
18
15
|
fileContent = fileContent.replace(/JobStatus/g, "KubernetesJobStatus");
|
|
19
|
-
await
|
|
16
|
+
await writeFile(filePath, await formatCode(fileContent, filePath));
|
|
20
17
|
}
|
|
21
18
|
}
|
|
@@ -1,20 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const promises_1 = require("fs/promises");
|
|
5
|
-
const glob_1 = require("glob");
|
|
6
|
-
const format_code_util_1 = require("../util/format-code.util");
|
|
1
|
+
import { readFile, writeFile } from "node:fs/promises";
|
|
2
|
+
import { glob } from "glob";
|
|
3
|
+
import { formatCode } from "../util/format-code.util.js";
|
|
7
4
|
/**
|
|
8
5
|
* Renames @SubjectEntity() decorator to @AffectedEntity().
|
|
9
6
|
*/
|
|
10
|
-
async function renameSubjectEntityDecorator() {
|
|
11
|
-
const files =
|
|
7
|
+
export default async function renameSubjectEntityDecorator() {
|
|
8
|
+
const files = glob.sync(["api/src/**/*.ts"]);
|
|
12
9
|
for (const filePath of files) {
|
|
13
|
-
let fileContent = (await
|
|
10
|
+
let fileContent = (await readFile(filePath)).toString();
|
|
14
11
|
if (!fileContent.includes("SubjectEntity")) {
|
|
15
12
|
continue;
|
|
16
13
|
}
|
|
17
14
|
fileContent = fileContent.replace(/SubjectEntity/g, "AffectedEntity");
|
|
18
|
-
await
|
|
15
|
+
await writeFile(filePath, await formatCode(fileContent, filePath));
|
|
19
16
|
}
|
|
20
17
|
}
|
|
@@ -1,47 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.default = addSitePreviewSecret;
|
|
40
|
-
const crypto = __importStar(require("node:crypto"));
|
|
41
|
-
const fs_1 = __importDefault(require("fs"));
|
|
42
|
-
const ts_morph_1 = require("ts-morph");
|
|
43
|
-
const execute_command_util_1 = require("../util/execute-command.util");
|
|
44
|
-
async function addSitePreviewSecret() {
|
|
1
|
+
import * as crypto from "node:crypto";
|
|
2
|
+
import fs from "node:fs";
|
|
3
|
+
import { Project, SyntaxKind } from "ts-morph";
|
|
4
|
+
import { executeCommand } from "../util/execute-command.util.js";
|
|
5
|
+
export default async function addSitePreviewSecret() {
|
|
45
6
|
updateApiFiles1();
|
|
46
7
|
await updateApiFiles2();
|
|
47
8
|
await updateApiFiles3();
|
|
@@ -51,7 +12,7 @@ async function addSitePreviewSecret() {
|
|
|
51
12
|
await executeHelmDependencyUpdate();
|
|
52
13
|
}
|
|
53
14
|
function updateApiFiles1() {
|
|
54
|
-
const project = new
|
|
15
|
+
const project = new Project({ tsConfigFilePath: "./api/tsconfig.json" });
|
|
55
16
|
const sourceFile = project.getSourceFile("api/src/config/environment-variables.ts");
|
|
56
17
|
if (!sourceFile) {
|
|
57
18
|
console.error(" Could not file file, make sure to add SITE_PREVIEW_SECRET");
|
|
@@ -71,7 +32,7 @@ function updateApiFiles1() {
|
|
|
71
32
|
console.log(" finished");
|
|
72
33
|
}
|
|
73
34
|
async function updateApiFiles2() {
|
|
74
|
-
const project = new
|
|
35
|
+
const project = new Project({ tsConfigFilePath: "./api/tsconfig.json" });
|
|
75
36
|
const sourceFile = project.getSourceFile("api/src/config/config.ts");
|
|
76
37
|
if (!sourceFile) {
|
|
77
38
|
console.error(" Could not file file, make sure to add sitePreviewSecret: envVars.SITE_PREVIEW_SECRET");
|
|
@@ -80,8 +41,8 @@ async function updateApiFiles2() {
|
|
|
80
41
|
if (sourceFile
|
|
81
42
|
.getFunction("createConfig")
|
|
82
43
|
?.getBody()
|
|
83
|
-
?.getDescendantsOfKind(
|
|
84
|
-
.getChildrenOfKind(
|
|
44
|
+
?.getDescendantsOfKind(SyntaxKind.ReturnStatement)[0]
|
|
45
|
+
.getChildrenOfKind(SyntaxKind.ObjectLiteralExpression)[0]
|
|
85
46
|
.getProperty("sitePreviewSecret")) {
|
|
86
47
|
return;
|
|
87
48
|
}
|
|
@@ -89,14 +50,14 @@ async function updateApiFiles2() {
|
|
|
89
50
|
sourceFile
|
|
90
51
|
.getFunction("createConfig")
|
|
91
52
|
?.getBody()
|
|
92
|
-
?.getDescendantsOfKind(
|
|
93
|
-
.getChildrenOfKind(
|
|
53
|
+
?.getDescendantsOfKind(SyntaxKind.ReturnStatement)[0]
|
|
54
|
+
.getChildrenOfKind(SyntaxKind.ObjectLiteralExpression)[0]
|
|
94
55
|
.addProperty("sitePreviewSecret: envVars.SITE_PREVIEW_SECRET,");
|
|
95
56
|
sourceFile.saveSync();
|
|
96
57
|
console.log(" finished");
|
|
97
58
|
}
|
|
98
59
|
async function updateApiFiles3() {
|
|
99
|
-
const project = new
|
|
60
|
+
const project = new Project({ tsConfigFilePath: "./api/tsconfig.json" });
|
|
100
61
|
const sourceFile = project.getSourceFile("api/src/app.module.ts");
|
|
101
62
|
if (!sourceFile) {
|
|
102
63
|
console.error(" Could not file file, make sure to add sitePreviewSecret to PageTreeModule");
|
|
@@ -106,9 +67,9 @@ async function updateApiFiles3() {
|
|
|
106
67
|
.getClassOrThrow("AppModule")
|
|
107
68
|
.getMethodOrThrow("forRoot")
|
|
108
69
|
.getBody()
|
|
109
|
-
?.getDescendantsOfKind(
|
|
70
|
+
?.getDescendantsOfKind(SyntaxKind.CallExpression)
|
|
110
71
|
.find((call) => call.getText().includes("PageTreeModule.forRoot"))
|
|
111
|
-
?.getChildrenOfKind(
|
|
72
|
+
?.getChildrenOfKind(SyntaxKind.ObjectLiteralExpression)[0]
|
|
112
73
|
.getProperty("sitePreviewSecret")) {
|
|
113
74
|
return;
|
|
114
75
|
}
|
|
@@ -117,33 +78,33 @@ async function updateApiFiles3() {
|
|
|
117
78
|
.getClassOrThrow("AppModule")
|
|
118
79
|
.getMethodOrThrow("forRoot")
|
|
119
80
|
.getBody()
|
|
120
|
-
?.getDescendantsOfKind(
|
|
81
|
+
?.getDescendantsOfKind(SyntaxKind.CallExpression)
|
|
121
82
|
.find((call) => call.getText().includes("PageTreeModule.forRoot"))
|
|
122
|
-
?.getChildrenOfKind(
|
|
83
|
+
?.getChildrenOfKind(SyntaxKind.ObjectLiteralExpression)[0]
|
|
123
84
|
.addProperty("sitePreviewSecret: config.sitePreviewSecret,");
|
|
124
85
|
sourceFile.saveSync();
|
|
125
86
|
console.log(" finished");
|
|
126
87
|
}
|
|
127
88
|
function updateDotEnvFile() {
|
|
128
|
-
if (!
|
|
89
|
+
if (!fs.existsSync(".env")) {
|
|
129
90
|
console.error(" could not find file, please make sure to add SITE_PREVIEW_SECRET manually");
|
|
130
91
|
return;
|
|
131
92
|
}
|
|
132
|
-
if (
|
|
93
|
+
if (fs.readFileSync(".env").includes("SITE_PREVIEW_SECRET")) {
|
|
133
94
|
return;
|
|
134
95
|
}
|
|
135
96
|
console.log("Update .env");
|
|
136
|
-
|
|
97
|
+
fs.appendFileSync(".env", `\nSITE_PREVIEW_SECRET=${crypto.randomBytes(8).toString("hex")}\n`);
|
|
137
98
|
console.log(" finished");
|
|
138
99
|
}
|
|
139
100
|
function updateValuesTplFile() {
|
|
140
101
|
const valuesFileName = "deployment/helm/values.tpl.yaml";
|
|
141
102
|
console.log(`Update ${valuesFileName}`);
|
|
142
|
-
if (!
|
|
103
|
+
if (!fs.existsSync(valuesFileName)) {
|
|
143
104
|
console.error(" could not find file, please make sure to add SITE_PREVIEW_SECRET to api and remove authproxy-preview.");
|
|
144
105
|
return;
|
|
145
106
|
}
|
|
146
|
-
const file =
|
|
107
|
+
const file = fs.readFileSync(valuesFileName, "utf8");
|
|
147
108
|
const lines = file.split(/\n/);
|
|
148
109
|
let currentSection = "";
|
|
149
110
|
let sitePreviewLine = 0;
|
|
@@ -184,17 +145,17 @@ function updateValuesTplFile() {
|
|
|
184
145
|
console.error(" Could not find authproxy-preview. Please make sure to remove it from deployment manually.");
|
|
185
146
|
}
|
|
186
147
|
const content = lines.join("\n").replace(/oauth2-proxy-preview/g, "site");
|
|
187
|
-
|
|
148
|
+
fs.writeFileSync(valuesFileName, content);
|
|
188
149
|
console.log(" finished.");
|
|
189
150
|
}
|
|
190
151
|
function updateChart() {
|
|
191
152
|
const filename = "deployment/helm/Chart.yaml";
|
|
192
153
|
console.log(`Update ${filename}`);
|
|
193
|
-
if (!
|
|
154
|
+
if (!fs.existsSync(filename)) {
|
|
194
155
|
console.error(" could not find file, please make sure to remove authproxy-preview and execute helm dependency update.");
|
|
195
156
|
return;
|
|
196
157
|
}
|
|
197
|
-
const file =
|
|
158
|
+
const file = fs.readFileSync(filename, "utf8");
|
|
198
159
|
const lines = file.split(/\n/);
|
|
199
160
|
let startingLine = 0;
|
|
200
161
|
let isAuthproxyPreview = false;
|
|
@@ -214,10 +175,10 @@ function updateChart() {
|
|
|
214
175
|
}
|
|
215
176
|
});
|
|
216
177
|
const content = lines.join("\n").replace(/oauth2-proxy-preview/g, "site");
|
|
217
|
-
|
|
178
|
+
fs.writeFileSync(filename, content);
|
|
218
179
|
console.log(" finished.");
|
|
219
180
|
}
|
|
220
181
|
async function executeHelmDependencyUpdate() {
|
|
221
182
|
console.log('Execute "helm dependency update deployment/helm" ...');
|
|
222
|
-
await
|
|
183
|
+
await executeCommand("helm", ["dependency", "update", "deployment/helm"]);
|
|
223
184
|
}
|