@storm-software/workspace-tools 1.269.0 → 1.270.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 (274) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/README.md +2 -1
  3. package/dist/chunk-A7JGVU4P.js +468 -0
  4. package/dist/chunk-SRN4D7WO.mjs +468 -0
  5. package/dist/executors.js +2 -2
  6. package/dist/executors.mjs +1 -1
  7. package/dist/index.js +2 -2
  8. package/dist/index.mjs +1 -1
  9. package/dist/src/executors/npm-publish/executor.js +2 -2
  10. package/dist/src/executors/npm-publish/executor.mjs +1 -1
  11. package/docs/executors/rollup.md +88 -0
  12. package/executors.ts +23 -0
  13. package/generators.ts +14 -0
  14. package/index.ts +5 -0
  15. package/package.json +4 -4
  16. package/project.json +58 -0
  17. package/src/base/base-executor.ts +200 -0
  18. package/src/base/base-executor.untyped.ts +18 -0
  19. package/src/base/base-generator.ts +130 -0
  20. package/src/base/base-generator.untyped.ts +16 -0
  21. package/src/base/cargo-base-executor.untyped.ts +73 -0
  22. package/src/base/index.ts +8 -0
  23. package/src/base/typescript-build-executor.untyped.ts +153 -0
  24. package/src/base/typescript-library-generator.ts +415 -0
  25. package/src/base/typescript-library-generator.untyped.ts +106 -0
  26. package/src/executors/cargo-build/executor.spec.ts +18 -0
  27. package/src/executors/cargo-build/executor.ts +28 -0
  28. package/src/executors/cargo-build/untyped.ts +18 -0
  29. package/src/executors/cargo-check/executor.spec.ts +18 -0
  30. package/src/executors/cargo-check/executor.ts +27 -0
  31. package/src/executors/cargo-check/untyped.ts +11 -0
  32. package/src/executors/cargo-clippy/executor.spec.ts +18 -0
  33. package/src/executors/cargo-clippy/executor.ts +28 -0
  34. package/src/executors/cargo-clippy/untyped.ts +18 -0
  35. package/src/executors/cargo-doc/executor.spec.ts +18 -0
  36. package/src/executors/cargo-doc/executor.ts +39 -0
  37. package/src/executors/cargo-doc/untyped.ts +44 -0
  38. package/src/executors/cargo-format/executor.spec.ts +18 -0
  39. package/src/executors/cargo-format/executor.ts +28 -0
  40. package/src/executors/cargo-format/untyped.ts +11 -0
  41. package/src/executors/cargo-publish/executor.spec.ts +11 -0
  42. package/src/executors/cargo-publish/executor.ts +139 -0
  43. package/src/executors/cargo-publish/untyped.ts +33 -0
  44. package/src/executors/clean-package/constants.ts +99 -0
  45. package/src/executors/clean-package/executor.spec.ts +18 -0
  46. package/src/executors/clean-package/executor.ts +214 -0
  47. package/src/executors/clean-package/types.ts +6 -0
  48. package/src/executors/clean-package/untyped.ts +60 -0
  49. package/src/executors/clean-package/utils.ts +85 -0
  50. package/src/executors/esbuild/executor.spec.ts +11 -0
  51. package/src/executors/esbuild/executor.ts +67 -0
  52. package/src/executors/esbuild/untyped.ts +20 -0
  53. package/src/executors/npm-publish/executor.spec.ts +11 -0
  54. package/src/executors/npm-publish/executor.ts +681 -0
  55. package/src/executors/npm-publish/untyped.ts +56 -0
  56. package/src/executors/size-limit/executor.spec.ts +18 -0
  57. package/src/executors/size-limit/executor.ts +88 -0
  58. package/src/executors/size-limit/untyped.ts +22 -0
  59. package/src/executors/typia/executor.ts +54 -0
  60. package/src/executors/typia/untyped.ts +48 -0
  61. package/src/executors/unbuild/executor.spec.ts +11 -0
  62. package/src/executors/unbuild/executor.ts +136 -0
  63. package/src/executors/unbuild/untyped.ts +152 -0
  64. package/src/generators/browser-library/generator.spec.ts +20 -0
  65. package/src/generators/browser-library/generator.ts +109 -0
  66. package/src/generators/browser-library/untyped.ts +29 -0
  67. package/src/generators/config-schema/generator.spec.ts +20 -0
  68. package/src/generators/config-schema/generator.ts +90 -0
  69. package/src/generators/config-schema/untyped.ts +19 -0
  70. package/src/generators/init/init.ts +32 -0
  71. package/src/generators/init/untyped.ts +16 -0
  72. package/src/generators/neutral-library/generator.spec.ts +20 -0
  73. package/src/generators/neutral-library/generator.ts +81 -0
  74. package/src/generators/neutral-library/untyped.ts +29 -0
  75. package/src/generators/node-library/generator.spec.ts +20 -0
  76. package/src/generators/node-library/generator.ts +84 -0
  77. package/src/generators/node-library/untyped.ts +29 -0
  78. package/src/generators/preset/files/.all-contributorsrc.template +48 -0
  79. package/src/generators/preset/files/.editorconfig +454 -0
  80. package/src/generators/preset/files/.env.template +38 -0
  81. package/src/generators/preset/files/.gitattributes +52 -0
  82. package/src/generators/preset/files/.github/.nvmrc +1 -0
  83. package/src/generators/preset/files/.github/CODEOWNERS +3 -0
  84. package/src/generators/preset/files/.github/CODE_OF_CONDUCT.md +125 -0
  85. package/src/generators/preset/files/.github/CONTRIBUTING.md.template +15 -0
  86. package/src/generators/preset/files/.github/FUNDING.yml +3 -0
  87. package/src/generators/preset/files/.github/ISSUE_TEMPLATE/bug-report.yml.template +102 -0
  88. package/src/generators/preset/files/.github/ISSUE_TEMPLATE/documentation.yml.template +56 -0
  89. package/src/generators/preset/files/.github/ISSUE_TEMPLATE/feature-request.yml.template +60 -0
  90. package/src/generators/preset/files/.github/PULL_REQUEST_TEMPLATE.md.template +39 -0
  91. package/src/generators/preset/files/.github/SECURITY.md +9 -0
  92. package/src/generators/preset/files/.github/codecov.yml +29 -0
  93. package/src/generators/preset/files/.github/dependabot.yml +64 -0
  94. package/src/generators/preset/files/.github/labels.yml +84 -0
  95. package/src/generators/preset/files/.github/renovate.json +4 -0
  96. package/src/generators/preset/files/.github/renovate.json.template +63 -0
  97. package/src/generators/preset/files/.github/stale.yml +55 -0
  98. package/src/generators/preset/files/.github/workflows/build-release.yml.template +25 -0
  99. package/src/generators/preset/files/.github/workflows/code-review.yml +18 -0
  100. package/src/generators/preset/files/.github/workflows/codeql.yml +84 -0
  101. package/src/generators/preset/files/.github/workflows/dependabot-update.yml +32 -0
  102. package/src/generators/preset/files/.github/workflows/git-guardian.yml +23 -0
  103. package/src/generators/preset/files/.github/workflows/greetings.yml +31 -0
  104. package/src/generators/preset/files/.github/workflows/labels.yml +31 -0
  105. package/src/generators/preset/files/.github/workflows/lock.yml +26 -0
  106. package/src/generators/preset/files/.log4brains.yml.template +5 -0
  107. package/src/generators/preset/files/.markdownlint.json +155 -0
  108. package/src/generators/preset/files/.verdaccio/config.yml.template +40 -0
  109. package/src/generators/preset/files/.vscode/README.md +32 -0
  110. package/src/generators/preset/files/.vscode/cspell.json +3 -0
  111. package/src/generators/preset/files/.vscode/extensions.json +14 -0
  112. package/src/generators/preset/files/.vscode/launch.json +37 -0
  113. package/src/generators/preset/files/.vscode/settings.json +401 -0
  114. package/src/generators/preset/files/.vscode/tasks.json +4 -0
  115. package/src/generators/preset/files/.whitesource +14 -0
  116. package/src/generators/preset/files/assets/diagrams/.gitkeep +0 -0
  117. package/src/generators/preset/files/assets/icons/dark/.gitkeep +0 -0
  118. package/src/generators/preset/files/assets/icons/light/.gitkeep +0 -0
  119. package/src/generators/preset/files/assets/logos/.gitkeep +0 -0
  120. package/src/generators/preset/files/docs/api-reference/.gitkeep +0 -0
  121. package/src/generators/preset/generator.spec.ts +20 -0
  122. package/src/generators/preset/generator.ts +315 -0
  123. package/src/generators/preset/untyped.ts +88 -0
  124. package/src/generators/release-version/generator.spec.ts +20 -0
  125. package/src/generators/release-version/generator.ts +920 -0
  126. package/src/generators/release-version/untyped.ts +156 -0
  127. package/src/plugins/rust/cargo-toml.ts +434 -0
  128. package/src/plugins/rust/index.ts +1 -0
  129. package/src/plugins/typescript/index.ts +1 -0
  130. package/src/plugins/typescript/project-config.ts +564 -0
  131. package/src/plugins/typescript/tsup.ts +198 -0
  132. package/src/types.ts +130 -0
  133. package/src/utils/apply-workspace-tokens.ts +73 -0
  134. package/src/utils/cargo.ts +219 -0
  135. package/src/utils/create-cli-options.ts +23 -0
  136. package/src/utils/get-project-configurations.ts +27 -0
  137. package/src/utils/index.ts +12 -0
  138. package/src/utils/lock-file.ts +159 -0
  139. package/src/utils/package-helpers.ts +54 -0
  140. package/src/utils/plugin-helpers.ts +112 -0
  141. package/src/utils/pnpm-deps-update.ts +111 -0
  142. package/src/utils/project-tags.ts +162 -0
  143. package/src/utils/toml.ts +204 -0
  144. package/src/utils/typia-transform.ts +8 -0
  145. package/src/utils/versions.ts +19 -0
  146. package/tsconfig.json +30 -0
  147. package/tsup.config.ts +36 -0
  148. package/dist/chunk-62LQXZNY.js +0 -282
  149. package/dist/chunk-F3VG4R53.mjs +0 -282
  150. package/dist/src/generators/preset/files/LICENSE +0 -201
  151. package/docs/api/base/base-executor.schema.md +0 -16
  152. package/docs/api/base/base-generator.schema.md +0 -15
  153. package/docs/api/base/cargo-base-executor.schema.md +0 -90
  154. package/docs/api/base/typescript-build-executor.schema.md +0 -126
  155. package/docs/api/base/typescript-library-generator.schema.md +0 -129
  156. package/docs/api/executors/cargo-build/schema.md +0 -89
  157. package/docs/api/executors/cargo-check/schema.md +0 -90
  158. package/docs/api/executors/cargo-clippy/schema.md +0 -99
  159. package/docs/api/executors/cargo-doc/schema.md +0 -130
  160. package/docs/api/executors/cargo-format/schema.md +0 -90
  161. package/docs/api/executors/cargo-publish/schema.md +0 -117
  162. package/docs/api/executors/clean-package/schema.md +0 -65
  163. package/docs/api/executors/esbuild/schema.md +0 -126
  164. package/docs/api/executors/npm-publish/schema.md +0 -64
  165. package/docs/api/executors/size-limit/schema.md +0 -25
  166. package/docs/api/executors/typia/schema.md +0 -46
  167. package/docs/api/executors/unbuild/schema.md +0 -222
  168. package/docs/api/generators/browser-library/files/README.md +0 -58
  169. package/docs/api/generators/browser-library/schema.md +0 -129
  170. package/docs/api/generators/config-schema/schema.md +0 -25
  171. package/docs/api/generators/init/schema.md +0 -15
  172. package/docs/api/generators/neutral-library/files/README.md +0 -58
  173. package/docs/api/generators/neutral-library/schema.md +0 -129
  174. package/docs/api/generators/node-library/files/README.md +0 -63
  175. package/docs/api/generators/node-library/schema.md +0 -129
  176. package/docs/api/generators/preset/schema.md +0 -110
  177. package/docs/api/generators/release-version/schema.md +0 -160
  178. /package/{dist/src → src}/base/base-executor.schema.d.ts +0 -0
  179. /package/{dist/src → src}/base/base-executor.schema.json +0 -0
  180. /package/{dist/src → src}/base/base-executor.schema.md +0 -0
  181. /package/{dist/src → src}/base/base-generator.schema.d.ts +0 -0
  182. /package/{dist/src → src}/base/base-generator.schema.json +0 -0
  183. /package/{dist/src → src}/base/base-generator.schema.md +0 -0
  184. /package/{dist/src → src}/base/cargo-base-executor.schema.d.ts +0 -0
  185. /package/{dist/src → src}/base/cargo-base-executor.schema.json +0 -0
  186. /package/{dist/src → src}/base/cargo-base-executor.schema.md +0 -0
  187. /package/{dist/src → src}/base/typescript-build-executor.schema.d.ts +0 -0
  188. /package/{dist/src → src}/base/typescript-build-executor.schema.json +0 -0
  189. /package/{dist/src → src}/base/typescript-build-executor.schema.md +0 -0
  190. /package/{dist/src → src}/base/typescript-library-generator.schema.d.ts +0 -0
  191. /package/{dist/src → src}/base/typescript-library-generator.schema.json +0 -0
  192. /package/{dist/src → src}/base/typescript-library-generator.schema.md +0 -0
  193. /package/{dist/src → src}/executors/cargo-build/schema.d.ts +0 -0
  194. /package/{dist/src → src}/executors/cargo-build/schema.json +0 -0
  195. /package/{dist/src → src}/executors/cargo-build/schema.md +0 -0
  196. /package/{dist/src → src}/executors/cargo-check/schema.d.ts +0 -0
  197. /package/{dist/src → src}/executors/cargo-check/schema.json +0 -0
  198. /package/{dist/src → src}/executors/cargo-check/schema.md +0 -0
  199. /package/{dist/src → src}/executors/cargo-clippy/schema.d.ts +0 -0
  200. /package/{dist/src → src}/executors/cargo-clippy/schema.json +0 -0
  201. /package/{dist/src → src}/executors/cargo-clippy/schema.md +0 -0
  202. /package/{dist/src → src}/executors/cargo-doc/schema.d.ts +0 -0
  203. /package/{dist/src → src}/executors/cargo-doc/schema.json +0 -0
  204. /package/{dist/src → src}/executors/cargo-doc/schema.md +0 -0
  205. /package/{dist/src → src}/executors/cargo-format/schema.d.ts +0 -0
  206. /package/{dist/src → src}/executors/cargo-format/schema.json +0 -0
  207. /package/{dist/src → src}/executors/cargo-format/schema.md +0 -0
  208. /package/{dist/src → src}/executors/cargo-publish/schema.d.ts +0 -0
  209. /package/{dist/src → src}/executors/cargo-publish/schema.json +0 -0
  210. /package/{dist/src → src}/executors/cargo-publish/schema.md +0 -0
  211. /package/{dist/src → src}/executors/clean-package/schema.d.ts +0 -0
  212. /package/{dist/src → src}/executors/clean-package/schema.json +0 -0
  213. /package/{dist/src → src}/executors/clean-package/schema.md +0 -0
  214. /package/{dist/src → src}/executors/esbuild/schema.d.ts +0 -0
  215. /package/{dist/src → src}/executors/esbuild/schema.json +0 -0
  216. /package/{dist/src → src}/executors/esbuild/schema.md +0 -0
  217. /package/{dist/src → src}/executors/npm-publish/schema.d.ts +0 -0
  218. /package/{dist/src → src}/executors/npm-publish/schema.json +0 -0
  219. /package/{dist/src → src}/executors/npm-publish/schema.md +0 -0
  220. /package/{dist/src → src}/executors/size-limit/schema.d.ts +0 -0
  221. /package/{dist/src → src}/executors/size-limit/schema.json +0 -0
  222. /package/{dist/src → src}/executors/size-limit/schema.md +0 -0
  223. /package/{dist/src → src}/executors/typia/schema.d.ts +0 -0
  224. /package/{dist/src → src}/executors/typia/schema.json +0 -0
  225. /package/{dist/src → src}/executors/typia/schema.md +0 -0
  226. /package/{dist/src → src}/executors/unbuild/schema.d.ts +0 -0
  227. /package/{dist/src → src}/executors/unbuild/schema.json +0 -0
  228. /package/{dist/src → src}/executors/unbuild/schema.md +0 -0
  229. /package/{dist/src → src}/generators/browser-library/files/README.md +0 -0
  230. /package/{dist/src → src}/generators/browser-library/files/jest.config.ts +0 -0
  231. /package/{dist/src → src}/generators/browser-library/files/src/index.ts.template +0 -0
  232. /package/{dist/src → src}/generators/browser-library/files/tsconfig.spec.json +0 -0
  233. /package/{dist/src → src}/generators/browser-library/schema.d.ts +0 -0
  234. /package/{dist/src → src}/generators/browser-library/schema.json +0 -0
  235. /package/{dist/src → src}/generators/browser-library/schema.md +0 -0
  236. /package/{dist/src → src}/generators/config-schema/schema.d.ts +0 -0
  237. /package/{dist/src → src}/generators/config-schema/schema.json +0 -0
  238. /package/{dist/src → src}/generators/config-schema/schema.md +0 -0
  239. /package/{dist/src → src}/generators/init/schema.d.ts +0 -0
  240. /package/{dist/src → src}/generators/init/schema.json +0 -0
  241. /package/{dist/src → src}/generators/init/schema.md +0 -0
  242. /package/{dist/src → src}/generators/neutral-library/files/README.md +0 -0
  243. /package/{dist/src → src}/generators/neutral-library/files/jest.config.ts +0 -0
  244. /package/{dist/src → src}/generators/neutral-library/files/src/index.ts.template +0 -0
  245. /package/{dist/src → src}/generators/neutral-library/files/tsconfig.spec.json +0 -0
  246. /package/{dist/src → src}/generators/neutral-library/schema.d.ts +0 -0
  247. /package/{dist/src → src}/generators/neutral-library/schema.json +0 -0
  248. /package/{dist/src → src}/generators/neutral-library/schema.md +0 -0
  249. /package/{dist/src → src}/generators/node-library/files/README.md +0 -0
  250. /package/{dist/src → src}/generators/node-library/files/jest.config.ts +0 -0
  251. /package/{dist/src → src}/generators/node-library/files/src/index.ts.template +0 -0
  252. /package/{dist/src → src}/generators/node-library/files/tsconfig.spec.json +0 -0
  253. /package/{dist/src → src}/generators/node-library/schema.d.ts +0 -0
  254. /package/{dist/src → src}/generators/node-library/schema.json +0 -0
  255. /package/{dist/src → src}/generators/node-library/schema.md +0 -0
  256. /package/{LICENSE → src/generators/preset/files/LICENSE} +0 -0
  257. /package/{dist/src → src}/generators/preset/files/README.md.template +0 -0
  258. /package/{dist/src → src}/generators/preset/files/docs/readme-templates/README.footer.md.template +0 -0
  259. /package/{dist/src → src}/generators/preset/files/docs/readme-templates/README.header.md.template +0 -0
  260. /package/{dist/src → src}/generators/preset/files/eslint.config.js.template +0 -0
  261. /package/{dist/src → src}/generators/preset/files/knip.json +0 -0
  262. /package/{dist/src → src}/generators/preset/files/lefthook.json +0 -0
  263. /package/{dist/src → src}/generators/preset/files/nx.json +0 -0
  264. /package/{dist/src → src}/generators/preset/files/pnpm-workspace.yaml +0 -0
  265. /package/{dist/src → src}/generators/preset/files/socket.yaml +0 -0
  266. /package/{dist/src → src}/generators/preset/files/storm.json.template +0 -0
  267. /package/{dist/src → src}/generators/preset/files/tsconfig.base.json.template +0 -0
  268. /package/{dist/src → src}/generators/preset/schema.d.ts +0 -0
  269. /package/{dist/src → src}/generators/preset/schema.json +0 -0
  270. /package/{dist/src → src}/generators/preset/schema.md +0 -0
  271. /package/{dist/src → src}/generators/release-version/schema.d.ts +0 -0
  272. /package/{dist/src → src}/generators/release-version/schema.json +0 -0
  273. /package/{dist/src → src}/generators/release-version/schema.md +0 -0
  274. /package/{dist/src → src}/plugins/typescript/untyped-schema.ts +0 -0
@@ -0,0 +1,315 @@
1
+ import {
2
+ addDependenciesToPackageJson,
3
+ addProjectConfiguration,
4
+ formatFiles,
5
+ generateFiles,
6
+ joinPathFragments,
7
+ updateJson,
8
+ type Tree,
9
+ } from "@nx/devkit";
10
+ import * as path from "node:path";
11
+ import { withRunGenerator } from "../../base/base-generator";
12
+ import { nodeVersion, pnpmVersion } from "../../utils/versions";
13
+ import type { PresetGeneratorSchema } from "./schema.d";
14
+
15
+ export async function presetGeneratorFn(
16
+ tree: Tree,
17
+ options: PresetGeneratorSchema,
18
+ ) {
19
+ const projectRoot = ".";
20
+
21
+ options.description ??= `⚡The ${
22
+ options.namespace ? options.namespace : options.name
23
+ } monorepo contains utility applications, tools, and various libraries to create modern and scalable web applications.`;
24
+ options.namespace ??= options.organization;
25
+
26
+ addProjectConfiguration(tree, `@${options.namespace}/${options.name}`, {
27
+ root: projectRoot,
28
+ projectType: "application",
29
+ targets: {
30
+ "local-registry": {
31
+ executor: "@nx/js:verdaccio",
32
+ options: {
33
+ port: 4873,
34
+ config: ".verdaccio/config.yml",
35
+ storage: "tmp/local-registry/storage",
36
+ },
37
+ },
38
+ },
39
+ });
40
+
41
+ updateJson(tree, "package.json", (json) => {
42
+ json.scripts = json.scripts || {};
43
+
44
+ json.version = "0.0.0";
45
+ json.triggerEmptyDevReleaseByIncrementingThisNumber = 0;
46
+ json.private = true;
47
+ json.keywords ??= [
48
+ options.name,
49
+ options.namespace,
50
+ "storm",
51
+ "storm-stack",
52
+ "storm-ops",
53
+ "rust",
54
+ "nx",
55
+ "graphql",
56
+ "sullivanpj",
57
+ "monorepo",
58
+ ];
59
+
60
+ json.homepage ??= "https://stormsoftware.com";
61
+ json.bugs ??= {
62
+ url: `https://github.com/${options.organization}/${options.name}/issues`,
63
+ email: "support@stormsoftware.com",
64
+ };
65
+
66
+ json.license = "Apache-2.0";
67
+ json.author ??= {
68
+ name: "Storm Software",
69
+ email: "contact@stormsoftware.com",
70
+ url: "https://stormsoftware.com",
71
+ };
72
+ json.maintainers ??= [
73
+ {
74
+ name: "Storm Software",
75
+ email: "contact@stormsoftware.com",
76
+ url: "https://stormsoftware.com",
77
+ },
78
+ {
79
+ name: "Pat Sullivan",
80
+ email: "admin@stormsoftware.com",
81
+ url: "https://patsullivan.org",
82
+ },
83
+ ];
84
+ json.funding ??= {
85
+ type: "github",
86
+ url: "https://github.com/sponsors/storm-software",
87
+ };
88
+
89
+ json.namespace ??= `@${options.namespace}`;
90
+ json.description ??= options.description;
91
+ options.repositoryUrl ??= `https://github.com/${options.organization}/${options.name}`;
92
+ json.repository ??= {
93
+ type: "github",
94
+ url: `${options.repositoryUrl}.git`,
95
+ };
96
+
97
+ json.packageManager ??= "pnpm@10.3.0";
98
+ json.engines ??= {
99
+ node: ">=20.11.0",
100
+ pnpm: ">=10.3.0",
101
+ };
102
+
103
+ json.prettier = "@storm-software/prettier/config.json";
104
+
105
+ json.nx ??= {
106
+ includedScripts: [
107
+ "lint-sherif",
108
+ "lint-knip",
109
+ "lint-ls",
110
+ "lint",
111
+ "format",
112
+ "format-sherif",
113
+ "format-readme",
114
+ "format-prettier",
115
+ "format-toml",
116
+ "commit",
117
+ "release",
118
+ ],
119
+ };
120
+
121
+ // generate a start script into the package.json
122
+
123
+ json.scripts.adr = "pnpm log4brains adr new";
124
+ json.scripts["adr-preview"] = "pnpm log4brains preview";
125
+ json.scripts.prepare = "pnpm add lefthook -w && pnpm lefthook install";
126
+ json.scripts.preinstall = "npx -y only-allow pnpm";
127
+ json.scripts["install-csb"] =
128
+ "corepack enable && pnpm install --no-frozen-lockfile";
129
+
130
+ json.scripts.clean =
131
+ "rimraf dist && rimraf --glob packages/**/dist && rimraf --glob tools/**/dist && rimraf --glob docs/**/dist && rimraf --glob apps/**/dist && rimraf --glob libs/**/dist";
132
+ json.scripts.nuke =
133
+ "nx clear-cache && rimraf .nx/cache && rimraf .nx/workspace-data && pnpm clean && rimraf pnpm-lock.yaml && rimraf --glob packages/**/node_modules && rimraf --glob tools/**/node_modules && rimraf node_modules";
134
+ json.scripts.prebuild = "pnpm clean";
135
+
136
+ json.scripts.build = "nx affected -t build --parallel=5";
137
+ json.scripts["build-all"] = "nx run-many -t build --all --parallel=5";
138
+ json.scripts["build-prod"] =
139
+ "nx run-many -t build --all --prod --parallel=5";
140
+ json.scripts["build-tools"] =
141
+ "nx run-many -t build --projects=tools/* --parallel=5";
142
+ json.scripts["build-docs"] =
143
+ "nx run-many -t build --projects=docs/* --parallel=5";
144
+
145
+ if (!options.includeApps) {
146
+ json.scripts["build-packages"] =
147
+ "nx run-many -t build --projects=packages/* --parallel=5";
148
+ } else {
149
+ json.scripts["build-apps"] =
150
+ "nx run-many -t build --projects=apps/* --parallel=5";
151
+ json.scripts["build-libs"] =
152
+ "nx run-many -t build --projects=libs/* --parallel=5";
153
+ json.scripts["build-storybook"] = "storybook build -s public";
154
+ }
155
+
156
+ json.scripts.nx = "nx";
157
+ json.scripts.graph = "nx graph";
158
+ json.scripts.lint = "pnpm storm-lint all --skip-cspell --skip-alex";
159
+
160
+ if (options.includeApps) {
161
+ json.scripts.start = "nx serve";
162
+ json.scripts.storybook = "pnpm storybook dev -p 6006";
163
+ }
164
+
165
+ json.scripts.help = "nx help";
166
+ json.scripts["dep-graph"] = "nx dep-graph";
167
+ json.scripts["local-registry"] =
168
+ `nx local-registry @${options.namespace}/${options.name}`;
169
+
170
+ json.scripts.e2e = "nx e2e";
171
+
172
+ if (options.includeApps) {
173
+ json.scripts.test = "nx test && pnpm test-storybook";
174
+ json.scripts["test-storybook"] = "pnpm test-storybook";
175
+ } else {
176
+ json.scripts.test = "nx test";
177
+ }
178
+
179
+ json.scripts.lint = "pnpm storm-lint all --skip-cspell --skip-alex";
180
+ json.scripts.commit = "pnpm storm-git commit";
181
+ json.scripts["api-extractor"] =
182
+ 'pnpm storm-docs api-extractor --outputPath="docs/api-reference" --clean';
183
+ json.scripts.release = "pnpm storm-git release";
184
+
185
+ json.scripts.format = "nx format:write";
186
+ json.scripts["format-sherif"] =
187
+ "pnpm exec sherif -f -i typescript -i react -i react-dom";
188
+ json.scripts["format-toml"] =
189
+ 'pnpm exec taplo format --config="./node_modules/@storm-software/linting-tools/taplo/config.toml" --cache-path="./node_modules/.cache/storm/taplo"';
190
+ json.scripts["format-readme"] =
191
+ 'pnpm storm-git readme --templates="tools/readme-templates"';
192
+ json.scripts["format-prettier"] =
193
+ "pnpm exec prettier --write --ignore-unknown --no-error-on-unmatched-pattern --cache && git update-index";
194
+
195
+ json.scripts.lint = "pnpm storm-lint all --skip-cspell";
196
+ json.scripts["lint-knip"] = "pnpm exec knip";
197
+ json.scripts["lint-sherif"] =
198
+ "pnpm exec sherif -i typescript -i react -i react-dom";
199
+ json.scripts["lint-ls"] =
200
+ 'pnpm exec ls-lint --config="./node_modules/@storm-software/linting-tools/ls-lint/ls-lint.yml"';
201
+
202
+ json.packageManager ??= `pnpm@${pnpmVersion}`;
203
+ json.engines = {
204
+ node: `>=${nodeVersion}`,
205
+ pnpm: `>=${pnpmVersion}`,
206
+ };
207
+
208
+ // if (options.includeApps) {
209
+ // json.bundlewatch = {
210
+ // files: [
211
+ // {
212
+ // path: "dist/*/*.js",
213
+ // maxSize: "200kB"
214
+ // }
215
+ // ],
216
+ // ci: {
217
+ // trackBranches: ["main", "alpha", "beta"]
218
+ // }
219
+ // };
220
+
221
+ // json.nextBundleAnalysis = {
222
+ // buildOutputDirectory: "dist/apps/web/app/.next"
223
+ // };
224
+ // }
225
+
226
+ return json;
227
+ });
228
+
229
+ generateFiles(tree, path.join(__dirname, "files"), projectRoot, {
230
+ ...options,
231
+ pnpmVersion,
232
+ nodeVersion,
233
+ });
234
+ await formatFiles(tree);
235
+
236
+ let dependencies: Record<string, string> = {
237
+ "@ls-lint/ls-lint": "2.2.3",
238
+ "@ltd/j-toml": "1.38.0",
239
+ "@nx/devkit": "^20.2.2",
240
+ "@nx/eslint-plugin": "^20.2.2",
241
+ "@nx/js": "^20.2.2",
242
+ "@nx/workspace": "^20.2.2",
243
+ "@storm-software/config": "latest",
244
+ "@storm-software/git-tools": "latest",
245
+ "@storm-software/linting-tools": "latest",
246
+ "@storm-software/testing-tools": "latest",
247
+ "@storm-software/workspace-tools": "latest",
248
+ "@storm-software/eslint": "latest",
249
+ "@storm-software/cspell": "latest",
250
+ "@storm-software/prettier": "latest",
251
+ "@taplo/cli": "0.7.0",
252
+ "@types/node": "^20.14.10",
253
+ copyfiles: "2.4.1",
254
+ eslint: "9.5.0",
255
+ jest: "29.7.0",
256
+ "jest-environment-node": "29.7.0",
257
+ knip: "5.25.2",
258
+ lefthook: "1.6.18",
259
+ nx: "^20.2.2",
260
+ prettier: "3.3.2",
261
+ "prettier-plugin-prisma": "5.0.0",
262
+ rimraf: "5.0.7",
263
+ sherif: "0.10.0",
264
+ "ts-jest": "29.1.5",
265
+ "ts-node": "10.9.2",
266
+ tslib: "2.6.3",
267
+ typescript: "5.5.3",
268
+ verdaccio: "5.31.1",
269
+ };
270
+
271
+ if (options.includeApps) {
272
+ dependencies = {
273
+ ...dependencies,
274
+ react: "latest",
275
+ "react-dom": "latest",
276
+ storybook: "latest",
277
+ "@storybook/addons": "latest",
278
+ "@nx/react": "latest",
279
+ "@nx/next": "latest",
280
+ "@nx/node": "latest",
281
+ "@nx/storybook": "latest",
282
+ "jest-environment-jsdom": "29.7.0",
283
+ };
284
+ }
285
+
286
+ if (options.includeRust) {
287
+ dependencies = {
288
+ ...dependencies,
289
+ "@monodon/rust": "1.4.0",
290
+ };
291
+ }
292
+
293
+ if (options.nxCloud) {
294
+ dependencies = {
295
+ ...dependencies,
296
+ "nx-cloud": "latest",
297
+ };
298
+ }
299
+
300
+ await Promise.resolve(
301
+ addDependenciesToPackageJson(
302
+ tree,
303
+ dependencies,
304
+ {},
305
+ joinPathFragments(projectRoot, "package.json"),
306
+ ),
307
+ );
308
+
309
+ return null;
310
+ }
311
+
312
+ export default withRunGenerator<PresetGeneratorSchema>(
313
+ "Storm Workspace Preset Generator",
314
+ presetGeneratorFn,
315
+ );
@@ -0,0 +1,88 @@
1
+ import { defineUntypedSchema } from "untyped";
2
+ import baseGeneratorSchema from "../../base/base-generator.untyped";
3
+
4
+ export default defineUntypedSchema({
5
+ ...baseGeneratorSchema,
6
+ $schema: {
7
+ id: "PresetGeneratorSchema",
8
+ title: "Preset Generator",
9
+ description: "A type definition for a preset generator schema",
10
+ required: ["directory", "name"],
11
+ },
12
+ name: {
13
+ $schema: {
14
+ title: "Name",
15
+ type: "string",
16
+ description: "The name of the workspace",
17
+ },
18
+ },
19
+ organization: {
20
+ $schema: {
21
+ title: "Organization",
22
+ type: "string",
23
+ description: "The organization of the workspace",
24
+ },
25
+ $default: "storm-software",
26
+ },
27
+ includeApps: {
28
+ $schema: {
29
+ title: "Include Apps",
30
+ type: "boolean",
31
+ description: "Include apps in the workspace",
32
+ },
33
+ $default: true,
34
+ },
35
+ includeRust: {
36
+ $schema: {
37
+ title: "Include Rust",
38
+ type: "boolean",
39
+ description: "Include Rust support in the workspace",
40
+ },
41
+ $default: false,
42
+ },
43
+ namespace: {
44
+ $schema: {
45
+ title: "Namespace",
46
+ type: "string",
47
+ description: "The namespace of the workspace",
48
+ },
49
+ $default: "storm-software",
50
+ },
51
+ description: {
52
+ $schema: {
53
+ title: "Description",
54
+ type: "string",
55
+ description: "The description of the workspace",
56
+ },
57
+ },
58
+ repositoryUrl: {
59
+ $schema: {
60
+ title: "Repository URL",
61
+ type: "string",
62
+ description: "The URL of the repository",
63
+ },
64
+ },
65
+ nxCloud: {
66
+ $schema: {
67
+ title: "Nx Cloud",
68
+ type: "string",
69
+ description: "Nx Cloud configuration",
70
+ },
71
+ },
72
+ mode: {
73
+ $schema: {
74
+ title: "Mode",
75
+ type: "string",
76
+ description: "The mode of the Nx client",
77
+ },
78
+ },
79
+ packageManager: {
80
+ $schema: {
81
+ title: "Package Manager",
82
+ type: "string",
83
+ description: "The package manager to use",
84
+ enum: ["npm", "pnpm", "yarn", "bun"],
85
+ },
86
+ $default: "pnpm",
87
+ },
88
+ });
@@ -0,0 +1,20 @@
1
+ // import { createTreeWithEmptyWorkspace } from "@nx/devkit/testing";
2
+ // import { type Tree, readProjectConfiguration } from "@nx/devkit";
3
+
4
+ // import { releaseVersionGenerator } from "./generator";
5
+ // import type { ReleaseVersionGeneratorSchema } from "./schema.d";
6
+
7
+ // describe("release-version generator", () => {
8
+ // let tree: Tree;
9
+ // const options: ReleaseVersionGeneratorSchema = { name: "test" };
10
+
11
+ // beforeEach(() => {
12
+ // tree = createTreeWithEmptyWorkspace();
13
+ // });
14
+
15
+ // it("should run successfully", async () => {
16
+ // await releaseVersionGenerator(tree, options);
17
+ // const config = readProjectConfiguration(tree, "test");
18
+ // expect(config).toBeDefined();
19
+ // });
20
+ // });