@taimos/projen 0.1.74 → 0.1.75

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/API.md CHANGED
@@ -46,8 +46,10 @@ new GitHubProductionRelease(scope: GitHubProject, options?: GitHubProductionRele
46
46
  | --- | --- |
47
47
  | <code><a href="#@taimos/projen.GitHubProductionRelease.toString">toString</a></code> | Returns a string representation of this construct. |
48
48
  | <code><a href="#@taimos/projen.GitHubProductionRelease.with">with</a></code> | Applies one or more mixins to this construct. |
49
+ | <code><a href="#@taimos/projen.GitHubProductionRelease.postProjectCreation">postProjectCreation</a></code> | Called once, right after `postSynthesize()`, only when the project is created for the first time. |
49
50
  | <code><a href="#@taimos/projen.GitHubProductionRelease.postSynthesize">postSynthesize</a></code> | Called after synthesis. |
50
51
  | <code><a href="#@taimos/projen.GitHubProductionRelease.preSynthesize">preSynthesize</a></code> | Called before synthesis. |
52
+ | <code><a href="#@taimos/projen.GitHubProductionRelease.projectCreation">projectCreation</a></code> | Called once, right after `synthesize()`, only when the project is created for the first time. |
51
53
  | <code><a href="#@taimos/projen.GitHubProductionRelease.synthesize">synthesize</a></code> | Synthesizes files to the project output directory. |
52
54
 
53
55
  ---
@@ -81,6 +83,27 @@ The mixins to apply.
81
83
 
82
84
  ---
83
85
 
86
+ ##### `postProjectCreation` <a name="postProjectCreation" id="@taimos/projen.GitHubProductionRelease.postProjectCreation"></a>
87
+
88
+ ```typescript
89
+ public postProjectCreation(initProject: InitProject): void
90
+ ```
91
+
92
+ Called once, right after `postSynthesize()`, only when the project is created for the first time.
93
+
94
+ It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
95
+ It is also skipped when post-synthesis steps are disabled, e.g. `--no-post` or `PROJEN_DISABLE_POST`.
96
+ Use it for one-off setup that can be turned off by the user, like running a task to give the user immediate
97
+ feedback on their new project. Order across components is not guaranteed.
98
+
99
+ ###### `initProject`<sup>Required</sup> <a name="initProject" id="@taimos/projen.GitHubProductionRelease.postProjectCreation.parameter.initProject"></a>
100
+
101
+ - *Type:* projen.InitProject
102
+
103
+ Details about how the project was created, e.g. its type and the original CLI args.
104
+
105
+ ---
106
+
84
107
  ##### `postSynthesize` <a name="postSynthesize" id="@taimos/projen.GitHubProductionRelease.postSynthesize"></a>
85
108
 
86
109
  ```typescript
@@ -99,6 +122,25 @@ public preSynthesize(): void
99
122
 
100
123
  Called before synthesis.
101
124
 
125
+ ##### `projectCreation` <a name="projectCreation" id="@taimos/projen.GitHubProductionRelease.projectCreation"></a>
126
+
127
+ ```typescript
128
+ public projectCreation(initProject: InitProject): void
129
+ ```
130
+
131
+ Called once, right after `synthesize()`, only when the project is created for the first time.
132
+
133
+ It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
134
+ Use it for deterministic, one-off file generation. Order across components is not guaranteed.
135
+
136
+ ###### `initProject`<sup>Required</sup> <a name="initProject" id="@taimos/projen.GitHubProductionRelease.projectCreation.parameter.initProject"></a>
137
+
138
+ - *Type:* projen.InitProject
139
+
140
+ Details about how the project was created, e.g. its type and the original CLI args.
141
+
142
+ ---
143
+
102
144
  ##### `synthesize` <a name="synthesize" id="@taimos/projen.GitHubProductionRelease.synthesize"></a>
103
145
 
104
146
  ```typescript
@@ -468,8 +510,10 @@ Synthesize all project files into `outdir`.
468
510
  2. Delete all generated files
469
511
  3. Synthesize all subprojects
470
512
  4. Synthesize all components of this project
471
- 5. Call "postSynthesize()" for all components of this project
472
- 6. Call "this.postSynthesize()"
513
+ 5. Call "projectCreation()" for all components, only if the project is being created for the first time
514
+ 6. Call "postSynthesize()" for all components of this project
515
+ 7. Call "this.postSynthesize()"
516
+ 8. Call "postProjectCreation()" for all components, only if the project is being created for the first time
473
517
 
474
518
  ##### `tryFindFile` <a name="tryFindFile" id="@taimos/projen.MonorepoProject.tryFindFile"></a>
475
519
 
@@ -865,6 +909,7 @@ When given a project, this it the project itself.
865
909
  | <code><a href="#@taimos/projen.MonorepoProject.property.upgradeWorkflow">upgradeWorkflow</a></code> | <code>projen.javascript.UpgradeDependencies</code> | The upgrade workflow. |
866
910
  | <code><a href="#@taimos/projen.MonorepoProject.property.docsDirectory">docsDirectory</a></code> | <code>string</code> | *No description.* |
867
911
  | <code><a href="#@taimos/projen.MonorepoProject.property.libdir">libdir</a></code> | <code>string</code> | The directory in which compiled .js files reside. |
912
+ | <code><a href="#@taimos/projen.MonorepoProject.property.runner">runner</a></code> | <code>projen.typescript.TypeScriptRunner</code> | The TypeScript runner used for executing TypeScript files. |
868
913
  | <code><a href="#@taimos/projen.MonorepoProject.property.srcdir">srcdir</a></code> | <code>string</code> | The directory in which the .ts sources reside. |
869
914
  | <code><a href="#@taimos/projen.MonorepoProject.property.testdir">testdir</a></code> | <code>string</code> | The directory in which tests reside. |
870
915
  | <code><a href="#@taimos/projen.MonorepoProject.property.tsconfigDev">tsconfigDev</a></code> | <code>projen.javascript.TypescriptConfig</code> | A typescript configuration file which covers all files (sources, tests, projen). |
@@ -1149,7 +1194,9 @@ the project is being ejected.
1149
1194
 
1150
1195
  ---
1151
1196
 
1152
- ##### `initProject`<sup>Optional</sup> <a name="initProject" id="@taimos/projen.MonorepoProject.property.initProject"></a>
1197
+ ##### ~~`initProject`~~<sup>Optional</sup> <a name="initProject" id="@taimos/projen.MonorepoProject.property.initProject"></a>
1198
+
1199
+ - *Deprecated:* use the `initProject` argument passed to `Component.projectCreation()` instead.
1153
1200
 
1154
1201
  ```typescript
1155
1202
  public readonly initProject: InitProject;
@@ -1477,6 +1524,18 @@ The directory in which compiled .js files reside.
1477
1524
 
1478
1525
  ---
1479
1526
 
1527
+ ##### `runner`<sup>Required</sup> <a name="runner" id="@taimos/projen.MonorepoProject.property.runner"></a>
1528
+
1529
+ ```typescript
1530
+ public readonly runner: TypeScriptRunner;
1531
+ ```
1532
+
1533
+ - *Type:* projen.typescript.TypeScriptRunner
1534
+
1535
+ The TypeScript runner used for executing TypeScript files.
1536
+
1537
+ ---
1538
+
1480
1539
  ##### `srcdir`<sup>Required</sup> <a name="srcdir" id="@taimos/projen.MonorepoProject.property.srcdir"></a>
1481
1540
 
1482
1541
  ```typescript
@@ -1922,8 +1981,10 @@ Synthesize all project files into `outdir`.
1922
1981
  2. Delete all generated files
1923
1982
  3. Synthesize all subprojects
1924
1983
  4. Synthesize all components of this project
1925
- 5. Call "postSynthesize()" for all components of this project
1926
- 6. Call "this.postSynthesize()"
1984
+ 5. Call "projectCreation()" for all components, only if the project is being created for the first time
1985
+ 6. Call "postSynthesize()" for all components of this project
1986
+ 7. Call "this.postSynthesize()"
1987
+ 8. Call "postProjectCreation()" for all components, only if the project is being created for the first time
1927
1988
 
1928
1989
  ##### `tryFindFile` <a name="tryFindFile" id="@taimos/projen.PrivateTaimosCdkApp.tryFindFile"></a>
1929
1990
 
@@ -2319,6 +2380,7 @@ When given a project, this it the project itself.
2319
2380
  | <code><a href="#@taimos/projen.PrivateTaimosCdkApp.property.upgradeWorkflow">upgradeWorkflow</a></code> | <code>projen.javascript.UpgradeDependencies</code> | The upgrade workflow. |
2320
2381
  | <code><a href="#@taimos/projen.PrivateTaimosCdkApp.property.docsDirectory">docsDirectory</a></code> | <code>string</code> | *No description.* |
2321
2382
  | <code><a href="#@taimos/projen.PrivateTaimosCdkApp.property.libdir">libdir</a></code> | <code>string</code> | The directory in which compiled .js files reside. |
2383
+ | <code><a href="#@taimos/projen.PrivateTaimosCdkApp.property.runner">runner</a></code> | <code>projen.typescript.TypeScriptRunner</code> | The TypeScript runner used for executing TypeScript files. |
2322
2384
  | <code><a href="#@taimos/projen.PrivateTaimosCdkApp.property.srcdir">srcdir</a></code> | <code>string</code> | The directory in which the .ts sources reside. |
2323
2385
  | <code><a href="#@taimos/projen.PrivateTaimosCdkApp.property.testdir">testdir</a></code> | <code>string</code> | The directory in which tests reside. |
2324
2386
  | <code><a href="#@taimos/projen.PrivateTaimosCdkApp.property.tsconfigDev">tsconfigDev</a></code> | <code>projen.javascript.TypescriptConfig</code> | A typescript configuration file which covers all files (sources, tests, projen). |
@@ -2602,7 +2664,9 @@ the project is being ejected.
2602
2664
 
2603
2665
  ---
2604
2666
 
2605
- ##### `initProject`<sup>Optional</sup> <a name="initProject" id="@taimos/projen.PrivateTaimosCdkApp.property.initProject"></a>
2667
+ ##### ~~`initProject`~~<sup>Optional</sup> <a name="initProject" id="@taimos/projen.PrivateTaimosCdkApp.property.initProject"></a>
2668
+
2669
+ - *Deprecated:* use the `initProject` argument passed to `Component.projectCreation()` instead.
2606
2670
 
2607
2671
  ```typescript
2608
2672
  public readonly initProject: InitProject;
@@ -2930,6 +2994,18 @@ The directory in which compiled .js files reside.
2930
2994
 
2931
2995
  ---
2932
2996
 
2997
+ ##### `runner`<sup>Required</sup> <a name="runner" id="@taimos/projen.PrivateTaimosCdkApp.property.runner"></a>
2998
+
2999
+ ```typescript
3000
+ public readonly runner: TypeScriptRunner;
3001
+ ```
3002
+
3003
+ - *Type:* projen.typescript.TypeScriptRunner
3004
+
3005
+ The TypeScript runner used for executing TypeScript files.
3006
+
3007
+ ---
3008
+
2933
3009
  ##### `srcdir`<sup>Required</sup> <a name="srcdir" id="@taimos/projen.PrivateTaimosCdkApp.property.srcdir"></a>
2934
3010
 
2935
3011
  ```typescript
@@ -3361,8 +3437,10 @@ Synthesize all project files into `outdir`.
3361
3437
  2. Delete all generated files
3362
3438
  3. Synthesize all subprojects
3363
3439
  4. Synthesize all components of this project
3364
- 5. Call "postSynthesize()" for all components of this project
3365
- 6. Call "this.postSynthesize()"
3440
+ 5. Call "projectCreation()" for all components, only if the project is being created for the first time
3441
+ 6. Call "postSynthesize()" for all components of this project
3442
+ 7. Call "this.postSynthesize()"
3443
+ 8. Call "postProjectCreation()" for all components, only if the project is being created for the first time
3366
3444
 
3367
3445
  ##### `tryFindFile` <a name="tryFindFile" id="@taimos/projen.ProductionTaimosCdkApp.tryFindFile"></a>
3368
3446
 
@@ -3758,6 +3836,7 @@ When given a project, this it the project itself.
3758
3836
  | <code><a href="#@taimos/projen.ProductionTaimosCdkApp.property.upgradeWorkflow">upgradeWorkflow</a></code> | <code>projen.javascript.UpgradeDependencies</code> | The upgrade workflow. |
3759
3837
  | <code><a href="#@taimos/projen.ProductionTaimosCdkApp.property.docsDirectory">docsDirectory</a></code> | <code>string</code> | *No description.* |
3760
3838
  | <code><a href="#@taimos/projen.ProductionTaimosCdkApp.property.libdir">libdir</a></code> | <code>string</code> | The directory in which compiled .js files reside. |
3839
+ | <code><a href="#@taimos/projen.ProductionTaimosCdkApp.property.runner">runner</a></code> | <code>projen.typescript.TypeScriptRunner</code> | The TypeScript runner used for executing TypeScript files. |
3761
3840
  | <code><a href="#@taimos/projen.ProductionTaimosCdkApp.property.srcdir">srcdir</a></code> | <code>string</code> | The directory in which the .ts sources reside. |
3762
3841
  | <code><a href="#@taimos/projen.ProductionTaimosCdkApp.property.testdir">testdir</a></code> | <code>string</code> | The directory in which tests reside. |
3763
3842
  | <code><a href="#@taimos/projen.ProductionTaimosCdkApp.property.tsconfigDev">tsconfigDev</a></code> | <code>projen.javascript.TypescriptConfig</code> | A typescript configuration file which covers all files (sources, tests, projen). |
@@ -4042,7 +4121,9 @@ the project is being ejected.
4042
4121
 
4043
4122
  ---
4044
4123
 
4045
- ##### `initProject`<sup>Optional</sup> <a name="initProject" id="@taimos/projen.ProductionTaimosCdkApp.property.initProject"></a>
4124
+ ##### ~~`initProject`~~<sup>Optional</sup> <a name="initProject" id="@taimos/projen.ProductionTaimosCdkApp.property.initProject"></a>
4125
+
4126
+ - *Deprecated:* use the `initProject` argument passed to `Component.projectCreation()` instead.
4046
4127
 
4047
4128
  ```typescript
4048
4129
  public readonly initProject: InitProject;
@@ -4370,6 +4451,18 @@ The directory in which compiled .js files reside.
4370
4451
 
4371
4452
  ---
4372
4453
 
4454
+ ##### `runner`<sup>Required</sup> <a name="runner" id="@taimos/projen.ProductionTaimosCdkApp.property.runner"></a>
4455
+
4456
+ ```typescript
4457
+ public readonly runner: TypeScriptRunner;
4458
+ ```
4459
+
4460
+ - *Type:* projen.typescript.TypeScriptRunner
4461
+
4462
+ The TypeScript runner used for executing TypeScript files.
4463
+
4464
+ ---
4465
+
4373
4466
  ##### `srcdir`<sup>Required</sup> <a name="srcdir" id="@taimos/projen.ProductionTaimosCdkApp.property.srcdir"></a>
4374
4467
 
4375
4468
  ```typescript
@@ -4813,8 +4906,10 @@ Synthesize all project files into `outdir`.
4813
4906
  2. Delete all generated files
4814
4907
  3. Synthesize all subprojects
4815
4908
  4. Synthesize all components of this project
4816
- 5. Call "postSynthesize()" for all components of this project
4817
- 6. Call "this.postSynthesize()"
4909
+ 5. Call "projectCreation()" for all components, only if the project is being created for the first time
4910
+ 6. Call "postSynthesize()" for all components of this project
4911
+ 7. Call "this.postSynthesize()"
4912
+ 8. Call "postProjectCreation()" for all components, only if the project is being created for the first time
4818
4913
 
4819
4914
  ##### `tryFindFile` <a name="tryFindFile" id="@taimos/projen.TaimosCdkApp.tryFindFile"></a>
4820
4915
 
@@ -5210,6 +5305,7 @@ When given a project, this it the project itself.
5210
5305
  | <code><a href="#@taimos/projen.TaimosCdkApp.property.upgradeWorkflow">upgradeWorkflow</a></code> | <code>projen.javascript.UpgradeDependencies</code> | The upgrade workflow. |
5211
5306
  | <code><a href="#@taimos/projen.TaimosCdkApp.property.docsDirectory">docsDirectory</a></code> | <code>string</code> | *No description.* |
5212
5307
  | <code><a href="#@taimos/projen.TaimosCdkApp.property.libdir">libdir</a></code> | <code>string</code> | The directory in which compiled .js files reside. |
5308
+ | <code><a href="#@taimos/projen.TaimosCdkApp.property.runner">runner</a></code> | <code>projen.typescript.TypeScriptRunner</code> | The TypeScript runner used for executing TypeScript files. |
5213
5309
  | <code><a href="#@taimos/projen.TaimosCdkApp.property.srcdir">srcdir</a></code> | <code>string</code> | The directory in which the .ts sources reside. |
5214
5310
  | <code><a href="#@taimos/projen.TaimosCdkApp.property.testdir">testdir</a></code> | <code>string</code> | The directory in which tests reside. |
5215
5311
  | <code><a href="#@taimos/projen.TaimosCdkApp.property.tsconfigDev">tsconfigDev</a></code> | <code>projen.javascript.TypescriptConfig</code> | A typescript configuration file which covers all files (sources, tests, projen). |
@@ -5493,7 +5589,9 @@ the project is being ejected.
5493
5589
 
5494
5590
  ---
5495
5591
 
5496
- ##### `initProject`<sup>Optional</sup> <a name="initProject" id="@taimos/projen.TaimosCdkApp.property.initProject"></a>
5592
+ ##### ~~`initProject`~~<sup>Optional</sup> <a name="initProject" id="@taimos/projen.TaimosCdkApp.property.initProject"></a>
5593
+
5594
+ - *Deprecated:* use the `initProject` argument passed to `Component.projectCreation()` instead.
5497
5595
 
5498
5596
  ```typescript
5499
5597
  public readonly initProject: InitProject;
@@ -5821,6 +5919,18 @@ The directory in which compiled .js files reside.
5821
5919
 
5822
5920
  ---
5823
5921
 
5922
+ ##### `runner`<sup>Required</sup> <a name="runner" id="@taimos/projen.TaimosCdkApp.property.runner"></a>
5923
+
5924
+ ```typescript
5925
+ public readonly runner: TypeScriptRunner;
5926
+ ```
5927
+
5928
+ - *Type:* projen.typescript.TypeScriptRunner
5929
+
5930
+ The TypeScript runner used for executing TypeScript files.
5931
+
5932
+ ---
5933
+
5824
5934
  ##### `srcdir`<sup>Required</sup> <a name="srcdir" id="@taimos/projen.TaimosCdkApp.property.srcdir"></a>
5825
5935
 
5826
5936
  ```typescript
@@ -6252,8 +6362,10 @@ Synthesize all project files into `outdir`.
6252
6362
  2. Delete all generated files
6253
6363
  3. Synthesize all subprojects
6254
6364
  4. Synthesize all components of this project
6255
- 5. Call "postSynthesize()" for all components of this project
6256
- 6. Call "this.postSynthesize()"
6365
+ 5. Call "projectCreation()" for all components, only if the project is being created for the first time
6366
+ 6. Call "postSynthesize()" for all components of this project
6367
+ 7. Call "this.postSynthesize()"
6368
+ 8. Call "postProjectCreation()" for all components, only if the project is being created for the first time
6257
6369
 
6258
6370
  ##### `tryFindFile` <a name="tryFindFile" id="@taimos/projen.TaimosCdkConstructLibrary.tryFindFile"></a>
6259
6371
 
@@ -6649,6 +6761,7 @@ When given a project, this it the project itself.
6649
6761
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibrary.property.upgradeWorkflow">upgradeWorkflow</a></code> | <code>projen.javascript.UpgradeDependencies</code> | The upgrade workflow. |
6650
6762
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibrary.property.docsDirectory">docsDirectory</a></code> | <code>string</code> | *No description.* |
6651
6763
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibrary.property.libdir">libdir</a></code> | <code>string</code> | The directory in which compiled .js files reside. |
6764
+ | <code><a href="#@taimos/projen.TaimosCdkConstructLibrary.property.runner">runner</a></code> | <code>projen.typescript.TypeScriptRunner</code> | The TypeScript runner used for executing TypeScript files. |
6652
6765
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibrary.property.srcdir">srcdir</a></code> | <code>string</code> | The directory in which the .ts sources reside. |
6653
6766
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibrary.property.testdir">testdir</a></code> | <code>string</code> | The directory in which tests reside. |
6654
6767
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibrary.property.tsconfigDev">tsconfigDev</a></code> | <code>projen.javascript.TypescriptConfig</code> | A typescript configuration file which covers all files (sources, tests, projen). |
@@ -6929,7 +7042,9 @@ the project is being ejected.
6929
7042
 
6930
7043
  ---
6931
7044
 
6932
- ##### `initProject`<sup>Optional</sup> <a name="initProject" id="@taimos/projen.TaimosCdkConstructLibrary.property.initProject"></a>
7045
+ ##### ~~`initProject`~~<sup>Optional</sup> <a name="initProject" id="@taimos/projen.TaimosCdkConstructLibrary.property.initProject"></a>
7046
+
7047
+ - *Deprecated:* use the `initProject` argument passed to `Component.projectCreation()` instead.
6933
7048
 
6934
7049
  ```typescript
6935
7050
  public readonly initProject: InitProject;
@@ -7257,6 +7372,18 @@ The directory in which compiled .js files reside.
7257
7372
 
7258
7373
  ---
7259
7374
 
7375
+ ##### `runner`<sup>Required</sup> <a name="runner" id="@taimos/projen.TaimosCdkConstructLibrary.property.runner"></a>
7376
+
7377
+ ```typescript
7378
+ public readonly runner: TypeScriptRunner;
7379
+ ```
7380
+
7381
+ - *Type:* projen.typescript.TypeScriptRunner
7382
+
7383
+ The TypeScript runner used for executing TypeScript files.
7384
+
7385
+ ---
7386
+
7260
7387
  ##### `srcdir`<sup>Required</sup> <a name="srcdir" id="@taimos/projen.TaimosCdkConstructLibrary.property.srcdir"></a>
7261
7388
 
7262
7389
  ```typescript
@@ -7652,8 +7779,10 @@ Synthesize all project files into `outdir`.
7652
7779
  2. Delete all generated files
7653
7780
  3. Synthesize all subprojects
7654
7781
  4. Synthesize all components of this project
7655
- 5. Call "postSynthesize()" for all components of this project
7656
- 6. Call "this.postSynthesize()"
7782
+ 5. Call "projectCreation()" for all components, only if the project is being created for the first time
7783
+ 6. Call "postSynthesize()" for all components of this project
7784
+ 7. Call "this.postSynthesize()"
7785
+ 8. Call "postProjectCreation()" for all components, only if the project is being created for the first time
7657
7786
 
7658
7787
  ##### `tryFindFile` <a name="tryFindFile" id="@taimos/projen.TaimosPrivateTypescriptLibrary.tryFindFile"></a>
7659
7788
 
@@ -8049,6 +8178,7 @@ When given a project, this it the project itself.
8049
8178
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibrary.property.upgradeWorkflow">upgradeWorkflow</a></code> | <code>projen.javascript.UpgradeDependencies</code> | The upgrade workflow. |
8050
8179
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibrary.property.docsDirectory">docsDirectory</a></code> | <code>string</code> | *No description.* |
8051
8180
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibrary.property.libdir">libdir</a></code> | <code>string</code> | The directory in which compiled .js files reside. |
8181
+ | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibrary.property.runner">runner</a></code> | <code>projen.typescript.TypeScriptRunner</code> | The TypeScript runner used for executing TypeScript files. |
8052
8182
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibrary.property.srcdir">srcdir</a></code> | <code>string</code> | The directory in which the .ts sources reside. |
8053
8183
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibrary.property.testdir">testdir</a></code> | <code>string</code> | The directory in which tests reside. |
8054
8184
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibrary.property.tsconfigDev">tsconfigDev</a></code> | <code>projen.javascript.TypescriptConfig</code> | A typescript configuration file which covers all files (sources, tests, projen). |
@@ -8327,7 +8457,9 @@ the project is being ejected.
8327
8457
 
8328
8458
  ---
8329
8459
 
8330
- ##### `initProject`<sup>Optional</sup> <a name="initProject" id="@taimos/projen.TaimosPrivateTypescriptLibrary.property.initProject"></a>
8460
+ ##### ~~`initProject`~~<sup>Optional</sup> <a name="initProject" id="@taimos/projen.TaimosPrivateTypescriptLibrary.property.initProject"></a>
8461
+
8462
+ - *Deprecated:* use the `initProject` argument passed to `Component.projectCreation()` instead.
8331
8463
 
8332
8464
  ```typescript
8333
8465
  public readonly initProject: InitProject;
@@ -8655,6 +8787,18 @@ The directory in which compiled .js files reside.
8655
8787
 
8656
8788
  ---
8657
8789
 
8790
+ ##### `runner`<sup>Required</sup> <a name="runner" id="@taimos/projen.TaimosPrivateTypescriptLibrary.property.runner"></a>
8791
+
8792
+ ```typescript
8793
+ public readonly runner: TypeScriptRunner;
8794
+ ```
8795
+
8796
+ - *Type:* projen.typescript.TypeScriptRunner
8797
+
8798
+ The TypeScript runner used for executing TypeScript files.
8799
+
8800
+ ---
8801
+
8658
8802
  ##### `srcdir`<sup>Required</sup> <a name="srcdir" id="@taimos/projen.TaimosPrivateTypescriptLibrary.property.srcdir"></a>
8659
8803
 
8660
8804
  ```typescript
@@ -9028,8 +9172,10 @@ Synthesize all project files into `outdir`.
9028
9172
  2. Delete all generated files
9029
9173
  3. Synthesize all subprojects
9030
9174
  4. Synthesize all components of this project
9031
- 5. Call "postSynthesize()" for all components of this project
9032
- 6. Call "this.postSynthesize()"
9175
+ 5. Call "projectCreation()" for all components, only if the project is being created for the first time
9176
+ 6. Call "postSynthesize()" for all components of this project
9177
+ 7. Call "this.postSynthesize()"
9178
+ 8. Call "postProjectCreation()" for all components, only if the project is being created for the first time
9033
9179
 
9034
9180
  ##### `tryFindFile` <a name="tryFindFile" id="@taimos/projen.TaimosTypescriptLibrary.tryFindFile"></a>
9035
9181
 
@@ -9425,6 +9571,7 @@ When given a project, this it the project itself.
9425
9571
  | <code><a href="#@taimos/projen.TaimosTypescriptLibrary.property.upgradeWorkflow">upgradeWorkflow</a></code> | <code>projen.javascript.UpgradeDependencies</code> | The upgrade workflow. |
9426
9572
  | <code><a href="#@taimos/projen.TaimosTypescriptLibrary.property.docsDirectory">docsDirectory</a></code> | <code>string</code> | *No description.* |
9427
9573
  | <code><a href="#@taimos/projen.TaimosTypescriptLibrary.property.libdir">libdir</a></code> | <code>string</code> | The directory in which compiled .js files reside. |
9574
+ | <code><a href="#@taimos/projen.TaimosTypescriptLibrary.property.runner">runner</a></code> | <code>projen.typescript.TypeScriptRunner</code> | The TypeScript runner used for executing TypeScript files. |
9428
9575
  | <code><a href="#@taimos/projen.TaimosTypescriptLibrary.property.srcdir">srcdir</a></code> | <code>string</code> | The directory in which the .ts sources reside. |
9429
9576
  | <code><a href="#@taimos/projen.TaimosTypescriptLibrary.property.testdir">testdir</a></code> | <code>string</code> | The directory in which tests reside. |
9430
9577
  | <code><a href="#@taimos/projen.TaimosTypescriptLibrary.property.tsconfigDev">tsconfigDev</a></code> | <code>projen.javascript.TypescriptConfig</code> | A typescript configuration file which covers all files (sources, tests, projen). |
@@ -9703,7 +9850,9 @@ the project is being ejected.
9703
9850
 
9704
9851
  ---
9705
9852
 
9706
- ##### `initProject`<sup>Optional</sup> <a name="initProject" id="@taimos/projen.TaimosTypescriptLibrary.property.initProject"></a>
9853
+ ##### ~~`initProject`~~<sup>Optional</sup> <a name="initProject" id="@taimos/projen.TaimosTypescriptLibrary.property.initProject"></a>
9854
+
9855
+ - *Deprecated:* use the `initProject` argument passed to `Component.projectCreation()` instead.
9707
9856
 
9708
9857
  ```typescript
9709
9858
  public readonly initProject: InitProject;
@@ -10031,6 +10180,18 @@ The directory in which compiled .js files reside.
10031
10180
 
10032
10181
  ---
10033
10182
 
10183
+ ##### `runner`<sup>Required</sup> <a name="runner" id="@taimos/projen.TaimosTypescriptLibrary.property.runner"></a>
10184
+
10185
+ ```typescript
10186
+ public readonly runner: TypeScriptRunner;
10187
+ ```
10188
+
10189
+ - *Type:* projen.typescript.TypeScriptRunner
10190
+
10191
+ The TypeScript runner used for executing TypeScript files.
10192
+
10193
+ ---
10194
+
10034
10195
  ##### `srcdir`<sup>Required</sup> <a name="srcdir" id="@taimos/projen.TaimosTypescriptLibrary.property.srcdir"></a>
10035
10196
 
10036
10197
  ```typescript
@@ -10466,6 +10627,7 @@ const monorepoProjectOptions: MonorepoProjectOptions = { ... }
10466
10627
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.vscode">vscode</a></code> | <code>boolean</code> | Enable VSCode integration. |
10467
10628
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.addPackageManagerToDevEngines">addPackageManagerToDevEngines</a></code> | <code>boolean</code> | Automatically add the resolved `packageManager` to `devEngines.packageManager` in `package.json`, setting `onFail` to `ignore`. |
10468
10629
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.allowLibraryDependencies">allowLibraryDependencies</a></code> | <code>boolean</code> | Allow the project to include `peerDependencies` and `bundledDependencies`. |
10630
+ | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.allowScripts">allowScripts</a></code> | <code>string[]</code> | List of dependency (package) names that are allowed to run lifecycle install scripts (`preinstall`, `install`, `postinstall`, `prepare`) during dependency installation. |
10469
10631
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.authorEmail">authorEmail</a></code> | <code>string</code> | Author's e-mail. |
10470
10632
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.authorName">authorName</a></code> | <code>string</code> | Author's name. |
10471
10633
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.authorOrganization">authorOrganization</a></code> | <code>boolean</code> | Is the author an organization. |
@@ -10498,6 +10660,7 @@ const monorepoProjectOptions: MonorepoProjectOptions = { ... }
10498
10660
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.packageName">packageName</a></code> | <code>string</code> | The "name" in package.json. |
10499
10661
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
10500
10662
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.peerDeps">peerDeps</a></code> | <code>string[]</code> | Peer dependencies for this module. |
10663
+ | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.pnpmOptions">pnpmOptions</a></code> | <code>projen.javascript.PnpmOptions</code> | Options for pnpm. |
10501
10664
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.pnpmVersion">pnpmVersion</a></code> | <code>string</code> | The version of PNPM to use if using PNPM as a package manager. |
10502
10665
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.repository">repository</a></code> | <code>string</code> | The repository is the location where the actual code for your package lives. |
10503
10666
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.repositoryDirectory">repositoryDirectory</a></code> | <code>string</code> | If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives. |
@@ -10577,6 +10740,7 @@ const monorepoProjectOptions: MonorepoProjectOptions = { ... }
10577
10740
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.libdir">libdir</a></code> | <code>string</code> | Typescript artifacts output directory. |
10578
10741
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.projenrcTs">projenrcTs</a></code> | <code>boolean</code> | Use TypeScript for your projenrc file (`.projenrc.ts`). |
10579
10742
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.projenrcTsOptions">projenrcTsOptions</a></code> | <code>projen.typescript.ProjenrcOptions</code> | Options for .projenrc.ts. |
10743
+ | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.runner">runner</a></code> | <code>projen.typescript.TypeScriptRunner</code> | The TypeScript runner to use for executing TypeScript files. |
10580
10744
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.sampleCode">sampleCode</a></code> | <code>boolean</code> | Generate one-time sample in `src/` and `test/` if there are no files there. |
10581
10745
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.srcdir">srcdir</a></code> | <code>string</code> | Typescript sources directory. |
10582
10746
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.testdir">testdir</a></code> | <code>string</code> | Jest tests directory. Tests files should be named `xxx.test.ts`. |
@@ -10992,6 +11156,44 @@ for specifying these.
10992
11156
 
10993
11157
  ---
10994
11158
 
11159
+ ##### `allowScripts`<sup>Optional</sup> <a name="allowScripts" id="@taimos/projen.MonorepoProjectOptions.property.allowScripts"></a>
11160
+
11161
+ ```typescript
11162
+ public readonly allowScripts: string[];
11163
+ ```
11164
+
11165
+ - *Type:* string[]
11166
+ - *Default:* all install scripts are allowed to run (package manager default)
11167
+
11168
+ List of dependency (package) names that are allowed to run lifecycle install scripts (`preinstall`, `install`, `postinstall`, `prepare`) during dependency installation.
11169
+
11170
+ These scripts can execute arbitrary code, making them a common
11171
+ supply-chain attack vector. Package managers are moving toward
11172
+ blocking them by default and requiring an explicit allowlist.
11173
+ Configuring `allowScripts` sets up that allowlist so scripts only run
11174
+ for the packages you have explicitly reviewed and trust.
11175
+
11176
+ Support for this setting depends on the configured `packageManager`:
11177
+
11178
+ - `NPM`: written to the native `allowScripts` field in `package.json`
11179
+ (requires npm >= 11.16; see https://docs.npmjs.com/cli/v11/commands/npm-approve-scripts).
11180
+ - `BUN`: written to the native `trustedDependencies` field in
11181
+ `package.json` (see https://bun.com/docs/pm/lifecycle).
11182
+ - `PNPM`: written to the `onlyBuiltDependencies` setting in
11183
+ `pnpm-workspace.yaml` (see https://pnpm.io/settings#onlybuiltdependencies).
11184
+ - `YARN2`, `YARN_BERRY`: written to the native
11185
+ `dependenciesMeta.<pkg>.built` allowlist in `package.json`, combined
11186
+ with `enableScripts: false` in `.yarnrc.yml` (see
11187
+ https://yarnpkg.com/features/security#postinstalls). If you set
11188
+ `yarnBerryOptions.yarnRcOptions.enableScripts` explicitly, that value
11189
+ is respected instead of being overridden.
11190
+ - `YARN`, `YARN_CLASSIC`: not supported. Yarn Classic has no native
11191
+ mechanism to allowlist install scripts for specific dependencies.
11192
+ Setting this option with one of these package managers throws an
11193
+ error at synthesis time.
11194
+
11195
+ ---
11196
+
10995
11197
  ##### `authorEmail`<sup>Optional</sup> <a name="authorEmail" id="@taimos/projen.MonorepoProjectOptions.property.authorEmail"></a>
10996
11198
 
10997
11199
  ```typescript
@@ -11503,6 +11705,19 @@ test your module against the lowest peer version required.
11503
11705
 
11504
11706
  ---
11505
11707
 
11708
+ ##### `pnpmOptions`<sup>Optional</sup> <a name="pnpmOptions" id="@taimos/projen.MonorepoProjectOptions.property.pnpmOptions"></a>
11709
+
11710
+ ```typescript
11711
+ public readonly pnpmOptions: PnpmOptions;
11712
+ ```
11713
+
11714
+ - *Type:* projen.javascript.PnpmOptions
11715
+ - *Default:* all default options
11716
+
11717
+ Options for pnpm.
11718
+
11719
+ ---
11720
+
11506
11721
  ##### `pnpmVersion`<sup>Optional</sup> <a name="pnpmVersion" id="@taimos/projen.MonorepoProjectOptions.property.pnpmVersion"></a>
11507
11722
 
11508
11723
  ```typescript
@@ -12120,6 +12335,10 @@ public readonly copyrightOwner: string;
12120
12335
 
12121
12336
  License copyright owner.
12122
12337
 
12338
+ This value is only used if the selected license text contains the
12339
+ `$copyright_owner` placeholder. For example, it has no effect on the
12340
+ MPL-2.0 license text.
12341
+
12123
12342
  ---
12124
12343
 
12125
12344
  ##### `copyrightPeriod`<sup>Optional</sup> <a name="copyrightPeriod" id="@taimos/projen.MonorepoProjectOptions.property.copyrightPeriod"></a>
@@ -12133,6 +12352,10 @@ public readonly copyrightPeriod: string;
12133
12352
 
12134
12353
  The copyright years to put in the LICENSE file.
12135
12354
 
12355
+ This value is only used if the selected license text contains the
12356
+ `$copyright_period` placeholder. For example, it has no effect on the
12357
+ MPL-2.0 license text.
12358
+
12136
12359
  ---
12137
12360
 
12138
12361
  ##### `defaultReleaseBranch`<sup>Optional</sup> <a name="defaultReleaseBranch" id="@taimos/projen.MonorepoProjectOptions.property.defaultReleaseBranch"></a>
@@ -12593,6 +12816,22 @@ Options for .projenrc.ts.
12593
12816
 
12594
12817
  ---
12595
12818
 
12819
+ ##### `runner`<sup>Optional</sup> <a name="runner" id="@taimos/projen.MonorepoProjectOptions.property.runner"></a>
12820
+
12821
+ ```typescript
12822
+ public readonly runner: TypeScriptRunner;
12823
+ ```
12824
+
12825
+ - *Type:* projen.typescript.TypeScriptRunner
12826
+ - *Default:* TypeScriptRunner.tsNode()
12827
+
12828
+ The TypeScript runner to use for executing TypeScript files.
12829
+
12830
+ This is a project-level setting that components (e.g. projenrc) will
12831
+ use as their default runner.
12832
+
12833
+ ---
12834
+
12596
12835
  ##### `sampleCode`<sup>Optional</sup> <a name="sampleCode" id="@taimos/projen.MonorepoProjectOptions.property.sampleCode"></a>
12597
12836
 
12598
12837
  ```typescript
@@ -12997,6 +13236,7 @@ const privateTaimosCdkAppOptions: PrivateTaimosCdkAppOptions = { ... }
12997
13236
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.vscode">vscode</a></code> | <code>boolean</code> | Enable VSCode integration. |
12998
13237
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.addPackageManagerToDevEngines">addPackageManagerToDevEngines</a></code> | <code>boolean</code> | Automatically add the resolved `packageManager` to `devEngines.packageManager` in `package.json`, setting `onFail` to `ignore`. |
12999
13238
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.allowLibraryDependencies">allowLibraryDependencies</a></code> | <code>boolean</code> | Allow the project to include `peerDependencies` and `bundledDependencies`. |
13239
+ | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.allowScripts">allowScripts</a></code> | <code>string[]</code> | List of dependency (package) names that are allowed to run lifecycle install scripts (`preinstall`, `install`, `postinstall`, `prepare`) during dependency installation. |
13000
13240
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.authorEmail">authorEmail</a></code> | <code>string</code> | Author's e-mail. |
13001
13241
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.authorName">authorName</a></code> | <code>string</code> | Author's name. |
13002
13242
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.authorOrganization">authorOrganization</a></code> | <code>boolean</code> | Is the author an organization. |
@@ -13029,6 +13269,7 @@ const privateTaimosCdkAppOptions: PrivateTaimosCdkAppOptions = { ... }
13029
13269
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.packageName">packageName</a></code> | <code>string</code> | The "name" in package.json. |
13030
13270
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
13031
13271
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.peerDeps">peerDeps</a></code> | <code>string[]</code> | Peer dependencies for this module. |
13272
+ | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.pnpmOptions">pnpmOptions</a></code> | <code>projen.javascript.PnpmOptions</code> | Options for pnpm. |
13032
13273
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.pnpmVersion">pnpmVersion</a></code> | <code>string</code> | The version of PNPM to use if using PNPM as a package manager. |
13033
13274
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.repository">repository</a></code> | <code>string</code> | The repository is the location where the actual code for your package lives. |
13034
13275
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.repositoryDirectory">repositoryDirectory</a></code> | <code>string</code> | If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives. |
@@ -13108,6 +13349,7 @@ const privateTaimosCdkAppOptions: PrivateTaimosCdkAppOptions = { ... }
13108
13349
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.libdir">libdir</a></code> | <code>string</code> | Typescript artifacts output directory. |
13109
13350
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.projenrcTs">projenrcTs</a></code> | <code>boolean</code> | Use TypeScript for your projenrc file (`.projenrc.ts`). |
13110
13351
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.projenrcTsOptions">projenrcTsOptions</a></code> | <code>projen.typescript.ProjenrcOptions</code> | Options for .projenrc.ts. |
13352
+ | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.runner">runner</a></code> | <code>projen.typescript.TypeScriptRunner</code> | The TypeScript runner to use for executing TypeScript files. |
13111
13353
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.sampleCode">sampleCode</a></code> | <code>boolean</code> | Generate one-time sample in `src/` and `test/` if there are no files there. |
13112
13354
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.srcdir">srcdir</a></code> | <code>string</code> | Typescript sources directory. |
13113
13355
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.testdir">testdir</a></code> | <code>string</code> | Jest tests directory. Tests files should be named `xxx.test.ts`. |
@@ -13534,6 +13776,44 @@ for specifying these.
13534
13776
 
13535
13777
  ---
13536
13778
 
13779
+ ##### `allowScripts`<sup>Optional</sup> <a name="allowScripts" id="@taimos/projen.PrivateTaimosCdkAppOptions.property.allowScripts"></a>
13780
+
13781
+ ```typescript
13782
+ public readonly allowScripts: string[];
13783
+ ```
13784
+
13785
+ - *Type:* string[]
13786
+ - *Default:* all install scripts are allowed to run (package manager default)
13787
+
13788
+ List of dependency (package) names that are allowed to run lifecycle install scripts (`preinstall`, `install`, `postinstall`, `prepare`) during dependency installation.
13789
+
13790
+ These scripts can execute arbitrary code, making them a common
13791
+ supply-chain attack vector. Package managers are moving toward
13792
+ blocking them by default and requiring an explicit allowlist.
13793
+ Configuring `allowScripts` sets up that allowlist so scripts only run
13794
+ for the packages you have explicitly reviewed and trust.
13795
+
13796
+ Support for this setting depends on the configured `packageManager`:
13797
+
13798
+ - `NPM`: written to the native `allowScripts` field in `package.json`
13799
+ (requires npm >= 11.16; see https://docs.npmjs.com/cli/v11/commands/npm-approve-scripts).
13800
+ - `BUN`: written to the native `trustedDependencies` field in
13801
+ `package.json` (see https://bun.com/docs/pm/lifecycle).
13802
+ - `PNPM`: written to the `onlyBuiltDependencies` setting in
13803
+ `pnpm-workspace.yaml` (see https://pnpm.io/settings#onlybuiltdependencies).
13804
+ - `YARN2`, `YARN_BERRY`: written to the native
13805
+ `dependenciesMeta.<pkg>.built` allowlist in `package.json`, combined
13806
+ with `enableScripts: false` in `.yarnrc.yml` (see
13807
+ https://yarnpkg.com/features/security#postinstalls). If you set
13808
+ `yarnBerryOptions.yarnRcOptions.enableScripts` explicitly, that value
13809
+ is respected instead of being overridden.
13810
+ - `YARN`, `YARN_CLASSIC`: not supported. Yarn Classic has no native
13811
+ mechanism to allowlist install scripts for specific dependencies.
13812
+ Setting this option with one of these package managers throws an
13813
+ error at synthesis time.
13814
+
13815
+ ---
13816
+
13537
13817
  ##### `authorEmail`<sup>Optional</sup> <a name="authorEmail" id="@taimos/projen.PrivateTaimosCdkAppOptions.property.authorEmail"></a>
13538
13818
 
13539
13819
  ```typescript
@@ -14045,6 +14325,19 @@ test your module against the lowest peer version required.
14045
14325
 
14046
14326
  ---
14047
14327
 
14328
+ ##### `pnpmOptions`<sup>Optional</sup> <a name="pnpmOptions" id="@taimos/projen.PrivateTaimosCdkAppOptions.property.pnpmOptions"></a>
14329
+
14330
+ ```typescript
14331
+ public readonly pnpmOptions: PnpmOptions;
14332
+ ```
14333
+
14334
+ - *Type:* projen.javascript.PnpmOptions
14335
+ - *Default:* all default options
14336
+
14337
+ Options for pnpm.
14338
+
14339
+ ---
14340
+
14048
14341
  ##### `pnpmVersion`<sup>Optional</sup> <a name="pnpmVersion" id="@taimos/projen.PrivateTaimosCdkAppOptions.property.pnpmVersion"></a>
14049
14342
 
14050
14343
  ```typescript
@@ -14662,6 +14955,10 @@ public readonly copyrightOwner: string;
14662
14955
 
14663
14956
  License copyright owner.
14664
14957
 
14958
+ This value is only used if the selected license text contains the
14959
+ `$copyright_owner` placeholder. For example, it has no effect on the
14960
+ MPL-2.0 license text.
14961
+
14665
14962
  ---
14666
14963
 
14667
14964
  ##### `copyrightPeriod`<sup>Optional</sup> <a name="copyrightPeriod" id="@taimos/projen.PrivateTaimosCdkAppOptions.property.copyrightPeriod"></a>
@@ -14675,6 +14972,10 @@ public readonly copyrightPeriod: string;
14675
14972
 
14676
14973
  The copyright years to put in the LICENSE file.
14677
14974
 
14975
+ This value is only used if the selected license text contains the
14976
+ `$copyright_period` placeholder. For example, it has no effect on the
14977
+ MPL-2.0 license text.
14978
+
14678
14979
  ---
14679
14980
 
14680
14981
  ##### `defaultReleaseBranch`<sup>Optional</sup> <a name="defaultReleaseBranch" id="@taimos/projen.PrivateTaimosCdkAppOptions.property.defaultReleaseBranch"></a>
@@ -15135,6 +15436,22 @@ Options for .projenrc.ts.
15135
15436
 
15136
15437
  ---
15137
15438
 
15439
+ ##### `runner`<sup>Optional</sup> <a name="runner" id="@taimos/projen.PrivateTaimosCdkAppOptions.property.runner"></a>
15440
+
15441
+ ```typescript
15442
+ public readonly runner: TypeScriptRunner;
15443
+ ```
15444
+
15445
+ - *Type:* projen.typescript.TypeScriptRunner
15446
+ - *Default:* TypeScriptRunner.tsNode()
15447
+
15448
+ The TypeScript runner to use for executing TypeScript files.
15449
+
15450
+ This is a project-level setting that components (e.g. projenrc) will
15451
+ use as their default runner.
15452
+
15453
+ ---
15454
+
15138
15455
  ##### `sampleCode`<sup>Optional</sup> <a name="sampleCode" id="@taimos/projen.PrivateTaimosCdkAppOptions.property.sampleCode"></a>
15139
15456
 
15140
15457
  ```typescript
@@ -15592,6 +15909,7 @@ const productionTaimosCdkAppOptions: ProductionTaimosCdkAppOptions = { ... }
15592
15909
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.vscode">vscode</a></code> | <code>boolean</code> | Enable VSCode integration. |
15593
15910
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.addPackageManagerToDevEngines">addPackageManagerToDevEngines</a></code> | <code>boolean</code> | Automatically add the resolved `packageManager` to `devEngines.packageManager` in `package.json`, setting `onFail` to `ignore`. |
15594
15911
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.allowLibraryDependencies">allowLibraryDependencies</a></code> | <code>boolean</code> | Allow the project to include `peerDependencies` and `bundledDependencies`. |
15912
+ | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.allowScripts">allowScripts</a></code> | <code>string[]</code> | List of dependency (package) names that are allowed to run lifecycle install scripts (`preinstall`, `install`, `postinstall`, `prepare`) during dependency installation. |
15595
15913
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.authorEmail">authorEmail</a></code> | <code>string</code> | Author's e-mail. |
15596
15914
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.authorName">authorName</a></code> | <code>string</code> | Author's name. |
15597
15915
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.authorOrganization">authorOrganization</a></code> | <code>boolean</code> | Is the author an organization. |
@@ -15624,6 +15942,7 @@ const productionTaimosCdkAppOptions: ProductionTaimosCdkAppOptions = { ... }
15624
15942
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.packageName">packageName</a></code> | <code>string</code> | The "name" in package.json. |
15625
15943
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
15626
15944
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.peerDeps">peerDeps</a></code> | <code>string[]</code> | Peer dependencies for this module. |
15945
+ | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.pnpmOptions">pnpmOptions</a></code> | <code>projen.javascript.PnpmOptions</code> | Options for pnpm. |
15627
15946
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.pnpmVersion">pnpmVersion</a></code> | <code>string</code> | The version of PNPM to use if using PNPM as a package manager. |
15628
15947
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.repository">repository</a></code> | <code>string</code> | The repository is the location where the actual code for your package lives. |
15629
15948
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.repositoryDirectory">repositoryDirectory</a></code> | <code>string</code> | If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives. |
@@ -15703,6 +16022,7 @@ const productionTaimosCdkAppOptions: ProductionTaimosCdkAppOptions = { ... }
15703
16022
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.libdir">libdir</a></code> | <code>string</code> | Typescript artifacts output directory. |
15704
16023
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.projenrcTs">projenrcTs</a></code> | <code>boolean</code> | Use TypeScript for your projenrc file (`.projenrc.ts`). |
15705
16024
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.projenrcTsOptions">projenrcTsOptions</a></code> | <code>projen.typescript.ProjenrcOptions</code> | Options for .projenrc.ts. |
16025
+ | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.runner">runner</a></code> | <code>projen.typescript.TypeScriptRunner</code> | The TypeScript runner to use for executing TypeScript files. |
15706
16026
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.sampleCode">sampleCode</a></code> | <code>boolean</code> | Generate one-time sample in `src/` and `test/` if there are no files there. |
15707
16027
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.srcdir">srcdir</a></code> | <code>string</code> | Typescript sources directory. |
15708
16028
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.testdir">testdir</a></code> | <code>string</code> | Jest tests directory. Tests files should be named `xxx.test.ts`. |
@@ -16133,6 +16453,44 @@ for specifying these.
16133
16453
 
16134
16454
  ---
16135
16455
 
16456
+ ##### `allowScripts`<sup>Optional</sup> <a name="allowScripts" id="@taimos/projen.ProductionTaimosCdkAppOptions.property.allowScripts"></a>
16457
+
16458
+ ```typescript
16459
+ public readonly allowScripts: string[];
16460
+ ```
16461
+
16462
+ - *Type:* string[]
16463
+ - *Default:* all install scripts are allowed to run (package manager default)
16464
+
16465
+ List of dependency (package) names that are allowed to run lifecycle install scripts (`preinstall`, `install`, `postinstall`, `prepare`) during dependency installation.
16466
+
16467
+ These scripts can execute arbitrary code, making them a common
16468
+ supply-chain attack vector. Package managers are moving toward
16469
+ blocking them by default and requiring an explicit allowlist.
16470
+ Configuring `allowScripts` sets up that allowlist so scripts only run
16471
+ for the packages you have explicitly reviewed and trust.
16472
+
16473
+ Support for this setting depends on the configured `packageManager`:
16474
+
16475
+ - `NPM`: written to the native `allowScripts` field in `package.json`
16476
+ (requires npm >= 11.16; see https://docs.npmjs.com/cli/v11/commands/npm-approve-scripts).
16477
+ - `BUN`: written to the native `trustedDependencies` field in
16478
+ `package.json` (see https://bun.com/docs/pm/lifecycle).
16479
+ - `PNPM`: written to the `onlyBuiltDependencies` setting in
16480
+ `pnpm-workspace.yaml` (see https://pnpm.io/settings#onlybuiltdependencies).
16481
+ - `YARN2`, `YARN_BERRY`: written to the native
16482
+ `dependenciesMeta.<pkg>.built` allowlist in `package.json`, combined
16483
+ with `enableScripts: false` in `.yarnrc.yml` (see
16484
+ https://yarnpkg.com/features/security#postinstalls). If you set
16485
+ `yarnBerryOptions.yarnRcOptions.enableScripts` explicitly, that value
16486
+ is respected instead of being overridden.
16487
+ - `YARN`, `YARN_CLASSIC`: not supported. Yarn Classic has no native
16488
+ mechanism to allowlist install scripts for specific dependencies.
16489
+ Setting this option with one of these package managers throws an
16490
+ error at synthesis time.
16491
+
16492
+ ---
16493
+
16136
16494
  ##### `authorEmail`<sup>Optional</sup> <a name="authorEmail" id="@taimos/projen.ProductionTaimosCdkAppOptions.property.authorEmail"></a>
16137
16495
 
16138
16496
  ```typescript
@@ -16644,6 +17002,19 @@ test your module against the lowest peer version required.
16644
17002
 
16645
17003
  ---
16646
17004
 
17005
+ ##### `pnpmOptions`<sup>Optional</sup> <a name="pnpmOptions" id="@taimos/projen.ProductionTaimosCdkAppOptions.property.pnpmOptions"></a>
17006
+
17007
+ ```typescript
17008
+ public readonly pnpmOptions: PnpmOptions;
17009
+ ```
17010
+
17011
+ - *Type:* projen.javascript.PnpmOptions
17012
+ - *Default:* all default options
17013
+
17014
+ Options for pnpm.
17015
+
17016
+ ---
17017
+
16647
17018
  ##### `pnpmVersion`<sup>Optional</sup> <a name="pnpmVersion" id="@taimos/projen.ProductionTaimosCdkAppOptions.property.pnpmVersion"></a>
16648
17019
 
16649
17020
  ```typescript
@@ -17261,6 +17632,10 @@ public readonly copyrightOwner: string;
17261
17632
 
17262
17633
  License copyright owner.
17263
17634
 
17635
+ This value is only used if the selected license text contains the
17636
+ `$copyright_owner` placeholder. For example, it has no effect on the
17637
+ MPL-2.0 license text.
17638
+
17264
17639
  ---
17265
17640
 
17266
17641
  ##### `copyrightPeriod`<sup>Optional</sup> <a name="copyrightPeriod" id="@taimos/projen.ProductionTaimosCdkAppOptions.property.copyrightPeriod"></a>
@@ -17274,6 +17649,10 @@ public readonly copyrightPeriod: string;
17274
17649
 
17275
17650
  The copyright years to put in the LICENSE file.
17276
17651
 
17652
+ This value is only used if the selected license text contains the
17653
+ `$copyright_period` placeholder. For example, it has no effect on the
17654
+ MPL-2.0 license text.
17655
+
17277
17656
  ---
17278
17657
 
17279
17658
  ##### `defaultReleaseBranch`<sup>Optional</sup> <a name="defaultReleaseBranch" id="@taimos/projen.ProductionTaimosCdkAppOptions.property.defaultReleaseBranch"></a>
@@ -17734,6 +18113,22 @@ Options for .projenrc.ts.
17734
18113
 
17735
18114
  ---
17736
18115
 
18116
+ ##### `runner`<sup>Optional</sup> <a name="runner" id="@taimos/projen.ProductionTaimosCdkAppOptions.property.runner"></a>
18117
+
18118
+ ```typescript
18119
+ public readonly runner: TypeScriptRunner;
18120
+ ```
18121
+
18122
+ - *Type:* projen.typescript.TypeScriptRunner
18123
+ - *Default:* TypeScriptRunner.tsNode()
18124
+
18125
+ The TypeScript runner to use for executing TypeScript files.
18126
+
18127
+ This is a project-level setting that components (e.g. projenrc) will
18128
+ use as their default runner.
18129
+
18130
+ ---
18131
+
17737
18132
  ##### `sampleCode`<sup>Optional</sup> <a name="sampleCode" id="@taimos/projen.ProductionTaimosCdkAppOptions.property.sampleCode"></a>
17738
18133
 
17739
18134
  ```typescript
@@ -18285,6 +18680,7 @@ const taimosCdkAppOptions: TaimosCdkAppOptions = { ... }
18285
18680
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.vscode">vscode</a></code> | <code>boolean</code> | Enable VSCode integration. |
18286
18681
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.addPackageManagerToDevEngines">addPackageManagerToDevEngines</a></code> | <code>boolean</code> | Automatically add the resolved `packageManager` to `devEngines.packageManager` in `package.json`, setting `onFail` to `ignore`. |
18287
18682
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.allowLibraryDependencies">allowLibraryDependencies</a></code> | <code>boolean</code> | Allow the project to include `peerDependencies` and `bundledDependencies`. |
18683
+ | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.allowScripts">allowScripts</a></code> | <code>string[]</code> | List of dependency (package) names that are allowed to run lifecycle install scripts (`preinstall`, `install`, `postinstall`, `prepare`) during dependency installation. |
18288
18684
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.authorEmail">authorEmail</a></code> | <code>string</code> | Author's e-mail. |
18289
18685
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.authorName">authorName</a></code> | <code>string</code> | Author's name. |
18290
18686
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.authorOrganization">authorOrganization</a></code> | <code>boolean</code> | Is the author an organization. |
@@ -18317,6 +18713,7 @@ const taimosCdkAppOptions: TaimosCdkAppOptions = { ... }
18317
18713
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.packageName">packageName</a></code> | <code>string</code> | The "name" in package.json. |
18318
18714
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
18319
18715
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.peerDeps">peerDeps</a></code> | <code>string[]</code> | Peer dependencies for this module. |
18716
+ | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.pnpmOptions">pnpmOptions</a></code> | <code>projen.javascript.PnpmOptions</code> | Options for pnpm. |
18320
18717
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.pnpmVersion">pnpmVersion</a></code> | <code>string</code> | The version of PNPM to use if using PNPM as a package manager. |
18321
18718
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.repository">repository</a></code> | <code>string</code> | The repository is the location where the actual code for your package lives. |
18322
18719
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.repositoryDirectory">repositoryDirectory</a></code> | <code>string</code> | If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives. |
@@ -18396,6 +18793,7 @@ const taimosCdkAppOptions: TaimosCdkAppOptions = { ... }
18396
18793
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.libdir">libdir</a></code> | <code>string</code> | Typescript artifacts output directory. |
18397
18794
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.projenrcTs">projenrcTs</a></code> | <code>boolean</code> | Use TypeScript for your projenrc file (`.projenrc.ts`). |
18398
18795
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.projenrcTsOptions">projenrcTsOptions</a></code> | <code>projen.typescript.ProjenrcOptions</code> | Options for .projenrc.ts. |
18796
+ | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.runner">runner</a></code> | <code>projen.typescript.TypeScriptRunner</code> | The TypeScript runner to use for executing TypeScript files. |
18399
18797
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.sampleCode">sampleCode</a></code> | <code>boolean</code> | Generate one-time sample in `src/` and `test/` if there are no files there. |
18400
18798
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.srcdir">srcdir</a></code> | <code>string</code> | Typescript sources directory. |
18401
18799
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.testdir">testdir</a></code> | <code>string</code> | Jest tests directory. Tests files should be named `xxx.test.ts`. |
@@ -18822,6 +19220,44 @@ for specifying these.
18822
19220
 
18823
19221
  ---
18824
19222
 
19223
+ ##### `allowScripts`<sup>Optional</sup> <a name="allowScripts" id="@taimos/projen.TaimosCdkAppOptions.property.allowScripts"></a>
19224
+
19225
+ ```typescript
19226
+ public readonly allowScripts: string[];
19227
+ ```
19228
+
19229
+ - *Type:* string[]
19230
+ - *Default:* all install scripts are allowed to run (package manager default)
19231
+
19232
+ List of dependency (package) names that are allowed to run lifecycle install scripts (`preinstall`, `install`, `postinstall`, `prepare`) during dependency installation.
19233
+
19234
+ These scripts can execute arbitrary code, making them a common
19235
+ supply-chain attack vector. Package managers are moving toward
19236
+ blocking them by default and requiring an explicit allowlist.
19237
+ Configuring `allowScripts` sets up that allowlist so scripts only run
19238
+ for the packages you have explicitly reviewed and trust.
19239
+
19240
+ Support for this setting depends on the configured `packageManager`:
19241
+
19242
+ - `NPM`: written to the native `allowScripts` field in `package.json`
19243
+ (requires npm >= 11.16; see https://docs.npmjs.com/cli/v11/commands/npm-approve-scripts).
19244
+ - `BUN`: written to the native `trustedDependencies` field in
19245
+ `package.json` (see https://bun.com/docs/pm/lifecycle).
19246
+ - `PNPM`: written to the `onlyBuiltDependencies` setting in
19247
+ `pnpm-workspace.yaml` (see https://pnpm.io/settings#onlybuiltdependencies).
19248
+ - `YARN2`, `YARN_BERRY`: written to the native
19249
+ `dependenciesMeta.<pkg>.built` allowlist in `package.json`, combined
19250
+ with `enableScripts: false` in `.yarnrc.yml` (see
19251
+ https://yarnpkg.com/features/security#postinstalls). If you set
19252
+ `yarnBerryOptions.yarnRcOptions.enableScripts` explicitly, that value
19253
+ is respected instead of being overridden.
19254
+ - `YARN`, `YARN_CLASSIC`: not supported. Yarn Classic has no native
19255
+ mechanism to allowlist install scripts for specific dependencies.
19256
+ Setting this option with one of these package managers throws an
19257
+ error at synthesis time.
19258
+
19259
+ ---
19260
+
18825
19261
  ##### `authorEmail`<sup>Optional</sup> <a name="authorEmail" id="@taimos/projen.TaimosCdkAppOptions.property.authorEmail"></a>
18826
19262
 
18827
19263
  ```typescript
@@ -19333,6 +19769,19 @@ test your module against the lowest peer version required.
19333
19769
 
19334
19770
  ---
19335
19771
 
19772
+ ##### `pnpmOptions`<sup>Optional</sup> <a name="pnpmOptions" id="@taimos/projen.TaimosCdkAppOptions.property.pnpmOptions"></a>
19773
+
19774
+ ```typescript
19775
+ public readonly pnpmOptions: PnpmOptions;
19776
+ ```
19777
+
19778
+ - *Type:* projen.javascript.PnpmOptions
19779
+ - *Default:* all default options
19780
+
19781
+ Options for pnpm.
19782
+
19783
+ ---
19784
+
19336
19785
  ##### `pnpmVersion`<sup>Optional</sup> <a name="pnpmVersion" id="@taimos/projen.TaimosCdkAppOptions.property.pnpmVersion"></a>
19337
19786
 
19338
19787
  ```typescript
@@ -19950,6 +20399,10 @@ public readonly copyrightOwner: string;
19950
20399
 
19951
20400
  License copyright owner.
19952
20401
 
20402
+ This value is only used if the selected license text contains the
20403
+ `$copyright_owner` placeholder. For example, it has no effect on the
20404
+ MPL-2.0 license text.
20405
+
19953
20406
  ---
19954
20407
 
19955
20408
  ##### `copyrightPeriod`<sup>Optional</sup> <a name="copyrightPeriod" id="@taimos/projen.TaimosCdkAppOptions.property.copyrightPeriod"></a>
@@ -19963,6 +20416,10 @@ public readonly copyrightPeriod: string;
19963
20416
 
19964
20417
  The copyright years to put in the LICENSE file.
19965
20418
 
20419
+ This value is only used if the selected license text contains the
20420
+ `$copyright_period` placeholder. For example, it has no effect on the
20421
+ MPL-2.0 license text.
20422
+
19966
20423
  ---
19967
20424
 
19968
20425
  ##### `defaultReleaseBranch`<sup>Optional</sup> <a name="defaultReleaseBranch" id="@taimos/projen.TaimosCdkAppOptions.property.defaultReleaseBranch"></a>
@@ -20423,6 +20880,22 @@ Options for .projenrc.ts.
20423
20880
 
20424
20881
  ---
20425
20882
 
20883
+ ##### `runner`<sup>Optional</sup> <a name="runner" id="@taimos/projen.TaimosCdkAppOptions.property.runner"></a>
20884
+
20885
+ ```typescript
20886
+ public readonly runner: TypeScriptRunner;
20887
+ ```
20888
+
20889
+ - *Type:* projen.typescript.TypeScriptRunner
20890
+ - *Default:* TypeScriptRunner.tsNode()
20891
+
20892
+ The TypeScript runner to use for executing TypeScript files.
20893
+
20894
+ This is a project-level setting that components (e.g. projenrc) will
20895
+ use as their default runner.
20896
+
20897
+ ---
20898
+
20426
20899
  ##### `sampleCode`<sup>Optional</sup> <a name="sampleCode" id="@taimos/projen.TaimosCdkAppOptions.property.sampleCode"></a>
20427
20900
 
20428
20901
  ```typescript
@@ -20880,6 +21353,7 @@ const taimosCdkConstructLibraryOptions: TaimosCdkConstructLibraryOptions = { ...
20880
21353
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.vscode">vscode</a></code> | <code>boolean</code> | Enable VSCode integration. |
20881
21354
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.addPackageManagerToDevEngines">addPackageManagerToDevEngines</a></code> | <code>boolean</code> | Automatically add the resolved `packageManager` to `devEngines.packageManager` in `package.json`, setting `onFail` to `ignore`. |
20882
21355
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.allowLibraryDependencies">allowLibraryDependencies</a></code> | <code>boolean</code> | Allow the project to include `peerDependencies` and `bundledDependencies`. |
21356
+ | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.allowScripts">allowScripts</a></code> | <code>string[]</code> | List of dependency (package) names that are allowed to run lifecycle install scripts (`preinstall`, `install`, `postinstall`, `prepare`) during dependency installation. |
20883
21357
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.authorEmail">authorEmail</a></code> | <code>string</code> | Author's e-mail. |
20884
21358
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.authorName">authorName</a></code> | <code>string</code> | Author's name. |
20885
21359
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.authorOrganization">authorOrganization</a></code> | <code>boolean</code> | Is the author an organization. |
@@ -20912,6 +21386,7 @@ const taimosCdkConstructLibraryOptions: TaimosCdkConstructLibraryOptions = { ...
20912
21386
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.packageName">packageName</a></code> | <code>string</code> | The "name" in package.json. |
20913
21387
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
20914
21388
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.peerDeps">peerDeps</a></code> | <code>string[]</code> | Peer dependencies for this module. |
21389
+ | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.pnpmOptions">pnpmOptions</a></code> | <code>projen.javascript.PnpmOptions</code> | Options for pnpm. |
20915
21390
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.pnpmVersion">pnpmVersion</a></code> | <code>string</code> | The version of PNPM to use if using PNPM as a package manager. |
20916
21391
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.repository">repository</a></code> | <code>string</code> | The repository is the location where the actual code for your package lives. |
20917
21392
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.repositoryDirectory">repositoryDirectory</a></code> | <code>string</code> | If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives. |
@@ -20991,6 +21466,7 @@ const taimosCdkConstructLibraryOptions: TaimosCdkConstructLibraryOptions = { ...
20991
21466
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.libdir">libdir</a></code> | <code>string</code> | Typescript artifacts output directory. |
20992
21467
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.projenrcTs">projenrcTs</a></code> | <code>boolean</code> | Use TypeScript for your projenrc file (`.projenrc.ts`). |
20993
21468
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.projenrcTsOptions">projenrcTsOptions</a></code> | <code>projen.typescript.ProjenrcOptions</code> | Options for .projenrc.ts. |
21469
+ | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.runner">runner</a></code> | <code>projen.typescript.TypeScriptRunner</code> | The TypeScript runner to use for executing TypeScript files. |
20994
21470
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.sampleCode">sampleCode</a></code> | <code>boolean</code> | Generate one-time sample in `src/` and `test/` if there are no files there. |
20995
21471
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.srcdir">srcdir</a></code> | <code>string</code> | Typescript sources directory. |
20996
21472
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.testdir">testdir</a></code> | <code>string</code> | Jest tests directory. Tests files should be named `xxx.test.ts`. |
@@ -21424,6 +21900,44 @@ for specifying these.
21424
21900
 
21425
21901
  ---
21426
21902
 
21903
+ ##### `allowScripts`<sup>Optional</sup> <a name="allowScripts" id="@taimos/projen.TaimosCdkConstructLibraryOptions.property.allowScripts"></a>
21904
+
21905
+ ```typescript
21906
+ public readonly allowScripts: string[];
21907
+ ```
21908
+
21909
+ - *Type:* string[]
21910
+ - *Default:* all install scripts are allowed to run (package manager default)
21911
+
21912
+ List of dependency (package) names that are allowed to run lifecycle install scripts (`preinstall`, `install`, `postinstall`, `prepare`) during dependency installation.
21913
+
21914
+ These scripts can execute arbitrary code, making them a common
21915
+ supply-chain attack vector. Package managers are moving toward
21916
+ blocking them by default and requiring an explicit allowlist.
21917
+ Configuring `allowScripts` sets up that allowlist so scripts only run
21918
+ for the packages you have explicitly reviewed and trust.
21919
+
21920
+ Support for this setting depends on the configured `packageManager`:
21921
+
21922
+ - `NPM`: written to the native `allowScripts` field in `package.json`
21923
+ (requires npm >= 11.16; see https://docs.npmjs.com/cli/v11/commands/npm-approve-scripts).
21924
+ - `BUN`: written to the native `trustedDependencies` field in
21925
+ `package.json` (see https://bun.com/docs/pm/lifecycle).
21926
+ - `PNPM`: written to the `onlyBuiltDependencies` setting in
21927
+ `pnpm-workspace.yaml` (see https://pnpm.io/settings#onlybuiltdependencies).
21928
+ - `YARN2`, `YARN_BERRY`: written to the native
21929
+ `dependenciesMeta.<pkg>.built` allowlist in `package.json`, combined
21930
+ with `enableScripts: false` in `.yarnrc.yml` (see
21931
+ https://yarnpkg.com/features/security#postinstalls). If you set
21932
+ `yarnBerryOptions.yarnRcOptions.enableScripts` explicitly, that value
21933
+ is respected instead of being overridden.
21934
+ - `YARN`, `YARN_CLASSIC`: not supported. Yarn Classic has no native
21935
+ mechanism to allowlist install scripts for specific dependencies.
21936
+ Setting this option with one of these package managers throws an
21937
+ error at synthesis time.
21938
+
21939
+ ---
21940
+
21427
21941
  ##### `authorEmail`<sup>Optional</sup> <a name="authorEmail" id="@taimos/projen.TaimosCdkConstructLibraryOptions.property.authorEmail"></a>
21428
21942
 
21429
21943
  ```typescript
@@ -21935,6 +22449,19 @@ test your module against the lowest peer version required.
21935
22449
 
21936
22450
  ---
21937
22451
 
22452
+ ##### `pnpmOptions`<sup>Optional</sup> <a name="pnpmOptions" id="@taimos/projen.TaimosCdkConstructLibraryOptions.property.pnpmOptions"></a>
22453
+
22454
+ ```typescript
22455
+ public readonly pnpmOptions: PnpmOptions;
22456
+ ```
22457
+
22458
+ - *Type:* projen.javascript.PnpmOptions
22459
+ - *Default:* all default options
22460
+
22461
+ Options for pnpm.
22462
+
22463
+ ---
22464
+
21938
22465
  ##### `pnpmVersion`<sup>Optional</sup> <a name="pnpmVersion" id="@taimos/projen.TaimosCdkConstructLibraryOptions.property.pnpmVersion"></a>
21939
22466
 
21940
22467
  ```typescript
@@ -22552,6 +23079,10 @@ public readonly copyrightOwner: string;
22552
23079
 
22553
23080
  License copyright owner.
22554
23081
 
23082
+ This value is only used if the selected license text contains the
23083
+ `$copyright_owner` placeholder. For example, it has no effect on the
23084
+ MPL-2.0 license text.
23085
+
22555
23086
  ---
22556
23087
 
22557
23088
  ##### `copyrightPeriod`<sup>Optional</sup> <a name="copyrightPeriod" id="@taimos/projen.TaimosCdkConstructLibraryOptions.property.copyrightPeriod"></a>
@@ -22565,6 +23096,10 @@ public readonly copyrightPeriod: string;
22565
23096
 
22566
23097
  The copyright years to put in the LICENSE file.
22567
23098
 
23099
+ This value is only used if the selected license text contains the
23100
+ `$copyright_period` placeholder. For example, it has no effect on the
23101
+ MPL-2.0 license text.
23102
+
22568
23103
  ---
22569
23104
 
22570
23105
  ##### `defaultReleaseBranch`<sup>Optional</sup> <a name="defaultReleaseBranch" id="@taimos/projen.TaimosCdkConstructLibraryOptions.property.defaultReleaseBranch"></a>
@@ -23025,6 +23560,22 @@ Options for .projenrc.ts.
23025
23560
 
23026
23561
  ---
23027
23562
 
23563
+ ##### `runner`<sup>Optional</sup> <a name="runner" id="@taimos/projen.TaimosCdkConstructLibraryOptions.property.runner"></a>
23564
+
23565
+ ```typescript
23566
+ public readonly runner: TypeScriptRunner;
23567
+ ```
23568
+
23569
+ - *Type:* projen.typescript.TypeScriptRunner
23570
+ - *Default:* TypeScriptRunner.tsNode()
23571
+
23572
+ The TypeScript runner to use for executing TypeScript files.
23573
+
23574
+ This is a project-level setting that components (e.g. projenrc) will
23575
+ use as their default runner.
23576
+
23577
+ ---
23578
+
23028
23579
  ##### `sampleCode`<sup>Optional</sup> <a name="sampleCode" id="@taimos/projen.TaimosCdkConstructLibraryOptions.property.sampleCode"></a>
23029
23580
 
23030
23581
  ```typescript
@@ -23595,6 +24146,7 @@ const taimosPrivateTypescriptLibraryOptions: TaimosPrivateTypescriptLibraryOptio
23595
24146
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.vscode">vscode</a></code> | <code>boolean</code> | Enable VSCode integration. |
23596
24147
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.addPackageManagerToDevEngines">addPackageManagerToDevEngines</a></code> | <code>boolean</code> | Automatically add the resolved `packageManager` to `devEngines.packageManager` in `package.json`, setting `onFail` to `ignore`. |
23597
24148
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.allowLibraryDependencies">allowLibraryDependencies</a></code> | <code>boolean</code> | Allow the project to include `peerDependencies` and `bundledDependencies`. |
24149
+ | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.allowScripts">allowScripts</a></code> | <code>string[]</code> | List of dependency (package) names that are allowed to run lifecycle install scripts (`preinstall`, `install`, `postinstall`, `prepare`) during dependency installation. |
23598
24150
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.authorEmail">authorEmail</a></code> | <code>string</code> | Author's e-mail. |
23599
24151
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.authorName">authorName</a></code> | <code>string</code> | Author's name. |
23600
24152
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.authorOrganization">authorOrganization</a></code> | <code>boolean</code> | Is the author an organization. |
@@ -23627,6 +24179,7 @@ const taimosPrivateTypescriptLibraryOptions: TaimosPrivateTypescriptLibraryOptio
23627
24179
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.packageName">packageName</a></code> | <code>string</code> | The "name" in package.json. |
23628
24180
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
23629
24181
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.peerDeps">peerDeps</a></code> | <code>string[]</code> | Peer dependencies for this module. |
24182
+ | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.pnpmOptions">pnpmOptions</a></code> | <code>projen.javascript.PnpmOptions</code> | Options for pnpm. |
23630
24183
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.pnpmVersion">pnpmVersion</a></code> | <code>string</code> | The version of PNPM to use if using PNPM as a package manager. |
23631
24184
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.repository">repository</a></code> | <code>string</code> | The repository is the location where the actual code for your package lives. |
23632
24185
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.repositoryDirectory">repositoryDirectory</a></code> | <code>string</code> | If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives. |
@@ -23706,6 +24259,7 @@ const taimosPrivateTypescriptLibraryOptions: TaimosPrivateTypescriptLibraryOptio
23706
24259
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.libdir">libdir</a></code> | <code>string</code> | Typescript artifacts output directory. |
23707
24260
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.projenrcTs">projenrcTs</a></code> | <code>boolean</code> | Use TypeScript for your projenrc file (`.projenrc.ts`). |
23708
24261
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.projenrcTsOptions">projenrcTsOptions</a></code> | <code>projen.typescript.ProjenrcOptions</code> | Options for .projenrc.ts. |
24262
+ | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.runner">runner</a></code> | <code>projen.typescript.TypeScriptRunner</code> | The TypeScript runner to use for executing TypeScript files. |
23709
24263
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.sampleCode">sampleCode</a></code> | <code>boolean</code> | Generate one-time sample in `src/` and `test/` if there are no files there. |
23710
24264
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.srcdir">srcdir</a></code> | <code>string</code> | Typescript sources directory. |
23711
24265
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.testdir">testdir</a></code> | <code>string</code> | Jest tests directory. Tests files should be named `xxx.test.ts`. |
@@ -24112,6 +24666,44 @@ for specifying these.
24112
24666
 
24113
24667
  ---
24114
24668
 
24669
+ ##### `allowScripts`<sup>Optional</sup> <a name="allowScripts" id="@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.allowScripts"></a>
24670
+
24671
+ ```typescript
24672
+ public readonly allowScripts: string[];
24673
+ ```
24674
+
24675
+ - *Type:* string[]
24676
+ - *Default:* all install scripts are allowed to run (package manager default)
24677
+
24678
+ List of dependency (package) names that are allowed to run lifecycle install scripts (`preinstall`, `install`, `postinstall`, `prepare`) during dependency installation.
24679
+
24680
+ These scripts can execute arbitrary code, making them a common
24681
+ supply-chain attack vector. Package managers are moving toward
24682
+ blocking them by default and requiring an explicit allowlist.
24683
+ Configuring `allowScripts` sets up that allowlist so scripts only run
24684
+ for the packages you have explicitly reviewed and trust.
24685
+
24686
+ Support for this setting depends on the configured `packageManager`:
24687
+
24688
+ - `NPM`: written to the native `allowScripts` field in `package.json`
24689
+ (requires npm >= 11.16; see https://docs.npmjs.com/cli/v11/commands/npm-approve-scripts).
24690
+ - `BUN`: written to the native `trustedDependencies` field in
24691
+ `package.json` (see https://bun.com/docs/pm/lifecycle).
24692
+ - `PNPM`: written to the `onlyBuiltDependencies` setting in
24693
+ `pnpm-workspace.yaml` (see https://pnpm.io/settings#onlybuiltdependencies).
24694
+ - `YARN2`, `YARN_BERRY`: written to the native
24695
+ `dependenciesMeta.<pkg>.built` allowlist in `package.json`, combined
24696
+ with `enableScripts: false` in `.yarnrc.yml` (see
24697
+ https://yarnpkg.com/features/security#postinstalls). If you set
24698
+ `yarnBerryOptions.yarnRcOptions.enableScripts` explicitly, that value
24699
+ is respected instead of being overridden.
24700
+ - `YARN`, `YARN_CLASSIC`: not supported. Yarn Classic has no native
24701
+ mechanism to allowlist install scripts for specific dependencies.
24702
+ Setting this option with one of these package managers throws an
24703
+ error at synthesis time.
24704
+
24705
+ ---
24706
+
24115
24707
  ##### `authorEmail`<sup>Optional</sup> <a name="authorEmail" id="@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.authorEmail"></a>
24116
24708
 
24117
24709
  ```typescript
@@ -24623,6 +25215,19 @@ test your module against the lowest peer version required.
24623
25215
 
24624
25216
  ---
24625
25217
 
25218
+ ##### `pnpmOptions`<sup>Optional</sup> <a name="pnpmOptions" id="@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.pnpmOptions"></a>
25219
+
25220
+ ```typescript
25221
+ public readonly pnpmOptions: PnpmOptions;
25222
+ ```
25223
+
25224
+ - *Type:* projen.javascript.PnpmOptions
25225
+ - *Default:* all default options
25226
+
25227
+ Options for pnpm.
25228
+
25229
+ ---
25230
+
24626
25231
  ##### `pnpmVersion`<sup>Optional</sup> <a name="pnpmVersion" id="@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.pnpmVersion"></a>
24627
25232
 
24628
25233
  ```typescript
@@ -25240,6 +25845,10 @@ public readonly copyrightOwner: string;
25240
25845
 
25241
25846
  License copyright owner.
25242
25847
 
25848
+ This value is only used if the selected license text contains the
25849
+ `$copyright_owner` placeholder. For example, it has no effect on the
25850
+ MPL-2.0 license text.
25851
+
25243
25852
  ---
25244
25853
 
25245
25854
  ##### `copyrightPeriod`<sup>Optional</sup> <a name="copyrightPeriod" id="@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.copyrightPeriod"></a>
@@ -25253,6 +25862,10 @@ public readonly copyrightPeriod: string;
25253
25862
 
25254
25863
  The copyright years to put in the LICENSE file.
25255
25864
 
25865
+ This value is only used if the selected license text contains the
25866
+ `$copyright_period` placeholder. For example, it has no effect on the
25867
+ MPL-2.0 license text.
25868
+
25256
25869
  ---
25257
25870
 
25258
25871
  ##### `defaultReleaseBranch`<sup>Optional</sup> <a name="defaultReleaseBranch" id="@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.defaultReleaseBranch"></a>
@@ -25713,6 +26326,22 @@ Options for .projenrc.ts.
25713
26326
 
25714
26327
  ---
25715
26328
 
26329
+ ##### `runner`<sup>Optional</sup> <a name="runner" id="@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.runner"></a>
26330
+
26331
+ ```typescript
26332
+ public readonly runner: TypeScriptRunner;
26333
+ ```
26334
+
26335
+ - *Type:* projen.typescript.TypeScriptRunner
26336
+ - *Default:* TypeScriptRunner.tsNode()
26337
+
26338
+ The TypeScript runner to use for executing TypeScript files.
26339
+
26340
+ This is a project-level setting that components (e.g. projenrc) will
26341
+ use as their default runner.
26342
+
26343
+ ---
26344
+
25716
26345
  ##### `sampleCode`<sup>Optional</sup> <a name="sampleCode" id="@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.sampleCode"></a>
25717
26346
 
25718
26347
  ```typescript
@@ -25896,6 +26525,7 @@ const taimosTypescriptLibraryOptions: TaimosTypescriptLibraryOptions = { ... }
25896
26525
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.vscode">vscode</a></code> | <code>boolean</code> | Enable VSCode integration. |
25897
26526
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.addPackageManagerToDevEngines">addPackageManagerToDevEngines</a></code> | <code>boolean</code> | Automatically add the resolved `packageManager` to `devEngines.packageManager` in `package.json`, setting `onFail` to `ignore`. |
25898
26527
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.allowLibraryDependencies">allowLibraryDependencies</a></code> | <code>boolean</code> | Allow the project to include `peerDependencies` and `bundledDependencies`. |
26528
+ | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.allowScripts">allowScripts</a></code> | <code>string[]</code> | List of dependency (package) names that are allowed to run lifecycle install scripts (`preinstall`, `install`, `postinstall`, `prepare`) during dependency installation. |
25899
26529
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.authorEmail">authorEmail</a></code> | <code>string</code> | Author's e-mail. |
25900
26530
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.authorName">authorName</a></code> | <code>string</code> | Author's name. |
25901
26531
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.authorOrganization">authorOrganization</a></code> | <code>boolean</code> | Is the author an organization. |
@@ -25928,6 +26558,7 @@ const taimosTypescriptLibraryOptions: TaimosTypescriptLibraryOptions = { ... }
25928
26558
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.packageName">packageName</a></code> | <code>string</code> | The "name" in package.json. |
25929
26559
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
25930
26560
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.peerDeps">peerDeps</a></code> | <code>string[]</code> | Peer dependencies for this module. |
26561
+ | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.pnpmOptions">pnpmOptions</a></code> | <code>projen.javascript.PnpmOptions</code> | Options for pnpm. |
25931
26562
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.pnpmVersion">pnpmVersion</a></code> | <code>string</code> | The version of PNPM to use if using PNPM as a package manager. |
25932
26563
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.repository">repository</a></code> | <code>string</code> | The repository is the location where the actual code for your package lives. |
25933
26564
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.repositoryDirectory">repositoryDirectory</a></code> | <code>string</code> | If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives. |
@@ -26007,6 +26638,7 @@ const taimosTypescriptLibraryOptions: TaimosTypescriptLibraryOptions = { ... }
26007
26638
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.libdir">libdir</a></code> | <code>string</code> | Typescript artifacts output directory. |
26008
26639
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.projenrcTs">projenrcTs</a></code> | <code>boolean</code> | Use TypeScript for your projenrc file (`.projenrc.ts`). |
26009
26640
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.projenrcTsOptions">projenrcTsOptions</a></code> | <code>projen.typescript.ProjenrcOptions</code> | Options for .projenrc.ts. |
26641
+ | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.runner">runner</a></code> | <code>projen.typescript.TypeScriptRunner</code> | The TypeScript runner to use for executing TypeScript files. |
26010
26642
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.sampleCode">sampleCode</a></code> | <code>boolean</code> | Generate one-time sample in `src/` and `test/` if there are no files there. |
26011
26643
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.srcdir">srcdir</a></code> | <code>string</code> | Typescript sources directory. |
26012
26644
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.testdir">testdir</a></code> | <code>string</code> | Jest tests directory. Tests files should be named `xxx.test.ts`. |
@@ -26413,6 +27045,44 @@ for specifying these.
26413
27045
 
26414
27046
  ---
26415
27047
 
27048
+ ##### `allowScripts`<sup>Optional</sup> <a name="allowScripts" id="@taimos/projen.TaimosTypescriptLibraryOptions.property.allowScripts"></a>
27049
+
27050
+ ```typescript
27051
+ public readonly allowScripts: string[];
27052
+ ```
27053
+
27054
+ - *Type:* string[]
27055
+ - *Default:* all install scripts are allowed to run (package manager default)
27056
+
27057
+ List of dependency (package) names that are allowed to run lifecycle install scripts (`preinstall`, `install`, `postinstall`, `prepare`) during dependency installation.
27058
+
27059
+ These scripts can execute arbitrary code, making them a common
27060
+ supply-chain attack vector. Package managers are moving toward
27061
+ blocking them by default and requiring an explicit allowlist.
27062
+ Configuring `allowScripts` sets up that allowlist so scripts only run
27063
+ for the packages you have explicitly reviewed and trust.
27064
+
27065
+ Support for this setting depends on the configured `packageManager`:
27066
+
27067
+ - `NPM`: written to the native `allowScripts` field in `package.json`
27068
+ (requires npm >= 11.16; see https://docs.npmjs.com/cli/v11/commands/npm-approve-scripts).
27069
+ - `BUN`: written to the native `trustedDependencies` field in
27070
+ `package.json` (see https://bun.com/docs/pm/lifecycle).
27071
+ - `PNPM`: written to the `onlyBuiltDependencies` setting in
27072
+ `pnpm-workspace.yaml` (see https://pnpm.io/settings#onlybuiltdependencies).
27073
+ - `YARN2`, `YARN_BERRY`: written to the native
27074
+ `dependenciesMeta.<pkg>.built` allowlist in `package.json`, combined
27075
+ with `enableScripts: false` in `.yarnrc.yml` (see
27076
+ https://yarnpkg.com/features/security#postinstalls). If you set
27077
+ `yarnBerryOptions.yarnRcOptions.enableScripts` explicitly, that value
27078
+ is respected instead of being overridden.
27079
+ - `YARN`, `YARN_CLASSIC`: not supported. Yarn Classic has no native
27080
+ mechanism to allowlist install scripts for specific dependencies.
27081
+ Setting this option with one of these package managers throws an
27082
+ error at synthesis time.
27083
+
27084
+ ---
27085
+
26416
27086
  ##### `authorEmail`<sup>Optional</sup> <a name="authorEmail" id="@taimos/projen.TaimosTypescriptLibraryOptions.property.authorEmail"></a>
26417
27087
 
26418
27088
  ```typescript
@@ -26924,6 +27594,19 @@ test your module against the lowest peer version required.
26924
27594
 
26925
27595
  ---
26926
27596
 
27597
+ ##### `pnpmOptions`<sup>Optional</sup> <a name="pnpmOptions" id="@taimos/projen.TaimosTypescriptLibraryOptions.property.pnpmOptions"></a>
27598
+
27599
+ ```typescript
27600
+ public readonly pnpmOptions: PnpmOptions;
27601
+ ```
27602
+
27603
+ - *Type:* projen.javascript.PnpmOptions
27604
+ - *Default:* all default options
27605
+
27606
+ Options for pnpm.
27607
+
27608
+ ---
27609
+
26927
27610
  ##### `pnpmVersion`<sup>Optional</sup> <a name="pnpmVersion" id="@taimos/projen.TaimosTypescriptLibraryOptions.property.pnpmVersion"></a>
26928
27611
 
26929
27612
  ```typescript
@@ -27541,6 +28224,10 @@ public readonly copyrightOwner: string;
27541
28224
 
27542
28225
  License copyright owner.
27543
28226
 
28227
+ This value is only used if the selected license text contains the
28228
+ `$copyright_owner` placeholder. For example, it has no effect on the
28229
+ MPL-2.0 license text.
28230
+
27544
28231
  ---
27545
28232
 
27546
28233
  ##### `copyrightPeriod`<sup>Optional</sup> <a name="copyrightPeriod" id="@taimos/projen.TaimosTypescriptLibraryOptions.property.copyrightPeriod"></a>
@@ -27554,6 +28241,10 @@ public readonly copyrightPeriod: string;
27554
28241
 
27555
28242
  The copyright years to put in the LICENSE file.
27556
28243
 
28244
+ This value is only used if the selected license text contains the
28245
+ `$copyright_period` placeholder. For example, it has no effect on the
28246
+ MPL-2.0 license text.
28247
+
27557
28248
  ---
27558
28249
 
27559
28250
  ##### `defaultReleaseBranch`<sup>Optional</sup> <a name="defaultReleaseBranch" id="@taimos/projen.TaimosTypescriptLibraryOptions.property.defaultReleaseBranch"></a>
@@ -28014,6 +28705,22 @@ Options for .projenrc.ts.
28014
28705
 
28015
28706
  ---
28016
28707
 
28708
+ ##### `runner`<sup>Optional</sup> <a name="runner" id="@taimos/projen.TaimosTypescriptLibraryOptions.property.runner"></a>
28709
+
28710
+ ```typescript
28711
+ public readonly runner: TypeScriptRunner;
28712
+ ```
28713
+
28714
+ - *Type:* projen.typescript.TypeScriptRunner
28715
+ - *Default:* TypeScriptRunner.tsNode()
28716
+
28717
+ The TypeScript runner to use for executing TypeScript files.
28718
+
28719
+ This is a project-level setting that components (e.g. projenrc) will
28720
+ use as their default runner.
28721
+
28722
+ ---
28723
+
28017
28724
  ##### `sampleCode`<sup>Optional</sup> <a name="sampleCode" id="@taimos/projen.TaimosTypescriptLibraryOptions.property.sampleCode"></a>
28018
28725
 
28019
28726
  ```typescript