projalf 0.0.0 → 0.0.2

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 ADDED
@@ -0,0 +1,4316 @@
1
+ # API Reference <a name="API Reference" id="api-reference"></a>
2
+
3
+ ## Constructs <a name="Constructs" id="Constructs"></a>
4
+
5
+ ### Projalf <a name="Projalf" id="projalf.Projalf"></a>
6
+
7
+ #### Initializers <a name="Initializers" id="projalf.Projalf.Initializer"></a>
8
+
9
+ ```typescript
10
+ import { Projalf } from 'projalf'
11
+
12
+ new Projalf(options: ProjalfOptions)
13
+ ```
14
+
15
+ | **Name** | **Type** | **Description** |
16
+ | --- | --- | --- |
17
+ | <code><a href="#projalf.Projalf.Initializer.parameter.options">options</a></code> | <code><a href="#projalf.ProjalfOptions">ProjalfOptions</a></code> | *No description.* |
18
+
19
+ ---
20
+
21
+ ##### `options`<sup>Required</sup> <a name="options" id="projalf.Projalf.Initializer.parameter.options"></a>
22
+
23
+ - *Type:* <a href="#projalf.ProjalfOptions">ProjalfOptions</a>
24
+
25
+ ---
26
+
27
+ #### Methods <a name="Methods" id="Methods"></a>
28
+
29
+ | **Name** | **Description** |
30
+ | --- | --- |
31
+ | <code><a href="#projalf.Projalf.toString">toString</a></code> | Returns a string representation of this construct. |
32
+ | <code><a href="#projalf.Projalf.addExcludeFromCleanup">addExcludeFromCleanup</a></code> | Exclude the matching files from pre-synth cleanup. |
33
+ | <code><a href="#projalf.Projalf.addGitIgnore">addGitIgnore</a></code> | Adds a .gitignore pattern. |
34
+ | <code><a href="#projalf.Projalf.addPackageIgnore">addPackageIgnore</a></code> | Adds patterns to be ignored by npm. |
35
+ | <code><a href="#projalf.Projalf.addTask">addTask</a></code> | Adds a new task to this project. |
36
+ | <code><a href="#projalf.Projalf.addTip">addTip</a></code> | Prints a "tip" message during synthesis. |
37
+ | <code><a href="#projalf.Projalf.annotateGenerated">annotateGenerated</a></code> | Marks the provided file(s) as being generated. |
38
+ | <code><a href="#projalf.Projalf.postSynthesize">postSynthesize</a></code> | Called after all components are synthesized. |
39
+ | <code><a href="#projalf.Projalf.preSynthesize">preSynthesize</a></code> | Called before all components are synthesized. |
40
+ | <code><a href="#projalf.Projalf.removeTask">removeTask</a></code> | Removes a task from a project. |
41
+ | <code><a href="#projalf.Projalf.runTaskCommand">runTaskCommand</a></code> | Returns the shell command to execute in order to run a task. |
42
+ | <code><a href="#projalf.Projalf.synth">synth</a></code> | Synthesize all project files into `outdir`. |
43
+ | <code><a href="#projalf.Projalf.tryFindFile">tryFindFile</a></code> | Finds a file at the specified relative path within this project and all its subprojects. |
44
+ | <code><a href="#projalf.Projalf.tryFindJsonFile">tryFindJsonFile</a></code> | Finds a json file by name. |
45
+ | <code><a href="#projalf.Projalf.tryFindObjectFile">tryFindObjectFile</a></code> | Finds an object file (like JsonFile, YamlFile, etc.) by name. |
46
+ | <code><a href="#projalf.Projalf.tryRemoveFile">tryRemoveFile</a></code> | Finds a file at the specified relative path within this project and removes it. |
47
+ | <code><a href="#projalf.Projalf.addBins">addBins</a></code> | *No description.* |
48
+ | <code><a href="#projalf.Projalf.addBundledDeps">addBundledDeps</a></code> | Defines bundled dependencies. |
49
+ | <code><a href="#projalf.Projalf.addCompileCommand">addCompileCommand</a></code> | DEPRECATED. |
50
+ | <code><a href="#projalf.Projalf.addDeps">addDeps</a></code> | Defines normal dependencies. |
51
+ | <code><a href="#projalf.Projalf.addDevDeps">addDevDeps</a></code> | Defines development/test dependencies. |
52
+ | <code><a href="#projalf.Projalf.addFields">addFields</a></code> | Directly set fields in `package.json`. |
53
+ | <code><a href="#projalf.Projalf.addKeywords">addKeywords</a></code> | Adds keywords to package.json (deduplicated). |
54
+ | <code><a href="#projalf.Projalf.addPeerDeps">addPeerDeps</a></code> | Defines peer dependencies. |
55
+ | <code><a href="#projalf.Projalf.addScripts">addScripts</a></code> | Replaces the contents of multiple npm package.json scripts. |
56
+ | <code><a href="#projalf.Projalf.addTestCommand">addTestCommand</a></code> | DEPRECATED. |
57
+ | <code><a href="#projalf.Projalf.hasScript">hasScript</a></code> | Indicates if a script by the name name is defined. |
58
+ | <code><a href="#projalf.Projalf.removeScript">removeScript</a></code> | Removes the npm script (always successful). |
59
+ | <code><a href="#projalf.Projalf.renderWorkflowSetup">renderWorkflowSetup</a></code> | Returns the set of workflow steps which should be executed to bootstrap a workflow. |
60
+ | <code><a href="#projalf.Projalf.setScript">setScript</a></code> | Replaces the contents of an npm package.json script. |
61
+ | <code><a href="#projalf.Projalf.addCdkDependency">addCdkDependency</a></code> | Adds an AWS CDK module dependencies. |
62
+
63
+ ---
64
+
65
+ ##### `toString` <a name="toString" id="projalf.Projalf.toString"></a>
66
+
67
+ ```typescript
68
+ public toString(): string
69
+ ```
70
+
71
+ Returns a string representation of this construct.
72
+
73
+ ##### `addExcludeFromCleanup` <a name="addExcludeFromCleanup" id="projalf.Projalf.addExcludeFromCleanup"></a>
74
+
75
+ ```typescript
76
+ public addExcludeFromCleanup(globs: ...string[]): void
77
+ ```
78
+
79
+ Exclude the matching files from pre-synth cleanup.
80
+
81
+ Can be used when, for example, some
82
+ source files include the projen marker and we don't want them to be erased during synth.
83
+
84
+ ###### `globs`<sup>Required</sup> <a name="globs" id="projalf.Projalf.addExcludeFromCleanup.parameter.globs"></a>
85
+
86
+ - *Type:* ...string[]
87
+
88
+ The glob patterns to match.
89
+
90
+ ---
91
+
92
+ ##### `addGitIgnore` <a name="addGitIgnore" id="projalf.Projalf.addGitIgnore"></a>
93
+
94
+ ```typescript
95
+ public addGitIgnore(pattern: string): void
96
+ ```
97
+
98
+ Adds a .gitignore pattern.
99
+
100
+ ###### `pattern`<sup>Required</sup> <a name="pattern" id="projalf.Projalf.addGitIgnore.parameter.pattern"></a>
101
+
102
+ - *Type:* string
103
+
104
+ The glob pattern to ignore.
105
+
106
+ ---
107
+
108
+ ##### `addPackageIgnore` <a name="addPackageIgnore" id="projalf.Projalf.addPackageIgnore"></a>
109
+
110
+ ```typescript
111
+ public addPackageIgnore(pattern: string): void
112
+ ```
113
+
114
+ Adds patterns to be ignored by npm.
115
+
116
+ ###### `pattern`<sup>Required</sup> <a name="pattern" id="projalf.Projalf.addPackageIgnore.parameter.pattern"></a>
117
+
118
+ - *Type:* string
119
+
120
+ The pattern to ignore.
121
+
122
+ ---
123
+
124
+ ##### `addTask` <a name="addTask" id="projalf.Projalf.addTask"></a>
125
+
126
+ ```typescript
127
+ public addTask(name: string, props?: TaskOptions): Task
128
+ ```
129
+
130
+ Adds a new task to this project.
131
+
132
+ This will fail if the project already has
133
+ a task with this name.
134
+
135
+ ###### `name`<sup>Required</sup> <a name="name" id="projalf.Projalf.addTask.parameter.name"></a>
136
+
137
+ - *Type:* string
138
+
139
+ The task name to add.
140
+
141
+ ---
142
+
143
+ ###### `props`<sup>Optional</sup> <a name="props" id="projalf.Projalf.addTask.parameter.props"></a>
144
+
145
+ - *Type:* projen.TaskOptions
146
+
147
+ Task properties.
148
+
149
+ ---
150
+
151
+ ##### ~~`addTip`~~ <a name="addTip" id="projalf.Projalf.addTip"></a>
152
+
153
+ ```typescript
154
+ public addTip(message: string): void
155
+ ```
156
+
157
+ Prints a "tip" message during synthesis.
158
+
159
+ ###### `message`<sup>Required</sup> <a name="message" id="projalf.Projalf.addTip.parameter.message"></a>
160
+
161
+ - *Type:* string
162
+
163
+ The message.
164
+
165
+ ---
166
+
167
+ ##### `annotateGenerated` <a name="annotateGenerated" id="projalf.Projalf.annotateGenerated"></a>
168
+
169
+ ```typescript
170
+ public annotateGenerated(glob: string): void
171
+ ```
172
+
173
+ Marks the provided file(s) as being generated.
174
+
175
+ This is achieved using the
176
+ github-linguist attributes. Generated files do not count against the
177
+ repository statistics and language breakdown.
178
+
179
+ > [https://github.com/github/linguist/blob/master/docs/overrides.md](https://github.com/github/linguist/blob/master/docs/overrides.md)
180
+
181
+ ###### `glob`<sup>Required</sup> <a name="glob" id="projalf.Projalf.annotateGenerated.parameter.glob"></a>
182
+
183
+ - *Type:* string
184
+
185
+ the glob pattern to match (could be a file path).
186
+
187
+ ---
188
+
189
+ ##### `postSynthesize` <a name="postSynthesize" id="projalf.Projalf.postSynthesize"></a>
190
+
191
+ ```typescript
192
+ public postSynthesize(): void
193
+ ```
194
+
195
+ Called after all components are synthesized.
196
+
197
+ Order is *not* guaranteed.
198
+
199
+ ##### `preSynthesize` <a name="preSynthesize" id="projalf.Projalf.preSynthesize"></a>
200
+
201
+ ```typescript
202
+ public preSynthesize(): void
203
+ ```
204
+
205
+ Called before all components are synthesized.
206
+
207
+ ##### `removeTask` <a name="removeTask" id="projalf.Projalf.removeTask"></a>
208
+
209
+ ```typescript
210
+ public removeTask(name: string): Task
211
+ ```
212
+
213
+ Removes a task from a project.
214
+
215
+ ###### `name`<sup>Required</sup> <a name="name" id="projalf.Projalf.removeTask.parameter.name"></a>
216
+
217
+ - *Type:* string
218
+
219
+ The name of the task to remove.
220
+
221
+ ---
222
+
223
+ ##### `runTaskCommand` <a name="runTaskCommand" id="projalf.Projalf.runTaskCommand"></a>
224
+
225
+ ```typescript
226
+ public runTaskCommand(task: Task): string
227
+ ```
228
+
229
+ Returns the shell command to execute in order to run a task.
230
+
231
+ This will
232
+ typically be `npx projen TASK`.
233
+
234
+ ###### `task`<sup>Required</sup> <a name="task" id="projalf.Projalf.runTaskCommand.parameter.task"></a>
235
+
236
+ - *Type:* projen.Task
237
+
238
+ The task for which the command is required.
239
+
240
+ ---
241
+
242
+ ##### `synth` <a name="synth" id="projalf.Projalf.synth"></a>
243
+
244
+ ```typescript
245
+ public synth(): void
246
+ ```
247
+
248
+ Synthesize all project files into `outdir`.
249
+
250
+ 1. Call "this.preSynthesize()"
251
+ 2. Delete all generated files
252
+ 3. Synthesize all subprojects
253
+ 4. Synthesize all components of this project
254
+ 5. Call "postSynthesize()" for all components of this project
255
+ 6. Call "this.postSynthesize()"
256
+
257
+ ##### `tryFindFile` <a name="tryFindFile" id="projalf.Projalf.tryFindFile"></a>
258
+
259
+ ```typescript
260
+ public tryFindFile(filePath: string): FileBase
261
+ ```
262
+
263
+ Finds a file at the specified relative path within this project and all its subprojects.
264
+
265
+ ###### `filePath`<sup>Required</sup> <a name="filePath" id="projalf.Projalf.tryFindFile.parameter.filePath"></a>
266
+
267
+ - *Type:* string
268
+
269
+ The file path.
270
+
271
+ If this path is relative, it will be resolved
272
+ from the root of _this_ project.
273
+
274
+ ---
275
+
276
+ ##### ~~`tryFindJsonFile`~~ <a name="tryFindJsonFile" id="projalf.Projalf.tryFindJsonFile"></a>
277
+
278
+ ```typescript
279
+ public tryFindJsonFile(filePath: string): JsonFile
280
+ ```
281
+
282
+ Finds a json file by name.
283
+
284
+ ###### `filePath`<sup>Required</sup> <a name="filePath" id="projalf.Projalf.tryFindJsonFile.parameter.filePath"></a>
285
+
286
+ - *Type:* string
287
+
288
+ The file path.
289
+
290
+ ---
291
+
292
+ ##### `tryFindObjectFile` <a name="tryFindObjectFile" id="projalf.Projalf.tryFindObjectFile"></a>
293
+
294
+ ```typescript
295
+ public tryFindObjectFile(filePath: string): ObjectFile
296
+ ```
297
+
298
+ Finds an object file (like JsonFile, YamlFile, etc.) by name.
299
+
300
+ ###### `filePath`<sup>Required</sup> <a name="filePath" id="projalf.Projalf.tryFindObjectFile.parameter.filePath"></a>
301
+
302
+ - *Type:* string
303
+
304
+ The file path.
305
+
306
+ ---
307
+
308
+ ##### `tryRemoveFile` <a name="tryRemoveFile" id="projalf.Projalf.tryRemoveFile"></a>
309
+
310
+ ```typescript
311
+ public tryRemoveFile(filePath: string): FileBase
312
+ ```
313
+
314
+ Finds a file at the specified relative path within this project and removes it.
315
+
316
+ ###### `filePath`<sup>Required</sup> <a name="filePath" id="projalf.Projalf.tryRemoveFile.parameter.filePath"></a>
317
+
318
+ - *Type:* string
319
+
320
+ The file path.
321
+
322
+ If this path is relative, it will be
323
+ resolved from the root of _this_ project.
324
+
325
+ ---
326
+
327
+ ##### `addBins` <a name="addBins" id="projalf.Projalf.addBins"></a>
328
+
329
+ ```typescript
330
+ public addBins(bins: {[ key: string ]: string}): void
331
+ ```
332
+
333
+ ###### `bins`<sup>Required</sup> <a name="bins" id="projalf.Projalf.addBins.parameter.bins"></a>
334
+
335
+ - *Type:* {[ key: string ]: string}
336
+
337
+ ---
338
+
339
+ ##### `addBundledDeps` <a name="addBundledDeps" id="projalf.Projalf.addBundledDeps"></a>
340
+
341
+ ```typescript
342
+ public addBundledDeps(deps: ...string[]): void
343
+ ```
344
+
345
+ Defines bundled dependencies.
346
+
347
+ Bundled dependencies will be added as normal dependencies as well as to the
348
+ `bundledDependencies` section of your `package.json`.
349
+
350
+ ###### `deps`<sup>Required</sup> <a name="deps" id="projalf.Projalf.addBundledDeps.parameter.deps"></a>
351
+
352
+ - *Type:* ...string[]
353
+
354
+ Names modules to install.
355
+
356
+ By default, the the dependency will
357
+ be installed in the next `npx projen` run and the version will be recorded
358
+ in your `package.json` file. You can upgrade manually or using `yarn
359
+ add/upgrade`. If you wish to specify a version range use this syntax:
360
+ `module@^7`.
361
+
362
+ ---
363
+
364
+ ##### ~~`addCompileCommand`~~ <a name="addCompileCommand" id="projalf.Projalf.addCompileCommand"></a>
365
+
366
+ ```typescript
367
+ public addCompileCommand(commands: ...string[]): void
368
+ ```
369
+
370
+ DEPRECATED.
371
+
372
+ ###### `commands`<sup>Required</sup> <a name="commands" id="projalf.Projalf.addCompileCommand.parameter.commands"></a>
373
+
374
+ - *Type:* ...string[]
375
+
376
+ ---
377
+
378
+ ##### `addDeps` <a name="addDeps" id="projalf.Projalf.addDeps"></a>
379
+
380
+ ```typescript
381
+ public addDeps(deps: ...string[]): void
382
+ ```
383
+
384
+ Defines normal dependencies.
385
+
386
+ ###### `deps`<sup>Required</sup> <a name="deps" id="projalf.Projalf.addDeps.parameter.deps"></a>
387
+
388
+ - *Type:* ...string[]
389
+
390
+ Names modules to install.
391
+
392
+ By default, the the dependency will
393
+ be installed in the next `npx projen` run and the version will be recorded
394
+ in your `package.json` file. You can upgrade manually or using `yarn
395
+ add/upgrade`. If you wish to specify a version range use this syntax:
396
+ `module@^7`.
397
+
398
+ ---
399
+
400
+ ##### `addDevDeps` <a name="addDevDeps" id="projalf.Projalf.addDevDeps"></a>
401
+
402
+ ```typescript
403
+ public addDevDeps(deps: ...string[]): void
404
+ ```
405
+
406
+ Defines development/test dependencies.
407
+
408
+ ###### `deps`<sup>Required</sup> <a name="deps" id="projalf.Projalf.addDevDeps.parameter.deps"></a>
409
+
410
+ - *Type:* ...string[]
411
+
412
+ Names modules to install.
413
+
414
+ By default, the the dependency will
415
+ be installed in the next `npx projen` run and the version will be recorded
416
+ in your `package.json` file. You can upgrade manually or using `yarn
417
+ add/upgrade`. If you wish to specify a version range use this syntax:
418
+ `module@^7`.
419
+
420
+ ---
421
+
422
+ ##### `addFields` <a name="addFields" id="projalf.Projalf.addFields"></a>
423
+
424
+ ```typescript
425
+ public addFields(fields: {[ key: string ]: any}): void
426
+ ```
427
+
428
+ Directly set fields in `package.json`.
429
+
430
+ ###### `fields`<sup>Required</sup> <a name="fields" id="projalf.Projalf.addFields.parameter.fields"></a>
431
+
432
+ - *Type:* {[ key: string ]: any}
433
+
434
+ The fields to set.
435
+
436
+ ---
437
+
438
+ ##### `addKeywords` <a name="addKeywords" id="projalf.Projalf.addKeywords"></a>
439
+
440
+ ```typescript
441
+ public addKeywords(keywords: ...string[]): void
442
+ ```
443
+
444
+ Adds keywords to package.json (deduplicated).
445
+
446
+ ###### `keywords`<sup>Required</sup> <a name="keywords" id="projalf.Projalf.addKeywords.parameter.keywords"></a>
447
+
448
+ - *Type:* ...string[]
449
+
450
+ The keywords to add.
451
+
452
+ ---
453
+
454
+ ##### `addPeerDeps` <a name="addPeerDeps" id="projalf.Projalf.addPeerDeps"></a>
455
+
456
+ ```typescript
457
+ public addPeerDeps(deps: ...string[]): void
458
+ ```
459
+
460
+ Defines peer dependencies.
461
+
462
+ When adding peer dependencies, a devDependency will also be added on the
463
+ pinned version of the declared peer. This will ensure that you are testing
464
+ your code against the minimum version required from your consumers.
465
+
466
+ ###### `deps`<sup>Required</sup> <a name="deps" id="projalf.Projalf.addPeerDeps.parameter.deps"></a>
467
+
468
+ - *Type:* ...string[]
469
+
470
+ Names modules to install.
471
+
472
+ By default, the the dependency will
473
+ be installed in the next `npx projen` run and the version will be recorded
474
+ in your `package.json` file. You can upgrade manually or using `yarn
475
+ add/upgrade`. If you wish to specify a version range use this syntax:
476
+ `module@^7`.
477
+
478
+ ---
479
+
480
+ ##### `addScripts` <a name="addScripts" id="projalf.Projalf.addScripts"></a>
481
+
482
+ ```typescript
483
+ public addScripts(scripts: {[ key: string ]: string}): void
484
+ ```
485
+
486
+ Replaces the contents of multiple npm package.json scripts.
487
+
488
+ ###### `scripts`<sup>Required</sup> <a name="scripts" id="projalf.Projalf.addScripts.parameter.scripts"></a>
489
+
490
+ - *Type:* {[ key: string ]: string}
491
+
492
+ The scripts to set.
493
+
494
+ ---
495
+
496
+ ##### ~~`addTestCommand`~~ <a name="addTestCommand" id="projalf.Projalf.addTestCommand"></a>
497
+
498
+ ```typescript
499
+ public addTestCommand(commands: ...string[]): void
500
+ ```
501
+
502
+ DEPRECATED.
503
+
504
+ ###### `commands`<sup>Required</sup> <a name="commands" id="projalf.Projalf.addTestCommand.parameter.commands"></a>
505
+
506
+ - *Type:* ...string[]
507
+
508
+ ---
509
+
510
+ ##### ~~`hasScript`~~ <a name="hasScript" id="projalf.Projalf.hasScript"></a>
511
+
512
+ ```typescript
513
+ public hasScript(name: string): boolean
514
+ ```
515
+
516
+ Indicates if a script by the name name is defined.
517
+
518
+ ###### `name`<sup>Required</sup> <a name="name" id="projalf.Projalf.hasScript.parameter.name"></a>
519
+
520
+ - *Type:* string
521
+
522
+ The name of the script.
523
+
524
+ ---
525
+
526
+ ##### `removeScript` <a name="removeScript" id="projalf.Projalf.removeScript"></a>
527
+
528
+ ```typescript
529
+ public removeScript(name: string): void
530
+ ```
531
+
532
+ Removes the npm script (always successful).
533
+
534
+ ###### `name`<sup>Required</sup> <a name="name" id="projalf.Projalf.removeScript.parameter.name"></a>
535
+
536
+ - *Type:* string
537
+
538
+ The name of the script.
539
+
540
+ ---
541
+
542
+ ##### `renderWorkflowSetup` <a name="renderWorkflowSetup" id="projalf.Projalf.renderWorkflowSetup"></a>
543
+
544
+ ```typescript
545
+ public renderWorkflowSetup(options?: RenderWorkflowSetupOptions): JobStep[]
546
+ ```
547
+
548
+ Returns the set of workflow steps which should be executed to bootstrap a workflow.
549
+
550
+ ###### `options`<sup>Optional</sup> <a name="options" id="projalf.Projalf.renderWorkflowSetup.parameter.options"></a>
551
+
552
+ - *Type:* projen.javascript.RenderWorkflowSetupOptions
553
+
554
+ Options.
555
+
556
+ ---
557
+
558
+ ##### `setScript` <a name="setScript" id="projalf.Projalf.setScript"></a>
559
+
560
+ ```typescript
561
+ public setScript(name: string, command: string): void
562
+ ```
563
+
564
+ Replaces the contents of an npm package.json script.
565
+
566
+ ###### `name`<sup>Required</sup> <a name="name" id="projalf.Projalf.setScript.parameter.name"></a>
567
+
568
+ - *Type:* string
569
+
570
+ The script name.
571
+
572
+ ---
573
+
574
+ ###### `command`<sup>Required</sup> <a name="command" id="projalf.Projalf.setScript.parameter.command"></a>
575
+
576
+ - *Type:* string
577
+
578
+ The command to execute.
579
+
580
+ ---
581
+
582
+ ##### `addCdkDependency` <a name="addCdkDependency" id="projalf.Projalf.addCdkDependency"></a>
583
+
584
+ ```typescript
585
+ public addCdkDependency(modules: ...string[]): void
586
+ ```
587
+
588
+ Adds an AWS CDK module dependencies.
589
+
590
+ ###### `modules`<sup>Required</sup> <a name="modules" id="projalf.Projalf.addCdkDependency.parameter.modules"></a>
591
+
592
+ - *Type:* ...string[]
593
+
594
+ The list of modules to depend on.
595
+
596
+ ---
597
+
598
+ #### Static Functions <a name="Static Functions" id="Static Functions"></a>
599
+
600
+ | **Name** | **Description** |
601
+ | --- | --- |
602
+ | <code><a href="#projalf.Projalf.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
603
+ | <code><a href="#projalf.Projalf.isProject">isProject</a></code> | Test whether the given construct is a project. |
604
+ | <code><a href="#projalf.Projalf.of">of</a></code> | Find the closest ancestor project for given construct. |
605
+
606
+ ---
607
+
608
+ ##### `isConstruct` <a name="isConstruct" id="projalf.Projalf.isConstruct"></a>
609
+
610
+ ```typescript
611
+ import { Projalf } from 'projalf'
612
+
613
+ Projalf.isConstruct(x: any)
614
+ ```
615
+
616
+ Checks if `x` is a construct.
617
+
618
+ Use this method instead of `instanceof` to properly detect `Construct`
619
+ instances, even when the construct library is symlinked.
620
+
621
+ Explanation: in JavaScript, multiple copies of the `constructs` library on
622
+ disk are seen as independent, completely different libraries. As a
623
+ consequence, the class `Construct` in each copy of the `constructs` library
624
+ is seen as a different class, and an instance of one class will not test as
625
+ `instanceof` the other class. `npm install` will not create installations
626
+ like this, but users may manually symlink construct libraries together or
627
+ use a monorepo tool: in those cases, multiple copies of the `constructs`
628
+ library can be accidentally installed, and `instanceof` will behave
629
+ unpredictably. It is safest to avoid using `instanceof`, and using
630
+ this type-testing method instead.
631
+
632
+ ###### `x`<sup>Required</sup> <a name="x" id="projalf.Projalf.isConstruct.parameter.x"></a>
633
+
634
+ - *Type:* any
635
+
636
+ Any object.
637
+
638
+ ---
639
+
640
+ ##### `isProject` <a name="isProject" id="projalf.Projalf.isProject"></a>
641
+
642
+ ```typescript
643
+ import { Projalf } from 'projalf'
644
+
645
+ Projalf.isProject(x: any)
646
+ ```
647
+
648
+ Test whether the given construct is a project.
649
+
650
+ ###### `x`<sup>Required</sup> <a name="x" id="projalf.Projalf.isProject.parameter.x"></a>
651
+
652
+ - *Type:* any
653
+
654
+ ---
655
+
656
+ ##### `of` <a name="of" id="projalf.Projalf.of"></a>
657
+
658
+ ```typescript
659
+ import { Projalf } from 'projalf'
660
+
661
+ Projalf.of(construct: IConstruct)
662
+ ```
663
+
664
+ Find the closest ancestor project for given construct.
665
+
666
+ When given a project, this it the project itself.
667
+
668
+ ###### `construct`<sup>Required</sup> <a name="construct" id="projalf.Projalf.of.parameter.construct"></a>
669
+
670
+ - *Type:* constructs.IConstruct
671
+
672
+ ---
673
+
674
+ #### Properties <a name="Properties" id="Properties"></a>
675
+
676
+ | **Name** | **Type** | **Description** |
677
+ | --- | --- | --- |
678
+ | <code><a href="#projalf.Projalf.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
679
+ | <code><a href="#projalf.Projalf.property.buildTask">buildTask</a></code> | <code>projen.Task</code> | *No description.* |
680
+ | <code><a href="#projalf.Projalf.property.commitGenerated">commitGenerated</a></code> | <code>boolean</code> | Whether to commit the managed files by default. |
681
+ | <code><a href="#projalf.Projalf.property.compileTask">compileTask</a></code> | <code>projen.Task</code> | *No description.* |
682
+ | <code><a href="#projalf.Projalf.property.components">components</a></code> | <code>projen.Component[]</code> | Returns all the components within this project. |
683
+ | <code><a href="#projalf.Projalf.property.deps">deps</a></code> | <code>projen.Dependencies</code> | Project dependencies. |
684
+ | <code><a href="#projalf.Projalf.property.ejected">ejected</a></code> | <code>boolean</code> | Whether or not the project is being ejected. |
685
+ | <code><a href="#projalf.Projalf.property.files">files</a></code> | <code>projen.FileBase[]</code> | All files in this project. |
686
+ | <code><a href="#projalf.Projalf.property.gitattributes">gitattributes</a></code> | <code>projen.GitAttributesFile</code> | The .gitattributes file for this repository. |
687
+ | <code><a href="#projalf.Projalf.property.gitignore">gitignore</a></code> | <code>projen.IgnoreFile</code> | .gitignore. |
688
+ | <code><a href="#projalf.Projalf.property.logger">logger</a></code> | <code>projen.Logger</code> | Logging utilities. |
689
+ | <code><a href="#projalf.Projalf.property.name">name</a></code> | <code>string</code> | Project name. |
690
+ | <code><a href="#projalf.Projalf.property.outdir">outdir</a></code> | <code>string</code> | Absolute output directory of this project. |
691
+ | <code><a href="#projalf.Projalf.property.packageTask">packageTask</a></code> | <code>projen.Task</code> | *No description.* |
692
+ | <code><a href="#projalf.Projalf.property.postCompileTask">postCompileTask</a></code> | <code>projen.Task</code> | *No description.* |
693
+ | <code><a href="#projalf.Projalf.property.preCompileTask">preCompileTask</a></code> | <code>projen.Task</code> | *No description.* |
694
+ | <code><a href="#projalf.Projalf.property.projectBuild">projectBuild</a></code> | <code>projen.ProjectBuild</code> | Manages the build process of the project. |
695
+ | <code><a href="#projalf.Projalf.property.projenCommand">projenCommand</a></code> | <code>string</code> | The command to use in order to run the projen CLI. |
696
+ | <code><a href="#projalf.Projalf.property.root">root</a></code> | <code>projen.Project</code> | The root project. |
697
+ | <code><a href="#projalf.Projalf.property.subprojects">subprojects</a></code> | <code>projen.Project[]</code> | Returns all the subprojects within this project. |
698
+ | <code><a href="#projalf.Projalf.property.tasks">tasks</a></code> | <code>projen.Tasks</code> | Project tasks. |
699
+ | <code><a href="#projalf.Projalf.property.testTask">testTask</a></code> | <code>projen.Task</code> | *No description.* |
700
+ | <code><a href="#projalf.Projalf.property.defaultTask">defaultTask</a></code> | <code>projen.Task</code> | This is the "default" task, the one that executes "projen". |
701
+ | <code><a href="#projalf.Projalf.property.initProject">initProject</a></code> | <code>projen.InitProject</code> | The options used when this project is bootstrapped via `projen new`. |
702
+ | <code><a href="#projalf.Projalf.property.parent">parent</a></code> | <code>projen.Project</code> | A parent project. |
703
+ | <code><a href="#projalf.Projalf.property.projectType">projectType</a></code> | <code>projen.ProjectType</code> | *No description.* |
704
+ | <code><a href="#projalf.Projalf.property.autoApprove">autoApprove</a></code> | <code>projen.github.AutoApprove</code> | Auto approve set up for this project. |
705
+ | <code><a href="#projalf.Projalf.property.devContainer">devContainer</a></code> | <code>projen.vscode.DevContainer</code> | Access for .devcontainer.json (used for GitHub Codespaces). |
706
+ | <code><a href="#projalf.Projalf.property.github">github</a></code> | <code>projen.github.GitHub</code> | Access all github components. |
707
+ | <code><a href="#projalf.Projalf.property.gitpod">gitpod</a></code> | <code>projen.Gitpod</code> | Access for Gitpod. |
708
+ | <code><a href="#projalf.Projalf.property.vscode">vscode</a></code> | <code>projen.vscode.VsCode</code> | Access all VSCode components. |
709
+ | <code><a href="#projalf.Projalf.property.allowLibraryDependencies">allowLibraryDependencies</a></code> | <code>boolean</code> | *No description.* |
710
+ | <code><a href="#projalf.Projalf.property.artifactsDirectory">artifactsDirectory</a></code> | <code>string</code> | The build output directory. |
711
+ | <code><a href="#projalf.Projalf.property.artifactsJavascriptDirectory">artifactsJavascriptDirectory</a></code> | <code>string</code> | The location of the npm tarball after build (`${artifactsDirectory}/js`). |
712
+ | <code><a href="#projalf.Projalf.property.bundler">bundler</a></code> | <code>projen.javascript.Bundler</code> | *No description.* |
713
+ | <code><a href="#projalf.Projalf.property.entrypoint">entrypoint</a></code> | <code>string</code> | *No description.* |
714
+ | <code><a href="#projalf.Projalf.property.manifest">manifest</a></code> | <code>any</code> | *No description.* |
715
+ | <code><a href="#projalf.Projalf.property.npmrc">npmrc</a></code> | <code>projen.javascript.NpmConfig</code> | The .npmrc file. |
716
+ | <code><a href="#projalf.Projalf.property.package">package</a></code> | <code>projen.javascript.NodePackage</code> | API for managing the node package. |
717
+ | <code><a href="#projalf.Projalf.property.packageManager">packageManager</a></code> | <code>projen.javascript.NodePackageManager</code> | The package manager to use. |
718
+ | <code><a href="#projalf.Projalf.property.runScriptCommand">runScriptCommand</a></code> | <code>string</code> | The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager). |
719
+ | <code><a href="#projalf.Projalf.property.autoMerge">autoMerge</a></code> | <code>projen.github.AutoMerge</code> | Component that sets up mergify for merging approved pull requests. |
720
+ | <code><a href="#projalf.Projalf.property.biome">biome</a></code> | <code>projen.javascript.Biome</code> | *No description.* |
721
+ | <code><a href="#projalf.Projalf.property.buildWorkflow">buildWorkflow</a></code> | <code>projen.build.BuildWorkflow</code> | The PR build GitHub workflow. |
722
+ | <code><a href="#projalf.Projalf.property.buildWorkflowJobId">buildWorkflowJobId</a></code> | <code>string</code> | The job ID of the build workflow. |
723
+ | <code><a href="#projalf.Projalf.property.jest">jest</a></code> | <code>projen.javascript.Jest</code> | The Jest configuration (if enabled). |
724
+ | <code><a href="#projalf.Projalf.property.maxNodeVersion">maxNodeVersion</a></code> | <code>string</code> | Maximum node version supported by this package. |
725
+ | <code><a href="#projalf.Projalf.property.minNodeVersion">minNodeVersion</a></code> | <code>string</code> | The minimum node version required by this package to function. |
726
+ | <code><a href="#projalf.Projalf.property.npmignore">npmignore</a></code> | <code>projen.IgnoreFile</code> | The .npmignore file. |
727
+ | <code><a href="#projalf.Projalf.property.prettier">prettier</a></code> | <code>projen.javascript.Prettier</code> | *No description.* |
728
+ | <code><a href="#projalf.Projalf.property.publisher">publisher</a></code> | <code>projen.release.Publisher</code> | Package publisher. |
729
+ | <code><a href="#projalf.Projalf.property.release">release</a></code> | <code>projen.release.Release</code> | Release management. |
730
+ | <code><a href="#projalf.Projalf.property.upgradeWorkflow">upgradeWorkflow</a></code> | <code>projen.javascript.UpgradeDependencies</code> | The upgrade workflow. |
731
+ | <code><a href="#projalf.Projalf.property.docsDirectory">docsDirectory</a></code> | <code>string</code> | *No description.* |
732
+ | <code><a href="#projalf.Projalf.property.libdir">libdir</a></code> | <code>string</code> | The directory in which compiled .js files reside. |
733
+ | <code><a href="#projalf.Projalf.property.srcdir">srcdir</a></code> | <code>string</code> | The directory in which the .ts sources reside. |
734
+ | <code><a href="#projalf.Projalf.property.testdir">testdir</a></code> | <code>string</code> | The directory in which tests reside. |
735
+ | <code><a href="#projalf.Projalf.property.tsconfigDev">tsconfigDev</a></code> | <code>projen.javascript.TypescriptConfig</code> | A typescript configuration file which covers all files (sources, tests, projen). |
736
+ | <code><a href="#projalf.Projalf.property.watchTask">watchTask</a></code> | <code>projen.Task</code> | The "watch" task. |
737
+ | <code><a href="#projalf.Projalf.property.docgen">docgen</a></code> | <code>boolean</code> | *No description.* |
738
+ | <code><a href="#projalf.Projalf.property.eslint">eslint</a></code> | <code>projen.javascript.Eslint</code> | *No description.* |
739
+ | <code><a href="#projalf.Projalf.property.tsconfig">tsconfig</a></code> | <code>projen.javascript.TypescriptConfig</code> | *No description.* |
740
+ | <code><a href="#projalf.Projalf.property.tsconfigEslint">tsconfigEslint</a></code> | <code>projen.javascript.TypescriptConfig</code> | *No description.* |
741
+ | <code><a href="#projalf.Projalf.property.appEntrypoint">appEntrypoint</a></code> | <code>string</code> | The CDK app entrypoint. |
742
+ | <code><a href="#projalf.Projalf.property.cdkConfig">cdkConfig</a></code> | <code>projen.awscdk.CdkConfig</code> | cdk.json configuration. |
743
+ | <code><a href="#projalf.Projalf.property.cdkDeps">cdkDeps</a></code> | <code>projen.awscdk.AwsCdkDeps</code> | *No description.* |
744
+ | <code><a href="#projalf.Projalf.property.cdkTasks">cdkTasks</a></code> | <code>projen.awscdk.CdkTasks</code> | Common CDK tasks. |
745
+ | <code><a href="#projalf.Projalf.property.cdkVersion">cdkVersion</a></code> | <code>string</code> | The CDK version this app is using. |
746
+
747
+ ---
748
+
749
+ ##### `node`<sup>Required</sup> <a name="node" id="projalf.Projalf.property.node"></a>
750
+
751
+ ```typescript
752
+ public readonly node: Node;
753
+ ```
754
+
755
+ - *Type:* constructs.Node
756
+
757
+ The tree node.
758
+
759
+ ---
760
+
761
+ ##### `buildTask`<sup>Required</sup> <a name="buildTask" id="projalf.Projalf.property.buildTask"></a>
762
+
763
+ ```typescript
764
+ public readonly buildTask: Task;
765
+ ```
766
+
767
+ - *Type:* projen.Task
768
+
769
+ ---
770
+
771
+ ##### `commitGenerated`<sup>Required</sup> <a name="commitGenerated" id="projalf.Projalf.property.commitGenerated"></a>
772
+
773
+ ```typescript
774
+ public readonly commitGenerated: boolean;
775
+ ```
776
+
777
+ - *Type:* boolean
778
+
779
+ Whether to commit the managed files by default.
780
+
781
+ ---
782
+
783
+ ##### `compileTask`<sup>Required</sup> <a name="compileTask" id="projalf.Projalf.property.compileTask"></a>
784
+
785
+ ```typescript
786
+ public readonly compileTask: Task;
787
+ ```
788
+
789
+ - *Type:* projen.Task
790
+
791
+ ---
792
+
793
+ ##### `components`<sup>Required</sup> <a name="components" id="projalf.Projalf.property.components"></a>
794
+
795
+ ```typescript
796
+ public readonly components: Component[];
797
+ ```
798
+
799
+ - *Type:* projen.Component[]
800
+
801
+ Returns all the components within this project.
802
+
803
+ ---
804
+
805
+ ##### `deps`<sup>Required</sup> <a name="deps" id="projalf.Projalf.property.deps"></a>
806
+
807
+ ```typescript
808
+ public readonly deps: Dependencies;
809
+ ```
810
+
811
+ - *Type:* projen.Dependencies
812
+
813
+ Project dependencies.
814
+
815
+ ---
816
+
817
+ ##### `ejected`<sup>Required</sup> <a name="ejected" id="projalf.Projalf.property.ejected"></a>
818
+
819
+ ```typescript
820
+ public readonly ejected: boolean;
821
+ ```
822
+
823
+ - *Type:* boolean
824
+
825
+ Whether or not the project is being ejected.
826
+
827
+ ---
828
+
829
+ ##### `files`<sup>Required</sup> <a name="files" id="projalf.Projalf.property.files"></a>
830
+
831
+ ```typescript
832
+ public readonly files: FileBase[];
833
+ ```
834
+
835
+ - *Type:* projen.FileBase[]
836
+
837
+ All files in this project.
838
+
839
+ ---
840
+
841
+ ##### `gitattributes`<sup>Required</sup> <a name="gitattributes" id="projalf.Projalf.property.gitattributes"></a>
842
+
843
+ ```typescript
844
+ public readonly gitattributes: GitAttributesFile;
845
+ ```
846
+
847
+ - *Type:* projen.GitAttributesFile
848
+
849
+ The .gitattributes file for this repository.
850
+
851
+ ---
852
+
853
+ ##### `gitignore`<sup>Required</sup> <a name="gitignore" id="projalf.Projalf.property.gitignore"></a>
854
+
855
+ ```typescript
856
+ public readonly gitignore: IgnoreFile;
857
+ ```
858
+
859
+ - *Type:* projen.IgnoreFile
860
+
861
+ .gitignore.
862
+
863
+ ---
864
+
865
+ ##### `logger`<sup>Required</sup> <a name="logger" id="projalf.Projalf.property.logger"></a>
866
+
867
+ ```typescript
868
+ public readonly logger: Logger;
869
+ ```
870
+
871
+ - *Type:* projen.Logger
872
+
873
+ Logging utilities.
874
+
875
+ ---
876
+
877
+ ##### `name`<sup>Required</sup> <a name="name" id="projalf.Projalf.property.name"></a>
878
+
879
+ ```typescript
880
+ public readonly name: string;
881
+ ```
882
+
883
+ - *Type:* string
884
+
885
+ Project name.
886
+
887
+ ---
888
+
889
+ ##### `outdir`<sup>Required</sup> <a name="outdir" id="projalf.Projalf.property.outdir"></a>
890
+
891
+ ```typescript
892
+ public readonly outdir: string;
893
+ ```
894
+
895
+ - *Type:* string
896
+
897
+ Absolute output directory of this project.
898
+
899
+ ---
900
+
901
+ ##### `packageTask`<sup>Required</sup> <a name="packageTask" id="projalf.Projalf.property.packageTask"></a>
902
+
903
+ ```typescript
904
+ public readonly packageTask: Task;
905
+ ```
906
+
907
+ - *Type:* projen.Task
908
+
909
+ ---
910
+
911
+ ##### `postCompileTask`<sup>Required</sup> <a name="postCompileTask" id="projalf.Projalf.property.postCompileTask"></a>
912
+
913
+ ```typescript
914
+ public readonly postCompileTask: Task;
915
+ ```
916
+
917
+ - *Type:* projen.Task
918
+
919
+ ---
920
+
921
+ ##### `preCompileTask`<sup>Required</sup> <a name="preCompileTask" id="projalf.Projalf.property.preCompileTask"></a>
922
+
923
+ ```typescript
924
+ public readonly preCompileTask: Task;
925
+ ```
926
+
927
+ - *Type:* projen.Task
928
+
929
+ ---
930
+
931
+ ##### `projectBuild`<sup>Required</sup> <a name="projectBuild" id="projalf.Projalf.property.projectBuild"></a>
932
+
933
+ ```typescript
934
+ public readonly projectBuild: ProjectBuild;
935
+ ```
936
+
937
+ - *Type:* projen.ProjectBuild
938
+
939
+ Manages the build process of the project.
940
+
941
+ ---
942
+
943
+ ##### `projenCommand`<sup>Required</sup> <a name="projenCommand" id="projalf.Projalf.property.projenCommand"></a>
944
+
945
+ ```typescript
946
+ public readonly projenCommand: string;
947
+ ```
948
+
949
+ - *Type:* string
950
+
951
+ The command to use in order to run the projen CLI.
952
+
953
+ ---
954
+
955
+ ##### `root`<sup>Required</sup> <a name="root" id="projalf.Projalf.property.root"></a>
956
+
957
+ ```typescript
958
+ public readonly root: Project;
959
+ ```
960
+
961
+ - *Type:* projen.Project
962
+
963
+ The root project.
964
+
965
+ ---
966
+
967
+ ##### `subprojects`<sup>Required</sup> <a name="subprojects" id="projalf.Projalf.property.subprojects"></a>
968
+
969
+ ```typescript
970
+ public readonly subprojects: Project[];
971
+ ```
972
+
973
+ - *Type:* projen.Project[]
974
+
975
+ Returns all the subprojects within this project.
976
+
977
+ ---
978
+
979
+ ##### `tasks`<sup>Required</sup> <a name="tasks" id="projalf.Projalf.property.tasks"></a>
980
+
981
+ ```typescript
982
+ public readonly tasks: Tasks;
983
+ ```
984
+
985
+ - *Type:* projen.Tasks
986
+
987
+ Project tasks.
988
+
989
+ ---
990
+
991
+ ##### `testTask`<sup>Required</sup> <a name="testTask" id="projalf.Projalf.property.testTask"></a>
992
+
993
+ ```typescript
994
+ public readonly testTask: Task;
995
+ ```
996
+
997
+ - *Type:* projen.Task
998
+
999
+ ---
1000
+
1001
+ ##### `defaultTask`<sup>Optional</sup> <a name="defaultTask" id="projalf.Projalf.property.defaultTask"></a>
1002
+
1003
+ ```typescript
1004
+ public readonly defaultTask: Task;
1005
+ ```
1006
+
1007
+ - *Type:* projen.Task
1008
+
1009
+ This is the "default" task, the one that executes "projen".
1010
+
1011
+ Undefined if
1012
+ the project is being ejected.
1013
+
1014
+ ---
1015
+
1016
+ ##### `initProject`<sup>Optional</sup> <a name="initProject" id="projalf.Projalf.property.initProject"></a>
1017
+
1018
+ ```typescript
1019
+ public readonly initProject: InitProject;
1020
+ ```
1021
+
1022
+ - *Type:* projen.InitProject
1023
+
1024
+ The options used when this project is bootstrapped via `projen new`.
1025
+
1026
+ It
1027
+ includes the original set of options passed to the CLI and also the JSII
1028
+ FQN of the project type.
1029
+
1030
+ ---
1031
+
1032
+ ##### `parent`<sup>Optional</sup> <a name="parent" id="projalf.Projalf.property.parent"></a>
1033
+
1034
+ ```typescript
1035
+ public readonly parent: Project;
1036
+ ```
1037
+
1038
+ - *Type:* projen.Project
1039
+
1040
+ A parent project.
1041
+
1042
+ If undefined, this is the root project.
1043
+
1044
+ ---
1045
+
1046
+ ##### `projectType`<sup>Required</sup> <a name="projectType" id="projalf.Projalf.property.projectType"></a>
1047
+
1048
+ ```typescript
1049
+ public readonly projectType: ProjectType;
1050
+ ```
1051
+
1052
+ - *Type:* projen.ProjectType
1053
+
1054
+ ---
1055
+
1056
+ ##### `autoApprove`<sup>Optional</sup> <a name="autoApprove" id="projalf.Projalf.property.autoApprove"></a>
1057
+
1058
+ ```typescript
1059
+ public readonly autoApprove: AutoApprove;
1060
+ ```
1061
+
1062
+ - *Type:* projen.github.AutoApprove
1063
+
1064
+ Auto approve set up for this project.
1065
+
1066
+ ---
1067
+
1068
+ ##### `devContainer`<sup>Optional</sup> <a name="devContainer" id="projalf.Projalf.property.devContainer"></a>
1069
+
1070
+ ```typescript
1071
+ public readonly devContainer: DevContainer;
1072
+ ```
1073
+
1074
+ - *Type:* projen.vscode.DevContainer
1075
+
1076
+ Access for .devcontainer.json (used for GitHub Codespaces).
1077
+
1078
+ This will be `undefined` if devContainer boolean is false
1079
+
1080
+ ---
1081
+
1082
+ ##### `github`<sup>Optional</sup> <a name="github" id="projalf.Projalf.property.github"></a>
1083
+
1084
+ ```typescript
1085
+ public readonly github: GitHub;
1086
+ ```
1087
+
1088
+ - *Type:* projen.github.GitHub
1089
+
1090
+ Access all github components.
1091
+
1092
+ This will be `undefined` for subprojects.
1093
+
1094
+ ---
1095
+
1096
+ ##### `gitpod`<sup>Optional</sup> <a name="gitpod" id="projalf.Projalf.property.gitpod"></a>
1097
+
1098
+ ```typescript
1099
+ public readonly gitpod: Gitpod;
1100
+ ```
1101
+
1102
+ - *Type:* projen.Gitpod
1103
+
1104
+ Access for Gitpod.
1105
+
1106
+ This will be `undefined` if gitpod boolean is false
1107
+
1108
+ ---
1109
+
1110
+ ##### `vscode`<sup>Optional</sup> <a name="vscode" id="projalf.Projalf.property.vscode"></a>
1111
+
1112
+ ```typescript
1113
+ public readonly vscode: VsCode;
1114
+ ```
1115
+
1116
+ - *Type:* projen.vscode.VsCode
1117
+
1118
+ Access all VSCode components.
1119
+
1120
+ This will be `undefined` for subprojects.
1121
+
1122
+ ---
1123
+
1124
+ ##### ~~`allowLibraryDependencies`~~<sup>Required</sup> <a name="allowLibraryDependencies" id="projalf.Projalf.property.allowLibraryDependencies"></a>
1125
+
1126
+ - *Deprecated:* use `package.allowLibraryDependencies`
1127
+
1128
+ ```typescript
1129
+ public readonly allowLibraryDependencies: boolean;
1130
+ ```
1131
+
1132
+ - *Type:* boolean
1133
+
1134
+ ---
1135
+
1136
+ ##### `artifactsDirectory`<sup>Required</sup> <a name="artifactsDirectory" id="projalf.Projalf.property.artifactsDirectory"></a>
1137
+
1138
+ ```typescript
1139
+ public readonly artifactsDirectory: string;
1140
+ ```
1141
+
1142
+ - *Type:* string
1143
+
1144
+ The build output directory.
1145
+
1146
+ An npm tarball will be created under the `js`
1147
+ subdirectory. For example, if this is set to `dist` (the default), the npm
1148
+ tarball will be placed under `dist/js/boom-boom-1.2.3.tg`.
1149
+
1150
+ ---
1151
+
1152
+ ##### `artifactsJavascriptDirectory`<sup>Required</sup> <a name="artifactsJavascriptDirectory" id="projalf.Projalf.property.artifactsJavascriptDirectory"></a>
1153
+
1154
+ ```typescript
1155
+ public readonly artifactsJavascriptDirectory: string;
1156
+ ```
1157
+
1158
+ - *Type:* string
1159
+
1160
+ The location of the npm tarball after build (`${artifactsDirectory}/js`).
1161
+
1162
+ ---
1163
+
1164
+ ##### `bundler`<sup>Required</sup> <a name="bundler" id="projalf.Projalf.property.bundler"></a>
1165
+
1166
+ ```typescript
1167
+ public readonly bundler: Bundler;
1168
+ ```
1169
+
1170
+ - *Type:* projen.javascript.Bundler
1171
+
1172
+ ---
1173
+
1174
+ ##### ~~`entrypoint`~~<sup>Required</sup> <a name="entrypoint" id="projalf.Projalf.property.entrypoint"></a>
1175
+
1176
+ - *Deprecated:* use `package.entrypoint`
1177
+
1178
+ ```typescript
1179
+ public readonly entrypoint: string;
1180
+ ```
1181
+
1182
+ - *Type:* string
1183
+
1184
+ ---
1185
+
1186
+ ##### ~~`manifest`~~<sup>Required</sup> <a name="manifest" id="projalf.Projalf.property.manifest"></a>
1187
+
1188
+ - *Deprecated:* use `package.addField(x, y)`
1189
+
1190
+ ```typescript
1191
+ public readonly manifest: any;
1192
+ ```
1193
+
1194
+ - *Type:* any
1195
+
1196
+ ---
1197
+
1198
+ ##### `npmrc`<sup>Required</sup> <a name="npmrc" id="projalf.Projalf.property.npmrc"></a>
1199
+
1200
+ ```typescript
1201
+ public readonly npmrc: NpmConfig;
1202
+ ```
1203
+
1204
+ - *Type:* projen.javascript.NpmConfig
1205
+
1206
+ The .npmrc file.
1207
+
1208
+ ---
1209
+
1210
+ ##### `package`<sup>Required</sup> <a name="package" id="projalf.Projalf.property.package"></a>
1211
+
1212
+ ```typescript
1213
+ public readonly package: NodePackage;
1214
+ ```
1215
+
1216
+ - *Type:* projen.javascript.NodePackage
1217
+
1218
+ API for managing the node package.
1219
+
1220
+ ---
1221
+
1222
+ ##### ~~`packageManager`~~<sup>Required</sup> <a name="packageManager" id="projalf.Projalf.property.packageManager"></a>
1223
+
1224
+ - *Deprecated:* use `package.packageManager`
1225
+
1226
+ ```typescript
1227
+ public readonly packageManager: NodePackageManager;
1228
+ ```
1229
+
1230
+ - *Type:* projen.javascript.NodePackageManager
1231
+
1232
+ The package manager to use.
1233
+
1234
+ ---
1235
+
1236
+ ##### `runScriptCommand`<sup>Required</sup> <a name="runScriptCommand" id="projalf.Projalf.property.runScriptCommand"></a>
1237
+
1238
+ ```typescript
1239
+ public readonly runScriptCommand: string;
1240
+ ```
1241
+
1242
+ - *Type:* string
1243
+
1244
+ The command to use to run scripts (e.g. `yarn run` or `npm run` depends on the package manager).
1245
+
1246
+ ---
1247
+
1248
+ ##### `autoMerge`<sup>Optional</sup> <a name="autoMerge" id="projalf.Projalf.property.autoMerge"></a>
1249
+
1250
+ ```typescript
1251
+ public readonly autoMerge: AutoMerge;
1252
+ ```
1253
+
1254
+ - *Type:* projen.github.AutoMerge
1255
+
1256
+ Component that sets up mergify for merging approved pull requests.
1257
+
1258
+ ---
1259
+
1260
+ ##### `biome`<sup>Optional</sup> <a name="biome" id="projalf.Projalf.property.biome"></a>
1261
+
1262
+ ```typescript
1263
+ public readonly biome: Biome;
1264
+ ```
1265
+
1266
+ - *Type:* projen.javascript.Biome
1267
+
1268
+ ---
1269
+
1270
+ ##### `buildWorkflow`<sup>Optional</sup> <a name="buildWorkflow" id="projalf.Projalf.property.buildWorkflow"></a>
1271
+
1272
+ ```typescript
1273
+ public readonly buildWorkflow: BuildWorkflow;
1274
+ ```
1275
+
1276
+ - *Type:* projen.build.BuildWorkflow
1277
+
1278
+ The PR build GitHub workflow.
1279
+
1280
+ `undefined` if `buildWorkflow` is disabled.
1281
+
1282
+ ---
1283
+
1284
+ ##### `buildWorkflowJobId`<sup>Optional</sup> <a name="buildWorkflowJobId" id="projalf.Projalf.property.buildWorkflowJobId"></a>
1285
+
1286
+ ```typescript
1287
+ public readonly buildWorkflowJobId: string;
1288
+ ```
1289
+
1290
+ - *Type:* string
1291
+
1292
+ The job ID of the build workflow.
1293
+
1294
+ ---
1295
+
1296
+ ##### `jest`<sup>Optional</sup> <a name="jest" id="projalf.Projalf.property.jest"></a>
1297
+
1298
+ ```typescript
1299
+ public readonly jest: Jest;
1300
+ ```
1301
+
1302
+ - *Type:* projen.javascript.Jest
1303
+
1304
+ The Jest configuration (if enabled).
1305
+
1306
+ ---
1307
+
1308
+ ##### `maxNodeVersion`<sup>Optional</sup> <a name="maxNodeVersion" id="projalf.Projalf.property.maxNodeVersion"></a>
1309
+
1310
+ ```typescript
1311
+ public readonly maxNodeVersion: string;
1312
+ ```
1313
+
1314
+ - *Type:* string
1315
+
1316
+ Maximum node version supported by this package.
1317
+
1318
+ The value indicates the package is incompatible with newer versions.
1319
+
1320
+ ---
1321
+
1322
+ ##### `minNodeVersion`<sup>Optional</sup> <a name="minNodeVersion" id="projalf.Projalf.property.minNodeVersion"></a>
1323
+
1324
+ ```typescript
1325
+ public readonly minNodeVersion: string;
1326
+ ```
1327
+
1328
+ - *Type:* string
1329
+
1330
+ The minimum node version required by this package to function.
1331
+
1332
+ This value indicates the package is incompatible with older versions.
1333
+
1334
+ ---
1335
+
1336
+ ##### `npmignore`<sup>Optional</sup> <a name="npmignore" id="projalf.Projalf.property.npmignore"></a>
1337
+
1338
+ ```typescript
1339
+ public readonly npmignore: IgnoreFile;
1340
+ ```
1341
+
1342
+ - *Type:* projen.IgnoreFile
1343
+
1344
+ The .npmignore file.
1345
+
1346
+ ---
1347
+
1348
+ ##### `prettier`<sup>Optional</sup> <a name="prettier" id="projalf.Projalf.property.prettier"></a>
1349
+
1350
+ ```typescript
1351
+ public readonly prettier: Prettier;
1352
+ ```
1353
+
1354
+ - *Type:* projen.javascript.Prettier
1355
+
1356
+ ---
1357
+
1358
+ ##### ~~`publisher`~~<sup>Optional</sup> <a name="publisher" id="projalf.Projalf.property.publisher"></a>
1359
+
1360
+ - *Deprecated:* use `release.publisher`.
1361
+
1362
+ ```typescript
1363
+ public readonly publisher: Publisher;
1364
+ ```
1365
+
1366
+ - *Type:* projen.release.Publisher
1367
+
1368
+ Package publisher.
1369
+
1370
+ This will be `undefined` if the project does not have a
1371
+ release workflow.
1372
+
1373
+ ---
1374
+
1375
+ ##### `release`<sup>Optional</sup> <a name="release" id="projalf.Projalf.property.release"></a>
1376
+
1377
+ ```typescript
1378
+ public readonly release: Release;
1379
+ ```
1380
+
1381
+ - *Type:* projen.release.Release
1382
+
1383
+ Release management.
1384
+
1385
+ ---
1386
+
1387
+ ##### `upgradeWorkflow`<sup>Optional</sup> <a name="upgradeWorkflow" id="projalf.Projalf.property.upgradeWorkflow"></a>
1388
+
1389
+ ```typescript
1390
+ public readonly upgradeWorkflow: UpgradeDependencies;
1391
+ ```
1392
+
1393
+ - *Type:* projen.javascript.UpgradeDependencies
1394
+
1395
+ The upgrade workflow.
1396
+
1397
+ ---
1398
+
1399
+ ##### `docsDirectory`<sup>Required</sup> <a name="docsDirectory" id="projalf.Projalf.property.docsDirectory"></a>
1400
+
1401
+ ```typescript
1402
+ public readonly docsDirectory: string;
1403
+ ```
1404
+
1405
+ - *Type:* string
1406
+
1407
+ ---
1408
+
1409
+ ##### `libdir`<sup>Required</sup> <a name="libdir" id="projalf.Projalf.property.libdir"></a>
1410
+
1411
+ ```typescript
1412
+ public readonly libdir: string;
1413
+ ```
1414
+
1415
+ - *Type:* string
1416
+
1417
+ The directory in which compiled .js files reside.
1418
+
1419
+ ---
1420
+
1421
+ ##### `srcdir`<sup>Required</sup> <a name="srcdir" id="projalf.Projalf.property.srcdir"></a>
1422
+
1423
+ ```typescript
1424
+ public readonly srcdir: string;
1425
+ ```
1426
+
1427
+ - *Type:* string
1428
+
1429
+ The directory in which the .ts sources reside.
1430
+
1431
+ ---
1432
+
1433
+ ##### `testdir`<sup>Required</sup> <a name="testdir" id="projalf.Projalf.property.testdir"></a>
1434
+
1435
+ ```typescript
1436
+ public readonly testdir: string;
1437
+ ```
1438
+
1439
+ - *Type:* string
1440
+
1441
+ The directory in which tests reside.
1442
+
1443
+ ---
1444
+
1445
+ ##### `tsconfigDev`<sup>Required</sup> <a name="tsconfigDev" id="projalf.Projalf.property.tsconfigDev"></a>
1446
+
1447
+ ```typescript
1448
+ public readonly tsconfigDev: TypescriptConfig;
1449
+ ```
1450
+
1451
+ - *Type:* projen.javascript.TypescriptConfig
1452
+
1453
+ A typescript configuration file which covers all files (sources, tests, projen).
1454
+
1455
+ ---
1456
+
1457
+ ##### `watchTask`<sup>Required</sup> <a name="watchTask" id="projalf.Projalf.property.watchTask"></a>
1458
+
1459
+ ```typescript
1460
+ public readonly watchTask: Task;
1461
+ ```
1462
+
1463
+ - *Type:* projen.Task
1464
+
1465
+ The "watch" task.
1466
+
1467
+ ---
1468
+
1469
+ ##### `docgen`<sup>Optional</sup> <a name="docgen" id="projalf.Projalf.property.docgen"></a>
1470
+
1471
+ ```typescript
1472
+ public readonly docgen: boolean;
1473
+ ```
1474
+
1475
+ - *Type:* boolean
1476
+
1477
+ ---
1478
+
1479
+ ##### `eslint`<sup>Optional</sup> <a name="eslint" id="projalf.Projalf.property.eslint"></a>
1480
+
1481
+ ```typescript
1482
+ public readonly eslint: Eslint;
1483
+ ```
1484
+
1485
+ - *Type:* projen.javascript.Eslint
1486
+
1487
+ ---
1488
+
1489
+ ##### `tsconfig`<sup>Optional</sup> <a name="tsconfig" id="projalf.Projalf.property.tsconfig"></a>
1490
+
1491
+ ```typescript
1492
+ public readonly tsconfig: TypescriptConfig;
1493
+ ```
1494
+
1495
+ - *Type:* projen.javascript.TypescriptConfig
1496
+
1497
+ ---
1498
+
1499
+ ##### `tsconfigEslint`<sup>Optional</sup> <a name="tsconfigEslint" id="projalf.Projalf.property.tsconfigEslint"></a>
1500
+
1501
+ ```typescript
1502
+ public readonly tsconfigEslint: TypescriptConfig;
1503
+ ```
1504
+
1505
+ - *Type:* projen.javascript.TypescriptConfig
1506
+
1507
+ ---
1508
+
1509
+ ##### `appEntrypoint`<sup>Required</sup> <a name="appEntrypoint" id="projalf.Projalf.property.appEntrypoint"></a>
1510
+
1511
+ ```typescript
1512
+ public readonly appEntrypoint: string;
1513
+ ```
1514
+
1515
+ - *Type:* string
1516
+
1517
+ The CDK app entrypoint.
1518
+
1519
+ ---
1520
+
1521
+ ##### `cdkConfig`<sup>Required</sup> <a name="cdkConfig" id="projalf.Projalf.property.cdkConfig"></a>
1522
+
1523
+ ```typescript
1524
+ public readonly cdkConfig: CdkConfig;
1525
+ ```
1526
+
1527
+ - *Type:* projen.awscdk.CdkConfig
1528
+
1529
+ cdk.json configuration.
1530
+
1531
+ ---
1532
+
1533
+ ##### `cdkDeps`<sup>Required</sup> <a name="cdkDeps" id="projalf.Projalf.property.cdkDeps"></a>
1534
+
1535
+ ```typescript
1536
+ public readonly cdkDeps: AwsCdkDeps;
1537
+ ```
1538
+
1539
+ - *Type:* projen.awscdk.AwsCdkDeps
1540
+
1541
+ ---
1542
+
1543
+ ##### `cdkTasks`<sup>Required</sup> <a name="cdkTasks" id="projalf.Projalf.property.cdkTasks"></a>
1544
+
1545
+ ```typescript
1546
+ public readonly cdkTasks: CdkTasks;
1547
+ ```
1548
+
1549
+ - *Type:* projen.awscdk.CdkTasks
1550
+
1551
+ Common CDK tasks.
1552
+
1553
+ ---
1554
+
1555
+ ##### `cdkVersion`<sup>Required</sup> <a name="cdkVersion" id="projalf.Projalf.property.cdkVersion"></a>
1556
+
1557
+ ```typescript
1558
+ public readonly cdkVersion: string;
1559
+ ```
1560
+
1561
+ - *Type:* string
1562
+
1563
+ The CDK version this app is using.
1564
+
1565
+ ---
1566
+
1567
+ #### Constants <a name="Constants" id="Constants"></a>
1568
+
1569
+ | **Name** | **Type** | **Description** |
1570
+ | --- | --- | --- |
1571
+ | <code><a href="#projalf.Projalf.property.DEFAULT_TASK">DEFAULT_TASK</a></code> | <code>string</code> | The name of the default task (the task executed when `projen` is run without arguments). |
1572
+ | <code><a href="#projalf.Projalf.property.DEFAULT_TS_JEST_TRANFORM_PATTERN">DEFAULT_TS_JEST_TRANFORM_PATTERN</a></code> | <code>string</code> | *No description.* |
1573
+
1574
+ ---
1575
+
1576
+ ##### `DEFAULT_TASK`<sup>Required</sup> <a name="DEFAULT_TASK" id="projalf.Projalf.property.DEFAULT_TASK"></a>
1577
+
1578
+ ```typescript
1579
+ public readonly DEFAULT_TASK: string;
1580
+ ```
1581
+
1582
+ - *Type:* string
1583
+
1584
+ The name of the default task (the task executed when `projen` is run without arguments).
1585
+
1586
+ Normally
1587
+ this task should synthesize the project files.
1588
+
1589
+ ---
1590
+
1591
+ ##### `DEFAULT_TS_JEST_TRANFORM_PATTERN`<sup>Required</sup> <a name="DEFAULT_TS_JEST_TRANFORM_PATTERN" id="projalf.Projalf.property.DEFAULT_TS_JEST_TRANFORM_PATTERN"></a>
1592
+
1593
+ ```typescript
1594
+ public readonly DEFAULT_TS_JEST_TRANFORM_PATTERN: string;
1595
+ ```
1596
+
1597
+ - *Type:* string
1598
+
1599
+ ---
1600
+
1601
+ ## Structs <a name="Structs" id="Structs"></a>
1602
+
1603
+ ### ProjalfOptions <a name="ProjalfOptions" id="projalf.ProjalfOptions"></a>
1604
+
1605
+ #### Initializer <a name="Initializer" id="projalf.ProjalfOptions.Initializer"></a>
1606
+
1607
+ ```typescript
1608
+ import { ProjalfOptions } from 'projalf'
1609
+
1610
+ const projalfOptions: ProjalfOptions = { ... }
1611
+ ```
1612
+
1613
+ #### Properties <a name="Properties" id="Properties"></a>
1614
+
1615
+ | **Name** | **Type** | **Description** |
1616
+ | --- | --- | --- |
1617
+ | <code><a href="#projalf.ProjalfOptions.property.name">name</a></code> | <code>string</code> | This is the name of your project. |
1618
+ | <code><a href="#projalf.ProjalfOptions.property.commitGenerated">commitGenerated</a></code> | <code>boolean</code> | Whether to commit the managed files by default. |
1619
+ | <code><a href="#projalf.ProjalfOptions.property.gitIgnoreOptions">gitIgnoreOptions</a></code> | <code>projen.IgnoreFileOptions</code> | Configuration options for .gitignore file. |
1620
+ | <code><a href="#projalf.ProjalfOptions.property.gitOptions">gitOptions</a></code> | <code>projen.GitOptions</code> | Configuration options for git. |
1621
+ | <code><a href="#projalf.ProjalfOptions.property.logging">logging</a></code> | <code>projen.LoggerOptions</code> | Configure logging options such as verbosity. |
1622
+ | <code><a href="#projalf.ProjalfOptions.property.outdir">outdir</a></code> | <code>string</code> | The root directory of the project. |
1623
+ | <code><a href="#projalf.ProjalfOptions.property.parent">parent</a></code> | <code>projen.Project</code> | The parent project, if this project is part of a bigger project. |
1624
+ | <code><a href="#projalf.ProjalfOptions.property.projenCommand">projenCommand</a></code> | <code>string</code> | The shell command to use in order to run the projen CLI. |
1625
+ | <code><a href="#projalf.ProjalfOptions.property.projenrcJson">projenrcJson</a></code> | <code>boolean</code> | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. |
1626
+ | <code><a href="#projalf.ProjalfOptions.property.projenrcJsonOptions">projenrcJsonOptions</a></code> | <code>projen.ProjenrcJsonOptions</code> | Options for .projenrc.json. |
1627
+ | <code><a href="#projalf.ProjalfOptions.property.renovatebot">renovatebot</a></code> | <code>boolean</code> | Use renovatebot to handle dependency upgrades. |
1628
+ | <code><a href="#projalf.ProjalfOptions.property.renovatebotOptions">renovatebotOptions</a></code> | <code>projen.RenovatebotOptions</code> | Options for renovatebot. |
1629
+ | <code><a href="#projalf.ProjalfOptions.property.autoApproveOptions">autoApproveOptions</a></code> | <code>projen.github.AutoApproveOptions</code> | Enable and configure the 'auto approve' workflow. |
1630
+ | <code><a href="#projalf.ProjalfOptions.property.autoMerge">autoMerge</a></code> | <code>boolean</code> | Enable automatic merging on GitHub. |
1631
+ | <code><a href="#projalf.ProjalfOptions.property.autoMergeOptions">autoMergeOptions</a></code> | <code>projen.github.AutoMergeOptions</code> | Configure options for automatic merging on GitHub. |
1632
+ | <code><a href="#projalf.ProjalfOptions.property.clobber">clobber</a></code> | <code>boolean</code> | Add a `clobber` task which resets the repo to origin. |
1633
+ | <code><a href="#projalf.ProjalfOptions.property.devContainer">devContainer</a></code> | <code>boolean</code> | Add a VSCode development environment (used for GitHub Codespaces). |
1634
+ | <code><a href="#projalf.ProjalfOptions.property.github">github</a></code> | <code>boolean</code> | Enable GitHub integration. |
1635
+ | <code><a href="#projalf.ProjalfOptions.property.githubOptions">githubOptions</a></code> | <code>projen.github.GitHubOptions</code> | Options for GitHub integration. |
1636
+ | <code><a href="#projalf.ProjalfOptions.property.gitpod">gitpod</a></code> | <code>boolean</code> | Add a Gitpod development environment. |
1637
+ | <code><a href="#projalf.ProjalfOptions.property.mergify">mergify</a></code> | <code>boolean</code> | Whether mergify should be enabled on this repository or not. |
1638
+ | <code><a href="#projalf.ProjalfOptions.property.mergifyOptions">mergifyOptions</a></code> | <code>projen.github.MergifyOptions</code> | Options for mergify. |
1639
+ | <code><a href="#projalf.ProjalfOptions.property.projectType">projectType</a></code> | <code>projen.ProjectType</code> | Which type of project this is (library/app). |
1640
+ | <code><a href="#projalf.ProjalfOptions.property.projenCredentials">projenCredentials</a></code> | <code>projen.github.GithubCredentials</code> | Choose a method of providing GitHub API access for projen workflows. |
1641
+ | <code><a href="#projalf.ProjalfOptions.property.projenTokenSecret">projenTokenSecret</a></code> | <code>string</code> | The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. |
1642
+ | <code><a href="#projalf.ProjalfOptions.property.readme">readme</a></code> | <code>projen.SampleReadmeProps</code> | The README setup. |
1643
+ | <code><a href="#projalf.ProjalfOptions.property.stale">stale</a></code> | <code>boolean</code> | Auto-close of stale issues and pull request. |
1644
+ | <code><a href="#projalf.ProjalfOptions.property.staleOptions">staleOptions</a></code> | <code>projen.github.StaleOptions</code> | Auto-close stale issues and pull requests. |
1645
+ | <code><a href="#projalf.ProjalfOptions.property.vscode">vscode</a></code> | <code>boolean</code> | Enable VSCode integration. |
1646
+ | <code><a href="#projalf.ProjalfOptions.property.allowLibraryDependencies">allowLibraryDependencies</a></code> | <code>boolean</code> | Allow the project to include `peerDependencies` and `bundledDependencies`. |
1647
+ | <code><a href="#projalf.ProjalfOptions.property.authorEmail">authorEmail</a></code> | <code>string</code> | Author's e-mail. |
1648
+ | <code><a href="#projalf.ProjalfOptions.property.authorName">authorName</a></code> | <code>string</code> | Author's name. |
1649
+ | <code><a href="#projalf.ProjalfOptions.property.authorOrganization">authorOrganization</a></code> | <code>boolean</code> | Is the author an organization. |
1650
+ | <code><a href="#projalf.ProjalfOptions.property.authorUrl">authorUrl</a></code> | <code>string</code> | Author's URL / Website. |
1651
+ | <code><a href="#projalf.ProjalfOptions.property.autoDetectBin">autoDetectBin</a></code> | <code>boolean</code> | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. |
1652
+ | <code><a href="#projalf.ProjalfOptions.property.bin">bin</a></code> | <code>{[ key: string ]: string}</code> | Binary programs vended with your module. |
1653
+ | <code><a href="#projalf.ProjalfOptions.property.bugsEmail">bugsEmail</a></code> | <code>string</code> | The email address to which issues should be reported. |
1654
+ | <code><a href="#projalf.ProjalfOptions.property.bugsUrl">bugsUrl</a></code> | <code>string</code> | The url to your project's issue tracker. |
1655
+ | <code><a href="#projalf.ProjalfOptions.property.bundledDeps">bundledDeps</a></code> | <code>string[]</code> | List of dependencies to bundle into this module. |
1656
+ | <code><a href="#projalf.ProjalfOptions.property.bunVersion">bunVersion</a></code> | <code>string</code> | The version of Bun to use if using Bun as a package manager. |
1657
+ | <code><a href="#projalf.ProjalfOptions.property.codeArtifactOptions">codeArtifactOptions</a></code> | <code>projen.javascript.CodeArtifactOptions</code> | Options for npm packages using AWS CodeArtifact. |
1658
+ | <code><a href="#projalf.ProjalfOptions.property.deps">deps</a></code> | <code>string[]</code> | Runtime dependencies of this module. |
1659
+ | <code><a href="#projalf.ProjalfOptions.property.description">description</a></code> | <code>string</code> | The description is just a string that helps people understand the purpose of the package. |
1660
+ | <code><a href="#projalf.ProjalfOptions.property.devDeps">devDeps</a></code> | <code>string[]</code> | Build dependencies for this module. |
1661
+ | <code><a href="#projalf.ProjalfOptions.property.entrypoint">entrypoint</a></code> | <code>string</code> | Module entrypoint (`main` in `package.json`). |
1662
+ | <code><a href="#projalf.ProjalfOptions.property.homepage">homepage</a></code> | <code>string</code> | Package's Homepage / Website. |
1663
+ | <code><a href="#projalf.ProjalfOptions.property.keywords">keywords</a></code> | <code>string[]</code> | Keywords to include in `package.json`. |
1664
+ | <code><a href="#projalf.ProjalfOptions.property.license">license</a></code> | <code>string</code> | License's SPDX identifier. |
1665
+ | <code><a href="#projalf.ProjalfOptions.property.licensed">licensed</a></code> | <code>boolean</code> | Indicates if a license should be added. |
1666
+ | <code><a href="#projalf.ProjalfOptions.property.maxNodeVersion">maxNodeVersion</a></code> | <code>string</code> | The maximum node version supported by this package. Most projects should not use this option. |
1667
+ | <code><a href="#projalf.ProjalfOptions.property.minNodeVersion">minNodeVersion</a></code> | <code>string</code> | The minimum node version required by this package to function. Most projects should not use this option. |
1668
+ | <code><a href="#projalf.ProjalfOptions.property.npmAccess">npmAccess</a></code> | <code>projen.javascript.NpmAccess</code> | Access level of the npm package. |
1669
+ | <code><a href="#projalf.ProjalfOptions.property.npmProvenance">npmProvenance</a></code> | <code>boolean</code> | Should provenance statements be generated when the package is published. |
1670
+ | <code><a href="#projalf.ProjalfOptions.property.npmRegistry">npmRegistry</a></code> | <code>string</code> | The host name of the npm registry to publish to. |
1671
+ | <code><a href="#projalf.ProjalfOptions.property.npmRegistryUrl">npmRegistryUrl</a></code> | <code>string</code> | The base URL of the npm package registry. |
1672
+ | <code><a href="#projalf.ProjalfOptions.property.npmTokenSecret">npmTokenSecret</a></code> | <code>string</code> | GitHub secret which contains the NPM token to use when publishing packages. |
1673
+ | <code><a href="#projalf.ProjalfOptions.property.packageManager">packageManager</a></code> | <code>projen.javascript.NodePackageManager</code> | The Node Package Manager used to execute scripts. |
1674
+ | <code><a href="#projalf.ProjalfOptions.property.packageName">packageName</a></code> | <code>string</code> | The "name" in package.json. |
1675
+ | <code><a href="#projalf.ProjalfOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
1676
+ | <code><a href="#projalf.ProjalfOptions.property.peerDeps">peerDeps</a></code> | <code>string[]</code> | Peer dependencies for this module. |
1677
+ | <code><a href="#projalf.ProjalfOptions.property.pnpmVersion">pnpmVersion</a></code> | <code>string</code> | The version of PNPM to use if using PNPM as a package manager. |
1678
+ | <code><a href="#projalf.ProjalfOptions.property.repository">repository</a></code> | <code>string</code> | The repository is the location where the actual code for your package lives. |
1679
+ | <code><a href="#projalf.ProjalfOptions.property.repositoryDirectory">repositoryDirectory</a></code> | <code>string</code> | If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives. |
1680
+ | <code><a href="#projalf.ProjalfOptions.property.scopedPackagesOptions">scopedPackagesOptions</a></code> | <code>projen.javascript.ScopedPackagesOptions[]</code> | Options for privately hosted scoped packages. |
1681
+ | <code><a href="#projalf.ProjalfOptions.property.scripts">scripts</a></code> | <code>{[ key: string ]: string}</code> | npm scripts to include. |
1682
+ | <code><a href="#projalf.ProjalfOptions.property.stability">stability</a></code> | <code>string</code> | Package's Stability. |
1683
+ | <code><a href="#projalf.ProjalfOptions.property.yarnBerryOptions">yarnBerryOptions</a></code> | <code>projen.javascript.YarnBerryOptions</code> | Options for Yarn Berry. |
1684
+ | <code><a href="#projalf.ProjalfOptions.property.bumpPackage">bumpPackage</a></code> | <code>string</code> | The `commit-and-tag-version` compatible package used to bump the package version, as a dependency string. |
1685
+ | <code><a href="#projalf.ProjalfOptions.property.jsiiReleaseVersion">jsiiReleaseVersion</a></code> | <code>string</code> | Version requirement of `publib` which is used to publish modules to npm. |
1686
+ | <code><a href="#projalf.ProjalfOptions.property.majorVersion">majorVersion</a></code> | <code>number</code> | Major version to release from the default branch. |
1687
+ | <code><a href="#projalf.ProjalfOptions.property.minMajorVersion">minMajorVersion</a></code> | <code>number</code> | Minimal Major version to release. |
1688
+ | <code><a href="#projalf.ProjalfOptions.property.nextVersionCommand">nextVersionCommand</a></code> | <code>string</code> | A shell command to control the next version to release. |
1689
+ | <code><a href="#projalf.ProjalfOptions.property.npmDistTag">npmDistTag</a></code> | <code>string</code> | The npmDistTag to use when publishing from the default branch. |
1690
+ | <code><a href="#projalf.ProjalfOptions.property.postBuildSteps">postBuildSteps</a></code> | <code>projen.github.workflows.JobStep[]</code> | Steps to execute after build as part of the release workflow. |
1691
+ | <code><a href="#projalf.ProjalfOptions.property.prerelease">prerelease</a></code> | <code>string</code> | Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). |
1692
+ | <code><a href="#projalf.ProjalfOptions.property.publishDryRun">publishDryRun</a></code> | <code>boolean</code> | Instead of actually publishing to package managers, just print the publishing command. |
1693
+ | <code><a href="#projalf.ProjalfOptions.property.publishTasks">publishTasks</a></code> | <code>boolean</code> | Define publishing tasks that can be executed manually as well as workflows. |
1694
+ | <code><a href="#projalf.ProjalfOptions.property.releasableCommits">releasableCommits</a></code> | <code>projen.ReleasableCommits</code> | Find commits that should be considered releasable Used to decide if a release is required. |
1695
+ | <code><a href="#projalf.ProjalfOptions.property.releaseBranches">releaseBranches</a></code> | <code>{[ key: string ]: projen.release.BranchOptions}</code> | Defines additional release branches. |
1696
+ | <code><a href="#projalf.ProjalfOptions.property.releaseEnvironment">releaseEnvironment</a></code> | <code>string</code> | The GitHub Actions environment used for the release. |
1697
+ | <code><a href="#projalf.ProjalfOptions.property.releaseEveryCommit">releaseEveryCommit</a></code> | <code>boolean</code> | Automatically release new versions every commit to one of branches in `releaseBranches`. |
1698
+ | <code><a href="#projalf.ProjalfOptions.property.releaseFailureIssue">releaseFailureIssue</a></code> | <code>boolean</code> | Create a github issue on every failed publishing task. |
1699
+ | <code><a href="#projalf.ProjalfOptions.property.releaseFailureIssueLabel">releaseFailureIssueLabel</a></code> | <code>string</code> | The label to apply to issues indicating publish failures. |
1700
+ | <code><a href="#projalf.ProjalfOptions.property.releaseSchedule">releaseSchedule</a></code> | <code>string</code> | CRON schedule to trigger new releases. |
1701
+ | <code><a href="#projalf.ProjalfOptions.property.releaseTagPrefix">releaseTagPrefix</a></code> | <code>string</code> | Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. |
1702
+ | <code><a href="#projalf.ProjalfOptions.property.releaseTrigger">releaseTrigger</a></code> | <code>projen.release.ReleaseTrigger</code> | The release trigger to use. |
1703
+ | <code><a href="#projalf.ProjalfOptions.property.releaseWorkflowName">releaseWorkflowName</a></code> | <code>string</code> | The name of the default release workflow. |
1704
+ | <code><a href="#projalf.ProjalfOptions.property.releaseWorkflowSetupSteps">releaseWorkflowSetupSteps</a></code> | <code>projen.github.workflows.JobStep[]</code> | A set of workflow steps to execute in order to setup the workflow container. |
1705
+ | <code><a href="#projalf.ProjalfOptions.property.versionrcOptions">versionrcOptions</a></code> | <code>{[ key: string ]: any}</code> | Custom configuration used when creating changelog with commit-and-tag-version package. |
1706
+ | <code><a href="#projalf.ProjalfOptions.property.workflowContainerImage">workflowContainerImage</a></code> | <code>string</code> | Container image to use for GitHub workflows. |
1707
+ | <code><a href="#projalf.ProjalfOptions.property.workflowRunsOn">workflowRunsOn</a></code> | <code>string[]</code> | Github Runner selection labels. |
1708
+ | <code><a href="#projalf.ProjalfOptions.property.workflowRunsOnGroup">workflowRunsOnGroup</a></code> | <code>projen.GroupRunnerOptions</code> | Github Runner Group selection options. |
1709
+ | <code><a href="#projalf.ProjalfOptions.property.defaultReleaseBranch">defaultReleaseBranch</a></code> | <code>string</code> | The name of the main release branch. |
1710
+ | <code><a href="#projalf.ProjalfOptions.property.artifactsDirectory">artifactsDirectory</a></code> | <code>string</code> | A directory which will contain build artifacts. |
1711
+ | <code><a href="#projalf.ProjalfOptions.property.autoApproveUpgrades">autoApproveUpgrades</a></code> | <code>boolean</code> | Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). |
1712
+ | <code><a href="#projalf.ProjalfOptions.property.biome">biome</a></code> | <code>boolean</code> | Setup Biome. |
1713
+ | <code><a href="#projalf.ProjalfOptions.property.biomeOptions">biomeOptions</a></code> | <code>projen.javascript.BiomeOptions</code> | Biome options. |
1714
+ | <code><a href="#projalf.ProjalfOptions.property.buildWorkflow">buildWorkflow</a></code> | <code>boolean</code> | Define a GitHub workflow for building PRs. |
1715
+ | <code><a href="#projalf.ProjalfOptions.property.buildWorkflowOptions">buildWorkflowOptions</a></code> | <code>projen.javascript.BuildWorkflowOptions</code> | Options for PR build workflow. |
1716
+ | <code><a href="#projalf.ProjalfOptions.property.buildWorkflowTriggers">buildWorkflowTriggers</a></code> | <code>projen.github.workflows.Triggers</code> | Build workflow triggers. |
1717
+ | <code><a href="#projalf.ProjalfOptions.property.bundlerOptions">bundlerOptions</a></code> | <code>projen.javascript.BundlerOptions</code> | Options for `Bundler`. |
1718
+ | <code><a href="#projalf.ProjalfOptions.property.checkLicenses">checkLicenses</a></code> | <code>projen.javascript.LicenseCheckerOptions</code> | Configure which licenses should be deemed acceptable for use by dependencies. |
1719
+ | <code><a href="#projalf.ProjalfOptions.property.codeCov">codeCov</a></code> | <code>boolean</code> | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v4 A secret is required for private repos. Configured with `@codeCovTokenSecret`. |
1720
+ | <code><a href="#projalf.ProjalfOptions.property.codeCovTokenSecret">codeCovTokenSecret</a></code> | <code>string</code> | Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. |
1721
+ | <code><a href="#projalf.ProjalfOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>string</code> | License copyright owner. |
1722
+ | <code><a href="#projalf.ProjalfOptions.property.copyrightPeriod">copyrightPeriod</a></code> | <code>string</code> | The copyright years to put in the LICENSE file. |
1723
+ | <code><a href="#projalf.ProjalfOptions.property.dependabot">dependabot</a></code> | <code>boolean</code> | Use dependabot to handle dependency upgrades. |
1724
+ | <code><a href="#projalf.ProjalfOptions.property.dependabotOptions">dependabotOptions</a></code> | <code>projen.github.DependabotOptions</code> | Options for dependabot. |
1725
+ | <code><a href="#projalf.ProjalfOptions.property.depsUpgrade">depsUpgrade</a></code> | <code>boolean</code> | Use tasks and github workflows to handle dependency upgrades. |
1726
+ | <code><a href="#projalf.ProjalfOptions.property.depsUpgradeOptions">depsUpgradeOptions</a></code> | <code>projen.javascript.UpgradeDependenciesOptions</code> | Options for `UpgradeDependencies`. |
1727
+ | <code><a href="#projalf.ProjalfOptions.property.gitignore">gitignore</a></code> | <code>string[]</code> | Additional entries to .gitignore. |
1728
+ | <code><a href="#projalf.ProjalfOptions.property.jest">jest</a></code> | <code>boolean</code> | Setup jest unit tests. |
1729
+ | <code><a href="#projalf.ProjalfOptions.property.jestOptions">jestOptions</a></code> | <code>projen.javascript.JestOptions</code> | Jest options. |
1730
+ | <code><a href="#projalf.ProjalfOptions.property.mutableBuild">mutableBuild</a></code> | <code>boolean</code> | Automatically update files modified during builds to pull-request branches. |
1731
+ | <code><a href="#projalf.ProjalfOptions.property.npmignore">npmignore</a></code> | <code>string[]</code> | Additional entries to .npmignore. |
1732
+ | <code><a href="#projalf.ProjalfOptions.property.npmignoreEnabled">npmignoreEnabled</a></code> | <code>boolean</code> | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. |
1733
+ | <code><a href="#projalf.ProjalfOptions.property.npmIgnoreOptions">npmIgnoreOptions</a></code> | <code>projen.IgnoreFileOptions</code> | Configuration options for .npmignore file. |
1734
+ | <code><a href="#projalf.ProjalfOptions.property.package">package</a></code> | <code>boolean</code> | Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). |
1735
+ | <code><a href="#projalf.ProjalfOptions.property.prettier">prettier</a></code> | <code>boolean</code> | Setup prettier. |
1736
+ | <code><a href="#projalf.ProjalfOptions.property.prettierOptions">prettierOptions</a></code> | <code>projen.javascript.PrettierOptions</code> | Prettier options. |
1737
+ | <code><a href="#projalf.ProjalfOptions.property.projenDevDependency">projenDevDependency</a></code> | <code>boolean</code> | Indicates of "projen" should be installed as a devDependency. |
1738
+ | <code><a href="#projalf.ProjalfOptions.property.projenrcJs">projenrcJs</a></code> | <code>boolean</code> | Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. |
1739
+ | <code><a href="#projalf.ProjalfOptions.property.projenrcJsOptions">projenrcJsOptions</a></code> | <code>projen.javascript.ProjenrcOptions</code> | Options for .projenrc.js. |
1740
+ | <code><a href="#projalf.ProjalfOptions.property.projenVersion">projenVersion</a></code> | <code>string</code> | Version of projen to install. |
1741
+ | <code><a href="#projalf.ProjalfOptions.property.pullRequestTemplate">pullRequestTemplate</a></code> | <code>boolean</code> | Include a GitHub pull request template. |
1742
+ | <code><a href="#projalf.ProjalfOptions.property.pullRequestTemplateContents">pullRequestTemplateContents</a></code> | <code>string[]</code> | The contents of the pull request template. |
1743
+ | <code><a href="#projalf.ProjalfOptions.property.release">release</a></code> | <code>boolean</code> | Add release management to this project. |
1744
+ | <code><a href="#projalf.ProjalfOptions.property.releaseToNpm">releaseToNpm</a></code> | <code>boolean</code> | Automatically release to npm when new versions are introduced. |
1745
+ | <code><a href="#projalf.ProjalfOptions.property.releaseWorkflow">releaseWorkflow</a></code> | <code>boolean</code> | DEPRECATED: renamed to `release`. |
1746
+ | <code><a href="#projalf.ProjalfOptions.property.workflowBootstrapSteps">workflowBootstrapSteps</a></code> | <code>projen.github.workflows.JobStep[]</code> | Workflow steps to use in order to bootstrap this repo. |
1747
+ | <code><a href="#projalf.ProjalfOptions.property.workflowGitIdentity">workflowGitIdentity</a></code> | <code>projen.github.GitIdentity</code> | The git identity to use in workflows. |
1748
+ | <code><a href="#projalf.ProjalfOptions.property.workflowNodeVersion">workflowNodeVersion</a></code> | <code>string</code> | The node version used in GitHub Actions workflows. |
1749
+ | <code><a href="#projalf.ProjalfOptions.property.workflowPackageCache">workflowPackageCache</a></code> | <code>boolean</code> | Enable Node.js package cache in GitHub workflows. |
1750
+ | <code><a href="#projalf.ProjalfOptions.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). |
1751
+ | <code><a href="#projalf.ProjalfOptions.property.disableTsconfigDev">disableTsconfigDev</a></code> | <code>boolean</code> | Do not generate a `tsconfig.dev.json` file. |
1752
+ | <code><a href="#projalf.ProjalfOptions.property.docgen">docgen</a></code> | <code>boolean</code> | Docgen by Typedoc. |
1753
+ | <code><a href="#projalf.ProjalfOptions.property.docsDirectory">docsDirectory</a></code> | <code>string</code> | Docs directory. |
1754
+ | <code><a href="#projalf.ProjalfOptions.property.entrypointTypes">entrypointTypes</a></code> | <code>string</code> | The .d.ts file that includes the type declarations for this module. |
1755
+ | <code><a href="#projalf.ProjalfOptions.property.eslint">eslint</a></code> | <code>boolean</code> | Setup eslint. |
1756
+ | <code><a href="#projalf.ProjalfOptions.property.eslintOptions">eslintOptions</a></code> | <code>projen.javascript.EslintOptions</code> | Eslint options. |
1757
+ | <code><a href="#projalf.ProjalfOptions.property.libdir">libdir</a></code> | <code>string</code> | Typescript artifacts output directory. |
1758
+ | <code><a href="#projalf.ProjalfOptions.property.projenrcTs">projenrcTs</a></code> | <code>boolean</code> | Use TypeScript for your projenrc file (`.projenrc.ts`). |
1759
+ | <code><a href="#projalf.ProjalfOptions.property.projenrcTsOptions">projenrcTsOptions</a></code> | <code>projen.typescript.ProjenrcOptions</code> | Options for .projenrc.ts. |
1760
+ | <code><a href="#projalf.ProjalfOptions.property.sampleCode">sampleCode</a></code> | <code>boolean</code> | Generate one-time sample in `src/` and `test/` if there are no files there. |
1761
+ | <code><a href="#projalf.ProjalfOptions.property.srcdir">srcdir</a></code> | <code>string</code> | Typescript sources directory. |
1762
+ | <code><a href="#projalf.ProjalfOptions.property.testdir">testdir</a></code> | <code>string</code> | Jest tests directory. Tests files should be named `xxx.test.ts`. |
1763
+ | <code><a href="#projalf.ProjalfOptions.property.tsconfig">tsconfig</a></code> | <code>projen.javascript.TypescriptConfigOptions</code> | Custom TSConfig. |
1764
+ | <code><a href="#projalf.ProjalfOptions.property.tsconfigDev">tsconfigDev</a></code> | <code>projen.javascript.TypescriptConfigOptions</code> | Custom tsconfig options for the development tsconfig.json file (used for testing). |
1765
+ | <code><a href="#projalf.ProjalfOptions.property.tsconfigDevFile">tsconfigDevFile</a></code> | <code>string</code> | The name of the development tsconfig.json file. |
1766
+ | <code><a href="#projalf.ProjalfOptions.property.tsJestOptions">tsJestOptions</a></code> | <code>projen.typescript.TsJestOptions</code> | Options for ts-jest. |
1767
+ | <code><a href="#projalf.ProjalfOptions.property.typescriptVersion">typescriptVersion</a></code> | <code>string</code> | TypeScript version to use. |
1768
+ | <code><a href="#projalf.ProjalfOptions.property.buildCommand">buildCommand</a></code> | <code>string</code> | A command to execute before synthesis. |
1769
+ | <code><a href="#projalf.ProjalfOptions.property.cdkout">cdkout</a></code> | <code>string</code> | cdk.out directory. |
1770
+ | <code><a href="#projalf.ProjalfOptions.property.context">context</a></code> | <code>{[ key: string ]: any}</code> | Additional context to include in `cdk.json`. |
1771
+ | <code><a href="#projalf.ProjalfOptions.property.featureFlags">featureFlags</a></code> | <code>boolean</code> | Include all feature flags in cdk.json. |
1772
+ | <code><a href="#projalf.ProjalfOptions.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. |
1773
+ | <code><a href="#projalf.ProjalfOptions.property.watchExcludes">watchExcludes</a></code> | <code>string[]</code> | Glob patterns to exclude from `cdk watch`. |
1774
+ | <code><a href="#projalf.ProjalfOptions.property.watchIncludes">watchIncludes</a></code> | <code>string[]</code> | Glob patterns to include in `cdk watch`. |
1775
+ | <code><a href="#projalf.ProjalfOptions.property.cdkVersion">cdkVersion</a></code> | <code>string</code> | Minimum version of the AWS CDK to depend on. |
1776
+ | <code><a href="#projalf.ProjalfOptions.property.cdkAssert">cdkAssert</a></code> | <code>boolean</code> | Warning: NodeJS only. |
1777
+ | <code><a href="#projalf.ProjalfOptions.property.cdkAssertions">cdkAssertions</a></code> | <code>boolean</code> | Install the assertions library? |
1778
+ | <code><a href="#projalf.ProjalfOptions.property.cdkCliVersion">cdkCliVersion</a></code> | <code>string</code> | Version range of the AWS CDK CLI to depend on. |
1779
+ | <code><a href="#projalf.ProjalfOptions.property.cdkDependencies">cdkDependencies</a></code> | <code>string[]</code> | Which AWS CDKv1 modules this project requires. |
1780
+ | <code><a href="#projalf.ProjalfOptions.property.cdkDependenciesAsDeps">cdkDependenciesAsDeps</a></code> | <code>boolean</code> | If this is enabled (default), all modules declared in `cdkDependencies` will be also added as normal `dependencies` (as well as `peerDependencies`). |
1781
+ | <code><a href="#projalf.ProjalfOptions.property.cdkTestDependencies">cdkTestDependencies</a></code> | <code>string[]</code> | AWS CDK modules required for testing. |
1782
+ | <code><a href="#projalf.ProjalfOptions.property.cdkVersionPinning">cdkVersionPinning</a></code> | <code>boolean</code> | Use pinned version instead of caret version for CDK. |
1783
+ | <code><a href="#projalf.ProjalfOptions.property.constructsVersion">constructsVersion</a></code> | <code>string</code> | Minimum version of the `constructs` library to depend on. |
1784
+ | <code><a href="#projalf.ProjalfOptions.property.app">app</a></code> | <code>string</code> | The command line to execute in order to synthesize the CDK application (language specific). |
1785
+ | <code><a href="#projalf.ProjalfOptions.property.appEntrypoint">appEntrypoint</a></code> | <code>string</code> | The CDK app's entrypoint (relative to the source directory, which is "src" by default). |
1786
+ | <code><a href="#projalf.ProjalfOptions.property.edgeLambdaAutoDiscover">edgeLambdaAutoDiscover</a></code> | <code>boolean</code> | Automatically adds an `cloudfront.experimental.EdgeFunction` for each `.edge-lambda.ts` handler in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project. |
1787
+ | <code><a href="#projalf.ProjalfOptions.property.experimentalIntegRunner">experimentalIntegRunner</a></code> | <code>boolean</code> | Enable experimental support for the AWS CDK integ-runner. |
1788
+ | <code><a href="#projalf.ProjalfOptions.property.integrationTestAutoDiscover">integrationTestAutoDiscover</a></code> | <code>boolean</code> | Automatically discovers and creates integration tests for each `.integ.ts` file in under your test directory. |
1789
+ | <code><a href="#projalf.ProjalfOptions.property.lambdaAutoDiscover">lambdaAutoDiscover</a></code> | <code>boolean</code> | Automatically adds an `awscdk.LambdaFunction` for each `.lambda.ts` handler in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project. |
1790
+ | <code><a href="#projalf.ProjalfOptions.property.lambdaExtensionAutoDiscover">lambdaExtensionAutoDiscover</a></code> | <code>boolean</code> | Automatically adds an `awscdk.LambdaExtension` for each `.lambda-extension.ts` entrypoint in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project. |
1791
+ | <code><a href="#projalf.ProjalfOptions.property.lambdaOptions">lambdaOptions</a></code> | <code>projen.awscdk.LambdaFunctionCommonOptions</code> | Common options for all AWS Lambda functions. |
1792
+
1793
+ ---
1794
+
1795
+ ##### `name`<sup>Required</sup> <a name="name" id="projalf.ProjalfOptions.property.name"></a>
1796
+
1797
+ ```typescript
1798
+ public readonly name: string;
1799
+ ```
1800
+
1801
+ - *Type:* string
1802
+ - *Default:* $BASEDIR
1803
+
1804
+ This is the name of your project.
1805
+
1806
+ ---
1807
+
1808
+ ##### `commitGenerated`<sup>Optional</sup> <a name="commitGenerated" id="projalf.ProjalfOptions.property.commitGenerated"></a>
1809
+
1810
+ ```typescript
1811
+ public readonly commitGenerated: boolean;
1812
+ ```
1813
+
1814
+ - *Type:* boolean
1815
+ - *Default:* true
1816
+
1817
+ Whether to commit the managed files by default.
1818
+
1819
+ ---
1820
+
1821
+ ##### `gitIgnoreOptions`<sup>Optional</sup> <a name="gitIgnoreOptions" id="projalf.ProjalfOptions.property.gitIgnoreOptions"></a>
1822
+
1823
+ ```typescript
1824
+ public readonly gitIgnoreOptions: IgnoreFileOptions;
1825
+ ```
1826
+
1827
+ - *Type:* projen.IgnoreFileOptions
1828
+
1829
+ Configuration options for .gitignore file.
1830
+
1831
+ ---
1832
+
1833
+ ##### `gitOptions`<sup>Optional</sup> <a name="gitOptions" id="projalf.ProjalfOptions.property.gitOptions"></a>
1834
+
1835
+ ```typescript
1836
+ public readonly gitOptions: GitOptions;
1837
+ ```
1838
+
1839
+ - *Type:* projen.GitOptions
1840
+
1841
+ Configuration options for git.
1842
+
1843
+ ---
1844
+
1845
+ ##### `logging`<sup>Optional</sup> <a name="logging" id="projalf.ProjalfOptions.property.logging"></a>
1846
+
1847
+ ```typescript
1848
+ public readonly logging: LoggerOptions;
1849
+ ```
1850
+
1851
+ - *Type:* projen.LoggerOptions
1852
+ - *Default:* {}
1853
+
1854
+ Configure logging options such as verbosity.
1855
+
1856
+ ---
1857
+
1858
+ ##### `outdir`<sup>Optional</sup> <a name="outdir" id="projalf.ProjalfOptions.property.outdir"></a>
1859
+
1860
+ ```typescript
1861
+ public readonly outdir: string;
1862
+ ```
1863
+
1864
+ - *Type:* string
1865
+ - *Default:* "."
1866
+
1867
+ The root directory of the project.
1868
+
1869
+ Relative to this directory, all files are synthesized.
1870
+
1871
+ If this project has a parent, this directory is relative to the parent
1872
+ directory and it cannot be the same as the parent or any of it's other
1873
+ subprojects.
1874
+
1875
+ ---
1876
+
1877
+ ##### `parent`<sup>Optional</sup> <a name="parent" id="projalf.ProjalfOptions.property.parent"></a>
1878
+
1879
+ ```typescript
1880
+ public readonly parent: Project;
1881
+ ```
1882
+
1883
+ - *Type:* projen.Project
1884
+
1885
+ The parent project, if this project is part of a bigger project.
1886
+
1887
+ ---
1888
+
1889
+ ##### `projenCommand`<sup>Optional</sup> <a name="projenCommand" id="projalf.ProjalfOptions.property.projenCommand"></a>
1890
+
1891
+ ```typescript
1892
+ public readonly projenCommand: string;
1893
+ ```
1894
+
1895
+ - *Type:* string
1896
+ - *Default:* "npx projen"
1897
+
1898
+ The shell command to use in order to run the projen CLI.
1899
+
1900
+ Can be used to customize in special environments.
1901
+
1902
+ ---
1903
+
1904
+ ##### `projenrcJson`<sup>Optional</sup> <a name="projenrcJson" id="projalf.ProjalfOptions.property.projenrcJson"></a>
1905
+
1906
+ ```typescript
1907
+ public readonly projenrcJson: boolean;
1908
+ ```
1909
+
1910
+ - *Type:* boolean
1911
+ - *Default:* false
1912
+
1913
+ Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation.
1914
+
1915
+ ---
1916
+
1917
+ ##### `projenrcJsonOptions`<sup>Optional</sup> <a name="projenrcJsonOptions" id="projalf.ProjalfOptions.property.projenrcJsonOptions"></a>
1918
+
1919
+ ```typescript
1920
+ public readonly projenrcJsonOptions: ProjenrcJsonOptions;
1921
+ ```
1922
+
1923
+ - *Type:* projen.ProjenrcJsonOptions
1924
+ - *Default:* default options
1925
+
1926
+ Options for .projenrc.json.
1927
+
1928
+ ---
1929
+
1930
+ ##### `renovatebot`<sup>Optional</sup> <a name="renovatebot" id="projalf.ProjalfOptions.property.renovatebot"></a>
1931
+
1932
+ ```typescript
1933
+ public readonly renovatebot: boolean;
1934
+ ```
1935
+
1936
+ - *Type:* boolean
1937
+ - *Default:* false
1938
+
1939
+ Use renovatebot to handle dependency upgrades.
1940
+
1941
+ ---
1942
+
1943
+ ##### `renovatebotOptions`<sup>Optional</sup> <a name="renovatebotOptions" id="projalf.ProjalfOptions.property.renovatebotOptions"></a>
1944
+
1945
+ ```typescript
1946
+ public readonly renovatebotOptions: RenovatebotOptions;
1947
+ ```
1948
+
1949
+ - *Type:* projen.RenovatebotOptions
1950
+ - *Default:* default options
1951
+
1952
+ Options for renovatebot.
1953
+
1954
+ ---
1955
+
1956
+ ##### `autoApproveOptions`<sup>Optional</sup> <a name="autoApproveOptions" id="projalf.ProjalfOptions.property.autoApproveOptions"></a>
1957
+
1958
+ ```typescript
1959
+ public readonly autoApproveOptions: AutoApproveOptions;
1960
+ ```
1961
+
1962
+ - *Type:* projen.github.AutoApproveOptions
1963
+ - *Default:* auto approve is disabled
1964
+
1965
+ Enable and configure the 'auto approve' workflow.
1966
+
1967
+ ---
1968
+
1969
+ ##### `autoMerge`<sup>Optional</sup> <a name="autoMerge" id="projalf.ProjalfOptions.property.autoMerge"></a>
1970
+
1971
+ ```typescript
1972
+ public readonly autoMerge: boolean;
1973
+ ```
1974
+
1975
+ - *Type:* boolean
1976
+ - *Default:* true
1977
+
1978
+ Enable automatic merging on GitHub.
1979
+
1980
+ Has no effect if `github.mergify`
1981
+ is set to false.
1982
+
1983
+ ---
1984
+
1985
+ ##### `autoMergeOptions`<sup>Optional</sup> <a name="autoMergeOptions" id="projalf.ProjalfOptions.property.autoMergeOptions"></a>
1986
+
1987
+ ```typescript
1988
+ public readonly autoMergeOptions: AutoMergeOptions;
1989
+ ```
1990
+
1991
+ - *Type:* projen.github.AutoMergeOptions
1992
+ - *Default:* see defaults in `AutoMergeOptions`
1993
+
1994
+ Configure options for automatic merging on GitHub.
1995
+
1996
+ Has no effect if
1997
+ `github.mergify` or `autoMerge` is set to false.
1998
+
1999
+ ---
2000
+
2001
+ ##### `clobber`<sup>Optional</sup> <a name="clobber" id="projalf.ProjalfOptions.property.clobber"></a>
2002
+
2003
+ ```typescript
2004
+ public readonly clobber: boolean;
2005
+ ```
2006
+
2007
+ - *Type:* boolean
2008
+ - *Default:* true, but false for subprojects
2009
+
2010
+ Add a `clobber` task which resets the repo to origin.
2011
+
2012
+ ---
2013
+
2014
+ ##### `devContainer`<sup>Optional</sup> <a name="devContainer" id="projalf.ProjalfOptions.property.devContainer"></a>
2015
+
2016
+ ```typescript
2017
+ public readonly devContainer: boolean;
2018
+ ```
2019
+
2020
+ - *Type:* boolean
2021
+ - *Default:* false
2022
+
2023
+ Add a VSCode development environment (used for GitHub Codespaces).
2024
+
2025
+ ---
2026
+
2027
+ ##### `github`<sup>Optional</sup> <a name="github" id="projalf.ProjalfOptions.property.github"></a>
2028
+
2029
+ ```typescript
2030
+ public readonly github: boolean;
2031
+ ```
2032
+
2033
+ - *Type:* boolean
2034
+ - *Default:* true
2035
+
2036
+ Enable GitHub integration.
2037
+
2038
+ Enabled by default for root projects. Disabled for non-root projects.
2039
+
2040
+ ---
2041
+
2042
+ ##### `githubOptions`<sup>Optional</sup> <a name="githubOptions" id="projalf.ProjalfOptions.property.githubOptions"></a>
2043
+
2044
+ ```typescript
2045
+ public readonly githubOptions: GitHubOptions;
2046
+ ```
2047
+
2048
+ - *Type:* projen.github.GitHubOptions
2049
+ - *Default:* see GitHubOptions
2050
+
2051
+ Options for GitHub integration.
2052
+
2053
+ ---
2054
+
2055
+ ##### `gitpod`<sup>Optional</sup> <a name="gitpod" id="projalf.ProjalfOptions.property.gitpod"></a>
2056
+
2057
+ ```typescript
2058
+ public readonly gitpod: boolean;
2059
+ ```
2060
+
2061
+ - *Type:* boolean
2062
+ - *Default:* false
2063
+
2064
+ Add a Gitpod development environment.
2065
+
2066
+ ---
2067
+
2068
+ ##### ~~`mergify`~~<sup>Optional</sup> <a name="mergify" id="projalf.ProjalfOptions.property.mergify"></a>
2069
+
2070
+ - *Deprecated:* use `githubOptions.mergify` instead
2071
+
2072
+ ```typescript
2073
+ public readonly mergify: boolean;
2074
+ ```
2075
+
2076
+ - *Type:* boolean
2077
+ - *Default:* true
2078
+
2079
+ Whether mergify should be enabled on this repository or not.
2080
+
2081
+ ---
2082
+
2083
+ ##### ~~`mergifyOptions`~~<sup>Optional</sup> <a name="mergifyOptions" id="projalf.ProjalfOptions.property.mergifyOptions"></a>
2084
+
2085
+ - *Deprecated:* use `githubOptions.mergifyOptions` instead
2086
+
2087
+ ```typescript
2088
+ public readonly mergifyOptions: MergifyOptions;
2089
+ ```
2090
+
2091
+ - *Type:* projen.github.MergifyOptions
2092
+ - *Default:* default options
2093
+
2094
+ Options for mergify.
2095
+
2096
+ ---
2097
+
2098
+ ##### ~~`projectType`~~<sup>Optional</sup> <a name="projectType" id="projalf.ProjalfOptions.property.projectType"></a>
2099
+
2100
+ - *Deprecated:* no longer supported at the base project level
2101
+
2102
+ ```typescript
2103
+ public readonly projectType: ProjectType;
2104
+ ```
2105
+
2106
+ - *Type:* projen.ProjectType
2107
+ - *Default:* ProjectType.UNKNOWN
2108
+
2109
+ Which type of project this is (library/app).
2110
+
2111
+ ---
2112
+
2113
+ ##### `projenCredentials`<sup>Optional</sup> <a name="projenCredentials" id="projalf.ProjalfOptions.property.projenCredentials"></a>
2114
+
2115
+ ```typescript
2116
+ public readonly projenCredentials: GithubCredentials;
2117
+ ```
2118
+
2119
+ - *Type:* projen.github.GithubCredentials
2120
+ - *Default:* use a personal access token named PROJEN_GITHUB_TOKEN
2121
+
2122
+ Choose a method of providing GitHub API access for projen workflows.
2123
+
2124
+ ---
2125
+
2126
+ ##### ~~`projenTokenSecret`~~<sup>Optional</sup> <a name="projenTokenSecret" id="projalf.ProjalfOptions.property.projenTokenSecret"></a>
2127
+
2128
+ - *Deprecated:* use `projenCredentials`
2129
+
2130
+ ```typescript
2131
+ public readonly projenTokenSecret: string;
2132
+ ```
2133
+
2134
+ - *Type:* string
2135
+ - *Default:* "PROJEN_GITHUB_TOKEN"
2136
+
2137
+ The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows.
2138
+
2139
+ This token needs to have the `repo`, `workflows`
2140
+ and `packages` scope.
2141
+
2142
+ ---
2143
+
2144
+ ##### `readme`<sup>Optional</sup> <a name="readme" id="projalf.ProjalfOptions.property.readme"></a>
2145
+
2146
+ ```typescript
2147
+ public readonly readme: SampleReadmeProps;
2148
+ ```
2149
+
2150
+ - *Type:* projen.SampleReadmeProps
2151
+ - *Default:* { filename: 'README.md', contents: '# replace this' }
2152
+
2153
+ The README setup.
2154
+
2155
+ ---
2156
+
2157
+ *Example*
2158
+
2159
+ ```typescript
2160
+ "{ filename: 'readme.md', contents: '# title' }"
2161
+ ```
2162
+
2163
+
2164
+ ##### `stale`<sup>Optional</sup> <a name="stale" id="projalf.ProjalfOptions.property.stale"></a>
2165
+
2166
+ ```typescript
2167
+ public readonly stale: boolean;
2168
+ ```
2169
+
2170
+ - *Type:* boolean
2171
+ - *Default:* false
2172
+
2173
+ Auto-close of stale issues and pull request.
2174
+
2175
+ See `staleOptions` for options.
2176
+
2177
+ ---
2178
+
2179
+ ##### `staleOptions`<sup>Optional</sup> <a name="staleOptions" id="projalf.ProjalfOptions.property.staleOptions"></a>
2180
+
2181
+ ```typescript
2182
+ public readonly staleOptions: StaleOptions;
2183
+ ```
2184
+
2185
+ - *Type:* projen.github.StaleOptions
2186
+ - *Default:* see defaults in `StaleOptions`
2187
+
2188
+ Auto-close stale issues and pull requests.
2189
+
2190
+ To disable set `stale` to `false`.
2191
+
2192
+ ---
2193
+
2194
+ ##### `vscode`<sup>Optional</sup> <a name="vscode" id="projalf.ProjalfOptions.property.vscode"></a>
2195
+
2196
+ ```typescript
2197
+ public readonly vscode: boolean;
2198
+ ```
2199
+
2200
+ - *Type:* boolean
2201
+ - *Default:* true
2202
+
2203
+ Enable VSCode integration.
2204
+
2205
+ Enabled by default for root projects. Disabled for non-root projects.
2206
+
2207
+ ---
2208
+
2209
+ ##### `allowLibraryDependencies`<sup>Optional</sup> <a name="allowLibraryDependencies" id="projalf.ProjalfOptions.property.allowLibraryDependencies"></a>
2210
+
2211
+ ```typescript
2212
+ public readonly allowLibraryDependencies: boolean;
2213
+ ```
2214
+
2215
+ - *Type:* boolean
2216
+ - *Default:* true
2217
+
2218
+ Allow the project to include `peerDependencies` and `bundledDependencies`.
2219
+
2220
+ This is normally only allowed for libraries. For apps, there's no meaning
2221
+ for specifying these.
2222
+
2223
+ ---
2224
+
2225
+ ##### `authorEmail`<sup>Optional</sup> <a name="authorEmail" id="projalf.ProjalfOptions.property.authorEmail"></a>
2226
+
2227
+ ```typescript
2228
+ public readonly authorEmail: string;
2229
+ ```
2230
+
2231
+ - *Type:* string
2232
+
2233
+ Author's e-mail.
2234
+
2235
+ ---
2236
+
2237
+ ##### `authorName`<sup>Optional</sup> <a name="authorName" id="projalf.ProjalfOptions.property.authorName"></a>
2238
+
2239
+ ```typescript
2240
+ public readonly authorName: string;
2241
+ ```
2242
+
2243
+ - *Type:* string
2244
+
2245
+ Author's name.
2246
+
2247
+ ---
2248
+
2249
+ ##### `authorOrganization`<sup>Optional</sup> <a name="authorOrganization" id="projalf.ProjalfOptions.property.authorOrganization"></a>
2250
+
2251
+ ```typescript
2252
+ public readonly authorOrganization: boolean;
2253
+ ```
2254
+
2255
+ - *Type:* boolean
2256
+
2257
+ Is the author an organization.
2258
+
2259
+ ---
2260
+
2261
+ ##### `authorUrl`<sup>Optional</sup> <a name="authorUrl" id="projalf.ProjalfOptions.property.authorUrl"></a>
2262
+
2263
+ ```typescript
2264
+ public readonly authorUrl: string;
2265
+ ```
2266
+
2267
+ - *Type:* string
2268
+
2269
+ Author's URL / Website.
2270
+
2271
+ ---
2272
+
2273
+ ##### `autoDetectBin`<sup>Optional</sup> <a name="autoDetectBin" id="projalf.ProjalfOptions.property.autoDetectBin"></a>
2274
+
2275
+ ```typescript
2276
+ public readonly autoDetectBin: boolean;
2277
+ ```
2278
+
2279
+ - *Type:* boolean
2280
+ - *Default:* true
2281
+
2282
+ Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section.
2283
+
2284
+ ---
2285
+
2286
+ ##### `bin`<sup>Optional</sup> <a name="bin" id="projalf.ProjalfOptions.property.bin"></a>
2287
+
2288
+ ```typescript
2289
+ public readonly bin: {[ key: string ]: string};
2290
+ ```
2291
+
2292
+ - *Type:* {[ key: string ]: string}
2293
+
2294
+ Binary programs vended with your module.
2295
+
2296
+ You can use this option to add/customize how binaries are represented in
2297
+ your `package.json`, but unless `autoDetectBin` is `false`, every
2298
+ executable file under `bin` will automatically be added to this section.
2299
+
2300
+ ---
2301
+
2302
+ ##### `bugsEmail`<sup>Optional</sup> <a name="bugsEmail" id="projalf.ProjalfOptions.property.bugsEmail"></a>
2303
+
2304
+ ```typescript
2305
+ public readonly bugsEmail: string;
2306
+ ```
2307
+
2308
+ - *Type:* string
2309
+
2310
+ The email address to which issues should be reported.
2311
+
2312
+ ---
2313
+
2314
+ ##### `bugsUrl`<sup>Optional</sup> <a name="bugsUrl" id="projalf.ProjalfOptions.property.bugsUrl"></a>
2315
+
2316
+ ```typescript
2317
+ public readonly bugsUrl: string;
2318
+ ```
2319
+
2320
+ - *Type:* string
2321
+
2322
+ The url to your project's issue tracker.
2323
+
2324
+ ---
2325
+
2326
+ ##### `bundledDeps`<sup>Optional</sup> <a name="bundledDeps" id="projalf.ProjalfOptions.property.bundledDeps"></a>
2327
+
2328
+ ```typescript
2329
+ public readonly bundledDeps: string[];
2330
+ ```
2331
+
2332
+ - *Type:* string[]
2333
+
2334
+ List of dependencies to bundle into this module.
2335
+
2336
+ These modules will be
2337
+ added both to the `dependencies` section and `bundledDependencies` section of
2338
+ your `package.json`.
2339
+
2340
+ The recommendation is to only specify the module name here (e.g.
2341
+ `express`). This will behave similar to `yarn add` or `npm install` in the
2342
+ sense that it will add the module as a dependency to your `package.json`
2343
+ file with the latest version (`^`). You can specify semver requirements in
2344
+ the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and
2345
+ this will be what you `package.json` will eventually include.
2346
+
2347
+ ---
2348
+
2349
+ ##### `bunVersion`<sup>Optional</sup> <a name="bunVersion" id="projalf.ProjalfOptions.property.bunVersion"></a>
2350
+
2351
+ ```typescript
2352
+ public readonly bunVersion: string;
2353
+ ```
2354
+
2355
+ - *Type:* string
2356
+ - *Default:* "latest"
2357
+
2358
+ The version of Bun to use if using Bun as a package manager.
2359
+
2360
+ ---
2361
+
2362
+ ##### `codeArtifactOptions`<sup>Optional</sup> <a name="codeArtifactOptions" id="projalf.ProjalfOptions.property.codeArtifactOptions"></a>
2363
+
2364
+ ```typescript
2365
+ public readonly codeArtifactOptions: CodeArtifactOptions;
2366
+ ```
2367
+
2368
+ - *Type:* projen.javascript.CodeArtifactOptions
2369
+ - *Default:* undefined
2370
+
2371
+ Options for npm packages using AWS CodeArtifact.
2372
+
2373
+ This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact
2374
+
2375
+ ---
2376
+
2377
+ ##### `deps`<sup>Optional</sup> <a name="deps" id="projalf.ProjalfOptions.property.deps"></a>
2378
+
2379
+ ```typescript
2380
+ public readonly deps: string[];
2381
+ ```
2382
+
2383
+ - *Type:* string[]
2384
+ - *Default:* []
2385
+
2386
+ Runtime dependencies of this module.
2387
+
2388
+ The recommendation is to only specify the module name here (e.g.
2389
+ `express`). This will behave similar to `yarn add` or `npm install` in the
2390
+ sense that it will add the module as a dependency to your `package.json`
2391
+ file with the latest version (`^`). You can specify semver requirements in
2392
+ the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and
2393
+ this will be what you `package.json` will eventually include.
2394
+
2395
+ ---
2396
+
2397
+ *Example*
2398
+
2399
+ ```typescript
2400
+ [ 'express', 'lodash', 'foo@^2' ]
2401
+ ```
2402
+
2403
+
2404
+ ##### `description`<sup>Optional</sup> <a name="description" id="projalf.ProjalfOptions.property.description"></a>
2405
+
2406
+ ```typescript
2407
+ public readonly description: string;
2408
+ ```
2409
+
2410
+ - *Type:* string
2411
+
2412
+ The description is just a string that helps people understand the purpose of the package.
2413
+
2414
+ It can be used when searching for packages in a package manager as well.
2415
+ See https://classic.yarnpkg.com/en/docs/package-json/#toc-description
2416
+
2417
+ ---
2418
+
2419
+ ##### `devDeps`<sup>Optional</sup> <a name="devDeps" id="projalf.ProjalfOptions.property.devDeps"></a>
2420
+
2421
+ ```typescript
2422
+ public readonly devDeps: string[];
2423
+ ```
2424
+
2425
+ - *Type:* string[]
2426
+ - *Default:* []
2427
+
2428
+ Build dependencies for this module.
2429
+
2430
+ These dependencies will only be
2431
+ available in your build environment but will not be fetched when this
2432
+ module is consumed.
2433
+
2434
+ The recommendation is to only specify the module name here (e.g.
2435
+ `express`). This will behave similar to `yarn add` or `npm install` in the
2436
+ sense that it will add the module as a dependency to your `package.json`
2437
+ file with the latest version (`^`). You can specify semver requirements in
2438
+ the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and
2439
+ this will be what you `package.json` will eventually include.
2440
+
2441
+ ---
2442
+
2443
+ *Example*
2444
+
2445
+ ```typescript
2446
+ [ 'typescript', '@types/express' ]
2447
+ ```
2448
+
2449
+
2450
+ ##### `entrypoint`<sup>Optional</sup> <a name="entrypoint" id="projalf.ProjalfOptions.property.entrypoint"></a>
2451
+
2452
+ ```typescript
2453
+ public readonly entrypoint: string;
2454
+ ```
2455
+
2456
+ - *Type:* string
2457
+ - *Default:* "lib/index.js"
2458
+
2459
+ Module entrypoint (`main` in `package.json`).
2460
+
2461
+ Set to an empty string to not include `main` in your package.json
2462
+
2463
+ ---
2464
+
2465
+ ##### `homepage`<sup>Optional</sup> <a name="homepage" id="projalf.ProjalfOptions.property.homepage"></a>
2466
+
2467
+ ```typescript
2468
+ public readonly homepage: string;
2469
+ ```
2470
+
2471
+ - *Type:* string
2472
+
2473
+ Package's Homepage / Website.
2474
+
2475
+ ---
2476
+
2477
+ ##### `keywords`<sup>Optional</sup> <a name="keywords" id="projalf.ProjalfOptions.property.keywords"></a>
2478
+
2479
+ ```typescript
2480
+ public readonly keywords: string[];
2481
+ ```
2482
+
2483
+ - *Type:* string[]
2484
+
2485
+ Keywords to include in `package.json`.
2486
+
2487
+ ---
2488
+
2489
+ ##### `license`<sup>Optional</sup> <a name="license" id="projalf.ProjalfOptions.property.license"></a>
2490
+
2491
+ ```typescript
2492
+ public readonly license: string;
2493
+ ```
2494
+
2495
+ - *Type:* string
2496
+ - *Default:* "Apache-2.0"
2497
+
2498
+ License's SPDX identifier.
2499
+
2500
+ See https://github.com/projen/projen/tree/main/license-text for a list of supported licenses.
2501
+ Use the `licensed` option if you want to no license to be specified.
2502
+
2503
+ ---
2504
+
2505
+ ##### `licensed`<sup>Optional</sup> <a name="licensed" id="projalf.ProjalfOptions.property.licensed"></a>
2506
+
2507
+ ```typescript
2508
+ public readonly licensed: boolean;
2509
+ ```
2510
+
2511
+ - *Type:* boolean
2512
+ - *Default:* true
2513
+
2514
+ Indicates if a license should be added.
2515
+
2516
+ ---
2517
+
2518
+ ##### `maxNodeVersion`<sup>Optional</sup> <a name="maxNodeVersion" id="projalf.ProjalfOptions.property.maxNodeVersion"></a>
2519
+
2520
+ ```typescript
2521
+ public readonly maxNodeVersion: string;
2522
+ ```
2523
+
2524
+ - *Type:* string
2525
+ - *Default:* no maximum version is enforced
2526
+
2527
+ The maximum node version supported by this package. Most projects should not use this option.
2528
+
2529
+ The value indicates that the package is incompatible with any newer versions of node.
2530
+ This requirement is enforced via the engines field.
2531
+
2532
+ You will normally not need to set this option.
2533
+ Consider this option only if your package is known to not function with newer versions of node.
2534
+
2535
+ ---
2536
+
2537
+ ##### `minNodeVersion`<sup>Optional</sup> <a name="minNodeVersion" id="projalf.ProjalfOptions.property.minNodeVersion"></a>
2538
+
2539
+ ```typescript
2540
+ public readonly minNodeVersion: string;
2541
+ ```
2542
+
2543
+ - *Type:* string
2544
+ - *Default:* no minimum version is enforced
2545
+
2546
+ The minimum node version required by this package to function. Most projects should not use this option.
2547
+
2548
+ The value indicates that the package is incompatible with any older versions of node.
2549
+ This requirement is enforced via the engines field.
2550
+
2551
+ You will normally not need to set this option, even if your package is incompatible with EOL versions of node.
2552
+ Consider this option only if your package depends on a specific feature, that is not available in other LTS versions.
2553
+ Setting this option has very high impact on the consumers of your package,
2554
+ as package managers will actively prevent usage with node versions you have marked as incompatible.
2555
+
2556
+ To change the node version of your CI/CD workflows, use `workflowNodeVersion`.
2557
+
2558
+ ---
2559
+
2560
+ ##### `npmAccess`<sup>Optional</sup> <a name="npmAccess" id="projalf.ProjalfOptions.property.npmAccess"></a>
2561
+
2562
+ ```typescript
2563
+ public readonly npmAccess: NpmAccess;
2564
+ ```
2565
+
2566
+ - *Type:* projen.javascript.NpmAccess
2567
+ - *Default:* for scoped packages (e.g. `foo@bar`), the default is `NpmAccess.RESTRICTED`, for non-scoped packages, the default is `NpmAccess.PUBLIC`.
2568
+
2569
+ Access level of the npm package.
2570
+
2571
+ ---
2572
+
2573
+ ##### `npmProvenance`<sup>Optional</sup> <a name="npmProvenance" id="projalf.ProjalfOptions.property.npmProvenance"></a>
2574
+
2575
+ ```typescript
2576
+ public readonly npmProvenance: boolean;
2577
+ ```
2578
+
2579
+ - *Type:* boolean
2580
+ - *Default:* true for public packages, false otherwise
2581
+
2582
+ Should provenance statements be generated when the package is published.
2583
+
2584
+ A supported package manager is required to publish a package with npm provenance statements and
2585
+ you will need to use a supported CI/CD provider.
2586
+
2587
+ Note that the projen `Release` and `Publisher` components are using `publib` to publish packages,
2588
+ which is using npm internally and supports provenance statements independently of the package manager used.
2589
+
2590
+ > [https://docs.npmjs.com/generating-provenance-statements](https://docs.npmjs.com/generating-provenance-statements)
2591
+
2592
+ ---
2593
+
2594
+ ##### ~~`npmRegistry`~~<sup>Optional</sup> <a name="npmRegistry" id="projalf.ProjalfOptions.property.npmRegistry"></a>
2595
+
2596
+ - *Deprecated:* use `npmRegistryUrl` instead
2597
+
2598
+ ```typescript
2599
+ public readonly npmRegistry: string;
2600
+ ```
2601
+
2602
+ - *Type:* string
2603
+
2604
+ The host name of the npm registry to publish to.
2605
+
2606
+ Cannot be set together with `npmRegistryUrl`.
2607
+
2608
+ ---
2609
+
2610
+ ##### `npmRegistryUrl`<sup>Optional</sup> <a name="npmRegistryUrl" id="projalf.ProjalfOptions.property.npmRegistryUrl"></a>
2611
+
2612
+ ```typescript
2613
+ public readonly npmRegistryUrl: string;
2614
+ ```
2615
+
2616
+ - *Type:* string
2617
+ - *Default:* "https://registry.npmjs.org"
2618
+
2619
+ The base URL of the npm package registry.
2620
+
2621
+ Must be a URL (e.g. start with "https://" or "http://")
2622
+
2623
+ ---
2624
+
2625
+ ##### `npmTokenSecret`<sup>Optional</sup> <a name="npmTokenSecret" id="projalf.ProjalfOptions.property.npmTokenSecret"></a>
2626
+
2627
+ ```typescript
2628
+ public readonly npmTokenSecret: string;
2629
+ ```
2630
+
2631
+ - *Type:* string
2632
+ - *Default:* "NPM_TOKEN"
2633
+
2634
+ GitHub secret which contains the NPM token to use when publishing packages.
2635
+
2636
+ ---
2637
+
2638
+ ##### `packageManager`<sup>Optional</sup> <a name="packageManager" id="projalf.ProjalfOptions.property.packageManager"></a>
2639
+
2640
+ ```typescript
2641
+ public readonly packageManager: NodePackageManager;
2642
+ ```
2643
+
2644
+ - *Type:* projen.javascript.NodePackageManager
2645
+ - *Default:* NodePackageManager.YARN_CLASSIC
2646
+
2647
+ The Node Package Manager used to execute scripts.
2648
+
2649
+ ---
2650
+
2651
+ ##### `packageName`<sup>Optional</sup> <a name="packageName" id="projalf.ProjalfOptions.property.packageName"></a>
2652
+
2653
+ ```typescript
2654
+ public readonly packageName: string;
2655
+ ```
2656
+
2657
+ - *Type:* string
2658
+ - *Default:* defaults to project name
2659
+
2660
+ The "name" in package.json.
2661
+
2662
+ ---
2663
+
2664
+ ##### `peerDependencyOptions`<sup>Optional</sup> <a name="peerDependencyOptions" id="projalf.ProjalfOptions.property.peerDependencyOptions"></a>
2665
+
2666
+ ```typescript
2667
+ public readonly peerDependencyOptions: PeerDependencyOptions;
2668
+ ```
2669
+
2670
+ - *Type:* projen.javascript.PeerDependencyOptions
2671
+
2672
+ Options for `peerDeps`.
2673
+
2674
+ ---
2675
+
2676
+ ##### `peerDeps`<sup>Optional</sup> <a name="peerDeps" id="projalf.ProjalfOptions.property.peerDeps"></a>
2677
+
2678
+ ```typescript
2679
+ public readonly peerDeps: string[];
2680
+ ```
2681
+
2682
+ - *Type:* string[]
2683
+ - *Default:* []
2684
+
2685
+ Peer dependencies for this module.
2686
+
2687
+ Dependencies listed here are required to
2688
+ be installed (and satisfied) by the _consumer_ of this library. Using peer
2689
+ dependencies allows you to ensure that only a single module of a certain
2690
+ library exists in the `node_modules` tree of your consumers.
2691
+
2692
+ Note that prior to npm@7, peer dependencies are _not_ automatically
2693
+ installed, which means that adding peer dependencies to a library will be a
2694
+ breaking change for your customers.
2695
+
2696
+ Unless `peerDependencyOptions.pinnedDevDependency` is disabled (it is
2697
+ enabled by default), projen will automatically add a dev dependency with a
2698
+ pinned version for each peer dependency. This will ensure that you build &
2699
+ test your module against the lowest peer version required.
2700
+
2701
+ ---
2702
+
2703
+ ##### `pnpmVersion`<sup>Optional</sup> <a name="pnpmVersion" id="projalf.ProjalfOptions.property.pnpmVersion"></a>
2704
+
2705
+ ```typescript
2706
+ public readonly pnpmVersion: string;
2707
+ ```
2708
+
2709
+ - *Type:* string
2710
+ - *Default:* "9"
2711
+
2712
+ The version of PNPM to use if using PNPM as a package manager.
2713
+
2714
+ ---
2715
+
2716
+ ##### `repository`<sup>Optional</sup> <a name="repository" id="projalf.ProjalfOptions.property.repository"></a>
2717
+
2718
+ ```typescript
2719
+ public readonly repository: string;
2720
+ ```
2721
+
2722
+ - *Type:* string
2723
+
2724
+ The repository is the location where the actual code for your package lives.
2725
+
2726
+ See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository
2727
+
2728
+ ---
2729
+
2730
+ ##### `repositoryDirectory`<sup>Optional</sup> <a name="repositoryDirectory" id="projalf.ProjalfOptions.property.repositoryDirectory"></a>
2731
+
2732
+ ```typescript
2733
+ public readonly repositoryDirectory: string;
2734
+ ```
2735
+
2736
+ - *Type:* string
2737
+
2738
+ If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives.
2739
+
2740
+ ---
2741
+
2742
+ ##### `scopedPackagesOptions`<sup>Optional</sup> <a name="scopedPackagesOptions" id="projalf.ProjalfOptions.property.scopedPackagesOptions"></a>
2743
+
2744
+ ```typescript
2745
+ public readonly scopedPackagesOptions: ScopedPackagesOptions[];
2746
+ ```
2747
+
2748
+ - *Type:* projen.javascript.ScopedPackagesOptions[]
2749
+ - *Default:* fetch all scoped packages from the public npm registry
2750
+
2751
+ Options for privately hosted scoped packages.
2752
+
2753
+ ---
2754
+
2755
+ ##### ~~`scripts`~~<sup>Optional</sup> <a name="scripts" id="projalf.ProjalfOptions.property.scripts"></a>
2756
+
2757
+ - *Deprecated:* use `project.addTask()` or `package.setScript()`
2758
+
2759
+ ```typescript
2760
+ public readonly scripts: {[ key: string ]: string};
2761
+ ```
2762
+
2763
+ - *Type:* {[ key: string ]: string}
2764
+ - *Default:* {}
2765
+
2766
+ npm scripts to include.
2767
+
2768
+ If a script has the same name as a standard script,
2769
+ the standard script will be overwritten.
2770
+ Also adds the script as a task.
2771
+
2772
+ ---
2773
+
2774
+ ##### `stability`<sup>Optional</sup> <a name="stability" id="projalf.ProjalfOptions.property.stability"></a>
2775
+
2776
+ ```typescript
2777
+ public readonly stability: string;
2778
+ ```
2779
+
2780
+ - *Type:* string
2781
+
2782
+ Package's Stability.
2783
+
2784
+ ---
2785
+
2786
+ ##### `yarnBerryOptions`<sup>Optional</sup> <a name="yarnBerryOptions" id="projalf.ProjalfOptions.property.yarnBerryOptions"></a>
2787
+
2788
+ ```typescript
2789
+ public readonly yarnBerryOptions: YarnBerryOptions;
2790
+ ```
2791
+
2792
+ - *Type:* projen.javascript.YarnBerryOptions
2793
+ - *Default:* Yarn Berry v4 with all default options
2794
+
2795
+ Options for Yarn Berry.
2796
+
2797
+ ---
2798
+
2799
+ ##### `bumpPackage`<sup>Optional</sup> <a name="bumpPackage" id="projalf.ProjalfOptions.property.bumpPackage"></a>
2800
+
2801
+ ```typescript
2802
+ public readonly bumpPackage: string;
2803
+ ```
2804
+
2805
+ - *Type:* string
2806
+ - *Default:* A recent version of "commit-and-tag-version"
2807
+
2808
+ The `commit-and-tag-version` compatible package used to bump the package version, as a dependency string.
2809
+
2810
+ This can be any compatible package version, including the deprecated `standard-version@9`.
2811
+
2812
+ ---
2813
+
2814
+ ##### `jsiiReleaseVersion`<sup>Optional</sup> <a name="jsiiReleaseVersion" id="projalf.ProjalfOptions.property.jsiiReleaseVersion"></a>
2815
+
2816
+ ```typescript
2817
+ public readonly jsiiReleaseVersion: string;
2818
+ ```
2819
+
2820
+ - *Type:* string
2821
+ - *Default:* "latest"
2822
+
2823
+ Version requirement of `publib` which is used to publish modules to npm.
2824
+
2825
+ ---
2826
+
2827
+ ##### `majorVersion`<sup>Optional</sup> <a name="majorVersion" id="projalf.ProjalfOptions.property.majorVersion"></a>
2828
+
2829
+ ```typescript
2830
+ public readonly majorVersion: number;
2831
+ ```
2832
+
2833
+ - *Type:* number
2834
+ - *Default:* Major version is not enforced.
2835
+
2836
+ Major version to release from the default branch.
2837
+
2838
+ If this is specified, we bump the latest version of this major version line.
2839
+ If not specified, we bump the global latest version.
2840
+
2841
+ ---
2842
+
2843
+ ##### `minMajorVersion`<sup>Optional</sup> <a name="minMajorVersion" id="projalf.ProjalfOptions.property.minMajorVersion"></a>
2844
+
2845
+ ```typescript
2846
+ public readonly minMajorVersion: number;
2847
+ ```
2848
+
2849
+ - *Type:* number
2850
+ - *Default:* No minimum version is being enforced
2851
+
2852
+ Minimal Major version to release.
2853
+
2854
+ This can be useful to set to 1, as breaking changes before the 1.x major
2855
+ release are not incrementing the major version number.
2856
+
2857
+ Can not be set together with `majorVersion`.
2858
+
2859
+ ---
2860
+
2861
+ ##### `nextVersionCommand`<sup>Optional</sup> <a name="nextVersionCommand" id="projalf.ProjalfOptions.property.nextVersionCommand"></a>
2862
+
2863
+ ```typescript
2864
+ public readonly nextVersionCommand: string;
2865
+ ```
2866
+
2867
+ - *Type:* string
2868
+ - *Default:* The next version will be determined based on the commit history and project settings.
2869
+
2870
+ A shell command to control the next version to release.
2871
+
2872
+ If present, this shell command will be run before the bump is executed, and
2873
+ it determines what version to release. It will be executed in the following
2874
+ environment:
2875
+
2876
+ - Working directory: the project directory.
2877
+ - `$VERSION`: the current version. Looks like `1.2.3`.
2878
+ - `$LATEST_TAG`: the most recent tag. Looks like `prefix-v1.2.3`, or may be unset.
2879
+ - `$SUGGESTED_BUMP`: the suggested bump action based on commits. One of `major|minor|patch|none`.
2880
+
2881
+ The command should print one of the following to `stdout`:
2882
+
2883
+ - Nothing: the next version number will be determined based on commit history.
2884
+ - `x.y.z`: the next version number will be `x.y.z`.
2885
+ - `major|minor|patch`: the next version number will be the current version number
2886
+ with the indicated component bumped.
2887
+
2888
+ This setting cannot be specified together with `minMajorVersion`; the invoked
2889
+ script can be used to achieve the effects of `minMajorVersion`.
2890
+
2891
+ ---
2892
+
2893
+ ##### `npmDistTag`<sup>Optional</sup> <a name="npmDistTag" id="projalf.ProjalfOptions.property.npmDistTag"></a>
2894
+
2895
+ ```typescript
2896
+ public readonly npmDistTag: string;
2897
+ ```
2898
+
2899
+ - *Type:* string
2900
+ - *Default:* "latest"
2901
+
2902
+ The npmDistTag to use when publishing from the default branch.
2903
+
2904
+ To set the npm dist-tag for release branches, set the `npmDistTag` property
2905
+ for each branch.
2906
+
2907
+ ---
2908
+
2909
+ ##### `postBuildSteps`<sup>Optional</sup> <a name="postBuildSteps" id="projalf.ProjalfOptions.property.postBuildSteps"></a>
2910
+
2911
+ ```typescript
2912
+ public readonly postBuildSteps: JobStep[];
2913
+ ```
2914
+
2915
+ - *Type:* projen.github.workflows.JobStep[]
2916
+ - *Default:* []
2917
+
2918
+ Steps to execute after build as part of the release workflow.
2919
+
2920
+ ---
2921
+
2922
+ ##### `prerelease`<sup>Optional</sup> <a name="prerelease" id="projalf.ProjalfOptions.property.prerelease"></a>
2923
+
2924
+ ```typescript
2925
+ public readonly prerelease: string;
2926
+ ```
2927
+
2928
+ - *Type:* string
2929
+ - *Default:* normal semantic versions
2930
+
2931
+ Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre").
2932
+
2933
+ ---
2934
+
2935
+ ##### `publishDryRun`<sup>Optional</sup> <a name="publishDryRun" id="projalf.ProjalfOptions.property.publishDryRun"></a>
2936
+
2937
+ ```typescript
2938
+ public readonly publishDryRun: boolean;
2939
+ ```
2940
+
2941
+ - *Type:* boolean
2942
+ - *Default:* false
2943
+
2944
+ Instead of actually publishing to package managers, just print the publishing command.
2945
+
2946
+ ---
2947
+
2948
+ ##### `publishTasks`<sup>Optional</sup> <a name="publishTasks" id="projalf.ProjalfOptions.property.publishTasks"></a>
2949
+
2950
+ ```typescript
2951
+ public readonly publishTasks: boolean;
2952
+ ```
2953
+
2954
+ - *Type:* boolean
2955
+ - *Default:* false
2956
+
2957
+ Define publishing tasks that can be executed manually as well as workflows.
2958
+
2959
+ Normally, publishing only happens within automated workflows. Enable this
2960
+ in order to create a publishing task for each publishing activity.
2961
+
2962
+ ---
2963
+
2964
+ ##### `releasableCommits`<sup>Optional</sup> <a name="releasableCommits" id="projalf.ProjalfOptions.property.releasableCommits"></a>
2965
+
2966
+ ```typescript
2967
+ public readonly releasableCommits: ReleasableCommits;
2968
+ ```
2969
+
2970
+ - *Type:* projen.ReleasableCommits
2971
+ - *Default:* ReleasableCommits.everyCommit()
2972
+
2973
+ Find commits that should be considered releasable Used to decide if a release is required.
2974
+
2975
+ ---
2976
+
2977
+ ##### `releaseBranches`<sup>Optional</sup> <a name="releaseBranches" id="projalf.ProjalfOptions.property.releaseBranches"></a>
2978
+
2979
+ ```typescript
2980
+ public readonly releaseBranches: {[ key: string ]: BranchOptions};
2981
+ ```
2982
+
2983
+ - *Type:* {[ key: string ]: projen.release.BranchOptions}
2984
+ - *Default:* no additional branches are used for release. you can use `addBranch()` to add additional branches.
2985
+
2986
+ Defines additional release branches.
2987
+
2988
+ A workflow will be created for each
2989
+ release branch which will publish releases from commits in this branch.
2990
+ Each release branch _must_ be assigned a major version number which is used
2991
+ to enforce that versions published from that branch always use that major
2992
+ version. If multiple branches are used, the `majorVersion` field must also
2993
+ be provided for the default branch.
2994
+
2995
+ ---
2996
+
2997
+ ##### `releaseEnvironment`<sup>Optional</sup> <a name="releaseEnvironment" id="projalf.ProjalfOptions.property.releaseEnvironment"></a>
2998
+
2999
+ ```typescript
3000
+ public readonly releaseEnvironment: string;
3001
+ ```
3002
+
3003
+ - *Type:* string
3004
+ - *Default:* no environment used, unless set at the artifact level
3005
+
3006
+ The GitHub Actions environment used for the release.
3007
+
3008
+ This can be used to add an explicit approval step to the release
3009
+ or limit who can initiate a release through environment protection rules.
3010
+
3011
+ When multiple artifacts are released, the environment can be overwritten
3012
+ on a per artifact basis.
3013
+
3014
+ ---
3015
+
3016
+ ##### ~~`releaseEveryCommit`~~<sup>Optional</sup> <a name="releaseEveryCommit" id="projalf.ProjalfOptions.property.releaseEveryCommit"></a>
3017
+
3018
+ - *Deprecated:* Use `releaseTrigger: ReleaseTrigger.continuous()` instead
3019
+
3020
+ ```typescript
3021
+ public readonly releaseEveryCommit: boolean;
3022
+ ```
3023
+
3024
+ - *Type:* boolean
3025
+ - *Default:* true
3026
+
3027
+ Automatically release new versions every commit to one of branches in `releaseBranches`.
3028
+
3029
+ ---
3030
+
3031
+ ##### `releaseFailureIssue`<sup>Optional</sup> <a name="releaseFailureIssue" id="projalf.ProjalfOptions.property.releaseFailureIssue"></a>
3032
+
3033
+ ```typescript
3034
+ public readonly releaseFailureIssue: boolean;
3035
+ ```
3036
+
3037
+ - *Type:* boolean
3038
+ - *Default:* false
3039
+
3040
+ Create a github issue on every failed publishing task.
3041
+
3042
+ ---
3043
+
3044
+ ##### `releaseFailureIssueLabel`<sup>Optional</sup> <a name="releaseFailureIssueLabel" id="projalf.ProjalfOptions.property.releaseFailureIssueLabel"></a>
3045
+
3046
+ ```typescript
3047
+ public readonly releaseFailureIssueLabel: string;
3048
+ ```
3049
+
3050
+ - *Type:* string
3051
+ - *Default:* "failed-release"
3052
+
3053
+ The label to apply to issues indicating publish failures.
3054
+
3055
+ Only applies if `releaseFailureIssue` is true.
3056
+
3057
+ ---
3058
+
3059
+ ##### ~~`releaseSchedule`~~<sup>Optional</sup> <a name="releaseSchedule" id="projalf.ProjalfOptions.property.releaseSchedule"></a>
3060
+
3061
+ - *Deprecated:* Use `releaseTrigger: ReleaseTrigger.scheduled()` instead
3062
+
3063
+ ```typescript
3064
+ public readonly releaseSchedule: string;
3065
+ ```
3066
+
3067
+ - *Type:* string
3068
+ - *Default:* no scheduled releases
3069
+
3070
+ CRON schedule to trigger new releases.
3071
+
3072
+ ---
3073
+
3074
+ ##### `releaseTagPrefix`<sup>Optional</sup> <a name="releaseTagPrefix" id="projalf.ProjalfOptions.property.releaseTagPrefix"></a>
3075
+
3076
+ ```typescript
3077
+ public readonly releaseTagPrefix: string;
3078
+ ```
3079
+
3080
+ - *Type:* string
3081
+ - *Default:* "v"
3082
+
3083
+ Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers.
3084
+
3085
+ Note: this prefix is used to detect the latest tagged version
3086
+ when bumping, so if you change this on a project with an existing version
3087
+ history, you may need to manually tag your latest release
3088
+ with the new prefix.
3089
+
3090
+ ---
3091
+
3092
+ ##### `releaseTrigger`<sup>Optional</sup> <a name="releaseTrigger" id="projalf.ProjalfOptions.property.releaseTrigger"></a>
3093
+
3094
+ ```typescript
3095
+ public readonly releaseTrigger: ReleaseTrigger;
3096
+ ```
3097
+
3098
+ - *Type:* projen.release.ReleaseTrigger
3099
+ - *Default:* Continuous releases (`ReleaseTrigger.continuous()`)
3100
+
3101
+ The release trigger to use.
3102
+
3103
+ ---
3104
+
3105
+ ##### `releaseWorkflowName`<sup>Optional</sup> <a name="releaseWorkflowName" id="projalf.ProjalfOptions.property.releaseWorkflowName"></a>
3106
+
3107
+ ```typescript
3108
+ public readonly releaseWorkflowName: string;
3109
+ ```
3110
+
3111
+ - *Type:* string
3112
+ - *Default:* "release"
3113
+
3114
+ The name of the default release workflow.
3115
+
3116
+ ---
3117
+
3118
+ ##### `releaseWorkflowSetupSteps`<sup>Optional</sup> <a name="releaseWorkflowSetupSteps" id="projalf.ProjalfOptions.property.releaseWorkflowSetupSteps"></a>
3119
+
3120
+ ```typescript
3121
+ public readonly releaseWorkflowSetupSteps: JobStep[];
3122
+ ```
3123
+
3124
+ - *Type:* projen.github.workflows.JobStep[]
3125
+
3126
+ A set of workflow steps to execute in order to setup the workflow container.
3127
+
3128
+ ---
3129
+
3130
+ ##### `versionrcOptions`<sup>Optional</sup> <a name="versionrcOptions" id="projalf.ProjalfOptions.property.versionrcOptions"></a>
3131
+
3132
+ ```typescript
3133
+ public readonly versionrcOptions: {[ key: string ]: any};
3134
+ ```
3135
+
3136
+ - *Type:* {[ key: string ]: any}
3137
+ - *Default:* standard configuration applicable for GitHub repositories
3138
+
3139
+ Custom configuration used when creating changelog with commit-and-tag-version package.
3140
+
3141
+ Given values either append to default configuration or overwrite values in it.
3142
+
3143
+ ---
3144
+
3145
+ ##### `workflowContainerImage`<sup>Optional</sup> <a name="workflowContainerImage" id="projalf.ProjalfOptions.property.workflowContainerImage"></a>
3146
+
3147
+ ```typescript
3148
+ public readonly workflowContainerImage: string;
3149
+ ```
3150
+
3151
+ - *Type:* string
3152
+ - *Default:* default image
3153
+
3154
+ Container image to use for GitHub workflows.
3155
+
3156
+ ---
3157
+
3158
+ ##### `workflowRunsOn`<sup>Optional</sup> <a name="workflowRunsOn" id="projalf.ProjalfOptions.property.workflowRunsOn"></a>
3159
+
3160
+ ```typescript
3161
+ public readonly workflowRunsOn: string[];
3162
+ ```
3163
+
3164
+ - *Type:* string[]
3165
+ - *Default:* ["ubuntu-latest"]
3166
+
3167
+ Github Runner selection labels.
3168
+
3169
+ ---
3170
+
3171
+ ##### `workflowRunsOnGroup`<sup>Optional</sup> <a name="workflowRunsOnGroup" id="projalf.ProjalfOptions.property.workflowRunsOnGroup"></a>
3172
+
3173
+ ```typescript
3174
+ public readonly workflowRunsOnGroup: GroupRunnerOptions;
3175
+ ```
3176
+
3177
+ - *Type:* projen.GroupRunnerOptions
3178
+
3179
+ Github Runner Group selection options.
3180
+
3181
+ ---
3182
+
3183
+ ##### `defaultReleaseBranch`<sup>Required</sup> <a name="defaultReleaseBranch" id="projalf.ProjalfOptions.property.defaultReleaseBranch"></a>
3184
+
3185
+ ```typescript
3186
+ public readonly defaultReleaseBranch: string;
3187
+ ```
3188
+
3189
+ - *Type:* string
3190
+ - *Default:* "main"
3191
+
3192
+ The name of the main release branch.
3193
+
3194
+ ---
3195
+
3196
+ ##### `artifactsDirectory`<sup>Optional</sup> <a name="artifactsDirectory" id="projalf.ProjalfOptions.property.artifactsDirectory"></a>
3197
+
3198
+ ```typescript
3199
+ public readonly artifactsDirectory: string;
3200
+ ```
3201
+
3202
+ - *Type:* string
3203
+ - *Default:* "dist"
3204
+
3205
+ A directory which will contain build artifacts.
3206
+
3207
+ ---
3208
+
3209
+ ##### `autoApproveUpgrades`<sup>Optional</sup> <a name="autoApproveUpgrades" id="projalf.ProjalfOptions.property.autoApproveUpgrades"></a>
3210
+
3211
+ ```typescript
3212
+ public readonly autoApproveUpgrades: boolean;
3213
+ ```
3214
+
3215
+ - *Type:* boolean
3216
+ - *Default:* true
3217
+
3218
+ Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued).
3219
+
3220
+ Throw if set to true but `autoApproveOptions` are not defined.
3221
+
3222
+ ---
3223
+
3224
+ ##### `biome`<sup>Optional</sup> <a name="biome" id="projalf.ProjalfOptions.property.biome"></a>
3225
+
3226
+ ```typescript
3227
+ public readonly biome: boolean;
3228
+ ```
3229
+
3230
+ - *Type:* boolean
3231
+ - *Default:* false
3232
+
3233
+ Setup Biome.
3234
+
3235
+ ---
3236
+
3237
+ ##### `biomeOptions`<sup>Optional</sup> <a name="biomeOptions" id="projalf.ProjalfOptions.property.biomeOptions"></a>
3238
+
3239
+ ```typescript
3240
+ public readonly biomeOptions: BiomeOptions;
3241
+ ```
3242
+
3243
+ - *Type:* projen.javascript.BiomeOptions
3244
+ - *Default:* default options
3245
+
3246
+ Biome options.
3247
+
3248
+ ---
3249
+
3250
+ ##### `buildWorkflow`<sup>Optional</sup> <a name="buildWorkflow" id="projalf.ProjalfOptions.property.buildWorkflow"></a>
3251
+
3252
+ ```typescript
3253
+ public readonly buildWorkflow: boolean;
3254
+ ```
3255
+
3256
+ - *Type:* boolean
3257
+ - *Default:* true if not a subproject
3258
+
3259
+ Define a GitHub workflow for building PRs.
3260
+
3261
+ ---
3262
+
3263
+ ##### `buildWorkflowOptions`<sup>Optional</sup> <a name="buildWorkflowOptions" id="projalf.ProjalfOptions.property.buildWorkflowOptions"></a>
3264
+
3265
+ ```typescript
3266
+ public readonly buildWorkflowOptions: BuildWorkflowOptions;
3267
+ ```
3268
+
3269
+ - *Type:* projen.javascript.BuildWorkflowOptions
3270
+
3271
+ Options for PR build workflow.
3272
+
3273
+ ---
3274
+
3275
+ ##### ~~`buildWorkflowTriggers`~~<sup>Optional</sup> <a name="buildWorkflowTriggers" id="projalf.ProjalfOptions.property.buildWorkflowTriggers"></a>
3276
+
3277
+ - *Deprecated:* - Use `buildWorkflowOptions.workflowTriggers`
3278
+
3279
+ ```typescript
3280
+ public readonly buildWorkflowTriggers: Triggers;
3281
+ ```
3282
+
3283
+ - *Type:* projen.github.workflows.Triggers
3284
+ - *Default:* "{ pullRequest: {}, workflowDispatch: {} }"
3285
+
3286
+ Build workflow triggers.
3287
+
3288
+ ---
3289
+
3290
+ ##### `bundlerOptions`<sup>Optional</sup> <a name="bundlerOptions" id="projalf.ProjalfOptions.property.bundlerOptions"></a>
3291
+
3292
+ ```typescript
3293
+ public readonly bundlerOptions: BundlerOptions;
3294
+ ```
3295
+
3296
+ - *Type:* projen.javascript.BundlerOptions
3297
+
3298
+ Options for `Bundler`.
3299
+
3300
+ ---
3301
+
3302
+ ##### `checkLicenses`<sup>Optional</sup> <a name="checkLicenses" id="projalf.ProjalfOptions.property.checkLicenses"></a>
3303
+
3304
+ ```typescript
3305
+ public readonly checkLicenses: LicenseCheckerOptions;
3306
+ ```
3307
+
3308
+ - *Type:* projen.javascript.LicenseCheckerOptions
3309
+ - *Default:* no license checks are run during the build and all licenses will be accepted
3310
+
3311
+ Configure which licenses should be deemed acceptable for use by dependencies.
3312
+
3313
+ This setting will cause the build to fail, if any prohibited or not allowed licenses ares encountered.
3314
+
3315
+ ---
3316
+
3317
+ ##### `codeCov`<sup>Optional</sup> <a name="codeCov" id="projalf.ProjalfOptions.property.codeCov"></a>
3318
+
3319
+ ```typescript
3320
+ public readonly codeCov: boolean;
3321
+ ```
3322
+
3323
+ - *Type:* boolean
3324
+ - *Default:* false
3325
+
3326
+ Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v4 A secret is required for private repos. Configured with `@codeCovTokenSecret`.
3327
+
3328
+ ---
3329
+
3330
+ ##### `codeCovTokenSecret`<sup>Optional</sup> <a name="codeCovTokenSecret" id="projalf.ProjalfOptions.property.codeCovTokenSecret"></a>
3331
+
3332
+ ```typescript
3333
+ public readonly codeCovTokenSecret: string;
3334
+ ```
3335
+
3336
+ - *Type:* string
3337
+ - *Default:* if this option is not specified, only public repositories are supported
3338
+
3339
+ Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories.
3340
+
3341
+ ---
3342
+
3343
+ ##### `copyrightOwner`<sup>Optional</sup> <a name="copyrightOwner" id="projalf.ProjalfOptions.property.copyrightOwner"></a>
3344
+
3345
+ ```typescript
3346
+ public readonly copyrightOwner: string;
3347
+ ```
3348
+
3349
+ - *Type:* string
3350
+ - *Default:* defaults to the value of authorName or "" if `authorName` is undefined.
3351
+
3352
+ License copyright owner.
3353
+
3354
+ ---
3355
+
3356
+ ##### `copyrightPeriod`<sup>Optional</sup> <a name="copyrightPeriod" id="projalf.ProjalfOptions.property.copyrightPeriod"></a>
3357
+
3358
+ ```typescript
3359
+ public readonly copyrightPeriod: string;
3360
+ ```
3361
+
3362
+ - *Type:* string
3363
+ - *Default:* current year
3364
+
3365
+ The copyright years to put in the LICENSE file.
3366
+
3367
+ ---
3368
+
3369
+ ##### `dependabot`<sup>Optional</sup> <a name="dependabot" id="projalf.ProjalfOptions.property.dependabot"></a>
3370
+
3371
+ ```typescript
3372
+ public readonly dependabot: boolean;
3373
+ ```
3374
+
3375
+ - *Type:* boolean
3376
+ - *Default:* false
3377
+
3378
+ Use dependabot to handle dependency upgrades.
3379
+
3380
+ Cannot be used in conjunction with `depsUpgrade`.
3381
+
3382
+ ---
3383
+
3384
+ ##### `dependabotOptions`<sup>Optional</sup> <a name="dependabotOptions" id="projalf.ProjalfOptions.property.dependabotOptions"></a>
3385
+
3386
+ ```typescript
3387
+ public readonly dependabotOptions: DependabotOptions;
3388
+ ```
3389
+
3390
+ - *Type:* projen.github.DependabotOptions
3391
+ - *Default:* default options
3392
+
3393
+ Options for dependabot.
3394
+
3395
+ ---
3396
+
3397
+ ##### `depsUpgrade`<sup>Optional</sup> <a name="depsUpgrade" id="projalf.ProjalfOptions.property.depsUpgrade"></a>
3398
+
3399
+ ```typescript
3400
+ public readonly depsUpgrade: boolean;
3401
+ ```
3402
+
3403
+ - *Type:* boolean
3404
+ - *Default:* true
3405
+
3406
+ Use tasks and github workflows to handle dependency upgrades.
3407
+
3408
+ Cannot be used in conjunction with `dependabot`.
3409
+
3410
+ ---
3411
+
3412
+ ##### `depsUpgradeOptions`<sup>Optional</sup> <a name="depsUpgradeOptions" id="projalf.ProjalfOptions.property.depsUpgradeOptions"></a>
3413
+
3414
+ ```typescript
3415
+ public readonly depsUpgradeOptions: UpgradeDependenciesOptions;
3416
+ ```
3417
+
3418
+ - *Type:* projen.javascript.UpgradeDependenciesOptions
3419
+ - *Default:* default options
3420
+
3421
+ Options for `UpgradeDependencies`.
3422
+
3423
+ ---
3424
+
3425
+ ##### `gitignore`<sup>Optional</sup> <a name="gitignore" id="projalf.ProjalfOptions.property.gitignore"></a>
3426
+
3427
+ ```typescript
3428
+ public readonly gitignore: string[];
3429
+ ```
3430
+
3431
+ - *Type:* string[]
3432
+
3433
+ Additional entries to .gitignore.
3434
+
3435
+ ---
3436
+
3437
+ ##### `jest`<sup>Optional</sup> <a name="jest" id="projalf.ProjalfOptions.property.jest"></a>
3438
+
3439
+ ```typescript
3440
+ public readonly jest: boolean;
3441
+ ```
3442
+
3443
+ - *Type:* boolean
3444
+ - *Default:* true
3445
+
3446
+ Setup jest unit tests.
3447
+
3448
+ ---
3449
+
3450
+ ##### `jestOptions`<sup>Optional</sup> <a name="jestOptions" id="projalf.ProjalfOptions.property.jestOptions"></a>
3451
+
3452
+ ```typescript
3453
+ public readonly jestOptions: JestOptions;
3454
+ ```
3455
+
3456
+ - *Type:* projen.javascript.JestOptions
3457
+ - *Default:* default options
3458
+
3459
+ Jest options.
3460
+
3461
+ ---
3462
+
3463
+ ##### ~~`mutableBuild`~~<sup>Optional</sup> <a name="mutableBuild" id="projalf.ProjalfOptions.property.mutableBuild"></a>
3464
+
3465
+ - *Deprecated:* - Use `buildWorkflowOptions.mutableBuild`
3466
+
3467
+ ```typescript
3468
+ public readonly mutableBuild: boolean;
3469
+ ```
3470
+
3471
+ - *Type:* boolean
3472
+ - *Default:* true
3473
+
3474
+ Automatically update files modified during builds to pull-request branches.
3475
+
3476
+ This means
3477
+ that any files synthesized by projen or e.g. test snapshots will always be up-to-date
3478
+ before a PR is merged.
3479
+
3480
+ Implies that PR builds do not have anti-tamper checks.
3481
+
3482
+ ---
3483
+
3484
+ ##### ~~`npmignore`~~<sup>Optional</sup> <a name="npmignore" id="projalf.ProjalfOptions.property.npmignore"></a>
3485
+
3486
+ - *Deprecated:* - use `project.addPackageIgnore`
3487
+
3488
+ ```typescript
3489
+ public readonly npmignore: string[];
3490
+ ```
3491
+
3492
+ - *Type:* string[]
3493
+
3494
+ Additional entries to .npmignore.
3495
+
3496
+ ---
3497
+
3498
+ ##### `npmignoreEnabled`<sup>Optional</sup> <a name="npmignoreEnabled" id="projalf.ProjalfOptions.property.npmignoreEnabled"></a>
3499
+
3500
+ ```typescript
3501
+ public readonly npmignoreEnabled: boolean;
3502
+ ```
3503
+
3504
+ - *Type:* boolean
3505
+ - *Default:* true
3506
+
3507
+ Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs.
3508
+
3509
+ ---
3510
+
3511
+ ##### `npmIgnoreOptions`<sup>Optional</sup> <a name="npmIgnoreOptions" id="projalf.ProjalfOptions.property.npmIgnoreOptions"></a>
3512
+
3513
+ ```typescript
3514
+ public readonly npmIgnoreOptions: IgnoreFileOptions;
3515
+ ```
3516
+
3517
+ - *Type:* projen.IgnoreFileOptions
3518
+
3519
+ Configuration options for .npmignore file.
3520
+
3521
+ ---
3522
+
3523
+ ##### `package`<sup>Optional</sup> <a name="package" id="projalf.ProjalfOptions.property.package"></a>
3524
+
3525
+ ```typescript
3526
+ public readonly package: boolean;
3527
+ ```
3528
+
3529
+ - *Type:* boolean
3530
+ - *Default:* true
3531
+
3532
+ Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`).
3533
+
3534
+ ---
3535
+
3536
+ ##### `prettier`<sup>Optional</sup> <a name="prettier" id="projalf.ProjalfOptions.property.prettier"></a>
3537
+
3538
+ ```typescript
3539
+ public readonly prettier: boolean;
3540
+ ```
3541
+
3542
+ - *Type:* boolean
3543
+ - *Default:* false
3544
+
3545
+ Setup prettier.
3546
+
3547
+ ---
3548
+
3549
+ ##### `prettierOptions`<sup>Optional</sup> <a name="prettierOptions" id="projalf.ProjalfOptions.property.prettierOptions"></a>
3550
+
3551
+ ```typescript
3552
+ public readonly prettierOptions: PrettierOptions;
3553
+ ```
3554
+
3555
+ - *Type:* projen.javascript.PrettierOptions
3556
+ - *Default:* default options
3557
+
3558
+ Prettier options.
3559
+
3560
+ ---
3561
+
3562
+ ##### `projenDevDependency`<sup>Optional</sup> <a name="projenDevDependency" id="projalf.ProjalfOptions.property.projenDevDependency"></a>
3563
+
3564
+ ```typescript
3565
+ public readonly projenDevDependency: boolean;
3566
+ ```
3567
+
3568
+ - *Type:* boolean
3569
+ - *Default:* true if not a subproject
3570
+
3571
+ Indicates of "projen" should be installed as a devDependency.
3572
+
3573
+ ---
3574
+
3575
+ ##### `projenrcJs`<sup>Optional</sup> <a name="projenrcJs" id="projalf.ProjalfOptions.property.projenrcJs"></a>
3576
+
3577
+ ```typescript
3578
+ public readonly projenrcJs: boolean;
3579
+ ```
3580
+
3581
+ - *Type:* boolean
3582
+ - *Default:* true if projenrcJson is false
3583
+
3584
+ Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation.
3585
+
3586
+ ---
3587
+
3588
+ ##### `projenrcJsOptions`<sup>Optional</sup> <a name="projenrcJsOptions" id="projalf.ProjalfOptions.property.projenrcJsOptions"></a>
3589
+
3590
+ ```typescript
3591
+ public readonly projenrcJsOptions: ProjenrcOptions;
3592
+ ```
3593
+
3594
+ - *Type:* projen.javascript.ProjenrcOptions
3595
+ - *Default:* default options
3596
+
3597
+ Options for .projenrc.js.
3598
+
3599
+ ---
3600
+
3601
+ ##### `projenVersion`<sup>Optional</sup> <a name="projenVersion" id="projalf.ProjalfOptions.property.projenVersion"></a>
3602
+
3603
+ ```typescript
3604
+ public readonly projenVersion: string;
3605
+ ```
3606
+
3607
+ - *Type:* string
3608
+ - *Default:* Defaults to the latest version.
3609
+
3610
+ Version of projen to install.
3611
+
3612
+ ---
3613
+
3614
+ ##### `pullRequestTemplate`<sup>Optional</sup> <a name="pullRequestTemplate" id="projalf.ProjalfOptions.property.pullRequestTemplate"></a>
3615
+
3616
+ ```typescript
3617
+ public readonly pullRequestTemplate: boolean;
3618
+ ```
3619
+
3620
+ - *Type:* boolean
3621
+ - *Default:* true
3622
+
3623
+ Include a GitHub pull request template.
3624
+
3625
+ ---
3626
+
3627
+ ##### `pullRequestTemplateContents`<sup>Optional</sup> <a name="pullRequestTemplateContents" id="projalf.ProjalfOptions.property.pullRequestTemplateContents"></a>
3628
+
3629
+ ```typescript
3630
+ public readonly pullRequestTemplateContents: string[];
3631
+ ```
3632
+
3633
+ - *Type:* string[]
3634
+ - *Default:* default content
3635
+
3636
+ The contents of the pull request template.
3637
+
3638
+ ---
3639
+
3640
+ ##### `release`<sup>Optional</sup> <a name="release" id="projalf.ProjalfOptions.property.release"></a>
3641
+
3642
+ ```typescript
3643
+ public readonly release: boolean;
3644
+ ```
3645
+
3646
+ - *Type:* boolean
3647
+ - *Default:* true (false for subprojects)
3648
+
3649
+ Add release management to this project.
3650
+
3651
+ ---
3652
+
3653
+ ##### `releaseToNpm`<sup>Optional</sup> <a name="releaseToNpm" id="projalf.ProjalfOptions.property.releaseToNpm"></a>
3654
+
3655
+ ```typescript
3656
+ public readonly releaseToNpm: boolean;
3657
+ ```
3658
+
3659
+ - *Type:* boolean
3660
+ - *Default:* false
3661
+
3662
+ Automatically release to npm when new versions are introduced.
3663
+
3664
+ ---
3665
+
3666
+ ##### ~~`releaseWorkflow`~~<sup>Optional</sup> <a name="releaseWorkflow" id="projalf.ProjalfOptions.property.releaseWorkflow"></a>
3667
+
3668
+ - *Deprecated:* see `release`.
3669
+
3670
+ ```typescript
3671
+ public readonly releaseWorkflow: boolean;
3672
+ ```
3673
+
3674
+ - *Type:* boolean
3675
+ - *Default:* true if not a subproject
3676
+
3677
+ DEPRECATED: renamed to `release`.
3678
+
3679
+ ---
3680
+
3681
+ ##### `workflowBootstrapSteps`<sup>Optional</sup> <a name="workflowBootstrapSteps" id="projalf.ProjalfOptions.property.workflowBootstrapSteps"></a>
3682
+
3683
+ ```typescript
3684
+ public readonly workflowBootstrapSteps: JobStep[];
3685
+ ```
3686
+
3687
+ - *Type:* projen.github.workflows.JobStep[]
3688
+ - *Default:* "yarn install --frozen-lockfile && yarn projen"
3689
+
3690
+ Workflow steps to use in order to bootstrap this repo.
3691
+
3692
+ ---
3693
+
3694
+ ##### `workflowGitIdentity`<sup>Optional</sup> <a name="workflowGitIdentity" id="projalf.ProjalfOptions.property.workflowGitIdentity"></a>
3695
+
3696
+ ```typescript
3697
+ public readonly workflowGitIdentity: GitIdentity;
3698
+ ```
3699
+
3700
+ - *Type:* projen.github.GitIdentity
3701
+ - *Default:* GitHub Actions
3702
+
3703
+ The git identity to use in workflows.
3704
+
3705
+ ---
3706
+
3707
+ ##### `workflowNodeVersion`<sup>Optional</sup> <a name="workflowNodeVersion" id="projalf.ProjalfOptions.property.workflowNodeVersion"></a>
3708
+
3709
+ ```typescript
3710
+ public readonly workflowNodeVersion: string;
3711
+ ```
3712
+
3713
+ - *Type:* string
3714
+ - *Default:* `minNodeVersion` if set, otherwise `lts/*`.
3715
+
3716
+ The node version used in GitHub Actions workflows.
3717
+
3718
+ Always use this option if your GitHub Actions workflows require a specific to run.
3719
+
3720
+ ---
3721
+
3722
+ ##### `workflowPackageCache`<sup>Optional</sup> <a name="workflowPackageCache" id="projalf.ProjalfOptions.property.workflowPackageCache"></a>
3723
+
3724
+ ```typescript
3725
+ public readonly workflowPackageCache: boolean;
3726
+ ```
3727
+
3728
+ - *Type:* boolean
3729
+ - *Default:* false
3730
+
3731
+ Enable Node.js package cache in GitHub workflows.
3732
+
3733
+ ---
3734
+
3735
+ ##### `disableTsconfig`<sup>Optional</sup> <a name="disableTsconfig" id="projalf.ProjalfOptions.property.disableTsconfig"></a>
3736
+
3737
+ ```typescript
3738
+ public readonly disableTsconfig: boolean;
3739
+ ```
3740
+
3741
+ - *Type:* boolean
3742
+ - *Default:* false
3743
+
3744
+ Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler).
3745
+
3746
+ ---
3747
+
3748
+ ##### `disableTsconfigDev`<sup>Optional</sup> <a name="disableTsconfigDev" id="projalf.ProjalfOptions.property.disableTsconfigDev"></a>
3749
+
3750
+ ```typescript
3751
+ public readonly disableTsconfigDev: boolean;
3752
+ ```
3753
+
3754
+ - *Type:* boolean
3755
+ - *Default:* false
3756
+
3757
+ Do not generate a `tsconfig.dev.json` file.
3758
+
3759
+ ---
3760
+
3761
+ ##### `docgen`<sup>Optional</sup> <a name="docgen" id="projalf.ProjalfOptions.property.docgen"></a>
3762
+
3763
+ ```typescript
3764
+ public readonly docgen: boolean;
3765
+ ```
3766
+
3767
+ - *Type:* boolean
3768
+ - *Default:* false
3769
+
3770
+ Docgen by Typedoc.
3771
+
3772
+ ---
3773
+
3774
+ ##### `docsDirectory`<sup>Optional</sup> <a name="docsDirectory" id="projalf.ProjalfOptions.property.docsDirectory"></a>
3775
+
3776
+ ```typescript
3777
+ public readonly docsDirectory: string;
3778
+ ```
3779
+
3780
+ - *Type:* string
3781
+ - *Default:* "docs"
3782
+
3783
+ Docs directory.
3784
+
3785
+ ---
3786
+
3787
+ ##### `entrypointTypes`<sup>Optional</sup> <a name="entrypointTypes" id="projalf.ProjalfOptions.property.entrypointTypes"></a>
3788
+
3789
+ ```typescript
3790
+ public readonly entrypointTypes: string;
3791
+ ```
3792
+
3793
+ - *Type:* string
3794
+ - *Default:* .d.ts file derived from the project's entrypoint (usually lib/index.d.ts)
3795
+
3796
+ The .d.ts file that includes the type declarations for this module.
3797
+
3798
+ ---
3799
+
3800
+ ##### `eslint`<sup>Optional</sup> <a name="eslint" id="projalf.ProjalfOptions.property.eslint"></a>
3801
+
3802
+ ```typescript
3803
+ public readonly eslint: boolean;
3804
+ ```
3805
+
3806
+ - *Type:* boolean
3807
+ - *Default:* true, unless biome is enabled
3808
+
3809
+ Setup eslint.
3810
+
3811
+ ---
3812
+
3813
+ ##### `eslintOptions`<sup>Optional</sup> <a name="eslintOptions" id="projalf.ProjalfOptions.property.eslintOptions"></a>
3814
+
3815
+ ```typescript
3816
+ public readonly eslintOptions: EslintOptions;
3817
+ ```
3818
+
3819
+ - *Type:* projen.javascript.EslintOptions
3820
+ - *Default:* opinionated default options
3821
+
3822
+ Eslint options.
3823
+
3824
+ ---
3825
+
3826
+ ##### `libdir`<sup>Optional</sup> <a name="libdir" id="projalf.ProjalfOptions.property.libdir"></a>
3827
+
3828
+ ```typescript
3829
+ public readonly libdir: string;
3830
+ ```
3831
+
3832
+ - *Type:* string
3833
+ - *Default:* "lib"
3834
+
3835
+ Typescript artifacts output directory.
3836
+
3837
+ ---
3838
+
3839
+ ##### `projenrcTs`<sup>Optional</sup> <a name="projenrcTs" id="projalf.ProjalfOptions.property.projenrcTs"></a>
3840
+
3841
+ ```typescript
3842
+ public readonly projenrcTs: boolean;
3843
+ ```
3844
+
3845
+ - *Type:* boolean
3846
+ - *Default:* false
3847
+
3848
+ Use TypeScript for your projenrc file (`.projenrc.ts`).
3849
+
3850
+ ---
3851
+
3852
+ ##### `projenrcTsOptions`<sup>Optional</sup> <a name="projenrcTsOptions" id="projalf.ProjalfOptions.property.projenrcTsOptions"></a>
3853
+
3854
+ ```typescript
3855
+ public readonly projenrcTsOptions: ProjenrcOptions;
3856
+ ```
3857
+
3858
+ - *Type:* projen.typescript.ProjenrcOptions
3859
+
3860
+ Options for .projenrc.ts.
3861
+
3862
+ ---
3863
+
3864
+ ##### `sampleCode`<sup>Optional</sup> <a name="sampleCode" id="projalf.ProjalfOptions.property.sampleCode"></a>
3865
+
3866
+ ```typescript
3867
+ public readonly sampleCode: boolean;
3868
+ ```
3869
+
3870
+ - *Type:* boolean
3871
+ - *Default:* true
3872
+
3873
+ Generate one-time sample in `src/` and `test/` if there are no files there.
3874
+
3875
+ ---
3876
+
3877
+ ##### `srcdir`<sup>Optional</sup> <a name="srcdir" id="projalf.ProjalfOptions.property.srcdir"></a>
3878
+
3879
+ ```typescript
3880
+ public readonly srcdir: string;
3881
+ ```
3882
+
3883
+ - *Type:* string
3884
+ - *Default:* "src"
3885
+
3886
+ Typescript sources directory.
3887
+
3888
+ ---
3889
+
3890
+ ##### `testdir`<sup>Optional</sup> <a name="testdir" id="projalf.ProjalfOptions.property.testdir"></a>
3891
+
3892
+ ```typescript
3893
+ public readonly testdir: string;
3894
+ ```
3895
+
3896
+ - *Type:* string
3897
+ - *Default:* "test"
3898
+
3899
+ Jest tests directory. Tests files should be named `xxx.test.ts`.
3900
+
3901
+ If this directory is under `srcdir` (e.g. `src/test`, `src/__tests__`),
3902
+ then tests are going to be compiled into `lib/` and executed as javascript.
3903
+ If the test directory is outside of `src`, then we configure jest to
3904
+ compile the code in-memory.
3905
+
3906
+ ---
3907
+
3908
+ ##### `tsconfig`<sup>Optional</sup> <a name="tsconfig" id="projalf.ProjalfOptions.property.tsconfig"></a>
3909
+
3910
+ ```typescript
3911
+ public readonly tsconfig: TypescriptConfigOptions;
3912
+ ```
3913
+
3914
+ - *Type:* projen.javascript.TypescriptConfigOptions
3915
+ - *Default:* default options
3916
+
3917
+ Custom TSConfig.
3918
+
3919
+ ---
3920
+
3921
+ ##### `tsconfigDev`<sup>Optional</sup> <a name="tsconfigDev" id="projalf.ProjalfOptions.property.tsconfigDev"></a>
3922
+
3923
+ ```typescript
3924
+ public readonly tsconfigDev: TypescriptConfigOptions;
3925
+ ```
3926
+
3927
+ - *Type:* projen.javascript.TypescriptConfigOptions
3928
+ - *Default:* use the production tsconfig options
3929
+
3930
+ Custom tsconfig options for the development tsconfig.json file (used for testing).
3931
+
3932
+ ---
3933
+
3934
+ ##### `tsconfigDevFile`<sup>Optional</sup> <a name="tsconfigDevFile" id="projalf.ProjalfOptions.property.tsconfigDevFile"></a>
3935
+
3936
+ ```typescript
3937
+ public readonly tsconfigDevFile: string;
3938
+ ```
3939
+
3940
+ - *Type:* string
3941
+ - *Default:* "tsconfig.dev.json"
3942
+
3943
+ The name of the development tsconfig.json file.
3944
+
3945
+ ---
3946
+
3947
+ ##### `tsJestOptions`<sup>Optional</sup> <a name="tsJestOptions" id="projalf.ProjalfOptions.property.tsJestOptions"></a>
3948
+
3949
+ ```typescript
3950
+ public readonly tsJestOptions: TsJestOptions;
3951
+ ```
3952
+
3953
+ - *Type:* projen.typescript.TsJestOptions
3954
+
3955
+ Options for ts-jest.
3956
+
3957
+ ---
3958
+
3959
+ ##### `typescriptVersion`<sup>Optional</sup> <a name="typescriptVersion" id="projalf.ProjalfOptions.property.typescriptVersion"></a>
3960
+
3961
+ ```typescript
3962
+ public readonly typescriptVersion: string;
3963
+ ```
3964
+
3965
+ - *Type:* string
3966
+ - *Default:* "latest"
3967
+
3968
+ TypeScript version to use.
3969
+
3970
+ NOTE: Typescript is not semantically versioned and should remain on the
3971
+ same minor, so we recommend using a `~` dependency (e.g. `~1.2.3`).
3972
+
3973
+ ---
3974
+
3975
+ ##### `buildCommand`<sup>Optional</sup> <a name="buildCommand" id="projalf.ProjalfOptions.property.buildCommand"></a>
3976
+
3977
+ ```typescript
3978
+ public readonly buildCommand: string;
3979
+ ```
3980
+
3981
+ - *Type:* string
3982
+ - *Default:* no build command
3983
+
3984
+ A command to execute before synthesis.
3985
+
3986
+ This command will be called when
3987
+ running `cdk synth` or when `cdk watch` identifies a change in your source
3988
+ code before redeployment.
3989
+
3990
+ ---
3991
+
3992
+ ##### `cdkout`<sup>Optional</sup> <a name="cdkout" id="projalf.ProjalfOptions.property.cdkout"></a>
3993
+
3994
+ ```typescript
3995
+ public readonly cdkout: string;
3996
+ ```
3997
+
3998
+ - *Type:* string
3999
+ - *Default:* "cdk.out"
4000
+
4001
+ cdk.out directory.
4002
+
4003
+ ---
4004
+
4005
+ ##### `context`<sup>Optional</sup> <a name="context" id="projalf.ProjalfOptions.property.context"></a>
4006
+
4007
+ ```typescript
4008
+ public readonly context: {[ key: string ]: any};
4009
+ ```
4010
+
4011
+ - *Type:* {[ key: string ]: any}
4012
+ - *Default:* no additional context
4013
+
4014
+ Additional context to include in `cdk.json`.
4015
+
4016
+ ---
4017
+
4018
+ ##### `featureFlags`<sup>Optional</sup> <a name="featureFlags" id="projalf.ProjalfOptions.property.featureFlags"></a>
4019
+
4020
+ ```typescript
4021
+ public readonly featureFlags: boolean;
4022
+ ```
4023
+
4024
+ - *Type:* boolean
4025
+ - *Default:* true
4026
+
4027
+ Include all feature flags in cdk.json.
4028
+
4029
+ ---
4030
+
4031
+ ##### `requireApproval`<sup>Optional</sup> <a name="requireApproval" id="projalf.ProjalfOptions.property.requireApproval"></a>
4032
+
4033
+ ```typescript
4034
+ public readonly requireApproval: ApprovalLevel;
4035
+ ```
4036
+
4037
+ - *Type:* projen.awscdk.ApprovalLevel
4038
+ - *Default:* ApprovalLevel.BROADENING
4039
+
4040
+ 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.
4041
+
4042
+ ---
4043
+
4044
+ ##### `watchExcludes`<sup>Optional</sup> <a name="watchExcludes" id="projalf.ProjalfOptions.property.watchExcludes"></a>
4045
+
4046
+ ```typescript
4047
+ public readonly watchExcludes: string[];
4048
+ ```
4049
+
4050
+ - *Type:* string[]
4051
+ - *Default:* []
4052
+
4053
+ Glob patterns to exclude from `cdk watch`.
4054
+
4055
+ ---
4056
+
4057
+ ##### `watchIncludes`<sup>Optional</sup> <a name="watchIncludes" id="projalf.ProjalfOptions.property.watchIncludes"></a>
4058
+
4059
+ ```typescript
4060
+ public readonly watchIncludes: string[];
4061
+ ```
4062
+
4063
+ - *Type:* string[]
4064
+ - *Default:* []
4065
+
4066
+ Glob patterns to include in `cdk watch`.
4067
+
4068
+ ---
4069
+
4070
+ ##### `cdkVersion`<sup>Required</sup> <a name="cdkVersion" id="projalf.ProjalfOptions.property.cdkVersion"></a>
4071
+
4072
+ ```typescript
4073
+ public readonly cdkVersion: string;
4074
+ ```
4075
+
4076
+ - *Type:* string
4077
+ - *Default:* "2.1.0"
4078
+
4079
+ Minimum version of the AWS CDK to depend on.
4080
+
4081
+ ---
4082
+
4083
+ ##### ~~`cdkAssert`~~<sup>Optional</sup> <a name="cdkAssert" id="projalf.ProjalfOptions.property.cdkAssert"></a>
4084
+
4085
+ - *Deprecated:* The
4086
+
4087
+ ```typescript
4088
+ public readonly cdkAssert: boolean;
4089
+ ```
4090
+
4091
+ - *Type:* boolean
4092
+ - *Default:* will be included by default for AWS CDK >= 1.0.0 < 2.0.0
4093
+
4094
+ Warning: NodeJS only.
4095
+
4096
+ Install the
4097
+
4098
+ ---
4099
+
4100
+ ##### `cdkAssertions`<sup>Optional</sup> <a name="cdkAssertions" id="projalf.ProjalfOptions.property.cdkAssertions"></a>
4101
+
4102
+ ```typescript
4103
+ public readonly cdkAssertions: boolean;
4104
+ ```
4105
+
4106
+ - *Type:* boolean
4107
+ - *Default:* will be included by default for AWS CDK >= 1.111.0 < 2.0.0
4108
+
4109
+ Install the assertions library?
4110
+
4111
+ Only needed for CDK 1.x. If using CDK 2.x then
4112
+ assertions is already included in 'aws-cdk-lib'
4113
+
4114
+ ---
4115
+
4116
+ ##### `cdkCliVersion`<sup>Optional</sup> <a name="cdkCliVersion" id="projalf.ProjalfOptions.property.cdkCliVersion"></a>
4117
+
4118
+ ```typescript
4119
+ public readonly cdkCliVersion: string;
4120
+ ```
4121
+
4122
+ - *Type:* string
4123
+ - *Default:* "^2"
4124
+
4125
+ Version range of the AWS CDK CLI to depend on.
4126
+
4127
+ Can be either a specific version, or an NPM version range.
4128
+
4129
+ By default, the latest 2.x version will be installed; you can use this
4130
+ option to restrict it to a specific version or version range.
4131
+
4132
+ ---
4133
+
4134
+ ##### ~~`cdkDependencies`~~<sup>Optional</sup> <a name="cdkDependencies" id="projalf.ProjalfOptions.property.cdkDependencies"></a>
4135
+
4136
+ - *Deprecated:* For CDK 2.x use "deps" instead. (or "peerDeps" if you're building a library)
4137
+
4138
+ ```typescript
4139
+ public readonly cdkDependencies: string[];
4140
+ ```
4141
+
4142
+ - *Type:* string[]
4143
+
4144
+ Which AWS CDKv1 modules this project requires.
4145
+
4146
+ ---
4147
+
4148
+ ##### ~~`cdkDependenciesAsDeps`~~<sup>Optional</sup> <a name="cdkDependenciesAsDeps" id="projalf.ProjalfOptions.property.cdkDependenciesAsDeps"></a>
4149
+
4150
+ - *Deprecated:* Not supported in CDK v2.
4151
+
4152
+ ```typescript
4153
+ public readonly cdkDependenciesAsDeps: boolean;
4154
+ ```
4155
+
4156
+ - *Type:* boolean
4157
+ - *Default:* true
4158
+
4159
+ If this is enabled (default), all modules declared in `cdkDependencies` will be also added as normal `dependencies` (as well as `peerDependencies`).
4160
+
4161
+ This is to ensure that downstream consumers actually have your CDK dependencies installed
4162
+ when using npm < 7 or yarn, where peer dependencies are not automatically installed.
4163
+ If this is disabled, `cdkDependencies` will be added to `devDependencies` to ensure
4164
+ they are present during development.
4165
+
4166
+ Note: this setting only applies to construct library projects
4167
+
4168
+ ---
4169
+
4170
+ ##### ~~`cdkTestDependencies`~~<sup>Optional</sup> <a name="cdkTestDependencies" id="projalf.ProjalfOptions.property.cdkTestDependencies"></a>
4171
+
4172
+ - *Deprecated:* For CDK 2.x use 'devDeps' (in node.js projects) or 'testDeps' (in java projects) instead
4173
+
4174
+ ```typescript
4175
+ public readonly cdkTestDependencies: string[];
4176
+ ```
4177
+
4178
+ - *Type:* string[]
4179
+
4180
+ AWS CDK modules required for testing.
4181
+
4182
+ ---
4183
+
4184
+ ##### `cdkVersionPinning`<sup>Optional</sup> <a name="cdkVersionPinning" id="projalf.ProjalfOptions.property.cdkVersionPinning"></a>
4185
+
4186
+ ```typescript
4187
+ public readonly cdkVersionPinning: boolean;
4188
+ ```
4189
+
4190
+ - *Type:* boolean
4191
+
4192
+ Use pinned version instead of caret version for CDK.
4193
+
4194
+ You can use this to prevent mixed versions for your CDK dependencies and to prevent auto-updates.
4195
+ If you use experimental features this will let you define the moment you include breaking changes.
4196
+
4197
+ ---
4198
+
4199
+ ##### `constructsVersion`<sup>Optional</sup> <a name="constructsVersion" id="projalf.ProjalfOptions.property.constructsVersion"></a>
4200
+
4201
+ ```typescript
4202
+ public readonly constructsVersion: string;
4203
+ ```
4204
+
4205
+ - *Type:* string
4206
+ - *Default:* for CDK 1.x the default is "3.2.27", for CDK 2.x the default is "10.0.5".
4207
+
4208
+ Minimum version of the `constructs` library to depend on.
4209
+
4210
+ ---
4211
+
4212
+ ##### `app`<sup>Optional</sup> <a name="app" id="projalf.ProjalfOptions.property.app"></a>
4213
+
4214
+ ```typescript
4215
+ public readonly app: string;
4216
+ ```
4217
+
4218
+ - *Type:* string
4219
+
4220
+ The command line to execute in order to synthesize the CDK application (language specific).
4221
+
4222
+ ---
4223
+
4224
+ ##### `appEntrypoint`<sup>Optional</sup> <a name="appEntrypoint" id="projalf.ProjalfOptions.property.appEntrypoint"></a>
4225
+
4226
+ ```typescript
4227
+ public readonly appEntrypoint: string;
4228
+ ```
4229
+
4230
+ - *Type:* string
4231
+ - *Default:* "main.ts"
4232
+
4233
+ The CDK app's entrypoint (relative to the source directory, which is "src" by default).
4234
+
4235
+ ---
4236
+
4237
+ ##### `edgeLambdaAutoDiscover`<sup>Optional</sup> <a name="edgeLambdaAutoDiscover" id="projalf.ProjalfOptions.property.edgeLambdaAutoDiscover"></a>
4238
+
4239
+ ```typescript
4240
+ public readonly edgeLambdaAutoDiscover: boolean;
4241
+ ```
4242
+
4243
+ - *Type:* boolean
4244
+ - *Default:* true
4245
+
4246
+ Automatically adds an `cloudfront.experimental.EdgeFunction` for each `.edge-lambda.ts` handler in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project.
4247
+
4248
+ ---
4249
+
4250
+ ##### `experimentalIntegRunner`<sup>Optional</sup> <a name="experimentalIntegRunner" id="projalf.ProjalfOptions.property.experimentalIntegRunner"></a>
4251
+
4252
+ ```typescript
4253
+ public readonly experimentalIntegRunner: boolean;
4254
+ ```
4255
+
4256
+ - *Type:* boolean
4257
+ - *Default:* false
4258
+
4259
+ Enable experimental support for the AWS CDK integ-runner.
4260
+
4261
+ ---
4262
+
4263
+ ##### `integrationTestAutoDiscover`<sup>Optional</sup> <a name="integrationTestAutoDiscover" id="projalf.ProjalfOptions.property.integrationTestAutoDiscover"></a>
4264
+
4265
+ ```typescript
4266
+ public readonly integrationTestAutoDiscover: boolean;
4267
+ ```
4268
+
4269
+ - *Type:* boolean
4270
+ - *Default:* true
4271
+
4272
+ Automatically discovers and creates integration tests for each `.integ.ts` file in under your test directory.
4273
+
4274
+ ---
4275
+
4276
+ ##### `lambdaAutoDiscover`<sup>Optional</sup> <a name="lambdaAutoDiscover" id="projalf.ProjalfOptions.property.lambdaAutoDiscover"></a>
4277
+
4278
+ ```typescript
4279
+ public readonly lambdaAutoDiscover: boolean;
4280
+ ```
4281
+
4282
+ - *Type:* boolean
4283
+ - *Default:* true
4284
+
4285
+ Automatically adds an `awscdk.LambdaFunction` for each `.lambda.ts` handler in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project.
4286
+
4287
+ ---
4288
+
4289
+ ##### `lambdaExtensionAutoDiscover`<sup>Optional</sup> <a name="lambdaExtensionAutoDiscover" id="projalf.ProjalfOptions.property.lambdaExtensionAutoDiscover"></a>
4290
+
4291
+ ```typescript
4292
+ public readonly lambdaExtensionAutoDiscover: boolean;
4293
+ ```
4294
+
4295
+ - *Type:* boolean
4296
+ - *Default:* true
4297
+
4298
+ Automatically adds an `awscdk.LambdaExtension` for each `.lambda-extension.ts` entrypoint in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project.
4299
+
4300
+ ---
4301
+
4302
+ ##### `lambdaOptions`<sup>Optional</sup> <a name="lambdaOptions" id="projalf.ProjalfOptions.property.lambdaOptions"></a>
4303
+
4304
+ ```typescript
4305
+ public readonly lambdaOptions: LambdaFunctionCommonOptions;
4306
+ ```
4307
+
4308
+ - *Type:* projen.awscdk.LambdaFunctionCommonOptions
4309
+ - *Default:* default options
4310
+
4311
+ Common options for all AWS Lambda functions.
4312
+
4313
+ ---
4314
+
4315
+
4316
+