cdklabs-projen-project-types 0.6.5 → 0.6.7

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
@@ -253,8 +253,10 @@ Synthesize all project files into `outdir`.
253
253
  2. Delete all generated files
254
254
  3. Synthesize all subprojects
255
255
  4. Synthesize all components of this project
256
- 5. Call "postSynthesize()" for all components of this project
257
- 6. Call "this.postSynthesize()"
256
+ 5. Call "projectCreation()" for all components, only if the project is being created for the first time
257
+ 6. Call "postSynthesize()" for all components of this project
258
+ 7. Call "this.postSynthesize()"
259
+ 8. Call "postProjectCreation()" for all components, only if the project is being created for the first time
258
260
 
259
261
  ##### `tryFindFile` <a name="tryFindFile" id="cdklabs-projen-project-types.CdkConstructLibrary.tryFindFile"></a>
260
262
 
@@ -932,7 +934,9 @@ the project is being ejected.
932
934
 
933
935
  ---
934
936
 
935
- ##### `initProject`<sup>Optional</sup> <a name="initProject" id="cdklabs-projen-project-types.CdkConstructLibrary.property.initProject"></a>
937
+ ##### ~~`initProject`~~<sup>Optional</sup> <a name="initProject" id="cdklabs-projen-project-types.CdkConstructLibrary.property.initProject"></a>
938
+
939
+ - *Deprecated:* use the `initProject` argument passed to `Component.projectCreation()` instead.
936
940
 
937
941
  ```typescript
938
942
  public readonly initProject: InitProject;
@@ -1677,8 +1681,10 @@ Synthesize all project files into `outdir`.
1677
1681
  2. Delete all generated files
1678
1682
  3. Synthesize all subprojects
1679
1683
  4. Synthesize all components of this project
1680
- 5. Call "postSynthesize()" for all components of this project
1681
- 6. Call "this.postSynthesize()"
1684
+ 5. Call "projectCreation()" for all components, only if the project is being created for the first time
1685
+ 6. Call "postSynthesize()" for all components of this project
1686
+ 7. Call "this.postSynthesize()"
1687
+ 8. Call "postProjectCreation()" for all components, only if the project is being created for the first time
1682
1688
 
1683
1689
  ##### `tryFindFile` <a name="tryFindFile" id="cdklabs-projen-project-types.CdkJsiiProject.tryFindFile"></a>
1684
1690
 
@@ -2354,7 +2360,9 @@ the project is being ejected.
2354
2360
 
2355
2361
  ---
2356
2362
 
2357
- ##### `initProject`<sup>Optional</sup> <a name="initProject" id="cdklabs-projen-project-types.CdkJsiiProject.property.initProject"></a>
2363
+ ##### ~~`initProject`~~<sup>Optional</sup> <a name="initProject" id="cdklabs-projen-project-types.CdkJsiiProject.property.initProject"></a>
2364
+
2365
+ - *Deprecated:* use the `initProject` argument passed to `Component.projectCreation()` instead.
2358
2366
 
2359
2367
  ```typescript
2360
2368
  public readonly initProject: InitProject;
@@ -3077,8 +3085,10 @@ Synthesize all project files into `outdir`.
3077
3085
  2. Delete all generated files
3078
3086
  3. Synthesize all subprojects
3079
3087
  4. Synthesize all components of this project
3080
- 5. Call "postSynthesize()" for all components of this project
3081
- 6. Call "this.postSynthesize()"
3088
+ 5. Call "projectCreation()" for all components, only if the project is being created for the first time
3089
+ 6. Call "postSynthesize()" for all components of this project
3090
+ 7. Call "this.postSynthesize()"
3091
+ 8. Call "postProjectCreation()" for all components, only if the project is being created for the first time
3082
3092
 
3083
3093
  ##### `tryFindFile` <a name="tryFindFile" id="cdklabs-projen-project-types.CdklabsConstructLibrary.tryFindFile"></a>
3084
3094
 
@@ -3756,7 +3766,9 @@ the project is being ejected.
3756
3766
 
3757
3767
  ---
3758
3768
 
3759
- ##### `initProject`<sup>Optional</sup> <a name="initProject" id="cdklabs-projen-project-types.CdklabsConstructLibrary.property.initProject"></a>
3769
+ ##### ~~`initProject`~~<sup>Optional</sup> <a name="initProject" id="cdklabs-projen-project-types.CdklabsConstructLibrary.property.initProject"></a>
3770
+
3771
+ - *Deprecated:* use the `initProject` argument passed to `Component.projectCreation()` instead.
3760
3772
 
3761
3773
  ```typescript
3762
3774
  public readonly initProject: InitProject;
@@ -4501,8 +4513,10 @@ Synthesize all project files into `outdir`.
4501
4513
  2. Delete all generated files
4502
4514
  3. Synthesize all subprojects
4503
4515
  4. Synthesize all components of this project
4504
- 5. Call "postSynthesize()" for all components of this project
4505
- 6. Call "this.postSynthesize()"
4516
+ 5. Call "projectCreation()" for all components, only if the project is being created for the first time
4517
+ 6. Call "postSynthesize()" for all components of this project
4518
+ 7. Call "this.postSynthesize()"
4519
+ 8. Call "postProjectCreation()" for all components, only if the project is being created for the first time
4506
4520
 
4507
4521
  ##### `tryFindFile` <a name="tryFindFile" id="cdklabs-projen-project-types.CdklabsJsiiProject.tryFindFile"></a>
4508
4522
 
@@ -5178,7 +5192,9 @@ the project is being ejected.
5178
5192
 
5179
5193
  ---
5180
5194
 
5181
- ##### `initProject`<sup>Optional</sup> <a name="initProject" id="cdklabs-projen-project-types.CdklabsJsiiProject.property.initProject"></a>
5195
+ ##### ~~`initProject`~~<sup>Optional</sup> <a name="initProject" id="cdklabs-projen-project-types.CdklabsJsiiProject.property.initProject"></a>
5196
+
5197
+ - *Deprecated:* use the `initProject` argument passed to `Component.projectCreation()` instead.
5182
5198
 
5183
5199
  ```typescript
5184
5200
  public readonly initProject: InitProject;
@@ -5900,8 +5916,10 @@ Synthesize all project files into `outdir`.
5900
5916
  2. Delete all generated files
5901
5917
  3. Synthesize all subprojects
5902
5918
  4. Synthesize all components of this project
5903
- 5. Call "postSynthesize()" for all components of this project
5904
- 6. Call "this.postSynthesize()"
5919
+ 5. Call "projectCreation()" for all components, only if the project is being created for the first time
5920
+ 6. Call "postSynthesize()" for all components of this project
5921
+ 7. Call "this.postSynthesize()"
5922
+ 8. Call "postProjectCreation()" for all components, only if the project is being created for the first time
5905
5923
 
5906
5924
  ##### `tryFindFile` <a name="tryFindFile" id="cdklabs-projen-project-types.yarn.CdkLabsMonorepo.tryFindFile"></a>
5907
5925
 
@@ -6610,7 +6628,9 @@ the project is being ejected.
6610
6628
 
6611
6629
  ---
6612
6630
 
6613
- ##### `initProject`<sup>Optional</sup> <a name="initProject" id="cdklabs-projen-project-types.yarn.CdkLabsMonorepo.property.initProject"></a>
6631
+ ##### ~~`initProject`~~<sup>Optional</sup> <a name="initProject" id="cdklabs-projen-project-types.yarn.CdkLabsMonorepo.property.initProject"></a>
6632
+
6633
+ - *Deprecated:* use the `initProject` argument passed to `Component.projectCreation()` instead.
6614
6634
 
6615
6635
  ```typescript
6616
6636
  public readonly initProject: InitProject;
@@ -7357,8 +7377,10 @@ Synthesize all project files into `outdir`.
7357
7377
  2. Delete all generated files
7358
7378
  3. Synthesize all subprojects
7359
7379
  4. Synthesize all components of this project
7360
- 5. Call "postSynthesize()" for all components of this project
7361
- 6. Call "this.postSynthesize()"
7380
+ 5. Call "projectCreation()" for all components, only if the project is being created for the first time
7381
+ 6. Call "postSynthesize()" for all components of this project
7382
+ 7. Call "this.postSynthesize()"
7383
+ 8. Call "postProjectCreation()" for all components, only if the project is being created for the first time
7362
7384
 
7363
7385
  ##### `tryFindFile` <a name="tryFindFile" id="cdklabs-projen-project-types.CdklabsTypeScriptProject.tryFindFile"></a>
7364
7386
 
@@ -8034,7 +8056,9 @@ the project is being ejected.
8034
8056
 
8035
8057
  ---
8036
8058
 
8037
- ##### `initProject`<sup>Optional</sup> <a name="initProject" id="cdklabs-projen-project-types.CdklabsTypeScriptProject.property.initProject"></a>
8059
+ ##### ~~`initProject`~~<sup>Optional</sup> <a name="initProject" id="cdklabs-projen-project-types.CdklabsTypeScriptProject.property.initProject"></a>
8060
+
8061
+ - *Deprecated:* use the `initProject` argument passed to `Component.projectCreation()` instead.
8038
8062
 
8039
8063
  ```typescript
8040
8064
  public readonly initProject: InitProject;
@@ -8757,8 +8781,10 @@ Synthesize all project files into `outdir`.
8757
8781
  2. Delete all generated files
8758
8782
  3. Synthesize all subprojects
8759
8783
  4. Synthesize all components of this project
8760
- 5. Call "postSynthesize()" for all components of this project
8761
- 6. Call "this.postSynthesize()"
8784
+ 5. Call "projectCreation()" for all components, only if the project is being created for the first time
8785
+ 6. Call "postSynthesize()" for all components of this project
8786
+ 7. Call "this.postSynthesize()"
8787
+ 8. Call "postProjectCreation()" for all components, only if the project is being created for the first time
8762
8788
 
8763
8789
  ##### `tryFindFile` <a name="tryFindFile" id="cdklabs-projen-project-types.CdkTypeScriptProject.tryFindFile"></a>
8764
8790
 
@@ -9434,7 +9460,9 @@ the project is being ejected.
9434
9460
 
9435
9461
  ---
9436
9462
 
9437
- ##### `initProject`<sup>Optional</sup> <a name="initProject" id="cdklabs-projen-project-types.CdkTypeScriptProject.property.initProject"></a>
9463
+ ##### ~~`initProject`~~<sup>Optional</sup> <a name="initProject" id="cdklabs-projen-project-types.CdkTypeScriptProject.property.initProject"></a>
9464
+
9465
+ - *Deprecated:* use the `initProject` argument passed to `Component.projectCreation()` instead.
9438
9466
 
9439
9467
  ```typescript
9440
9468
  public readonly initProject: InitProject;
@@ -9906,6 +9934,233 @@ public readonly DEFAULT_TS_JEST_TRANFORM_PATTERN: string;
9906
9934
 
9907
9935
  ---
9908
9936
 
9937
+ ### CheckGhaExpressions <a name="CheckGhaExpressions" id="cdklabs-projen-project-types.CheckGhaExpressions"></a>
9938
+
9939
+ Check GitHub Actions workflows for the use of dangerous expressions directly interpolated in shell steps.
9940
+
9941
+ Some of these can be used to perform command injection attacks. We block all of them to be overly safe,
9942
+ even the ones that are not dangerous.
9943
+
9944
+ Automatically added to all of our project types.
9945
+
9946
+ #### Initializers <a name="Initializers" id="cdklabs-projen-project-types.CheckGhaExpressions.Initializer"></a>
9947
+
9948
+ ```typescript
9949
+ import { CheckGhaExpressions } from 'cdklabs-projen-project-types'
9950
+
9951
+ new CheckGhaExpressions(project: IConstruct)
9952
+ ```
9953
+
9954
+ | **Name** | **Type** | **Description** |
9955
+ | --- | --- | --- |
9956
+ | <code><a href="#cdklabs-projen-project-types.CheckGhaExpressions.Initializer.parameter.project">project</a></code> | <code>constructs.IConstruct</code> | *No description.* |
9957
+
9958
+ ---
9959
+
9960
+ ##### `project`<sup>Required</sup> <a name="project" id="cdklabs-projen-project-types.CheckGhaExpressions.Initializer.parameter.project"></a>
9961
+
9962
+ - *Type:* constructs.IConstruct
9963
+
9964
+ ---
9965
+
9966
+ #### Methods <a name="Methods" id="Methods"></a>
9967
+
9968
+ | **Name** | **Description** |
9969
+ | --- | --- |
9970
+ | <code><a href="#cdklabs-projen-project-types.CheckGhaExpressions.toString">toString</a></code> | Returns a string representation of this construct. |
9971
+ | <code><a href="#cdklabs-projen-project-types.CheckGhaExpressions.with">with</a></code> | Applies one or more mixins to this construct. |
9972
+ | <code><a href="#cdklabs-projen-project-types.CheckGhaExpressions.postProjectCreation">postProjectCreation</a></code> | Called once, right after `postSynthesize()`, only when the project is created for the first time. |
9973
+ | <code><a href="#cdklabs-projen-project-types.CheckGhaExpressions.postSynthesize">postSynthesize</a></code> | Called after synthesis. |
9974
+ | <code><a href="#cdklabs-projen-project-types.CheckGhaExpressions.preSynthesize">preSynthesize</a></code> | Called before synthesis. |
9975
+ | <code><a href="#cdklabs-projen-project-types.CheckGhaExpressions.projectCreation">projectCreation</a></code> | Called once, right after `synthesize()`, only when the project is created for the first time. |
9976
+ | <code><a href="#cdklabs-projen-project-types.CheckGhaExpressions.synthesize">synthesize</a></code> | Synthesizes files to the project output directory. |
9977
+
9978
+ ---
9979
+
9980
+ ##### `toString` <a name="toString" id="cdklabs-projen-project-types.CheckGhaExpressions.toString"></a>
9981
+
9982
+ ```typescript
9983
+ public toString(): string
9984
+ ```
9985
+
9986
+ Returns a string representation of this construct.
9987
+
9988
+ ##### `with` <a name="with" id="cdklabs-projen-project-types.CheckGhaExpressions.with"></a>
9989
+
9990
+ ```typescript
9991
+ public with(mixins: ...IMixin[]): IConstruct
9992
+ ```
9993
+
9994
+ Applies one or more mixins to this construct.
9995
+
9996
+ Mixins are applied in order. The list of constructs is captured at the
9997
+ start of the call, so constructs added by a mixin will not be visited.
9998
+ Use multiple `with()` calls if subsequent mixins should apply to added
9999
+ constructs.
10000
+
10001
+ ###### `mixins`<sup>Required</sup> <a name="mixins" id="cdklabs-projen-project-types.CheckGhaExpressions.with.parameter.mixins"></a>
10002
+
10003
+ - *Type:* ...constructs.IMixin[]
10004
+
10005
+ The mixins to apply.
10006
+
10007
+ ---
10008
+
10009
+ ##### `postProjectCreation` <a name="postProjectCreation" id="cdklabs-projen-project-types.CheckGhaExpressions.postProjectCreation"></a>
10010
+
10011
+ ```typescript
10012
+ public postProjectCreation(initProject: InitProject): void
10013
+ ```
10014
+
10015
+ Called once, right after `postSynthesize()`, only when the project is created for the first time.
10016
+
10017
+ It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
10018
+ It is also skipped when post-synthesis steps are disabled, e.g. `--no-post` or `PROJEN_DISABLE_POST`.
10019
+ Use it for one-off setup that can be turned off by the user, like running a task to give the user immediate
10020
+ feedback on their new project. Order across components is not guaranteed.
10021
+
10022
+ ###### `initProject`<sup>Required</sup> <a name="initProject" id="cdklabs-projen-project-types.CheckGhaExpressions.postProjectCreation.parameter.initProject"></a>
10023
+
10024
+ - *Type:* projen.InitProject
10025
+
10026
+ Details about how the project was created, e.g. its type and the original CLI args.
10027
+
10028
+ ---
10029
+
10030
+ ##### `postSynthesize` <a name="postSynthesize" id="cdklabs-projen-project-types.CheckGhaExpressions.postSynthesize"></a>
10031
+
10032
+ ```typescript
10033
+ public postSynthesize(): void
10034
+ ```
10035
+
10036
+ Called after synthesis.
10037
+
10038
+ Order is *not* guaranteed.
10039
+
10040
+ ##### `preSynthesize` <a name="preSynthesize" id="cdklabs-projen-project-types.CheckGhaExpressions.preSynthesize"></a>
10041
+
10042
+ ```typescript
10043
+ public preSynthesize(): void
10044
+ ```
10045
+
10046
+ Called before synthesis.
10047
+
10048
+ ##### `projectCreation` <a name="projectCreation" id="cdklabs-projen-project-types.CheckGhaExpressions.projectCreation"></a>
10049
+
10050
+ ```typescript
10051
+ public projectCreation(initProject: InitProject): void
10052
+ ```
10053
+
10054
+ Called once, right after `synthesize()`, only when the project is created for the first time.
10055
+
10056
+ It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
10057
+ Use it for deterministic, one-off file generation. Order across components is not guaranteed.
10058
+
10059
+ ###### `initProject`<sup>Required</sup> <a name="initProject" id="cdklabs-projen-project-types.CheckGhaExpressions.projectCreation.parameter.initProject"></a>
10060
+
10061
+ - *Type:* projen.InitProject
10062
+
10063
+ Details about how the project was created, e.g. its type and the original CLI args.
10064
+
10065
+ ---
10066
+
10067
+ ##### `synthesize` <a name="synthesize" id="cdklabs-projen-project-types.CheckGhaExpressions.synthesize"></a>
10068
+
10069
+ ```typescript
10070
+ public synthesize(): void
10071
+ ```
10072
+
10073
+ Synthesizes files to the project output directory.
10074
+
10075
+ #### Static Functions <a name="Static Functions" id="Static Functions"></a>
10076
+
10077
+ | **Name** | **Description** |
10078
+ | --- | --- |
10079
+ | <code><a href="#cdklabs-projen-project-types.CheckGhaExpressions.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
10080
+ | <code><a href="#cdklabs-projen-project-types.CheckGhaExpressions.isComponent">isComponent</a></code> | Test whether the given construct is a component. |
10081
+
10082
+ ---
10083
+
10084
+ ##### `isConstruct` <a name="isConstruct" id="cdklabs-projen-project-types.CheckGhaExpressions.isConstruct"></a>
10085
+
10086
+ ```typescript
10087
+ import { CheckGhaExpressions } from 'cdklabs-projen-project-types'
10088
+
10089
+ CheckGhaExpressions.isConstruct(x: any)
10090
+ ```
10091
+
10092
+ Checks if `x` is a construct.
10093
+
10094
+ Use this method instead of `instanceof` to properly detect `Construct`
10095
+ instances, even when the construct library is symlinked.
10096
+
10097
+ Explanation: in JavaScript, multiple copies of the `constructs` library on
10098
+ disk are seen as independent, completely different libraries. As a
10099
+ consequence, the class `Construct` in each copy of the `constructs` library
10100
+ is seen as a different class, and an instance of one class will not test as
10101
+ `instanceof` the other class. `npm install` will not create installations
10102
+ like this, but users may manually symlink construct libraries together or
10103
+ use a monorepo tool: in those cases, multiple copies of the `constructs`
10104
+ library can be accidentally installed, and `instanceof` will behave
10105
+ unpredictably. It is safest to avoid using `instanceof`, and using
10106
+ this type-testing method instead.
10107
+
10108
+ ###### `x`<sup>Required</sup> <a name="x" id="cdklabs-projen-project-types.CheckGhaExpressions.isConstruct.parameter.x"></a>
10109
+
10110
+ - *Type:* any
10111
+
10112
+ Any object.
10113
+
10114
+ ---
10115
+
10116
+ ##### `isComponent` <a name="isComponent" id="cdklabs-projen-project-types.CheckGhaExpressions.isComponent"></a>
10117
+
10118
+ ```typescript
10119
+ import { CheckGhaExpressions } from 'cdklabs-projen-project-types'
10120
+
10121
+ CheckGhaExpressions.isComponent(x: any)
10122
+ ```
10123
+
10124
+ Test whether the given construct is a component.
10125
+
10126
+ ###### `x`<sup>Required</sup> <a name="x" id="cdklabs-projen-project-types.CheckGhaExpressions.isComponent.parameter.x"></a>
10127
+
10128
+ - *Type:* any
10129
+
10130
+ ---
10131
+
10132
+ #### Properties <a name="Properties" id="Properties"></a>
10133
+
10134
+ | **Name** | **Type** | **Description** |
10135
+ | --- | --- | --- |
10136
+ | <code><a href="#cdklabs-projen-project-types.CheckGhaExpressions.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
10137
+ | <code><a href="#cdklabs-projen-project-types.CheckGhaExpressions.property.project">project</a></code> | <code>projen.Project</code> | *No description.* |
10138
+
10139
+ ---
10140
+
10141
+ ##### `node`<sup>Required</sup> <a name="node" id="cdklabs-projen-project-types.CheckGhaExpressions.property.node"></a>
10142
+
10143
+ ```typescript
10144
+ public readonly node: Node;
10145
+ ```
10146
+
10147
+ - *Type:* constructs.Node
10148
+
10149
+ The tree node.
10150
+
10151
+ ---
10152
+
10153
+ ##### `project`<sup>Required</sup> <a name="project" id="cdklabs-projen-project-types.CheckGhaExpressions.property.project"></a>
10154
+
10155
+ ```typescript
10156
+ public readonly project: Project;
10157
+ ```
10158
+
10159
+ - *Type:* projen.Project
10160
+
10161
+ ---
10162
+
10163
+
9909
10164
  ### Constraints <a name="Constraints" id="cdklabs-projen-project-types.yarn.Constraints"></a>
9910
10165
 
9911
10166
  #### Initializers <a name="Initializers" id="cdklabs-projen-project-types.yarn.Constraints.Initializer"></a>
@@ -9941,8 +10196,10 @@ new yarn.Constraints(project: Monorepo, options: ConstraintsOptions)
9941
10196
  | --- | --- |
9942
10197
  | <code><a href="#cdklabs-projen-project-types.yarn.Constraints.toString">toString</a></code> | Returns a string representation of this construct. |
9943
10198
  | <code><a href="#cdklabs-projen-project-types.yarn.Constraints.with">with</a></code> | Applies one or more mixins to this construct. |
10199
+ | <code><a href="#cdklabs-projen-project-types.yarn.Constraints.postProjectCreation">postProjectCreation</a></code> | Called once, right after `postSynthesize()`, only when the project is created for the first time. |
9944
10200
  | <code><a href="#cdklabs-projen-project-types.yarn.Constraints.postSynthesize">postSynthesize</a></code> | Called after synthesis. |
9945
10201
  | <code><a href="#cdklabs-projen-project-types.yarn.Constraints.preSynthesize">preSynthesize</a></code> | Called before synthesis. |
10202
+ | <code><a href="#cdklabs-projen-project-types.yarn.Constraints.projectCreation">projectCreation</a></code> | Called once, right after `synthesize()`, only when the project is created for the first time. |
9946
10203
  | <code><a href="#cdklabs-projen-project-types.yarn.Constraints.synthesize">synthesize</a></code> | Synthesizes files to the project output directory. |
9947
10204
 
9948
10205
  ---
@@ -9976,6 +10233,27 @@ The mixins to apply.
9976
10233
 
9977
10234
  ---
9978
10235
 
10236
+ ##### `postProjectCreation` <a name="postProjectCreation" id="cdklabs-projen-project-types.yarn.Constraints.postProjectCreation"></a>
10237
+
10238
+ ```typescript
10239
+ public postProjectCreation(initProject: InitProject): void
10240
+ ```
10241
+
10242
+ Called once, right after `postSynthesize()`, only when the project is created for the first time.
10243
+
10244
+ It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
10245
+ It is also skipped when post-synthesis steps are disabled, e.g. `--no-post` or `PROJEN_DISABLE_POST`.
10246
+ Use it for one-off setup that can be turned off by the user, like running a task to give the user immediate
10247
+ feedback on their new project. Order across components is not guaranteed.
10248
+
10249
+ ###### `initProject`<sup>Required</sup> <a name="initProject" id="cdklabs-projen-project-types.yarn.Constraints.postProjectCreation.parameter.initProject"></a>
10250
+
10251
+ - *Type:* projen.InitProject
10252
+
10253
+ Details about how the project was created, e.g. its type and the original CLI args.
10254
+
10255
+ ---
10256
+
9979
10257
  ##### `postSynthesize` <a name="postSynthesize" id="cdklabs-projen-project-types.yarn.Constraints.postSynthesize"></a>
9980
10258
 
9981
10259
  ```typescript
@@ -9994,6 +10272,25 @@ public preSynthesize(): void
9994
10272
 
9995
10273
  Called before synthesis.
9996
10274
 
10275
+ ##### `projectCreation` <a name="projectCreation" id="cdklabs-projen-project-types.yarn.Constraints.projectCreation"></a>
10276
+
10277
+ ```typescript
10278
+ public projectCreation(initProject: InitProject): void
10279
+ ```
10280
+
10281
+ Called once, right after `synthesize()`, only when the project is created for the first time.
10282
+
10283
+ It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
10284
+ Use it for deterministic, one-off file generation. Order across components is not guaranteed.
10285
+
10286
+ ###### `initProject`<sup>Required</sup> <a name="initProject" id="cdklabs-projen-project-types.yarn.Constraints.projectCreation.parameter.initProject"></a>
10287
+
10288
+ - *Type:* projen.InitProject
10289
+
10290
+ Details about how the project was created, e.g. its type and the original CLI args.
10291
+
10292
+ ---
10293
+
9997
10294
  ##### `synthesize` <a name="synthesize" id="cdklabs-projen-project-types.yarn.Constraints.synthesize"></a>
9998
10295
 
9999
10296
  ```typescript
@@ -10341,8 +10638,10 @@ Synthesize all project files into `outdir`.
10341
10638
  2. Delete all generated files
10342
10639
  3. Synthesize all subprojects
10343
10640
  4. Synthesize all components of this project
10344
- 5. Call "postSynthesize()" for all components of this project
10345
- 6. Call "this.postSynthesize()"
10641
+ 5. Call "projectCreation()" for all components, only if the project is being created for the first time
10642
+ 6. Call "postSynthesize()" for all components of this project
10643
+ 7. Call "this.postSynthesize()"
10644
+ 8. Call "postProjectCreation()" for all components, only if the project is being created for the first time
10346
10645
 
10347
10646
  ##### `tryFindFile` <a name="tryFindFile" id="cdklabs-projen-project-types.yarn.Monorepo.tryFindFile"></a>
10348
10647
 
@@ -11051,7 +11350,9 @@ the project is being ejected.
11051
11350
 
11052
11351
  ---
11053
11352
 
11054
- ##### `initProject`<sup>Optional</sup> <a name="initProject" id="cdklabs-projen-project-types.yarn.Monorepo.property.initProject"></a>
11353
+ ##### ~~`initProject`~~<sup>Optional</sup> <a name="initProject" id="cdklabs-projen-project-types.yarn.Monorepo.property.initProject"></a>
11354
+
11355
+ - *Deprecated:* use the `initProject` argument passed to `Component.projectCreation()` instead.
11055
11356
 
11056
11357
  ```typescript
11057
11358
  public readonly initProject: InitProject;
@@ -11582,8 +11883,10 @@ new yarn.MonorepoRelease(project: Project, options?: MonorepoReleaseOptions)
11582
11883
  | --- | --- |
11583
11884
  | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoRelease.toString">toString</a></code> | Returns a string representation of this construct. |
11584
11885
  | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoRelease.with">with</a></code> | Applies one or more mixins to this construct. |
11886
+ | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoRelease.postProjectCreation">postProjectCreation</a></code> | Called once, right after `postSynthesize()`, only when the project is created for the first time. |
11585
11887
  | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoRelease.postSynthesize">postSynthesize</a></code> | Called after synthesis. |
11586
11888
  | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoRelease.preSynthesize">preSynthesize</a></code> | Called before synthesis. |
11889
+ | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoRelease.projectCreation">projectCreation</a></code> | Called once, right after `synthesize()`, only when the project is created for the first time. |
11587
11890
  | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoRelease.synthesize">synthesize</a></code> | Synthesizes files to the project output directory. |
11588
11891
  | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoRelease.addWorkspace">addWorkspace</a></code> | *No description.* |
11589
11892
  | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoRelease.workspaceRelease">workspaceRelease</a></code> | *No description.* |
@@ -11619,6 +11922,27 @@ The mixins to apply.
11619
11922
 
11620
11923
  ---
11621
11924
 
11925
+ ##### `postProjectCreation` <a name="postProjectCreation" id="cdklabs-projen-project-types.yarn.MonorepoRelease.postProjectCreation"></a>
11926
+
11927
+ ```typescript
11928
+ public postProjectCreation(initProject: InitProject): void
11929
+ ```
11930
+
11931
+ Called once, right after `postSynthesize()`, only when the project is created for the first time.
11932
+
11933
+ It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
11934
+ It is also skipped when post-synthesis steps are disabled, e.g. `--no-post` or `PROJEN_DISABLE_POST`.
11935
+ Use it for one-off setup that can be turned off by the user, like running a task to give the user immediate
11936
+ feedback on their new project. Order across components is not guaranteed.
11937
+
11938
+ ###### `initProject`<sup>Required</sup> <a name="initProject" id="cdklabs-projen-project-types.yarn.MonorepoRelease.postProjectCreation.parameter.initProject"></a>
11939
+
11940
+ - *Type:* projen.InitProject
11941
+
11942
+ Details about how the project was created, e.g. its type and the original CLI args.
11943
+
11944
+ ---
11945
+
11622
11946
  ##### `postSynthesize` <a name="postSynthesize" id="cdklabs-projen-project-types.yarn.MonorepoRelease.postSynthesize"></a>
11623
11947
 
11624
11948
  ```typescript
@@ -11637,6 +11961,25 @@ public preSynthesize(): void
11637
11961
 
11638
11962
  Called before synthesis.
11639
11963
 
11964
+ ##### `projectCreation` <a name="projectCreation" id="cdklabs-projen-project-types.yarn.MonorepoRelease.projectCreation"></a>
11965
+
11966
+ ```typescript
11967
+ public projectCreation(initProject: InitProject): void
11968
+ ```
11969
+
11970
+ Called once, right after `synthesize()`, only when the project is created for the first time.
11971
+
11972
+ It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
11973
+ Use it for deterministic, one-off file generation. Order across components is not guaranteed.
11974
+
11975
+ ###### `initProject`<sup>Required</sup> <a name="initProject" id="cdklabs-projen-project-types.yarn.MonorepoRelease.projectCreation.parameter.initProject"></a>
11976
+
11977
+ - *Type:* projen.InitProject
11978
+
11979
+ Details about how the project was created, e.g. its type and the original CLI args.
11980
+
11981
+ ---
11982
+
11640
11983
  ##### `synthesize` <a name="synthesize" id="cdklabs-projen-project-types.yarn.MonorepoRelease.synthesize"></a>
11641
11984
 
11642
11985
  ```typescript
@@ -11822,8 +12165,10 @@ new Rosetta(project: TypeScriptProject, options?: RosettaOptions)
11822
12165
  | --- | --- |
11823
12166
  | <code><a href="#cdklabs-projen-project-types.Rosetta.toString">toString</a></code> | Returns a string representation of this construct. |
11824
12167
  | <code><a href="#cdklabs-projen-project-types.Rosetta.with">with</a></code> | Applies one or more mixins to this construct. |
12168
+ | <code><a href="#cdklabs-projen-project-types.Rosetta.postProjectCreation">postProjectCreation</a></code> | Called once, right after `postSynthesize()`, only when the project is created for the first time. |
11825
12169
  | <code><a href="#cdklabs-projen-project-types.Rosetta.postSynthesize">postSynthesize</a></code> | Called after synthesis. |
11826
12170
  | <code><a href="#cdklabs-projen-project-types.Rosetta.preSynthesize">preSynthesize</a></code> | Called before synthesis. |
12171
+ | <code><a href="#cdklabs-projen-project-types.Rosetta.projectCreation">projectCreation</a></code> | Called once, right after `synthesize()`, only when the project is created for the first time. |
11827
12172
  | <code><a href="#cdklabs-projen-project-types.Rosetta.synthesize">synthesize</a></code> | Synthesizes files to the project output directory. |
11828
12173
 
11829
12174
  ---
@@ -11857,6 +12202,27 @@ The mixins to apply.
11857
12202
 
11858
12203
  ---
11859
12204
 
12205
+ ##### `postProjectCreation` <a name="postProjectCreation" id="cdklabs-projen-project-types.Rosetta.postProjectCreation"></a>
12206
+
12207
+ ```typescript
12208
+ public postProjectCreation(initProject: InitProject): void
12209
+ ```
12210
+
12211
+ Called once, right after `postSynthesize()`, only when the project is created for the first time.
12212
+
12213
+ It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
12214
+ It is also skipped when post-synthesis steps are disabled, e.g. `--no-post` or `PROJEN_DISABLE_POST`.
12215
+ Use it for one-off setup that can be turned off by the user, like running a task to give the user immediate
12216
+ feedback on their new project. Order across components is not guaranteed.
12217
+
12218
+ ###### `initProject`<sup>Required</sup> <a name="initProject" id="cdklabs-projen-project-types.Rosetta.postProjectCreation.parameter.initProject"></a>
12219
+
12220
+ - *Type:* projen.InitProject
12221
+
12222
+ Details about how the project was created, e.g. its type and the original CLI args.
12223
+
12224
+ ---
12225
+
11860
12226
  ##### `postSynthesize` <a name="postSynthesize" id="cdklabs-projen-project-types.Rosetta.postSynthesize"></a>
11861
12227
 
11862
12228
  ```typescript
@@ -11875,6 +12241,25 @@ public preSynthesize(): void
11875
12241
 
11876
12242
  Called before synthesis.
11877
12243
 
12244
+ ##### `projectCreation` <a name="projectCreation" id="cdklabs-projen-project-types.Rosetta.projectCreation"></a>
12245
+
12246
+ ```typescript
12247
+ public projectCreation(initProject: InitProject): void
12248
+ ```
12249
+
12250
+ Called once, right after `synthesize()`, only when the project is created for the first time.
12251
+
12252
+ It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
12253
+ Use it for deterministic, one-off file generation. Order across components is not guaranteed.
12254
+
12255
+ ###### `initProject`<sup>Required</sup> <a name="initProject" id="cdklabs-projen-project-types.Rosetta.projectCreation.parameter.initProject"></a>
12256
+
12257
+ - *Type:* projen.InitProject
12258
+
12259
+ Details about how the project was created, e.g. its type and the original CLI args.
12260
+
12261
+ ---
12262
+
11878
12263
  ##### `synthesize` <a name="synthesize" id="cdklabs-projen-project-types.Rosetta.synthesize"></a>
11879
12264
 
11880
12265
  ```typescript
@@ -12228,8 +12613,10 @@ Synthesize all project files into `outdir`.
12228
12613
  2. Delete all generated files
12229
12614
  3. Synthesize all subprojects
12230
12615
  4. Synthesize all components of this project
12231
- 5. Call "postSynthesize()" for all components of this project
12232
- 6. Call "this.postSynthesize()"
12616
+ 5. Call "projectCreation()" for all components, only if the project is being created for the first time
12617
+ 6. Call "postSynthesize()" for all components of this project
12618
+ 7. Call "this.postSynthesize()"
12619
+ 8. Call "postProjectCreation()" for all components, only if the project is being created for the first time
12233
12620
 
12234
12621
  ##### `tryFindFile` <a name="tryFindFile" id="cdklabs-projen-project-types.yarn.TypeScriptWorkspace.tryFindFile"></a>
12235
12622
 
@@ -12961,7 +13348,9 @@ the project is being ejected.
12961
13348
 
12962
13349
  ---
12963
13350
 
12964
- ##### `initProject`<sup>Optional</sup> <a name="initProject" id="cdklabs-projen-project-types.yarn.TypeScriptWorkspace.property.initProject"></a>
13351
+ ##### ~~`initProject`~~<sup>Optional</sup> <a name="initProject" id="cdklabs-projen-project-types.yarn.TypeScriptWorkspace.property.initProject"></a>
13352
+
13353
+ - *Deprecated:* use the `initProject` argument passed to `Component.projectCreation()` instead.
12965
13354
 
12966
13355
  ```typescript
12967
13356
  public readonly initProject: InitProject;
@@ -13502,8 +13891,10 @@ new yarn.WorkspaceRelease(project: TypeScriptWorkspace, options: WorkspaceReleas
13502
13891
  | --- | --- |
13503
13892
  | <code><a href="#cdklabs-projen-project-types.yarn.WorkspaceRelease.toString">toString</a></code> | Returns a string representation of this construct. |
13504
13893
  | <code><a href="#cdklabs-projen-project-types.yarn.WorkspaceRelease.with">with</a></code> | Applies one or more mixins to this construct. |
13894
+ | <code><a href="#cdklabs-projen-project-types.yarn.WorkspaceRelease.postProjectCreation">postProjectCreation</a></code> | Called once, right after `postSynthesize()`, only when the project is created for the first time. |
13505
13895
  | <code><a href="#cdklabs-projen-project-types.yarn.WorkspaceRelease.postSynthesize">postSynthesize</a></code> | Called after synthesis. |
13506
13896
  | <code><a href="#cdklabs-projen-project-types.yarn.WorkspaceRelease.preSynthesize">preSynthesize</a></code> | Called before synthesis. |
13897
+ | <code><a href="#cdklabs-projen-project-types.yarn.WorkspaceRelease.projectCreation">projectCreation</a></code> | Called once, right after `synthesize()`, only when the project is created for the first time. |
13507
13898
  | <code><a href="#cdklabs-projen-project-types.yarn.WorkspaceRelease.synthesize">synthesize</a></code> | Synthesizes files to the project output directory. |
13508
13899
 
13509
13900
  ---
@@ -13537,6 +13928,27 @@ The mixins to apply.
13537
13928
 
13538
13929
  ---
13539
13930
 
13931
+ ##### `postProjectCreation` <a name="postProjectCreation" id="cdklabs-projen-project-types.yarn.WorkspaceRelease.postProjectCreation"></a>
13932
+
13933
+ ```typescript
13934
+ public postProjectCreation(initProject: InitProject): void
13935
+ ```
13936
+
13937
+ Called once, right after `postSynthesize()`, only when the project is created for the first time.
13938
+
13939
+ It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
13940
+ It is also skipped when post-synthesis steps are disabled, e.g. `--no-post` or `PROJEN_DISABLE_POST`.
13941
+ Use it for one-off setup that can be turned off by the user, like running a task to give the user immediate
13942
+ feedback on their new project. Order across components is not guaranteed.
13943
+
13944
+ ###### `initProject`<sup>Required</sup> <a name="initProject" id="cdklabs-projen-project-types.yarn.WorkspaceRelease.postProjectCreation.parameter.initProject"></a>
13945
+
13946
+ - *Type:* projen.InitProject
13947
+
13948
+ Details about how the project was created, e.g. its type and the original CLI args.
13949
+
13950
+ ---
13951
+
13540
13952
  ##### `postSynthesize` <a name="postSynthesize" id="cdklabs-projen-project-types.yarn.WorkspaceRelease.postSynthesize"></a>
13541
13953
 
13542
13954
  ```typescript
@@ -13555,6 +13967,25 @@ public preSynthesize(): void
13555
13967
 
13556
13968
  Called before synthesis.
13557
13969
 
13970
+ ##### `projectCreation` <a name="projectCreation" id="cdklabs-projen-project-types.yarn.WorkspaceRelease.projectCreation"></a>
13971
+
13972
+ ```typescript
13973
+ public projectCreation(initProject: InitProject): void
13974
+ ```
13975
+
13976
+ Called once, right after `synthesize()`, only when the project is created for the first time.
13977
+
13978
+ It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
13979
+ Use it for deterministic, one-off file generation. Order across components is not guaranteed.
13980
+
13981
+ ###### `initProject`<sup>Required</sup> <a name="initProject" id="cdklabs-projen-project-types.yarn.WorkspaceRelease.projectCreation.parameter.initProject"></a>
13982
+
13983
+ - *Type:* projen.InitProject
13984
+
13985
+ Details about how the project was created, e.g. its type and the original CLI args.
13986
+
13987
+ ---
13988
+
13558
13989
  ##### `synthesize` <a name="synthesize" id="cdklabs-projen-project-types.yarn.WorkspaceRelease.synthesize"></a>
13559
13990
 
13560
13991
  ```typescript
@@ -13714,6 +14145,7 @@ const cdkCommonOptions: CdkCommonOptions = { ... }
13714
14145
 
13715
14146
  | **Name** | **Type** | **Description** |
13716
14147
  | --- | --- | --- |
14148
+ | <code><a href="#cdklabs-projen-project-types.CdkCommonOptions.property.checkGhaExpressions">checkGhaExpressions</a></code> | <code>boolean</code> | Enable GitHub Actions expressions validation. |
13717
14149
  | <code><a href="#cdklabs-projen-project-types.CdkCommonOptions.property.enablePRAutoMerge">enablePRAutoMerge</a></code> | <code>boolean</code> | Whether to enable the auto merge workflow for PRs. |
13718
14150
  | <code><a href="#cdklabs-projen-project-types.CdkCommonOptions.property.ghAutoMergeOptions">ghAutoMergeOptions</a></code> | <code>projen.github.AutoQueueOptions</code> | Options for the GitHub auto merge workflow. |
13719
14151
  | <code><a href="#cdklabs-projen-project-types.CdkCommonOptions.property.private">private</a></code> | <code>boolean</code> | Whether or not this package is private. |
@@ -13724,6 +14156,19 @@ const cdkCommonOptions: CdkCommonOptions = { ... }
13724
14156
 
13725
14157
  ---
13726
14158
 
14159
+ ##### `checkGhaExpressions`<sup>Optional</sup> <a name="checkGhaExpressions" id="cdklabs-projen-project-types.CdkCommonOptions.property.checkGhaExpressions"></a>
14160
+
14161
+ ```typescript
14162
+ public readonly checkGhaExpressions: boolean;
14163
+ ```
14164
+
14165
+ - *Type:* boolean
14166
+ - *Default:* true
14167
+
14168
+ Enable GitHub Actions expressions validation.
14169
+
14170
+ ---
14171
+
13727
14172
  ##### `enablePRAutoMerge`<sup>Optional</sup> <a name="enablePRAutoMerge" id="cdklabs-projen-project-types.CdkCommonOptions.property.enablePRAutoMerge"></a>
13728
14173
 
13729
14174
  ```typescript
@@ -13843,6 +14288,7 @@ const cdkConstructLibraryOptions: CdkConstructLibraryOptions = { ... }
13843
14288
  | <code><a href="#cdklabs-projen-project-types.CdkConstructLibraryOptions.property.name">name</a></code> | <code>string</code> | This is the name of your project. |
13844
14289
  | <code><a href="#cdklabs-projen-project-types.CdkConstructLibraryOptions.property.addPackageManagerToDevEngines">addPackageManagerToDevEngines</a></code> | <code>boolean</code> | Automatically add the resolved `packageManager` to `devEngines.packageManager` in `package.json`, setting `onFail` to `ignore`. |
13845
14290
  | <code><a href="#cdklabs-projen-project-types.CdkConstructLibraryOptions.property.allowLibraryDependencies">allowLibraryDependencies</a></code> | <code>boolean</code> | Allow the project to include `peerDependencies` and `bundledDependencies`. |
14291
+ | <code><a href="#cdklabs-projen-project-types.CdkConstructLibraryOptions.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. |
13846
14292
  | <code><a href="#cdklabs-projen-project-types.CdkConstructLibraryOptions.property.artifactsDirectory">artifactsDirectory</a></code> | <code>string</code> | A directory which will contain build artifacts. |
13847
14293
  | <code><a href="#cdklabs-projen-project-types.CdkConstructLibraryOptions.property.auditDeps">auditDeps</a></code> | <code>boolean</code> | Run security audit on dependencies. |
13848
14294
  | <code><a href="#cdklabs-projen-project-types.CdkConstructLibraryOptions.property.auditDepsOptions">auditDepsOptions</a></code> | <code>projen.javascript.AuditOptions</code> | Security audit options. |
@@ -13869,6 +14315,7 @@ const cdkConstructLibraryOptions: CdkConstructLibraryOptions = { ... }
13869
14315
  | <code><a href="#cdklabs-projen-project-types.CdkConstructLibraryOptions.property.catalog">catalog</a></code> | <code>projen.cdk.Catalog</code> | Libraries will be picked up by the construct catalog when they are published to npm as jsii modules and will be published under:. |
13870
14316
  | <code><a href="#cdklabs-projen-project-types.CdkConstructLibraryOptions.property.cdkCliVersion">cdkCliVersion</a></code> | <code>string</code> | Version range of the AWS CDK CLI to depend on. |
13871
14317
  | <code><a href="#cdklabs-projen-project-types.CdkConstructLibraryOptions.property.cdkVersionPinning">cdkVersionPinning</a></code> | <code>boolean</code> | Use pinned version instead of caret version for CDK. |
14318
+ | <code><a href="#cdklabs-projen-project-types.CdkConstructLibraryOptions.property.checkGhaExpressions">checkGhaExpressions</a></code> | <code>boolean</code> | Enable GitHub Actions expressions validation. |
13872
14319
  | <code><a href="#cdklabs-projen-project-types.CdkConstructLibraryOptions.property.checkLicenses">checkLicenses</a></code> | <code>projen.javascript.LicenseCheckerOptions</code> | Configure which licenses should be deemed acceptable for use by dependencies. |
13873
14320
  | <code><a href="#cdklabs-projen-project-types.CdkConstructLibraryOptions.property.clobber">clobber</a></code> | <code>boolean</code> | Add a `clobber` task which resets the repo to origin. |
13874
14321
  | <code><a href="#cdklabs-projen-project-types.CdkConstructLibraryOptions.property.codeArtifactOptions">codeArtifactOptions</a></code> | <code>projen.javascript.CodeArtifactOptions</code> | Options for npm packages using AWS CodeArtifact. |
@@ -13946,6 +14393,7 @@ const cdkConstructLibraryOptions: CdkConstructLibraryOptions = { ... }
13946
14393
  | <code><a href="#cdklabs-projen-project-types.CdkConstructLibraryOptions.property.parent">parent</a></code> | <code>projen.Project</code> | The parent project, if this project is part of a bigger project. |
13947
14394
  | <code><a href="#cdklabs-projen-project-types.CdkConstructLibraryOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
13948
14395
  | <code><a href="#cdklabs-projen-project-types.CdkConstructLibraryOptions.property.peerDeps">peerDeps</a></code> | <code>string[]</code> | Peer dependencies for this module. |
14396
+ | <code><a href="#cdklabs-projen-project-types.CdkConstructLibraryOptions.property.pnpmOptions">pnpmOptions</a></code> | <code>projen.javascript.PnpmOptions</code> | Options for pnpm. |
13949
14397
  | <code><a href="#cdklabs-projen-project-types.CdkConstructLibraryOptions.property.pnpmVersion">pnpmVersion</a></code> | <code>string</code> | The version of PNPM to use if using PNPM as a package manager. |
13950
14398
  | <code><a href="#cdklabs-projen-project-types.CdkConstructLibraryOptions.property.postBuildSteps">postBuildSteps</a></code> | <code>projen.github.workflows.JobStep[]</code> | Steps to execute after build as part of the release workflow. |
13951
14399
  | <code><a href="#cdklabs-projen-project-types.CdkConstructLibraryOptions.property.prerelease">prerelease</a></code> | <code>string</code> | Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). |
@@ -14104,6 +14552,44 @@ for specifying these.
14104
14552
 
14105
14553
  ---
14106
14554
 
14555
+ ##### `allowScripts`<sup>Optional</sup> <a name="allowScripts" id="cdklabs-projen-project-types.CdkConstructLibraryOptions.property.allowScripts"></a>
14556
+
14557
+ ```typescript
14558
+ public readonly allowScripts: string[];
14559
+ ```
14560
+
14561
+ - *Type:* string[]
14562
+ - *Default:* all install scripts are allowed to run (package manager default)
14563
+
14564
+ List of dependency (package) names that are allowed to run lifecycle install scripts (`preinstall`, `install`, `postinstall`, `prepare`) during dependency installation.
14565
+
14566
+ These scripts can execute arbitrary code, making them a common
14567
+ supply-chain attack vector. Package managers are moving toward
14568
+ blocking them by default and requiring an explicit allowlist.
14569
+ Configuring `allowScripts` sets up that allowlist so scripts only run
14570
+ for the packages you have explicitly reviewed and trust.
14571
+
14572
+ Support for this setting depends on the configured `packageManager`:
14573
+
14574
+ - `NPM`: written to the native `allowScripts` field in `package.json`
14575
+ (requires npm >= 11.16; see https://docs.npmjs.com/cli/v11/commands/npm-approve-scripts).
14576
+ - `BUN`: written to the native `trustedDependencies` field in
14577
+ `package.json` (see https://bun.com/docs/pm/lifecycle).
14578
+ - `PNPM`: written to the `onlyBuiltDependencies` setting in
14579
+ `pnpm-workspace.yaml` (see https://pnpm.io/settings#onlybuiltdependencies).
14580
+ - `YARN2`, `YARN_BERRY`: written to the native
14581
+ `dependenciesMeta.<pkg>.built` allowlist in `package.json`, combined
14582
+ with `enableScripts: false` in `.yarnrc.yml` (see
14583
+ https://yarnpkg.com/features/security#postinstalls). If you set
14584
+ `yarnBerryOptions.yarnRcOptions.enableScripts` explicitly, that value
14585
+ is respected instead of being overridden.
14586
+ - `YARN`, `YARN_CLASSIC`: not supported. Yarn Classic has no native
14587
+ mechanism to allowlist install scripts for specific dependencies.
14588
+ Setting this option with one of these package managers throws an
14589
+ error at synthesis time.
14590
+
14591
+ ---
14592
+
14107
14593
  ##### `artifactsDirectory`<sup>Optional</sup> <a name="artifactsDirectory" id="cdklabs-projen-project-types.CdkConstructLibraryOptions.property.artifactsDirectory"></a>
14108
14594
 
14109
14595
  ```typescript
@@ -14477,6 +14963,19 @@ If you use experimental features this will let you define the moment you include
14477
14963
 
14478
14964
  ---
14479
14965
 
14966
+ ##### `checkGhaExpressions`<sup>Optional</sup> <a name="checkGhaExpressions" id="cdklabs-projen-project-types.CdkConstructLibraryOptions.property.checkGhaExpressions"></a>
14967
+
14968
+ ```typescript
14969
+ public readonly checkGhaExpressions: boolean;
14970
+ ```
14971
+
14972
+ - *Type:* boolean
14973
+ - *Default:* true
14974
+
14975
+ Enable GitHub Actions expressions validation.
14976
+
14977
+ ---
14978
+
14480
14979
  ##### `checkLicenses`<sup>Optional</sup> <a name="checkLicenses" id="cdklabs-projen-project-types.CdkConstructLibraryOptions.property.checkLicenses"></a>
14481
14980
 
14482
14981
  ```typescript
@@ -15590,6 +16089,19 @@ test your module against the lowest peer version required.
15590
16089
 
15591
16090
  ---
15592
16091
 
16092
+ ##### `pnpmOptions`<sup>Optional</sup> <a name="pnpmOptions" id="cdklabs-projen-project-types.CdkConstructLibraryOptions.property.pnpmOptions"></a>
16093
+
16094
+ ```typescript
16095
+ public readonly pnpmOptions: PnpmOptions;
16096
+ ```
16097
+
16098
+ - *Type:* projen.javascript.PnpmOptions
16099
+ - *Default:* all default options
16100
+
16101
+ Options for pnpm.
16102
+
16103
+ ---
16104
+
15593
16105
  ##### `pnpmVersion`<sup>Optional</sup> <a name="pnpmVersion" id="cdklabs-projen-project-types.CdkConstructLibraryOptions.property.pnpmVersion"></a>
15594
16106
 
15595
16107
  ```typescript
@@ -16617,6 +17129,7 @@ const cdkJsiiProjectOptions: CdkJsiiProjectOptions = { ... }
16617
17129
  | <code><a href="#cdklabs-projen-project-types.CdkJsiiProjectOptions.property.name">name</a></code> | <code>string</code> | This is the name of your project. |
16618
17130
  | <code><a href="#cdklabs-projen-project-types.CdkJsiiProjectOptions.property.addPackageManagerToDevEngines">addPackageManagerToDevEngines</a></code> | <code>boolean</code> | Automatically add the resolved `packageManager` to `devEngines.packageManager` in `package.json`, setting `onFail` to `ignore`. |
16619
17131
  | <code><a href="#cdklabs-projen-project-types.CdkJsiiProjectOptions.property.allowLibraryDependencies">allowLibraryDependencies</a></code> | <code>boolean</code> | Allow the project to include `peerDependencies` and `bundledDependencies`. |
17132
+ | <code><a href="#cdklabs-projen-project-types.CdkJsiiProjectOptions.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. |
16620
17133
  | <code><a href="#cdklabs-projen-project-types.CdkJsiiProjectOptions.property.artifactsDirectory">artifactsDirectory</a></code> | <code>string</code> | A directory which will contain build artifacts. |
16621
17134
  | <code><a href="#cdklabs-projen-project-types.CdkJsiiProjectOptions.property.auditDeps">auditDeps</a></code> | <code>boolean</code> | Run security audit on dependencies. |
16622
17135
  | <code><a href="#cdklabs-projen-project-types.CdkJsiiProjectOptions.property.auditDepsOptions">auditDepsOptions</a></code> | <code>projen.javascript.AuditOptions</code> | Security audit options. |
@@ -16640,6 +17153,7 @@ const cdkJsiiProjectOptions: CdkJsiiProjectOptions = { ... }
16640
17153
  | <code><a href="#cdklabs-projen-project-types.CdkJsiiProjectOptions.property.bundledDeps">bundledDeps</a></code> | <code>string[]</code> | List of dependencies to bundle into this module. |
16641
17154
  | <code><a href="#cdklabs-projen-project-types.CdkJsiiProjectOptions.property.bundlerOptions">bundlerOptions</a></code> | <code>projen.javascript.BundlerOptions</code> | Options for `Bundler`. |
16642
17155
  | <code><a href="#cdklabs-projen-project-types.CdkJsiiProjectOptions.property.bunVersion">bunVersion</a></code> | <code>string</code> | The version of Bun to use if using Bun as a package manager. |
17156
+ | <code><a href="#cdklabs-projen-project-types.CdkJsiiProjectOptions.property.checkGhaExpressions">checkGhaExpressions</a></code> | <code>boolean</code> | Enable GitHub Actions expressions validation. |
16643
17157
  | <code><a href="#cdklabs-projen-project-types.CdkJsiiProjectOptions.property.checkLicenses">checkLicenses</a></code> | <code>projen.javascript.LicenseCheckerOptions</code> | Configure which licenses should be deemed acceptable for use by dependencies. |
16644
17158
  | <code><a href="#cdklabs-projen-project-types.CdkJsiiProjectOptions.property.clobber">clobber</a></code> | <code>boolean</code> | Add a `clobber` task which resets the repo to origin. |
16645
17159
  | <code><a href="#cdklabs-projen-project-types.CdkJsiiProjectOptions.property.codeArtifactOptions">codeArtifactOptions</a></code> | <code>projen.javascript.CodeArtifactOptions</code> | Options for npm packages using AWS CodeArtifact. |
@@ -16710,6 +17224,7 @@ const cdkJsiiProjectOptions: CdkJsiiProjectOptions = { ... }
16710
17224
  | <code><a href="#cdklabs-projen-project-types.CdkJsiiProjectOptions.property.parent">parent</a></code> | <code>projen.Project</code> | The parent project, if this project is part of a bigger project. |
16711
17225
  | <code><a href="#cdklabs-projen-project-types.CdkJsiiProjectOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
16712
17226
  | <code><a href="#cdklabs-projen-project-types.CdkJsiiProjectOptions.property.peerDeps">peerDeps</a></code> | <code>string[]</code> | Peer dependencies for this module. |
17227
+ | <code><a href="#cdklabs-projen-project-types.CdkJsiiProjectOptions.property.pnpmOptions">pnpmOptions</a></code> | <code>projen.javascript.PnpmOptions</code> | Options for pnpm. |
16713
17228
  | <code><a href="#cdklabs-projen-project-types.CdkJsiiProjectOptions.property.pnpmVersion">pnpmVersion</a></code> | <code>string</code> | The version of PNPM to use if using PNPM as a package manager. |
16714
17229
  | <code><a href="#cdklabs-projen-project-types.CdkJsiiProjectOptions.property.postBuildSteps">postBuildSteps</a></code> | <code>projen.github.workflows.JobStep[]</code> | Steps to execute after build as part of the release workflow. |
16715
17230
  | <code><a href="#cdklabs-projen-project-types.CdkJsiiProjectOptions.property.prerelease">prerelease</a></code> | <code>string</code> | Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). |
@@ -16853,6 +17368,44 @@ for specifying these.
16853
17368
 
16854
17369
  ---
16855
17370
 
17371
+ ##### `allowScripts`<sup>Optional</sup> <a name="allowScripts" id="cdklabs-projen-project-types.CdkJsiiProjectOptions.property.allowScripts"></a>
17372
+
17373
+ ```typescript
17374
+ public readonly allowScripts: string[];
17375
+ ```
17376
+
17377
+ - *Type:* string[]
17378
+ - *Default:* all install scripts are allowed to run (package manager default)
17379
+
17380
+ List of dependency (package) names that are allowed to run lifecycle install scripts (`preinstall`, `install`, `postinstall`, `prepare`) during dependency installation.
17381
+
17382
+ These scripts can execute arbitrary code, making them a common
17383
+ supply-chain attack vector. Package managers are moving toward
17384
+ blocking them by default and requiring an explicit allowlist.
17385
+ Configuring `allowScripts` sets up that allowlist so scripts only run
17386
+ for the packages you have explicitly reviewed and trust.
17387
+
17388
+ Support for this setting depends on the configured `packageManager`:
17389
+
17390
+ - `NPM`: written to the native `allowScripts` field in `package.json`
17391
+ (requires npm >= 11.16; see https://docs.npmjs.com/cli/v11/commands/npm-approve-scripts).
17392
+ - `BUN`: written to the native `trustedDependencies` field in
17393
+ `package.json` (see https://bun.com/docs/pm/lifecycle).
17394
+ - `PNPM`: written to the `onlyBuiltDependencies` setting in
17395
+ `pnpm-workspace.yaml` (see https://pnpm.io/settings#onlybuiltdependencies).
17396
+ - `YARN2`, `YARN_BERRY`: written to the native
17397
+ `dependenciesMeta.<pkg>.built` allowlist in `package.json`, combined
17398
+ with `enableScripts: false` in `.yarnrc.yml` (see
17399
+ https://yarnpkg.com/features/security#postinstalls). If you set
17400
+ `yarnBerryOptions.yarnRcOptions.enableScripts` explicitly, that value
17401
+ is respected instead of being overridden.
17402
+ - `YARN`, `YARN_CLASSIC`: not supported. Yarn Classic has no native
17403
+ mechanism to allowlist install scripts for specific dependencies.
17404
+ Setting this option with one of these package managers throws an
17405
+ error at synthesis time.
17406
+
17407
+ ---
17408
+
16856
17409
  ##### `artifactsDirectory`<sup>Optional</sup> <a name="artifactsDirectory" id="cdklabs-projen-project-types.CdkJsiiProjectOptions.property.artifactsDirectory"></a>
16857
17410
 
16858
17411
  ```typescript
@@ -17171,6 +17724,19 @@ The version of Bun to use if using Bun as a package manager.
17171
17724
 
17172
17725
  ---
17173
17726
 
17727
+ ##### `checkGhaExpressions`<sup>Optional</sup> <a name="checkGhaExpressions" id="cdklabs-projen-project-types.CdkJsiiProjectOptions.property.checkGhaExpressions"></a>
17728
+
17729
+ ```typescript
17730
+ public readonly checkGhaExpressions: boolean;
17731
+ ```
17732
+
17733
+ - *Type:* boolean
17734
+ - *Default:* true
17735
+
17736
+ Enable GitHub Actions expressions validation.
17737
+
17738
+ ---
17739
+
17174
17740
  ##### `checkLicenses`<sup>Optional</sup> <a name="checkLicenses" id="cdklabs-projen-project-types.CdkJsiiProjectOptions.property.checkLicenses"></a>
17175
17741
 
17176
17742
  ```typescript
@@ -18201,6 +18767,19 @@ test your module against the lowest peer version required.
18201
18767
 
18202
18768
  ---
18203
18769
 
18770
+ ##### `pnpmOptions`<sup>Optional</sup> <a name="pnpmOptions" id="cdklabs-projen-project-types.CdkJsiiProjectOptions.property.pnpmOptions"></a>
18771
+
18772
+ ```typescript
18773
+ public readonly pnpmOptions: PnpmOptions;
18774
+ ```
18775
+
18776
+ - *Type:* projen.javascript.PnpmOptions
18777
+ - *Default:* all default options
18778
+
18779
+ Options for pnpm.
18780
+
18781
+ ---
18782
+
18204
18783
  ##### `pnpmVersion`<sup>Optional</sup> <a name="pnpmVersion" id="cdklabs-projen-project-types.CdkJsiiProjectOptions.property.pnpmVersion"></a>
18205
18784
 
18206
18785
  ```typescript
@@ -19204,6 +19783,7 @@ const cdklabsConstructLibraryOptions: CdklabsConstructLibraryOptions = { ... }
19204
19783
  | <code><a href="#cdklabs-projen-project-types.CdklabsConstructLibraryOptions.property.name">name</a></code> | <code>string</code> | This is the name of your project. |
19205
19784
  | <code><a href="#cdklabs-projen-project-types.CdklabsConstructLibraryOptions.property.addPackageManagerToDevEngines">addPackageManagerToDevEngines</a></code> | <code>boolean</code> | Automatically add the resolved `packageManager` to `devEngines.packageManager` in `package.json`, setting `onFail` to `ignore`. |
19206
19785
  | <code><a href="#cdklabs-projen-project-types.CdklabsConstructLibraryOptions.property.allowLibraryDependencies">allowLibraryDependencies</a></code> | <code>boolean</code> | Allow the project to include `peerDependencies` and `bundledDependencies`. |
19786
+ | <code><a href="#cdklabs-projen-project-types.CdklabsConstructLibraryOptions.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. |
19207
19787
  | <code><a href="#cdklabs-projen-project-types.CdklabsConstructLibraryOptions.property.artifactsDirectory">artifactsDirectory</a></code> | <code>string</code> | A directory which will contain build artifacts. |
19208
19788
  | <code><a href="#cdklabs-projen-project-types.CdklabsConstructLibraryOptions.property.auditDeps">auditDeps</a></code> | <code>boolean</code> | Run security audit on dependencies. |
19209
19789
  | <code><a href="#cdklabs-projen-project-types.CdklabsConstructLibraryOptions.property.auditDepsOptions">auditDepsOptions</a></code> | <code>projen.javascript.AuditOptions</code> | Security audit options. |
@@ -19230,6 +19810,7 @@ const cdklabsConstructLibraryOptions: CdklabsConstructLibraryOptions = { ... }
19230
19810
  | <code><a href="#cdklabs-projen-project-types.CdklabsConstructLibraryOptions.property.catalog">catalog</a></code> | <code>projen.cdk.Catalog</code> | Libraries will be picked up by the construct catalog when they are published to npm as jsii modules and will be published under:. |
19231
19811
  | <code><a href="#cdklabs-projen-project-types.CdklabsConstructLibraryOptions.property.cdkCliVersion">cdkCliVersion</a></code> | <code>string</code> | Version range of the AWS CDK CLI to depend on. |
19232
19812
  | <code><a href="#cdklabs-projen-project-types.CdklabsConstructLibraryOptions.property.cdkVersionPinning">cdkVersionPinning</a></code> | <code>boolean</code> | Use pinned version instead of caret version for CDK. |
19813
+ | <code><a href="#cdklabs-projen-project-types.CdklabsConstructLibraryOptions.property.checkGhaExpressions">checkGhaExpressions</a></code> | <code>boolean</code> | Enable GitHub Actions expressions validation. |
19233
19814
  | <code><a href="#cdklabs-projen-project-types.CdklabsConstructLibraryOptions.property.checkLicenses">checkLicenses</a></code> | <code>projen.javascript.LicenseCheckerOptions</code> | Configure which licenses should be deemed acceptable for use by dependencies. |
19234
19815
  | <code><a href="#cdklabs-projen-project-types.CdklabsConstructLibraryOptions.property.clobber">clobber</a></code> | <code>boolean</code> | Add a `clobber` task which resets the repo to origin. |
19235
19816
  | <code><a href="#cdklabs-projen-project-types.CdklabsConstructLibraryOptions.property.codeArtifactOptions">codeArtifactOptions</a></code> | <code>projen.javascript.CodeArtifactOptions</code> | Options for npm packages using AWS CodeArtifact. |
@@ -19307,6 +19888,7 @@ const cdklabsConstructLibraryOptions: CdklabsConstructLibraryOptions = { ... }
19307
19888
  | <code><a href="#cdklabs-projen-project-types.CdklabsConstructLibraryOptions.property.parent">parent</a></code> | <code>projen.Project</code> | The parent project, if this project is part of a bigger project. |
19308
19889
  | <code><a href="#cdklabs-projen-project-types.CdklabsConstructLibraryOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
19309
19890
  | <code><a href="#cdklabs-projen-project-types.CdklabsConstructLibraryOptions.property.peerDeps">peerDeps</a></code> | <code>string[]</code> | Peer dependencies for this module. |
19891
+ | <code><a href="#cdklabs-projen-project-types.CdklabsConstructLibraryOptions.property.pnpmOptions">pnpmOptions</a></code> | <code>projen.javascript.PnpmOptions</code> | Options for pnpm. |
19310
19892
  | <code><a href="#cdklabs-projen-project-types.CdklabsConstructLibraryOptions.property.pnpmVersion">pnpmVersion</a></code> | <code>string</code> | The version of PNPM to use if using PNPM as a package manager. |
19311
19893
  | <code><a href="#cdklabs-projen-project-types.CdklabsConstructLibraryOptions.property.postBuildSteps">postBuildSteps</a></code> | <code>projen.github.workflows.JobStep[]</code> | Steps to execute after build as part of the release workflow. |
19312
19894
  | <code><a href="#cdklabs-projen-project-types.CdklabsConstructLibraryOptions.property.prerelease">prerelease</a></code> | <code>string</code> | Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). |
@@ -19467,6 +20049,44 @@ for specifying these.
19467
20049
 
19468
20050
  ---
19469
20051
 
20052
+ ##### `allowScripts`<sup>Optional</sup> <a name="allowScripts" id="cdklabs-projen-project-types.CdklabsConstructLibraryOptions.property.allowScripts"></a>
20053
+
20054
+ ```typescript
20055
+ public readonly allowScripts: string[];
20056
+ ```
20057
+
20058
+ - *Type:* string[]
20059
+ - *Default:* all install scripts are allowed to run (package manager default)
20060
+
20061
+ List of dependency (package) names that are allowed to run lifecycle install scripts (`preinstall`, `install`, `postinstall`, `prepare`) during dependency installation.
20062
+
20063
+ These scripts can execute arbitrary code, making them a common
20064
+ supply-chain attack vector. Package managers are moving toward
20065
+ blocking them by default and requiring an explicit allowlist.
20066
+ Configuring `allowScripts` sets up that allowlist so scripts only run
20067
+ for the packages you have explicitly reviewed and trust.
20068
+
20069
+ Support for this setting depends on the configured `packageManager`:
20070
+
20071
+ - `NPM`: written to the native `allowScripts` field in `package.json`
20072
+ (requires npm >= 11.16; see https://docs.npmjs.com/cli/v11/commands/npm-approve-scripts).
20073
+ - `BUN`: written to the native `trustedDependencies` field in
20074
+ `package.json` (see https://bun.com/docs/pm/lifecycle).
20075
+ - `PNPM`: written to the `onlyBuiltDependencies` setting in
20076
+ `pnpm-workspace.yaml` (see https://pnpm.io/settings#onlybuiltdependencies).
20077
+ - `YARN2`, `YARN_BERRY`: written to the native
20078
+ `dependenciesMeta.<pkg>.built` allowlist in `package.json`, combined
20079
+ with `enableScripts: false` in `.yarnrc.yml` (see
20080
+ https://yarnpkg.com/features/security#postinstalls). If you set
20081
+ `yarnBerryOptions.yarnRcOptions.enableScripts` explicitly, that value
20082
+ is respected instead of being overridden.
20083
+ - `YARN`, `YARN_CLASSIC`: not supported. Yarn Classic has no native
20084
+ mechanism to allowlist install scripts for specific dependencies.
20085
+ Setting this option with one of these package managers throws an
20086
+ error at synthesis time.
20087
+
20088
+ ---
20089
+
19470
20090
  ##### `artifactsDirectory`<sup>Optional</sup> <a name="artifactsDirectory" id="cdklabs-projen-project-types.CdklabsConstructLibraryOptions.property.artifactsDirectory"></a>
19471
20091
 
19472
20092
  ```typescript
@@ -19840,6 +20460,19 @@ If you use experimental features this will let you define the moment you include
19840
20460
 
19841
20461
  ---
19842
20462
 
20463
+ ##### `checkGhaExpressions`<sup>Optional</sup> <a name="checkGhaExpressions" id="cdklabs-projen-project-types.CdklabsConstructLibraryOptions.property.checkGhaExpressions"></a>
20464
+
20465
+ ```typescript
20466
+ public readonly checkGhaExpressions: boolean;
20467
+ ```
20468
+
20469
+ - *Type:* boolean
20470
+ - *Default:* true
20471
+
20472
+ Enable GitHub Actions expressions validation.
20473
+
20474
+ ---
20475
+
19843
20476
  ##### `checkLicenses`<sup>Optional</sup> <a name="checkLicenses" id="cdklabs-projen-project-types.CdklabsConstructLibraryOptions.property.checkLicenses"></a>
19844
20477
 
19845
20478
  ```typescript
@@ -20953,6 +21586,19 @@ test your module against the lowest peer version required.
20953
21586
 
20954
21587
  ---
20955
21588
 
21589
+ ##### `pnpmOptions`<sup>Optional</sup> <a name="pnpmOptions" id="cdklabs-projen-project-types.CdklabsConstructLibraryOptions.property.pnpmOptions"></a>
21590
+
21591
+ ```typescript
21592
+ public readonly pnpmOptions: PnpmOptions;
21593
+ ```
21594
+
21595
+ - *Type:* projen.javascript.PnpmOptions
21596
+ - *Default:* all default options
21597
+
21598
+ Options for pnpm.
21599
+
21600
+ ---
21601
+
20956
21602
  ##### `pnpmVersion`<sup>Optional</sup> <a name="pnpmVersion" id="cdklabs-projen-project-types.CdklabsConstructLibraryOptions.property.pnpmVersion"></a>
20957
21603
 
20958
21604
  ```typescript
@@ -22017,6 +22663,7 @@ const cdklabsJsiiProjectOptions: CdklabsJsiiProjectOptions = { ... }
22017
22663
  | <code><a href="#cdklabs-projen-project-types.CdklabsJsiiProjectOptions.property.name">name</a></code> | <code>string</code> | This is the name of your project. |
22018
22664
  | <code><a href="#cdklabs-projen-project-types.CdklabsJsiiProjectOptions.property.addPackageManagerToDevEngines">addPackageManagerToDevEngines</a></code> | <code>boolean</code> | Automatically add the resolved `packageManager` to `devEngines.packageManager` in `package.json`, setting `onFail` to `ignore`. |
22019
22665
  | <code><a href="#cdklabs-projen-project-types.CdklabsJsiiProjectOptions.property.allowLibraryDependencies">allowLibraryDependencies</a></code> | <code>boolean</code> | Allow the project to include `peerDependencies` and `bundledDependencies`. |
22666
+ | <code><a href="#cdklabs-projen-project-types.CdklabsJsiiProjectOptions.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. |
22020
22667
  | <code><a href="#cdklabs-projen-project-types.CdklabsJsiiProjectOptions.property.artifactsDirectory">artifactsDirectory</a></code> | <code>string</code> | A directory which will contain build artifacts. |
22021
22668
  | <code><a href="#cdklabs-projen-project-types.CdklabsJsiiProjectOptions.property.auditDeps">auditDeps</a></code> | <code>boolean</code> | Run security audit on dependencies. |
22022
22669
  | <code><a href="#cdklabs-projen-project-types.CdklabsJsiiProjectOptions.property.auditDepsOptions">auditDepsOptions</a></code> | <code>projen.javascript.AuditOptions</code> | Security audit options. |
@@ -22040,6 +22687,7 @@ const cdklabsJsiiProjectOptions: CdklabsJsiiProjectOptions = { ... }
22040
22687
  | <code><a href="#cdklabs-projen-project-types.CdklabsJsiiProjectOptions.property.bundledDeps">bundledDeps</a></code> | <code>string[]</code> | List of dependencies to bundle into this module. |
22041
22688
  | <code><a href="#cdklabs-projen-project-types.CdklabsJsiiProjectOptions.property.bundlerOptions">bundlerOptions</a></code> | <code>projen.javascript.BundlerOptions</code> | Options for `Bundler`. |
22042
22689
  | <code><a href="#cdklabs-projen-project-types.CdklabsJsiiProjectOptions.property.bunVersion">bunVersion</a></code> | <code>string</code> | The version of Bun to use if using Bun as a package manager. |
22690
+ | <code><a href="#cdklabs-projen-project-types.CdklabsJsiiProjectOptions.property.checkGhaExpressions">checkGhaExpressions</a></code> | <code>boolean</code> | Enable GitHub Actions expressions validation. |
22043
22691
  | <code><a href="#cdklabs-projen-project-types.CdklabsJsiiProjectOptions.property.checkLicenses">checkLicenses</a></code> | <code>projen.javascript.LicenseCheckerOptions</code> | Configure which licenses should be deemed acceptable for use by dependencies. |
22044
22692
  | <code><a href="#cdklabs-projen-project-types.CdklabsJsiiProjectOptions.property.clobber">clobber</a></code> | <code>boolean</code> | Add a `clobber` task which resets the repo to origin. |
22045
22693
  | <code><a href="#cdklabs-projen-project-types.CdklabsJsiiProjectOptions.property.codeArtifactOptions">codeArtifactOptions</a></code> | <code>projen.javascript.CodeArtifactOptions</code> | Options for npm packages using AWS CodeArtifact. |
@@ -22110,6 +22758,7 @@ const cdklabsJsiiProjectOptions: CdklabsJsiiProjectOptions = { ... }
22110
22758
  | <code><a href="#cdklabs-projen-project-types.CdklabsJsiiProjectOptions.property.parent">parent</a></code> | <code>projen.Project</code> | The parent project, if this project is part of a bigger project. |
22111
22759
  | <code><a href="#cdklabs-projen-project-types.CdklabsJsiiProjectOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
22112
22760
  | <code><a href="#cdklabs-projen-project-types.CdklabsJsiiProjectOptions.property.peerDeps">peerDeps</a></code> | <code>string[]</code> | Peer dependencies for this module. |
22761
+ | <code><a href="#cdklabs-projen-project-types.CdklabsJsiiProjectOptions.property.pnpmOptions">pnpmOptions</a></code> | <code>projen.javascript.PnpmOptions</code> | Options for pnpm. |
22113
22762
  | <code><a href="#cdklabs-projen-project-types.CdklabsJsiiProjectOptions.property.pnpmVersion">pnpmVersion</a></code> | <code>string</code> | The version of PNPM to use if using PNPM as a package manager. |
22114
22763
  | <code><a href="#cdklabs-projen-project-types.CdklabsJsiiProjectOptions.property.postBuildSteps">postBuildSteps</a></code> | <code>projen.github.workflows.JobStep[]</code> | Steps to execute after build as part of the release workflow. |
22115
22764
  | <code><a href="#cdklabs-projen-project-types.CdklabsJsiiProjectOptions.property.prerelease">prerelease</a></code> | <code>string</code> | Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). |
@@ -22255,6 +22904,44 @@ for specifying these.
22255
22904
 
22256
22905
  ---
22257
22906
 
22907
+ ##### `allowScripts`<sup>Optional</sup> <a name="allowScripts" id="cdklabs-projen-project-types.CdklabsJsiiProjectOptions.property.allowScripts"></a>
22908
+
22909
+ ```typescript
22910
+ public readonly allowScripts: string[];
22911
+ ```
22912
+
22913
+ - *Type:* string[]
22914
+ - *Default:* all install scripts are allowed to run (package manager default)
22915
+
22916
+ List of dependency (package) names that are allowed to run lifecycle install scripts (`preinstall`, `install`, `postinstall`, `prepare`) during dependency installation.
22917
+
22918
+ These scripts can execute arbitrary code, making them a common
22919
+ supply-chain attack vector. Package managers are moving toward
22920
+ blocking them by default and requiring an explicit allowlist.
22921
+ Configuring `allowScripts` sets up that allowlist so scripts only run
22922
+ for the packages you have explicitly reviewed and trust.
22923
+
22924
+ Support for this setting depends on the configured `packageManager`:
22925
+
22926
+ - `NPM`: written to the native `allowScripts` field in `package.json`
22927
+ (requires npm >= 11.16; see https://docs.npmjs.com/cli/v11/commands/npm-approve-scripts).
22928
+ - `BUN`: written to the native `trustedDependencies` field in
22929
+ `package.json` (see https://bun.com/docs/pm/lifecycle).
22930
+ - `PNPM`: written to the `onlyBuiltDependencies` setting in
22931
+ `pnpm-workspace.yaml` (see https://pnpm.io/settings#onlybuiltdependencies).
22932
+ - `YARN2`, `YARN_BERRY`: written to the native
22933
+ `dependenciesMeta.<pkg>.built` allowlist in `package.json`, combined
22934
+ with `enableScripts: false` in `.yarnrc.yml` (see
22935
+ https://yarnpkg.com/features/security#postinstalls). If you set
22936
+ `yarnBerryOptions.yarnRcOptions.enableScripts` explicitly, that value
22937
+ is respected instead of being overridden.
22938
+ - `YARN`, `YARN_CLASSIC`: not supported. Yarn Classic has no native
22939
+ mechanism to allowlist install scripts for specific dependencies.
22940
+ Setting this option with one of these package managers throws an
22941
+ error at synthesis time.
22942
+
22943
+ ---
22944
+
22258
22945
  ##### `artifactsDirectory`<sup>Optional</sup> <a name="artifactsDirectory" id="cdklabs-projen-project-types.CdklabsJsiiProjectOptions.property.artifactsDirectory"></a>
22259
22946
 
22260
22947
  ```typescript
@@ -22573,6 +23260,19 @@ The version of Bun to use if using Bun as a package manager.
22573
23260
 
22574
23261
  ---
22575
23262
 
23263
+ ##### `checkGhaExpressions`<sup>Optional</sup> <a name="checkGhaExpressions" id="cdklabs-projen-project-types.CdklabsJsiiProjectOptions.property.checkGhaExpressions"></a>
23264
+
23265
+ ```typescript
23266
+ public readonly checkGhaExpressions: boolean;
23267
+ ```
23268
+
23269
+ - *Type:* boolean
23270
+ - *Default:* true
23271
+
23272
+ Enable GitHub Actions expressions validation.
23273
+
23274
+ ---
23275
+
22576
23276
  ##### `checkLicenses`<sup>Optional</sup> <a name="checkLicenses" id="cdklabs-projen-project-types.CdklabsJsiiProjectOptions.property.checkLicenses"></a>
22577
23277
 
22578
23278
  ```typescript
@@ -23603,6 +24303,19 @@ test your module against the lowest peer version required.
23603
24303
 
23604
24304
  ---
23605
24305
 
24306
+ ##### `pnpmOptions`<sup>Optional</sup> <a name="pnpmOptions" id="cdklabs-projen-project-types.CdklabsJsiiProjectOptions.property.pnpmOptions"></a>
24307
+
24308
+ ```typescript
24309
+ public readonly pnpmOptions: PnpmOptions;
24310
+ ```
24311
+
24312
+ - *Type:* projen.javascript.PnpmOptions
24313
+ - *Default:* all default options
24314
+
24315
+ Options for pnpm.
24316
+
24317
+ ---
24318
+
23606
24319
  ##### `pnpmVersion`<sup>Optional</sup> <a name="pnpmVersion" id="cdklabs-projen-project-types.CdklabsJsiiProjectOptions.property.pnpmVersion"></a>
23607
24320
 
23608
24321
  ```typescript
@@ -24644,6 +25357,7 @@ const cdkLabsMonorepoOptions: yarn.CdkLabsMonorepoOptions = { ... }
24644
25357
  | <code><a href="#cdklabs-projen-project-types.yarn.CdkLabsMonorepoOptions.property.name">name</a></code> | <code>string</code> | This is the name of your project. |
24645
25358
  | <code><a href="#cdklabs-projen-project-types.yarn.CdkLabsMonorepoOptions.property.addPackageManagerToDevEngines">addPackageManagerToDevEngines</a></code> | <code>boolean</code> | Automatically add the resolved `packageManager` to `devEngines.packageManager` in `package.json`, setting `onFail` to `ignore`. |
24646
25359
  | <code><a href="#cdklabs-projen-project-types.yarn.CdkLabsMonorepoOptions.property.allowLibraryDependencies">allowLibraryDependencies</a></code> | <code>boolean</code> | Allow the project to include `peerDependencies` and `bundledDependencies`. |
25360
+ | <code><a href="#cdklabs-projen-project-types.yarn.CdkLabsMonorepoOptions.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. |
24647
25361
  | <code><a href="#cdklabs-projen-project-types.yarn.CdkLabsMonorepoOptions.property.artifactsDirectory">artifactsDirectory</a></code> | <code>string</code> | A directory which will contain build artifacts. |
24648
25362
  | <code><a href="#cdklabs-projen-project-types.yarn.CdkLabsMonorepoOptions.property.auditDeps">auditDeps</a></code> | <code>boolean</code> | Run security audit on dependencies. |
24649
25363
  | <code><a href="#cdklabs-projen-project-types.yarn.CdkLabsMonorepoOptions.property.auditDepsOptions">auditDepsOptions</a></code> | <code>projen.javascript.AuditOptions</code> | Security audit options. |
@@ -24669,6 +25383,7 @@ const cdkLabsMonorepoOptions: yarn.CdkLabsMonorepoOptions = { ... }
24669
25383
  | <code><a href="#cdklabs-projen-project-types.yarn.CdkLabsMonorepoOptions.property.bundledDeps">bundledDeps</a></code> | <code>string[]</code> | List of dependencies to bundle into this module. |
24670
25384
  | <code><a href="#cdklabs-projen-project-types.yarn.CdkLabsMonorepoOptions.property.bundlerOptions">bundlerOptions</a></code> | <code>projen.javascript.BundlerOptions</code> | Options for `Bundler`. |
24671
25385
  | <code><a href="#cdklabs-projen-project-types.yarn.CdkLabsMonorepoOptions.property.bunVersion">bunVersion</a></code> | <code>string</code> | The version of Bun to use if using Bun as a package manager. |
25386
+ | <code><a href="#cdklabs-projen-project-types.yarn.CdkLabsMonorepoOptions.property.checkGhaExpressions">checkGhaExpressions</a></code> | <code>boolean</code> | Enable GitHub Actions expressions validation. |
24672
25387
  | <code><a href="#cdklabs-projen-project-types.yarn.CdkLabsMonorepoOptions.property.checkLicenses">checkLicenses</a></code> | <code>projen.javascript.LicenseCheckerOptions</code> | Configure which licenses should be deemed acceptable for use by dependencies. |
24673
25388
  | <code><a href="#cdklabs-projen-project-types.yarn.CdkLabsMonorepoOptions.property.clobber">clobber</a></code> | <code>boolean</code> | Add a `clobber` task which resets the repo to origin. |
24674
25389
  | <code><a href="#cdklabs-projen-project-types.yarn.CdkLabsMonorepoOptions.property.codeArtifactOptions">codeArtifactOptions</a></code> | <code>projen.javascript.CodeArtifactOptions</code> | Options for npm packages using AWS CodeArtifact. |
@@ -24729,6 +25444,7 @@ const cdkLabsMonorepoOptions: yarn.CdkLabsMonorepoOptions = { ... }
24729
25444
  | <code><a href="#cdklabs-projen-project-types.yarn.CdkLabsMonorepoOptions.property.parent">parent</a></code> | <code>projen.Project</code> | The parent project, if this project is part of a bigger project. |
24730
25445
  | <code><a href="#cdklabs-projen-project-types.yarn.CdkLabsMonorepoOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
24731
25446
  | <code><a href="#cdklabs-projen-project-types.yarn.CdkLabsMonorepoOptions.property.peerDeps">peerDeps</a></code> | <code>string[]</code> | Peer dependencies for this module. |
25447
+ | <code><a href="#cdklabs-projen-project-types.yarn.CdkLabsMonorepoOptions.property.pnpmOptions">pnpmOptions</a></code> | <code>projen.javascript.PnpmOptions</code> | Options for pnpm. |
24732
25448
  | <code><a href="#cdklabs-projen-project-types.yarn.CdkLabsMonorepoOptions.property.pnpmVersion">pnpmVersion</a></code> | <code>string</code> | The version of PNPM to use if using PNPM as a package manager. |
24733
25449
  | <code><a href="#cdklabs-projen-project-types.yarn.CdkLabsMonorepoOptions.property.postBuildSteps">postBuildSteps</a></code> | <code>projen.github.workflows.JobStep[]</code> | Steps to execute after build as part of the release workflow. |
24734
25450
  | <code><a href="#cdklabs-projen-project-types.yarn.CdkLabsMonorepoOptions.property.prerelease">prerelease</a></code> | <code>string</code> | Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). |
@@ -24837,6 +25553,44 @@ for specifying these.
24837
25553
 
24838
25554
  ---
24839
25555
 
25556
+ ##### `allowScripts`<sup>Optional</sup> <a name="allowScripts" id="cdklabs-projen-project-types.yarn.CdkLabsMonorepoOptions.property.allowScripts"></a>
25557
+
25558
+ ```typescript
25559
+ public readonly allowScripts: string[];
25560
+ ```
25561
+
25562
+ - *Type:* string[]
25563
+ - *Default:* all install scripts are allowed to run (package manager default)
25564
+
25565
+ List of dependency (package) names that are allowed to run lifecycle install scripts (`preinstall`, `install`, `postinstall`, `prepare`) during dependency installation.
25566
+
25567
+ These scripts can execute arbitrary code, making them a common
25568
+ supply-chain attack vector. Package managers are moving toward
25569
+ blocking them by default and requiring an explicit allowlist.
25570
+ Configuring `allowScripts` sets up that allowlist so scripts only run
25571
+ for the packages you have explicitly reviewed and trust.
25572
+
25573
+ Support for this setting depends on the configured `packageManager`:
25574
+
25575
+ - `NPM`: written to the native `allowScripts` field in `package.json`
25576
+ (requires npm >= 11.16; see https://docs.npmjs.com/cli/v11/commands/npm-approve-scripts).
25577
+ - `BUN`: written to the native `trustedDependencies` field in
25578
+ `package.json` (see https://bun.com/docs/pm/lifecycle).
25579
+ - `PNPM`: written to the `onlyBuiltDependencies` setting in
25580
+ `pnpm-workspace.yaml` (see https://pnpm.io/settings#onlybuiltdependencies).
25581
+ - `YARN2`, `YARN_BERRY`: written to the native
25582
+ `dependenciesMeta.<pkg>.built` allowlist in `package.json`, combined
25583
+ with `enableScripts: false` in `.yarnrc.yml` (see
25584
+ https://yarnpkg.com/features/security#postinstalls). If you set
25585
+ `yarnBerryOptions.yarnRcOptions.enableScripts` explicitly, that value
25586
+ is respected instead of being overridden.
25587
+ - `YARN`, `YARN_CLASSIC`: not supported. Yarn Classic has no native
25588
+ mechanism to allowlist install scripts for specific dependencies.
25589
+ Setting this option with one of these package managers throws an
25590
+ error at synthesis time.
25591
+
25592
+ ---
25593
+
24840
25594
  ##### `artifactsDirectory`<sup>Optional</sup> <a name="artifactsDirectory" id="cdklabs-projen-project-types.yarn.CdkLabsMonorepoOptions.property.artifactsDirectory"></a>
24841
25595
 
24842
25596
  ```typescript
@@ -25185,6 +25939,19 @@ The version of Bun to use if using Bun as a package manager.
25185
25939
 
25186
25940
  ---
25187
25941
 
25942
+ ##### `checkGhaExpressions`<sup>Optional</sup> <a name="checkGhaExpressions" id="cdklabs-projen-project-types.yarn.CdkLabsMonorepoOptions.property.checkGhaExpressions"></a>
25943
+
25944
+ ```typescript
25945
+ public readonly checkGhaExpressions: boolean;
25946
+ ```
25947
+
25948
+ - *Type:* boolean
25949
+ - *Default:* true
25950
+
25951
+ Enable GitHub Actions expressions validation.
25952
+
25953
+ ---
25954
+
25188
25955
  ##### `checkLicenses`<sup>Optional</sup> <a name="checkLicenses" id="cdklabs-projen-project-types.yarn.CdkLabsMonorepoOptions.property.checkLicenses"></a>
25189
25956
 
25190
25957
  ```typescript
@@ -26063,6 +26830,19 @@ test your module against the lowest peer version required.
26063
26830
 
26064
26831
  ---
26065
26832
 
26833
+ ##### `pnpmOptions`<sup>Optional</sup> <a name="pnpmOptions" id="cdklabs-projen-project-types.yarn.CdkLabsMonorepoOptions.property.pnpmOptions"></a>
26834
+
26835
+ ```typescript
26836
+ public readonly pnpmOptions: PnpmOptions;
26837
+ ```
26838
+
26839
+ - *Type:* projen.javascript.PnpmOptions
26840
+ - *Default:* all default options
26841
+
26842
+ Options for pnpm.
26843
+
26844
+ ---
26845
+
26066
26846
  ##### `pnpmVersion`<sup>Optional</sup> <a name="pnpmVersion" id="cdklabs-projen-project-types.yarn.CdkLabsMonorepoOptions.property.pnpmVersion"></a>
26067
26847
 
26068
26848
  ```typescript
@@ -27030,6 +27810,7 @@ const cdklabsTypeScriptProjectOptions: CdklabsTypeScriptProjectOptions = { ... }
27030
27810
  | <code><a href="#cdklabs-projen-project-types.CdklabsTypeScriptProjectOptions.property.vscode">vscode</a></code> | <code>boolean</code> | Enable VSCode integration. |
27031
27811
  | <code><a href="#cdklabs-projen-project-types.CdklabsTypeScriptProjectOptions.property.addPackageManagerToDevEngines">addPackageManagerToDevEngines</a></code> | <code>boolean</code> | Automatically add the resolved `packageManager` to `devEngines.packageManager` in `package.json`, setting `onFail` to `ignore`. |
27032
27812
  | <code><a href="#cdklabs-projen-project-types.CdklabsTypeScriptProjectOptions.property.allowLibraryDependencies">allowLibraryDependencies</a></code> | <code>boolean</code> | Allow the project to include `peerDependencies` and `bundledDependencies`. |
27813
+ | <code><a href="#cdklabs-projen-project-types.CdklabsTypeScriptProjectOptions.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. |
27033
27814
  | <code><a href="#cdklabs-projen-project-types.CdklabsTypeScriptProjectOptions.property.authorEmail">authorEmail</a></code> | <code>string</code> | Author's e-mail. |
27034
27815
  | <code><a href="#cdklabs-projen-project-types.CdklabsTypeScriptProjectOptions.property.authorName">authorName</a></code> | <code>string</code> | Author's name. |
27035
27816
  | <code><a href="#cdklabs-projen-project-types.CdklabsTypeScriptProjectOptions.property.authorOrganization">authorOrganization</a></code> | <code>boolean</code> | Is the author an organization. |
@@ -27062,6 +27843,7 @@ const cdklabsTypeScriptProjectOptions: CdklabsTypeScriptProjectOptions = { ... }
27062
27843
  | <code><a href="#cdklabs-projen-project-types.CdklabsTypeScriptProjectOptions.property.packageName">packageName</a></code> | <code>string</code> | The "name" in package.json. |
27063
27844
  | <code><a href="#cdklabs-projen-project-types.CdklabsTypeScriptProjectOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
27064
27845
  | <code><a href="#cdklabs-projen-project-types.CdklabsTypeScriptProjectOptions.property.peerDeps">peerDeps</a></code> | <code>string[]</code> | Peer dependencies for this module. |
27846
+ | <code><a href="#cdklabs-projen-project-types.CdklabsTypeScriptProjectOptions.property.pnpmOptions">pnpmOptions</a></code> | <code>projen.javascript.PnpmOptions</code> | Options for pnpm. |
27065
27847
  | <code><a href="#cdklabs-projen-project-types.CdklabsTypeScriptProjectOptions.property.pnpmVersion">pnpmVersion</a></code> | <code>string</code> | The version of PNPM to use if using PNPM as a package manager. |
27066
27848
  | <code><a href="#cdklabs-projen-project-types.CdklabsTypeScriptProjectOptions.property.repository">repository</a></code> | <code>string</code> | The repository is the location where the actual code for your package lives. |
27067
27849
  | <code><a href="#cdklabs-projen-project-types.CdklabsTypeScriptProjectOptions.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. |
@@ -27150,6 +27932,7 @@ const cdklabsTypeScriptProjectOptions: CdklabsTypeScriptProjectOptions = { ... }
27150
27932
  | <code><a href="#cdklabs-projen-project-types.CdklabsTypeScriptProjectOptions.property.tsconfigDevFile">tsconfigDevFile</a></code> | <code>string</code> | The name (and path) of the development tsconfig file. |
27151
27933
  | <code><a href="#cdklabs-projen-project-types.CdklabsTypeScriptProjectOptions.property.tsJestOptions">tsJestOptions</a></code> | <code>projen.typescript.TsJestOptions</code> | Options for ts-jest. |
27152
27934
  | <code><a href="#cdklabs-projen-project-types.CdklabsTypeScriptProjectOptions.property.typescriptVersion">typescriptVersion</a></code> | <code>string</code> | TypeScript version to use. |
27935
+ | <code><a href="#cdklabs-projen-project-types.CdklabsTypeScriptProjectOptions.property.checkGhaExpressions">checkGhaExpressions</a></code> | <code>boolean</code> | Enable GitHub Actions expressions validation. |
27153
27936
  | <code><a href="#cdklabs-projen-project-types.CdklabsTypeScriptProjectOptions.property.enablePRAutoMerge">enablePRAutoMerge</a></code> | <code>boolean</code> | Whether to enable the auto merge workflow for PRs. |
27154
27937
  | <code><a href="#cdklabs-projen-project-types.CdklabsTypeScriptProjectOptions.property.ghAutoMergeOptions">ghAutoMergeOptions</a></code> | <code>projen.github.AutoQueueOptions</code> | Options for the GitHub auto merge workflow. |
27155
27938
  | <code><a href="#cdklabs-projen-project-types.CdklabsTypeScriptProjectOptions.property.private">private</a></code> | <code>boolean</code> | Whether or not this package is private. |
@@ -27553,6 +28336,44 @@ for specifying these.
27553
28336
 
27554
28337
  ---
27555
28338
 
28339
+ ##### `allowScripts`<sup>Optional</sup> <a name="allowScripts" id="cdklabs-projen-project-types.CdklabsTypeScriptProjectOptions.property.allowScripts"></a>
28340
+
28341
+ ```typescript
28342
+ public readonly allowScripts: string[];
28343
+ ```
28344
+
28345
+ - *Type:* string[]
28346
+ - *Default:* all install scripts are allowed to run (package manager default)
28347
+
28348
+ List of dependency (package) names that are allowed to run lifecycle install scripts (`preinstall`, `install`, `postinstall`, `prepare`) during dependency installation.
28349
+
28350
+ These scripts can execute arbitrary code, making them a common
28351
+ supply-chain attack vector. Package managers are moving toward
28352
+ blocking them by default and requiring an explicit allowlist.
28353
+ Configuring `allowScripts` sets up that allowlist so scripts only run
28354
+ for the packages you have explicitly reviewed and trust.
28355
+
28356
+ Support for this setting depends on the configured `packageManager`:
28357
+
28358
+ - `NPM`: written to the native `allowScripts` field in `package.json`
28359
+ (requires npm >= 11.16; see https://docs.npmjs.com/cli/v11/commands/npm-approve-scripts).
28360
+ - `BUN`: written to the native `trustedDependencies` field in
28361
+ `package.json` (see https://bun.com/docs/pm/lifecycle).
28362
+ - `PNPM`: written to the `onlyBuiltDependencies` setting in
28363
+ `pnpm-workspace.yaml` (see https://pnpm.io/settings#onlybuiltdependencies).
28364
+ - `YARN2`, `YARN_BERRY`: written to the native
28365
+ `dependenciesMeta.<pkg>.built` allowlist in `package.json`, combined
28366
+ with `enableScripts: false` in `.yarnrc.yml` (see
28367
+ https://yarnpkg.com/features/security#postinstalls). If you set
28368
+ `yarnBerryOptions.yarnRcOptions.enableScripts` explicitly, that value
28369
+ is respected instead of being overridden.
28370
+ - `YARN`, `YARN_CLASSIC`: not supported. Yarn Classic has no native
28371
+ mechanism to allowlist install scripts for specific dependencies.
28372
+ Setting this option with one of these package managers throws an
28373
+ error at synthesis time.
28374
+
28375
+ ---
28376
+
27556
28377
  ##### `authorEmail`<sup>Optional</sup> <a name="authorEmail" id="cdklabs-projen-project-types.CdklabsTypeScriptProjectOptions.property.authorEmail"></a>
27557
28378
 
27558
28379
  ```typescript
@@ -28064,6 +28885,19 @@ test your module against the lowest peer version required.
28064
28885
 
28065
28886
  ---
28066
28887
 
28888
+ ##### `pnpmOptions`<sup>Optional</sup> <a name="pnpmOptions" id="cdklabs-projen-project-types.CdklabsTypeScriptProjectOptions.property.pnpmOptions"></a>
28889
+
28890
+ ```typescript
28891
+ public readonly pnpmOptions: PnpmOptions;
28892
+ ```
28893
+
28894
+ - *Type:* projen.javascript.PnpmOptions
28895
+ - *Default:* all default options
28896
+
28897
+ Options for pnpm.
28898
+
28899
+ ---
28900
+
28067
28901
  ##### `pnpmVersion`<sup>Optional</sup> <a name="pnpmVersion" id="cdklabs-projen-project-types.CdklabsTypeScriptProjectOptions.property.pnpmVersion"></a>
28068
28902
 
28069
28903
  ```typescript
@@ -29285,6 +30119,19 @@ same minor, so we recommend using a `~` dependency (e.g. `~1.2.3`).
29285
30119
 
29286
30120
  ---
29287
30121
 
30122
+ ##### `checkGhaExpressions`<sup>Optional</sup> <a name="checkGhaExpressions" id="cdklabs-projen-project-types.CdklabsTypeScriptProjectOptions.property.checkGhaExpressions"></a>
30123
+
30124
+ ```typescript
30125
+ public readonly checkGhaExpressions: boolean;
30126
+ ```
30127
+
30128
+ - *Type:* boolean
30129
+ - *Default:* true
30130
+
30131
+ Enable GitHub Actions expressions validation.
30132
+
30133
+ ---
30134
+
29288
30135
  ##### `enablePRAutoMerge`<sup>Optional</sup> <a name="enablePRAutoMerge" id="cdklabs-projen-project-types.CdklabsTypeScriptProjectOptions.property.enablePRAutoMerge"></a>
29289
30136
 
29290
30137
  ```typescript
@@ -29424,6 +30271,7 @@ const cdkTypeScriptProjectOptions: CdkTypeScriptProjectOptions = { ... }
29424
30271
  | <code><a href="#cdklabs-projen-project-types.CdkTypeScriptProjectOptions.property.vscode">vscode</a></code> | <code>boolean</code> | Enable VSCode integration. |
29425
30272
  | <code><a href="#cdklabs-projen-project-types.CdkTypeScriptProjectOptions.property.addPackageManagerToDevEngines">addPackageManagerToDevEngines</a></code> | <code>boolean</code> | Automatically add the resolved `packageManager` to `devEngines.packageManager` in `package.json`, setting `onFail` to `ignore`. |
29426
30273
  | <code><a href="#cdklabs-projen-project-types.CdkTypeScriptProjectOptions.property.allowLibraryDependencies">allowLibraryDependencies</a></code> | <code>boolean</code> | Allow the project to include `peerDependencies` and `bundledDependencies`. |
30274
+ | <code><a href="#cdklabs-projen-project-types.CdkTypeScriptProjectOptions.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. |
29427
30275
  | <code><a href="#cdklabs-projen-project-types.CdkTypeScriptProjectOptions.property.authorEmail">authorEmail</a></code> | <code>string</code> | Author's e-mail. |
29428
30276
  | <code><a href="#cdklabs-projen-project-types.CdkTypeScriptProjectOptions.property.authorName">authorName</a></code> | <code>string</code> | Author's name. |
29429
30277
  | <code><a href="#cdklabs-projen-project-types.CdkTypeScriptProjectOptions.property.authorOrganization">authorOrganization</a></code> | <code>boolean</code> | Is the author an organization. |
@@ -29456,6 +30304,7 @@ const cdkTypeScriptProjectOptions: CdkTypeScriptProjectOptions = { ... }
29456
30304
  | <code><a href="#cdklabs-projen-project-types.CdkTypeScriptProjectOptions.property.packageName">packageName</a></code> | <code>string</code> | The "name" in package.json. |
29457
30305
  | <code><a href="#cdklabs-projen-project-types.CdkTypeScriptProjectOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
29458
30306
  | <code><a href="#cdklabs-projen-project-types.CdkTypeScriptProjectOptions.property.peerDeps">peerDeps</a></code> | <code>string[]</code> | Peer dependencies for this module. |
30307
+ | <code><a href="#cdklabs-projen-project-types.CdkTypeScriptProjectOptions.property.pnpmOptions">pnpmOptions</a></code> | <code>projen.javascript.PnpmOptions</code> | Options for pnpm. |
29459
30308
  | <code><a href="#cdklabs-projen-project-types.CdkTypeScriptProjectOptions.property.pnpmVersion">pnpmVersion</a></code> | <code>string</code> | The version of PNPM to use if using PNPM as a package manager. |
29460
30309
  | <code><a href="#cdklabs-projen-project-types.CdkTypeScriptProjectOptions.property.repository">repository</a></code> | <code>string</code> | The repository is the location where the actual code for your package lives. |
29461
30310
  | <code><a href="#cdklabs-projen-project-types.CdkTypeScriptProjectOptions.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. |
@@ -29544,6 +30393,7 @@ const cdkTypeScriptProjectOptions: CdkTypeScriptProjectOptions = { ... }
29544
30393
  | <code><a href="#cdklabs-projen-project-types.CdkTypeScriptProjectOptions.property.tsconfigDevFile">tsconfigDevFile</a></code> | <code>string</code> | The name (and path) of the development tsconfig file. |
29545
30394
  | <code><a href="#cdklabs-projen-project-types.CdkTypeScriptProjectOptions.property.tsJestOptions">tsJestOptions</a></code> | <code>projen.typescript.TsJestOptions</code> | Options for ts-jest. |
29546
30395
  | <code><a href="#cdklabs-projen-project-types.CdkTypeScriptProjectOptions.property.typescriptVersion">typescriptVersion</a></code> | <code>string</code> | TypeScript version to use. |
30396
+ | <code><a href="#cdklabs-projen-project-types.CdkTypeScriptProjectOptions.property.checkGhaExpressions">checkGhaExpressions</a></code> | <code>boolean</code> | Enable GitHub Actions expressions validation. |
29547
30397
  | <code><a href="#cdklabs-projen-project-types.CdkTypeScriptProjectOptions.property.enablePRAutoMerge">enablePRAutoMerge</a></code> | <code>boolean</code> | Whether to enable the auto merge workflow for PRs. |
29548
30398
  | <code><a href="#cdklabs-projen-project-types.CdkTypeScriptProjectOptions.property.ghAutoMergeOptions">ghAutoMergeOptions</a></code> | <code>projen.github.AutoQueueOptions</code> | Options for the GitHub auto merge workflow. |
29549
30399
  | <code><a href="#cdklabs-projen-project-types.CdkTypeScriptProjectOptions.property.private">private</a></code> | <code>boolean</code> | Whether or not this package is private. |
@@ -29947,6 +30797,44 @@ for specifying these.
29947
30797
 
29948
30798
  ---
29949
30799
 
30800
+ ##### `allowScripts`<sup>Optional</sup> <a name="allowScripts" id="cdklabs-projen-project-types.CdkTypeScriptProjectOptions.property.allowScripts"></a>
30801
+
30802
+ ```typescript
30803
+ public readonly allowScripts: string[];
30804
+ ```
30805
+
30806
+ - *Type:* string[]
30807
+ - *Default:* all install scripts are allowed to run (package manager default)
30808
+
30809
+ List of dependency (package) names that are allowed to run lifecycle install scripts (`preinstall`, `install`, `postinstall`, `prepare`) during dependency installation.
30810
+
30811
+ These scripts can execute arbitrary code, making them a common
30812
+ supply-chain attack vector. Package managers are moving toward
30813
+ blocking them by default and requiring an explicit allowlist.
30814
+ Configuring `allowScripts` sets up that allowlist so scripts only run
30815
+ for the packages you have explicitly reviewed and trust.
30816
+
30817
+ Support for this setting depends on the configured `packageManager`:
30818
+
30819
+ - `NPM`: written to the native `allowScripts` field in `package.json`
30820
+ (requires npm >= 11.16; see https://docs.npmjs.com/cli/v11/commands/npm-approve-scripts).
30821
+ - `BUN`: written to the native `trustedDependencies` field in
30822
+ `package.json` (see https://bun.com/docs/pm/lifecycle).
30823
+ - `PNPM`: written to the `onlyBuiltDependencies` setting in
30824
+ `pnpm-workspace.yaml` (see https://pnpm.io/settings#onlybuiltdependencies).
30825
+ - `YARN2`, `YARN_BERRY`: written to the native
30826
+ `dependenciesMeta.<pkg>.built` allowlist in `package.json`, combined
30827
+ with `enableScripts: false` in `.yarnrc.yml` (see
30828
+ https://yarnpkg.com/features/security#postinstalls). If you set
30829
+ `yarnBerryOptions.yarnRcOptions.enableScripts` explicitly, that value
30830
+ is respected instead of being overridden.
30831
+ - `YARN`, `YARN_CLASSIC`: not supported. Yarn Classic has no native
30832
+ mechanism to allowlist install scripts for specific dependencies.
30833
+ Setting this option with one of these package managers throws an
30834
+ error at synthesis time.
30835
+
30836
+ ---
30837
+
29950
30838
  ##### `authorEmail`<sup>Optional</sup> <a name="authorEmail" id="cdklabs-projen-project-types.CdkTypeScriptProjectOptions.property.authorEmail"></a>
29951
30839
 
29952
30840
  ```typescript
@@ -30458,6 +31346,19 @@ test your module against the lowest peer version required.
30458
31346
 
30459
31347
  ---
30460
31348
 
31349
+ ##### `pnpmOptions`<sup>Optional</sup> <a name="pnpmOptions" id="cdklabs-projen-project-types.CdkTypeScriptProjectOptions.property.pnpmOptions"></a>
31350
+
31351
+ ```typescript
31352
+ public readonly pnpmOptions: PnpmOptions;
31353
+ ```
31354
+
31355
+ - *Type:* projen.javascript.PnpmOptions
31356
+ - *Default:* all default options
31357
+
31358
+ Options for pnpm.
31359
+
31360
+ ---
31361
+
30461
31362
  ##### `pnpmVersion`<sup>Optional</sup> <a name="pnpmVersion" id="cdklabs-projen-project-types.CdkTypeScriptProjectOptions.property.pnpmVersion"></a>
30462
31363
 
30463
31364
  ```typescript
@@ -31679,6 +32580,19 @@ same minor, so we recommend using a `~` dependency (e.g. `~1.2.3`).
31679
32580
 
31680
32581
  ---
31681
32582
 
32583
+ ##### `checkGhaExpressions`<sup>Optional</sup> <a name="checkGhaExpressions" id="cdklabs-projen-project-types.CdkTypeScriptProjectOptions.property.checkGhaExpressions"></a>
32584
+
32585
+ ```typescript
32586
+ public readonly checkGhaExpressions: boolean;
32587
+ ```
32588
+
32589
+ - *Type:* boolean
32590
+ - *Default:* true
32591
+
32592
+ Enable GitHub Actions expressions validation.
32593
+
32594
+ ---
32595
+
31682
32596
  ##### `enablePRAutoMerge`<sup>Optional</sup> <a name="enablePRAutoMerge" id="cdklabs-projen-project-types.CdkTypeScriptProjectOptions.property.enablePRAutoMerge"></a>
31683
32597
 
31684
32598
  ```typescript
@@ -32155,6 +33069,7 @@ const monorepoOptions: yarn.MonorepoOptions = { ... }
32155
33069
  | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoOptions.property.name">name</a></code> | <code>string</code> | This is the name of your project. |
32156
33070
  | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoOptions.property.addPackageManagerToDevEngines">addPackageManagerToDevEngines</a></code> | <code>boolean</code> | Automatically add the resolved `packageManager` to `devEngines.packageManager` in `package.json`, setting `onFail` to `ignore`. |
32157
33071
  | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoOptions.property.allowLibraryDependencies">allowLibraryDependencies</a></code> | <code>boolean</code> | Allow the project to include `peerDependencies` and `bundledDependencies`. |
33072
+ | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoOptions.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. |
32158
33073
  | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoOptions.property.artifactsDirectory">artifactsDirectory</a></code> | <code>string</code> | A directory which will contain build artifacts. |
32159
33074
  | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoOptions.property.auditDeps">auditDeps</a></code> | <code>boolean</code> | Run security audit on dependencies. |
32160
33075
  | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoOptions.property.auditDepsOptions">auditDepsOptions</a></code> | <code>projen.javascript.AuditOptions</code> | Security audit options. |
@@ -32180,6 +33095,7 @@ const monorepoOptions: yarn.MonorepoOptions = { ... }
32180
33095
  | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoOptions.property.bundledDeps">bundledDeps</a></code> | <code>string[]</code> | List of dependencies to bundle into this module. |
32181
33096
  | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoOptions.property.bundlerOptions">bundlerOptions</a></code> | <code>projen.javascript.BundlerOptions</code> | Options for `Bundler`. |
32182
33097
  | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoOptions.property.bunVersion">bunVersion</a></code> | <code>string</code> | The version of Bun to use if using Bun as a package manager. |
33098
+ | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoOptions.property.checkGhaExpressions">checkGhaExpressions</a></code> | <code>boolean</code> | Enable GitHub Actions expressions validation. |
32183
33099
  | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoOptions.property.checkLicenses">checkLicenses</a></code> | <code>projen.javascript.LicenseCheckerOptions</code> | Configure which licenses should be deemed acceptable for use by dependencies. |
32184
33100
  | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoOptions.property.clobber">clobber</a></code> | <code>boolean</code> | Add a `clobber` task which resets the repo to origin. |
32185
33101
  | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoOptions.property.codeArtifactOptions">codeArtifactOptions</a></code> | <code>projen.javascript.CodeArtifactOptions</code> | Options for npm packages using AWS CodeArtifact. |
@@ -32240,6 +33156,7 @@ const monorepoOptions: yarn.MonorepoOptions = { ... }
32240
33156
  | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoOptions.property.parent">parent</a></code> | <code>projen.Project</code> | The parent project, if this project is part of a bigger project. |
32241
33157
  | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
32242
33158
  | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoOptions.property.peerDeps">peerDeps</a></code> | <code>string[]</code> | Peer dependencies for this module. |
33159
+ | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoOptions.property.pnpmOptions">pnpmOptions</a></code> | <code>projen.javascript.PnpmOptions</code> | Options for pnpm. |
32243
33160
  | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoOptions.property.pnpmVersion">pnpmVersion</a></code> | <code>string</code> | The version of PNPM to use if using PNPM as a package manager. |
32244
33161
  | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoOptions.property.postBuildSteps">postBuildSteps</a></code> | <code>projen.github.workflows.JobStep[]</code> | Steps to execute after build as part of the release workflow. |
32245
33162
  | <code><a href="#cdklabs-projen-project-types.yarn.MonorepoOptions.property.prerelease">prerelease</a></code> | <code>string</code> | Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). |
@@ -32348,6 +33265,44 @@ for specifying these.
32348
33265
 
32349
33266
  ---
32350
33267
 
33268
+ ##### `allowScripts`<sup>Optional</sup> <a name="allowScripts" id="cdklabs-projen-project-types.yarn.MonorepoOptions.property.allowScripts"></a>
33269
+
33270
+ ```typescript
33271
+ public readonly allowScripts: string[];
33272
+ ```
33273
+
33274
+ - *Type:* string[]
33275
+ - *Default:* all install scripts are allowed to run (package manager default)
33276
+
33277
+ List of dependency (package) names that are allowed to run lifecycle install scripts (`preinstall`, `install`, `postinstall`, `prepare`) during dependency installation.
33278
+
33279
+ These scripts can execute arbitrary code, making them a common
33280
+ supply-chain attack vector. Package managers are moving toward
33281
+ blocking them by default and requiring an explicit allowlist.
33282
+ Configuring `allowScripts` sets up that allowlist so scripts only run
33283
+ for the packages you have explicitly reviewed and trust.
33284
+
33285
+ Support for this setting depends on the configured `packageManager`:
33286
+
33287
+ - `NPM`: written to the native `allowScripts` field in `package.json`
33288
+ (requires npm >= 11.16; see https://docs.npmjs.com/cli/v11/commands/npm-approve-scripts).
33289
+ - `BUN`: written to the native `trustedDependencies` field in
33290
+ `package.json` (see https://bun.com/docs/pm/lifecycle).
33291
+ - `PNPM`: written to the `onlyBuiltDependencies` setting in
33292
+ `pnpm-workspace.yaml` (see https://pnpm.io/settings#onlybuiltdependencies).
33293
+ - `YARN2`, `YARN_BERRY`: written to the native
33294
+ `dependenciesMeta.<pkg>.built` allowlist in `package.json`, combined
33295
+ with `enableScripts: false` in `.yarnrc.yml` (see
33296
+ https://yarnpkg.com/features/security#postinstalls). If you set
33297
+ `yarnBerryOptions.yarnRcOptions.enableScripts` explicitly, that value
33298
+ is respected instead of being overridden.
33299
+ - `YARN`, `YARN_CLASSIC`: not supported. Yarn Classic has no native
33300
+ mechanism to allowlist install scripts for specific dependencies.
33301
+ Setting this option with one of these package managers throws an
33302
+ error at synthesis time.
33303
+
33304
+ ---
33305
+
32351
33306
  ##### `artifactsDirectory`<sup>Optional</sup> <a name="artifactsDirectory" id="cdklabs-projen-project-types.yarn.MonorepoOptions.property.artifactsDirectory"></a>
32352
33307
 
32353
33308
  ```typescript
@@ -32696,6 +33651,19 @@ The version of Bun to use if using Bun as a package manager.
32696
33651
 
32697
33652
  ---
32698
33653
 
33654
+ ##### `checkGhaExpressions`<sup>Optional</sup> <a name="checkGhaExpressions" id="cdklabs-projen-project-types.yarn.MonorepoOptions.property.checkGhaExpressions"></a>
33655
+
33656
+ ```typescript
33657
+ public readonly checkGhaExpressions: boolean;
33658
+ ```
33659
+
33660
+ - *Type:* boolean
33661
+ - *Default:* true
33662
+
33663
+ Enable GitHub Actions expressions validation.
33664
+
33665
+ ---
33666
+
32699
33667
  ##### `checkLicenses`<sup>Optional</sup> <a name="checkLicenses" id="cdklabs-projen-project-types.yarn.MonorepoOptions.property.checkLicenses"></a>
32700
33668
 
32701
33669
  ```typescript
@@ -33574,6 +34542,19 @@ test your module against the lowest peer version required.
33574
34542
 
33575
34543
  ---
33576
34544
 
34545
+ ##### `pnpmOptions`<sup>Optional</sup> <a name="pnpmOptions" id="cdklabs-projen-project-types.yarn.MonorepoOptions.property.pnpmOptions"></a>
34546
+
34547
+ ```typescript
34548
+ public readonly pnpmOptions: PnpmOptions;
34549
+ ```
34550
+
34551
+ - *Type:* projen.javascript.PnpmOptions
34552
+ - *Default:* all default options
34553
+
34554
+ Options for pnpm.
34555
+
34556
+ ---
34557
+
33577
34558
  ##### `pnpmVersion`<sup>Optional</sup> <a name="pnpmVersion" id="cdklabs-projen-project-types.yarn.MonorepoOptions.property.pnpmVersion"></a>
33578
34559
 
33579
34560
  ```typescript
@@ -34926,6 +35907,7 @@ const typeScriptWorkspaceOptions: yarn.TypeScriptWorkspaceOptions = { ... }
34926
35907
  | <code><a href="#cdklabs-projen-project-types.yarn.TypeScriptWorkspaceOptions.property.addPackageManagerToDevEngines">addPackageManagerToDevEngines</a></code> | <code>boolean</code> | Automatically add the resolved `packageManager` to `devEngines.packageManager` in `package.json`, setting `onFail` to `ignore`. |
34927
35908
  | <code><a href="#cdklabs-projen-project-types.yarn.TypeScriptWorkspaceOptions.property.allowLibraryDependencies">allowLibraryDependencies</a></code> | <code>boolean</code> | Allow the project to include `peerDependencies` and `bundledDependencies`. |
34928
35909
  | <code><a href="#cdklabs-projen-project-types.yarn.TypeScriptWorkspaceOptions.property.allowPrivateDeps">allowPrivateDeps</a></code> | <code>boolean</code> | Allow private workspace dependencies in the 'deps' parameter. |
35910
+ | <code><a href="#cdklabs-projen-project-types.yarn.TypeScriptWorkspaceOptions.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. |
34929
35911
  | <code><a href="#cdklabs-projen-project-types.yarn.TypeScriptWorkspaceOptions.property.artifactsDirectory">artifactsDirectory</a></code> | <code>string</code> | A directory which will contain build artifacts. |
34930
35912
  | <code><a href="#cdklabs-projen-project-types.yarn.TypeScriptWorkspaceOptions.property.auditDeps">auditDeps</a></code> | <code>boolean</code> | Run security audit on dependencies. |
34931
35913
  | <code><a href="#cdklabs-projen-project-types.yarn.TypeScriptWorkspaceOptions.property.auditDepsOptions">auditDepsOptions</a></code> | <code>projen.javascript.AuditOptions</code> | Security audit options. |
@@ -35008,6 +35990,7 @@ const typeScriptWorkspaceOptions: yarn.TypeScriptWorkspaceOptions = { ... }
35008
35990
  | <code><a href="#cdklabs-projen-project-types.yarn.TypeScriptWorkspaceOptions.property.packageName">packageName</a></code> | <code>string</code> | The "name" in package.json. |
35009
35991
  | <code><a href="#cdklabs-projen-project-types.yarn.TypeScriptWorkspaceOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
35010
35992
  | <code><a href="#cdklabs-projen-project-types.yarn.TypeScriptWorkspaceOptions.property.peerDeps">peerDeps</a></code> | <code>string \| cdklabs-projen-project-types.yarn.IWorkspaceReference[]</code> | Peer dependencies for this module. |
35993
+ | <code><a href="#cdklabs-projen-project-types.yarn.TypeScriptWorkspaceOptions.property.pnpmOptions">pnpmOptions</a></code> | <code>projen.javascript.PnpmOptions</code> | Options for pnpm. |
35011
35994
  | <code><a href="#cdklabs-projen-project-types.yarn.TypeScriptWorkspaceOptions.property.pnpmVersion">pnpmVersion</a></code> | <code>string</code> | The version of PNPM to use if using PNPM as a package manager. |
35012
35995
  | <code><a href="#cdklabs-projen-project-types.yarn.TypeScriptWorkspaceOptions.property.postBuildSteps">postBuildSteps</a></code> | <code>projen.github.workflows.JobStep[]</code> | Steps to execute after build as part of the release workflow. |
35013
35996
  | <code><a href="#cdklabs-projen-project-types.yarn.TypeScriptWorkspaceOptions.property.prerelease">prerelease</a></code> | <code>string</code> | Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). |
@@ -35141,6 +36124,44 @@ your package. It makes sense to relax this check *only* if you are bundling your
35141
36124
 
35142
36125
  ---
35143
36126
 
36127
+ ##### `allowScripts`<sup>Optional</sup> <a name="allowScripts" id="cdklabs-projen-project-types.yarn.TypeScriptWorkspaceOptions.property.allowScripts"></a>
36128
+
36129
+ ```typescript
36130
+ public readonly allowScripts: string[];
36131
+ ```
36132
+
36133
+ - *Type:* string[]
36134
+ - *Default:* all install scripts are allowed to run (package manager default)
36135
+
36136
+ List of dependency (package) names that are allowed to run lifecycle install scripts (`preinstall`, `install`, `postinstall`, `prepare`) during dependency installation.
36137
+
36138
+ These scripts can execute arbitrary code, making them a common
36139
+ supply-chain attack vector. Package managers are moving toward
36140
+ blocking them by default and requiring an explicit allowlist.
36141
+ Configuring `allowScripts` sets up that allowlist so scripts only run
36142
+ for the packages you have explicitly reviewed and trust.
36143
+
36144
+ Support for this setting depends on the configured `packageManager`:
36145
+
36146
+ - `NPM`: written to the native `allowScripts` field in `package.json`
36147
+ (requires npm >= 11.16; see https://docs.npmjs.com/cli/v11/commands/npm-approve-scripts).
36148
+ - `BUN`: written to the native `trustedDependencies` field in
36149
+ `package.json` (see https://bun.com/docs/pm/lifecycle).
36150
+ - `PNPM`: written to the `onlyBuiltDependencies` setting in
36151
+ `pnpm-workspace.yaml` (see https://pnpm.io/settings#onlybuiltdependencies).
36152
+ - `YARN2`, `YARN_BERRY`: written to the native
36153
+ `dependenciesMeta.<pkg>.built` allowlist in `package.json`, combined
36154
+ with `enableScripts: false` in `.yarnrc.yml` (see
36155
+ https://yarnpkg.com/features/security#postinstalls). If you set
36156
+ `yarnBerryOptions.yarnRcOptions.enableScripts` explicitly, that value
36157
+ is respected instead of being overridden.
36158
+ - `YARN`, `YARN_CLASSIC`: not supported. Yarn Classic has no native
36159
+ mechanism to allowlist install scripts for specific dependencies.
36160
+ Setting this option with one of these package managers throws an
36161
+ error at synthesis time.
36162
+
36163
+ ---
36164
+
35144
36165
  ##### `artifactsDirectory`<sup>Optional</sup> <a name="artifactsDirectory" id="cdklabs-projen-project-types.yarn.TypeScriptWorkspaceOptions.property.artifactsDirectory"></a>
35145
36166
 
35146
36167
  ```typescript
@@ -36317,6 +37338,19 @@ test your module against the lowest peer version required.
36317
37338
 
36318
37339
  ---
36319
37340
 
37341
+ ##### `pnpmOptions`<sup>Optional</sup> <a name="pnpmOptions" id="cdklabs-projen-project-types.yarn.TypeScriptWorkspaceOptions.property.pnpmOptions"></a>
37342
+
37343
+ ```typescript
37344
+ public readonly pnpmOptions: PnpmOptions;
37345
+ ```
37346
+
37347
+ - *Type:* projen.javascript.PnpmOptions
37348
+ - *Default:* all default options
37349
+
37350
+ Options for pnpm.
37351
+
37352
+ ---
37353
+
36320
37354
  ##### `pnpmVersion`<sup>Optional</sup> <a name="pnpmVersion" id="cdklabs-projen-project-types.yarn.TypeScriptWorkspaceOptions.property.pnpmVersion"></a>
36321
37355
 
36322
37356
  ```typescript