@taimos/projen 0.1.62 → 0.1.64

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/.jsii CHANGED
@@ -8,8 +8,9 @@
8
8
  ]
9
9
  },
10
10
  "dependencies": {
11
- "constructs": "^10.4.4",
12
- "projen": ">=0.98.32 <1.0.0"
11
+ "constructs": "^10.5.1",
12
+ "projen": ">=0.100.7 <1.0.0",
13
+ "projen-pipelines": ">=0.3.19"
13
14
  },
14
15
  "dependencyClosure": {
15
16
  "constructs": {
@@ -77,6 +78,13 @@
77
78
  "module": "projen"
78
79
  }
79
80
  }
81
+ },
82
+ "projen-pipelines": {
83
+ "targets": {
84
+ "js": {
85
+ "npm": "projen-pipelines"
86
+ }
87
+ }
80
88
  }
81
89
  },
82
90
  "description": "@taimos/projen",
@@ -92,7 +100,7 @@
92
100
  "hasDefaultInterfaces": true
93
101
  }
94
102
  },
95
- "tscRootDir": "src"
103
+ "tscRootDir": "/home/runner/work/taimos-projen/taimos-projen/src"
96
104
  },
97
105
  "name": "@taimos/projen",
98
106
  "readme": {
@@ -109,6 +117,673 @@
109
117
  }
110
118
  },
111
119
  "types": {
120
+ "@taimos/projen.MonorepoAmplifyApp": {
121
+ "assembly": "@taimos/projen",
122
+ "datatype": true,
123
+ "docs": {
124
+ "remarks": "Renders a single entry under `applications:` in the generated `amplify.yml`.\nAmplify does not auto-detect PNPM workspaces, so the generated build spec\nruns `corepack enable` + a root `pnpm install` and pre-builds any shared\npackages before building the app from its `appRoot` (see ADR-0002).",
125
+ "stability": "stable",
126
+ "summary": "One AWS Amplify Hosting application served from a workspace package."
127
+ },
128
+ "fqn": "@taimos/projen.MonorepoAmplifyApp",
129
+ "kind": "interface",
130
+ "locationInModule": {
131
+ "filename": "src/projects/monorepo.ts",
132
+ "line": 25
133
+ },
134
+ "name": "MonorepoAmplifyApp",
135
+ "properties": [
136
+ {
137
+ "abstract": true,
138
+ "docs": {
139
+ "stability": "stable",
140
+ "summary": "The package path that is the Amplify app root, e.g. `packages/frontend`."
141
+ },
142
+ "immutable": true,
143
+ "locationInModule": {
144
+ "filename": "src/projects/monorepo.ts",
145
+ "line": 29
146
+ },
147
+ "name": "appRoot",
148
+ "type": {
149
+ "primitive": "string"
150
+ }
151
+ },
152
+ {
153
+ "abstract": true,
154
+ "docs": {
155
+ "stability": "stable",
156
+ "summary": "The pnpm package name to build, used as the `--filter` target, e.g. `deploymon-frontend` or `radball-digital-portal`."
157
+ },
158
+ "immutable": true,
159
+ "locationInModule": {
160
+ "filename": "src/projects/monorepo.ts",
161
+ "line": 40
162
+ },
163
+ "name": "buildFilter",
164
+ "type": {
165
+ "primitive": "string"
166
+ }
167
+ },
168
+ {
169
+ "abstract": true,
170
+ "docs": {
171
+ "stability": "stable",
172
+ "summary": "The frontend framework, used to pick build/artifact/cache defaults."
173
+ },
174
+ "immutable": true,
175
+ "locationInModule": {
176
+ "filename": "src/projects/monorepo.ts",
177
+ "line": 34
178
+ },
179
+ "name": "framework",
180
+ "type": {
181
+ "fqn": "@taimos/projen.MonorepoAmplifyFramework"
182
+ }
183
+ },
184
+ {
185
+ "abstract": true,
186
+ "docs": {
187
+ "default": "- `<appRoot>/.next` for Next.js, or\n`<appRoot>/dist/<buildFilter>/browser` for Angular.",
188
+ "stability": "stable",
189
+ "summary": "Override the artifact base directory."
190
+ },
191
+ "immutable": true,
192
+ "locationInModule": {
193
+ "filename": "src/projects/monorepo.ts",
194
+ "line": 66
195
+ },
196
+ "name": "artifactBaseDirectory",
197
+ "optional": true,
198
+ "type": {
199
+ "primitive": "string"
200
+ }
201
+ },
202
+ {
203
+ "abstract": true,
204
+ "docs": {
205
+ "default": "- `pnpm --filter <buildFilter> run build` for Next.js, or\n`pnpm --filter <buildFilter> run build:${BUILD_ENV}` for Angular.",
206
+ "stability": "stable",
207
+ "summary": "Override the build command run in the Amplify `build` phase."
208
+ },
209
+ "immutable": true,
210
+ "locationInModule": {
211
+ "filename": "src/projects/monorepo.ts",
212
+ "line": 58
213
+ },
214
+ "name": "buildCommand",
215
+ "optional": true,
216
+ "type": {
217
+ "primitive": "string"
218
+ }
219
+ },
220
+ {
221
+ "abstract": true,
222
+ "docs": {
223
+ "default": "- `node_modules/**` plus the framework build cache\n(`<appRoot>/.next/cache/**` or `<appRoot>/.angular/cache/**`).",
224
+ "stability": "stable",
225
+ "summary": "Override the Amplify build cache paths."
226
+ },
227
+ "immutable": true,
228
+ "locationInModule": {
229
+ "filename": "src/projects/monorepo.ts",
230
+ "line": 74
231
+ },
232
+ "name": "cachePaths",
233
+ "optional": true,
234
+ "type": {
235
+ "collection": {
236
+ "elementtype": {
237
+ "primitive": "string"
238
+ },
239
+ "kind": "array"
240
+ }
241
+ }
242
+ },
243
+ {
244
+ "abstract": true,
245
+ "docs": {
246
+ "default": "[]",
247
+ "remarks": "Typically the shared API package the app consumes via `workspace:*`,\ne.g. `['@taimos/deploymon-api']`.",
248
+ "stability": "stable",
249
+ "summary": "Workspace packages to build before the app, as `--filter` targets."
250
+ },
251
+ "immutable": true,
252
+ "locationInModule": {
253
+ "filename": "src/projects/monorepo.ts",
254
+ "line": 50
255
+ },
256
+ "name": "preBuildFilters",
257
+ "optional": true,
258
+ "type": {
259
+ "collection": {
260
+ "elementtype": {
261
+ "primitive": "string"
262
+ },
263
+ "kind": "array"
264
+ }
265
+ }
266
+ }
267
+ ],
268
+ "symbolId": "src/projects/monorepo:MonorepoAmplifyApp"
269
+ },
270
+ "@taimos/projen.MonorepoAmplifyFramework": {
271
+ "assembly": "@taimos/projen",
272
+ "docs": {
273
+ "remarks": "Selects sensible defaults for the build command, artifact directory and\ncache paths in the generated `amplify.yml`.",
274
+ "stability": "stable",
275
+ "summary": "The frontend framework an Amplify Hosting application is built with."
276
+ },
277
+ "fqn": "@taimos/projen.MonorepoAmplifyFramework",
278
+ "kind": "enum",
279
+ "locationInModule": {
280
+ "filename": "src/projects/monorepo.ts",
281
+ "line": 10
282
+ },
283
+ "members": [
284
+ {
285
+ "docs": {
286
+ "stability": "stable",
287
+ "summary": "A Next.js app — artifacts in `<appRoot>/.next`, built via `run build`."
288
+ },
289
+ "name": "NEXTJS"
290
+ },
291
+ {
292
+ "docs": {
293
+ "stability": "stable",
294
+ "summary": "An Angular app — artifacts in `<appRoot>/dist/<filter>/browser`, built via `run build:${BUILD_ENV}`."
295
+ },
296
+ "name": "ANGULAR"
297
+ }
298
+ ],
299
+ "name": "MonorepoAmplifyFramework",
300
+ "symbolId": "src/projects/monorepo:MonorepoAmplifyFramework"
301
+ },
302
+ "@taimos/projen.MonorepoApproverMapping": {
303
+ "assembly": "@taimos/projen",
304
+ "datatype": true,
305
+ "docs": {
306
+ "stability": "stable",
307
+ "summary": "One author-to-approvers routing rule for the PR approver assignment."
308
+ },
309
+ "fqn": "@taimos/projen.MonorepoApproverMapping",
310
+ "kind": "interface",
311
+ "locationInModule": {
312
+ "filename": "src/projects/monorepo.ts",
313
+ "line": 125
314
+ },
315
+ "name": "MonorepoApproverMapping",
316
+ "properties": [
317
+ {
318
+ "abstract": true,
319
+ "docs": {
320
+ "stability": "stable",
321
+ "summary": "The GitHub usernames assigned to review when `author` opens a PR."
322
+ },
323
+ "immutable": true,
324
+ "locationInModule": {
325
+ "filename": "src/projects/monorepo.ts",
326
+ "line": 134
327
+ },
328
+ "name": "approvers",
329
+ "type": {
330
+ "collection": {
331
+ "elementtype": {
332
+ "primitive": "string"
333
+ },
334
+ "kind": "array"
335
+ }
336
+ }
337
+ },
338
+ {
339
+ "abstract": true,
340
+ "docs": {
341
+ "stability": "stable",
342
+ "summary": "The GitHub username opening the PR."
343
+ },
344
+ "immutable": true,
345
+ "locationInModule": {
346
+ "filename": "src/projects/monorepo.ts",
347
+ "line": 129
348
+ },
349
+ "name": "author",
350
+ "type": {
351
+ "primitive": "string"
352
+ }
353
+ }
354
+ ],
355
+ "symbolId": "src/projects/monorepo:MonorepoApproverMapping"
356
+ },
357
+ "@taimos/projen.MonorepoProject": {
358
+ "assembly": "@taimos/projen",
359
+ "base": "projen.typescript.TypeScriptProject",
360
+ "docs": {
361
+ "custom": {
362
+ "pjid": "taimos-monorepo"
363
+ },
364
+ "remarks": "The root only orchestrates the workspace — building, testing and linting are\ndelegated to the workspace packages via `pnpm -r`. This project generates the\n`pnpm-workspace.yaml`, the root convenience scripts, a unified PR build\nworkflow and (optionally) an Amplify Hosting build spec. The projen-managed\nsub-projects (api, backend, infra) are added with the `parent`/`outdir`\npattern in the consuming `.projenrc.ts`; plain workspace packages (e.g.\nNext.js apps) are picked up by the `packages/*` glob.",
365
+ "stability": "stable",
366
+ "summary": "Private PNPM-workspace monorepo root, following Taimos ADR-0002."
367
+ },
368
+ "fqn": "@taimos/projen.MonorepoProject",
369
+ "initializer": {
370
+ "docs": {
371
+ "stability": "stable"
372
+ },
373
+ "locationInModule": {
374
+ "filename": "src/projects/monorepo.ts",
375
+ "line": 230
376
+ },
377
+ "parameters": [
378
+ {
379
+ "name": "options",
380
+ "type": {
381
+ "fqn": "@taimos/projen.MonorepoProjectOptions"
382
+ }
383
+ }
384
+ ]
385
+ },
386
+ "kind": "class",
387
+ "locationInModule": {
388
+ "filename": "src/projects/monorepo.ts",
389
+ "line": 216
390
+ },
391
+ "name": "MonorepoProject",
392
+ "properties": [
393
+ {
394
+ "docs": {
395
+ "stability": "stable",
396
+ "summary": "The unified PR build workflow."
397
+ },
398
+ "immutable": true,
399
+ "locationInModule": {
400
+ "filename": "src/projects/monorepo.ts",
401
+ "line": 222
402
+ },
403
+ "name": "prBuildWorkflow",
404
+ "type": {
405
+ "fqn": "projen.github.GithubWorkflow"
406
+ }
407
+ },
408
+ {
409
+ "docs": {
410
+ "stability": "stable",
411
+ "summary": "The generated `pnpm-workspace.yaml`."
412
+ },
413
+ "immutable": true,
414
+ "locationInModule": {
415
+ "filename": "src/projects/monorepo.ts",
416
+ "line": 219
417
+ },
418
+ "name": "workspaceFile",
419
+ "type": {
420
+ "fqn": "projen.YamlFile"
421
+ }
422
+ },
423
+ {
424
+ "docs": {
425
+ "stability": "stable",
426
+ "summary": "The generated `amplify.yml`, if any Amplify apps were configured."
427
+ },
428
+ "immutable": true,
429
+ "locationInModule": {
430
+ "filename": "src/projects/monorepo.ts",
431
+ "line": 225
432
+ },
433
+ "name": "amplifyFile",
434
+ "optional": true,
435
+ "type": {
436
+ "fqn": "projen.YamlFile"
437
+ }
438
+ },
439
+ {
440
+ "docs": {
441
+ "stability": "stable",
442
+ "summary": "The PR approver assignment, if enabled."
443
+ },
444
+ "immutable": true,
445
+ "locationInModule": {
446
+ "filename": "src/projects/monorepo.ts",
447
+ "line": 228
448
+ },
449
+ "name": "assignApprover",
450
+ "optional": true,
451
+ "type": {
452
+ "fqn": "projen-pipelines.GitHubAssignApprover"
453
+ }
454
+ }
455
+ ],
456
+ "symbolId": "src/projects/monorepo:MonorepoProject"
457
+ },
458
+ "@taimos/projen.MonorepoProjectOptions": {
459
+ "assembly": "@taimos/projen",
460
+ "datatype": true,
461
+ "docs": {
462
+ "stability": "stable"
463
+ },
464
+ "fqn": "@taimos/projen.MonorepoProjectOptions",
465
+ "interfaces": [
466
+ "projen.typescript.TypeScriptProjectOptions"
467
+ ],
468
+ "kind": "interface",
469
+ "locationInModule": {
470
+ "filename": "src/projects/monorepo.ts",
471
+ "line": 137
472
+ },
473
+ "name": "MonorepoProjectOptions",
474
+ "properties": [
475
+ {
476
+ "abstract": true,
477
+ "docs": {
478
+ "default": "[]",
479
+ "remarks": "When set, an `amplify.yml` is generated\nwith one entry per app. When omitted, no `amplify.yml` is created.",
480
+ "stability": "stable",
481
+ "summary": "AWS Amplify Hosting applications."
482
+ },
483
+ "immutable": true,
484
+ "locationInModule": {
485
+ "filename": "src/projects/monorepo.ts",
486
+ "line": 200
487
+ },
488
+ "name": "amplifyApps",
489
+ "optional": true,
490
+ "type": {
491
+ "collection": {
492
+ "elementtype": {
493
+ "fqn": "@taimos/projen.MonorepoAmplifyApp"
494
+ },
495
+ "kind": "array"
496
+ }
497
+ }
498
+ },
499
+ {
500
+ "abstract": true,
501
+ "docs": {
502
+ "default": "- hoegertn and hoegerma review each other",
503
+ "remarks": "Only used when `assignApprover` is enabled.",
504
+ "stability": "stable",
505
+ "summary": "Author-to-approvers routing for the PR approver assignment."
506
+ },
507
+ "immutable": true,
508
+ "locationInModule": {
509
+ "filename": "src/projects/monorepo.ts",
510
+ "line": 177
511
+ },
512
+ "name": "approverMapping",
513
+ "optional": true,
514
+ "type": {
515
+ "collection": {
516
+ "elementtype": {
517
+ "fqn": "@taimos/projen.MonorepoApproverMapping"
518
+ },
519
+ "kind": "array"
520
+ }
521
+ }
522
+ },
523
+ {
524
+ "abstract": true,
525
+ "docs": {
526
+ "default": "true",
527
+ "stability": "stable",
528
+ "summary": "Whether to assign PR approvers via `GitHubAssignApprover`."
529
+ },
530
+ "immutable": true,
531
+ "locationInModule": {
532
+ "filename": "src/projects/monorepo.ts",
533
+ "line": 169
534
+ },
535
+ "name": "assignApprover",
536
+ "optional": true,
537
+ "type": {
538
+ "primitive": "boolean"
539
+ }
540
+ },
541
+ {
542
+ "abstract": true,
543
+ "docs": {
544
+ "default": "false",
545
+ "stability": "stable",
546
+ "summary": "Whether to add `cdk-serverless` as a workspace dev dependency."
547
+ },
548
+ "immutable": true,
549
+ "locationInModule": {
550
+ "filename": "src/projects/monorepo.ts",
551
+ "line": 162
552
+ },
553
+ "name": "cdkServerless",
554
+ "optional": true,
555
+ "type": {
556
+ "primitive": "boolean"
557
+ }
558
+ },
559
+ {
560
+ "abstract": true,
561
+ "docs": {
562
+ "default": "['hoegertn', 'hoegerma']",
563
+ "remarks": "Only used when `assignApprover` is enabled.",
564
+ "stability": "stable",
565
+ "summary": "Approvers assigned when no author-specific mapping matches."
566
+ },
567
+ "immutable": true,
568
+ "locationInModule": {
569
+ "filename": "src/projects/monorepo.ts",
570
+ "line": 185
571
+ },
572
+ "name": "defaultApprovers",
573
+ "optional": true,
574
+ "type": {
575
+ "collection": {
576
+ "elementtype": {
577
+ "primitive": "string"
578
+ },
579
+ "kind": "array"
580
+ }
581
+ }
582
+ },
583
+ {
584
+ "abstract": true,
585
+ "docs": {
586
+ "default": "'22'",
587
+ "stability": "stable",
588
+ "summary": "The Node.js version used in the generated build workflow."
589
+ },
590
+ "immutable": true,
591
+ "locationInModule": {
592
+ "filename": "src/projects/monorepo.ts",
593
+ "line": 150
594
+ },
595
+ "name": "nodeVersion",
596
+ "optional": true,
597
+ "type": {
598
+ "primitive": "string"
599
+ }
600
+ },
601
+ {
602
+ "abstract": true,
603
+ "docs": {
604
+ "default": "'10.33.0'",
605
+ "stability": "stable",
606
+ "summary": "The pnpm version pinned for the workspace and CI."
607
+ },
608
+ "immutable": true,
609
+ "locationInModule": {
610
+ "filename": "src/projects/monorepo.ts",
611
+ "line": 143
612
+ },
613
+ "name": "pnpmWorkspaceVersion",
614
+ "optional": true,
615
+ "type": {
616
+ "primitive": "string"
617
+ }
618
+ },
619
+ {
620
+ "abstract": true,
621
+ "docs": {
622
+ "default": "true",
623
+ "stability": "stable",
624
+ "summary": "Whether the unified build workflow also runs `pnpm -r run test`."
625
+ },
626
+ "immutable": true,
627
+ "locationInModule": {
628
+ "filename": "src/projects/monorepo.ts",
629
+ "line": 192
630
+ },
631
+ "name": "runTestsInBuild",
632
+ "optional": true,
633
+ "type": {
634
+ "primitive": "boolean"
635
+ }
636
+ },
637
+ {
638
+ "abstract": true,
639
+ "docs": {
640
+ "stability": "stable",
641
+ "summary": "PNPM workspace tuning for the generated `pnpm-workspace.yaml`."
642
+ },
643
+ "immutable": true,
644
+ "locationInModule": {
645
+ "filename": "src/projects/monorepo.ts",
646
+ "line": 155
647
+ },
648
+ "name": "workspaceOptions",
649
+ "optional": true,
650
+ "type": {
651
+ "fqn": "@taimos/projen.MonorepoWorkspaceOptions"
652
+ }
653
+ }
654
+ ],
655
+ "symbolId": "src/projects/monorepo:MonorepoProjectOptions"
656
+ },
657
+ "@taimos/projen.MonorepoWorkspaceOptions": {
658
+ "assembly": "@taimos/projen",
659
+ "datatype": true,
660
+ "docs": {
661
+ "stability": "stable",
662
+ "summary": "PNPM workspace tuning for the generated `pnpm-workspace.yaml`."
663
+ },
664
+ "fqn": "@taimos/projen.MonorepoWorkspaceOptions",
665
+ "kind": "interface",
666
+ "locationInModule": {
667
+ "filename": "src/projects/monorepo.ts",
668
+ "line": 80
669
+ },
670
+ "name": "MonorepoWorkspaceOptions",
671
+ "properties": [
672
+ {
673
+ "abstract": true,
674
+ "docs": {
675
+ "default": "['@aws-amplify/cli', 'esbuild', 'sharp', 'unrs-resolver']",
676
+ "remarks": "pnpm >= 10 blocks these\nby default. The list populates both `allowBuilds` and\n`onlyBuiltDependencies` so pnpm does not treat `node_modules` as stale.",
677
+ "stability": "stable",
678
+ "summary": "Dependencies allowed to run install/build scripts."
679
+ },
680
+ "immutable": true,
681
+ "locationInModule": {
682
+ "filename": "src/projects/monorepo.ts",
683
+ "line": 103
684
+ },
685
+ "name": "allowedBuilds",
686
+ "optional": true,
687
+ "type": {
688
+ "collection": {
689
+ "elementtype": {
690
+ "primitive": "string"
691
+ },
692
+ "kind": "array"
693
+ }
694
+ }
695
+ },
696
+ {
697
+ "abstract": true,
698
+ "docs": {
699
+ "default": "2880 // 2 days",
700
+ "stability": "stable",
701
+ "summary": "Minimum age in minutes a published version must have before it may be installed (`minimumReleaseAge`)."
702
+ },
703
+ "immutable": true,
704
+ "locationInModule": {
705
+ "filename": "src/projects/monorepo.ts",
706
+ "line": 111
707
+ },
708
+ "name": "minimumReleaseAge",
709
+ "optional": true,
710
+ "type": {
711
+ "primitive": "number"
712
+ }
713
+ },
714
+ {
715
+ "abstract": true,
716
+ "docs": {
717
+ "default": "['projen-pipelines', 'cdk-serverless', '@taimos/projen']",
718
+ "stability": "stable",
719
+ "summary": "Packages exempt from `minimumReleaseAge` so our own tooling can update without the cooldown."
720
+ },
721
+ "immutable": true,
722
+ "locationInModule": {
723
+ "filename": "src/projects/monorepo.ts",
724
+ "line": 119
725
+ },
726
+ "name": "minimumReleaseAgeExclude",
727
+ "optional": true,
728
+ "type": {
729
+ "collection": {
730
+ "elementtype": {
731
+ "primitive": "string"
732
+ },
733
+ "kind": "array"
734
+ }
735
+ }
736
+ },
737
+ {
738
+ "abstract": true,
739
+ "docs": {
740
+ "default": "{}",
741
+ "remarks": "Omitted from the file when empty.",
742
+ "stability": "stable",
743
+ "summary": "Version overrides forced across the whole workspace (the `overrides:` field)."
744
+ },
745
+ "immutable": true,
746
+ "locationInModule": {
747
+ "filename": "src/projects/monorepo.ts",
748
+ "line": 94
749
+ },
750
+ "name": "overrides",
751
+ "optional": true,
752
+ "type": {
753
+ "collection": {
754
+ "elementtype": {
755
+ "primitive": "string"
756
+ },
757
+ "kind": "map"
758
+ }
759
+ }
760
+ },
761
+ {
762
+ "abstract": true,
763
+ "docs": {
764
+ "default": "['packages/*']",
765
+ "stability": "stable",
766
+ "summary": "The workspace package globs."
767
+ },
768
+ "immutable": true,
769
+ "locationInModule": {
770
+ "filename": "src/projects/monorepo.ts",
771
+ "line": 86
772
+ },
773
+ "name": "packages",
774
+ "optional": true,
775
+ "type": {
776
+ "collection": {
777
+ "elementtype": {
778
+ "primitive": "string"
779
+ },
780
+ "kind": "array"
781
+ }
782
+ }
783
+ }
784
+ ],
785
+ "symbolId": "src/projects/monorepo:MonorepoWorkspaceOptions"
786
+ },
112
787
  "@taimos/projen.PrivateTaimosCdkApp": {
113
788
  "assembly": "@taimos/projen",
114
789
  "base": "@taimos/projen.TaimosCdkApp",
@@ -700,6 +1375,6 @@
700
1375
  "symbolId": "src/projects/ts-lib:TaimosTypescriptLibraryOptions"
701
1376
  }
702
1377
  },
703
- "version": "0.1.62",
704
- "fingerprint": "viB/nlmTGjM4mXiwMKBPaqnnTlSCuLoLMTmuvt1myVg="
1378
+ "version": "0.1.64",
1379
+ "fingerprint": "h0cGDvdcBBDcr7Y/+JpFRUdZva3EmqdngZ4Dj3vZX5I="
705
1380
  }