projen 0.79.4__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.
@@ -1,3 +1,6 @@
1
+ from pkgutil import extend_path
2
+ __path__ = extend_path(__path__, __name__)
3
+
1
4
  import abc
2
5
  import builtins
3
6
  import datetime
@@ -8,7 +11,22 @@ import jsii
8
11
  import publication
9
12
  import typing_extensions
10
13
 
11
- 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
12
30
 
13
31
  from .._jsii import *
14
32
 
@@ -40,6 +58,9 @@ from ..github.workflows import (
40
58
  JobStep as _JobStep_c3287c05, Triggers as _Triggers_e9ae7617
41
59
  )
42
60
  from ..javascript import (
61
+ AuditOptions as _AuditOptions_429c62df,
62
+ BiomeOptions as _BiomeOptions_452ab984,
63
+ BuildWorkflowOptions as _BuildWorkflowOptions_b756f97f,
43
64
  BundlerOptions as _BundlerOptions_d60b85ed,
44
65
  CodeArtifactOptions as _CodeArtifactOptions_e4782b3e,
45
66
  Eslint as _Eslint_b3991f7f,
@@ -55,8 +76,11 @@ from ..javascript import (
55
76
  ProjenrcOptions as _ProjenrcOptions_179dd39f,
56
77
  ScopedPackagesOptions as _ScopedPackagesOptions_52f0a477,
57
78
  TypeScriptCompilerOptions as _TypeScriptCompilerOptions_829fc4b0,
79
+ TypeScriptImportsNotUsedAsValues as _TypeScriptImportsNotUsedAsValues_95cb8527,
80
+ TypeScriptJsxMode as _TypeScriptJsxMode_8489d67f,
81
+ TypeScriptModuleDetection as _TypeScriptModuleDetection_28bd432f,
82
+ TypeScriptModuleResolution as _TypeScriptModuleResolution_56cffb1b,
58
83
  TypescriptConfig as _TypescriptConfig_e4a2920d,
59
- TypescriptConfigExtends as _TypescriptConfigExtends_ba2a99fc,
60
84
  TypescriptConfigOptions as _TypescriptConfigOptions_8c5492cd,
61
85
  UpgradeDependenciesOptions as _UpgradeDependenciesOptions_1d8ce4da,
62
86
  YarnBerryOptions as _YarnBerryOptions_b6942539,
@@ -734,29 +758,197 @@ class TsJestTsconfig(
734
758
  def custom(
735
759
  cls,
736
760
  *,
737
- compiler_options: typing.Union[_TypeScriptCompilerOptions_829fc4b0, typing.Dict[builtins.str, typing.Any]],
738
- exclude: typing.Optional[typing.Sequence[builtins.str]] = None,
739
- extends: typing.Optional[_TypescriptConfigExtends_ba2a99fc] = None,
740
- file_name: typing.Optional[builtins.str] = None,
741
- include: typing.Optional[typing.Sequence[builtins.str]] = None,
761
+ allow_arbitrary_extensions: typing.Optional[builtins.bool] = None,
762
+ allow_importing_ts_extensions: typing.Optional[builtins.bool] = None,
763
+ allow_js: typing.Optional[builtins.bool] = None,
764
+ allow_synthetic_default_imports: typing.Optional[builtins.bool] = None,
765
+ allow_unreachable_code: typing.Optional[builtins.bool] = None,
766
+ allow_unused_labels: typing.Optional[builtins.bool] = None,
767
+ always_strict: typing.Optional[builtins.bool] = None,
768
+ base_url: typing.Optional[builtins.str] = None,
769
+ check_js: typing.Optional[builtins.bool] = None,
770
+ custom_conditions: typing.Optional[typing.Sequence[builtins.str]] = None,
771
+ declaration: typing.Optional[builtins.bool] = None,
772
+ declaration_dir: typing.Optional[builtins.str] = None,
773
+ declaration_map: typing.Optional[builtins.bool] = None,
774
+ downlevel_iteration: typing.Optional[builtins.bool] = None,
775
+ emit_declaration_only: typing.Optional[builtins.bool] = None,
776
+ emit_decorator_metadata: typing.Optional[builtins.bool] = None,
777
+ es_module_interop: typing.Optional[builtins.bool] = None,
778
+ exact_optional_property_types: typing.Optional[builtins.bool] = None,
779
+ experimental_decorators: typing.Optional[builtins.bool] = None,
780
+ force_consistent_casing_in_file_names: typing.Optional[builtins.bool] = None,
781
+ imports_not_used_as_values: typing.Optional[_TypeScriptImportsNotUsedAsValues_95cb8527] = None,
782
+ incremental: typing.Optional[builtins.bool] = None,
783
+ inline_source_map: typing.Optional[builtins.bool] = None,
784
+ inline_sources: typing.Optional[builtins.bool] = None,
785
+ isolated_modules: typing.Optional[builtins.bool] = None,
786
+ jsx: typing.Optional[_TypeScriptJsxMode_8489d67f] = None,
787
+ jsx_import_source: typing.Optional[builtins.str] = None,
788
+ lib: typing.Optional[typing.Sequence[builtins.str]] = None,
789
+ module: typing.Optional[builtins.str] = None,
790
+ module_detection: typing.Optional[_TypeScriptModuleDetection_28bd432f] = None,
791
+ module_resolution: typing.Optional[_TypeScriptModuleResolution_56cffb1b] = None,
792
+ no_emit: typing.Optional[builtins.bool] = None,
793
+ no_emit_on_error: typing.Optional[builtins.bool] = None,
794
+ no_fallthrough_cases_in_switch: typing.Optional[builtins.bool] = None,
795
+ no_implicit_any: typing.Optional[builtins.bool] = None,
796
+ no_implicit_override: typing.Optional[builtins.bool] = None,
797
+ no_implicit_returns: typing.Optional[builtins.bool] = None,
798
+ no_implicit_this: typing.Optional[builtins.bool] = None,
799
+ no_property_access_from_index_signature: typing.Optional[builtins.bool] = None,
800
+ no_unchecked_indexed_access: typing.Optional[builtins.bool] = None,
801
+ no_unused_locals: typing.Optional[builtins.bool] = None,
802
+ no_unused_parameters: typing.Optional[builtins.bool] = None,
803
+ out_dir: typing.Optional[builtins.str] = None,
804
+ paths: typing.Optional[typing.Mapping[builtins.str, typing.Sequence[builtins.str]]] = None,
805
+ resolve_json_module: typing.Optional[builtins.bool] = None,
806
+ resolve_package_json_exports: typing.Optional[builtins.bool] = None,
807
+ resolve_package_json_imports: typing.Optional[builtins.bool] = None,
808
+ root_dir: typing.Optional[builtins.str] = None,
809
+ skip_lib_check: typing.Optional[builtins.bool] = None,
810
+ source_map: typing.Optional[builtins.bool] = None,
811
+ source_root: typing.Optional[builtins.str] = None,
812
+ strict: typing.Optional[builtins.bool] = None,
813
+ strict_null_checks: typing.Optional[builtins.bool] = None,
814
+ strict_property_initialization: typing.Optional[builtins.bool] = None,
815
+ strip_internal: typing.Optional[builtins.bool] = None,
816
+ target: typing.Optional[builtins.str] = None,
817
+ ts_build_info_file: typing.Optional[builtins.str] = None,
818
+ type_roots: typing.Optional[typing.Sequence[builtins.str]] = None,
819
+ types: typing.Optional[typing.Sequence[builtins.str]] = None,
820
+ use_unknown_in_catch_variables: typing.Optional[builtins.bool] = None,
821
+ verbatim_module_syntax: typing.Optional[builtins.bool] = None,
742
822
  ) -> "TsJestTsconfig":
743
823
  '''(experimental) Inline compiler options.
744
824
 
745
- :param compiler_options: (experimental) Compiler options to use.
746
- :param exclude: (experimental) Filters results from the "include" option. Default: - node_modules is excluded by default
747
- :param extends: (experimental) Base ``tsconfig.json`` configuration(s) to inherit from.
748
- :param file_name: Default: "tsconfig.json"
749
- :param include: (experimental) Specifies a list of glob patterns that match TypeScript files to be included in compilation. Default: - all .ts files recursively
750
-
751
- :see: TypescriptConfigOptions
752
- :stability: experimental
753
- '''
754
- config = _TypescriptConfigOptions_8c5492cd(
755
- compiler_options=compiler_options,
756
- exclude=exclude,
757
- extends=extends,
758
- file_name=file_name,
759
- include=include,
825
+ :param allow_arbitrary_extensions: (experimental) Suppress arbitrary extension import errors with the assumption that a bundler will be handling it. Default: undefined
826
+ :param allow_importing_ts_extensions: (experimental) Allows TypeScript files to import each other with TypeScript-specific extensions (``.ts``, ``.mts``, ``.tsx``). Requires ``noEmit`` or ``emitDeclarationOnly``. Default: undefined
827
+ :param allow_js: (experimental) Allow JavaScript files to be compiled. Default: false
828
+ :param allow_synthetic_default_imports: (experimental) Allow default imports from modules with no default export. This does not affect code emit, just typechecking.
829
+ :param allow_unreachable_code: (experimental) Allow Unreachable Code. When: - ``undefined`` (default) provide suggestions as warnings to editors - ``true`` unreachable code is ignored - ``false`` raises compiler errors about unreachable code These warnings are only about code which is provably unreachable due to the use of JavaScript syntax.
830
+ :param allow_unused_labels: (experimental) Allow Unused Labels. When: - ``undefined`` (default) provide suggestions as warnings to editors - ``true`` unused labels are ignored - ``false`` raises compiler errors about unused labels Labels are very rare in JavaScript and typically indicate an attempt to write an object literal:: function verifyAge(age: number) { // Forgot 'return' statement if (age > 18) { verified: true; // ^^^^^^^^ Unused label. } }
831
+ :param always_strict: (experimental) Ensures that your files are parsed in the ECMAScript strict mode, and emit “use strict” for each source file. Default: true
832
+ :param base_url: (experimental) Lets you set a base directory to resolve non-absolute module names. You can define a root folder where you can do absolute file resolution.
833
+ :param check_js: (experimental) Check JS. Works in tandem with `allowJs <https://www.typescriptlang.org/tsconfig#allowJs>`_. When checkJs is enabled then errors are reported in JavaScript files. This is the equivalent of including //
834
+ :param custom_conditions: (experimental) List of additional conditions that should succeed when TypeScript resolves from an ``exports`` or ``imports`` field of a ``package.json``. Default: undefined
835
+ :param declaration: (experimental) To be specified along with the above.
836
+ :param declaration_dir: (experimental) Offers a way to configure the root directory for where declaration files are emitted.
837
+ :param declaration_map: (experimental) Generates a source map for .d.ts files which map back to the original .ts source file. This will allow editors such as VS Code to go to the original .ts file when using features like Go to Definition.
838
+ :param downlevel_iteration: (experimental) Downleveling is TypeScript’s term for transpiling to an older version of JavaScript. This flag is to enable support for a more accurate implementation of how modern JavaScript iterates through new concepts in older JavaScript runtimes. ECMAScript 6 added several new iteration primitives: the for / of loop (for (el of arr)), Array spread ([a, ...b]), argument spread (fn(...args)), and Symbol.iterator. downlevelIteration allows for these iteration primitives to be used more accurately in ES5 environments if a Symbol.iterator implementation is present.
839
+ :param emit_declaration_only: (experimental) Only emit .d.ts files; do not emit .js files. Default: false
840
+ :param emit_decorator_metadata: (experimental) Enables experimental support for decorators, which is in stage 2 of the TC39 standardization process. Decorators are a language feature which hasn’t yet been fully ratified into the JavaScript specification. This means that the implementation version in TypeScript may differ from the implementation in JavaScript when it it decided by TC39. You can find out more about decorator support in TypeScript in the handbook. Default: undefined
841
+ :param es_module_interop: (experimental) Emit __importStar and __importDefault helpers for runtime babel ecosystem compatibility and enable --allowSyntheticDefaultImports for typesystem compatibility. Default: false
842
+ :param exact_optional_property_types: (experimental) Specifies that optional property types should be interpreted exactly as written, meaning that ``| undefined`` is not added to the type Available with TypeScript 4.4 and newer. Default: false
843
+ :param experimental_decorators: (experimental) Enables experimental support for decorators, which is in stage 2 of the TC39 standardization process. Default: true
844
+ :param force_consistent_casing_in_file_names: (experimental) Disallow inconsistently-cased references to the same file. Default: false
845
+ :param imports_not_used_as_values: (experimental) This flag works because you can use ``import type`` to explicitly create an ``import`` statement which should never be emitted into JavaScript. Default: "remove"
846
+ :param incremental: (experimental) Tells TypeScript to save information about the project graph from the last compilation to files stored on disk. This creates a series of .tsbuildinfo files in the same folder as your compilation output. They are not used by your JavaScript at runtime and can be safely deleted. You can read more about the flag in the 3.4 release notes.
847
+ :param inline_source_map: (experimental) When set, instead of writing out a .js.map file to provide source maps, TypeScript will embed the source map content in the .js files. Default: true
848
+ :param inline_sources: (experimental) When set, TypeScript will include the original content of the .ts file as an embedded string in the source map. This is often useful in the same cases as inlineSourceMap. Default: true
849
+ :param isolated_modules: (experimental) Perform additional checks to ensure that separate compilation (such as with transpileModule or. Default: false
850
+ :param jsx: (experimental) Support JSX in .tsx files: "react", "preserve", "react-native" etc. Default: undefined
851
+ :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
852
+ :param lib: (experimental) Reference for type definitions / libraries to use (eg. ES2016, ES5, ES2018). Default: [ "es2018" ]
853
+ :param module: (experimental) Sets the module system for the program. See https://www.typescriptlang.org/docs/handbook/modules.html#ambient-modules. Default: "CommonJS"
854
+ :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"
855
+ :param module_resolution: (experimental) Determine how modules get resolved. Either "Node" for Node.js/io.js style resolution, or "Classic". Default: "node"
856
+ :param no_emit: (experimental) Do not emit outputs. Default: false
857
+ :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
858
+ :param no_fallthrough_cases_in_switch: (experimental) Report errors for fallthrough cases in switch statements. Ensures that any non-empty case inside a switch statement includes either break or return. This means you won’t accidentally ship a case fallthrough bug. Default: true
859
+ :param no_implicit_any: (experimental) In some cases where no type annotations are present, TypeScript will fall back to a type of any for a variable when it cannot infer the type. Default: true
860
+ :param no_implicit_override: (experimental) Using ``noImplicitOverride``, you can ensure that sub-classes never go out of sync as they are required to explicitly declare that they are overriding a member using the ``override`` keyword. This also improves readability of the programmer's intent. Available with TypeScript 4.3 and newer. Default: false
861
+ :param no_implicit_returns: (experimental) When enabled, TypeScript will check all code paths in a function to ensure they return a value. Default: true
862
+ :param no_implicit_this: (experimental) Raise error on ‘this’ expressions with an implied ‘any’ type. Default: true
863
+ :param no_property_access_from_index_signature: (experimental) Raise error on use of the dot syntax to access fields which are not defined. Default: true
864
+ :param no_unchecked_indexed_access: (experimental) Raise error when accessing indexes on objects with unknown keys defined in index signatures. Default: true
865
+ :param no_unused_locals: (experimental) Report errors on unused local variables. Default: true
866
+ :param no_unused_parameters: (experimental) Report errors on unused parameters in functions. Default: true
867
+ :param out_dir: (experimental) Output directory for the compiled files.
868
+ :param paths: (experimental) A series of entries which re-map imports to lookup locations relative to the baseUrl, there is a larger coverage of paths in the handbook. paths lets you declare how TypeScript should resolve an import in your require/imports.
869
+ :param resolve_json_module: (experimental) Allows importing modules with a ‘.json’ extension, which is a common practice in node projects. This includes generating a type for the import based on the static JSON shape. Default: true
870
+ :param resolve_package_json_exports: (experimental) Forces TypeScript to consult the ``exports`` field of ``package.json`` files if it ever reads from a package in ``node_modules``. Default: true
871
+ :param resolve_package_json_imports: (experimental) Forces TypeScript to consult the ``imports`` field of ``package.json`` when performing a lookup that begins with ``#`` from a file that has a ``package.json`` as an ancestor. Default: undefined
872
+ :param root_dir: (experimental) Specifies the root directory of input files. Only use to control the output directory structure with ``outDir``.
873
+ :param skip_lib_check: (experimental) Skip type checking of all declaration files (*.d.ts). Default: false
874
+ :param source_map: (experimental) Enables the generation of sourcemap files. Default: undefined
875
+ :param source_root: (experimental) Specify the location where a debugger should locate TypeScript files instead of relative source locations. Default: undefined
876
+ :param strict: (experimental) The strict flag enables a wide range of type checking behavior that results in stronger guarantees of program correctness. Turning this on is equivalent to enabling all of the strict mode family options, which are outlined below. You can then turn off individual strict mode family checks as needed. Default: true
877
+ :param strict_null_checks: (experimental) When strictNullChecks is false, null and undefined are effectively ignored by the language. This can lead to unexpected errors at runtime. When strictNullChecks is true, null and undefined have their own distinct types and you’ll get a type error if you try to use them where a concrete value is expected. Default: true
878
+ :param strict_property_initialization: (experimental) When set to true, TypeScript will raise an error when a class property was declared but not set in the constructor. Default: true
879
+ :param strip_internal: (experimental) Do not emit declarations for code that has an ``@internal`` annotation in it’s JSDoc comment. Default: true
880
+ :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"
881
+ :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.
882
+ :param type_roots: (experimental) If typeRoots is specified, only packages under typeRoots will be included.
883
+ :param types: (experimental) If types is specified, only packages listed will be included in the global scope.
884
+ :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
885
+ :param verbatim_module_syntax: (experimental) Simplifies TypeScript's handling of import/export ``type`` modifiers. Default: undefined
886
+
887
+ :see: TypeScriptCompilerOptions
888
+ :stability: experimental
889
+ '''
890
+ config = _TypeScriptCompilerOptions_829fc4b0(
891
+ allow_arbitrary_extensions=allow_arbitrary_extensions,
892
+ allow_importing_ts_extensions=allow_importing_ts_extensions,
893
+ allow_js=allow_js,
894
+ allow_synthetic_default_imports=allow_synthetic_default_imports,
895
+ allow_unreachable_code=allow_unreachable_code,
896
+ allow_unused_labels=allow_unused_labels,
897
+ always_strict=always_strict,
898
+ base_url=base_url,
899
+ check_js=check_js,
900
+ custom_conditions=custom_conditions,
901
+ declaration=declaration,
902
+ declaration_dir=declaration_dir,
903
+ declaration_map=declaration_map,
904
+ downlevel_iteration=downlevel_iteration,
905
+ emit_declaration_only=emit_declaration_only,
906
+ emit_decorator_metadata=emit_decorator_metadata,
907
+ es_module_interop=es_module_interop,
908
+ exact_optional_property_types=exact_optional_property_types,
909
+ experimental_decorators=experimental_decorators,
910
+ force_consistent_casing_in_file_names=force_consistent_casing_in_file_names,
911
+ imports_not_used_as_values=imports_not_used_as_values,
912
+ incremental=incremental,
913
+ inline_source_map=inline_source_map,
914
+ inline_sources=inline_sources,
915
+ isolated_modules=isolated_modules,
916
+ jsx=jsx,
917
+ jsx_import_source=jsx_import_source,
918
+ lib=lib,
919
+ module=module,
920
+ module_detection=module_detection,
921
+ module_resolution=module_resolution,
922
+ no_emit=no_emit,
923
+ no_emit_on_error=no_emit_on_error,
924
+ no_fallthrough_cases_in_switch=no_fallthrough_cases_in_switch,
925
+ no_implicit_any=no_implicit_any,
926
+ no_implicit_override=no_implicit_override,
927
+ no_implicit_returns=no_implicit_returns,
928
+ no_implicit_this=no_implicit_this,
929
+ no_property_access_from_index_signature=no_property_access_from_index_signature,
930
+ no_unchecked_indexed_access=no_unchecked_indexed_access,
931
+ no_unused_locals=no_unused_locals,
932
+ no_unused_parameters=no_unused_parameters,
933
+ out_dir=out_dir,
934
+ paths=paths,
935
+ resolve_json_module=resolve_json_module,
936
+ resolve_package_json_exports=resolve_package_json_exports,
937
+ resolve_package_json_imports=resolve_package_json_imports,
938
+ root_dir=root_dir,
939
+ skip_lib_check=skip_lib_check,
940
+ source_map=source_map,
941
+ source_root=source_root,
942
+ strict=strict,
943
+ strict_null_checks=strict_null_checks,
944
+ strict_property_initialization=strict_property_initialization,
945
+ strip_internal=strip_internal,
946
+ target=target,
947
+ ts_build_info_file=ts_build_info_file,
948
+ type_roots=type_roots,
949
+ types=types,
950
+ use_unknown_in_catch_variables=use_unknown_in_catch_variables,
951
+ verbatim_module_syntax=verbatim_module_syntax,
760
952
  )
761
953
 
762
954
  return typing.cast("TsJestTsconfig", jsii.sinvoke(cls, "custom", [config]))
@@ -812,8 +1004,13 @@ class TypeScriptProject(
812
1004
  typescript_version: typing.Optional[builtins.str] = None,
813
1005
  default_release_branch: builtins.str,
814
1006
  artifacts_directory: typing.Optional[builtins.str] = None,
1007
+ audit_deps: typing.Optional[builtins.bool] = None,
1008
+ audit_deps_options: typing.Optional[typing.Union[_AuditOptions_429c62df, typing.Dict[builtins.str, typing.Any]]] = None,
815
1009
  auto_approve_upgrades: typing.Optional[builtins.bool] = None,
1010
+ biome: typing.Optional[builtins.bool] = None,
1011
+ biome_options: typing.Optional[typing.Union[_BiomeOptions_452ab984, typing.Dict[builtins.str, typing.Any]]] = None,
816
1012
  build_workflow: typing.Optional[builtins.bool] = None,
1013
+ build_workflow_options: typing.Optional[typing.Union[_BuildWorkflowOptions_b756f97f, typing.Dict[builtins.str, typing.Any]]] = None,
817
1014
  build_workflow_triggers: typing.Optional[typing.Union[_Triggers_e9ae7617, typing.Dict[builtins.str, typing.Any]]] = None,
818
1015
  bundler_options: typing.Optional[typing.Union[_BundlerOptions_d60b85ed, typing.Dict[builtins.str, typing.Any]]] = None,
819
1016
  check_licenses: typing.Optional[typing.Union[_LicenseCheckerOptions_80bcd362, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -875,6 +1072,7 @@ class TypeScriptProject(
875
1072
  bugs_email: typing.Optional[builtins.str] = None,
876
1073
  bugs_url: typing.Optional[builtins.str] = None,
877
1074
  bundled_deps: typing.Optional[typing.Sequence[builtins.str]] = None,
1075
+ bun_version: typing.Optional[builtins.str] = None,
878
1076
  code_artifact_options: typing.Optional[typing.Union[_CodeArtifactOptions_e4782b3e, typing.Dict[builtins.str, typing.Any]]] = None,
879
1077
  deps: typing.Optional[typing.Sequence[builtins.str]] = None,
880
1078
  description: typing.Optional[builtins.str] = None,
@@ -887,9 +1085,11 @@ class TypeScriptProject(
887
1085
  max_node_version: typing.Optional[builtins.str] = None,
888
1086
  min_node_version: typing.Optional[builtins.str] = None,
889
1087
  npm_access: typing.Optional[_NpmAccess_134fa228] = None,
1088
+ npm_provenance: typing.Optional[builtins.bool] = None,
890
1089
  npm_registry: typing.Optional[builtins.str] = None,
891
1090
  npm_registry_url: typing.Optional[builtins.str] = None,
892
1091
  npm_token_secret: typing.Optional[builtins.str] = None,
1092
+ npm_trusted_publishing: typing.Optional[builtins.bool] = None,
893
1093
  package_manager: typing.Optional[_NodePackageManager_3eb53bf6] = None,
894
1094
  package_name: typing.Optional[builtins.str] = None,
895
1095
  peer_dependency_options: typing.Optional[typing.Union[_PeerDependencyOptions_99d7d493, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -901,9 +1101,11 @@ class TypeScriptProject(
901
1101
  scripts: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
902
1102
  stability: typing.Optional[builtins.str] = None,
903
1103
  yarn_berry_options: typing.Optional[typing.Union[_YarnBerryOptions_b6942539, typing.Dict[builtins.str, typing.Any]]] = None,
1104
+ bump_package: typing.Optional[builtins.str] = None,
904
1105
  jsii_release_version: typing.Optional[builtins.str] = None,
905
1106
  major_version: typing.Optional[jsii.Number] = None,
906
1107
  min_major_version: typing.Optional[jsii.Number] = None,
1108
+ next_version_command: typing.Optional[builtins.str] = None,
907
1109
  npm_dist_tag: typing.Optional[builtins.str] = None,
908
1110
  post_build_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
909
1111
  prerelease: typing.Optional[builtins.str] = None,
@@ -911,12 +1113,14 @@ class TypeScriptProject(
911
1113
  publish_tasks: typing.Optional[builtins.bool] = None,
912
1114
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
913
1115
  release_branches: typing.Optional[typing.Mapping[builtins.str, typing.Union[_BranchOptions_13663d08, typing.Dict[builtins.str, typing.Any]]]] = None,
1116
+ release_environment: typing.Optional[builtins.str] = None,
914
1117
  release_every_commit: typing.Optional[builtins.bool] = None,
915
1118
  release_failure_issue: typing.Optional[builtins.bool] = None,
916
1119
  release_failure_issue_label: typing.Optional[builtins.str] = None,
917
1120
  release_schedule: typing.Optional[builtins.str] = None,
918
1121
  release_tag_prefix: typing.Optional[builtins.str] = None,
919
1122
  release_trigger: typing.Optional[_ReleaseTrigger_e4dc221f] = None,
1123
+ release_workflow_env: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
920
1124
  release_workflow_name: typing.Optional[builtins.str] = None,
921
1125
  release_workflow_setup_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
922
1126
  versionrc_options: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
@@ -942,7 +1146,7 @@ class TypeScriptProject(
942
1146
  :param docgen: (experimental) Docgen by Typedoc. Default: false
943
1147
  :param docs_directory: (experimental) Docs directory. Default: "docs"
944
1148
  :param entrypoint_types: (experimental) The .d.ts file that includes the type declarations for this module. Default: - .d.ts file derived from the project's entrypoint (usually lib/index.d.ts)
945
- :param eslint: (experimental) Setup eslint. Default: true
1149
+ :param eslint: (experimental) Setup eslint. Default: - true, unless biome is enabled
946
1150
  :param eslint_options: (experimental) Eslint options. Default: - opinionated default options
947
1151
  :param libdir: (experimental) Typescript artifacts output directory. Default: "lib"
948
1152
  :param projenrc_ts: (experimental) Use TypeScript for your projenrc file (``.projenrc.ts``). Default: false
@@ -957,13 +1161,18 @@ class TypeScriptProject(
957
1161
  :param typescript_version: (experimental) TypeScript version to use. NOTE: Typescript is not semantically versioned and should remain on the same minor, so we recommend using a ``~`` dependency (e.g. ``~1.2.3``). Default: "latest"
958
1162
  :param default_release_branch: (experimental) The name of the main release branch. Default: "main"
959
1163
  :param artifacts_directory: (experimental) A directory which will contain build artifacts. Default: "dist"
1164
+ :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
1165
+ :param audit_deps_options: (experimental) Security audit options. Default: - default options
960
1166
  :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
1167
+ :param biome: (experimental) Setup Biome. Default: false
1168
+ :param biome_options: (experimental) Biome options. Default: - default options
961
1169
  :param build_workflow: (experimental) Define a GitHub workflow for building PRs. Default: - true if not a subproject
962
- :param build_workflow_triggers: (experimental) Build workflow triggers. Default: "{ pullRequest: {}, workflowDispatch: {} }"
1170
+ :param build_workflow_options: (experimental) Options for PR build workflow.
1171
+ :param build_workflow_triggers: (deprecated) Build workflow triggers. Default: "{ pullRequest: {}, workflowDispatch: {} }"
963
1172
  :param bundler_options: (experimental) Options for ``Bundler``.
964
1173
  :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
965
- :param code_cov: (experimental) Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with ``@codeCovTokenSecret``. Default: false
966
- :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
1174
+ :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
1175
+ :param code_cov_token_secret: (experimental) Define the secret name for a specified https://codecov.io/ token. Default: - OIDC auth is used
967
1176
  :param copyright_owner: (experimental) License copyright owner. Default: - defaults to the value of authorName or "" if ``authorName`` is undefined.
968
1177
  :param copyright_period: (experimental) The copyright years to put in the LICENSE file. Default: - current year
969
1178
  :param dependabot: (experimental) Use dependabot to handle dependency upgrades. Cannot be used in conjunction with ``depsUpgrade``. Default: false
@@ -973,14 +1182,14 @@ class TypeScriptProject(
973
1182
  :param gitignore: (experimental) Additional entries to .gitignore.
974
1183
  :param jest: (experimental) Setup jest unit tests. Default: true
975
1184
  :param jest_options: (experimental) Jest options. Default: - default options
976
- :param mutable_build: (experimental) Automatically update files modified during builds to pull-request branches. This means that any files synthesized by projen or e.g. test snapshots will always be up-to-date before a PR is merged. Implies that PR builds do not have anti-tamper checks. Default: true
1185
+ :param mutable_build: (deprecated) Automatically update files modified during builds to pull-request branches. This means that any files synthesized by projen or e.g. test snapshots will always be up-to-date before a PR is merged. Implies that PR builds do not have anti-tamper checks. Default: true
977
1186
  :param npmignore: (deprecated) Additional entries to .npmignore.
978
1187
  :param npmignore_enabled: (experimental) Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. Default: true
979
1188
  :param npm_ignore_options: (experimental) Configuration options for .npmignore file.
980
1189
  :param package: (experimental) Defines a ``package`` task that will produce an npm tarball under the artifacts directory (e.g. ``dist``). Default: true
981
1190
  :param prettier: (experimental) Setup prettier. Default: false
982
1191
  :param prettier_options: (experimental) Prettier options. Default: - default options
983
- :param projen_dev_dependency: (experimental) Indicates of "projen" should be installed as a devDependency. Default: true
1192
+ :param projen_dev_dependency: (experimental) Indicates of "projen" should be installed as a devDependency. Default: - true if not a subproject
984
1193
  :param projenrc_js: (experimental) Generate (once) .projenrc.js (in JavaScript). Set to ``false`` in order to disable .projenrc.js generation. Default: - true if projenrcJson is false
985
1194
  :param projenrc_js_options: (experimental) Options for .projenrc.js. Default: - default options
986
1195
  :param projen_version: (experimental) Version of projen to install. Default: - Defaults to the latest version.
@@ -990,8 +1199,8 @@ class TypeScriptProject(
990
1199
  :param release_to_npm: (experimental) Automatically release to npm when new versions are introduced. Default: false
991
1200
  :param release_workflow: (deprecated) DEPRECATED: renamed to ``release``. Default: - true if not a subproject
992
1201
  :param workflow_bootstrap_steps: (experimental) Workflow steps to use in order to bootstrap this repo. Default: "yarn install --frozen-lockfile && yarn projen"
993
- :param workflow_git_identity: (experimental) The git identity to use in workflows. Default: - GitHub Actions
994
- :param workflow_node_version: (experimental) The node version to use in GitHub workflows. Default: - same as ``minNodeVersion``
1202
+ :param workflow_git_identity: (experimental) The git identity to use in workflows. Default: - default GitHub Actions user
1203
+ :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/*``.
995
1204
  :param workflow_package_cache: (experimental) Enable Node.js package cache in GitHub workflows. Default: false
996
1205
  :param auto_approve_options: (experimental) Enable and configure the 'auto approve' workflow. Default: - auto approve is disabled
997
1206
  :param auto_merge: (experimental) Enable automatic merging on GitHub. Has no effect if ``github.mergify`` is set to false. Default: true
@@ -1020,6 +1229,7 @@ class TypeScriptProject(
1020
1229
  :param bugs_email: (experimental) The email address to which issues should be reported.
1021
1230
  :param bugs_url: (experimental) The url to your project's issue tracker.
1022
1231
  :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.
1232
+ :param bun_version: (experimental) The version of Bun to use if using Bun as a package manager. Default: "latest"
1023
1233
  :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
1024
1234
  :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: []
1025
1235
  :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
@@ -1029,26 +1239,30 @@ class TypeScriptProject(
1029
1239
  :param keywords: (experimental) Keywords to include in ``package.json``.
1030
1240
  :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"
1031
1241
  :param licensed: (experimental) Indicates if a license should be added. Default: true
1032
- :param max_node_version: (experimental) Minimum node.js version to require via ``engines`` (inclusive). Default: - no max
1033
- :param min_node_version: (experimental) Minimum Node.js version to require via package.json ``engines`` (inclusive). Default: - no "engines" specified
1242
+ :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
1243
+ :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
1034
1244
  :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``.
1245
+ :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
1035
1246
  :param npm_registry: (deprecated) The host name of the npm registry to publish to. Cannot be set together with ``npmRegistryUrl``.
1036
1247
  :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"
1037
1248
  :param npm_token_secret: (experimental) GitHub secret which contains the NPM token to use when publishing packages. Default: "NPM_TOKEN"
1249
+ :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
1038
1250
  :param package_manager: (experimental) The Node Package Manager used to execute scripts. Default: NodePackageManager.YARN_CLASSIC
1039
1251
  :param package_name: (experimental) The "name" in package.json. Default: - defaults to project name
1040
1252
  :param peer_dependency_options: (experimental) Options for ``peerDeps``.
1041
1253
  :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: []
1042
- :param pnpm_version: (experimental) The version of PNPM to use if using PNPM as a package manager. Default: "7"
1254
+ :param pnpm_version: (experimental) The version of PNPM to use if using PNPM as a package manager. Default: "9"
1043
1255
  :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
1044
1256
  :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.
1045
1257
  :param scoped_packages_options: (experimental) Options for privately hosted scoped packages. Default: - fetch all scoped packages from the public npm registry
1046
1258
  :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: {}
1047
1259
  :param stability: (experimental) Package's Stability.
1048
1260
  :param yarn_berry_options: (experimental) Options for Yarn Berry. Default: - Yarn Berry v4 with all default options
1261
+ :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"
1049
1262
  :param jsii_release_version: (experimental) Version requirement of ``publib`` which is used to publish modules to npm. Default: "latest"
1050
1263
  :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.
1051
1264
  :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
1265
+ :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.
1052
1266
  :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"
1053
1267
  :param post_build_steps: (experimental) Steps to execute after build as part of the release workflow. Default: []
1054
1268
  :param prerelease: (experimental) Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). Default: - normal semantic versions
@@ -1056,15 +1270,17 @@ class TypeScriptProject(
1056
1270
  :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
1057
1271
  :param releasable_commits: (experimental) Find commits that should be considered releasable Used to decide if a release is required. Default: ReleasableCommits.everyCommit()
1058
1272
  :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.
1273
+ :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
1059
1274
  :param release_every_commit: (deprecated) Automatically release new versions every commit to one of branches in ``releaseBranches``. Default: true
1060
1275
  :param release_failure_issue: (experimental) Create a github issue on every failed publishing task. Default: false
1061
1276
  :param release_failure_issue_label: (experimental) The label to apply to issues indicating publish failures. Only applies if ``releaseFailureIssue`` is true. Default: "failed-release"
1062
1277
  :param release_schedule: (deprecated) CRON schedule to trigger new releases. Default: - no scheduled releases
1063
1278
  :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"
1064
1279
  :param release_trigger: (experimental) The release trigger to use. Default: - Continuous releases (``ReleaseTrigger.continuous()``)
1280
+ :param release_workflow_env: (experimental) Build environment variables for release workflows. Default: {}
1065
1281
  :param release_workflow_name: (experimental) The name of the default release workflow. Default: "release"
1066
1282
  :param release_workflow_setup_steps: (experimental) A set of workflow steps to execute in order to setup the workflow container.
1067
- :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
1283
+ :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
1068
1284
  :param workflow_container_image: (experimental) Container image to use for GitHub workflows. Default: - default image
1069
1285
  :param workflow_runs_on: (experimental) Github Runner selection labels. Default: ["ubuntu-latest"]
1070
1286
  :param workflow_runs_on_group: (experimental) Github Runner Group selection options.
@@ -1104,8 +1320,13 @@ class TypeScriptProject(
1104
1320
  typescript_version=typescript_version,
1105
1321
  default_release_branch=default_release_branch,
1106
1322
  artifacts_directory=artifacts_directory,
1323
+ audit_deps=audit_deps,
1324
+ audit_deps_options=audit_deps_options,
1107
1325
  auto_approve_upgrades=auto_approve_upgrades,
1326
+ biome=biome,
1327
+ biome_options=biome_options,
1108
1328
  build_workflow=build_workflow,
1329
+ build_workflow_options=build_workflow_options,
1109
1330
  build_workflow_triggers=build_workflow_triggers,
1110
1331
  bundler_options=bundler_options,
1111
1332
  check_licenses=check_licenses,
@@ -1167,6 +1388,7 @@ class TypeScriptProject(
1167
1388
  bugs_email=bugs_email,
1168
1389
  bugs_url=bugs_url,
1169
1390
  bundled_deps=bundled_deps,
1391
+ bun_version=bun_version,
1170
1392
  code_artifact_options=code_artifact_options,
1171
1393
  deps=deps,
1172
1394
  description=description,
@@ -1179,9 +1401,11 @@ class TypeScriptProject(
1179
1401
  max_node_version=max_node_version,
1180
1402
  min_node_version=min_node_version,
1181
1403
  npm_access=npm_access,
1404
+ npm_provenance=npm_provenance,
1182
1405
  npm_registry=npm_registry,
1183
1406
  npm_registry_url=npm_registry_url,
1184
1407
  npm_token_secret=npm_token_secret,
1408
+ npm_trusted_publishing=npm_trusted_publishing,
1185
1409
  package_manager=package_manager,
1186
1410
  package_name=package_name,
1187
1411
  peer_dependency_options=peer_dependency_options,
@@ -1193,9 +1417,11 @@ class TypeScriptProject(
1193
1417
  scripts=scripts,
1194
1418
  stability=stability,
1195
1419
  yarn_berry_options=yarn_berry_options,
1420
+ bump_package=bump_package,
1196
1421
  jsii_release_version=jsii_release_version,
1197
1422
  major_version=major_version,
1198
1423
  min_major_version=min_major_version,
1424
+ next_version_command=next_version_command,
1199
1425
  npm_dist_tag=npm_dist_tag,
1200
1426
  post_build_steps=post_build_steps,
1201
1427
  prerelease=prerelease,
@@ -1203,12 +1429,14 @@ class TypeScriptProject(
1203
1429
  publish_tasks=publish_tasks,
1204
1430
  releasable_commits=releasable_commits,
1205
1431
  release_branches=release_branches,
1432
+ release_environment=release_environment,
1206
1433
  release_every_commit=release_every_commit,
1207
1434
  release_failure_issue=release_failure_issue,
1208
1435
  release_failure_issue_label=release_failure_issue_label,
1209
1436
  release_schedule=release_schedule,
1210
1437
  release_tag_prefix=release_tag_prefix,
1211
1438
  release_trigger=release_trigger,
1439
+ release_workflow_env=release_workflow_env,
1212
1440
  release_workflow_name=release_workflow_name,
1213
1441
  release_workflow_setup_steps=release_workflow_setup_steps,
1214
1442
  versionrc_options=versionrc_options,
@@ -1231,6 +1459,16 @@ class TypeScriptProject(
1231
1459
 
1232
1460
  jsii.create(self.__class__, self, [options])
1233
1461
 
1462
+ @jsii.member(jsii_name="defaultTypeScriptCompilerOptions")
1463
+ def _default_type_script_compiler_options(
1464
+ self,
1465
+ ) -> _TypeScriptCompilerOptions_829fc4b0:
1466
+ '''(experimental) Projen default Typescript compiler options.
1467
+
1468
+ :stability: experimental
1469
+ '''
1470
+ return typing.cast(_TypeScriptCompilerOptions_829fc4b0, jsii.invoke(self, "defaultTypeScriptCompilerOptions", []))
1471
+
1234
1472
  @jsii.python.classproperty
1235
1473
  @jsii.member(jsii_name="DEFAULT_TS_JEST_TRANFORM_PATTERN")
1236
1474
  def DEFAULT_TS_JEST_TRANFORM_PATTERN(cls) -> builtins.str:
@@ -1368,6 +1606,7 @@ class TypeScriptProject(
1368
1606
  "bugs_email": "bugsEmail",
1369
1607
  "bugs_url": "bugsUrl",
1370
1608
  "bundled_deps": "bundledDeps",
1609
+ "bun_version": "bunVersion",
1371
1610
  "code_artifact_options": "codeArtifactOptions",
1372
1611
  "deps": "deps",
1373
1612
  "description": "description",
@@ -1380,9 +1619,11 @@ class TypeScriptProject(
1380
1619
  "max_node_version": "maxNodeVersion",
1381
1620
  "min_node_version": "minNodeVersion",
1382
1621
  "npm_access": "npmAccess",
1622
+ "npm_provenance": "npmProvenance",
1383
1623
  "npm_registry": "npmRegistry",
1384
1624
  "npm_registry_url": "npmRegistryUrl",
1385
1625
  "npm_token_secret": "npmTokenSecret",
1626
+ "npm_trusted_publishing": "npmTrustedPublishing",
1386
1627
  "package_manager": "packageManager",
1387
1628
  "package_name": "packageName",
1388
1629
  "peer_dependency_options": "peerDependencyOptions",
@@ -1394,9 +1635,11 @@ class TypeScriptProject(
1394
1635
  "scripts": "scripts",
1395
1636
  "stability": "stability",
1396
1637
  "yarn_berry_options": "yarnBerryOptions",
1638
+ "bump_package": "bumpPackage",
1397
1639
  "jsii_release_version": "jsiiReleaseVersion",
1398
1640
  "major_version": "majorVersion",
1399
1641
  "min_major_version": "minMajorVersion",
1642
+ "next_version_command": "nextVersionCommand",
1400
1643
  "npm_dist_tag": "npmDistTag",
1401
1644
  "post_build_steps": "postBuildSteps",
1402
1645
  "prerelease": "prerelease",
@@ -1404,12 +1647,14 @@ class TypeScriptProject(
1404
1647
  "publish_tasks": "publishTasks",
1405
1648
  "releasable_commits": "releasableCommits",
1406
1649
  "release_branches": "releaseBranches",
1650
+ "release_environment": "releaseEnvironment",
1407
1651
  "release_every_commit": "releaseEveryCommit",
1408
1652
  "release_failure_issue": "releaseFailureIssue",
1409
1653
  "release_failure_issue_label": "releaseFailureIssueLabel",
1410
1654
  "release_schedule": "releaseSchedule",
1411
1655
  "release_tag_prefix": "releaseTagPrefix",
1412
1656
  "release_trigger": "releaseTrigger",
1657
+ "release_workflow_env": "releaseWorkflowEnv",
1413
1658
  "release_workflow_name": "releaseWorkflowName",
1414
1659
  "release_workflow_setup_steps": "releaseWorkflowSetupSteps",
1415
1660
  "versionrc_options": "versionrcOptions",
@@ -1418,8 +1663,13 @@ class TypeScriptProject(
1418
1663
  "workflow_runs_on_group": "workflowRunsOnGroup",
1419
1664
  "default_release_branch": "defaultReleaseBranch",
1420
1665
  "artifacts_directory": "artifactsDirectory",
1666
+ "audit_deps": "auditDeps",
1667
+ "audit_deps_options": "auditDepsOptions",
1421
1668
  "auto_approve_upgrades": "autoApproveUpgrades",
1669
+ "biome": "biome",
1670
+ "biome_options": "biomeOptions",
1422
1671
  "build_workflow": "buildWorkflow",
1672
+ "build_workflow_options": "buildWorkflowOptions",
1423
1673
  "build_workflow_triggers": "buildWorkflowTriggers",
1424
1674
  "bundler_options": "bundlerOptions",
1425
1675
  "check_licenses": "checkLicenses",
@@ -1517,6 +1767,7 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1517
1767
  bugs_email: typing.Optional[builtins.str] = None,
1518
1768
  bugs_url: typing.Optional[builtins.str] = None,
1519
1769
  bundled_deps: typing.Optional[typing.Sequence[builtins.str]] = None,
1770
+ bun_version: typing.Optional[builtins.str] = None,
1520
1771
  code_artifact_options: typing.Optional[typing.Union[_CodeArtifactOptions_e4782b3e, typing.Dict[builtins.str, typing.Any]]] = None,
1521
1772
  deps: typing.Optional[typing.Sequence[builtins.str]] = None,
1522
1773
  description: typing.Optional[builtins.str] = None,
@@ -1529,9 +1780,11 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1529
1780
  max_node_version: typing.Optional[builtins.str] = None,
1530
1781
  min_node_version: typing.Optional[builtins.str] = None,
1531
1782
  npm_access: typing.Optional[_NpmAccess_134fa228] = None,
1783
+ npm_provenance: typing.Optional[builtins.bool] = None,
1532
1784
  npm_registry: typing.Optional[builtins.str] = None,
1533
1785
  npm_registry_url: typing.Optional[builtins.str] = None,
1534
1786
  npm_token_secret: typing.Optional[builtins.str] = None,
1787
+ npm_trusted_publishing: typing.Optional[builtins.bool] = None,
1535
1788
  package_manager: typing.Optional[_NodePackageManager_3eb53bf6] = None,
1536
1789
  package_name: typing.Optional[builtins.str] = None,
1537
1790
  peer_dependency_options: typing.Optional[typing.Union[_PeerDependencyOptions_99d7d493, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -1543,9 +1796,11 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1543
1796
  scripts: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
1544
1797
  stability: typing.Optional[builtins.str] = None,
1545
1798
  yarn_berry_options: typing.Optional[typing.Union[_YarnBerryOptions_b6942539, typing.Dict[builtins.str, typing.Any]]] = None,
1799
+ bump_package: typing.Optional[builtins.str] = None,
1546
1800
  jsii_release_version: typing.Optional[builtins.str] = None,
1547
1801
  major_version: typing.Optional[jsii.Number] = None,
1548
1802
  min_major_version: typing.Optional[jsii.Number] = None,
1803
+ next_version_command: typing.Optional[builtins.str] = None,
1549
1804
  npm_dist_tag: typing.Optional[builtins.str] = None,
1550
1805
  post_build_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
1551
1806
  prerelease: typing.Optional[builtins.str] = None,
@@ -1553,12 +1808,14 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1553
1808
  publish_tasks: typing.Optional[builtins.bool] = None,
1554
1809
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
1555
1810
  release_branches: typing.Optional[typing.Mapping[builtins.str, typing.Union[_BranchOptions_13663d08, typing.Dict[builtins.str, typing.Any]]]] = None,
1811
+ release_environment: typing.Optional[builtins.str] = None,
1556
1812
  release_every_commit: typing.Optional[builtins.bool] = None,
1557
1813
  release_failure_issue: typing.Optional[builtins.bool] = None,
1558
1814
  release_failure_issue_label: typing.Optional[builtins.str] = None,
1559
1815
  release_schedule: typing.Optional[builtins.str] = None,
1560
1816
  release_tag_prefix: typing.Optional[builtins.str] = None,
1561
1817
  release_trigger: typing.Optional[_ReleaseTrigger_e4dc221f] = None,
1818
+ release_workflow_env: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
1562
1819
  release_workflow_name: typing.Optional[builtins.str] = None,
1563
1820
  release_workflow_setup_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
1564
1821
  versionrc_options: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
@@ -1567,8 +1824,13 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1567
1824
  workflow_runs_on_group: typing.Optional[typing.Union[_GroupRunnerOptions_148c59c1, typing.Dict[builtins.str, typing.Any]]] = None,
1568
1825
  default_release_branch: builtins.str,
1569
1826
  artifacts_directory: typing.Optional[builtins.str] = None,
1827
+ audit_deps: typing.Optional[builtins.bool] = None,
1828
+ audit_deps_options: typing.Optional[typing.Union[_AuditOptions_429c62df, typing.Dict[builtins.str, typing.Any]]] = None,
1570
1829
  auto_approve_upgrades: typing.Optional[builtins.bool] = None,
1830
+ biome: typing.Optional[builtins.bool] = None,
1831
+ biome_options: typing.Optional[typing.Union[_BiomeOptions_452ab984, typing.Dict[builtins.str, typing.Any]]] = None,
1571
1832
  build_workflow: typing.Optional[builtins.bool] = None,
1833
+ build_workflow_options: typing.Optional[typing.Union[_BuildWorkflowOptions_b756f97f, typing.Dict[builtins.str, typing.Any]]] = None,
1572
1834
  build_workflow_triggers: typing.Optional[typing.Union[_Triggers_e9ae7617, typing.Dict[builtins.str, typing.Any]]] = None,
1573
1835
  bundler_options: typing.Optional[typing.Union[_BundlerOptions_d60b85ed, typing.Dict[builtins.str, typing.Any]]] = None,
1574
1836
  check_licenses: typing.Optional[typing.Union[_LicenseCheckerOptions_80bcd362, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -1662,6 +1924,7 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1662
1924
  :param bugs_email: (experimental) The email address to which issues should be reported.
1663
1925
  :param bugs_url: (experimental) The url to your project's issue tracker.
1664
1926
  :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.
1927
+ :param bun_version: (experimental) The version of Bun to use if using Bun as a package manager. Default: "latest"
1665
1928
  :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
1666
1929
  :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: []
1667
1930
  :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
@@ -1671,26 +1934,30 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1671
1934
  :param keywords: (experimental) Keywords to include in ``package.json``.
1672
1935
  :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"
1673
1936
  :param licensed: (experimental) Indicates if a license should be added. Default: true
1674
- :param max_node_version: (experimental) Minimum node.js version to require via ``engines`` (inclusive). Default: - no max
1675
- :param min_node_version: (experimental) Minimum Node.js version to require via package.json ``engines`` (inclusive). Default: - no "engines" specified
1937
+ :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
1938
+ :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
1676
1939
  :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``.
1940
+ :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
1677
1941
  :param npm_registry: (deprecated) The host name of the npm registry to publish to. Cannot be set together with ``npmRegistryUrl``.
1678
1942
  :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"
1679
1943
  :param npm_token_secret: (experimental) GitHub secret which contains the NPM token to use when publishing packages. Default: "NPM_TOKEN"
1944
+ :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
1680
1945
  :param package_manager: (experimental) The Node Package Manager used to execute scripts. Default: NodePackageManager.YARN_CLASSIC
1681
1946
  :param package_name: (experimental) The "name" in package.json. Default: - defaults to project name
1682
1947
  :param peer_dependency_options: (experimental) Options for ``peerDeps``.
1683
1948
  :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: []
1684
- :param pnpm_version: (experimental) The version of PNPM to use if using PNPM as a package manager. Default: "7"
1949
+ :param pnpm_version: (experimental) The version of PNPM to use if using PNPM as a package manager. Default: "9"
1685
1950
  :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
1686
1951
  :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.
1687
1952
  :param scoped_packages_options: (experimental) Options for privately hosted scoped packages. Default: - fetch all scoped packages from the public npm registry
1688
1953
  :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: {}
1689
1954
  :param stability: (experimental) Package's Stability.
1690
1955
  :param yarn_berry_options: (experimental) Options for Yarn Berry. Default: - Yarn Berry v4 with all default options
1956
+ :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"
1691
1957
  :param jsii_release_version: (experimental) Version requirement of ``publib`` which is used to publish modules to npm. Default: "latest"
1692
1958
  :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.
1693
1959
  :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
1960
+ :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.
1694
1961
  :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"
1695
1962
  :param post_build_steps: (experimental) Steps to execute after build as part of the release workflow. Default: []
1696
1963
  :param prerelease: (experimental) Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). Default: - normal semantic versions
@@ -1698,27 +1965,34 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1698
1965
  :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
1699
1966
  :param releasable_commits: (experimental) Find commits that should be considered releasable Used to decide if a release is required. Default: ReleasableCommits.everyCommit()
1700
1967
  :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.
1968
+ :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
1701
1969
  :param release_every_commit: (deprecated) Automatically release new versions every commit to one of branches in ``releaseBranches``. Default: true
1702
1970
  :param release_failure_issue: (experimental) Create a github issue on every failed publishing task. Default: false
1703
1971
  :param release_failure_issue_label: (experimental) The label to apply to issues indicating publish failures. Only applies if ``releaseFailureIssue`` is true. Default: "failed-release"
1704
1972
  :param release_schedule: (deprecated) CRON schedule to trigger new releases. Default: - no scheduled releases
1705
1973
  :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"
1706
1974
  :param release_trigger: (experimental) The release trigger to use. Default: - Continuous releases (``ReleaseTrigger.continuous()``)
1975
+ :param release_workflow_env: (experimental) Build environment variables for release workflows. Default: {}
1707
1976
  :param release_workflow_name: (experimental) The name of the default release workflow. Default: "release"
1708
1977
  :param release_workflow_setup_steps: (experimental) A set of workflow steps to execute in order to setup the workflow container.
1709
- :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
1978
+ :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
1710
1979
  :param workflow_container_image: (experimental) Container image to use for GitHub workflows. Default: - default image
1711
1980
  :param workflow_runs_on: (experimental) Github Runner selection labels. Default: ["ubuntu-latest"]
1712
1981
  :param workflow_runs_on_group: (experimental) Github Runner Group selection options.
1713
1982
  :param default_release_branch: (experimental) The name of the main release branch. Default: "main"
1714
1983
  :param artifacts_directory: (experimental) A directory which will contain build artifacts. Default: "dist"
1984
+ :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
1985
+ :param audit_deps_options: (experimental) Security audit options. Default: - default options
1715
1986
  :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
1987
+ :param biome: (experimental) Setup Biome. Default: false
1988
+ :param biome_options: (experimental) Biome options. Default: - default options
1716
1989
  :param build_workflow: (experimental) Define a GitHub workflow for building PRs. Default: - true if not a subproject
1717
- :param build_workflow_triggers: (experimental) Build workflow triggers. Default: "{ pullRequest: {}, workflowDispatch: {} }"
1990
+ :param build_workflow_options: (experimental) Options for PR build workflow.
1991
+ :param build_workflow_triggers: (deprecated) Build workflow triggers. Default: "{ pullRequest: {}, workflowDispatch: {} }"
1718
1992
  :param bundler_options: (experimental) Options for ``Bundler``.
1719
1993
  :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
1720
- :param code_cov: (experimental) Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with ``@codeCovTokenSecret``. Default: false
1721
- :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
1994
+ :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
1995
+ :param code_cov_token_secret: (experimental) Define the secret name for a specified https://codecov.io/ token. Default: - OIDC auth is used
1722
1996
  :param copyright_owner: (experimental) License copyright owner. Default: - defaults to the value of authorName or "" if ``authorName`` is undefined.
1723
1997
  :param copyright_period: (experimental) The copyright years to put in the LICENSE file. Default: - current year
1724
1998
  :param dependabot: (experimental) Use dependabot to handle dependency upgrades. Cannot be used in conjunction with ``depsUpgrade``. Default: false
@@ -1728,14 +2002,14 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1728
2002
  :param gitignore: (experimental) Additional entries to .gitignore.
1729
2003
  :param jest: (experimental) Setup jest unit tests. Default: true
1730
2004
  :param jest_options: (experimental) Jest options. Default: - default options
1731
- :param mutable_build: (experimental) Automatically update files modified during builds to pull-request branches. This means that any files synthesized by projen or e.g. test snapshots will always be up-to-date before a PR is merged. Implies that PR builds do not have anti-tamper checks. Default: true
2005
+ :param mutable_build: (deprecated) Automatically update files modified during builds to pull-request branches. This means that any files synthesized by projen or e.g. test snapshots will always be up-to-date before a PR is merged. Implies that PR builds do not have anti-tamper checks. Default: true
1732
2006
  :param npmignore: (deprecated) Additional entries to .npmignore.
1733
2007
  :param npmignore_enabled: (experimental) Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. Default: true
1734
2008
  :param npm_ignore_options: (experimental) Configuration options for .npmignore file.
1735
2009
  :param package: (experimental) Defines a ``package`` task that will produce an npm tarball under the artifacts directory (e.g. ``dist``). Default: true
1736
2010
  :param prettier: (experimental) Setup prettier. Default: false
1737
2011
  :param prettier_options: (experimental) Prettier options. Default: - default options
1738
- :param projen_dev_dependency: (experimental) Indicates of "projen" should be installed as a devDependency. Default: true
2012
+ :param projen_dev_dependency: (experimental) Indicates of "projen" should be installed as a devDependency. Default: - true if not a subproject
1739
2013
  :param projenrc_js: (experimental) Generate (once) .projenrc.js (in JavaScript). Set to ``false`` in order to disable .projenrc.js generation. Default: - true if projenrcJson is false
1740
2014
  :param projenrc_js_options: (experimental) Options for .projenrc.js. Default: - default options
1741
2015
  :param projen_version: (experimental) Version of projen to install. Default: - Defaults to the latest version.
@@ -1745,15 +2019,15 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1745
2019
  :param release_to_npm: (experimental) Automatically release to npm when new versions are introduced. Default: false
1746
2020
  :param release_workflow: (deprecated) DEPRECATED: renamed to ``release``. Default: - true if not a subproject
1747
2021
  :param workflow_bootstrap_steps: (experimental) Workflow steps to use in order to bootstrap this repo. Default: "yarn install --frozen-lockfile && yarn projen"
1748
- :param workflow_git_identity: (experimental) The git identity to use in workflows. Default: - GitHub Actions
1749
- :param workflow_node_version: (experimental) The node version to use in GitHub workflows. Default: - same as ``minNodeVersion``
2022
+ :param workflow_git_identity: (experimental) The git identity to use in workflows. Default: - default GitHub Actions user
2023
+ :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/*``.
1750
2024
  :param workflow_package_cache: (experimental) Enable Node.js package cache in GitHub workflows. Default: false
1751
2025
  :param disable_tsconfig: (experimental) Do not generate a ``tsconfig.json`` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). Default: false
1752
2026
  :param disable_tsconfig_dev: (experimental) Do not generate a ``tsconfig.dev.json`` file. Default: false
1753
2027
  :param docgen: (experimental) Docgen by Typedoc. Default: false
1754
2028
  :param docs_directory: (experimental) Docs directory. Default: "docs"
1755
2029
  :param entrypoint_types: (experimental) The .d.ts file that includes the type declarations for this module. Default: - .d.ts file derived from the project's entrypoint (usually lib/index.d.ts)
1756
- :param eslint: (experimental) Setup eslint. Default: true
2030
+ :param eslint: (experimental) Setup eslint. Default: - true, unless biome is enabled
1757
2031
  :param eslint_options: (experimental) Eslint options. Default: - opinionated default options
1758
2032
  :param libdir: (experimental) Typescript artifacts output directory. Default: "lib"
1759
2033
  :param projenrc_ts: (experimental) Use TypeScript for your projenrc file (``.projenrc.ts``). Default: false
@@ -1799,6 +2073,12 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1799
2073
  yarn_berry_options = _YarnBerryOptions_b6942539(**yarn_berry_options)
1800
2074
  if isinstance(workflow_runs_on_group, dict):
1801
2075
  workflow_runs_on_group = _GroupRunnerOptions_148c59c1(**workflow_runs_on_group)
2076
+ if isinstance(audit_deps_options, dict):
2077
+ audit_deps_options = _AuditOptions_429c62df(**audit_deps_options)
2078
+ if isinstance(biome_options, dict):
2079
+ biome_options = _BiomeOptions_452ab984(**biome_options)
2080
+ if isinstance(build_workflow_options, dict):
2081
+ build_workflow_options = _BuildWorkflowOptions_b756f97f(**build_workflow_options)
1802
2082
  if isinstance(build_workflow_triggers, dict):
1803
2083
  build_workflow_triggers = _Triggers_e9ae7617(**build_workflow_triggers)
1804
2084
  if isinstance(bundler_options, dict):
@@ -1870,6 +2150,7 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1870
2150
  check_type(argname="argument bugs_email", value=bugs_email, expected_type=type_hints["bugs_email"])
1871
2151
  check_type(argname="argument bugs_url", value=bugs_url, expected_type=type_hints["bugs_url"])
1872
2152
  check_type(argname="argument bundled_deps", value=bundled_deps, expected_type=type_hints["bundled_deps"])
2153
+ check_type(argname="argument bun_version", value=bun_version, expected_type=type_hints["bun_version"])
1873
2154
  check_type(argname="argument code_artifact_options", value=code_artifact_options, expected_type=type_hints["code_artifact_options"])
1874
2155
  check_type(argname="argument deps", value=deps, expected_type=type_hints["deps"])
1875
2156
  check_type(argname="argument description", value=description, expected_type=type_hints["description"])
@@ -1882,9 +2163,11 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1882
2163
  check_type(argname="argument max_node_version", value=max_node_version, expected_type=type_hints["max_node_version"])
1883
2164
  check_type(argname="argument min_node_version", value=min_node_version, expected_type=type_hints["min_node_version"])
1884
2165
  check_type(argname="argument npm_access", value=npm_access, expected_type=type_hints["npm_access"])
2166
+ check_type(argname="argument npm_provenance", value=npm_provenance, expected_type=type_hints["npm_provenance"])
1885
2167
  check_type(argname="argument npm_registry", value=npm_registry, expected_type=type_hints["npm_registry"])
1886
2168
  check_type(argname="argument npm_registry_url", value=npm_registry_url, expected_type=type_hints["npm_registry_url"])
1887
2169
  check_type(argname="argument npm_token_secret", value=npm_token_secret, expected_type=type_hints["npm_token_secret"])
2170
+ check_type(argname="argument npm_trusted_publishing", value=npm_trusted_publishing, expected_type=type_hints["npm_trusted_publishing"])
1888
2171
  check_type(argname="argument package_manager", value=package_manager, expected_type=type_hints["package_manager"])
1889
2172
  check_type(argname="argument package_name", value=package_name, expected_type=type_hints["package_name"])
1890
2173
  check_type(argname="argument peer_dependency_options", value=peer_dependency_options, expected_type=type_hints["peer_dependency_options"])
@@ -1896,9 +2179,11 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1896
2179
  check_type(argname="argument scripts", value=scripts, expected_type=type_hints["scripts"])
1897
2180
  check_type(argname="argument stability", value=stability, expected_type=type_hints["stability"])
1898
2181
  check_type(argname="argument yarn_berry_options", value=yarn_berry_options, expected_type=type_hints["yarn_berry_options"])
2182
+ check_type(argname="argument bump_package", value=bump_package, expected_type=type_hints["bump_package"])
1899
2183
  check_type(argname="argument jsii_release_version", value=jsii_release_version, expected_type=type_hints["jsii_release_version"])
1900
2184
  check_type(argname="argument major_version", value=major_version, expected_type=type_hints["major_version"])
1901
2185
  check_type(argname="argument min_major_version", value=min_major_version, expected_type=type_hints["min_major_version"])
2186
+ check_type(argname="argument next_version_command", value=next_version_command, expected_type=type_hints["next_version_command"])
1902
2187
  check_type(argname="argument npm_dist_tag", value=npm_dist_tag, expected_type=type_hints["npm_dist_tag"])
1903
2188
  check_type(argname="argument post_build_steps", value=post_build_steps, expected_type=type_hints["post_build_steps"])
1904
2189
  check_type(argname="argument prerelease", value=prerelease, expected_type=type_hints["prerelease"])
@@ -1906,12 +2191,14 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1906
2191
  check_type(argname="argument publish_tasks", value=publish_tasks, expected_type=type_hints["publish_tasks"])
1907
2192
  check_type(argname="argument releasable_commits", value=releasable_commits, expected_type=type_hints["releasable_commits"])
1908
2193
  check_type(argname="argument release_branches", value=release_branches, expected_type=type_hints["release_branches"])
2194
+ check_type(argname="argument release_environment", value=release_environment, expected_type=type_hints["release_environment"])
1909
2195
  check_type(argname="argument release_every_commit", value=release_every_commit, expected_type=type_hints["release_every_commit"])
1910
2196
  check_type(argname="argument release_failure_issue", value=release_failure_issue, expected_type=type_hints["release_failure_issue"])
1911
2197
  check_type(argname="argument release_failure_issue_label", value=release_failure_issue_label, expected_type=type_hints["release_failure_issue_label"])
1912
2198
  check_type(argname="argument release_schedule", value=release_schedule, expected_type=type_hints["release_schedule"])
1913
2199
  check_type(argname="argument release_tag_prefix", value=release_tag_prefix, expected_type=type_hints["release_tag_prefix"])
1914
2200
  check_type(argname="argument release_trigger", value=release_trigger, expected_type=type_hints["release_trigger"])
2201
+ check_type(argname="argument release_workflow_env", value=release_workflow_env, expected_type=type_hints["release_workflow_env"])
1915
2202
  check_type(argname="argument release_workflow_name", value=release_workflow_name, expected_type=type_hints["release_workflow_name"])
1916
2203
  check_type(argname="argument release_workflow_setup_steps", value=release_workflow_setup_steps, expected_type=type_hints["release_workflow_setup_steps"])
1917
2204
  check_type(argname="argument versionrc_options", value=versionrc_options, expected_type=type_hints["versionrc_options"])
@@ -1920,8 +2207,13 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1920
2207
  check_type(argname="argument workflow_runs_on_group", value=workflow_runs_on_group, expected_type=type_hints["workflow_runs_on_group"])
1921
2208
  check_type(argname="argument default_release_branch", value=default_release_branch, expected_type=type_hints["default_release_branch"])
1922
2209
  check_type(argname="argument artifacts_directory", value=artifacts_directory, expected_type=type_hints["artifacts_directory"])
2210
+ check_type(argname="argument audit_deps", value=audit_deps, expected_type=type_hints["audit_deps"])
2211
+ check_type(argname="argument audit_deps_options", value=audit_deps_options, expected_type=type_hints["audit_deps_options"])
1923
2212
  check_type(argname="argument auto_approve_upgrades", value=auto_approve_upgrades, expected_type=type_hints["auto_approve_upgrades"])
2213
+ check_type(argname="argument biome", value=biome, expected_type=type_hints["biome"])
2214
+ check_type(argname="argument biome_options", value=biome_options, expected_type=type_hints["biome_options"])
1924
2215
  check_type(argname="argument build_workflow", value=build_workflow, expected_type=type_hints["build_workflow"])
2216
+ check_type(argname="argument build_workflow_options", value=build_workflow_options, expected_type=type_hints["build_workflow_options"])
1925
2217
  check_type(argname="argument build_workflow_triggers", value=build_workflow_triggers, expected_type=type_hints["build_workflow_triggers"])
1926
2218
  check_type(argname="argument bundler_options", value=bundler_options, expected_type=type_hints["bundler_options"])
1927
2219
  check_type(argname="argument check_licenses", value=check_licenses, expected_type=type_hints["check_licenses"])
@@ -2054,6 +2346,8 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
2054
2346
  self._values["bugs_url"] = bugs_url
2055
2347
  if bundled_deps is not None:
2056
2348
  self._values["bundled_deps"] = bundled_deps
2349
+ if bun_version is not None:
2350
+ self._values["bun_version"] = bun_version
2057
2351
  if code_artifact_options is not None:
2058
2352
  self._values["code_artifact_options"] = code_artifact_options
2059
2353
  if deps is not None:
@@ -2078,12 +2372,16 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
2078
2372
  self._values["min_node_version"] = min_node_version
2079
2373
  if npm_access is not None:
2080
2374
  self._values["npm_access"] = npm_access
2375
+ if npm_provenance is not None:
2376
+ self._values["npm_provenance"] = npm_provenance
2081
2377
  if npm_registry is not None:
2082
2378
  self._values["npm_registry"] = npm_registry
2083
2379
  if npm_registry_url is not None:
2084
2380
  self._values["npm_registry_url"] = npm_registry_url
2085
2381
  if npm_token_secret is not None:
2086
2382
  self._values["npm_token_secret"] = npm_token_secret
2383
+ if npm_trusted_publishing is not None:
2384
+ self._values["npm_trusted_publishing"] = npm_trusted_publishing
2087
2385
  if package_manager is not None:
2088
2386
  self._values["package_manager"] = package_manager
2089
2387
  if package_name is not None:
@@ -2106,12 +2404,16 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
2106
2404
  self._values["stability"] = stability
2107
2405
  if yarn_berry_options is not None:
2108
2406
  self._values["yarn_berry_options"] = yarn_berry_options
2407
+ if bump_package is not None:
2408
+ self._values["bump_package"] = bump_package
2109
2409
  if jsii_release_version is not None:
2110
2410
  self._values["jsii_release_version"] = jsii_release_version
2111
2411
  if major_version is not None:
2112
2412
  self._values["major_version"] = major_version
2113
2413
  if min_major_version is not None:
2114
2414
  self._values["min_major_version"] = min_major_version
2415
+ if next_version_command is not None:
2416
+ self._values["next_version_command"] = next_version_command
2115
2417
  if npm_dist_tag is not None:
2116
2418
  self._values["npm_dist_tag"] = npm_dist_tag
2117
2419
  if post_build_steps is not None:
@@ -2126,6 +2428,8 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
2126
2428
  self._values["releasable_commits"] = releasable_commits
2127
2429
  if release_branches is not None:
2128
2430
  self._values["release_branches"] = release_branches
2431
+ if release_environment is not None:
2432
+ self._values["release_environment"] = release_environment
2129
2433
  if release_every_commit is not None:
2130
2434
  self._values["release_every_commit"] = release_every_commit
2131
2435
  if release_failure_issue is not None:
@@ -2138,6 +2442,8 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
2138
2442
  self._values["release_tag_prefix"] = release_tag_prefix
2139
2443
  if release_trigger is not None:
2140
2444
  self._values["release_trigger"] = release_trigger
2445
+ if release_workflow_env is not None:
2446
+ self._values["release_workflow_env"] = release_workflow_env
2141
2447
  if release_workflow_name is not None:
2142
2448
  self._values["release_workflow_name"] = release_workflow_name
2143
2449
  if release_workflow_setup_steps is not None:
@@ -2152,10 +2458,20 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
2152
2458
  self._values["workflow_runs_on_group"] = workflow_runs_on_group
2153
2459
  if artifacts_directory is not None:
2154
2460
  self._values["artifacts_directory"] = artifacts_directory
2461
+ if audit_deps is not None:
2462
+ self._values["audit_deps"] = audit_deps
2463
+ if audit_deps_options is not None:
2464
+ self._values["audit_deps_options"] = audit_deps_options
2155
2465
  if auto_approve_upgrades is not None:
2156
2466
  self._values["auto_approve_upgrades"] = auto_approve_upgrades
2467
+ if biome is not None:
2468
+ self._values["biome"] = biome
2469
+ if biome_options is not None:
2470
+ self._values["biome_options"] = biome_options
2157
2471
  if build_workflow is not None:
2158
2472
  self._values["build_workflow"] = build_workflow
2473
+ if build_workflow_options is not None:
2474
+ self._values["build_workflow_options"] = build_workflow_options
2159
2475
  if build_workflow_triggers is not None:
2160
2476
  self._values["build_workflow_triggers"] = build_workflow_triggers
2161
2477
  if bundler_options is not None:
@@ -2725,6 +3041,17 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
2725
3041
  result = self._values.get("bundled_deps")
2726
3042
  return typing.cast(typing.Optional[typing.List[builtins.str]], result)
2727
3043
 
3044
+ @builtins.property
3045
+ def bun_version(self) -> typing.Optional[builtins.str]:
3046
+ '''(experimental) The version of Bun to use if using Bun as a package manager.
3047
+
3048
+ :default: "latest"
3049
+
3050
+ :stability: experimental
3051
+ '''
3052
+ result = self._values.get("bun_version")
3053
+ return typing.cast(typing.Optional[builtins.str], result)
3054
+
2728
3055
  @builtins.property
2729
3056
  def code_artifact_options(self) -> typing.Optional[_CodeArtifactOptions_e4782b3e]:
2730
3057
  '''(experimental) Options for npm packages using AWS CodeArtifact.
@@ -2859,9 +3186,15 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
2859
3186
 
2860
3187
  @builtins.property
2861
3188
  def max_node_version(self) -> typing.Optional[builtins.str]:
2862
- '''(experimental) Minimum node.js version to require via ``engines`` (inclusive).
3189
+ '''(experimental) The maximum node version supported by this package. Most projects should not use this option.
3190
+
3191
+ The value indicates that the package is incompatible with any newer versions of node.
3192
+ This requirement is enforced via the engines field.
2863
3193
 
2864
- :default: - no max
3194
+ You will normally not need to set this option.
3195
+ Consider this option only if your package is known to not function with newer versions of node.
3196
+
3197
+ :default: - no maximum version is enforced
2865
3198
 
2866
3199
  :stability: experimental
2867
3200
  '''
@@ -2870,9 +3203,19 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
2870
3203
 
2871
3204
  @builtins.property
2872
3205
  def min_node_version(self) -> typing.Optional[builtins.str]:
2873
- '''(experimental) Minimum Node.js version to require via package.json ``engines`` (inclusive).
3206
+ '''(experimental) The minimum node version required by this package to function. Most projects should not use this option.
3207
+
3208
+ The value indicates that the package is incompatible with any older versions of node.
3209
+ This requirement is enforced via the engines field.
3210
+
3211
+ You will normally not need to set this option, even if your package is incompatible with EOL versions of node.
3212
+ Consider this option only if your package depends on a specific feature, that is not available in other LTS versions.
3213
+ Setting this option has very high impact on the consumers of your package,
3214
+ as package managers will actively prevent usage with node versions you have marked as incompatible.
3215
+
3216
+ To change the node version of your CI/CD workflows, use ``workflowNodeVersion``.
2874
3217
 
2875
- :default: - no "engines" specified
3218
+ :default: - no minimum version is enforced
2876
3219
 
2877
3220
  :stability: experimental
2878
3221
  '''
@@ -2894,6 +3237,24 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
2894
3237
  result = self._values.get("npm_access")
2895
3238
  return typing.cast(typing.Optional[_NpmAccess_134fa228], result)
2896
3239
 
3240
+ @builtins.property
3241
+ def npm_provenance(self) -> typing.Optional[builtins.bool]:
3242
+ '''(experimental) Should provenance statements be generated when the package is published.
3243
+
3244
+ A supported package manager is required to publish a package with npm provenance statements and
3245
+ you will need to use a supported CI/CD provider.
3246
+
3247
+ Note that the projen ``Release`` and ``Publisher`` components are using ``publib`` to publish packages,
3248
+ which is using npm internally and supports provenance statements independently of the package manager used.
3249
+
3250
+ :default: - true for public packages, false otherwise
3251
+
3252
+ :see: https://docs.npmjs.com/generating-provenance-statements
3253
+ :stability: experimental
3254
+ '''
3255
+ result = self._values.get("npm_provenance")
3256
+ return typing.cast(typing.Optional[builtins.bool], result)
3257
+
2897
3258
  @builtins.property
2898
3259
  def npm_registry(self) -> typing.Optional[builtins.str]:
2899
3260
  '''(deprecated) The host name of the npm registry to publish to.
@@ -2931,6 +3292,17 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
2931
3292
  result = self._values.get("npm_token_secret")
2932
3293
  return typing.cast(typing.Optional[builtins.str], result)
2933
3294
 
3295
+ @builtins.property
3296
+ def npm_trusted_publishing(self) -> typing.Optional[builtins.bool]:
3297
+ '''(experimental) Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work.
3298
+
3299
+ :default: - false
3300
+
3301
+ :stability: experimental
3302
+ '''
3303
+ result = self._values.get("npm_trusted_publishing")
3304
+ return typing.cast(typing.Optional[builtins.bool], result)
3305
+
2934
3306
  @builtins.property
2935
3307
  def package_manager(self) -> typing.Optional[_NodePackageManager_3eb53bf6]:
2936
3308
  '''(experimental) The Node Package Manager used to execute scripts.
@@ -2994,7 +3366,7 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
2994
3366
  def pnpm_version(self) -> typing.Optional[builtins.str]:
2995
3367
  '''(experimental) The version of PNPM to use if using PNPM as a package manager.
2996
3368
 
2997
- :default: "7"
3369
+ :default: "9"
2998
3370
 
2999
3371
  :stability: experimental
3000
3372
  '''
@@ -3071,6 +3443,19 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3071
3443
  result = self._values.get("yarn_berry_options")
3072
3444
  return typing.cast(typing.Optional[_YarnBerryOptions_b6942539], result)
3073
3445
 
3446
+ @builtins.property
3447
+ def bump_package(self) -> typing.Optional[builtins.str]:
3448
+ '''(experimental) The ``commit-and-tag-version`` compatible package used to bump the package version, as a dependency string.
3449
+
3450
+ This can be any compatible package version, including the deprecated ``standard-version@9``.
3451
+
3452
+ :default: - A recent version of "commit-and-tag-version"
3453
+
3454
+ :stability: experimental
3455
+ '''
3456
+ result = self._values.get("bump_package")
3457
+ return typing.cast(typing.Optional[builtins.str], result)
3458
+
3074
3459
  @builtins.property
3075
3460
  def jsii_release_version(self) -> typing.Optional[builtins.str]:
3076
3461
  '''(experimental) Version requirement of ``publib`` which is used to publish modules to npm.
@@ -3112,6 +3497,36 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3112
3497
  result = self._values.get("min_major_version")
3113
3498
  return typing.cast(typing.Optional[jsii.Number], result)
3114
3499
 
3500
+ @builtins.property
3501
+ def next_version_command(self) -> typing.Optional[builtins.str]:
3502
+ '''(experimental) A shell command to control the next version to release.
3503
+
3504
+ If present, this shell command will be run before the bump is executed, and
3505
+ it determines what version to release. It will be executed in the following
3506
+ environment:
3507
+
3508
+ - Working directory: the project directory.
3509
+ - ``$VERSION``: the current version. Looks like ``1.2.3``.
3510
+ - ``$LATEST_TAG``: the most recent tag. Looks like ``prefix-v1.2.3``, or may be unset.
3511
+ - ``$SUGGESTED_BUMP``: the suggested bump action based on commits. One of ``major|minor|patch|none``.
3512
+
3513
+ The command should print one of the following to ``stdout``:
3514
+
3515
+ - Nothing: the next version number will be determined based on commit history.
3516
+ - ``x.y.z``: the next version number will be ``x.y.z``.
3517
+ - ``major|minor|patch``: the next version number will be the current version number
3518
+ with the indicated component bumped.
3519
+
3520
+ This setting cannot be specified together with ``minMajorVersion``; the invoked
3521
+ script can be used to achieve the effects of ``minMajorVersion``.
3522
+
3523
+ :default: - The next version will be determined based on the commit history and project settings.
3524
+
3525
+ :stability: experimental
3526
+ '''
3527
+ result = self._values.get("next_version_command")
3528
+ return typing.cast(typing.Optional[builtins.str], result)
3529
+
3115
3530
  @builtins.property
3116
3531
  def npm_dist_tag(self) -> typing.Optional[builtins.str]:
3117
3532
  '''(experimental) The npmDistTag to use when publishing from the default branch.
@@ -3207,6 +3622,23 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3207
3622
  result = self._values.get("release_branches")
3208
3623
  return typing.cast(typing.Optional[typing.Mapping[builtins.str, _BranchOptions_13663d08]], result)
3209
3624
 
3625
+ @builtins.property
3626
+ def release_environment(self) -> typing.Optional[builtins.str]:
3627
+ '''(experimental) The GitHub Actions environment used for the release.
3628
+
3629
+ This can be used to add an explicit approval step to the release
3630
+ or limit who can initiate a release through environment protection rules.
3631
+
3632
+ When multiple artifacts are released, the environment can be overwritten
3633
+ on a per artifact basis.
3634
+
3635
+ :default: - no environment used, unless set at the artifact level
3636
+
3637
+ :stability: experimental
3638
+ '''
3639
+ result = self._values.get("release_environment")
3640
+ return typing.cast(typing.Optional[builtins.str], result)
3641
+
3210
3642
  @builtins.property
3211
3643
  def release_every_commit(self) -> typing.Optional[builtins.bool]:
3212
3644
  '''(deprecated) Automatically release new versions every commit to one of branches in ``releaseBranches``.
@@ -3284,6 +3716,19 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3284
3716
  result = self._values.get("release_trigger")
3285
3717
  return typing.cast(typing.Optional[_ReleaseTrigger_e4dc221f], result)
3286
3718
 
3719
+ @builtins.property
3720
+ def release_workflow_env(
3721
+ self,
3722
+ ) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
3723
+ '''(experimental) Build environment variables for release workflows.
3724
+
3725
+ :default: {}
3726
+
3727
+ :stability: experimental
3728
+ '''
3729
+ result = self._values.get("release_workflow_env")
3730
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
3731
+
3287
3732
  @builtins.property
3288
3733
  def release_workflow_name(self) -> typing.Optional[builtins.str]:
3289
3734
  '''(experimental) The name of the default release workflow.
@@ -3310,7 +3755,7 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3310
3755
  def versionrc_options(
3311
3756
  self,
3312
3757
  ) -> typing.Optional[typing.Mapping[builtins.str, typing.Any]]:
3313
- '''(experimental) Custom configuration used when creating changelog with standard-version package.
3758
+ '''(experimental) Custom configuration used when creating changelog with commit-and-tag-version package.
3314
3759
 
3315
3760
  Given values either append to default configuration or overwrite values in it.
3316
3761
 
@@ -3379,6 +3824,32 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3379
3824
  result = self._values.get("artifacts_directory")
3380
3825
  return typing.cast(typing.Optional[builtins.str], result)
3381
3826
 
3827
+ @builtins.property
3828
+ def audit_deps(self) -> typing.Optional[builtins.bool]:
3829
+ '''(experimental) Run security audit on dependencies.
3830
+
3831
+ When enabled, creates an "audit" task that checks for known security vulnerabilities
3832
+ in dependencies. By default, runs during every build and checks for "high" severity
3833
+ vulnerabilities or above in all dependencies (including dev dependencies).
3834
+
3835
+ :default: false
3836
+
3837
+ :stability: experimental
3838
+ '''
3839
+ result = self._values.get("audit_deps")
3840
+ return typing.cast(typing.Optional[builtins.bool], result)
3841
+
3842
+ @builtins.property
3843
+ def audit_deps_options(self) -> typing.Optional[_AuditOptions_429c62df]:
3844
+ '''(experimental) Security audit options.
3845
+
3846
+ :default: - default options
3847
+
3848
+ :stability: experimental
3849
+ '''
3850
+ result = self._values.get("audit_deps_options")
3851
+ return typing.cast(typing.Optional[_AuditOptions_429c62df], result)
3852
+
3382
3853
  @builtins.property
3383
3854
  def auto_approve_upgrades(self) -> typing.Optional[builtins.bool]:
3384
3855
  '''(experimental) Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued).
@@ -3392,6 +3863,28 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3392
3863
  result = self._values.get("auto_approve_upgrades")
3393
3864
  return typing.cast(typing.Optional[builtins.bool], result)
3394
3865
 
3866
+ @builtins.property
3867
+ def biome(self) -> typing.Optional[builtins.bool]:
3868
+ '''(experimental) Setup Biome.
3869
+
3870
+ :default: false
3871
+
3872
+ :stability: experimental
3873
+ '''
3874
+ result = self._values.get("biome")
3875
+ return typing.cast(typing.Optional[builtins.bool], result)
3876
+
3877
+ @builtins.property
3878
+ def biome_options(self) -> typing.Optional[_BiomeOptions_452ab984]:
3879
+ '''(experimental) Biome options.
3880
+
3881
+ :default: - default options
3882
+
3883
+ :stability: experimental
3884
+ '''
3885
+ result = self._values.get("biome_options")
3886
+ return typing.cast(typing.Optional[_BiomeOptions_452ab984], result)
3887
+
3395
3888
  @builtins.property
3396
3889
  def build_workflow(self) -> typing.Optional[builtins.bool]:
3397
3890
  '''(experimental) Define a GitHub workflow for building PRs.
@@ -3403,13 +3896,24 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3403
3896
  result = self._values.get("build_workflow")
3404
3897
  return typing.cast(typing.Optional[builtins.bool], result)
3405
3898
 
3899
+ @builtins.property
3900
+ def build_workflow_options(self) -> typing.Optional[_BuildWorkflowOptions_b756f97f]:
3901
+ '''(experimental) Options for PR build workflow.
3902
+
3903
+ :stability: experimental
3904
+ '''
3905
+ result = self._values.get("build_workflow_options")
3906
+ return typing.cast(typing.Optional[_BuildWorkflowOptions_b756f97f], result)
3907
+
3406
3908
  @builtins.property
3407
3909
  def build_workflow_triggers(self) -> typing.Optional[_Triggers_e9ae7617]:
3408
- '''(experimental) Build workflow triggers.
3910
+ '''(deprecated) Build workflow triggers.
3409
3911
 
3410
3912
  :default: "{ pullRequest: {}, workflowDispatch: {} }"
3411
3913
 
3412
- :stability: experimental
3914
+ :deprecated: - Use ``buildWorkflowOptions.workflowTriggers``
3915
+
3916
+ :stability: deprecated
3413
3917
  '''
3414
3918
  result = self._values.get("build_workflow_triggers")
3415
3919
  return typing.cast(typing.Optional[_Triggers_e9ae7617], result)
@@ -3438,7 +3942,7 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3438
3942
 
3439
3943
  @builtins.property
3440
3944
  def code_cov(self) -> typing.Optional[builtins.bool]:
3441
- '''(experimental) Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with ``@codeCovTokenSecret``.
3945
+ '''(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``.
3442
3946
 
3443
3947
  :default: false
3444
3948
 
@@ -3449,9 +3953,9 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3449
3953
 
3450
3954
  @builtins.property
3451
3955
  def code_cov_token_secret(self) -> typing.Optional[builtins.str]:
3452
- '''(experimental) Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories.
3956
+ '''(experimental) Define the secret name for a specified https://codecov.io/ token.
3453
3957
 
3454
- :default: - if this option is not specified, only public repositories are supported
3958
+ :default: - OIDC auth is used
3455
3959
 
3456
3960
  :stability: experimental
3457
3961
  '''
@@ -3563,7 +4067,7 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3563
4067
 
3564
4068
  @builtins.property
3565
4069
  def mutable_build(self) -> typing.Optional[builtins.bool]:
3566
- '''(experimental) Automatically update files modified during builds to pull-request branches.
4070
+ '''(deprecated) Automatically update files modified during builds to pull-request branches.
3567
4071
 
3568
4072
  This means
3569
4073
  that any files synthesized by projen or e.g. test snapshots will always be up-to-date
@@ -3573,7 +4077,9 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3573
4077
 
3574
4078
  :default: true
3575
4079
 
3576
- :stability: experimental
4080
+ :deprecated: - Use ``buildWorkflowOptions.mutableBuild``
4081
+
4082
+ :stability: deprecated
3577
4083
  '''
3578
4084
  result = self._values.get("mutable_build")
3579
4085
  return typing.cast(typing.Optional[builtins.bool], result)
@@ -3646,7 +4152,7 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3646
4152
  def projen_dev_dependency(self) -> typing.Optional[builtins.bool]:
3647
4153
  '''(experimental) Indicates of "projen" should be installed as a devDependency.
3648
4154
 
3649
- :default: true
4155
+ :default: - true if not a subproject
3650
4156
 
3651
4157
  :stability: experimental
3652
4158
  '''
@@ -3762,7 +4268,7 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3762
4268
  def workflow_git_identity(self) -> typing.Optional[_GitIdentity_6effc3de]:
3763
4269
  '''(experimental) The git identity to use in workflows.
3764
4270
 
3765
- :default: - GitHub Actions
4271
+ :default: - default GitHub Actions user
3766
4272
 
3767
4273
  :stability: experimental
3768
4274
  '''
@@ -3771,9 +4277,11 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3771
4277
 
3772
4278
  @builtins.property
3773
4279
  def workflow_node_version(self) -> typing.Optional[builtins.str]:
3774
- '''(experimental) The node version to use in GitHub workflows.
4280
+ '''(experimental) The node version used in GitHub Actions workflows.
4281
+
4282
+ Always use this option if your GitHub Actions workflows require a specific to run.
3775
4283
 
3776
- :default: - same as ``minNodeVersion``
4284
+ :default: - ``minNodeVersion`` if set, otherwise ``lts/*``.
3777
4285
 
3778
4286
  :stability: experimental
3779
4287
  '''
@@ -3850,7 +4358,7 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3850
4358
  def eslint(self) -> typing.Optional[builtins.bool]:
3851
4359
  '''(experimental) Setup eslint.
3852
4360
 
3853
- :default: true
4361
+ :default: - true, unless biome is enabled
3854
4362
 
3855
4363
  :stability: experimental
3856
4364
  '''
@@ -4061,8 +4569,13 @@ class TypeScriptAppProject(
4061
4569
  typescript_version: typing.Optional[builtins.str] = None,
4062
4570
  default_release_branch: builtins.str,
4063
4571
  artifacts_directory: typing.Optional[builtins.str] = None,
4572
+ audit_deps: typing.Optional[builtins.bool] = None,
4573
+ audit_deps_options: typing.Optional[typing.Union[_AuditOptions_429c62df, typing.Dict[builtins.str, typing.Any]]] = None,
4064
4574
  auto_approve_upgrades: typing.Optional[builtins.bool] = None,
4575
+ biome: typing.Optional[builtins.bool] = None,
4576
+ biome_options: typing.Optional[typing.Union[_BiomeOptions_452ab984, typing.Dict[builtins.str, typing.Any]]] = None,
4065
4577
  build_workflow: typing.Optional[builtins.bool] = None,
4578
+ build_workflow_options: typing.Optional[typing.Union[_BuildWorkflowOptions_b756f97f, typing.Dict[builtins.str, typing.Any]]] = None,
4066
4579
  build_workflow_triggers: typing.Optional[typing.Union[_Triggers_e9ae7617, typing.Dict[builtins.str, typing.Any]]] = None,
4067
4580
  bundler_options: typing.Optional[typing.Union[_BundlerOptions_d60b85ed, typing.Dict[builtins.str, typing.Any]]] = None,
4068
4581
  check_licenses: typing.Optional[typing.Union[_LicenseCheckerOptions_80bcd362, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -4124,6 +4637,7 @@ class TypeScriptAppProject(
4124
4637
  bugs_email: typing.Optional[builtins.str] = None,
4125
4638
  bugs_url: typing.Optional[builtins.str] = None,
4126
4639
  bundled_deps: typing.Optional[typing.Sequence[builtins.str]] = None,
4640
+ bun_version: typing.Optional[builtins.str] = None,
4127
4641
  code_artifact_options: typing.Optional[typing.Union[_CodeArtifactOptions_e4782b3e, typing.Dict[builtins.str, typing.Any]]] = None,
4128
4642
  deps: typing.Optional[typing.Sequence[builtins.str]] = None,
4129
4643
  description: typing.Optional[builtins.str] = None,
@@ -4136,9 +4650,11 @@ class TypeScriptAppProject(
4136
4650
  max_node_version: typing.Optional[builtins.str] = None,
4137
4651
  min_node_version: typing.Optional[builtins.str] = None,
4138
4652
  npm_access: typing.Optional[_NpmAccess_134fa228] = None,
4653
+ npm_provenance: typing.Optional[builtins.bool] = None,
4139
4654
  npm_registry: typing.Optional[builtins.str] = None,
4140
4655
  npm_registry_url: typing.Optional[builtins.str] = None,
4141
4656
  npm_token_secret: typing.Optional[builtins.str] = None,
4657
+ npm_trusted_publishing: typing.Optional[builtins.bool] = None,
4142
4658
  package_manager: typing.Optional[_NodePackageManager_3eb53bf6] = None,
4143
4659
  package_name: typing.Optional[builtins.str] = None,
4144
4660
  peer_dependency_options: typing.Optional[typing.Union[_PeerDependencyOptions_99d7d493, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -4150,9 +4666,11 @@ class TypeScriptAppProject(
4150
4666
  scripts: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
4151
4667
  stability: typing.Optional[builtins.str] = None,
4152
4668
  yarn_berry_options: typing.Optional[typing.Union[_YarnBerryOptions_b6942539, typing.Dict[builtins.str, typing.Any]]] = None,
4669
+ bump_package: typing.Optional[builtins.str] = None,
4153
4670
  jsii_release_version: typing.Optional[builtins.str] = None,
4154
4671
  major_version: typing.Optional[jsii.Number] = None,
4155
4672
  min_major_version: typing.Optional[jsii.Number] = None,
4673
+ next_version_command: typing.Optional[builtins.str] = None,
4156
4674
  npm_dist_tag: typing.Optional[builtins.str] = None,
4157
4675
  post_build_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
4158
4676
  prerelease: typing.Optional[builtins.str] = None,
@@ -4160,12 +4678,14 @@ class TypeScriptAppProject(
4160
4678
  publish_tasks: typing.Optional[builtins.bool] = None,
4161
4679
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
4162
4680
  release_branches: typing.Optional[typing.Mapping[builtins.str, typing.Union[_BranchOptions_13663d08, typing.Dict[builtins.str, typing.Any]]]] = None,
4681
+ release_environment: typing.Optional[builtins.str] = None,
4163
4682
  release_every_commit: typing.Optional[builtins.bool] = None,
4164
4683
  release_failure_issue: typing.Optional[builtins.bool] = None,
4165
4684
  release_failure_issue_label: typing.Optional[builtins.str] = None,
4166
4685
  release_schedule: typing.Optional[builtins.str] = None,
4167
4686
  release_tag_prefix: typing.Optional[builtins.str] = None,
4168
4687
  release_trigger: typing.Optional[_ReleaseTrigger_e4dc221f] = None,
4688
+ release_workflow_env: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
4169
4689
  release_workflow_name: typing.Optional[builtins.str] = None,
4170
4690
  release_workflow_setup_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
4171
4691
  versionrc_options: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
@@ -4191,7 +4711,7 @@ class TypeScriptAppProject(
4191
4711
  :param docgen: (experimental) Docgen by Typedoc. Default: false
4192
4712
  :param docs_directory: (experimental) Docs directory. Default: "docs"
4193
4713
  :param entrypoint_types: (experimental) The .d.ts file that includes the type declarations for this module. Default: - .d.ts file derived from the project's entrypoint (usually lib/index.d.ts)
4194
- :param eslint: (experimental) Setup eslint. Default: true
4714
+ :param eslint: (experimental) Setup eslint. Default: - true, unless biome is enabled
4195
4715
  :param eslint_options: (experimental) Eslint options. Default: - opinionated default options
4196
4716
  :param libdir: (experimental) Typescript artifacts output directory. Default: "lib"
4197
4717
  :param projenrc_ts: (experimental) Use TypeScript for your projenrc file (``.projenrc.ts``). Default: false
@@ -4206,13 +4726,18 @@ class TypeScriptAppProject(
4206
4726
  :param typescript_version: (experimental) TypeScript version to use. NOTE: Typescript is not semantically versioned and should remain on the same minor, so we recommend using a ``~`` dependency (e.g. ``~1.2.3``). Default: "latest"
4207
4727
  :param default_release_branch: (experimental) The name of the main release branch. Default: "main"
4208
4728
  :param artifacts_directory: (experimental) A directory which will contain build artifacts. Default: "dist"
4729
+ :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
4730
+ :param audit_deps_options: (experimental) Security audit options. Default: - default options
4209
4731
  :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
4732
+ :param biome: (experimental) Setup Biome. Default: false
4733
+ :param biome_options: (experimental) Biome options. Default: - default options
4210
4734
  :param build_workflow: (experimental) Define a GitHub workflow for building PRs. Default: - true if not a subproject
4211
- :param build_workflow_triggers: (experimental) Build workflow triggers. Default: "{ pullRequest: {}, workflowDispatch: {} }"
4735
+ :param build_workflow_options: (experimental) Options for PR build workflow.
4736
+ :param build_workflow_triggers: (deprecated) Build workflow triggers. Default: "{ pullRequest: {}, workflowDispatch: {} }"
4212
4737
  :param bundler_options: (experimental) Options for ``Bundler``.
4213
4738
  :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
4214
- :param code_cov: (experimental) Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with ``@codeCovTokenSecret``. Default: false
4215
- :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
4739
+ :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
4740
+ :param code_cov_token_secret: (experimental) Define the secret name for a specified https://codecov.io/ token. Default: - OIDC auth is used
4216
4741
  :param copyright_owner: (experimental) License copyright owner. Default: - defaults to the value of authorName or "" if ``authorName`` is undefined.
4217
4742
  :param copyright_period: (experimental) The copyright years to put in the LICENSE file. Default: - current year
4218
4743
  :param dependabot: (experimental) Use dependabot to handle dependency upgrades. Cannot be used in conjunction with ``depsUpgrade``. Default: false
@@ -4222,14 +4747,14 @@ class TypeScriptAppProject(
4222
4747
  :param gitignore: (experimental) Additional entries to .gitignore.
4223
4748
  :param jest: (experimental) Setup jest unit tests. Default: true
4224
4749
  :param jest_options: (experimental) Jest options. Default: - default options
4225
- :param mutable_build: (experimental) Automatically update files modified during builds to pull-request branches. This means that any files synthesized by projen or e.g. test snapshots will always be up-to-date before a PR is merged. Implies that PR builds do not have anti-tamper checks. Default: true
4750
+ :param mutable_build: (deprecated) Automatically update files modified during builds to pull-request branches. This means that any files synthesized by projen or e.g. test snapshots will always be up-to-date before a PR is merged. Implies that PR builds do not have anti-tamper checks. Default: true
4226
4751
  :param npmignore: (deprecated) Additional entries to .npmignore.
4227
4752
  :param npmignore_enabled: (experimental) Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. Default: true
4228
4753
  :param npm_ignore_options: (experimental) Configuration options for .npmignore file.
4229
4754
  :param package: (experimental) Defines a ``package`` task that will produce an npm tarball under the artifacts directory (e.g. ``dist``). Default: true
4230
4755
  :param prettier: (experimental) Setup prettier. Default: false
4231
4756
  :param prettier_options: (experimental) Prettier options. Default: - default options
4232
- :param projen_dev_dependency: (experimental) Indicates of "projen" should be installed as a devDependency. Default: true
4757
+ :param projen_dev_dependency: (experimental) Indicates of "projen" should be installed as a devDependency. Default: - true if not a subproject
4233
4758
  :param projenrc_js: (experimental) Generate (once) .projenrc.js (in JavaScript). Set to ``false`` in order to disable .projenrc.js generation. Default: - true if projenrcJson is false
4234
4759
  :param projenrc_js_options: (experimental) Options for .projenrc.js. Default: - default options
4235
4760
  :param projen_version: (experimental) Version of projen to install. Default: - Defaults to the latest version.
@@ -4239,8 +4764,8 @@ class TypeScriptAppProject(
4239
4764
  :param release_to_npm: (experimental) Automatically release to npm when new versions are introduced. Default: false
4240
4765
  :param release_workflow: (deprecated) DEPRECATED: renamed to ``release``. Default: - true if not a subproject
4241
4766
  :param workflow_bootstrap_steps: (experimental) Workflow steps to use in order to bootstrap this repo. Default: "yarn install --frozen-lockfile && yarn projen"
4242
- :param workflow_git_identity: (experimental) The git identity to use in workflows. Default: - GitHub Actions
4243
- :param workflow_node_version: (experimental) The node version to use in GitHub workflows. Default: - same as ``minNodeVersion``
4767
+ :param workflow_git_identity: (experimental) The git identity to use in workflows. Default: - default GitHub Actions user
4768
+ :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/*``.
4244
4769
  :param workflow_package_cache: (experimental) Enable Node.js package cache in GitHub workflows. Default: false
4245
4770
  :param auto_approve_options: (experimental) Enable and configure the 'auto approve' workflow. Default: - auto approve is disabled
4246
4771
  :param auto_merge: (experimental) Enable automatic merging on GitHub. Has no effect if ``github.mergify`` is set to false. Default: true
@@ -4269,6 +4794,7 @@ class TypeScriptAppProject(
4269
4794
  :param bugs_email: (experimental) The email address to which issues should be reported.
4270
4795
  :param bugs_url: (experimental) The url to your project's issue tracker.
4271
4796
  :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.
4797
+ :param bun_version: (experimental) The version of Bun to use if using Bun as a package manager. Default: "latest"
4272
4798
  :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
4273
4799
  :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: []
4274
4800
  :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
@@ -4278,26 +4804,30 @@ class TypeScriptAppProject(
4278
4804
  :param keywords: (experimental) Keywords to include in ``package.json``.
4279
4805
  :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"
4280
4806
  :param licensed: (experimental) Indicates if a license should be added. Default: true
4281
- :param max_node_version: (experimental) Minimum node.js version to require via ``engines`` (inclusive). Default: - no max
4282
- :param min_node_version: (experimental) Minimum Node.js version to require via package.json ``engines`` (inclusive). Default: - no "engines" specified
4807
+ :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
4808
+ :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
4283
4809
  :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``.
4810
+ :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
4284
4811
  :param npm_registry: (deprecated) The host name of the npm registry to publish to. Cannot be set together with ``npmRegistryUrl``.
4285
4812
  :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"
4286
4813
  :param npm_token_secret: (experimental) GitHub secret which contains the NPM token to use when publishing packages. Default: "NPM_TOKEN"
4814
+ :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
4287
4815
  :param package_manager: (experimental) The Node Package Manager used to execute scripts. Default: NodePackageManager.YARN_CLASSIC
4288
4816
  :param package_name: (experimental) The "name" in package.json. Default: - defaults to project name
4289
4817
  :param peer_dependency_options: (experimental) Options for ``peerDeps``.
4290
4818
  :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: []
4291
- :param pnpm_version: (experimental) The version of PNPM to use if using PNPM as a package manager. Default: "7"
4819
+ :param pnpm_version: (experimental) The version of PNPM to use if using PNPM as a package manager. Default: "9"
4292
4820
  :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
4293
4821
  :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.
4294
4822
  :param scoped_packages_options: (experimental) Options for privately hosted scoped packages. Default: - fetch all scoped packages from the public npm registry
4295
4823
  :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: {}
4296
4824
  :param stability: (experimental) Package's Stability.
4297
4825
  :param yarn_berry_options: (experimental) Options for Yarn Berry. Default: - Yarn Berry v4 with all default options
4826
+ :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"
4298
4827
  :param jsii_release_version: (experimental) Version requirement of ``publib`` which is used to publish modules to npm. Default: "latest"
4299
4828
  :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.
4300
4829
  :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
4830
+ :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.
4301
4831
  :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"
4302
4832
  :param post_build_steps: (experimental) Steps to execute after build as part of the release workflow. Default: []
4303
4833
  :param prerelease: (experimental) Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). Default: - normal semantic versions
@@ -4305,15 +4835,17 @@ class TypeScriptAppProject(
4305
4835
  :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
4306
4836
  :param releasable_commits: (experimental) Find commits that should be considered releasable Used to decide if a release is required. Default: ReleasableCommits.everyCommit()
4307
4837
  :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.
4838
+ :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
4308
4839
  :param release_every_commit: (deprecated) Automatically release new versions every commit to one of branches in ``releaseBranches``. Default: true
4309
4840
  :param release_failure_issue: (experimental) Create a github issue on every failed publishing task. Default: false
4310
4841
  :param release_failure_issue_label: (experimental) The label to apply to issues indicating publish failures. Only applies if ``releaseFailureIssue`` is true. Default: "failed-release"
4311
4842
  :param release_schedule: (deprecated) CRON schedule to trigger new releases. Default: - no scheduled releases
4312
4843
  :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"
4313
4844
  :param release_trigger: (experimental) The release trigger to use. Default: - Continuous releases (``ReleaseTrigger.continuous()``)
4845
+ :param release_workflow_env: (experimental) Build environment variables for release workflows. Default: {}
4314
4846
  :param release_workflow_name: (experimental) The name of the default release workflow. Default: "release"
4315
4847
  :param release_workflow_setup_steps: (experimental) A set of workflow steps to execute in order to setup the workflow container.
4316
- :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
4848
+ :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
4317
4849
  :param workflow_container_image: (experimental) Container image to use for GitHub workflows. Default: - default image
4318
4850
  :param workflow_runs_on: (experimental) Github Runner selection labels. Default: ["ubuntu-latest"]
4319
4851
  :param workflow_runs_on_group: (experimental) Github Runner Group selection options.
@@ -4353,8 +4885,13 @@ class TypeScriptAppProject(
4353
4885
  typescript_version=typescript_version,
4354
4886
  default_release_branch=default_release_branch,
4355
4887
  artifacts_directory=artifacts_directory,
4888
+ audit_deps=audit_deps,
4889
+ audit_deps_options=audit_deps_options,
4356
4890
  auto_approve_upgrades=auto_approve_upgrades,
4891
+ biome=biome,
4892
+ biome_options=biome_options,
4357
4893
  build_workflow=build_workflow,
4894
+ build_workflow_options=build_workflow_options,
4358
4895
  build_workflow_triggers=build_workflow_triggers,
4359
4896
  bundler_options=bundler_options,
4360
4897
  check_licenses=check_licenses,
@@ -4416,6 +4953,7 @@ class TypeScriptAppProject(
4416
4953
  bugs_email=bugs_email,
4417
4954
  bugs_url=bugs_url,
4418
4955
  bundled_deps=bundled_deps,
4956
+ bun_version=bun_version,
4419
4957
  code_artifact_options=code_artifact_options,
4420
4958
  deps=deps,
4421
4959
  description=description,
@@ -4428,9 +4966,11 @@ class TypeScriptAppProject(
4428
4966
  max_node_version=max_node_version,
4429
4967
  min_node_version=min_node_version,
4430
4968
  npm_access=npm_access,
4969
+ npm_provenance=npm_provenance,
4431
4970
  npm_registry=npm_registry,
4432
4971
  npm_registry_url=npm_registry_url,
4433
4972
  npm_token_secret=npm_token_secret,
4973
+ npm_trusted_publishing=npm_trusted_publishing,
4434
4974
  package_manager=package_manager,
4435
4975
  package_name=package_name,
4436
4976
  peer_dependency_options=peer_dependency_options,
@@ -4442,9 +4982,11 @@ class TypeScriptAppProject(
4442
4982
  scripts=scripts,
4443
4983
  stability=stability,
4444
4984
  yarn_berry_options=yarn_berry_options,
4985
+ bump_package=bump_package,
4445
4986
  jsii_release_version=jsii_release_version,
4446
4987
  major_version=major_version,
4447
4988
  min_major_version=min_major_version,
4989
+ next_version_command=next_version_command,
4448
4990
  npm_dist_tag=npm_dist_tag,
4449
4991
  post_build_steps=post_build_steps,
4450
4992
  prerelease=prerelease,
@@ -4452,12 +4994,14 @@ class TypeScriptAppProject(
4452
4994
  publish_tasks=publish_tasks,
4453
4995
  releasable_commits=releasable_commits,
4454
4996
  release_branches=release_branches,
4997
+ release_environment=release_environment,
4455
4998
  release_every_commit=release_every_commit,
4456
4999
  release_failure_issue=release_failure_issue,
4457
5000
  release_failure_issue_label=release_failure_issue_label,
4458
5001
  release_schedule=release_schedule,
4459
5002
  release_tag_prefix=release_tag_prefix,
4460
5003
  release_trigger=release_trigger,
5004
+ release_workflow_env=release_workflow_env,
4461
5005
  release_workflow_name=release_workflow_name,
4462
5006
  release_workflow_setup_steps=release_workflow_setup_steps,
4463
5007
  versionrc_options=versionrc_options,
@@ -4515,8 +5059,13 @@ class TypeScriptLibraryProject(
4515
5059
  typescript_version: typing.Optional[builtins.str] = None,
4516
5060
  default_release_branch: builtins.str,
4517
5061
  artifacts_directory: typing.Optional[builtins.str] = None,
5062
+ audit_deps: typing.Optional[builtins.bool] = None,
5063
+ audit_deps_options: typing.Optional[typing.Union[_AuditOptions_429c62df, typing.Dict[builtins.str, typing.Any]]] = None,
4518
5064
  auto_approve_upgrades: typing.Optional[builtins.bool] = None,
5065
+ biome: typing.Optional[builtins.bool] = None,
5066
+ biome_options: typing.Optional[typing.Union[_BiomeOptions_452ab984, typing.Dict[builtins.str, typing.Any]]] = None,
4519
5067
  build_workflow: typing.Optional[builtins.bool] = None,
5068
+ build_workflow_options: typing.Optional[typing.Union[_BuildWorkflowOptions_b756f97f, typing.Dict[builtins.str, typing.Any]]] = None,
4520
5069
  build_workflow_triggers: typing.Optional[typing.Union[_Triggers_e9ae7617, typing.Dict[builtins.str, typing.Any]]] = None,
4521
5070
  bundler_options: typing.Optional[typing.Union[_BundlerOptions_d60b85ed, typing.Dict[builtins.str, typing.Any]]] = None,
4522
5071
  check_licenses: typing.Optional[typing.Union[_LicenseCheckerOptions_80bcd362, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -4578,6 +5127,7 @@ class TypeScriptLibraryProject(
4578
5127
  bugs_email: typing.Optional[builtins.str] = None,
4579
5128
  bugs_url: typing.Optional[builtins.str] = None,
4580
5129
  bundled_deps: typing.Optional[typing.Sequence[builtins.str]] = None,
5130
+ bun_version: typing.Optional[builtins.str] = None,
4581
5131
  code_artifact_options: typing.Optional[typing.Union[_CodeArtifactOptions_e4782b3e, typing.Dict[builtins.str, typing.Any]]] = None,
4582
5132
  deps: typing.Optional[typing.Sequence[builtins.str]] = None,
4583
5133
  description: typing.Optional[builtins.str] = None,
@@ -4590,9 +5140,11 @@ class TypeScriptLibraryProject(
4590
5140
  max_node_version: typing.Optional[builtins.str] = None,
4591
5141
  min_node_version: typing.Optional[builtins.str] = None,
4592
5142
  npm_access: typing.Optional[_NpmAccess_134fa228] = None,
5143
+ npm_provenance: typing.Optional[builtins.bool] = None,
4593
5144
  npm_registry: typing.Optional[builtins.str] = None,
4594
5145
  npm_registry_url: typing.Optional[builtins.str] = None,
4595
5146
  npm_token_secret: typing.Optional[builtins.str] = None,
5147
+ npm_trusted_publishing: typing.Optional[builtins.bool] = None,
4596
5148
  package_manager: typing.Optional[_NodePackageManager_3eb53bf6] = None,
4597
5149
  package_name: typing.Optional[builtins.str] = None,
4598
5150
  peer_dependency_options: typing.Optional[typing.Union[_PeerDependencyOptions_99d7d493, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -4604,9 +5156,11 @@ class TypeScriptLibraryProject(
4604
5156
  scripts: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
4605
5157
  stability: typing.Optional[builtins.str] = None,
4606
5158
  yarn_berry_options: typing.Optional[typing.Union[_YarnBerryOptions_b6942539, typing.Dict[builtins.str, typing.Any]]] = None,
5159
+ bump_package: typing.Optional[builtins.str] = None,
4607
5160
  jsii_release_version: typing.Optional[builtins.str] = None,
4608
5161
  major_version: typing.Optional[jsii.Number] = None,
4609
5162
  min_major_version: typing.Optional[jsii.Number] = None,
5163
+ next_version_command: typing.Optional[builtins.str] = None,
4610
5164
  npm_dist_tag: typing.Optional[builtins.str] = None,
4611
5165
  post_build_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
4612
5166
  prerelease: typing.Optional[builtins.str] = None,
@@ -4614,12 +5168,14 @@ class TypeScriptLibraryProject(
4614
5168
  publish_tasks: typing.Optional[builtins.bool] = None,
4615
5169
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
4616
5170
  release_branches: typing.Optional[typing.Mapping[builtins.str, typing.Union[_BranchOptions_13663d08, typing.Dict[builtins.str, typing.Any]]]] = None,
5171
+ release_environment: typing.Optional[builtins.str] = None,
4617
5172
  release_every_commit: typing.Optional[builtins.bool] = None,
4618
5173
  release_failure_issue: typing.Optional[builtins.bool] = None,
4619
5174
  release_failure_issue_label: typing.Optional[builtins.str] = None,
4620
5175
  release_schedule: typing.Optional[builtins.str] = None,
4621
5176
  release_tag_prefix: typing.Optional[builtins.str] = None,
4622
5177
  release_trigger: typing.Optional[_ReleaseTrigger_e4dc221f] = None,
5178
+ release_workflow_env: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
4623
5179
  release_workflow_name: typing.Optional[builtins.str] = None,
4624
5180
  release_workflow_setup_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
4625
5181
  versionrc_options: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
@@ -4645,7 +5201,7 @@ class TypeScriptLibraryProject(
4645
5201
  :param docgen: (experimental) Docgen by Typedoc. Default: false
4646
5202
  :param docs_directory: (experimental) Docs directory. Default: "docs"
4647
5203
  :param entrypoint_types: (experimental) The .d.ts file that includes the type declarations for this module. Default: - .d.ts file derived from the project's entrypoint (usually lib/index.d.ts)
4648
- :param eslint: (experimental) Setup eslint. Default: true
5204
+ :param eslint: (experimental) Setup eslint. Default: - true, unless biome is enabled
4649
5205
  :param eslint_options: (experimental) Eslint options. Default: - opinionated default options
4650
5206
  :param libdir: (experimental) Typescript artifacts output directory. Default: "lib"
4651
5207
  :param projenrc_ts: (experimental) Use TypeScript for your projenrc file (``.projenrc.ts``). Default: false
@@ -4660,13 +5216,18 @@ class TypeScriptLibraryProject(
4660
5216
  :param typescript_version: (experimental) TypeScript version to use. NOTE: Typescript is not semantically versioned and should remain on the same minor, so we recommend using a ``~`` dependency (e.g. ``~1.2.3``). Default: "latest"
4661
5217
  :param default_release_branch: (experimental) The name of the main release branch. Default: "main"
4662
5218
  :param artifacts_directory: (experimental) A directory which will contain build artifacts. Default: "dist"
5219
+ :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
5220
+ :param audit_deps_options: (experimental) Security audit options. Default: - default options
4663
5221
  :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
5222
+ :param biome: (experimental) Setup Biome. Default: false
5223
+ :param biome_options: (experimental) Biome options. Default: - default options
4664
5224
  :param build_workflow: (experimental) Define a GitHub workflow for building PRs. Default: - true if not a subproject
4665
- :param build_workflow_triggers: (experimental) Build workflow triggers. Default: "{ pullRequest: {}, workflowDispatch: {} }"
5225
+ :param build_workflow_options: (experimental) Options for PR build workflow.
5226
+ :param build_workflow_triggers: (deprecated) Build workflow triggers. Default: "{ pullRequest: {}, workflowDispatch: {} }"
4666
5227
  :param bundler_options: (experimental) Options for ``Bundler``.
4667
5228
  :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
4668
- :param code_cov: (experimental) Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with ``@codeCovTokenSecret``. Default: false
4669
- :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
5229
+ :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
5230
+ :param code_cov_token_secret: (experimental) Define the secret name for a specified https://codecov.io/ token. Default: - OIDC auth is used
4670
5231
  :param copyright_owner: (experimental) License copyright owner. Default: - defaults to the value of authorName or "" if ``authorName`` is undefined.
4671
5232
  :param copyright_period: (experimental) The copyright years to put in the LICENSE file. Default: - current year
4672
5233
  :param dependabot: (experimental) Use dependabot to handle dependency upgrades. Cannot be used in conjunction with ``depsUpgrade``. Default: false
@@ -4676,14 +5237,14 @@ class TypeScriptLibraryProject(
4676
5237
  :param gitignore: (experimental) Additional entries to .gitignore.
4677
5238
  :param jest: (experimental) Setup jest unit tests. Default: true
4678
5239
  :param jest_options: (experimental) Jest options. Default: - default options
4679
- :param mutable_build: (experimental) Automatically update files modified during builds to pull-request branches. This means that any files synthesized by projen or e.g. test snapshots will always be up-to-date before a PR is merged. Implies that PR builds do not have anti-tamper checks. Default: true
5240
+ :param mutable_build: (deprecated) Automatically update files modified during builds to pull-request branches. This means that any files synthesized by projen or e.g. test snapshots will always be up-to-date before a PR is merged. Implies that PR builds do not have anti-tamper checks. Default: true
4680
5241
  :param npmignore: (deprecated) Additional entries to .npmignore.
4681
5242
  :param npmignore_enabled: (experimental) Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. Default: true
4682
5243
  :param npm_ignore_options: (experimental) Configuration options for .npmignore file.
4683
5244
  :param package: (experimental) Defines a ``package`` task that will produce an npm tarball under the artifacts directory (e.g. ``dist``). Default: true
4684
5245
  :param prettier: (experimental) Setup prettier. Default: false
4685
5246
  :param prettier_options: (experimental) Prettier options. Default: - default options
4686
- :param projen_dev_dependency: (experimental) Indicates of "projen" should be installed as a devDependency. Default: true
5247
+ :param projen_dev_dependency: (experimental) Indicates of "projen" should be installed as a devDependency. Default: - true if not a subproject
4687
5248
  :param projenrc_js: (experimental) Generate (once) .projenrc.js (in JavaScript). Set to ``false`` in order to disable .projenrc.js generation. Default: - true if projenrcJson is false
4688
5249
  :param projenrc_js_options: (experimental) Options for .projenrc.js. Default: - default options
4689
5250
  :param projen_version: (experimental) Version of projen to install. Default: - Defaults to the latest version.
@@ -4693,8 +5254,8 @@ class TypeScriptLibraryProject(
4693
5254
  :param release_to_npm: (experimental) Automatically release to npm when new versions are introduced. Default: false
4694
5255
  :param release_workflow: (deprecated) DEPRECATED: renamed to ``release``. Default: - true if not a subproject
4695
5256
  :param workflow_bootstrap_steps: (experimental) Workflow steps to use in order to bootstrap this repo. Default: "yarn install --frozen-lockfile && yarn projen"
4696
- :param workflow_git_identity: (experimental) The git identity to use in workflows. Default: - GitHub Actions
4697
- :param workflow_node_version: (experimental) The node version to use in GitHub workflows. Default: - same as ``minNodeVersion``
5257
+ :param workflow_git_identity: (experimental) The git identity to use in workflows. Default: - default GitHub Actions user
5258
+ :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/*``.
4698
5259
  :param workflow_package_cache: (experimental) Enable Node.js package cache in GitHub workflows. Default: false
4699
5260
  :param auto_approve_options: (experimental) Enable and configure the 'auto approve' workflow. Default: - auto approve is disabled
4700
5261
  :param auto_merge: (experimental) Enable automatic merging on GitHub. Has no effect if ``github.mergify`` is set to false. Default: true
@@ -4723,6 +5284,7 @@ class TypeScriptLibraryProject(
4723
5284
  :param bugs_email: (experimental) The email address to which issues should be reported.
4724
5285
  :param bugs_url: (experimental) The url to your project's issue tracker.
4725
5286
  :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.
5287
+ :param bun_version: (experimental) The version of Bun to use if using Bun as a package manager. Default: "latest"
4726
5288
  :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
4727
5289
  :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: []
4728
5290
  :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
@@ -4732,26 +5294,30 @@ class TypeScriptLibraryProject(
4732
5294
  :param keywords: (experimental) Keywords to include in ``package.json``.
4733
5295
  :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"
4734
5296
  :param licensed: (experimental) Indicates if a license should be added. Default: true
4735
- :param max_node_version: (experimental) Minimum node.js version to require via ``engines`` (inclusive). Default: - no max
4736
- :param min_node_version: (experimental) Minimum Node.js version to require via package.json ``engines`` (inclusive). Default: - no "engines" specified
5297
+ :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
5298
+ :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
4737
5299
  :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``.
5300
+ :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
4738
5301
  :param npm_registry: (deprecated) The host name of the npm registry to publish to. Cannot be set together with ``npmRegistryUrl``.
4739
5302
  :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"
4740
5303
  :param npm_token_secret: (experimental) GitHub secret which contains the NPM token to use when publishing packages. Default: "NPM_TOKEN"
5304
+ :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
4741
5305
  :param package_manager: (experimental) The Node Package Manager used to execute scripts. Default: NodePackageManager.YARN_CLASSIC
4742
5306
  :param package_name: (experimental) The "name" in package.json. Default: - defaults to project name
4743
5307
  :param peer_dependency_options: (experimental) Options for ``peerDeps``.
4744
5308
  :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: []
4745
- :param pnpm_version: (experimental) The version of PNPM to use if using PNPM as a package manager. Default: "7"
5309
+ :param pnpm_version: (experimental) The version of PNPM to use if using PNPM as a package manager. Default: "9"
4746
5310
  :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
4747
5311
  :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.
4748
5312
  :param scoped_packages_options: (experimental) Options for privately hosted scoped packages. Default: - fetch all scoped packages from the public npm registry
4749
5313
  :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: {}
4750
5314
  :param stability: (experimental) Package's Stability.
4751
5315
  :param yarn_berry_options: (experimental) Options for Yarn Berry. Default: - Yarn Berry v4 with all default options
5316
+ :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"
4752
5317
  :param jsii_release_version: (experimental) Version requirement of ``publib`` which is used to publish modules to npm. Default: "latest"
4753
5318
  :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.
4754
5319
  :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
5320
+ :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.
4755
5321
  :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"
4756
5322
  :param post_build_steps: (experimental) Steps to execute after build as part of the release workflow. Default: []
4757
5323
  :param prerelease: (experimental) Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). Default: - normal semantic versions
@@ -4759,15 +5325,17 @@ class TypeScriptLibraryProject(
4759
5325
  :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
4760
5326
  :param releasable_commits: (experimental) Find commits that should be considered releasable Used to decide if a release is required. Default: ReleasableCommits.everyCommit()
4761
5327
  :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.
5328
+ :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
4762
5329
  :param release_every_commit: (deprecated) Automatically release new versions every commit to one of branches in ``releaseBranches``. Default: true
4763
5330
  :param release_failure_issue: (experimental) Create a github issue on every failed publishing task. Default: false
4764
5331
  :param release_failure_issue_label: (experimental) The label to apply to issues indicating publish failures. Only applies if ``releaseFailureIssue`` is true. Default: "failed-release"
4765
5332
  :param release_schedule: (deprecated) CRON schedule to trigger new releases. Default: - no scheduled releases
4766
5333
  :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"
4767
5334
  :param release_trigger: (experimental) The release trigger to use. Default: - Continuous releases (``ReleaseTrigger.continuous()``)
5335
+ :param release_workflow_env: (experimental) Build environment variables for release workflows. Default: {}
4768
5336
  :param release_workflow_name: (experimental) The name of the default release workflow. Default: "release"
4769
5337
  :param release_workflow_setup_steps: (experimental) A set of workflow steps to execute in order to setup the workflow container.
4770
- :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
5338
+ :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
4771
5339
  :param workflow_container_image: (experimental) Container image to use for GitHub workflows. Default: - default image
4772
5340
  :param workflow_runs_on: (experimental) Github Runner selection labels. Default: ["ubuntu-latest"]
4773
5341
  :param workflow_runs_on_group: (experimental) Github Runner Group selection options.
@@ -4807,8 +5375,13 @@ class TypeScriptLibraryProject(
4807
5375
  typescript_version=typescript_version,
4808
5376
  default_release_branch=default_release_branch,
4809
5377
  artifacts_directory=artifacts_directory,
5378
+ audit_deps=audit_deps,
5379
+ audit_deps_options=audit_deps_options,
4810
5380
  auto_approve_upgrades=auto_approve_upgrades,
5381
+ biome=biome,
5382
+ biome_options=biome_options,
4811
5383
  build_workflow=build_workflow,
5384
+ build_workflow_options=build_workflow_options,
4812
5385
  build_workflow_triggers=build_workflow_triggers,
4813
5386
  bundler_options=bundler_options,
4814
5387
  check_licenses=check_licenses,
@@ -4870,6 +5443,7 @@ class TypeScriptLibraryProject(
4870
5443
  bugs_email=bugs_email,
4871
5444
  bugs_url=bugs_url,
4872
5445
  bundled_deps=bundled_deps,
5446
+ bun_version=bun_version,
4873
5447
  code_artifact_options=code_artifact_options,
4874
5448
  deps=deps,
4875
5449
  description=description,
@@ -4882,9 +5456,11 @@ class TypeScriptLibraryProject(
4882
5456
  max_node_version=max_node_version,
4883
5457
  min_node_version=min_node_version,
4884
5458
  npm_access=npm_access,
5459
+ npm_provenance=npm_provenance,
4885
5460
  npm_registry=npm_registry,
4886
5461
  npm_registry_url=npm_registry_url,
4887
5462
  npm_token_secret=npm_token_secret,
5463
+ npm_trusted_publishing=npm_trusted_publishing,
4888
5464
  package_manager=package_manager,
4889
5465
  package_name=package_name,
4890
5466
  peer_dependency_options=peer_dependency_options,
@@ -4896,9 +5472,11 @@ class TypeScriptLibraryProject(
4896
5472
  scripts=scripts,
4897
5473
  stability=stability,
4898
5474
  yarn_berry_options=yarn_berry_options,
5475
+ bump_package=bump_package,
4899
5476
  jsii_release_version=jsii_release_version,
4900
5477
  major_version=major_version,
4901
5478
  min_major_version=min_major_version,
5479
+ next_version_command=next_version_command,
4902
5480
  npm_dist_tag=npm_dist_tag,
4903
5481
  post_build_steps=post_build_steps,
4904
5482
  prerelease=prerelease,
@@ -4906,12 +5484,14 @@ class TypeScriptLibraryProject(
4906
5484
  publish_tasks=publish_tasks,
4907
5485
  releasable_commits=releasable_commits,
4908
5486
  release_branches=release_branches,
5487
+ release_environment=release_environment,
4909
5488
  release_every_commit=release_every_commit,
4910
5489
  release_failure_issue=release_failure_issue,
4911
5490
  release_failure_issue_label=release_failure_issue_label,
4912
5491
  release_schedule=release_schedule,
4913
5492
  release_tag_prefix=release_tag_prefix,
4914
5493
  release_trigger=release_trigger,
5494
+ release_workflow_env=release_workflow_env,
4915
5495
  release_workflow_name=release_workflow_name,
4916
5496
  release_workflow_setup_steps=release_workflow_setup_steps,
4917
5497
  versionrc_options=versionrc_options,
@@ -4978,6 +5558,7 @@ class TypeScriptLibraryProject(
4978
5558
  "bugs_email": "bugsEmail",
4979
5559
  "bugs_url": "bugsUrl",
4980
5560
  "bundled_deps": "bundledDeps",
5561
+ "bun_version": "bunVersion",
4981
5562
  "code_artifact_options": "codeArtifactOptions",
4982
5563
  "deps": "deps",
4983
5564
  "description": "description",
@@ -4990,9 +5571,11 @@ class TypeScriptLibraryProject(
4990
5571
  "max_node_version": "maxNodeVersion",
4991
5572
  "min_node_version": "minNodeVersion",
4992
5573
  "npm_access": "npmAccess",
5574
+ "npm_provenance": "npmProvenance",
4993
5575
  "npm_registry": "npmRegistry",
4994
5576
  "npm_registry_url": "npmRegistryUrl",
4995
5577
  "npm_token_secret": "npmTokenSecret",
5578
+ "npm_trusted_publishing": "npmTrustedPublishing",
4996
5579
  "package_manager": "packageManager",
4997
5580
  "package_name": "packageName",
4998
5581
  "peer_dependency_options": "peerDependencyOptions",
@@ -5004,9 +5587,11 @@ class TypeScriptLibraryProject(
5004
5587
  "scripts": "scripts",
5005
5588
  "stability": "stability",
5006
5589
  "yarn_berry_options": "yarnBerryOptions",
5590
+ "bump_package": "bumpPackage",
5007
5591
  "jsii_release_version": "jsiiReleaseVersion",
5008
5592
  "major_version": "majorVersion",
5009
5593
  "min_major_version": "minMajorVersion",
5594
+ "next_version_command": "nextVersionCommand",
5010
5595
  "npm_dist_tag": "npmDistTag",
5011
5596
  "post_build_steps": "postBuildSteps",
5012
5597
  "prerelease": "prerelease",
@@ -5014,12 +5599,14 @@ class TypeScriptLibraryProject(
5014
5599
  "publish_tasks": "publishTasks",
5015
5600
  "releasable_commits": "releasableCommits",
5016
5601
  "release_branches": "releaseBranches",
5602
+ "release_environment": "releaseEnvironment",
5017
5603
  "release_every_commit": "releaseEveryCommit",
5018
5604
  "release_failure_issue": "releaseFailureIssue",
5019
5605
  "release_failure_issue_label": "releaseFailureIssueLabel",
5020
5606
  "release_schedule": "releaseSchedule",
5021
5607
  "release_tag_prefix": "releaseTagPrefix",
5022
5608
  "release_trigger": "releaseTrigger",
5609
+ "release_workflow_env": "releaseWorkflowEnv",
5023
5610
  "release_workflow_name": "releaseWorkflowName",
5024
5611
  "release_workflow_setup_steps": "releaseWorkflowSetupSteps",
5025
5612
  "versionrc_options": "versionrcOptions",
@@ -5028,8 +5615,13 @@ class TypeScriptLibraryProject(
5028
5615
  "workflow_runs_on_group": "workflowRunsOnGroup",
5029
5616
  "default_release_branch": "defaultReleaseBranch",
5030
5617
  "artifacts_directory": "artifactsDirectory",
5618
+ "audit_deps": "auditDeps",
5619
+ "audit_deps_options": "auditDepsOptions",
5031
5620
  "auto_approve_upgrades": "autoApproveUpgrades",
5621
+ "biome": "biome",
5622
+ "biome_options": "biomeOptions",
5032
5623
  "build_workflow": "buildWorkflow",
5624
+ "build_workflow_options": "buildWorkflowOptions",
5033
5625
  "build_workflow_triggers": "buildWorkflowTriggers",
5034
5626
  "bundler_options": "bundlerOptions",
5035
5627
  "check_licenses": "checkLicenses",
@@ -5127,6 +5719,7 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5127
5719
  bugs_email: typing.Optional[builtins.str] = None,
5128
5720
  bugs_url: typing.Optional[builtins.str] = None,
5129
5721
  bundled_deps: typing.Optional[typing.Sequence[builtins.str]] = None,
5722
+ bun_version: typing.Optional[builtins.str] = None,
5130
5723
  code_artifact_options: typing.Optional[typing.Union[_CodeArtifactOptions_e4782b3e, typing.Dict[builtins.str, typing.Any]]] = None,
5131
5724
  deps: typing.Optional[typing.Sequence[builtins.str]] = None,
5132
5725
  description: typing.Optional[builtins.str] = None,
@@ -5139,9 +5732,11 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5139
5732
  max_node_version: typing.Optional[builtins.str] = None,
5140
5733
  min_node_version: typing.Optional[builtins.str] = None,
5141
5734
  npm_access: typing.Optional[_NpmAccess_134fa228] = None,
5735
+ npm_provenance: typing.Optional[builtins.bool] = None,
5142
5736
  npm_registry: typing.Optional[builtins.str] = None,
5143
5737
  npm_registry_url: typing.Optional[builtins.str] = None,
5144
5738
  npm_token_secret: typing.Optional[builtins.str] = None,
5739
+ npm_trusted_publishing: typing.Optional[builtins.bool] = None,
5145
5740
  package_manager: typing.Optional[_NodePackageManager_3eb53bf6] = None,
5146
5741
  package_name: typing.Optional[builtins.str] = None,
5147
5742
  peer_dependency_options: typing.Optional[typing.Union[_PeerDependencyOptions_99d7d493, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -5153,9 +5748,11 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5153
5748
  scripts: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
5154
5749
  stability: typing.Optional[builtins.str] = None,
5155
5750
  yarn_berry_options: typing.Optional[typing.Union[_YarnBerryOptions_b6942539, typing.Dict[builtins.str, typing.Any]]] = None,
5751
+ bump_package: typing.Optional[builtins.str] = None,
5156
5752
  jsii_release_version: typing.Optional[builtins.str] = None,
5157
5753
  major_version: typing.Optional[jsii.Number] = None,
5158
5754
  min_major_version: typing.Optional[jsii.Number] = None,
5755
+ next_version_command: typing.Optional[builtins.str] = None,
5159
5756
  npm_dist_tag: typing.Optional[builtins.str] = None,
5160
5757
  post_build_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5161
5758
  prerelease: typing.Optional[builtins.str] = None,
@@ -5163,12 +5760,14 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5163
5760
  publish_tasks: typing.Optional[builtins.bool] = None,
5164
5761
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
5165
5762
  release_branches: typing.Optional[typing.Mapping[builtins.str, typing.Union[_BranchOptions_13663d08, typing.Dict[builtins.str, typing.Any]]]] = None,
5763
+ release_environment: typing.Optional[builtins.str] = None,
5166
5764
  release_every_commit: typing.Optional[builtins.bool] = None,
5167
5765
  release_failure_issue: typing.Optional[builtins.bool] = None,
5168
5766
  release_failure_issue_label: typing.Optional[builtins.str] = None,
5169
5767
  release_schedule: typing.Optional[builtins.str] = None,
5170
5768
  release_tag_prefix: typing.Optional[builtins.str] = None,
5171
5769
  release_trigger: typing.Optional[_ReleaseTrigger_e4dc221f] = None,
5770
+ release_workflow_env: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
5172
5771
  release_workflow_name: typing.Optional[builtins.str] = None,
5173
5772
  release_workflow_setup_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5174
5773
  versionrc_options: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
@@ -5177,8 +5776,13 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5177
5776
  workflow_runs_on_group: typing.Optional[typing.Union[_GroupRunnerOptions_148c59c1, typing.Dict[builtins.str, typing.Any]]] = None,
5178
5777
  default_release_branch: builtins.str,
5179
5778
  artifacts_directory: typing.Optional[builtins.str] = None,
5779
+ audit_deps: typing.Optional[builtins.bool] = None,
5780
+ audit_deps_options: typing.Optional[typing.Union[_AuditOptions_429c62df, typing.Dict[builtins.str, typing.Any]]] = None,
5180
5781
  auto_approve_upgrades: typing.Optional[builtins.bool] = None,
5782
+ biome: typing.Optional[builtins.bool] = None,
5783
+ biome_options: typing.Optional[typing.Union[_BiomeOptions_452ab984, typing.Dict[builtins.str, typing.Any]]] = None,
5181
5784
  build_workflow: typing.Optional[builtins.bool] = None,
5785
+ build_workflow_options: typing.Optional[typing.Union[_BuildWorkflowOptions_b756f97f, typing.Dict[builtins.str, typing.Any]]] = None,
5182
5786
  build_workflow_triggers: typing.Optional[typing.Union[_Triggers_e9ae7617, typing.Dict[builtins.str, typing.Any]]] = None,
5183
5787
  bundler_options: typing.Optional[typing.Union[_BundlerOptions_d60b85ed, typing.Dict[builtins.str, typing.Any]]] = None,
5184
5788
  check_licenses: typing.Optional[typing.Union[_LicenseCheckerOptions_80bcd362, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -5272,6 +5876,7 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5272
5876
  :param bugs_email: (experimental) The email address to which issues should be reported.
5273
5877
  :param bugs_url: (experimental) The url to your project's issue tracker.
5274
5878
  :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.
5879
+ :param bun_version: (experimental) The version of Bun to use if using Bun as a package manager. Default: "latest"
5275
5880
  :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
5276
5881
  :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: []
5277
5882
  :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
@@ -5281,26 +5886,30 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5281
5886
  :param keywords: (experimental) Keywords to include in ``package.json``.
5282
5887
  :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"
5283
5888
  :param licensed: (experimental) Indicates if a license should be added. Default: true
5284
- :param max_node_version: (experimental) Minimum node.js version to require via ``engines`` (inclusive). Default: - no max
5285
- :param min_node_version: (experimental) Minimum Node.js version to require via package.json ``engines`` (inclusive). Default: - no "engines" specified
5889
+ :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
5890
+ :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
5286
5891
  :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``.
5892
+ :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
5287
5893
  :param npm_registry: (deprecated) The host name of the npm registry to publish to. Cannot be set together with ``npmRegistryUrl``.
5288
5894
  :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"
5289
5895
  :param npm_token_secret: (experimental) GitHub secret which contains the NPM token to use when publishing packages. Default: "NPM_TOKEN"
5896
+ :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
5290
5897
  :param package_manager: (experimental) The Node Package Manager used to execute scripts. Default: NodePackageManager.YARN_CLASSIC
5291
5898
  :param package_name: (experimental) The "name" in package.json. Default: - defaults to project name
5292
5899
  :param peer_dependency_options: (experimental) Options for ``peerDeps``.
5293
5900
  :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: []
5294
- :param pnpm_version: (experimental) The version of PNPM to use if using PNPM as a package manager. Default: "7"
5901
+ :param pnpm_version: (experimental) The version of PNPM to use if using PNPM as a package manager. Default: "9"
5295
5902
  :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
5296
5903
  :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.
5297
5904
  :param scoped_packages_options: (experimental) Options for privately hosted scoped packages. Default: - fetch all scoped packages from the public npm registry
5298
5905
  :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: {}
5299
5906
  :param stability: (experimental) Package's Stability.
5300
5907
  :param yarn_berry_options: (experimental) Options for Yarn Berry. Default: - Yarn Berry v4 with all default options
5908
+ :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"
5301
5909
  :param jsii_release_version: (experimental) Version requirement of ``publib`` which is used to publish modules to npm. Default: "latest"
5302
5910
  :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.
5303
5911
  :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
5912
+ :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.
5304
5913
  :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"
5305
5914
  :param post_build_steps: (experimental) Steps to execute after build as part of the release workflow. Default: []
5306
5915
  :param prerelease: (experimental) Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). Default: - normal semantic versions
@@ -5308,27 +5917,34 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5308
5917
  :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
5309
5918
  :param releasable_commits: (experimental) Find commits that should be considered releasable Used to decide if a release is required. Default: ReleasableCommits.everyCommit()
5310
5919
  :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.
5920
+ :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
5311
5921
  :param release_every_commit: (deprecated) Automatically release new versions every commit to one of branches in ``releaseBranches``. Default: true
5312
5922
  :param release_failure_issue: (experimental) Create a github issue on every failed publishing task. Default: false
5313
5923
  :param release_failure_issue_label: (experimental) The label to apply to issues indicating publish failures. Only applies if ``releaseFailureIssue`` is true. Default: "failed-release"
5314
5924
  :param release_schedule: (deprecated) CRON schedule to trigger new releases. Default: - no scheduled releases
5315
5925
  :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"
5316
5926
  :param release_trigger: (experimental) The release trigger to use. Default: - Continuous releases (``ReleaseTrigger.continuous()``)
5927
+ :param release_workflow_env: (experimental) Build environment variables for release workflows. Default: {}
5317
5928
  :param release_workflow_name: (experimental) The name of the default release workflow. Default: "release"
5318
5929
  :param release_workflow_setup_steps: (experimental) A set of workflow steps to execute in order to setup the workflow container.
5319
- :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
5930
+ :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
5320
5931
  :param workflow_container_image: (experimental) Container image to use for GitHub workflows. Default: - default image
5321
5932
  :param workflow_runs_on: (experimental) Github Runner selection labels. Default: ["ubuntu-latest"]
5322
5933
  :param workflow_runs_on_group: (experimental) Github Runner Group selection options.
5323
5934
  :param default_release_branch: (experimental) The name of the main release branch. Default: "main"
5324
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
5325
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
5326
5941
  :param build_workflow: (experimental) Define a GitHub workflow for building PRs. Default: - true if not a subproject
5327
- :param build_workflow_triggers: (experimental) Build workflow triggers. Default: "{ pullRequest: {}, workflowDispatch: {} }"
5942
+ :param build_workflow_options: (experimental) Options for PR build workflow.
5943
+ :param build_workflow_triggers: (deprecated) Build workflow triggers. Default: "{ pullRequest: {}, workflowDispatch: {} }"
5328
5944
  :param bundler_options: (experimental) Options for ``Bundler``.
5329
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
5330
- :param code_cov: (experimental) Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with ``@codeCovTokenSecret``. Default: false
5331
- :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
5332
5948
  :param copyright_owner: (experimental) License copyright owner. Default: - defaults to the value of authorName or "" if ``authorName`` is undefined.
5333
5949
  :param copyright_period: (experimental) The copyright years to put in the LICENSE file. Default: - current year
5334
5950
  :param dependabot: (experimental) Use dependabot to handle dependency upgrades. Cannot be used in conjunction with ``depsUpgrade``. Default: false
@@ -5338,14 +5954,14 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5338
5954
  :param gitignore: (experimental) Additional entries to .gitignore.
5339
5955
  :param jest: (experimental) Setup jest unit tests. Default: true
5340
5956
  :param jest_options: (experimental) Jest options. Default: - default options
5341
- :param mutable_build: (experimental) Automatically update files modified during builds to pull-request branches. This means that any files synthesized by projen or e.g. test snapshots will always be up-to-date before a PR is merged. Implies that PR builds do not have anti-tamper checks. Default: true
5957
+ :param mutable_build: (deprecated) Automatically update files modified during builds to pull-request branches. This means that any files synthesized by projen or e.g. test snapshots will always be up-to-date before a PR is merged. Implies that PR builds do not have anti-tamper checks. Default: true
5342
5958
  :param npmignore: (deprecated) Additional entries to .npmignore.
5343
5959
  :param npmignore_enabled: (experimental) Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. Default: true
5344
5960
  :param npm_ignore_options: (experimental) Configuration options for .npmignore file.
5345
5961
  :param package: (experimental) Defines a ``package`` task that will produce an npm tarball under the artifacts directory (e.g. ``dist``). Default: true
5346
5962
  :param prettier: (experimental) Setup prettier. Default: false
5347
5963
  :param prettier_options: (experimental) Prettier options. Default: - default options
5348
- :param projen_dev_dependency: (experimental) Indicates of "projen" should be installed as a devDependency. Default: true
5964
+ :param projen_dev_dependency: (experimental) Indicates of "projen" should be installed as a devDependency. Default: - true if not a subproject
5349
5965
  :param projenrc_js: (experimental) Generate (once) .projenrc.js (in JavaScript). Set to ``false`` in order to disable .projenrc.js generation. Default: - true if projenrcJson is false
5350
5966
  :param projenrc_js_options: (experimental) Options for .projenrc.js. Default: - default options
5351
5967
  :param projen_version: (experimental) Version of projen to install. Default: - Defaults to the latest version.
@@ -5355,15 +5971,15 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5355
5971
  :param release_to_npm: (experimental) Automatically release to npm when new versions are introduced. Default: false
5356
5972
  :param release_workflow: (deprecated) DEPRECATED: renamed to ``release``. Default: - true if not a subproject
5357
5973
  :param workflow_bootstrap_steps: (experimental) Workflow steps to use in order to bootstrap this repo. Default: "yarn install --frozen-lockfile && yarn projen"
5358
- :param workflow_git_identity: (experimental) The git identity to use in workflows. Default: - GitHub Actions
5359
- :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/*``.
5360
5976
  :param workflow_package_cache: (experimental) Enable Node.js package cache in GitHub workflows. Default: false
5361
5977
  :param disable_tsconfig: (experimental) Do not generate a ``tsconfig.json`` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). Default: false
5362
5978
  :param disable_tsconfig_dev: (experimental) Do not generate a ``tsconfig.dev.json`` file. Default: false
5363
5979
  :param docgen: (experimental) Docgen by Typedoc. Default: false
5364
5980
  :param docs_directory: (experimental) Docs directory. Default: "docs"
5365
5981
  :param entrypoint_types: (experimental) The .d.ts file that includes the type declarations for this module. Default: - .d.ts file derived from the project's entrypoint (usually lib/index.d.ts)
5366
- :param eslint: (experimental) Setup eslint. Default: true
5982
+ :param eslint: (experimental) Setup eslint. Default: - true, unless biome is enabled
5367
5983
  :param eslint_options: (experimental) Eslint options. Default: - opinionated default options
5368
5984
  :param libdir: (experimental) Typescript artifacts output directory. Default: "lib"
5369
5985
  :param projenrc_ts: (experimental) Use TypeScript for your projenrc file (``.projenrc.ts``). Default: false
@@ -5411,6 +6027,12 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5411
6027
  yarn_berry_options = _YarnBerryOptions_b6942539(**yarn_berry_options)
5412
6028
  if isinstance(workflow_runs_on_group, dict):
5413
6029
  workflow_runs_on_group = _GroupRunnerOptions_148c59c1(**workflow_runs_on_group)
6030
+ if isinstance(audit_deps_options, dict):
6031
+ audit_deps_options = _AuditOptions_429c62df(**audit_deps_options)
6032
+ if isinstance(biome_options, dict):
6033
+ biome_options = _BiomeOptions_452ab984(**biome_options)
6034
+ if isinstance(build_workflow_options, dict):
6035
+ build_workflow_options = _BuildWorkflowOptions_b756f97f(**build_workflow_options)
5414
6036
  if isinstance(build_workflow_triggers, dict):
5415
6037
  build_workflow_triggers = _Triggers_e9ae7617(**build_workflow_triggers)
5416
6038
  if isinstance(bundler_options, dict):
@@ -5482,6 +6104,7 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5482
6104
  check_type(argname="argument bugs_email", value=bugs_email, expected_type=type_hints["bugs_email"])
5483
6105
  check_type(argname="argument bugs_url", value=bugs_url, expected_type=type_hints["bugs_url"])
5484
6106
  check_type(argname="argument bundled_deps", value=bundled_deps, expected_type=type_hints["bundled_deps"])
6107
+ check_type(argname="argument bun_version", value=bun_version, expected_type=type_hints["bun_version"])
5485
6108
  check_type(argname="argument code_artifact_options", value=code_artifact_options, expected_type=type_hints["code_artifact_options"])
5486
6109
  check_type(argname="argument deps", value=deps, expected_type=type_hints["deps"])
5487
6110
  check_type(argname="argument description", value=description, expected_type=type_hints["description"])
@@ -5494,9 +6117,11 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5494
6117
  check_type(argname="argument max_node_version", value=max_node_version, expected_type=type_hints["max_node_version"])
5495
6118
  check_type(argname="argument min_node_version", value=min_node_version, expected_type=type_hints["min_node_version"])
5496
6119
  check_type(argname="argument npm_access", value=npm_access, expected_type=type_hints["npm_access"])
6120
+ check_type(argname="argument npm_provenance", value=npm_provenance, expected_type=type_hints["npm_provenance"])
5497
6121
  check_type(argname="argument npm_registry", value=npm_registry, expected_type=type_hints["npm_registry"])
5498
6122
  check_type(argname="argument npm_registry_url", value=npm_registry_url, expected_type=type_hints["npm_registry_url"])
5499
6123
  check_type(argname="argument npm_token_secret", value=npm_token_secret, expected_type=type_hints["npm_token_secret"])
6124
+ check_type(argname="argument npm_trusted_publishing", value=npm_trusted_publishing, expected_type=type_hints["npm_trusted_publishing"])
5500
6125
  check_type(argname="argument package_manager", value=package_manager, expected_type=type_hints["package_manager"])
5501
6126
  check_type(argname="argument package_name", value=package_name, expected_type=type_hints["package_name"])
5502
6127
  check_type(argname="argument peer_dependency_options", value=peer_dependency_options, expected_type=type_hints["peer_dependency_options"])
@@ -5508,9 +6133,11 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5508
6133
  check_type(argname="argument scripts", value=scripts, expected_type=type_hints["scripts"])
5509
6134
  check_type(argname="argument stability", value=stability, expected_type=type_hints["stability"])
5510
6135
  check_type(argname="argument yarn_berry_options", value=yarn_berry_options, expected_type=type_hints["yarn_berry_options"])
6136
+ check_type(argname="argument bump_package", value=bump_package, expected_type=type_hints["bump_package"])
5511
6137
  check_type(argname="argument jsii_release_version", value=jsii_release_version, expected_type=type_hints["jsii_release_version"])
5512
6138
  check_type(argname="argument major_version", value=major_version, expected_type=type_hints["major_version"])
5513
6139
  check_type(argname="argument min_major_version", value=min_major_version, expected_type=type_hints["min_major_version"])
6140
+ check_type(argname="argument next_version_command", value=next_version_command, expected_type=type_hints["next_version_command"])
5514
6141
  check_type(argname="argument npm_dist_tag", value=npm_dist_tag, expected_type=type_hints["npm_dist_tag"])
5515
6142
  check_type(argname="argument post_build_steps", value=post_build_steps, expected_type=type_hints["post_build_steps"])
5516
6143
  check_type(argname="argument prerelease", value=prerelease, expected_type=type_hints["prerelease"])
@@ -5518,12 +6145,14 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5518
6145
  check_type(argname="argument publish_tasks", value=publish_tasks, expected_type=type_hints["publish_tasks"])
5519
6146
  check_type(argname="argument releasable_commits", value=releasable_commits, expected_type=type_hints["releasable_commits"])
5520
6147
  check_type(argname="argument release_branches", value=release_branches, expected_type=type_hints["release_branches"])
6148
+ check_type(argname="argument release_environment", value=release_environment, expected_type=type_hints["release_environment"])
5521
6149
  check_type(argname="argument release_every_commit", value=release_every_commit, expected_type=type_hints["release_every_commit"])
5522
6150
  check_type(argname="argument release_failure_issue", value=release_failure_issue, expected_type=type_hints["release_failure_issue"])
5523
6151
  check_type(argname="argument release_failure_issue_label", value=release_failure_issue_label, expected_type=type_hints["release_failure_issue_label"])
5524
6152
  check_type(argname="argument release_schedule", value=release_schedule, expected_type=type_hints["release_schedule"])
5525
6153
  check_type(argname="argument release_tag_prefix", value=release_tag_prefix, expected_type=type_hints["release_tag_prefix"])
5526
6154
  check_type(argname="argument release_trigger", value=release_trigger, expected_type=type_hints["release_trigger"])
6155
+ check_type(argname="argument release_workflow_env", value=release_workflow_env, expected_type=type_hints["release_workflow_env"])
5527
6156
  check_type(argname="argument release_workflow_name", value=release_workflow_name, expected_type=type_hints["release_workflow_name"])
5528
6157
  check_type(argname="argument release_workflow_setup_steps", value=release_workflow_setup_steps, expected_type=type_hints["release_workflow_setup_steps"])
5529
6158
  check_type(argname="argument versionrc_options", value=versionrc_options, expected_type=type_hints["versionrc_options"])
@@ -5532,8 +6161,13 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5532
6161
  check_type(argname="argument workflow_runs_on_group", value=workflow_runs_on_group, expected_type=type_hints["workflow_runs_on_group"])
5533
6162
  check_type(argname="argument default_release_branch", value=default_release_branch, expected_type=type_hints["default_release_branch"])
5534
6163
  check_type(argname="argument artifacts_directory", value=artifacts_directory, expected_type=type_hints["artifacts_directory"])
6164
+ check_type(argname="argument audit_deps", value=audit_deps, expected_type=type_hints["audit_deps"])
6165
+ check_type(argname="argument audit_deps_options", value=audit_deps_options, expected_type=type_hints["audit_deps_options"])
5535
6166
  check_type(argname="argument auto_approve_upgrades", value=auto_approve_upgrades, expected_type=type_hints["auto_approve_upgrades"])
6167
+ check_type(argname="argument biome", value=biome, expected_type=type_hints["biome"])
6168
+ check_type(argname="argument biome_options", value=biome_options, expected_type=type_hints["biome_options"])
5536
6169
  check_type(argname="argument build_workflow", value=build_workflow, expected_type=type_hints["build_workflow"])
6170
+ check_type(argname="argument build_workflow_options", value=build_workflow_options, expected_type=type_hints["build_workflow_options"])
5537
6171
  check_type(argname="argument build_workflow_triggers", value=build_workflow_triggers, expected_type=type_hints["build_workflow_triggers"])
5538
6172
  check_type(argname="argument bundler_options", value=bundler_options, expected_type=type_hints["bundler_options"])
5539
6173
  check_type(argname="argument check_licenses", value=check_licenses, expected_type=type_hints["check_licenses"])
@@ -5666,6 +6300,8 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5666
6300
  self._values["bugs_url"] = bugs_url
5667
6301
  if bundled_deps is not None:
5668
6302
  self._values["bundled_deps"] = bundled_deps
6303
+ if bun_version is not None:
6304
+ self._values["bun_version"] = bun_version
5669
6305
  if code_artifact_options is not None:
5670
6306
  self._values["code_artifact_options"] = code_artifact_options
5671
6307
  if deps is not None:
@@ -5690,12 +6326,16 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5690
6326
  self._values["min_node_version"] = min_node_version
5691
6327
  if npm_access is not None:
5692
6328
  self._values["npm_access"] = npm_access
6329
+ if npm_provenance is not None:
6330
+ self._values["npm_provenance"] = npm_provenance
5693
6331
  if npm_registry is not None:
5694
6332
  self._values["npm_registry"] = npm_registry
5695
6333
  if npm_registry_url is not None:
5696
6334
  self._values["npm_registry_url"] = npm_registry_url
5697
6335
  if npm_token_secret is not None:
5698
6336
  self._values["npm_token_secret"] = npm_token_secret
6337
+ if npm_trusted_publishing is not None:
6338
+ self._values["npm_trusted_publishing"] = npm_trusted_publishing
5699
6339
  if package_manager is not None:
5700
6340
  self._values["package_manager"] = package_manager
5701
6341
  if package_name is not None:
@@ -5718,12 +6358,16 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5718
6358
  self._values["stability"] = stability
5719
6359
  if yarn_berry_options is not None:
5720
6360
  self._values["yarn_berry_options"] = yarn_berry_options
6361
+ if bump_package is not None:
6362
+ self._values["bump_package"] = bump_package
5721
6363
  if jsii_release_version is not None:
5722
6364
  self._values["jsii_release_version"] = jsii_release_version
5723
6365
  if major_version is not None:
5724
6366
  self._values["major_version"] = major_version
5725
6367
  if min_major_version is not None:
5726
6368
  self._values["min_major_version"] = min_major_version
6369
+ if next_version_command is not None:
6370
+ self._values["next_version_command"] = next_version_command
5727
6371
  if npm_dist_tag is not None:
5728
6372
  self._values["npm_dist_tag"] = npm_dist_tag
5729
6373
  if post_build_steps is not None:
@@ -5738,6 +6382,8 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5738
6382
  self._values["releasable_commits"] = releasable_commits
5739
6383
  if release_branches is not None:
5740
6384
  self._values["release_branches"] = release_branches
6385
+ if release_environment is not None:
6386
+ self._values["release_environment"] = release_environment
5741
6387
  if release_every_commit is not None:
5742
6388
  self._values["release_every_commit"] = release_every_commit
5743
6389
  if release_failure_issue is not None:
@@ -5750,6 +6396,8 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5750
6396
  self._values["release_tag_prefix"] = release_tag_prefix
5751
6397
  if release_trigger is not None:
5752
6398
  self._values["release_trigger"] = release_trigger
6399
+ if release_workflow_env is not None:
6400
+ self._values["release_workflow_env"] = release_workflow_env
5753
6401
  if release_workflow_name is not None:
5754
6402
  self._values["release_workflow_name"] = release_workflow_name
5755
6403
  if release_workflow_setup_steps is not None:
@@ -5764,10 +6412,20 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5764
6412
  self._values["workflow_runs_on_group"] = workflow_runs_on_group
5765
6413
  if artifacts_directory is not None:
5766
6414
  self._values["artifacts_directory"] = artifacts_directory
6415
+ if audit_deps is not None:
6416
+ self._values["audit_deps"] = audit_deps
6417
+ if audit_deps_options is not None:
6418
+ self._values["audit_deps_options"] = audit_deps_options
5767
6419
  if auto_approve_upgrades is not None:
5768
6420
  self._values["auto_approve_upgrades"] = auto_approve_upgrades
6421
+ if biome is not None:
6422
+ self._values["biome"] = biome
6423
+ if biome_options is not None:
6424
+ self._values["biome_options"] = biome_options
5769
6425
  if build_workflow is not None:
5770
6426
  self._values["build_workflow"] = build_workflow
6427
+ if build_workflow_options is not None:
6428
+ self._values["build_workflow_options"] = build_workflow_options
5771
6429
  if build_workflow_triggers is not None:
5772
6430
  self._values["build_workflow_triggers"] = build_workflow_triggers
5773
6431
  if bundler_options is not None:
@@ -6337,6 +6995,17 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
6337
6995
  result = self._values.get("bundled_deps")
6338
6996
  return typing.cast(typing.Optional[typing.List[builtins.str]], result)
6339
6997
 
6998
+ @builtins.property
6999
+ def bun_version(self) -> typing.Optional[builtins.str]:
7000
+ '''(experimental) The version of Bun to use if using Bun as a package manager.
7001
+
7002
+ :default: "latest"
7003
+
7004
+ :stability: experimental
7005
+ '''
7006
+ result = self._values.get("bun_version")
7007
+ return typing.cast(typing.Optional[builtins.str], result)
7008
+
6340
7009
  @builtins.property
6341
7010
  def code_artifact_options(self) -> typing.Optional[_CodeArtifactOptions_e4782b3e]:
6342
7011
  '''(experimental) Options for npm packages using AWS CodeArtifact.
@@ -6471,9 +7140,15 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
6471
7140
 
6472
7141
  @builtins.property
6473
7142
  def max_node_version(self) -> typing.Optional[builtins.str]:
6474
- '''(experimental) Minimum node.js version to require via ``engines`` (inclusive).
7143
+ '''(experimental) The maximum node version supported by this package. Most projects should not use this option.
7144
+
7145
+ The value indicates that the package is incompatible with any newer versions of node.
7146
+ This requirement is enforced via the engines field.
7147
+
7148
+ You will normally not need to set this option.
7149
+ Consider this option only if your package is known to not function with newer versions of node.
6475
7150
 
6476
- :default: - no max
7151
+ :default: - no maximum version is enforced
6477
7152
 
6478
7153
  :stability: experimental
6479
7154
  '''
@@ -6482,9 +7157,19 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
6482
7157
 
6483
7158
  @builtins.property
6484
7159
  def min_node_version(self) -> typing.Optional[builtins.str]:
6485
- '''(experimental) Minimum Node.js version to require via package.json ``engines`` (inclusive).
7160
+ '''(experimental) The minimum node version required by this package to function. Most projects should not use this option.
6486
7161
 
6487
- :default: - no "engines" specified
7162
+ The value indicates that the package is incompatible with any older versions of node.
7163
+ This requirement is enforced via the engines field.
7164
+
7165
+ You will normally not need to set this option, even if your package is incompatible with EOL versions of node.
7166
+ Consider this option only if your package depends on a specific feature, that is not available in other LTS versions.
7167
+ Setting this option has very high impact on the consumers of your package,
7168
+ as package managers will actively prevent usage with node versions you have marked as incompatible.
7169
+
7170
+ To change the node version of your CI/CD workflows, use ``workflowNodeVersion``.
7171
+
7172
+ :default: - no minimum version is enforced
6488
7173
 
6489
7174
  :stability: experimental
6490
7175
  '''
@@ -6506,6 +7191,24 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
6506
7191
  result = self._values.get("npm_access")
6507
7192
  return typing.cast(typing.Optional[_NpmAccess_134fa228], result)
6508
7193
 
7194
+ @builtins.property
7195
+ def npm_provenance(self) -> typing.Optional[builtins.bool]:
7196
+ '''(experimental) Should provenance statements be generated when the package is published.
7197
+
7198
+ A supported package manager is required to publish a package with npm provenance statements and
7199
+ you will need to use a supported CI/CD provider.
7200
+
7201
+ Note that the projen ``Release`` and ``Publisher`` components are using ``publib`` to publish packages,
7202
+ which is using npm internally and supports provenance statements independently of the package manager used.
7203
+
7204
+ :default: - true for public packages, false otherwise
7205
+
7206
+ :see: https://docs.npmjs.com/generating-provenance-statements
7207
+ :stability: experimental
7208
+ '''
7209
+ result = self._values.get("npm_provenance")
7210
+ return typing.cast(typing.Optional[builtins.bool], result)
7211
+
6509
7212
  @builtins.property
6510
7213
  def npm_registry(self) -> typing.Optional[builtins.str]:
6511
7214
  '''(deprecated) The host name of the npm registry to publish to.
@@ -6543,6 +7246,17 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
6543
7246
  result = self._values.get("npm_token_secret")
6544
7247
  return typing.cast(typing.Optional[builtins.str], result)
6545
7248
 
7249
+ @builtins.property
7250
+ def npm_trusted_publishing(self) -> typing.Optional[builtins.bool]:
7251
+ '''(experimental) Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work.
7252
+
7253
+ :default: - false
7254
+
7255
+ :stability: experimental
7256
+ '''
7257
+ result = self._values.get("npm_trusted_publishing")
7258
+ return typing.cast(typing.Optional[builtins.bool], result)
7259
+
6546
7260
  @builtins.property
6547
7261
  def package_manager(self) -> typing.Optional[_NodePackageManager_3eb53bf6]:
6548
7262
  '''(experimental) The Node Package Manager used to execute scripts.
@@ -6606,7 +7320,7 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
6606
7320
  def pnpm_version(self) -> typing.Optional[builtins.str]:
6607
7321
  '''(experimental) The version of PNPM to use if using PNPM as a package manager.
6608
7322
 
6609
- :default: "7"
7323
+ :default: "9"
6610
7324
 
6611
7325
  :stability: experimental
6612
7326
  '''
@@ -6683,6 +7397,19 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
6683
7397
  result = self._values.get("yarn_berry_options")
6684
7398
  return typing.cast(typing.Optional[_YarnBerryOptions_b6942539], result)
6685
7399
 
7400
+ @builtins.property
7401
+ def bump_package(self) -> typing.Optional[builtins.str]:
7402
+ '''(experimental) The ``commit-and-tag-version`` compatible package used to bump the package version, as a dependency string.
7403
+
7404
+ This can be any compatible package version, including the deprecated ``standard-version@9``.
7405
+
7406
+ :default: - A recent version of "commit-and-tag-version"
7407
+
7408
+ :stability: experimental
7409
+ '''
7410
+ result = self._values.get("bump_package")
7411
+ return typing.cast(typing.Optional[builtins.str], result)
7412
+
6686
7413
  @builtins.property
6687
7414
  def jsii_release_version(self) -> typing.Optional[builtins.str]:
6688
7415
  '''(experimental) Version requirement of ``publib`` which is used to publish modules to npm.
@@ -6724,6 +7451,36 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
6724
7451
  result = self._values.get("min_major_version")
6725
7452
  return typing.cast(typing.Optional[jsii.Number], result)
6726
7453
 
7454
+ @builtins.property
7455
+ def next_version_command(self) -> typing.Optional[builtins.str]:
7456
+ '''(experimental) A shell command to control the next version to release.
7457
+
7458
+ If present, this shell command will be run before the bump is executed, and
7459
+ it determines what version to release. It will be executed in the following
7460
+ environment:
7461
+
7462
+ - Working directory: the project directory.
7463
+ - ``$VERSION``: the current version. Looks like ``1.2.3``.
7464
+ - ``$LATEST_TAG``: the most recent tag. Looks like ``prefix-v1.2.3``, or may be unset.
7465
+ - ``$SUGGESTED_BUMP``: the suggested bump action based on commits. One of ``major|minor|patch|none``.
7466
+
7467
+ The command should print one of the following to ``stdout``:
7468
+
7469
+ - Nothing: the next version number will be determined based on commit history.
7470
+ - ``x.y.z``: the next version number will be ``x.y.z``.
7471
+ - ``major|minor|patch``: the next version number will be the current version number
7472
+ with the indicated component bumped.
7473
+
7474
+ This setting cannot be specified together with ``minMajorVersion``; the invoked
7475
+ script can be used to achieve the effects of ``minMajorVersion``.
7476
+
7477
+ :default: - The next version will be determined based on the commit history and project settings.
7478
+
7479
+ :stability: experimental
7480
+ '''
7481
+ result = self._values.get("next_version_command")
7482
+ return typing.cast(typing.Optional[builtins.str], result)
7483
+
6727
7484
  @builtins.property
6728
7485
  def npm_dist_tag(self) -> typing.Optional[builtins.str]:
6729
7486
  '''(experimental) The npmDistTag to use when publishing from the default branch.
@@ -6819,6 +7576,23 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
6819
7576
  result = self._values.get("release_branches")
6820
7577
  return typing.cast(typing.Optional[typing.Mapping[builtins.str, _BranchOptions_13663d08]], result)
6821
7578
 
7579
+ @builtins.property
7580
+ def release_environment(self) -> typing.Optional[builtins.str]:
7581
+ '''(experimental) The GitHub Actions environment used for the release.
7582
+
7583
+ This can be used to add an explicit approval step to the release
7584
+ or limit who can initiate a release through environment protection rules.
7585
+
7586
+ When multiple artifacts are released, the environment can be overwritten
7587
+ on a per artifact basis.
7588
+
7589
+ :default: - no environment used, unless set at the artifact level
7590
+
7591
+ :stability: experimental
7592
+ '''
7593
+ result = self._values.get("release_environment")
7594
+ return typing.cast(typing.Optional[builtins.str], result)
7595
+
6822
7596
  @builtins.property
6823
7597
  def release_every_commit(self) -> typing.Optional[builtins.bool]:
6824
7598
  '''(deprecated) Automatically release new versions every commit to one of branches in ``releaseBranches``.
@@ -6896,6 +7670,19 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
6896
7670
  result = self._values.get("release_trigger")
6897
7671
  return typing.cast(typing.Optional[_ReleaseTrigger_e4dc221f], result)
6898
7672
 
7673
+ @builtins.property
7674
+ def release_workflow_env(
7675
+ self,
7676
+ ) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
7677
+ '''(experimental) Build environment variables for release workflows.
7678
+
7679
+ :default: {}
7680
+
7681
+ :stability: experimental
7682
+ '''
7683
+ result = self._values.get("release_workflow_env")
7684
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
7685
+
6899
7686
  @builtins.property
6900
7687
  def release_workflow_name(self) -> typing.Optional[builtins.str]:
6901
7688
  '''(experimental) The name of the default release workflow.
@@ -6922,7 +7709,7 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
6922
7709
  def versionrc_options(
6923
7710
  self,
6924
7711
  ) -> typing.Optional[typing.Mapping[builtins.str, typing.Any]]:
6925
- '''(experimental) Custom configuration used when creating changelog with standard-version package.
7712
+ '''(experimental) Custom configuration used when creating changelog with commit-and-tag-version package.
6926
7713
 
6927
7714
  Given values either append to default configuration or overwrite values in it.
6928
7715
 
@@ -6991,6 +7778,32 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
6991
7778
  result = self._values.get("artifacts_directory")
6992
7779
  return typing.cast(typing.Optional[builtins.str], result)
6993
7780
 
7781
+ @builtins.property
7782
+ def audit_deps(self) -> typing.Optional[builtins.bool]:
7783
+ '''(experimental) Run security audit on dependencies.
7784
+
7785
+ When enabled, creates an "audit" task that checks for known security vulnerabilities
7786
+ in dependencies. By default, runs during every build and checks for "high" severity
7787
+ vulnerabilities or above in all dependencies (including dev dependencies).
7788
+
7789
+ :default: false
7790
+
7791
+ :stability: experimental
7792
+ '''
7793
+ result = self._values.get("audit_deps")
7794
+ return typing.cast(typing.Optional[builtins.bool], result)
7795
+
7796
+ @builtins.property
7797
+ def audit_deps_options(self) -> typing.Optional[_AuditOptions_429c62df]:
7798
+ '''(experimental) Security audit options.
7799
+
7800
+ :default: - default options
7801
+
7802
+ :stability: experimental
7803
+ '''
7804
+ result = self._values.get("audit_deps_options")
7805
+ return typing.cast(typing.Optional[_AuditOptions_429c62df], result)
7806
+
6994
7807
  @builtins.property
6995
7808
  def auto_approve_upgrades(self) -> typing.Optional[builtins.bool]:
6996
7809
  '''(experimental) Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued).
@@ -7004,6 +7817,28 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
7004
7817
  result = self._values.get("auto_approve_upgrades")
7005
7818
  return typing.cast(typing.Optional[builtins.bool], result)
7006
7819
 
7820
+ @builtins.property
7821
+ def biome(self) -> typing.Optional[builtins.bool]:
7822
+ '''(experimental) Setup Biome.
7823
+
7824
+ :default: false
7825
+
7826
+ :stability: experimental
7827
+ '''
7828
+ result = self._values.get("biome")
7829
+ return typing.cast(typing.Optional[builtins.bool], result)
7830
+
7831
+ @builtins.property
7832
+ def biome_options(self) -> typing.Optional[_BiomeOptions_452ab984]:
7833
+ '''(experimental) Biome options.
7834
+
7835
+ :default: - default options
7836
+
7837
+ :stability: experimental
7838
+ '''
7839
+ result = self._values.get("biome_options")
7840
+ return typing.cast(typing.Optional[_BiomeOptions_452ab984], result)
7841
+
7007
7842
  @builtins.property
7008
7843
  def build_workflow(self) -> typing.Optional[builtins.bool]:
7009
7844
  '''(experimental) Define a GitHub workflow for building PRs.
@@ -7015,13 +7850,24 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
7015
7850
  result = self._values.get("build_workflow")
7016
7851
  return typing.cast(typing.Optional[builtins.bool], result)
7017
7852
 
7853
+ @builtins.property
7854
+ def build_workflow_options(self) -> typing.Optional[_BuildWorkflowOptions_b756f97f]:
7855
+ '''(experimental) Options for PR build workflow.
7856
+
7857
+ :stability: experimental
7858
+ '''
7859
+ result = self._values.get("build_workflow_options")
7860
+ return typing.cast(typing.Optional[_BuildWorkflowOptions_b756f97f], result)
7861
+
7018
7862
  @builtins.property
7019
7863
  def build_workflow_triggers(self) -> typing.Optional[_Triggers_e9ae7617]:
7020
- '''(experimental) Build workflow triggers.
7864
+ '''(deprecated) Build workflow triggers.
7021
7865
 
7022
7866
  :default: "{ pullRequest: {}, workflowDispatch: {} }"
7023
7867
 
7024
- :stability: experimental
7868
+ :deprecated: - Use ``buildWorkflowOptions.workflowTriggers``
7869
+
7870
+ :stability: deprecated
7025
7871
  '''
7026
7872
  result = self._values.get("build_workflow_triggers")
7027
7873
  return typing.cast(typing.Optional[_Triggers_e9ae7617], result)
@@ -7050,7 +7896,7 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
7050
7896
 
7051
7897
  @builtins.property
7052
7898
  def code_cov(self) -> typing.Optional[builtins.bool]:
7053
- '''(experimental) Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with ``@codeCovTokenSecret``.
7899
+ '''(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``.
7054
7900
 
7055
7901
  :default: false
7056
7902
 
@@ -7061,9 +7907,9 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
7061
7907
 
7062
7908
  @builtins.property
7063
7909
  def code_cov_token_secret(self) -> typing.Optional[builtins.str]:
7064
- '''(experimental) Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories.
7910
+ '''(experimental) Define the secret name for a specified https://codecov.io/ token.
7065
7911
 
7066
- :default: - if this option is not specified, only public repositories are supported
7912
+ :default: - OIDC auth is used
7067
7913
 
7068
7914
  :stability: experimental
7069
7915
  '''
@@ -7175,7 +8021,7 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
7175
8021
 
7176
8022
  @builtins.property
7177
8023
  def mutable_build(self) -> typing.Optional[builtins.bool]:
7178
- '''(experimental) Automatically update files modified during builds to pull-request branches.
8024
+ '''(deprecated) Automatically update files modified during builds to pull-request branches.
7179
8025
 
7180
8026
  This means
7181
8027
  that any files synthesized by projen or e.g. test snapshots will always be up-to-date
@@ -7185,7 +8031,9 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
7185
8031
 
7186
8032
  :default: true
7187
8033
 
7188
- :stability: experimental
8034
+ :deprecated: - Use ``buildWorkflowOptions.mutableBuild``
8035
+
8036
+ :stability: deprecated
7189
8037
  '''
7190
8038
  result = self._values.get("mutable_build")
7191
8039
  return typing.cast(typing.Optional[builtins.bool], result)
@@ -7258,7 +8106,7 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
7258
8106
  def projen_dev_dependency(self) -> typing.Optional[builtins.bool]:
7259
8107
  '''(experimental) Indicates of "projen" should be installed as a devDependency.
7260
8108
 
7261
- :default: true
8109
+ :default: - true if not a subproject
7262
8110
 
7263
8111
  :stability: experimental
7264
8112
  '''
@@ -7374,7 +8222,7 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
7374
8222
  def workflow_git_identity(self) -> typing.Optional[_GitIdentity_6effc3de]:
7375
8223
  '''(experimental) The git identity to use in workflows.
7376
8224
 
7377
- :default: - GitHub Actions
8225
+ :default: - default GitHub Actions user
7378
8226
 
7379
8227
  :stability: experimental
7380
8228
  '''
@@ -7383,9 +8231,11 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
7383
8231
 
7384
8232
  @builtins.property
7385
8233
  def workflow_node_version(self) -> typing.Optional[builtins.str]:
7386
- '''(experimental) The node version to use in GitHub workflows.
8234
+ '''(experimental) The node version used in GitHub Actions workflows.
8235
+
8236
+ Always use this option if your GitHub Actions workflows require a specific to run.
7387
8237
 
7388
- :default: - same as ``minNodeVersion``
8238
+ :default: - ``minNodeVersion`` if set, otherwise ``lts/*``.
7389
8239
 
7390
8240
  :stability: experimental
7391
8241
  '''
@@ -7462,7 +8312,7 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
7462
8312
  def eslint(self) -> typing.Optional[builtins.bool]:
7463
8313
  '''(experimental) Setup eslint.
7464
8314
 
7465
- :default: true
8315
+ :default: - true, unless biome is enabled
7466
8316
 
7467
8317
  :stability: experimental
7468
8318
  '''
@@ -7763,6 +8613,7 @@ def _typecheckingstub__a914f27f5d915b07b8847d407b03b08cab2aad7b213973084a9026526
7763
8613
  bugs_email: typing.Optional[builtins.str] = None,
7764
8614
  bugs_url: typing.Optional[builtins.str] = None,
7765
8615
  bundled_deps: typing.Optional[typing.Sequence[builtins.str]] = None,
8616
+ bun_version: typing.Optional[builtins.str] = None,
7766
8617
  code_artifact_options: typing.Optional[typing.Union[_CodeArtifactOptions_e4782b3e, typing.Dict[builtins.str, typing.Any]]] = None,
7767
8618
  deps: typing.Optional[typing.Sequence[builtins.str]] = None,
7768
8619
  description: typing.Optional[builtins.str] = None,
@@ -7775,9 +8626,11 @@ def _typecheckingstub__a914f27f5d915b07b8847d407b03b08cab2aad7b213973084a9026526
7775
8626
  max_node_version: typing.Optional[builtins.str] = None,
7776
8627
  min_node_version: typing.Optional[builtins.str] = None,
7777
8628
  npm_access: typing.Optional[_NpmAccess_134fa228] = None,
8629
+ npm_provenance: typing.Optional[builtins.bool] = None,
7778
8630
  npm_registry: typing.Optional[builtins.str] = None,
7779
8631
  npm_registry_url: typing.Optional[builtins.str] = None,
7780
8632
  npm_token_secret: typing.Optional[builtins.str] = None,
8633
+ npm_trusted_publishing: typing.Optional[builtins.bool] = None,
7781
8634
  package_manager: typing.Optional[_NodePackageManager_3eb53bf6] = None,
7782
8635
  package_name: typing.Optional[builtins.str] = None,
7783
8636
  peer_dependency_options: typing.Optional[typing.Union[_PeerDependencyOptions_99d7d493, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -7789,9 +8642,11 @@ def _typecheckingstub__a914f27f5d915b07b8847d407b03b08cab2aad7b213973084a9026526
7789
8642
  scripts: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
7790
8643
  stability: typing.Optional[builtins.str] = None,
7791
8644
  yarn_berry_options: typing.Optional[typing.Union[_YarnBerryOptions_b6942539, typing.Dict[builtins.str, typing.Any]]] = None,
8645
+ bump_package: typing.Optional[builtins.str] = None,
7792
8646
  jsii_release_version: typing.Optional[builtins.str] = None,
7793
8647
  major_version: typing.Optional[jsii.Number] = None,
7794
8648
  min_major_version: typing.Optional[jsii.Number] = None,
8649
+ next_version_command: typing.Optional[builtins.str] = None,
7795
8650
  npm_dist_tag: typing.Optional[builtins.str] = None,
7796
8651
  post_build_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
7797
8652
  prerelease: typing.Optional[builtins.str] = None,
@@ -7799,12 +8654,14 @@ def _typecheckingstub__a914f27f5d915b07b8847d407b03b08cab2aad7b213973084a9026526
7799
8654
  publish_tasks: typing.Optional[builtins.bool] = None,
7800
8655
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
7801
8656
  release_branches: typing.Optional[typing.Mapping[builtins.str, typing.Union[_BranchOptions_13663d08, typing.Dict[builtins.str, typing.Any]]]] = None,
8657
+ release_environment: typing.Optional[builtins.str] = None,
7802
8658
  release_every_commit: typing.Optional[builtins.bool] = None,
7803
8659
  release_failure_issue: typing.Optional[builtins.bool] = None,
7804
8660
  release_failure_issue_label: typing.Optional[builtins.str] = None,
7805
8661
  release_schedule: typing.Optional[builtins.str] = None,
7806
8662
  release_tag_prefix: typing.Optional[builtins.str] = None,
7807
8663
  release_trigger: typing.Optional[_ReleaseTrigger_e4dc221f] = None,
8664
+ release_workflow_env: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
7808
8665
  release_workflow_name: typing.Optional[builtins.str] = None,
7809
8666
  release_workflow_setup_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
7810
8667
  versionrc_options: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
@@ -7813,8 +8670,13 @@ def _typecheckingstub__a914f27f5d915b07b8847d407b03b08cab2aad7b213973084a9026526
7813
8670
  workflow_runs_on_group: typing.Optional[typing.Union[_GroupRunnerOptions_148c59c1, typing.Dict[builtins.str, typing.Any]]] = None,
7814
8671
  default_release_branch: builtins.str,
7815
8672
  artifacts_directory: typing.Optional[builtins.str] = None,
8673
+ audit_deps: typing.Optional[builtins.bool] = None,
8674
+ audit_deps_options: typing.Optional[typing.Union[_AuditOptions_429c62df, typing.Dict[builtins.str, typing.Any]]] = None,
7816
8675
  auto_approve_upgrades: typing.Optional[builtins.bool] = None,
8676
+ biome: typing.Optional[builtins.bool] = None,
8677
+ biome_options: typing.Optional[typing.Union[_BiomeOptions_452ab984, typing.Dict[builtins.str, typing.Any]]] = None,
7817
8678
  build_workflow: typing.Optional[builtins.bool] = None,
8679
+ build_workflow_options: typing.Optional[typing.Union[_BuildWorkflowOptions_b756f97f, typing.Dict[builtins.str, typing.Any]]] = None,
7818
8680
  build_workflow_triggers: typing.Optional[typing.Union[_Triggers_e9ae7617, typing.Dict[builtins.str, typing.Any]]] = None,
7819
8681
  bundler_options: typing.Optional[typing.Union[_BundlerOptions_d60b85ed, typing.Dict[builtins.str, typing.Any]]] = None,
7820
8682
  check_licenses: typing.Optional[typing.Union[_LicenseCheckerOptions_80bcd362, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -7918,6 +8780,7 @@ def _typecheckingstub__ac162883b4ecfe9863890d69bffa76d7f9ce16e619c94b9b2a4b7b8f2
7918
8780
  bugs_email: typing.Optional[builtins.str] = None,
7919
8781
  bugs_url: typing.Optional[builtins.str] = None,
7920
8782
  bundled_deps: typing.Optional[typing.Sequence[builtins.str]] = None,
8783
+ bun_version: typing.Optional[builtins.str] = None,
7921
8784
  code_artifact_options: typing.Optional[typing.Union[_CodeArtifactOptions_e4782b3e, typing.Dict[builtins.str, typing.Any]]] = None,
7922
8785
  deps: typing.Optional[typing.Sequence[builtins.str]] = None,
7923
8786
  description: typing.Optional[builtins.str] = None,
@@ -7930,9 +8793,11 @@ def _typecheckingstub__ac162883b4ecfe9863890d69bffa76d7f9ce16e619c94b9b2a4b7b8f2
7930
8793
  max_node_version: typing.Optional[builtins.str] = None,
7931
8794
  min_node_version: typing.Optional[builtins.str] = None,
7932
8795
  npm_access: typing.Optional[_NpmAccess_134fa228] = None,
8796
+ npm_provenance: typing.Optional[builtins.bool] = None,
7933
8797
  npm_registry: typing.Optional[builtins.str] = None,
7934
8798
  npm_registry_url: typing.Optional[builtins.str] = None,
7935
8799
  npm_token_secret: typing.Optional[builtins.str] = None,
8800
+ npm_trusted_publishing: typing.Optional[builtins.bool] = None,
7936
8801
  package_manager: typing.Optional[_NodePackageManager_3eb53bf6] = None,
7937
8802
  package_name: typing.Optional[builtins.str] = None,
7938
8803
  peer_dependency_options: typing.Optional[typing.Union[_PeerDependencyOptions_99d7d493, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -7944,9 +8809,11 @@ def _typecheckingstub__ac162883b4ecfe9863890d69bffa76d7f9ce16e619c94b9b2a4b7b8f2
7944
8809
  scripts: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
7945
8810
  stability: typing.Optional[builtins.str] = None,
7946
8811
  yarn_berry_options: typing.Optional[typing.Union[_YarnBerryOptions_b6942539, typing.Dict[builtins.str, typing.Any]]] = None,
8812
+ bump_package: typing.Optional[builtins.str] = None,
7947
8813
  jsii_release_version: typing.Optional[builtins.str] = None,
7948
8814
  major_version: typing.Optional[jsii.Number] = None,
7949
8815
  min_major_version: typing.Optional[jsii.Number] = None,
8816
+ next_version_command: typing.Optional[builtins.str] = None,
7950
8817
  npm_dist_tag: typing.Optional[builtins.str] = None,
7951
8818
  post_build_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
7952
8819
  prerelease: typing.Optional[builtins.str] = None,
@@ -7954,12 +8821,14 @@ def _typecheckingstub__ac162883b4ecfe9863890d69bffa76d7f9ce16e619c94b9b2a4b7b8f2
7954
8821
  publish_tasks: typing.Optional[builtins.bool] = None,
7955
8822
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
7956
8823
  release_branches: typing.Optional[typing.Mapping[builtins.str, typing.Union[_BranchOptions_13663d08, typing.Dict[builtins.str, typing.Any]]]] = None,
8824
+ release_environment: typing.Optional[builtins.str] = None,
7957
8825
  release_every_commit: typing.Optional[builtins.bool] = None,
7958
8826
  release_failure_issue: typing.Optional[builtins.bool] = None,
7959
8827
  release_failure_issue_label: typing.Optional[builtins.str] = None,
7960
8828
  release_schedule: typing.Optional[builtins.str] = None,
7961
8829
  release_tag_prefix: typing.Optional[builtins.str] = None,
7962
8830
  release_trigger: typing.Optional[_ReleaseTrigger_e4dc221f] = None,
8831
+ release_workflow_env: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
7963
8832
  release_workflow_name: typing.Optional[builtins.str] = None,
7964
8833
  release_workflow_setup_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
7965
8834
  versionrc_options: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
@@ -7968,8 +8837,13 @@ def _typecheckingstub__ac162883b4ecfe9863890d69bffa76d7f9ce16e619c94b9b2a4b7b8f2
7968
8837
  workflow_runs_on_group: typing.Optional[typing.Union[_GroupRunnerOptions_148c59c1, typing.Dict[builtins.str, typing.Any]]] = None,
7969
8838
  default_release_branch: builtins.str,
7970
8839
  artifacts_directory: typing.Optional[builtins.str] = None,
8840
+ audit_deps: typing.Optional[builtins.bool] = None,
8841
+ audit_deps_options: typing.Optional[typing.Union[_AuditOptions_429c62df, typing.Dict[builtins.str, typing.Any]]] = None,
7971
8842
  auto_approve_upgrades: typing.Optional[builtins.bool] = None,
8843
+ biome: typing.Optional[builtins.bool] = None,
8844
+ biome_options: typing.Optional[typing.Union[_BiomeOptions_452ab984, typing.Dict[builtins.str, typing.Any]]] = None,
7972
8845
  build_workflow: typing.Optional[builtins.bool] = None,
8846
+ build_workflow_options: typing.Optional[typing.Union[_BuildWorkflowOptions_b756f97f, typing.Dict[builtins.str, typing.Any]]] = None,
7973
8847
  build_workflow_triggers: typing.Optional[typing.Union[_Triggers_e9ae7617, typing.Dict[builtins.str, typing.Any]]] = None,
7974
8848
  bundler_options: typing.Optional[typing.Union[_BundlerOptions_d60b85ed, typing.Dict[builtins.str, typing.Any]]] = None,
7975
8849
  check_licenses: typing.Optional[typing.Union[_LicenseCheckerOptions_80bcd362, typing.Dict[builtins.str, typing.Any]]] = None,