@taimos/projen 0.1.95 → 0.1.97

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
@@ -2,6 +2,293 @@
2
2
 
3
3
  ## Constructs <a name="Constructs" id="Constructs"></a>
4
4
 
5
+ ### GitHooks <a name="GitHooks" id="@taimos/projen.GitHooks"></a>
6
+
7
+ Local git hooks managed by Lefthook (ADR-0013): a generated `lefthook.yml`, a root `prepare` script that runs `lefthook install`, and a pinned `lefthook` devDependency.
8
+
9
+ Hooks cover a staged secret scan, projen drift, lint and typecheck per
10
+ package, and a Conventional Commits check on the first commit of a branch.
11
+ CI should set `LEFTHOOK=0`.
12
+
13
+ #### Initializers <a name="Initializers" id="@taimos/projen.GitHooks.Initializer"></a>
14
+
15
+ ```typescript
16
+ import { GitHooks } from '@taimos/projen'
17
+
18
+ new GitHooks(tsProject: TypeScriptProject, options?: GitHooksOptions)
19
+ ```
20
+
21
+ | **Name** | **Type** | **Description** |
22
+ | --- | --- | --- |
23
+ | <code><a href="#@taimos/projen.GitHooks.Initializer.parameter.tsProject">tsProject</a></code> | <code>projen.typescript.TypeScriptProject</code> | *No description.* |
24
+ | <code><a href="#@taimos/projen.GitHooks.Initializer.parameter.options">options</a></code> | <code><a href="#@taimos/projen.GitHooksOptions">GitHooksOptions</a></code> | *No description.* |
25
+
26
+ ---
27
+
28
+ ##### `tsProject`<sup>Required</sup> <a name="tsProject" id="@taimos/projen.GitHooks.Initializer.parameter.tsProject"></a>
29
+
30
+ - *Type:* projen.typescript.TypeScriptProject
31
+
32
+ ---
33
+
34
+ ##### `options`<sup>Optional</sup> <a name="options" id="@taimos/projen.GitHooks.Initializer.parameter.options"></a>
35
+
36
+ - *Type:* <a href="#@taimos/projen.GitHooksOptions">GitHooksOptions</a>
37
+
38
+ ---
39
+
40
+ #### Methods <a name="Methods" id="Methods"></a>
41
+
42
+ | **Name** | **Description** |
43
+ | --- | --- |
44
+ | <code><a href="#@taimos/projen.GitHooks.toString">toString</a></code> | Returns a string representation of this construct. |
45
+ | <code><a href="#@taimos/projen.GitHooks.with">with</a></code> | Applies one or more mixins to this construct. |
46
+ | <code><a href="#@taimos/projen.GitHooks.postProjectCreation">postProjectCreation</a></code> | Called once, right after `postSynthesize()`, only when the project is created for the first time. |
47
+ | <code><a href="#@taimos/projen.GitHooks.postSynthesize">postSynthesize</a></code> | Called after synthesis. |
48
+ | <code><a href="#@taimos/projen.GitHooks.preSynthesize">preSynthesize</a></code> | Called before synthesis. |
49
+ | <code><a href="#@taimos/projen.GitHooks.projectCreation">projectCreation</a></code> | Called once, right after `synthesize()`, only when the project is created for the first time. |
50
+ | <code><a href="#@taimos/projen.GitHooks.synthesize">synthesize</a></code> | Synthesizes files to the project output directory. |
51
+ | <code><a href="#@taimos/projen.GitHooks.addPackage">addPackage</a></code> | Add a package that runs its own lint and typecheck scripts. |
52
+
53
+ ---
54
+
55
+ ##### `toString` <a name="toString" id="@taimos/projen.GitHooks.toString"></a>
56
+
57
+ ```typescript
58
+ public toString(): string
59
+ ```
60
+
61
+ Returns a string representation of this construct.
62
+
63
+ ##### `with` <a name="with" id="@taimos/projen.GitHooks.with"></a>
64
+
65
+ ```typescript
66
+ public with(mixins: ...IMixin[]): IConstruct
67
+ ```
68
+
69
+ Applies one or more mixins to this construct.
70
+
71
+ Mixins are applied in order. The list of constructs is captured at the
72
+ start of the call, so constructs added by a mixin will not be visited.
73
+ Use multiple `with()` calls if subsequent mixins should apply to added
74
+ constructs.
75
+
76
+ ###### `mixins`<sup>Required</sup> <a name="mixins" id="@taimos/projen.GitHooks.with.parameter.mixins"></a>
77
+
78
+ - *Type:* ...constructs.IMixin[]
79
+
80
+ The mixins to apply.
81
+
82
+ ---
83
+
84
+ ##### `postProjectCreation` <a name="postProjectCreation" id="@taimos/projen.GitHooks.postProjectCreation"></a>
85
+
86
+ ```typescript
87
+ public postProjectCreation(initProject: InitProject): void
88
+ ```
89
+
90
+ Called once, right after `postSynthesize()`, only when the project is created for the first time.
91
+
92
+ It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
93
+ It is also skipped when post-synthesis steps are disabled, e.g. `--no-post` or `PROJEN_DISABLE_POST`.
94
+ Use it for one-off setup that can be turned off by the user, like running a task to give the user immediate
95
+ feedback on their new project. Order across components is not guaranteed.
96
+
97
+ ###### `initProject`<sup>Required</sup> <a name="initProject" id="@taimos/projen.GitHooks.postProjectCreation.parameter.initProject"></a>
98
+
99
+ - *Type:* projen.InitProject
100
+
101
+ Details about how the project was created, e.g. its type and the original CLI args.
102
+
103
+ ---
104
+
105
+ ##### `postSynthesize` <a name="postSynthesize" id="@taimos/projen.GitHooks.postSynthesize"></a>
106
+
107
+ ```typescript
108
+ public postSynthesize(): void
109
+ ```
110
+
111
+ Called after synthesis.
112
+
113
+ Order is *not* guaranteed.
114
+
115
+ ##### `preSynthesize` <a name="preSynthesize" id="@taimos/projen.GitHooks.preSynthesize"></a>
116
+
117
+ ```typescript
118
+ public preSynthesize(): void
119
+ ```
120
+
121
+ Called before synthesis.
122
+
123
+ ##### `projectCreation` <a name="projectCreation" id="@taimos/projen.GitHooks.projectCreation"></a>
124
+
125
+ ```typescript
126
+ public projectCreation(initProject: InitProject): void
127
+ ```
128
+
129
+ Called once, right after `synthesize()`, only when the project is created for the first time.
130
+
131
+ It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
132
+ Use it for deterministic, one-off file generation. Order across components is not guaranteed.
133
+
134
+ ###### `initProject`<sup>Required</sup> <a name="initProject" id="@taimos/projen.GitHooks.projectCreation.parameter.initProject"></a>
135
+
136
+ - *Type:* projen.InitProject
137
+
138
+ Details about how the project was created, e.g. its type and the original CLI args.
139
+
140
+ ---
141
+
142
+ ##### `synthesize` <a name="synthesize" id="@taimos/projen.GitHooks.synthesize"></a>
143
+
144
+ ```typescript
145
+ public synthesize(): void
146
+ ```
147
+
148
+ Synthesizes files to the project output directory.
149
+
150
+ ##### `addPackage` <a name="addPackage" id="@taimos/projen.GitHooks.addPackage"></a>
151
+
152
+ ```typescript
153
+ public addPackage(pkg: GitHooksPackage): void
154
+ ```
155
+
156
+ Add a package that runs its own lint and typecheck scripts.
157
+
158
+ ###### `pkg`<sup>Required</sup> <a name="pkg" id="@taimos/projen.GitHooks.addPackage.parameter.pkg"></a>
159
+
160
+ - *Type:* <a href="#@taimos/projen.GitHooksPackage">GitHooksPackage</a>
161
+
162
+ ---
163
+
164
+ #### Static Functions <a name="Static Functions" id="Static Functions"></a>
165
+
166
+ | **Name** | **Description** |
167
+ | --- | --- |
168
+ | <code><a href="#@taimos/projen.GitHooks.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
169
+ | <code><a href="#@taimos/projen.GitHooks.isComponent">isComponent</a></code> | Test whether the given construct is a component. |
170
+
171
+ ---
172
+
173
+ ##### `isConstruct` <a name="isConstruct" id="@taimos/projen.GitHooks.isConstruct"></a>
174
+
175
+ ```typescript
176
+ import { GitHooks } from '@taimos/projen'
177
+
178
+ GitHooks.isConstruct(x: any)
179
+ ```
180
+
181
+ Checks if `x` is a construct.
182
+
183
+ Use this method instead of `instanceof` to properly detect `Construct`
184
+ instances, even when the construct library is symlinked.
185
+
186
+ Explanation: in JavaScript, multiple copies of the `constructs` library on
187
+ disk are seen as independent, completely different libraries. As a
188
+ consequence, the class `Construct` in each copy of the `constructs` library
189
+ is seen as a different class, and an instance of one class will not test as
190
+ `instanceof` the other class. `npm install` will not create installations
191
+ like this, but users may manually symlink construct libraries together or
192
+ use a monorepo tool: in those cases, multiple copies of the `constructs`
193
+ library can be accidentally installed, and `instanceof` will behave
194
+ unpredictably. It is safest to avoid using `instanceof`, and using
195
+ this type-testing method instead.
196
+
197
+ ###### `x`<sup>Required</sup> <a name="x" id="@taimos/projen.GitHooks.isConstruct.parameter.x"></a>
198
+
199
+ - *Type:* any
200
+
201
+ Any object.
202
+
203
+ ---
204
+
205
+ ##### `isComponent` <a name="isComponent" id="@taimos/projen.GitHooks.isComponent"></a>
206
+
207
+ ```typescript
208
+ import { GitHooks } from '@taimos/projen'
209
+
210
+ GitHooks.isComponent(x: any)
211
+ ```
212
+
213
+ Test whether the given construct is a component.
214
+
215
+ ###### `x`<sup>Required</sup> <a name="x" id="@taimos/projen.GitHooks.isComponent.parameter.x"></a>
216
+
217
+ - *Type:* any
218
+
219
+ ---
220
+
221
+ #### Properties <a name="Properties" id="Properties"></a>
222
+
223
+ | **Name** | **Type** | **Description** |
224
+ | --- | --- | --- |
225
+ | <code><a href="#@taimos/projen.GitHooks.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
226
+ | <code><a href="#@taimos/projen.GitHooks.property.project">project</a></code> | <code>projen.Project</code> | *No description.* |
227
+ | <code><a href="#@taimos/projen.GitHooks.property.commitMsgScript">commitMsgScript</a></code> | <code>projen.TextFile</code> | The generated commit-msg check script. |
228
+ | <code><a href="#@taimos/projen.GitHooks.property.configFile">configFile</a></code> | <code>projen.YamlFile</code> | The generated `lefthook.yml`. |
229
+ | <code><a href="#@taimos/projen.GitHooks.property.projenDriftScript">projenDriftScript</a></code> | <code>projen.TextFile</code> | The generated projen drift check script, if enabled. |
230
+
231
+ ---
232
+
233
+ ##### `node`<sup>Required</sup> <a name="node" id="@taimos/projen.GitHooks.property.node"></a>
234
+
235
+ ```typescript
236
+ public readonly node: Node;
237
+ ```
238
+
239
+ - *Type:* constructs.Node
240
+
241
+ The tree node.
242
+
243
+ ---
244
+
245
+ ##### `project`<sup>Required</sup> <a name="project" id="@taimos/projen.GitHooks.property.project"></a>
246
+
247
+ ```typescript
248
+ public readonly project: Project;
249
+ ```
250
+
251
+ - *Type:* projen.Project
252
+
253
+ ---
254
+
255
+ ##### `commitMsgScript`<sup>Required</sup> <a name="commitMsgScript" id="@taimos/projen.GitHooks.property.commitMsgScript"></a>
256
+
257
+ ```typescript
258
+ public readonly commitMsgScript: TextFile;
259
+ ```
260
+
261
+ - *Type:* projen.TextFile
262
+
263
+ The generated commit-msg check script.
264
+
265
+ ---
266
+
267
+ ##### `configFile`<sup>Required</sup> <a name="configFile" id="@taimos/projen.GitHooks.property.configFile"></a>
268
+
269
+ ```typescript
270
+ public readonly configFile: YamlFile;
271
+ ```
272
+
273
+ - *Type:* projen.YamlFile
274
+
275
+ The generated `lefthook.yml`.
276
+
277
+ ---
278
+
279
+ ##### `projenDriftScript`<sup>Optional</sup> <a name="projenDriftScript" id="@taimos/projen.GitHooks.property.projenDriftScript"></a>
280
+
281
+ ```typescript
282
+ public readonly projenDriftScript: TextFile;
283
+ ```
284
+
285
+ - *Type:* projen.TextFile
286
+
287
+ The generated projen drift check script, if enabled.
288
+
289
+ ---
290
+
291
+
5
292
  ### GitHubAmplifyDeploy <a name="GitHubAmplifyDeploy" id="@taimos/projen.GitHubAmplifyDeploy"></a>
6
293
 
7
294
  Adds one path-scoped deploy workflow per Amplify Hosting app.
@@ -1499,6 +1786,7 @@ When given a project, this it the project itself.
1499
1786
  | <code><a href="#@taimos/projen.MonorepoProject.property.amplifyDeploy">amplifyDeploy</a></code> | <code><a href="#@taimos/projen.GitHubAmplifyDeploy">GitHubAmplifyDeploy</a></code> | The Amplify deploy workflows, when `amplifyDeployOptions` is set. |
1500
1787
  | <code><a href="#@taimos/projen.MonorepoProject.property.amplifyFile">amplifyFile</a></code> | <code>projen.YamlFile</code> | The generated `amplify.yml`, if any Amplify apps were configured. |
1501
1788
  | <code><a href="#@taimos/projen.MonorepoProject.property.assignApprover">assignApprover</a></code> | <code>projen-pipelines.GitHubAssignApprover</code> | The PR approver assignment, if enabled. |
1789
+ | <code><a href="#@taimos/projen.MonorepoProject.property.gitHooks">gitHooks</a></code> | <code><a href="#@taimos/projen.GitHooks">GitHooks</a></code> | The Lefthook git hooks component, if enabled. |
1502
1790
  | <code><a href="#@taimos/projen.MonorepoProject.property.gitleaks">gitleaks</a></code> | <code><a href="#@taimos/projen.Gitleaks">Gitleaks</a></code> | The gitleaks secret-scanning component, if enabled. |
1503
1791
  | <code><a href="#@taimos/projen.MonorepoProject.property.productionRelease">productionRelease</a></code> | <code><a href="#@taimos/projen.GitHubProductionRelease">GitHubProductionRelease</a></code> | The production release workflow, if enabled. |
1504
1792
 
@@ -2273,6 +2561,18 @@ The PR approver assignment, if enabled.
2273
2561
 
2274
2562
  ---
2275
2563
 
2564
+ ##### `gitHooks`<sup>Optional</sup> <a name="gitHooks" id="@taimos/projen.MonorepoProject.property.gitHooks"></a>
2565
+
2566
+ ```typescript
2567
+ public readonly gitHooks: GitHooks;
2568
+ ```
2569
+
2570
+ - *Type:* <a href="#@taimos/projen.GitHooks">GitHooks</a>
2571
+
2572
+ The Lefthook git hooks component, if enabled.
2573
+
2574
+ ---
2575
+
2276
2576
  ##### `gitleaks`<sup>Optional</sup> <a name="gitleaks" id="@taimos/projen.MonorepoProject.property.gitleaks"></a>
2277
2577
 
2278
2578
  ```typescript
@@ -12602,6 +12902,202 @@ The OpenAPI spec file, relative to the package root.
12602
12902
 
12603
12903
  ---
12604
12904
 
12905
+ ### GitHooksOptions <a name="GitHooksOptions" id="@taimos/projen.GitHooksOptions"></a>
12906
+
12907
+ #### Initializer <a name="Initializer" id="@taimos/projen.GitHooksOptions.Initializer"></a>
12908
+
12909
+ ```typescript
12910
+ import { GitHooksOptions } from '@taimos/projen'
12911
+
12912
+ const gitHooksOptions: GitHooksOptions = { ... }
12913
+ ```
12914
+
12915
+ #### Properties <a name="Properties" id="Properties"></a>
12916
+
12917
+ | **Name** | **Type** | **Description** |
12918
+ | --- | --- | --- |
12919
+ | <code><a href="#@taimos/projen.GitHooksOptions.property.commitTypes">commitTypes</a></code> | <code>string[]</code> | Types accepted by the commit-msg check on the first commit of a branch. |
12920
+ | <code><a href="#@taimos/projen.GitHooksOptions.property.defaultBranch">defaultBranch</a></code> | <code>string</code> | The branch the first-commit detection compares against. |
12921
+ | <code><a href="#@taimos/projen.GitHooksOptions.property.gitleaks">gitleaks</a></code> | <code>boolean</code> | Add a pre-commit gitleaks scan of staged changes. |
12922
+ | <code><a href="#@taimos/projen.GitHooksOptions.property.lefthookVersion">lefthookVersion</a></code> | <code>string</code> | The pinned lefthook version added as a devDependency. |
12923
+ | <code><a href="#@taimos/projen.GitHooksOptions.property.packages">packages</a></code> | <code><a href="#@taimos/projen.GitHooksPackage">GitHooksPackage</a>[]</code> | Additional (non-projen) packages, e.g. frontends, that run their own `lint` and `typecheck` package scripts. |
12924
+ | <code><a href="#@taimos/projen.GitHooksOptions.property.projenDrift">projenDrift</a></code> | <code>boolean</code> | Add a pre-commit check that fails when `projen` synth changes any file. |
12925
+ | <code><a href="#@taimos/projen.GitHooksOptions.property.subprojectChecks">subprojectChecks</a></code> | <code>boolean</code> | Generate eslint and `tsc --noEmit` jobs for every projen TypeScript subproject, scoped to the subproject directory. |
12926
+
12927
+ ---
12928
+
12929
+ ##### `commitTypes`<sup>Optional</sup> <a name="commitTypes" id="@taimos/projen.GitHooksOptions.property.commitTypes"></a>
12930
+
12931
+ ```typescript
12932
+ public readonly commitTypes: string[];
12933
+ ```
12934
+
12935
+ - *Type:* string[]
12936
+ - *Default:* ['feat', 'fix', 'chore', 'docs', 'ci', 'spec']
12937
+
12938
+ Types accepted by the commit-msg check on the first commit of a branch.
12939
+
12940
+ Keep this in sync with the PR title check.
12941
+
12942
+ ---
12943
+
12944
+ ##### `defaultBranch`<sup>Optional</sup> <a name="defaultBranch" id="@taimos/projen.GitHooksOptions.property.defaultBranch"></a>
12945
+
12946
+ ```typescript
12947
+ public readonly defaultBranch: string;
12948
+ ```
12949
+
12950
+ - *Type:* string
12951
+ - *Default:* the `defaultReleaseBranch` of the project, falling back to 'main'
12952
+
12953
+ The branch the first-commit detection compares against.
12954
+
12955
+ ---
12956
+
12957
+ ##### `gitleaks`<sup>Optional</sup> <a name="gitleaks" id="@taimos/projen.GitHooksOptions.property.gitleaks"></a>
12958
+
12959
+ ```typescript
12960
+ public readonly gitleaks: boolean;
12961
+ ```
12962
+
12963
+ - *Type:* boolean
12964
+ - *Default:* true
12965
+
12966
+ Add a pre-commit gitleaks scan of staged changes.
12967
+
12968
+ Requires the `gitleaks`
12969
+ binary on the PATH. It reuses `.gitleaks.toml` when that file exists.
12970
+
12971
+ ---
12972
+
12973
+ ##### `lefthookVersion`<sup>Optional</sup> <a name="lefthookVersion" id="@taimos/projen.GitHooksOptions.property.lefthookVersion"></a>
12974
+
12975
+ ```typescript
12976
+ public readonly lefthookVersion: string;
12977
+ ```
12978
+
12979
+ - *Type:* string
12980
+ - *Default:* '1.11.13'
12981
+
12982
+ The pinned lefthook version added as a devDependency.
12983
+
12984
+ ---
12985
+
12986
+ ##### `packages`<sup>Optional</sup> <a name="packages" id="@taimos/projen.GitHooksOptions.property.packages"></a>
12987
+
12988
+ ```typescript
12989
+ public readonly packages: GitHooksPackage[];
12990
+ ```
12991
+
12992
+ - *Type:* <a href="#@taimos/projen.GitHooksPackage">GitHooksPackage</a>[]
12993
+ - *Default:* []
12994
+
12995
+ Additional (non-projen) packages, e.g. frontends, that run their own `lint` and `typecheck` package scripts.
12996
+
12997
+ ---
12998
+
12999
+ ##### `projenDrift`<sup>Optional</sup> <a name="projenDrift" id="@taimos/projen.GitHooksOptions.property.projenDrift"></a>
13000
+
13001
+ ```typescript
13002
+ public readonly projenDrift: boolean;
13003
+ ```
13004
+
13005
+ - *Type:* boolean
13006
+ - *Default:* true
13007
+
13008
+ Add a pre-commit check that fails when `projen` synth changes any file.
13009
+
13010
+ ---
13011
+
13012
+ ##### `subprojectChecks`<sup>Optional</sup> <a name="subprojectChecks" id="@taimos/projen.GitHooksOptions.property.subprojectChecks"></a>
13013
+
13014
+ ```typescript
13015
+ public readonly subprojectChecks: boolean;
13016
+ ```
13017
+
13018
+ - *Type:* boolean
13019
+ - *Default:* true
13020
+
13021
+ Generate eslint and `tsc --noEmit` jobs for every projen TypeScript subproject, scoped to the subproject directory.
13022
+
13023
+ ---
13024
+
13025
+ ### GitHooksPackage <a name="GitHooksPackage" id="@taimos/projen.GitHooksPackage"></a>
13026
+
13027
+ A package that gets lint and typecheck jobs in `lefthook.yml`.
13028
+
13029
+ #### Initializer <a name="Initializer" id="@taimos/projen.GitHooksPackage.Initializer"></a>
13030
+
13031
+ ```typescript
13032
+ import { GitHooksPackage } from '@taimos/projen'
13033
+
13034
+ const gitHooksPackage: GitHooksPackage = { ... }
13035
+ ```
13036
+
13037
+ #### Properties <a name="Properties" id="Properties"></a>
13038
+
13039
+ | **Name** | **Type** | **Description** |
13040
+ | --- | --- | --- |
13041
+ | <code><a href="#@taimos/projen.GitHooksPackage.property.path">path</a></code> | <code>string</code> | Package directory relative to the repo root, e.g. `packages/web`. |
13042
+ | <code><a href="#@taimos/projen.GitHooksPackage.property.glob">glob</a></code> | <code>string</code> | File glob that selects the staged files that trigger the jobs. |
13043
+ | <code><a href="#@taimos/projen.GitHooksPackage.property.lint">lint</a></code> | <code>string</code> | Command that lints the package. |
13044
+ | <code><a href="#@taimos/projen.GitHooksPackage.property.typecheck">typecheck</a></code> | <code>string</code> | Command that typechecks the package. |
13045
+
13046
+ ---
13047
+
13048
+ ##### `path`<sup>Required</sup> <a name="path" id="@taimos/projen.GitHooksPackage.property.path"></a>
13049
+
13050
+ ```typescript
13051
+ public readonly path: string;
13052
+ ```
13053
+
13054
+ - *Type:* string
13055
+
13056
+ Package directory relative to the repo root, e.g. `packages/web`.
13057
+
13058
+ ---
13059
+
13060
+ ##### `glob`<sup>Optional</sup> <a name="glob" id="@taimos/projen.GitHooksPackage.property.glob"></a>
13061
+
13062
+ ```typescript
13063
+ public readonly glob: string;
13064
+ ```
13065
+
13066
+ - *Type:* string
13067
+ - *Default:* '*.{ts,tsx}'
13068
+
13069
+ File glob that selects the staged files that trigger the jobs.
13070
+
13071
+ ---
13072
+
13073
+ ##### `lint`<sup>Optional</sup> <a name="lint" id="@taimos/projen.GitHooksPackage.property.lint"></a>
13074
+
13075
+ ```typescript
13076
+ public readonly lint: string;
13077
+ ```
13078
+
13079
+ - *Type:* string
13080
+ - *Default:* 'pnpm run lint'
13081
+
13082
+ Command that lints the package.
13083
+
13084
+ `{staged_files}` is replaced by lefthook.
13085
+
13086
+ ---
13087
+
13088
+ ##### `typecheck`<sup>Optional</sup> <a name="typecheck" id="@taimos/projen.GitHooksPackage.property.typecheck"></a>
13089
+
13090
+ ```typescript
13091
+ public readonly typecheck: string;
13092
+ ```
13093
+
13094
+ - *Type:* string
13095
+ - *Default:* 'pnpm run typecheck'
13096
+
13097
+ Command that typechecks the package.
13098
+
13099
+ ---
13100
+
12605
13101
  ### GitHubAmplifyDeployOptions <a name="GitHubAmplifyDeployOptions" id="@taimos/projen.GitHubAmplifyDeployOptions"></a>
12606
13102
 
12607
13103
  #### Initializer <a name="Initializer" id="@taimos/projen.GitHubAmplifyDeployOptions.Initializer"></a>
@@ -13238,8 +13734,11 @@ const monorepoProjectOptions: MonorepoProjectOptions = { ... }
13238
13734
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.npmRegistryUrl">npmRegistryUrl</a></code> | <code>string</code> | The base URL of the npm package registry. |
13239
13735
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.npmTokenSecret">npmTokenSecret</a></code> | <code>string</code> | GitHub secret which contains the NPM token to use when publishing packages. |
13240
13736
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.npmTrustedPublishing">npmTrustedPublishing</a></code> | <code>boolean</code> | Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work. |
13737
+ | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.npmVerifyPublished">npmVerifyPublished</a></code> | <code>boolean</code> | Wait until the published package version is available from the npm registry before the publish job completes. |
13738
+ | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.npmVerifyPublishedTimeoutSeconds">npmVerifyPublishedTimeoutSeconds</a></code> | <code>number</code> | How long to wait, in seconds, for the published package version to be available. |
13241
13739
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.packageManager">packageManager</a></code> | <code>projen.javascript.NodePackageManager</code> | The Node Package Manager used to execute scripts. |
13242
13740
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.packageName">packageName</a></code> | <code>string</code> | The "name" in package.json. |
13741
+ | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.peerDependenciesMeta">peerDependenciesMeta</a></code> | <code>{[ key: string ]: projen.javascript.PeerDependencyMeta}</code> | Additional information about how peer dependencies are used, rendered as `peerDependenciesMeta` in `package.json`. For example, this can mark peer dependencies as optional. |
13243
13742
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
13244
13743
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.peerDeps">peerDeps</a></code> | <code>string[]</code> | Peer dependencies for this module. |
13245
13744
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.pnpmOptions">pnpmOptions</a></code> | <code>projen.javascript.PnpmOptions</code> | Options for pnpm. |
@@ -13313,6 +13812,7 @@ const monorepoProjectOptions: MonorepoProjectOptions = { ... }
13313
13812
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.workflowGitIdentity">workflowGitIdentity</a></code> | <code>projen.github.GitIdentity</code> | The git identity to use in workflows. |
13314
13813
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.workflowNodeVersion">workflowNodeVersion</a></code> | <code>string</code> | The node version used in GitHub Actions workflows. |
13315
13814
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.workflowPackageCache">workflowPackageCache</a></code> | <code>boolean</code> | Enable Node.js package cache in GitHub workflows. |
13815
+ | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.workflowPermissions">workflowPermissions</a></code> | <code>projen.github.workflows.JobPermissions</code> | Permissions for the main build, release and dependency upgrade jobs. |
13316
13816
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.disableTsconfig">disableTsconfig</a></code> | <code>boolean</code> | Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). |
13317
13817
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.disableTsconfigDev">disableTsconfigDev</a></code> | <code>boolean</code> | Do not generate a development tsconfig file. |
13318
13818
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.docgen">docgen</a></code> | <code>boolean</code> | Docgen by Typedoc. |
@@ -13339,6 +13839,8 @@ const monorepoProjectOptions: MonorepoProjectOptions = { ... }
13339
13839
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.assignApprover">assignApprover</a></code> | <code>boolean</code> | Whether to assign PR approvers via `GitHubAssignApprover`. |
13340
13840
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.cdkServerless">cdkServerless</a></code> | <code>boolean</code> | Whether to add `cdk-serverless` as a workspace dev dependency. |
13341
13841
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.defaultApprovers">defaultApprovers</a></code> | <code>string[]</code> | Approvers assigned when no author-specific mapping matches. |
13842
+ | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.gitHooks">gitHooks</a></code> | <code>boolean</code> | Whether to add local git hooks managed by Lefthook: a `lefthook.yml`, a root `prepare` script and a pinned `lefthook` devDependency (see `GitHooks`). |
13843
+ | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.gitHooksOptions">gitHooksOptions</a></code> | <code><a href="#@taimos/projen.GitHooksOptions">GitHooksOptions</a></code> | Options for the git hooks component. |
13342
13844
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.gitleaks">gitleaks</a></code> | <code>boolean</code> | Whether to add gitleaks secret-scanning: a `.gitleaks.toml` config plus a pull-request workflow that scans the full git history (see `Gitleaks`). |
13343
13845
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.gitleaksOptions">gitleaksOptions</a></code> | <code><a href="#@taimos/projen.GitleaksOptions">GitleaksOptions</a></code> | Options for the gitleaks component. |
13344
13846
  | <code><a href="#@taimos/projen.MonorepoProjectOptions.property.nodeVersion">nodeVersion</a></code> | <code>string</code> | The Node.js version used in the generated build workflow. |
@@ -14246,7 +14748,8 @@ public readonly npmRegistryUrl: string;
14246
14748
 
14247
14749
  The base URL of the npm package registry.
14248
14750
 
14249
- Must be a URL (e.g. start with "https://" or "http://")
14751
+ Must be a URL (e.g. start with "https://" or "http://").
14752
+ A trailing slash is added if missing.
14250
14753
 
14251
14754
  ---
14252
14755
 
@@ -14276,6 +14779,36 @@ Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on
14276
14779
 
14277
14780
  ---
14278
14781
 
14782
+ ##### `npmVerifyPublished`<sup>Optional</sup> <a name="npmVerifyPublished" id="@taimos/projen.MonorepoProjectOptions.property.npmVerifyPublished"></a>
14783
+
14784
+ ```typescript
14785
+ public readonly npmVerifyPublished: boolean;
14786
+ ```
14787
+
14788
+ - *Type:* boolean
14789
+ - *Default:* false
14790
+
14791
+ Wait until the published package version is available from the npm registry before the publish job completes.
14792
+
14793
+ Enable this when packages that depend on the published package are released right after.
14794
+
14795
+ ---
14796
+
14797
+ ##### `npmVerifyPublishedTimeoutSeconds`<sup>Optional</sup> <a name="npmVerifyPublishedTimeoutSeconds" id="@taimos/projen.MonorepoProjectOptions.property.npmVerifyPublishedTimeoutSeconds"></a>
14798
+
14799
+ ```typescript
14800
+ public readonly npmVerifyPublishedTimeoutSeconds: number;
14801
+ ```
14802
+
14803
+ - *Type:* number
14804
+ - *Default:* 3600
14805
+
14806
+ How long to wait, in seconds, for the published package version to be available.
14807
+
14808
+ Requires `npmVerifyPublished` to be enabled.
14809
+
14810
+ ---
14811
+
14279
14812
  ##### `packageManager`<sup>Optional</sup> <a name="packageManager" id="@taimos/projen.MonorepoProjectOptions.property.packageManager"></a>
14280
14813
 
14281
14814
  ```typescript
@@ -14302,6 +14835,30 @@ The "name" in package.json.
14302
14835
 
14303
14836
  ---
14304
14837
 
14838
+ ##### `peerDependenciesMeta`<sup>Optional</sup> <a name="peerDependenciesMeta" id="@taimos/projen.MonorepoProjectOptions.property.peerDependenciesMeta"></a>
14839
+
14840
+ ```typescript
14841
+ public readonly peerDependenciesMeta: {[ key: string ]: PeerDependencyMeta};
14842
+ ```
14843
+
14844
+ - *Type:* {[ key: string ]: projen.javascript.PeerDependencyMeta}
14845
+ - *Default:* no `peerDependenciesMeta`
14846
+
14847
+ Additional information about how peer dependencies are used, rendered as `peerDependenciesMeta` in `package.json`. For example, this can mark peer dependencies as optional.
14848
+
14849
+ Each key must also be declared as a peer dependency.
14850
+
14851
+ > [https://docs.npmjs.com/cli/v11/configuring-npm/package-json#peerdependenciesmeta](https://docs.npmjs.com/cli/v11/configuring-npm/package-json#peerdependenciesmeta)
14852
+
14853
+ ---
14854
+
14855
+ *Example*
14856
+
14857
+ ```typescript
14858
+ { "aws-cdk-lib": { optional: true } }
14859
+ ```
14860
+
14861
+
14305
14862
  ##### `peerDependencyOptions`<sup>Optional</sup> <a name="peerDependencyOptions" id="@taimos/projen.MonorepoProjectOptions.property.peerDependencyOptions"></a>
14306
14863
 
14307
14864
  ```typescript
@@ -15346,6 +15903,28 @@ Enable Node.js package cache in GitHub workflows.
15346
15903
 
15347
15904
  ---
15348
15905
 
15906
+ ##### `workflowPermissions`<sup>Optional</sup> <a name="workflowPermissions" id="@taimos/projen.MonorepoProjectOptions.property.workflowPermissions"></a>
15907
+
15908
+ ```typescript
15909
+ public readonly workflowPermissions: JobPermissions;
15910
+ ```
15911
+
15912
+ - *Type:* projen.github.workflows.JobPermissions
15913
+ - *Default:* Use the job defaults and automatically inferred permissions.
15914
+
15915
+ Permissions for the main build, release and dependency upgrade jobs.
15916
+
15917
+ Defined scopes override the job defaults and automatically inferred permissions,
15918
+ including CodeArtifact and Codecov OIDC. Undefined scopes keep their defaults.
15919
+ Use `JobPermission.NONE` to explicitly remove a permission.
15920
+
15921
+ `buildWorkflowOptions.permissions` replaces this entire set, including automatic
15922
+ permissions. `depsUpgradeOptions.workflowOptions.permissions` overrides individual
15923
+ scopes. Applies to all release branches, but not to separate package, publishing,
15924
+ self-mutation or pull request creation jobs, or unrelated workflows.
15925
+
15926
+ ---
15927
+
15349
15928
  ##### `disableTsconfig`<sup>Optional</sup> <a name="disableTsconfig" id="@taimos/projen.MonorepoProjectOptions.property.disableTsconfig"></a>
15350
15929
 
15351
15930
  ```typescript
@@ -15715,6 +16294,34 @@ Only used when `assignApprover` is enabled.
15715
16294
 
15716
16295
  ---
15717
16296
 
16297
+ ##### `gitHooks`<sup>Optional</sup> <a name="gitHooks" id="@taimos/projen.MonorepoProjectOptions.property.gitHooks"></a>
16298
+
16299
+ ```typescript
16300
+ public readonly gitHooks: boolean;
16301
+ ```
16302
+
16303
+ - *Type:* boolean
16304
+ - *Default:* false
16305
+
16306
+ Whether to add local git hooks managed by Lefthook: a `lefthook.yml`, a root `prepare` script and a pinned `lefthook` devDependency (see `GitHooks`).
16307
+
16308
+ ---
16309
+
16310
+ ##### `gitHooksOptions`<sup>Optional</sup> <a name="gitHooksOptions" id="@taimos/projen.MonorepoProjectOptions.property.gitHooksOptions"></a>
16311
+
16312
+ ```typescript
16313
+ public readonly gitHooksOptions: GitHooksOptions;
16314
+ ```
16315
+
16316
+ - *Type:* <a href="#@taimos/projen.GitHooksOptions">GitHooksOptions</a>
16317
+ - *Default:* all checks enabled, first-commit types feat, fix, chore, docs, ci, spec
16318
+
16319
+ Options for the git hooks component.
16320
+
16321
+ Only used when `gitHooks` is enabled.
16322
+
16323
+ ---
16324
+
15718
16325
  ##### `gitleaks`<sup>Optional</sup> <a name="gitleaks" id="@taimos/projen.MonorepoProjectOptions.property.gitleaks"></a>
15719
16326
 
15720
16327
  ```typescript
@@ -16006,8 +16613,11 @@ const privateTaimosCdkAppOptions: PrivateTaimosCdkAppOptions = { ... }
16006
16613
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.npmRegistryUrl">npmRegistryUrl</a></code> | <code>string</code> | The base URL of the npm package registry. |
16007
16614
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.npmTokenSecret">npmTokenSecret</a></code> | <code>string</code> | GitHub secret which contains the NPM token to use when publishing packages. |
16008
16615
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.npmTrustedPublishing">npmTrustedPublishing</a></code> | <code>boolean</code> | Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work. |
16616
+ | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.npmVerifyPublished">npmVerifyPublished</a></code> | <code>boolean</code> | Wait until the published package version is available from the npm registry before the publish job completes. |
16617
+ | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.npmVerifyPublishedTimeoutSeconds">npmVerifyPublishedTimeoutSeconds</a></code> | <code>number</code> | How long to wait, in seconds, for the published package version to be available. |
16009
16618
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.packageManager">packageManager</a></code> | <code>projen.javascript.NodePackageManager</code> | The Node Package Manager used to execute scripts. |
16010
16619
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.packageName">packageName</a></code> | <code>string</code> | The "name" in package.json. |
16620
+ | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.peerDependenciesMeta">peerDependenciesMeta</a></code> | <code>{[ key: string ]: projen.javascript.PeerDependencyMeta}</code> | Additional information about how peer dependencies are used, rendered as `peerDependenciesMeta` in `package.json`. For example, this can mark peer dependencies as optional. |
16011
16621
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
16012
16622
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.peerDeps">peerDeps</a></code> | <code>string[]</code> | Peer dependencies for this module. |
16013
16623
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.pnpmOptions">pnpmOptions</a></code> | <code>projen.javascript.PnpmOptions</code> | Options for pnpm. |
@@ -16081,6 +16691,7 @@ const privateTaimosCdkAppOptions: PrivateTaimosCdkAppOptions = { ... }
16081
16691
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.workflowGitIdentity">workflowGitIdentity</a></code> | <code>projen.github.GitIdentity</code> | The git identity to use in workflows. |
16082
16692
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.workflowNodeVersion">workflowNodeVersion</a></code> | <code>string</code> | The node version used in GitHub Actions workflows. |
16083
16693
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.workflowPackageCache">workflowPackageCache</a></code> | <code>boolean</code> | Enable Node.js package cache in GitHub workflows. |
16694
+ | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.workflowPermissions">workflowPermissions</a></code> | <code>projen.github.workflows.JobPermissions</code> | Permissions for the main build, release and dependency upgrade jobs. |
16084
16695
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.disableTsconfig">disableTsconfig</a></code> | <code>boolean</code> | Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). |
16085
16696
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.disableTsconfigDev">disableTsconfigDev</a></code> | <code>boolean</code> | Do not generate a development tsconfig file. |
16086
16697
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.docgen">docgen</a></code> | <code>boolean</code> | Docgen by Typedoc. |
@@ -16106,6 +16717,7 @@ const privateTaimosCdkAppOptions: PrivateTaimosCdkAppOptions = { ... }
16106
16717
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.context">context</a></code> | <code>{[ key: string ]: any}</code> | Additional context to include in `cdk.json`. |
16107
16718
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.featureFlags">featureFlags</a></code> | <code>projen.awscdk.ICdkFeatureFlags</code> | Feature flags that should be enabled in `cdk.json`. |
16108
16719
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.requireApproval">requireApproval</a></code> | <code>projen.awscdk.ApprovalLevel</code> | To protect you against unintended changes that affect your security posture, the AWS CDK Toolkit prompts you to approve security-related changes before deploying them. |
16720
+ | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.versionReporting">versionReporting</a></code> | <code>boolean</code> | Enable AWS CDK library version reporting. |
16109
16721
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.watchExcludes">watchExcludes</a></code> | <code>string[]</code> | Glob patterns to exclude from `cdk watch`. |
16110
16722
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.watchIncludes">watchIncludes</a></code> | <code>string[]</code> | Glob patterns to include in `cdk watch`. |
16111
16723
  | <code><a href="#@taimos/projen.PrivateTaimosCdkAppOptions.property.cdkVersion">cdkVersion</a></code> | <code>string</code> | Minimum version of the AWS CDK to depend on. |
@@ -17022,7 +17634,8 @@ public readonly npmRegistryUrl: string;
17022
17634
 
17023
17635
  The base URL of the npm package registry.
17024
17636
 
17025
- Must be a URL (e.g. start with "https://" or "http://")
17637
+ Must be a URL (e.g. start with "https://" or "http://").
17638
+ A trailing slash is added if missing.
17026
17639
 
17027
17640
  ---
17028
17641
 
@@ -17052,6 +17665,36 @@ Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on
17052
17665
 
17053
17666
  ---
17054
17667
 
17668
+ ##### `npmVerifyPublished`<sup>Optional</sup> <a name="npmVerifyPublished" id="@taimos/projen.PrivateTaimosCdkAppOptions.property.npmVerifyPublished"></a>
17669
+
17670
+ ```typescript
17671
+ public readonly npmVerifyPublished: boolean;
17672
+ ```
17673
+
17674
+ - *Type:* boolean
17675
+ - *Default:* false
17676
+
17677
+ Wait until the published package version is available from the npm registry before the publish job completes.
17678
+
17679
+ Enable this when packages that depend on the published package are released right after.
17680
+
17681
+ ---
17682
+
17683
+ ##### `npmVerifyPublishedTimeoutSeconds`<sup>Optional</sup> <a name="npmVerifyPublishedTimeoutSeconds" id="@taimos/projen.PrivateTaimosCdkAppOptions.property.npmVerifyPublishedTimeoutSeconds"></a>
17684
+
17685
+ ```typescript
17686
+ public readonly npmVerifyPublishedTimeoutSeconds: number;
17687
+ ```
17688
+
17689
+ - *Type:* number
17690
+ - *Default:* 3600
17691
+
17692
+ How long to wait, in seconds, for the published package version to be available.
17693
+
17694
+ Requires `npmVerifyPublished` to be enabled.
17695
+
17696
+ ---
17697
+
17055
17698
  ##### `packageManager`<sup>Optional</sup> <a name="packageManager" id="@taimos/projen.PrivateTaimosCdkAppOptions.property.packageManager"></a>
17056
17699
 
17057
17700
  ```typescript
@@ -17078,6 +17721,30 @@ The "name" in package.json.
17078
17721
 
17079
17722
  ---
17080
17723
 
17724
+ ##### `peerDependenciesMeta`<sup>Optional</sup> <a name="peerDependenciesMeta" id="@taimos/projen.PrivateTaimosCdkAppOptions.property.peerDependenciesMeta"></a>
17725
+
17726
+ ```typescript
17727
+ public readonly peerDependenciesMeta: {[ key: string ]: PeerDependencyMeta};
17728
+ ```
17729
+
17730
+ - *Type:* {[ key: string ]: projen.javascript.PeerDependencyMeta}
17731
+ - *Default:* no `peerDependenciesMeta`
17732
+
17733
+ Additional information about how peer dependencies are used, rendered as `peerDependenciesMeta` in `package.json`. For example, this can mark peer dependencies as optional.
17734
+
17735
+ Each key must also be declared as a peer dependency.
17736
+
17737
+ > [https://docs.npmjs.com/cli/v11/configuring-npm/package-json#peerdependenciesmeta](https://docs.npmjs.com/cli/v11/configuring-npm/package-json#peerdependenciesmeta)
17738
+
17739
+ ---
17740
+
17741
+ *Example*
17742
+
17743
+ ```typescript
17744
+ { "aws-cdk-lib": { optional: true } }
17745
+ ```
17746
+
17747
+
17081
17748
  ##### `peerDependencyOptions`<sup>Optional</sup> <a name="peerDependencyOptions" id="@taimos/projen.PrivateTaimosCdkAppOptions.property.peerDependencyOptions"></a>
17082
17749
 
17083
17750
  ```typescript
@@ -18122,6 +18789,28 @@ Enable Node.js package cache in GitHub workflows.
18122
18789
 
18123
18790
  ---
18124
18791
 
18792
+ ##### `workflowPermissions`<sup>Optional</sup> <a name="workflowPermissions" id="@taimos/projen.PrivateTaimosCdkAppOptions.property.workflowPermissions"></a>
18793
+
18794
+ ```typescript
18795
+ public readonly workflowPermissions: JobPermissions;
18796
+ ```
18797
+
18798
+ - *Type:* projen.github.workflows.JobPermissions
18799
+ - *Default:* Use the job defaults and automatically inferred permissions.
18800
+
18801
+ Permissions for the main build, release and dependency upgrade jobs.
18802
+
18803
+ Defined scopes override the job defaults and automatically inferred permissions,
18804
+ including CodeArtifact and Codecov OIDC. Undefined scopes keep their defaults.
18805
+ Use `JobPermission.NONE` to explicitly remove a permission.
18806
+
18807
+ `buildWorkflowOptions.permissions` replaces this entire set, including automatic
18808
+ permissions. `depsUpgradeOptions.workflowOptions.permissions` overrides individual
18809
+ scopes. Applies to all release branches, but not to separate package, publishing,
18810
+ self-mutation or pull request creation jobs, or unrelated workflows.
18811
+
18812
+ ---
18813
+
18125
18814
  ##### `disableTsconfig`<sup>Optional</sup> <a name="disableTsconfig" id="@taimos/projen.PrivateTaimosCdkAppOptions.property.disableTsconfig"></a>
18126
18815
 
18127
18816
  ```typescript
@@ -18479,6 +19168,21 @@ To protect you against unintended changes that affect your security posture, the
18479
19168
 
18480
19169
  ---
18481
19170
 
19171
+ ##### `versionReporting`<sup>Optional</sup> <a name="versionReporting" id="@taimos/projen.PrivateTaimosCdkAppOptions.property.versionReporting"></a>
19172
+
19173
+ ```typescript
19174
+ public readonly versionReporting: boolean;
19175
+ ```
19176
+
19177
+ - *Type:* boolean
19178
+ - *Default:* use the AWS CDK default
19179
+
19180
+ Enable AWS CDK library version reporting.
19181
+
19182
+ > [https://docs.aws.amazon.com/cdk/v2/guide/usage-data.html](https://docs.aws.amazon.com/cdk/v2/guide/usage-data.html)
19183
+
19184
+ ---
19185
+
18482
19186
  ##### `watchExcludes`<sup>Optional</sup> <a name="watchExcludes" id="@taimos/projen.PrivateTaimosCdkAppOptions.property.watchExcludes"></a>
18483
19187
 
18484
19188
  ```typescript
@@ -18779,8 +19483,11 @@ const productionTaimosCdkAppOptions: ProductionTaimosCdkAppOptions = { ... }
18779
19483
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.npmRegistryUrl">npmRegistryUrl</a></code> | <code>string</code> | The base URL of the npm package registry. |
18780
19484
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.npmTokenSecret">npmTokenSecret</a></code> | <code>string</code> | GitHub secret which contains the NPM token to use when publishing packages. |
18781
19485
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.npmTrustedPublishing">npmTrustedPublishing</a></code> | <code>boolean</code> | Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work. |
19486
+ | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.npmVerifyPublished">npmVerifyPublished</a></code> | <code>boolean</code> | Wait until the published package version is available from the npm registry before the publish job completes. |
19487
+ | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.npmVerifyPublishedTimeoutSeconds">npmVerifyPublishedTimeoutSeconds</a></code> | <code>number</code> | How long to wait, in seconds, for the published package version to be available. |
18782
19488
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.packageManager">packageManager</a></code> | <code>projen.javascript.NodePackageManager</code> | The Node Package Manager used to execute scripts. |
18783
19489
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.packageName">packageName</a></code> | <code>string</code> | The "name" in package.json. |
19490
+ | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.peerDependenciesMeta">peerDependenciesMeta</a></code> | <code>{[ key: string ]: projen.javascript.PeerDependencyMeta}</code> | Additional information about how peer dependencies are used, rendered as `peerDependenciesMeta` in `package.json`. For example, this can mark peer dependencies as optional. |
18784
19491
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
18785
19492
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.peerDeps">peerDeps</a></code> | <code>string[]</code> | Peer dependencies for this module. |
18786
19493
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.pnpmOptions">pnpmOptions</a></code> | <code>projen.javascript.PnpmOptions</code> | Options for pnpm. |
@@ -18854,6 +19561,7 @@ const productionTaimosCdkAppOptions: ProductionTaimosCdkAppOptions = { ... }
18854
19561
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.workflowGitIdentity">workflowGitIdentity</a></code> | <code>projen.github.GitIdentity</code> | The git identity to use in workflows. |
18855
19562
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.workflowNodeVersion">workflowNodeVersion</a></code> | <code>string</code> | The node version used in GitHub Actions workflows. |
18856
19563
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.workflowPackageCache">workflowPackageCache</a></code> | <code>boolean</code> | Enable Node.js package cache in GitHub workflows. |
19564
+ | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.workflowPermissions">workflowPermissions</a></code> | <code>projen.github.workflows.JobPermissions</code> | Permissions for the main build, release and dependency upgrade jobs. |
18857
19565
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.disableTsconfig">disableTsconfig</a></code> | <code>boolean</code> | Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). |
18858
19566
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.disableTsconfigDev">disableTsconfigDev</a></code> | <code>boolean</code> | Do not generate a development tsconfig file. |
18859
19567
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.docgen">docgen</a></code> | <code>boolean</code> | Docgen by Typedoc. |
@@ -18879,6 +19587,7 @@ const productionTaimosCdkAppOptions: ProductionTaimosCdkAppOptions = { ... }
18879
19587
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.context">context</a></code> | <code>{[ key: string ]: any}</code> | Additional context to include in `cdk.json`. |
18880
19588
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.featureFlags">featureFlags</a></code> | <code>projen.awscdk.ICdkFeatureFlags</code> | Feature flags that should be enabled in `cdk.json`. |
18881
19589
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.requireApproval">requireApproval</a></code> | <code>projen.awscdk.ApprovalLevel</code> | To protect you against unintended changes that affect your security posture, the AWS CDK Toolkit prompts you to approve security-related changes before deploying them. |
19590
+ | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.versionReporting">versionReporting</a></code> | <code>boolean</code> | Enable AWS CDK library version reporting. |
18882
19591
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.watchExcludes">watchExcludes</a></code> | <code>string[]</code> | Glob patterns to exclude from `cdk watch`. |
18883
19592
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.watchIncludes">watchIncludes</a></code> | <code>string[]</code> | Glob patterns to include in `cdk watch`. |
18884
19593
  | <code><a href="#@taimos/projen.ProductionTaimosCdkAppOptions.property.cdkVersion">cdkVersion</a></code> | <code>string</code> | Minimum version of the AWS CDK to depend on. |
@@ -19799,7 +20508,8 @@ public readonly npmRegistryUrl: string;
19799
20508
 
19800
20509
  The base URL of the npm package registry.
19801
20510
 
19802
- Must be a URL (e.g. start with "https://" or "http://")
20511
+ Must be a URL (e.g. start with "https://" or "http://").
20512
+ A trailing slash is added if missing.
19803
20513
 
19804
20514
  ---
19805
20515
 
@@ -19829,6 +20539,36 @@ Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on
19829
20539
 
19830
20540
  ---
19831
20541
 
20542
+ ##### `npmVerifyPublished`<sup>Optional</sup> <a name="npmVerifyPublished" id="@taimos/projen.ProductionTaimosCdkAppOptions.property.npmVerifyPublished"></a>
20543
+
20544
+ ```typescript
20545
+ public readonly npmVerifyPublished: boolean;
20546
+ ```
20547
+
20548
+ - *Type:* boolean
20549
+ - *Default:* false
20550
+
20551
+ Wait until the published package version is available from the npm registry before the publish job completes.
20552
+
20553
+ Enable this when packages that depend on the published package are released right after.
20554
+
20555
+ ---
20556
+
20557
+ ##### `npmVerifyPublishedTimeoutSeconds`<sup>Optional</sup> <a name="npmVerifyPublishedTimeoutSeconds" id="@taimos/projen.ProductionTaimosCdkAppOptions.property.npmVerifyPublishedTimeoutSeconds"></a>
20558
+
20559
+ ```typescript
20560
+ public readonly npmVerifyPublishedTimeoutSeconds: number;
20561
+ ```
20562
+
20563
+ - *Type:* number
20564
+ - *Default:* 3600
20565
+
20566
+ How long to wait, in seconds, for the published package version to be available.
20567
+
20568
+ Requires `npmVerifyPublished` to be enabled.
20569
+
20570
+ ---
20571
+
19832
20572
  ##### `packageManager`<sup>Optional</sup> <a name="packageManager" id="@taimos/projen.ProductionTaimosCdkAppOptions.property.packageManager"></a>
19833
20573
 
19834
20574
  ```typescript
@@ -19855,6 +20595,30 @@ The "name" in package.json.
19855
20595
 
19856
20596
  ---
19857
20597
 
20598
+ ##### `peerDependenciesMeta`<sup>Optional</sup> <a name="peerDependenciesMeta" id="@taimos/projen.ProductionTaimosCdkAppOptions.property.peerDependenciesMeta"></a>
20599
+
20600
+ ```typescript
20601
+ public readonly peerDependenciesMeta: {[ key: string ]: PeerDependencyMeta};
20602
+ ```
20603
+
20604
+ - *Type:* {[ key: string ]: projen.javascript.PeerDependencyMeta}
20605
+ - *Default:* no `peerDependenciesMeta`
20606
+
20607
+ Additional information about how peer dependencies are used, rendered as `peerDependenciesMeta` in `package.json`. For example, this can mark peer dependencies as optional.
20608
+
20609
+ Each key must also be declared as a peer dependency.
20610
+
20611
+ > [https://docs.npmjs.com/cli/v11/configuring-npm/package-json#peerdependenciesmeta](https://docs.npmjs.com/cli/v11/configuring-npm/package-json#peerdependenciesmeta)
20612
+
20613
+ ---
20614
+
20615
+ *Example*
20616
+
20617
+ ```typescript
20618
+ { "aws-cdk-lib": { optional: true } }
20619
+ ```
20620
+
20621
+
19858
20622
  ##### `peerDependencyOptions`<sup>Optional</sup> <a name="peerDependencyOptions" id="@taimos/projen.ProductionTaimosCdkAppOptions.property.peerDependencyOptions"></a>
19859
20623
 
19860
20624
  ```typescript
@@ -20899,6 +21663,28 @@ Enable Node.js package cache in GitHub workflows.
20899
21663
 
20900
21664
  ---
20901
21665
 
21666
+ ##### `workflowPermissions`<sup>Optional</sup> <a name="workflowPermissions" id="@taimos/projen.ProductionTaimosCdkAppOptions.property.workflowPermissions"></a>
21667
+
21668
+ ```typescript
21669
+ public readonly workflowPermissions: JobPermissions;
21670
+ ```
21671
+
21672
+ - *Type:* projen.github.workflows.JobPermissions
21673
+ - *Default:* Use the job defaults and automatically inferred permissions.
21674
+
21675
+ Permissions for the main build, release and dependency upgrade jobs.
21676
+
21677
+ Defined scopes override the job defaults and automatically inferred permissions,
21678
+ including CodeArtifact and Codecov OIDC. Undefined scopes keep their defaults.
21679
+ Use `JobPermission.NONE` to explicitly remove a permission.
21680
+
21681
+ `buildWorkflowOptions.permissions` replaces this entire set, including automatic
21682
+ permissions. `depsUpgradeOptions.workflowOptions.permissions` overrides individual
21683
+ scopes. Applies to all release branches, but not to separate package, publishing,
21684
+ self-mutation or pull request creation jobs, or unrelated workflows.
21685
+
21686
+ ---
21687
+
20902
21688
  ##### `disableTsconfig`<sup>Optional</sup> <a name="disableTsconfig" id="@taimos/projen.ProductionTaimosCdkAppOptions.property.disableTsconfig"></a>
20903
21689
 
20904
21690
  ```typescript
@@ -21256,6 +22042,21 @@ To protect you against unintended changes that affect your security posture, the
21256
22042
 
21257
22043
  ---
21258
22044
 
22045
+ ##### `versionReporting`<sup>Optional</sup> <a name="versionReporting" id="@taimos/projen.ProductionTaimosCdkAppOptions.property.versionReporting"></a>
22046
+
22047
+ ```typescript
22048
+ public readonly versionReporting: boolean;
22049
+ ```
22050
+
22051
+ - *Type:* boolean
22052
+ - *Default:* use the AWS CDK default
22053
+
22054
+ Enable AWS CDK library version reporting.
22055
+
22056
+ > [https://docs.aws.amazon.com/cdk/v2/guide/usage-data.html](https://docs.aws.amazon.com/cdk/v2/guide/usage-data.html)
22057
+
22058
+ ---
22059
+
21259
22060
  ##### `watchExcludes`<sup>Optional</sup> <a name="watchExcludes" id="@taimos/projen.ProductionTaimosCdkAppOptions.property.watchExcludes"></a>
21260
22061
 
21261
22062
  ```typescript
@@ -21650,8 +22451,11 @@ const taimosApiLibraryOptions: TaimosApiLibraryOptions = { ... }
21650
22451
  | <code><a href="#@taimos/projen.TaimosApiLibraryOptions.property.npmRegistryUrl">npmRegistryUrl</a></code> | <code>string</code> | The base URL of the npm package registry. |
21651
22452
  | <code><a href="#@taimos/projen.TaimosApiLibraryOptions.property.npmTokenSecret">npmTokenSecret</a></code> | <code>string</code> | GitHub secret which contains the NPM token to use when publishing packages. |
21652
22453
  | <code><a href="#@taimos/projen.TaimosApiLibraryOptions.property.npmTrustedPublishing">npmTrustedPublishing</a></code> | <code>boolean</code> | Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work. |
22454
+ | <code><a href="#@taimos/projen.TaimosApiLibraryOptions.property.npmVerifyPublished">npmVerifyPublished</a></code> | <code>boolean</code> | Wait until the published package version is available from the npm registry before the publish job completes. |
22455
+ | <code><a href="#@taimos/projen.TaimosApiLibraryOptions.property.npmVerifyPublishedTimeoutSeconds">npmVerifyPublishedTimeoutSeconds</a></code> | <code>number</code> | How long to wait, in seconds, for the published package version to be available. |
21653
22456
  | <code><a href="#@taimos/projen.TaimosApiLibraryOptions.property.packageManager">packageManager</a></code> | <code>projen.javascript.NodePackageManager</code> | The Node Package Manager used to execute scripts. |
21654
22457
  | <code><a href="#@taimos/projen.TaimosApiLibraryOptions.property.packageName">packageName</a></code> | <code>string</code> | The "name" in package.json. |
22458
+ | <code><a href="#@taimos/projen.TaimosApiLibraryOptions.property.peerDependenciesMeta">peerDependenciesMeta</a></code> | <code>{[ key: string ]: projen.javascript.PeerDependencyMeta}</code> | Additional information about how peer dependencies are used, rendered as `peerDependenciesMeta` in `package.json`. For example, this can mark peer dependencies as optional. |
21655
22459
  | <code><a href="#@taimos/projen.TaimosApiLibraryOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
21656
22460
  | <code><a href="#@taimos/projen.TaimosApiLibraryOptions.property.peerDeps">peerDeps</a></code> | <code>string[]</code> | Peer dependencies for this module. |
21657
22461
  | <code><a href="#@taimos/projen.TaimosApiLibraryOptions.property.pnpmOptions">pnpmOptions</a></code> | <code>projen.javascript.PnpmOptions</code> | Options for pnpm. |
@@ -21725,6 +22529,7 @@ const taimosApiLibraryOptions: TaimosApiLibraryOptions = { ... }
21725
22529
  | <code><a href="#@taimos/projen.TaimosApiLibraryOptions.property.workflowGitIdentity">workflowGitIdentity</a></code> | <code>projen.github.GitIdentity</code> | The git identity to use in workflows. |
21726
22530
  | <code><a href="#@taimos/projen.TaimosApiLibraryOptions.property.workflowNodeVersion">workflowNodeVersion</a></code> | <code>string</code> | The node version used in GitHub Actions workflows. |
21727
22531
  | <code><a href="#@taimos/projen.TaimosApiLibraryOptions.property.workflowPackageCache">workflowPackageCache</a></code> | <code>boolean</code> | Enable Node.js package cache in GitHub workflows. |
22532
+ | <code><a href="#@taimos/projen.TaimosApiLibraryOptions.property.workflowPermissions">workflowPermissions</a></code> | <code>projen.github.workflows.JobPermissions</code> | Permissions for the main build, release and dependency upgrade jobs. |
21728
22533
  | <code><a href="#@taimos/projen.TaimosApiLibraryOptions.property.disableTsconfig">disableTsconfig</a></code> | <code>boolean</code> | Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). |
21729
22534
  | <code><a href="#@taimos/projen.TaimosApiLibraryOptions.property.disableTsconfigDev">disableTsconfigDev</a></code> | <code>boolean</code> | Do not generate a development tsconfig file. |
21730
22535
  | <code><a href="#@taimos/projen.TaimosApiLibraryOptions.property.docgen">docgen</a></code> | <code>boolean</code> | Docgen by Typedoc. |
@@ -22648,7 +23453,8 @@ public readonly npmRegistryUrl: string;
22648
23453
 
22649
23454
  The base URL of the npm package registry.
22650
23455
 
22651
- Must be a URL (e.g. start with "https://" or "http://")
23456
+ Must be a URL (e.g. start with "https://" or "http://").
23457
+ A trailing slash is added if missing.
22652
23458
 
22653
23459
  ---
22654
23460
 
@@ -22678,6 +23484,36 @@ Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on
22678
23484
 
22679
23485
  ---
22680
23486
 
23487
+ ##### `npmVerifyPublished`<sup>Optional</sup> <a name="npmVerifyPublished" id="@taimos/projen.TaimosApiLibraryOptions.property.npmVerifyPublished"></a>
23488
+
23489
+ ```typescript
23490
+ public readonly npmVerifyPublished: boolean;
23491
+ ```
23492
+
23493
+ - *Type:* boolean
23494
+ - *Default:* false
23495
+
23496
+ Wait until the published package version is available from the npm registry before the publish job completes.
23497
+
23498
+ Enable this when packages that depend on the published package are released right after.
23499
+
23500
+ ---
23501
+
23502
+ ##### `npmVerifyPublishedTimeoutSeconds`<sup>Optional</sup> <a name="npmVerifyPublishedTimeoutSeconds" id="@taimos/projen.TaimosApiLibraryOptions.property.npmVerifyPublishedTimeoutSeconds"></a>
23503
+
23504
+ ```typescript
23505
+ public readonly npmVerifyPublishedTimeoutSeconds: number;
23506
+ ```
23507
+
23508
+ - *Type:* number
23509
+ - *Default:* 3600
23510
+
23511
+ How long to wait, in seconds, for the published package version to be available.
23512
+
23513
+ Requires `npmVerifyPublished` to be enabled.
23514
+
23515
+ ---
23516
+
22681
23517
  ##### `packageManager`<sup>Optional</sup> <a name="packageManager" id="@taimos/projen.TaimosApiLibraryOptions.property.packageManager"></a>
22682
23518
 
22683
23519
  ```typescript
@@ -22704,6 +23540,30 @@ The "name" in package.json.
22704
23540
 
22705
23541
  ---
22706
23542
 
23543
+ ##### `peerDependenciesMeta`<sup>Optional</sup> <a name="peerDependenciesMeta" id="@taimos/projen.TaimosApiLibraryOptions.property.peerDependenciesMeta"></a>
23544
+
23545
+ ```typescript
23546
+ public readonly peerDependenciesMeta: {[ key: string ]: PeerDependencyMeta};
23547
+ ```
23548
+
23549
+ - *Type:* {[ key: string ]: projen.javascript.PeerDependencyMeta}
23550
+ - *Default:* no `peerDependenciesMeta`
23551
+
23552
+ Additional information about how peer dependencies are used, rendered as `peerDependenciesMeta` in `package.json`. For example, this can mark peer dependencies as optional.
23553
+
23554
+ Each key must also be declared as a peer dependency.
23555
+
23556
+ > [https://docs.npmjs.com/cli/v11/configuring-npm/package-json#peerdependenciesmeta](https://docs.npmjs.com/cli/v11/configuring-npm/package-json#peerdependenciesmeta)
23557
+
23558
+ ---
23559
+
23560
+ *Example*
23561
+
23562
+ ```typescript
23563
+ { "aws-cdk-lib": { optional: true } }
23564
+ ```
23565
+
23566
+
22707
23567
  ##### `peerDependencyOptions`<sup>Optional</sup> <a name="peerDependencyOptions" id="@taimos/projen.TaimosApiLibraryOptions.property.peerDependencyOptions"></a>
22708
23568
 
22709
23569
  ```typescript
@@ -23748,6 +24608,28 @@ Enable Node.js package cache in GitHub workflows.
23748
24608
 
23749
24609
  ---
23750
24610
 
24611
+ ##### `workflowPermissions`<sup>Optional</sup> <a name="workflowPermissions" id="@taimos/projen.TaimosApiLibraryOptions.property.workflowPermissions"></a>
24612
+
24613
+ ```typescript
24614
+ public readonly workflowPermissions: JobPermissions;
24615
+ ```
24616
+
24617
+ - *Type:* projen.github.workflows.JobPermissions
24618
+ - *Default:* Use the job defaults and automatically inferred permissions.
24619
+
24620
+ Permissions for the main build, release and dependency upgrade jobs.
24621
+
24622
+ Defined scopes override the job defaults and automatically inferred permissions,
24623
+ including CodeArtifact and Codecov OIDC. Undefined scopes keep their defaults.
24624
+ Use `JobPermission.NONE` to explicitly remove a permission.
24625
+
24626
+ `buildWorkflowOptions.permissions` replaces this entire set, including automatic
24627
+ permissions. `depsUpgradeOptions.workflowOptions.permissions` overrides individual
24628
+ scopes. Applies to all release branches, but not to separate package, publishing,
24629
+ self-mutation or pull request creation jobs, or unrelated workflows.
24630
+
24631
+ ---
24632
+
23751
24633
  ##### `disableTsconfig`<sup>Optional</sup> <a name="disableTsconfig" id="@taimos/projen.TaimosApiLibraryOptions.property.disableTsconfig"></a>
23752
24634
 
23753
24635
  ```typescript
@@ -24159,8 +25041,11 @@ const taimosCdkAppOptions: TaimosCdkAppOptions = { ... }
24159
25041
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.npmRegistryUrl">npmRegistryUrl</a></code> | <code>string</code> | The base URL of the npm package registry. |
24160
25042
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.npmTokenSecret">npmTokenSecret</a></code> | <code>string</code> | GitHub secret which contains the NPM token to use when publishing packages. |
24161
25043
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.npmTrustedPublishing">npmTrustedPublishing</a></code> | <code>boolean</code> | Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work. |
25044
+ | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.npmVerifyPublished">npmVerifyPublished</a></code> | <code>boolean</code> | Wait until the published package version is available from the npm registry before the publish job completes. |
25045
+ | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.npmVerifyPublishedTimeoutSeconds">npmVerifyPublishedTimeoutSeconds</a></code> | <code>number</code> | How long to wait, in seconds, for the published package version to be available. |
24162
25046
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.packageManager">packageManager</a></code> | <code>projen.javascript.NodePackageManager</code> | The Node Package Manager used to execute scripts. |
24163
25047
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.packageName">packageName</a></code> | <code>string</code> | The "name" in package.json. |
25048
+ | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.peerDependenciesMeta">peerDependenciesMeta</a></code> | <code>{[ key: string ]: projen.javascript.PeerDependencyMeta}</code> | Additional information about how peer dependencies are used, rendered as `peerDependenciesMeta` in `package.json`. For example, this can mark peer dependencies as optional. |
24164
25049
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
24165
25050
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.peerDeps">peerDeps</a></code> | <code>string[]</code> | Peer dependencies for this module. |
24166
25051
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.pnpmOptions">pnpmOptions</a></code> | <code>projen.javascript.PnpmOptions</code> | Options for pnpm. |
@@ -24234,6 +25119,7 @@ const taimosCdkAppOptions: TaimosCdkAppOptions = { ... }
24234
25119
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.workflowGitIdentity">workflowGitIdentity</a></code> | <code>projen.github.GitIdentity</code> | The git identity to use in workflows. |
24235
25120
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.workflowNodeVersion">workflowNodeVersion</a></code> | <code>string</code> | The node version used in GitHub Actions workflows. |
24236
25121
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.workflowPackageCache">workflowPackageCache</a></code> | <code>boolean</code> | Enable Node.js package cache in GitHub workflows. |
25122
+ | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.workflowPermissions">workflowPermissions</a></code> | <code>projen.github.workflows.JobPermissions</code> | Permissions for the main build, release and dependency upgrade jobs. |
24237
25123
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.disableTsconfig">disableTsconfig</a></code> | <code>boolean</code> | Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). |
24238
25124
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.disableTsconfigDev">disableTsconfigDev</a></code> | <code>boolean</code> | Do not generate a development tsconfig file. |
24239
25125
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.docgen">docgen</a></code> | <code>boolean</code> | Docgen by Typedoc. |
@@ -24259,6 +25145,7 @@ const taimosCdkAppOptions: TaimosCdkAppOptions = { ... }
24259
25145
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.context">context</a></code> | <code>{[ key: string ]: any}</code> | Additional context to include in `cdk.json`. |
24260
25146
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.featureFlags">featureFlags</a></code> | <code>projen.awscdk.ICdkFeatureFlags</code> | Feature flags that should be enabled in `cdk.json`. |
24261
25147
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.requireApproval">requireApproval</a></code> | <code>projen.awscdk.ApprovalLevel</code> | To protect you against unintended changes that affect your security posture, the AWS CDK Toolkit prompts you to approve security-related changes before deploying them. |
25148
+ | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.versionReporting">versionReporting</a></code> | <code>boolean</code> | Enable AWS CDK library version reporting. |
24262
25149
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.watchExcludes">watchExcludes</a></code> | <code>string[]</code> | Glob patterns to exclude from `cdk watch`. |
24263
25150
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.watchIncludes">watchIncludes</a></code> | <code>string[]</code> | Glob patterns to include in `cdk watch`. |
24264
25151
  | <code><a href="#@taimos/projen.TaimosCdkAppOptions.property.cdkVersion">cdkVersion</a></code> | <code>string</code> | Minimum version of the AWS CDK to depend on. |
@@ -25175,7 +26062,8 @@ public readonly npmRegistryUrl: string;
25175
26062
 
25176
26063
  The base URL of the npm package registry.
25177
26064
 
25178
- Must be a URL (e.g. start with "https://" or "http://")
26065
+ Must be a URL (e.g. start with "https://" or "http://").
26066
+ A trailing slash is added if missing.
25179
26067
 
25180
26068
  ---
25181
26069
 
@@ -25205,6 +26093,36 @@ Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on
25205
26093
 
25206
26094
  ---
25207
26095
 
26096
+ ##### `npmVerifyPublished`<sup>Optional</sup> <a name="npmVerifyPublished" id="@taimos/projen.TaimosCdkAppOptions.property.npmVerifyPublished"></a>
26097
+
26098
+ ```typescript
26099
+ public readonly npmVerifyPublished: boolean;
26100
+ ```
26101
+
26102
+ - *Type:* boolean
26103
+ - *Default:* false
26104
+
26105
+ Wait until the published package version is available from the npm registry before the publish job completes.
26106
+
26107
+ Enable this when packages that depend on the published package are released right after.
26108
+
26109
+ ---
26110
+
26111
+ ##### `npmVerifyPublishedTimeoutSeconds`<sup>Optional</sup> <a name="npmVerifyPublishedTimeoutSeconds" id="@taimos/projen.TaimosCdkAppOptions.property.npmVerifyPublishedTimeoutSeconds"></a>
26112
+
26113
+ ```typescript
26114
+ public readonly npmVerifyPublishedTimeoutSeconds: number;
26115
+ ```
26116
+
26117
+ - *Type:* number
26118
+ - *Default:* 3600
26119
+
26120
+ How long to wait, in seconds, for the published package version to be available.
26121
+
26122
+ Requires `npmVerifyPublished` to be enabled.
26123
+
26124
+ ---
26125
+
25208
26126
  ##### `packageManager`<sup>Optional</sup> <a name="packageManager" id="@taimos/projen.TaimosCdkAppOptions.property.packageManager"></a>
25209
26127
 
25210
26128
  ```typescript
@@ -25231,6 +26149,30 @@ The "name" in package.json.
25231
26149
 
25232
26150
  ---
25233
26151
 
26152
+ ##### `peerDependenciesMeta`<sup>Optional</sup> <a name="peerDependenciesMeta" id="@taimos/projen.TaimosCdkAppOptions.property.peerDependenciesMeta"></a>
26153
+
26154
+ ```typescript
26155
+ public readonly peerDependenciesMeta: {[ key: string ]: PeerDependencyMeta};
26156
+ ```
26157
+
26158
+ - *Type:* {[ key: string ]: projen.javascript.PeerDependencyMeta}
26159
+ - *Default:* no `peerDependenciesMeta`
26160
+
26161
+ Additional information about how peer dependencies are used, rendered as `peerDependenciesMeta` in `package.json`. For example, this can mark peer dependencies as optional.
26162
+
26163
+ Each key must also be declared as a peer dependency.
26164
+
26165
+ > [https://docs.npmjs.com/cli/v11/configuring-npm/package-json#peerdependenciesmeta](https://docs.npmjs.com/cli/v11/configuring-npm/package-json#peerdependenciesmeta)
26166
+
26167
+ ---
26168
+
26169
+ *Example*
26170
+
26171
+ ```typescript
26172
+ { "aws-cdk-lib": { optional: true } }
26173
+ ```
26174
+
26175
+
25234
26176
  ##### `peerDependencyOptions`<sup>Optional</sup> <a name="peerDependencyOptions" id="@taimos/projen.TaimosCdkAppOptions.property.peerDependencyOptions"></a>
25235
26177
 
25236
26178
  ```typescript
@@ -26275,6 +27217,28 @@ Enable Node.js package cache in GitHub workflows.
26275
27217
 
26276
27218
  ---
26277
27219
 
27220
+ ##### `workflowPermissions`<sup>Optional</sup> <a name="workflowPermissions" id="@taimos/projen.TaimosCdkAppOptions.property.workflowPermissions"></a>
27221
+
27222
+ ```typescript
27223
+ public readonly workflowPermissions: JobPermissions;
27224
+ ```
27225
+
27226
+ - *Type:* projen.github.workflows.JobPermissions
27227
+ - *Default:* Use the job defaults and automatically inferred permissions.
27228
+
27229
+ Permissions for the main build, release and dependency upgrade jobs.
27230
+
27231
+ Defined scopes override the job defaults and automatically inferred permissions,
27232
+ including CodeArtifact and Codecov OIDC. Undefined scopes keep their defaults.
27233
+ Use `JobPermission.NONE` to explicitly remove a permission.
27234
+
27235
+ `buildWorkflowOptions.permissions` replaces this entire set, including automatic
27236
+ permissions. `depsUpgradeOptions.workflowOptions.permissions` overrides individual
27237
+ scopes. Applies to all release branches, but not to separate package, publishing,
27238
+ self-mutation or pull request creation jobs, or unrelated workflows.
27239
+
27240
+ ---
27241
+
26278
27242
  ##### `disableTsconfig`<sup>Optional</sup> <a name="disableTsconfig" id="@taimos/projen.TaimosCdkAppOptions.property.disableTsconfig"></a>
26279
27243
 
26280
27244
  ```typescript
@@ -26632,6 +27596,21 @@ To protect you against unintended changes that affect your security posture, the
26632
27596
 
26633
27597
  ---
26634
27598
 
27599
+ ##### `versionReporting`<sup>Optional</sup> <a name="versionReporting" id="@taimos/projen.TaimosCdkAppOptions.property.versionReporting"></a>
27600
+
27601
+ ```typescript
27602
+ public readonly versionReporting: boolean;
27603
+ ```
27604
+
27605
+ - *Type:* boolean
27606
+ - *Default:* use the AWS CDK default
27607
+
27608
+ Enable AWS CDK library version reporting.
27609
+
27610
+ > [https://docs.aws.amazon.com/cdk/v2/guide/usage-data.html](https://docs.aws.amazon.com/cdk/v2/guide/usage-data.html)
27611
+
27612
+ ---
27613
+
26635
27614
  ##### `watchExcludes`<sup>Optional</sup> <a name="watchExcludes" id="@taimos/projen.TaimosCdkAppOptions.property.watchExcludes"></a>
26636
27615
 
26637
27616
  ```typescript
@@ -26932,8 +27911,11 @@ const taimosCdkConstructLibraryOptions: TaimosCdkConstructLibraryOptions = { ...
26932
27911
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.npmRegistryUrl">npmRegistryUrl</a></code> | <code>string</code> | The base URL of the npm package registry. |
26933
27912
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.npmTokenSecret">npmTokenSecret</a></code> | <code>string</code> | GitHub secret which contains the NPM token to use when publishing packages. |
26934
27913
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.npmTrustedPublishing">npmTrustedPublishing</a></code> | <code>boolean</code> | Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work. |
27914
+ | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.npmVerifyPublished">npmVerifyPublished</a></code> | <code>boolean</code> | Wait until the published package version is available from the npm registry before the publish job completes. |
27915
+ | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.npmVerifyPublishedTimeoutSeconds">npmVerifyPublishedTimeoutSeconds</a></code> | <code>number</code> | How long to wait, in seconds, for the published package version to be available. |
26935
27916
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.packageManager">packageManager</a></code> | <code>projen.javascript.NodePackageManager</code> | The Node Package Manager used to execute scripts. |
26936
27917
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.packageName">packageName</a></code> | <code>string</code> | The "name" in package.json. |
27918
+ | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.peerDependenciesMeta">peerDependenciesMeta</a></code> | <code>{[ key: string ]: projen.javascript.PeerDependencyMeta}</code> | Additional information about how peer dependencies are used, rendered as `peerDependenciesMeta` in `package.json`. For example, this can mark peer dependencies as optional. |
26937
27919
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
26938
27920
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.peerDeps">peerDeps</a></code> | <code>string[]</code> | Peer dependencies for this module. |
26939
27921
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.pnpmOptions">pnpmOptions</a></code> | <code>projen.javascript.PnpmOptions</code> | Options for pnpm. |
@@ -27007,6 +27989,7 @@ const taimosCdkConstructLibraryOptions: TaimosCdkConstructLibraryOptions = { ...
27007
27989
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.workflowGitIdentity">workflowGitIdentity</a></code> | <code>projen.github.GitIdentity</code> | The git identity to use in workflows. |
27008
27990
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.workflowNodeVersion">workflowNodeVersion</a></code> | <code>string</code> | The node version used in GitHub Actions workflows. |
27009
27991
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.workflowPackageCache">workflowPackageCache</a></code> | <code>boolean</code> | Enable Node.js package cache in GitHub workflows. |
27992
+ | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.workflowPermissions">workflowPermissions</a></code> | <code>projen.github.workflows.JobPermissions</code> | Permissions for the main build, release and dependency upgrade jobs. |
27010
27993
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.disableTsconfig">disableTsconfig</a></code> | <code>boolean</code> | Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). |
27011
27994
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.disableTsconfigDev">disableTsconfigDev</a></code> | <code>boolean</code> | Do not generate a development tsconfig file. |
27012
27995
  | <code><a href="#@taimos/projen.TaimosCdkConstructLibraryOptions.property.docgen">docgen</a></code> | <code>boolean</code> | Docgen by Typedoc. |
@@ -27955,7 +28938,8 @@ public readonly npmRegistryUrl: string;
27955
28938
 
27956
28939
  The base URL of the npm package registry.
27957
28940
 
27958
- Must be a URL (e.g. start with "https://" or "http://")
28941
+ Must be a URL (e.g. start with "https://" or "http://").
28942
+ A trailing slash is added if missing.
27959
28943
 
27960
28944
  ---
27961
28945
 
@@ -27985,6 +28969,36 @@ Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on
27985
28969
 
27986
28970
  ---
27987
28971
 
28972
+ ##### `npmVerifyPublished`<sup>Optional</sup> <a name="npmVerifyPublished" id="@taimos/projen.TaimosCdkConstructLibraryOptions.property.npmVerifyPublished"></a>
28973
+
28974
+ ```typescript
28975
+ public readonly npmVerifyPublished: boolean;
28976
+ ```
28977
+
28978
+ - *Type:* boolean
28979
+ - *Default:* false
28980
+
28981
+ Wait until the published package version is available from the npm registry before the publish job completes.
28982
+
28983
+ Enable this when packages that depend on the published package are released right after.
28984
+
28985
+ ---
28986
+
28987
+ ##### `npmVerifyPublishedTimeoutSeconds`<sup>Optional</sup> <a name="npmVerifyPublishedTimeoutSeconds" id="@taimos/projen.TaimosCdkConstructLibraryOptions.property.npmVerifyPublishedTimeoutSeconds"></a>
28988
+
28989
+ ```typescript
28990
+ public readonly npmVerifyPublishedTimeoutSeconds: number;
28991
+ ```
28992
+
28993
+ - *Type:* number
28994
+ - *Default:* 3600
28995
+
28996
+ How long to wait, in seconds, for the published package version to be available.
28997
+
28998
+ Requires `npmVerifyPublished` to be enabled.
28999
+
29000
+ ---
29001
+
27988
29002
  ##### `packageManager`<sup>Optional</sup> <a name="packageManager" id="@taimos/projen.TaimosCdkConstructLibraryOptions.property.packageManager"></a>
27989
29003
 
27990
29004
  ```typescript
@@ -28011,6 +29025,30 @@ The "name" in package.json.
28011
29025
 
28012
29026
  ---
28013
29027
 
29028
+ ##### `peerDependenciesMeta`<sup>Optional</sup> <a name="peerDependenciesMeta" id="@taimos/projen.TaimosCdkConstructLibraryOptions.property.peerDependenciesMeta"></a>
29029
+
29030
+ ```typescript
29031
+ public readonly peerDependenciesMeta: {[ key: string ]: PeerDependencyMeta};
29032
+ ```
29033
+
29034
+ - *Type:* {[ key: string ]: projen.javascript.PeerDependencyMeta}
29035
+ - *Default:* no `peerDependenciesMeta`
29036
+
29037
+ Additional information about how peer dependencies are used, rendered as `peerDependenciesMeta` in `package.json`. For example, this can mark peer dependencies as optional.
29038
+
29039
+ Each key must also be declared as a peer dependency.
29040
+
29041
+ > [https://docs.npmjs.com/cli/v11/configuring-npm/package-json#peerdependenciesmeta](https://docs.npmjs.com/cli/v11/configuring-npm/package-json#peerdependenciesmeta)
29042
+
29043
+ ---
29044
+
29045
+ *Example*
29046
+
29047
+ ```typescript
29048
+ { "aws-cdk-lib": { optional: true } }
29049
+ ```
29050
+
29051
+
28014
29052
  ##### `peerDependencyOptions`<sup>Optional</sup> <a name="peerDependencyOptions" id="@taimos/projen.TaimosCdkConstructLibraryOptions.property.peerDependencyOptions"></a>
28015
29053
 
28016
29054
  ```typescript
@@ -29055,6 +30093,28 @@ Enable Node.js package cache in GitHub workflows.
29055
30093
 
29056
30094
  ---
29057
30095
 
30096
+ ##### `workflowPermissions`<sup>Optional</sup> <a name="workflowPermissions" id="@taimos/projen.TaimosCdkConstructLibraryOptions.property.workflowPermissions"></a>
30097
+
30098
+ ```typescript
30099
+ public readonly workflowPermissions: JobPermissions;
30100
+ ```
30101
+
30102
+ - *Type:* projen.github.workflows.JobPermissions
30103
+ - *Default:* Use the job defaults and automatically inferred permissions.
30104
+
30105
+ Permissions for the main build, release and dependency upgrade jobs.
30106
+
30107
+ Defined scopes override the job defaults and automatically inferred permissions,
30108
+ including CodeArtifact and Codecov OIDC. Undefined scopes keep their defaults.
30109
+ Use `JobPermission.NONE` to explicitly remove a permission.
30110
+
30111
+ `buildWorkflowOptions.permissions` replaces this entire set, including automatic
30112
+ permissions. `depsUpgradeOptions.workflowOptions.permissions` overrides individual
30113
+ scopes. Applies to all release branches, but not to separate package, publishing,
30114
+ self-mutation or pull request creation jobs, or unrelated workflows.
30115
+
30116
+ ---
30117
+
29058
30118
  ##### `disableTsconfig`<sup>Optional</sup> <a name="disableTsconfig" id="@taimos/projen.TaimosCdkConstructLibraryOptions.property.disableTsconfig"></a>
29059
30119
 
29060
30120
  ```typescript
@@ -29445,6 +30505,8 @@ By default, jsii will include all *.ts files (except .d.ts files) in the TypeScr
29445
30505
  This can be problematic for example when the package's build or test procedure generates .ts files
29446
30506
  that cannot be compiled with jsii's compiler settings.
29447
30507
 
30508
+ When ESLint is enabled, these patterns are also added to its ignore patterns.
30509
+
29448
30510
  ---
29449
30511
 
29450
30512
  ##### `jsiiVersion`<sup>Optional</sup> <a name="jsiiVersion" id="@taimos/projen.TaimosCdkConstructLibraryOptions.property.jsiiVersion"></a>
@@ -29478,6 +30540,9 @@ public readonly publishToGo: JsiiGoTarget;
29478
30540
 
29479
30541
  Publish Go bindings to a git repository.
29480
30542
 
30543
+ A separate repository is recommended. If `moduleName` refers to the source
30544
+ repository, set `publishToSourceRepository` to `true`.
30545
+
29481
30546
  ---
29482
30547
 
29483
30548
  ##### `publishToMaven`<sup>Optional</sup> <a name="publishToMaven" id="@taimos/projen.TaimosCdkConstructLibraryOptions.property.publishToMaven"></a>
@@ -29821,8 +30886,11 @@ const taimosPrivateTypescriptLibraryOptions: TaimosPrivateTypescriptLibraryOptio
29821
30886
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.npmRegistryUrl">npmRegistryUrl</a></code> | <code>string</code> | The base URL of the npm package registry. |
29822
30887
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.npmTokenSecret">npmTokenSecret</a></code> | <code>string</code> | GitHub secret which contains the NPM token to use when publishing packages. |
29823
30888
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.npmTrustedPublishing">npmTrustedPublishing</a></code> | <code>boolean</code> | Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work. |
30889
+ | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.npmVerifyPublished">npmVerifyPublished</a></code> | <code>boolean</code> | Wait until the published package version is available from the npm registry before the publish job completes. |
30890
+ | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.npmVerifyPublishedTimeoutSeconds">npmVerifyPublishedTimeoutSeconds</a></code> | <code>number</code> | How long to wait, in seconds, for the published package version to be available. |
29824
30891
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.packageManager">packageManager</a></code> | <code>projen.javascript.NodePackageManager</code> | The Node Package Manager used to execute scripts. |
29825
30892
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.packageName">packageName</a></code> | <code>string</code> | The "name" in package.json. |
30893
+ | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.peerDependenciesMeta">peerDependenciesMeta</a></code> | <code>{[ key: string ]: projen.javascript.PeerDependencyMeta}</code> | Additional information about how peer dependencies are used, rendered as `peerDependenciesMeta` in `package.json`. For example, this can mark peer dependencies as optional. |
29826
30894
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
29827
30895
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.peerDeps">peerDeps</a></code> | <code>string[]</code> | Peer dependencies for this module. |
29828
30896
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.pnpmOptions">pnpmOptions</a></code> | <code>projen.javascript.PnpmOptions</code> | Options for pnpm. |
@@ -29896,6 +30964,7 @@ const taimosPrivateTypescriptLibraryOptions: TaimosPrivateTypescriptLibraryOptio
29896
30964
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.workflowGitIdentity">workflowGitIdentity</a></code> | <code>projen.github.GitIdentity</code> | The git identity to use in workflows. |
29897
30965
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.workflowNodeVersion">workflowNodeVersion</a></code> | <code>string</code> | The node version used in GitHub Actions workflows. |
29898
30966
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.workflowPackageCache">workflowPackageCache</a></code> | <code>boolean</code> | Enable Node.js package cache in GitHub workflows. |
30967
+ | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.workflowPermissions">workflowPermissions</a></code> | <code>projen.github.workflows.JobPermissions</code> | Permissions for the main build, release and dependency upgrade jobs. |
29899
30968
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.disableTsconfig">disableTsconfig</a></code> | <code>boolean</code> | Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). |
29900
30969
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.disableTsconfigDev">disableTsconfigDev</a></code> | <code>boolean</code> | Do not generate a development tsconfig file. |
29901
30970
  | <code><a href="#@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.docgen">docgen</a></code> | <code>boolean</code> | Docgen by Typedoc. |
@@ -30817,7 +31886,8 @@ public readonly npmRegistryUrl: string;
30817
31886
 
30818
31887
  The base URL of the npm package registry.
30819
31888
 
30820
- Must be a URL (e.g. start with "https://" or "http://")
31889
+ Must be a URL (e.g. start with "https://" or "http://").
31890
+ A trailing slash is added if missing.
30821
31891
 
30822
31892
  ---
30823
31893
 
@@ -30847,6 +31917,36 @@ Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on
30847
31917
 
30848
31918
  ---
30849
31919
 
31920
+ ##### `npmVerifyPublished`<sup>Optional</sup> <a name="npmVerifyPublished" id="@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.npmVerifyPublished"></a>
31921
+
31922
+ ```typescript
31923
+ public readonly npmVerifyPublished: boolean;
31924
+ ```
31925
+
31926
+ - *Type:* boolean
31927
+ - *Default:* false
31928
+
31929
+ Wait until the published package version is available from the npm registry before the publish job completes.
31930
+
31931
+ Enable this when packages that depend on the published package are released right after.
31932
+
31933
+ ---
31934
+
31935
+ ##### `npmVerifyPublishedTimeoutSeconds`<sup>Optional</sup> <a name="npmVerifyPublishedTimeoutSeconds" id="@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.npmVerifyPublishedTimeoutSeconds"></a>
31936
+
31937
+ ```typescript
31938
+ public readonly npmVerifyPublishedTimeoutSeconds: number;
31939
+ ```
31940
+
31941
+ - *Type:* number
31942
+ - *Default:* 3600
31943
+
31944
+ How long to wait, in seconds, for the published package version to be available.
31945
+
31946
+ Requires `npmVerifyPublished` to be enabled.
31947
+
31948
+ ---
31949
+
30850
31950
  ##### `packageManager`<sup>Optional</sup> <a name="packageManager" id="@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.packageManager"></a>
30851
31951
 
30852
31952
  ```typescript
@@ -30873,6 +31973,30 @@ The "name" in package.json.
30873
31973
 
30874
31974
  ---
30875
31975
 
31976
+ ##### `peerDependenciesMeta`<sup>Optional</sup> <a name="peerDependenciesMeta" id="@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.peerDependenciesMeta"></a>
31977
+
31978
+ ```typescript
31979
+ public readonly peerDependenciesMeta: {[ key: string ]: PeerDependencyMeta};
31980
+ ```
31981
+
31982
+ - *Type:* {[ key: string ]: projen.javascript.PeerDependencyMeta}
31983
+ - *Default:* no `peerDependenciesMeta`
31984
+
31985
+ Additional information about how peer dependencies are used, rendered as `peerDependenciesMeta` in `package.json`. For example, this can mark peer dependencies as optional.
31986
+
31987
+ Each key must also be declared as a peer dependency.
31988
+
31989
+ > [https://docs.npmjs.com/cli/v11/configuring-npm/package-json#peerdependenciesmeta](https://docs.npmjs.com/cli/v11/configuring-npm/package-json#peerdependenciesmeta)
31990
+
31991
+ ---
31992
+
31993
+ *Example*
31994
+
31995
+ ```typescript
31996
+ { "aws-cdk-lib": { optional: true } }
31997
+ ```
31998
+
31999
+
30876
32000
  ##### `peerDependencyOptions`<sup>Optional</sup> <a name="peerDependencyOptions" id="@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.peerDependencyOptions"></a>
30877
32001
 
30878
32002
  ```typescript
@@ -31917,6 +33041,28 @@ Enable Node.js package cache in GitHub workflows.
31917
33041
 
31918
33042
  ---
31919
33043
 
33044
+ ##### `workflowPermissions`<sup>Optional</sup> <a name="workflowPermissions" id="@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.workflowPermissions"></a>
33045
+
33046
+ ```typescript
33047
+ public readonly workflowPermissions: JobPermissions;
33048
+ ```
33049
+
33050
+ - *Type:* projen.github.workflows.JobPermissions
33051
+ - *Default:* Use the job defaults and automatically inferred permissions.
33052
+
33053
+ Permissions for the main build, release and dependency upgrade jobs.
33054
+
33055
+ Defined scopes override the job defaults and automatically inferred permissions,
33056
+ including CodeArtifact and Codecov OIDC. Undefined scopes keep their defaults.
33057
+ Use `JobPermission.NONE` to explicitly remove a permission.
33058
+
33059
+ `buildWorkflowOptions.permissions` replaces this entire set, including automatic
33060
+ permissions. `depsUpgradeOptions.workflowOptions.permissions` overrides individual
33061
+ scopes. Applies to all release branches, but not to separate package, publishing,
33062
+ self-mutation or pull request creation jobs, or unrelated workflows.
33063
+
33064
+ ---
33065
+
31920
33066
  ##### `disableTsconfig`<sup>Optional</sup> <a name="disableTsconfig" id="@taimos/projen.TaimosPrivateTypescriptLibraryOptions.property.disableTsconfig"></a>
31921
33067
 
31922
33068
  ```typescript
@@ -32296,8 +33442,11 @@ const taimosTypescriptLibraryOptions: TaimosTypescriptLibraryOptions = { ... }
32296
33442
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.npmRegistryUrl">npmRegistryUrl</a></code> | <code>string</code> | The base URL of the npm package registry. |
32297
33443
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.npmTokenSecret">npmTokenSecret</a></code> | <code>string</code> | GitHub secret which contains the NPM token to use when publishing packages. |
32298
33444
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.npmTrustedPublishing">npmTrustedPublishing</a></code> | <code>boolean</code> | Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work. |
33445
+ | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.npmVerifyPublished">npmVerifyPublished</a></code> | <code>boolean</code> | Wait until the published package version is available from the npm registry before the publish job completes. |
33446
+ | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.npmVerifyPublishedTimeoutSeconds">npmVerifyPublishedTimeoutSeconds</a></code> | <code>number</code> | How long to wait, in seconds, for the published package version to be available. |
32299
33447
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.packageManager">packageManager</a></code> | <code>projen.javascript.NodePackageManager</code> | The Node Package Manager used to execute scripts. |
32300
33448
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.packageName">packageName</a></code> | <code>string</code> | The "name" in package.json. |
33449
+ | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.peerDependenciesMeta">peerDependenciesMeta</a></code> | <code>{[ key: string ]: projen.javascript.PeerDependencyMeta}</code> | Additional information about how peer dependencies are used, rendered as `peerDependenciesMeta` in `package.json`. For example, this can mark peer dependencies as optional. |
32301
33450
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
32302
33451
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.peerDeps">peerDeps</a></code> | <code>string[]</code> | Peer dependencies for this module. |
32303
33452
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.pnpmOptions">pnpmOptions</a></code> | <code>projen.javascript.PnpmOptions</code> | Options for pnpm. |
@@ -32371,6 +33520,7 @@ const taimosTypescriptLibraryOptions: TaimosTypescriptLibraryOptions = { ... }
32371
33520
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.workflowGitIdentity">workflowGitIdentity</a></code> | <code>projen.github.GitIdentity</code> | The git identity to use in workflows. |
32372
33521
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.workflowNodeVersion">workflowNodeVersion</a></code> | <code>string</code> | The node version used in GitHub Actions workflows. |
32373
33522
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.workflowPackageCache">workflowPackageCache</a></code> | <code>boolean</code> | Enable Node.js package cache in GitHub workflows. |
33523
+ | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.workflowPermissions">workflowPermissions</a></code> | <code>projen.github.workflows.JobPermissions</code> | Permissions for the main build, release and dependency upgrade jobs. |
32374
33524
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.disableTsconfig">disableTsconfig</a></code> | <code>boolean</code> | Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). |
32375
33525
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.disableTsconfigDev">disableTsconfigDev</a></code> | <code>boolean</code> | Do not generate a development tsconfig file. |
32376
33526
  | <code><a href="#@taimos/projen.TaimosTypescriptLibraryOptions.property.docgen">docgen</a></code> | <code>boolean</code> | Docgen by Typedoc. |
@@ -33292,7 +34442,8 @@ public readonly npmRegistryUrl: string;
33292
34442
 
33293
34443
  The base URL of the npm package registry.
33294
34444
 
33295
- Must be a URL (e.g. start with "https://" or "http://")
34445
+ Must be a URL (e.g. start with "https://" or "http://").
34446
+ A trailing slash is added if missing.
33296
34447
 
33297
34448
  ---
33298
34449
 
@@ -33322,6 +34473,36 @@ Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on
33322
34473
 
33323
34474
  ---
33324
34475
 
34476
+ ##### `npmVerifyPublished`<sup>Optional</sup> <a name="npmVerifyPublished" id="@taimos/projen.TaimosTypescriptLibraryOptions.property.npmVerifyPublished"></a>
34477
+
34478
+ ```typescript
34479
+ public readonly npmVerifyPublished: boolean;
34480
+ ```
34481
+
34482
+ - *Type:* boolean
34483
+ - *Default:* false
34484
+
34485
+ Wait until the published package version is available from the npm registry before the publish job completes.
34486
+
34487
+ Enable this when packages that depend on the published package are released right after.
34488
+
34489
+ ---
34490
+
34491
+ ##### `npmVerifyPublishedTimeoutSeconds`<sup>Optional</sup> <a name="npmVerifyPublishedTimeoutSeconds" id="@taimos/projen.TaimosTypescriptLibraryOptions.property.npmVerifyPublishedTimeoutSeconds"></a>
34492
+
34493
+ ```typescript
34494
+ public readonly npmVerifyPublishedTimeoutSeconds: number;
34495
+ ```
34496
+
34497
+ - *Type:* number
34498
+ - *Default:* 3600
34499
+
34500
+ How long to wait, in seconds, for the published package version to be available.
34501
+
34502
+ Requires `npmVerifyPublished` to be enabled.
34503
+
34504
+ ---
34505
+
33325
34506
  ##### `packageManager`<sup>Optional</sup> <a name="packageManager" id="@taimos/projen.TaimosTypescriptLibraryOptions.property.packageManager"></a>
33326
34507
 
33327
34508
  ```typescript
@@ -33348,6 +34529,30 @@ The "name" in package.json.
33348
34529
 
33349
34530
  ---
33350
34531
 
34532
+ ##### `peerDependenciesMeta`<sup>Optional</sup> <a name="peerDependenciesMeta" id="@taimos/projen.TaimosTypescriptLibraryOptions.property.peerDependenciesMeta"></a>
34533
+
34534
+ ```typescript
34535
+ public readonly peerDependenciesMeta: {[ key: string ]: PeerDependencyMeta};
34536
+ ```
34537
+
34538
+ - *Type:* {[ key: string ]: projen.javascript.PeerDependencyMeta}
34539
+ - *Default:* no `peerDependenciesMeta`
34540
+
34541
+ Additional information about how peer dependencies are used, rendered as `peerDependenciesMeta` in `package.json`. For example, this can mark peer dependencies as optional.
34542
+
34543
+ Each key must also be declared as a peer dependency.
34544
+
34545
+ > [https://docs.npmjs.com/cli/v11/configuring-npm/package-json#peerdependenciesmeta](https://docs.npmjs.com/cli/v11/configuring-npm/package-json#peerdependenciesmeta)
34546
+
34547
+ ---
34548
+
34549
+ *Example*
34550
+
34551
+ ```typescript
34552
+ { "aws-cdk-lib": { optional: true } }
34553
+ ```
34554
+
34555
+
33351
34556
  ##### `peerDependencyOptions`<sup>Optional</sup> <a name="peerDependencyOptions" id="@taimos/projen.TaimosTypescriptLibraryOptions.property.peerDependencyOptions"></a>
33352
34557
 
33353
34558
  ```typescript
@@ -34392,6 +35597,28 @@ Enable Node.js package cache in GitHub workflows.
34392
35597
 
34393
35598
  ---
34394
35599
 
35600
+ ##### `workflowPermissions`<sup>Optional</sup> <a name="workflowPermissions" id="@taimos/projen.TaimosTypescriptLibraryOptions.property.workflowPermissions"></a>
35601
+
35602
+ ```typescript
35603
+ public readonly workflowPermissions: JobPermissions;
35604
+ ```
35605
+
35606
+ - *Type:* projen.github.workflows.JobPermissions
35607
+ - *Default:* Use the job defaults and automatically inferred permissions.
35608
+
35609
+ Permissions for the main build, release and dependency upgrade jobs.
35610
+
35611
+ Defined scopes override the job defaults and automatically inferred permissions,
35612
+ including CodeArtifact and Codecov OIDC. Undefined scopes keep their defaults.
35613
+ Use `JobPermission.NONE` to explicitly remove a permission.
35614
+
35615
+ `buildWorkflowOptions.permissions` replaces this entire set, including automatic
35616
+ permissions. `depsUpgradeOptions.workflowOptions.permissions` overrides individual
35617
+ scopes. Applies to all release branches, but not to separate package, publishing,
35618
+ self-mutation or pull request creation jobs, or unrelated workflows.
35619
+
35620
+ ---
35621
+
34395
35622
  ##### `disableTsconfig`<sup>Optional</sup> <a name="disableTsconfig" id="@taimos/projen.TaimosTypescriptLibraryOptions.property.disableTsconfig"></a>
34396
35623
 
34397
35624
  ```typescript