projen 0.81.17__py3-none-any.whl → 0.98.25__py3-none-any.whl

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.
@@ -11,7 +11,22 @@ import jsii
11
11
  import publication
12
12
  import typing_extensions
13
13
 
14
- from typeguard import check_type
14
+ import typeguard
15
+ from importlib.metadata import version as _metadata_package_version
16
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
17
+
18
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
19
+ if TYPEGUARD_MAJOR_VERSION <= 2:
20
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
21
+ else:
22
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
23
+ pass
24
+ else:
25
+ if TYPEGUARD_MAJOR_VERSION == 3:
26
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
27
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
28
+ else:
29
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
15
30
 
16
31
  from .._jsii import *
17
32
 
@@ -21,10 +36,12 @@ from .. import (
21
36
  DependencyType as _DependencyType_6b786d68,
22
37
  GitOptions as _GitOptions_a65916a3,
23
38
  GroupRunnerOptions as _GroupRunnerOptions_148c59c1,
39
+ ICompareString as _ICompareString_f119e19c,
24
40
  IgnoreFile as _IgnoreFile_3df2076a,
25
41
  IgnoreFileOptions as _IgnoreFileOptions_86c48b91,
26
42
  JsonFile as _JsonFile_fa8164db,
27
43
  LoggerOptions as _LoggerOptions_eb0f6309,
44
+ ObjectFile as _ObjectFile_a34b4727,
28
45
  Project as _Project_57d89203,
29
46
  ProjectType as _ProjectType_fd80c725,
30
47
  ProjenrcFile as _ProjenrcFile_50432c7e,
@@ -66,6 +83,7 @@ from ..release import (
66
83
  ReleaseProjectOptions as _ReleaseProjectOptions_929803c8,
67
84
  ReleaseTrigger as _ReleaseTrigger_e4dc221f,
68
85
  )
86
+ from .biome_config import BiomeConfiguration as _BiomeConfiguration_dd1a6c83
69
87
 
70
88
 
71
89
  @jsii.enum(jsii_type="projen.javascript.ArrowParens")
@@ -90,6 +108,92 @@ class ArrowParens(enum.Enum):
90
108
  '''
91
109
 
92
110
 
111
+ @jsii.data_type(
112
+ jsii_type="projen.javascript.AuditOptions",
113
+ jsii_struct_bases=[],
114
+ name_mapping={"level": "level", "prod_only": "prodOnly", "run_on": "runOn"},
115
+ )
116
+ class AuditOptions:
117
+ def __init__(
118
+ self,
119
+ *,
120
+ level: typing.Optional[builtins.str] = None,
121
+ prod_only: typing.Optional[builtins.bool] = None,
122
+ run_on: typing.Optional[builtins.str] = None,
123
+ ) -> None:
124
+ '''(experimental) Options for security audit configuration.
125
+
126
+ :param level: (experimental) Minimum vulnerability level to check for during audit. Default: "high"
127
+ :param prod_only: (experimental) Only audit production dependencies. When false, both production and development dependencies are audited. This is recommended as build dependencies can also contain security vulnerabilities. Default: false
128
+ :param run_on: (experimental) When to run the audit task. - "build": Run during every build (default) - "release": Only run during release workflow - "manual": Create the task but don't run it automatically Default: "build"
129
+
130
+ :stability: experimental
131
+ '''
132
+ if __debug__:
133
+ type_hints = typing.get_type_hints(_typecheckingstub__fa4156d4e0a4a5a2efe965ea98ba35b587dcbfe01e1b4d659a959bcf54294ed2)
134
+ check_type(argname="argument level", value=level, expected_type=type_hints["level"])
135
+ check_type(argname="argument prod_only", value=prod_only, expected_type=type_hints["prod_only"])
136
+ check_type(argname="argument run_on", value=run_on, expected_type=type_hints["run_on"])
137
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
138
+ if level is not None:
139
+ self._values["level"] = level
140
+ if prod_only is not None:
141
+ self._values["prod_only"] = prod_only
142
+ if run_on is not None:
143
+ self._values["run_on"] = run_on
144
+
145
+ @builtins.property
146
+ def level(self) -> typing.Optional[builtins.str]:
147
+ '''(experimental) Minimum vulnerability level to check for during audit.
148
+
149
+ :default: "high"
150
+
151
+ :stability: experimental
152
+ '''
153
+ result = self._values.get("level")
154
+ return typing.cast(typing.Optional[builtins.str], result)
155
+
156
+ @builtins.property
157
+ def prod_only(self) -> typing.Optional[builtins.bool]:
158
+ '''(experimental) Only audit production dependencies.
159
+
160
+ When false, both production and development dependencies are audited.
161
+ This is recommended as build dependencies can also contain security vulnerabilities.
162
+
163
+ :default: false
164
+
165
+ :stability: experimental
166
+ '''
167
+ result = self._values.get("prod_only")
168
+ return typing.cast(typing.Optional[builtins.bool], result)
169
+
170
+ @builtins.property
171
+ def run_on(self) -> typing.Optional[builtins.str]:
172
+ '''(experimental) When to run the audit task.
173
+
174
+ - "build": Run during every build (default)
175
+ - "release": Only run during release workflow
176
+ - "manual": Create the task but don't run it automatically
177
+
178
+ :default: "build"
179
+
180
+ :stability: experimental
181
+ '''
182
+ result = self._values.get("run_on")
183
+ return typing.cast(typing.Optional[builtins.str], result)
184
+
185
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
186
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
187
+
188
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
189
+ return not (rhs == self)
190
+
191
+ def __repr__(self) -> str:
192
+ return "AuditOptions(%s)" % ", ".join(
193
+ k + "=" + repr(v) for k, v in self._values.items()
194
+ )
195
+
196
+
93
197
  @jsii.enum(jsii_type="projen.javascript.AutoRelease")
94
198
  class AutoRelease(enum.Enum):
95
199
  '''(experimental) Automatic bump modes.
@@ -109,10 +213,262 @@ class AutoRelease(enum.Enum):
109
213
  '''
110
214
 
111
215
 
216
+ class Biome(
217
+ _Component_2b0ad27f,
218
+ metaclass=jsii.JSIIMeta,
219
+ jsii_type="projen.javascript.Biome",
220
+ ):
221
+ '''(experimental) Biome component.
222
+
223
+ :stability: experimental
224
+ '''
225
+
226
+ def __init__(
227
+ self,
228
+ project: "NodeProject",
229
+ *,
230
+ assist: typing.Optional[builtins.bool] = None,
231
+ biome_config: typing.Optional[typing.Union[_BiomeConfiguration_dd1a6c83, typing.Dict[builtins.str, typing.Any]]] = None,
232
+ formatter: typing.Optional[builtins.bool] = None,
233
+ ignore_generated_files: typing.Optional[builtins.bool] = None,
234
+ linter: typing.Optional[builtins.bool] = None,
235
+ merge_arrays_in_configuration: typing.Optional[builtins.bool] = None,
236
+ version: typing.Optional[builtins.str] = None,
237
+ ) -> None:
238
+ '''
239
+ :param project: -
240
+ :param assist: (experimental) Enable code assist with recommended actions. Default: true
241
+ :param biome_config: (experimental) Full Biome configuration. This configuration dictates the final outcome if value is set. For example, if the linter is disabled at the top-level, it can be enabled with ``biomeConfig.linter.enabled``.
242
+ :param formatter: (experimental) Enable code formatter with recommended settings. Default: true
243
+ :param ignore_generated_files: (experimental) Automatically ignore all generated files. This prevents Biome from trying to format or lint files that are marked as generated, which would fail since generated files are typically read-only. Default: true
244
+ :param linter: (experimental) Enable linting with recommended rules. Default: true
245
+ :param merge_arrays_in_configuration: (experimental) Should arrays be merged or overwritten when creating Biome configuration. By default arrays are merged and duplicate values are removed Default: true
246
+ :param version: (experimental) Version of Biome to use. Default: "^2"
247
+
248
+ :stability: experimental
249
+ '''
250
+ if __debug__:
251
+ type_hints = typing.get_type_hints(_typecheckingstub__9f2264088409136f62af7e2ac4488206c06c3b9a69056be8b9ead20ab895f1bc)
252
+ check_type(argname="argument project", value=project, expected_type=type_hints["project"])
253
+ options = BiomeOptions(
254
+ assist=assist,
255
+ biome_config=biome_config,
256
+ formatter=formatter,
257
+ ignore_generated_files=ignore_generated_files,
258
+ linter=linter,
259
+ merge_arrays_in_configuration=merge_arrays_in_configuration,
260
+ version=version,
261
+ )
262
+
263
+ jsii.create(self.__class__, self, [project, options])
264
+
265
+ @jsii.member(jsii_name="of")
266
+ @builtins.classmethod
267
+ def of(cls, project: _Project_57d89203) -> typing.Optional["Biome"]:
268
+ '''
269
+ :param project: -
270
+
271
+ :stability: experimental
272
+ '''
273
+ if __debug__:
274
+ type_hints = typing.get_type_hints(_typecheckingstub__02197aa3a69f17c43ff359679227be724559aba6ef0881da4e04e9a0bf66d078)
275
+ check_type(argname="argument project", value=project, expected_type=type_hints["project"])
276
+ return typing.cast(typing.Optional["Biome"], jsii.sinvoke(cls, "of", [project]))
277
+
278
+ @jsii.member(jsii_name="addFilePattern")
279
+ def add_file_pattern(self, pattern: builtins.str) -> None:
280
+ '''
281
+ :param pattern: -
282
+
283
+ :stability: experimental
284
+ '''
285
+ if __debug__:
286
+ type_hints = typing.get_type_hints(_typecheckingstub__5609a4432d207b19ee177e477fdf5e275031b8ec1346b00ac4bbfdf93f688757)
287
+ check_type(argname="argument pattern", value=pattern, expected_type=type_hints["pattern"])
288
+ return typing.cast(None, jsii.invoke(self, "addFilePattern", [pattern]))
289
+
290
+ @builtins.property
291
+ @jsii.member(jsii_name="file")
292
+ def file(self) -> _JsonFile_fa8164db:
293
+ '''(experimental) Biome configuration file content.
294
+
295
+ :stability: experimental
296
+ '''
297
+ return typing.cast(_JsonFile_fa8164db, jsii.get(self, "file"))
298
+
299
+ @builtins.property
300
+ @jsii.member(jsii_name="task")
301
+ def task(self) -> _Task_9fa875b6:
302
+ '''(experimental) Biome task.
303
+
304
+ :stability: experimental
305
+ '''
306
+ return typing.cast(_Task_9fa875b6, jsii.get(self, "task"))
307
+
308
+
309
+ @jsii.data_type(
310
+ jsii_type="projen.javascript.BiomeOptions",
311
+ jsii_struct_bases=[],
312
+ name_mapping={
313
+ "assist": "assist",
314
+ "biome_config": "biomeConfig",
315
+ "formatter": "formatter",
316
+ "ignore_generated_files": "ignoreGeneratedFiles",
317
+ "linter": "linter",
318
+ "merge_arrays_in_configuration": "mergeArraysInConfiguration",
319
+ "version": "version",
320
+ },
321
+ )
322
+ class BiomeOptions:
323
+ def __init__(
324
+ self,
325
+ *,
326
+ assist: typing.Optional[builtins.bool] = None,
327
+ biome_config: typing.Optional[typing.Union[_BiomeConfiguration_dd1a6c83, typing.Dict[builtins.str, typing.Any]]] = None,
328
+ formatter: typing.Optional[builtins.bool] = None,
329
+ ignore_generated_files: typing.Optional[builtins.bool] = None,
330
+ linter: typing.Optional[builtins.bool] = None,
331
+ merge_arrays_in_configuration: typing.Optional[builtins.bool] = None,
332
+ version: typing.Optional[builtins.str] = None,
333
+ ) -> None:
334
+ '''
335
+ :param assist: (experimental) Enable code assist with recommended actions. Default: true
336
+ :param biome_config: (experimental) Full Biome configuration. This configuration dictates the final outcome if value is set. For example, if the linter is disabled at the top-level, it can be enabled with ``biomeConfig.linter.enabled``.
337
+ :param formatter: (experimental) Enable code formatter with recommended settings. Default: true
338
+ :param ignore_generated_files: (experimental) Automatically ignore all generated files. This prevents Biome from trying to format or lint files that are marked as generated, which would fail since generated files are typically read-only. Default: true
339
+ :param linter: (experimental) Enable linting with recommended rules. Default: true
340
+ :param merge_arrays_in_configuration: (experimental) Should arrays be merged or overwritten when creating Biome configuration. By default arrays are merged and duplicate values are removed Default: true
341
+ :param version: (experimental) Version of Biome to use. Default: "^2"
342
+
343
+ :stability: experimental
344
+ '''
345
+ if isinstance(biome_config, dict):
346
+ biome_config = _BiomeConfiguration_dd1a6c83(**biome_config)
347
+ if __debug__:
348
+ type_hints = typing.get_type_hints(_typecheckingstub__b53a2988afa9afc23bda2fe96e2de8ffaff18ab919e00b69a6c8d3d229f3dcc1)
349
+ check_type(argname="argument assist", value=assist, expected_type=type_hints["assist"])
350
+ check_type(argname="argument biome_config", value=biome_config, expected_type=type_hints["biome_config"])
351
+ check_type(argname="argument formatter", value=formatter, expected_type=type_hints["formatter"])
352
+ check_type(argname="argument ignore_generated_files", value=ignore_generated_files, expected_type=type_hints["ignore_generated_files"])
353
+ check_type(argname="argument linter", value=linter, expected_type=type_hints["linter"])
354
+ check_type(argname="argument merge_arrays_in_configuration", value=merge_arrays_in_configuration, expected_type=type_hints["merge_arrays_in_configuration"])
355
+ check_type(argname="argument version", value=version, expected_type=type_hints["version"])
356
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
357
+ if assist is not None:
358
+ self._values["assist"] = assist
359
+ if biome_config is not None:
360
+ self._values["biome_config"] = biome_config
361
+ if formatter is not None:
362
+ self._values["formatter"] = formatter
363
+ if ignore_generated_files is not None:
364
+ self._values["ignore_generated_files"] = ignore_generated_files
365
+ if linter is not None:
366
+ self._values["linter"] = linter
367
+ if merge_arrays_in_configuration is not None:
368
+ self._values["merge_arrays_in_configuration"] = merge_arrays_in_configuration
369
+ if version is not None:
370
+ self._values["version"] = version
371
+
372
+ @builtins.property
373
+ def assist(self) -> typing.Optional[builtins.bool]:
374
+ '''(experimental) Enable code assist with recommended actions.
375
+
376
+ :default: true
377
+
378
+ :stability: experimental
379
+ '''
380
+ result = self._values.get("assist")
381
+ return typing.cast(typing.Optional[builtins.bool], result)
382
+
383
+ @builtins.property
384
+ def biome_config(self) -> typing.Optional[_BiomeConfiguration_dd1a6c83]:
385
+ '''(experimental) Full Biome configuration.
386
+
387
+ This configuration dictates the final outcome if value is set.
388
+ For example, if the linter is disabled at the top-level, it can be enabled with ``biomeConfig.linter.enabled``.
389
+
390
+ :stability: experimental
391
+ '''
392
+ result = self._values.get("biome_config")
393
+ return typing.cast(typing.Optional[_BiomeConfiguration_dd1a6c83], result)
394
+
395
+ @builtins.property
396
+ def formatter(self) -> typing.Optional[builtins.bool]:
397
+ '''(experimental) Enable code formatter with recommended settings.
398
+
399
+ :default: true
400
+
401
+ :stability: experimental
402
+ '''
403
+ result = self._values.get("formatter")
404
+ return typing.cast(typing.Optional[builtins.bool], result)
405
+
406
+ @builtins.property
407
+ def ignore_generated_files(self) -> typing.Optional[builtins.bool]:
408
+ '''(experimental) Automatically ignore all generated files.
409
+
410
+ This prevents Biome from trying to format or lint files that are marked as generated,
411
+ which would fail since generated files are typically read-only.
412
+
413
+ :default: true
414
+
415
+ :stability: experimental
416
+ '''
417
+ result = self._values.get("ignore_generated_files")
418
+ return typing.cast(typing.Optional[builtins.bool], result)
419
+
420
+ @builtins.property
421
+ def linter(self) -> typing.Optional[builtins.bool]:
422
+ '''(experimental) Enable linting with recommended rules.
423
+
424
+ :default: true
425
+
426
+ :stability: experimental
427
+ '''
428
+ result = self._values.get("linter")
429
+ return typing.cast(typing.Optional[builtins.bool], result)
430
+
431
+ @builtins.property
432
+ def merge_arrays_in_configuration(self) -> typing.Optional[builtins.bool]:
433
+ '''(experimental) Should arrays be merged or overwritten when creating Biome configuration.
434
+
435
+ By default arrays are merged and duplicate values are removed
436
+
437
+ :default: true
438
+
439
+ :stability: experimental
440
+ '''
441
+ result = self._values.get("merge_arrays_in_configuration")
442
+ return typing.cast(typing.Optional[builtins.bool], result)
443
+
444
+ @builtins.property
445
+ def version(self) -> typing.Optional[builtins.str]:
446
+ '''(experimental) Version of Biome to use.
447
+
448
+ :default: "^2"
449
+
450
+ :stability: experimental
451
+ '''
452
+ result = self._values.get("version")
453
+ return typing.cast(typing.Optional[builtins.str], result)
454
+
455
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
456
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
457
+
458
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
459
+ return not (rhs == self)
460
+
461
+ def __repr__(self) -> str:
462
+ return "BiomeOptions(%s)" % ", ".join(
463
+ k + "=" + repr(v) for k, v in self._values.items()
464
+ )
465
+
466
+
112
467
  @jsii.data_type(
113
468
  jsii_type="projen.javascript.BuildWorkflowOptions",
114
469
  jsii_struct_bases=[_BuildWorkflowCommonOptions_7e3d5c39],
115
470
  name_mapping={
471
+ "env": "env",
116
472
  "name": "name",
117
473
  "permissions": "permissions",
118
474
  "pre_build_steps": "preBuildSteps",
@@ -124,6 +480,7 @@ class BuildWorkflowOptions(_BuildWorkflowCommonOptions_7e3d5c39):
124
480
  def __init__(
125
481
  self,
126
482
  *,
483
+ env: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
127
484
  name: typing.Optional[builtins.str] = None,
128
485
  permissions: typing.Optional[typing.Union[_JobPermissions_3b5b53dc, typing.Dict[builtins.str, typing.Any]]] = None,
129
486
  pre_build_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -132,6 +489,7 @@ class BuildWorkflowOptions(_BuildWorkflowCommonOptions_7e3d5c39):
132
489
  ) -> None:
133
490
  '''(experimental) Build workflow options for NodeProject.
134
491
 
492
+ :param env: (experimental) Build environment variables. Default: {}
135
493
  :param name: (experimental) Name of the buildfile (e.g. "build" becomes "build.yml"). Default: "build"
136
494
  :param permissions: (experimental) Permissions granted to the build job To limit job permissions for ``contents``, the desired permissions have to be explicitly set, e.g.: ``{ contents: JobPermission.NONE }``. Default: ``{ contents: JobPermission.WRITE }``
137
495
  :param pre_build_steps: (experimental) Steps to execute before the build. Default: []
@@ -146,12 +504,15 @@ class BuildWorkflowOptions(_BuildWorkflowCommonOptions_7e3d5c39):
146
504
  workflow_triggers = _Triggers_e9ae7617(**workflow_triggers)
147
505
  if __debug__:
148
506
  type_hints = typing.get_type_hints(_typecheckingstub__12c3595783c38c358dfa0cc66282771c2ed2020f0770e8379920bb5731b72372)
507
+ check_type(argname="argument env", value=env, expected_type=type_hints["env"])
149
508
  check_type(argname="argument name", value=name, expected_type=type_hints["name"])
150
509
  check_type(argname="argument permissions", value=permissions, expected_type=type_hints["permissions"])
151
510
  check_type(argname="argument pre_build_steps", value=pre_build_steps, expected_type=type_hints["pre_build_steps"])
152
511
  check_type(argname="argument workflow_triggers", value=workflow_triggers, expected_type=type_hints["workflow_triggers"])
153
512
  check_type(argname="argument mutable_build", value=mutable_build, expected_type=type_hints["mutable_build"])
154
513
  self._values: typing.Dict[builtins.str, typing.Any] = {}
514
+ if env is not None:
515
+ self._values["env"] = env
155
516
  if name is not None:
156
517
  self._values["name"] = name
157
518
  if permissions is not None:
@@ -163,6 +524,17 @@ class BuildWorkflowOptions(_BuildWorkflowCommonOptions_7e3d5c39):
163
524
  if mutable_build is not None:
164
525
  self._values["mutable_build"] = mutable_build
165
526
 
527
+ @builtins.property
528
+ def env(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
529
+ '''(experimental) Build environment variables.
530
+
531
+ :default: {}
532
+
533
+ :stability: experimental
534
+ '''
535
+ result = self._values.get("env")
536
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
537
+
166
538
  @builtins.property
167
539
  def name(self) -> typing.Optional[builtins.str]:
168
540
  '''(experimental) Name of the buildfile (e.g. "build" becomes "build.yml").
@@ -465,7 +837,7 @@ class Bundler(
465
837
  :param banner: (experimental) Use this to insert an arbitrary string at the beginning of generated JavaScript files. This is similar to footer which inserts at the end instead of the beginning. This is commonly used to insert comments: Default: - no comments are passed
466
838
  :param charset: (experimental) The charset to use for esbuild's output. By default esbuild's output is ASCII-only. Any non-ASCII characters are escaped using backslash escape sequences. Using escape sequences makes the generated output slightly bigger, and also makes it harder to read. If you would like for esbuild to print the original characters without using escape sequences, use ``Charset.UTF8``. Default: Charset.ASCII
467
839
  :param define: (experimental) Replace global identifiers with constant expressions. For example, ``{ 'process.env.DEBUG': 'true' }``. Another example, ``{ 'process.env.API_KEY': JSON.stringify('xxx-xxxx-xxx') }``. Default: - no replacements are made
468
- :param esbuild_args: (experimental) Build arguments to pass into esbuild. For example, to add the `--log-limit <https://esbuild.github.io/api/#log-limit>`_ flag:: project.bundler.addBundle("./src/hello.ts", { platform: "node", target: "node18", sourcemap: true, format: "esm", esbuildArgs: { "--log-limit": "0", }, }); Default: - no additional esbuild arguments are passed
840
+ :param esbuild_args: (experimental) Build arguments to pass into esbuild. For example, to add the `--log-limit <https://esbuild.github.io/api/#log-limit>`_ flag:: project.bundler.addBundle("./src/hello.ts", { platform: "node", target: "node22", sourcemap: true, format: "esm", esbuildArgs: { "--log-limit": "0", }, }); Default: - no additional esbuild arguments are passed
469
841
  :param executable: (experimental) Mark the output file as executable. Default: false
470
842
  :param footer: (experimental) Use this to insert an arbitrary string at the end of generated JavaScript files. This is similar to banner which inserts at the beginning instead of the end. This is commonly used to insert comments Default: - no comments are passed
471
843
  :param format: (experimental) Output format for the generated JavaScript files. There are currently three possible values that can be configured: ``"iife"``, ``"cjs"``, and ``"esm"``. If not set (``undefined``), esbuild picks an output format for you based on ``platform``: - ``"cjs"`` if ``platform`` is ``"node"`` - ``"iife"`` if ``platform`` is ``"browser"`` - ``"esm"`` if ``platform`` is ``"neutral"`` Note: If making a bundle to run under node with ESM, set ``format`` to ``"esm"`` instead of setting ``platform`` to ``"neutral"``. Default: undefined
@@ -1081,12 +1453,14 @@ class Eslint(
1081
1453
  dirs: typing.Sequence[builtins.str],
1082
1454
  alias_extensions: typing.Optional[typing.Sequence[builtins.str]] = None,
1083
1455
  alias_map: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
1456
+ command_options: typing.Optional[typing.Union["EslintCommandOptions", typing.Dict[builtins.str, typing.Any]]] = None,
1084
1457
  devdirs: typing.Optional[typing.Sequence[builtins.str]] = None,
1085
1458
  file_extensions: typing.Optional[typing.Sequence[builtins.str]] = None,
1086
1459
  ignore_patterns: typing.Optional[typing.Sequence[builtins.str]] = None,
1087
1460
  lint_projen_rc: typing.Optional[builtins.bool] = None,
1088
1461
  lint_projen_rc_file: typing.Optional[builtins.str] = None,
1089
1462
  prettier: typing.Optional[builtins.bool] = None,
1463
+ sort_extends: typing.Optional[_ICompareString_f119e19c] = None,
1090
1464
  ts_always_try_types: typing.Optional[builtins.bool] = None,
1091
1465
  tsconfig_path: typing.Optional[builtins.str] = None,
1092
1466
  yaml: typing.Optional[builtins.bool] = None,
@@ -1096,12 +1470,14 @@ class Eslint(
1096
1470
  :param dirs: (experimental) Files or glob patterns or directories with source files to lint (e.g. [ "src" ]).
1097
1471
  :param alias_extensions: (experimental) Enable import alias for module paths. Default: undefined
1098
1472
  :param alias_map: (experimental) Enable import alias for module paths. Default: undefined
1473
+ :param command_options: (experimental) Options for eslint command executed by eslint task.
1099
1474
  :param devdirs: (experimental) Files or glob patterns or directories with source files that include tests and build tools. These sources are linted but may also import packages from ``devDependencies``. Default: []
1100
1475
  :param file_extensions: (experimental) File types that should be linted (e.g. [ ".js", ".ts" ]). Default: [".ts"]
1101
1476
  :param ignore_patterns: (experimental) List of file patterns that should not be linted, using the same syntax as .gitignore patterns. Default: [ '*.js', '*.d.ts', 'node_modules/', '*.generated.ts', 'coverage' ]
1102
1477
  :param lint_projen_rc: (deprecated) Should we lint .projenrc.js. Default: true
1103
1478
  :param lint_projen_rc_file: (deprecated) Projenrc file to lint. Use empty string to disable. Default: "projenrc.js"
1104
1479
  :param prettier: (experimental) Enable prettier for code formatting. Default: false
1480
+ :param sort_extends: (experimental) The extends array in eslint is order dependent. This option allows to sort the extends array in any way seen fit. Default: - Use known ESLint best practices to place "prettier" plugins at the end of the array
1105
1481
  :param ts_always_try_types: (experimental) Always try to resolve types under ``<root>@types`` directory even it doesn't contain any source code. This prevents ``import/no-unresolved`` eslint errors when importing a ``@types/*`` module that would otherwise remain unresolved. Default: true
1106
1482
  :param tsconfig_path: (experimental) Path to ``tsconfig.json`` which should be used by eslint. Default: "./tsconfig.json"
1107
1483
  :param yaml: (experimental) Write eslint configuration as YAML instead of JSON. Default: false
@@ -1115,12 +1491,14 @@ class Eslint(
1115
1491
  dirs=dirs,
1116
1492
  alias_extensions=alias_extensions,
1117
1493
  alias_map=alias_map,
1494
+ command_options=command_options,
1118
1495
  devdirs=devdirs,
1119
1496
  file_extensions=file_extensions,
1120
1497
  ignore_patterns=ignore_patterns,
1121
1498
  lint_projen_rc=lint_projen_rc,
1122
1499
  lint_projen_rc_file=lint_projen_rc_file,
1123
1500
  prettier=prettier,
1501
+ sort_extends=sort_extends,
1124
1502
  ts_always_try_types=ts_always_try_types,
1125
1503
  tsconfig_path=tsconfig_path,
1126
1504
  yaml=yaml,
@@ -1131,7 +1509,7 @@ class Eslint(
1131
1509
  @jsii.member(jsii_name="of")
1132
1510
  @builtins.classmethod
1133
1511
  def of(cls, project: _Project_57d89203) -> typing.Optional["Eslint"]:
1134
- '''(experimental) Returns the singletone Eslint component of a project or undefined if there is none.
1512
+ '''(experimental) Returns the singleton Eslint component of a project or undefined if there is none.
1135
1513
 
1136
1514
  :param project: -
1137
1515
 
@@ -1199,7 +1577,7 @@ class Eslint(
1199
1577
  :param extends: (experimental) Config(s) to extend in this override.
1200
1578
  :param parser: (experimental) The overridden parser.
1201
1579
  :param plugins: (experimental) ``plugins`` override.
1202
- :param rules: (experimental) The overriden rules.
1580
+ :param rules: (experimental) The overridden rules.
1203
1581
 
1204
1582
  :stability: experimental
1205
1583
  '''
@@ -1271,6 +1649,15 @@ class Eslint(
1271
1649
  '''
1272
1650
  return typing.cast(_Task_9fa875b6, jsii.get(self, "eslintTask"))
1273
1651
 
1652
+ @builtins.property
1653
+ @jsii.member(jsii_name="file")
1654
+ def file(self) -> _ObjectFile_a34b4727:
1655
+ '''(experimental) The underlying config file.
1656
+
1657
+ :stability: experimental
1658
+ '''
1659
+ return typing.cast(_ObjectFile_a34b4727, jsii.get(self, "file"))
1660
+
1274
1661
  @builtins.property
1275
1662
  @jsii.member(jsii_name="ignorePatterns")
1276
1663
  def ignore_patterns(self) -> typing.List[builtins.str]:
@@ -1300,12 +1687,72 @@ class Eslint(
1300
1687
 
1301
1688
  @builtins.property
1302
1689
  @jsii.member(jsii_name="rules")
1303
- def rules(self) -> typing.Mapping[builtins.str, typing.List[typing.Any]]:
1690
+ def rules(self) -> typing.Mapping[builtins.str, typing.Any]:
1304
1691
  '''(experimental) eslint rules.
1305
1692
 
1306
1693
  :stability: experimental
1307
1694
  '''
1308
- return typing.cast(typing.Mapping[builtins.str, typing.List[typing.Any]], jsii.get(self, "rules"))
1695
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "rules"))
1696
+
1697
+
1698
+ @jsii.data_type(
1699
+ jsii_type="projen.javascript.EslintCommandOptions",
1700
+ jsii_struct_bases=[],
1701
+ name_mapping={"extra_args": "extraArgs", "fix": "fix"},
1702
+ )
1703
+ class EslintCommandOptions:
1704
+ def __init__(
1705
+ self,
1706
+ *,
1707
+ extra_args: typing.Optional[typing.Sequence[builtins.str]] = None,
1708
+ fix: typing.Optional[builtins.bool] = None,
1709
+ ) -> None:
1710
+ '''
1711
+ :param extra_args: (experimental) Extra flag arguments to pass to eslint command.
1712
+ :param fix: (experimental) Whether to fix eslint issues when running the eslint task. Default: true
1713
+
1714
+ :stability: experimental
1715
+ '''
1716
+ if __debug__:
1717
+ type_hints = typing.get_type_hints(_typecheckingstub__ab5437a5e5c0bee91b2bed562cbb0dc9e80e748c8ca3251df4c2eb91ea3a4160)
1718
+ check_type(argname="argument extra_args", value=extra_args, expected_type=type_hints["extra_args"])
1719
+ check_type(argname="argument fix", value=fix, expected_type=type_hints["fix"])
1720
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
1721
+ if extra_args is not None:
1722
+ self._values["extra_args"] = extra_args
1723
+ if fix is not None:
1724
+ self._values["fix"] = fix
1725
+
1726
+ @builtins.property
1727
+ def extra_args(self) -> typing.Optional[typing.List[builtins.str]]:
1728
+ '''(experimental) Extra flag arguments to pass to eslint command.
1729
+
1730
+ :stability: experimental
1731
+ '''
1732
+ result = self._values.get("extra_args")
1733
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
1734
+
1735
+ @builtins.property
1736
+ def fix(self) -> typing.Optional[builtins.bool]:
1737
+ '''(experimental) Whether to fix eslint issues when running the eslint task.
1738
+
1739
+ :default: true
1740
+
1741
+ :stability: experimental
1742
+ '''
1743
+ result = self._values.get("fix")
1744
+ return typing.cast(typing.Optional[builtins.bool], result)
1745
+
1746
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1747
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1748
+
1749
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1750
+ return not (rhs == self)
1751
+
1752
+ def __repr__(self) -> str:
1753
+ return "EslintCommandOptions(%s)" % ", ".join(
1754
+ k + "=" + repr(v) for k, v in self._values.items()
1755
+ )
1309
1756
 
1310
1757
 
1311
1758
  @jsii.data_type(
@@ -1315,12 +1762,14 @@ class Eslint(
1315
1762
  "dirs": "dirs",
1316
1763
  "alias_extensions": "aliasExtensions",
1317
1764
  "alias_map": "aliasMap",
1765
+ "command_options": "commandOptions",
1318
1766
  "devdirs": "devdirs",
1319
1767
  "file_extensions": "fileExtensions",
1320
1768
  "ignore_patterns": "ignorePatterns",
1321
1769
  "lint_projen_rc": "lintProjenRc",
1322
1770
  "lint_projen_rc_file": "lintProjenRcFile",
1323
1771
  "prettier": "prettier",
1772
+ "sort_extends": "sortExtends",
1324
1773
  "ts_always_try_types": "tsAlwaysTryTypes",
1325
1774
  "tsconfig_path": "tsconfigPath",
1326
1775
  "yaml": "yaml",
@@ -1333,12 +1782,14 @@ class EslintOptions:
1333
1782
  dirs: typing.Sequence[builtins.str],
1334
1783
  alias_extensions: typing.Optional[typing.Sequence[builtins.str]] = None,
1335
1784
  alias_map: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
1785
+ command_options: typing.Optional[typing.Union[EslintCommandOptions, typing.Dict[builtins.str, typing.Any]]] = None,
1336
1786
  devdirs: typing.Optional[typing.Sequence[builtins.str]] = None,
1337
1787
  file_extensions: typing.Optional[typing.Sequence[builtins.str]] = None,
1338
1788
  ignore_patterns: typing.Optional[typing.Sequence[builtins.str]] = None,
1339
1789
  lint_projen_rc: typing.Optional[builtins.bool] = None,
1340
1790
  lint_projen_rc_file: typing.Optional[builtins.str] = None,
1341
1791
  prettier: typing.Optional[builtins.bool] = None,
1792
+ sort_extends: typing.Optional[_ICompareString_f119e19c] = None,
1342
1793
  ts_always_try_types: typing.Optional[builtins.bool] = None,
1343
1794
  tsconfig_path: typing.Optional[builtins.str] = None,
1344
1795
  yaml: typing.Optional[builtins.bool] = None,
@@ -1347,29 +1798,35 @@ class EslintOptions:
1347
1798
  :param dirs: (experimental) Files or glob patterns or directories with source files to lint (e.g. [ "src" ]).
1348
1799
  :param alias_extensions: (experimental) Enable import alias for module paths. Default: undefined
1349
1800
  :param alias_map: (experimental) Enable import alias for module paths. Default: undefined
1801
+ :param command_options: (experimental) Options for eslint command executed by eslint task.
1350
1802
  :param devdirs: (experimental) Files or glob patterns or directories with source files that include tests and build tools. These sources are linted but may also import packages from ``devDependencies``. Default: []
1351
1803
  :param file_extensions: (experimental) File types that should be linted (e.g. [ ".js", ".ts" ]). Default: [".ts"]
1352
1804
  :param ignore_patterns: (experimental) List of file patterns that should not be linted, using the same syntax as .gitignore patterns. Default: [ '*.js', '*.d.ts', 'node_modules/', '*.generated.ts', 'coverage' ]
1353
1805
  :param lint_projen_rc: (deprecated) Should we lint .projenrc.js. Default: true
1354
1806
  :param lint_projen_rc_file: (deprecated) Projenrc file to lint. Use empty string to disable. Default: "projenrc.js"
1355
1807
  :param prettier: (experimental) Enable prettier for code formatting. Default: false
1808
+ :param sort_extends: (experimental) The extends array in eslint is order dependent. This option allows to sort the extends array in any way seen fit. Default: - Use known ESLint best practices to place "prettier" plugins at the end of the array
1356
1809
  :param ts_always_try_types: (experimental) Always try to resolve types under ``<root>@types`` directory even it doesn't contain any source code. This prevents ``import/no-unresolved`` eslint errors when importing a ``@types/*`` module that would otherwise remain unresolved. Default: true
1357
1810
  :param tsconfig_path: (experimental) Path to ``tsconfig.json`` which should be used by eslint. Default: "./tsconfig.json"
1358
1811
  :param yaml: (experimental) Write eslint configuration as YAML instead of JSON. Default: false
1359
1812
 
1360
1813
  :stability: experimental
1361
1814
  '''
1815
+ if isinstance(command_options, dict):
1816
+ command_options = EslintCommandOptions(**command_options)
1362
1817
  if __debug__:
1363
1818
  type_hints = typing.get_type_hints(_typecheckingstub__26892c968b7bf4d64dd2597bbdabf1f1e9ced92002225a4eedfae6cbe3c22894)
1364
1819
  check_type(argname="argument dirs", value=dirs, expected_type=type_hints["dirs"])
1365
1820
  check_type(argname="argument alias_extensions", value=alias_extensions, expected_type=type_hints["alias_extensions"])
1366
1821
  check_type(argname="argument alias_map", value=alias_map, expected_type=type_hints["alias_map"])
1822
+ check_type(argname="argument command_options", value=command_options, expected_type=type_hints["command_options"])
1367
1823
  check_type(argname="argument devdirs", value=devdirs, expected_type=type_hints["devdirs"])
1368
1824
  check_type(argname="argument file_extensions", value=file_extensions, expected_type=type_hints["file_extensions"])
1369
1825
  check_type(argname="argument ignore_patterns", value=ignore_patterns, expected_type=type_hints["ignore_patterns"])
1370
1826
  check_type(argname="argument lint_projen_rc", value=lint_projen_rc, expected_type=type_hints["lint_projen_rc"])
1371
1827
  check_type(argname="argument lint_projen_rc_file", value=lint_projen_rc_file, expected_type=type_hints["lint_projen_rc_file"])
1372
1828
  check_type(argname="argument prettier", value=prettier, expected_type=type_hints["prettier"])
1829
+ check_type(argname="argument sort_extends", value=sort_extends, expected_type=type_hints["sort_extends"])
1373
1830
  check_type(argname="argument ts_always_try_types", value=ts_always_try_types, expected_type=type_hints["ts_always_try_types"])
1374
1831
  check_type(argname="argument tsconfig_path", value=tsconfig_path, expected_type=type_hints["tsconfig_path"])
1375
1832
  check_type(argname="argument yaml", value=yaml, expected_type=type_hints["yaml"])
@@ -1380,6 +1837,8 @@ class EslintOptions:
1380
1837
  self._values["alias_extensions"] = alias_extensions
1381
1838
  if alias_map is not None:
1382
1839
  self._values["alias_map"] = alias_map
1840
+ if command_options is not None:
1841
+ self._values["command_options"] = command_options
1383
1842
  if devdirs is not None:
1384
1843
  self._values["devdirs"] = devdirs
1385
1844
  if file_extensions is not None:
@@ -1392,6 +1851,8 @@ class EslintOptions:
1392
1851
  self._values["lint_projen_rc_file"] = lint_projen_rc_file
1393
1852
  if prettier is not None:
1394
1853
  self._values["prettier"] = prettier
1854
+ if sort_extends is not None:
1855
+ self._values["sort_extends"] = sort_extends
1395
1856
  if ts_always_try_types is not None:
1396
1857
  self._values["ts_always_try_types"] = ts_always_try_types
1397
1858
  if tsconfig_path is not None:
@@ -1431,6 +1892,15 @@ class EslintOptions:
1431
1892
  result = self._values.get("alias_map")
1432
1893
  return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
1433
1894
 
1895
+ @builtins.property
1896
+ def command_options(self) -> typing.Optional[EslintCommandOptions]:
1897
+ '''(experimental) Options for eslint command executed by eslint task.
1898
+
1899
+ :stability: experimental
1900
+ '''
1901
+ result = self._values.get("command_options")
1902
+ return typing.cast(typing.Optional[EslintCommandOptions], result)
1903
+
1434
1904
  @builtins.property
1435
1905
  def devdirs(self) -> typing.Optional[typing.List[builtins.str]]:
1436
1906
  '''(experimental) Files or glob patterns or directories with source files that include tests and build tools.
@@ -1505,6 +1975,19 @@ class EslintOptions:
1505
1975
  result = self._values.get("prettier")
1506
1976
  return typing.cast(typing.Optional[builtins.bool], result)
1507
1977
 
1978
+ @builtins.property
1979
+ def sort_extends(self) -> typing.Optional[_ICompareString_f119e19c]:
1980
+ '''(experimental) The extends array in eslint is order dependent.
1981
+
1982
+ This option allows to sort the extends array in any way seen fit.
1983
+
1984
+ :default: - Use known ESLint best practices to place "prettier" plugins at the end of the array
1985
+
1986
+ :stability: experimental
1987
+ '''
1988
+ result = self._values.get("sort_extends")
1989
+ return typing.cast(typing.Optional[_ICompareString_f119e19c], result)
1990
+
1508
1991
  @builtins.property
1509
1992
  def ts_always_try_types(self) -> typing.Optional[builtins.bool]:
1510
1993
  '''(experimental) Always try to resolve types under ``<root>@types`` directory even it doesn't contain any source code.
@@ -1582,7 +2065,7 @@ class EslintOverride:
1582
2065
  :param extends: (experimental) Config(s) to extend in this override.
1583
2066
  :param parser: (experimental) The overridden parser.
1584
2067
  :param plugins: (experimental) ``plugins`` override.
1585
- :param rules: (experimental) The overriden rules.
2068
+ :param rules: (experimental) The overridden rules.
1586
2069
 
1587
2070
  :stability: experimental
1588
2071
  '''
@@ -1658,7 +2141,7 @@ class EslintOverride:
1658
2141
 
1659
2142
  @builtins.property
1660
2143
  def rules(self) -> typing.Optional[typing.Mapping[builtins.str, typing.Any]]:
1661
- '''(experimental) The overriden rules.
2144
+ '''(experimental) The overridden rules.
1662
2145
 
1663
2146
  :stability: experimental
1664
2147
  '''
@@ -1817,7 +2300,7 @@ class Jest(
1817
2300
 
1818
2301
  def __init__(
1819
2302
  self,
1820
- project: "NodeProject",
2303
+ scope: _constructs_77d1e7e8.IConstruct,
1821
2304
  *,
1822
2305
  config_file_path: typing.Optional[builtins.str] = None,
1823
2306
  coverage: typing.Optional[builtins.bool] = None,
@@ -1827,19 +2310,21 @@ class Jest(
1827
2310
  jest_config: typing.Optional[typing.Union["JestConfigOptions", typing.Dict[builtins.str, typing.Any]]] = None,
1828
2311
  jest_version: typing.Optional[builtins.str] = None,
1829
2312
  junit_reporting: typing.Optional[builtins.bool] = None,
2313
+ pass_with_no_tests: typing.Optional[builtins.bool] = None,
1830
2314
  preserve_default_reporters: typing.Optional[builtins.bool] = None,
1831
2315
  update_snapshot: typing.Optional["UpdateSnapshot"] = None,
1832
2316
  ) -> None:
1833
2317
  '''
1834
- :param project: -
2318
+ :param scope: -
1835
2319
  :param config_file_path: (experimental) Path to JSON config file for Jest. Default: - No separate config file, jest settings are stored in package.json
1836
2320
  :param coverage: (deprecated) Collect coverage. Deprecated Default: true
1837
2321
  :param coverage_text: (experimental) Include the ``text`` coverage reporter, which means that coverage summary is printed at the end of the jest execution. Default: true
1838
2322
  :param extra_cli_options: (experimental) Additional options to pass to the Jest CLI invocation. Default: - no extra options
1839
2323
  :param ignore_patterns: (deprecated) Defines ``testPathIgnorePatterns`` and ``coveragePathIgnorePatterns``. Default: ["/node_modules/"]
1840
2324
  :param jest_config: (experimental) Jest configuration. Default: - default jest configuration
1841
- :param jest_version: (experimental) The version of jest to use. Note that same version is used as version of ``@types/jest`` and ``ts-jest`` (if Typescript in use), so given version should work also for those. Default: - installs the latest jest version
2325
+ :param jest_version: (experimental) The version of jest to use. Note that same version is used as version of ``@types/jest`` and ``ts-jest`` (if Typescript in use), so given version should work also for those. With Jest 30 ts-jest version 29 is used (if Typescript in use) Default: - installs the latest jest version
1842
2326
  :param junit_reporting: (experimental) Result processing with jest-junit. Output directory is ``test-reports/``. Default: true
2327
+ :param pass_with_no_tests: (experimental) Pass with no tests. Default: - true
1843
2328
  :param preserve_default_reporters: (experimental) Preserve the default Jest reporter when additional reporters are added. Default: true
1844
2329
  :param update_snapshot: (experimental) Whether to update snapshots in task "test" (which is executed in task "build" and build workflows), or create a separate task "test:update" for updating snapshots. Default: - ALWAYS
1845
2330
 
@@ -1847,7 +2332,7 @@ class Jest(
1847
2332
  '''
1848
2333
  if __debug__:
1849
2334
  type_hints = typing.get_type_hints(_typecheckingstub__7f22158e02967239263c228b0eadfa82f5edd4d7b172b8506a5b32bc46ab7738)
1850
- check_type(argname="argument project", value=project, expected_type=type_hints["project"])
2335
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
1851
2336
  options = JestOptions(
1852
2337
  config_file_path=config_file_path,
1853
2338
  coverage=coverage,
@@ -1857,11 +2342,12 @@ class Jest(
1857
2342
  jest_config=jest_config,
1858
2343
  jest_version=jest_version,
1859
2344
  junit_reporting=junit_reporting,
2345
+ pass_with_no_tests=pass_with_no_tests,
1860
2346
  preserve_default_reporters=preserve_default_reporters,
1861
2347
  update_snapshot=update_snapshot,
1862
2348
  )
1863
2349
 
1864
- jsii.create(self.__class__, self, [project, options])
2350
+ jsii.create(self.__class__, self, [scope, options])
1865
2351
 
1866
2352
  @jsii.member(jsii_name="of")
1867
2353
  @builtins.classmethod
@@ -2009,6 +2495,29 @@ class Jest(
2009
2495
  check_type(argname="argument pattern", value=pattern, expected_type=type_hints["pattern"])
2010
2496
  return typing.cast(None, jsii.invoke(self, "addWatchIgnorePattern", [pattern]))
2011
2497
 
2498
+ @jsii.member(jsii_name="discoverTestMatchPatternsForDirs")
2499
+ def discover_test_match_patterns_for_dirs(
2500
+ self,
2501
+ dirs: typing.Sequence[builtins.str],
2502
+ *,
2503
+ file_extension_pattern: typing.Optional[builtins.str] = None,
2504
+ ) -> None:
2505
+ '''(experimental) Build standard test match patterns for a directory.
2506
+
2507
+ :param dirs: The directories to add test matches for. Matches any folder if not specified or an empty array.
2508
+ :param file_extension_pattern: (experimental) The file extension pattern to use. Defaults to "[jt]s?(x)".
2509
+
2510
+ :stability: experimental
2511
+ '''
2512
+ if __debug__:
2513
+ type_hints = typing.get_type_hints(_typecheckingstub__0681a729d70e1f1999defc63f8a0f12400f6e0b609f4fb8dbf7f858c435cd9b1)
2514
+ check_type(argname="argument dirs", value=dirs, expected_type=type_hints["dirs"])
2515
+ options = JestDiscoverTestMatchPatternsForDirsOptions(
2516
+ file_extension_pattern=file_extension_pattern
2517
+ )
2518
+
2519
+ return typing.cast(None, jsii.invoke(self, "discoverTestMatchPatternsForDirs", [dirs, options]))
2520
+
2012
2521
  @builtins.property
2013
2522
  @jsii.member(jsii_name="config")
2014
2523
  def config(self) -> typing.Any:
@@ -2027,6 +2536,14 @@ class Jest(
2027
2536
  '''
2028
2537
  return typing.cast(builtins.str, jsii.get(self, "jestVersion"))
2029
2538
 
2539
+ @builtins.property
2540
+ @jsii.member(jsii_name="project")
2541
+ def project(self) -> "NodeProject":
2542
+ '''
2543
+ :stability: experimental
2544
+ '''
2545
+ return typing.cast("NodeProject", jsii.get(self, "project"))
2546
+
2030
2547
  @builtins.property
2031
2548
  @jsii.member(jsii_name="file")
2032
2549
  def file(self) -> typing.Optional[_JsonFile_fa8164db]:
@@ -2192,7 +2709,7 @@ class JestConfigOptions:
2192
2709
  :param collect_coverage_from: (experimental) An array of glob patterns indicating a set of files for which coverage information should be collected. Default: - undefined
2193
2710
  :param coverage_directory: (experimental) The directory where Jest should output its coverage files. Default: "coverage"
2194
2711
  :param coverage_path_ignore_patterns: (experimental) An array of regexp pattern strings that are matched against all file paths before executing the test. If the file path matches any of the patterns, coverage information will be skipped Default: "/node_modules/"
2195
- :param coverage_provider: (experimental) Indicates which provider should be used to instrument code for coverage. Allowed values are babel (default) or v8 Default: - "babel"
2712
+ :param coverage_provider: (experimental) Indicates which provider should be used to instrument code for coverage. Allowed values are v8 (default) or babel Default: - "v8"
2196
2713
  :param coverage_reporters: (experimental) A list of reporter names that Jest uses when writing coverage reports. Any istanbul reporter can be used Default: - ["json", "lcov", "text", "clover", "cobertura"]
2197
2714
  :param coverage_threshold: (experimental) Specify the global coverage thresholds. This will be used to configure minimum threshold enforcement for coverage results. Thresholds can be specified as global, as a glob, and as a directory or file path. If thresholds aren't met, jest will fail. Default: - undefined
2198
2715
  :param dependency_extractor: (experimental) This option allows the use of a custom dependency extractor. It must be a node module that exports an object with an extract function Default: - undefined
@@ -2233,7 +2750,7 @@ class JestConfigOptions:
2233
2750
  :param test_environment: (experimental) The test environment that will be used for testing. The default environment in Jest is a browser-like environment through jsdom. If you are building a node service, you can use the node option to use a node-like environment instead. Default: - "jsdom"
2234
2751
  :param test_environment_options: (experimental) Test environment options that will be passed to the testEnvironment. The relevant options depend on the environment. Default: - {}
2235
2752
  :param test_failure_exit_code: (experimental) The exit code Jest returns on test failure. Default: - 1
2236
- :param test_match: (experimental) The glob patterns Jest uses to detect test files. By default it looks for .js, .jsx, .ts and .tsx files inside of **tests** folders, as well as any files with a suffix of .test or .spec (e.g. Component.test.js or Component.spec.js). It will also find files called test.js or spec.js. Default: ['**/**tests**/**/*.[jt]s?(x)', '**/?(*.)+(spec|test).[tj]s?(x)']
2753
+ :param test_match: (experimental) The glob patterns Jest uses to detect test files. By default it looks for .js, .jsx, .ts and .tsx files inside of **tests** folders, as well as any files with a suffix of .test or .spec (e.g. Component.test.js or Component.spec.js). It will also find files called test.js or spec.js. Default: ['**/**tests**/**/*.[jt]s?(x)', '**/*(*.)@(spec|test).[tj]s?(x)']
2237
2754
  :param test_path_ignore_patterns: (experimental) An array of regexp pattern strings that are matched against all test paths before executing the test. If the test path matches any of the patterns, it will be skipped. Default: - ["/node_modules/"]
2238
2755
  :param test_regex: (experimental) The pattern or patterns Jest uses to detect test files. By default it looks for .js, .jsx, .ts and .tsx files inside of **tests** folders, as well as any files with a suffix of .test or .spec (e.g. Component.test.js or Component.spec.js). It will also find files called test.js or spec.js. Default: - (/**tests**/.*|(\\.|/)(test|spec))\\.[jt]sx?$
2239
2756
  :param test_results_processor: (experimental) This option allows the use of a custom results processor. Default: - undefined
@@ -2576,9 +3093,9 @@ class JestConfigOptions:
2576
3093
  def coverage_provider(self) -> typing.Optional[builtins.str]:
2577
3094
  '''(experimental) Indicates which provider should be used to instrument code for coverage.
2578
3095
 
2579
- Allowed values are babel (default) or v8
3096
+ Allowed values are v8 (default) or babel
2580
3097
 
2581
- :default: - "babel"
3098
+ :default: - "v8"
2582
3099
 
2583
3100
  :stability: experimental
2584
3101
  '''
@@ -3117,7 +3634,7 @@ class JestConfigOptions:
3117
3634
  files inside of **tests** folders, as well as any files with a suffix of .test or .spec
3118
3635
  (e.g. Component.test.js or Component.spec.js). It will also find files called test.js or spec.js.
3119
3636
 
3120
- :default: ['**/**tests**/**/*.[jt]s?(x)', '**/?(*.)+(spec|test).[tj]s?(x)']
3637
+ :default: ['**/**tests**/**/*.[jt]s?(x)', '**/*(*.)@(spec|test).[tj]s?(x)']
3121
3638
 
3122
3639
  :stability: experimental
3123
3640
  '''
@@ -3334,6 +3851,53 @@ class JestConfigOptions:
3334
3851
  )
3335
3852
 
3336
3853
 
3854
+ @jsii.data_type(
3855
+ jsii_type="projen.javascript.JestDiscoverTestMatchPatternsForDirsOptions",
3856
+ jsii_struct_bases=[],
3857
+ name_mapping={"file_extension_pattern": "fileExtensionPattern"},
3858
+ )
3859
+ class JestDiscoverTestMatchPatternsForDirsOptions:
3860
+ def __init__(
3861
+ self,
3862
+ *,
3863
+ file_extension_pattern: typing.Optional[builtins.str] = None,
3864
+ ) -> None:
3865
+ '''(experimental) Options for discoverTestMatchPatternsForDirs.
3866
+
3867
+ :param file_extension_pattern: (experimental) The file extension pattern to use. Defaults to "[jt]s?(x)".
3868
+
3869
+ :stability: experimental
3870
+ '''
3871
+ if __debug__:
3872
+ type_hints = typing.get_type_hints(_typecheckingstub__987ab5c64454683ddeb28bad78f44cdd78a2099af6a0e44ff92f50bc40f8e486)
3873
+ check_type(argname="argument file_extension_pattern", value=file_extension_pattern, expected_type=type_hints["file_extension_pattern"])
3874
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
3875
+ if file_extension_pattern is not None:
3876
+ self._values["file_extension_pattern"] = file_extension_pattern
3877
+
3878
+ @builtins.property
3879
+ def file_extension_pattern(self) -> typing.Optional[builtins.str]:
3880
+ '''(experimental) The file extension pattern to use.
3881
+
3882
+ Defaults to "[jt]s?(x)".
3883
+
3884
+ :stability: experimental
3885
+ '''
3886
+ result = self._values.get("file_extension_pattern")
3887
+ return typing.cast(typing.Optional[builtins.str], result)
3888
+
3889
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3890
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3891
+
3892
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3893
+ return not (rhs == self)
3894
+
3895
+ def __repr__(self) -> str:
3896
+ return "JestDiscoverTestMatchPatternsForDirsOptions(%s)" % ", ".join(
3897
+ k + "=" + repr(v) for k, v in self._values.items()
3898
+ )
3899
+
3900
+
3337
3901
  @jsii.data_type(
3338
3902
  jsii_type="projen.javascript.JestOptions",
3339
3903
  jsii_struct_bases=[],
@@ -3346,6 +3910,7 @@ class JestConfigOptions:
3346
3910
  "jest_config": "jestConfig",
3347
3911
  "jest_version": "jestVersion",
3348
3912
  "junit_reporting": "junitReporting",
3913
+ "pass_with_no_tests": "passWithNoTests",
3349
3914
  "preserve_default_reporters": "preserveDefaultReporters",
3350
3915
  "update_snapshot": "updateSnapshot",
3351
3916
  },
@@ -3362,6 +3927,7 @@ class JestOptions:
3362
3927
  jest_config: typing.Optional[typing.Union[JestConfigOptions, typing.Dict[builtins.str, typing.Any]]] = None,
3363
3928
  jest_version: typing.Optional[builtins.str] = None,
3364
3929
  junit_reporting: typing.Optional[builtins.bool] = None,
3930
+ pass_with_no_tests: typing.Optional[builtins.bool] = None,
3365
3931
  preserve_default_reporters: typing.Optional[builtins.bool] = None,
3366
3932
  update_snapshot: typing.Optional["UpdateSnapshot"] = None,
3367
3933
  ) -> None:
@@ -3372,8 +3938,9 @@ class JestOptions:
3372
3938
  :param extra_cli_options: (experimental) Additional options to pass to the Jest CLI invocation. Default: - no extra options
3373
3939
  :param ignore_patterns: (deprecated) Defines ``testPathIgnorePatterns`` and ``coveragePathIgnorePatterns``. Default: ["/node_modules/"]
3374
3940
  :param jest_config: (experimental) Jest configuration. Default: - default jest configuration
3375
- :param jest_version: (experimental) The version of jest to use. Note that same version is used as version of ``@types/jest`` and ``ts-jest`` (if Typescript in use), so given version should work also for those. Default: - installs the latest jest version
3941
+ :param jest_version: (experimental) The version of jest to use. Note that same version is used as version of ``@types/jest`` and ``ts-jest`` (if Typescript in use), so given version should work also for those. With Jest 30 ts-jest version 29 is used (if Typescript in use) Default: - installs the latest jest version
3376
3942
  :param junit_reporting: (experimental) Result processing with jest-junit. Output directory is ``test-reports/``. Default: true
3943
+ :param pass_with_no_tests: (experimental) Pass with no tests. Default: - true
3377
3944
  :param preserve_default_reporters: (experimental) Preserve the default Jest reporter when additional reporters are added. Default: true
3378
3945
  :param update_snapshot: (experimental) Whether to update snapshots in task "test" (which is executed in task "build" and build workflows), or create a separate task "test:update" for updating snapshots. Default: - ALWAYS
3379
3946
 
@@ -3391,6 +3958,7 @@ class JestOptions:
3391
3958
  check_type(argname="argument jest_config", value=jest_config, expected_type=type_hints["jest_config"])
3392
3959
  check_type(argname="argument jest_version", value=jest_version, expected_type=type_hints["jest_version"])
3393
3960
  check_type(argname="argument junit_reporting", value=junit_reporting, expected_type=type_hints["junit_reporting"])
3961
+ check_type(argname="argument pass_with_no_tests", value=pass_with_no_tests, expected_type=type_hints["pass_with_no_tests"])
3394
3962
  check_type(argname="argument preserve_default_reporters", value=preserve_default_reporters, expected_type=type_hints["preserve_default_reporters"])
3395
3963
  check_type(argname="argument update_snapshot", value=update_snapshot, expected_type=type_hints["update_snapshot"])
3396
3964
  self._values: typing.Dict[builtins.str, typing.Any] = {}
@@ -3410,6 +3978,8 @@ class JestOptions:
3410
3978
  self._values["jest_version"] = jest_version
3411
3979
  if junit_reporting is not None:
3412
3980
  self._values["junit_reporting"] = junit_reporting
3981
+ if pass_with_no_tests is not None:
3982
+ self._values["pass_with_no_tests"] = pass_with_no_tests
3413
3983
  if preserve_default_reporters is not None:
3414
3984
  self._values["preserve_default_reporters"] = preserve_default_reporters
3415
3985
  if update_snapshot is not None:
@@ -3493,6 +4063,8 @@ class JestOptions:
3493
4063
 
3494
4064
  Note that same version is used as version of ``@types/jest`` and ``ts-jest`` (if Typescript in use), so given version should work also for those.
3495
4065
 
4066
+ With Jest 30 ts-jest version 29 is used (if Typescript in use)
4067
+
3496
4068
  :default: - installs the latest jest version
3497
4069
 
3498
4070
  :stability: experimental
@@ -3513,6 +4085,17 @@ class JestOptions:
3513
4085
  result = self._values.get("junit_reporting")
3514
4086
  return typing.cast(typing.Optional[builtins.bool], result)
3515
4087
 
4088
+ @builtins.property
4089
+ def pass_with_no_tests(self) -> typing.Optional[builtins.bool]:
4090
+ '''(experimental) Pass with no tests.
4091
+
4092
+ :default: - true
4093
+
4094
+ :stability: experimental
4095
+ '''
4096
+ result = self._values.get("pass_with_no_tests")
4097
+ return typing.cast(typing.Optional[builtins.bool], result)
4098
+
3516
4099
  @builtins.property
3517
4100
  def preserve_default_reporters(self) -> typing.Optional[builtins.bool]:
3518
4101
  '''(experimental) Preserve the default Jest reporter when additional reporters are added.
@@ -3769,6 +4352,7 @@ class NodePackage(
3769
4352
  bugs_email: typing.Optional[builtins.str] = None,
3770
4353
  bugs_url: typing.Optional[builtins.str] = None,
3771
4354
  bundled_deps: typing.Optional[typing.Sequence[builtins.str]] = None,
4355
+ bun_version: typing.Optional[builtins.str] = None,
3772
4356
  code_artifact_options: typing.Optional[typing.Union[CodeArtifactOptions, typing.Dict[builtins.str, typing.Any]]] = None,
3773
4357
  deps: typing.Optional[typing.Sequence[builtins.str]] = None,
3774
4358
  description: typing.Optional[builtins.str] = None,
@@ -3785,6 +4369,7 @@ class NodePackage(
3785
4369
  npm_registry: typing.Optional[builtins.str] = None,
3786
4370
  npm_registry_url: typing.Optional[builtins.str] = None,
3787
4371
  npm_token_secret: typing.Optional[builtins.str] = None,
4372
+ npm_trusted_publishing: typing.Optional[builtins.bool] = None,
3788
4373
  package_manager: typing.Optional["NodePackageManager"] = None,
3789
4374
  package_name: typing.Optional[builtins.str] = None,
3790
4375
  peer_dependency_options: typing.Optional[typing.Union["PeerDependencyOptions", typing.Dict[builtins.str, typing.Any]]] = None,
@@ -3809,6 +4394,7 @@ class NodePackage(
3809
4394
  :param bugs_email: (experimental) The email address to which issues should be reported.
3810
4395
  :param bugs_url: (experimental) The url to your project's issue tracker.
3811
4396
  :param bundled_deps: (experimental) List of dependencies to bundle into this module. These modules will be added both to the ``dependencies`` section and ``bundledDependencies`` section of your ``package.json``. The recommendation is to only specify the module name here (e.g. ``express``). This will behave similar to ``yarn add`` or ``npm install`` in the sense that it will add the module as a dependency to your ``package.json`` file with the latest version (``^``). You can specify semver requirements in the same syntax passed to ``npm i`` or ``yarn add`` (e.g. ``express@^2``) and this will be what you ``package.json`` will eventually include.
4397
+ :param bun_version: (experimental) The version of Bun to use if using Bun as a package manager. Default: "latest"
3812
4398
  :param code_artifact_options: (experimental) Options for npm packages using AWS CodeArtifact. This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact Default: - undefined
3813
4399
  :param deps: (experimental) Runtime dependencies of this module. The recommendation is to only specify the module name here (e.g. ``express``). This will behave similar to ``yarn add`` or ``npm install`` in the sense that it will add the module as a dependency to your ``package.json`` file with the latest version (``^``). You can specify semver requirements in the same syntax passed to ``npm i`` or ``yarn add`` (e.g. ``express@^2``) and this will be what you ``package.json`` will eventually include. Default: []
3814
4400
  :param description: (experimental) The description is just a string that helps people understand the purpose of the package. It can be used when searching for packages in a package manager as well. See https://classic.yarnpkg.com/en/docs/package-json/#toc-description
@@ -3818,18 +4404,19 @@ class NodePackage(
3818
4404
  :param keywords: (experimental) Keywords to include in ``package.json``.
3819
4405
  :param license: (experimental) License's SPDX identifier. See https://github.com/projen/projen/tree/main/license-text for a list of supported licenses. Use the ``licensed`` option if you want to no license to be specified. Default: "Apache-2.0"
3820
4406
  :param licensed: (experimental) Indicates if a license should be added. Default: true
3821
- :param max_node_version: (experimental) Minimum node.js version to require via ``engines`` (inclusive). Default: - no max
3822
- :param min_node_version: (experimental) Minimum Node.js version to require via package.json ``engines`` (inclusive). Default: - no "engines" specified
4407
+ :param max_node_version: (experimental) The maximum node version supported by this package. Most projects should not use this option. The value indicates that the package is incompatible with any newer versions of node. This requirement is enforced via the engines field. You will normally not need to set this option. Consider this option only if your package is known to not function with newer versions of node. Default: - no maximum version is enforced
4408
+ :param min_node_version: (experimental) The minimum node version required by this package to function. Most projects should not use this option. The value indicates that the package is incompatible with any older versions of node. This requirement is enforced via the engines field. You will normally not need to set this option, even if your package is incompatible with EOL versions of node. Consider this option only if your package depends on a specific feature, that is not available in other LTS versions. Setting this option has very high impact on the consumers of your package, as package managers will actively prevent usage with node versions you have marked as incompatible. To change the node version of your CI/CD workflows, use ``workflowNodeVersion``. Default: - no minimum version is enforced
3823
4409
  :param npm_access: (experimental) Access level of the npm package. Default: - for scoped packages (e.g. ``foo@bar``), the default is ``NpmAccess.RESTRICTED``, for non-scoped packages, the default is ``NpmAccess.PUBLIC``.
3824
4410
  :param npm_provenance: (experimental) Should provenance statements be generated when the package is published. A supported package manager is required to publish a package with npm provenance statements and you will need to use a supported CI/CD provider. Note that the projen ``Release`` and ``Publisher`` components are using ``publib`` to publish packages, which is using npm internally and supports provenance statements independently of the package manager used. Default: - true for public packages, false otherwise
3825
4411
  :param npm_registry: (deprecated) The host name of the npm registry to publish to. Cannot be set together with ``npmRegistryUrl``.
3826
4412
  :param npm_registry_url: (experimental) The base URL of the npm package registry. Must be a URL (e.g. start with "https://" or "http://") Default: "https://registry.npmjs.org"
3827
4413
  :param npm_token_secret: (experimental) GitHub secret which contains the NPM token to use when publishing packages. Default: "NPM_TOKEN"
4414
+ :param npm_trusted_publishing: (experimental) Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work. Default: - false
3828
4415
  :param package_manager: (experimental) The Node Package Manager used to execute scripts. Default: NodePackageManager.YARN_CLASSIC
3829
4416
  :param package_name: (experimental) The "name" in package.json. Default: - defaults to project name
3830
4417
  :param peer_dependency_options: (experimental) Options for ``peerDeps``.
3831
4418
  :param peer_deps: (experimental) Peer dependencies for this module. Dependencies listed here are required to be installed (and satisfied) by the *consumer* of this library. Using peer dependencies allows you to ensure that only a single module of a certain library exists in the ``node_modules`` tree of your consumers. Note that prior to npm@7, peer dependencies are *not* automatically installed, which means that adding peer dependencies to a library will be a breaking change for your customers. Unless ``peerDependencyOptions.pinnedDevDependency`` is disabled (it is enabled by default), projen will automatically add a dev dependency with a pinned version for each peer dependency. This will ensure that you build & test your module against the lowest peer version required. Default: []
3832
- :param pnpm_version: (experimental) The version of PNPM to use if using PNPM as a package manager. Default: "7"
4419
+ :param pnpm_version: (experimental) The version of PNPM to use if using PNPM as a package manager. Default: "9"
3833
4420
  :param repository: (experimental) The repository is the location where the actual code for your package lives. See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository
3834
4421
  :param repository_directory: (experimental) 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.
3835
4422
  :param scoped_packages_options: (experimental) Options for privately hosted scoped packages. Default: - fetch all scoped packages from the public npm registry
@@ -3853,6 +4440,7 @@ class NodePackage(
3853
4440
  bugs_email=bugs_email,
3854
4441
  bugs_url=bugs_url,
3855
4442
  bundled_deps=bundled_deps,
4443
+ bun_version=bun_version,
3856
4444
  code_artifact_options=code_artifact_options,
3857
4445
  deps=deps,
3858
4446
  description=description,
@@ -3869,6 +4457,7 @@ class NodePackage(
3869
4457
  npm_registry=npm_registry,
3870
4458
  npm_registry_url=npm_registry_url,
3871
4459
  npm_token_secret=npm_token_secret,
4460
+ npm_trusted_publishing=npm_trusted_publishing,
3872
4461
  package_manager=package_manager,
3873
4462
  package_name=package_name,
3874
4463
  peer_dependency_options=peer_dependency_options,
@@ -4271,6 +4860,15 @@ class NodePackage(
4271
4860
  '''
4272
4861
  return typing.cast(builtins.str, jsii.get(self, "projenCommand"))
4273
4862
 
4863
+ @builtins.property
4864
+ @jsii.member(jsii_name="bunVersion")
4865
+ def bun_version(self) -> typing.Optional[builtins.str]:
4866
+ '''(experimental) The version of Bun to use if using Bun as a package manager.
4867
+
4868
+ :stability: experimental
4869
+ '''
4870
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "bunVersion"))
4871
+
4274
4872
  @builtins.property
4275
4873
  @jsii.member(jsii_name="codeArtifactOptions")
4276
4874
  def code_artifact_options(self) -> typing.Optional[CodeArtifactOptions]:
@@ -4298,9 +4896,9 @@ class NodePackage(
4298
4896
  @builtins.property
4299
4897
  @jsii.member(jsii_name="maxNodeVersion")
4300
4898
  def max_node_version(self) -> typing.Optional[builtins.str]:
4301
- '''(experimental) Maximum node version required by this package.
4899
+ '''(experimental) Maximum node version supported by this package.
4302
4900
 
4303
- :default: - no maximum.
4901
+ The value indicates the package is incompatible with newer versions.
4304
4902
 
4305
4903
  :stability: experimental
4306
4904
  '''
@@ -4309,9 +4907,9 @@ class NodePackage(
4309
4907
  @builtins.property
4310
4908
  @jsii.member(jsii_name="minNodeVersion")
4311
4909
  def min_node_version(self) -> typing.Optional[builtins.str]:
4312
- '''(experimental) Minimum node.js version required by this package.
4910
+ '''(experimental) The minimum node version required by this package to function.
4313
4911
 
4314
- :default: - no minimum
4912
+ This value indicates the package is incompatible with older versions.
4315
4913
 
4316
4914
  :stability: experimental
4317
4915
  '''
@@ -4331,8 +4929,6 @@ class NodePackage(
4331
4929
  def pnpm_version(self) -> typing.Optional[builtins.str]:
4332
4930
  '''(experimental) The version of PNPM to use if using PNPM as a package manager.
4333
4931
 
4334
- :default: "7"
4335
-
4336
4932
  :stability: experimental
4337
4933
  '''
4338
4934
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "pnpmVersion"))
@@ -4413,6 +5009,7 @@ class NodePackageManager(enum.Enum):
4413
5009
  "bugs_email": "bugsEmail",
4414
5010
  "bugs_url": "bugsUrl",
4415
5011
  "bundled_deps": "bundledDeps",
5012
+ "bun_version": "bunVersion",
4416
5013
  "code_artifact_options": "codeArtifactOptions",
4417
5014
  "deps": "deps",
4418
5015
  "description": "description",
@@ -4429,6 +5026,7 @@ class NodePackageManager(enum.Enum):
4429
5026
  "npm_registry": "npmRegistry",
4430
5027
  "npm_registry_url": "npmRegistryUrl",
4431
5028
  "npm_token_secret": "npmTokenSecret",
5029
+ "npm_trusted_publishing": "npmTrustedPublishing",
4432
5030
  "package_manager": "packageManager",
4433
5031
  "package_name": "packageName",
4434
5032
  "peer_dependency_options": "peerDependencyOptions",
@@ -4456,6 +5054,7 @@ class NodePackageOptions:
4456
5054
  bugs_email: typing.Optional[builtins.str] = None,
4457
5055
  bugs_url: typing.Optional[builtins.str] = None,
4458
5056
  bundled_deps: typing.Optional[typing.Sequence[builtins.str]] = None,
5057
+ bun_version: typing.Optional[builtins.str] = None,
4459
5058
  code_artifact_options: typing.Optional[typing.Union[CodeArtifactOptions, typing.Dict[builtins.str, typing.Any]]] = None,
4460
5059
  deps: typing.Optional[typing.Sequence[builtins.str]] = None,
4461
5060
  description: typing.Optional[builtins.str] = None,
@@ -4472,6 +5071,7 @@ class NodePackageOptions:
4472
5071
  npm_registry: typing.Optional[builtins.str] = None,
4473
5072
  npm_registry_url: typing.Optional[builtins.str] = None,
4474
5073
  npm_token_secret: typing.Optional[builtins.str] = None,
5074
+ npm_trusted_publishing: typing.Optional[builtins.bool] = None,
4475
5075
  package_manager: typing.Optional[NodePackageManager] = None,
4476
5076
  package_name: typing.Optional[builtins.str] = None,
4477
5077
  peer_dependency_options: typing.Optional[typing.Union["PeerDependencyOptions", typing.Dict[builtins.str, typing.Any]]] = None,
@@ -4495,6 +5095,7 @@ class NodePackageOptions:
4495
5095
  :param bugs_email: (experimental) The email address to which issues should be reported.
4496
5096
  :param bugs_url: (experimental) The url to your project's issue tracker.
4497
5097
  :param bundled_deps: (experimental) List of dependencies to bundle into this module. These modules will be added both to the ``dependencies`` section and ``bundledDependencies`` section of your ``package.json``. The recommendation is to only specify the module name here (e.g. ``express``). This will behave similar to ``yarn add`` or ``npm install`` in the sense that it will add the module as a dependency to your ``package.json`` file with the latest version (``^``). You can specify semver requirements in the same syntax passed to ``npm i`` or ``yarn add`` (e.g. ``express@^2``) and this will be what you ``package.json`` will eventually include.
5098
+ :param bun_version: (experimental) The version of Bun to use if using Bun as a package manager. Default: "latest"
4498
5099
  :param code_artifact_options: (experimental) Options for npm packages using AWS CodeArtifact. This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact Default: - undefined
4499
5100
  :param deps: (experimental) Runtime dependencies of this module. The recommendation is to only specify the module name here (e.g. ``express``). This will behave similar to ``yarn add`` or ``npm install`` in the sense that it will add the module as a dependency to your ``package.json`` file with the latest version (``^``). You can specify semver requirements in the same syntax passed to ``npm i`` or ``yarn add`` (e.g. ``express@^2``) and this will be what you ``package.json`` will eventually include. Default: []
4500
5101
  :param description: (experimental) The description is just a string that helps people understand the purpose of the package. It can be used when searching for packages in a package manager as well. See https://classic.yarnpkg.com/en/docs/package-json/#toc-description
@@ -4504,18 +5105,19 @@ class NodePackageOptions:
4504
5105
  :param keywords: (experimental) Keywords to include in ``package.json``.
4505
5106
  :param license: (experimental) License's SPDX identifier. See https://github.com/projen/projen/tree/main/license-text for a list of supported licenses. Use the ``licensed`` option if you want to no license to be specified. Default: "Apache-2.0"
4506
5107
  :param licensed: (experimental) Indicates if a license should be added. Default: true
4507
- :param max_node_version: (experimental) Minimum node.js version to require via ``engines`` (inclusive). Default: - no max
4508
- :param min_node_version: (experimental) Minimum Node.js version to require via package.json ``engines`` (inclusive). Default: - no "engines" specified
5108
+ :param max_node_version: (experimental) The maximum node version supported by this package. Most projects should not use this option. The value indicates that the package is incompatible with any newer versions of node. This requirement is enforced via the engines field. You will normally not need to set this option. Consider this option only if your package is known to not function with newer versions of node. Default: - no maximum version is enforced
5109
+ :param min_node_version: (experimental) The minimum node version required by this package to function. Most projects should not use this option. The value indicates that the package is incompatible with any older versions of node. This requirement is enforced via the engines field. You will normally not need to set this option, even if your package is incompatible with EOL versions of node. Consider this option only if your package depends on a specific feature, that is not available in other LTS versions. Setting this option has very high impact on the consumers of your package, as package managers will actively prevent usage with node versions you have marked as incompatible. To change the node version of your CI/CD workflows, use ``workflowNodeVersion``. Default: - no minimum version is enforced
4509
5110
  :param npm_access: (experimental) Access level of the npm package. Default: - for scoped packages (e.g. ``foo@bar``), the default is ``NpmAccess.RESTRICTED``, for non-scoped packages, the default is ``NpmAccess.PUBLIC``.
4510
5111
  :param npm_provenance: (experimental) Should provenance statements be generated when the package is published. A supported package manager is required to publish a package with npm provenance statements and you will need to use a supported CI/CD provider. Note that the projen ``Release`` and ``Publisher`` components are using ``publib`` to publish packages, which is using npm internally and supports provenance statements independently of the package manager used. Default: - true for public packages, false otherwise
4511
5112
  :param npm_registry: (deprecated) The host name of the npm registry to publish to. Cannot be set together with ``npmRegistryUrl``.
4512
5113
  :param npm_registry_url: (experimental) The base URL of the npm package registry. Must be a URL (e.g. start with "https://" or "http://") Default: "https://registry.npmjs.org"
4513
5114
  :param npm_token_secret: (experimental) GitHub secret which contains the NPM token to use when publishing packages. Default: "NPM_TOKEN"
5115
+ :param npm_trusted_publishing: (experimental) Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work. Default: - false
4514
5116
  :param package_manager: (experimental) The Node Package Manager used to execute scripts. Default: NodePackageManager.YARN_CLASSIC
4515
5117
  :param package_name: (experimental) The "name" in package.json. Default: - defaults to project name
4516
5118
  :param peer_dependency_options: (experimental) Options for ``peerDeps``.
4517
5119
  :param peer_deps: (experimental) Peer dependencies for this module. Dependencies listed here are required to be installed (and satisfied) by the *consumer* of this library. Using peer dependencies allows you to ensure that only a single module of a certain library exists in the ``node_modules`` tree of your consumers. Note that prior to npm@7, peer dependencies are *not* automatically installed, which means that adding peer dependencies to a library will be a breaking change for your customers. Unless ``peerDependencyOptions.pinnedDevDependency`` is disabled (it is enabled by default), projen will automatically add a dev dependency with a pinned version for each peer dependency. This will ensure that you build & test your module against the lowest peer version required. Default: []
4518
- :param pnpm_version: (experimental) The version of PNPM to use if using PNPM as a package manager. Default: "7"
5120
+ :param pnpm_version: (experimental) The version of PNPM to use if using PNPM as a package manager. Default: "9"
4519
5121
  :param repository: (experimental) The repository is the location where the actual code for your package lives. See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository
4520
5122
  :param repository_directory: (experimental) 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.
4521
5123
  :param scoped_packages_options: (experimental) Options for privately hosted scoped packages. Default: - fetch all scoped packages from the public npm registry
@@ -4543,6 +5145,7 @@ class NodePackageOptions:
4543
5145
  check_type(argname="argument bugs_email", value=bugs_email, expected_type=type_hints["bugs_email"])
4544
5146
  check_type(argname="argument bugs_url", value=bugs_url, expected_type=type_hints["bugs_url"])
4545
5147
  check_type(argname="argument bundled_deps", value=bundled_deps, expected_type=type_hints["bundled_deps"])
5148
+ check_type(argname="argument bun_version", value=bun_version, expected_type=type_hints["bun_version"])
4546
5149
  check_type(argname="argument code_artifact_options", value=code_artifact_options, expected_type=type_hints["code_artifact_options"])
4547
5150
  check_type(argname="argument deps", value=deps, expected_type=type_hints["deps"])
4548
5151
  check_type(argname="argument description", value=description, expected_type=type_hints["description"])
@@ -4559,6 +5162,7 @@ class NodePackageOptions:
4559
5162
  check_type(argname="argument npm_registry", value=npm_registry, expected_type=type_hints["npm_registry"])
4560
5163
  check_type(argname="argument npm_registry_url", value=npm_registry_url, expected_type=type_hints["npm_registry_url"])
4561
5164
  check_type(argname="argument npm_token_secret", value=npm_token_secret, expected_type=type_hints["npm_token_secret"])
5165
+ check_type(argname="argument npm_trusted_publishing", value=npm_trusted_publishing, expected_type=type_hints["npm_trusted_publishing"])
4562
5166
  check_type(argname="argument package_manager", value=package_manager, expected_type=type_hints["package_manager"])
4563
5167
  check_type(argname="argument package_name", value=package_name, expected_type=type_hints["package_name"])
4564
5168
  check_type(argname="argument peer_dependency_options", value=peer_dependency_options, expected_type=type_hints["peer_dependency_options"])
@@ -4591,6 +5195,8 @@ class NodePackageOptions:
4591
5195
  self._values["bugs_url"] = bugs_url
4592
5196
  if bundled_deps is not None:
4593
5197
  self._values["bundled_deps"] = bundled_deps
5198
+ if bun_version is not None:
5199
+ self._values["bun_version"] = bun_version
4594
5200
  if code_artifact_options is not None:
4595
5201
  self._values["code_artifact_options"] = code_artifact_options
4596
5202
  if deps is not None:
@@ -4623,6 +5229,8 @@ class NodePackageOptions:
4623
5229
  self._values["npm_registry_url"] = npm_registry_url
4624
5230
  if npm_token_secret is not None:
4625
5231
  self._values["npm_token_secret"] = npm_token_secret
5232
+ if npm_trusted_publishing is not None:
5233
+ self._values["npm_trusted_publishing"] = npm_trusted_publishing
4626
5234
  if package_manager is not None:
4627
5235
  self._values["package_manager"] = package_manager
4628
5236
  if package_name is not None:
@@ -4755,8 +5363,19 @@ class NodePackageOptions:
4755
5363
 
4756
5364
  :stability: experimental
4757
5365
  '''
4758
- result = self._values.get("bundled_deps")
4759
- return typing.cast(typing.Optional[typing.List[builtins.str]], result)
5366
+ result = self._values.get("bundled_deps")
5367
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
5368
+
5369
+ @builtins.property
5370
+ def bun_version(self) -> typing.Optional[builtins.str]:
5371
+ '''(experimental) The version of Bun to use if using Bun as a package manager.
5372
+
5373
+ :default: "latest"
5374
+
5375
+ :stability: experimental
5376
+ '''
5377
+ result = self._values.get("bun_version")
5378
+ return typing.cast(typing.Optional[builtins.str], result)
4760
5379
 
4761
5380
  @builtins.property
4762
5381
  def code_artifact_options(self) -> typing.Optional[CodeArtifactOptions]:
@@ -4892,9 +5511,15 @@ class NodePackageOptions:
4892
5511
 
4893
5512
  @builtins.property
4894
5513
  def max_node_version(self) -> typing.Optional[builtins.str]:
4895
- '''(experimental) Minimum node.js version to require via ``engines`` (inclusive).
5514
+ '''(experimental) The maximum node version supported by this package. Most projects should not use this option.
5515
+
5516
+ The value indicates that the package is incompatible with any newer versions of node.
5517
+ This requirement is enforced via the engines field.
4896
5518
 
4897
- :default: - no max
5519
+ You will normally not need to set this option.
5520
+ Consider this option only if your package is known to not function with newer versions of node.
5521
+
5522
+ :default: - no maximum version is enforced
4898
5523
 
4899
5524
  :stability: experimental
4900
5525
  '''
@@ -4903,9 +5528,19 @@ class NodePackageOptions:
4903
5528
 
4904
5529
  @builtins.property
4905
5530
  def min_node_version(self) -> typing.Optional[builtins.str]:
4906
- '''(experimental) Minimum Node.js version to require via package.json ``engines`` (inclusive).
5531
+ '''(experimental) The minimum node version required by this package to function. Most projects should not use this option.
5532
+
5533
+ The value indicates that the package is incompatible with any older versions of node.
5534
+ This requirement is enforced via the engines field.
4907
5535
 
4908
- :default: - no "engines" specified
5536
+ You will normally not need to set this option, even if your package is incompatible with EOL versions of node.
5537
+ Consider this option only if your package depends on a specific feature, that is not available in other LTS versions.
5538
+ Setting this option has very high impact on the consumers of your package,
5539
+ as package managers will actively prevent usage with node versions you have marked as incompatible.
5540
+
5541
+ To change the node version of your CI/CD workflows, use ``workflowNodeVersion``.
5542
+
5543
+ :default: - no minimum version is enforced
4909
5544
 
4910
5545
  :stability: experimental
4911
5546
  '''
@@ -4982,6 +5617,17 @@ class NodePackageOptions:
4982
5617
  result = self._values.get("npm_token_secret")
4983
5618
  return typing.cast(typing.Optional[builtins.str], result)
4984
5619
 
5620
+ @builtins.property
5621
+ def npm_trusted_publishing(self) -> typing.Optional[builtins.bool]:
5622
+ '''(experimental) Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work.
5623
+
5624
+ :default: - false
5625
+
5626
+ :stability: experimental
5627
+ '''
5628
+ result = self._values.get("npm_trusted_publishing")
5629
+ return typing.cast(typing.Optional[builtins.bool], result)
5630
+
4985
5631
  @builtins.property
4986
5632
  def package_manager(self) -> typing.Optional[NodePackageManager]:
4987
5633
  '''(experimental) The Node Package Manager used to execute scripts.
@@ -5043,7 +5689,7 @@ class NodePackageOptions:
5043
5689
  def pnpm_version(self) -> typing.Optional[builtins.str]:
5044
5690
  '''(experimental) The version of PNPM to use if using PNPM as a package manager.
5045
5691
 
5046
- :default: "7"
5692
+ :default: "9"
5047
5693
 
5048
5694
  :stability: experimental
5049
5695
  '''
@@ -5148,7 +5794,11 @@ class NodeProject(
5148
5794
  *,
5149
5795
  default_release_branch: builtins.str,
5150
5796
  artifacts_directory: typing.Optional[builtins.str] = None,
5797
+ audit_deps: typing.Optional[builtins.bool] = None,
5798
+ audit_deps_options: typing.Optional[typing.Union[AuditOptions, typing.Dict[builtins.str, typing.Any]]] = None,
5151
5799
  auto_approve_upgrades: typing.Optional[builtins.bool] = None,
5800
+ biome: typing.Optional[builtins.bool] = None,
5801
+ biome_options: typing.Optional[typing.Union[BiomeOptions, typing.Dict[builtins.str, typing.Any]]] = None,
5152
5802
  build_workflow: typing.Optional[builtins.bool] = None,
5153
5803
  build_workflow_options: typing.Optional[typing.Union[BuildWorkflowOptions, typing.Dict[builtins.str, typing.Any]]] = None,
5154
5804
  build_workflow_triggers: typing.Optional[typing.Union[_Triggers_e9ae7617, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -5212,6 +5862,7 @@ class NodeProject(
5212
5862
  bugs_email: typing.Optional[builtins.str] = None,
5213
5863
  bugs_url: typing.Optional[builtins.str] = None,
5214
5864
  bundled_deps: typing.Optional[typing.Sequence[builtins.str]] = None,
5865
+ bun_version: typing.Optional[builtins.str] = None,
5215
5866
  code_artifact_options: typing.Optional[typing.Union[CodeArtifactOptions, typing.Dict[builtins.str, typing.Any]]] = None,
5216
5867
  deps: typing.Optional[typing.Sequence[builtins.str]] = None,
5217
5868
  description: typing.Optional[builtins.str] = None,
@@ -5228,6 +5879,7 @@ class NodeProject(
5228
5879
  npm_registry: typing.Optional[builtins.str] = None,
5229
5880
  npm_registry_url: typing.Optional[builtins.str] = None,
5230
5881
  npm_token_secret: typing.Optional[builtins.str] = None,
5882
+ npm_trusted_publishing: typing.Optional[builtins.bool] = None,
5231
5883
  package_manager: typing.Optional[NodePackageManager] = None,
5232
5884
  package_name: typing.Optional[builtins.str] = None,
5233
5885
  peer_dependency_options: typing.Optional[typing.Union["PeerDependencyOptions", typing.Dict[builtins.str, typing.Any]]] = None,
@@ -5239,9 +5891,11 @@ class NodeProject(
5239
5891
  scripts: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
5240
5892
  stability: typing.Optional[builtins.str] = None,
5241
5893
  yarn_berry_options: typing.Optional[typing.Union["YarnBerryOptions", typing.Dict[builtins.str, typing.Any]]] = None,
5894
+ bump_package: typing.Optional[builtins.str] = None,
5242
5895
  jsii_release_version: typing.Optional[builtins.str] = None,
5243
5896
  major_version: typing.Optional[jsii.Number] = None,
5244
5897
  min_major_version: typing.Optional[jsii.Number] = None,
5898
+ next_version_command: typing.Optional[builtins.str] = None,
5245
5899
  npm_dist_tag: typing.Optional[builtins.str] = None,
5246
5900
  post_build_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5247
5901
  prerelease: typing.Optional[builtins.str] = None,
@@ -5249,12 +5903,14 @@ class NodeProject(
5249
5903
  publish_tasks: typing.Optional[builtins.bool] = None,
5250
5904
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
5251
5905
  release_branches: typing.Optional[typing.Mapping[builtins.str, typing.Union[_BranchOptions_13663d08, typing.Dict[builtins.str, typing.Any]]]] = None,
5906
+ release_environment: typing.Optional[builtins.str] = None,
5252
5907
  release_every_commit: typing.Optional[builtins.bool] = None,
5253
5908
  release_failure_issue: typing.Optional[builtins.bool] = None,
5254
5909
  release_failure_issue_label: typing.Optional[builtins.str] = None,
5255
5910
  release_schedule: typing.Optional[builtins.str] = None,
5256
5911
  release_tag_prefix: typing.Optional[builtins.str] = None,
5257
5912
  release_trigger: typing.Optional[_ReleaseTrigger_e4dc221f] = None,
5913
+ release_workflow_env: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
5258
5914
  release_workflow_name: typing.Optional[builtins.str] = None,
5259
5915
  release_workflow_setup_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5260
5916
  versionrc_options: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
@@ -5277,14 +5933,18 @@ class NodeProject(
5277
5933
  '''
5278
5934
  :param default_release_branch: (experimental) The name of the main release branch. Default: "main"
5279
5935
  :param artifacts_directory: (experimental) A directory which will contain build artifacts. Default: "dist"
5936
+ :param audit_deps: (experimental) Run security audit on dependencies. When enabled, creates an "audit" task that checks for known security vulnerabilities in dependencies. By default, runs during every build and checks for "high" severity vulnerabilities or above in all dependencies (including dev dependencies). Default: false
5937
+ :param audit_deps_options: (experimental) Security audit options. Default: - default options
5280
5938
  :param auto_approve_upgrades: (experimental) Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). Throw if set to true but ``autoApproveOptions`` are not defined. Default: - true
5939
+ :param biome: (experimental) Setup Biome. Default: false
5940
+ :param biome_options: (experimental) Biome options. Default: - default options
5281
5941
  :param build_workflow: (experimental) Define a GitHub workflow for building PRs. Default: - true if not a subproject
5282
5942
  :param build_workflow_options: (experimental) Options for PR build workflow.
5283
5943
  :param build_workflow_triggers: (deprecated) Build workflow triggers. Default: "{ pullRequest: {}, workflowDispatch: {} }"
5284
5944
  :param bundler_options: (experimental) Options for ``Bundler``.
5285
5945
  :param check_licenses: (experimental) Configure which licenses should be deemed acceptable for use by dependencies. This setting will cause the build to fail, if any prohibited or not allowed licenses ares encountered. Default: - no license checks are run during the build and all licenses will be accepted
5286
- :param code_cov: (experimental) Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v4 A secret is required for private repos. Configured with ``@codeCovTokenSecret``. Default: false
5287
- :param code_cov_token_secret: (experimental) Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. Default: - if this option is not specified, only public repositories are supported
5946
+ :param code_cov: (experimental) 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``. Default: false
5947
+ :param code_cov_token_secret: (experimental) Define the secret name for a specified https://codecov.io/ token. Default: - OIDC auth is used
5288
5948
  :param copyright_owner: (experimental) License copyright owner. Default: - defaults to the value of authorName or "" if ``authorName`` is undefined.
5289
5949
  :param copyright_period: (experimental) The copyright years to put in the LICENSE file. Default: - current year
5290
5950
  :param dependabot: (experimental) Use dependabot to handle dependency upgrades. Cannot be used in conjunction with ``depsUpgrade``. Default: false
@@ -5311,8 +5971,8 @@ class NodeProject(
5311
5971
  :param release_to_npm: (experimental) Automatically release to npm when new versions are introduced. Default: false
5312
5972
  :param release_workflow: (deprecated) DEPRECATED: renamed to ``release``. Default: - true if not a subproject
5313
5973
  :param workflow_bootstrap_steps: (experimental) Workflow steps to use in order to bootstrap this repo. Default: "yarn install --frozen-lockfile && yarn projen"
5314
- :param workflow_git_identity: (experimental) The git identity to use in workflows. Default: - GitHub Actions
5315
- :param workflow_node_version: (experimental) The node version to use in GitHub workflows. Default: - same as ``minNodeVersion``
5974
+ :param workflow_git_identity: (experimental) The git identity to use in workflows. Default: - default GitHub Actions user
5975
+ :param workflow_node_version: (experimental) The node version used in GitHub Actions workflows. Always use this option if your GitHub Actions workflows require a specific to run. Default: - ``minNodeVersion`` if set, otherwise ``lts/*``.
5316
5976
  :param workflow_package_cache: (experimental) Enable Node.js package cache in GitHub workflows. Default: false
5317
5977
  :param auto_approve_options: (experimental) Enable and configure the 'auto approve' workflow. Default: - auto approve is disabled
5318
5978
  :param auto_merge: (experimental) Enable automatic merging on GitHub. Has no effect if ``github.mergify`` is set to false. Default: true
@@ -5341,6 +6001,7 @@ class NodeProject(
5341
6001
  :param bugs_email: (experimental) The email address to which issues should be reported.
5342
6002
  :param bugs_url: (experimental) The url to your project's issue tracker.
5343
6003
  :param bundled_deps: (experimental) List of dependencies to bundle into this module. These modules will be added both to the ``dependencies`` section and ``bundledDependencies`` section of your ``package.json``. The recommendation is to only specify the module name here (e.g. ``express``). This will behave similar to ``yarn add`` or ``npm install`` in the sense that it will add the module as a dependency to your ``package.json`` file with the latest version (``^``). You can specify semver requirements in the same syntax passed to ``npm i`` or ``yarn add`` (e.g. ``express@^2``) and this will be what you ``package.json`` will eventually include.
6004
+ :param bun_version: (experimental) The version of Bun to use if using Bun as a package manager. Default: "latest"
5344
6005
  :param code_artifact_options: (experimental) Options for npm packages using AWS CodeArtifact. This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact Default: - undefined
5345
6006
  :param deps: (experimental) Runtime dependencies of this module. The recommendation is to only specify the module name here (e.g. ``express``). This will behave similar to ``yarn add`` or ``npm install`` in the sense that it will add the module as a dependency to your ``package.json`` file with the latest version (``^``). You can specify semver requirements in the same syntax passed to ``npm i`` or ``yarn add`` (e.g. ``express@^2``) and this will be what you ``package.json`` will eventually include. Default: []
5346
6007
  :param description: (experimental) The description is just a string that helps people understand the purpose of the package. It can be used when searching for packages in a package manager as well. See https://classic.yarnpkg.com/en/docs/package-json/#toc-description
@@ -5350,27 +6011,30 @@ class NodeProject(
5350
6011
  :param keywords: (experimental) Keywords to include in ``package.json``.
5351
6012
  :param license: (experimental) License's SPDX identifier. See https://github.com/projen/projen/tree/main/license-text for a list of supported licenses. Use the ``licensed`` option if you want to no license to be specified. Default: "Apache-2.0"
5352
6013
  :param licensed: (experimental) Indicates if a license should be added. Default: true
5353
- :param max_node_version: (experimental) Minimum node.js version to require via ``engines`` (inclusive). Default: - no max
5354
- :param min_node_version: (experimental) Minimum Node.js version to require via package.json ``engines`` (inclusive). Default: - no "engines" specified
6014
+ :param max_node_version: (experimental) The maximum node version supported by this package. Most projects should not use this option. The value indicates that the package is incompatible with any newer versions of node. This requirement is enforced via the engines field. You will normally not need to set this option. Consider this option only if your package is known to not function with newer versions of node. Default: - no maximum version is enforced
6015
+ :param min_node_version: (experimental) The minimum node version required by this package to function. Most projects should not use this option. The value indicates that the package is incompatible with any older versions of node. This requirement is enforced via the engines field. You will normally not need to set this option, even if your package is incompatible with EOL versions of node. Consider this option only if your package depends on a specific feature, that is not available in other LTS versions. Setting this option has very high impact on the consumers of your package, as package managers will actively prevent usage with node versions you have marked as incompatible. To change the node version of your CI/CD workflows, use ``workflowNodeVersion``. Default: - no minimum version is enforced
5355
6016
  :param npm_access: (experimental) Access level of the npm package. Default: - for scoped packages (e.g. ``foo@bar``), the default is ``NpmAccess.RESTRICTED``, for non-scoped packages, the default is ``NpmAccess.PUBLIC``.
5356
6017
  :param npm_provenance: (experimental) Should provenance statements be generated when the package is published. A supported package manager is required to publish a package with npm provenance statements and you will need to use a supported CI/CD provider. Note that the projen ``Release`` and ``Publisher`` components are using ``publib`` to publish packages, which is using npm internally and supports provenance statements independently of the package manager used. Default: - true for public packages, false otherwise
5357
6018
  :param npm_registry: (deprecated) The host name of the npm registry to publish to. Cannot be set together with ``npmRegistryUrl``.
5358
6019
  :param npm_registry_url: (experimental) The base URL of the npm package registry. Must be a URL (e.g. start with "https://" or "http://") Default: "https://registry.npmjs.org"
5359
6020
  :param npm_token_secret: (experimental) GitHub secret which contains the NPM token to use when publishing packages. Default: "NPM_TOKEN"
6021
+ :param npm_trusted_publishing: (experimental) Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work. Default: - false
5360
6022
  :param package_manager: (experimental) The Node Package Manager used to execute scripts. Default: NodePackageManager.YARN_CLASSIC
5361
6023
  :param package_name: (experimental) The "name" in package.json. Default: - defaults to project name
5362
6024
  :param peer_dependency_options: (experimental) Options for ``peerDeps``.
5363
6025
  :param peer_deps: (experimental) Peer dependencies for this module. Dependencies listed here are required to be installed (and satisfied) by the *consumer* of this library. Using peer dependencies allows you to ensure that only a single module of a certain library exists in the ``node_modules`` tree of your consumers. Note that prior to npm@7, peer dependencies are *not* automatically installed, which means that adding peer dependencies to a library will be a breaking change for your customers. Unless ``peerDependencyOptions.pinnedDevDependency`` is disabled (it is enabled by default), projen will automatically add a dev dependency with a pinned version for each peer dependency. This will ensure that you build & test your module against the lowest peer version required. Default: []
5364
- :param pnpm_version: (experimental) The version of PNPM to use if using PNPM as a package manager. Default: "7"
6026
+ :param pnpm_version: (experimental) The version of PNPM to use if using PNPM as a package manager. Default: "9"
5365
6027
  :param repository: (experimental) The repository is the location where the actual code for your package lives. See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository
5366
6028
  :param repository_directory: (experimental) 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.
5367
6029
  :param scoped_packages_options: (experimental) Options for privately hosted scoped packages. Default: - fetch all scoped packages from the public npm registry
5368
6030
  :param scripts: (deprecated) npm scripts to include. If a script has the same name as a standard script, the standard script will be overwritten. Also adds the script as a task. Default: {}
5369
6031
  :param stability: (experimental) Package's Stability.
5370
6032
  :param yarn_berry_options: (experimental) Options for Yarn Berry. Default: - Yarn Berry v4 with all default options
6033
+ :param bump_package: (experimental) The ``commit-and-tag-version`` compatible package used to bump the package version, as a dependency string. This can be any compatible package version, including the deprecated ``standard-version@9``. Default: - A recent version of "commit-and-tag-version"
5371
6034
  :param jsii_release_version: (experimental) Version requirement of ``publib`` which is used to publish modules to npm. Default: "latest"
5372
6035
  :param major_version: (experimental) Major version to release from the default branch. If this is specified, we bump the latest version of this major version line. If not specified, we bump the global latest version. Default: - Major version is not enforced.
5373
6036
  :param min_major_version: (experimental) Minimal Major version to release. This can be useful to set to 1, as breaking changes before the 1.x major release are not incrementing the major version number. Can not be set together with ``majorVersion``. Default: - No minimum version is being enforced
6037
+ :param next_version_command: (experimental) A shell command to control the next version to release. If present, this shell command will be run before the bump is executed, and it determines what version to release. It will be executed in the following environment: - Working directory: the project directory. - ``$VERSION``: the current version. Looks like ``1.2.3``. - ``$LATEST_TAG``: the most recent tag. Looks like ``prefix-v1.2.3``, or may be unset. - ``$SUGGESTED_BUMP``: the suggested bump action based on commits. One of ``major|minor|patch|none``. The command should print one of the following to ``stdout``: - Nothing: the next version number will be determined based on commit history. - ``x.y.z``: the next version number will be ``x.y.z``. - ``major|minor|patch``: the next version number will be the current version number with the indicated component bumped. This setting cannot be specified together with ``minMajorVersion``; the invoked script can be used to achieve the effects of ``minMajorVersion``. Default: - The next version will be determined based on the commit history and project settings.
5374
6038
  :param npm_dist_tag: (experimental) The npmDistTag to use when publishing from the default branch. To set the npm dist-tag for release branches, set the ``npmDistTag`` property for each branch. Default: "latest"
5375
6039
  :param post_build_steps: (experimental) Steps to execute after build as part of the release workflow. Default: []
5376
6040
  :param prerelease: (experimental) Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). Default: - normal semantic versions
@@ -5378,15 +6042,17 @@ class NodeProject(
5378
6042
  :param publish_tasks: (experimental) Define publishing tasks that can be executed manually as well as workflows. Normally, publishing only happens within automated workflows. Enable this in order to create a publishing task for each publishing activity. Default: false
5379
6043
  :param releasable_commits: (experimental) Find commits that should be considered releasable Used to decide if a release is required. Default: ReleasableCommits.everyCommit()
5380
6044
  :param release_branches: (experimental) Defines additional release branches. A workflow will be created for each release branch which will publish releases from commits in this branch. Each release branch *must* be assigned a major version number which is used to enforce that versions published from that branch always use that major version. If multiple branches are used, the ``majorVersion`` field must also be provided for the default branch. Default: - no additional branches are used for release. you can use ``addBranch()`` to add additional branches.
6045
+ :param release_environment: (experimental) The GitHub Actions environment used for the release. This can be used to add an explicit approval step to the release or limit who can initiate a release through environment protection rules. When multiple artifacts are released, the environment can be overwritten on a per artifact basis. Default: - no environment used, unless set at the artifact level
5381
6046
  :param release_every_commit: (deprecated) Automatically release new versions every commit to one of branches in ``releaseBranches``. Default: true
5382
6047
  :param release_failure_issue: (experimental) Create a github issue on every failed publishing task. Default: false
5383
6048
  :param release_failure_issue_label: (experimental) The label to apply to issues indicating publish failures. Only applies if ``releaseFailureIssue`` is true. Default: "failed-release"
5384
6049
  :param release_schedule: (deprecated) CRON schedule to trigger new releases. Default: - no scheduled releases
5385
6050
  :param release_tag_prefix: (experimental) Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. Note: this prefix is used to detect the latest tagged version when bumping, so if you change this on a project with an existing version history, you may need to manually tag your latest release with the new prefix. Default: "v"
5386
6051
  :param release_trigger: (experimental) The release trigger to use. Default: - Continuous releases (``ReleaseTrigger.continuous()``)
6052
+ :param release_workflow_env: (experimental) Build environment variables for release workflows. Default: {}
5387
6053
  :param release_workflow_name: (experimental) The name of the default release workflow. Default: "release"
5388
6054
  :param release_workflow_setup_steps: (experimental) A set of workflow steps to execute in order to setup the workflow container.
5389
- :param versionrc_options: (experimental) Custom configuration used when creating changelog with standard-version package. Given values either append to default configuration or overwrite values in it. Default: - standard configuration applicable for GitHub repositories
6055
+ :param versionrc_options: (experimental) Custom configuration used when creating changelog with commit-and-tag-version package. Given values either append to default configuration or overwrite values in it. Default: - standard configuration applicable for GitHub repositories
5390
6056
  :param workflow_container_image: (experimental) Container image to use for GitHub workflows. Default: - default image
5391
6057
  :param workflow_runs_on: (experimental) Github Runner selection labels. Default: ["ubuntu-latest"]
5392
6058
  :param workflow_runs_on_group: (experimental) Github Runner Group selection options.
@@ -5408,7 +6074,11 @@ class NodeProject(
5408
6074
  options = NodeProjectOptions(
5409
6075
  default_release_branch=default_release_branch,
5410
6076
  artifacts_directory=artifacts_directory,
6077
+ audit_deps=audit_deps,
6078
+ audit_deps_options=audit_deps_options,
5411
6079
  auto_approve_upgrades=auto_approve_upgrades,
6080
+ biome=biome,
6081
+ biome_options=biome_options,
5412
6082
  build_workflow=build_workflow,
5413
6083
  build_workflow_options=build_workflow_options,
5414
6084
  build_workflow_triggers=build_workflow_triggers,
@@ -5472,6 +6142,7 @@ class NodeProject(
5472
6142
  bugs_email=bugs_email,
5473
6143
  bugs_url=bugs_url,
5474
6144
  bundled_deps=bundled_deps,
6145
+ bun_version=bun_version,
5475
6146
  code_artifact_options=code_artifact_options,
5476
6147
  deps=deps,
5477
6148
  description=description,
@@ -5488,6 +6159,7 @@ class NodeProject(
5488
6159
  npm_registry=npm_registry,
5489
6160
  npm_registry_url=npm_registry_url,
5490
6161
  npm_token_secret=npm_token_secret,
6162
+ npm_trusted_publishing=npm_trusted_publishing,
5491
6163
  package_manager=package_manager,
5492
6164
  package_name=package_name,
5493
6165
  peer_dependency_options=peer_dependency_options,
@@ -5499,9 +6171,11 @@ class NodeProject(
5499
6171
  scripts=scripts,
5500
6172
  stability=stability,
5501
6173
  yarn_berry_options=yarn_berry_options,
6174
+ bump_package=bump_package,
5502
6175
  jsii_release_version=jsii_release_version,
5503
6176
  major_version=major_version,
5504
6177
  min_major_version=min_major_version,
6178
+ next_version_command=next_version_command,
5505
6179
  npm_dist_tag=npm_dist_tag,
5506
6180
  post_build_steps=post_build_steps,
5507
6181
  prerelease=prerelease,
@@ -5509,12 +6183,14 @@ class NodeProject(
5509
6183
  publish_tasks=publish_tasks,
5510
6184
  releasable_commits=releasable_commits,
5511
6185
  release_branches=release_branches,
6186
+ release_environment=release_environment,
5512
6187
  release_every_commit=release_every_commit,
5513
6188
  release_failure_issue=release_failure_issue,
5514
6189
  release_failure_issue_label=release_failure_issue_label,
5515
6190
  release_schedule=release_schedule,
5516
6191
  release_tag_prefix=release_tag_prefix,
5517
6192
  release_trigger=release_trigger,
6193
+ release_workflow_env=release_workflow_env,
5518
6194
  release_workflow_name=release_workflow_name,
5519
6195
  release_workflow_setup_steps=release_workflow_setup_steps,
5520
6196
  versionrc_options=versionrc_options,
@@ -5895,6 +6571,14 @@ class NodeProject(
5895
6571
  '''
5896
6572
  return typing.cast(typing.Optional[_AutoMerge_f73f9be0], jsii.get(self, "autoMerge"))
5897
6573
 
6574
+ @builtins.property
6575
+ @jsii.member(jsii_name="biome")
6576
+ def biome(self) -> typing.Optional[Biome]:
6577
+ '''
6578
+ :stability: experimental
6579
+ '''
6580
+ return typing.cast(typing.Optional[Biome], jsii.get(self, "biome"))
6581
+
5898
6582
  @builtins.property
5899
6583
  @jsii.member(jsii_name="buildWorkflow")
5900
6584
  def build_workflow(self) -> typing.Optional[_BuildWorkflow_bdd5e6cc]:
@@ -5927,7 +6611,9 @@ class NodeProject(
5927
6611
  @builtins.property
5928
6612
  @jsii.member(jsii_name="maxNodeVersion")
5929
6613
  def max_node_version(self) -> typing.Optional[builtins.str]:
5930
- '''(experimental) Maximum node version required by this package.
6614
+ '''(experimental) Maximum node version supported by this package.
6615
+
6616
+ The value indicates the package is incompatible with newer versions.
5931
6617
 
5932
6618
  :stability: experimental
5933
6619
  '''
@@ -5936,7 +6622,9 @@ class NodeProject(
5936
6622
  @builtins.property
5937
6623
  @jsii.member(jsii_name="minNodeVersion")
5938
6624
  def min_node_version(self) -> typing.Optional[builtins.str]:
5939
- '''(experimental) Minimum node.js version required by this package.
6625
+ '''(experimental) The minimum node version required by this package to function.
6626
+
6627
+ This value indicates the package is incompatible with older versions.
5940
6628
 
5941
6629
  :stability: experimental
5942
6630
  '''
@@ -6047,6 +6735,7 @@ class NodeProject(
6047
6735
  "bugs_email": "bugsEmail",
6048
6736
  "bugs_url": "bugsUrl",
6049
6737
  "bundled_deps": "bundledDeps",
6738
+ "bun_version": "bunVersion",
6050
6739
  "code_artifact_options": "codeArtifactOptions",
6051
6740
  "deps": "deps",
6052
6741
  "description": "description",
@@ -6063,6 +6752,7 @@ class NodeProject(
6063
6752
  "npm_registry": "npmRegistry",
6064
6753
  "npm_registry_url": "npmRegistryUrl",
6065
6754
  "npm_token_secret": "npmTokenSecret",
6755
+ "npm_trusted_publishing": "npmTrustedPublishing",
6066
6756
  "package_manager": "packageManager",
6067
6757
  "package_name": "packageName",
6068
6758
  "peer_dependency_options": "peerDependencyOptions",
@@ -6074,9 +6764,11 @@ class NodeProject(
6074
6764
  "scripts": "scripts",
6075
6765
  "stability": "stability",
6076
6766
  "yarn_berry_options": "yarnBerryOptions",
6767
+ "bump_package": "bumpPackage",
6077
6768
  "jsii_release_version": "jsiiReleaseVersion",
6078
6769
  "major_version": "majorVersion",
6079
6770
  "min_major_version": "minMajorVersion",
6771
+ "next_version_command": "nextVersionCommand",
6080
6772
  "npm_dist_tag": "npmDistTag",
6081
6773
  "post_build_steps": "postBuildSteps",
6082
6774
  "prerelease": "prerelease",
@@ -6084,12 +6776,14 @@ class NodeProject(
6084
6776
  "publish_tasks": "publishTasks",
6085
6777
  "releasable_commits": "releasableCommits",
6086
6778
  "release_branches": "releaseBranches",
6779
+ "release_environment": "releaseEnvironment",
6087
6780
  "release_every_commit": "releaseEveryCommit",
6088
6781
  "release_failure_issue": "releaseFailureIssue",
6089
6782
  "release_failure_issue_label": "releaseFailureIssueLabel",
6090
6783
  "release_schedule": "releaseSchedule",
6091
6784
  "release_tag_prefix": "releaseTagPrefix",
6092
6785
  "release_trigger": "releaseTrigger",
6786
+ "release_workflow_env": "releaseWorkflowEnv",
6093
6787
  "release_workflow_name": "releaseWorkflowName",
6094
6788
  "release_workflow_setup_steps": "releaseWorkflowSetupSteps",
6095
6789
  "versionrc_options": "versionrcOptions",
@@ -6098,7 +6792,11 @@ class NodeProject(
6098
6792
  "workflow_runs_on_group": "workflowRunsOnGroup",
6099
6793
  "default_release_branch": "defaultReleaseBranch",
6100
6794
  "artifacts_directory": "artifactsDirectory",
6795
+ "audit_deps": "auditDeps",
6796
+ "audit_deps_options": "auditDepsOptions",
6101
6797
  "auto_approve_upgrades": "autoApproveUpgrades",
6798
+ "biome": "biome",
6799
+ "biome_options": "biomeOptions",
6102
6800
  "build_workflow": "buildWorkflow",
6103
6801
  "build_workflow_options": "buildWorkflowOptions",
6104
6802
  "build_workflow_triggers": "buildWorkflowTriggers",
@@ -6184,6 +6882,7 @@ class NodeProjectOptions(
6184
6882
  bugs_email: typing.Optional[builtins.str] = None,
6185
6883
  bugs_url: typing.Optional[builtins.str] = None,
6186
6884
  bundled_deps: typing.Optional[typing.Sequence[builtins.str]] = None,
6885
+ bun_version: typing.Optional[builtins.str] = None,
6187
6886
  code_artifact_options: typing.Optional[typing.Union[CodeArtifactOptions, typing.Dict[builtins.str, typing.Any]]] = None,
6188
6887
  deps: typing.Optional[typing.Sequence[builtins.str]] = None,
6189
6888
  description: typing.Optional[builtins.str] = None,
@@ -6200,6 +6899,7 @@ class NodeProjectOptions(
6200
6899
  npm_registry: typing.Optional[builtins.str] = None,
6201
6900
  npm_registry_url: typing.Optional[builtins.str] = None,
6202
6901
  npm_token_secret: typing.Optional[builtins.str] = None,
6902
+ npm_trusted_publishing: typing.Optional[builtins.bool] = None,
6203
6903
  package_manager: typing.Optional[NodePackageManager] = None,
6204
6904
  package_name: typing.Optional[builtins.str] = None,
6205
6905
  peer_dependency_options: typing.Optional[typing.Union["PeerDependencyOptions", typing.Dict[builtins.str, typing.Any]]] = None,
@@ -6211,9 +6911,11 @@ class NodeProjectOptions(
6211
6911
  scripts: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
6212
6912
  stability: typing.Optional[builtins.str] = None,
6213
6913
  yarn_berry_options: typing.Optional[typing.Union["YarnBerryOptions", typing.Dict[builtins.str, typing.Any]]] = None,
6914
+ bump_package: typing.Optional[builtins.str] = None,
6214
6915
  jsii_release_version: typing.Optional[builtins.str] = None,
6215
6916
  major_version: typing.Optional[jsii.Number] = None,
6216
6917
  min_major_version: typing.Optional[jsii.Number] = None,
6918
+ next_version_command: typing.Optional[builtins.str] = None,
6217
6919
  npm_dist_tag: typing.Optional[builtins.str] = None,
6218
6920
  post_build_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
6219
6921
  prerelease: typing.Optional[builtins.str] = None,
@@ -6221,12 +6923,14 @@ class NodeProjectOptions(
6221
6923
  publish_tasks: typing.Optional[builtins.bool] = None,
6222
6924
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
6223
6925
  release_branches: typing.Optional[typing.Mapping[builtins.str, typing.Union[_BranchOptions_13663d08, typing.Dict[builtins.str, typing.Any]]]] = None,
6926
+ release_environment: typing.Optional[builtins.str] = None,
6224
6927
  release_every_commit: typing.Optional[builtins.bool] = None,
6225
6928
  release_failure_issue: typing.Optional[builtins.bool] = None,
6226
6929
  release_failure_issue_label: typing.Optional[builtins.str] = None,
6227
6930
  release_schedule: typing.Optional[builtins.str] = None,
6228
6931
  release_tag_prefix: typing.Optional[builtins.str] = None,
6229
6932
  release_trigger: typing.Optional[_ReleaseTrigger_e4dc221f] = None,
6933
+ release_workflow_env: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
6230
6934
  release_workflow_name: typing.Optional[builtins.str] = None,
6231
6935
  release_workflow_setup_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
6232
6936
  versionrc_options: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
@@ -6235,7 +6939,11 @@ class NodeProjectOptions(
6235
6939
  workflow_runs_on_group: typing.Optional[typing.Union[_GroupRunnerOptions_148c59c1, typing.Dict[builtins.str, typing.Any]]] = None,
6236
6940
  default_release_branch: builtins.str,
6237
6941
  artifacts_directory: typing.Optional[builtins.str] = None,
6942
+ audit_deps: typing.Optional[builtins.bool] = None,
6943
+ audit_deps_options: typing.Optional[typing.Union[AuditOptions, typing.Dict[builtins.str, typing.Any]]] = None,
6238
6944
  auto_approve_upgrades: typing.Optional[builtins.bool] = None,
6945
+ biome: typing.Optional[builtins.bool] = None,
6946
+ biome_options: typing.Optional[typing.Union[BiomeOptions, typing.Dict[builtins.str, typing.Any]]] = None,
6239
6947
  build_workflow: typing.Optional[builtins.bool] = None,
6240
6948
  build_workflow_options: typing.Optional[typing.Union[BuildWorkflowOptions, typing.Dict[builtins.str, typing.Any]]] = None,
6241
6949
  build_workflow_triggers: typing.Optional[typing.Union[_Triggers_e9ae7617, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -6313,6 +7021,7 @@ class NodeProjectOptions(
6313
7021
  :param bugs_email: (experimental) The email address to which issues should be reported.
6314
7022
  :param bugs_url: (experimental) The url to your project's issue tracker.
6315
7023
  :param bundled_deps: (experimental) List of dependencies to bundle into this module. These modules will be added both to the ``dependencies`` section and ``bundledDependencies`` section of your ``package.json``. The recommendation is to only specify the module name here (e.g. ``express``). This will behave similar to ``yarn add`` or ``npm install`` in the sense that it will add the module as a dependency to your ``package.json`` file with the latest version (``^``). You can specify semver requirements in the same syntax passed to ``npm i`` or ``yarn add`` (e.g. ``express@^2``) and this will be what you ``package.json`` will eventually include.
7024
+ :param bun_version: (experimental) The version of Bun to use if using Bun as a package manager. Default: "latest"
6316
7025
  :param code_artifact_options: (experimental) Options for npm packages using AWS CodeArtifact. This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact Default: - undefined
6317
7026
  :param deps: (experimental) Runtime dependencies of this module. The recommendation is to only specify the module name here (e.g. ``express``). This will behave similar to ``yarn add`` or ``npm install`` in the sense that it will add the module as a dependency to your ``package.json`` file with the latest version (``^``). You can specify semver requirements in the same syntax passed to ``npm i`` or ``yarn add`` (e.g. ``express@^2``) and this will be what you ``package.json`` will eventually include. Default: []
6318
7027
  :param description: (experimental) The description is just a string that helps people understand the purpose of the package. It can be used when searching for packages in a package manager as well. See https://classic.yarnpkg.com/en/docs/package-json/#toc-description
@@ -6322,27 +7031,30 @@ class NodeProjectOptions(
6322
7031
  :param keywords: (experimental) Keywords to include in ``package.json``.
6323
7032
  :param license: (experimental) License's SPDX identifier. See https://github.com/projen/projen/tree/main/license-text for a list of supported licenses. Use the ``licensed`` option if you want to no license to be specified. Default: "Apache-2.0"
6324
7033
  :param licensed: (experimental) Indicates if a license should be added. Default: true
6325
- :param max_node_version: (experimental) Minimum node.js version to require via ``engines`` (inclusive). Default: - no max
6326
- :param min_node_version: (experimental) Minimum Node.js version to require via package.json ``engines`` (inclusive). Default: - no "engines" specified
7034
+ :param max_node_version: (experimental) The maximum node version supported by this package. Most projects should not use this option. The value indicates that the package is incompatible with any newer versions of node. This requirement is enforced via the engines field. You will normally not need to set this option. Consider this option only if your package is known to not function with newer versions of node. Default: - no maximum version is enforced
7035
+ :param min_node_version: (experimental) The minimum node version required by this package to function. Most projects should not use this option. The value indicates that the package is incompatible with any older versions of node. This requirement is enforced via the engines field. You will normally not need to set this option, even if your package is incompatible with EOL versions of node. Consider this option only if your package depends on a specific feature, that is not available in other LTS versions. Setting this option has very high impact on the consumers of your package, as package managers will actively prevent usage with node versions you have marked as incompatible. To change the node version of your CI/CD workflows, use ``workflowNodeVersion``. Default: - no minimum version is enforced
6327
7036
  :param npm_access: (experimental) Access level of the npm package. Default: - for scoped packages (e.g. ``foo@bar``), the default is ``NpmAccess.RESTRICTED``, for non-scoped packages, the default is ``NpmAccess.PUBLIC``.
6328
7037
  :param npm_provenance: (experimental) Should provenance statements be generated when the package is published. A supported package manager is required to publish a package with npm provenance statements and you will need to use a supported CI/CD provider. Note that the projen ``Release`` and ``Publisher`` components are using ``publib`` to publish packages, which is using npm internally and supports provenance statements independently of the package manager used. Default: - true for public packages, false otherwise
6329
7038
  :param npm_registry: (deprecated) The host name of the npm registry to publish to. Cannot be set together with ``npmRegistryUrl``.
6330
7039
  :param npm_registry_url: (experimental) The base URL of the npm package registry. Must be a URL (e.g. start with "https://" or "http://") Default: "https://registry.npmjs.org"
6331
7040
  :param npm_token_secret: (experimental) GitHub secret which contains the NPM token to use when publishing packages. Default: "NPM_TOKEN"
7041
+ :param npm_trusted_publishing: (experimental) Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work. Default: - false
6332
7042
  :param package_manager: (experimental) The Node Package Manager used to execute scripts. Default: NodePackageManager.YARN_CLASSIC
6333
7043
  :param package_name: (experimental) The "name" in package.json. Default: - defaults to project name
6334
7044
  :param peer_dependency_options: (experimental) Options for ``peerDeps``.
6335
7045
  :param peer_deps: (experimental) Peer dependencies for this module. Dependencies listed here are required to be installed (and satisfied) by the *consumer* of this library. Using peer dependencies allows you to ensure that only a single module of a certain library exists in the ``node_modules`` tree of your consumers. Note that prior to npm@7, peer dependencies are *not* automatically installed, which means that adding peer dependencies to a library will be a breaking change for your customers. Unless ``peerDependencyOptions.pinnedDevDependency`` is disabled (it is enabled by default), projen will automatically add a dev dependency with a pinned version for each peer dependency. This will ensure that you build & test your module against the lowest peer version required. Default: []
6336
- :param pnpm_version: (experimental) The version of PNPM to use if using PNPM as a package manager. Default: "7"
7046
+ :param pnpm_version: (experimental) The version of PNPM to use if using PNPM as a package manager. Default: "9"
6337
7047
  :param repository: (experimental) The repository is the location where the actual code for your package lives. See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository
6338
7048
  :param repository_directory: (experimental) 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.
6339
7049
  :param scoped_packages_options: (experimental) Options for privately hosted scoped packages. Default: - fetch all scoped packages from the public npm registry
6340
7050
  :param scripts: (deprecated) npm scripts to include. If a script has the same name as a standard script, the standard script will be overwritten. Also adds the script as a task. Default: {}
6341
7051
  :param stability: (experimental) Package's Stability.
6342
7052
  :param yarn_berry_options: (experimental) Options for Yarn Berry. Default: - Yarn Berry v4 with all default options
7053
+ :param bump_package: (experimental) The ``commit-and-tag-version`` compatible package used to bump the package version, as a dependency string. This can be any compatible package version, including the deprecated ``standard-version@9``. Default: - A recent version of "commit-and-tag-version"
6343
7054
  :param jsii_release_version: (experimental) Version requirement of ``publib`` which is used to publish modules to npm. Default: "latest"
6344
7055
  :param major_version: (experimental) Major version to release from the default branch. If this is specified, we bump the latest version of this major version line. If not specified, we bump the global latest version. Default: - Major version is not enforced.
6345
7056
  :param min_major_version: (experimental) Minimal Major version to release. This can be useful to set to 1, as breaking changes before the 1.x major release are not incrementing the major version number. Can not be set together with ``majorVersion``. Default: - No minimum version is being enforced
7057
+ :param next_version_command: (experimental) A shell command to control the next version to release. If present, this shell command will be run before the bump is executed, and it determines what version to release. It will be executed in the following environment: - Working directory: the project directory. - ``$VERSION``: the current version. Looks like ``1.2.3``. - ``$LATEST_TAG``: the most recent tag. Looks like ``prefix-v1.2.3``, or may be unset. - ``$SUGGESTED_BUMP``: the suggested bump action based on commits. One of ``major|minor|patch|none``. The command should print one of the following to ``stdout``: - Nothing: the next version number will be determined based on commit history. - ``x.y.z``: the next version number will be ``x.y.z``. - ``major|minor|patch``: the next version number will be the current version number with the indicated component bumped. This setting cannot be specified together with ``minMajorVersion``; the invoked script can be used to achieve the effects of ``minMajorVersion``. Default: - The next version will be determined based on the commit history and project settings.
6346
7058
  :param npm_dist_tag: (experimental) The npmDistTag to use when publishing from the default branch. To set the npm dist-tag for release branches, set the ``npmDistTag`` property for each branch. Default: "latest"
6347
7059
  :param post_build_steps: (experimental) Steps to execute after build as part of the release workflow. Default: []
6348
7060
  :param prerelease: (experimental) Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). Default: - normal semantic versions
@@ -6350,28 +7062,34 @@ class NodeProjectOptions(
6350
7062
  :param publish_tasks: (experimental) Define publishing tasks that can be executed manually as well as workflows. Normally, publishing only happens within automated workflows. Enable this in order to create a publishing task for each publishing activity. Default: false
6351
7063
  :param releasable_commits: (experimental) Find commits that should be considered releasable Used to decide if a release is required. Default: ReleasableCommits.everyCommit()
6352
7064
  :param release_branches: (experimental) Defines additional release branches. A workflow will be created for each release branch which will publish releases from commits in this branch. Each release branch *must* be assigned a major version number which is used to enforce that versions published from that branch always use that major version. If multiple branches are used, the ``majorVersion`` field must also be provided for the default branch. Default: - no additional branches are used for release. you can use ``addBranch()`` to add additional branches.
7065
+ :param release_environment: (experimental) The GitHub Actions environment used for the release. This can be used to add an explicit approval step to the release or limit who can initiate a release through environment protection rules. When multiple artifacts are released, the environment can be overwritten on a per artifact basis. Default: - no environment used, unless set at the artifact level
6353
7066
  :param release_every_commit: (deprecated) Automatically release new versions every commit to one of branches in ``releaseBranches``. Default: true
6354
7067
  :param release_failure_issue: (experimental) Create a github issue on every failed publishing task. Default: false
6355
7068
  :param release_failure_issue_label: (experimental) The label to apply to issues indicating publish failures. Only applies if ``releaseFailureIssue`` is true. Default: "failed-release"
6356
7069
  :param release_schedule: (deprecated) CRON schedule to trigger new releases. Default: - no scheduled releases
6357
7070
  :param release_tag_prefix: (experimental) Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. Note: this prefix is used to detect the latest tagged version when bumping, so if you change this on a project with an existing version history, you may need to manually tag your latest release with the new prefix. Default: "v"
6358
7071
  :param release_trigger: (experimental) The release trigger to use. Default: - Continuous releases (``ReleaseTrigger.continuous()``)
7072
+ :param release_workflow_env: (experimental) Build environment variables for release workflows. Default: {}
6359
7073
  :param release_workflow_name: (experimental) The name of the default release workflow. Default: "release"
6360
7074
  :param release_workflow_setup_steps: (experimental) A set of workflow steps to execute in order to setup the workflow container.
6361
- :param versionrc_options: (experimental) Custom configuration used when creating changelog with standard-version package. Given values either append to default configuration or overwrite values in it. Default: - standard configuration applicable for GitHub repositories
7075
+ :param versionrc_options: (experimental) Custom configuration used when creating changelog with commit-and-tag-version package. Given values either append to default configuration or overwrite values in it. Default: - standard configuration applicable for GitHub repositories
6362
7076
  :param workflow_container_image: (experimental) Container image to use for GitHub workflows. Default: - default image
6363
7077
  :param workflow_runs_on: (experimental) Github Runner selection labels. Default: ["ubuntu-latest"]
6364
7078
  :param workflow_runs_on_group: (experimental) Github Runner Group selection options.
6365
7079
  :param default_release_branch: (experimental) The name of the main release branch. Default: "main"
6366
7080
  :param artifacts_directory: (experimental) A directory which will contain build artifacts. Default: "dist"
7081
+ :param audit_deps: (experimental) Run security audit on dependencies. When enabled, creates an "audit" task that checks for known security vulnerabilities in dependencies. By default, runs during every build and checks for "high" severity vulnerabilities or above in all dependencies (including dev dependencies). Default: false
7082
+ :param audit_deps_options: (experimental) Security audit options. Default: - default options
6367
7083
  :param auto_approve_upgrades: (experimental) Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). Throw if set to true but ``autoApproveOptions`` are not defined. Default: - true
7084
+ :param biome: (experimental) Setup Biome. Default: false
7085
+ :param biome_options: (experimental) Biome options. Default: - default options
6368
7086
  :param build_workflow: (experimental) Define a GitHub workflow for building PRs. Default: - true if not a subproject
6369
7087
  :param build_workflow_options: (experimental) Options for PR build workflow.
6370
7088
  :param build_workflow_triggers: (deprecated) Build workflow triggers. Default: "{ pullRequest: {}, workflowDispatch: {} }"
6371
7089
  :param bundler_options: (experimental) Options for ``Bundler``.
6372
7090
  :param check_licenses: (experimental) Configure which licenses should be deemed acceptable for use by dependencies. This setting will cause the build to fail, if any prohibited or not allowed licenses ares encountered. Default: - no license checks are run during the build and all licenses will be accepted
6373
- :param code_cov: (experimental) Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v4 A secret is required for private repos. Configured with ``@codeCovTokenSecret``. Default: false
6374
- :param code_cov_token_secret: (experimental) Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. Default: - if this option is not specified, only public repositories are supported
7091
+ :param code_cov: (experimental) 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``. Default: false
7092
+ :param code_cov_token_secret: (experimental) Define the secret name for a specified https://codecov.io/ token. Default: - OIDC auth is used
6375
7093
  :param copyright_owner: (experimental) License copyright owner. Default: - defaults to the value of authorName or "" if ``authorName`` is undefined.
6376
7094
  :param copyright_period: (experimental) The copyright years to put in the LICENSE file. Default: - current year
6377
7095
  :param dependabot: (experimental) Use dependabot to handle dependency upgrades. Cannot be used in conjunction with ``depsUpgrade``. Default: false
@@ -6398,8 +7116,8 @@ class NodeProjectOptions(
6398
7116
  :param release_to_npm: (experimental) Automatically release to npm when new versions are introduced. Default: false
6399
7117
  :param release_workflow: (deprecated) DEPRECATED: renamed to ``release``. Default: - true if not a subproject
6400
7118
  :param workflow_bootstrap_steps: (experimental) Workflow steps to use in order to bootstrap this repo. Default: "yarn install --frozen-lockfile && yarn projen"
6401
- :param workflow_git_identity: (experimental) The git identity to use in workflows. Default: - GitHub Actions
6402
- :param workflow_node_version: (experimental) The node version to use in GitHub workflows. Default: - same as ``minNodeVersion``
7119
+ :param workflow_git_identity: (experimental) The git identity to use in workflows. Default: - default GitHub Actions user
7120
+ :param workflow_node_version: (experimental) The node version used in GitHub Actions workflows. Always use this option if your GitHub Actions workflows require a specific to run. Default: - ``minNodeVersion`` if set, otherwise ``lts/*``.
6403
7121
  :param workflow_package_cache: (experimental) Enable Node.js package cache in GitHub workflows. Default: false
6404
7122
 
6405
7123
  :stability: experimental
@@ -6434,6 +7152,10 @@ class NodeProjectOptions(
6434
7152
  yarn_berry_options = YarnBerryOptions(**yarn_berry_options)
6435
7153
  if isinstance(workflow_runs_on_group, dict):
6436
7154
  workflow_runs_on_group = _GroupRunnerOptions_148c59c1(**workflow_runs_on_group)
7155
+ if isinstance(audit_deps_options, dict):
7156
+ audit_deps_options = AuditOptions(**audit_deps_options)
7157
+ if isinstance(biome_options, dict):
7158
+ biome_options = BiomeOptions(**biome_options)
6437
7159
  if isinstance(build_workflow_options, dict):
6438
7160
  build_workflow_options = BuildWorkflowOptions(**build_workflow_options)
6439
7161
  if isinstance(build_workflow_triggers, dict):
@@ -6497,6 +7219,7 @@ class NodeProjectOptions(
6497
7219
  check_type(argname="argument bugs_email", value=bugs_email, expected_type=type_hints["bugs_email"])
6498
7220
  check_type(argname="argument bugs_url", value=bugs_url, expected_type=type_hints["bugs_url"])
6499
7221
  check_type(argname="argument bundled_deps", value=bundled_deps, expected_type=type_hints["bundled_deps"])
7222
+ check_type(argname="argument bun_version", value=bun_version, expected_type=type_hints["bun_version"])
6500
7223
  check_type(argname="argument code_artifact_options", value=code_artifact_options, expected_type=type_hints["code_artifact_options"])
6501
7224
  check_type(argname="argument deps", value=deps, expected_type=type_hints["deps"])
6502
7225
  check_type(argname="argument description", value=description, expected_type=type_hints["description"])
@@ -6513,6 +7236,7 @@ class NodeProjectOptions(
6513
7236
  check_type(argname="argument npm_registry", value=npm_registry, expected_type=type_hints["npm_registry"])
6514
7237
  check_type(argname="argument npm_registry_url", value=npm_registry_url, expected_type=type_hints["npm_registry_url"])
6515
7238
  check_type(argname="argument npm_token_secret", value=npm_token_secret, expected_type=type_hints["npm_token_secret"])
7239
+ check_type(argname="argument npm_trusted_publishing", value=npm_trusted_publishing, expected_type=type_hints["npm_trusted_publishing"])
6516
7240
  check_type(argname="argument package_manager", value=package_manager, expected_type=type_hints["package_manager"])
6517
7241
  check_type(argname="argument package_name", value=package_name, expected_type=type_hints["package_name"])
6518
7242
  check_type(argname="argument peer_dependency_options", value=peer_dependency_options, expected_type=type_hints["peer_dependency_options"])
@@ -6524,9 +7248,11 @@ class NodeProjectOptions(
6524
7248
  check_type(argname="argument scripts", value=scripts, expected_type=type_hints["scripts"])
6525
7249
  check_type(argname="argument stability", value=stability, expected_type=type_hints["stability"])
6526
7250
  check_type(argname="argument yarn_berry_options", value=yarn_berry_options, expected_type=type_hints["yarn_berry_options"])
7251
+ check_type(argname="argument bump_package", value=bump_package, expected_type=type_hints["bump_package"])
6527
7252
  check_type(argname="argument jsii_release_version", value=jsii_release_version, expected_type=type_hints["jsii_release_version"])
6528
7253
  check_type(argname="argument major_version", value=major_version, expected_type=type_hints["major_version"])
6529
7254
  check_type(argname="argument min_major_version", value=min_major_version, expected_type=type_hints["min_major_version"])
7255
+ check_type(argname="argument next_version_command", value=next_version_command, expected_type=type_hints["next_version_command"])
6530
7256
  check_type(argname="argument npm_dist_tag", value=npm_dist_tag, expected_type=type_hints["npm_dist_tag"])
6531
7257
  check_type(argname="argument post_build_steps", value=post_build_steps, expected_type=type_hints["post_build_steps"])
6532
7258
  check_type(argname="argument prerelease", value=prerelease, expected_type=type_hints["prerelease"])
@@ -6534,12 +7260,14 @@ class NodeProjectOptions(
6534
7260
  check_type(argname="argument publish_tasks", value=publish_tasks, expected_type=type_hints["publish_tasks"])
6535
7261
  check_type(argname="argument releasable_commits", value=releasable_commits, expected_type=type_hints["releasable_commits"])
6536
7262
  check_type(argname="argument release_branches", value=release_branches, expected_type=type_hints["release_branches"])
7263
+ check_type(argname="argument release_environment", value=release_environment, expected_type=type_hints["release_environment"])
6537
7264
  check_type(argname="argument release_every_commit", value=release_every_commit, expected_type=type_hints["release_every_commit"])
6538
7265
  check_type(argname="argument release_failure_issue", value=release_failure_issue, expected_type=type_hints["release_failure_issue"])
6539
7266
  check_type(argname="argument release_failure_issue_label", value=release_failure_issue_label, expected_type=type_hints["release_failure_issue_label"])
6540
7267
  check_type(argname="argument release_schedule", value=release_schedule, expected_type=type_hints["release_schedule"])
6541
7268
  check_type(argname="argument release_tag_prefix", value=release_tag_prefix, expected_type=type_hints["release_tag_prefix"])
6542
7269
  check_type(argname="argument release_trigger", value=release_trigger, expected_type=type_hints["release_trigger"])
7270
+ check_type(argname="argument release_workflow_env", value=release_workflow_env, expected_type=type_hints["release_workflow_env"])
6543
7271
  check_type(argname="argument release_workflow_name", value=release_workflow_name, expected_type=type_hints["release_workflow_name"])
6544
7272
  check_type(argname="argument release_workflow_setup_steps", value=release_workflow_setup_steps, expected_type=type_hints["release_workflow_setup_steps"])
6545
7273
  check_type(argname="argument versionrc_options", value=versionrc_options, expected_type=type_hints["versionrc_options"])
@@ -6548,7 +7276,11 @@ class NodeProjectOptions(
6548
7276
  check_type(argname="argument workflow_runs_on_group", value=workflow_runs_on_group, expected_type=type_hints["workflow_runs_on_group"])
6549
7277
  check_type(argname="argument default_release_branch", value=default_release_branch, expected_type=type_hints["default_release_branch"])
6550
7278
  check_type(argname="argument artifacts_directory", value=artifacts_directory, expected_type=type_hints["artifacts_directory"])
7279
+ check_type(argname="argument audit_deps", value=audit_deps, expected_type=type_hints["audit_deps"])
7280
+ check_type(argname="argument audit_deps_options", value=audit_deps_options, expected_type=type_hints["audit_deps_options"])
6551
7281
  check_type(argname="argument auto_approve_upgrades", value=auto_approve_upgrades, expected_type=type_hints["auto_approve_upgrades"])
7282
+ check_type(argname="argument biome", value=biome, expected_type=type_hints["biome"])
7283
+ check_type(argname="argument biome_options", value=biome_options, expected_type=type_hints["biome_options"])
6552
7284
  check_type(argname="argument build_workflow", value=build_workflow, expected_type=type_hints["build_workflow"])
6553
7285
  check_type(argname="argument build_workflow_options", value=build_workflow_options, expected_type=type_hints["build_workflow_options"])
6554
7286
  check_type(argname="argument build_workflow_triggers", value=build_workflow_triggers, expected_type=type_hints["build_workflow_triggers"])
@@ -6665,6 +7397,8 @@ class NodeProjectOptions(
6665
7397
  self._values["bugs_url"] = bugs_url
6666
7398
  if bundled_deps is not None:
6667
7399
  self._values["bundled_deps"] = bundled_deps
7400
+ if bun_version is not None:
7401
+ self._values["bun_version"] = bun_version
6668
7402
  if code_artifact_options is not None:
6669
7403
  self._values["code_artifact_options"] = code_artifact_options
6670
7404
  if deps is not None:
@@ -6697,6 +7431,8 @@ class NodeProjectOptions(
6697
7431
  self._values["npm_registry_url"] = npm_registry_url
6698
7432
  if npm_token_secret is not None:
6699
7433
  self._values["npm_token_secret"] = npm_token_secret
7434
+ if npm_trusted_publishing is not None:
7435
+ self._values["npm_trusted_publishing"] = npm_trusted_publishing
6700
7436
  if package_manager is not None:
6701
7437
  self._values["package_manager"] = package_manager
6702
7438
  if package_name is not None:
@@ -6719,12 +7455,16 @@ class NodeProjectOptions(
6719
7455
  self._values["stability"] = stability
6720
7456
  if yarn_berry_options is not None:
6721
7457
  self._values["yarn_berry_options"] = yarn_berry_options
7458
+ if bump_package is not None:
7459
+ self._values["bump_package"] = bump_package
6722
7460
  if jsii_release_version is not None:
6723
7461
  self._values["jsii_release_version"] = jsii_release_version
6724
7462
  if major_version is not None:
6725
7463
  self._values["major_version"] = major_version
6726
7464
  if min_major_version is not None:
6727
7465
  self._values["min_major_version"] = min_major_version
7466
+ if next_version_command is not None:
7467
+ self._values["next_version_command"] = next_version_command
6728
7468
  if npm_dist_tag is not None:
6729
7469
  self._values["npm_dist_tag"] = npm_dist_tag
6730
7470
  if post_build_steps is not None:
@@ -6739,6 +7479,8 @@ class NodeProjectOptions(
6739
7479
  self._values["releasable_commits"] = releasable_commits
6740
7480
  if release_branches is not None:
6741
7481
  self._values["release_branches"] = release_branches
7482
+ if release_environment is not None:
7483
+ self._values["release_environment"] = release_environment
6742
7484
  if release_every_commit is not None:
6743
7485
  self._values["release_every_commit"] = release_every_commit
6744
7486
  if release_failure_issue is not None:
@@ -6751,6 +7493,8 @@ class NodeProjectOptions(
6751
7493
  self._values["release_tag_prefix"] = release_tag_prefix
6752
7494
  if release_trigger is not None:
6753
7495
  self._values["release_trigger"] = release_trigger
7496
+ if release_workflow_env is not None:
7497
+ self._values["release_workflow_env"] = release_workflow_env
6754
7498
  if release_workflow_name is not None:
6755
7499
  self._values["release_workflow_name"] = release_workflow_name
6756
7500
  if release_workflow_setup_steps is not None:
@@ -6765,8 +7509,16 @@ class NodeProjectOptions(
6765
7509
  self._values["workflow_runs_on_group"] = workflow_runs_on_group
6766
7510
  if artifacts_directory is not None:
6767
7511
  self._values["artifacts_directory"] = artifacts_directory
7512
+ if audit_deps is not None:
7513
+ self._values["audit_deps"] = audit_deps
7514
+ if audit_deps_options is not None:
7515
+ self._values["audit_deps_options"] = audit_deps_options
6768
7516
  if auto_approve_upgrades is not None:
6769
7517
  self._values["auto_approve_upgrades"] = auto_approve_upgrades
7518
+ if biome is not None:
7519
+ self._values["biome"] = biome
7520
+ if biome_options is not None:
7521
+ self._values["biome_options"] = biome_options
6770
7522
  if build_workflow is not None:
6771
7523
  self._values["build_workflow"] = build_workflow
6772
7524
  if build_workflow_options is not None:
@@ -7304,6 +8056,17 @@ class NodeProjectOptions(
7304
8056
  result = self._values.get("bundled_deps")
7305
8057
  return typing.cast(typing.Optional[typing.List[builtins.str]], result)
7306
8058
 
8059
+ @builtins.property
8060
+ def bun_version(self) -> typing.Optional[builtins.str]:
8061
+ '''(experimental) The version of Bun to use if using Bun as a package manager.
8062
+
8063
+ :default: "latest"
8064
+
8065
+ :stability: experimental
8066
+ '''
8067
+ result = self._values.get("bun_version")
8068
+ return typing.cast(typing.Optional[builtins.str], result)
8069
+
7307
8070
  @builtins.property
7308
8071
  def code_artifact_options(self) -> typing.Optional[CodeArtifactOptions]:
7309
8072
  '''(experimental) Options for npm packages using AWS CodeArtifact.
@@ -7438,9 +8201,15 @@ class NodeProjectOptions(
7438
8201
 
7439
8202
  @builtins.property
7440
8203
  def max_node_version(self) -> typing.Optional[builtins.str]:
7441
- '''(experimental) Minimum node.js version to require via ``engines`` (inclusive).
8204
+ '''(experimental) The maximum node version supported by this package. Most projects should not use this option.
8205
+
8206
+ The value indicates that the package is incompatible with any newer versions of node.
8207
+ This requirement is enforced via the engines field.
7442
8208
 
7443
- :default: - no max
8209
+ You will normally not need to set this option.
8210
+ Consider this option only if your package is known to not function with newer versions of node.
8211
+
8212
+ :default: - no maximum version is enforced
7444
8213
 
7445
8214
  :stability: experimental
7446
8215
  '''
@@ -7449,9 +8218,19 @@ class NodeProjectOptions(
7449
8218
 
7450
8219
  @builtins.property
7451
8220
  def min_node_version(self) -> typing.Optional[builtins.str]:
7452
- '''(experimental) Minimum Node.js version to require via package.json ``engines`` (inclusive).
8221
+ '''(experimental) The minimum node version required by this package to function. Most projects should not use this option.
8222
+
8223
+ The value indicates that the package is incompatible with any older versions of node.
8224
+ This requirement is enforced via the engines field.
7453
8225
 
7454
- :default: - no "engines" specified
8226
+ You will normally not need to set this option, even if your package is incompatible with EOL versions of node.
8227
+ Consider this option only if your package depends on a specific feature, that is not available in other LTS versions.
8228
+ Setting this option has very high impact on the consumers of your package,
8229
+ as package managers will actively prevent usage with node versions you have marked as incompatible.
8230
+
8231
+ To change the node version of your CI/CD workflows, use ``workflowNodeVersion``.
8232
+
8233
+ :default: - no minimum version is enforced
7455
8234
 
7456
8235
  :stability: experimental
7457
8236
  '''
@@ -7528,6 +8307,17 @@ class NodeProjectOptions(
7528
8307
  result = self._values.get("npm_token_secret")
7529
8308
  return typing.cast(typing.Optional[builtins.str], result)
7530
8309
 
8310
+ @builtins.property
8311
+ def npm_trusted_publishing(self) -> typing.Optional[builtins.bool]:
8312
+ '''(experimental) Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work.
8313
+
8314
+ :default: - false
8315
+
8316
+ :stability: experimental
8317
+ '''
8318
+ result = self._values.get("npm_trusted_publishing")
8319
+ return typing.cast(typing.Optional[builtins.bool], result)
8320
+
7531
8321
  @builtins.property
7532
8322
  def package_manager(self) -> typing.Optional[NodePackageManager]:
7533
8323
  '''(experimental) The Node Package Manager used to execute scripts.
@@ -7589,7 +8379,7 @@ class NodeProjectOptions(
7589
8379
  def pnpm_version(self) -> typing.Optional[builtins.str]:
7590
8380
  '''(experimental) The version of PNPM to use if using PNPM as a package manager.
7591
8381
 
7592
- :default: "7"
8382
+ :default: "9"
7593
8383
 
7594
8384
  :stability: experimental
7595
8385
  '''
@@ -7666,6 +8456,19 @@ class NodeProjectOptions(
7666
8456
  result = self._values.get("yarn_berry_options")
7667
8457
  return typing.cast(typing.Optional["YarnBerryOptions"], result)
7668
8458
 
8459
+ @builtins.property
8460
+ def bump_package(self) -> typing.Optional[builtins.str]:
8461
+ '''(experimental) The ``commit-and-tag-version`` compatible package used to bump the package version, as a dependency string.
8462
+
8463
+ This can be any compatible package version, including the deprecated ``standard-version@9``.
8464
+
8465
+ :default: - A recent version of "commit-and-tag-version"
8466
+
8467
+ :stability: experimental
8468
+ '''
8469
+ result = self._values.get("bump_package")
8470
+ return typing.cast(typing.Optional[builtins.str], result)
8471
+
7669
8472
  @builtins.property
7670
8473
  def jsii_release_version(self) -> typing.Optional[builtins.str]:
7671
8474
  '''(experimental) Version requirement of ``publib`` which is used to publish modules to npm.
@@ -7707,6 +8510,36 @@ class NodeProjectOptions(
7707
8510
  result = self._values.get("min_major_version")
7708
8511
  return typing.cast(typing.Optional[jsii.Number], result)
7709
8512
 
8513
+ @builtins.property
8514
+ def next_version_command(self) -> typing.Optional[builtins.str]:
8515
+ '''(experimental) A shell command to control the next version to release.
8516
+
8517
+ If present, this shell command will be run before the bump is executed, and
8518
+ it determines what version to release. It will be executed in the following
8519
+ environment:
8520
+
8521
+ - Working directory: the project directory.
8522
+ - ``$VERSION``: the current version. Looks like ``1.2.3``.
8523
+ - ``$LATEST_TAG``: the most recent tag. Looks like ``prefix-v1.2.3``, or may be unset.
8524
+ - ``$SUGGESTED_BUMP``: the suggested bump action based on commits. One of ``major|minor|patch|none``.
8525
+
8526
+ The command should print one of the following to ``stdout``:
8527
+
8528
+ - Nothing: the next version number will be determined based on commit history.
8529
+ - ``x.y.z``: the next version number will be ``x.y.z``.
8530
+ - ``major|minor|patch``: the next version number will be the current version number
8531
+ with the indicated component bumped.
8532
+
8533
+ This setting cannot be specified together with ``minMajorVersion``; the invoked
8534
+ script can be used to achieve the effects of ``minMajorVersion``.
8535
+
8536
+ :default: - The next version will be determined based on the commit history and project settings.
8537
+
8538
+ :stability: experimental
8539
+ '''
8540
+ result = self._values.get("next_version_command")
8541
+ return typing.cast(typing.Optional[builtins.str], result)
8542
+
7710
8543
  @builtins.property
7711
8544
  def npm_dist_tag(self) -> typing.Optional[builtins.str]:
7712
8545
  '''(experimental) The npmDistTag to use when publishing from the default branch.
@@ -7802,6 +8635,23 @@ class NodeProjectOptions(
7802
8635
  result = self._values.get("release_branches")
7803
8636
  return typing.cast(typing.Optional[typing.Mapping[builtins.str, _BranchOptions_13663d08]], result)
7804
8637
 
8638
+ @builtins.property
8639
+ def release_environment(self) -> typing.Optional[builtins.str]:
8640
+ '''(experimental) The GitHub Actions environment used for the release.
8641
+
8642
+ This can be used to add an explicit approval step to the release
8643
+ or limit who can initiate a release through environment protection rules.
8644
+
8645
+ When multiple artifacts are released, the environment can be overwritten
8646
+ on a per artifact basis.
8647
+
8648
+ :default: - no environment used, unless set at the artifact level
8649
+
8650
+ :stability: experimental
8651
+ '''
8652
+ result = self._values.get("release_environment")
8653
+ return typing.cast(typing.Optional[builtins.str], result)
8654
+
7805
8655
  @builtins.property
7806
8656
  def release_every_commit(self) -> typing.Optional[builtins.bool]:
7807
8657
  '''(deprecated) Automatically release new versions every commit to one of branches in ``releaseBranches``.
@@ -7879,6 +8729,19 @@ class NodeProjectOptions(
7879
8729
  result = self._values.get("release_trigger")
7880
8730
  return typing.cast(typing.Optional[_ReleaseTrigger_e4dc221f], result)
7881
8731
 
8732
+ @builtins.property
8733
+ def release_workflow_env(
8734
+ self,
8735
+ ) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
8736
+ '''(experimental) Build environment variables for release workflows.
8737
+
8738
+ :default: {}
8739
+
8740
+ :stability: experimental
8741
+ '''
8742
+ result = self._values.get("release_workflow_env")
8743
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
8744
+
7882
8745
  @builtins.property
7883
8746
  def release_workflow_name(self) -> typing.Optional[builtins.str]:
7884
8747
  '''(experimental) The name of the default release workflow.
@@ -7905,7 +8768,7 @@ class NodeProjectOptions(
7905
8768
  def versionrc_options(
7906
8769
  self,
7907
8770
  ) -> typing.Optional[typing.Mapping[builtins.str, typing.Any]]:
7908
- '''(experimental) Custom configuration used when creating changelog with standard-version package.
8771
+ '''(experimental) Custom configuration used when creating changelog with commit-and-tag-version package.
7909
8772
 
7910
8773
  Given values either append to default configuration or overwrite values in it.
7911
8774
 
@@ -7974,6 +8837,32 @@ class NodeProjectOptions(
7974
8837
  result = self._values.get("artifacts_directory")
7975
8838
  return typing.cast(typing.Optional[builtins.str], result)
7976
8839
 
8840
+ @builtins.property
8841
+ def audit_deps(self) -> typing.Optional[builtins.bool]:
8842
+ '''(experimental) Run security audit on dependencies.
8843
+
8844
+ When enabled, creates an "audit" task that checks for known security vulnerabilities
8845
+ in dependencies. By default, runs during every build and checks for "high" severity
8846
+ vulnerabilities or above in all dependencies (including dev dependencies).
8847
+
8848
+ :default: false
8849
+
8850
+ :stability: experimental
8851
+ '''
8852
+ result = self._values.get("audit_deps")
8853
+ return typing.cast(typing.Optional[builtins.bool], result)
8854
+
8855
+ @builtins.property
8856
+ def audit_deps_options(self) -> typing.Optional[AuditOptions]:
8857
+ '''(experimental) Security audit options.
8858
+
8859
+ :default: - default options
8860
+
8861
+ :stability: experimental
8862
+ '''
8863
+ result = self._values.get("audit_deps_options")
8864
+ return typing.cast(typing.Optional[AuditOptions], result)
8865
+
7977
8866
  @builtins.property
7978
8867
  def auto_approve_upgrades(self) -> typing.Optional[builtins.bool]:
7979
8868
  '''(experimental) Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued).
@@ -7987,6 +8876,28 @@ class NodeProjectOptions(
7987
8876
  result = self._values.get("auto_approve_upgrades")
7988
8877
  return typing.cast(typing.Optional[builtins.bool], result)
7989
8878
 
8879
+ @builtins.property
8880
+ def biome(self) -> typing.Optional[builtins.bool]:
8881
+ '''(experimental) Setup Biome.
8882
+
8883
+ :default: false
8884
+
8885
+ :stability: experimental
8886
+ '''
8887
+ result = self._values.get("biome")
8888
+ return typing.cast(typing.Optional[builtins.bool], result)
8889
+
8890
+ @builtins.property
8891
+ def biome_options(self) -> typing.Optional[BiomeOptions]:
8892
+ '''(experimental) Biome options.
8893
+
8894
+ :default: - default options
8895
+
8896
+ :stability: experimental
8897
+ '''
8898
+ result = self._values.get("biome_options")
8899
+ return typing.cast(typing.Optional[BiomeOptions], result)
8900
+
7990
8901
  @builtins.property
7991
8902
  def build_workflow(self) -> typing.Optional[builtins.bool]:
7992
8903
  '''(experimental) Define a GitHub workflow for building PRs.
@@ -8044,7 +8955,7 @@ class NodeProjectOptions(
8044
8955
 
8045
8956
  @builtins.property
8046
8957
  def code_cov(self) -> typing.Optional[builtins.bool]:
8047
- '''(experimental) Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v4 A secret is required for private repos. Configured with ``@codeCovTokenSecret``.
8958
+ '''(experimental) 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``.
8048
8959
 
8049
8960
  :default: false
8050
8961
 
@@ -8055,9 +8966,9 @@ class NodeProjectOptions(
8055
8966
 
8056
8967
  @builtins.property
8057
8968
  def code_cov_token_secret(self) -> typing.Optional[builtins.str]:
8058
- '''(experimental) Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories.
8969
+ '''(experimental) Define the secret name for a specified https://codecov.io/ token.
8059
8970
 
8060
- :default: - if this option is not specified, only public repositories are supported
8971
+ :default: - OIDC auth is used
8061
8972
 
8062
8973
  :stability: experimental
8063
8974
  '''
@@ -8368,7 +9279,7 @@ class NodeProjectOptions(
8368
9279
  def workflow_git_identity(self) -> typing.Optional[_GitIdentity_6effc3de]:
8369
9280
  '''(experimental) The git identity to use in workflows.
8370
9281
 
8371
- :default: - GitHub Actions
9282
+ :default: - default GitHub Actions user
8372
9283
 
8373
9284
  :stability: experimental
8374
9285
  '''
@@ -8377,9 +9288,11 @@ class NodeProjectOptions(
8377
9288
 
8378
9289
  @builtins.property
8379
9290
  def workflow_node_version(self) -> typing.Optional[builtins.str]:
8380
- '''(experimental) The node version to use in GitHub workflows.
9291
+ '''(experimental) The node version used in GitHub Actions workflows.
8381
9292
 
8382
- :default: - same as ``minNodeVersion``
9293
+ Always use this option if your GitHub Actions workflows require a specific to run.
9294
+
9295
+ :default: - ``minNodeVersion`` if set, otherwise ``lts/*``.
8383
9296
 
8384
9297
  :stability: experimental
8385
9298
  '''
@@ -9417,7 +10330,10 @@ class Projenrc(
9417
10330
  metaclass=jsii.JSIIMeta,
9418
10331
  jsii_type="projen.javascript.Projenrc",
9419
10332
  ):
9420
- '''(experimental) Sets up a javascript project to use TypeScript for projenrc.
10333
+ '''(experimental) A projenrc file written in JavaScript.
10334
+
10335
+ This component can be instantiated in any type of project
10336
+ and has no expectations around the project's main language.
9421
10337
 
9422
10338
  :stability: experimental
9423
10339
  '''
@@ -9667,7 +10583,7 @@ class RunBundleTask(enum.Enum):
9667
10583
  // Tell the bundler to bundle the compiled results (from the "lib" directory)
9668
10584
  project.bundler.addBundle("./lib/index.js", {
9669
10585
  platform: "node",
9670
- target: "node18",
10586
+ target: "node22",
9671
10587
  sourcemap: false,
9672
10588
  format: "esm",
9673
10589
  });
@@ -9840,6 +10756,7 @@ class Transform(metaclass=jsii.JSIIMeta, jsii_type="projen.javascript.Transform"
9840
10756
  "jsx_import_source": "jsxImportSource",
9841
10757
  "lib": "lib",
9842
10758
  "module": "module",
10759
+ "module_detection": "moduleDetection",
9843
10760
  "module_resolution": "moduleResolution",
9844
10761
  "no_emit": "noEmit",
9845
10762
  "no_emit_on_error": "noEmitOnError",
@@ -9867,6 +10784,7 @@ class Transform(metaclass=jsii.JSIIMeta, jsii_type="projen.javascript.Transform"
9867
10784
  "strip_internal": "stripInternal",
9868
10785
  "target": "target",
9869
10786
  "ts_build_info_file": "tsBuildInfoFile",
10787
+ "type_roots": "typeRoots",
9870
10788
  "types": "types",
9871
10789
  "use_unknown_in_catch_variables": "useUnknownInCatchVariables",
9872
10790
  "verbatim_module_syntax": "verbatimModuleSyntax",
@@ -9905,6 +10823,7 @@ class TypeScriptCompilerOptions:
9905
10823
  jsx_import_source: typing.Optional[builtins.str] = None,
9906
10824
  lib: typing.Optional[typing.Sequence[builtins.str]] = None,
9907
10825
  module: typing.Optional[builtins.str] = None,
10826
+ module_detection: typing.Optional["TypeScriptModuleDetection"] = None,
9908
10827
  module_resolution: typing.Optional["TypeScriptModuleResolution"] = None,
9909
10828
  no_emit: typing.Optional[builtins.bool] = None,
9910
10829
  no_emit_on_error: typing.Optional[builtins.bool] = None,
@@ -9932,6 +10851,7 @@ class TypeScriptCompilerOptions:
9932
10851
  strip_internal: typing.Optional[builtins.bool] = None,
9933
10852
  target: typing.Optional[builtins.str] = None,
9934
10853
  ts_build_info_file: typing.Optional[builtins.str] = None,
10854
+ type_roots: typing.Optional[typing.Sequence[builtins.str]] = None,
9935
10855
  types: typing.Optional[typing.Sequence[builtins.str]] = None,
9936
10856
  use_unknown_in_catch_variables: typing.Optional[builtins.bool] = None,
9937
10857
  verbatim_module_syntax: typing.Optional[builtins.bool] = None,
@@ -9966,6 +10886,7 @@ class TypeScriptCompilerOptions:
9966
10886
  :param jsx_import_source: (experimental) Declares the module specifier to be used for importing the jsx and jsxs factory functions when using jsx. Default: undefined
9967
10887
  :param lib: (experimental) Reference for type definitions / libraries to use (eg. ES2016, ES5, ES2018). Default: [ "es2018" ]
9968
10888
  :param module: (experimental) Sets the module system for the program. See https://www.typescriptlang.org/docs/handbook/modules.html#ambient-modules. Default: "CommonJS"
10889
+ :param module_detection: (experimental) This setting controls how TypeScript determines whether a file is a `script or a module <https://www.typescriptlang.org/docs/handbook/modules/theory.html#scripts-and-modules-in-javascript>`_. Default: "auto"
9969
10890
  :param module_resolution: (experimental) Determine how modules get resolved. Either "Node" for Node.js/io.js style resolution, or "Classic". Default: "node"
9970
10891
  :param no_emit: (experimental) Do not emit outputs. Default: false
9971
10892
  :param no_emit_on_error: (experimental) Do not emit compiler output files like JavaScript source code, source-maps or declarations if any errors were reported. Default: true
@@ -9993,6 +10914,7 @@ class TypeScriptCompilerOptions:
9993
10914
  :param strip_internal: (experimental) Do not emit declarations for code that has an ``@internal`` annotation in it’s JSDoc comment. Default: true
9994
10915
  :param target: (experimental) Modern browsers support all ES6 features, so ES6 is a good choice. You might choose to set a lower target if your code is deployed to older environments, or a higher target if your code is guaranteed to run in newer environments. Default: "ES2018"
9995
10916
  :param ts_build_info_file: (experimental) This setting lets you specify a file for storing incremental compilation information as a part of composite projects which enables faster building of larger TypeScript codebases. You can read more about composite projects in the handbook.
10917
+ :param type_roots: (experimental) If typeRoots is specified, only packages under typeRoots will be included.
9996
10918
  :param types: (experimental) If types is specified, only packages listed will be included in the global scope.
9997
10919
  :param use_unknown_in_catch_variables: (experimental) Change the type of the variable in a catch clause from any to unknown Available with TypeScript 4.4 and newer. Default: true
9998
10920
  :param verbatim_module_syntax: (experimental) Simplifies TypeScript's handling of import/export ``type`` modifiers. Default: undefined
@@ -10030,6 +10952,7 @@ class TypeScriptCompilerOptions:
10030
10952
  check_type(argname="argument jsx_import_source", value=jsx_import_source, expected_type=type_hints["jsx_import_source"])
10031
10953
  check_type(argname="argument lib", value=lib, expected_type=type_hints["lib"])
10032
10954
  check_type(argname="argument module", value=module, expected_type=type_hints["module"])
10955
+ check_type(argname="argument module_detection", value=module_detection, expected_type=type_hints["module_detection"])
10033
10956
  check_type(argname="argument module_resolution", value=module_resolution, expected_type=type_hints["module_resolution"])
10034
10957
  check_type(argname="argument no_emit", value=no_emit, expected_type=type_hints["no_emit"])
10035
10958
  check_type(argname="argument no_emit_on_error", value=no_emit_on_error, expected_type=type_hints["no_emit_on_error"])
@@ -10057,6 +10980,7 @@ class TypeScriptCompilerOptions:
10057
10980
  check_type(argname="argument strip_internal", value=strip_internal, expected_type=type_hints["strip_internal"])
10058
10981
  check_type(argname="argument target", value=target, expected_type=type_hints["target"])
10059
10982
  check_type(argname="argument ts_build_info_file", value=ts_build_info_file, expected_type=type_hints["ts_build_info_file"])
10983
+ check_type(argname="argument type_roots", value=type_roots, expected_type=type_hints["type_roots"])
10060
10984
  check_type(argname="argument types", value=types, expected_type=type_hints["types"])
10061
10985
  check_type(argname="argument use_unknown_in_catch_variables", value=use_unknown_in_catch_variables, expected_type=type_hints["use_unknown_in_catch_variables"])
10062
10986
  check_type(argname="argument verbatim_module_syntax", value=verbatim_module_syntax, expected_type=type_hints["verbatim_module_syntax"])
@@ -10119,6 +11043,8 @@ class TypeScriptCompilerOptions:
10119
11043
  self._values["lib"] = lib
10120
11044
  if module is not None:
10121
11045
  self._values["module"] = module
11046
+ if module_detection is not None:
11047
+ self._values["module_detection"] = module_detection
10122
11048
  if module_resolution is not None:
10123
11049
  self._values["module_resolution"] = module_resolution
10124
11050
  if no_emit is not None:
@@ -10173,6 +11099,8 @@ class TypeScriptCompilerOptions:
10173
11099
  self._values["target"] = target
10174
11100
  if ts_build_info_file is not None:
10175
11101
  self._values["ts_build_info_file"] = ts_build_info_file
11102
+ if type_roots is not None:
11103
+ self._values["type_roots"] = type_roots
10176
11104
  if types is not None:
10177
11105
  self._values["types"] = types
10178
11106
  if use_unknown_in_catch_variables is not None:
@@ -10551,6 +11479,17 @@ class TypeScriptCompilerOptions:
10551
11479
  result = self._values.get("module")
10552
11480
  return typing.cast(typing.Optional[builtins.str], result)
10553
11481
 
11482
+ @builtins.property
11483
+ def module_detection(self) -> typing.Optional["TypeScriptModuleDetection"]:
11484
+ '''(experimental) This setting controls how TypeScript determines whether a file is a `script or a module <https://www.typescriptlang.org/docs/handbook/modules/theory.html#scripts-and-modules-in-javascript>`_.
11485
+
11486
+ :default: "auto"
11487
+
11488
+ :stability: experimental
11489
+ '''
11490
+ result = self._values.get("module_detection")
11491
+ return typing.cast(typing.Optional["TypeScriptModuleDetection"], result)
11492
+
10554
11493
  @builtins.property
10555
11494
  def module_resolution(self) -> typing.Optional["TypeScriptModuleResolution"]:
10556
11495
  '''(experimental) Determine how modules get resolved.
@@ -10870,11 +11809,21 @@ class TypeScriptCompilerOptions:
10870
11809
  result = self._values.get("ts_build_info_file")
10871
11810
  return typing.cast(typing.Optional[builtins.str], result)
10872
11811
 
11812
+ @builtins.property
11813
+ def type_roots(self) -> typing.Optional[typing.List[builtins.str]]:
11814
+ '''(experimental) If typeRoots is specified, only packages under typeRoots will be included.
11815
+
11816
+ :see: https://www.typescriptlang.org/tsconfig/#typeRoots
11817
+ :stability: experimental
11818
+ '''
11819
+ result = self._values.get("type_roots")
11820
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
11821
+
10873
11822
  @builtins.property
10874
11823
  def types(self) -> typing.Optional[typing.List[builtins.str]]:
10875
11824
  '''(experimental) If types is specified, only packages listed will be included in the global scope.
10876
11825
 
10877
- :see: {@link https://www.typescriptlang.org/tsconfig#types}
11826
+ :see: https://www.typescriptlang.org/tsconfig#types
10878
11827
  :stability: experimental
10879
11828
  '''
10880
11829
  result = self._values.get("types")
@@ -10980,6 +11929,34 @@ class TypeScriptJsxMode(enum.Enum):
10980
11929
  '''
10981
11930
 
10982
11931
 
11932
+ @jsii.enum(jsii_type="projen.javascript.TypeScriptModuleDetection")
11933
+ class TypeScriptModuleDetection(enum.Enum):
11934
+ '''(experimental) This setting controls how TypeScript determines whether a file is a script or a module.
11935
+
11936
+ :see: https://www.typescriptlang.org/docs/handbook/modules/theory.html#scripts-and-modules-in-javascript
11937
+ :stability: experimental
11938
+ '''
11939
+
11940
+ AUTO = "AUTO"
11941
+ '''(experimental) TypeScript will not only look for import and export statements, but it will also check whether the "type" field in a package.json is set to "module" when running with module: nodenext or node16, and check whether the current file is a JSX file when running under jsx: react-jsx.
11942
+
11943
+ :see: https://www.typescriptlang.org/tsconfig/#moduleDetection
11944
+ :stability: experimental
11945
+ '''
11946
+ LEGACY = "LEGACY"
11947
+ '''(experimental) The same behavior as 4.6 and prior, usings import and export statements to determine whether a file is a module.
11948
+
11949
+ :see: https://www.typescriptlang.org/tsconfig/#moduleDetection
11950
+ :stability: experimental
11951
+ '''
11952
+ FORCE = "FORCE"
11953
+ '''(experimental) Ensures that every non-declaration file is treated as a module.
11954
+
11955
+ :see: https://www.typescriptlang.org/tsconfig/#moduleDetection
11956
+ :stability: experimental
11957
+ '''
11958
+
11959
+
10983
11960
  @jsii.enum(jsii_type="projen.javascript.TypeScriptModuleResolution")
10984
11961
  class TypeScriptModuleResolution(enum.Enum):
10985
11962
  '''(experimental) Determines how modules get resolved.
@@ -11000,6 +11977,12 @@ class TypeScriptModuleResolution(enum.Enum):
11000
11977
  :see: https://www.typescriptlang.org/docs/handbook/module-resolution.html#node
11001
11978
  :stability: experimental
11002
11979
  '''
11980
+ NODE10 = "NODE10"
11981
+ '''(experimental) ``--moduleResolution node`` was renamed to ``node10`` (keeping ``node`` as an alias for backward compatibility) in TypeScript 5.0. It reflects the CommonJS module resolution algorithm as it existed in Node.js versions earlier than v12. It should no longer be used.
11982
+
11983
+ :see: https://www.typescriptlang.org/docs/handbook/modules/reference.html#node10-formerly-known-as-node
11984
+ :stability: experimental
11985
+ '''
11003
11986
  NODE16 = "NODE16"
11004
11987
  '''(experimental) Node.js’ ECMAScript Module Support from TypeScript 4.7 onwards.
11005
11988
 
@@ -11066,9 +12049,11 @@ class TypescriptConfig(
11066
12049
 
11067
12050
  @jsii.member(jsii_name="addExclude")
11068
12051
  def add_exclude(self, pattern: builtins.str) -> None:
11069
- '''
11070
- :param pattern: -
12052
+ '''(experimental) Add an exclude pattern to the ``exclude`` array of the TSConfig.
12053
+
12054
+ :param pattern: The pattern to add.
11071
12055
 
12056
+ :see: https://www.typescriptlang.org/tsconfig#exclude
11072
12057
  :stability: experimental
11073
12058
  '''
11074
12059
  if __debug__:
@@ -11092,9 +12077,11 @@ class TypescriptConfig(
11092
12077
 
11093
12078
  @jsii.member(jsii_name="addInclude")
11094
12079
  def add_include(self, pattern: builtins.str) -> None:
11095
- '''
11096
- :param pattern: -
12080
+ '''(experimental) Add an include pattern to the ``include`` array of the TSConfig.
11097
12081
 
12082
+ :param pattern: The pattern to add.
12083
+
12084
+ :see: https://www.typescriptlang.org/tsconfig#include
11098
12085
  :stability: experimental
11099
12086
  '''
11100
12087
  if __debug__:
@@ -11110,6 +12097,34 @@ class TypescriptConfig(
11110
12097
  '''
11111
12098
  return typing.cast(None, jsii.invoke(self, "preSynthesize", []))
11112
12099
 
12100
+ @jsii.member(jsii_name="removeExclude")
12101
+ def remove_exclude(self, pattern: builtins.str) -> None:
12102
+ '''(experimental) Remove an exclude pattern from the ``exclude`` array of the TSConfig.
12103
+
12104
+ :param pattern: The pattern to remove.
12105
+
12106
+ :see: https://www.typescriptlang.org/tsconfig#exclude
12107
+ :stability: experimental
12108
+ '''
12109
+ if __debug__:
12110
+ type_hints = typing.get_type_hints(_typecheckingstub__9f78586828830a46219bc19d7af8c53b4b5a1cc2bc1a03491930c9271790f10a)
12111
+ check_type(argname="argument pattern", value=pattern, expected_type=type_hints["pattern"])
12112
+ return typing.cast(None, jsii.invoke(self, "removeExclude", [pattern]))
12113
+
12114
+ @jsii.member(jsii_name="removeInclude")
12115
+ def remove_include(self, pattern: builtins.str) -> None:
12116
+ '''(experimental) Remove an include pattern from the ``include`` array of the TSConfig.
12117
+
12118
+ :param pattern: The pattern to remove.
12119
+
12120
+ :see: https://www.typescriptlang.org/tsconfig#include
12121
+ :stability: experimental
12122
+ '''
12123
+ if __debug__:
12124
+ type_hints = typing.get_type_hints(_typecheckingstub__85556ff93e412b3ea5e894bc7d7669275e51dfae8c077378748d8053a46e4946)
12125
+ check_type(argname="argument pattern", value=pattern, expected_type=type_hints["pattern"])
12126
+ return typing.cast(None, jsii.invoke(self, "removeInclude", [pattern]))
12127
+
11113
12128
  @jsii.member(jsii_name="resolveExtendsPath")
11114
12129
  def resolve_extends_path(self, config_path: builtins.str) -> builtins.str:
11115
12130
  '''(experimental) Resolve valid TypeScript extends paths relative to this config.
@@ -11378,8 +12393,10 @@ class UpgradeDependencies(
11378
12393
  self,
11379
12394
  project: NodeProject,
11380
12395
  *,
12396
+ cooldown: typing.Optional[jsii.Number] = None,
11381
12397
  exclude: typing.Optional[typing.Sequence[builtins.str]] = None,
11382
12398
  include: typing.Optional[typing.Sequence[builtins.str]] = None,
12399
+ include_deprecated_versions: typing.Optional[builtins.bool] = None,
11383
12400
  pull_request_title: typing.Optional[builtins.str] = None,
11384
12401
  satisfy_peer_dependencies: typing.Optional[builtins.bool] = None,
11385
12402
  semantic_commit: typing.Optional[builtins.str] = None,
@@ -11392,8 +12409,10 @@ class UpgradeDependencies(
11392
12409
  ) -> None:
11393
12410
  '''
11394
12411
  :param project: -
12412
+ :param cooldown: (experimental) Exclude package versions published within the specified number of days. This may provide some protection against supply chain attacks, simply by avoiding newly published packages that may be malicious. It gives the ecosystem more time to detect malicious packages. However it comes at the cost of updating other packages slower, which might also contain vulnerabilities or bugs in need of a fix. The cooldown period applies to both npm-check-updates discovery and the package manager update command. Default: - No cooldown period.
11395
12413
  :param exclude: (experimental) List of package names to exclude during the upgrade. Default: - Nothing is excluded.
11396
12414
  :param include: (experimental) List of package names to include during the upgrade. Default: - Everything is included.
12415
+ :param include_deprecated_versions: (experimental) Include deprecated packages. By default, deprecated versions will be excluded from upgrades. Default: false
11397
12416
  :param pull_request_title: (experimental) Title of the pull request to use (should be all lower-case). Default: "upgrade dependencies"
11398
12417
  :param satisfy_peer_dependencies: (experimental) Check peer dependencies of installed packages and filter updates to compatible versions. By default, the upgrade workflow will adhere to version constraints from peer dependencies. Sometimes this is not desirable and can be disabled. Default: true
11399
12418
  :param semantic_commit: (experimental) The semantic commit type. Default: 'chore'
@@ -11410,8 +12429,10 @@ class UpgradeDependencies(
11410
12429
  type_hints = typing.get_type_hints(_typecheckingstub__497e18a2c8dc3200cff8b21dfad7c418d29517aa6d67e2a2555ee78fa63ff385)
11411
12430
  check_type(argname="argument project", value=project, expected_type=type_hints["project"])
11412
12431
  options = UpgradeDependenciesOptions(
12432
+ cooldown=cooldown,
11413
12433
  exclude=exclude,
11414
12434
  include=include,
12435
+ include_deprecated_versions=include_deprecated_versions,
11415
12436
  pull_request_title=pull_request_title,
11416
12437
  satisfy_peer_dependencies=satisfy_peer_dependencies,
11417
12438
  semantic_commit=semantic_commit,
@@ -11447,6 +12468,14 @@ class UpgradeDependencies(
11447
12468
  '''
11448
12469
  return typing.cast(_Task_9fa875b6, jsii.get(self, "postUpgradeTask"))
11449
12470
 
12471
+ @builtins.property
12472
+ @jsii.member(jsii_name="project")
12473
+ def project(self) -> NodeProject:
12474
+ '''
12475
+ :stability: experimental
12476
+ '''
12477
+ return typing.cast(NodeProject, jsii.get(self, "project"))
12478
+
11450
12479
  @builtins.property
11451
12480
  @jsii.member(jsii_name="upgradeTask")
11452
12481
  def upgrade_task(self) -> _Task_9fa875b6:
@@ -11484,15 +12513,17 @@ class UpgradeDependencies(
11484
12513
  if __debug__:
11485
12514
  type_hints = typing.get_type_hints(_typecheckingstub__66ba20de6f144f37e582e192e3ed592a6be0e8bc3d10e3b730af62082afa0010)
11486
12515
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
11487
- jsii.set(self, "containerOptions", value)
12516
+ jsii.set(self, "containerOptions", value) # pyright: ignore[reportArgumentType]
11488
12517
 
11489
12518
 
11490
12519
  @jsii.data_type(
11491
12520
  jsii_type="projen.javascript.UpgradeDependenciesOptions",
11492
12521
  jsii_struct_bases=[],
11493
12522
  name_mapping={
12523
+ "cooldown": "cooldown",
11494
12524
  "exclude": "exclude",
11495
12525
  "include": "include",
12526
+ "include_deprecated_versions": "includeDeprecatedVersions",
11496
12527
  "pull_request_title": "pullRequestTitle",
11497
12528
  "satisfy_peer_dependencies": "satisfyPeerDependencies",
11498
12529
  "semantic_commit": "semanticCommit",
@@ -11508,8 +12539,10 @@ class UpgradeDependenciesOptions:
11508
12539
  def __init__(
11509
12540
  self,
11510
12541
  *,
12542
+ cooldown: typing.Optional[jsii.Number] = None,
11511
12543
  exclude: typing.Optional[typing.Sequence[builtins.str]] = None,
11512
12544
  include: typing.Optional[typing.Sequence[builtins.str]] = None,
12545
+ include_deprecated_versions: typing.Optional[builtins.bool] = None,
11513
12546
  pull_request_title: typing.Optional[builtins.str] = None,
11514
12547
  satisfy_peer_dependencies: typing.Optional[builtins.bool] = None,
11515
12548
  semantic_commit: typing.Optional[builtins.str] = None,
@@ -11522,8 +12555,10 @@ class UpgradeDependenciesOptions:
11522
12555
  ) -> None:
11523
12556
  '''(experimental) Options for ``UpgradeDependencies``.
11524
12557
 
12558
+ :param cooldown: (experimental) Exclude package versions published within the specified number of days. This may provide some protection against supply chain attacks, simply by avoiding newly published packages that may be malicious. It gives the ecosystem more time to detect malicious packages. However it comes at the cost of updating other packages slower, which might also contain vulnerabilities or bugs in need of a fix. The cooldown period applies to both npm-check-updates discovery and the package manager update command. Default: - No cooldown period.
11525
12559
  :param exclude: (experimental) List of package names to exclude during the upgrade. Default: - Nothing is excluded.
11526
12560
  :param include: (experimental) List of package names to include during the upgrade. Default: - Everything is included.
12561
+ :param include_deprecated_versions: (experimental) Include deprecated packages. By default, deprecated versions will be excluded from upgrades. Default: false
11527
12562
  :param pull_request_title: (experimental) Title of the pull request to use (should be all lower-case). Default: "upgrade dependencies"
11528
12563
  :param satisfy_peer_dependencies: (experimental) Check peer dependencies of installed packages and filter updates to compatible versions. By default, the upgrade workflow will adhere to version constraints from peer dependencies. Sometimes this is not desirable and can be disabled. Default: true
11529
12564
  :param semantic_commit: (experimental) The semantic commit type. Default: 'chore'
@@ -11540,8 +12575,10 @@ class UpgradeDependenciesOptions:
11540
12575
  workflow_options = UpgradeDependenciesWorkflowOptions(**workflow_options)
11541
12576
  if __debug__:
11542
12577
  type_hints = typing.get_type_hints(_typecheckingstub__0f7b896c11469470869bc4bfc86c9bb13fd308223e316ba71124c00b5709af1e)
12578
+ check_type(argname="argument cooldown", value=cooldown, expected_type=type_hints["cooldown"])
11543
12579
  check_type(argname="argument exclude", value=exclude, expected_type=type_hints["exclude"])
11544
12580
  check_type(argname="argument include", value=include, expected_type=type_hints["include"])
12581
+ check_type(argname="argument include_deprecated_versions", value=include_deprecated_versions, expected_type=type_hints["include_deprecated_versions"])
11545
12582
  check_type(argname="argument pull_request_title", value=pull_request_title, expected_type=type_hints["pull_request_title"])
11546
12583
  check_type(argname="argument satisfy_peer_dependencies", value=satisfy_peer_dependencies, expected_type=type_hints["satisfy_peer_dependencies"])
11547
12584
  check_type(argname="argument semantic_commit", value=semantic_commit, expected_type=type_hints["semantic_commit"])
@@ -11552,10 +12589,14 @@ class UpgradeDependenciesOptions:
11552
12589
  check_type(argname="argument workflow", value=workflow, expected_type=type_hints["workflow"])
11553
12590
  check_type(argname="argument workflow_options", value=workflow_options, expected_type=type_hints["workflow_options"])
11554
12591
  self._values: typing.Dict[builtins.str, typing.Any] = {}
12592
+ if cooldown is not None:
12593
+ self._values["cooldown"] = cooldown
11555
12594
  if exclude is not None:
11556
12595
  self._values["exclude"] = exclude
11557
12596
  if include is not None:
11558
12597
  self._values["include"] = include
12598
+ if include_deprecated_versions is not None:
12599
+ self._values["include_deprecated_versions"] = include_deprecated_versions
11559
12600
  if pull_request_title is not None:
11560
12601
  self._values["pull_request_title"] = pull_request_title
11561
12602
  if satisfy_peer_dependencies is not None:
@@ -11575,6 +12616,26 @@ class UpgradeDependenciesOptions:
11575
12616
  if workflow_options is not None:
11576
12617
  self._values["workflow_options"] = workflow_options
11577
12618
 
12619
+ @builtins.property
12620
+ def cooldown(self) -> typing.Optional[jsii.Number]:
12621
+ '''(experimental) Exclude package versions published within the specified number of days.
12622
+
12623
+ This may provide some protection against supply chain attacks, simply by avoiding
12624
+ newly published packages that may be malicious. It gives the ecosystem more time
12625
+ to detect malicious packages. However it comes at the cost of updating other
12626
+ packages slower, which might also contain vulnerabilities or bugs in need of a fix.
12627
+
12628
+ The cooldown period applies to both npm-check-updates discovery
12629
+ and the package manager update command.
12630
+
12631
+ :default: - No cooldown period.
12632
+
12633
+ :see: https://yarnpkg.com/configuration/yarnrc#npmMinimalAgeGate
12634
+ :stability: experimental
12635
+ '''
12636
+ result = self._values.get("cooldown")
12637
+ return typing.cast(typing.Optional[jsii.Number], result)
12638
+
11578
12639
  @builtins.property
11579
12640
  def exclude(self) -> typing.Optional[typing.List[builtins.str]]:
11580
12641
  '''(experimental) List of package names to exclude during the upgrade.
@@ -11597,6 +12658,20 @@ class UpgradeDependenciesOptions:
11597
12658
  result = self._values.get("include")
11598
12659
  return typing.cast(typing.Optional[typing.List[builtins.str]], result)
11599
12660
 
12661
+ @builtins.property
12662
+ def include_deprecated_versions(self) -> typing.Optional[builtins.bool]:
12663
+ '''(experimental) Include deprecated packages.
12664
+
12665
+ By default, deprecated versions will be excluded from upgrades.
12666
+
12667
+ :default: false
12668
+
12669
+ :see: https://github.com/raineorshine/npm-check-updates?tab=readme-ov-file#options
12670
+ :stability: experimental
12671
+ '''
12672
+ result = self._values.get("include_deprecated_versions")
12673
+ return typing.cast(typing.Optional[builtins.bool], result)
12674
+
11600
12675
  @builtins.property
11601
12676
  def pull_request_title(self) -> typing.Optional[builtins.str]:
11602
12677
  '''(experimental) Title of the pull request to use (should be all lower-case).
@@ -11807,6 +12882,7 @@ class UpgradeDependenciesSchedule(
11807
12882
  "assignees": "assignees",
11808
12883
  "branches": "branches",
11809
12884
  "container": "container",
12885
+ "env": "env",
11810
12886
  "git_identity": "gitIdentity",
11811
12887
  "labels": "labels",
11812
12888
  "permissions": "permissions",
@@ -11823,6 +12899,7 @@ class UpgradeDependenciesWorkflowOptions:
11823
12899
  assignees: typing.Optional[typing.Sequence[builtins.str]] = None,
11824
12900
  branches: typing.Optional[typing.Sequence[builtins.str]] = None,
11825
12901
  container: typing.Optional[typing.Union[_ContainerOptions_f50907af, typing.Dict[builtins.str, typing.Any]]] = None,
12902
+ env: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
11826
12903
  git_identity: typing.Optional[typing.Union[_GitIdentity_6effc3de, typing.Dict[builtins.str, typing.Any]]] = None,
11827
12904
  labels: typing.Optional[typing.Sequence[builtins.str]] = None,
11828
12905
  permissions: typing.Optional[typing.Union[_JobPermissions_3b5b53dc, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -11836,7 +12913,8 @@ class UpgradeDependenciesWorkflowOptions:
11836
12913
  :param assignees: (experimental) Assignees to add on the PR. Default: - no assignees
11837
12914
  :param branches: (experimental) List of branches to create PR's for. Default: - All release branches configured for the project.
11838
12915
  :param container: (experimental) Job container options. Default: - defaults
11839
- :param git_identity: (experimental) The git identity to use for commits. Default: "github-actions@github.com"
12916
+ :param env: (experimental) Build environment variables for the upgrade job. Default: {}
12917
+ :param git_identity: (experimental) The git identity to use for commits. Default: - default GitHub Actions user
11840
12918
  :param labels: (experimental) Labels to apply on the PR. Default: - no labels.
11841
12919
  :param permissions: (experimental) Permissions granted to the upgrade job To limit job permissions for ``contents``, the desired permissions have to be explicitly set, e.g.: ``{ contents: JobPermission.NONE }``. Default: ``{ contents: JobPermission.READ }``
11842
12920
  :param projen_credentials: (experimental) Choose a method for authenticating with GitHub for creating the PR. When using the default github token, PR's created by this workflow will not trigger any subsequent workflows (i.e the build workflow), so projen requires API access to be provided through e.g. a personal access token or other method. Default: - personal access token named PROJEN_GITHUB_TOKEN
@@ -11859,6 +12937,7 @@ class UpgradeDependenciesWorkflowOptions:
11859
12937
  check_type(argname="argument assignees", value=assignees, expected_type=type_hints["assignees"])
11860
12938
  check_type(argname="argument branches", value=branches, expected_type=type_hints["branches"])
11861
12939
  check_type(argname="argument container", value=container, expected_type=type_hints["container"])
12940
+ check_type(argname="argument env", value=env, expected_type=type_hints["env"])
11862
12941
  check_type(argname="argument git_identity", value=git_identity, expected_type=type_hints["git_identity"])
11863
12942
  check_type(argname="argument labels", value=labels, expected_type=type_hints["labels"])
11864
12943
  check_type(argname="argument permissions", value=permissions, expected_type=type_hints["permissions"])
@@ -11873,6 +12952,8 @@ class UpgradeDependenciesWorkflowOptions:
11873
12952
  self._values["branches"] = branches
11874
12953
  if container is not None:
11875
12954
  self._values["container"] = container
12955
+ if env is not None:
12956
+ self._values["env"] = env
11876
12957
  if git_identity is not None:
11877
12958
  self._values["git_identity"] = git_identity
11878
12959
  if labels is not None:
@@ -11921,11 +13002,22 @@ class UpgradeDependenciesWorkflowOptions:
11921
13002
  result = self._values.get("container")
11922
13003
  return typing.cast(typing.Optional[_ContainerOptions_f50907af], result)
11923
13004
 
13005
+ @builtins.property
13006
+ def env(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
13007
+ '''(experimental) Build environment variables for the upgrade job.
13008
+
13009
+ :default: {}
13010
+
13011
+ :stability: experimental
13012
+ '''
13013
+ result = self._values.get("env")
13014
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
13015
+
11924
13016
  @builtins.property
11925
13017
  def git_identity(self) -> typing.Optional[_GitIdentity_6effc3de]:
11926
13018
  '''(experimental) The git identity to use for commits.
11927
13019
 
11928
- :default: "github-actions@github.com"
13020
+ :default: - default GitHub Actions user
11929
13021
 
11930
13022
  :stability: experimental
11931
13023
  '''
@@ -14788,7 +15880,7 @@ class AddBundleOptions(BundlingOptions):
14788
15880
  :param banner: (experimental) Use this to insert an arbitrary string at the beginning of generated JavaScript files. This is similar to footer which inserts at the end instead of the beginning. This is commonly used to insert comments: Default: - no comments are passed
14789
15881
  :param charset: (experimental) The charset to use for esbuild's output. By default esbuild's output is ASCII-only. Any non-ASCII characters are escaped using backslash escape sequences. Using escape sequences makes the generated output slightly bigger, and also makes it harder to read. If you would like for esbuild to print the original characters without using escape sequences, use ``Charset.UTF8``. Default: Charset.ASCII
14790
15882
  :param define: (experimental) Replace global identifiers with constant expressions. For example, ``{ 'process.env.DEBUG': 'true' }``. Another example, ``{ 'process.env.API_KEY': JSON.stringify('xxx-xxxx-xxx') }``. Default: - no replacements are made
14791
- :param esbuild_args: (experimental) Build arguments to pass into esbuild. For example, to add the `--log-limit <https://esbuild.github.io/api/#log-limit>`_ flag:: project.bundler.addBundle("./src/hello.ts", { platform: "node", target: "node18", sourcemap: true, format: "esm", esbuildArgs: { "--log-limit": "0", }, }); Default: - no additional esbuild arguments are passed
15883
+ :param esbuild_args: (experimental) Build arguments to pass into esbuild. For example, to add the `--log-limit <https://esbuild.github.io/api/#log-limit>`_ flag:: project.bundler.addBundle("./src/hello.ts", { platform: "node", target: "node22", sourcemap: true, format: "esm", esbuildArgs: { "--log-limit": "0", }, }); Default: - no additional esbuild arguments are passed
14792
15884
  :param executable: (experimental) Mark the output file as executable. Default: false
14793
15885
  :param footer: (experimental) Use this to insert an arbitrary string at the end of generated JavaScript files. This is similar to banner which inserts at the beginning instead of the end. This is commonly used to insert comments Default: - no comments are passed
14794
15886
  :param format: (experimental) Output format for the generated JavaScript files. There are currently three possible values that can be configured: ``"iife"``, ``"cjs"``, and ``"esm"``. If not set (``undefined``), esbuild picks an output format for you based on ``platform``: - ``"cjs"`` if ``platform`` is ``"node"`` - ``"iife"`` if ``platform`` is ``"browser"`` - ``"esm"`` if ``platform`` is ``"neutral"`` Note: If making a bundle to run under node with ESM, set ``format`` to ``"esm"`` instead of setting ``platform`` to ``"neutral"``. Default: undefined
@@ -15011,7 +16103,7 @@ class AddBundleOptions(BundlingOptions):
15011
16103
 
15012
16104
  project.bundler.addBundle("./src/hello.ts", {
15013
16105
  platform: "node",
15014
- target: "node18",
16106
+ target: "node22",
15015
16107
  sourcemap: true,
15016
16108
  format: "esm",
15017
16109
  esbuildArgs: {
@@ -15249,7 +16341,10 @@ class AddBundleOptions(BundlingOptions):
15249
16341
  __all__ = [
15250
16342
  "AddBundleOptions",
15251
16343
  "ArrowParens",
16344
+ "AuditOptions",
15252
16345
  "AutoRelease",
16346
+ "Biome",
16347
+ "BiomeOptions",
15253
16348
  "BuildWorkflowOptions",
15254
16349
  "Bundle",
15255
16350
  "BundleLogLevel",
@@ -15263,12 +16358,14 @@ __all__ = [
15263
16358
  "EmbeddedLanguageFormatting",
15264
16359
  "EndOfLine",
15265
16360
  "Eslint",
16361
+ "EslintCommandOptions",
15266
16362
  "EslintOptions",
15267
16363
  "EslintOverride",
15268
16364
  "HTMLWhitespaceSensitivity",
15269
16365
  "HasteConfig",
15270
16366
  "Jest",
15271
16367
  "JestConfigOptions",
16368
+ "JestDiscoverTestMatchPatternsForDirsOptions",
15272
16369
  "JestOptions",
15273
16370
  "JestReporter",
15274
16371
  "LicenseChecker",
@@ -15299,6 +16396,7 @@ __all__ = [
15299
16396
  "TypeScriptCompilerOptions",
15300
16397
  "TypeScriptImportsNotUsedAsValues",
15301
16398
  "TypeScriptJsxMode",
16399
+ "TypeScriptModuleDetection",
15302
16400
  "TypeScriptModuleResolution",
15303
16401
  "TypescriptConfig",
15304
16402
  "TypescriptConfigExtends",
@@ -15332,12 +16430,65 @@ __all__ = [
15332
16430
  "YarnWorkerPoolMode",
15333
16431
  "Yarnrc",
15334
16432
  "YarnrcOptions",
16433
+ "biome_config",
15335
16434
  ]
15336
16435
 
15337
16436
  publication.publish()
15338
16437
 
16438
+ # Loading modules to ensure their types are registered with the jsii runtime library
16439
+ from . import biome_config
16440
+
16441
+ def _typecheckingstub__fa4156d4e0a4a5a2efe965ea98ba35b587dcbfe01e1b4d659a959bcf54294ed2(
16442
+ *,
16443
+ level: typing.Optional[builtins.str] = None,
16444
+ prod_only: typing.Optional[builtins.bool] = None,
16445
+ run_on: typing.Optional[builtins.str] = None,
16446
+ ) -> None:
16447
+ """Type checking stubs"""
16448
+ pass
16449
+
16450
+ def _typecheckingstub__9f2264088409136f62af7e2ac4488206c06c3b9a69056be8b9ead20ab895f1bc(
16451
+ project: NodeProject,
16452
+ *,
16453
+ assist: typing.Optional[builtins.bool] = None,
16454
+ biome_config: typing.Optional[typing.Union[_BiomeConfiguration_dd1a6c83, typing.Dict[builtins.str, typing.Any]]] = None,
16455
+ formatter: typing.Optional[builtins.bool] = None,
16456
+ ignore_generated_files: typing.Optional[builtins.bool] = None,
16457
+ linter: typing.Optional[builtins.bool] = None,
16458
+ merge_arrays_in_configuration: typing.Optional[builtins.bool] = None,
16459
+ version: typing.Optional[builtins.str] = None,
16460
+ ) -> None:
16461
+ """Type checking stubs"""
16462
+ pass
16463
+
16464
+ def _typecheckingstub__02197aa3a69f17c43ff359679227be724559aba6ef0881da4e04e9a0bf66d078(
16465
+ project: _Project_57d89203,
16466
+ ) -> None:
16467
+ """Type checking stubs"""
16468
+ pass
16469
+
16470
+ def _typecheckingstub__5609a4432d207b19ee177e477fdf5e275031b8ec1346b00ac4bbfdf93f688757(
16471
+ pattern: builtins.str,
16472
+ ) -> None:
16473
+ """Type checking stubs"""
16474
+ pass
16475
+
16476
+ def _typecheckingstub__b53a2988afa9afc23bda2fe96e2de8ffaff18ab919e00b69a6c8d3d229f3dcc1(
16477
+ *,
16478
+ assist: typing.Optional[builtins.bool] = None,
16479
+ biome_config: typing.Optional[typing.Union[_BiomeConfiguration_dd1a6c83, typing.Dict[builtins.str, typing.Any]]] = None,
16480
+ formatter: typing.Optional[builtins.bool] = None,
16481
+ ignore_generated_files: typing.Optional[builtins.bool] = None,
16482
+ linter: typing.Optional[builtins.bool] = None,
16483
+ merge_arrays_in_configuration: typing.Optional[builtins.bool] = None,
16484
+ version: typing.Optional[builtins.str] = None,
16485
+ ) -> None:
16486
+ """Type checking stubs"""
16487
+ pass
16488
+
15339
16489
  def _typecheckingstub__12c3595783c38c358dfa0cc66282771c2ed2020f0770e8379920bb5731b72372(
15340
16490
  *,
16491
+ env: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
15341
16492
  name: typing.Optional[builtins.str] = None,
15342
16493
  permissions: typing.Optional[typing.Union[_JobPermissions_3b5b53dc, typing.Dict[builtins.str, typing.Any]]] = None,
15343
16494
  pre_build_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -15451,12 +16602,14 @@ def _typecheckingstub__41d20792db723180b2558eb351d1b15e6cc51985fdc95dd8481c5fae7
15451
16602
  dirs: typing.Sequence[builtins.str],
15452
16603
  alias_extensions: typing.Optional[typing.Sequence[builtins.str]] = None,
15453
16604
  alias_map: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
16605
+ command_options: typing.Optional[typing.Union[EslintCommandOptions, typing.Dict[builtins.str, typing.Any]]] = None,
15454
16606
  devdirs: typing.Optional[typing.Sequence[builtins.str]] = None,
15455
16607
  file_extensions: typing.Optional[typing.Sequence[builtins.str]] = None,
15456
16608
  ignore_patterns: typing.Optional[typing.Sequence[builtins.str]] = None,
15457
16609
  lint_projen_rc: typing.Optional[builtins.bool] = None,
15458
16610
  lint_projen_rc_file: typing.Optional[builtins.str] = None,
15459
16611
  prettier: typing.Optional[builtins.bool] = None,
16612
+ sort_extends: typing.Optional[_ICompareString_f119e19c] = None,
15460
16613
  ts_always_try_types: typing.Optional[builtins.bool] = None,
15461
16614
  tsconfig_path: typing.Optional[builtins.str] = None,
15462
16615
  yaml: typing.Optional[builtins.bool] = None,
@@ -15506,17 +16659,27 @@ def _typecheckingstub__45c512f160dd2d4145e1c0d43de9571ffe4d89e10b34c7d9a7b9fbba3
15506
16659
  """Type checking stubs"""
15507
16660
  pass
15508
16661
 
16662
+ def _typecheckingstub__ab5437a5e5c0bee91b2bed562cbb0dc9e80e748c8ca3251df4c2eb91ea3a4160(
16663
+ *,
16664
+ extra_args: typing.Optional[typing.Sequence[builtins.str]] = None,
16665
+ fix: typing.Optional[builtins.bool] = None,
16666
+ ) -> None:
16667
+ """Type checking stubs"""
16668
+ pass
16669
+
15509
16670
  def _typecheckingstub__26892c968b7bf4d64dd2597bbdabf1f1e9ced92002225a4eedfae6cbe3c22894(
15510
16671
  *,
15511
16672
  dirs: typing.Sequence[builtins.str],
15512
16673
  alias_extensions: typing.Optional[typing.Sequence[builtins.str]] = None,
15513
16674
  alias_map: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
16675
+ command_options: typing.Optional[typing.Union[EslintCommandOptions, typing.Dict[builtins.str, typing.Any]]] = None,
15514
16676
  devdirs: typing.Optional[typing.Sequence[builtins.str]] = None,
15515
16677
  file_extensions: typing.Optional[typing.Sequence[builtins.str]] = None,
15516
16678
  ignore_patterns: typing.Optional[typing.Sequence[builtins.str]] = None,
15517
16679
  lint_projen_rc: typing.Optional[builtins.bool] = None,
15518
16680
  lint_projen_rc_file: typing.Optional[builtins.str] = None,
15519
16681
  prettier: typing.Optional[builtins.bool] = None,
16682
+ sort_extends: typing.Optional[_ICompareString_f119e19c] = None,
15520
16683
  ts_always_try_types: typing.Optional[builtins.bool] = None,
15521
16684
  tsconfig_path: typing.Optional[builtins.str] = None,
15522
16685
  yaml: typing.Optional[builtins.bool] = None,
@@ -15548,7 +16711,7 @@ def _typecheckingstub__1d0f97663aee053bcca0e3b33c8be45ef5c6271b8e0c683a67d717aa9
15548
16711
  pass
15549
16712
 
15550
16713
  def _typecheckingstub__7f22158e02967239263c228b0eadfa82f5edd4d7b172b8506a5b32bc46ab7738(
15551
- project: NodeProject,
16714
+ scope: _constructs_77d1e7e8.IConstruct,
15552
16715
  *,
15553
16716
  config_file_path: typing.Optional[builtins.str] = None,
15554
16717
  coverage: typing.Optional[builtins.bool] = None,
@@ -15558,6 +16721,7 @@ def _typecheckingstub__7f22158e02967239263c228b0eadfa82f5edd4d7b172b8506a5b32bc4
15558
16721
  jest_config: typing.Optional[typing.Union[JestConfigOptions, typing.Dict[builtins.str, typing.Any]]] = None,
15559
16722
  jest_version: typing.Optional[builtins.str] = None,
15560
16723
  junit_reporting: typing.Optional[builtins.bool] = None,
16724
+ pass_with_no_tests: typing.Optional[builtins.bool] = None,
15561
16725
  preserve_default_reporters: typing.Optional[builtins.bool] = None,
15562
16726
  update_snapshot: typing.Optional[UpdateSnapshot] = None,
15563
16727
  ) -> None:
@@ -15630,6 +16794,14 @@ def _typecheckingstub__340f8ef9eed036d2e1af02ee13866e070b25e032c7262d1181adf28bb
15630
16794
  """Type checking stubs"""
15631
16795
  pass
15632
16796
 
16797
+ def _typecheckingstub__0681a729d70e1f1999defc63f8a0f12400f6e0b609f4fb8dbf7f858c435cd9b1(
16798
+ dirs: typing.Sequence[builtins.str],
16799
+ *,
16800
+ file_extension_pattern: typing.Optional[builtins.str] = None,
16801
+ ) -> None:
16802
+ """Type checking stubs"""
16803
+ pass
16804
+
15633
16805
  def _typecheckingstub__38439e86b40e7bc302e4faa48880e15ba8a10e5a2769a5b73cbf33a01a318752(
15634
16806
  *,
15635
16807
  additional_options: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
@@ -15702,6 +16874,13 @@ def _typecheckingstub__38439e86b40e7bc302e4faa48880e15ba8a10e5a2769a5b73cbf33a01
15702
16874
  """Type checking stubs"""
15703
16875
  pass
15704
16876
 
16877
+ def _typecheckingstub__987ab5c64454683ddeb28bad78f44cdd78a2099af6a0e44ff92f50bc40f8e486(
16878
+ *,
16879
+ file_extension_pattern: typing.Optional[builtins.str] = None,
16880
+ ) -> None:
16881
+ """Type checking stubs"""
16882
+ pass
16883
+
15705
16884
  def _typecheckingstub__6fea73c8bcc51e881c3829384cb90956e3310a1a08296d32da54fc51bd1b0872(
15706
16885
  *,
15707
16886
  config_file_path: typing.Optional[builtins.str] = None,
@@ -15712,6 +16891,7 @@ def _typecheckingstub__6fea73c8bcc51e881c3829384cb90956e3310a1a08296d32da54fc51b
15712
16891
  jest_config: typing.Optional[typing.Union[JestConfigOptions, typing.Dict[builtins.str, typing.Any]]] = None,
15713
16892
  jest_version: typing.Optional[builtins.str] = None,
15714
16893
  junit_reporting: typing.Optional[builtins.bool] = None,
16894
+ pass_with_no_tests: typing.Optional[builtins.bool] = None,
15715
16895
  preserve_default_reporters: typing.Optional[builtins.bool] = None,
15716
16896
  update_snapshot: typing.Optional[UpdateSnapshot] = None,
15717
16897
  ) -> None:
@@ -15761,6 +16941,7 @@ def _typecheckingstub__d10cd20471c8ed8e2de153476379f00bfa1b587c92e8982006812a0e3
15761
16941
  bugs_email: typing.Optional[builtins.str] = None,
15762
16942
  bugs_url: typing.Optional[builtins.str] = None,
15763
16943
  bundled_deps: typing.Optional[typing.Sequence[builtins.str]] = None,
16944
+ bun_version: typing.Optional[builtins.str] = None,
15764
16945
  code_artifact_options: typing.Optional[typing.Union[CodeArtifactOptions, typing.Dict[builtins.str, typing.Any]]] = None,
15765
16946
  deps: typing.Optional[typing.Sequence[builtins.str]] = None,
15766
16947
  description: typing.Optional[builtins.str] = None,
@@ -15777,6 +16958,7 @@ def _typecheckingstub__d10cd20471c8ed8e2de153476379f00bfa1b587c92e8982006812a0e3
15777
16958
  npm_registry: typing.Optional[builtins.str] = None,
15778
16959
  npm_registry_url: typing.Optional[builtins.str] = None,
15779
16960
  npm_token_secret: typing.Optional[builtins.str] = None,
16961
+ npm_trusted_publishing: typing.Optional[builtins.bool] = None,
15780
16962
  package_manager: typing.Optional[NodePackageManager] = None,
15781
16963
  package_name: typing.Optional[builtins.str] = None,
15782
16964
  peer_dependency_options: typing.Optional[typing.Union[PeerDependencyOptions, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -15897,6 +17079,7 @@ def _typecheckingstub__32555a77b63910142de45100c4a6d74880ddece00a3cbae9c27803467
15897
17079
  bugs_email: typing.Optional[builtins.str] = None,
15898
17080
  bugs_url: typing.Optional[builtins.str] = None,
15899
17081
  bundled_deps: typing.Optional[typing.Sequence[builtins.str]] = None,
17082
+ bun_version: typing.Optional[builtins.str] = None,
15900
17083
  code_artifact_options: typing.Optional[typing.Union[CodeArtifactOptions, typing.Dict[builtins.str, typing.Any]]] = None,
15901
17084
  deps: typing.Optional[typing.Sequence[builtins.str]] = None,
15902
17085
  description: typing.Optional[builtins.str] = None,
@@ -15913,6 +17096,7 @@ def _typecheckingstub__32555a77b63910142de45100c4a6d74880ddece00a3cbae9c27803467
15913
17096
  npm_registry: typing.Optional[builtins.str] = None,
15914
17097
  npm_registry_url: typing.Optional[builtins.str] = None,
15915
17098
  npm_token_secret: typing.Optional[builtins.str] = None,
17099
+ npm_trusted_publishing: typing.Optional[builtins.bool] = None,
15916
17100
  package_manager: typing.Optional[NodePackageManager] = None,
15917
17101
  package_name: typing.Optional[builtins.str] = None,
15918
17102
  peer_dependency_options: typing.Optional[typing.Union[PeerDependencyOptions, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -16060,6 +17244,7 @@ def _typecheckingstub__05c2eb8aa04095bbe6af788737363089516ccd341e3a6624f153e8ff7
16060
17244
  bugs_email: typing.Optional[builtins.str] = None,
16061
17245
  bugs_url: typing.Optional[builtins.str] = None,
16062
17246
  bundled_deps: typing.Optional[typing.Sequence[builtins.str]] = None,
17247
+ bun_version: typing.Optional[builtins.str] = None,
16063
17248
  code_artifact_options: typing.Optional[typing.Union[CodeArtifactOptions, typing.Dict[builtins.str, typing.Any]]] = None,
16064
17249
  deps: typing.Optional[typing.Sequence[builtins.str]] = None,
16065
17250
  description: typing.Optional[builtins.str] = None,
@@ -16076,6 +17261,7 @@ def _typecheckingstub__05c2eb8aa04095bbe6af788737363089516ccd341e3a6624f153e8ff7
16076
17261
  npm_registry: typing.Optional[builtins.str] = None,
16077
17262
  npm_registry_url: typing.Optional[builtins.str] = None,
16078
17263
  npm_token_secret: typing.Optional[builtins.str] = None,
17264
+ npm_trusted_publishing: typing.Optional[builtins.bool] = None,
16079
17265
  package_manager: typing.Optional[NodePackageManager] = None,
16080
17266
  package_name: typing.Optional[builtins.str] = None,
16081
17267
  peer_dependency_options: typing.Optional[typing.Union[PeerDependencyOptions, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -16087,9 +17273,11 @@ def _typecheckingstub__05c2eb8aa04095bbe6af788737363089516ccd341e3a6624f153e8ff7
16087
17273
  scripts: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
16088
17274
  stability: typing.Optional[builtins.str] = None,
16089
17275
  yarn_berry_options: typing.Optional[typing.Union[YarnBerryOptions, typing.Dict[builtins.str, typing.Any]]] = None,
17276
+ bump_package: typing.Optional[builtins.str] = None,
16090
17277
  jsii_release_version: typing.Optional[builtins.str] = None,
16091
17278
  major_version: typing.Optional[jsii.Number] = None,
16092
17279
  min_major_version: typing.Optional[jsii.Number] = None,
17280
+ next_version_command: typing.Optional[builtins.str] = None,
16093
17281
  npm_dist_tag: typing.Optional[builtins.str] = None,
16094
17282
  post_build_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
16095
17283
  prerelease: typing.Optional[builtins.str] = None,
@@ -16097,12 +17285,14 @@ def _typecheckingstub__05c2eb8aa04095bbe6af788737363089516ccd341e3a6624f153e8ff7
16097
17285
  publish_tasks: typing.Optional[builtins.bool] = None,
16098
17286
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
16099
17287
  release_branches: typing.Optional[typing.Mapping[builtins.str, typing.Union[_BranchOptions_13663d08, typing.Dict[builtins.str, typing.Any]]]] = None,
17288
+ release_environment: typing.Optional[builtins.str] = None,
16100
17289
  release_every_commit: typing.Optional[builtins.bool] = None,
16101
17290
  release_failure_issue: typing.Optional[builtins.bool] = None,
16102
17291
  release_failure_issue_label: typing.Optional[builtins.str] = None,
16103
17292
  release_schedule: typing.Optional[builtins.str] = None,
16104
17293
  release_tag_prefix: typing.Optional[builtins.str] = None,
16105
17294
  release_trigger: typing.Optional[_ReleaseTrigger_e4dc221f] = None,
17295
+ release_workflow_env: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
16106
17296
  release_workflow_name: typing.Optional[builtins.str] = None,
16107
17297
  release_workflow_setup_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
16108
17298
  versionrc_options: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
@@ -16111,7 +17301,11 @@ def _typecheckingstub__05c2eb8aa04095bbe6af788737363089516ccd341e3a6624f153e8ff7
16111
17301
  workflow_runs_on_group: typing.Optional[typing.Union[_GroupRunnerOptions_148c59c1, typing.Dict[builtins.str, typing.Any]]] = None,
16112
17302
  default_release_branch: builtins.str,
16113
17303
  artifacts_directory: typing.Optional[builtins.str] = None,
17304
+ audit_deps: typing.Optional[builtins.bool] = None,
17305
+ audit_deps_options: typing.Optional[typing.Union[AuditOptions, typing.Dict[builtins.str, typing.Any]]] = None,
16114
17306
  auto_approve_upgrades: typing.Optional[builtins.bool] = None,
17307
+ biome: typing.Optional[builtins.bool] = None,
17308
+ biome_options: typing.Optional[typing.Union[BiomeOptions, typing.Dict[builtins.str, typing.Any]]] = None,
16115
17309
  build_workflow: typing.Optional[builtins.bool] = None,
16116
17310
  build_workflow_options: typing.Optional[typing.Union[BuildWorkflowOptions, typing.Dict[builtins.str, typing.Any]]] = None,
16117
17311
  build_workflow_triggers: typing.Optional[typing.Union[_Triggers_e9ae7617, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -16334,6 +17528,7 @@ def _typecheckingstub__c3368fe3a3107764de1a64c16f7fe4c15d510477a888b2a74df2afb14
16334
17528
  jsx_import_source: typing.Optional[builtins.str] = None,
16335
17529
  lib: typing.Optional[typing.Sequence[builtins.str]] = None,
16336
17530
  module: typing.Optional[builtins.str] = None,
17531
+ module_detection: typing.Optional[TypeScriptModuleDetection] = None,
16337
17532
  module_resolution: typing.Optional[TypeScriptModuleResolution] = None,
16338
17533
  no_emit: typing.Optional[builtins.bool] = None,
16339
17534
  no_emit_on_error: typing.Optional[builtins.bool] = None,
@@ -16361,6 +17556,7 @@ def _typecheckingstub__c3368fe3a3107764de1a64c16f7fe4c15d510477a888b2a74df2afb14
16361
17556
  strip_internal: typing.Optional[builtins.bool] = None,
16362
17557
  target: typing.Optional[builtins.str] = None,
16363
17558
  ts_build_info_file: typing.Optional[builtins.str] = None,
17559
+ type_roots: typing.Optional[typing.Sequence[builtins.str]] = None,
16364
17560
  types: typing.Optional[typing.Sequence[builtins.str]] = None,
16365
17561
  use_unknown_in_catch_variables: typing.Optional[builtins.bool] = None,
16366
17562
  verbatim_module_syntax: typing.Optional[builtins.bool] = None,
@@ -16398,6 +17594,18 @@ def _typecheckingstub__ecc6431d5d9f322d469f99e5739da10bb780beb09da03305a82dac281
16398
17594
  """Type checking stubs"""
16399
17595
  pass
16400
17596
 
17597
+ def _typecheckingstub__9f78586828830a46219bc19d7af8c53b4b5a1cc2bc1a03491930c9271790f10a(
17598
+ pattern: builtins.str,
17599
+ ) -> None:
17600
+ """Type checking stubs"""
17601
+ pass
17602
+
17603
+ def _typecheckingstub__85556ff93e412b3ea5e894bc7d7669275e51dfae8c077378748d8053a46e4946(
17604
+ pattern: builtins.str,
17605
+ ) -> None:
17606
+ """Type checking stubs"""
17607
+ pass
17608
+
16401
17609
  def _typecheckingstub__c4b076d47872be6e9462b52280fba0e6d5509d09e6f0c405542d8edb8b704f3d(
16402
17610
  config_path: builtins.str,
16403
17611
  ) -> None:
@@ -16430,8 +17638,10 @@ def _typecheckingstub__f928658806d66c2cd4f3977b17ae3d10092cf4b9afb10e736c01729b7
16430
17638
  def _typecheckingstub__497e18a2c8dc3200cff8b21dfad7c418d29517aa6d67e2a2555ee78fa63ff385(
16431
17639
  project: NodeProject,
16432
17640
  *,
17641
+ cooldown: typing.Optional[jsii.Number] = None,
16433
17642
  exclude: typing.Optional[typing.Sequence[builtins.str]] = None,
16434
17643
  include: typing.Optional[typing.Sequence[builtins.str]] = None,
17644
+ include_deprecated_versions: typing.Optional[builtins.bool] = None,
16435
17645
  pull_request_title: typing.Optional[builtins.str] = None,
16436
17646
  satisfy_peer_dependencies: typing.Optional[builtins.bool] = None,
16437
17647
  semantic_commit: typing.Optional[builtins.str] = None,
@@ -16459,8 +17669,10 @@ def _typecheckingstub__66ba20de6f144f37e582e192e3ed592a6be0e8bc3d10e3b730af62082
16459
17669
 
16460
17670
  def _typecheckingstub__0f7b896c11469470869bc4bfc86c9bb13fd308223e316ba71124c00b5709af1e(
16461
17671
  *,
17672
+ cooldown: typing.Optional[jsii.Number] = None,
16462
17673
  exclude: typing.Optional[typing.Sequence[builtins.str]] = None,
16463
17674
  include: typing.Optional[typing.Sequence[builtins.str]] = None,
17675
+ include_deprecated_versions: typing.Optional[builtins.bool] = None,
16464
17676
  pull_request_title: typing.Optional[builtins.str] = None,
16465
17677
  satisfy_peer_dependencies: typing.Optional[builtins.bool] = None,
16466
17678
  semantic_commit: typing.Optional[builtins.str] = None,
@@ -16485,6 +17697,7 @@ def _typecheckingstub__59fa39c2475322c21b2f7d03f2f2ada171b7e546b1d88beb8a75baa82
16485
17697
  assignees: typing.Optional[typing.Sequence[builtins.str]] = None,
16486
17698
  branches: typing.Optional[typing.Sequence[builtins.str]] = None,
16487
17699
  container: typing.Optional[typing.Union[_ContainerOptions_f50907af, typing.Dict[builtins.str, typing.Any]]] = None,
17700
+ env: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
16488
17701
  git_identity: typing.Optional[typing.Union[_GitIdentity_6effc3de, typing.Dict[builtins.str, typing.Any]]] = None,
16489
17702
  labels: typing.Optional[typing.Sequence[builtins.str]] = None,
16490
17703
  permissions: typing.Optional[typing.Union[_JobPermissions_3b5b53dc, typing.Dict[builtins.str, typing.Any]]] = None,