@macedon-technologies/batman 1.13.0 → 1.14.0

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.
Files changed (37) hide show
  1. package/.jsii +7 -5
  2. package/API.md +961 -1062
  3. package/lib/Api/ApiFiles.d.ts +5 -0
  4. package/lib/Api/ApiFiles.js +15 -0
  5. package/lib/Api/ApiFunctionFile.d.ts +4 -0
  6. package/lib/Api/ApiFunctionFile.js +18 -0
  7. package/lib/Api/ApiHelperFiles.d.ts +5 -0
  8. package/lib/Api/ApiHelperFiles.js +15 -0
  9. package/lib/Api/AppHelperFile.d.ts +4 -0
  10. package/lib/Api/AppHelperFile.js +63 -0
  11. package/lib/Api/AppMiddlewareFiles.d.ts +5 -0
  12. package/lib/Api/AppMiddlewareFiles.js +19 -0
  13. package/lib/Api/AuthMiddlewareFile.d.ts +4 -0
  14. package/lib/Api/AuthMiddlewareFile.js +109 -0
  15. package/lib/Api/CorsMiddlewareFile.d.ts +4 -0
  16. package/lib/Api/CorsMiddlewareFile.js +54 -0
  17. package/lib/Api/ErrorHandlerMiddlewareFile.d.ts +4 -0
  18. package/lib/Api/ErrorHandlerMiddlewareFile.js +49 -0
  19. package/lib/Api/ExpressApiRouterFile.d.ts +4 -0
  20. package/lib/Api/ExpressApiRouterFile.js +61 -0
  21. package/lib/Application.js +6 -6
  22. package/lib/BatmanProject.js +2 -4
  23. package/lib/BootcampApplication.js +4 -4
  24. package/lib/BootcampProject.js +2 -4
  25. package/lib/CodeOwnersFile.js +2 -4
  26. package/lib/LocalDevAppFile.js +2 -1
  27. package/lib/LocalDevFiles.d.ts +7 -0
  28. package/lib/LocalDevFiles.js +13 -0
  29. package/lib/{ApiFunctionFile.d.ts → LocalDevServerFile.d.ts} +1 -1
  30. package/lib/LocalDevServerFile.js +59 -0
  31. package/lib/ProductionDeployWorkflow.js +2 -4
  32. package/lib/StagingDeployWorkflow.js +2 -4
  33. package/lib/ViteReactProject.js +8 -1
  34. package/lib/WorkflowAutoDiscover.js +37 -6
  35. package/package.json +45 -39
  36. package/pnpm-workspace.yaml +6 -0
  37. package/lib/ApiFunctionFile.js +0 -30
package/API.md CHANGED
@@ -29,11 +29,11 @@ new BatmanProject(options: BatmanProjectOptions)
29
29
  | **Name** | **Description** |
30
30
  | --- | --- |
31
31
  | <code><a href="#@macedon-technologies/batman.BatmanProject.toString">toString</a></code> | Returns a string representation of this construct. |
32
+ | <code><a href="#@macedon-technologies/batman.BatmanProject.with">with</a></code> | Applies one or more mixins to this construct. |
32
33
  | <code><a href="#@macedon-technologies/batman.BatmanProject.addExcludeFromCleanup">addExcludeFromCleanup</a></code> | Exclude the matching files from pre-synth cleanup. |
33
34
  | <code><a href="#@macedon-technologies/batman.BatmanProject.addGitIgnore">addGitIgnore</a></code> | Adds a .gitignore pattern. |
34
35
  | <code><a href="#@macedon-technologies/batman.BatmanProject.addPackageIgnore">addPackageIgnore</a></code> | Adds patterns to be ignored by npm. |
35
36
  | <code><a href="#@macedon-technologies/batman.BatmanProject.addTask">addTask</a></code> | Adds a new task to this project. |
36
- | <code><a href="#@macedon-technologies/batman.BatmanProject.addTip">addTip</a></code> | Prints a "tip" message during synthesis. |
37
37
  | <code><a href="#@macedon-technologies/batman.BatmanProject.annotateGenerated">annotateGenerated</a></code> | Marks the provided file(s) as being generated. |
38
38
  | <code><a href="#@macedon-technologies/batman.BatmanProject.postSynthesize">postSynthesize</a></code> | Called after all components are synthesized. |
39
39
  | <code><a href="#@macedon-technologies/batman.BatmanProject.preSynthesize">preSynthesize</a></code> | Called before all components are synthesized. |
@@ -41,24 +41,19 @@ new BatmanProject(options: BatmanProjectOptions)
41
41
  | <code><a href="#@macedon-technologies/batman.BatmanProject.runTaskCommand">runTaskCommand</a></code> | Returns the shell command to execute in order to run a task. |
42
42
  | <code><a href="#@macedon-technologies/batman.BatmanProject.synth">synth</a></code> | Synthesize all project files into `outdir`. |
43
43
  | <code><a href="#@macedon-technologies/batman.BatmanProject.tryFindFile">tryFindFile</a></code> | Finds a file at the specified relative path within this project and all its subprojects. |
44
- | <code><a href="#@macedon-technologies/batman.BatmanProject.tryFindJsonFile">tryFindJsonFile</a></code> | Finds a json file by name. |
45
44
  | <code><a href="#@macedon-technologies/batman.BatmanProject.tryFindObjectFile">tryFindObjectFile</a></code> | Finds an object file (like JsonFile, YamlFile, etc.) by name. |
46
45
  | <code><a href="#@macedon-technologies/batman.BatmanProject.tryRemoveFile">tryRemoveFile</a></code> | Finds a file at the specified relative path within this project and removes it. |
47
46
  | <code><a href="#@macedon-technologies/batman.BatmanProject.addBins">addBins</a></code> | *No description.* |
48
47
  | <code><a href="#@macedon-technologies/batman.BatmanProject.addBundledDeps">addBundledDeps</a></code> | Defines bundled dependencies. |
49
- | <code><a href="#@macedon-technologies/batman.BatmanProject.addCompileCommand">addCompileCommand</a></code> | DEPRECATED. |
50
48
  | <code><a href="#@macedon-technologies/batman.BatmanProject.addDeps">addDeps</a></code> | Defines normal dependencies. |
51
49
  | <code><a href="#@macedon-technologies/batman.BatmanProject.addDevDeps">addDevDeps</a></code> | Defines development/test dependencies. |
52
50
  | <code><a href="#@macedon-technologies/batman.BatmanProject.addFields">addFields</a></code> | Directly set fields in `package.json`. |
53
51
  | <code><a href="#@macedon-technologies/batman.BatmanProject.addKeywords">addKeywords</a></code> | Adds keywords to package.json (deduplicated). |
54
52
  | <code><a href="#@macedon-technologies/batman.BatmanProject.addPeerDeps">addPeerDeps</a></code> | Defines peer dependencies. |
55
53
  | <code><a href="#@macedon-technologies/batman.BatmanProject.addScripts">addScripts</a></code> | Replaces the contents of multiple npm package.json scripts. |
56
- | <code><a href="#@macedon-technologies/batman.BatmanProject.addTestCommand">addTestCommand</a></code> | DEPRECATED. |
57
- | <code><a href="#@macedon-technologies/batman.BatmanProject.hasScript">hasScript</a></code> | Indicates if a script by the name name is defined. |
58
54
  | <code><a href="#@macedon-technologies/batman.BatmanProject.removeScript">removeScript</a></code> | Removes the npm script (always successful). |
59
55
  | <code><a href="#@macedon-technologies/batman.BatmanProject.renderWorkflowSetup">renderWorkflowSetup</a></code> | Returns the set of workflow steps which should be executed to bootstrap a workflow. |
60
56
  | <code><a href="#@macedon-technologies/batman.BatmanProject.setScript">setScript</a></code> | Replaces the contents of an npm package.json script. |
61
- | <code><a href="#@macedon-technologies/batman.BatmanProject.addCdkDependency">addCdkDependency</a></code> | Adds an AWS CDK module dependencies. |
62
57
 
63
58
  ---
64
59
 
@@ -70,6 +65,27 @@ public toString(): string
70
65
 
71
66
  Returns a string representation of this construct.
72
67
 
68
+ ##### `with` <a name="with" id="@macedon-technologies/batman.BatmanProject.with"></a>
69
+
70
+ ```typescript
71
+ public with(mixins: ...IMixin[]): IConstruct
72
+ ```
73
+
74
+ Applies one or more mixins to this construct.
75
+
76
+ Mixins are applied in order. The list of constructs is captured at the
77
+ start of the call, so constructs added by a mixin will not be visited.
78
+ Use multiple `with()` calls if subsequent mixins should apply to added
79
+ constructs.
80
+
81
+ ###### `mixins`<sup>Required</sup> <a name="mixins" id="@macedon-technologies/batman.BatmanProject.with.parameter.mixins"></a>
82
+
83
+ - *Type:* ...constructs.IMixin[]
84
+
85
+ The mixins to apply.
86
+
87
+ ---
88
+
73
89
  ##### `addExcludeFromCleanup` <a name="addExcludeFromCleanup" id="@macedon-technologies/batman.BatmanProject.addExcludeFromCleanup"></a>
74
90
 
75
91
  ```typescript
@@ -148,22 +164,6 @@ Task properties.
148
164
 
149
165
  ---
150
166
 
151
- ##### ~~`addTip`~~ <a name="addTip" id="@macedon-technologies/batman.BatmanProject.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="@macedon-technologies/batman.BatmanProject.addTip.parameter.message"></a>
160
-
161
- - *Type:* string
162
-
163
- The message.
164
-
165
- ---
166
-
167
167
  ##### `annotateGenerated` <a name="annotateGenerated" id="@macedon-technologies/batman.BatmanProject.annotateGenerated"></a>
168
168
 
169
169
  ```typescript
@@ -229,7 +229,7 @@ public runTaskCommand(task: Task): string
229
229
  Returns the shell command to execute in order to run a task.
230
230
 
231
231
  This will
232
- typically be `npx projen TASK`.
232
+ typically be `pnpm projen TASK`.
233
233
 
234
234
  ###### `task`<sup>Required</sup> <a name="task" id="@macedon-technologies/batman.BatmanProject.runTaskCommand.parameter.task"></a>
235
235
 
@@ -251,8 +251,10 @@ Synthesize all project files into `outdir`.
251
251
  2. Delete all generated files
252
252
  3. Synthesize all subprojects
253
253
  4. Synthesize all components of this project
254
- 5. Call "postSynthesize()" for all components of this project
255
- 6. Call "this.postSynthesize()"
254
+ 5. Call "projectCreation()" for all components, only if the project is being created for the first time
255
+ 6. Call "postSynthesize()" for all components of this project
256
+ 7. Call "this.postSynthesize()"
257
+ 8. Call "postProjectCreation()" for all components, only if the project is being created for the first time
256
258
 
257
259
  ##### `tryFindFile` <a name="tryFindFile" id="@macedon-technologies/batman.BatmanProject.tryFindFile"></a>
258
260
 
@@ -273,22 +275,6 @@ from the root of _this_ project.
273
275
 
274
276
  ---
275
277
 
276
- ##### ~~`tryFindJsonFile`~~ <a name="tryFindJsonFile" id="@macedon-technologies/batman.BatmanProject.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="@macedon-technologies/batman.BatmanProject.tryFindJsonFile.parameter.filePath"></a>
285
-
286
- - *Type:* string
287
-
288
- The file path.
289
-
290
- ---
291
-
292
278
  ##### `tryFindObjectFile` <a name="tryFindObjectFile" id="@macedon-technologies/batman.BatmanProject.tryFindObjectFile"></a>
293
279
 
294
280
  ```typescript
@@ -354,27 +340,13 @@ Bundled dependencies will be added as normal dependencies as well as to the
354
340
  Names modules to install.
355
341
 
356
342
  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:
343
+ be installed in the next `pnpm projen` run and the version will be recorded
344
+ in your `package.json` file. You can upgrade manually or using `pnpm
345
+ add/update`. If you wish to specify a version range use this syntax:
360
346
  `module@^7`.
361
347
 
362
348
  ---
363
349
 
364
- ##### ~~`addCompileCommand`~~ <a name="addCompileCommand" id="@macedon-technologies/batman.BatmanProject.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="@macedon-technologies/batman.BatmanProject.addCompileCommand.parameter.commands"></a>
373
-
374
- - *Type:* ...string[]
375
-
376
- ---
377
-
378
350
  ##### `addDeps` <a name="addDeps" id="@macedon-technologies/batman.BatmanProject.addDeps"></a>
379
351
 
380
352
  ```typescript
@@ -390,9 +362,9 @@ Defines normal dependencies.
390
362
  Names modules to install.
391
363
 
392
364
  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:
365
+ be installed in the next `pnpm projen` run and the version will be recorded
366
+ in your `package.json` file. You can upgrade manually or using `pnpm
367
+ add/update`. If you wish to specify a version range use this syntax:
396
368
  `module@^7`.
397
369
 
398
370
  ---
@@ -412,9 +384,9 @@ Defines development/test dependencies.
412
384
  Names modules to install.
413
385
 
414
386
  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:
387
+ be installed in the next `pnpm projen` run and the version will be recorded
388
+ in your `package.json` file. You can upgrade manually or using `pnpm
389
+ add/update`. If you wish to specify a version range use this syntax:
418
390
  `module@^7`.
419
391
 
420
392
  ---
@@ -470,9 +442,9 @@ your code against the minimum version required from your consumers.
470
442
  Names modules to install.
471
443
 
472
444
  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:
445
+ be installed in the next `pnpm projen` run and the version will be recorded
446
+ in your `package.json` file. You can upgrade manually or using `pnpm
447
+ add/update`. If you wish to specify a version range use this syntax:
476
448
  `module@^7`.
477
449
 
478
450
  ---
@@ -493,36 +465,6 @@ The scripts to set.
493
465
 
494
466
  ---
495
467
 
496
- ##### ~~`addTestCommand`~~ <a name="addTestCommand" id="@macedon-technologies/batman.BatmanProject.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="@macedon-technologies/batman.BatmanProject.addTestCommand.parameter.commands"></a>
505
-
506
- - *Type:* ...string[]
507
-
508
- ---
509
-
510
- ##### ~~`hasScript`~~ <a name="hasScript" id="@macedon-technologies/batman.BatmanProject.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="@macedon-technologies/batman.BatmanProject.hasScript.parameter.name"></a>
519
-
520
- - *Type:* string
521
-
522
- The name of the script.
523
-
524
- ---
525
-
526
468
  ##### `removeScript` <a name="removeScript" id="@macedon-technologies/batman.BatmanProject.removeScript"></a>
527
469
 
528
470
  ```typescript
@@ -579,22 +521,6 @@ The command to execute.
579
521
 
580
522
  ---
581
523
 
582
- ##### `addCdkDependency` <a name="addCdkDependency" id="@macedon-technologies/batman.BatmanProject.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="@macedon-technologies/batman.BatmanProject.addCdkDependency.parameter.modules"></a>
591
-
592
- - *Type:* ...string[]
593
-
594
- The list of modules to depend on.
595
-
596
- ---
597
-
598
524
  #### Static Functions <a name="Static Functions" id="Static Functions"></a>
599
525
 
600
526
  | **Name** | **Description** |
@@ -700,21 +626,16 @@ When given a project, this it the project itself.
700
626
  | <code><a href="#@macedon-technologies/batman.BatmanProject.property.defaultTask">defaultTask</a></code> | <code>projen.Task</code> | This is the "default" task, the one that executes "projen". |
701
627
  | <code><a href="#@macedon-technologies/batman.BatmanProject.property.initProject">initProject</a></code> | <code>projen.InitProject</code> | The options used when this project is bootstrapped via `projen new`. |
702
628
  | <code><a href="#@macedon-technologies/batman.BatmanProject.property.parent">parent</a></code> | <code>projen.Project</code> | A parent project. |
703
- | <code><a href="#@macedon-technologies/batman.BatmanProject.property.projectType">projectType</a></code> | <code>projen.ProjectType</code> | *No description.* |
704
629
  | <code><a href="#@macedon-technologies/batman.BatmanProject.property.autoApprove">autoApprove</a></code> | <code>projen.github.AutoApprove</code> | Auto approve set up for this project. |
705
630
  | <code><a href="#@macedon-technologies/batman.BatmanProject.property.devContainer">devContainer</a></code> | <code>projen.vscode.DevContainer</code> | Access for .devcontainer.json (used for GitHub Codespaces). |
706
631
  | <code><a href="#@macedon-technologies/batman.BatmanProject.property.github">github</a></code> | <code>projen.github.GitHub</code> | Access all github components. |
707
632
  | <code><a href="#@macedon-technologies/batman.BatmanProject.property.gitpod">gitpod</a></code> | <code>projen.Gitpod</code> | Access for Gitpod. |
708
633
  | <code><a href="#@macedon-technologies/batman.BatmanProject.property.vscode">vscode</a></code> | <code>projen.vscode.VsCode</code> | Access all VSCode components. |
709
- | <code><a href="#@macedon-technologies/batman.BatmanProject.property.allowLibraryDependencies">allowLibraryDependencies</a></code> | <code>boolean</code> | *No description.* |
710
634
  | <code><a href="#@macedon-technologies/batman.BatmanProject.property.artifactsDirectory">artifactsDirectory</a></code> | <code>string</code> | The build output directory. |
711
635
  | <code><a href="#@macedon-technologies/batman.BatmanProject.property.artifactsJavascriptDirectory">artifactsJavascriptDirectory</a></code> | <code>string</code> | The location of the npm tarball after build (`${artifactsDirectory}/js`). |
712
636
  | <code><a href="#@macedon-technologies/batman.BatmanProject.property.bundler">bundler</a></code> | <code>projen.javascript.Bundler</code> | *No description.* |
713
- | <code><a href="#@macedon-technologies/batman.BatmanProject.property.entrypoint">entrypoint</a></code> | <code>string</code> | *No description.* |
714
- | <code><a href="#@macedon-technologies/batman.BatmanProject.property.manifest">manifest</a></code> | <code>any</code> | *No description.* |
715
637
  | <code><a href="#@macedon-technologies/batman.BatmanProject.property.npmrc">npmrc</a></code> | <code>projen.javascript.NpmConfig</code> | The .npmrc file. |
716
638
  | <code><a href="#@macedon-technologies/batman.BatmanProject.property.package">package</a></code> | <code>projen.javascript.NodePackage</code> | API for managing the node package. |
717
- | <code><a href="#@macedon-technologies/batman.BatmanProject.property.packageManager">packageManager</a></code> | <code>projen.javascript.NodePackageManager</code> | The package manager to use. |
718
639
  | <code><a href="#@macedon-technologies/batman.BatmanProject.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
640
  | <code><a href="#@macedon-technologies/batman.BatmanProject.property.autoMerge">autoMerge</a></code> | <code>projen.github.AutoMerge</code> | Component that sets up mergify for merging approved pull requests. |
720
641
  | <code><a href="#@macedon-technologies/batman.BatmanProject.property.biome">biome</a></code> | <code>projen.javascript.Biome</code> | *No description.* |
@@ -725,11 +646,11 @@ When given a project, this it the project itself.
725
646
  | <code><a href="#@macedon-technologies/batman.BatmanProject.property.minNodeVersion">minNodeVersion</a></code> | <code>string</code> | The minimum node version required by this package to function. |
726
647
  | <code><a href="#@macedon-technologies/batman.BatmanProject.property.npmignore">npmignore</a></code> | <code>projen.IgnoreFile</code> | The .npmignore file. |
727
648
  | <code><a href="#@macedon-technologies/batman.BatmanProject.property.prettier">prettier</a></code> | <code>projen.javascript.Prettier</code> | *No description.* |
728
- | <code><a href="#@macedon-technologies/batman.BatmanProject.property.publisher">publisher</a></code> | <code>projen.release.Publisher</code> | Package publisher. |
729
649
  | <code><a href="#@macedon-technologies/batman.BatmanProject.property.release">release</a></code> | <code>projen.release.Release</code> | Release management. |
730
650
  | <code><a href="#@macedon-technologies/batman.BatmanProject.property.upgradeWorkflow">upgradeWorkflow</a></code> | <code>projen.javascript.UpgradeDependencies</code> | The upgrade workflow. |
731
651
  | <code><a href="#@macedon-technologies/batman.BatmanProject.property.docsDirectory">docsDirectory</a></code> | <code>string</code> | *No description.* |
732
652
  | <code><a href="#@macedon-technologies/batman.BatmanProject.property.libdir">libdir</a></code> | <code>string</code> | The directory in which compiled .js files reside. |
653
+ | <code><a href="#@macedon-technologies/batman.BatmanProject.property.runner">runner</a></code> | <code>projen.typescript.TypeScriptRunner</code> | The TypeScript runner used for executing TypeScript files. |
733
654
  | <code><a href="#@macedon-technologies/batman.BatmanProject.property.srcdir">srcdir</a></code> | <code>string</code> | The directory in which the .ts sources reside. |
734
655
  | <code><a href="#@macedon-technologies/batman.BatmanProject.property.testdir">testdir</a></code> | <code>string</code> | The directory in which tests reside. |
735
656
  | <code><a href="#@macedon-technologies/batman.BatmanProject.property.tsconfigDev">tsconfigDev</a></code> | <code>projen.javascript.TypescriptConfig</code> | A typescript configuration file which covers all files (sources, tests, projen). |
@@ -1013,7 +934,9 @@ the project is being ejected.
1013
934
 
1014
935
  ---
1015
936
 
1016
- ##### `initProject`<sup>Optional</sup> <a name="initProject" id="@macedon-technologies/batman.BatmanProject.property.initProject"></a>
937
+ ##### ~~`initProject`~~<sup>Optional</sup> <a name="initProject" id="@macedon-technologies/batman.BatmanProject.property.initProject"></a>
938
+
939
+ - *Deprecated:* use the `initProject` argument passed to `Component.projectCreation()` instead.
1017
940
 
1018
941
  ```typescript
1019
942
  public readonly initProject: InitProject;
@@ -1043,16 +966,6 @@ If undefined, this is the root project.
1043
966
 
1044
967
  ---
1045
968
 
1046
- ##### `projectType`<sup>Required</sup> <a name="projectType" id="@macedon-technologies/batman.BatmanProject.property.projectType"></a>
1047
-
1048
- ```typescript
1049
- public readonly projectType: ProjectType;
1050
- ```
1051
-
1052
- - *Type:* projen.ProjectType
1053
-
1054
- ---
1055
-
1056
969
  ##### `autoApprove`<sup>Optional</sup> <a name="autoApprove" id="@macedon-technologies/batman.BatmanProject.property.autoApprove"></a>
1057
970
 
1058
971
  ```typescript
@@ -1121,18 +1034,6 @@ This will be `undefined` for subprojects.
1121
1034
 
1122
1035
  ---
1123
1036
 
1124
- ##### ~~`allowLibraryDependencies`~~<sup>Required</sup> <a name="allowLibraryDependencies" id="@macedon-technologies/batman.BatmanProject.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
1037
  ##### `artifactsDirectory`<sup>Required</sup> <a name="artifactsDirectory" id="@macedon-technologies/batman.BatmanProject.property.artifactsDirectory"></a>
1137
1038
 
1138
1039
  ```typescript
@@ -1171,30 +1072,6 @@ public readonly bundler: Bundler;
1171
1072
 
1172
1073
  ---
1173
1074
 
1174
- ##### ~~`entrypoint`~~<sup>Required</sup> <a name="entrypoint" id="@macedon-technologies/batman.BatmanProject.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="@macedon-technologies/batman.BatmanProject.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
1075
  ##### `npmrc`<sup>Required</sup> <a name="npmrc" id="@macedon-technologies/batman.BatmanProject.property.npmrc"></a>
1199
1076
 
1200
1077
  ```typescript
@@ -1219,20 +1096,6 @@ API for managing the node package.
1219
1096
 
1220
1097
  ---
1221
1098
 
1222
- ##### ~~`packageManager`~~<sup>Required</sup> <a name="packageManager" id="@macedon-technologies/batman.BatmanProject.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
1099
  ##### `runScriptCommand`<sup>Required</sup> <a name="runScriptCommand" id="@macedon-technologies/batman.BatmanProject.property.runScriptCommand"></a>
1237
1100
 
1238
1101
  ```typescript
@@ -1355,23 +1218,6 @@ public readonly prettier: Prettier;
1355
1218
 
1356
1219
  ---
1357
1220
 
1358
- ##### ~~`publisher`~~<sup>Optional</sup> <a name="publisher" id="@macedon-technologies/batman.BatmanProject.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
1221
  ##### `release`<sup>Optional</sup> <a name="release" id="@macedon-technologies/batman.BatmanProject.property.release"></a>
1376
1222
 
1377
1223
  ```typescript
@@ -1418,6 +1264,18 @@ The directory in which compiled .js files reside.
1418
1264
 
1419
1265
  ---
1420
1266
 
1267
+ ##### `runner`<sup>Required</sup> <a name="runner" id="@macedon-technologies/batman.BatmanProject.property.runner"></a>
1268
+
1269
+ ```typescript
1270
+ public readonly runner: TypeScriptRunner;
1271
+ ```
1272
+
1273
+ - *Type:* projen.typescript.TypeScriptRunner
1274
+
1275
+ The TypeScript runner used for executing TypeScript files.
1276
+
1277
+ ---
1278
+
1421
1279
  ##### `srcdir`<sup>Required</sup> <a name="srcdir" id="@macedon-technologies/batman.BatmanProject.property.srcdir"></a>
1422
1280
 
1423
1281
  ```typescript
@@ -1625,11 +1483,11 @@ new BootcampProject(options: BootcampProjectOptions)
1625
1483
  | **Name** | **Description** |
1626
1484
  | --- | --- |
1627
1485
  | <code><a href="#@macedon-technologies/batman.BootcampProject.toString">toString</a></code> | Returns a string representation of this construct. |
1486
+ | <code><a href="#@macedon-technologies/batman.BootcampProject.with">with</a></code> | Applies one or more mixins to this construct. |
1628
1487
  | <code><a href="#@macedon-technologies/batman.BootcampProject.addExcludeFromCleanup">addExcludeFromCleanup</a></code> | Exclude the matching files from pre-synth cleanup. |
1629
1488
  | <code><a href="#@macedon-technologies/batman.BootcampProject.addGitIgnore">addGitIgnore</a></code> | Adds a .gitignore pattern. |
1630
1489
  | <code><a href="#@macedon-technologies/batman.BootcampProject.addPackageIgnore">addPackageIgnore</a></code> | Adds patterns to be ignored by npm. |
1631
1490
  | <code><a href="#@macedon-technologies/batman.BootcampProject.addTask">addTask</a></code> | Adds a new task to this project. |
1632
- | <code><a href="#@macedon-technologies/batman.BootcampProject.addTip">addTip</a></code> | Prints a "tip" message during synthesis. |
1633
1491
  | <code><a href="#@macedon-technologies/batman.BootcampProject.annotateGenerated">annotateGenerated</a></code> | Marks the provided file(s) as being generated. |
1634
1492
  | <code><a href="#@macedon-technologies/batman.BootcampProject.postSynthesize">postSynthesize</a></code> | Called after all components are synthesized. |
1635
1493
  | <code><a href="#@macedon-technologies/batman.BootcampProject.preSynthesize">preSynthesize</a></code> | Called before all components are synthesized. |
@@ -1637,24 +1495,19 @@ new BootcampProject(options: BootcampProjectOptions)
1637
1495
  | <code><a href="#@macedon-technologies/batman.BootcampProject.runTaskCommand">runTaskCommand</a></code> | Returns the shell command to execute in order to run a task. |
1638
1496
  | <code><a href="#@macedon-technologies/batman.BootcampProject.synth">synth</a></code> | Synthesize all project files into `outdir`. |
1639
1497
  | <code><a href="#@macedon-technologies/batman.BootcampProject.tryFindFile">tryFindFile</a></code> | Finds a file at the specified relative path within this project and all its subprojects. |
1640
- | <code><a href="#@macedon-technologies/batman.BootcampProject.tryFindJsonFile">tryFindJsonFile</a></code> | Finds a json file by name. |
1641
1498
  | <code><a href="#@macedon-technologies/batman.BootcampProject.tryFindObjectFile">tryFindObjectFile</a></code> | Finds an object file (like JsonFile, YamlFile, etc.) by name. |
1642
1499
  | <code><a href="#@macedon-technologies/batman.BootcampProject.tryRemoveFile">tryRemoveFile</a></code> | Finds a file at the specified relative path within this project and removes it. |
1643
1500
  | <code><a href="#@macedon-technologies/batman.BootcampProject.addBins">addBins</a></code> | *No description.* |
1644
1501
  | <code><a href="#@macedon-technologies/batman.BootcampProject.addBundledDeps">addBundledDeps</a></code> | Defines bundled dependencies. |
1645
- | <code><a href="#@macedon-technologies/batman.BootcampProject.addCompileCommand">addCompileCommand</a></code> | DEPRECATED. |
1646
1502
  | <code><a href="#@macedon-technologies/batman.BootcampProject.addDeps">addDeps</a></code> | Defines normal dependencies. |
1647
1503
  | <code><a href="#@macedon-technologies/batman.BootcampProject.addDevDeps">addDevDeps</a></code> | Defines development/test dependencies. |
1648
1504
  | <code><a href="#@macedon-technologies/batman.BootcampProject.addFields">addFields</a></code> | Directly set fields in `package.json`. |
1649
1505
  | <code><a href="#@macedon-technologies/batman.BootcampProject.addKeywords">addKeywords</a></code> | Adds keywords to package.json (deduplicated). |
1650
1506
  | <code><a href="#@macedon-technologies/batman.BootcampProject.addPeerDeps">addPeerDeps</a></code> | Defines peer dependencies. |
1651
1507
  | <code><a href="#@macedon-technologies/batman.BootcampProject.addScripts">addScripts</a></code> | Replaces the contents of multiple npm package.json scripts. |
1652
- | <code><a href="#@macedon-technologies/batman.BootcampProject.addTestCommand">addTestCommand</a></code> | DEPRECATED. |
1653
- | <code><a href="#@macedon-technologies/batman.BootcampProject.hasScript">hasScript</a></code> | Indicates if a script by the name name is defined. |
1654
1508
  | <code><a href="#@macedon-technologies/batman.BootcampProject.removeScript">removeScript</a></code> | Removes the npm script (always successful). |
1655
1509
  | <code><a href="#@macedon-technologies/batman.BootcampProject.renderWorkflowSetup">renderWorkflowSetup</a></code> | Returns the set of workflow steps which should be executed to bootstrap a workflow. |
1656
1510
  | <code><a href="#@macedon-technologies/batman.BootcampProject.setScript">setScript</a></code> | Replaces the contents of an npm package.json script. |
1657
- | <code><a href="#@macedon-technologies/batman.BootcampProject.addCdkDependency">addCdkDependency</a></code> | Adds an AWS CDK module dependencies. |
1658
1511
 
1659
1512
  ---
1660
1513
 
@@ -1666,6 +1519,27 @@ public toString(): string
1666
1519
 
1667
1520
  Returns a string representation of this construct.
1668
1521
 
1522
+ ##### `with` <a name="with" id="@macedon-technologies/batman.BootcampProject.with"></a>
1523
+
1524
+ ```typescript
1525
+ public with(mixins: ...IMixin[]): IConstruct
1526
+ ```
1527
+
1528
+ Applies one or more mixins to this construct.
1529
+
1530
+ Mixins are applied in order. The list of constructs is captured at the
1531
+ start of the call, so constructs added by a mixin will not be visited.
1532
+ Use multiple `with()` calls if subsequent mixins should apply to added
1533
+ constructs.
1534
+
1535
+ ###### `mixins`<sup>Required</sup> <a name="mixins" id="@macedon-technologies/batman.BootcampProject.with.parameter.mixins"></a>
1536
+
1537
+ - *Type:* ...constructs.IMixin[]
1538
+
1539
+ The mixins to apply.
1540
+
1541
+ ---
1542
+
1669
1543
  ##### `addExcludeFromCleanup` <a name="addExcludeFromCleanup" id="@macedon-technologies/batman.BootcampProject.addExcludeFromCleanup"></a>
1670
1544
 
1671
1545
  ```typescript
@@ -1744,22 +1618,6 @@ Task properties.
1744
1618
 
1745
1619
  ---
1746
1620
 
1747
- ##### ~~`addTip`~~ <a name="addTip" id="@macedon-technologies/batman.BootcampProject.addTip"></a>
1748
-
1749
- ```typescript
1750
- public addTip(message: string): void
1751
- ```
1752
-
1753
- Prints a "tip" message during synthesis.
1754
-
1755
- ###### `message`<sup>Required</sup> <a name="message" id="@macedon-technologies/batman.BootcampProject.addTip.parameter.message"></a>
1756
-
1757
- - *Type:* string
1758
-
1759
- The message.
1760
-
1761
- ---
1762
-
1763
1621
  ##### `annotateGenerated` <a name="annotateGenerated" id="@macedon-technologies/batman.BootcampProject.annotateGenerated"></a>
1764
1622
 
1765
1623
  ```typescript
@@ -1825,7 +1683,7 @@ public runTaskCommand(task: Task): string
1825
1683
  Returns the shell command to execute in order to run a task.
1826
1684
 
1827
1685
  This will
1828
- typically be `npx projen TASK`.
1686
+ typically be `pnpm projen TASK`.
1829
1687
 
1830
1688
  ###### `task`<sup>Required</sup> <a name="task" id="@macedon-technologies/batman.BootcampProject.runTaskCommand.parameter.task"></a>
1831
1689
 
@@ -1847,8 +1705,10 @@ Synthesize all project files into `outdir`.
1847
1705
  2. Delete all generated files
1848
1706
  3. Synthesize all subprojects
1849
1707
  4. Synthesize all components of this project
1850
- 5. Call "postSynthesize()" for all components of this project
1851
- 6. Call "this.postSynthesize()"
1708
+ 5. Call "projectCreation()" for all components, only if the project is being created for the first time
1709
+ 6. Call "postSynthesize()" for all components of this project
1710
+ 7. Call "this.postSynthesize()"
1711
+ 8. Call "postProjectCreation()" for all components, only if the project is being created for the first time
1852
1712
 
1853
1713
  ##### `tryFindFile` <a name="tryFindFile" id="@macedon-technologies/batman.BootcampProject.tryFindFile"></a>
1854
1714
 
@@ -1869,22 +1729,6 @@ from the root of _this_ project.
1869
1729
 
1870
1730
  ---
1871
1731
 
1872
- ##### ~~`tryFindJsonFile`~~ <a name="tryFindJsonFile" id="@macedon-technologies/batman.BootcampProject.tryFindJsonFile"></a>
1873
-
1874
- ```typescript
1875
- public tryFindJsonFile(filePath: string): JsonFile
1876
- ```
1877
-
1878
- Finds a json file by name.
1879
-
1880
- ###### `filePath`<sup>Required</sup> <a name="filePath" id="@macedon-technologies/batman.BootcampProject.tryFindJsonFile.parameter.filePath"></a>
1881
-
1882
- - *Type:* string
1883
-
1884
- The file path.
1885
-
1886
- ---
1887
-
1888
1732
  ##### `tryFindObjectFile` <a name="tryFindObjectFile" id="@macedon-technologies/batman.BootcampProject.tryFindObjectFile"></a>
1889
1733
 
1890
1734
  ```typescript
@@ -1950,27 +1794,13 @@ Bundled dependencies will be added as normal dependencies as well as to the
1950
1794
  Names modules to install.
1951
1795
 
1952
1796
  By default, the the dependency will
1953
- be installed in the next `npx projen` run and the version will be recorded
1954
- in your `package.json` file. You can upgrade manually or using `yarn
1955
- add/upgrade`. If you wish to specify a version range use this syntax:
1797
+ be installed in the next `pnpm projen` run and the version will be recorded
1798
+ in your `package.json` file. You can upgrade manually or using `pnpm
1799
+ add/update`. If you wish to specify a version range use this syntax:
1956
1800
  `module@^7`.
1957
1801
 
1958
1802
  ---
1959
1803
 
1960
- ##### ~~`addCompileCommand`~~ <a name="addCompileCommand" id="@macedon-technologies/batman.BootcampProject.addCompileCommand"></a>
1961
-
1962
- ```typescript
1963
- public addCompileCommand(commands: ...string[]): void
1964
- ```
1965
-
1966
- DEPRECATED.
1967
-
1968
- ###### `commands`<sup>Required</sup> <a name="commands" id="@macedon-technologies/batman.BootcampProject.addCompileCommand.parameter.commands"></a>
1969
-
1970
- - *Type:* ...string[]
1971
-
1972
- ---
1973
-
1974
1804
  ##### `addDeps` <a name="addDeps" id="@macedon-technologies/batman.BootcampProject.addDeps"></a>
1975
1805
 
1976
1806
  ```typescript
@@ -1986,9 +1816,9 @@ Defines normal dependencies.
1986
1816
  Names modules to install.
1987
1817
 
1988
1818
  By default, the the dependency will
1989
- be installed in the next `npx projen` run and the version will be recorded
1990
- in your `package.json` file. You can upgrade manually or using `yarn
1991
- add/upgrade`. If you wish to specify a version range use this syntax:
1819
+ be installed in the next `pnpm projen` run and the version will be recorded
1820
+ in your `package.json` file. You can upgrade manually or using `pnpm
1821
+ add/update`. If you wish to specify a version range use this syntax:
1992
1822
  `module@^7`.
1993
1823
 
1994
1824
  ---
@@ -2008,9 +1838,9 @@ Defines development/test dependencies.
2008
1838
  Names modules to install.
2009
1839
 
2010
1840
  By default, the the dependency will
2011
- be installed in the next `npx projen` run and the version will be recorded
2012
- in your `package.json` file. You can upgrade manually or using `yarn
2013
- add/upgrade`. If you wish to specify a version range use this syntax:
1841
+ be installed in the next `pnpm projen` run and the version will be recorded
1842
+ in your `package.json` file. You can upgrade manually or using `pnpm
1843
+ add/update`. If you wish to specify a version range use this syntax:
2014
1844
  `module@^7`.
2015
1845
 
2016
1846
  ---
@@ -2066,9 +1896,9 @@ your code against the minimum version required from your consumers.
2066
1896
  Names modules to install.
2067
1897
 
2068
1898
  By default, the the dependency will
2069
- be installed in the next `npx projen` run and the version will be recorded
2070
- in your `package.json` file. You can upgrade manually or using `yarn
2071
- add/upgrade`. If you wish to specify a version range use this syntax:
1899
+ be installed in the next `pnpm projen` run and the version will be recorded
1900
+ in your `package.json` file. You can upgrade manually or using `pnpm
1901
+ add/update`. If you wish to specify a version range use this syntax:
2072
1902
  `module@^7`.
2073
1903
 
2074
1904
  ---
@@ -2089,36 +1919,6 @@ The scripts to set.
2089
1919
 
2090
1920
  ---
2091
1921
 
2092
- ##### ~~`addTestCommand`~~ <a name="addTestCommand" id="@macedon-technologies/batman.BootcampProject.addTestCommand"></a>
2093
-
2094
- ```typescript
2095
- public addTestCommand(commands: ...string[]): void
2096
- ```
2097
-
2098
- DEPRECATED.
2099
-
2100
- ###### `commands`<sup>Required</sup> <a name="commands" id="@macedon-technologies/batman.BootcampProject.addTestCommand.parameter.commands"></a>
2101
-
2102
- - *Type:* ...string[]
2103
-
2104
- ---
2105
-
2106
- ##### ~~`hasScript`~~ <a name="hasScript" id="@macedon-technologies/batman.BootcampProject.hasScript"></a>
2107
-
2108
- ```typescript
2109
- public hasScript(name: string): boolean
2110
- ```
2111
-
2112
- Indicates if a script by the name name is defined.
2113
-
2114
- ###### `name`<sup>Required</sup> <a name="name" id="@macedon-technologies/batman.BootcampProject.hasScript.parameter.name"></a>
2115
-
2116
- - *Type:* string
2117
-
2118
- The name of the script.
2119
-
2120
- ---
2121
-
2122
1922
  ##### `removeScript` <a name="removeScript" id="@macedon-technologies/batman.BootcampProject.removeScript"></a>
2123
1923
 
2124
1924
  ```typescript
@@ -2175,22 +1975,6 @@ The command to execute.
2175
1975
 
2176
1976
  ---
2177
1977
 
2178
- ##### `addCdkDependency` <a name="addCdkDependency" id="@macedon-technologies/batman.BootcampProject.addCdkDependency"></a>
2179
-
2180
- ```typescript
2181
- public addCdkDependency(modules: ...string[]): void
2182
- ```
2183
-
2184
- Adds an AWS CDK module dependencies.
2185
-
2186
- ###### `modules`<sup>Required</sup> <a name="modules" id="@macedon-technologies/batman.BootcampProject.addCdkDependency.parameter.modules"></a>
2187
-
2188
- - *Type:* ...string[]
2189
-
2190
- The list of modules to depend on.
2191
-
2192
- ---
2193
-
2194
1978
  #### Static Functions <a name="Static Functions" id="Static Functions"></a>
2195
1979
 
2196
1980
  | **Name** | **Description** |
@@ -2296,21 +2080,16 @@ When given a project, this it the project itself.
2296
2080
  | <code><a href="#@macedon-technologies/batman.BootcampProject.property.defaultTask">defaultTask</a></code> | <code>projen.Task</code> | This is the "default" task, the one that executes "projen". |
2297
2081
  | <code><a href="#@macedon-technologies/batman.BootcampProject.property.initProject">initProject</a></code> | <code>projen.InitProject</code> | The options used when this project is bootstrapped via `projen new`. |
2298
2082
  | <code><a href="#@macedon-technologies/batman.BootcampProject.property.parent">parent</a></code> | <code>projen.Project</code> | A parent project. |
2299
- | <code><a href="#@macedon-technologies/batman.BootcampProject.property.projectType">projectType</a></code> | <code>projen.ProjectType</code> | *No description.* |
2300
2083
  | <code><a href="#@macedon-technologies/batman.BootcampProject.property.autoApprove">autoApprove</a></code> | <code>projen.github.AutoApprove</code> | Auto approve set up for this project. |
2301
2084
  | <code><a href="#@macedon-technologies/batman.BootcampProject.property.devContainer">devContainer</a></code> | <code>projen.vscode.DevContainer</code> | Access for .devcontainer.json (used for GitHub Codespaces). |
2302
2085
  | <code><a href="#@macedon-technologies/batman.BootcampProject.property.github">github</a></code> | <code>projen.github.GitHub</code> | Access all github components. |
2303
2086
  | <code><a href="#@macedon-technologies/batman.BootcampProject.property.gitpod">gitpod</a></code> | <code>projen.Gitpod</code> | Access for Gitpod. |
2304
2087
  | <code><a href="#@macedon-technologies/batman.BootcampProject.property.vscode">vscode</a></code> | <code>projen.vscode.VsCode</code> | Access all VSCode components. |
2305
- | <code><a href="#@macedon-technologies/batman.BootcampProject.property.allowLibraryDependencies">allowLibraryDependencies</a></code> | <code>boolean</code> | *No description.* |
2306
2088
  | <code><a href="#@macedon-technologies/batman.BootcampProject.property.artifactsDirectory">artifactsDirectory</a></code> | <code>string</code> | The build output directory. |
2307
2089
  | <code><a href="#@macedon-technologies/batman.BootcampProject.property.artifactsJavascriptDirectory">artifactsJavascriptDirectory</a></code> | <code>string</code> | The location of the npm tarball after build (`${artifactsDirectory}/js`). |
2308
2090
  | <code><a href="#@macedon-technologies/batman.BootcampProject.property.bundler">bundler</a></code> | <code>projen.javascript.Bundler</code> | *No description.* |
2309
- | <code><a href="#@macedon-technologies/batman.BootcampProject.property.entrypoint">entrypoint</a></code> | <code>string</code> | *No description.* |
2310
- | <code><a href="#@macedon-technologies/batman.BootcampProject.property.manifest">manifest</a></code> | <code>any</code> | *No description.* |
2311
2091
  | <code><a href="#@macedon-technologies/batman.BootcampProject.property.npmrc">npmrc</a></code> | <code>projen.javascript.NpmConfig</code> | The .npmrc file. |
2312
2092
  | <code><a href="#@macedon-technologies/batman.BootcampProject.property.package">package</a></code> | <code>projen.javascript.NodePackage</code> | API for managing the node package. |
2313
- | <code><a href="#@macedon-technologies/batman.BootcampProject.property.packageManager">packageManager</a></code> | <code>projen.javascript.NodePackageManager</code> | The package manager to use. |
2314
2093
  | <code><a href="#@macedon-technologies/batman.BootcampProject.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). |
2315
2094
  | <code><a href="#@macedon-technologies/batman.BootcampProject.property.autoMerge">autoMerge</a></code> | <code>projen.github.AutoMerge</code> | Component that sets up mergify for merging approved pull requests. |
2316
2095
  | <code><a href="#@macedon-technologies/batman.BootcampProject.property.biome">biome</a></code> | <code>projen.javascript.Biome</code> | *No description.* |
@@ -2321,11 +2100,11 @@ When given a project, this it the project itself.
2321
2100
  | <code><a href="#@macedon-technologies/batman.BootcampProject.property.minNodeVersion">minNodeVersion</a></code> | <code>string</code> | The minimum node version required by this package to function. |
2322
2101
  | <code><a href="#@macedon-technologies/batman.BootcampProject.property.npmignore">npmignore</a></code> | <code>projen.IgnoreFile</code> | The .npmignore file. |
2323
2102
  | <code><a href="#@macedon-technologies/batman.BootcampProject.property.prettier">prettier</a></code> | <code>projen.javascript.Prettier</code> | *No description.* |
2324
- | <code><a href="#@macedon-technologies/batman.BootcampProject.property.publisher">publisher</a></code> | <code>projen.release.Publisher</code> | Package publisher. |
2325
2103
  | <code><a href="#@macedon-technologies/batman.BootcampProject.property.release">release</a></code> | <code>projen.release.Release</code> | Release management. |
2326
2104
  | <code><a href="#@macedon-technologies/batman.BootcampProject.property.upgradeWorkflow">upgradeWorkflow</a></code> | <code>projen.javascript.UpgradeDependencies</code> | The upgrade workflow. |
2327
2105
  | <code><a href="#@macedon-technologies/batman.BootcampProject.property.docsDirectory">docsDirectory</a></code> | <code>string</code> | *No description.* |
2328
2106
  | <code><a href="#@macedon-technologies/batman.BootcampProject.property.libdir">libdir</a></code> | <code>string</code> | The directory in which compiled .js files reside. |
2107
+ | <code><a href="#@macedon-technologies/batman.BootcampProject.property.runner">runner</a></code> | <code>projen.typescript.TypeScriptRunner</code> | The TypeScript runner used for executing TypeScript files. |
2329
2108
  | <code><a href="#@macedon-technologies/batman.BootcampProject.property.srcdir">srcdir</a></code> | <code>string</code> | The directory in which the .ts sources reside. |
2330
2109
  | <code><a href="#@macedon-technologies/batman.BootcampProject.property.testdir">testdir</a></code> | <code>string</code> | The directory in which tests reside. |
2331
2110
  | <code><a href="#@macedon-technologies/batman.BootcampProject.property.tsconfigDev">tsconfigDev</a></code> | <code>projen.javascript.TypescriptConfig</code> | A typescript configuration file which covers all files (sources, tests, projen). |
@@ -2609,7 +2388,9 @@ the project is being ejected.
2609
2388
 
2610
2389
  ---
2611
2390
 
2612
- ##### `initProject`<sup>Optional</sup> <a name="initProject" id="@macedon-technologies/batman.BootcampProject.property.initProject"></a>
2391
+ ##### ~~`initProject`~~<sup>Optional</sup> <a name="initProject" id="@macedon-technologies/batman.BootcampProject.property.initProject"></a>
2392
+
2393
+ - *Deprecated:* use the `initProject` argument passed to `Component.projectCreation()` instead.
2613
2394
 
2614
2395
  ```typescript
2615
2396
  public readonly initProject: InitProject;
@@ -2639,16 +2420,6 @@ If undefined, this is the root project.
2639
2420
 
2640
2421
  ---
2641
2422
 
2642
- ##### `projectType`<sup>Required</sup> <a name="projectType" id="@macedon-technologies/batman.BootcampProject.property.projectType"></a>
2643
-
2644
- ```typescript
2645
- public readonly projectType: ProjectType;
2646
- ```
2647
-
2648
- - *Type:* projen.ProjectType
2649
-
2650
- ---
2651
-
2652
2423
  ##### `autoApprove`<sup>Optional</sup> <a name="autoApprove" id="@macedon-technologies/batman.BootcampProject.property.autoApprove"></a>
2653
2424
 
2654
2425
  ```typescript
@@ -2717,18 +2488,6 @@ This will be `undefined` for subprojects.
2717
2488
 
2718
2489
  ---
2719
2490
 
2720
- ##### ~~`allowLibraryDependencies`~~<sup>Required</sup> <a name="allowLibraryDependencies" id="@macedon-technologies/batman.BootcampProject.property.allowLibraryDependencies"></a>
2721
-
2722
- - *Deprecated:* use `package.allowLibraryDependencies`
2723
-
2724
- ```typescript
2725
- public readonly allowLibraryDependencies: boolean;
2726
- ```
2727
-
2728
- - *Type:* boolean
2729
-
2730
- ---
2731
-
2732
2491
  ##### `artifactsDirectory`<sup>Required</sup> <a name="artifactsDirectory" id="@macedon-technologies/batman.BootcampProject.property.artifactsDirectory"></a>
2733
2492
 
2734
2493
  ```typescript
@@ -2767,69 +2526,31 @@ public readonly bundler: Bundler;
2767
2526
 
2768
2527
  ---
2769
2528
 
2770
- ##### ~~`entrypoint`~~<sup>Required</sup> <a name="entrypoint" id="@macedon-technologies/batman.BootcampProject.property.entrypoint"></a>
2771
-
2772
- - *Deprecated:* use `package.entrypoint`
2529
+ ##### `npmrc`<sup>Required</sup> <a name="npmrc" id="@macedon-technologies/batman.BootcampProject.property.npmrc"></a>
2773
2530
 
2774
2531
  ```typescript
2775
- public readonly entrypoint: string;
2532
+ public readonly npmrc: NpmConfig;
2776
2533
  ```
2777
2534
 
2778
- - *Type:* string
2535
+ - *Type:* projen.javascript.NpmConfig
2779
2536
 
2780
- ---
2537
+ The .npmrc file.
2781
2538
 
2782
- ##### ~~`manifest`~~<sup>Required</sup> <a name="manifest" id="@macedon-technologies/batman.BootcampProject.property.manifest"></a>
2539
+ ---
2783
2540
 
2784
- - *Deprecated:* use `package.addField(x, y)`
2541
+ ##### `package`<sup>Required</sup> <a name="package" id="@macedon-technologies/batman.BootcampProject.property.package"></a>
2785
2542
 
2786
2543
  ```typescript
2787
- public readonly manifest: any;
2544
+ public readonly package: NodePackage;
2788
2545
  ```
2789
2546
 
2790
- - *Type:* any
2547
+ - *Type:* projen.javascript.NodePackage
2548
+
2549
+ API for managing the node package.
2791
2550
 
2792
2551
  ---
2793
2552
 
2794
- ##### `npmrc`<sup>Required</sup> <a name="npmrc" id="@macedon-technologies/batman.BootcampProject.property.npmrc"></a>
2795
-
2796
- ```typescript
2797
- public readonly npmrc: NpmConfig;
2798
- ```
2799
-
2800
- - *Type:* projen.javascript.NpmConfig
2801
-
2802
- The .npmrc file.
2803
-
2804
- ---
2805
-
2806
- ##### `package`<sup>Required</sup> <a name="package" id="@macedon-technologies/batman.BootcampProject.property.package"></a>
2807
-
2808
- ```typescript
2809
- public readonly package: NodePackage;
2810
- ```
2811
-
2812
- - *Type:* projen.javascript.NodePackage
2813
-
2814
- API for managing the node package.
2815
-
2816
- ---
2817
-
2818
- ##### ~~`packageManager`~~<sup>Required</sup> <a name="packageManager" id="@macedon-technologies/batman.BootcampProject.property.packageManager"></a>
2819
-
2820
- - *Deprecated:* use `package.packageManager`
2821
-
2822
- ```typescript
2823
- public readonly packageManager: NodePackageManager;
2824
- ```
2825
-
2826
- - *Type:* projen.javascript.NodePackageManager
2827
-
2828
- The package manager to use.
2829
-
2830
- ---
2831
-
2832
- ##### `runScriptCommand`<sup>Required</sup> <a name="runScriptCommand" id="@macedon-technologies/batman.BootcampProject.property.runScriptCommand"></a>
2553
+ ##### `runScriptCommand`<sup>Required</sup> <a name="runScriptCommand" id="@macedon-technologies/batman.BootcampProject.property.runScriptCommand"></a>
2833
2554
 
2834
2555
  ```typescript
2835
2556
  public readonly runScriptCommand: string;
@@ -2951,23 +2672,6 @@ public readonly prettier: Prettier;
2951
2672
 
2952
2673
  ---
2953
2674
 
2954
- ##### ~~`publisher`~~<sup>Optional</sup> <a name="publisher" id="@macedon-technologies/batman.BootcampProject.property.publisher"></a>
2955
-
2956
- - *Deprecated:* use `release.publisher`.
2957
-
2958
- ```typescript
2959
- public readonly publisher: Publisher;
2960
- ```
2961
-
2962
- - *Type:* projen.release.Publisher
2963
-
2964
- Package publisher.
2965
-
2966
- This will be `undefined` if the project does not have a
2967
- release workflow.
2968
-
2969
- ---
2970
-
2971
2675
  ##### `release`<sup>Optional</sup> <a name="release" id="@macedon-technologies/batman.BootcampProject.property.release"></a>
2972
2676
 
2973
2677
  ```typescript
@@ -3014,6 +2718,18 @@ The directory in which compiled .js files reside.
3014
2718
 
3015
2719
  ---
3016
2720
 
2721
+ ##### `runner`<sup>Required</sup> <a name="runner" id="@macedon-technologies/batman.BootcampProject.property.runner"></a>
2722
+
2723
+ ```typescript
2724
+ public readonly runner: TypeScriptRunner;
2725
+ ```
2726
+
2727
+ - *Type:* projen.typescript.TypeScriptRunner
2728
+
2729
+ The TypeScript runner used for executing TypeScript files.
2730
+
2731
+ ---
2732
+
3017
2733
  ##### `srcdir`<sup>Required</sup> <a name="srcdir" id="@macedon-technologies/batman.BootcampProject.property.srcdir"></a>
3018
2734
 
3019
2735
  ```typescript
@@ -3228,9 +2944,13 @@ new CodeOwnersFile(project: AwsCdkTypeScriptApp, options?: CodeOwnersFileOptions
3228
2944
  | **Name** | **Description** |
3229
2945
  | --- | --- |
3230
2946
  | <code><a href="#@macedon-technologies/batman.CodeOwnersFile.toString">toString</a></code> | Returns a string representation of this construct. |
2947
+ | <code><a href="#@macedon-technologies/batman.CodeOwnersFile.with">with</a></code> | Applies one or more mixins to this construct. |
2948
+ | <code><a href="#@macedon-technologies/batman.CodeOwnersFile.postProjectCreation">postProjectCreation</a></code> | Called once, right after `postSynthesize()`, only when the project is created for the first time. |
3231
2949
  | <code><a href="#@macedon-technologies/batman.CodeOwnersFile.postSynthesize">postSynthesize</a></code> | Called after synthesis. |
3232
2950
  | <code><a href="#@macedon-technologies/batman.CodeOwnersFile.preSynthesize">preSynthesize</a></code> | Called before synthesis. |
2951
+ | <code><a href="#@macedon-technologies/batman.CodeOwnersFile.projectCreation">projectCreation</a></code> | Called once, right after `synthesize()`, only when the project is created for the first time. |
3233
2952
  | <code><a href="#@macedon-technologies/batman.CodeOwnersFile.synthesize">synthesize</a></code> | Writes the file to the project's output directory. |
2953
+ | <code><a href="#@macedon-technologies/batman.CodeOwnersFile.diff">diff</a></code> | Returns a unified diff of the old and new file contents with context lines and hunk headers. |
3234
2954
  | <code><a href="#@macedon-technologies/batman.CodeOwnersFile.addLine">addLine</a></code> | Adds a line to the text file. |
3235
2955
 
3236
2956
  ---
@@ -3243,6 +2963,48 @@ public toString(): string
3243
2963
 
3244
2964
  Returns a string representation of this construct.
3245
2965
 
2966
+ ##### `with` <a name="with" id="@macedon-technologies/batman.CodeOwnersFile.with"></a>
2967
+
2968
+ ```typescript
2969
+ public with(mixins: ...IMixin[]): IConstruct
2970
+ ```
2971
+
2972
+ Applies one or more mixins to this construct.
2973
+
2974
+ Mixins are applied in order. The list of constructs is captured at the
2975
+ start of the call, so constructs added by a mixin will not be visited.
2976
+ Use multiple `with()` calls if subsequent mixins should apply to added
2977
+ constructs.
2978
+
2979
+ ###### `mixins`<sup>Required</sup> <a name="mixins" id="@macedon-technologies/batman.CodeOwnersFile.with.parameter.mixins"></a>
2980
+
2981
+ - *Type:* ...constructs.IMixin[]
2982
+
2983
+ The mixins to apply.
2984
+
2985
+ ---
2986
+
2987
+ ##### `postProjectCreation` <a name="postProjectCreation" id="@macedon-technologies/batman.CodeOwnersFile.postProjectCreation"></a>
2988
+
2989
+ ```typescript
2990
+ public postProjectCreation(initProject: InitProject): void
2991
+ ```
2992
+
2993
+ Called once, right after `postSynthesize()`, only when the project is created for the first time.
2994
+
2995
+ It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
2996
+ It is also skipped when post-synthesis steps are disabled, e.g. `--no-post` or `PROJEN_DISABLE_POST`.
2997
+ Use it for one-off setup that can be turned off by the user, like running a task to give the user immediate
2998
+ feedback on their new project. Order across components is not guaranteed.
2999
+
3000
+ ###### `initProject`<sup>Required</sup> <a name="initProject" id="@macedon-technologies/batman.CodeOwnersFile.postProjectCreation.parameter.initProject"></a>
3001
+
3002
+ - *Type:* projen.InitProject
3003
+
3004
+ Details about how the project was created, e.g. its type and the original CLI args.
3005
+
3006
+ ---
3007
+
3246
3008
  ##### `postSynthesize` <a name="postSynthesize" id="@macedon-technologies/batman.CodeOwnersFile.postSynthesize"></a>
3247
3009
 
3248
3010
  ```typescript
@@ -3261,6 +3023,25 @@ public preSynthesize(): void
3261
3023
 
3262
3024
  Called before synthesis.
3263
3025
 
3026
+ ##### `projectCreation` <a name="projectCreation" id="@macedon-technologies/batman.CodeOwnersFile.projectCreation"></a>
3027
+
3028
+ ```typescript
3029
+ public projectCreation(initProject: InitProject): void
3030
+ ```
3031
+
3032
+ Called once, right after `synthesize()`, only when the project is created for the first time.
3033
+
3034
+ It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
3035
+ Use it for deterministic, one-off file generation. Order across components is not guaranteed.
3036
+
3037
+ ###### `initProject`<sup>Required</sup> <a name="initProject" id="@macedon-technologies/batman.CodeOwnersFile.projectCreation.parameter.initProject"></a>
3038
+
3039
+ - *Type:* projen.InitProject
3040
+
3041
+ Details about how the project was created, e.g. its type and the original CLI args.
3042
+
3043
+ ---
3044
+
3264
3045
  ##### `synthesize` <a name="synthesize" id="@macedon-technologies/batman.CodeOwnersFile.synthesize"></a>
3265
3046
 
3266
3047
  ```typescript
@@ -3269,6 +3050,35 @@ public synthesize(): void
3269
3050
 
3270
3051
  Writes the file to the project's output directory.
3271
3052
 
3053
+ ##### `diff` <a name="diff" id="@macedon-technologies/batman.CodeOwnersFile.diff"></a>
3054
+
3055
+ ```typescript
3056
+ public diff(colorize?: boolean, contextLines?: number): string[]
3057
+ ```
3058
+
3059
+ Returns a unified diff of the old and new file contents with context lines and hunk headers.
3060
+
3061
+ Only available after synthesis.
3062
+
3063
+ This is an expensive operation and should only be used on non time-critical
3064
+ code paths, like debug output.
3065
+
3066
+ ###### `colorize`<sup>Optional</sup> <a name="colorize" id="@macedon-technologies/batman.CodeOwnersFile.diff.parameter.colorize"></a>
3067
+
3068
+ - *Type:* boolean
3069
+
3070
+ Whether to colorize the diff output.
3071
+
3072
+ ---
3073
+
3074
+ ###### `contextLines`<sup>Optional</sup> <a name="contextLines" id="@macedon-technologies/batman.CodeOwnersFile.diff.parameter.contextLines"></a>
3075
+
3076
+ - *Type:* number
3077
+
3078
+ Number of context lines around changes.
3079
+
3080
+ ---
3081
+
3272
3082
  ##### `addLine` <a name="addLine" id="@macedon-technologies/batman.CodeOwnersFile.addLine"></a>
3273
3083
 
3274
3084
  ```typescript
@@ -3349,6 +3159,7 @@ Test whether the given construct is a component.
3349
3159
  | <code><a href="#@macedon-technologies/batman.CodeOwnersFile.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
3350
3160
  | <code><a href="#@macedon-technologies/batman.CodeOwnersFile.property.project">project</a></code> | <code>projen.Project</code> | *No description.* |
3351
3161
  | <code><a href="#@macedon-technologies/batman.CodeOwnersFile.property.absolutePath">absolutePath</a></code> | <code>string</code> | The absolute path of this file. |
3162
+ | <code><a href="#@macedon-technologies/batman.CodeOwnersFile.property.committed">committed</a></code> | <code>boolean</code> | Indicates if the file will be committed. |
3352
3163
  | <code><a href="#@macedon-technologies/batman.CodeOwnersFile.property.path">path</a></code> | <code>string</code> | The file path, relative to the project's outdir. |
3353
3164
  | <code><a href="#@macedon-technologies/batman.CodeOwnersFile.property.changed">changed</a></code> | <code>boolean</code> | Indicates if the file has been changed during synthesis. |
3354
3165
  | <code><a href="#@macedon-technologies/batman.CodeOwnersFile.property.marker">marker</a></code> | <code>string</code> | The projen marker, used to identify files as projen-generated. |
@@ -3391,6 +3202,18 @@ The absolute path of this file.
3391
3202
 
3392
3203
  ---
3393
3204
 
3205
+ ##### `committed`<sup>Required</sup> <a name="committed" id="@macedon-technologies/batman.CodeOwnersFile.property.committed"></a>
3206
+
3207
+ ```typescript
3208
+ public readonly committed: boolean;
3209
+ ```
3210
+
3211
+ - *Type:* boolean
3212
+
3213
+ Indicates if the file will be committed.
3214
+
3215
+ ---
3216
+
3394
3217
  ##### `path`<sup>Required</sup> <a name="path" id="@macedon-technologies/batman.CodeOwnersFile.property.path"></a>
3395
3218
 
3396
3219
  ```typescript
@@ -3492,9 +3315,13 @@ new ProductionDeployWorkflow(project: AwsCdkTypeScriptApp, options: ProductionDe
3492
3315
  | **Name** | **Description** |
3493
3316
  | --- | --- |
3494
3317
  | <code><a href="#@macedon-technologies/batman.ProductionDeployWorkflow.toString">toString</a></code> | Returns a string representation of this construct. |
3318
+ | <code><a href="#@macedon-technologies/batman.ProductionDeployWorkflow.with">with</a></code> | Applies one or more mixins to this construct. |
3319
+ | <code><a href="#@macedon-technologies/batman.ProductionDeployWorkflow.postProjectCreation">postProjectCreation</a></code> | Called once, right after `postSynthesize()`, only when the project is created for the first time. |
3495
3320
  | <code><a href="#@macedon-technologies/batman.ProductionDeployWorkflow.postSynthesize">postSynthesize</a></code> | Called after synthesis. |
3496
3321
  | <code><a href="#@macedon-technologies/batman.ProductionDeployWorkflow.preSynthesize">preSynthesize</a></code> | Called before synthesis. |
3322
+ | <code><a href="#@macedon-technologies/batman.ProductionDeployWorkflow.projectCreation">projectCreation</a></code> | Called once, right after `synthesize()`, only when the project is created for the first time. |
3497
3323
  | <code><a href="#@macedon-technologies/batman.ProductionDeployWorkflow.synthesize">synthesize</a></code> | Writes the file to the project's output directory. |
3324
+ | <code><a href="#@macedon-technologies/batman.ProductionDeployWorkflow.diff">diff</a></code> | Returns a unified diff of the old and new file contents with context lines and hunk headers. |
3498
3325
  | <code><a href="#@macedon-technologies/batman.ProductionDeployWorkflow.addDeletionOverride">addDeletionOverride</a></code> | Syntactic sugar for `addOverride(path, undefined)`. |
3499
3326
  | <code><a href="#@macedon-technologies/batman.ProductionDeployWorkflow.addOverride">addOverride</a></code> | Adds an override to the synthesized object file. |
3500
3327
  | <code><a href="#@macedon-technologies/batman.ProductionDeployWorkflow.addToArray">addToArray</a></code> | Adds to an array in the synthesized object file. |
@@ -3510,6 +3337,48 @@ public toString(): string
3510
3337
 
3511
3338
  Returns a string representation of this construct.
3512
3339
 
3340
+ ##### `with` <a name="with" id="@macedon-technologies/batman.ProductionDeployWorkflow.with"></a>
3341
+
3342
+ ```typescript
3343
+ public with(mixins: ...IMixin[]): IConstruct
3344
+ ```
3345
+
3346
+ Applies one or more mixins to this construct.
3347
+
3348
+ Mixins are applied in order. The list of constructs is captured at the
3349
+ start of the call, so constructs added by a mixin will not be visited.
3350
+ Use multiple `with()` calls if subsequent mixins should apply to added
3351
+ constructs.
3352
+
3353
+ ###### `mixins`<sup>Required</sup> <a name="mixins" id="@macedon-technologies/batman.ProductionDeployWorkflow.with.parameter.mixins"></a>
3354
+
3355
+ - *Type:* ...constructs.IMixin[]
3356
+
3357
+ The mixins to apply.
3358
+
3359
+ ---
3360
+
3361
+ ##### `postProjectCreation` <a name="postProjectCreation" id="@macedon-technologies/batman.ProductionDeployWorkflow.postProjectCreation"></a>
3362
+
3363
+ ```typescript
3364
+ public postProjectCreation(initProject: InitProject): void
3365
+ ```
3366
+
3367
+ Called once, right after `postSynthesize()`, only when the project is created for the first time.
3368
+
3369
+ It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
3370
+ It is also skipped when post-synthesis steps are disabled, e.g. `--no-post` or `PROJEN_DISABLE_POST`.
3371
+ Use it for one-off setup that can be turned off by the user, like running a task to give the user immediate
3372
+ feedback on their new project. Order across components is not guaranteed.
3373
+
3374
+ ###### `initProject`<sup>Required</sup> <a name="initProject" id="@macedon-technologies/batman.ProductionDeployWorkflow.postProjectCreation.parameter.initProject"></a>
3375
+
3376
+ - *Type:* projen.InitProject
3377
+
3378
+ Details about how the project was created, e.g. its type and the original CLI args.
3379
+
3380
+ ---
3381
+
3513
3382
  ##### `postSynthesize` <a name="postSynthesize" id="@macedon-technologies/batman.ProductionDeployWorkflow.postSynthesize"></a>
3514
3383
 
3515
3384
  ```typescript
@@ -3528,6 +3397,25 @@ public preSynthesize(): void
3528
3397
 
3529
3398
  Called before synthesis.
3530
3399
 
3400
+ ##### `projectCreation` <a name="projectCreation" id="@macedon-technologies/batman.ProductionDeployWorkflow.projectCreation"></a>
3401
+
3402
+ ```typescript
3403
+ public projectCreation(initProject: InitProject): void
3404
+ ```
3405
+
3406
+ Called once, right after `synthesize()`, only when the project is created for the first time.
3407
+
3408
+ It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
3409
+ Use it for deterministic, one-off file generation. Order across components is not guaranteed.
3410
+
3411
+ ###### `initProject`<sup>Required</sup> <a name="initProject" id="@macedon-technologies/batman.ProductionDeployWorkflow.projectCreation.parameter.initProject"></a>
3412
+
3413
+ - *Type:* projen.InitProject
3414
+
3415
+ Details about how the project was created, e.g. its type and the original CLI args.
3416
+
3417
+ ---
3418
+
3531
3419
  ##### `synthesize` <a name="synthesize" id="@macedon-technologies/batman.ProductionDeployWorkflow.synthesize"></a>
3532
3420
 
3533
3421
  ```typescript
@@ -3536,6 +3424,35 @@ public synthesize(): void
3536
3424
 
3537
3425
  Writes the file to the project's output directory.
3538
3426
 
3427
+ ##### `diff` <a name="diff" id="@macedon-technologies/batman.ProductionDeployWorkflow.diff"></a>
3428
+
3429
+ ```typescript
3430
+ public diff(colorize?: boolean, contextLines?: number): string[]
3431
+ ```
3432
+
3433
+ Returns a unified diff of the old and new file contents with context lines and hunk headers.
3434
+
3435
+ Only available after synthesis.
3436
+
3437
+ This is an expensive operation and should only be used on non time-critical
3438
+ code paths, like debug output.
3439
+
3440
+ ###### `colorize`<sup>Optional</sup> <a name="colorize" id="@macedon-technologies/batman.ProductionDeployWorkflow.diff.parameter.colorize"></a>
3441
+
3442
+ - *Type:* boolean
3443
+
3444
+ Whether to colorize the diff output.
3445
+
3446
+ ---
3447
+
3448
+ ###### `contextLines`<sup>Optional</sup> <a name="contextLines" id="@macedon-technologies/batman.ProductionDeployWorkflow.diff.parameter.contextLines"></a>
3449
+
3450
+ - *Type:* number
3451
+
3452
+ Number of context lines around changes.
3453
+
3454
+ ---
3455
+
3539
3456
  ##### `addDeletionOverride` <a name="addDeletionOverride" id="@macedon-technologies/batman.ProductionDeployWorkflow.addDeletionOverride"></a>
3540
3457
 
3541
3458
  ```typescript
@@ -3771,6 +3688,7 @@ Test whether the given construct is a component.
3771
3688
  | <code><a href="#@macedon-technologies/batman.ProductionDeployWorkflow.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
3772
3689
  | <code><a href="#@macedon-technologies/batman.ProductionDeployWorkflow.property.project">project</a></code> | <code>projen.Project</code> | *No description.* |
3773
3690
  | <code><a href="#@macedon-technologies/batman.ProductionDeployWorkflow.property.absolutePath">absolutePath</a></code> | <code>string</code> | The absolute path of this file. |
3691
+ | <code><a href="#@macedon-technologies/batman.ProductionDeployWorkflow.property.committed">committed</a></code> | <code>boolean</code> | Indicates if the file will be committed. |
3774
3692
  | <code><a href="#@macedon-technologies/batman.ProductionDeployWorkflow.property.path">path</a></code> | <code>string</code> | The file path, relative to the project's outdir. |
3775
3693
  | <code><a href="#@macedon-technologies/batman.ProductionDeployWorkflow.property.changed">changed</a></code> | <code>boolean</code> | Indicates if the file has been changed during synthesis. |
3776
3694
  | <code><a href="#@macedon-technologies/batman.ProductionDeployWorkflow.property.marker">marker</a></code> | <code>string</code> | The projen marker, used to identify files as projen-generated. |
@@ -3815,6 +3733,18 @@ The absolute path of this file.
3815
3733
 
3816
3734
  ---
3817
3735
 
3736
+ ##### `committed`<sup>Required</sup> <a name="committed" id="@macedon-technologies/batman.ProductionDeployWorkflow.property.committed"></a>
3737
+
3738
+ ```typescript
3739
+ public readonly committed: boolean;
3740
+ ```
3741
+
3742
+ - *Type:* boolean
3743
+
3744
+ Indicates if the file will be committed.
3745
+
3746
+ ---
3747
+
3818
3748
  ##### `path`<sup>Required</sup> <a name="path" id="@macedon-technologies/batman.ProductionDeployWorkflow.property.path"></a>
3819
3749
 
3820
3750
  ```typescript
@@ -3940,9 +3870,13 @@ new StagingDeployWorkflow(project: AwsCdkTypeScriptApp, options: StagingDeployWo
3940
3870
  | **Name** | **Description** |
3941
3871
  | --- | --- |
3942
3872
  | <code><a href="#@macedon-technologies/batman.StagingDeployWorkflow.toString">toString</a></code> | Returns a string representation of this construct. |
3873
+ | <code><a href="#@macedon-technologies/batman.StagingDeployWorkflow.with">with</a></code> | Applies one or more mixins to this construct. |
3874
+ | <code><a href="#@macedon-technologies/batman.StagingDeployWorkflow.postProjectCreation">postProjectCreation</a></code> | Called once, right after `postSynthesize()`, only when the project is created for the first time. |
3943
3875
  | <code><a href="#@macedon-technologies/batman.StagingDeployWorkflow.postSynthesize">postSynthesize</a></code> | Called after synthesis. |
3944
3876
  | <code><a href="#@macedon-technologies/batman.StagingDeployWorkflow.preSynthesize">preSynthesize</a></code> | Called before synthesis. |
3877
+ | <code><a href="#@macedon-technologies/batman.StagingDeployWorkflow.projectCreation">projectCreation</a></code> | Called once, right after `synthesize()`, only when the project is created for the first time. |
3945
3878
  | <code><a href="#@macedon-technologies/batman.StagingDeployWorkflow.synthesize">synthesize</a></code> | Writes the file to the project's output directory. |
3879
+ | <code><a href="#@macedon-technologies/batman.StagingDeployWorkflow.diff">diff</a></code> | Returns a unified diff of the old and new file contents with context lines and hunk headers. |
3946
3880
  | <code><a href="#@macedon-technologies/batman.StagingDeployWorkflow.addDeletionOverride">addDeletionOverride</a></code> | Syntactic sugar for `addOverride(path, undefined)`. |
3947
3881
  | <code><a href="#@macedon-technologies/batman.StagingDeployWorkflow.addOverride">addOverride</a></code> | Adds an override to the synthesized object file. |
3948
3882
  | <code><a href="#@macedon-technologies/batman.StagingDeployWorkflow.addToArray">addToArray</a></code> | Adds to an array in the synthesized object file. |
@@ -3958,6 +3892,48 @@ public toString(): string
3958
3892
 
3959
3893
  Returns a string representation of this construct.
3960
3894
 
3895
+ ##### `with` <a name="with" id="@macedon-technologies/batman.StagingDeployWorkflow.with"></a>
3896
+
3897
+ ```typescript
3898
+ public with(mixins: ...IMixin[]): IConstruct
3899
+ ```
3900
+
3901
+ Applies one or more mixins to this construct.
3902
+
3903
+ Mixins are applied in order. The list of constructs is captured at the
3904
+ start of the call, so constructs added by a mixin will not be visited.
3905
+ Use multiple `with()` calls if subsequent mixins should apply to added
3906
+ constructs.
3907
+
3908
+ ###### `mixins`<sup>Required</sup> <a name="mixins" id="@macedon-technologies/batman.StagingDeployWorkflow.with.parameter.mixins"></a>
3909
+
3910
+ - *Type:* ...constructs.IMixin[]
3911
+
3912
+ The mixins to apply.
3913
+
3914
+ ---
3915
+
3916
+ ##### `postProjectCreation` <a name="postProjectCreation" id="@macedon-technologies/batman.StagingDeployWorkflow.postProjectCreation"></a>
3917
+
3918
+ ```typescript
3919
+ public postProjectCreation(initProject: InitProject): void
3920
+ ```
3921
+
3922
+ Called once, right after `postSynthesize()`, only when the project is created for the first time.
3923
+
3924
+ It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
3925
+ It is also skipped when post-synthesis steps are disabled, e.g. `--no-post` or `PROJEN_DISABLE_POST`.
3926
+ Use it for one-off setup that can be turned off by the user, like running a task to give the user immediate
3927
+ feedback on their new project. Order across components is not guaranteed.
3928
+
3929
+ ###### `initProject`<sup>Required</sup> <a name="initProject" id="@macedon-technologies/batman.StagingDeployWorkflow.postProjectCreation.parameter.initProject"></a>
3930
+
3931
+ - *Type:* projen.InitProject
3932
+
3933
+ Details about how the project was created, e.g. its type and the original CLI args.
3934
+
3935
+ ---
3936
+
3961
3937
  ##### `postSynthesize` <a name="postSynthesize" id="@macedon-technologies/batman.StagingDeployWorkflow.postSynthesize"></a>
3962
3938
 
3963
3939
  ```typescript
@@ -3976,6 +3952,25 @@ public preSynthesize(): void
3976
3952
 
3977
3953
  Called before synthesis.
3978
3954
 
3955
+ ##### `projectCreation` <a name="projectCreation" id="@macedon-technologies/batman.StagingDeployWorkflow.projectCreation"></a>
3956
+
3957
+ ```typescript
3958
+ public projectCreation(initProject: InitProject): void
3959
+ ```
3960
+
3961
+ Called once, right after `synthesize()`, only when the project is created for the first time.
3962
+
3963
+ It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
3964
+ Use it for deterministic, one-off file generation. Order across components is not guaranteed.
3965
+
3966
+ ###### `initProject`<sup>Required</sup> <a name="initProject" id="@macedon-technologies/batman.StagingDeployWorkflow.projectCreation.parameter.initProject"></a>
3967
+
3968
+ - *Type:* projen.InitProject
3969
+
3970
+ Details about how the project was created, e.g. its type and the original CLI args.
3971
+
3972
+ ---
3973
+
3979
3974
  ##### `synthesize` <a name="synthesize" id="@macedon-technologies/batman.StagingDeployWorkflow.synthesize"></a>
3980
3975
 
3981
3976
  ```typescript
@@ -3984,6 +3979,35 @@ public synthesize(): void
3984
3979
 
3985
3980
  Writes the file to the project's output directory.
3986
3981
 
3982
+ ##### `diff` <a name="diff" id="@macedon-technologies/batman.StagingDeployWorkflow.diff"></a>
3983
+
3984
+ ```typescript
3985
+ public diff(colorize?: boolean, contextLines?: number): string[]
3986
+ ```
3987
+
3988
+ Returns a unified diff of the old and new file contents with context lines and hunk headers.
3989
+
3990
+ Only available after synthesis.
3991
+
3992
+ This is an expensive operation and should only be used on non time-critical
3993
+ code paths, like debug output.
3994
+
3995
+ ###### `colorize`<sup>Optional</sup> <a name="colorize" id="@macedon-technologies/batman.StagingDeployWorkflow.diff.parameter.colorize"></a>
3996
+
3997
+ - *Type:* boolean
3998
+
3999
+ Whether to colorize the diff output.
4000
+
4001
+ ---
4002
+
4003
+ ###### `contextLines`<sup>Optional</sup> <a name="contextLines" id="@macedon-technologies/batman.StagingDeployWorkflow.diff.parameter.contextLines"></a>
4004
+
4005
+ - *Type:* number
4006
+
4007
+ Number of context lines around changes.
4008
+
4009
+ ---
4010
+
3987
4011
  ##### `addDeletionOverride` <a name="addDeletionOverride" id="@macedon-technologies/batman.StagingDeployWorkflow.addDeletionOverride"></a>
3988
4012
 
3989
4013
  ```typescript
@@ -4219,6 +4243,7 @@ Test whether the given construct is a component.
4219
4243
  | <code><a href="#@macedon-technologies/batman.StagingDeployWorkflow.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
4220
4244
  | <code><a href="#@macedon-technologies/batman.StagingDeployWorkflow.property.project">project</a></code> | <code>projen.Project</code> | *No description.* |
4221
4245
  | <code><a href="#@macedon-technologies/batman.StagingDeployWorkflow.property.absolutePath">absolutePath</a></code> | <code>string</code> | The absolute path of this file. |
4246
+ | <code><a href="#@macedon-technologies/batman.StagingDeployWorkflow.property.committed">committed</a></code> | <code>boolean</code> | Indicates if the file will be committed. |
4222
4247
  | <code><a href="#@macedon-technologies/batman.StagingDeployWorkflow.property.path">path</a></code> | <code>string</code> | The file path, relative to the project's outdir. |
4223
4248
  | <code><a href="#@macedon-technologies/batman.StagingDeployWorkflow.property.changed">changed</a></code> | <code>boolean</code> | Indicates if the file has been changed during synthesis. |
4224
4249
  | <code><a href="#@macedon-technologies/batman.StagingDeployWorkflow.property.marker">marker</a></code> | <code>string</code> | The projen marker, used to identify files as projen-generated. |
@@ -4263,6 +4288,18 @@ The absolute path of this file.
4263
4288
 
4264
4289
  ---
4265
4290
 
4291
+ ##### `committed`<sup>Required</sup> <a name="committed" id="@macedon-technologies/batman.StagingDeployWorkflow.property.committed"></a>
4292
+
4293
+ ```typescript
4294
+ public readonly committed: boolean;
4295
+ ```
4296
+
4297
+ - *Type:* boolean
4298
+
4299
+ Indicates if the file will be committed.
4300
+
4301
+ ---
4302
+
4266
4303
  ##### `path`<sup>Required</sup> <a name="path" id="@macedon-technologies/batman.StagingDeployWorkflow.property.path"></a>
4267
4304
 
4268
4305
  ```typescript
@@ -4381,8 +4418,11 @@ new WorkflowAutoDiscover(project: AwsCdkTypeScriptApp)
4381
4418
  | **Name** | **Description** |
4382
4419
  | --- | --- |
4383
4420
  | <code><a href="#@macedon-technologies/batman.WorkflowAutoDiscover.toString">toString</a></code> | Returns a string representation of this construct. |
4421
+ | <code><a href="#@macedon-technologies/batman.WorkflowAutoDiscover.with">with</a></code> | Applies one or more mixins to this construct. |
4422
+ | <code><a href="#@macedon-technologies/batman.WorkflowAutoDiscover.postProjectCreation">postProjectCreation</a></code> | Called once, right after `postSynthesize()`, only when the project is created for the first time. |
4384
4423
  | <code><a href="#@macedon-technologies/batman.WorkflowAutoDiscover.postSynthesize">postSynthesize</a></code> | Called after synthesis. |
4385
4424
  | <code><a href="#@macedon-technologies/batman.WorkflowAutoDiscover.preSynthesize">preSynthesize</a></code> | Called before synthesis. |
4425
+ | <code><a href="#@macedon-technologies/batman.WorkflowAutoDiscover.projectCreation">projectCreation</a></code> | Called once, right after `synthesize()`, only when the project is created for the first time. |
4386
4426
  | <code><a href="#@macedon-technologies/batman.WorkflowAutoDiscover.synthesize">synthesize</a></code> | Synthesizes files to the project output directory. |
4387
4427
 
4388
4428
  ---
@@ -4395,6 +4435,48 @@ public toString(): string
4395
4435
 
4396
4436
  Returns a string representation of this construct.
4397
4437
 
4438
+ ##### `with` <a name="with" id="@macedon-technologies/batman.WorkflowAutoDiscover.with"></a>
4439
+
4440
+ ```typescript
4441
+ public with(mixins: ...IMixin[]): IConstruct
4442
+ ```
4443
+
4444
+ Applies one or more mixins to this construct.
4445
+
4446
+ Mixins are applied in order. The list of constructs is captured at the
4447
+ start of the call, so constructs added by a mixin will not be visited.
4448
+ Use multiple `with()` calls if subsequent mixins should apply to added
4449
+ constructs.
4450
+
4451
+ ###### `mixins`<sup>Required</sup> <a name="mixins" id="@macedon-technologies/batman.WorkflowAutoDiscover.with.parameter.mixins"></a>
4452
+
4453
+ - *Type:* ...constructs.IMixin[]
4454
+
4455
+ The mixins to apply.
4456
+
4457
+ ---
4458
+
4459
+ ##### `postProjectCreation` <a name="postProjectCreation" id="@macedon-technologies/batman.WorkflowAutoDiscover.postProjectCreation"></a>
4460
+
4461
+ ```typescript
4462
+ public postProjectCreation(initProject: InitProject): void
4463
+ ```
4464
+
4465
+ Called once, right after `postSynthesize()`, only when the project is created for the first time.
4466
+
4467
+ It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
4468
+ It is also skipped when post-synthesis steps are disabled, e.g. `--no-post` or `PROJEN_DISABLE_POST`.
4469
+ Use it for one-off setup that can be turned off by the user, like running a task to give the user immediate
4470
+ feedback on their new project. Order across components is not guaranteed.
4471
+
4472
+ ###### `initProject`<sup>Required</sup> <a name="initProject" id="@macedon-technologies/batman.WorkflowAutoDiscover.postProjectCreation.parameter.initProject"></a>
4473
+
4474
+ - *Type:* projen.InitProject
4475
+
4476
+ Details about how the project was created, e.g. its type and the original CLI args.
4477
+
4478
+ ---
4479
+
4398
4480
  ##### `postSynthesize` <a name="postSynthesize" id="@macedon-technologies/batman.WorkflowAutoDiscover.postSynthesize"></a>
4399
4481
 
4400
4482
  ```typescript
@@ -4413,6 +4495,25 @@ public preSynthesize(): void
4413
4495
 
4414
4496
  Called before synthesis.
4415
4497
 
4498
+ ##### `projectCreation` <a name="projectCreation" id="@macedon-technologies/batman.WorkflowAutoDiscover.projectCreation"></a>
4499
+
4500
+ ```typescript
4501
+ public projectCreation(initProject: InitProject): void
4502
+ ```
4503
+
4504
+ Called once, right after `synthesize()`, only when the project is created for the first time.
4505
+
4506
+ It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
4507
+ Use it for deterministic, one-off file generation. Order across components is not guaranteed.
4508
+
4509
+ ###### `initProject`<sup>Required</sup> <a name="initProject" id="@macedon-technologies/batman.WorkflowAutoDiscover.projectCreation.parameter.initProject"></a>
4510
+
4511
+ - *Type:* projen.InitProject
4512
+
4513
+ Details about how the project was created, e.g. its type and the original CLI args.
4514
+
4515
+ ---
4516
+
4416
4517
  ##### `synthesize` <a name="synthesize" id="@macedon-technologies/batman.WorkflowAutoDiscover.synthesize"></a>
4417
4518
 
4418
4519
  ```typescript
@@ -4674,16 +4775,14 @@ const batmanProjectOptions: BatmanProjectOptions = { ... }
4674
4775
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.github">github</a></code> | <code>boolean</code> | Enable GitHub integration. |
4675
4776
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.githubOptions">githubOptions</a></code> | <code>projen.github.GitHubOptions</code> | Options for GitHub integration. |
4676
4777
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.gitpod">gitpod</a></code> | <code>boolean</code> | Add a Gitpod development environment. |
4677
- | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.mergify">mergify</a></code> | <code>boolean</code> | Whether mergify should be enabled on this repository or not. |
4678
- | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.mergifyOptions">mergifyOptions</a></code> | <code>projen.github.MergifyOptions</code> | Options for mergify. |
4679
- | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.projectType">projectType</a></code> | <code>projen.ProjectType</code> | Which type of project this is (library/app). |
4680
4778
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.projenCredentials">projenCredentials</a></code> | <code>projen.github.GithubCredentials</code> | Choose a method of providing GitHub API access for projen workflows. |
4681
- | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.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. |
4682
4779
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.readme">readme</a></code> | <code>projen.SampleReadmeProps</code> | The README setup. |
4683
4780
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.stale">stale</a></code> | <code>boolean</code> | Auto-close of stale issues and pull request. |
4684
4781
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.staleOptions">staleOptions</a></code> | <code>projen.github.StaleOptions</code> | Auto-close stale issues and pull requests. |
4685
4782
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.vscode">vscode</a></code> | <code>boolean</code> | Enable VSCode integration. |
4783
+ | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.addPackageManagerToDevEngines">addPackageManagerToDevEngines</a></code> | <code>boolean</code> | Automatically add the resolved `packageManager` to `devEngines.packageManager` in `package.json`, setting `onFail` to `ignore`. |
4686
4784
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.allowLibraryDependencies">allowLibraryDependencies</a></code> | <code>boolean</code> | Allow the project to include `peerDependencies` and `bundledDependencies`. |
4785
+ | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.allowScripts">allowScripts</a></code> | <code>string[]</code> | List of dependency (package) names that are allowed to run lifecycle install scripts (`preinstall`, `install`, `postinstall`, `prepare`) during dependency installation. |
4687
4786
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.authorEmail">authorEmail</a></code> | <code>string</code> | Author's e-mail. |
4688
4787
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.authorName">authorName</a></code> | <code>string</code> | Author's name. |
4689
4788
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.authorOrganization">authorOrganization</a></code> | <code>boolean</code> | Is the author an organization. |
@@ -4695,9 +4794,12 @@ const batmanProjectOptions: BatmanProjectOptions = { ... }
4695
4794
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.bundledDeps">bundledDeps</a></code> | <code>string[]</code> | List of dependencies to bundle into this module. |
4696
4795
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.bunVersion">bunVersion</a></code> | <code>string</code> | The version of Bun to use if using Bun as a package manager. |
4697
4796
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.codeArtifactOptions">codeArtifactOptions</a></code> | <code>projen.javascript.CodeArtifactOptions</code> | Options for npm packages using AWS CodeArtifact. |
4797
+ | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.dedupeDeps">dedupeDeps</a></code> | <code>boolean</code> | Add a `dedupe` task that deduplicates project dependencies. |
4798
+ | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.deleteOrphanedLockFiles">deleteOrphanedLockFiles</a></code> | <code>boolean</code> | Automatically delete lockfiles from package managers that are not the active one. |
4698
4799
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.deps">deps</a></code> | <code>string[]</code> | Runtime dependencies of this module. |
4699
4800
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.description">description</a></code> | <code>string</code> | The description is just a string that helps people understand the purpose of the package. |
4700
4801
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.devDeps">devDeps</a></code> | <code>string[]</code> | Build dependencies for this module. |
4802
+ | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.devEngines">devEngines</a></code> | <code>projen.javascript.DevEngines</code> | Configure the `devEngines` field in `package.json`. |
4701
4803
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.entrypoint">entrypoint</a></code> | <code>string</code> | Module entrypoint (`main` in `package.json`). |
4702
4804
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.homepage">homepage</a></code> | <code>string</code> | Package's Homepage / Website. |
4703
4805
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.keywords">keywords</a></code> | <code>string[]</code> | Keywords to include in `package.json`. |
@@ -4707,7 +4809,6 @@ const batmanProjectOptions: BatmanProjectOptions = { ... }
4707
4809
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.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. |
4708
4810
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.npmAccess">npmAccess</a></code> | <code>projen.javascript.NpmAccess</code> | Access level of the npm package. |
4709
4811
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.npmProvenance">npmProvenance</a></code> | <code>boolean</code> | Should provenance statements be generated when the package is published. |
4710
- | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.npmRegistry">npmRegistry</a></code> | <code>string</code> | The host name of the npm registry to publish to. |
4711
4812
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.npmRegistryUrl">npmRegistryUrl</a></code> | <code>string</code> | The base URL of the npm package registry. |
4712
4813
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.npmTokenSecret">npmTokenSecret</a></code> | <code>string</code> | GitHub secret which contains the NPM token to use when publishing packages. |
4713
4814
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.npmTrustedPublishing">npmTrustedPublishing</a></code> | <code>boolean</code> | Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work. |
@@ -4715,11 +4816,11 @@ const batmanProjectOptions: BatmanProjectOptions = { ... }
4715
4816
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.packageName">packageName</a></code> | <code>string</code> | The "name" in package.json. |
4716
4817
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
4717
4818
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.peerDeps">peerDeps</a></code> | <code>string[]</code> | Peer dependencies for this module. |
4819
+ | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.pnpmOptions">pnpmOptions</a></code> | <code>projen.javascript.PnpmOptions</code> | Options for pnpm. |
4718
4820
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.pnpmVersion">pnpmVersion</a></code> | <code>string</code> | The version of PNPM to use if using PNPM as a package manager. |
4719
4821
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.repository">repository</a></code> | <code>string</code> | The repository is the location where the actual code for your package lives. |
4720
4822
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.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. |
4721
4823
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.scopedPackagesOptions">scopedPackagesOptions</a></code> | <code>projen.javascript.ScopedPackagesOptions[]</code> | Options for privately hosted scoped packages. |
4722
- | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.scripts">scripts</a></code> | <code>{[ key: string ]: string}</code> | npm scripts to include. |
4723
4824
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.stability">stability</a></code> | <code>string</code> | Package's Stability. |
4724
4825
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.yarnBerryOptions">yarnBerryOptions</a></code> | <code>projen.javascript.YarnBerryOptions</code> | Options for Yarn Berry. |
4725
4826
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.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. |
@@ -4735,10 +4836,8 @@ const batmanProjectOptions: BatmanProjectOptions = { ... }
4735
4836
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.releasableCommits">releasableCommits</a></code> | <code>projen.ReleasableCommits</code> | Find commits that should be considered releasable Used to decide if a release is required. |
4736
4837
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.releaseBranches">releaseBranches</a></code> | <code>{[ key: string ]: projen.release.BranchOptions}</code> | Defines additional release branches. |
4737
4838
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.releaseEnvironment">releaseEnvironment</a></code> | <code>string</code> | The GitHub Actions environment used for the release. |
4738
- | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.releaseEveryCommit">releaseEveryCommit</a></code> | <code>boolean</code> | Automatically release new versions every commit to one of branches in `releaseBranches`. |
4739
4839
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.releaseFailureIssue">releaseFailureIssue</a></code> | <code>boolean</code> | Create a github issue on every failed publishing task. |
4740
4840
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.releaseFailureIssueLabel">releaseFailureIssueLabel</a></code> | <code>string</code> | The label to apply to issues indicating publish failures. |
4741
- | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.releaseSchedule">releaseSchedule</a></code> | <code>string</code> | CRON schedule to trigger new releases. |
4742
4841
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.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. |
4743
4842
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.releaseTrigger">releaseTrigger</a></code> | <code>projen.release.ReleaseTrigger</code> | The release trigger to use. |
4744
4843
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.releaseWorkflowEnv">releaseWorkflowEnv</a></code> | <code>{[ key: string ]: string}</code> | Build environment variables for release workflows. |
@@ -4748,7 +4847,6 @@ const batmanProjectOptions: BatmanProjectOptions = { ... }
4748
4847
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.workflowContainerImage">workflowContainerImage</a></code> | <code>string</code> | Container image to use for GitHub workflows. |
4749
4848
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.workflowRunsOn">workflowRunsOn</a></code> | <code>string[]</code> | Github Runner selection labels. |
4750
4849
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.workflowRunsOnGroup">workflowRunsOnGroup</a></code> | <code>projen.GroupRunnerOptions</code> | Github Runner Group selection options. |
4751
- | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.defaultReleaseBranch">defaultReleaseBranch</a></code> | <code>string</code> | The name of the main release branch. |
4752
4850
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.artifactsDirectory">artifactsDirectory</a></code> | <code>string</code> | A directory which will contain build artifacts. |
4753
4851
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.auditDeps">auditDeps</a></code> | <code>boolean</code> | Run security audit on dependencies. |
4754
4852
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.auditDepsOptions">auditDepsOptions</a></code> | <code>projen.javascript.AuditOptions</code> | Security audit options. |
@@ -4757,13 +4855,13 @@ const batmanProjectOptions: BatmanProjectOptions = { ... }
4757
4855
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.biomeOptions">biomeOptions</a></code> | <code>projen.javascript.BiomeOptions</code> | Biome options. |
4758
4856
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.buildWorkflow">buildWorkflow</a></code> | <code>boolean</code> | Define a GitHub workflow for building PRs. |
4759
4857
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.buildWorkflowOptions">buildWorkflowOptions</a></code> | <code>projen.javascript.BuildWorkflowOptions</code> | Options for PR build workflow. |
4760
- | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.buildWorkflowTriggers">buildWorkflowTriggers</a></code> | <code>projen.github.workflows.Triggers</code> | Build workflow triggers. |
4761
4858
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.bundlerOptions">bundlerOptions</a></code> | <code>projen.javascript.BundlerOptions</code> | Options for `Bundler`. |
4762
4859
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.checkLicenses">checkLicenses</a></code> | <code>projen.javascript.LicenseCheckerOptions</code> | Configure which licenses should be deemed acceptable for use by dependencies. |
4763
- | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.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@v5 By default, OIDC auth is used. Alternatively a token can be provided via `codeCovTokenSecret`. |
4860
+ | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.codeCov">codeCov</a></code> | <code>boolean</code> | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/. |
4764
4861
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.codeCovTokenSecret">codeCovTokenSecret</a></code> | <code>string</code> | Define the secret name for a specified https://codecov.io/ token. |
4765
4862
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>string</code> | License copyright owner. |
4766
4863
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.copyrightPeriod">copyrightPeriod</a></code> | <code>string</code> | The copyright years to put in the LICENSE file. |
4864
+ | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.defaultReleaseBranch">defaultReleaseBranch</a></code> | <code>string</code> | The name of the main release branch. |
4767
4865
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.dependabot">dependabot</a></code> | <code>boolean</code> | Use dependabot to handle dependency upgrades. |
4768
4866
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.dependabotOptions">dependabotOptions</a></code> | <code>projen.github.DependabotOptions</code> | Options for dependabot. |
4769
4867
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.depsUpgrade">depsUpgrade</a></code> | <code>boolean</code> | Use tasks and github workflows to handle dependency upgrades. |
@@ -4771,8 +4869,6 @@ const batmanProjectOptions: BatmanProjectOptions = { ... }
4771
4869
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.gitignore">gitignore</a></code> | <code>string[]</code> | Additional entries to .gitignore. |
4772
4870
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.jest">jest</a></code> | <code>boolean</code> | Setup jest unit tests. |
4773
4871
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.jestOptions">jestOptions</a></code> | <code>projen.javascript.JestOptions</code> | Jest options. |
4774
- | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.mutableBuild">mutableBuild</a></code> | <code>boolean</code> | Automatically update files modified during builds to pull-request branches. |
4775
- | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.npmignore">npmignore</a></code> | <code>string[]</code> | Additional entries to .npmignore. |
4776
4872
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.npmignoreEnabled">npmignoreEnabled</a></code> | <code>boolean</code> | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. |
4777
4873
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.npmIgnoreOptions">npmIgnoreOptions</a></code> | <code>projen.IgnoreFileOptions</code> | Configuration options for .npmignore file. |
4778
4874
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.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`). |
@@ -4786,13 +4882,12 @@ const batmanProjectOptions: BatmanProjectOptions = { ... }
4786
4882
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.pullRequestTemplateContents">pullRequestTemplateContents</a></code> | <code>string[]</code> | The contents of the pull request template. |
4787
4883
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.release">release</a></code> | <code>boolean</code> | Add release management to this project. |
4788
4884
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.releaseToNpm">releaseToNpm</a></code> | <code>boolean</code> | Automatically release to npm when new versions are introduced. |
4789
- | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.releaseWorkflow">releaseWorkflow</a></code> | <code>boolean</code> | DEPRECATED: renamed to `release`. |
4790
4885
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.workflowBootstrapSteps">workflowBootstrapSteps</a></code> | <code>projen.github.workflows.JobStep[]</code> | Workflow steps to use in order to bootstrap this repo. |
4791
4886
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.workflowGitIdentity">workflowGitIdentity</a></code> | <code>projen.github.GitIdentity</code> | The git identity to use in workflows. |
4792
4887
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.workflowNodeVersion">workflowNodeVersion</a></code> | <code>string</code> | The node version used in GitHub Actions workflows. |
4793
4888
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.workflowPackageCache">workflowPackageCache</a></code> | <code>boolean</code> | Enable Node.js package cache in GitHub workflows. |
4794
4889
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.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). |
4795
- | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.disableTsconfigDev">disableTsconfigDev</a></code> | <code>boolean</code> | Do not generate a `tsconfig.dev.json` file. |
4890
+ | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.disableTsconfigDev">disableTsconfigDev</a></code> | <code>boolean</code> | Do not generate a development tsconfig file. |
4796
4891
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.docgen">docgen</a></code> | <code>boolean</code> | Docgen by Typedoc. |
4797
4892
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.docsDirectory">docsDirectory</a></code> | <code>string</code> | Docs directory. |
4798
4893
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.entrypointTypes">entrypointTypes</a></code> | <code>string</code> | The .d.ts file that includes the type declarations for this module. |
@@ -4801,12 +4896,13 @@ const batmanProjectOptions: BatmanProjectOptions = { ... }
4801
4896
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.libdir">libdir</a></code> | <code>string</code> | Typescript artifacts output directory. |
4802
4897
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.projenrcTs">projenrcTs</a></code> | <code>boolean</code> | Use TypeScript for your projenrc file (`.projenrc.ts`). |
4803
4898
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.projenrcTsOptions">projenrcTsOptions</a></code> | <code>projen.typescript.ProjenrcOptions</code> | Options for .projenrc.ts. |
4899
+ | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.runner">runner</a></code> | <code>projen.typescript.TypeScriptRunner</code> | The TypeScript runner to use for executing TypeScript files. |
4804
4900
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.sampleCode">sampleCode</a></code> | <code>boolean</code> | Generate one-time sample in `src/` and `test/` if there are no files there. |
4805
4901
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.srcdir">srcdir</a></code> | <code>string</code> | Typescript sources directory. |
4806
4902
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.testdir">testdir</a></code> | <code>string</code> | Jest tests directory. Tests files should be named `xxx.test.ts`. |
4807
4903
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.tsconfig">tsconfig</a></code> | <code>projen.javascript.TypescriptConfigOptions</code> | Custom TSConfig. |
4808
4904
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.tsconfigDev">tsconfigDev</a></code> | <code>projen.javascript.TypescriptConfigOptions</code> | Custom tsconfig options for the development tsconfig.json file (used for testing). |
4809
- | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.tsconfigDevFile">tsconfigDevFile</a></code> | <code>string</code> | The name of the development tsconfig.json file. |
4905
+ | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.tsconfigDevFile">tsconfigDevFile</a></code> | <code>string</code> | The name (and path) of the development tsconfig file. |
4810
4906
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.tsJestOptions">tsJestOptions</a></code> | <code>projen.typescript.TsJestOptions</code> | Options for ts-jest. |
4811
4907
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.typescriptVersion">typescriptVersion</a></code> | <code>string</code> | TypeScript version to use. |
4812
4908
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.buildCommand">buildCommand</a></code> | <code>string</code> | A command to execute before synthesis. |
@@ -4817,12 +4913,7 @@ const batmanProjectOptions: BatmanProjectOptions = { ... }
4817
4913
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.watchExcludes">watchExcludes</a></code> | <code>string[]</code> | Glob patterns to exclude from `cdk watch`. |
4818
4914
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.watchIncludes">watchIncludes</a></code> | <code>string[]</code> | Glob patterns to include in `cdk watch`. |
4819
4915
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.cdkVersion">cdkVersion</a></code> | <code>string</code> | Minimum version of the AWS CDK to depend on. |
4820
- | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.cdkAssert">cdkAssert</a></code> | <code>boolean</code> | Warning: NodeJS only. |
4821
- | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.cdkAssertions">cdkAssertions</a></code> | <code>boolean</code> | Install the assertions library? |
4822
4916
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.cdkCliVersion">cdkCliVersion</a></code> | <code>string</code> | Version range of the AWS CDK CLI to depend on. |
4823
- | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.cdkDependencies">cdkDependencies</a></code> | <code>string[]</code> | Which AWS CDKv1 modules this project requires. |
4824
- | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.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`). |
4825
- | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.cdkTestDependencies">cdkTestDependencies</a></code> | <code>string[]</code> | AWS CDK modules required for testing. |
4826
4917
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.cdkVersionPinning">cdkVersionPinning</a></code> | <code>boolean</code> | Use pinned version instead of caret version for CDK. |
4827
4918
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.constructsVersion">constructsVersion</a></code> | <code>string</code> | Minimum version of the `constructs` library to depend on. |
4828
4919
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.app">app</a></code> | <code>string</code> | The command line to execute in order to synthesize the CDK application (language specific). |
@@ -4833,6 +4924,7 @@ const batmanProjectOptions: BatmanProjectOptions = { ... }
4833
4924
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.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. |
4834
4925
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.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. |
4835
4926
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.lambdaOptions">lambdaOptions</a></code> | <code>projen.awscdk.LambdaFunctionCommonOptions</code> | Common options for all AWS Lambda functions. |
4927
+ | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.singletonLambdaAutoDiscover">singletonLambdaAutoDiscover</a></code> | <code>boolean</code> | Automatically adds an `awscdk.SingletonFunction` for each `.singleton-lambda.ts` handler in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project. |
4836
4928
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.dev">dev</a></code> | <code><a href="#@macedon-technologies/batman.ApplicationEnvironmentConfig">ApplicationEnvironmentConfig</a></code> | Development environment configuration. |
4837
4929
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.prod">prod</a></code> | <code><a href="#@macedon-technologies/batman.ApplicationEnvironmentConfig">ApplicationEnvironmentConfig</a></code> | Production environment configuration. |
4838
4930
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.staging">staging</a></code> | <code><a href="#@macedon-technologies/batman.ApplicationEnvironmentConfig">ApplicationEnvironmentConfig</a></code> | Development environment configuration. |
@@ -4961,6 +5053,10 @@ public readonly projenCommand: string;
4961
5053
 
4962
5054
  The shell command to use in order to run the projen CLI.
4963
5055
 
5056
+ Inserted verbatim into task steps, workflows and IDE configuration, and run
5057
+ by each of their shells - locally, in CI and in dev containers. Keep it a
5058
+ plain unquoted command, since shell syntax in it executes in all of them.
5059
+
4964
5060
  Can be used to customize in special environments.
4965
5061
 
4966
5062
  ---
@@ -5129,51 +5225,6 @@ Add a Gitpod development environment.
5129
5225
 
5130
5226
  ---
5131
5227
 
5132
- ##### ~~`mergify`~~<sup>Optional</sup> <a name="mergify" id="@macedon-technologies/batman.BatmanProjectOptions.property.mergify"></a>
5133
-
5134
- - *Deprecated:* use `githubOptions.mergify` instead
5135
-
5136
- ```typescript
5137
- public readonly mergify: boolean;
5138
- ```
5139
-
5140
- - *Type:* boolean
5141
- - *Default:* true
5142
-
5143
- Whether mergify should be enabled on this repository or not.
5144
-
5145
- ---
5146
-
5147
- ##### ~~`mergifyOptions`~~<sup>Optional</sup> <a name="mergifyOptions" id="@macedon-technologies/batman.BatmanProjectOptions.property.mergifyOptions"></a>
5148
-
5149
- - *Deprecated:* use `githubOptions.mergifyOptions` instead
5150
-
5151
- ```typescript
5152
- public readonly mergifyOptions: MergifyOptions;
5153
- ```
5154
-
5155
- - *Type:* projen.github.MergifyOptions
5156
- - *Default:* default options
5157
-
5158
- Options for mergify.
5159
-
5160
- ---
5161
-
5162
- ##### ~~`projectType`~~<sup>Optional</sup> <a name="projectType" id="@macedon-technologies/batman.BatmanProjectOptions.property.projectType"></a>
5163
-
5164
- - *Deprecated:* no longer supported at the base project level
5165
-
5166
- ```typescript
5167
- public readonly projectType: ProjectType;
5168
- ```
5169
-
5170
- - *Type:* projen.ProjectType
5171
- - *Default:* ProjectType.UNKNOWN
5172
-
5173
- Which type of project this is (library/app).
5174
-
5175
- ---
5176
-
5177
5228
  ##### `projenCredentials`<sup>Optional</sup> <a name="projenCredentials" id="@macedon-technologies/batman.BatmanProjectOptions.property.projenCredentials"></a>
5178
5229
 
5179
5230
  ```typescript
@@ -5187,24 +5238,6 @@ Choose a method of providing GitHub API access for projen workflows.
5187
5238
 
5188
5239
  ---
5189
5240
 
5190
- ##### ~~`projenTokenSecret`~~<sup>Optional</sup> <a name="projenTokenSecret" id="@macedon-technologies/batman.BatmanProjectOptions.property.projenTokenSecret"></a>
5191
-
5192
- - *Deprecated:* use `projenCredentials`
5193
-
5194
- ```typescript
5195
- public readonly projenTokenSecret: string;
5196
- ```
5197
-
5198
- - *Type:* string
5199
- - *Default:* "PROJEN_GITHUB_TOKEN"
5200
-
5201
- The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows.
5202
-
5203
- This token needs to have the `repo`, `workflows`
5204
- and `packages` scope.
5205
-
5206
- ---
5207
-
5208
5241
  ##### `readme`<sup>Optional</sup> <a name="readme" id="@macedon-technologies/batman.BatmanProjectOptions.property.readme"></a>
5209
5242
 
5210
5243
  ```typescript
@@ -5270,6 +5303,19 @@ Enabled by default for root projects. Disabled for non-root projects.
5270
5303
 
5271
5304
  ---
5272
5305
 
5306
+ ##### `addPackageManagerToDevEngines`<sup>Optional</sup> <a name="addPackageManagerToDevEngines" id="@macedon-technologies/batman.BatmanProjectOptions.property.addPackageManagerToDevEngines"></a>
5307
+
5308
+ ```typescript
5309
+ public readonly addPackageManagerToDevEngines: boolean;
5310
+ ```
5311
+
5312
+ - *Type:* boolean
5313
+ - *Default:* true
5314
+
5315
+ Automatically add the resolved `packageManager` to `devEngines.packageManager` in `package.json`, setting `onFail` to `ignore`.
5316
+
5317
+ ---
5318
+
5273
5319
  ##### `allowLibraryDependencies`<sup>Optional</sup> <a name="allowLibraryDependencies" id="@macedon-technologies/batman.BatmanProjectOptions.property.allowLibraryDependencies"></a>
5274
5320
 
5275
5321
  ```typescript
@@ -5286,6 +5332,44 @@ for specifying these.
5286
5332
 
5287
5333
  ---
5288
5334
 
5335
+ ##### `allowScripts`<sup>Optional</sup> <a name="allowScripts" id="@macedon-technologies/batman.BatmanProjectOptions.property.allowScripts"></a>
5336
+
5337
+ ```typescript
5338
+ public readonly allowScripts: string[];
5339
+ ```
5340
+
5341
+ - *Type:* string[]
5342
+ - *Default:* all install scripts are allowed to run (package manager default)
5343
+
5344
+ List of dependency (package) names that are allowed to run lifecycle install scripts (`preinstall`, `install`, `postinstall`, `prepare`) during dependency installation.
5345
+
5346
+ These scripts can execute arbitrary code, making them a common
5347
+ supply-chain attack vector. Package managers are moving toward
5348
+ blocking them by default and requiring an explicit allowlist.
5349
+ Configuring `allowScripts` sets up that allowlist so scripts only run
5350
+ for the packages you have explicitly reviewed and trust.
5351
+
5352
+ Support for this setting depends on the configured `packageManager`:
5353
+
5354
+ - `NPM`: written to the native `allowScripts` field in `package.json`
5355
+ (requires npm >= 11.16; see https://docs.npmjs.com/cli/v11/commands/npm-approve-scripts).
5356
+ - `BUN`: written to the native `trustedDependencies` field in
5357
+ `package.json` (see https://bun.com/docs/pm/lifecycle).
5358
+ - `PNPM`: written to the `onlyBuiltDependencies` setting in
5359
+ `pnpm-workspace.yaml` (see https://pnpm.io/settings#onlybuiltdependencies).
5360
+ - `YARN2`, `YARN_BERRY`: written to the native
5361
+ `dependenciesMeta.<pkg>.built` allowlist in `package.json`, combined
5362
+ with `enableScripts: false` in `.yarnrc.yml` (see
5363
+ https://yarnpkg.com/features/security#postinstalls). If you set
5364
+ `yarnBerryOptions.yarnRcOptions.enableScripts` explicitly, that value
5365
+ is respected instead of being overridden.
5366
+ - `YARN`, `YARN_CLASSIC`: not supported. Yarn Classic has no native
5367
+ mechanism to allowlist install scripts for specific dependencies.
5368
+ Setting this option with one of these package managers throws an
5369
+ error at synthesis time.
5370
+
5371
+ ---
5372
+
5289
5373
  ##### `authorEmail`<sup>Optional</sup> <a name="authorEmail" id="@macedon-technologies/batman.BatmanProjectOptions.property.authorEmail"></a>
5290
5374
 
5291
5375
  ```typescript
@@ -5402,11 +5486,11 @@ added both to the `dependencies` section and `bundledDependencies` section of
5402
5486
  your `package.json`.
5403
5487
 
5404
5488
  The recommendation is to only specify the module name here (e.g.
5405
- `express`). This will behave similar to `yarn add` or `npm install` in the
5489
+ `express`). This will behave similar to `pnpm add` or `npm install` in the
5406
5490
  sense that it will add the module as a dependency to your `package.json`
5407
5491
  file with the latest version (`^`). You can specify semver requirements in
5408
- the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and
5409
- this will be what you `package.json` will eventually include.
5492
+ the same syntax passed to `pnpm add` or `npm i` (e.g. `express@^2`) and
5493
+ this will be what your `package.json` will eventually include.
5410
5494
 
5411
5495
  ---
5412
5496
 
@@ -5434,7 +5518,53 @@ public readonly codeArtifactOptions: CodeArtifactOptions;
5434
5518
 
5435
5519
  Options for npm packages using AWS CodeArtifact.
5436
5520
 
5437
- This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact
5521
+ This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact
5522
+
5523
+ ---
5524
+
5525
+ ##### `dedupeDeps`<sup>Optional</sup> <a name="dedupeDeps" id="@macedon-technologies/batman.BatmanProjectOptions.property.dedupeDeps"></a>
5526
+
5527
+ ```typescript
5528
+ public readonly dedupeDeps: boolean;
5529
+ ```
5530
+
5531
+ - *Type:* boolean
5532
+ - *Default:* false, unless `yarnBerryOptions.dedupePackages` is set
5533
+
5534
+ Add a `dedupe` task that deduplicates project dependencies.
5535
+
5536
+ Deduplication prevents multiple versions of the same package from being
5537
+ installed, if a single version can satisfy all requested version ranges.
5538
+ This prevents version proliferation and reduces the size of the dependency
5539
+ tree.
5540
+
5541
+ The behavior depends on the package manager:
5542
+ - npm: runs `npm dedupe` after every mutating install.
5543
+ - pnpm: runs `pnpm dedupe` after every mutating install.
5544
+ - Yarn Berry: runs `yarn dedupe` after every mutating install. If
5545
+ `yarnBerryOptions.dedupePackages` is set, only the listed packages are
5546
+ deduplicated.
5547
+ - Yarn Classic: `yarn install` already deduplicates, so the task only
5548
+ prints an informational message.
5549
+ - Bun: not supported, enabling this option throws an error.
5550
+
5551
+ ---
5552
+
5553
+ ##### `deleteOrphanedLockFiles`<sup>Optional</sup> <a name="deleteOrphanedLockFiles" id="@macedon-technologies/batman.BatmanProjectOptions.property.deleteOrphanedLockFiles"></a>
5554
+
5555
+ ```typescript
5556
+ public readonly deleteOrphanedLockFiles: boolean;
5557
+ ```
5558
+
5559
+ - *Type:* boolean
5560
+ - *Default:* true
5561
+
5562
+ Automatically delete lockfiles from package managers that are not the active one.
5563
+
5564
+ Only triggered when the lockfile for the configured package
5565
+ manager already exists.
5566
+
5567
+ This is useful when migrating between package managers to avoid conflicts.
5438
5568
 
5439
5569
  ---
5440
5570
 
@@ -5450,11 +5580,11 @@ public readonly deps: string[];
5450
5580
  Runtime dependencies of this module.
5451
5581
 
5452
5582
  The recommendation is to only specify the module name here (e.g.
5453
- `express`). This will behave similar to `yarn add` or `npm install` in the
5583
+ `express`). This will behave similar to `pnpm add` or `npm install` in the
5454
5584
  sense that it will add the module as a dependency to your `package.json`
5455
5585
  file with the latest version (`^`). You can specify semver requirements in
5456
- the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and
5457
- this will be what you `package.json` will eventually include.
5586
+ the same syntax passed to `pnpm add` or `npm i` (e.g. `express@^2`) and
5587
+ this will be what your `package.json` will eventually include.
5458
5588
 
5459
5589
  ---
5460
5590
 
@@ -5496,11 +5626,11 @@ available in your build environment but will not be fetched when this
5496
5626
  module is consumed.
5497
5627
 
5498
5628
  The recommendation is to only specify the module name here (e.g.
5499
- `express`). This will behave similar to `yarn add` or `npm install` in the
5629
+ `express`). This will behave similar to `pnpm add` or `npm install` in the
5500
5630
  sense that it will add the module as a dependency to your `package.json`
5501
5631
  file with the latest version (`^`). You can specify semver requirements in
5502
- the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and
5503
- this will be what you `package.json` will eventually include.
5632
+ the same syntax passed to `pnpm add` or `npm i` (e.g. `express@^2`) and
5633
+ this will be what your `package.json` will eventually include.
5504
5634
 
5505
5635
  ---
5506
5636
 
@@ -5511,6 +5641,24 @@ this will be what you `package.json` will eventually include.
5511
5641
  ```
5512
5642
 
5513
5643
 
5644
+ ##### `devEngines`<sup>Optional</sup> <a name="devEngines" id="@macedon-technologies/batman.BatmanProjectOptions.property.devEngines"></a>
5645
+
5646
+ ```typescript
5647
+ public readonly devEngines: DevEngines;
5648
+ ```
5649
+
5650
+ - *Type:* projen.javascript.DevEngines
5651
+
5652
+ Configure the `devEngines` field in `package.json`.
5653
+
5654
+ The `devEngines.packageManager` field is automatically populated based on
5655
+ the resolved `packageManager` value. Any fields provided here are merged
5656
+ with the auto-populated `packageManager` entry.
5657
+
5658
+ > [https://docs.npmjs.com/cli/v10/configuring-npm/package-json#devengines](https://docs.npmjs.com/cli/v10/configuring-npm/package-json#devengines)
5659
+
5660
+ ---
5661
+
5514
5662
  ##### `entrypoint`<sup>Optional</sup> <a name="entrypoint" id="@macedon-technologies/batman.BatmanProjectOptions.property.entrypoint"></a>
5515
5663
 
5516
5664
  ```typescript
@@ -5655,22 +5803,6 @@ which is using npm internally and supports provenance statements independently o
5655
5803
 
5656
5804
  ---
5657
5805
 
5658
- ##### ~~`npmRegistry`~~<sup>Optional</sup> <a name="npmRegistry" id="@macedon-technologies/batman.BatmanProjectOptions.property.npmRegistry"></a>
5659
-
5660
- - *Deprecated:* use `npmRegistryUrl` instead
5661
-
5662
- ```typescript
5663
- public readonly npmRegistry: string;
5664
- ```
5665
-
5666
- - *Type:* string
5667
-
5668
- The host name of the npm registry to publish to.
5669
-
5670
- Cannot be set together with `npmRegistryUrl`.
5671
-
5672
- ---
5673
-
5674
5806
  ##### `npmRegistryUrl`<sup>Optional</sup> <a name="npmRegistryUrl" id="@macedon-technologies/batman.BatmanProjectOptions.property.npmRegistryUrl"></a>
5675
5807
 
5676
5808
  ```typescript
@@ -5719,7 +5851,7 @@ public readonly packageManager: NodePackageManager;
5719
5851
  ```
5720
5852
 
5721
5853
  - *Type:* projen.javascript.NodePackageManager
5722
- - *Default:* NodePackageManager.YARN_CLASSIC
5854
+ - *Default:* Detected from the calling process or `YARN_CLASSIC` if detection fails.
5723
5855
 
5724
5856
  The Node Package Manager used to execute scripts.
5725
5857
 
@@ -5777,6 +5909,19 @@ test your module against the lowest peer version required.
5777
5909
 
5778
5910
  ---
5779
5911
 
5912
+ ##### `pnpmOptions`<sup>Optional</sup> <a name="pnpmOptions" id="@macedon-technologies/batman.BatmanProjectOptions.property.pnpmOptions"></a>
5913
+
5914
+ ```typescript
5915
+ public readonly pnpmOptions: PnpmOptions;
5916
+ ```
5917
+
5918
+ - *Type:* projen.javascript.PnpmOptions
5919
+ - *Default:* all default options
5920
+
5921
+ Options for pnpm.
5922
+
5923
+ ---
5924
+
5780
5925
  ##### `pnpmVersion`<sup>Optional</sup> <a name="pnpmVersion" id="@macedon-technologies/batman.BatmanProjectOptions.property.pnpmVersion"></a>
5781
5926
 
5782
5927
  ```typescript
@@ -5784,7 +5929,7 @@ public readonly pnpmVersion: string;
5784
5929
  ```
5785
5930
 
5786
5931
  - *Type:* string
5787
- - *Default:* "9"
5932
+ - *Default:* "10.33.0"
5788
5933
 
5789
5934
  The version of PNPM to use if using PNPM as a package manager.
5790
5935
 
@@ -5829,25 +5974,6 @@ Options for privately hosted scoped packages.
5829
5974
 
5830
5975
  ---
5831
5976
 
5832
- ##### ~~`scripts`~~<sup>Optional</sup> <a name="scripts" id="@macedon-technologies/batman.BatmanProjectOptions.property.scripts"></a>
5833
-
5834
- - *Deprecated:* use `project.addTask()` or `package.setScript()`
5835
-
5836
- ```typescript
5837
- public readonly scripts: {[ key: string ]: string};
5838
- ```
5839
-
5840
- - *Type:* {[ key: string ]: string}
5841
- - *Default:* {}
5842
-
5843
- npm scripts to include.
5844
-
5845
- If a script has the same name as a standard script,
5846
- the standard script will be overwritten.
5847
- Also adds the script as a task.
5848
-
5849
- ---
5850
-
5851
5977
  ##### `stability`<sup>Optional</sup> <a name="stability" id="@macedon-technologies/batman.BatmanProjectOptions.property.stability"></a>
5852
5978
 
5853
5979
  ```typescript
@@ -6090,21 +6216,6 @@ on a per artifact basis.
6090
6216
 
6091
6217
  ---
6092
6218
 
6093
- ##### ~~`releaseEveryCommit`~~<sup>Optional</sup> <a name="releaseEveryCommit" id="@macedon-technologies/batman.BatmanProjectOptions.property.releaseEveryCommit"></a>
6094
-
6095
- - *Deprecated:* Use `releaseTrigger: ReleaseTrigger.continuous()` instead
6096
-
6097
- ```typescript
6098
- public readonly releaseEveryCommit: boolean;
6099
- ```
6100
-
6101
- - *Type:* boolean
6102
- - *Default:* true
6103
-
6104
- Automatically release new versions every commit to one of branches in `releaseBranches`.
6105
-
6106
- ---
6107
-
6108
6219
  ##### `releaseFailureIssue`<sup>Optional</sup> <a name="releaseFailureIssue" id="@macedon-technologies/batman.BatmanProjectOptions.property.releaseFailureIssue"></a>
6109
6220
 
6110
6221
  ```typescript
@@ -6133,21 +6244,6 @@ Only applies if `releaseFailureIssue` is true.
6133
6244
 
6134
6245
  ---
6135
6246
 
6136
- ##### ~~`releaseSchedule`~~<sup>Optional</sup> <a name="releaseSchedule" id="@macedon-technologies/batman.BatmanProjectOptions.property.releaseSchedule"></a>
6137
-
6138
- - *Deprecated:* Use `releaseTrigger: ReleaseTrigger.scheduled()` instead
6139
-
6140
- ```typescript
6141
- public readonly releaseSchedule: string;
6142
- ```
6143
-
6144
- - *Type:* string
6145
- - *Default:* no scheduled releases
6146
-
6147
- CRON schedule to trigger new releases.
6148
-
6149
- ---
6150
-
6151
6247
  ##### `releaseTagPrefix`<sup>Optional</sup> <a name="releaseTagPrefix" id="@macedon-technologies/batman.BatmanProjectOptions.property.releaseTagPrefix"></a>
6152
6248
 
6153
6249
  ```typescript
@@ -6245,7 +6341,9 @@ Container image to use for GitHub workflows.
6245
6341
 
6246
6342
  ---
6247
6343
 
6248
- ##### `workflowRunsOn`<sup>Optional</sup> <a name="workflowRunsOn" id="@macedon-technologies/batman.BatmanProjectOptions.property.workflowRunsOn"></a>
6344
+ ##### ~~`workflowRunsOn`~~<sup>Optional</sup> <a name="workflowRunsOn" id="@macedon-technologies/batman.BatmanProjectOptions.property.workflowRunsOn"></a>
6345
+
6346
+ - *Deprecated:* use `githubOptions.workflowRunsOn` on the project, or `runsOn` on `ReleaseOptions`
6249
6347
 
6250
6348
  ```typescript
6251
6349
  public readonly workflowRunsOn: string[];
@@ -6258,7 +6356,9 @@ Github Runner selection labels.
6258
6356
 
6259
6357
  ---
6260
6358
 
6261
- ##### `workflowRunsOnGroup`<sup>Optional</sup> <a name="workflowRunsOnGroup" id="@macedon-technologies/batman.BatmanProjectOptions.property.workflowRunsOnGroup"></a>
6359
+ ##### ~~`workflowRunsOnGroup`~~<sup>Optional</sup> <a name="workflowRunsOnGroup" id="@macedon-technologies/batman.BatmanProjectOptions.property.workflowRunsOnGroup"></a>
6360
+
6361
+ - *Deprecated:* use `githubOptions.workflowRunsOnGroup` on the project, or `runsOnGroup` on `ReleaseOptions`
6262
6362
 
6263
6363
  ```typescript
6264
6364
  public readonly workflowRunsOnGroup: GroupRunnerOptions;
@@ -6270,19 +6370,6 @@ Github Runner Group selection options.
6270
6370
 
6271
6371
  ---
6272
6372
 
6273
- ##### `defaultReleaseBranch`<sup>Required</sup> <a name="defaultReleaseBranch" id="@macedon-technologies/batman.BatmanProjectOptions.property.defaultReleaseBranch"></a>
6274
-
6275
- ```typescript
6276
- public readonly defaultReleaseBranch: string;
6277
- ```
6278
-
6279
- - *Type:* string
6280
- - *Default:* "main"
6281
-
6282
- The name of the main release branch.
6283
-
6284
- ---
6285
-
6286
6373
  ##### `artifactsDirectory`<sup>Optional</sup> <a name="artifactsDirectory" id="@macedon-technologies/batman.BatmanProjectOptions.property.artifactsDirectory"></a>
6287
6374
 
6288
6375
  ```typescript
@@ -6392,21 +6479,6 @@ Options for PR build workflow.
6392
6479
 
6393
6480
  ---
6394
6481
 
6395
- ##### ~~`buildWorkflowTriggers`~~<sup>Optional</sup> <a name="buildWorkflowTriggers" id="@macedon-technologies/batman.BatmanProjectOptions.property.buildWorkflowTriggers"></a>
6396
-
6397
- - *Deprecated:* - Use `buildWorkflowOptions.workflowTriggers`
6398
-
6399
- ```typescript
6400
- public readonly buildWorkflowTriggers: Triggers;
6401
- ```
6402
-
6403
- - *Type:* projen.github.workflows.Triggers
6404
- - *Default:* "{ pullRequest: {}, workflowDispatch: {} }"
6405
-
6406
- Build workflow triggers.
6407
-
6408
- ---
6409
-
6410
6482
  ##### `bundlerOptions`<sup>Optional</sup> <a name="bundlerOptions" id="@macedon-technologies/batman.BatmanProjectOptions.property.bundlerOptions"></a>
6411
6483
 
6412
6484
  ```typescript
@@ -6443,7 +6515,10 @@ public readonly codeCov: boolean;
6443
6515
  - *Type:* boolean
6444
6516
  - *Default:* false
6445
6517
 
6446
- Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v5 By default, OIDC auth is used. Alternatively a token can be provided via `codeCovTokenSecret`.
6518
+ Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/.
6519
+
6520
+ Uses codecov/codecov-action. By default, OIDC auth is used.
6521
+ Alternatively a token can be provided via `codeCovTokenSecret`.
6447
6522
 
6448
6523
  ---
6449
6524
 
@@ -6471,6 +6546,10 @@ public readonly copyrightOwner: string;
6471
6546
 
6472
6547
  License copyright owner.
6473
6548
 
6549
+ This value is only used if the selected license text contains the
6550
+ `$copyright_owner` placeholder. For example, it has no effect on the
6551
+ MPL-2.0 license text.
6552
+
6474
6553
  ---
6475
6554
 
6476
6555
  ##### `copyrightPeriod`<sup>Optional</sup> <a name="copyrightPeriod" id="@macedon-technologies/batman.BatmanProjectOptions.property.copyrightPeriod"></a>
@@ -6484,6 +6563,23 @@ public readonly copyrightPeriod: string;
6484
6563
 
6485
6564
  The copyright years to put in the LICENSE file.
6486
6565
 
6566
+ This value is only used if the selected license text contains the
6567
+ `$copyright_period` placeholder. For example, it has no effect on the
6568
+ MPL-2.0 license text.
6569
+
6570
+ ---
6571
+
6572
+ ##### `defaultReleaseBranch`<sup>Optional</sup> <a name="defaultReleaseBranch" id="@macedon-technologies/batman.BatmanProjectOptions.property.defaultReleaseBranch"></a>
6573
+
6574
+ ```typescript
6575
+ public readonly defaultReleaseBranch: string;
6576
+ ```
6577
+
6578
+ - *Type:* string
6579
+ - *Default:* "main"
6580
+
6581
+ The name of the main release branch.
6582
+
6487
6583
  ---
6488
6584
 
6489
6585
  ##### `dependabot`<sup>Optional</sup> <a name="dependabot" id="@macedon-technologies/batman.BatmanProjectOptions.property.dependabot"></a>
@@ -6580,41 +6676,6 @@ Jest options.
6580
6676
 
6581
6677
  ---
6582
6678
 
6583
- ##### ~~`mutableBuild`~~<sup>Optional</sup> <a name="mutableBuild" id="@macedon-technologies/batman.BatmanProjectOptions.property.mutableBuild"></a>
6584
-
6585
- - *Deprecated:* - Use `buildWorkflowOptions.mutableBuild`
6586
-
6587
- ```typescript
6588
- public readonly mutableBuild: boolean;
6589
- ```
6590
-
6591
- - *Type:* boolean
6592
- - *Default:* true
6593
-
6594
- Automatically update files modified during builds to pull-request branches.
6595
-
6596
- This means
6597
- that any files synthesized by projen or e.g. test snapshots will always be up-to-date
6598
- before a PR is merged.
6599
-
6600
- Implies that PR builds do not have anti-tamper checks.
6601
-
6602
- ---
6603
-
6604
- ##### ~~`npmignore`~~<sup>Optional</sup> <a name="npmignore" id="@macedon-technologies/batman.BatmanProjectOptions.property.npmignore"></a>
6605
-
6606
- - *Deprecated:* - use `project.addPackageIgnore`
6607
-
6608
- ```typescript
6609
- public readonly npmignore: string[];
6610
- ```
6611
-
6612
- - *Type:* string[]
6613
-
6614
- Additional entries to .npmignore.
6615
-
6616
- ---
6617
-
6618
6679
  ##### `npmignoreEnabled`<sup>Optional</sup> <a name="npmignoreEnabled" id="@macedon-technologies/batman.BatmanProjectOptions.property.npmignoreEnabled"></a>
6619
6680
 
6620
6681
  ```typescript
@@ -6783,21 +6844,6 @@ Automatically release to npm when new versions are introduced.
6783
6844
 
6784
6845
  ---
6785
6846
 
6786
- ##### ~~`releaseWorkflow`~~<sup>Optional</sup> <a name="releaseWorkflow" id="@macedon-technologies/batman.BatmanProjectOptions.property.releaseWorkflow"></a>
6787
-
6788
- - *Deprecated:* see `release`.
6789
-
6790
- ```typescript
6791
- public readonly releaseWorkflow: boolean;
6792
- ```
6793
-
6794
- - *Type:* boolean
6795
- - *Default:* true if not a subproject
6796
-
6797
- DEPRECATED: renamed to `release`.
6798
-
6799
- ---
6800
-
6801
6847
  ##### `workflowBootstrapSteps`<sup>Optional</sup> <a name="workflowBootstrapSteps" id="@macedon-technologies/batman.BatmanProjectOptions.property.workflowBootstrapSteps"></a>
6802
6848
 
6803
6849
  ```typescript
@@ -6874,7 +6920,7 @@ public readonly disableTsconfigDev: boolean;
6874
6920
  - *Type:* boolean
6875
6921
  - *Default:* false
6876
6922
 
6877
- Do not generate a `tsconfig.dev.json` file.
6923
+ Do not generate a development tsconfig file.
6878
6924
 
6879
6925
  ---
6880
6926
 
@@ -6981,6 +7027,22 @@ Options for .projenrc.ts.
6981
7027
 
6982
7028
  ---
6983
7029
 
7030
+ ##### `runner`<sup>Optional</sup> <a name="runner" id="@macedon-technologies/batman.BatmanProjectOptions.property.runner"></a>
7031
+
7032
+ ```typescript
7033
+ public readonly runner: TypeScriptRunner;
7034
+ ```
7035
+
7036
+ - *Type:* projen.typescript.TypeScriptRunner
7037
+ - *Default:* TypeScriptRunner.tsNode()
7038
+
7039
+ The TypeScript runner to use for executing TypeScript files.
7040
+
7041
+ This is a project-level setting that components (e.g. projenrc) will
7042
+ use as their default runner.
7043
+
7044
+ ---
7045
+
6984
7046
  ##### `sampleCode`<sup>Optional</sup> <a name="sampleCode" id="@macedon-technologies/batman.BatmanProjectOptions.property.sampleCode"></a>
6985
7047
 
6986
7048
  ```typescript
@@ -7058,9 +7120,13 @@ public readonly tsconfigDevFile: string;
7058
7120
  ```
7059
7121
 
7060
7122
  - *Type:* string
7061
- - *Default:* "tsconfig.dev.json"
7123
+ - *Default:* "{testdir}/tsconfig.json"
7062
7124
 
7063
- The name of the development tsconfig.json file.
7125
+ The name (and path) of the development tsconfig file.
7126
+
7127
+ By default this lives inside the test directory (e.g. `test/tsconfig.json`)
7128
+ so that the TypeScript language service resolves it as the nearest config
7129
+ for test files.
7064
7130
 
7065
7131
  ---
7066
7132
 
@@ -7107,6 +7173,10 @@ This command will be called when
7107
7173
  running `cdk synth` or when `cdk watch` identifies a change in your source
7108
7174
  code before redeployment.
7109
7175
 
7176
+ The CDK CLI runs it through a shell on every synthesis, on the machine of
7177
+ anyone who checks out the project, so shell syntax in it is interpreted and
7178
+ the command should be one you would run yourself.
7179
+
7110
7180
  ---
7111
7181
 
7112
7182
  ##### `cdkout`<sup>Optional</sup> <a name="cdkout" id="@macedon-technologies/batman.BatmanProjectOptions.property.cdkout"></a>
@@ -7204,39 +7274,6 @@ Minimum version of the AWS CDK to depend on.
7204
7274
 
7205
7275
  ---
7206
7276
 
7207
- ##### ~~`cdkAssert`~~<sup>Optional</sup> <a name="cdkAssert" id="@macedon-technologies/batman.BatmanProjectOptions.property.cdkAssert"></a>
7208
-
7209
- - *Deprecated:* The
7210
-
7211
- ```typescript
7212
- public readonly cdkAssert: boolean;
7213
- ```
7214
-
7215
- - *Type:* boolean
7216
- - *Default:* will be included by default for AWS CDK >= 1.0.0 < 2.0.0
7217
-
7218
- Warning: NodeJS only.
7219
-
7220
- Install the
7221
-
7222
- ---
7223
-
7224
- ##### `cdkAssertions`<sup>Optional</sup> <a name="cdkAssertions" id="@macedon-technologies/batman.BatmanProjectOptions.property.cdkAssertions"></a>
7225
-
7226
- ```typescript
7227
- public readonly cdkAssertions: boolean;
7228
- ```
7229
-
7230
- - *Type:* boolean
7231
- - *Default:* will be included by default for AWS CDK >= 1.111.0 < 2.0.0
7232
-
7233
- Install the assertions library?
7234
-
7235
- Only needed for CDK 1.x. If using CDK 2.x then
7236
- assertions is already included in 'aws-cdk-lib'
7237
-
7238
- ---
7239
-
7240
7277
  ##### `cdkCliVersion`<sup>Optional</sup> <a name="cdkCliVersion" id="@macedon-technologies/batman.BatmanProjectOptions.property.cdkCliVersion"></a>
7241
7278
 
7242
7279
  ```typescript
@@ -7255,56 +7292,6 @@ option to restrict it to a specific version or version range.
7255
7292
 
7256
7293
  ---
7257
7294
 
7258
- ##### ~~`cdkDependencies`~~<sup>Optional</sup> <a name="cdkDependencies" id="@macedon-technologies/batman.BatmanProjectOptions.property.cdkDependencies"></a>
7259
-
7260
- - *Deprecated:* For CDK 2.x use "deps" instead. (or "peerDeps" if you're building a library)
7261
-
7262
- ```typescript
7263
- public readonly cdkDependencies: string[];
7264
- ```
7265
-
7266
- - *Type:* string[]
7267
-
7268
- Which AWS CDKv1 modules this project requires.
7269
-
7270
- ---
7271
-
7272
- ##### ~~`cdkDependenciesAsDeps`~~<sup>Optional</sup> <a name="cdkDependenciesAsDeps" id="@macedon-technologies/batman.BatmanProjectOptions.property.cdkDependenciesAsDeps"></a>
7273
-
7274
- - *Deprecated:* Not supported in CDK v2.
7275
-
7276
- ```typescript
7277
- public readonly cdkDependenciesAsDeps: boolean;
7278
- ```
7279
-
7280
- - *Type:* boolean
7281
- - *Default:* true
7282
-
7283
- If this is enabled (default), all modules declared in `cdkDependencies` will be also added as normal `dependencies` (as well as `peerDependencies`).
7284
-
7285
- This is to ensure that downstream consumers actually have your CDK dependencies installed
7286
- when using npm < 7 or yarn, where peer dependencies are not automatically installed.
7287
- If this is disabled, `cdkDependencies` will be added to `devDependencies` to ensure
7288
- they are present during development.
7289
-
7290
- Note: this setting only applies to construct library projects
7291
-
7292
- ---
7293
-
7294
- ##### ~~`cdkTestDependencies`~~<sup>Optional</sup> <a name="cdkTestDependencies" id="@macedon-technologies/batman.BatmanProjectOptions.property.cdkTestDependencies"></a>
7295
-
7296
- - *Deprecated:* For CDK 2.x use 'devDeps' (in node.js projects) or 'testDeps' (in java projects) instead
7297
-
7298
- ```typescript
7299
- public readonly cdkTestDependencies: string[];
7300
- ```
7301
-
7302
- - *Type:* string[]
7303
-
7304
- AWS CDK modules required for testing.
7305
-
7306
- ---
7307
-
7308
7295
  ##### `cdkVersionPinning`<sup>Optional</sup> <a name="cdkVersionPinning" id="@macedon-technologies/batman.BatmanProjectOptions.property.cdkVersionPinning"></a>
7309
7296
 
7310
7297
  ```typescript
@@ -7436,6 +7423,19 @@ Common options for all AWS Lambda functions.
7436
7423
 
7437
7424
  ---
7438
7425
 
7426
+ ##### `singletonLambdaAutoDiscover`<sup>Optional</sup> <a name="singletonLambdaAutoDiscover" id="@macedon-technologies/batman.BatmanProjectOptions.property.singletonLambdaAutoDiscover"></a>
7427
+
7428
+ ```typescript
7429
+ public readonly singletonLambdaAutoDiscover: boolean;
7430
+ ```
7431
+
7432
+ - *Type:* boolean
7433
+ - *Default:* true
7434
+
7435
+ Automatically adds an `awscdk.SingletonFunction` for each `.singleton-lambda.ts` handler in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project.
7436
+
7437
+ ---
7438
+
7439
7439
  ##### `dev`<sup>Required</sup> <a name="dev" id="@macedon-technologies/batman.BatmanProjectOptions.property.dev"></a>
7440
7440
 
7441
7441
  ```typescript
@@ -7555,16 +7555,14 @@ const bootcampProjectOptions: BootcampProjectOptions = { ... }
7555
7555
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.github">github</a></code> | <code>boolean</code> | Enable GitHub integration. |
7556
7556
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.githubOptions">githubOptions</a></code> | <code>projen.github.GitHubOptions</code> | Options for GitHub integration. |
7557
7557
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.gitpod">gitpod</a></code> | <code>boolean</code> | Add a Gitpod development environment. |
7558
- | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.mergify">mergify</a></code> | <code>boolean</code> | Whether mergify should be enabled on this repository or not. |
7559
- | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.mergifyOptions">mergifyOptions</a></code> | <code>projen.github.MergifyOptions</code> | Options for mergify. |
7560
- | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.projectType">projectType</a></code> | <code>projen.ProjectType</code> | Which type of project this is (library/app). |
7561
7558
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.projenCredentials">projenCredentials</a></code> | <code>projen.github.GithubCredentials</code> | Choose a method of providing GitHub API access for projen workflows. |
7562
- | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.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. |
7563
7559
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.readme">readme</a></code> | <code>projen.SampleReadmeProps</code> | The README setup. |
7564
7560
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.stale">stale</a></code> | <code>boolean</code> | Auto-close of stale issues and pull request. |
7565
7561
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.staleOptions">staleOptions</a></code> | <code>projen.github.StaleOptions</code> | Auto-close stale issues and pull requests. |
7566
7562
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.vscode">vscode</a></code> | <code>boolean</code> | Enable VSCode integration. |
7563
+ | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.addPackageManagerToDevEngines">addPackageManagerToDevEngines</a></code> | <code>boolean</code> | Automatically add the resolved `packageManager` to `devEngines.packageManager` in `package.json`, setting `onFail` to `ignore`. |
7567
7564
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.allowLibraryDependencies">allowLibraryDependencies</a></code> | <code>boolean</code> | Allow the project to include `peerDependencies` and `bundledDependencies`. |
7565
+ | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.allowScripts">allowScripts</a></code> | <code>string[]</code> | List of dependency (package) names that are allowed to run lifecycle install scripts (`preinstall`, `install`, `postinstall`, `prepare`) during dependency installation. |
7568
7566
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.authorEmail">authorEmail</a></code> | <code>string</code> | Author's e-mail. |
7569
7567
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.authorName">authorName</a></code> | <code>string</code> | Author's name. |
7570
7568
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.authorOrganization">authorOrganization</a></code> | <code>boolean</code> | Is the author an organization. |
@@ -7576,9 +7574,12 @@ const bootcampProjectOptions: BootcampProjectOptions = { ... }
7576
7574
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.bundledDeps">bundledDeps</a></code> | <code>string[]</code> | List of dependencies to bundle into this module. |
7577
7575
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.bunVersion">bunVersion</a></code> | <code>string</code> | The version of Bun to use if using Bun as a package manager. |
7578
7576
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.codeArtifactOptions">codeArtifactOptions</a></code> | <code>projen.javascript.CodeArtifactOptions</code> | Options for npm packages using AWS CodeArtifact. |
7577
+ | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.dedupeDeps">dedupeDeps</a></code> | <code>boolean</code> | Add a `dedupe` task that deduplicates project dependencies. |
7578
+ | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.deleteOrphanedLockFiles">deleteOrphanedLockFiles</a></code> | <code>boolean</code> | Automatically delete lockfiles from package managers that are not the active one. |
7579
7579
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.deps">deps</a></code> | <code>string[]</code> | Runtime dependencies of this module. |
7580
7580
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.description">description</a></code> | <code>string</code> | The description is just a string that helps people understand the purpose of the package. |
7581
7581
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.devDeps">devDeps</a></code> | <code>string[]</code> | Build dependencies for this module. |
7582
+ | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.devEngines">devEngines</a></code> | <code>projen.javascript.DevEngines</code> | Configure the `devEngines` field in `package.json`. |
7582
7583
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.entrypoint">entrypoint</a></code> | <code>string</code> | Module entrypoint (`main` in `package.json`). |
7583
7584
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.homepage">homepage</a></code> | <code>string</code> | Package's Homepage / Website. |
7584
7585
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.keywords">keywords</a></code> | <code>string[]</code> | Keywords to include in `package.json`. |
@@ -7588,7 +7589,6 @@ const bootcampProjectOptions: BootcampProjectOptions = { ... }
7588
7589
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.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. |
7589
7590
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.npmAccess">npmAccess</a></code> | <code>projen.javascript.NpmAccess</code> | Access level of the npm package. |
7590
7591
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.npmProvenance">npmProvenance</a></code> | <code>boolean</code> | Should provenance statements be generated when the package is published. |
7591
- | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.npmRegistry">npmRegistry</a></code> | <code>string</code> | The host name of the npm registry to publish to. |
7592
7592
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.npmRegistryUrl">npmRegistryUrl</a></code> | <code>string</code> | The base URL of the npm package registry. |
7593
7593
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.npmTokenSecret">npmTokenSecret</a></code> | <code>string</code> | GitHub secret which contains the NPM token to use when publishing packages. |
7594
7594
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.npmTrustedPublishing">npmTrustedPublishing</a></code> | <code>boolean</code> | Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work. |
@@ -7596,11 +7596,11 @@ const bootcampProjectOptions: BootcampProjectOptions = { ... }
7596
7596
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.packageName">packageName</a></code> | <code>string</code> | The "name" in package.json. |
7597
7597
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
7598
7598
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.peerDeps">peerDeps</a></code> | <code>string[]</code> | Peer dependencies for this module. |
7599
+ | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.pnpmOptions">pnpmOptions</a></code> | <code>projen.javascript.PnpmOptions</code> | Options for pnpm. |
7599
7600
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.pnpmVersion">pnpmVersion</a></code> | <code>string</code> | The version of PNPM to use if using PNPM as a package manager. |
7600
7601
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.repository">repository</a></code> | <code>string</code> | The repository is the location where the actual code for your package lives. |
7601
7602
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.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. |
7602
7603
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.scopedPackagesOptions">scopedPackagesOptions</a></code> | <code>projen.javascript.ScopedPackagesOptions[]</code> | Options for privately hosted scoped packages. |
7603
- | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.scripts">scripts</a></code> | <code>{[ key: string ]: string}</code> | npm scripts to include. |
7604
7604
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.stability">stability</a></code> | <code>string</code> | Package's Stability. |
7605
7605
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.yarnBerryOptions">yarnBerryOptions</a></code> | <code>projen.javascript.YarnBerryOptions</code> | Options for Yarn Berry. |
7606
7606
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.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. |
@@ -7616,10 +7616,8 @@ const bootcampProjectOptions: BootcampProjectOptions = { ... }
7616
7616
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.releasableCommits">releasableCommits</a></code> | <code>projen.ReleasableCommits</code> | Find commits that should be considered releasable Used to decide if a release is required. |
7617
7617
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.releaseBranches">releaseBranches</a></code> | <code>{[ key: string ]: projen.release.BranchOptions}</code> | Defines additional release branches. |
7618
7618
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.releaseEnvironment">releaseEnvironment</a></code> | <code>string</code> | The GitHub Actions environment used for the release. |
7619
- | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.releaseEveryCommit">releaseEveryCommit</a></code> | <code>boolean</code> | Automatically release new versions every commit to one of branches in `releaseBranches`. |
7620
7619
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.releaseFailureIssue">releaseFailureIssue</a></code> | <code>boolean</code> | Create a github issue on every failed publishing task. |
7621
7620
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.releaseFailureIssueLabel">releaseFailureIssueLabel</a></code> | <code>string</code> | The label to apply to issues indicating publish failures. |
7622
- | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.releaseSchedule">releaseSchedule</a></code> | <code>string</code> | CRON schedule to trigger new releases. |
7623
7621
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.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. |
7624
7622
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.releaseTrigger">releaseTrigger</a></code> | <code>projen.release.ReleaseTrigger</code> | The release trigger to use. |
7625
7623
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.releaseWorkflowEnv">releaseWorkflowEnv</a></code> | <code>{[ key: string ]: string}</code> | Build environment variables for release workflows. |
@@ -7629,7 +7627,6 @@ const bootcampProjectOptions: BootcampProjectOptions = { ... }
7629
7627
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.workflowContainerImage">workflowContainerImage</a></code> | <code>string</code> | Container image to use for GitHub workflows. |
7630
7628
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.workflowRunsOn">workflowRunsOn</a></code> | <code>string[]</code> | Github Runner selection labels. |
7631
7629
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.workflowRunsOnGroup">workflowRunsOnGroup</a></code> | <code>projen.GroupRunnerOptions</code> | Github Runner Group selection options. |
7632
- | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.defaultReleaseBranch">defaultReleaseBranch</a></code> | <code>string</code> | The name of the main release branch. |
7633
7630
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.artifactsDirectory">artifactsDirectory</a></code> | <code>string</code> | A directory which will contain build artifacts. |
7634
7631
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.auditDeps">auditDeps</a></code> | <code>boolean</code> | Run security audit on dependencies. |
7635
7632
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.auditDepsOptions">auditDepsOptions</a></code> | <code>projen.javascript.AuditOptions</code> | Security audit options. |
@@ -7638,13 +7635,13 @@ const bootcampProjectOptions: BootcampProjectOptions = { ... }
7638
7635
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.biomeOptions">biomeOptions</a></code> | <code>projen.javascript.BiomeOptions</code> | Biome options. |
7639
7636
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.buildWorkflow">buildWorkflow</a></code> | <code>boolean</code> | Define a GitHub workflow for building PRs. |
7640
7637
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.buildWorkflowOptions">buildWorkflowOptions</a></code> | <code>projen.javascript.BuildWorkflowOptions</code> | Options for PR build workflow. |
7641
- | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.buildWorkflowTriggers">buildWorkflowTriggers</a></code> | <code>projen.github.workflows.Triggers</code> | Build workflow triggers. |
7642
7638
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.bundlerOptions">bundlerOptions</a></code> | <code>projen.javascript.BundlerOptions</code> | Options for `Bundler`. |
7643
7639
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.checkLicenses">checkLicenses</a></code> | <code>projen.javascript.LicenseCheckerOptions</code> | Configure which licenses should be deemed acceptable for use by dependencies. |
7644
- | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.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@v5 By default, OIDC auth is used. Alternatively a token can be provided via `codeCovTokenSecret`. |
7640
+ | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.codeCov">codeCov</a></code> | <code>boolean</code> | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/. |
7645
7641
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.codeCovTokenSecret">codeCovTokenSecret</a></code> | <code>string</code> | Define the secret name for a specified https://codecov.io/ token. |
7646
7642
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>string</code> | License copyright owner. |
7647
7643
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.copyrightPeriod">copyrightPeriod</a></code> | <code>string</code> | The copyright years to put in the LICENSE file. |
7644
+ | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.defaultReleaseBranch">defaultReleaseBranch</a></code> | <code>string</code> | The name of the main release branch. |
7648
7645
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.dependabot">dependabot</a></code> | <code>boolean</code> | Use dependabot to handle dependency upgrades. |
7649
7646
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.dependabotOptions">dependabotOptions</a></code> | <code>projen.github.DependabotOptions</code> | Options for dependabot. |
7650
7647
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.depsUpgrade">depsUpgrade</a></code> | <code>boolean</code> | Use tasks and github workflows to handle dependency upgrades. |
@@ -7652,8 +7649,6 @@ const bootcampProjectOptions: BootcampProjectOptions = { ... }
7652
7649
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.gitignore">gitignore</a></code> | <code>string[]</code> | Additional entries to .gitignore. |
7653
7650
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.jest">jest</a></code> | <code>boolean</code> | Setup jest unit tests. |
7654
7651
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.jestOptions">jestOptions</a></code> | <code>projen.javascript.JestOptions</code> | Jest options. |
7655
- | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.mutableBuild">mutableBuild</a></code> | <code>boolean</code> | Automatically update files modified during builds to pull-request branches. |
7656
- | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.npmignore">npmignore</a></code> | <code>string[]</code> | Additional entries to .npmignore. |
7657
7652
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.npmignoreEnabled">npmignoreEnabled</a></code> | <code>boolean</code> | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. |
7658
7653
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.npmIgnoreOptions">npmIgnoreOptions</a></code> | <code>projen.IgnoreFileOptions</code> | Configuration options for .npmignore file. |
7659
7654
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.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`). |
@@ -7667,13 +7662,12 @@ const bootcampProjectOptions: BootcampProjectOptions = { ... }
7667
7662
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.pullRequestTemplateContents">pullRequestTemplateContents</a></code> | <code>string[]</code> | The contents of the pull request template. |
7668
7663
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.release">release</a></code> | <code>boolean</code> | Add release management to this project. |
7669
7664
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.releaseToNpm">releaseToNpm</a></code> | <code>boolean</code> | Automatically release to npm when new versions are introduced. |
7670
- | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.releaseWorkflow">releaseWorkflow</a></code> | <code>boolean</code> | DEPRECATED: renamed to `release`. |
7671
7665
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.workflowBootstrapSteps">workflowBootstrapSteps</a></code> | <code>projen.github.workflows.JobStep[]</code> | Workflow steps to use in order to bootstrap this repo. |
7672
7666
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.workflowGitIdentity">workflowGitIdentity</a></code> | <code>projen.github.GitIdentity</code> | The git identity to use in workflows. |
7673
7667
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.workflowNodeVersion">workflowNodeVersion</a></code> | <code>string</code> | The node version used in GitHub Actions workflows. |
7674
7668
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.workflowPackageCache">workflowPackageCache</a></code> | <code>boolean</code> | Enable Node.js package cache in GitHub workflows. |
7675
7669
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.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). |
7676
- | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.disableTsconfigDev">disableTsconfigDev</a></code> | <code>boolean</code> | Do not generate a `tsconfig.dev.json` file. |
7670
+ | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.disableTsconfigDev">disableTsconfigDev</a></code> | <code>boolean</code> | Do not generate a development tsconfig file. |
7677
7671
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.docgen">docgen</a></code> | <code>boolean</code> | Docgen by Typedoc. |
7678
7672
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.docsDirectory">docsDirectory</a></code> | <code>string</code> | Docs directory. |
7679
7673
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.entrypointTypes">entrypointTypes</a></code> | <code>string</code> | The .d.ts file that includes the type declarations for this module. |
@@ -7682,12 +7676,13 @@ const bootcampProjectOptions: BootcampProjectOptions = { ... }
7682
7676
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.libdir">libdir</a></code> | <code>string</code> | Typescript artifacts output directory. |
7683
7677
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.projenrcTs">projenrcTs</a></code> | <code>boolean</code> | Use TypeScript for your projenrc file (`.projenrc.ts`). |
7684
7678
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.projenrcTsOptions">projenrcTsOptions</a></code> | <code>projen.typescript.ProjenrcOptions</code> | Options for .projenrc.ts. |
7679
+ | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.runner">runner</a></code> | <code>projen.typescript.TypeScriptRunner</code> | The TypeScript runner to use for executing TypeScript files. |
7685
7680
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.sampleCode">sampleCode</a></code> | <code>boolean</code> | Generate one-time sample in `src/` and `test/` if there are no files there. |
7686
7681
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.srcdir">srcdir</a></code> | <code>string</code> | Typescript sources directory. |
7687
7682
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.testdir">testdir</a></code> | <code>string</code> | Jest tests directory. Tests files should be named `xxx.test.ts`. |
7688
7683
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.tsconfig">tsconfig</a></code> | <code>projen.javascript.TypescriptConfigOptions</code> | Custom TSConfig. |
7689
7684
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.tsconfigDev">tsconfigDev</a></code> | <code>projen.javascript.TypescriptConfigOptions</code> | Custom tsconfig options for the development tsconfig.json file (used for testing). |
7690
- | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.tsconfigDevFile">tsconfigDevFile</a></code> | <code>string</code> | The name of the development tsconfig.json file. |
7685
+ | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.tsconfigDevFile">tsconfigDevFile</a></code> | <code>string</code> | The name (and path) of the development tsconfig file. |
7691
7686
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.tsJestOptions">tsJestOptions</a></code> | <code>projen.typescript.TsJestOptions</code> | Options for ts-jest. |
7692
7687
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.typescriptVersion">typescriptVersion</a></code> | <code>string</code> | TypeScript version to use. |
7693
7688
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.buildCommand">buildCommand</a></code> | <code>string</code> | A command to execute before synthesis. |
@@ -7698,12 +7693,7 @@ const bootcampProjectOptions: BootcampProjectOptions = { ... }
7698
7693
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.watchExcludes">watchExcludes</a></code> | <code>string[]</code> | Glob patterns to exclude from `cdk watch`. |
7699
7694
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.watchIncludes">watchIncludes</a></code> | <code>string[]</code> | Glob patterns to include in `cdk watch`. |
7700
7695
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.cdkVersion">cdkVersion</a></code> | <code>string</code> | Minimum version of the AWS CDK to depend on. |
7701
- | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.cdkAssert">cdkAssert</a></code> | <code>boolean</code> | Warning: NodeJS only. |
7702
- | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.cdkAssertions">cdkAssertions</a></code> | <code>boolean</code> | Install the assertions library? |
7703
7696
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.cdkCliVersion">cdkCliVersion</a></code> | <code>string</code> | Version range of the AWS CDK CLI to depend on. |
7704
- | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.cdkDependencies">cdkDependencies</a></code> | <code>string[]</code> | Which AWS CDKv1 modules this project requires. |
7705
- | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.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`). |
7706
- | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.cdkTestDependencies">cdkTestDependencies</a></code> | <code>string[]</code> | AWS CDK modules required for testing. |
7707
7697
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.cdkVersionPinning">cdkVersionPinning</a></code> | <code>boolean</code> | Use pinned version instead of caret version for CDK. |
7708
7698
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.constructsVersion">constructsVersion</a></code> | <code>string</code> | Minimum version of the `constructs` library to depend on. |
7709
7699
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.app">app</a></code> | <code>string</code> | The command line to execute in order to synthesize the CDK application (language specific). |
@@ -7714,6 +7704,7 @@ const bootcampProjectOptions: BootcampProjectOptions = { ... }
7714
7704
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.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. |
7715
7705
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.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. |
7716
7706
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.lambdaOptions">lambdaOptions</a></code> | <code>projen.awscdk.LambdaFunctionCommonOptions</code> | Common options for all AWS Lambda functions. |
7707
+ | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.singletonLambdaAutoDiscover">singletonLambdaAutoDiscover</a></code> | <code>boolean</code> | Automatically adds an `awscdk.SingletonFunction` for each `.singleton-lambda.ts` handler in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project. |
7717
7708
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.dev">dev</a></code> | <code><a href="#@macedon-technologies/batman.ApplicationEnvironmentConfig">ApplicationEnvironmentConfig</a></code> | Development environment configuration. |
7718
7709
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.prod">prod</a></code> | <code><a href="#@macedon-technologies/batman.ApplicationEnvironmentConfig">ApplicationEnvironmentConfig</a></code> | Production environment configuration. |
7719
7710
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.staging">staging</a></code> | <code><a href="#@macedon-technologies/batman.ApplicationEnvironmentConfig">ApplicationEnvironmentConfig</a></code> | Development environment configuration. |
@@ -7842,6 +7833,10 @@ public readonly projenCommand: string;
7842
7833
 
7843
7834
  The shell command to use in order to run the projen CLI.
7844
7835
 
7836
+ Inserted verbatim into task steps, workflows and IDE configuration, and run
7837
+ by each of their shells - locally, in CI and in dev containers. Keep it a
7838
+ plain unquoted command, since shell syntax in it executes in all of them.
7839
+
7845
7840
  Can be used to customize in special environments.
7846
7841
 
7847
7842
  ---
@@ -8010,51 +8005,6 @@ Add a Gitpod development environment.
8010
8005
 
8011
8006
  ---
8012
8007
 
8013
- ##### ~~`mergify`~~<sup>Optional</sup> <a name="mergify" id="@macedon-technologies/batman.BootcampProjectOptions.property.mergify"></a>
8014
-
8015
- - *Deprecated:* use `githubOptions.mergify` instead
8016
-
8017
- ```typescript
8018
- public readonly mergify: boolean;
8019
- ```
8020
-
8021
- - *Type:* boolean
8022
- - *Default:* true
8023
-
8024
- Whether mergify should be enabled on this repository or not.
8025
-
8026
- ---
8027
-
8028
- ##### ~~`mergifyOptions`~~<sup>Optional</sup> <a name="mergifyOptions" id="@macedon-technologies/batman.BootcampProjectOptions.property.mergifyOptions"></a>
8029
-
8030
- - *Deprecated:* use `githubOptions.mergifyOptions` instead
8031
-
8032
- ```typescript
8033
- public readonly mergifyOptions: MergifyOptions;
8034
- ```
8035
-
8036
- - *Type:* projen.github.MergifyOptions
8037
- - *Default:* default options
8038
-
8039
- Options for mergify.
8040
-
8041
- ---
8042
-
8043
- ##### ~~`projectType`~~<sup>Optional</sup> <a name="projectType" id="@macedon-technologies/batman.BootcampProjectOptions.property.projectType"></a>
8044
-
8045
- - *Deprecated:* no longer supported at the base project level
8046
-
8047
- ```typescript
8048
- public readonly projectType: ProjectType;
8049
- ```
8050
-
8051
- - *Type:* projen.ProjectType
8052
- - *Default:* ProjectType.UNKNOWN
8053
-
8054
- Which type of project this is (library/app).
8055
-
8056
- ---
8057
-
8058
8008
  ##### `projenCredentials`<sup>Optional</sup> <a name="projenCredentials" id="@macedon-technologies/batman.BootcampProjectOptions.property.projenCredentials"></a>
8059
8009
 
8060
8010
  ```typescript
@@ -8062,27 +8012,9 @@ public readonly projenCredentials: GithubCredentials;
8062
8012
  ```
8063
8013
 
8064
8014
  - *Type:* projen.github.GithubCredentials
8065
- - *Default:* use a personal access token named PROJEN_GITHUB_TOKEN
8066
-
8067
- Choose a method of providing GitHub API access for projen workflows.
8068
-
8069
- ---
8070
-
8071
- ##### ~~`projenTokenSecret`~~<sup>Optional</sup> <a name="projenTokenSecret" id="@macedon-technologies/batman.BootcampProjectOptions.property.projenTokenSecret"></a>
8072
-
8073
- - *Deprecated:* use `projenCredentials`
8074
-
8075
- ```typescript
8076
- public readonly projenTokenSecret: string;
8077
- ```
8078
-
8079
- - *Type:* string
8080
- - *Default:* "PROJEN_GITHUB_TOKEN"
8081
-
8082
- The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows.
8015
+ - *Default:* use a personal access token named PROJEN_GITHUB_TOKEN
8083
8016
 
8084
- This token needs to have the `repo`, `workflows`
8085
- and `packages` scope.
8017
+ Choose a method of providing GitHub API access for projen workflows.
8086
8018
 
8087
8019
  ---
8088
8020
 
@@ -8151,6 +8083,19 @@ Enabled by default for root projects. Disabled for non-root projects.
8151
8083
 
8152
8084
  ---
8153
8085
 
8086
+ ##### `addPackageManagerToDevEngines`<sup>Optional</sup> <a name="addPackageManagerToDevEngines" id="@macedon-technologies/batman.BootcampProjectOptions.property.addPackageManagerToDevEngines"></a>
8087
+
8088
+ ```typescript
8089
+ public readonly addPackageManagerToDevEngines: boolean;
8090
+ ```
8091
+
8092
+ - *Type:* boolean
8093
+ - *Default:* true
8094
+
8095
+ Automatically add the resolved `packageManager` to `devEngines.packageManager` in `package.json`, setting `onFail` to `ignore`.
8096
+
8097
+ ---
8098
+
8154
8099
  ##### `allowLibraryDependencies`<sup>Optional</sup> <a name="allowLibraryDependencies" id="@macedon-technologies/batman.BootcampProjectOptions.property.allowLibraryDependencies"></a>
8155
8100
 
8156
8101
  ```typescript
@@ -8167,6 +8112,44 @@ for specifying these.
8167
8112
 
8168
8113
  ---
8169
8114
 
8115
+ ##### `allowScripts`<sup>Optional</sup> <a name="allowScripts" id="@macedon-technologies/batman.BootcampProjectOptions.property.allowScripts"></a>
8116
+
8117
+ ```typescript
8118
+ public readonly allowScripts: string[];
8119
+ ```
8120
+
8121
+ - *Type:* string[]
8122
+ - *Default:* all install scripts are allowed to run (package manager default)
8123
+
8124
+ List of dependency (package) names that are allowed to run lifecycle install scripts (`preinstall`, `install`, `postinstall`, `prepare`) during dependency installation.
8125
+
8126
+ These scripts can execute arbitrary code, making them a common
8127
+ supply-chain attack vector. Package managers are moving toward
8128
+ blocking them by default and requiring an explicit allowlist.
8129
+ Configuring `allowScripts` sets up that allowlist so scripts only run
8130
+ for the packages you have explicitly reviewed and trust.
8131
+
8132
+ Support for this setting depends on the configured `packageManager`:
8133
+
8134
+ - `NPM`: written to the native `allowScripts` field in `package.json`
8135
+ (requires npm >= 11.16; see https://docs.npmjs.com/cli/v11/commands/npm-approve-scripts).
8136
+ - `BUN`: written to the native `trustedDependencies` field in
8137
+ `package.json` (see https://bun.com/docs/pm/lifecycle).
8138
+ - `PNPM`: written to the `onlyBuiltDependencies` setting in
8139
+ `pnpm-workspace.yaml` (see https://pnpm.io/settings#onlybuiltdependencies).
8140
+ - `YARN2`, `YARN_BERRY`: written to the native
8141
+ `dependenciesMeta.<pkg>.built` allowlist in `package.json`, combined
8142
+ with `enableScripts: false` in `.yarnrc.yml` (see
8143
+ https://yarnpkg.com/features/security#postinstalls). If you set
8144
+ `yarnBerryOptions.yarnRcOptions.enableScripts` explicitly, that value
8145
+ is respected instead of being overridden.
8146
+ - `YARN`, `YARN_CLASSIC`: not supported. Yarn Classic has no native
8147
+ mechanism to allowlist install scripts for specific dependencies.
8148
+ Setting this option with one of these package managers throws an
8149
+ error at synthesis time.
8150
+
8151
+ ---
8152
+
8170
8153
  ##### `authorEmail`<sup>Optional</sup> <a name="authorEmail" id="@macedon-technologies/batman.BootcampProjectOptions.property.authorEmail"></a>
8171
8154
 
8172
8155
  ```typescript
@@ -8283,11 +8266,11 @@ added both to the `dependencies` section and `bundledDependencies` section of
8283
8266
  your `package.json`.
8284
8267
 
8285
8268
  The recommendation is to only specify the module name here (e.g.
8286
- `express`). This will behave similar to `yarn add` or `npm install` in the
8269
+ `express`). This will behave similar to `pnpm add` or `npm install` in the
8287
8270
  sense that it will add the module as a dependency to your `package.json`
8288
8271
  file with the latest version (`^`). You can specify semver requirements in
8289
- the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and
8290
- this will be what you `package.json` will eventually include.
8272
+ the same syntax passed to `pnpm add` or `npm i` (e.g. `express@^2`) and
8273
+ this will be what your `package.json` will eventually include.
8291
8274
 
8292
8275
  ---
8293
8276
 
@@ -8319,6 +8302,52 @@ This is required if publishing packages to, or installing scoped packages from A
8319
8302
 
8320
8303
  ---
8321
8304
 
8305
+ ##### `dedupeDeps`<sup>Optional</sup> <a name="dedupeDeps" id="@macedon-technologies/batman.BootcampProjectOptions.property.dedupeDeps"></a>
8306
+
8307
+ ```typescript
8308
+ public readonly dedupeDeps: boolean;
8309
+ ```
8310
+
8311
+ - *Type:* boolean
8312
+ - *Default:* false, unless `yarnBerryOptions.dedupePackages` is set
8313
+
8314
+ Add a `dedupe` task that deduplicates project dependencies.
8315
+
8316
+ Deduplication prevents multiple versions of the same package from being
8317
+ installed, if a single version can satisfy all requested version ranges.
8318
+ This prevents version proliferation and reduces the size of the dependency
8319
+ tree.
8320
+
8321
+ The behavior depends on the package manager:
8322
+ - npm: runs `npm dedupe` after every mutating install.
8323
+ - pnpm: runs `pnpm dedupe` after every mutating install.
8324
+ - Yarn Berry: runs `yarn dedupe` after every mutating install. If
8325
+ `yarnBerryOptions.dedupePackages` is set, only the listed packages are
8326
+ deduplicated.
8327
+ - Yarn Classic: `yarn install` already deduplicates, so the task only
8328
+ prints an informational message.
8329
+ - Bun: not supported, enabling this option throws an error.
8330
+
8331
+ ---
8332
+
8333
+ ##### `deleteOrphanedLockFiles`<sup>Optional</sup> <a name="deleteOrphanedLockFiles" id="@macedon-technologies/batman.BootcampProjectOptions.property.deleteOrphanedLockFiles"></a>
8334
+
8335
+ ```typescript
8336
+ public readonly deleteOrphanedLockFiles: boolean;
8337
+ ```
8338
+
8339
+ - *Type:* boolean
8340
+ - *Default:* true
8341
+
8342
+ Automatically delete lockfiles from package managers that are not the active one.
8343
+
8344
+ Only triggered when the lockfile for the configured package
8345
+ manager already exists.
8346
+
8347
+ This is useful when migrating between package managers to avoid conflicts.
8348
+
8349
+ ---
8350
+
8322
8351
  ##### `deps`<sup>Optional</sup> <a name="deps" id="@macedon-technologies/batman.BootcampProjectOptions.property.deps"></a>
8323
8352
 
8324
8353
  ```typescript
@@ -8331,11 +8360,11 @@ public readonly deps: string[];
8331
8360
  Runtime dependencies of this module.
8332
8361
 
8333
8362
  The recommendation is to only specify the module name here (e.g.
8334
- `express`). This will behave similar to `yarn add` or `npm install` in the
8363
+ `express`). This will behave similar to `pnpm add` or `npm install` in the
8335
8364
  sense that it will add the module as a dependency to your `package.json`
8336
8365
  file with the latest version (`^`). You can specify semver requirements in
8337
- the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and
8338
- this will be what you `package.json` will eventually include.
8366
+ the same syntax passed to `pnpm add` or `npm i` (e.g. `express@^2`) and
8367
+ this will be what your `package.json` will eventually include.
8339
8368
 
8340
8369
  ---
8341
8370
 
@@ -8377,11 +8406,11 @@ available in your build environment but will not be fetched when this
8377
8406
  module is consumed.
8378
8407
 
8379
8408
  The recommendation is to only specify the module name here (e.g.
8380
- `express`). This will behave similar to `yarn add` or `npm install` in the
8409
+ `express`). This will behave similar to `pnpm add` or `npm install` in the
8381
8410
  sense that it will add the module as a dependency to your `package.json`
8382
8411
  file with the latest version (`^`). You can specify semver requirements in
8383
- the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and
8384
- this will be what you `package.json` will eventually include.
8412
+ the same syntax passed to `pnpm add` or `npm i` (e.g. `express@^2`) and
8413
+ this will be what your `package.json` will eventually include.
8385
8414
 
8386
8415
  ---
8387
8416
 
@@ -8392,6 +8421,24 @@ this will be what you `package.json` will eventually include.
8392
8421
  ```
8393
8422
 
8394
8423
 
8424
+ ##### `devEngines`<sup>Optional</sup> <a name="devEngines" id="@macedon-technologies/batman.BootcampProjectOptions.property.devEngines"></a>
8425
+
8426
+ ```typescript
8427
+ public readonly devEngines: DevEngines;
8428
+ ```
8429
+
8430
+ - *Type:* projen.javascript.DevEngines
8431
+
8432
+ Configure the `devEngines` field in `package.json`.
8433
+
8434
+ The `devEngines.packageManager` field is automatically populated based on
8435
+ the resolved `packageManager` value. Any fields provided here are merged
8436
+ with the auto-populated `packageManager` entry.
8437
+
8438
+ > [https://docs.npmjs.com/cli/v10/configuring-npm/package-json#devengines](https://docs.npmjs.com/cli/v10/configuring-npm/package-json#devengines)
8439
+
8440
+ ---
8441
+
8395
8442
  ##### `entrypoint`<sup>Optional</sup> <a name="entrypoint" id="@macedon-technologies/batman.BootcampProjectOptions.property.entrypoint"></a>
8396
8443
 
8397
8444
  ```typescript
@@ -8536,22 +8583,6 @@ which is using npm internally and supports provenance statements independently o
8536
8583
 
8537
8584
  ---
8538
8585
 
8539
- ##### ~~`npmRegistry`~~<sup>Optional</sup> <a name="npmRegistry" id="@macedon-technologies/batman.BootcampProjectOptions.property.npmRegistry"></a>
8540
-
8541
- - *Deprecated:* use `npmRegistryUrl` instead
8542
-
8543
- ```typescript
8544
- public readonly npmRegistry: string;
8545
- ```
8546
-
8547
- - *Type:* string
8548
-
8549
- The host name of the npm registry to publish to.
8550
-
8551
- Cannot be set together with `npmRegistryUrl`.
8552
-
8553
- ---
8554
-
8555
8586
  ##### `npmRegistryUrl`<sup>Optional</sup> <a name="npmRegistryUrl" id="@macedon-technologies/batman.BootcampProjectOptions.property.npmRegistryUrl"></a>
8556
8587
 
8557
8588
  ```typescript
@@ -8600,7 +8631,7 @@ public readonly packageManager: NodePackageManager;
8600
8631
  ```
8601
8632
 
8602
8633
  - *Type:* projen.javascript.NodePackageManager
8603
- - *Default:* NodePackageManager.YARN_CLASSIC
8634
+ - *Default:* Detected from the calling process or `YARN_CLASSIC` if detection fails.
8604
8635
 
8605
8636
  The Node Package Manager used to execute scripts.
8606
8637
 
@@ -8658,6 +8689,19 @@ test your module against the lowest peer version required.
8658
8689
 
8659
8690
  ---
8660
8691
 
8692
+ ##### `pnpmOptions`<sup>Optional</sup> <a name="pnpmOptions" id="@macedon-technologies/batman.BootcampProjectOptions.property.pnpmOptions"></a>
8693
+
8694
+ ```typescript
8695
+ public readonly pnpmOptions: PnpmOptions;
8696
+ ```
8697
+
8698
+ - *Type:* projen.javascript.PnpmOptions
8699
+ - *Default:* all default options
8700
+
8701
+ Options for pnpm.
8702
+
8703
+ ---
8704
+
8661
8705
  ##### `pnpmVersion`<sup>Optional</sup> <a name="pnpmVersion" id="@macedon-technologies/batman.BootcampProjectOptions.property.pnpmVersion"></a>
8662
8706
 
8663
8707
  ```typescript
@@ -8665,7 +8709,7 @@ public readonly pnpmVersion: string;
8665
8709
  ```
8666
8710
 
8667
8711
  - *Type:* string
8668
- - *Default:* "9"
8712
+ - *Default:* "10.33.0"
8669
8713
 
8670
8714
  The version of PNPM to use if using PNPM as a package manager.
8671
8715
 
@@ -8710,25 +8754,6 @@ Options for privately hosted scoped packages.
8710
8754
 
8711
8755
  ---
8712
8756
 
8713
- ##### ~~`scripts`~~<sup>Optional</sup> <a name="scripts" id="@macedon-technologies/batman.BootcampProjectOptions.property.scripts"></a>
8714
-
8715
- - *Deprecated:* use `project.addTask()` or `package.setScript()`
8716
-
8717
- ```typescript
8718
- public readonly scripts: {[ key: string ]: string};
8719
- ```
8720
-
8721
- - *Type:* {[ key: string ]: string}
8722
- - *Default:* {}
8723
-
8724
- npm scripts to include.
8725
-
8726
- If a script has the same name as a standard script,
8727
- the standard script will be overwritten.
8728
- Also adds the script as a task.
8729
-
8730
- ---
8731
-
8732
8757
  ##### `stability`<sup>Optional</sup> <a name="stability" id="@macedon-technologies/batman.BootcampProjectOptions.property.stability"></a>
8733
8758
 
8734
8759
  ```typescript
@@ -8971,21 +8996,6 @@ on a per artifact basis.
8971
8996
 
8972
8997
  ---
8973
8998
 
8974
- ##### ~~`releaseEveryCommit`~~<sup>Optional</sup> <a name="releaseEveryCommit" id="@macedon-technologies/batman.BootcampProjectOptions.property.releaseEveryCommit"></a>
8975
-
8976
- - *Deprecated:* Use `releaseTrigger: ReleaseTrigger.continuous()` instead
8977
-
8978
- ```typescript
8979
- public readonly releaseEveryCommit: boolean;
8980
- ```
8981
-
8982
- - *Type:* boolean
8983
- - *Default:* true
8984
-
8985
- Automatically release new versions every commit to one of branches in `releaseBranches`.
8986
-
8987
- ---
8988
-
8989
8999
  ##### `releaseFailureIssue`<sup>Optional</sup> <a name="releaseFailureIssue" id="@macedon-technologies/batman.BootcampProjectOptions.property.releaseFailureIssue"></a>
8990
9000
 
8991
9001
  ```typescript
@@ -9014,21 +9024,6 @@ Only applies if `releaseFailureIssue` is true.
9014
9024
 
9015
9025
  ---
9016
9026
 
9017
- ##### ~~`releaseSchedule`~~<sup>Optional</sup> <a name="releaseSchedule" id="@macedon-technologies/batman.BootcampProjectOptions.property.releaseSchedule"></a>
9018
-
9019
- - *Deprecated:* Use `releaseTrigger: ReleaseTrigger.scheduled()` instead
9020
-
9021
- ```typescript
9022
- public readonly releaseSchedule: string;
9023
- ```
9024
-
9025
- - *Type:* string
9026
- - *Default:* no scheduled releases
9027
-
9028
- CRON schedule to trigger new releases.
9029
-
9030
- ---
9031
-
9032
9027
  ##### `releaseTagPrefix`<sup>Optional</sup> <a name="releaseTagPrefix" id="@macedon-technologies/batman.BootcampProjectOptions.property.releaseTagPrefix"></a>
9033
9028
 
9034
9029
  ```typescript
@@ -9126,7 +9121,9 @@ Container image to use for GitHub workflows.
9126
9121
 
9127
9122
  ---
9128
9123
 
9129
- ##### `workflowRunsOn`<sup>Optional</sup> <a name="workflowRunsOn" id="@macedon-technologies/batman.BootcampProjectOptions.property.workflowRunsOn"></a>
9124
+ ##### ~~`workflowRunsOn`~~<sup>Optional</sup> <a name="workflowRunsOn" id="@macedon-technologies/batman.BootcampProjectOptions.property.workflowRunsOn"></a>
9125
+
9126
+ - *Deprecated:* use `githubOptions.workflowRunsOn` on the project, or `runsOn` on `ReleaseOptions`
9130
9127
 
9131
9128
  ```typescript
9132
9129
  public readonly workflowRunsOn: string[];
@@ -9139,7 +9136,9 @@ Github Runner selection labels.
9139
9136
 
9140
9137
  ---
9141
9138
 
9142
- ##### `workflowRunsOnGroup`<sup>Optional</sup> <a name="workflowRunsOnGroup" id="@macedon-technologies/batman.BootcampProjectOptions.property.workflowRunsOnGroup"></a>
9139
+ ##### ~~`workflowRunsOnGroup`~~<sup>Optional</sup> <a name="workflowRunsOnGroup" id="@macedon-technologies/batman.BootcampProjectOptions.property.workflowRunsOnGroup"></a>
9140
+
9141
+ - *Deprecated:* use `githubOptions.workflowRunsOnGroup` on the project, or `runsOnGroup` on `ReleaseOptions`
9143
9142
 
9144
9143
  ```typescript
9145
9144
  public readonly workflowRunsOnGroup: GroupRunnerOptions;
@@ -9151,19 +9150,6 @@ Github Runner Group selection options.
9151
9150
 
9152
9151
  ---
9153
9152
 
9154
- ##### `defaultReleaseBranch`<sup>Required</sup> <a name="defaultReleaseBranch" id="@macedon-technologies/batman.BootcampProjectOptions.property.defaultReleaseBranch"></a>
9155
-
9156
- ```typescript
9157
- public readonly defaultReleaseBranch: string;
9158
- ```
9159
-
9160
- - *Type:* string
9161
- - *Default:* "main"
9162
-
9163
- The name of the main release branch.
9164
-
9165
- ---
9166
-
9167
9153
  ##### `artifactsDirectory`<sup>Optional</sup> <a name="artifactsDirectory" id="@macedon-technologies/batman.BootcampProjectOptions.property.artifactsDirectory"></a>
9168
9154
 
9169
9155
  ```typescript
@@ -9273,21 +9259,6 @@ Options for PR build workflow.
9273
9259
 
9274
9260
  ---
9275
9261
 
9276
- ##### ~~`buildWorkflowTriggers`~~<sup>Optional</sup> <a name="buildWorkflowTriggers" id="@macedon-technologies/batman.BootcampProjectOptions.property.buildWorkflowTriggers"></a>
9277
-
9278
- - *Deprecated:* - Use `buildWorkflowOptions.workflowTriggers`
9279
-
9280
- ```typescript
9281
- public readonly buildWorkflowTriggers: Triggers;
9282
- ```
9283
-
9284
- - *Type:* projen.github.workflows.Triggers
9285
- - *Default:* "{ pullRequest: {}, workflowDispatch: {} }"
9286
-
9287
- Build workflow triggers.
9288
-
9289
- ---
9290
-
9291
9262
  ##### `bundlerOptions`<sup>Optional</sup> <a name="bundlerOptions" id="@macedon-technologies/batman.BootcampProjectOptions.property.bundlerOptions"></a>
9292
9263
 
9293
9264
  ```typescript
@@ -9324,7 +9295,10 @@ public readonly codeCov: boolean;
9324
9295
  - *Type:* boolean
9325
9296
  - *Default:* false
9326
9297
 
9327
- Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v5 By default, OIDC auth is used. Alternatively a token can be provided via `codeCovTokenSecret`.
9298
+ Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/.
9299
+
9300
+ Uses codecov/codecov-action. By default, OIDC auth is used.
9301
+ Alternatively a token can be provided via `codeCovTokenSecret`.
9328
9302
 
9329
9303
  ---
9330
9304
 
@@ -9352,6 +9326,10 @@ public readonly copyrightOwner: string;
9352
9326
 
9353
9327
  License copyright owner.
9354
9328
 
9329
+ This value is only used if the selected license text contains the
9330
+ `$copyright_owner` placeholder. For example, it has no effect on the
9331
+ MPL-2.0 license text.
9332
+
9355
9333
  ---
9356
9334
 
9357
9335
  ##### `copyrightPeriod`<sup>Optional</sup> <a name="copyrightPeriod" id="@macedon-technologies/batman.BootcampProjectOptions.property.copyrightPeriod"></a>
@@ -9365,6 +9343,23 @@ public readonly copyrightPeriod: string;
9365
9343
 
9366
9344
  The copyright years to put in the LICENSE file.
9367
9345
 
9346
+ This value is only used if the selected license text contains the
9347
+ `$copyright_period` placeholder. For example, it has no effect on the
9348
+ MPL-2.0 license text.
9349
+
9350
+ ---
9351
+
9352
+ ##### `defaultReleaseBranch`<sup>Optional</sup> <a name="defaultReleaseBranch" id="@macedon-technologies/batman.BootcampProjectOptions.property.defaultReleaseBranch"></a>
9353
+
9354
+ ```typescript
9355
+ public readonly defaultReleaseBranch: string;
9356
+ ```
9357
+
9358
+ - *Type:* string
9359
+ - *Default:* "main"
9360
+
9361
+ The name of the main release branch.
9362
+
9368
9363
  ---
9369
9364
 
9370
9365
  ##### `dependabot`<sup>Optional</sup> <a name="dependabot" id="@macedon-technologies/batman.BootcampProjectOptions.property.dependabot"></a>
@@ -9461,41 +9456,6 @@ Jest options.
9461
9456
 
9462
9457
  ---
9463
9458
 
9464
- ##### ~~`mutableBuild`~~<sup>Optional</sup> <a name="mutableBuild" id="@macedon-technologies/batman.BootcampProjectOptions.property.mutableBuild"></a>
9465
-
9466
- - *Deprecated:* - Use `buildWorkflowOptions.mutableBuild`
9467
-
9468
- ```typescript
9469
- public readonly mutableBuild: boolean;
9470
- ```
9471
-
9472
- - *Type:* boolean
9473
- - *Default:* true
9474
-
9475
- Automatically update files modified during builds to pull-request branches.
9476
-
9477
- This means
9478
- that any files synthesized by projen or e.g. test snapshots will always be up-to-date
9479
- before a PR is merged.
9480
-
9481
- Implies that PR builds do not have anti-tamper checks.
9482
-
9483
- ---
9484
-
9485
- ##### ~~`npmignore`~~<sup>Optional</sup> <a name="npmignore" id="@macedon-technologies/batman.BootcampProjectOptions.property.npmignore"></a>
9486
-
9487
- - *Deprecated:* - use `project.addPackageIgnore`
9488
-
9489
- ```typescript
9490
- public readonly npmignore: string[];
9491
- ```
9492
-
9493
- - *Type:* string[]
9494
-
9495
- Additional entries to .npmignore.
9496
-
9497
- ---
9498
-
9499
9459
  ##### `npmignoreEnabled`<sup>Optional</sup> <a name="npmignoreEnabled" id="@macedon-technologies/batman.BootcampProjectOptions.property.npmignoreEnabled"></a>
9500
9460
 
9501
9461
  ```typescript
@@ -9664,21 +9624,6 @@ Automatically release to npm when new versions are introduced.
9664
9624
 
9665
9625
  ---
9666
9626
 
9667
- ##### ~~`releaseWorkflow`~~<sup>Optional</sup> <a name="releaseWorkflow" id="@macedon-technologies/batman.BootcampProjectOptions.property.releaseWorkflow"></a>
9668
-
9669
- - *Deprecated:* see `release`.
9670
-
9671
- ```typescript
9672
- public readonly releaseWorkflow: boolean;
9673
- ```
9674
-
9675
- - *Type:* boolean
9676
- - *Default:* true if not a subproject
9677
-
9678
- DEPRECATED: renamed to `release`.
9679
-
9680
- ---
9681
-
9682
9627
  ##### `workflowBootstrapSteps`<sup>Optional</sup> <a name="workflowBootstrapSteps" id="@macedon-technologies/batman.BootcampProjectOptions.property.workflowBootstrapSteps"></a>
9683
9628
 
9684
9629
  ```typescript
@@ -9755,7 +9700,7 @@ public readonly disableTsconfigDev: boolean;
9755
9700
  - *Type:* boolean
9756
9701
  - *Default:* false
9757
9702
 
9758
- Do not generate a `tsconfig.dev.json` file.
9703
+ Do not generate a development tsconfig file.
9759
9704
 
9760
9705
  ---
9761
9706
 
@@ -9862,6 +9807,22 @@ Options for .projenrc.ts.
9862
9807
 
9863
9808
  ---
9864
9809
 
9810
+ ##### `runner`<sup>Optional</sup> <a name="runner" id="@macedon-technologies/batman.BootcampProjectOptions.property.runner"></a>
9811
+
9812
+ ```typescript
9813
+ public readonly runner: TypeScriptRunner;
9814
+ ```
9815
+
9816
+ - *Type:* projen.typescript.TypeScriptRunner
9817
+ - *Default:* TypeScriptRunner.tsNode()
9818
+
9819
+ The TypeScript runner to use for executing TypeScript files.
9820
+
9821
+ This is a project-level setting that components (e.g. projenrc) will
9822
+ use as their default runner.
9823
+
9824
+ ---
9825
+
9865
9826
  ##### `sampleCode`<sup>Optional</sup> <a name="sampleCode" id="@macedon-technologies/batman.BootcampProjectOptions.property.sampleCode"></a>
9866
9827
 
9867
9828
  ```typescript
@@ -9939,9 +9900,13 @@ public readonly tsconfigDevFile: string;
9939
9900
  ```
9940
9901
 
9941
9902
  - *Type:* string
9942
- - *Default:* "tsconfig.dev.json"
9903
+ - *Default:* "{testdir}/tsconfig.json"
9943
9904
 
9944
- The name of the development tsconfig.json file.
9905
+ The name (and path) of the development tsconfig file.
9906
+
9907
+ By default this lives inside the test directory (e.g. `test/tsconfig.json`)
9908
+ so that the TypeScript language service resolves it as the nearest config
9909
+ for test files.
9945
9910
 
9946
9911
  ---
9947
9912
 
@@ -9988,6 +9953,10 @@ This command will be called when
9988
9953
  running `cdk synth` or when `cdk watch` identifies a change in your source
9989
9954
  code before redeployment.
9990
9955
 
9956
+ The CDK CLI runs it through a shell on every synthesis, on the machine of
9957
+ anyone who checks out the project, so shell syntax in it is interpreted and
9958
+ the command should be one you would run yourself.
9959
+
9991
9960
  ---
9992
9961
 
9993
9962
  ##### `cdkout`<sup>Optional</sup> <a name="cdkout" id="@macedon-technologies/batman.BootcampProjectOptions.property.cdkout"></a>
@@ -10085,39 +10054,6 @@ Minimum version of the AWS CDK to depend on.
10085
10054
 
10086
10055
  ---
10087
10056
 
10088
- ##### ~~`cdkAssert`~~<sup>Optional</sup> <a name="cdkAssert" id="@macedon-technologies/batman.BootcampProjectOptions.property.cdkAssert"></a>
10089
-
10090
- - *Deprecated:* The
10091
-
10092
- ```typescript
10093
- public readonly cdkAssert: boolean;
10094
- ```
10095
-
10096
- - *Type:* boolean
10097
- - *Default:* will be included by default for AWS CDK >= 1.0.0 < 2.0.0
10098
-
10099
- Warning: NodeJS only.
10100
-
10101
- Install the
10102
-
10103
- ---
10104
-
10105
- ##### `cdkAssertions`<sup>Optional</sup> <a name="cdkAssertions" id="@macedon-technologies/batman.BootcampProjectOptions.property.cdkAssertions"></a>
10106
-
10107
- ```typescript
10108
- public readonly cdkAssertions: boolean;
10109
- ```
10110
-
10111
- - *Type:* boolean
10112
- - *Default:* will be included by default for AWS CDK >= 1.111.0 < 2.0.0
10113
-
10114
- Install the assertions library?
10115
-
10116
- Only needed for CDK 1.x. If using CDK 2.x then
10117
- assertions is already included in 'aws-cdk-lib'
10118
-
10119
- ---
10120
-
10121
10057
  ##### `cdkCliVersion`<sup>Optional</sup> <a name="cdkCliVersion" id="@macedon-technologies/batman.BootcampProjectOptions.property.cdkCliVersion"></a>
10122
10058
 
10123
10059
  ```typescript
@@ -10136,56 +10072,6 @@ option to restrict it to a specific version or version range.
10136
10072
 
10137
10073
  ---
10138
10074
 
10139
- ##### ~~`cdkDependencies`~~<sup>Optional</sup> <a name="cdkDependencies" id="@macedon-technologies/batman.BootcampProjectOptions.property.cdkDependencies"></a>
10140
-
10141
- - *Deprecated:* For CDK 2.x use "deps" instead. (or "peerDeps" if you're building a library)
10142
-
10143
- ```typescript
10144
- public readonly cdkDependencies: string[];
10145
- ```
10146
-
10147
- - *Type:* string[]
10148
-
10149
- Which AWS CDKv1 modules this project requires.
10150
-
10151
- ---
10152
-
10153
- ##### ~~`cdkDependenciesAsDeps`~~<sup>Optional</sup> <a name="cdkDependenciesAsDeps" id="@macedon-technologies/batman.BootcampProjectOptions.property.cdkDependenciesAsDeps"></a>
10154
-
10155
- - *Deprecated:* Not supported in CDK v2.
10156
-
10157
- ```typescript
10158
- public readonly cdkDependenciesAsDeps: boolean;
10159
- ```
10160
-
10161
- - *Type:* boolean
10162
- - *Default:* true
10163
-
10164
- If this is enabled (default), all modules declared in `cdkDependencies` will be also added as normal `dependencies` (as well as `peerDependencies`).
10165
-
10166
- This is to ensure that downstream consumers actually have your CDK dependencies installed
10167
- when using npm < 7 or yarn, where peer dependencies are not automatically installed.
10168
- If this is disabled, `cdkDependencies` will be added to `devDependencies` to ensure
10169
- they are present during development.
10170
-
10171
- Note: this setting only applies to construct library projects
10172
-
10173
- ---
10174
-
10175
- ##### ~~`cdkTestDependencies`~~<sup>Optional</sup> <a name="cdkTestDependencies" id="@macedon-technologies/batman.BootcampProjectOptions.property.cdkTestDependencies"></a>
10176
-
10177
- - *Deprecated:* For CDK 2.x use 'devDeps' (in node.js projects) or 'testDeps' (in java projects) instead
10178
-
10179
- ```typescript
10180
- public readonly cdkTestDependencies: string[];
10181
- ```
10182
-
10183
- - *Type:* string[]
10184
-
10185
- AWS CDK modules required for testing.
10186
-
10187
- ---
10188
-
10189
10075
  ##### `cdkVersionPinning`<sup>Optional</sup> <a name="cdkVersionPinning" id="@macedon-technologies/batman.BootcampProjectOptions.property.cdkVersionPinning"></a>
10190
10076
 
10191
10077
  ```typescript
@@ -10317,6 +10203,19 @@ Common options for all AWS Lambda functions.
10317
10203
 
10318
10204
  ---
10319
10205
 
10206
+ ##### `singletonLambdaAutoDiscover`<sup>Optional</sup> <a name="singletonLambdaAutoDiscover" id="@macedon-technologies/batman.BootcampProjectOptions.property.singletonLambdaAutoDiscover"></a>
10207
+
10208
+ ```typescript
10209
+ public readonly singletonLambdaAutoDiscover: boolean;
10210
+ ```
10211
+
10212
+ - *Type:* boolean
10213
+ - *Default:* true
10214
+
10215
+ Automatically adds an `awscdk.SingletonFunction` for each `.singleton-lambda.ts` handler in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project.
10216
+
10217
+ ---
10218
+
10320
10219
  ##### `dev`<sup>Required</sup> <a name="dev" id="@macedon-technologies/batman.BootcampProjectOptions.property.dev"></a>
10321
10220
 
10322
10221
  ```typescript