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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,7 +11,22 @@ import jsii
11
11
  import publication
12
12
  import typing_extensions
13
13
 
14
- from typeguard import check_type
14
+ import typeguard
15
+ from importlib.metadata import version as _metadata_package_version
16
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
17
+
18
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
19
+ if TYPEGUARD_MAJOR_VERSION <= 2:
20
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
21
+ else:
22
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
23
+ pass
24
+ else:
25
+ if TYPEGUARD_MAJOR_VERSION == 3:
26
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
27
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
28
+ else:
29
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
15
30
 
16
31
  from .._jsii import *
17
32
 
@@ -43,6 +58,8 @@ from ..github.workflows import (
43
58
  JobStep as _JobStep_c3287c05, Triggers as _Triggers_e9ae7617
44
59
  )
45
60
  from ..javascript import (
61
+ AuditOptions as _AuditOptions_429c62df,
62
+ BiomeOptions as _BiomeOptions_452ab984,
46
63
  BuildWorkflowOptions as _BuildWorkflowOptions_b756f97f,
47
64
  BundlerOptions as _BundlerOptions_d60b85ed,
48
65
  CodeArtifactOptions as _CodeArtifactOptions_e4782b3e,
@@ -59,8 +76,11 @@ from ..javascript import (
59
76
  ProjenrcOptions as _ProjenrcOptions_179dd39f,
60
77
  ScopedPackagesOptions as _ScopedPackagesOptions_52f0a477,
61
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,
62
83
  TypescriptConfig as _TypescriptConfig_e4a2920d,
63
- TypescriptConfigExtends as _TypescriptConfigExtends_ba2a99fc,
64
84
  TypescriptConfigOptions as _TypescriptConfigOptions_8c5492cd,
65
85
  UpgradeDependenciesOptions as _UpgradeDependenciesOptions_1d8ce4da,
66
86
  YarnBerryOptions as _YarnBerryOptions_b6942539,
@@ -738,29 +758,197 @@ class TsJestTsconfig(
738
758
  def custom(
739
759
  cls,
740
760
  *,
741
- compiler_options: typing.Optional[typing.Union[_TypeScriptCompilerOptions_829fc4b0, typing.Dict[builtins.str, typing.Any]]] = None,
742
- exclude: typing.Optional[typing.Sequence[builtins.str]] = None,
743
- extends: typing.Optional[_TypescriptConfigExtends_ba2a99fc] = None,
744
- file_name: typing.Optional[builtins.str] = None,
745
- 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,
746
822
  ) -> "TsJestTsconfig":
747
823
  '''(experimental) Inline compiler options.
748
824
 
749
- :param compiler_options: (experimental) Compiler options to use.
750
- :param exclude: (experimental) Filters results from the "include" option. Default: - node_modules is excluded by default
751
- :param extends: (experimental) Base ``tsconfig.json`` configuration(s) to inherit from.
752
- :param file_name: Default: "tsconfig.json"
753
- :param include: (experimental) Specifies a list of glob patterns that match TypeScript files to be included in compilation. Default: - all .ts files recursively
754
-
755
- :see: TypescriptConfigOptions
756
- :stability: experimental
757
- '''
758
- config = _TypescriptConfigOptions_8c5492cd(
759
- compiler_options=compiler_options,
760
- exclude=exclude,
761
- extends=extends,
762
- file_name=file_name,
763
- 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,
764
952
  )
765
953
 
766
954
  return typing.cast("TsJestTsconfig", jsii.sinvoke(cls, "custom", [config]))
@@ -816,7 +1004,11 @@ class TypeScriptProject(
816
1004
  typescript_version: typing.Optional[builtins.str] = None,
817
1005
  default_release_branch: builtins.str,
818
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,
819
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,
820
1012
  build_workflow: typing.Optional[builtins.bool] = None,
821
1013
  build_workflow_options: typing.Optional[typing.Union[_BuildWorkflowOptions_b756f97f, typing.Dict[builtins.str, typing.Any]]] = None,
822
1014
  build_workflow_triggers: typing.Optional[typing.Union[_Triggers_e9ae7617, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -880,6 +1072,7 @@ class TypeScriptProject(
880
1072
  bugs_email: typing.Optional[builtins.str] = None,
881
1073
  bugs_url: typing.Optional[builtins.str] = None,
882
1074
  bundled_deps: typing.Optional[typing.Sequence[builtins.str]] = None,
1075
+ bun_version: typing.Optional[builtins.str] = None,
883
1076
  code_artifact_options: typing.Optional[typing.Union[_CodeArtifactOptions_e4782b3e, typing.Dict[builtins.str, typing.Any]]] = None,
884
1077
  deps: typing.Optional[typing.Sequence[builtins.str]] = None,
885
1078
  description: typing.Optional[builtins.str] = None,
@@ -896,6 +1089,7 @@ class TypeScriptProject(
896
1089
  npm_registry: typing.Optional[builtins.str] = None,
897
1090
  npm_registry_url: typing.Optional[builtins.str] = None,
898
1091
  npm_token_secret: typing.Optional[builtins.str] = None,
1092
+ npm_trusted_publishing: typing.Optional[builtins.bool] = None,
899
1093
  package_manager: typing.Optional[_NodePackageManager_3eb53bf6] = None,
900
1094
  package_name: typing.Optional[builtins.str] = None,
901
1095
  peer_dependency_options: typing.Optional[typing.Union[_PeerDependencyOptions_99d7d493, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -907,9 +1101,11 @@ class TypeScriptProject(
907
1101
  scripts: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
908
1102
  stability: typing.Optional[builtins.str] = None,
909
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,
910
1105
  jsii_release_version: typing.Optional[builtins.str] = None,
911
1106
  major_version: typing.Optional[jsii.Number] = None,
912
1107
  min_major_version: typing.Optional[jsii.Number] = None,
1108
+ next_version_command: typing.Optional[builtins.str] = None,
913
1109
  npm_dist_tag: typing.Optional[builtins.str] = None,
914
1110
  post_build_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
915
1111
  prerelease: typing.Optional[builtins.str] = None,
@@ -917,12 +1113,14 @@ class TypeScriptProject(
917
1113
  publish_tasks: typing.Optional[builtins.bool] = None,
918
1114
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
919
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,
920
1117
  release_every_commit: typing.Optional[builtins.bool] = None,
921
1118
  release_failure_issue: typing.Optional[builtins.bool] = None,
922
1119
  release_failure_issue_label: typing.Optional[builtins.str] = None,
923
1120
  release_schedule: typing.Optional[builtins.str] = None,
924
1121
  release_tag_prefix: typing.Optional[builtins.str] = None,
925
1122
  release_trigger: typing.Optional[_ReleaseTrigger_e4dc221f] = None,
1123
+ release_workflow_env: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
926
1124
  release_workflow_name: typing.Optional[builtins.str] = None,
927
1125
  release_workflow_setup_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
928
1126
  versionrc_options: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
@@ -948,7 +1146,7 @@ class TypeScriptProject(
948
1146
  :param docgen: (experimental) Docgen by Typedoc. Default: false
949
1147
  :param docs_directory: (experimental) Docs directory. Default: "docs"
950
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)
951
- :param eslint: (experimental) Setup eslint. Default: true
1149
+ :param eslint: (experimental) Setup eslint. Default: - true, unless biome is enabled
952
1150
  :param eslint_options: (experimental) Eslint options. Default: - opinionated default options
953
1151
  :param libdir: (experimental) Typescript artifacts output directory. Default: "lib"
954
1152
  :param projenrc_ts: (experimental) Use TypeScript for your projenrc file (``.projenrc.ts``). Default: false
@@ -963,14 +1161,18 @@ class TypeScriptProject(
963
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"
964
1162
  :param default_release_branch: (experimental) The name of the main release branch. Default: "main"
965
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
966
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
967
1169
  :param build_workflow: (experimental) Define a GitHub workflow for building PRs. Default: - true if not a subproject
968
1170
  :param build_workflow_options: (experimental) Options for PR build workflow.
969
1171
  :param build_workflow_triggers: (deprecated) Build workflow triggers. Default: "{ pullRequest: {}, workflowDispatch: {} }"
970
1172
  :param bundler_options: (experimental) Options for ``Bundler``.
971
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
972
- :param code_cov: (experimental) Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v4 A secret is required for private repos. Configured with ``@codeCovTokenSecret``. Default: false
973
- :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
974
1176
  :param copyright_owner: (experimental) License copyright owner. Default: - defaults to the value of authorName or "" if ``authorName`` is undefined.
975
1177
  :param copyright_period: (experimental) The copyright years to put in the LICENSE file. Default: - current year
976
1178
  :param dependabot: (experimental) Use dependabot to handle dependency upgrades. Cannot be used in conjunction with ``depsUpgrade``. Default: false
@@ -997,8 +1199,8 @@ class TypeScriptProject(
997
1199
  :param release_to_npm: (experimental) Automatically release to npm when new versions are introduced. Default: false
998
1200
  :param release_workflow: (deprecated) DEPRECATED: renamed to ``release``. Default: - true if not a subproject
999
1201
  :param workflow_bootstrap_steps: (experimental) Workflow steps to use in order to bootstrap this repo. Default: "yarn install --frozen-lockfile && yarn projen"
1000
- :param workflow_git_identity: (experimental) The git identity to use in workflows. Default: - GitHub Actions
1001
- :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/*``.
1002
1204
  :param workflow_package_cache: (experimental) Enable Node.js package cache in GitHub workflows. Default: false
1003
1205
  :param auto_approve_options: (experimental) Enable and configure the 'auto approve' workflow. Default: - auto approve is disabled
1004
1206
  :param auto_merge: (experimental) Enable automatic merging on GitHub. Has no effect if ``github.mergify`` is set to false. Default: true
@@ -1027,6 +1229,7 @@ class TypeScriptProject(
1027
1229
  :param bugs_email: (experimental) The email address to which issues should be reported.
1028
1230
  :param bugs_url: (experimental) The url to your project's issue tracker.
1029
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"
1030
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
1031
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: []
1032
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
@@ -1036,27 +1239,30 @@ class TypeScriptProject(
1036
1239
  :param keywords: (experimental) Keywords to include in ``package.json``.
1037
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"
1038
1241
  :param licensed: (experimental) Indicates if a license should be added. Default: true
1039
- :param max_node_version: (experimental) Minimum node.js version to require via ``engines`` (inclusive). Default: - no max
1040
- :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
1041
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``.
1042
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
1043
1246
  :param npm_registry: (deprecated) The host name of the npm registry to publish to. Cannot be set together with ``npmRegistryUrl``.
1044
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"
1045
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
1046
1250
  :param package_manager: (experimental) The Node Package Manager used to execute scripts. Default: NodePackageManager.YARN_CLASSIC
1047
1251
  :param package_name: (experimental) The "name" in package.json. Default: - defaults to project name
1048
1252
  :param peer_dependency_options: (experimental) Options for ``peerDeps``.
1049
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: []
1050
- :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"
1051
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
1052
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.
1053
1257
  :param scoped_packages_options: (experimental) Options for privately hosted scoped packages. Default: - fetch all scoped packages from the public npm registry
1054
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: {}
1055
1259
  :param stability: (experimental) Package's Stability.
1056
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"
1057
1262
  :param jsii_release_version: (experimental) Version requirement of ``publib`` which is used to publish modules to npm. Default: "latest"
1058
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.
1059
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.
1060
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"
1061
1267
  :param post_build_steps: (experimental) Steps to execute after build as part of the release workflow. Default: []
1062
1268
  :param prerelease: (experimental) Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). Default: - normal semantic versions
@@ -1064,15 +1270,17 @@ class TypeScriptProject(
1064
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
1065
1271
  :param releasable_commits: (experimental) Find commits that should be considered releasable Used to decide if a release is required. Default: ReleasableCommits.everyCommit()
1066
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
1067
1274
  :param release_every_commit: (deprecated) Automatically release new versions every commit to one of branches in ``releaseBranches``. Default: true
1068
1275
  :param release_failure_issue: (experimental) Create a github issue on every failed publishing task. Default: false
1069
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"
1070
1277
  :param release_schedule: (deprecated) CRON schedule to trigger new releases. Default: - no scheduled releases
1071
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"
1072
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: {}
1073
1281
  :param release_workflow_name: (experimental) The name of the default release workflow. Default: "release"
1074
1282
  :param release_workflow_setup_steps: (experimental) A set of workflow steps to execute in order to setup the workflow container.
1075
- :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
1076
1284
  :param workflow_container_image: (experimental) Container image to use for GitHub workflows. Default: - default image
1077
1285
  :param workflow_runs_on: (experimental) Github Runner selection labels. Default: ["ubuntu-latest"]
1078
1286
  :param workflow_runs_on_group: (experimental) Github Runner Group selection options.
@@ -1112,7 +1320,11 @@ class TypeScriptProject(
1112
1320
  typescript_version=typescript_version,
1113
1321
  default_release_branch=default_release_branch,
1114
1322
  artifacts_directory=artifacts_directory,
1323
+ audit_deps=audit_deps,
1324
+ audit_deps_options=audit_deps_options,
1115
1325
  auto_approve_upgrades=auto_approve_upgrades,
1326
+ biome=biome,
1327
+ biome_options=biome_options,
1116
1328
  build_workflow=build_workflow,
1117
1329
  build_workflow_options=build_workflow_options,
1118
1330
  build_workflow_triggers=build_workflow_triggers,
@@ -1176,6 +1388,7 @@ class TypeScriptProject(
1176
1388
  bugs_email=bugs_email,
1177
1389
  bugs_url=bugs_url,
1178
1390
  bundled_deps=bundled_deps,
1391
+ bun_version=bun_version,
1179
1392
  code_artifact_options=code_artifact_options,
1180
1393
  deps=deps,
1181
1394
  description=description,
@@ -1192,6 +1405,7 @@ class TypeScriptProject(
1192
1405
  npm_registry=npm_registry,
1193
1406
  npm_registry_url=npm_registry_url,
1194
1407
  npm_token_secret=npm_token_secret,
1408
+ npm_trusted_publishing=npm_trusted_publishing,
1195
1409
  package_manager=package_manager,
1196
1410
  package_name=package_name,
1197
1411
  peer_dependency_options=peer_dependency_options,
@@ -1203,9 +1417,11 @@ class TypeScriptProject(
1203
1417
  scripts=scripts,
1204
1418
  stability=stability,
1205
1419
  yarn_berry_options=yarn_berry_options,
1420
+ bump_package=bump_package,
1206
1421
  jsii_release_version=jsii_release_version,
1207
1422
  major_version=major_version,
1208
1423
  min_major_version=min_major_version,
1424
+ next_version_command=next_version_command,
1209
1425
  npm_dist_tag=npm_dist_tag,
1210
1426
  post_build_steps=post_build_steps,
1211
1427
  prerelease=prerelease,
@@ -1213,12 +1429,14 @@ class TypeScriptProject(
1213
1429
  publish_tasks=publish_tasks,
1214
1430
  releasable_commits=releasable_commits,
1215
1431
  release_branches=release_branches,
1432
+ release_environment=release_environment,
1216
1433
  release_every_commit=release_every_commit,
1217
1434
  release_failure_issue=release_failure_issue,
1218
1435
  release_failure_issue_label=release_failure_issue_label,
1219
1436
  release_schedule=release_schedule,
1220
1437
  release_tag_prefix=release_tag_prefix,
1221
1438
  release_trigger=release_trigger,
1439
+ release_workflow_env=release_workflow_env,
1222
1440
  release_workflow_name=release_workflow_name,
1223
1441
  release_workflow_setup_steps=release_workflow_setup_steps,
1224
1442
  versionrc_options=versionrc_options,
@@ -1241,6 +1459,16 @@ class TypeScriptProject(
1241
1459
 
1242
1460
  jsii.create(self.__class__, self, [options])
1243
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
+
1244
1472
  @jsii.python.classproperty
1245
1473
  @jsii.member(jsii_name="DEFAULT_TS_JEST_TRANFORM_PATTERN")
1246
1474
  def DEFAULT_TS_JEST_TRANFORM_PATTERN(cls) -> builtins.str:
@@ -1378,6 +1606,7 @@ class TypeScriptProject(
1378
1606
  "bugs_email": "bugsEmail",
1379
1607
  "bugs_url": "bugsUrl",
1380
1608
  "bundled_deps": "bundledDeps",
1609
+ "bun_version": "bunVersion",
1381
1610
  "code_artifact_options": "codeArtifactOptions",
1382
1611
  "deps": "deps",
1383
1612
  "description": "description",
@@ -1394,6 +1623,7 @@ class TypeScriptProject(
1394
1623
  "npm_registry": "npmRegistry",
1395
1624
  "npm_registry_url": "npmRegistryUrl",
1396
1625
  "npm_token_secret": "npmTokenSecret",
1626
+ "npm_trusted_publishing": "npmTrustedPublishing",
1397
1627
  "package_manager": "packageManager",
1398
1628
  "package_name": "packageName",
1399
1629
  "peer_dependency_options": "peerDependencyOptions",
@@ -1405,9 +1635,11 @@ class TypeScriptProject(
1405
1635
  "scripts": "scripts",
1406
1636
  "stability": "stability",
1407
1637
  "yarn_berry_options": "yarnBerryOptions",
1638
+ "bump_package": "bumpPackage",
1408
1639
  "jsii_release_version": "jsiiReleaseVersion",
1409
1640
  "major_version": "majorVersion",
1410
1641
  "min_major_version": "minMajorVersion",
1642
+ "next_version_command": "nextVersionCommand",
1411
1643
  "npm_dist_tag": "npmDistTag",
1412
1644
  "post_build_steps": "postBuildSteps",
1413
1645
  "prerelease": "prerelease",
@@ -1415,12 +1647,14 @@ class TypeScriptProject(
1415
1647
  "publish_tasks": "publishTasks",
1416
1648
  "releasable_commits": "releasableCommits",
1417
1649
  "release_branches": "releaseBranches",
1650
+ "release_environment": "releaseEnvironment",
1418
1651
  "release_every_commit": "releaseEveryCommit",
1419
1652
  "release_failure_issue": "releaseFailureIssue",
1420
1653
  "release_failure_issue_label": "releaseFailureIssueLabel",
1421
1654
  "release_schedule": "releaseSchedule",
1422
1655
  "release_tag_prefix": "releaseTagPrefix",
1423
1656
  "release_trigger": "releaseTrigger",
1657
+ "release_workflow_env": "releaseWorkflowEnv",
1424
1658
  "release_workflow_name": "releaseWorkflowName",
1425
1659
  "release_workflow_setup_steps": "releaseWorkflowSetupSteps",
1426
1660
  "versionrc_options": "versionrcOptions",
@@ -1429,7 +1663,11 @@ class TypeScriptProject(
1429
1663
  "workflow_runs_on_group": "workflowRunsOnGroup",
1430
1664
  "default_release_branch": "defaultReleaseBranch",
1431
1665
  "artifacts_directory": "artifactsDirectory",
1666
+ "audit_deps": "auditDeps",
1667
+ "audit_deps_options": "auditDepsOptions",
1432
1668
  "auto_approve_upgrades": "autoApproveUpgrades",
1669
+ "biome": "biome",
1670
+ "biome_options": "biomeOptions",
1433
1671
  "build_workflow": "buildWorkflow",
1434
1672
  "build_workflow_options": "buildWorkflowOptions",
1435
1673
  "build_workflow_triggers": "buildWorkflowTriggers",
@@ -1529,6 +1767,7 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1529
1767
  bugs_email: typing.Optional[builtins.str] = None,
1530
1768
  bugs_url: typing.Optional[builtins.str] = None,
1531
1769
  bundled_deps: typing.Optional[typing.Sequence[builtins.str]] = None,
1770
+ bun_version: typing.Optional[builtins.str] = None,
1532
1771
  code_artifact_options: typing.Optional[typing.Union[_CodeArtifactOptions_e4782b3e, typing.Dict[builtins.str, typing.Any]]] = None,
1533
1772
  deps: typing.Optional[typing.Sequence[builtins.str]] = None,
1534
1773
  description: typing.Optional[builtins.str] = None,
@@ -1545,6 +1784,7 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1545
1784
  npm_registry: typing.Optional[builtins.str] = None,
1546
1785
  npm_registry_url: typing.Optional[builtins.str] = None,
1547
1786
  npm_token_secret: typing.Optional[builtins.str] = None,
1787
+ npm_trusted_publishing: typing.Optional[builtins.bool] = None,
1548
1788
  package_manager: typing.Optional[_NodePackageManager_3eb53bf6] = None,
1549
1789
  package_name: typing.Optional[builtins.str] = None,
1550
1790
  peer_dependency_options: typing.Optional[typing.Union[_PeerDependencyOptions_99d7d493, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -1556,9 +1796,11 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1556
1796
  scripts: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
1557
1797
  stability: typing.Optional[builtins.str] = None,
1558
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,
1559
1800
  jsii_release_version: typing.Optional[builtins.str] = None,
1560
1801
  major_version: typing.Optional[jsii.Number] = None,
1561
1802
  min_major_version: typing.Optional[jsii.Number] = None,
1803
+ next_version_command: typing.Optional[builtins.str] = None,
1562
1804
  npm_dist_tag: typing.Optional[builtins.str] = None,
1563
1805
  post_build_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
1564
1806
  prerelease: typing.Optional[builtins.str] = None,
@@ -1566,12 +1808,14 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1566
1808
  publish_tasks: typing.Optional[builtins.bool] = None,
1567
1809
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
1568
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,
1569
1812
  release_every_commit: typing.Optional[builtins.bool] = None,
1570
1813
  release_failure_issue: typing.Optional[builtins.bool] = None,
1571
1814
  release_failure_issue_label: typing.Optional[builtins.str] = None,
1572
1815
  release_schedule: typing.Optional[builtins.str] = None,
1573
1816
  release_tag_prefix: typing.Optional[builtins.str] = None,
1574
1817
  release_trigger: typing.Optional[_ReleaseTrigger_e4dc221f] = None,
1818
+ release_workflow_env: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
1575
1819
  release_workflow_name: typing.Optional[builtins.str] = None,
1576
1820
  release_workflow_setup_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
1577
1821
  versionrc_options: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
@@ -1580,7 +1824,11 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1580
1824
  workflow_runs_on_group: typing.Optional[typing.Union[_GroupRunnerOptions_148c59c1, typing.Dict[builtins.str, typing.Any]]] = None,
1581
1825
  default_release_branch: builtins.str,
1582
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,
1583
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,
1584
1832
  build_workflow: typing.Optional[builtins.bool] = None,
1585
1833
  build_workflow_options: typing.Optional[typing.Union[_BuildWorkflowOptions_b756f97f, typing.Dict[builtins.str, typing.Any]]] = None,
1586
1834
  build_workflow_triggers: typing.Optional[typing.Union[_Triggers_e9ae7617, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -1676,6 +1924,7 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1676
1924
  :param bugs_email: (experimental) The email address to which issues should be reported.
1677
1925
  :param bugs_url: (experimental) The url to your project's issue tracker.
1678
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"
1679
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
1680
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: []
1681
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
@@ -1685,27 +1934,30 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1685
1934
  :param keywords: (experimental) Keywords to include in ``package.json``.
1686
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"
1687
1936
  :param licensed: (experimental) Indicates if a license should be added. Default: true
1688
- :param max_node_version: (experimental) Minimum node.js version to require via ``engines`` (inclusive). Default: - no max
1689
- :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
1690
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``.
1691
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
1692
1941
  :param npm_registry: (deprecated) The host name of the npm registry to publish to. Cannot be set together with ``npmRegistryUrl``.
1693
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"
1694
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
1695
1945
  :param package_manager: (experimental) The Node Package Manager used to execute scripts. Default: NodePackageManager.YARN_CLASSIC
1696
1946
  :param package_name: (experimental) The "name" in package.json. Default: - defaults to project name
1697
1947
  :param peer_dependency_options: (experimental) Options for ``peerDeps``.
1698
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: []
1699
- :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"
1700
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
1701
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.
1702
1952
  :param scoped_packages_options: (experimental) Options for privately hosted scoped packages. Default: - fetch all scoped packages from the public npm registry
1703
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: {}
1704
1954
  :param stability: (experimental) Package's Stability.
1705
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"
1706
1957
  :param jsii_release_version: (experimental) Version requirement of ``publib`` which is used to publish modules to npm. Default: "latest"
1707
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.
1708
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.
1709
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"
1710
1962
  :param post_build_steps: (experimental) Steps to execute after build as part of the release workflow. Default: []
1711
1963
  :param prerelease: (experimental) Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). Default: - normal semantic versions
@@ -1713,28 +1965,34 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1713
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
1714
1966
  :param releasable_commits: (experimental) Find commits that should be considered releasable Used to decide if a release is required. Default: ReleasableCommits.everyCommit()
1715
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
1716
1969
  :param release_every_commit: (deprecated) Automatically release new versions every commit to one of branches in ``releaseBranches``. Default: true
1717
1970
  :param release_failure_issue: (experimental) Create a github issue on every failed publishing task. Default: false
1718
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"
1719
1972
  :param release_schedule: (deprecated) CRON schedule to trigger new releases. Default: - no scheduled releases
1720
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"
1721
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: {}
1722
1976
  :param release_workflow_name: (experimental) The name of the default release workflow. Default: "release"
1723
1977
  :param release_workflow_setup_steps: (experimental) A set of workflow steps to execute in order to setup the workflow container.
1724
- :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
1725
1979
  :param workflow_container_image: (experimental) Container image to use for GitHub workflows. Default: - default image
1726
1980
  :param workflow_runs_on: (experimental) Github Runner selection labels. Default: ["ubuntu-latest"]
1727
1981
  :param workflow_runs_on_group: (experimental) Github Runner Group selection options.
1728
1982
  :param default_release_branch: (experimental) The name of the main release branch. Default: "main"
1729
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
1730
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
1731
1989
  :param build_workflow: (experimental) Define a GitHub workflow for building PRs. Default: - true if not a subproject
1732
1990
  :param build_workflow_options: (experimental) Options for PR build workflow.
1733
1991
  :param build_workflow_triggers: (deprecated) Build workflow triggers. Default: "{ pullRequest: {}, workflowDispatch: {} }"
1734
1992
  :param bundler_options: (experimental) Options for ``Bundler``.
1735
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
1736
- :param code_cov: (experimental) Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v4 A secret is required for private repos. Configured with ``@codeCovTokenSecret``. Default: false
1737
- :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
1738
1996
  :param copyright_owner: (experimental) License copyright owner. Default: - defaults to the value of authorName or "" if ``authorName`` is undefined.
1739
1997
  :param copyright_period: (experimental) The copyright years to put in the LICENSE file. Default: - current year
1740
1998
  :param dependabot: (experimental) Use dependabot to handle dependency upgrades. Cannot be used in conjunction with ``depsUpgrade``. Default: false
@@ -1761,15 +2019,15 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1761
2019
  :param release_to_npm: (experimental) Automatically release to npm when new versions are introduced. Default: false
1762
2020
  :param release_workflow: (deprecated) DEPRECATED: renamed to ``release``. Default: - true if not a subproject
1763
2021
  :param workflow_bootstrap_steps: (experimental) Workflow steps to use in order to bootstrap this repo. Default: "yarn install --frozen-lockfile && yarn projen"
1764
- :param workflow_git_identity: (experimental) The git identity to use in workflows. Default: - GitHub Actions
1765
- :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/*``.
1766
2024
  :param workflow_package_cache: (experimental) Enable Node.js package cache in GitHub workflows. Default: false
1767
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
1768
2026
  :param disable_tsconfig_dev: (experimental) Do not generate a ``tsconfig.dev.json`` file. Default: false
1769
2027
  :param docgen: (experimental) Docgen by Typedoc. Default: false
1770
2028
  :param docs_directory: (experimental) Docs directory. Default: "docs"
1771
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)
1772
- :param eslint: (experimental) Setup eslint. Default: true
2030
+ :param eslint: (experimental) Setup eslint. Default: - true, unless biome is enabled
1773
2031
  :param eslint_options: (experimental) Eslint options. Default: - opinionated default options
1774
2032
  :param libdir: (experimental) Typescript artifacts output directory. Default: "lib"
1775
2033
  :param projenrc_ts: (experimental) Use TypeScript for your projenrc file (``.projenrc.ts``). Default: false
@@ -1815,6 +2073,10 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1815
2073
  yarn_berry_options = _YarnBerryOptions_b6942539(**yarn_berry_options)
1816
2074
  if isinstance(workflow_runs_on_group, dict):
1817
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)
1818
2080
  if isinstance(build_workflow_options, dict):
1819
2081
  build_workflow_options = _BuildWorkflowOptions_b756f97f(**build_workflow_options)
1820
2082
  if isinstance(build_workflow_triggers, dict):
@@ -1888,6 +2150,7 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1888
2150
  check_type(argname="argument bugs_email", value=bugs_email, expected_type=type_hints["bugs_email"])
1889
2151
  check_type(argname="argument bugs_url", value=bugs_url, expected_type=type_hints["bugs_url"])
1890
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"])
1891
2154
  check_type(argname="argument code_artifact_options", value=code_artifact_options, expected_type=type_hints["code_artifact_options"])
1892
2155
  check_type(argname="argument deps", value=deps, expected_type=type_hints["deps"])
1893
2156
  check_type(argname="argument description", value=description, expected_type=type_hints["description"])
@@ -1904,6 +2167,7 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1904
2167
  check_type(argname="argument npm_registry", value=npm_registry, expected_type=type_hints["npm_registry"])
1905
2168
  check_type(argname="argument npm_registry_url", value=npm_registry_url, expected_type=type_hints["npm_registry_url"])
1906
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"])
1907
2171
  check_type(argname="argument package_manager", value=package_manager, expected_type=type_hints["package_manager"])
1908
2172
  check_type(argname="argument package_name", value=package_name, expected_type=type_hints["package_name"])
1909
2173
  check_type(argname="argument peer_dependency_options", value=peer_dependency_options, expected_type=type_hints["peer_dependency_options"])
@@ -1915,9 +2179,11 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1915
2179
  check_type(argname="argument scripts", value=scripts, expected_type=type_hints["scripts"])
1916
2180
  check_type(argname="argument stability", value=stability, expected_type=type_hints["stability"])
1917
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"])
1918
2183
  check_type(argname="argument jsii_release_version", value=jsii_release_version, expected_type=type_hints["jsii_release_version"])
1919
2184
  check_type(argname="argument major_version", value=major_version, expected_type=type_hints["major_version"])
1920
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"])
1921
2187
  check_type(argname="argument npm_dist_tag", value=npm_dist_tag, expected_type=type_hints["npm_dist_tag"])
1922
2188
  check_type(argname="argument post_build_steps", value=post_build_steps, expected_type=type_hints["post_build_steps"])
1923
2189
  check_type(argname="argument prerelease", value=prerelease, expected_type=type_hints["prerelease"])
@@ -1925,12 +2191,14 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1925
2191
  check_type(argname="argument publish_tasks", value=publish_tasks, expected_type=type_hints["publish_tasks"])
1926
2192
  check_type(argname="argument releasable_commits", value=releasable_commits, expected_type=type_hints["releasable_commits"])
1927
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"])
1928
2195
  check_type(argname="argument release_every_commit", value=release_every_commit, expected_type=type_hints["release_every_commit"])
1929
2196
  check_type(argname="argument release_failure_issue", value=release_failure_issue, expected_type=type_hints["release_failure_issue"])
1930
2197
  check_type(argname="argument release_failure_issue_label", value=release_failure_issue_label, expected_type=type_hints["release_failure_issue_label"])
1931
2198
  check_type(argname="argument release_schedule", value=release_schedule, expected_type=type_hints["release_schedule"])
1932
2199
  check_type(argname="argument release_tag_prefix", value=release_tag_prefix, expected_type=type_hints["release_tag_prefix"])
1933
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"])
1934
2202
  check_type(argname="argument release_workflow_name", value=release_workflow_name, expected_type=type_hints["release_workflow_name"])
1935
2203
  check_type(argname="argument release_workflow_setup_steps", value=release_workflow_setup_steps, expected_type=type_hints["release_workflow_setup_steps"])
1936
2204
  check_type(argname="argument versionrc_options", value=versionrc_options, expected_type=type_hints["versionrc_options"])
@@ -1939,7 +2207,11 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
1939
2207
  check_type(argname="argument workflow_runs_on_group", value=workflow_runs_on_group, expected_type=type_hints["workflow_runs_on_group"])
1940
2208
  check_type(argname="argument default_release_branch", value=default_release_branch, expected_type=type_hints["default_release_branch"])
1941
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"])
1942
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"])
1943
2215
  check_type(argname="argument build_workflow", value=build_workflow, expected_type=type_hints["build_workflow"])
1944
2216
  check_type(argname="argument build_workflow_options", value=build_workflow_options, expected_type=type_hints["build_workflow_options"])
1945
2217
  check_type(argname="argument build_workflow_triggers", value=build_workflow_triggers, expected_type=type_hints["build_workflow_triggers"])
@@ -2074,6 +2346,8 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
2074
2346
  self._values["bugs_url"] = bugs_url
2075
2347
  if bundled_deps is not None:
2076
2348
  self._values["bundled_deps"] = bundled_deps
2349
+ if bun_version is not None:
2350
+ self._values["bun_version"] = bun_version
2077
2351
  if code_artifact_options is not None:
2078
2352
  self._values["code_artifact_options"] = code_artifact_options
2079
2353
  if deps is not None:
@@ -2106,6 +2380,8 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
2106
2380
  self._values["npm_registry_url"] = npm_registry_url
2107
2381
  if npm_token_secret is not None:
2108
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
2109
2385
  if package_manager is not None:
2110
2386
  self._values["package_manager"] = package_manager
2111
2387
  if package_name is not None:
@@ -2128,12 +2404,16 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
2128
2404
  self._values["stability"] = stability
2129
2405
  if yarn_berry_options is not None:
2130
2406
  self._values["yarn_berry_options"] = yarn_berry_options
2407
+ if bump_package is not None:
2408
+ self._values["bump_package"] = bump_package
2131
2409
  if jsii_release_version is not None:
2132
2410
  self._values["jsii_release_version"] = jsii_release_version
2133
2411
  if major_version is not None:
2134
2412
  self._values["major_version"] = major_version
2135
2413
  if min_major_version is not None:
2136
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
2137
2417
  if npm_dist_tag is not None:
2138
2418
  self._values["npm_dist_tag"] = npm_dist_tag
2139
2419
  if post_build_steps is not None:
@@ -2148,6 +2428,8 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
2148
2428
  self._values["releasable_commits"] = releasable_commits
2149
2429
  if release_branches is not None:
2150
2430
  self._values["release_branches"] = release_branches
2431
+ if release_environment is not None:
2432
+ self._values["release_environment"] = release_environment
2151
2433
  if release_every_commit is not None:
2152
2434
  self._values["release_every_commit"] = release_every_commit
2153
2435
  if release_failure_issue is not None:
@@ -2160,6 +2442,8 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
2160
2442
  self._values["release_tag_prefix"] = release_tag_prefix
2161
2443
  if release_trigger is not None:
2162
2444
  self._values["release_trigger"] = release_trigger
2445
+ if release_workflow_env is not None:
2446
+ self._values["release_workflow_env"] = release_workflow_env
2163
2447
  if release_workflow_name is not None:
2164
2448
  self._values["release_workflow_name"] = release_workflow_name
2165
2449
  if release_workflow_setup_steps is not None:
@@ -2174,8 +2458,16 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
2174
2458
  self._values["workflow_runs_on_group"] = workflow_runs_on_group
2175
2459
  if artifacts_directory is not None:
2176
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
2177
2465
  if auto_approve_upgrades is not None:
2178
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
2179
2471
  if build_workflow is not None:
2180
2472
  self._values["build_workflow"] = build_workflow
2181
2473
  if build_workflow_options is not None:
@@ -2749,6 +3041,17 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
2749
3041
  result = self._values.get("bundled_deps")
2750
3042
  return typing.cast(typing.Optional[typing.List[builtins.str]], result)
2751
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
+
2752
3055
  @builtins.property
2753
3056
  def code_artifact_options(self) -> typing.Optional[_CodeArtifactOptions_e4782b3e]:
2754
3057
  '''(experimental) Options for npm packages using AWS CodeArtifact.
@@ -2883,9 +3186,15 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
2883
3186
 
2884
3187
  @builtins.property
2885
3188
  def max_node_version(self) -> typing.Optional[builtins.str]:
2886
- '''(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.
2887
3193
 
2888
- :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
2889
3198
 
2890
3199
  :stability: experimental
2891
3200
  '''
@@ -2894,9 +3203,19 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
2894
3203
 
2895
3204
  @builtins.property
2896
3205
  def min_node_version(self) -> typing.Optional[builtins.str]:
2897
- '''(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.
2898
3215
 
2899
- :default: - no "engines" specified
3216
+ To change the node version of your CI/CD workflows, use ``workflowNodeVersion``.
3217
+
3218
+ :default: - no minimum version is enforced
2900
3219
 
2901
3220
  :stability: experimental
2902
3221
  '''
@@ -2973,6 +3292,17 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
2973
3292
  result = self._values.get("npm_token_secret")
2974
3293
  return typing.cast(typing.Optional[builtins.str], result)
2975
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
+
2976
3306
  @builtins.property
2977
3307
  def package_manager(self) -> typing.Optional[_NodePackageManager_3eb53bf6]:
2978
3308
  '''(experimental) The Node Package Manager used to execute scripts.
@@ -3036,7 +3366,7 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3036
3366
  def pnpm_version(self) -> typing.Optional[builtins.str]:
3037
3367
  '''(experimental) The version of PNPM to use if using PNPM as a package manager.
3038
3368
 
3039
- :default: "7"
3369
+ :default: "9"
3040
3370
 
3041
3371
  :stability: experimental
3042
3372
  '''
@@ -3113,6 +3443,19 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3113
3443
  result = self._values.get("yarn_berry_options")
3114
3444
  return typing.cast(typing.Optional[_YarnBerryOptions_b6942539], result)
3115
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
+
3116
3459
  @builtins.property
3117
3460
  def jsii_release_version(self) -> typing.Optional[builtins.str]:
3118
3461
  '''(experimental) Version requirement of ``publib`` which is used to publish modules to npm.
@@ -3154,6 +3497,36 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3154
3497
  result = self._values.get("min_major_version")
3155
3498
  return typing.cast(typing.Optional[jsii.Number], result)
3156
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
+
3157
3530
  @builtins.property
3158
3531
  def npm_dist_tag(self) -> typing.Optional[builtins.str]:
3159
3532
  '''(experimental) The npmDistTag to use when publishing from the default branch.
@@ -3249,6 +3622,23 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3249
3622
  result = self._values.get("release_branches")
3250
3623
  return typing.cast(typing.Optional[typing.Mapping[builtins.str, _BranchOptions_13663d08]], result)
3251
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
+
3252
3642
  @builtins.property
3253
3643
  def release_every_commit(self) -> typing.Optional[builtins.bool]:
3254
3644
  '''(deprecated) Automatically release new versions every commit to one of branches in ``releaseBranches``.
@@ -3326,6 +3716,19 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3326
3716
  result = self._values.get("release_trigger")
3327
3717
  return typing.cast(typing.Optional[_ReleaseTrigger_e4dc221f], result)
3328
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
+
3329
3732
  @builtins.property
3330
3733
  def release_workflow_name(self) -> typing.Optional[builtins.str]:
3331
3734
  '''(experimental) The name of the default release workflow.
@@ -3352,7 +3755,7 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3352
3755
  def versionrc_options(
3353
3756
  self,
3354
3757
  ) -> typing.Optional[typing.Mapping[builtins.str, typing.Any]]:
3355
- '''(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.
3356
3759
 
3357
3760
  Given values either append to default configuration or overwrite values in it.
3358
3761
 
@@ -3421,6 +3824,32 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3421
3824
  result = self._values.get("artifacts_directory")
3422
3825
  return typing.cast(typing.Optional[builtins.str], result)
3423
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
+
3424
3853
  @builtins.property
3425
3854
  def auto_approve_upgrades(self) -> typing.Optional[builtins.bool]:
3426
3855
  '''(experimental) Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued).
@@ -3434,6 +3863,28 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3434
3863
  result = self._values.get("auto_approve_upgrades")
3435
3864
  return typing.cast(typing.Optional[builtins.bool], result)
3436
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
+
3437
3888
  @builtins.property
3438
3889
  def build_workflow(self) -> typing.Optional[builtins.bool]:
3439
3890
  '''(experimental) Define a GitHub workflow for building PRs.
@@ -3491,7 +3942,7 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3491
3942
 
3492
3943
  @builtins.property
3493
3944
  def code_cov(self) -> typing.Optional[builtins.bool]:
3494
- '''(experimental) Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v4 A secret is required for private repos. Configured with ``@codeCovTokenSecret``.
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``.
3495
3946
 
3496
3947
  :default: false
3497
3948
 
@@ -3502,9 +3953,9 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3502
3953
 
3503
3954
  @builtins.property
3504
3955
  def code_cov_token_secret(self) -> typing.Optional[builtins.str]:
3505
- '''(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.
3506
3957
 
3507
- :default: - if this option is not specified, only public repositories are supported
3958
+ :default: - OIDC auth is used
3508
3959
 
3509
3960
  :stability: experimental
3510
3961
  '''
@@ -3817,7 +4268,7 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3817
4268
  def workflow_git_identity(self) -> typing.Optional[_GitIdentity_6effc3de]:
3818
4269
  '''(experimental) The git identity to use in workflows.
3819
4270
 
3820
- :default: - GitHub Actions
4271
+ :default: - default GitHub Actions user
3821
4272
 
3822
4273
  :stability: experimental
3823
4274
  '''
@@ -3826,9 +4277,11 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3826
4277
 
3827
4278
  @builtins.property
3828
4279
  def workflow_node_version(self) -> typing.Optional[builtins.str]:
3829
- '''(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.
3830
4283
 
3831
- :default: - same as ``minNodeVersion``
4284
+ :default: - ``minNodeVersion`` if set, otherwise ``lts/*``.
3832
4285
 
3833
4286
  :stability: experimental
3834
4287
  '''
@@ -3905,7 +4358,7 @@ class TypeScriptProjectOptions(_NodeProjectOptions_d12f6f3b):
3905
4358
  def eslint(self) -> typing.Optional[builtins.bool]:
3906
4359
  '''(experimental) Setup eslint.
3907
4360
 
3908
- :default: true
4361
+ :default: - true, unless biome is enabled
3909
4362
 
3910
4363
  :stability: experimental
3911
4364
  '''
@@ -4116,7 +4569,11 @@ class TypeScriptAppProject(
4116
4569
  typescript_version: typing.Optional[builtins.str] = None,
4117
4570
  default_release_branch: builtins.str,
4118
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,
4119
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,
4120
4577
  build_workflow: typing.Optional[builtins.bool] = None,
4121
4578
  build_workflow_options: typing.Optional[typing.Union[_BuildWorkflowOptions_b756f97f, typing.Dict[builtins.str, typing.Any]]] = None,
4122
4579
  build_workflow_triggers: typing.Optional[typing.Union[_Triggers_e9ae7617, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -4180,6 +4637,7 @@ class TypeScriptAppProject(
4180
4637
  bugs_email: typing.Optional[builtins.str] = None,
4181
4638
  bugs_url: typing.Optional[builtins.str] = None,
4182
4639
  bundled_deps: typing.Optional[typing.Sequence[builtins.str]] = None,
4640
+ bun_version: typing.Optional[builtins.str] = None,
4183
4641
  code_artifact_options: typing.Optional[typing.Union[_CodeArtifactOptions_e4782b3e, typing.Dict[builtins.str, typing.Any]]] = None,
4184
4642
  deps: typing.Optional[typing.Sequence[builtins.str]] = None,
4185
4643
  description: typing.Optional[builtins.str] = None,
@@ -4196,6 +4654,7 @@ class TypeScriptAppProject(
4196
4654
  npm_registry: typing.Optional[builtins.str] = None,
4197
4655
  npm_registry_url: typing.Optional[builtins.str] = None,
4198
4656
  npm_token_secret: typing.Optional[builtins.str] = None,
4657
+ npm_trusted_publishing: typing.Optional[builtins.bool] = None,
4199
4658
  package_manager: typing.Optional[_NodePackageManager_3eb53bf6] = None,
4200
4659
  package_name: typing.Optional[builtins.str] = None,
4201
4660
  peer_dependency_options: typing.Optional[typing.Union[_PeerDependencyOptions_99d7d493, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -4207,9 +4666,11 @@ class TypeScriptAppProject(
4207
4666
  scripts: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
4208
4667
  stability: typing.Optional[builtins.str] = None,
4209
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,
4210
4670
  jsii_release_version: typing.Optional[builtins.str] = None,
4211
4671
  major_version: typing.Optional[jsii.Number] = None,
4212
4672
  min_major_version: typing.Optional[jsii.Number] = None,
4673
+ next_version_command: typing.Optional[builtins.str] = None,
4213
4674
  npm_dist_tag: typing.Optional[builtins.str] = None,
4214
4675
  post_build_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
4215
4676
  prerelease: typing.Optional[builtins.str] = None,
@@ -4217,12 +4678,14 @@ class TypeScriptAppProject(
4217
4678
  publish_tasks: typing.Optional[builtins.bool] = None,
4218
4679
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
4219
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,
4220
4682
  release_every_commit: typing.Optional[builtins.bool] = None,
4221
4683
  release_failure_issue: typing.Optional[builtins.bool] = None,
4222
4684
  release_failure_issue_label: typing.Optional[builtins.str] = None,
4223
4685
  release_schedule: typing.Optional[builtins.str] = None,
4224
4686
  release_tag_prefix: typing.Optional[builtins.str] = None,
4225
4687
  release_trigger: typing.Optional[_ReleaseTrigger_e4dc221f] = None,
4688
+ release_workflow_env: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
4226
4689
  release_workflow_name: typing.Optional[builtins.str] = None,
4227
4690
  release_workflow_setup_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
4228
4691
  versionrc_options: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
@@ -4248,7 +4711,7 @@ class TypeScriptAppProject(
4248
4711
  :param docgen: (experimental) Docgen by Typedoc. Default: false
4249
4712
  :param docs_directory: (experimental) Docs directory. Default: "docs"
4250
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)
4251
- :param eslint: (experimental) Setup eslint. Default: true
4714
+ :param eslint: (experimental) Setup eslint. Default: - true, unless biome is enabled
4252
4715
  :param eslint_options: (experimental) Eslint options. Default: - opinionated default options
4253
4716
  :param libdir: (experimental) Typescript artifacts output directory. Default: "lib"
4254
4717
  :param projenrc_ts: (experimental) Use TypeScript for your projenrc file (``.projenrc.ts``). Default: false
@@ -4263,14 +4726,18 @@ class TypeScriptAppProject(
4263
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"
4264
4727
  :param default_release_branch: (experimental) The name of the main release branch. Default: "main"
4265
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
4266
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
4267
4734
  :param build_workflow: (experimental) Define a GitHub workflow for building PRs. Default: - true if not a subproject
4268
4735
  :param build_workflow_options: (experimental) Options for PR build workflow.
4269
4736
  :param build_workflow_triggers: (deprecated) Build workflow triggers. Default: "{ pullRequest: {}, workflowDispatch: {} }"
4270
4737
  :param bundler_options: (experimental) Options for ``Bundler``.
4271
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
4272
- :param code_cov: (experimental) Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v4 A secret is required for private repos. Configured with ``@codeCovTokenSecret``. Default: false
4273
- :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
4274
4741
  :param copyright_owner: (experimental) License copyright owner. Default: - defaults to the value of authorName or "" if ``authorName`` is undefined.
4275
4742
  :param copyright_period: (experimental) The copyright years to put in the LICENSE file. Default: - current year
4276
4743
  :param dependabot: (experimental) Use dependabot to handle dependency upgrades. Cannot be used in conjunction with ``depsUpgrade``. Default: false
@@ -4297,8 +4764,8 @@ class TypeScriptAppProject(
4297
4764
  :param release_to_npm: (experimental) Automatically release to npm when new versions are introduced. Default: false
4298
4765
  :param release_workflow: (deprecated) DEPRECATED: renamed to ``release``. Default: - true if not a subproject
4299
4766
  :param workflow_bootstrap_steps: (experimental) Workflow steps to use in order to bootstrap this repo. Default: "yarn install --frozen-lockfile && yarn projen"
4300
- :param workflow_git_identity: (experimental) The git identity to use in workflows. Default: - GitHub Actions
4301
- :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/*``.
4302
4769
  :param workflow_package_cache: (experimental) Enable Node.js package cache in GitHub workflows. Default: false
4303
4770
  :param auto_approve_options: (experimental) Enable and configure the 'auto approve' workflow. Default: - auto approve is disabled
4304
4771
  :param auto_merge: (experimental) Enable automatic merging on GitHub. Has no effect if ``github.mergify`` is set to false. Default: true
@@ -4327,6 +4794,7 @@ class TypeScriptAppProject(
4327
4794
  :param bugs_email: (experimental) The email address to which issues should be reported.
4328
4795
  :param bugs_url: (experimental) The url to your project's issue tracker.
4329
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"
4330
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
4331
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: []
4332
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
@@ -4336,27 +4804,30 @@ class TypeScriptAppProject(
4336
4804
  :param keywords: (experimental) Keywords to include in ``package.json``.
4337
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"
4338
4806
  :param licensed: (experimental) Indicates if a license should be added. Default: true
4339
- :param max_node_version: (experimental) Minimum node.js version to require via ``engines`` (inclusive). Default: - no max
4340
- :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
4341
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``.
4342
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
4343
4811
  :param npm_registry: (deprecated) The host name of the npm registry to publish to. Cannot be set together with ``npmRegistryUrl``.
4344
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"
4345
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
4346
4815
  :param package_manager: (experimental) The Node Package Manager used to execute scripts. Default: NodePackageManager.YARN_CLASSIC
4347
4816
  :param package_name: (experimental) The "name" in package.json. Default: - defaults to project name
4348
4817
  :param peer_dependency_options: (experimental) Options for ``peerDeps``.
4349
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: []
4350
- :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"
4351
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
4352
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.
4353
4822
  :param scoped_packages_options: (experimental) Options for privately hosted scoped packages. Default: - fetch all scoped packages from the public npm registry
4354
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: {}
4355
4824
  :param stability: (experimental) Package's Stability.
4356
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"
4357
4827
  :param jsii_release_version: (experimental) Version requirement of ``publib`` which is used to publish modules to npm. Default: "latest"
4358
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.
4359
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.
4360
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"
4361
4832
  :param post_build_steps: (experimental) Steps to execute after build as part of the release workflow. Default: []
4362
4833
  :param prerelease: (experimental) Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). Default: - normal semantic versions
@@ -4364,15 +4835,17 @@ class TypeScriptAppProject(
4364
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
4365
4836
  :param releasable_commits: (experimental) Find commits that should be considered releasable Used to decide if a release is required. Default: ReleasableCommits.everyCommit()
4366
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
4367
4839
  :param release_every_commit: (deprecated) Automatically release new versions every commit to one of branches in ``releaseBranches``. Default: true
4368
4840
  :param release_failure_issue: (experimental) Create a github issue on every failed publishing task. Default: false
4369
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"
4370
4842
  :param release_schedule: (deprecated) CRON schedule to trigger new releases. Default: - no scheduled releases
4371
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"
4372
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: {}
4373
4846
  :param release_workflow_name: (experimental) The name of the default release workflow. Default: "release"
4374
4847
  :param release_workflow_setup_steps: (experimental) A set of workflow steps to execute in order to setup the workflow container.
4375
- :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
4376
4849
  :param workflow_container_image: (experimental) Container image to use for GitHub workflows. Default: - default image
4377
4850
  :param workflow_runs_on: (experimental) Github Runner selection labels. Default: ["ubuntu-latest"]
4378
4851
  :param workflow_runs_on_group: (experimental) Github Runner Group selection options.
@@ -4412,7 +4885,11 @@ class TypeScriptAppProject(
4412
4885
  typescript_version=typescript_version,
4413
4886
  default_release_branch=default_release_branch,
4414
4887
  artifacts_directory=artifacts_directory,
4888
+ audit_deps=audit_deps,
4889
+ audit_deps_options=audit_deps_options,
4415
4890
  auto_approve_upgrades=auto_approve_upgrades,
4891
+ biome=biome,
4892
+ biome_options=biome_options,
4416
4893
  build_workflow=build_workflow,
4417
4894
  build_workflow_options=build_workflow_options,
4418
4895
  build_workflow_triggers=build_workflow_triggers,
@@ -4476,6 +4953,7 @@ class TypeScriptAppProject(
4476
4953
  bugs_email=bugs_email,
4477
4954
  bugs_url=bugs_url,
4478
4955
  bundled_deps=bundled_deps,
4956
+ bun_version=bun_version,
4479
4957
  code_artifact_options=code_artifact_options,
4480
4958
  deps=deps,
4481
4959
  description=description,
@@ -4492,6 +4970,7 @@ class TypeScriptAppProject(
4492
4970
  npm_registry=npm_registry,
4493
4971
  npm_registry_url=npm_registry_url,
4494
4972
  npm_token_secret=npm_token_secret,
4973
+ npm_trusted_publishing=npm_trusted_publishing,
4495
4974
  package_manager=package_manager,
4496
4975
  package_name=package_name,
4497
4976
  peer_dependency_options=peer_dependency_options,
@@ -4503,9 +4982,11 @@ class TypeScriptAppProject(
4503
4982
  scripts=scripts,
4504
4983
  stability=stability,
4505
4984
  yarn_berry_options=yarn_berry_options,
4985
+ bump_package=bump_package,
4506
4986
  jsii_release_version=jsii_release_version,
4507
4987
  major_version=major_version,
4508
4988
  min_major_version=min_major_version,
4989
+ next_version_command=next_version_command,
4509
4990
  npm_dist_tag=npm_dist_tag,
4510
4991
  post_build_steps=post_build_steps,
4511
4992
  prerelease=prerelease,
@@ -4513,12 +4994,14 @@ class TypeScriptAppProject(
4513
4994
  publish_tasks=publish_tasks,
4514
4995
  releasable_commits=releasable_commits,
4515
4996
  release_branches=release_branches,
4997
+ release_environment=release_environment,
4516
4998
  release_every_commit=release_every_commit,
4517
4999
  release_failure_issue=release_failure_issue,
4518
5000
  release_failure_issue_label=release_failure_issue_label,
4519
5001
  release_schedule=release_schedule,
4520
5002
  release_tag_prefix=release_tag_prefix,
4521
5003
  release_trigger=release_trigger,
5004
+ release_workflow_env=release_workflow_env,
4522
5005
  release_workflow_name=release_workflow_name,
4523
5006
  release_workflow_setup_steps=release_workflow_setup_steps,
4524
5007
  versionrc_options=versionrc_options,
@@ -4576,7 +5059,11 @@ class TypeScriptLibraryProject(
4576
5059
  typescript_version: typing.Optional[builtins.str] = None,
4577
5060
  default_release_branch: builtins.str,
4578
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,
4579
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,
4580
5067
  build_workflow: typing.Optional[builtins.bool] = None,
4581
5068
  build_workflow_options: typing.Optional[typing.Union[_BuildWorkflowOptions_b756f97f, typing.Dict[builtins.str, typing.Any]]] = None,
4582
5069
  build_workflow_triggers: typing.Optional[typing.Union[_Triggers_e9ae7617, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -4640,6 +5127,7 @@ class TypeScriptLibraryProject(
4640
5127
  bugs_email: typing.Optional[builtins.str] = None,
4641
5128
  bugs_url: typing.Optional[builtins.str] = None,
4642
5129
  bundled_deps: typing.Optional[typing.Sequence[builtins.str]] = None,
5130
+ bun_version: typing.Optional[builtins.str] = None,
4643
5131
  code_artifact_options: typing.Optional[typing.Union[_CodeArtifactOptions_e4782b3e, typing.Dict[builtins.str, typing.Any]]] = None,
4644
5132
  deps: typing.Optional[typing.Sequence[builtins.str]] = None,
4645
5133
  description: typing.Optional[builtins.str] = None,
@@ -4656,6 +5144,7 @@ class TypeScriptLibraryProject(
4656
5144
  npm_registry: typing.Optional[builtins.str] = None,
4657
5145
  npm_registry_url: typing.Optional[builtins.str] = None,
4658
5146
  npm_token_secret: typing.Optional[builtins.str] = None,
5147
+ npm_trusted_publishing: typing.Optional[builtins.bool] = None,
4659
5148
  package_manager: typing.Optional[_NodePackageManager_3eb53bf6] = None,
4660
5149
  package_name: typing.Optional[builtins.str] = None,
4661
5150
  peer_dependency_options: typing.Optional[typing.Union[_PeerDependencyOptions_99d7d493, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -4667,9 +5156,11 @@ class TypeScriptLibraryProject(
4667
5156
  scripts: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
4668
5157
  stability: typing.Optional[builtins.str] = None,
4669
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,
4670
5160
  jsii_release_version: typing.Optional[builtins.str] = None,
4671
5161
  major_version: typing.Optional[jsii.Number] = None,
4672
5162
  min_major_version: typing.Optional[jsii.Number] = None,
5163
+ next_version_command: typing.Optional[builtins.str] = None,
4673
5164
  npm_dist_tag: typing.Optional[builtins.str] = None,
4674
5165
  post_build_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
4675
5166
  prerelease: typing.Optional[builtins.str] = None,
@@ -4677,12 +5168,14 @@ class TypeScriptLibraryProject(
4677
5168
  publish_tasks: typing.Optional[builtins.bool] = None,
4678
5169
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
4679
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,
4680
5172
  release_every_commit: typing.Optional[builtins.bool] = None,
4681
5173
  release_failure_issue: typing.Optional[builtins.bool] = None,
4682
5174
  release_failure_issue_label: typing.Optional[builtins.str] = None,
4683
5175
  release_schedule: typing.Optional[builtins.str] = None,
4684
5176
  release_tag_prefix: typing.Optional[builtins.str] = None,
4685
5177
  release_trigger: typing.Optional[_ReleaseTrigger_e4dc221f] = None,
5178
+ release_workflow_env: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
4686
5179
  release_workflow_name: typing.Optional[builtins.str] = None,
4687
5180
  release_workflow_setup_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
4688
5181
  versionrc_options: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
@@ -4708,7 +5201,7 @@ class TypeScriptLibraryProject(
4708
5201
  :param docgen: (experimental) Docgen by Typedoc. Default: false
4709
5202
  :param docs_directory: (experimental) Docs directory. Default: "docs"
4710
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)
4711
- :param eslint: (experimental) Setup eslint. Default: true
5204
+ :param eslint: (experimental) Setup eslint. Default: - true, unless biome is enabled
4712
5205
  :param eslint_options: (experimental) Eslint options. Default: - opinionated default options
4713
5206
  :param libdir: (experimental) Typescript artifacts output directory. Default: "lib"
4714
5207
  :param projenrc_ts: (experimental) Use TypeScript for your projenrc file (``.projenrc.ts``). Default: false
@@ -4723,14 +5216,18 @@ class TypeScriptLibraryProject(
4723
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"
4724
5217
  :param default_release_branch: (experimental) The name of the main release branch. Default: "main"
4725
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
4726
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
4727
5224
  :param build_workflow: (experimental) Define a GitHub workflow for building PRs. Default: - true if not a subproject
4728
5225
  :param build_workflow_options: (experimental) Options for PR build workflow.
4729
5226
  :param build_workflow_triggers: (deprecated) Build workflow triggers. Default: "{ pullRequest: {}, workflowDispatch: {} }"
4730
5227
  :param bundler_options: (experimental) Options for ``Bundler``.
4731
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
4732
- :param code_cov: (experimental) Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v4 A secret is required for private repos. Configured with ``@codeCovTokenSecret``. Default: false
4733
- :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
4734
5231
  :param copyright_owner: (experimental) License copyright owner. Default: - defaults to the value of authorName or "" if ``authorName`` is undefined.
4735
5232
  :param copyright_period: (experimental) The copyright years to put in the LICENSE file. Default: - current year
4736
5233
  :param dependabot: (experimental) Use dependabot to handle dependency upgrades. Cannot be used in conjunction with ``depsUpgrade``. Default: false
@@ -4757,8 +5254,8 @@ class TypeScriptLibraryProject(
4757
5254
  :param release_to_npm: (experimental) Automatically release to npm when new versions are introduced. Default: false
4758
5255
  :param release_workflow: (deprecated) DEPRECATED: renamed to ``release``. Default: - true if not a subproject
4759
5256
  :param workflow_bootstrap_steps: (experimental) Workflow steps to use in order to bootstrap this repo. Default: "yarn install --frozen-lockfile && yarn projen"
4760
- :param workflow_git_identity: (experimental) The git identity to use in workflows. Default: - GitHub Actions
4761
- :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/*``.
4762
5259
  :param workflow_package_cache: (experimental) Enable Node.js package cache in GitHub workflows. Default: false
4763
5260
  :param auto_approve_options: (experimental) Enable and configure the 'auto approve' workflow. Default: - auto approve is disabled
4764
5261
  :param auto_merge: (experimental) Enable automatic merging on GitHub. Has no effect if ``github.mergify`` is set to false. Default: true
@@ -4787,6 +5284,7 @@ class TypeScriptLibraryProject(
4787
5284
  :param bugs_email: (experimental) The email address to which issues should be reported.
4788
5285
  :param bugs_url: (experimental) The url to your project's issue tracker.
4789
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"
4790
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
4791
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: []
4792
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
@@ -4796,27 +5294,30 @@ class TypeScriptLibraryProject(
4796
5294
  :param keywords: (experimental) Keywords to include in ``package.json``.
4797
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"
4798
5296
  :param licensed: (experimental) Indicates if a license should be added. Default: true
4799
- :param max_node_version: (experimental) Minimum node.js version to require via ``engines`` (inclusive). Default: - no max
4800
- :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
4801
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``.
4802
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
4803
5301
  :param npm_registry: (deprecated) The host name of the npm registry to publish to. Cannot be set together with ``npmRegistryUrl``.
4804
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"
4805
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
4806
5305
  :param package_manager: (experimental) The Node Package Manager used to execute scripts. Default: NodePackageManager.YARN_CLASSIC
4807
5306
  :param package_name: (experimental) The "name" in package.json. Default: - defaults to project name
4808
5307
  :param peer_dependency_options: (experimental) Options for ``peerDeps``.
4809
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: []
4810
- :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"
4811
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
4812
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.
4813
5312
  :param scoped_packages_options: (experimental) Options for privately hosted scoped packages. Default: - fetch all scoped packages from the public npm registry
4814
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: {}
4815
5314
  :param stability: (experimental) Package's Stability.
4816
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"
4817
5317
  :param jsii_release_version: (experimental) Version requirement of ``publib`` which is used to publish modules to npm. Default: "latest"
4818
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.
4819
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.
4820
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"
4821
5322
  :param post_build_steps: (experimental) Steps to execute after build as part of the release workflow. Default: []
4822
5323
  :param prerelease: (experimental) Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). Default: - normal semantic versions
@@ -4824,15 +5325,17 @@ class TypeScriptLibraryProject(
4824
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
4825
5326
  :param releasable_commits: (experimental) Find commits that should be considered releasable Used to decide if a release is required. Default: ReleasableCommits.everyCommit()
4826
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
4827
5329
  :param release_every_commit: (deprecated) Automatically release new versions every commit to one of branches in ``releaseBranches``. Default: true
4828
5330
  :param release_failure_issue: (experimental) Create a github issue on every failed publishing task. Default: false
4829
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"
4830
5332
  :param release_schedule: (deprecated) CRON schedule to trigger new releases. Default: - no scheduled releases
4831
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"
4832
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: {}
4833
5336
  :param release_workflow_name: (experimental) The name of the default release workflow. Default: "release"
4834
5337
  :param release_workflow_setup_steps: (experimental) A set of workflow steps to execute in order to setup the workflow container.
4835
- :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
4836
5339
  :param workflow_container_image: (experimental) Container image to use for GitHub workflows. Default: - default image
4837
5340
  :param workflow_runs_on: (experimental) Github Runner selection labels. Default: ["ubuntu-latest"]
4838
5341
  :param workflow_runs_on_group: (experimental) Github Runner Group selection options.
@@ -4872,7 +5375,11 @@ class TypeScriptLibraryProject(
4872
5375
  typescript_version=typescript_version,
4873
5376
  default_release_branch=default_release_branch,
4874
5377
  artifacts_directory=artifacts_directory,
5378
+ audit_deps=audit_deps,
5379
+ audit_deps_options=audit_deps_options,
4875
5380
  auto_approve_upgrades=auto_approve_upgrades,
5381
+ biome=biome,
5382
+ biome_options=biome_options,
4876
5383
  build_workflow=build_workflow,
4877
5384
  build_workflow_options=build_workflow_options,
4878
5385
  build_workflow_triggers=build_workflow_triggers,
@@ -4936,6 +5443,7 @@ class TypeScriptLibraryProject(
4936
5443
  bugs_email=bugs_email,
4937
5444
  bugs_url=bugs_url,
4938
5445
  bundled_deps=bundled_deps,
5446
+ bun_version=bun_version,
4939
5447
  code_artifact_options=code_artifact_options,
4940
5448
  deps=deps,
4941
5449
  description=description,
@@ -4952,6 +5460,7 @@ class TypeScriptLibraryProject(
4952
5460
  npm_registry=npm_registry,
4953
5461
  npm_registry_url=npm_registry_url,
4954
5462
  npm_token_secret=npm_token_secret,
5463
+ npm_trusted_publishing=npm_trusted_publishing,
4955
5464
  package_manager=package_manager,
4956
5465
  package_name=package_name,
4957
5466
  peer_dependency_options=peer_dependency_options,
@@ -4963,9 +5472,11 @@ class TypeScriptLibraryProject(
4963
5472
  scripts=scripts,
4964
5473
  stability=stability,
4965
5474
  yarn_berry_options=yarn_berry_options,
5475
+ bump_package=bump_package,
4966
5476
  jsii_release_version=jsii_release_version,
4967
5477
  major_version=major_version,
4968
5478
  min_major_version=min_major_version,
5479
+ next_version_command=next_version_command,
4969
5480
  npm_dist_tag=npm_dist_tag,
4970
5481
  post_build_steps=post_build_steps,
4971
5482
  prerelease=prerelease,
@@ -4973,12 +5484,14 @@ class TypeScriptLibraryProject(
4973
5484
  publish_tasks=publish_tasks,
4974
5485
  releasable_commits=releasable_commits,
4975
5486
  release_branches=release_branches,
5487
+ release_environment=release_environment,
4976
5488
  release_every_commit=release_every_commit,
4977
5489
  release_failure_issue=release_failure_issue,
4978
5490
  release_failure_issue_label=release_failure_issue_label,
4979
5491
  release_schedule=release_schedule,
4980
5492
  release_tag_prefix=release_tag_prefix,
4981
5493
  release_trigger=release_trigger,
5494
+ release_workflow_env=release_workflow_env,
4982
5495
  release_workflow_name=release_workflow_name,
4983
5496
  release_workflow_setup_steps=release_workflow_setup_steps,
4984
5497
  versionrc_options=versionrc_options,
@@ -5045,6 +5558,7 @@ class TypeScriptLibraryProject(
5045
5558
  "bugs_email": "bugsEmail",
5046
5559
  "bugs_url": "bugsUrl",
5047
5560
  "bundled_deps": "bundledDeps",
5561
+ "bun_version": "bunVersion",
5048
5562
  "code_artifact_options": "codeArtifactOptions",
5049
5563
  "deps": "deps",
5050
5564
  "description": "description",
@@ -5061,6 +5575,7 @@ class TypeScriptLibraryProject(
5061
5575
  "npm_registry": "npmRegistry",
5062
5576
  "npm_registry_url": "npmRegistryUrl",
5063
5577
  "npm_token_secret": "npmTokenSecret",
5578
+ "npm_trusted_publishing": "npmTrustedPublishing",
5064
5579
  "package_manager": "packageManager",
5065
5580
  "package_name": "packageName",
5066
5581
  "peer_dependency_options": "peerDependencyOptions",
@@ -5072,9 +5587,11 @@ class TypeScriptLibraryProject(
5072
5587
  "scripts": "scripts",
5073
5588
  "stability": "stability",
5074
5589
  "yarn_berry_options": "yarnBerryOptions",
5590
+ "bump_package": "bumpPackage",
5075
5591
  "jsii_release_version": "jsiiReleaseVersion",
5076
5592
  "major_version": "majorVersion",
5077
5593
  "min_major_version": "minMajorVersion",
5594
+ "next_version_command": "nextVersionCommand",
5078
5595
  "npm_dist_tag": "npmDistTag",
5079
5596
  "post_build_steps": "postBuildSteps",
5080
5597
  "prerelease": "prerelease",
@@ -5082,12 +5599,14 @@ class TypeScriptLibraryProject(
5082
5599
  "publish_tasks": "publishTasks",
5083
5600
  "releasable_commits": "releasableCommits",
5084
5601
  "release_branches": "releaseBranches",
5602
+ "release_environment": "releaseEnvironment",
5085
5603
  "release_every_commit": "releaseEveryCommit",
5086
5604
  "release_failure_issue": "releaseFailureIssue",
5087
5605
  "release_failure_issue_label": "releaseFailureIssueLabel",
5088
5606
  "release_schedule": "releaseSchedule",
5089
5607
  "release_tag_prefix": "releaseTagPrefix",
5090
5608
  "release_trigger": "releaseTrigger",
5609
+ "release_workflow_env": "releaseWorkflowEnv",
5091
5610
  "release_workflow_name": "releaseWorkflowName",
5092
5611
  "release_workflow_setup_steps": "releaseWorkflowSetupSteps",
5093
5612
  "versionrc_options": "versionrcOptions",
@@ -5096,7 +5615,11 @@ class TypeScriptLibraryProject(
5096
5615
  "workflow_runs_on_group": "workflowRunsOnGroup",
5097
5616
  "default_release_branch": "defaultReleaseBranch",
5098
5617
  "artifacts_directory": "artifactsDirectory",
5618
+ "audit_deps": "auditDeps",
5619
+ "audit_deps_options": "auditDepsOptions",
5099
5620
  "auto_approve_upgrades": "autoApproveUpgrades",
5621
+ "biome": "biome",
5622
+ "biome_options": "biomeOptions",
5100
5623
  "build_workflow": "buildWorkflow",
5101
5624
  "build_workflow_options": "buildWorkflowOptions",
5102
5625
  "build_workflow_triggers": "buildWorkflowTriggers",
@@ -5196,6 +5719,7 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5196
5719
  bugs_email: typing.Optional[builtins.str] = None,
5197
5720
  bugs_url: typing.Optional[builtins.str] = None,
5198
5721
  bundled_deps: typing.Optional[typing.Sequence[builtins.str]] = None,
5722
+ bun_version: typing.Optional[builtins.str] = None,
5199
5723
  code_artifact_options: typing.Optional[typing.Union[_CodeArtifactOptions_e4782b3e, typing.Dict[builtins.str, typing.Any]]] = None,
5200
5724
  deps: typing.Optional[typing.Sequence[builtins.str]] = None,
5201
5725
  description: typing.Optional[builtins.str] = None,
@@ -5212,6 +5736,7 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5212
5736
  npm_registry: typing.Optional[builtins.str] = None,
5213
5737
  npm_registry_url: typing.Optional[builtins.str] = None,
5214
5738
  npm_token_secret: typing.Optional[builtins.str] = None,
5739
+ npm_trusted_publishing: typing.Optional[builtins.bool] = None,
5215
5740
  package_manager: typing.Optional[_NodePackageManager_3eb53bf6] = None,
5216
5741
  package_name: typing.Optional[builtins.str] = None,
5217
5742
  peer_dependency_options: typing.Optional[typing.Union[_PeerDependencyOptions_99d7d493, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -5223,9 +5748,11 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5223
5748
  scripts: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
5224
5749
  stability: typing.Optional[builtins.str] = None,
5225
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,
5226
5752
  jsii_release_version: typing.Optional[builtins.str] = None,
5227
5753
  major_version: typing.Optional[jsii.Number] = None,
5228
5754
  min_major_version: typing.Optional[jsii.Number] = None,
5755
+ next_version_command: typing.Optional[builtins.str] = None,
5229
5756
  npm_dist_tag: typing.Optional[builtins.str] = None,
5230
5757
  post_build_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5231
5758
  prerelease: typing.Optional[builtins.str] = None,
@@ -5233,12 +5760,14 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5233
5760
  publish_tasks: typing.Optional[builtins.bool] = None,
5234
5761
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
5235
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,
5236
5764
  release_every_commit: typing.Optional[builtins.bool] = None,
5237
5765
  release_failure_issue: typing.Optional[builtins.bool] = None,
5238
5766
  release_failure_issue_label: typing.Optional[builtins.str] = None,
5239
5767
  release_schedule: typing.Optional[builtins.str] = None,
5240
5768
  release_tag_prefix: typing.Optional[builtins.str] = None,
5241
5769
  release_trigger: typing.Optional[_ReleaseTrigger_e4dc221f] = None,
5770
+ release_workflow_env: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
5242
5771
  release_workflow_name: typing.Optional[builtins.str] = None,
5243
5772
  release_workflow_setup_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5244
5773
  versionrc_options: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
@@ -5247,7 +5776,11 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5247
5776
  workflow_runs_on_group: typing.Optional[typing.Union[_GroupRunnerOptions_148c59c1, typing.Dict[builtins.str, typing.Any]]] = None,
5248
5777
  default_release_branch: builtins.str,
5249
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,
5250
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,
5251
5784
  build_workflow: typing.Optional[builtins.bool] = None,
5252
5785
  build_workflow_options: typing.Optional[typing.Union[_BuildWorkflowOptions_b756f97f, typing.Dict[builtins.str, typing.Any]]] = None,
5253
5786
  build_workflow_triggers: typing.Optional[typing.Union[_Triggers_e9ae7617, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -5343,6 +5876,7 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5343
5876
  :param bugs_email: (experimental) The email address to which issues should be reported.
5344
5877
  :param bugs_url: (experimental) The url to your project's issue tracker.
5345
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"
5346
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
5347
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: []
5348
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
@@ -5352,27 +5886,30 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5352
5886
  :param keywords: (experimental) Keywords to include in ``package.json``.
5353
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"
5354
5888
  :param licensed: (experimental) Indicates if a license should be added. Default: true
5355
- :param max_node_version: (experimental) Minimum node.js version to require via ``engines`` (inclusive). Default: - no max
5356
- :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
5357
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``.
5358
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
5359
5893
  :param npm_registry: (deprecated) The host name of the npm registry to publish to. Cannot be set together with ``npmRegistryUrl``.
5360
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"
5361
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
5362
5897
  :param package_manager: (experimental) The Node Package Manager used to execute scripts. Default: NodePackageManager.YARN_CLASSIC
5363
5898
  :param package_name: (experimental) The "name" in package.json. Default: - defaults to project name
5364
5899
  :param peer_dependency_options: (experimental) Options for ``peerDeps``.
5365
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: []
5366
- :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"
5367
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
5368
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.
5369
5904
  :param scoped_packages_options: (experimental) Options for privately hosted scoped packages. Default: - fetch all scoped packages from the public npm registry
5370
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: {}
5371
5906
  :param stability: (experimental) Package's Stability.
5372
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"
5373
5909
  :param jsii_release_version: (experimental) Version requirement of ``publib`` which is used to publish modules to npm. Default: "latest"
5374
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.
5375
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.
5376
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"
5377
5914
  :param post_build_steps: (experimental) Steps to execute after build as part of the release workflow. Default: []
5378
5915
  :param prerelease: (experimental) Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). Default: - normal semantic versions
@@ -5380,28 +5917,34 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5380
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
5381
5918
  :param releasable_commits: (experimental) Find commits that should be considered releasable Used to decide if a release is required. Default: ReleasableCommits.everyCommit()
5382
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
5383
5921
  :param release_every_commit: (deprecated) Automatically release new versions every commit to one of branches in ``releaseBranches``. Default: true
5384
5922
  :param release_failure_issue: (experimental) Create a github issue on every failed publishing task. Default: false
5385
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"
5386
5924
  :param release_schedule: (deprecated) CRON schedule to trigger new releases. Default: - no scheduled releases
5387
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"
5388
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: {}
5389
5928
  :param release_workflow_name: (experimental) The name of the default release workflow. Default: "release"
5390
5929
  :param release_workflow_setup_steps: (experimental) A set of workflow steps to execute in order to setup the workflow container.
5391
- :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
5392
5931
  :param workflow_container_image: (experimental) Container image to use for GitHub workflows. Default: - default image
5393
5932
  :param workflow_runs_on: (experimental) Github Runner selection labels. Default: ["ubuntu-latest"]
5394
5933
  :param workflow_runs_on_group: (experimental) Github Runner Group selection options.
5395
5934
  :param default_release_branch: (experimental) The name of the main release branch. Default: "main"
5396
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
5397
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
5398
5941
  :param build_workflow: (experimental) Define a GitHub workflow for building PRs. Default: - true if not a subproject
5399
5942
  :param build_workflow_options: (experimental) Options for PR build workflow.
5400
5943
  :param build_workflow_triggers: (deprecated) Build workflow triggers. Default: "{ pullRequest: {}, workflowDispatch: {} }"
5401
5944
  :param bundler_options: (experimental) Options for ``Bundler``.
5402
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
5403
- :param code_cov: (experimental) Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v4 A secret is required for private repos. Configured with ``@codeCovTokenSecret``. Default: false
5404
- :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
5405
5948
  :param copyright_owner: (experimental) License copyright owner. Default: - defaults to the value of authorName or "" if ``authorName`` is undefined.
5406
5949
  :param copyright_period: (experimental) The copyright years to put in the LICENSE file. Default: - current year
5407
5950
  :param dependabot: (experimental) Use dependabot to handle dependency upgrades. Cannot be used in conjunction with ``depsUpgrade``. Default: false
@@ -5428,15 +5971,15 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5428
5971
  :param release_to_npm: (experimental) Automatically release to npm when new versions are introduced. Default: false
5429
5972
  :param release_workflow: (deprecated) DEPRECATED: renamed to ``release``. Default: - true if not a subproject
5430
5973
  :param workflow_bootstrap_steps: (experimental) Workflow steps to use in order to bootstrap this repo. Default: "yarn install --frozen-lockfile && yarn projen"
5431
- :param workflow_git_identity: (experimental) The git identity to use in workflows. Default: - GitHub Actions
5432
- :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/*``.
5433
5976
  :param workflow_package_cache: (experimental) Enable Node.js package cache in GitHub workflows. Default: false
5434
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
5435
5978
  :param disable_tsconfig_dev: (experimental) Do not generate a ``tsconfig.dev.json`` file. Default: false
5436
5979
  :param docgen: (experimental) Docgen by Typedoc. Default: false
5437
5980
  :param docs_directory: (experimental) Docs directory. Default: "docs"
5438
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)
5439
- :param eslint: (experimental) Setup eslint. Default: true
5982
+ :param eslint: (experimental) Setup eslint. Default: - true, unless biome is enabled
5440
5983
  :param eslint_options: (experimental) Eslint options. Default: - opinionated default options
5441
5984
  :param libdir: (experimental) Typescript artifacts output directory. Default: "lib"
5442
5985
  :param projenrc_ts: (experimental) Use TypeScript for your projenrc file (``.projenrc.ts``). Default: false
@@ -5484,6 +6027,10 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5484
6027
  yarn_berry_options = _YarnBerryOptions_b6942539(**yarn_berry_options)
5485
6028
  if isinstance(workflow_runs_on_group, dict):
5486
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)
5487
6034
  if isinstance(build_workflow_options, dict):
5488
6035
  build_workflow_options = _BuildWorkflowOptions_b756f97f(**build_workflow_options)
5489
6036
  if isinstance(build_workflow_triggers, dict):
@@ -5557,6 +6104,7 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5557
6104
  check_type(argname="argument bugs_email", value=bugs_email, expected_type=type_hints["bugs_email"])
5558
6105
  check_type(argname="argument bugs_url", value=bugs_url, expected_type=type_hints["bugs_url"])
5559
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"])
5560
6108
  check_type(argname="argument code_artifact_options", value=code_artifact_options, expected_type=type_hints["code_artifact_options"])
5561
6109
  check_type(argname="argument deps", value=deps, expected_type=type_hints["deps"])
5562
6110
  check_type(argname="argument description", value=description, expected_type=type_hints["description"])
@@ -5573,6 +6121,7 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5573
6121
  check_type(argname="argument npm_registry", value=npm_registry, expected_type=type_hints["npm_registry"])
5574
6122
  check_type(argname="argument npm_registry_url", value=npm_registry_url, expected_type=type_hints["npm_registry_url"])
5575
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"])
5576
6125
  check_type(argname="argument package_manager", value=package_manager, expected_type=type_hints["package_manager"])
5577
6126
  check_type(argname="argument package_name", value=package_name, expected_type=type_hints["package_name"])
5578
6127
  check_type(argname="argument peer_dependency_options", value=peer_dependency_options, expected_type=type_hints["peer_dependency_options"])
@@ -5584,9 +6133,11 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5584
6133
  check_type(argname="argument scripts", value=scripts, expected_type=type_hints["scripts"])
5585
6134
  check_type(argname="argument stability", value=stability, expected_type=type_hints["stability"])
5586
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"])
5587
6137
  check_type(argname="argument jsii_release_version", value=jsii_release_version, expected_type=type_hints["jsii_release_version"])
5588
6138
  check_type(argname="argument major_version", value=major_version, expected_type=type_hints["major_version"])
5589
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"])
5590
6141
  check_type(argname="argument npm_dist_tag", value=npm_dist_tag, expected_type=type_hints["npm_dist_tag"])
5591
6142
  check_type(argname="argument post_build_steps", value=post_build_steps, expected_type=type_hints["post_build_steps"])
5592
6143
  check_type(argname="argument prerelease", value=prerelease, expected_type=type_hints["prerelease"])
@@ -5594,12 +6145,14 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5594
6145
  check_type(argname="argument publish_tasks", value=publish_tasks, expected_type=type_hints["publish_tasks"])
5595
6146
  check_type(argname="argument releasable_commits", value=releasable_commits, expected_type=type_hints["releasable_commits"])
5596
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"])
5597
6149
  check_type(argname="argument release_every_commit", value=release_every_commit, expected_type=type_hints["release_every_commit"])
5598
6150
  check_type(argname="argument release_failure_issue", value=release_failure_issue, expected_type=type_hints["release_failure_issue"])
5599
6151
  check_type(argname="argument release_failure_issue_label", value=release_failure_issue_label, expected_type=type_hints["release_failure_issue_label"])
5600
6152
  check_type(argname="argument release_schedule", value=release_schedule, expected_type=type_hints["release_schedule"])
5601
6153
  check_type(argname="argument release_tag_prefix", value=release_tag_prefix, expected_type=type_hints["release_tag_prefix"])
5602
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"])
5603
6156
  check_type(argname="argument release_workflow_name", value=release_workflow_name, expected_type=type_hints["release_workflow_name"])
5604
6157
  check_type(argname="argument release_workflow_setup_steps", value=release_workflow_setup_steps, expected_type=type_hints["release_workflow_setup_steps"])
5605
6158
  check_type(argname="argument versionrc_options", value=versionrc_options, expected_type=type_hints["versionrc_options"])
@@ -5608,7 +6161,11 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5608
6161
  check_type(argname="argument workflow_runs_on_group", value=workflow_runs_on_group, expected_type=type_hints["workflow_runs_on_group"])
5609
6162
  check_type(argname="argument default_release_branch", value=default_release_branch, expected_type=type_hints["default_release_branch"])
5610
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"])
5611
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"])
5612
6169
  check_type(argname="argument build_workflow", value=build_workflow, expected_type=type_hints["build_workflow"])
5613
6170
  check_type(argname="argument build_workflow_options", value=build_workflow_options, expected_type=type_hints["build_workflow_options"])
5614
6171
  check_type(argname="argument build_workflow_triggers", value=build_workflow_triggers, expected_type=type_hints["build_workflow_triggers"])
@@ -5743,6 +6300,8 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5743
6300
  self._values["bugs_url"] = bugs_url
5744
6301
  if bundled_deps is not None:
5745
6302
  self._values["bundled_deps"] = bundled_deps
6303
+ if bun_version is not None:
6304
+ self._values["bun_version"] = bun_version
5746
6305
  if code_artifact_options is not None:
5747
6306
  self._values["code_artifact_options"] = code_artifact_options
5748
6307
  if deps is not None:
@@ -5775,6 +6334,8 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5775
6334
  self._values["npm_registry_url"] = npm_registry_url
5776
6335
  if npm_token_secret is not None:
5777
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
5778
6339
  if package_manager is not None:
5779
6340
  self._values["package_manager"] = package_manager
5780
6341
  if package_name is not None:
@@ -5797,12 +6358,16 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5797
6358
  self._values["stability"] = stability
5798
6359
  if yarn_berry_options is not None:
5799
6360
  self._values["yarn_berry_options"] = yarn_berry_options
6361
+ if bump_package is not None:
6362
+ self._values["bump_package"] = bump_package
5800
6363
  if jsii_release_version is not None:
5801
6364
  self._values["jsii_release_version"] = jsii_release_version
5802
6365
  if major_version is not None:
5803
6366
  self._values["major_version"] = major_version
5804
6367
  if min_major_version is not None:
5805
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
5806
6371
  if npm_dist_tag is not None:
5807
6372
  self._values["npm_dist_tag"] = npm_dist_tag
5808
6373
  if post_build_steps is not None:
@@ -5817,6 +6382,8 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5817
6382
  self._values["releasable_commits"] = releasable_commits
5818
6383
  if release_branches is not None:
5819
6384
  self._values["release_branches"] = release_branches
6385
+ if release_environment is not None:
6386
+ self._values["release_environment"] = release_environment
5820
6387
  if release_every_commit is not None:
5821
6388
  self._values["release_every_commit"] = release_every_commit
5822
6389
  if release_failure_issue is not None:
@@ -5829,6 +6396,8 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5829
6396
  self._values["release_tag_prefix"] = release_tag_prefix
5830
6397
  if release_trigger is not None:
5831
6398
  self._values["release_trigger"] = release_trigger
6399
+ if release_workflow_env is not None:
6400
+ self._values["release_workflow_env"] = release_workflow_env
5832
6401
  if release_workflow_name is not None:
5833
6402
  self._values["release_workflow_name"] = release_workflow_name
5834
6403
  if release_workflow_setup_steps is not None:
@@ -5843,8 +6412,16 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
5843
6412
  self._values["workflow_runs_on_group"] = workflow_runs_on_group
5844
6413
  if artifacts_directory is not None:
5845
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
5846
6419
  if auto_approve_upgrades is not None:
5847
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
5848
6425
  if build_workflow is not None:
5849
6426
  self._values["build_workflow"] = build_workflow
5850
6427
  if build_workflow_options is not None:
@@ -6418,6 +6995,17 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
6418
6995
  result = self._values.get("bundled_deps")
6419
6996
  return typing.cast(typing.Optional[typing.List[builtins.str]], result)
6420
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
+
6421
7009
  @builtins.property
6422
7010
  def code_artifact_options(self) -> typing.Optional[_CodeArtifactOptions_e4782b3e]:
6423
7011
  '''(experimental) Options for npm packages using AWS CodeArtifact.
@@ -6552,9 +7140,15 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
6552
7140
 
6553
7141
  @builtins.property
6554
7142
  def max_node_version(self) -> typing.Optional[builtins.str]:
6555
- '''(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.
6556
7144
 
6557
- :default: - no max
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.
7150
+
7151
+ :default: - no maximum version is enforced
6558
7152
 
6559
7153
  :stability: experimental
6560
7154
  '''
@@ -6563,9 +7157,19 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
6563
7157
 
6564
7158
  @builtins.property
6565
7159
  def min_node_version(self) -> typing.Optional[builtins.str]:
6566
- '''(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.
7161
+
7162
+ The value indicates that the package is incompatible with any older versions of node.
7163
+ This requirement is enforced via the engines field.
6567
7164
 
6568
- :default: - no "engines" specified
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
6569
7173
 
6570
7174
  :stability: experimental
6571
7175
  '''
@@ -6642,6 +7246,17 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
6642
7246
  result = self._values.get("npm_token_secret")
6643
7247
  return typing.cast(typing.Optional[builtins.str], result)
6644
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
+
6645
7260
  @builtins.property
6646
7261
  def package_manager(self) -> typing.Optional[_NodePackageManager_3eb53bf6]:
6647
7262
  '''(experimental) The Node Package Manager used to execute scripts.
@@ -6705,7 +7320,7 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
6705
7320
  def pnpm_version(self) -> typing.Optional[builtins.str]:
6706
7321
  '''(experimental) The version of PNPM to use if using PNPM as a package manager.
6707
7322
 
6708
- :default: "7"
7323
+ :default: "9"
6709
7324
 
6710
7325
  :stability: experimental
6711
7326
  '''
@@ -6782,6 +7397,19 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
6782
7397
  result = self._values.get("yarn_berry_options")
6783
7398
  return typing.cast(typing.Optional[_YarnBerryOptions_b6942539], result)
6784
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
+
6785
7413
  @builtins.property
6786
7414
  def jsii_release_version(self) -> typing.Optional[builtins.str]:
6787
7415
  '''(experimental) Version requirement of ``publib`` which is used to publish modules to npm.
@@ -6823,6 +7451,36 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
6823
7451
  result = self._values.get("min_major_version")
6824
7452
  return typing.cast(typing.Optional[jsii.Number], result)
6825
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
+
6826
7484
  @builtins.property
6827
7485
  def npm_dist_tag(self) -> typing.Optional[builtins.str]:
6828
7486
  '''(experimental) The npmDistTag to use when publishing from the default branch.
@@ -6918,6 +7576,23 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
6918
7576
  result = self._values.get("release_branches")
6919
7577
  return typing.cast(typing.Optional[typing.Mapping[builtins.str, _BranchOptions_13663d08]], result)
6920
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
+
6921
7596
  @builtins.property
6922
7597
  def release_every_commit(self) -> typing.Optional[builtins.bool]:
6923
7598
  '''(deprecated) Automatically release new versions every commit to one of branches in ``releaseBranches``.
@@ -6995,6 +7670,19 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
6995
7670
  result = self._values.get("release_trigger")
6996
7671
  return typing.cast(typing.Optional[_ReleaseTrigger_e4dc221f], result)
6997
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
+
6998
7686
  @builtins.property
6999
7687
  def release_workflow_name(self) -> typing.Optional[builtins.str]:
7000
7688
  '''(experimental) The name of the default release workflow.
@@ -7021,7 +7709,7 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
7021
7709
  def versionrc_options(
7022
7710
  self,
7023
7711
  ) -> typing.Optional[typing.Mapping[builtins.str, typing.Any]]:
7024
- '''(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.
7025
7713
 
7026
7714
  Given values either append to default configuration or overwrite values in it.
7027
7715
 
@@ -7090,6 +7778,32 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
7090
7778
  result = self._values.get("artifacts_directory")
7091
7779
  return typing.cast(typing.Optional[builtins.str], result)
7092
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
+
7093
7807
  @builtins.property
7094
7808
  def auto_approve_upgrades(self) -> typing.Optional[builtins.bool]:
7095
7809
  '''(experimental) Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued).
@@ -7103,6 +7817,28 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
7103
7817
  result = self._values.get("auto_approve_upgrades")
7104
7818
  return typing.cast(typing.Optional[builtins.bool], result)
7105
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
+
7106
7842
  @builtins.property
7107
7843
  def build_workflow(self) -> typing.Optional[builtins.bool]:
7108
7844
  '''(experimental) Define a GitHub workflow for building PRs.
@@ -7160,7 +7896,7 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
7160
7896
 
7161
7897
  @builtins.property
7162
7898
  def code_cov(self) -> typing.Optional[builtins.bool]:
7163
- '''(experimental) Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v4 A secret is required for private repos. Configured with ``@codeCovTokenSecret``.
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``.
7164
7900
 
7165
7901
  :default: false
7166
7902
 
@@ -7171,9 +7907,9 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
7171
7907
 
7172
7908
  @builtins.property
7173
7909
  def code_cov_token_secret(self) -> typing.Optional[builtins.str]:
7174
- '''(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.
7175
7911
 
7176
- :default: - if this option is not specified, only public repositories are supported
7912
+ :default: - OIDC auth is used
7177
7913
 
7178
7914
  :stability: experimental
7179
7915
  '''
@@ -7486,7 +8222,7 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
7486
8222
  def workflow_git_identity(self) -> typing.Optional[_GitIdentity_6effc3de]:
7487
8223
  '''(experimental) The git identity to use in workflows.
7488
8224
 
7489
- :default: - GitHub Actions
8225
+ :default: - default GitHub Actions user
7490
8226
 
7491
8227
  :stability: experimental
7492
8228
  '''
@@ -7495,9 +8231,11 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
7495
8231
 
7496
8232
  @builtins.property
7497
8233
  def workflow_node_version(self) -> typing.Optional[builtins.str]:
7498
- '''(experimental) The node version to use in GitHub workflows.
8234
+ '''(experimental) The node version used in GitHub Actions workflows.
7499
8235
 
7500
- :default: - same as ``minNodeVersion``
8236
+ Always use this option if your GitHub Actions workflows require a specific to run.
8237
+
8238
+ :default: - ``minNodeVersion`` if set, otherwise ``lts/*``.
7501
8239
 
7502
8240
  :stability: experimental
7503
8241
  '''
@@ -7574,7 +8312,7 @@ class TypeScriptLibraryProjectOptions(TypeScriptProjectOptions):
7574
8312
  def eslint(self) -> typing.Optional[builtins.bool]:
7575
8313
  '''(experimental) Setup eslint.
7576
8314
 
7577
- :default: true
8315
+ :default: - true, unless biome is enabled
7578
8316
 
7579
8317
  :stability: experimental
7580
8318
  '''
@@ -7875,6 +8613,7 @@ def _typecheckingstub__a914f27f5d915b07b8847d407b03b08cab2aad7b213973084a9026526
7875
8613
  bugs_email: typing.Optional[builtins.str] = None,
7876
8614
  bugs_url: typing.Optional[builtins.str] = None,
7877
8615
  bundled_deps: typing.Optional[typing.Sequence[builtins.str]] = None,
8616
+ bun_version: typing.Optional[builtins.str] = None,
7878
8617
  code_artifact_options: typing.Optional[typing.Union[_CodeArtifactOptions_e4782b3e, typing.Dict[builtins.str, typing.Any]]] = None,
7879
8618
  deps: typing.Optional[typing.Sequence[builtins.str]] = None,
7880
8619
  description: typing.Optional[builtins.str] = None,
@@ -7891,6 +8630,7 @@ def _typecheckingstub__a914f27f5d915b07b8847d407b03b08cab2aad7b213973084a9026526
7891
8630
  npm_registry: typing.Optional[builtins.str] = None,
7892
8631
  npm_registry_url: typing.Optional[builtins.str] = None,
7893
8632
  npm_token_secret: typing.Optional[builtins.str] = None,
8633
+ npm_trusted_publishing: typing.Optional[builtins.bool] = None,
7894
8634
  package_manager: typing.Optional[_NodePackageManager_3eb53bf6] = None,
7895
8635
  package_name: typing.Optional[builtins.str] = None,
7896
8636
  peer_dependency_options: typing.Optional[typing.Union[_PeerDependencyOptions_99d7d493, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -7902,9 +8642,11 @@ def _typecheckingstub__a914f27f5d915b07b8847d407b03b08cab2aad7b213973084a9026526
7902
8642
  scripts: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
7903
8643
  stability: typing.Optional[builtins.str] = None,
7904
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,
7905
8646
  jsii_release_version: typing.Optional[builtins.str] = None,
7906
8647
  major_version: typing.Optional[jsii.Number] = None,
7907
8648
  min_major_version: typing.Optional[jsii.Number] = None,
8649
+ next_version_command: typing.Optional[builtins.str] = None,
7908
8650
  npm_dist_tag: typing.Optional[builtins.str] = None,
7909
8651
  post_build_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
7910
8652
  prerelease: typing.Optional[builtins.str] = None,
@@ -7912,12 +8654,14 @@ def _typecheckingstub__a914f27f5d915b07b8847d407b03b08cab2aad7b213973084a9026526
7912
8654
  publish_tasks: typing.Optional[builtins.bool] = None,
7913
8655
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
7914
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,
7915
8658
  release_every_commit: typing.Optional[builtins.bool] = None,
7916
8659
  release_failure_issue: typing.Optional[builtins.bool] = None,
7917
8660
  release_failure_issue_label: typing.Optional[builtins.str] = None,
7918
8661
  release_schedule: typing.Optional[builtins.str] = None,
7919
8662
  release_tag_prefix: typing.Optional[builtins.str] = None,
7920
8663
  release_trigger: typing.Optional[_ReleaseTrigger_e4dc221f] = None,
8664
+ release_workflow_env: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
7921
8665
  release_workflow_name: typing.Optional[builtins.str] = None,
7922
8666
  release_workflow_setup_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
7923
8667
  versionrc_options: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
@@ -7926,7 +8670,11 @@ def _typecheckingstub__a914f27f5d915b07b8847d407b03b08cab2aad7b213973084a9026526
7926
8670
  workflow_runs_on_group: typing.Optional[typing.Union[_GroupRunnerOptions_148c59c1, typing.Dict[builtins.str, typing.Any]]] = None,
7927
8671
  default_release_branch: builtins.str,
7928
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,
7929
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,
7930
8678
  build_workflow: typing.Optional[builtins.bool] = None,
7931
8679
  build_workflow_options: typing.Optional[typing.Union[_BuildWorkflowOptions_b756f97f, typing.Dict[builtins.str, typing.Any]]] = None,
7932
8680
  build_workflow_triggers: typing.Optional[typing.Union[_Triggers_e9ae7617, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -8032,6 +8780,7 @@ def _typecheckingstub__ac162883b4ecfe9863890d69bffa76d7f9ce16e619c94b9b2a4b7b8f2
8032
8780
  bugs_email: typing.Optional[builtins.str] = None,
8033
8781
  bugs_url: typing.Optional[builtins.str] = None,
8034
8782
  bundled_deps: typing.Optional[typing.Sequence[builtins.str]] = None,
8783
+ bun_version: typing.Optional[builtins.str] = None,
8035
8784
  code_artifact_options: typing.Optional[typing.Union[_CodeArtifactOptions_e4782b3e, typing.Dict[builtins.str, typing.Any]]] = None,
8036
8785
  deps: typing.Optional[typing.Sequence[builtins.str]] = None,
8037
8786
  description: typing.Optional[builtins.str] = None,
@@ -8048,6 +8797,7 @@ def _typecheckingstub__ac162883b4ecfe9863890d69bffa76d7f9ce16e619c94b9b2a4b7b8f2
8048
8797
  npm_registry: typing.Optional[builtins.str] = None,
8049
8798
  npm_registry_url: typing.Optional[builtins.str] = None,
8050
8799
  npm_token_secret: typing.Optional[builtins.str] = None,
8800
+ npm_trusted_publishing: typing.Optional[builtins.bool] = None,
8051
8801
  package_manager: typing.Optional[_NodePackageManager_3eb53bf6] = None,
8052
8802
  package_name: typing.Optional[builtins.str] = None,
8053
8803
  peer_dependency_options: typing.Optional[typing.Union[_PeerDependencyOptions_99d7d493, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -8059,9 +8809,11 @@ def _typecheckingstub__ac162883b4ecfe9863890d69bffa76d7f9ce16e619c94b9b2a4b7b8f2
8059
8809
  scripts: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
8060
8810
  stability: typing.Optional[builtins.str] = None,
8061
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,
8062
8813
  jsii_release_version: typing.Optional[builtins.str] = None,
8063
8814
  major_version: typing.Optional[jsii.Number] = None,
8064
8815
  min_major_version: typing.Optional[jsii.Number] = None,
8816
+ next_version_command: typing.Optional[builtins.str] = None,
8065
8817
  npm_dist_tag: typing.Optional[builtins.str] = None,
8066
8818
  post_build_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
8067
8819
  prerelease: typing.Optional[builtins.str] = None,
@@ -8069,12 +8821,14 @@ def _typecheckingstub__ac162883b4ecfe9863890d69bffa76d7f9ce16e619c94b9b2a4b7b8f2
8069
8821
  publish_tasks: typing.Optional[builtins.bool] = None,
8070
8822
  releasable_commits: typing.Optional[_ReleasableCommits_d481ce10] = None,
8071
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,
8072
8825
  release_every_commit: typing.Optional[builtins.bool] = None,
8073
8826
  release_failure_issue: typing.Optional[builtins.bool] = None,
8074
8827
  release_failure_issue_label: typing.Optional[builtins.str] = None,
8075
8828
  release_schedule: typing.Optional[builtins.str] = None,
8076
8829
  release_tag_prefix: typing.Optional[builtins.str] = None,
8077
8830
  release_trigger: typing.Optional[_ReleaseTrigger_e4dc221f] = None,
8831
+ release_workflow_env: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
8078
8832
  release_workflow_name: typing.Optional[builtins.str] = None,
8079
8833
  release_workflow_setup_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
8080
8834
  versionrc_options: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
@@ -8083,7 +8837,11 @@ def _typecheckingstub__ac162883b4ecfe9863890d69bffa76d7f9ce16e619c94b9b2a4b7b8f2
8083
8837
  workflow_runs_on_group: typing.Optional[typing.Union[_GroupRunnerOptions_148c59c1, typing.Dict[builtins.str, typing.Any]]] = None,
8084
8838
  default_release_branch: builtins.str,
8085
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,
8086
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,
8087
8845
  build_workflow: typing.Optional[builtins.bool] = None,
8088
8846
  build_workflow_options: typing.Optional[typing.Union[_BuildWorkflowOptions_b756f97f, typing.Dict[builtins.str, typing.Any]]] = None,
8089
8847
  build_workflow_triggers: typing.Optional[typing.Union[_Triggers_e9ae7617, typing.Dict[builtins.str, typing.Any]]] = None,