@storm-software/projen 0.8.2 → 0.8.3

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.
@@ -0,0 +1,747 @@
1
+ import {
2
+ joinPaths
3
+ } from "../../chunk-VPWBNTCH.mjs";
4
+ import {
5
+ __name,
6
+ init_esm_shims
7
+ } from "../../chunk-VHOQB7WG.mjs";
8
+
9
+ // src/components/nx-workspace.ts
10
+ init_esm_shims();
11
+ import { NX_DEFAULT_BUILD_OUTPUTS as BASE_NX_DEFAULT_BUILD_OUTPUTS, NxWorkspace } from "@aws/pdk/monorepo/components/nx-workspace";
12
+ import { ProjectUtils } from "@aws/pdk/monorepo/utils";
13
+ import { asUndefinedIfEmpty } from "@aws/pdk/monorepo/utils/common";
14
+ import { readFileSync } from "node:fs";
15
+ import { JsonFile } from "projen";
16
+ var NX_DEFAULT_BUILD_OUTPUTS = [
17
+ ...BASE_NX_DEFAULT_BUILD_OUTPUTS,
18
+ "{workspaceRoot}/dist/{projectRoot}"
19
+ ];
20
+ var StormNxWorkspace = class extends NxWorkspace {
21
+ static {
22
+ __name(this, "StormNxWorkspace");
23
+ }
24
+ /**
25
+ * Retrieves the singleton instance associated with project root.
26
+ *
27
+ * @param scope project instance.
28
+ */
29
+ static of(scope) {
30
+ return scope.root.components.find((c) => ProjectUtils.isNamedInstanceOf(c, NxWorkspace));
31
+ }
32
+ /**
33
+ * Raw nx.json file to support overrides that aren't handled
34
+ * directly.
35
+ *
36
+ * **Attention:** any overrides applied here will not be visible
37
+ * in the properties and only included in final synthesized output,
38
+ * and likely to override native handling.
39
+ * @advanced
40
+ */
41
+ nxJson;
42
+ /**
43
+ * Automatically infer NxProject targets based on project type.
44
+ * @experimental
45
+ */
46
+ autoInferProjectTargets = true;
47
+ /**
48
+ * List of cacheable operations.
49
+ */
50
+ cacheableOperations = [
51
+ "lint-sherif",
52
+ "lint-knip",
53
+ "lint-ls",
54
+ "lint",
55
+ "format-readme",
56
+ "format-toml",
57
+ "format-prettier",
58
+ "format",
59
+ "clean",
60
+ "build-base",
61
+ "build",
62
+ "test",
63
+ "e2e",
64
+ "docs",
65
+ "nx-release-publish"
66
+ ];
67
+ /**
68
+ * Some presets use the extends property to hide some default options in a separate json file.
69
+ * The json file specified in the extends property is located in your node_modules folder.
70
+ * The Nx preset files are specified in the nx package.
71
+ *
72
+ * @default "@storm-software/workspace-tools/config/base.json"
73
+ */
74
+ extends = "@storm-software/workspace-tools/config/base.json";
75
+ /**
76
+ * Plugins for extending the project graph
77
+ */
78
+ nxPlugins = [
79
+ {
80
+ "plugin": "@nx/eslint/plugin",
81
+ "exclude": [
82
+ "packages/**/__fixtures__/**/*"
83
+ ],
84
+ "options": {
85
+ "targetName": "lint",
86
+ "useFlatConfig": true
87
+ }
88
+ },
89
+ "@storm-software/workspace-tools/plugins/typescript",
90
+ "@storm-software/workspace-tools/plugins/typescript/untyped",
91
+ "@storm-software/workspace-tools/plugins/typescript/tsup"
92
+ ];
93
+ /**
94
+ * Default options for `nx affected`
95
+ */
96
+ affected = {
97
+ defaultBase: "main"
98
+ };
99
+ /**
100
+ * Named inputs
101
+ * @see https://nx.dev/reference/nx-json#inputs-&-namedinputs
102
+ */
103
+ namedInputs = {
104
+ // https://nx.dev/more-concepts/customizing-inputs#defaults
105
+ "sharedGlobals": [
106
+ "{workspaceRoot}/.github/**/*",
107
+ "{workspaceRoot}/assets/**/*",
108
+ "{workspaceRoot}/tsconfig.*.json",
109
+ "{workspaceRoot}/.npmrc",
110
+ "{workspaceRoot}/.npmignore",
111
+ "{workspaceRoot}/package.json",
112
+ "{workspaceRoot}/pnpm-workspace.yaml",
113
+ "{workspaceRoot}/pnpm-lock.yaml",
114
+ "{workspaceRoot}/package-lock.yaml",
115
+ "{workspaceRoot}/yarn-lock.yaml",
116
+ "{workspaceRoot}/bun.lockb",
117
+ "{workspaceRoot}/LICENSE",
118
+ "{workspaceRoot}/.gitattributes",
119
+ "{workspaceRoot}/.gitignore",
120
+ "{workspaceRoot}/nx.json",
121
+ "{workspaceRoot}/.nxignore",
122
+ "{workspaceRoot}/storm-workspace.json",
123
+ "{workspaceRoot}/storm-workspace.*.json",
124
+ "{workspaceRoot}/.storm-workspace/config.json",
125
+ "{workspaceRoot}/.storm-workspace/config.*.json",
126
+ "{workspaceRoot}/storm-workspace.yaml",
127
+ "{workspaceRoot}/storm-workspace.*.yaml",
128
+ "{workspaceRoot}/.storm-workspace/config.yaml",
129
+ "{workspaceRoot}/.storm-workspace/config.*.yaml",
130
+ "{workspaceRoot}/storm-workspace.toml",
131
+ "{workspaceRoot}/storm-workspace.*.toml",
132
+ "{workspaceRoot}/.storm-workspace/config.toml",
133
+ "{workspaceRoot}/.storm-workspace/config.*.toml",
134
+ "{workspaceRoot}/storm-workspace.config.js",
135
+ "{workspaceRoot}/.storm-workspace/config.js",
136
+ "{workspaceRoot}/.storm-workspace/config.*.js",
137
+ "{workspaceRoot}/storm-workspace.config.ts",
138
+ "{workspaceRoot}/.storm-workspace/config.ts",
139
+ "{workspaceRoot}/.storm-workspace/config.*.ts",
140
+ "{workspaceRoot}/.env",
141
+ "{workspaceRoot}/.env.local"
142
+ ],
143
+ "default": [
144
+ "sharedGlobals",
145
+ "{projectRoot}/**/*"
146
+ ],
147
+ "production": [
148
+ "{projectRoot}/**/*",
149
+ "!{projectRoot}/tools/**/*",
150
+ "!{projectRoot}/scripts/**/*",
151
+ "!{projectRoot}/node_modules/**/*",
152
+ "!{projectRoot}/api-extractor.json",
153
+ "!{projectRoot}/tsdoc.json",
154
+ "!{projectRoot}/typedoc.json",
155
+ "!{projectRoot}/.eslint-doc-generatorrc.js",
156
+ "!{projectRoot}/.eslint-doc-generatorrc.json",
157
+ "!{projectRoot}/.storybook/**/*",
158
+ "!{projectRoot}/tsconfig.storybook.json",
159
+ "!{projectRoot}/jest.config.ts",
160
+ "!{projectRoot}/tsconfig.spec.json",
161
+ "!{projectRoot}/src/test-setup.[jt]s",
162
+ "!{projectRoot}/test-setup.[jt]s",
163
+ "!{projectRoot}/tsconfig.spec.json",
164
+ "!{projectRoot}/.eslintignore",
165
+ "!{projectRoot}/.eslintrc.json",
166
+ "!{projectRoot}/.eslintrc.cjs",
167
+ "!{projectRoot}/eslint.config.js",
168
+ "!{projectRoot}/eslint.config.cjs",
169
+ "!{projectRoot}/eslint.config.mjs",
170
+ "!{projectRoot}/biome.toml",
171
+ "!{projectRoot}/biome.json",
172
+ "!{projectRoot}/lefthook.yaml",
173
+ "!{projectRoot}/.markdownlint.json",
174
+ "!{projectRoot}/.markdownlint-cli2.cjs",
175
+ "!{projectRoot}/.prettierrc",
176
+ "!{projectRoot}/.prettierignore",
177
+ "!{projectRoot}/docs/**/*",
178
+ "!{projectRoot}/**/*.stories.@(js|jsx|ts|tsx|mdx)",
179
+ "!{projectRoot}/benches/**/*",
180
+ "!{projectRoot}/e2e/**/*",
181
+ "!{projectRoot}/tests/**/*",
182
+ "!{projectRoot}/testing/**/*",
183
+ "!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)",
184
+ "!{projectRoot}/tsconfig.spec.json"
185
+ ],
186
+ "testing": [
187
+ "sharedGlobals",
188
+ "{workspaceRoot}/jest.config.ts",
189
+ "{workspaceRoot}/jest.preset.js",
190
+ "{workspaceRoot}/benches/**/*",
191
+ "{workspaceRoot}/e2e/**/*",
192
+ "{workspaceRoot}/tests/**/*",
193
+ "{workspaceRoot}/testing/**/*",
194
+ "{workspaceRoot}/coverage/**/*",
195
+ "{projectRoot}/project.json",
196
+ "{projectRoot}/README.md",
197
+ "{projectRoot}/CHANGELOG.md",
198
+ "{projectRoot}/.env",
199
+ "{projectRoot}/.env.local",
200
+ "{projectRoot}/jest.config.ts",
201
+ "{projectRoot}/tsconfig.spec.json",
202
+ "{projectRoot}/src/test-setup.[jt]s",
203
+ "{projectRoot}/test-setup.[jt]s",
204
+ "{projectRoot}/tsconfig.spec.json",
205
+ "{workspaceRoot}/jest.config.ts",
206
+ "{workspaceRoot}/jest.preset.js",
207
+ "{workspaceRoot}/benches/**/*",
208
+ "{workspaceRoot}/e2e/**/*",
209
+ "{workspaceRoot}/tests/**/*",
210
+ "{workspaceRoot}/testing/**/*",
211
+ "{workspaceRoot}/coverage/**/*",
212
+ "{projectRoot}/benches/**/*",
213
+ "{projectRoot}/e2e/**/*",
214
+ "{projectRoot}/tests/**/*",
215
+ "{projectRoot}/testing/**/*",
216
+ "{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)",
217
+ "{projectRoot}/tsconfig.spec.json"
218
+ ],
219
+ "linting": [
220
+ "sharedGlobals",
221
+ "{workspaceRoot}/.eslintignore",
222
+ "{workspaceRoot}/eslintrc.json",
223
+ "{workspaceRoot}/.eslintrc.json",
224
+ "{workspaceRoot}/.eslintrc.cjs",
225
+ "{workspaceRoot}/eslint.config.js",
226
+ "{workspaceRoot}/eslint.config.cjs",
227
+ "{workspaceRoot}/eslint.config.mjs",
228
+ "{workspaceRoot}/biome.toml",
229
+ "{workspaceRoot}/biome.json",
230
+ "{workspaceRoot}/lefthook.yaml",
231
+ "{workspaceRoot}/.markdownlint.json",
232
+ "{workspaceRoot}/.markdownlint-cli2.cjs",
233
+ "{workspaceRoot}/.prettierrc",
234
+ "{workspaceRoot}/prettier.config.js",
235
+ "{workspaceRoot}/.prettierignore",
236
+ "{projectRoot}/project.json",
237
+ "{projectRoot}/README.md",
238
+ "{projectRoot}/CHANGELOG.md",
239
+ "{projectRoot}/.env",
240
+ "{projectRoot}/.env.local",
241
+ "{projectRoot}/.eslintignore",
242
+ "{projectRoot}/.eslintrc",
243
+ "{projectRoot}/.eslintrc.json",
244
+ "{projectRoot}/.eslintrc.cjs",
245
+ "{projectRoot}/eslint.config.js",
246
+ "{projectRoot}/eslint.config.cjs",
247
+ "{projectRoot}/eslint.config.mjs",
248
+ "{projectRoot}/biome.toml",
249
+ "{projectRoot}/biome.json",
250
+ "{projectRoot}/lefthook.yaml",
251
+ "{projectRoot}/.markdownlint.json",
252
+ "{projectRoot}/.markdownlint-cli2.cjs",
253
+ "{projectRoot}/.prettierrc",
254
+ "{projectRoot}/.prettierignore"
255
+ ],
256
+ "documentation": [
257
+ "sharedGlobals",
258
+ "{workspaceRoot}/api-extractor.json",
259
+ "{workspaceRoot}/tsdoc.json",
260
+ "{workspaceRoot}/typedoc.json",
261
+ "{workspaceRoot}/.eslint-doc-generatorrc.js",
262
+ "{workspaceRoot}/.eslint-doc-generatorrc.json",
263
+ "{workspaceRoot}/contentlayer.config.ts",
264
+ "{workspaceRoot}/*.md",
265
+ "{workspaceRoot}/*.mdx",
266
+ "{workspaceRoot}/docs/**/*",
267
+ "{workspaceRoot}/.storybook/**/*",
268
+ "{projectRoot}/project.json",
269
+ "{projectRoot}/README.md",
270
+ "{projectRoot}/CHANGELOG.md",
271
+ "{projectRoot}/.env",
272
+ "{projectRoot}/.env.local",
273
+ "{projectRoot}/api-extractor.json",
274
+ "{projectRoot}/tsdoc.json",
275
+ "{projectRoot}/typedoc.json",
276
+ "{projectRoot}/.eslint-doc-generatorrc.js",
277
+ "{projectRoot}/.eslint-doc-generatorrc.json",
278
+ "{projectRoot}/contentlayer.config.ts",
279
+ "{projectRoot}/.storybook/**/*",
280
+ "{projectRoot}/tsconfig.storybook.json",
281
+ "{projectRoot}/README.md",
282
+ "{projectRoot}/docs/**/*",
283
+ "{projectRoot}/**/*.stories.@(js|jsx|ts|tsx|mdx)",
284
+ "!{projectRoot}/benches/**/*",
285
+ "!{projectRoot}/e2e/**/*",
286
+ "!{projectRoot}/tests/**/*",
287
+ "!{projectRoot}/testing/**/*",
288
+ "!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)",
289
+ "!{projectRoot}/tsconfig.spec.json"
290
+ ],
291
+ "rust": [
292
+ "sharedGlobals",
293
+ "{workspaceRoot}/Cargo.toml",
294
+ "{workspaceRoot}/Cargo.lock",
295
+ "{workspaceRoot}/.cargo/config.toml",
296
+ "{workspaceRoot}/rust-toolchain",
297
+ "{workspaceRoot}/rustfmt.toml",
298
+ "{workspaceRoot}/deny.toml",
299
+ "{projectRoot}/Cargo.toml",
300
+ "{projectRoot}/.cargo/config.toml",
301
+ "{projectRoot}/project.json",
302
+ "{projectRoot}/README.md",
303
+ "{projectRoot}/CHANGELOG.md",
304
+ "{projectRoot}/.env",
305
+ "{projectRoot}/.env.local",
306
+ "{projectRoot}/**/*.rs",
307
+ "{projectRoot}/**/*.proto",
308
+ "{projectRoot}/**/*.acid",
309
+ "{projectRoot}/**/*.acidic",
310
+ "{projectRoot}/**/*.prisma",
311
+ "{projectRoot}/src/**/*.json",
312
+ "{projectRoot}/src/**/*.jsonc",
313
+ "{projectRoot}/src/**/*.yaml",
314
+ "{projectRoot}/src/**/*.yml",
315
+ "{projectRoot}/src/**/*.toml",
316
+ "!{projectRoot}/README.md",
317
+ "!{projectRoot}/docs/**/*",
318
+ "!{projectRoot}/benches/**/*",
319
+ "!{projectRoot}/e2e/**/*",
320
+ "!{projectRoot}/tests/**/*",
321
+ "!{projectRoot}/testing/**/*"
322
+ ],
323
+ "typescript": [
324
+ "sharedGlobals",
325
+ "!{projectRoot}/tsconfig.spec.json",
326
+ "!{projectRoot}/tsconfig.storybook.json",
327
+ "!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)",
328
+ "!{projectRoot}/**/*.stories.@(js|jsx|ts|tsx|mdx)",
329
+ "!{projectRoot}/node_modules/**/*",
330
+ "!{projectRoot}/benches/**/*",
331
+ "!{projectRoot}/e2e/**/*",
332
+ "!{projectRoot}/tests/**/*",
333
+ "!{projectRoot}/testing/**/*",
334
+ "!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)",
335
+ "!{projectRoot}/tsconfig.spec.json",
336
+ "!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)",
337
+ "!{projectRoot}/**/*.stories.@(js|jsx|ts|tsx|mdx)",
338
+ "!{projectRoot}/node_modules/**/*",
339
+ "{projectRoot}/package.json",
340
+ "{projectRoot}/tsconfig.json",
341
+ "{projectRoot}/tsconfig.*.json",
342
+ "{projectRoot}/project.json",
343
+ "{projectRoot}/README.md",
344
+ "{projectRoot}/CHANGELOG.md",
345
+ "{projectRoot}/.env",
346
+ "{projectRoot}/.env.*",
347
+ "{projectRoot}/README.md",
348
+ "{projectRoot}/docs/**/*",
349
+ "{projectRoot}/**/*.stories.@(js|jsx|ts|tsx|mdx)",
350
+ "{projectRoot}/**/*.proto",
351
+ "{projectRoot}/**/*.acid",
352
+ "{projectRoot}/**/*.acidic",
353
+ "{projectRoot}/**/*.prisma",
354
+ "{projectRoot}/src/**/*.cts",
355
+ "{projectRoot}/src/**/*.mts",
356
+ "{projectRoot}/src/**/*.ts",
357
+ "{projectRoot}/src/**/*.tsx",
358
+ "{projectRoot}/src/**/*.graphql",
359
+ "{projectRoot}/src/**/*.gql",
360
+ "{projectRoot}/src/**/*.js",
361
+ "{projectRoot}/src/**/*.cjs",
362
+ "{projectRoot}/src/**/*.mjs",
363
+ "{projectRoot}/src/**/*.jsx",
364
+ "{projectRoot}/src/**/*.json",
365
+ "{projectRoot}/src/**/*.jsonc",
366
+ "{projectRoot}/src/**/*.yaml",
367
+ "{projectRoot}/src/**/*.yml",
368
+ "{projectRoot}/src/**/*.toml",
369
+ "{projectRoot}/src/**/*.md",
370
+ "{projectRoot}/src/**/*.mdx",
371
+ "{projectRoot}/build.*.[jt]s?(x)",
372
+ "{projectRoot}/tsup.*.[jt]s?(x)",
373
+ "{projectRoot}/contentlayer.*.[jt]s?(x)",
374
+ "{projectRoot}/bin/**/*",
375
+ "{projectRoot}/tools/**/*",
376
+ "{projectRoot}/helpers/**/*",
377
+ "{projectRoot}/scripts/**/*"
378
+ ]
379
+ };
380
+ /**
381
+ * Dependencies between different target names across all projects
382
+ *
383
+ * @see https://nx.dev/reference/nx-json#target-defaults
384
+ */
385
+ targetDefaults = {
386
+ "lint-ls": {
387
+ outputs: [
388
+ "{projectRoot}/**/*"
389
+ ],
390
+ inputs: [
391
+ "linting",
392
+ "default",
393
+ "^production"
394
+ ],
395
+ dependsOn: [
396
+ "^lint-ls"
397
+ ],
398
+ executor: "nx:run-commands",
399
+ options: {
400
+ command: 'pnpm exec ls-lint --config="./node_modules/@storm-software/linting-tools/ls-lint/.ls-lint.yml" ',
401
+ color: true
402
+ }
403
+ },
404
+ "lint-sherif": {
405
+ outputs: [
406
+ "{projectRoot}/package.json"
407
+ ],
408
+ inputs: [
409
+ "{workspaceRoot}/package.json",
410
+ "{projectRoot}/package.json"
411
+ ],
412
+ executor: "nx:run-commands",
413
+ options: {
414
+ command: "pnpm exec sherif -i react -i react-dom -i typescript"
415
+ }
416
+ },
417
+ "lint-knip": {
418
+ inputs: [
419
+ "linting",
420
+ "default",
421
+ "^production"
422
+ ],
423
+ executor: "nx:run-commands",
424
+ options: {
425
+ command: "pnpm exec knip"
426
+ }
427
+ },
428
+ lint: {
429
+ outputs: [
430
+ "{projectRoot}"
431
+ ],
432
+ inputs: [
433
+ "linting",
434
+ "default",
435
+ "^production"
436
+ ],
437
+ dependsOn: [
438
+ "lint-ls",
439
+ "lint-sherif",
440
+ "lint-knip",
441
+ "lint-docs",
442
+ "^lint"
443
+ ],
444
+ executor: "nx:run-commands",
445
+ options: {
446
+ command: 'echo Linted the project files in "{projectRoot}" '
447
+ }
448
+ },
449
+ "format-toml": {
450
+ inputs: [
451
+ "linting",
452
+ "{projectRoot}/**/*.toml"
453
+ ],
454
+ outputs: [
455
+ "{projectRoot}/**/*.toml"
456
+ ],
457
+ dependsOn: [
458
+ "^format-toml"
459
+ ],
460
+ executor: "nx:run-commands",
461
+ options: {
462
+ command: 'pnpm exec taplo format --colors="always" --config="./node_modules/@storm-software/linting-tools/taplo/config.toml" --cache-path="./tmp/taplo/{projectRoot}"',
463
+ color: true
464
+ }
465
+ },
466
+ "format-readme": {
467
+ inputs: [
468
+ "linting",
469
+ "documentation",
470
+ "{projectRoot}/{README.md,package.json,Cargo.toml,executors.json,generators.json}",
471
+ "default",
472
+ "^production"
473
+ ],
474
+ outputs: [
475
+ "{projectRoot}/README.md"
476
+ ],
477
+ dependsOn: [
478
+ "^format-readme"
479
+ ],
480
+ executor: "nx:run-commands",
481
+ options: {
482
+ command: 'pnpm exec storm-git readme-gen --templates="./tools/readme-templates" --project="{projectName}"',
483
+ color: true
484
+ }
485
+ },
486
+ "format-prettier": {
487
+ inputs: [
488
+ "linting",
489
+ "default",
490
+ "^production"
491
+ ],
492
+ dependsOn: [
493
+ "^format-prettier"
494
+ ],
495
+ executor: "nx:run-commands",
496
+ options: {
497
+ command: 'pnpm exec prettier "{projectRoot}/**/*" --write --ignore-unknown --no-error-on-unmatched-pattern --config="./node_modules/@storm-software/prettier/config.json" --ignore-path="./node_modules/@storm-software/prettier/.prettierignore" --cache --cache-location="./tmp/prettier/{projectRoot}" ',
498
+ color: true
499
+ }
500
+ },
501
+ format: {
502
+ inputs: [
503
+ "linting",
504
+ "default",
505
+ "^production"
506
+ ],
507
+ outputs: [
508
+ "{projectRoot}"
509
+ ],
510
+ dependsOn: [
511
+ "format-toml",
512
+ "format-readme",
513
+ "format-prettier",
514
+ "^format"
515
+ ],
516
+ executor: "nx:run-commands",
517
+ options: {
518
+ command: 'echo Formatted the project files in "{projectRoot}" '
519
+ }
520
+ },
521
+ clean: {
522
+ inputs: [
523
+ "default",
524
+ "^production"
525
+ ],
526
+ outputs: NX_DEFAULT_BUILD_OUTPUTS,
527
+ dependsOn: [
528
+ "^clean"
529
+ ],
530
+ executor: "nx:run-commands",
531
+ options: {
532
+ commands: [
533
+ "pnpm exec rimraf --glob {projectRoot}/dist",
534
+ "pnpm exec rimraf dist/{projectRoot}"
535
+ ]
536
+ }
537
+ },
538
+ "build-untyped": {
539
+ dependsOn: [
540
+ "^build"
541
+ ]
542
+ },
543
+ "build-base": {
544
+ dependsOn: [
545
+ "build-untyped",
546
+ "^build"
547
+ ]
548
+ },
549
+ "build-local": {
550
+ inputs: [
551
+ "default",
552
+ "^production"
553
+ ],
554
+ dependsOn: [
555
+ "build-base",
556
+ "build-untyped",
557
+ "^build"
558
+ ]
559
+ },
560
+ build: {
561
+ inputs: [
562
+ "default",
563
+ "^production"
564
+ ],
565
+ outputs: NX_DEFAULT_BUILD_OUTPUTS,
566
+ dependsOn: [
567
+ "build-base",
568
+ "build-untyped",
569
+ "^build"
570
+ ]
571
+ },
572
+ rebuild: {
573
+ inputs: [
574
+ "default",
575
+ "^production"
576
+ ],
577
+ executor: "nx:run-commands",
578
+ dependsOn: [
579
+ "clean",
580
+ "^build"
581
+ ],
582
+ options: {
583
+ command: "pnpm exec nx run {projectName}:build",
584
+ color: true,
585
+ cwd: "{workspaceRoot}"
586
+ }
587
+ },
588
+ docs: {
589
+ outputs: [
590
+ "{options.outputPath}"
591
+ ],
592
+ inputs: [
593
+ "linting",
594
+ "documentation",
595
+ "default",
596
+ "^production"
597
+ ],
598
+ dependsOn: [
599
+ "build",
600
+ "format-readme",
601
+ "lint-docs",
602
+ "^docs"
603
+ ]
604
+ },
605
+ test: {
606
+ inputs: [
607
+ "testing",
608
+ "default",
609
+ "^production"
610
+ ],
611
+ dependsOn: [
612
+ "build",
613
+ "^test"
614
+ ]
615
+ },
616
+ e2e: {
617
+ inputs: [
618
+ "testing",
619
+ "default",
620
+ "^production"
621
+ ],
622
+ dependsOn: [
623
+ "test",
624
+ "^e2e"
625
+ ]
626
+ },
627
+ "nx-release-publish": {
628
+ inputs: [
629
+ "default",
630
+ "^production"
631
+ ],
632
+ dependsOn: [
633
+ "build",
634
+ "^nx-release-publish"
635
+ ]
636
+ }
637
+ };
638
+ /**
639
+ * Configuration for Nx releases
640
+ */
641
+ release = {};
642
+ /**
643
+ * The number of parallel tasks to run.
644
+ *
645
+ * @defaultValue 5
646
+ */
647
+ parallel = 5;
648
+ /**
649
+ * Should the daemon be used to run tasks?
650
+ *
651
+ * @defaultValue true
652
+ */
653
+ useDaemonProcess = true;
654
+ /**
655
+ * Set this to false to disable adding inference plugins when generating new projects
656
+ *
657
+ * @defaultValue true
658
+ */
659
+ useInferencePlugins = true;
660
+ /**
661
+ * The default base branch for new projects.
662
+ *
663
+ * @defaultValue "main"
664
+ */
665
+ defaultBase = "main";
666
+ /**
667
+ * The CLI configuration for the workspace.
668
+ */
669
+ cli;
670
+ constructor(project) {
671
+ super(project);
672
+ let stormConfig;
673
+ if (project.root.outdir) {
674
+ const stormConfigJson = readFileSync(joinPaths(project.root.outdir, "storm-workspace.json"), "utf8");
675
+ stormConfig = JSON.parse(stormConfigJson);
676
+ }
677
+ if (stormConfig?.namespace) {
678
+ this.npmScope = stormConfig?.namespace;
679
+ }
680
+ if (stormConfig?.branch) {
681
+ this.defaultBase = stormConfig?.branch;
682
+ this.affected = {
683
+ defaultBase: stormConfig?.branch
684
+ };
685
+ }
686
+ if (stormConfig?.packageManager) {
687
+ this.cli = {
688
+ packageManager: stormConfig?.packageManager
689
+ };
690
+ }
691
+ this.nxJson = new JsonFile(project, "nx.json", {
692
+ obj: {
693
+ extends: /* @__PURE__ */ __name(() => this.extends, "extends"),
694
+ npmScope: /* @__PURE__ */ __name(() => this.npmScope, "npmScope"),
695
+ affected: /* @__PURE__ */ __name(() => asUndefinedIfEmpty(this.affected), "affected"),
696
+ workspaceLayout: /* @__PURE__ */ __name(() => asUndefinedIfEmpty(this.workspaceLayout), "workspaceLayout"),
697
+ plugins: /* @__PURE__ */ __name(() => asUndefinedIfEmpty(this.nxPlugins), "plugins"),
698
+ namedInputs: /* @__PURE__ */ __name(() => asUndefinedIfEmpty(this.namedInputs), "namedInputs"),
699
+ targetDefaults: /* @__PURE__ */ __name(() => asUndefinedIfEmpty(this.targetDefaults), "targetDefaults"),
700
+ tasksRunnerOptions: /* @__PURE__ */ __name(() => asUndefinedIfEmpty(this.tasksRunnerOptions), "tasksRunnerOptions"),
701
+ parallel: /* @__PURE__ */ __name(() => this.parallel, "parallel"),
702
+ useDaemonProcess: /* @__PURE__ */ __name(() => this.useDaemonProcess, "useDaemonProcess"),
703
+ useInferencePlugins: /* @__PURE__ */ __name(() => this.useInferencePlugins, "useInferencePlugins"),
704
+ release: /* @__PURE__ */ __name(() => asUndefinedIfEmpty(this.release), "release")
705
+ }
706
+ });
707
+ }
708
+ /**
709
+ * Adds a release group to the workspace.
710
+ *
711
+ * @param name The name of the release group
712
+ * @param projects The projects in the release group
713
+ * @param projectsRelationship The relationship between the projects
714
+ * @param releaseTagPattern The release tag pattern
715
+ * @param groupPreVersionCommand The command to run before versioning
716
+ */
717
+ addReleaseGroup(name, projects, projectsRelationship = "independent", releaseTagPattern = "{projectName}@{version}", groupPreVersionCommand = "pnpm build") {
718
+ this.release ??= {
719
+ groups: {},
720
+ changelog: {
721
+ entryWhenNoChanges: false,
722
+ renderOptions: {
723
+ authors: false,
724
+ commitReferences: true,
725
+ versionTitleDate: true
726
+ }
727
+ }
728
+ };
729
+ this.release.groups[name] = {
730
+ projects,
731
+ projectsRelationship,
732
+ releaseTagPattern,
733
+ version: {
734
+ groupPreVersionCommand,
735
+ generator: "@storm-software/workspace-tools:release-version",
736
+ generatorOptions: {
737
+ currentVersionResolver: "git-tag",
738
+ specifierSource: "conventional-commits"
739
+ }
740
+ }
741
+ };
742
+ }
743
+ };
744
+ export {
745
+ NX_DEFAULT_BUILD_OUTPUTS,
746
+ StormNxWorkspace
747
+ };