@payfit/nx-core 5.13.4-ephemeral-migration-scripts.0 → 5.13.4
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/src/executors/publisher/frontend.js +0 -3
- package/dist/src/executors/publisher/frontend.js.map +1 -1
- package/dist/src/scripts/version-actions-frontend.d.ts +7 -0
- package/dist/src/scripts/version-actions-frontend.js +42 -0
- package/dist/src/scripts/version-actions-frontend.js.map +1 -0
- package/package.json +3 -1
- package/dist/src/utils/frontend/update-version.d.ts +0 -3
- package/dist/src/utils/frontend/update-version.js +0 -70
- package/dist/src/utils/frontend/update-version.js.map +0 -1
|
@@ -10,7 +10,6 @@ const enums_1 = require("../../utils/common/enums");
|
|
|
10
10
|
const logger_1 = require("../../utils/common/logger");
|
|
11
11
|
const oci_1 = require("../../utils/common/oci");
|
|
12
12
|
const s3_1 = require("../../utils/frontend/s3");
|
|
13
|
-
const update_version_1 = require("../../utils/frontend/update-version");
|
|
14
13
|
async function publishFrontend(options, context, version, projectRoot, projectDist, isDryRun) {
|
|
15
14
|
const frontendArtifactsBucketName = options.frontendArtifactsBucketName;
|
|
16
15
|
const frontendFilesWithoutCache = options.frontendFilesWithoutCache || [];
|
|
@@ -29,8 +28,6 @@ async function publishFrontend(options, context, version, projectRoot, projectDi
|
|
|
29
28
|
return;
|
|
30
29
|
}
|
|
31
30
|
projectTree.delete(relativeProjectDist + '/package.json');
|
|
32
|
-
await (0, update_version_1.updateNeedleInFilesWithVersions)(relativeProjectDist, projectTree, version);
|
|
33
|
-
await (0, update_version_1.applyTreeChanges)(projectTree, isDryRun);
|
|
34
31
|
if (isDryRun) {
|
|
35
32
|
logger_1.consola.box(`Would have published generated files located at ${projectDist} to S3 bucket ${frontendArtifactsBucketName}/${version} with version ${version} but --dry-run is enabled`);
|
|
36
33
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontend.js","sourceRoot":"","sources":["../../../../src/executors/publisher/frontend.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"frontend.js","sourceRoot":"","sources":["../../../../src/executors/publisher/frontend.ts"],"names":[],"mappings":";;AAaA,0CAmEC;AAhFD,+BAAqC;AAErC,uCAA2D;AAC3D,iDAA+C;AAE/C,0DAAsE;AACtE,gDAA0D;AAC1D,oDAAuD;AACvD,sDAAmD;AACnD,gDAAuD;AACvD,gDAAkD;AAG3C,KAAK,UAAU,eAAe,CACnC,OAAiC,EACjC,OAAwB,EACxB,OAAe,EACf,WAAmB,EACnB,WAAmB,EACnB,QAAiB;IAEjB,MAAM,2BAA2B,GAAG,OAAO,CAAC,2BAA2B,CAAA;IACvE,MAAM,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,IAAI,EAAE,CAAA;IACzE,MAAM,2BAA2B,GAAG,OAAO,CAAC,2BAA2B,IAAI,EAAE,CAAA;IAC7E,MAAM,WAAW,GAAG,IAAI,aAAM,CAAC,sBAAa,EAAE,KAAK,CAAC,CAAA;IACpD,MAAM,YAAY,GAAG,QAAQ,2BAA2B,IAAI,OAAO,EAAE,CAAA;IACrE,mHAAmH;IACnH,MAAM,mBAAmB,GAAG,IAAA,eAAQ,EAAC,sBAAa,EAAE,WAAW,CAAC,CAAA;IAChE,mHAAmH;IACnH,MAAM,mBAAmB,GAAG,IAAA,WAAI,EAAC,sBAAa,EAAE,WAAW,CAAC,CAAA;IAC5D,MAAM,aAAa,GAAG,OAAO,CAAC,qBAAqB,IAAI,OAAO,CAAC,WAAW,CAAA;IAE1E,iDAAiD;IACjD,MAAM,iBAAiB,GAAG,CAAC,GAAG,yBAAyB,EAAE,cAAc,CAAC,CAAA;IAExE,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACjC,gBAAO,CAAC,IAAI,CACV,yCAAyC,OAAO,CAAC,WAAW,sBAAsB,CACnF,CAAA;QACD,OAAM;IACR,CAAC;IAED,WAAW,CAAC,MAAM,CAAC,mBAAmB,GAAG,eAAe,CAAC,CAAA;IAEzD,IAAI,QAAQ,EAAE,CAAC;QACb,gBAAO,CAAC,GAAG,CACT,mDAAmD,WAAW,iBAAiB,2BAA2B,IAAI,OAAO,iBAAiB,OAAO,2BAA2B,CACzK,CAAA;QACD,OAAM;IACR,CAAC;IAED,MAAM,IAAA,uBAAY,GAAE,CAAA;IAEpB,gBAAO,CAAC,GAAG,CACT,2CAA2C,2BAA2B,IAAI,OAAO,iBAAiB,OAAO,EAAE,CAC5G,CAAA;IAED,gBAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC1C,MAAM,IAAA,aAAQ,EACZ,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,2BAA2B,EAC3B,mCAAmC,CACpC,CAAA;IACD,gBAAO,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAA;IACtD,MAAM,eAAe,GAAG,IAAA,WAAI,EAAC,mBAAmB,EAAE,cAAc,CAAC,CAAA;IACjE,gBAAO,CAAC,GAAG,CACT,8BAA8B,IAAA,uBAAiB,GAAE,IAAI,aAAa,IAAI,OAAO,EAAE,CAChF,CAAA;IACD,MAAM,IAAA,qBAAU,EAAC,IAAA,uBAAiB,GAAE,CAAC,CAAA;IACrC,MAAM,IAAA,oBAAc,EAClB,aAAa,EACb,OAAO,EACP,eAAe,EACf,oBAAY,CAAC,QAAQ,EACrB,IAAA,uBAAiB,GAAE,EACnB,YAAY,CACb,CAAA;IACD,gBAAO,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAA;AAC5D,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Tree } from '@nx/devkit';
|
|
2
|
+
import customVersionAction = require('./version-actions');
|
|
3
|
+
declare class VersionActionsFrontend extends customVersionAction {
|
|
4
|
+
findFiles(tree: Tree, startDir: string, patterns: string | string[], results?: string[]): string[];
|
|
5
|
+
updateProjectVersion(tree: Tree, newVersion: string): Promise<string[]>;
|
|
6
|
+
}
|
|
7
|
+
export = VersionActionsFrontend;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const path_1 = require("path");
|
|
3
|
+
const minimatch_1 = require("minimatch");
|
|
4
|
+
const customVersionAction = require("./version-actions");
|
|
5
|
+
class VersionActionsFrontend extends customVersionAction {
|
|
6
|
+
findFiles(tree, startDir, patterns, results = []) {
|
|
7
|
+
const globs = Array.isArray(patterns) ? patterns : [patterns];
|
|
8
|
+
if (!tree.exists(startDir)) {
|
|
9
|
+
return results;
|
|
10
|
+
}
|
|
11
|
+
for (const child of tree.children(startDir)) {
|
|
12
|
+
const fullPath = `${startDir}/${child}`;
|
|
13
|
+
if (tree.isFile(fullPath)) {
|
|
14
|
+
if (globs.some(p => (0, minimatch_1.minimatch)(fullPath, p, { matchBase: true }))) {
|
|
15
|
+
results.push(fullPath);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
this.findFiles(tree, fullPath, globs, results);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return results;
|
|
23
|
+
}
|
|
24
|
+
updateProjectVersion(tree, newVersion) {
|
|
25
|
+
const VERSION_NEEDLE_PATTERN = '%%%FRONTEND_APP_RELEASED_VERSION%%%';
|
|
26
|
+
for (const manifest of this.manifestsToUpdate) {
|
|
27
|
+
const filesToUpdate = this.findFiles(tree, (0, path_1.dirname)(manifest.manifestPath), ['**/*.json', '**/*.html']).filter(file => {
|
|
28
|
+
const content = tree.read(file)?.toString();
|
|
29
|
+
return content?.includes(VERSION_NEEDLE_PATTERN);
|
|
30
|
+
});
|
|
31
|
+
for (const file of filesToUpdate) {
|
|
32
|
+
const content = tree.read(file)?.toString();
|
|
33
|
+
if (!content)
|
|
34
|
+
continue;
|
|
35
|
+
tree.write(file, content.replace(VERSION_NEEDLE_PATTERN, newVersion));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return super.updateProjectVersion(tree, newVersion);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
module.exports = VersionActionsFrontend;
|
|
42
|
+
//# sourceMappingURL=version-actions-frontend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-actions-frontend.js","sourceRoot":"","sources":["../../../src/scripts/version-actions-frontend.ts"],"names":[],"mappings":";AAAA,+BAA8B;AAG9B,yCAAqC;AAErC,yDAAyD;AAEzD,MAAM,sBAAuB,SAAQ,mBAAmB;IACtD,SAAS,CACP,IAAU,EACV,QAAgB,EAChB,QAA2B,EAC3B,UAAoB,EAAE;QAEtB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;QAE7D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,GAAG,QAAQ,IAAI,KAAK,EAAE,CAAA;YAEvC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,qBAAS,EAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;oBACjE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;gBACxB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;YAChD,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,oBAAoB,CAAC,IAAU,EAAE,UAAkB;QACjD,MAAM,sBAAsB,GAAG,qCAAqC,CAAA;QAEpE,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAClC,IAAI,EACJ,IAAA,cAAO,EAAC,QAAQ,CAAC,YAAY,CAAC,EAC9B,CAAC,WAAW,EAAE,WAAW,CAAC,CAC3B,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;gBACd,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAA;gBAC3C,OAAO,OAAO,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAA;YAClD,CAAC,CAAC,CAAA;YAEF,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;gBACjC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAA;gBAC3C,IAAI,CAAC,OAAO;oBAAE,SAAQ;gBACtB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC,CAAA;YACvE,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,oBAAoB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IACrD,CAAC;CACF;AAED,iBAAS,sBAAsB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payfit/nx-core",
|
|
3
|
-
"version": "5.13.4
|
|
3
|
+
"version": "5.13.4",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"main": "./dist/src/index.js",
|
|
6
6
|
"types": "./dist/src/index.d.ts",
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
"graphql": "^16.11.0",
|
|
27
27
|
"ky": "^1.8.1",
|
|
28
28
|
"memfs": "4.51.1",
|
|
29
|
+
"minimatch": "^10.1.1",
|
|
29
30
|
"semver": "7.7.3",
|
|
30
31
|
"tinyexec": "1.0.2",
|
|
31
32
|
"tslib": "^2.8.1",
|
|
@@ -53,6 +54,7 @@
|
|
|
53
54
|
"default": "./dist/src/index.js"
|
|
54
55
|
},
|
|
55
56
|
"./versionActions": "./dist/src/scripts/version-actions.js",
|
|
57
|
+
"./versionActionsFrontend": "./dist/src/scripts/version-actions-frontend.js",
|
|
56
58
|
"./package.json": "./package.json"
|
|
57
59
|
},
|
|
58
60
|
"executors": "./executors.json",
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.updateNeedleInFilesWithVersions = updateNeedleInFilesWithVersions;
|
|
4
|
-
exports.applyTreeChanges = applyTreeChanges;
|
|
5
|
-
const process = require("node:process");
|
|
6
|
-
const devkit_1 = require("@nx/devkit");
|
|
7
|
-
const tree_1 = require("nx/src/generators/tree");
|
|
8
|
-
const logger_1 = require("../common/logger");
|
|
9
|
-
const VERSION_NEEDLE_PATTERN = '%%%FRONTEND_APP_RELEASED_VERSION%%%';
|
|
10
|
-
function assertVersionJsonIsValid(path, tree) {
|
|
11
|
-
if (!tree.exists(`${path}/version.json`)) {
|
|
12
|
-
throw new Error(`No version.json found in ${path}, promotion will fail.`);
|
|
13
|
-
}
|
|
14
|
-
const versionJson = (0, devkit_1.readJson)(tree, `${path}/version.json`);
|
|
15
|
-
if (!versionJson.appVersion) {
|
|
16
|
-
throw new Error(`No appVersion found in version.json in ${path}, promotion will fail.`);
|
|
17
|
-
}
|
|
18
|
-
if (versionJson.appVersion !== VERSION_NEEDLE_PATTERN) {
|
|
19
|
-
throw new Error(`appVersion in version.json in ${path} is not set to '${VERSION_NEEDLE_PATTERN}', promotion will fail.`);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
async function updateNeedleInFilesWithVersions(path, tree, version) {
|
|
23
|
-
assertVersionJsonIsValid(path, tree);
|
|
24
|
-
// Recursively collect all .json and .html files under the given path in the virtual tree
|
|
25
|
-
function collectFiles(dir) {
|
|
26
|
-
let files = [];
|
|
27
|
-
for (const entry of tree.children(dir)) {
|
|
28
|
-
const fullPath = dir.endsWith('/') ? dir + entry : dir + '/' + entry;
|
|
29
|
-
// Exclude version.json at the root of the current dir
|
|
30
|
-
if (tree.isFile(fullPath)) {
|
|
31
|
-
if ((fullPath.endsWith('.json') || fullPath.endsWith('.html')) &&
|
|
32
|
-
fullPath !== dir.replace(/\/$/, '') + '/version.json') {
|
|
33
|
-
files.push(fullPath);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
files = files.concat(collectFiles(fullPath));
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
return files;
|
|
41
|
-
}
|
|
42
|
-
const allFiles = collectFiles(path);
|
|
43
|
-
const potentialFiles = allFiles.filter(file => {
|
|
44
|
-
const content = tree.read(file, 'utf-8');
|
|
45
|
-
return content && content.includes(VERSION_NEEDLE_PATTERN);
|
|
46
|
-
});
|
|
47
|
-
logger_1.consola.log(`✏️ Updating ${potentialFiles.length} files with version ${version}:
|
|
48
|
-
- ${potentialFiles.join('\n - ')}`);
|
|
49
|
-
potentialFiles.forEach(file => {
|
|
50
|
-
const oldContent = tree.read(file, 'utf-8');
|
|
51
|
-
if (!oldContent) {
|
|
52
|
-
throw new Error(`Could not read file ${file}`);
|
|
53
|
-
}
|
|
54
|
-
const newContent = oldContent.replace(new RegExp(VERSION_NEEDLE_PATTERN, 'g'), version);
|
|
55
|
-
tree.write(file, newContent);
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
async function applyTreeChanges(tree, dryRun, workspaceRoot = process.cwd()) {
|
|
59
|
-
;
|
|
60
|
-
tree.lock();
|
|
61
|
-
logger_1.consola.log('✏️ Applying changes to the workspace');
|
|
62
|
-
(0, tree_1.printChanges)(tree.listChanges());
|
|
63
|
-
if (dryRun) {
|
|
64
|
-
logger_1.consola.log('🧽 Dry run was set, not modifying files');
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
(0, tree_1.flushChanges)(workspaceRoot, tree.listChanges());
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=update-version.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"update-version.js","sourceRoot":"","sources":["../../../../src/utils/frontend/update-version.ts"],"names":[],"mappings":"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"}
|