projen 0.95.2__py3-none-any.whl → 0.95.4__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.

Potentially problematic release.


This version of projen might be problematic. Click here for more details.

@@ -1664,6 +1664,7 @@ class MavenPublishOptions(CommonPublishOptions):
1664
1664
  "npm_provenance": "npmProvenance",
1665
1665
  "npm_token_secret": "npmTokenSecret",
1666
1666
  "registry": "registry",
1667
+ "trusted_publishing": "trustedPublishing",
1667
1668
  },
1668
1669
  )
1669
1670
  class NpmPublishOptions(CommonPublishOptions):
@@ -1679,6 +1680,7 @@ class NpmPublishOptions(CommonPublishOptions):
1679
1680
  npm_provenance: typing.Optional[builtins.bool] = None,
1680
1681
  npm_token_secret: typing.Optional[builtins.str] = None,
1681
1682
  registry: typing.Optional[builtins.str] = None,
1683
+ trusted_publishing: typing.Optional[builtins.bool] = None,
1682
1684
  ) -> None:
1683
1685
  '''(experimental) Options for npm release.
1684
1686
 
@@ -1686,11 +1688,12 @@ class NpmPublishOptions(CommonPublishOptions):
1686
1688
  :param post_publish_steps: (experimental) Steps to execute after executing the publishing command. These can be used to add/update the release artifacts ot any other tasks needed. Note that when using this in ``publishToGitHubReleases`` this will override steps added via ``addGitHubPostPublishingSteps``.
1687
1689
  :param pre_publish_steps: (experimental) Steps to execute before executing the publishing command. These can be used to prepare the artifact for publishing if needed. These steps are executed after ``dist/`` has been populated with the build output. Note that when using this in ``publishToGitHubReleases`` this will override steps added via ``addGitHubPrePublishingSteps``.
1688
1690
  :param publish_tools: (experimental) Additional tools to install in the publishing job. Default: - no additional tools are installed
1689
- :param code_artifact_options: (experimental) Options for publishing npm package to AWS CodeArtifact. Default: - undefined
1691
+ :param code_artifact_options: (experimental) Options for publishing npm package to AWS CodeArtifact. Default: - package is not published to
1690
1692
  :param dist_tag: (deprecated) Tags can be used to provide an alias instead of version numbers. For example, a project might choose to have multiple streams of development and use a different tag for each stream, e.g., stable, beta, dev, canary. By default, the ``latest`` tag is used by npm to identify the current version of a package, and ``npm install <pkg>`` (without any ``@<version>`` or ``@<tag>`` specifier) installs the latest tag. Typically, projects only use the ``latest`` tag for stable release versions, and use other tags for unstable versions such as prereleases. The ``next`` tag is used by some projects to identify the upcoming version. Default: "latest"
1691
- :param npm_provenance: (experimental) Should provenance statements be generated when package is published. Note that this component is using ``publib`` to publish packages, which is using npm internally and supports provenance statements independently of the package manager used. Default: - undefined
1692
- :param npm_token_secret: (experimental) GitHub secret which contains the NPM token to use when publishing packages. Default: - "NPM_TOKEN" or "GITHUB_TOKEN" if ``registry`` is set to ``npm.pkg.github.com``.
1693
+ :param npm_provenance: (experimental) Should provenance statements be generated when package is published. Note that this component is using ``publib`` to publish packages, which is using npm internally and supports provenance statements independently of the package manager used. Only works in supported CI/CD environments. Default: - enabled for for public packages using trusted publishing, disabled otherwise
1694
+ :param npm_token_secret: (experimental) GitHub secret which contains the NPM token to use for publishing packages. Default: - "NPM_TOKEN" or "GITHUB_TOKEN" if ``registry`` is set to ``npm.pkg.github.com``.
1693
1695
  :param registry: (experimental) The domain name of the npm package registry. To publish to GitHub Packages, set this value to ``"npm.pkg.github.com"``. In this if ``npmTokenSecret`` is not specified, it will default to ``GITHUB_TOKEN`` which means that you will be able to publish to the repository's package store. In this case, make sure ``repositoryUrl`` is correctly defined. Default: "registry.npmjs.org"
1696
+ :param trusted_publishing: (experimental) Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work. Requires npm CLI version 11.5.1 or later, this is NOT ensured automatically. When used, ``npmTokenSecret`` will be ignored. Default: - false
1694
1697
 
1695
1698
  :stability: experimental
1696
1699
  '''
@@ -1709,6 +1712,7 @@ class NpmPublishOptions(CommonPublishOptions):
1709
1712
  check_type(argname="argument npm_provenance", value=npm_provenance, expected_type=type_hints["npm_provenance"])
1710
1713
  check_type(argname="argument npm_token_secret", value=npm_token_secret, expected_type=type_hints["npm_token_secret"])
1711
1714
  check_type(argname="argument registry", value=registry, expected_type=type_hints["registry"])
1715
+ check_type(argname="argument trusted_publishing", value=trusted_publishing, expected_type=type_hints["trusted_publishing"])
1712
1716
  self._values: typing.Dict[builtins.str, typing.Any] = {}
1713
1717
  if github_environment is not None:
1714
1718
  self._values["github_environment"] = github_environment
@@ -1728,6 +1732,8 @@ class NpmPublishOptions(CommonPublishOptions):
1728
1732
  self._values["npm_token_secret"] = npm_token_secret
1729
1733
  if registry is not None:
1730
1734
  self._values["registry"] = registry
1735
+ if trusted_publishing is not None:
1736
+ self._values["trusted_publishing"] = trusted_publishing
1731
1737
 
1732
1738
  @builtins.property
1733
1739
  def github_environment(self) -> typing.Optional[builtins.str]:
@@ -1788,7 +1794,7 @@ class NpmPublishOptions(CommonPublishOptions):
1788
1794
  def code_artifact_options(self) -> typing.Optional[CodeArtifactOptions]:
1789
1795
  '''(experimental) Options for publishing npm package to AWS CodeArtifact.
1790
1796
 
1791
- :default: - undefined
1797
+ :default: - package is not published to
1792
1798
 
1793
1799
  :stability: experimental
1794
1800
  '''
@@ -1826,7 +1832,9 @@ class NpmPublishOptions(CommonPublishOptions):
1826
1832
  Note that this component is using ``publib`` to publish packages,
1827
1833
  which is using npm internally and supports provenance statements independently of the package manager used.
1828
1834
 
1829
- :default: - undefined
1835
+ Only works in supported CI/CD environments.
1836
+
1837
+ :default: - enabled for for public packages using trusted publishing, disabled otherwise
1830
1838
 
1831
1839
  :see: https://docs.npmjs.com/generating-provenance-statements
1832
1840
  :stability: experimental
@@ -1836,7 +1844,7 @@ class NpmPublishOptions(CommonPublishOptions):
1836
1844
 
1837
1845
  @builtins.property
1838
1846
  def npm_token_secret(self) -> typing.Optional[builtins.str]:
1839
- '''(experimental) GitHub secret which contains the NPM token to use when publishing packages.
1847
+ '''(experimental) GitHub secret which contains the NPM token to use for publishing packages.
1840
1848
 
1841
1849
  :default: - "NPM_TOKEN" or "GITHUB_TOKEN" if ``registry`` is set to ``npm.pkg.github.com``.
1842
1850
 
@@ -1866,6 +1874,21 @@ class NpmPublishOptions(CommonPublishOptions):
1866
1874
  result = self._values.get("registry")
1867
1875
  return typing.cast(typing.Optional[builtins.str], result)
1868
1876
 
1877
+ @builtins.property
1878
+ def trusted_publishing(self) -> typing.Optional[builtins.bool]:
1879
+ '''(experimental) Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work.
1880
+
1881
+ Requires npm CLI version 11.5.1 or later, this is NOT ensured automatically.
1882
+ When used, ``npmTokenSecret`` will be ignored.
1883
+
1884
+ :default: - false
1885
+
1886
+ :see: https://docs.npmjs.com/trusted-publishers
1887
+ :stability: experimental
1888
+ '''
1889
+ result = self._values.get("trusted_publishing")
1890
+ return typing.cast(typing.Optional[builtins.bool], result)
1891
+
1869
1892
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
1870
1893
  return isinstance(rhs, self.__class__) and rhs._values == self._values
1871
1894
 
@@ -2297,6 +2320,7 @@ class Publisher(
2297
2320
  npm_provenance: typing.Optional[builtins.bool] = None,
2298
2321
  npm_token_secret: typing.Optional[builtins.str] = None,
2299
2322
  registry: typing.Optional[builtins.str] = None,
2323
+ trusted_publishing: typing.Optional[builtins.bool] = None,
2300
2324
  github_environment: typing.Optional[builtins.str] = None,
2301
2325
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
2302
2326
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -2304,11 +2328,12 @@ class Publisher(
2304
2328
  ) -> None:
2305
2329
  '''(experimental) Publishes artifacts from ``js/**`` to npm.
2306
2330
 
2307
- :param code_artifact_options: (experimental) Options for publishing npm package to AWS CodeArtifact. Default: - undefined
2331
+ :param code_artifact_options: (experimental) Options for publishing npm package to AWS CodeArtifact. Default: - package is not published to
2308
2332
  :param dist_tag: (deprecated) Tags can be used to provide an alias instead of version numbers. For example, a project might choose to have multiple streams of development and use a different tag for each stream, e.g., stable, beta, dev, canary. By default, the ``latest`` tag is used by npm to identify the current version of a package, and ``npm install <pkg>`` (without any ``@<version>`` or ``@<tag>`` specifier) installs the latest tag. Typically, projects only use the ``latest`` tag for stable release versions, and use other tags for unstable versions such as prereleases. The ``next`` tag is used by some projects to identify the upcoming version. Default: "latest"
2309
- :param npm_provenance: (experimental) Should provenance statements be generated when package is published. Note that this component is using ``publib`` to publish packages, which is using npm internally and supports provenance statements independently of the package manager used. Default: - undefined
2310
- :param npm_token_secret: (experimental) GitHub secret which contains the NPM token to use when publishing packages. Default: - "NPM_TOKEN" or "GITHUB_TOKEN" if ``registry`` is set to ``npm.pkg.github.com``.
2333
+ :param npm_provenance: (experimental) Should provenance statements be generated when package is published. Note that this component is using ``publib`` to publish packages, which is using npm internally and supports provenance statements independently of the package manager used. Only works in supported CI/CD environments. Default: - enabled for for public packages using trusted publishing, disabled otherwise
2334
+ :param npm_token_secret: (experimental) GitHub secret which contains the NPM token to use for publishing packages. Default: - "NPM_TOKEN" or "GITHUB_TOKEN" if ``registry`` is set to ``npm.pkg.github.com``.
2311
2335
  :param registry: (experimental) The domain name of the npm package registry. To publish to GitHub Packages, set this value to ``"npm.pkg.github.com"``. In this if ``npmTokenSecret`` is not specified, it will default to ``GITHUB_TOKEN`` which means that you will be able to publish to the repository's package store. In this case, make sure ``repositoryUrl`` is correctly defined. Default: "registry.npmjs.org"
2336
+ :param trusted_publishing: (experimental) Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work. Requires npm CLI version 11.5.1 or later, this is NOT ensured automatically. When used, ``npmTokenSecret`` will be ignored. Default: - false
2312
2337
  :param github_environment: (experimental) The GitHub Actions environment used for publishing. This can be used to add an explicit approval step to the release or limit who can initiate a release through environment protection rules. Set this to overwrite a package level publishing environment just for this artifact. Default: - no environment used, unless set at the package level
2313
2338
  :param post_publish_steps: (experimental) Steps to execute after executing the publishing command. These can be used to add/update the release artifacts ot any other tasks needed. Note that when using this in ``publishToGitHubReleases`` this will override steps added via ``addGitHubPostPublishingSteps``.
2314
2339
  :param pre_publish_steps: (experimental) Steps to execute before executing the publishing command. These can be used to prepare the artifact for publishing if needed. These steps are executed after ``dist/`` has been populated with the build output. Note that when using this in ``publishToGitHubReleases`` this will override steps added via ``addGitHubPrePublishingSteps``.
@@ -2322,6 +2347,7 @@ class Publisher(
2322
2347
  npm_provenance=npm_provenance,
2323
2348
  npm_token_secret=npm_token_secret,
2324
2349
  registry=registry,
2350
+ trusted_publishing=trusted_publishing,
2325
2351
  github_environment=github_environment,
2326
2352
  post_publish_steps=post_publish_steps,
2327
2353
  pre_publish_steps=pre_publish_steps,
@@ -2367,7 +2393,9 @@ class Publisher(
2367
2393
  def publish_to_py_pi(
2368
2394
  self,
2369
2395
  *,
2396
+ attestations: typing.Optional[builtins.bool] = None,
2370
2397
  code_artifact_options: typing.Optional[typing.Union[CodeArtifactOptions, typing.Dict[builtins.str, typing.Any]]] = None,
2398
+ trusted_publishing: typing.Optional[builtins.bool] = None,
2371
2399
  twine_password_secret: typing.Optional[builtins.str] = None,
2372
2400
  twine_registry_url: typing.Optional[builtins.str] = None,
2373
2401
  twine_username_secret: typing.Optional[builtins.str] = None,
@@ -2378,7 +2406,9 @@ class Publisher(
2378
2406
  ) -> None:
2379
2407
  '''(experimental) Publishes wheel artifacts from ``python`` to PyPI.
2380
2408
 
2409
+ :param attestations: (experimental) Generate and publish cryptographic attestations for files uploaded to PyPI. Attestations provide package provenance and integrity an can be viewed on PyPI. They are only available when using a Trusted Publisher for publishing. Default: - enabled when using trusted publishing, otherwise not applicable
2381
2410
  :param code_artifact_options: (experimental) Options for publishing to AWS CodeArtifact. Default: - undefined
2411
+ :param trusted_publishing: (experimental) Use PyPI trusted publishing instead of tokens or username & password. Needs to be setup in PyPI.
2382
2412
  :param twine_password_secret: (experimental) The GitHub secret which contains PyPI password. Default: "TWINE_PASSWORD"
2383
2413
  :param twine_registry_url: (experimental) The registry url to use when releasing packages. Default: - twine default
2384
2414
  :param twine_username_secret: (experimental) The GitHub secret which contains PyPI user name. Default: "TWINE_USERNAME"
@@ -2390,7 +2420,9 @@ class Publisher(
2390
2420
  :stability: experimental
2391
2421
  '''
2392
2422
  options = PyPiPublishOptions(
2423
+ attestations=attestations,
2393
2424
  code_artifact_options=code_artifact_options,
2425
+ trusted_publishing=trusted_publishing,
2394
2426
  twine_password_secret=twine_password_secret,
2395
2427
  twine_registry_url=twine_registry_url,
2396
2428
  twine_username_secret=twine_username_secret,
@@ -2729,7 +2761,9 @@ class PublisherOptions:
2729
2761
  "post_publish_steps": "postPublishSteps",
2730
2762
  "pre_publish_steps": "prePublishSteps",
2731
2763
  "publish_tools": "publishTools",
2764
+ "attestations": "attestations",
2732
2765
  "code_artifact_options": "codeArtifactOptions",
2766
+ "trusted_publishing": "trustedPublishing",
2733
2767
  "twine_password_secret": "twinePasswordSecret",
2734
2768
  "twine_registry_url": "twineRegistryUrl",
2735
2769
  "twine_username_secret": "twineUsernameSecret",
@@ -2743,7 +2777,9 @@ class PyPiPublishOptions(CommonPublishOptions):
2743
2777
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
2744
2778
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
2745
2779
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
2780
+ attestations: typing.Optional[builtins.bool] = None,
2746
2781
  code_artifact_options: typing.Optional[typing.Union[CodeArtifactOptions, typing.Dict[builtins.str, typing.Any]]] = None,
2782
+ trusted_publishing: typing.Optional[builtins.bool] = None,
2747
2783
  twine_password_secret: typing.Optional[builtins.str] = None,
2748
2784
  twine_registry_url: typing.Optional[builtins.str] = None,
2749
2785
  twine_username_secret: typing.Optional[builtins.str] = None,
@@ -2754,7 +2790,9 @@ class PyPiPublishOptions(CommonPublishOptions):
2754
2790
  :param post_publish_steps: (experimental) Steps to execute after executing the publishing command. These can be used to add/update the release artifacts ot any other tasks needed. Note that when using this in ``publishToGitHubReleases`` this will override steps added via ``addGitHubPostPublishingSteps``.
2755
2791
  :param pre_publish_steps: (experimental) Steps to execute before executing the publishing command. These can be used to prepare the artifact for publishing if needed. These steps are executed after ``dist/`` has been populated with the build output. Note that when using this in ``publishToGitHubReleases`` this will override steps added via ``addGitHubPrePublishingSteps``.
2756
2792
  :param publish_tools: (experimental) Additional tools to install in the publishing job. Default: - no additional tools are installed
2793
+ :param attestations: (experimental) Generate and publish cryptographic attestations for files uploaded to PyPI. Attestations provide package provenance and integrity an can be viewed on PyPI. They are only available when using a Trusted Publisher for publishing. Default: - enabled when using trusted publishing, otherwise not applicable
2757
2794
  :param code_artifact_options: (experimental) Options for publishing to AWS CodeArtifact. Default: - undefined
2795
+ :param trusted_publishing: (experimental) Use PyPI trusted publishing instead of tokens or username & password. Needs to be setup in PyPI.
2758
2796
  :param twine_password_secret: (experimental) The GitHub secret which contains PyPI password. Default: "TWINE_PASSWORD"
2759
2797
  :param twine_registry_url: (experimental) The registry url to use when releasing packages. Default: - twine default
2760
2798
  :param twine_username_secret: (experimental) The GitHub secret which contains PyPI user name. Default: "TWINE_USERNAME"
@@ -2771,7 +2809,9 @@ class PyPiPublishOptions(CommonPublishOptions):
2771
2809
  check_type(argname="argument post_publish_steps", value=post_publish_steps, expected_type=type_hints["post_publish_steps"])
2772
2810
  check_type(argname="argument pre_publish_steps", value=pre_publish_steps, expected_type=type_hints["pre_publish_steps"])
2773
2811
  check_type(argname="argument publish_tools", value=publish_tools, expected_type=type_hints["publish_tools"])
2812
+ check_type(argname="argument attestations", value=attestations, expected_type=type_hints["attestations"])
2774
2813
  check_type(argname="argument code_artifact_options", value=code_artifact_options, expected_type=type_hints["code_artifact_options"])
2814
+ check_type(argname="argument trusted_publishing", value=trusted_publishing, expected_type=type_hints["trusted_publishing"])
2775
2815
  check_type(argname="argument twine_password_secret", value=twine_password_secret, expected_type=type_hints["twine_password_secret"])
2776
2816
  check_type(argname="argument twine_registry_url", value=twine_registry_url, expected_type=type_hints["twine_registry_url"])
2777
2817
  check_type(argname="argument twine_username_secret", value=twine_username_secret, expected_type=type_hints["twine_username_secret"])
@@ -2784,8 +2824,12 @@ class PyPiPublishOptions(CommonPublishOptions):
2784
2824
  self._values["pre_publish_steps"] = pre_publish_steps
2785
2825
  if publish_tools is not None:
2786
2826
  self._values["publish_tools"] = publish_tools
2827
+ if attestations is not None:
2828
+ self._values["attestations"] = attestations
2787
2829
  if code_artifact_options is not None:
2788
2830
  self._values["code_artifact_options"] = code_artifact_options
2831
+ if trusted_publishing is not None:
2832
+ self._values["trusted_publishing"] = trusted_publishing
2789
2833
  if twine_password_secret is not None:
2790
2834
  self._values["twine_password_secret"] = twine_password_secret
2791
2835
  if twine_registry_url is not None:
@@ -2848,6 +2892,21 @@ class PyPiPublishOptions(CommonPublishOptions):
2848
2892
  result = self._values.get("publish_tools")
2849
2893
  return typing.cast(typing.Optional[_Tools_75b93a2a], result)
2850
2894
 
2895
+ @builtins.property
2896
+ def attestations(self) -> typing.Optional[builtins.bool]:
2897
+ '''(experimental) Generate and publish cryptographic attestations for files uploaded to PyPI.
2898
+
2899
+ Attestations provide package provenance and integrity an can be viewed on PyPI.
2900
+ They are only available when using a Trusted Publisher for publishing.
2901
+
2902
+ :default: - enabled when using trusted publishing, otherwise not applicable
2903
+
2904
+ :see: https://docs.pypi.org/attestations/producing-attestations/
2905
+ :stability: experimental
2906
+ '''
2907
+ result = self._values.get("attestations")
2908
+ return typing.cast(typing.Optional[builtins.bool], result)
2909
+
2851
2910
  @builtins.property
2852
2911
  def code_artifact_options(self) -> typing.Optional[CodeArtifactOptions]:
2853
2912
  '''(experimental) Options for publishing to AWS CodeArtifact.
@@ -2859,6 +2918,18 @@ class PyPiPublishOptions(CommonPublishOptions):
2859
2918
  result = self._values.get("code_artifact_options")
2860
2919
  return typing.cast(typing.Optional[CodeArtifactOptions], result)
2861
2920
 
2921
+ @builtins.property
2922
+ def trusted_publishing(self) -> typing.Optional[builtins.bool]:
2923
+ '''(experimental) Use PyPI trusted publishing instead of tokens or username & password.
2924
+
2925
+ Needs to be setup in PyPI.
2926
+
2927
+ :see: https://docs.pypi.org/trusted-publishers/adding-a-publisher/
2928
+ :stability: experimental
2929
+ '''
2930
+ result = self._values.get("trusted_publishing")
2931
+ return typing.cast(typing.Optional[builtins.bool], result)
2932
+
2862
2933
  @builtins.property
2863
2934
  def twine_password_secret(self) -> typing.Optional[builtins.str]:
2864
2935
  '''(experimental) The GitHub secret which contains PyPI password.
@@ -4167,6 +4238,7 @@ class JsiiReleaseMaven(MavenPublishOptions):
4167
4238
  "npm_provenance": "npmProvenance",
4168
4239
  "npm_token_secret": "npmTokenSecret",
4169
4240
  "registry": "registry",
4241
+ "trusted_publishing": "trustedPublishing",
4170
4242
  },
4171
4243
  )
4172
4244
  class JsiiReleaseNpm(NpmPublishOptions):
@@ -4182,17 +4254,19 @@ class JsiiReleaseNpm(NpmPublishOptions):
4182
4254
  npm_provenance: typing.Optional[builtins.bool] = None,
4183
4255
  npm_token_secret: typing.Optional[builtins.str] = None,
4184
4256
  registry: typing.Optional[builtins.str] = None,
4257
+ trusted_publishing: typing.Optional[builtins.bool] = None,
4185
4258
  ) -> None:
4186
4259
  '''
4187
4260
  :param github_environment: (experimental) The GitHub Actions environment used for publishing. This can be used to add an explicit approval step to the release or limit who can initiate a release through environment protection rules. Set this to overwrite a package level publishing environment just for this artifact. Default: - no environment used, unless set at the package level
4188
4261
  :param post_publish_steps: (experimental) Steps to execute after executing the publishing command. These can be used to add/update the release artifacts ot any other tasks needed. Note that when using this in ``publishToGitHubReleases`` this will override steps added via ``addGitHubPostPublishingSteps``.
4189
4262
  :param pre_publish_steps: (experimental) Steps to execute before executing the publishing command. These can be used to prepare the artifact for publishing if needed. These steps are executed after ``dist/`` has been populated with the build output. Note that when using this in ``publishToGitHubReleases`` this will override steps added via ``addGitHubPrePublishingSteps``.
4190
4263
  :param publish_tools: (experimental) Additional tools to install in the publishing job. Default: - no additional tools are installed
4191
- :param code_artifact_options: (experimental) Options for publishing npm package to AWS CodeArtifact. Default: - undefined
4264
+ :param code_artifact_options: (experimental) Options for publishing npm package to AWS CodeArtifact. Default: - package is not published to
4192
4265
  :param dist_tag: (deprecated) Tags can be used to provide an alias instead of version numbers. For example, a project might choose to have multiple streams of development and use a different tag for each stream, e.g., stable, beta, dev, canary. By default, the ``latest`` tag is used by npm to identify the current version of a package, and ``npm install <pkg>`` (without any ``@<version>`` or ``@<tag>`` specifier) installs the latest tag. Typically, projects only use the ``latest`` tag for stable release versions, and use other tags for unstable versions such as prereleases. The ``next`` tag is used by some projects to identify the upcoming version. Default: "latest"
4193
- :param npm_provenance: (experimental) Should provenance statements be generated when package is published. Note that this component is using ``publib`` to publish packages, which is using npm internally and supports provenance statements independently of the package manager used. Default: - undefined
4194
- :param npm_token_secret: (experimental) GitHub secret which contains the NPM token to use when publishing packages. Default: - "NPM_TOKEN" or "GITHUB_TOKEN" if ``registry`` is set to ``npm.pkg.github.com``.
4266
+ :param npm_provenance: (experimental) Should provenance statements be generated when package is published. Note that this component is using ``publib`` to publish packages, which is using npm internally and supports provenance statements independently of the package manager used. Only works in supported CI/CD environments. Default: - enabled for for public packages using trusted publishing, disabled otherwise
4267
+ :param npm_token_secret: (experimental) GitHub secret which contains the NPM token to use for publishing packages. Default: - "NPM_TOKEN" or "GITHUB_TOKEN" if ``registry`` is set to ``npm.pkg.github.com``.
4195
4268
  :param registry: (experimental) The domain name of the npm package registry. To publish to GitHub Packages, set this value to ``"npm.pkg.github.com"``. In this if ``npmTokenSecret`` is not specified, it will default to ``GITHUB_TOKEN`` which means that you will be able to publish to the repository's package store. In this case, make sure ``repositoryUrl`` is correctly defined. Default: "registry.npmjs.org"
4269
+ :param trusted_publishing: (experimental) Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work. Requires npm CLI version 11.5.1 or later, this is NOT ensured automatically. When used, ``npmTokenSecret`` will be ignored. Default: - false
4196
4270
 
4197
4271
  :deprecated: Use ``NpmPublishOptions`` instead.
4198
4272
 
@@ -4213,6 +4287,7 @@ class JsiiReleaseNpm(NpmPublishOptions):
4213
4287
  check_type(argname="argument npm_provenance", value=npm_provenance, expected_type=type_hints["npm_provenance"])
4214
4288
  check_type(argname="argument npm_token_secret", value=npm_token_secret, expected_type=type_hints["npm_token_secret"])
4215
4289
  check_type(argname="argument registry", value=registry, expected_type=type_hints["registry"])
4290
+ check_type(argname="argument trusted_publishing", value=trusted_publishing, expected_type=type_hints["trusted_publishing"])
4216
4291
  self._values: typing.Dict[builtins.str, typing.Any] = {}
4217
4292
  if github_environment is not None:
4218
4293
  self._values["github_environment"] = github_environment
@@ -4232,6 +4307,8 @@ class JsiiReleaseNpm(NpmPublishOptions):
4232
4307
  self._values["npm_token_secret"] = npm_token_secret
4233
4308
  if registry is not None:
4234
4309
  self._values["registry"] = registry
4310
+ if trusted_publishing is not None:
4311
+ self._values["trusted_publishing"] = trusted_publishing
4235
4312
 
4236
4313
  @builtins.property
4237
4314
  def github_environment(self) -> typing.Optional[builtins.str]:
@@ -4292,7 +4369,7 @@ class JsiiReleaseNpm(NpmPublishOptions):
4292
4369
  def code_artifact_options(self) -> typing.Optional[CodeArtifactOptions]:
4293
4370
  '''(experimental) Options for publishing npm package to AWS CodeArtifact.
4294
4371
 
4295
- :default: - undefined
4372
+ :default: - package is not published to
4296
4373
 
4297
4374
  :stability: experimental
4298
4375
  '''
@@ -4330,7 +4407,9 @@ class JsiiReleaseNpm(NpmPublishOptions):
4330
4407
  Note that this component is using ``publib`` to publish packages,
4331
4408
  which is using npm internally and supports provenance statements independently of the package manager used.
4332
4409
 
4333
- :default: - undefined
4410
+ Only works in supported CI/CD environments.
4411
+
4412
+ :default: - enabled for for public packages using trusted publishing, disabled otherwise
4334
4413
 
4335
4414
  :see: https://docs.npmjs.com/generating-provenance-statements
4336
4415
  :stability: experimental
@@ -4340,7 +4419,7 @@ class JsiiReleaseNpm(NpmPublishOptions):
4340
4419
 
4341
4420
  @builtins.property
4342
4421
  def npm_token_secret(self) -> typing.Optional[builtins.str]:
4343
- '''(experimental) GitHub secret which contains the NPM token to use when publishing packages.
4422
+ '''(experimental) GitHub secret which contains the NPM token to use for publishing packages.
4344
4423
 
4345
4424
  :default: - "NPM_TOKEN" or "GITHUB_TOKEN" if ``registry`` is set to ``npm.pkg.github.com``.
4346
4425
 
@@ -4370,6 +4449,21 @@ class JsiiReleaseNpm(NpmPublishOptions):
4370
4449
  result = self._values.get("registry")
4371
4450
  return typing.cast(typing.Optional[builtins.str], result)
4372
4451
 
4452
+ @builtins.property
4453
+ def trusted_publishing(self) -> typing.Optional[builtins.bool]:
4454
+ '''(experimental) Use trusted publishing for publishing to npmjs.com Needs to be pre-configured on npm.js to work.
4455
+
4456
+ Requires npm CLI version 11.5.1 or later, this is NOT ensured automatically.
4457
+ When used, ``npmTokenSecret`` will be ignored.
4458
+
4459
+ :default: - false
4460
+
4461
+ :see: https://docs.npmjs.com/trusted-publishers
4462
+ :stability: experimental
4463
+ '''
4464
+ result = self._values.get("trusted_publishing")
4465
+ return typing.cast(typing.Optional[builtins.bool], result)
4466
+
4373
4467
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
4374
4468
  return isinstance(rhs, self.__class__) and rhs._values == self._values
4375
4469
 
@@ -4536,7 +4630,9 @@ class JsiiReleaseNuget(NugetPublishOptions):
4536
4630
  "post_publish_steps": "postPublishSteps",
4537
4631
  "pre_publish_steps": "prePublishSteps",
4538
4632
  "publish_tools": "publishTools",
4633
+ "attestations": "attestations",
4539
4634
  "code_artifact_options": "codeArtifactOptions",
4635
+ "trusted_publishing": "trustedPublishing",
4540
4636
  "twine_password_secret": "twinePasswordSecret",
4541
4637
  "twine_registry_url": "twineRegistryUrl",
4542
4638
  "twine_username_secret": "twineUsernameSecret",
@@ -4550,7 +4646,9 @@ class JsiiReleasePyPi(PyPiPublishOptions):
4550
4646
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
4551
4647
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
4552
4648
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
4649
+ attestations: typing.Optional[builtins.bool] = None,
4553
4650
  code_artifact_options: typing.Optional[typing.Union[CodeArtifactOptions, typing.Dict[builtins.str, typing.Any]]] = None,
4651
+ trusted_publishing: typing.Optional[builtins.bool] = None,
4554
4652
  twine_password_secret: typing.Optional[builtins.str] = None,
4555
4653
  twine_registry_url: typing.Optional[builtins.str] = None,
4556
4654
  twine_username_secret: typing.Optional[builtins.str] = None,
@@ -4560,7 +4658,9 @@ class JsiiReleasePyPi(PyPiPublishOptions):
4560
4658
  :param post_publish_steps: (experimental) Steps to execute after executing the publishing command. These can be used to add/update the release artifacts ot any other tasks needed. Note that when using this in ``publishToGitHubReleases`` this will override steps added via ``addGitHubPostPublishingSteps``.
4561
4659
  :param pre_publish_steps: (experimental) Steps to execute before executing the publishing command. These can be used to prepare the artifact for publishing if needed. These steps are executed after ``dist/`` has been populated with the build output. Note that when using this in ``publishToGitHubReleases`` this will override steps added via ``addGitHubPrePublishingSteps``.
4562
4660
  :param publish_tools: (experimental) Additional tools to install in the publishing job. Default: - no additional tools are installed
4661
+ :param attestations: (experimental) Generate and publish cryptographic attestations for files uploaded to PyPI. Attestations provide package provenance and integrity an can be viewed on PyPI. They are only available when using a Trusted Publisher for publishing. Default: - enabled when using trusted publishing, otherwise not applicable
4563
4662
  :param code_artifact_options: (experimental) Options for publishing to AWS CodeArtifact. Default: - undefined
4663
+ :param trusted_publishing: (experimental) Use PyPI trusted publishing instead of tokens or username & password. Needs to be setup in PyPI.
4564
4664
  :param twine_password_secret: (experimental) The GitHub secret which contains PyPI password. Default: "TWINE_PASSWORD"
4565
4665
  :param twine_registry_url: (experimental) The registry url to use when releasing packages. Default: - twine default
4566
4666
  :param twine_username_secret: (experimental) The GitHub secret which contains PyPI user name. Default: "TWINE_USERNAME"
@@ -4579,7 +4679,9 @@ class JsiiReleasePyPi(PyPiPublishOptions):
4579
4679
  check_type(argname="argument post_publish_steps", value=post_publish_steps, expected_type=type_hints["post_publish_steps"])
4580
4680
  check_type(argname="argument pre_publish_steps", value=pre_publish_steps, expected_type=type_hints["pre_publish_steps"])
4581
4681
  check_type(argname="argument publish_tools", value=publish_tools, expected_type=type_hints["publish_tools"])
4682
+ check_type(argname="argument attestations", value=attestations, expected_type=type_hints["attestations"])
4582
4683
  check_type(argname="argument code_artifact_options", value=code_artifact_options, expected_type=type_hints["code_artifact_options"])
4684
+ check_type(argname="argument trusted_publishing", value=trusted_publishing, expected_type=type_hints["trusted_publishing"])
4583
4685
  check_type(argname="argument twine_password_secret", value=twine_password_secret, expected_type=type_hints["twine_password_secret"])
4584
4686
  check_type(argname="argument twine_registry_url", value=twine_registry_url, expected_type=type_hints["twine_registry_url"])
4585
4687
  check_type(argname="argument twine_username_secret", value=twine_username_secret, expected_type=type_hints["twine_username_secret"])
@@ -4592,8 +4694,12 @@ class JsiiReleasePyPi(PyPiPublishOptions):
4592
4694
  self._values["pre_publish_steps"] = pre_publish_steps
4593
4695
  if publish_tools is not None:
4594
4696
  self._values["publish_tools"] = publish_tools
4697
+ if attestations is not None:
4698
+ self._values["attestations"] = attestations
4595
4699
  if code_artifact_options is not None:
4596
4700
  self._values["code_artifact_options"] = code_artifact_options
4701
+ if trusted_publishing is not None:
4702
+ self._values["trusted_publishing"] = trusted_publishing
4597
4703
  if twine_password_secret is not None:
4598
4704
  self._values["twine_password_secret"] = twine_password_secret
4599
4705
  if twine_registry_url is not None:
@@ -4656,6 +4762,21 @@ class JsiiReleasePyPi(PyPiPublishOptions):
4656
4762
  result = self._values.get("publish_tools")
4657
4763
  return typing.cast(typing.Optional[_Tools_75b93a2a], result)
4658
4764
 
4765
+ @builtins.property
4766
+ def attestations(self) -> typing.Optional[builtins.bool]:
4767
+ '''(experimental) Generate and publish cryptographic attestations for files uploaded to PyPI.
4768
+
4769
+ Attestations provide package provenance and integrity an can be viewed on PyPI.
4770
+ They are only available when using a Trusted Publisher for publishing.
4771
+
4772
+ :default: - enabled when using trusted publishing, otherwise not applicable
4773
+
4774
+ :see: https://docs.pypi.org/attestations/producing-attestations/
4775
+ :stability: experimental
4776
+ '''
4777
+ result = self._values.get("attestations")
4778
+ return typing.cast(typing.Optional[builtins.bool], result)
4779
+
4659
4780
  @builtins.property
4660
4781
  def code_artifact_options(self) -> typing.Optional[CodeArtifactOptions]:
4661
4782
  '''(experimental) Options for publishing to AWS CodeArtifact.
@@ -4667,6 +4788,18 @@ class JsiiReleasePyPi(PyPiPublishOptions):
4667
4788
  result = self._values.get("code_artifact_options")
4668
4789
  return typing.cast(typing.Optional[CodeArtifactOptions], result)
4669
4790
 
4791
+ @builtins.property
4792
+ def trusted_publishing(self) -> typing.Optional[builtins.bool]:
4793
+ '''(experimental) Use PyPI trusted publishing instead of tokens or username & password.
4794
+
4795
+ Needs to be setup in PyPI.
4796
+
4797
+ :see: https://docs.pypi.org/trusted-publishers/adding-a-publisher/
4798
+ :stability: experimental
4799
+ '''
4800
+ result = self._values.get("trusted_publishing")
4801
+ return typing.cast(typing.Optional[builtins.bool], result)
4802
+
4670
4803
  @builtins.property
4671
4804
  def twine_password_secret(self) -> typing.Optional[builtins.str]:
4672
4805
  '''(experimental) The GitHub secret which contains PyPI password.
@@ -5541,6 +5674,7 @@ def _typecheckingstub__458289050585e6e895f9ee709ee4e102166b0f71e3c8b2a0617efa2d2
5541
5674
  npm_provenance: typing.Optional[builtins.bool] = None,
5542
5675
  npm_token_secret: typing.Optional[builtins.str] = None,
5543
5676
  registry: typing.Optional[builtins.str] = None,
5677
+ trusted_publishing: typing.Optional[builtins.bool] = None,
5544
5678
  ) -> None:
5545
5679
  """Type checking stubs"""
5546
5680
  pass
@@ -5614,7 +5748,9 @@ def _typecheckingstub__f90cd44def59be822b686bcd759d7f0a910b9936ca8acc0ef3e69cda5
5614
5748
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5615
5749
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5616
5750
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
5751
+ attestations: typing.Optional[builtins.bool] = None,
5617
5752
  code_artifact_options: typing.Optional[typing.Union[CodeArtifactOptions, typing.Dict[builtins.str, typing.Any]]] = None,
5753
+ trusted_publishing: typing.Optional[builtins.bool] = None,
5618
5754
  twine_password_secret: typing.Optional[builtins.str] = None,
5619
5755
  twine_registry_url: typing.Optional[builtins.str] = None,
5620
5756
  twine_username_secret: typing.Optional[builtins.str] = None,
@@ -5755,6 +5891,7 @@ def _typecheckingstub__a34680d3cf9e2cc6374987796717402a524a0bb377e9172f0707da674
5755
5891
  npm_provenance: typing.Optional[builtins.bool] = None,
5756
5892
  npm_token_secret: typing.Optional[builtins.str] = None,
5757
5893
  registry: typing.Optional[builtins.str] = None,
5894
+ trusted_publishing: typing.Optional[builtins.bool] = None,
5758
5895
  ) -> None:
5759
5896
  """Type checking stubs"""
5760
5897
  pass
@@ -5777,7 +5914,9 @@ def _typecheckingstub__0fa7c01cc40634bf771011bf4e8ddb9e3be28efd1b3f15b5d0768a4e8
5777
5914
  post_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5778
5915
  pre_publish_steps: typing.Optional[typing.Sequence[typing.Union[_JobStep_c3287c05, typing.Dict[builtins.str, typing.Any]]]] = None,
5779
5916
  publish_tools: typing.Optional[typing.Union[_Tools_75b93a2a, typing.Dict[builtins.str, typing.Any]]] = None,
5917
+ attestations: typing.Optional[builtins.bool] = None,
5780
5918
  code_artifact_options: typing.Optional[typing.Union[CodeArtifactOptions, typing.Dict[builtins.str, typing.Any]]] = None,
5919
+ trusted_publishing: typing.Optional[builtins.bool] = None,
5781
5920
  twine_password_secret: typing.Optional[builtins.str] = None,
5782
5921
  twine_registry_url: typing.Optional[builtins.str] = None,
5783
5922
  twine_username_secret: typing.Optional[builtins.str] = None,