@storm-software/workspace-tools 1.205.0 → 1.207.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.
Files changed (39) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/declarations.d.ts +4 -2
  3. package/index.js +22661 -18647
  4. package/meta.json +495 -419
  5. package/package.json +3 -2
  6. package/src/base/base-executor.js +6 -1
  7. package/src/base/base-generator.js +6 -1
  8. package/src/base/index.js +9 -1
  9. package/src/base/typescript-library-generator.js +3 -0
  10. package/src/executors/cargo-build/executor.js +6 -1
  11. package/src/executors/cargo-check/executor.js +6 -1
  12. package/src/executors/cargo-clippy/executor.js +6 -1
  13. package/src/executors/cargo-doc/executor.js +6 -1
  14. package/src/executors/cargo-format/executor.js +6 -1
  15. package/src/executors/clean-package/executor.js +6 -1
  16. package/src/executors/rolldown/executor.js +6 -1
  17. package/src/executors/rollup/executor.js +19810 -15810
  18. package/src/executors/size-limit/executor.js +6 -1
  19. package/src/executors/tsup/executor.js +6 -1
  20. package/src/executors/tsup-browser/executor.js +6 -1
  21. package/src/executors/tsup-neutral/executor.js +6 -1
  22. package/src/executors/tsup-node/executor.js +6 -1
  23. package/src/executors/typia/executor.js +6 -1
  24. package/src/executors/unbuild/executor.js +6 -1
  25. package/src/generators/browser-library/generator.js +9 -1
  26. package/src/generators/config-schema/generator.js +6 -1
  27. package/src/generators/neutral-library/generator.js +9 -1
  28. package/src/generators/node-library/generator.js +9 -1
  29. package/src/generators/preset/generator.js +6 -1
  30. package/src/generators/release-version/generator.js +6 -1
  31. package/src/plugins/rust/cargo-toml.d.ts +1 -1
  32. package/src/plugins/rust/index.js +15 -3
  33. package/src/plugins/typescript/index.js +15 -3
  34. package/src/plugins/typescript/project-config.d.ts +1 -1
  35. package/src/plugins/typescript/tsup.d.ts +3 -0
  36. package/src/plugins/typescript/tsup.js +234 -0
  37. package/src/utils/index.js +21 -2
  38. package/src/utils/project-tags.d.ts +5 -1
  39. package/src/utils/project-tags.js +15 -1
@@ -0,0 +1,234 @@
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 name2 in all)
7
+ __defProp(target, name2, { get: all[name2], 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/plugins/typescript/tsup.ts
20
+ var tsup_exports = {};
21
+ __export(tsup_exports, {
22
+ createNodes: () => createNodes,
23
+ name: () => name
24
+ });
25
+ module.exports = __toCommonJS(tsup_exports);
26
+ var import_devkit = require("@nx/devkit");
27
+ var import_node_fs = require("node:fs");
28
+ var import_node_path = require("node:path");
29
+ var import_nx_json = require("nx/src/config/nx-json.js");
30
+ var import_package_json = require("nx/src/utils/package-json");
31
+
32
+ // packages/workspace-tools/src/utils/project-tags.ts
33
+ var ProjectTagConstants = {
34
+ Language: {
35
+ TAG_ID: "language",
36
+ TYPESCRIPT: "typescript",
37
+ RUST: "rust"
38
+ },
39
+ ProjectType: {
40
+ TAG_ID: "type",
41
+ LIBRARY: "library",
42
+ APPLICATION: "application"
43
+ },
44
+ DistStyle: {
45
+ TAG_ID: "dist-style",
46
+ NORMAL: "normal",
47
+ CLEAN: "clean"
48
+ },
49
+ Provider: {
50
+ TAG_ID: "provider"
51
+ },
52
+ Platform: {
53
+ TAG_ID: "platform",
54
+ NODE: "node",
55
+ BROWSER: "browser",
56
+ NEUTRAL: "neutral",
57
+ WORKER: "worker"
58
+ },
59
+ Registry: {
60
+ TAG_ID: "registry",
61
+ CARGO: "cargo",
62
+ NPM: "npm",
63
+ CONTAINER: "container",
64
+ CYCLONE: "cyclone"
65
+ },
66
+ Plugin: {
67
+ TAG_ID: "plugin"
68
+ }
69
+ };
70
+ var formatProjectTag = (variant, value) => {
71
+ return `${variant}:${value}`;
72
+ };
73
+ var hasProjectTag = (project, variant) => {
74
+ project.tags = project.tags ?? [];
75
+ const prefix = formatProjectTag(variant, "");
76
+ return project.tags.some(
77
+ (tag) => tag.startsWith(prefix) && tag.length > prefix.length
78
+ );
79
+ };
80
+ var addProjectTag = (project, variant, value, options = {
81
+ overwrite: false
82
+ }) => {
83
+ project.tags = project.tags ?? [];
84
+ if (options.overwrite || !hasProjectTag(project, variant)) {
85
+ project.tags = project.tags.filter(
86
+ (tag) => !tag.startsWith(formatProjectTag(variant, ""))
87
+ );
88
+ project.tags.push(formatProjectTag(variant, value));
89
+ }
90
+ };
91
+ var addPluginProjectTag = (project, plugin) => {
92
+ project.tags = project.tags ?? [];
93
+ project.tags.push(
94
+ formatProjectTag(ProjectTagConstants.Plugin.TAG_ID, plugin)
95
+ );
96
+ };
97
+ var setDefaultProjectTags = (project, plugin) => {
98
+ project.tags = project.tags ?? [];
99
+ addProjectTag(
100
+ project,
101
+ ProjectTagConstants.ProjectType.TAG_ID,
102
+ project.projectType === "application" ? ProjectTagConstants.ProjectType.APPLICATION : ProjectTagConstants.ProjectType.LIBRARY,
103
+ { overwrite: true }
104
+ );
105
+ addProjectTag(
106
+ project,
107
+ ProjectTagConstants.DistStyle.TAG_ID,
108
+ project.targets && Object.keys(project.targets).includes("clean-package") ? ProjectTagConstants.DistStyle.CLEAN : ProjectTagConstants.DistStyle.NORMAL,
109
+ { overwrite: true }
110
+ );
111
+ addProjectTag(
112
+ project,
113
+ ProjectTagConstants.Platform.TAG_ID,
114
+ project.targets?.build?.options.platform === "node" ? ProjectTagConstants.Platform.NODE : project.targets?.build?.options.platform === "worker" ? ProjectTagConstants.Platform.WORKER : project.targets?.build?.options.platform === "browser" ? ProjectTagConstants.Platform.BROWSER : ProjectTagConstants.Platform.NEUTRAL,
115
+ { overwrite: false }
116
+ );
117
+ if (plugin) {
118
+ addPluginProjectTag(project, plugin);
119
+ }
120
+ };
121
+
122
+ // packages/workspace-tools/src/plugins/typescript/tsup.ts
123
+ var name = "storm-software/typescript/tsup";
124
+ var createNodes = [
125
+ "*/**/tsup.config.*",
126
+ (file, opts, ctx) => {
127
+ const projectRoot = createProjectRoot(file, ctx.workspaceRoot);
128
+ if (!projectRoot) {
129
+ console.error(
130
+ `tsup.config.ts file must be location in the project root directory: ${file}`
131
+ );
132
+ return {};
133
+ }
134
+ const packageJson = (0, import_devkit.readJsonFile)((0, import_node_path.join)(projectRoot, "package.json"));
135
+ if (!packageJson) {
136
+ console.error(`No package.json found in project root: ${projectRoot}`);
137
+ return {};
138
+ }
139
+ if (!packageJson.devDependencies?.tsup && !packageJson.dependencies?.tsup) {
140
+ console.warn(
141
+ `No "tsup" dependency or devDependency found in package.json: ${file}
142
+ Please add it to your dependencies by running "pnpm add tsup -D --filter="${packageJson.name}"`
143
+ );
144
+ }
145
+ const project = createProjectFromPackageJsonNextToProjectJson(
146
+ (0, import_node_path.join)(projectRoot, "project.json"),
147
+ packageJson
148
+ );
149
+ const nxJson = (0, import_nx_json.readNxJson)(ctx.workspaceRoot);
150
+ const targets = (0, import_package_json.readTargetsFromPackageJson)(
151
+ packageJson,
152
+ nxJson
153
+ );
154
+ if (!targets["build-base"]) {
155
+ targets["build-base"] = {
156
+ cache: true,
157
+ inputs: [file, "typescript", "^production"],
158
+ outputs: ["{workspaceRoot}/{projectRoot}/dist"],
159
+ executor: "nx:run-commands",
160
+ dependsOn: ["clean", "^build"],
161
+ options: {
162
+ command: `tsup --config="${file}"`,
163
+ cwd: "{projectRoot}"
164
+ }
165
+ };
166
+ }
167
+ if (!targets.build) {
168
+ targets.build = {
169
+ cache: true,
170
+ inputs: [file, "typescript", "^production"],
171
+ outputs: ["{workspaceRoot}/dist/{projectRoot}"],
172
+ executor: "nx:run-commands",
173
+ dependsOn: ["build-base"],
174
+ options: {
175
+ commands: [
176
+ `pnpm copyfiles LICENSE dist/${projectRoot}`,
177
+ `pnpm copyfiles --up=2 ./${projectRoot}/README.md ./${projectRoot}/package.json dist/${projectRoot}`,
178
+ `pnpm copyfiles --up=3 ./${projectRoot}/dist/* dist/${projectRoot}/dist`
179
+ ]
180
+ }
181
+ };
182
+ }
183
+ if (!targets.clean) {
184
+ targets.clean = {
185
+ cache: true,
186
+ executor: "nx:run-commands",
187
+ inputs: ["typescript", "^production"],
188
+ outputs: ["{workspaceRoot}/dist/{projectRoot}"],
189
+ options: {
190
+ command: "pnpm exec rimraf dist/{projectRoot}",
191
+ color: true,
192
+ cwd: "{workspaceRoot}"
193
+ }
194
+ };
195
+ }
196
+ setDefaultProjectTags(project, name);
197
+ return project?.name ? {
198
+ projects: {
199
+ [project.name]: {
200
+ ...project,
201
+ targets
202
+ }
203
+ }
204
+ } : {};
205
+ }
206
+ ];
207
+ function createProjectFromPackageJsonNextToProjectJson(projectJsonPath, packageJson) {
208
+ const { nx, name: name2 } = packageJson;
209
+ const root = (0, import_node_path.dirname)(projectJsonPath);
210
+ return {
211
+ ...nx,
212
+ name: name2,
213
+ root,
214
+ targets: {}
215
+ };
216
+ }
217
+ function createProjectRoot(configPath, workspaceRoot) {
218
+ try {
219
+ const root = (0, import_node_path.dirname)(configPath);
220
+ const projectRoot = (0, import_node_path.join)(workspaceRoot, root);
221
+ if (!(0, import_node_fs.existsSync)((0, import_node_path.join)(projectRoot, "package.json")) && !(0, import_node_fs.existsSync)((0, import_node_path.join)(projectRoot, "project.json"))) {
222
+ return null;
223
+ }
224
+ return projectRoot;
225
+ } catch (e) {
226
+ console.error(e);
227
+ return null;
228
+ }
229
+ }
230
+ // Annotate the CommonJS export names for ESM import in node:
231
+ 0 && (module.exports = {
232
+ createNodes,
233
+ name
234
+ });
@@ -66632,7 +66632,7 @@ var init_types2 = __esm({
66632
66632
  });
66633
66633
 
66634
66634
  // packages/config-tools/src/utilities/get-log-level.ts
66635
- var getLogLevel, getLogLevelLabel;
66635
+ var getLogLevel, getLogLevelLabel, isVerbose;
66636
66636
  var init_get_log_level = __esm({
66637
66637
  "packages/config-tools/src/utilities/get-log-level.ts"() {
66638
66638
  init_types2();
@@ -66685,6 +66685,10 @@ var init_get_log_level = __esm({
66685
66685
  }
66686
66686
  return LogLevelLabel.INFO;
66687
66687
  };
66688
+ isVerbose = (label = LogLevelLabel.SILENT) => {
66689
+ const logLevel = typeof label === "string" ? getLogLevel(label) : label;
66690
+ return logLevel <= LogLevel.DEBUG;
66691
+ };
66688
66692
  }
66689
66693
  });
66690
66694
 
@@ -67584,6 +67588,7 @@ __export(src_exports, {
67584
67588
  getLogLevelLabel: () => getLogLevelLabel,
67585
67589
  getStopwatch: () => getStopwatch,
67586
67590
  handleProcess: () => handleProcess,
67591
+ isVerbose: () => isVerbose,
67587
67592
  loadStormConfig: () => loadStormConfig,
67588
67593
  removeExtension: () => removeExtension,
67589
67594
  run: () => run,
@@ -90831,6 +90836,7 @@ __export(utils_exports, {
90831
90836
  ProjectTagConstants: () => ProjectTagConstants,
90832
90837
  YARN_LOCK_FILE: () => YARN_LOCK_FILE,
90833
90838
  YARN_LOCK_PATH: () => YARN_LOCK_PATH,
90839
+ addPluginProjectTag: () => addPluginProjectTag,
90834
90840
  addProjectTag: () => addProjectTag,
90835
90841
  applyWorkspaceExecutorTokens: () => applyWorkspaceExecutorTokens,
90836
90842
  buildCargoCommand: () => buildCargoCommand,
@@ -91257,6 +91263,9 @@ var ProjectTagConstants = {
91257
91263
  NPM: "npm",
91258
91264
  CONTAINER: "container",
91259
91265
  CYCLONE: "cyclone"
91266
+ },
91267
+ Plugin: {
91268
+ TAG_ID: "plugin"
91260
91269
  }
91261
91270
  };
91262
91271
  var formatProjectTag = (variant, value2) => {
@@ -91293,7 +91302,13 @@ var addProjectTag = (project, variant, value2, options = {
91293
91302
  project.tags.push(formatProjectTag(variant, value2));
91294
91303
  }
91295
91304
  };
91296
- var setDefaultProjectTags = (project) => {
91305
+ var addPluginProjectTag = (project, plugin) => {
91306
+ project.tags = project.tags ?? [];
91307
+ project.tags.push(
91308
+ formatProjectTag(ProjectTagConstants.Plugin.TAG_ID, plugin)
91309
+ );
91310
+ };
91311
+ var setDefaultProjectTags = (project, plugin) => {
91297
91312
  project.tags = project.tags ?? [];
91298
91313
  addProjectTag(
91299
91314
  project,
@@ -91313,6 +91328,9 @@ var setDefaultProjectTags = (project) => {
91313
91328
  project.targets?.build?.options.platform === "node" ? ProjectTagConstants.Platform.NODE : project.targets?.build?.options.platform === "worker" ? ProjectTagConstants.Platform.WORKER : project.targets?.build?.options.platform === "browser" ? ProjectTagConstants.Platform.BROWSER : ProjectTagConstants.Platform.NEUTRAL,
91314
91329
  { overwrite: false }
91315
91330
  );
91331
+ if (plugin) {
91332
+ addPluginProjectTag(project, plugin);
91333
+ }
91316
91334
  };
91317
91335
 
91318
91336
  // node_modules/.pnpm/@ltd+j-toml@1.38.0/node_modules/@ltd/j-toml/index.mjs
@@ -94289,6 +94307,7 @@ var pnpmVersion = "8.10.2";
94289
94307
  ProjectTagConstants,
94290
94308
  YARN_LOCK_FILE,
94291
94309
  YARN_LOCK_PATH,
94310
+ addPluginProjectTag,
94292
94311
  addProjectTag,
94293
94312
  applyWorkspaceExecutorTokens,
94294
94313
  buildCargoCommand,
@@ -33,6 +33,9 @@ export declare const ProjectTagConstants: {
33
33
  readonly CONTAINER: ProjectTagRegistryValue;
34
34
  readonly CYCLONE: ProjectTagRegistryValue;
35
35
  };
36
+ readonly Plugin: {
37
+ readonly TAG_ID: ProjectTagVariant;
38
+ };
36
39
  };
37
40
  export declare const formatProjectTag: (variant: ProjectTagVariant, value: string) => string;
38
41
  export declare const hasProjectTag: (project: ProjectConfiguration, variant: ProjectTagVariant) => boolean;
@@ -41,4 +44,5 @@ export declare const isEqualProjectTag: (project: ProjectConfiguration, variant:
41
44
  export declare const addProjectTag: (project: ProjectConfiguration, variant: ProjectTagVariant, value: string, options?: {
42
45
  overwrite?: boolean;
43
46
  }) => void;
44
- export declare const setDefaultProjectTags: (project: ProjectConfiguration) => void;
47
+ export declare const addPluginProjectTag: (project: ProjectConfiguration, plugin: string) => void;
48
+ export declare const setDefaultProjectTags: (project: ProjectConfiguration, plugin?: string) => void;
@@ -20,6 +20,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  var project_tags_exports = {};
21
21
  __export(project_tags_exports, {
22
22
  ProjectTagConstants: () => ProjectTagConstants,
23
+ addPluginProjectTag: () => addPluginProjectTag,
23
24
  addProjectTag: () => addProjectTag,
24
25
  formatProjectTag: () => formatProjectTag,
25
26
  getProjectTag: () => getProjectTag,
@@ -60,6 +61,9 @@ var ProjectTagConstants = {
60
61
  NPM: "npm",
61
62
  CONTAINER: "container",
62
63
  CYCLONE: "cyclone"
64
+ },
65
+ Plugin: {
66
+ TAG_ID: "plugin"
63
67
  }
64
68
  };
65
69
  var formatProjectTag = (variant, value) => {
@@ -96,7 +100,13 @@ var addProjectTag = (project, variant, value, options = {
96
100
  project.tags.push(formatProjectTag(variant, value));
97
101
  }
98
102
  };
99
- var setDefaultProjectTags = (project) => {
103
+ var addPluginProjectTag = (project, plugin) => {
104
+ project.tags = project.tags ?? [];
105
+ project.tags.push(
106
+ formatProjectTag(ProjectTagConstants.Plugin.TAG_ID, plugin)
107
+ );
108
+ };
109
+ var setDefaultProjectTags = (project, plugin) => {
100
110
  project.tags = project.tags ?? [];
101
111
  addProjectTag(
102
112
  project,
@@ -116,10 +126,14 @@ var setDefaultProjectTags = (project) => {
116
126
  project.targets?.build?.options.platform === "node" ? ProjectTagConstants.Platform.NODE : project.targets?.build?.options.platform === "worker" ? ProjectTagConstants.Platform.WORKER : project.targets?.build?.options.platform === "browser" ? ProjectTagConstants.Platform.BROWSER : ProjectTagConstants.Platform.NEUTRAL,
117
127
  { overwrite: false }
118
128
  );
129
+ if (plugin) {
130
+ addPluginProjectTag(project, plugin);
131
+ }
119
132
  };
120
133
  // Annotate the CommonJS export names for ESM import in node:
121
134
  0 && (module.exports = {
122
135
  ProjectTagConstants,
136
+ addPluginProjectTag,
123
137
  addProjectTag,
124
138
  formatProjectTag,
125
139
  getProjectTag,