@storm-software/workspace-tools 1.120.0 → 1.121.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/CHANGELOG.md +9 -0
- package/README.md +1 -1
- package/meta.json +1 -1
- package/package.json +4 -2
- package/src/plugins/typescript/index.js +3 -1
- package/src/utils/create-cli-options.js +46 -0
- package/src/utils/lock-file.js +149 -0
- package/src/utils/project-tags.js +109 -0
- package/src/utils/toml.js +2969 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@storm-software/workspace-tools",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.121.0",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"description": "⚡ A Nx plugin package that contains various executors and generators used in a Storm workspaces.",
|
|
6
6
|
"repository": {
|
|
@@ -34,7 +34,9 @@
|
|
|
34
34
|
"./executors/*/schema.json": "./src/executors/*/schema.json",
|
|
35
35
|
"./plugins/rust": "./src/plugins/rust/index.js",
|
|
36
36
|
"./plugins/typescript": "./src/plugins/typescript/index.js",
|
|
37
|
-
"./preset": "./src/generators/preset/preset.js"
|
|
37
|
+
"./preset": "./src/generators/preset/preset.js",
|
|
38
|
+
"./utils": "./src/utils/index.js",
|
|
39
|
+
"./utils/*": "./src/utils/*.js"
|
|
38
40
|
},
|
|
39
41
|
"typings": "./declarations.d.ts",
|
|
40
42
|
"keywords": [
|
|
@@ -251,8 +251,10 @@ var createNodes = [
|
|
|
251
251
|
ProjectTagConstants.DistStyle.CLEAN
|
|
252
252
|
)) {
|
|
253
253
|
targets["clean-package"] = {
|
|
254
|
-
cache:
|
|
254
|
+
cache: true,
|
|
255
255
|
dependsOn: ["build"],
|
|
256
|
+
inputs: ["typescript", "^production"],
|
|
257
|
+
outputs: ["{workspaceRoot}/dist/{projectRoot}"],
|
|
256
258
|
executor: "@storm-software/workspace-tools:clean-package",
|
|
257
259
|
options: {
|
|
258
260
|
cleanReadMe: true,
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
|
|
19
|
+
// packages/workspace-tools/src/utils/create-cli-options.ts
|
|
20
|
+
var create_cli_options_exports = {};
|
|
21
|
+
__export(create_cli_options_exports, {
|
|
22
|
+
createCliOptions: () => createCliOptions
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(create_cli_options_exports);
|
|
25
|
+
var import_devkit = require("@nx/devkit");
|
|
26
|
+
function createCliOptions(obj) {
|
|
27
|
+
const args = [];
|
|
28
|
+
for (const key in obj) {
|
|
29
|
+
const value = obj[key];
|
|
30
|
+
if (value) {
|
|
31
|
+
const arg = (0, import_devkit.names)(key).fileName;
|
|
32
|
+
if (Array.isArray(value)) {
|
|
33
|
+
args.push(
|
|
34
|
+
`--${arg.toLowerCase()}=${value.map((v) => v.trim()).join(",")}`
|
|
35
|
+
);
|
|
36
|
+
} else {
|
|
37
|
+
args.push(`--${arg.toLowerCase()}=${value}`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return args;
|
|
42
|
+
}
|
|
43
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
44
|
+
0 && (module.exports = {
|
|
45
|
+
createCliOptions
|
|
46
|
+
});
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
|
|
19
|
+
// packages/workspace-tools/src/utils/lock-file.ts
|
|
20
|
+
var lock_file_exports = {};
|
|
21
|
+
__export(lock_file_exports, {
|
|
22
|
+
LOCK_FILES: () => LOCK_FILES,
|
|
23
|
+
NPM_LOCK_FILE: () => NPM_LOCK_FILE,
|
|
24
|
+
NPM_LOCK_PATH: () => NPM_LOCK_PATH,
|
|
25
|
+
PNPM_LOCK_FILE: () => PNPM_LOCK_FILE,
|
|
26
|
+
PNPM_LOCK_PATH: () => PNPM_LOCK_PATH,
|
|
27
|
+
YARN_LOCK_FILE: () => YARN_LOCK_FILE,
|
|
28
|
+
YARN_LOCK_PATH: () => YARN_LOCK_PATH,
|
|
29
|
+
getLockFileDependencies: () => getLockFileDependencies,
|
|
30
|
+
getLockFileName: () => getLockFileName,
|
|
31
|
+
getLockFileNodes: () => getLockFileNodes,
|
|
32
|
+
lockFileExists: () => lockFileExists
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(lock_file_exports);
|
|
35
|
+
var import_node_fs = require("node:fs");
|
|
36
|
+
var import_devkit_exports = require("nx/src/devkit-exports");
|
|
37
|
+
var import_node_path = require("node:path");
|
|
38
|
+
var import_yarn_parser = require("nx/src/plugins/js/lock-file/yarn-parser");
|
|
39
|
+
var import_pnpm_parser = require("nx/src/plugins/js/lock-file/pnpm-parser");
|
|
40
|
+
var import_npm_parser = require("nx/src/plugins/js/lock-file/npm-parser");
|
|
41
|
+
var YARN_LOCK_FILE = "yarn.lock";
|
|
42
|
+
var NPM_LOCK_FILE = "package-lock.json";
|
|
43
|
+
var PNPM_LOCK_FILE = "pnpm-lock.yaml";
|
|
44
|
+
var LOCK_FILES = [YARN_LOCK_FILE, NPM_LOCK_FILE, PNPM_LOCK_FILE];
|
|
45
|
+
var YARN_LOCK_PATH = (0, import_node_path.join)(import_devkit_exports.workspaceRoot, YARN_LOCK_FILE);
|
|
46
|
+
var NPM_LOCK_PATH = (0, import_node_path.join)(import_devkit_exports.workspaceRoot, NPM_LOCK_FILE);
|
|
47
|
+
var PNPM_LOCK_PATH = (0, import_node_path.join)(import_devkit_exports.workspaceRoot, PNPM_LOCK_FILE);
|
|
48
|
+
function getLockFileNodes(packageManager, contents, lockFileHash, context) {
|
|
49
|
+
try {
|
|
50
|
+
if (packageManager === "yarn") {
|
|
51
|
+
const packageJson = (0, import_devkit_exports.readJsonFile)((0, import_node_path.join)(context.workspaceRoot, "package.json"));
|
|
52
|
+
return (0, import_yarn_parser.getYarnLockfileNodes)(contents, lockFileHash, packageJson);
|
|
53
|
+
}
|
|
54
|
+
if (packageManager === "pnpm") {
|
|
55
|
+
return (0, import_pnpm_parser.getPnpmLockfileNodes)(contents, lockFileHash);
|
|
56
|
+
}
|
|
57
|
+
if (packageManager === "npm") {
|
|
58
|
+
return (0, import_npm_parser.getNpmLockfileNodes)(contents, lockFileHash);
|
|
59
|
+
}
|
|
60
|
+
} catch (e) {
|
|
61
|
+
if (!isPostInstallProcess()) {
|
|
62
|
+
import_devkit_exports.output.error({
|
|
63
|
+
title: `Failed to parse ${packageManager} lockfile`,
|
|
64
|
+
bodyLines: errorBodyLines(e)
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
throw e;
|
|
68
|
+
}
|
|
69
|
+
throw new Error(`Unknown package manager: ${packageManager}`);
|
|
70
|
+
}
|
|
71
|
+
function getLockFileDependencies(packageManager, contents, lockFileHash, context) {
|
|
72
|
+
try {
|
|
73
|
+
if (packageManager === "yarn") {
|
|
74
|
+
return (0, import_yarn_parser.getYarnLockfileDependencies)(contents, lockFileHash, context);
|
|
75
|
+
}
|
|
76
|
+
if (packageManager === "pnpm") {
|
|
77
|
+
return (0, import_pnpm_parser.getPnpmLockfileDependencies)(contents, lockFileHash, context);
|
|
78
|
+
}
|
|
79
|
+
if (packageManager === "npm") {
|
|
80
|
+
return (0, import_npm_parser.getNpmLockfileDependencies)(contents, lockFileHash, context);
|
|
81
|
+
}
|
|
82
|
+
} catch (e) {
|
|
83
|
+
if (!isPostInstallProcess()) {
|
|
84
|
+
import_devkit_exports.output.error({
|
|
85
|
+
title: `Failed to parse ${packageManager} lockfile`,
|
|
86
|
+
bodyLines: errorBodyLines(e)
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
throw e;
|
|
90
|
+
}
|
|
91
|
+
throw new Error(`Unknown package manager: ${packageManager}`);
|
|
92
|
+
}
|
|
93
|
+
function lockFileExists(packageManager) {
|
|
94
|
+
if (packageManager === "yarn") {
|
|
95
|
+
return (0, import_node_fs.existsSync)(YARN_LOCK_PATH);
|
|
96
|
+
}
|
|
97
|
+
if (packageManager === "pnpm") {
|
|
98
|
+
return (0, import_node_fs.existsSync)(PNPM_LOCK_PATH);
|
|
99
|
+
}
|
|
100
|
+
if (packageManager === "npm") {
|
|
101
|
+
return (0, import_node_fs.existsSync)(NPM_LOCK_PATH);
|
|
102
|
+
}
|
|
103
|
+
throw new Error(`Unknown package manager ${packageManager} or lock file missing`);
|
|
104
|
+
}
|
|
105
|
+
function getLockFileName(packageManager) {
|
|
106
|
+
if (packageManager === "yarn") {
|
|
107
|
+
return YARN_LOCK_FILE;
|
|
108
|
+
}
|
|
109
|
+
if (packageManager === "pnpm") {
|
|
110
|
+
return PNPM_LOCK_FILE;
|
|
111
|
+
}
|
|
112
|
+
if (packageManager === "npm") {
|
|
113
|
+
return NPM_LOCK_FILE;
|
|
114
|
+
}
|
|
115
|
+
throw new Error(`Unknown package manager: ${packageManager}`);
|
|
116
|
+
}
|
|
117
|
+
function errorBodyLines(originalError, additionalInfo = []) {
|
|
118
|
+
const result = [
|
|
119
|
+
"Please open an issue at `https://github.com/storm-software/storm-ops/issues/new?template=1-bug.yml` and provide a reproduction.",
|
|
120
|
+
...additionalInfo
|
|
121
|
+
];
|
|
122
|
+
if (originalError.message) {
|
|
123
|
+
result.push(`
|
|
124
|
+
Original error: ${originalError.message}
|
|
125
|
+
|
|
126
|
+
`);
|
|
127
|
+
}
|
|
128
|
+
if (originalError.stack) {
|
|
129
|
+
result.push(originalError.stack);
|
|
130
|
+
}
|
|
131
|
+
return result;
|
|
132
|
+
}
|
|
133
|
+
function isPostInstallProcess() {
|
|
134
|
+
return process.env.npm_command === "install" && process.env.npm_lifecycle_event === "postinstall";
|
|
135
|
+
}
|
|
136
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
137
|
+
0 && (module.exports = {
|
|
138
|
+
LOCK_FILES,
|
|
139
|
+
NPM_LOCK_FILE,
|
|
140
|
+
NPM_LOCK_PATH,
|
|
141
|
+
PNPM_LOCK_FILE,
|
|
142
|
+
PNPM_LOCK_PATH,
|
|
143
|
+
YARN_LOCK_FILE,
|
|
144
|
+
YARN_LOCK_PATH,
|
|
145
|
+
getLockFileDependencies,
|
|
146
|
+
getLockFileName,
|
|
147
|
+
getLockFileNodes,
|
|
148
|
+
lockFileExists
|
|
149
|
+
});
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
|
|
19
|
+
// packages/workspace-tools/src/utils/project-tags.ts
|
|
20
|
+
var project_tags_exports = {};
|
|
21
|
+
__export(project_tags_exports, {
|
|
22
|
+
ProjectTagConstants: () => ProjectTagConstants,
|
|
23
|
+
addProjectTag: () => addProjectTag,
|
|
24
|
+
formatProjectTag: () => formatProjectTag,
|
|
25
|
+
getProjectTag: () => getProjectTag,
|
|
26
|
+
hasProjectTag: () => hasProjectTag,
|
|
27
|
+
isEqualProjectTag: () => isEqualProjectTag,
|
|
28
|
+
setDefaultProjectTags: () => setDefaultProjectTags
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(project_tags_exports);
|
|
31
|
+
var ProjectTagConstants = {
|
|
32
|
+
Language: {
|
|
33
|
+
TAG_ID: "language",
|
|
34
|
+
TYPESCRIPT: "typescript",
|
|
35
|
+
RUST: "rust"
|
|
36
|
+
},
|
|
37
|
+
ProjectType: {
|
|
38
|
+
TAG_ID: "type",
|
|
39
|
+
LIBRARY: "library",
|
|
40
|
+
APPLICATION: "application"
|
|
41
|
+
},
|
|
42
|
+
DistStyle: {
|
|
43
|
+
TAG_ID: "dist-style",
|
|
44
|
+
NORMAL: "normal",
|
|
45
|
+
CLEAN: "clean"
|
|
46
|
+
},
|
|
47
|
+
Provider: {
|
|
48
|
+
TAG_ID: "provider"
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
var formatProjectTag = (variant, value) => {
|
|
52
|
+
return `${variant}:${value}`;
|
|
53
|
+
};
|
|
54
|
+
var hasProjectTag = (project, variant) => {
|
|
55
|
+
project.tags = project.tags ?? [];
|
|
56
|
+
const prefix = formatProjectTag(variant, "");
|
|
57
|
+
return project.tags.some(
|
|
58
|
+
(tag) => tag.startsWith(prefix) && tag.length > prefix.length
|
|
59
|
+
);
|
|
60
|
+
};
|
|
61
|
+
var getProjectTag = (project, variant) => {
|
|
62
|
+
if (!hasProjectTag(project, variant)) {
|
|
63
|
+
return void 0;
|
|
64
|
+
}
|
|
65
|
+
project.tags = project.tags ?? [];
|
|
66
|
+
const prefix = formatProjectTag(variant, "");
|
|
67
|
+
const tag = project.tags.find((tag2) => tag2.startsWith(prefix));
|
|
68
|
+
return tag?.replace(prefix, "");
|
|
69
|
+
};
|
|
70
|
+
var isEqualProjectTag = (project, variant, value) => {
|
|
71
|
+
const tag = getProjectTag(project, variant);
|
|
72
|
+
return !!(tag && tag?.toUpperCase() === value.toUpperCase());
|
|
73
|
+
};
|
|
74
|
+
var addProjectTag = (project, variant, value, options = {
|
|
75
|
+
overwrite: false
|
|
76
|
+
}) => {
|
|
77
|
+
project.tags = project.tags ?? [];
|
|
78
|
+
if (options.overwrite || !hasProjectTag(project, variant)) {
|
|
79
|
+
project.tags = project.tags.filter(
|
|
80
|
+
(tag) => !tag.startsWith(formatProjectTag(variant, ""))
|
|
81
|
+
);
|
|
82
|
+
project.tags.push(formatProjectTag(variant, value));
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
var setDefaultProjectTags = (project) => {
|
|
86
|
+
project.tags = project.tags ?? [];
|
|
87
|
+
addProjectTag(
|
|
88
|
+
project,
|
|
89
|
+
ProjectTagConstants.ProjectType.TAG_ID,
|
|
90
|
+
project.projectType === "application" ? ProjectTagConstants.ProjectType.APPLICATION : ProjectTagConstants.ProjectType.LIBRARY,
|
|
91
|
+
{ overwrite: true }
|
|
92
|
+
);
|
|
93
|
+
addProjectTag(
|
|
94
|
+
project,
|
|
95
|
+
ProjectTagConstants.DistStyle.TAG_ID,
|
|
96
|
+
project.targets && Object.keys(project.targets).includes("clean-package") ? ProjectTagConstants.DistStyle.CLEAN : ProjectTagConstants.DistStyle.NORMAL,
|
|
97
|
+
{ overwrite: true }
|
|
98
|
+
);
|
|
99
|
+
};
|
|
100
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
101
|
+
0 && (module.exports = {
|
|
102
|
+
ProjectTagConstants,
|
|
103
|
+
addProjectTag,
|
|
104
|
+
formatProjectTag,
|
|
105
|
+
getProjectTag,
|
|
106
|
+
hasProjectTag,
|
|
107
|
+
isEqualProjectTag,
|
|
108
|
+
setDefaultProjectTags
|
|
109
|
+
});
|