Compare commits
5 commits
main
...
kellerkt/c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cc3d630aff | ||
|
|
4ad9baccc5 | ||
|
|
bdfbf63996 | ||
|
|
14656373f9 |
||
|
|
f85dec7edc |
13 changed files with 8697 additions and 8798 deletions
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
".release-please-manifest.json": "4.0.2",
|
".release-please-manifest.json": "4.0.2",
|
||||||
"package.json": "6.0.0",
|
"package.json": "6.0.0",
|
||||||
".": "6.2.0"
|
".": "6.1.2"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
16
CHANGELOG.md
16
CHANGELOG.md
|
|
@ -2,7 +2,8 @@
|
||||||
|
|
||||||
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
||||||
|
|
||||||
## [6.2.0](https://github.com/aws-actions/configure-aws-credentials/compare/v6.1.3...v6.2.0) (2026-06-01)
|
## [6.1.2](https://github.com/aws-actions/configure-aws-credentials/compare/v6.1.1...v6.1.2) (2026-05-26)
|
||||||
|
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
|
|
@ -13,22 +14,11 @@ All notable changes to this project will be documented in this file. See [standa
|
||||||
* expose run id in STS client user-agent ([#1774](https://github.com/aws-actions/configure-aws-credentials/issues/1774)) ([29d1be3](https://github.com/aws-actions/configure-aws-credentials/commit/29d1be30273e7ef371d59fccf6ec54572c64ec89))
|
* expose run id in STS client user-agent ([#1774](https://github.com/aws-actions/configure-aws-credentials/issues/1774)) ([29d1be3](https://github.com/aws-actions/configure-aws-credentials/commit/29d1be30273e7ef371d59fccf6ec54572c64ec89))
|
||||||
* support custom STS endpoints ([#1762](https://github.com/aws-actions/configure-aws-credentials/issues/1762)) ([8d52d05](https://github.com/aws-actions/configure-aws-credentials/commit/8d52d05d7a4521fa52b39de50cb6114b12e5c332))
|
* support custom STS endpoints ([#1762](https://github.com/aws-actions/configure-aws-credentials/issues/1762)) ([8d52d05](https://github.com/aws-actions/configure-aws-credentials/commit/8d52d05d7a4521fa52b39de50cb6114b12e5c332))
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* skip credential check on output-env-credentials: false ([#1778](https://github.com/aws-actions/configure-aws-credentials/issues/1778)) ([58e7c47](https://github.com/aws-actions/configure-aws-credentials/commit/58e7c47adf77846879008deadfeeef8a6969fe6c))
|
|
||||||
* assumeRole failing from session tag size too large ([#1808](https://github.com/aws-actions/configure-aws-credentials/issues/1808)) ([d6f5dc3](https://github.com/aws-actions/configure-aws-credentials/commit/d6f5dc331b44474b19a52caaf85fa4d637b13c8e))
|
|
||||||
|
|
||||||
## [6.1.3](https://github.com/aws-actions/configure-aws-credentials/compare/v6.1.2...v6.1.3) (2026-05-28)
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* fix: allow kubelet token symlink in [#1805](https://github.com/aws-actions/configure-aws-credentials/issues/1805)
|
|
||||||
|
|
||||||
## [6.1.2](https://github.com/aws-actions/configure-aws-credentials/compare/v6.1.1...v6.1.2) (2026-05-26)
|
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|
||||||
* additional filesystem checks ([#1799](https://github.com/aws-actions/configure-aws-credentials/issues/1799)) ([c39f282](https://github.com/aws-actions/configure-aws-credentials/commit/c39f282697aca8a78c522ecf1f7da9899a31432c))
|
* additional filesystem checks ([#1799](https://github.com/aws-actions/configure-aws-credentials/issues/1799)) ([c39f282](https://github.com/aws-actions/configure-aws-credentials/commit/c39f282697aca8a78c522ecf1f7da9899a31432c))
|
||||||
|
* skip credential check on output-env-credentials: false ([#1778](https://github.com/aws-actions/configure-aws-credentials/issues/1778)) ([58e7c47](https://github.com/aws-actions/configure-aws-credentials/commit/58e7c47adf77846879008deadfeeef8a6969fe6c))
|
||||||
|
|
||||||
## [6.1.1](https://github.com/aws-actions/configure-aws-credentials/compare/v6.1.0...v6.1.1) (2026-05-05)
|
## [6.1.1](https://github.com/aws-actions/configure-aws-credentials/compare/v6.1.0...v6.1.1) (2026-05-05)
|
||||||
|
|
||||||
|
|
|
||||||
84
README.md
84
README.md
|
|
@ -353,7 +353,8 @@ documentation for `GITHUB_` environment variable definitions][gh-env-vars])
|
||||||
[gh-env-vars]:
|
[gh-env-vars]:
|
||||||
https://docs.github.com/en/actions/reference/workflows-and-actions/variables#default-environment-variables
|
https://docs.github.com/en/actions/reference/workflows-and-actions/variables#default-environment-variables
|
||||||
|
|
||||||
**Default tags** are always emitted when session tags are used.
|
**Protected tags** are always emitted when session tags are used, and cannot be
|
||||||
|
overridden via `custom-tags`:
|
||||||
|
|
||||||
| Key | Value |
|
| Key | Value |
|
||||||
| ---------- | ----------------- |
|
| ---------- | ----------------- |
|
||||||
|
|
@ -365,24 +366,21 @@ documentation for `GITHUB_` environment variable definitions][gh-env-vars])
|
||||||
| Commit | GITHUB_SHA |
|
| Commit | GITHUB_SHA |
|
||||||
| Branch | GITHUB_REF |
|
| Branch | GITHUB_REF |
|
||||||
|
|
||||||
**Droppable tags** are automatically added to the set of default session tags.
|
**Overrideable tags** are automatically added to the set of default session tags
|
||||||
If the session tags exceed the [packed size limit][packed-size-limit], these
|
but may be overridden via `custom-tags`. AWS has a maximum limit of 50 session
|
||||||
tags will be dropped, and the AssumeRole call will be retried. If it still
|
tags; tags from this list are dropped in reverse priority order if your
|
||||||
fails, the action will error out. (It is difficult to predict the packed size
|
`custom-tags` set plus the protected set exceeds this limit.
|
||||||
before making the call, as session tags and session policies are compressed into
|
|
||||||
a binary format as part of the call.)
|
|
||||||
|
|
||||||
[packed-size-limit]:
|
| Key | Value | Priority |
|
||||||
https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_know
|
| --------------- | ----------------------- | -------- |
|
||||||
|
| EventName | GITHUB_EVENT_NAME | 1 |
|
||||||
| Key | Value |
|
| BaseRef | GITHUB_BASE_REF | 2 |
|
||||||
| --------------- | ----------------------- |
|
| HeadRef | GITHUB_HEAD_REF | 3 |
|
||||||
| EventName | GITHUB_EVENT_NAME |
|
| RefName | GITHUB_REF_NAME | 4 |
|
||||||
| BaseRef | GITHUB_BASE_REF |
|
| RunId | GITHUB_RUN_ID | 5 |
|
||||||
| HeadRef | GITHUB_HEAD_REF |
|
| RefType | GITHUB_REF_TYPE | 6 |
|
||||||
| RunId | GITHUB_RUN_ID |
|
| Job | GITHUB_JOB | 7 |
|
||||||
| Job | GITHUB_JOB |
|
| TriggeringActor | GITHUB_TRIGGERING_ACTOR | 8 |
|
||||||
| TriggeringActor | GITHUB_TRIGGERING_ACTOR |
|
|
||||||
|
|
||||||
Tags whose source environment variable is unset are omitted (e.g., `BaseRef` and
|
Tags whose source environment variable is unset are omitted (e.g., `BaseRef` and
|
||||||
`HeadRef` are only set on `pull_request` events).
|
`HeadRef` are only set on `pull_request` events).
|
||||||
|
|
@ -390,21 +388,21 @@ Tags whose source environment variable is unset are omitted (e.g., `BaseRef` and
|
||||||
_Note: all tag values must conform to
|
_Note: all tag values must conform to
|
||||||
[the tag requirements][sts-tag-requirements].
|
[the tag requirements][sts-tag-requirements].
|
||||||
Values longer than 256 characters will be truncated, and characters outside the
|
Values longer than 256 characters will be truncated, and characters outside the
|
||||||
allowed set will be replaced with an underscore (`_`)._
|
allowed set will be replaced with an underscore (`_`).\_
|
||||||
|
|
||||||
[sts-tag-requirements]:
|
[sts-tag-requirements]:
|
||||||
https://docs.aws.amazon.com/STS/latest/APIReference/API_Tag.html
|
https://docs.aws.amazon.com/STS/latest/APIReference/API_Tag.html
|
||||||
|
|
||||||
The action will use session tagging by default unless you are using OIDC or a
|
The action will use session tagging by default unless you are using OIDC.
|
||||||
Web Identify Token File.
|
|
||||||
|
|
||||||
To [forward session tags to subsequent sessions in a role
|
To [forward session tags to subsequent sessions in a role
|
||||||
chain][session-tag-chaining], you can use the `transitive-tag-keys` input to
|
chain][session-tag-chaining], you can use
|
||||||
specify the keys of the tags to be passed.
|
|
||||||
|
|
||||||
[session-tag-chaining]:
|
[session-tag-chaining]:
|
||||||
https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining
|
https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining
|
||||||
|
|
||||||
|
the `transitive-tag-keys` input to specify the keys of the tags to be passed.
|
||||||
|
|
||||||
_Note that all subsequent roles in the chain must have
|
_Note that all subsequent roles in the chain must have
|
||||||
`role-skip-session-tagging` set to `true`_
|
`role-skip-session-tagging` set to `true`_
|
||||||
|
|
||||||
|
|
@ -421,10 +419,9 @@ with:
|
||||||
### Custom session tags
|
### Custom session tags
|
||||||
|
|
||||||
You can add custom session tags using the `custom-tags` input, which accepts a
|
You can add custom session tags using the `custom-tags` input, which accepts a
|
||||||
JSON object. Custom tags cannot override existing tags. Note that AWS allows a
|
JSON object. Custom tags cannot override protected tags, but they can override
|
||||||
maximum of 50 tags (so you can supply a maximum of 43 custom tags), although it
|
overrideable tags (in which case the overrideable tag's slot is freed for the
|
||||||
is likely that you will exceed the [packed size limit][packed-size-limit]
|
next overrideable tag in the priority list, if any).
|
||||||
before you exceed the maximum number of tags.
|
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
uses: aws-actions/configure-aws-credentials@v6
|
uses: aws-actions/configure-aws-credentials@v6
|
||||||
|
|
@ -590,7 +587,7 @@ claims ([1][gh-blog-oidc], [2][sub-claim-custom]).
|
||||||
|
|
||||||
> **Warning:** Avoid `ForAllValues:` in `Allow` statements. These operators
|
> **Warning:** Avoid `ForAllValues:` in `Allow` statements. These operators
|
||||||
> return true when the claim is absent or misspelled, which can lead to
|
> return true when the claim is absent or misspelled, which can lead to
|
||||||
> unintended access. Instead, use `StringEquals` or `StringLike` operators to
|
> uninended access. Instead, use `StringEquals` or `StringLike` operators to
|
||||||
> check for specific claim values.
|
> check for specific claim values.
|
||||||
|
|
||||||
[least-privilege]:
|
[least-privilege]:
|
||||||
|
|
@ -623,34 +620,13 @@ For further information on OIDC and GitHub Actions, please see:
|
||||||
- [GitHub docs: Configuring OpenID Connect in Amazon Web Services](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services)
|
- [GitHub docs: Configuring OpenID Connect in Amazon Web Services](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services)
|
||||||
- [GitHub changelog: GitHub Actions: Secure cloud deployments with OpenID Connect](https://github.blog/changelog/2021-10-27-github-actions-secure-cloud-deployments-with-openid-connect/)
|
- [GitHub changelog: GitHub Actions: Secure cloud deployments with OpenID Connect](https://github.blog/changelog/2021-10-27-github-actions-secure-cloud-deployments-with-openid-connect/)
|
||||||
|
|
||||||
## Getting Credentials in AWS Self-Hosted Runners
|
## Running in AWS Containers
|
||||||
|
|
||||||
If you are running GitHub Actions in a self-hosted runner using an AWS Service
|
To run this action using self-hosted action runners on AWS Containers such as
|
||||||
(such as Codebuild or EKS) and you have properly configured the service,
|
Codebuild or EKS, you may need to set `role-chaining: true`.
|
||||||
credentials should be available by default; the AWS CLI will fetch credentials
|
|
||||||
using the AWS_CONTAINER_CREDENTIALS_FULL_URI or
|
|
||||||
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI environment variables. However, you may
|
|
||||||
still want to use this action if you need to export those credentials for use
|
|
||||||
with other tools in your workflow. You may also want to use this action in
|
|
||||||
scenarios where you need to use that 'default' role to assume another role.
|
|
||||||
|
|
||||||
To export credentials, simply run the action with `role-to-assume` set to the
|
If you are using EKS and encountering an error related to the packed size of
|
||||||
default role of the container.
|
session tags, set `role-skip-session-tagging: true`.
|
||||||
|
|
||||||
To assume another role from the container's default role, use the
|
|
||||||
`role-chaining: true` flag, so that the action fetches the default credentials
|
|
||||||
from the environment before assuming the other role.
|
|
||||||
|
|
||||||
If you are using EKS Pod Identities and encountering an error related to the
|
|
||||||
packed size of session tags, you must either run the action with
|
|
||||||
`role-skip-session-tagging: true` to disable the tags set by the action, or
|
|
||||||
[disable EKS session tagging][eks-disable-session-tagging] in the EKS settings
|
|
||||||
to disable the tags that are automatically set by the EKS Pod Identity Service.
|
|
||||||
Check the values of the action's session tags and the session tags that are
|
|
||||||
added by EKS so you can keep the set of tags which is more useful to you.
|
|
||||||
|
|
||||||
[eks-disable-session-tagging]:
|
|
||||||
https://docs.aws.amazon.com/eks/latest/userguide/pod-id-abac.html#pod-id-abac-tags
|
|
||||||
|
|
||||||
## Compatibility with non-GitHub Actions environments
|
## Compatibility with non-GitHub Actions environments
|
||||||
|
|
||||||
|
|
|
||||||
14
THIRD-PARTY
14
THIRD-PARTY
|
|
@ -855,7 +855,7 @@ Apache License
|
||||||
The following npm packages may be included in this product:
|
The following npm packages may be included in this product:
|
||||||
|
|
||||||
- @aws-sdk/signature-v4-multi-region@3.996.27
|
- @aws-sdk/signature-v4-multi-region@3.996.27
|
||||||
- @smithy/core@3.24.5
|
- @smithy/core@3.24.3
|
||||||
- @smithy/types@4.14.2
|
- @smithy/types@4.14.2
|
||||||
|
|
||||||
These packages each contain the following license:
|
These packages each contain the following license:
|
||||||
|
|
@ -1254,7 +1254,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
The following npm package may be included in this product:
|
The following npm package may be included in this product:
|
||||||
|
|
||||||
- @aws-sdk/core@3.974.15
|
- @aws-sdk/core@3.974.12
|
||||||
|
|
||||||
This package contains the following license:
|
This package contains the following license:
|
||||||
|
|
||||||
|
|
@ -1674,18 +1674,18 @@ Apache License
|
||||||
|
|
||||||
The following npm packages may be included in this product:
|
The following npm packages may be included in this product:
|
||||||
|
|
||||||
- @aws-sdk/credential-provider-env@3.972.41
|
- @aws-sdk/credential-provider-env@3.972.38
|
||||||
- @aws-sdk/credential-provider-ini@3.972.42
|
- @aws-sdk/credential-provider-ini@3.972.42
|
||||||
- @aws-sdk/credential-provider-node@3.972.43
|
- @aws-sdk/credential-provider-node@3.972.43
|
||||||
- @aws-sdk/token-providers@3.1049.0
|
- @aws-sdk/token-providers@3.1049.0
|
||||||
- @aws-sdk/types@3.973.9
|
- @aws-sdk/types@3.973.8
|
||||||
- @aws-sdk/util-locate-window@3.965.5
|
- @aws-sdk/util-locate-window@3.965.5
|
||||||
- @aws-sdk/xml-builder@3.972.26
|
- @aws-sdk/xml-builder@3.972.24
|
||||||
- @smithy/credential-provider-imds@4.3.3
|
- @smithy/credential-provider-imds@4.3.3
|
||||||
- @smithy/fetch-http-handler@5.4.3
|
- @smithy/fetch-http-handler@5.4.3
|
||||||
- @smithy/is-array-buffer@2.2.0
|
- @smithy/is-array-buffer@2.2.0
|
||||||
- @smithy/node-http-handler@4.7.3
|
- @smithy/node-http-handler@4.7.3
|
||||||
- @smithy/signature-v4@5.4.5
|
- @smithy/signature-v4@5.4.3
|
||||||
- @smithy/util-buffer-from@2.2.0
|
- @smithy/util-buffer-from@2.2.0
|
||||||
- @smithy/util-utf8@2.3.0
|
- @smithy/util-utf8@2.3.0
|
||||||
|
|
||||||
|
|
@ -2335,7 +2335,7 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
The following npm packages may be included in this product:
|
The following npm packages may be included in this product:
|
||||||
|
|
||||||
- @nodable/entities@2.1.1
|
- @nodable/entities@2.1.0
|
||||||
- quickjs-wasi@2.2.0
|
- quickjs-wasi@2.2.0
|
||||||
- xml-naming@0.1.0
|
- xml-naming@0.1.0
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ inputs:
|
||||||
description: Use the web identity token file from the provided file system path in order to assume an IAM role using a web identity, e.g. from within an Amazon EKS worker node.
|
description: Use the web identity token file from the provided file system path in order to assume an IAM role using a web identity, e.g. from within an Amazon EKS worker node.
|
||||||
required: false
|
required: false
|
||||||
role-chaining:
|
role-chaining:
|
||||||
description: Use existing credentials from the environment to assume a new role, rather than providing credentials as input.
|
description: Use existing credentials from the environment to assume a new role, rather than providing credentials as input. This is sometimes useful when running on a self-hosted runner with container-sourced credentials.
|
||||||
required: false
|
required: false
|
||||||
audience:
|
audience:
|
||||||
description: The audience to use for the OIDC provider
|
description: The audience to use for the OIDC provider
|
||||||
|
|
|
||||||
3741
dist/index.js
generated
vendored
3741
dist/index.js
generated
vendored
File diff suppressed because it is too large
Load diff
391
package-lock.json
generated
391
package-lock.json
generated
|
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "configure-aws-credentials",
|
"name": "configure-aws-credentials",
|
||||||
"version": "6.2.0",
|
"version": "6.1.1",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "configure-aws-credentials",
|
"name": "configure-aws-credentials",
|
||||||
"version": "6.2.0",
|
"version": "6.1.1",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": "^3.0.1",
|
"@actions/core": "^3.0.1",
|
||||||
|
|
@ -15,11 +15,11 @@
|
||||||
"proxy-agent": "^8.0.1"
|
"proxy-agent": "^8.0.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@aws-sdk/credential-provider-env": "^3.972.39",
|
"@aws-sdk/credential-provider-env": "^3.972.38",
|
||||||
"@biomejs/biome": "2.4.15",
|
"@biomejs/biome": "2.4.15",
|
||||||
"@smithy/property-provider": "^4.3.4",
|
"@smithy/property-provider": "^4.3.3",
|
||||||
"@types/node": "^25.9.1",
|
"@types/node": "^25.9.0",
|
||||||
"@vitest/coverage-v8": "4.1.5",
|
"@vitest/coverage-v8": "^4.1.6",
|
||||||
"aws-sdk-client-mock": "^4.1.0",
|
"aws-sdk-client-mock": "^4.1.0",
|
||||||
"esbuild": "^0.28.0",
|
"esbuild": "^0.28.0",
|
||||||
"generate-license-file": "^4.1.1",
|
"generate-license-file": "^4.1.1",
|
||||||
|
|
@ -28,7 +28,7 @@
|
||||||
"memfs": "^4.57.2",
|
"memfs": "^4.57.2",
|
||||||
"standard-version": "^9.5.0",
|
"standard-version": "^9.5.0",
|
||||||
"typescript": "^6.0.3",
|
"typescript": "^6.0.3",
|
||||||
"vitest": "4.1.5"
|
"vitest": "^4.1.6"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 16.3.0"
|
"node": ">= 16.3.0"
|
||||||
|
|
@ -155,17 +155,17 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@aws-sdk/core": {
|
"node_modules/@aws-sdk/core": {
|
||||||
"version": "3.974.15",
|
"version": "3.974.12",
|
||||||
"resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.974.15.tgz",
|
"resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.974.12.tgz",
|
||||||
"integrity": "sha512-UpA0rTGW/tHGITcCqHisbuuEPraYg9GG+mWmXjY5+RxZBMLGe6aL9oe0ix50LztwAcPIkGZLH0yWdMIkCM10hw==",
|
"integrity": "sha512-qrqgioqYFjwR6LatVNS1L2Vk++EwRIxqSQXPKNv5Ofux2D8UNgqMQ1znnMyEImXquVPTtbf71fc128pvmU6y9A==",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@aws-sdk/types": "^3.973.9",
|
"@aws-sdk/types": "^3.973.8",
|
||||||
"@aws-sdk/xml-builder": "^3.972.26",
|
"@aws-sdk/xml-builder": "^3.972.24",
|
||||||
"@aws/lambda-invoke-store": "^0.2.2",
|
"@aws/lambda-invoke-store": "^0.2.2",
|
||||||
"@smithy/core": "^3.24.5",
|
"@smithy/core": "^3.24.2",
|
||||||
"@smithy/signature-v4": "^5.4.5",
|
"@smithy/signature-v4": "^5.4.2",
|
||||||
"@smithy/types": "^4.14.2",
|
"@smithy/types": "^4.14.1",
|
||||||
"bowser": "^2.11.0",
|
"bowser": "^2.11.0",
|
||||||
"tslib": "^2.6.2"
|
"tslib": "^2.6.2"
|
||||||
},
|
},
|
||||||
|
|
@ -174,15 +174,15 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@aws-sdk/credential-provider-env": {
|
"node_modules/@aws-sdk/credential-provider-env": {
|
||||||
"version": "3.972.41",
|
"version": "3.972.38",
|
||||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.41.tgz",
|
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.38.tgz",
|
||||||
"integrity": "sha512-n1EbJ98yvPWWdHZZv8bRBMqqDQJrtgtxyJ4xLy2Uqrh25BCOZQ7nnS1CsFXvuH8r0b0KVHDZEGEH5FxmEMP8jg==",
|
"integrity": "sha512-m3WjZEgPtioMhPmwqUt+DhlTJ2i9ufR6DhfkyXojb9puEvfR+ur2U5shavu5/Cc9WHHsDCvALi6UFHgcqjhQ5w==",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@aws-sdk/core": "^3.974.15",
|
"@aws-sdk/core": "^3.974.12",
|
||||||
"@aws-sdk/types": "^3.973.9",
|
"@aws-sdk/types": "^3.973.8",
|
||||||
"@smithy/core": "^3.24.5",
|
"@smithy/core": "^3.24.2",
|
||||||
"@smithy/types": "^4.14.2",
|
"@smithy/types": "^4.14.1",
|
||||||
"tslib": "^2.6.2"
|
"tslib": "^2.6.2"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
|
|
@ -376,12 +376,12 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@aws-sdk/types": {
|
"node_modules/@aws-sdk/types": {
|
||||||
"version": "3.973.9",
|
"version": "3.973.8",
|
||||||
"resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.973.9.tgz",
|
"resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.973.8.tgz",
|
||||||
"integrity": "sha512-kuBfgQVdcz5Bmapc4A13YbpVw/pXkesfhetcFYwbntqas8sF41OHyd4o28+/TG2ZQdHBsv90Lsu5y6oitvYCdg==",
|
"integrity": "sha512-gjlAdtHMbtR9X5iIhVUvbVcy55KnznpC6bkDUWW9z915bi0ckdUr5cjf16Kp6xq0bP5HBD2xzgbL9F9Quv5vUw==",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@smithy/types": "^4.14.2",
|
"@smithy/types": "^4.14.1",
|
||||||
"tslib": "^2.6.2"
|
"tslib": "^2.6.2"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
|
|
@ -401,12 +401,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@aws-sdk/xml-builder": {
|
"node_modules/@aws-sdk/xml-builder": {
|
||||||
"version": "3.972.26",
|
"version": "3.972.24",
|
||||||
"resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.26.tgz",
|
"resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.24.tgz",
|
||||||
"integrity": "sha512-cDbrqvDS73whl6YAPSPq0U6whzG6UWI9PuWh0wrUuGoZexhWEqhdunbukV7iBoaWnFV1AODutM5hOD6rtn439g==",
|
"integrity": "sha512-V8z5YcDPfsvzrBlj0xR1vhRtocblhYbqdreCJB/voGd4Sr5zjNAeWxexbnqVtskTJe0vFb5KMqbSL++ePl+zRw==",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@smithy/types": "^4.14.2",
|
"@nodable/entities": "2.1.0",
|
||||||
|
"@smithy/types": "^4.14.1",
|
||||||
"fast-xml-parser": "5.7.3",
|
"fast-xml-parser": "5.7.3",
|
||||||
"tslib": "^2.6.2"
|
"tslib": "^2.6.2"
|
||||||
},
|
},
|
||||||
|
|
@ -1682,9 +1683,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@nodable/entities": {
|
"node_modules/@nodable/entities": {
|
||||||
"version": "2.1.1",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/@nodable/entities/-/entities-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/@nodable/entities/-/entities-2.1.0.tgz",
|
||||||
"integrity": "sha512-Pig3HxDIoMgjdEH8OCf/dkcTmLFjJRjWuq8jSnklu284/TKOPibSRERmOykiwmyXTtv61mP+44f3GMx0tLAyjg==",
|
"integrity": "sha512-nyT7T3nbMyBI/lvr6L5TyWbFJAI9FTgVRakNoBqCD+PmID8DzFrrNdLLtHMwMszOtqZa8PAOV24ZqDnQrhQINA==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "github",
|
"type": "github",
|
||||||
|
|
@ -1971,9 +1972,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@oxc-project/types": {
|
"node_modules/@oxc-project/types": {
|
||||||
"version": "0.132.0",
|
"version": "0.129.0",
|
||||||
"resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.132.0.tgz",
|
"resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.129.0.tgz",
|
||||||
"integrity": "sha512-FESMOxil5Se014ui/Eq8fT5uHJo6nIRwH0PfJrZJXs6Gek3ZVFOrpUv3YIZT20m+extU98Hg1Ym72U58rlsxUQ==",
|
"integrity": "sha512-3oz8m3FGdr2nDXVqmFUw7jolKliC4MoyXYIG2c7gpjBnzUWQpUGIYcXYKxTdTi+N2jusvt610ckTMkxdwHkYEg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"funding": {
|
"funding": {
|
||||||
|
|
@ -1981,9 +1982,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@rolldown/binding-android-arm64": {
|
"node_modules/@rolldown/binding-android-arm64": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0.tgz",
|
||||||
"integrity": "sha512-ZS4D1JPGn/MYQN/SYDWftIE/nVsM8j/AFOYEzAoOE2O3NktQOZru+/vYXGbR/qtdLdIfGCP0lcoJiYVzsEz+iQ==",
|
"integrity": "sha512-TWMZnRLMe63C2Lhyicviu7ZHaU4kxa6PS3rofvc9GmcvptzNN11BcfQ4Sl7MwTOsisQoa2keB/EBdNCAnUo8vA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
|
|
@ -1998,9 +1999,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@rolldown/binding-darwin-arm64": {
|
"node_modules/@rolldown/binding-darwin-arm64": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0.tgz",
|
||||||
"integrity": "sha512-vdFA9+C/rekyGce7WqHs/xoT0ioZEWaOFyZLIV1mEeNFaFDUQrPIo8Vs2GvJ6eetb3rzDUtUBgzto3ExpXJB3w==",
|
"integrity": "sha512-6XcD+8k0gPVItNagEw78/qqcBDwKcwDYS8V2hRmVsfUSIrd8cWe/CBvRDI5toqFyPfj+FJr6t8U6Xj2P2prEew==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
|
|
@ -2015,9 +2016,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@rolldown/binding-darwin-x64": {
|
"node_modules/@rolldown/binding-darwin-x64": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0.tgz",
|
||||||
"integrity": "sha512-BewSOwTHazv77DTYiAZXSqqKZ4KP/KonFisDMVU7PImxoWfB2aepnPhd2E4SWz3zDzYgDNbs6jBmTdgNnF02GA==",
|
"integrity": "sha512-iN/tWVXRQDWvmZlKdceP1Dwug9GDpEymhb9p4xnEe6zvCg5lFmzVljl+1qR1NVx3yfGpr2Na+CuLmv5IU8uzfQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
|
|
@ -2032,9 +2033,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@rolldown/binding-freebsd-x64": {
|
"node_modules/@rolldown/binding-freebsd-x64": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0.tgz",
|
||||||
"integrity": "sha512-m41o7M0YWtUdqk61Tb+jnKb2rN++iRdIASlExkUoKfIAH30DOHCB8fVLzSUpbWHHU8esmEioY62PxzexE8MBuA==",
|
"integrity": "sha512-jjQMDvvwSOuhOwMszD/klSOjyWMM3zI64hWTj9KT5x4MxRbZAf+7vLQ6qouRhtsLVFHr3f0ILaJAfgENPiQdAQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
|
|
@ -2049,9 +2050,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@rolldown/binding-linux-arm-gnueabihf": {
|
"node_modules/@rolldown/binding-linux-arm-gnueabihf": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0.tgz",
|
||||||
"integrity": "sha512-jcojB9H7W/jS29pMKWAK1N+fU99vXodHDTatS3b3y/XSOCiHo0kkA74pL3jJmkoQtYpOCxDvaKs1fo2Ij/1X5w==",
|
"integrity": "sha512-d//Dtg2x6/m3mbV64yUGNnDGNZaDGRpDLLNGerHQUVObuNaIQaaDp25yUiqGXtHEXX+NP2d0wAlmKgpYgIAJ2A==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm"
|
"arm"
|
||||||
],
|
],
|
||||||
|
|
@ -2066,16 +2067,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@rolldown/binding-linux-arm64-gnu": {
|
"node_modules/@rolldown/binding-linux-arm64-gnu": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0.tgz",
|
||||||
"integrity": "sha512-1jn6qDU5iiOgFgygDzKUuKP0maTi0/f1+sBLgvij/76C77Nm3ts6ufz9Bjg5q5dduxiUIxtq86JIoBvo1xQ4Ig==",
|
"integrity": "sha512-n7Ofp0mx+aB2cC+Sdy5YtMnXtY9lchnHbY+3Yt0uq9JsWQExf4f5Whu0tK0R8Jdc9S6RchTHjIFY7uc92puOVQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"libc": [
|
|
||||||
"glibc"
|
|
||||||
],
|
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
|
|
@ -2086,16 +2084,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@rolldown/binding-linux-arm64-musl": {
|
"node_modules/@rolldown/binding-linux-arm64-musl": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0.tgz",
|
||||||
"integrity": "sha512-QVLO/czFMdoMFSqlX3bcswcJNm/23r+qoa/jgtmFc/qEp6/jXmIkDjF/XIo8dPfGaiwy1xfQn8o77L79GeXFgw==",
|
"integrity": "sha512-EIVjy2cgd7uuMMo94FVkBp7F6DhcZAUwNURkSG3RwUmvAXR6s0ISxM81U+IydcZByPG0pZIHsf1b6kTxoFDgJA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"libc": [
|
|
||||||
"musl"
|
|
||||||
],
|
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
|
|
@ -2106,16 +2101,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@rolldown/binding-linux-ppc64-gnu": {
|
"node_modules/@rolldown/binding-linux-ppc64-gnu": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0.tgz",
|
||||||
"integrity": "sha512-hgO5Abm0w5UL6FEa2iFnZqo2KlK7TQ5QhV5x09hujBf7t5KzHQ1VmfPuTpqRy/rNlSxua3eWH374xxiVrP+lcA==",
|
"integrity": "sha512-JEwwOPcwTLAcpDQlqSmjEmfs63xJnSiUNIGvLcDLUHCWK4XowpS/7c7tUsUH6uT/ct6bMUTdXKfI8967FYj6mg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"ppc64"
|
"ppc64"
|
||||||
],
|
],
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"libc": [
|
|
||||||
"glibc"
|
|
||||||
],
|
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
|
|
@ -2126,16 +2118,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@rolldown/binding-linux-s390x-gnu": {
|
"node_modules/@rolldown/binding-linux-s390x-gnu": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0.tgz",
|
||||||
"integrity": "sha512-fy8rXxuYEu602abC8MUNaPjYLIFzReOaEIEMKMUa0rFEUxNpVXhs15KSSQ4qlqSaM7B6rcj9rDZgADh/IGDzLQ==",
|
"integrity": "sha512-0wjCFhLrihtAubnT9iA0N++0pSV0z5Hg7tNGdNJ4RFaINceHadoF+kiFGyY1qSSNVIAZtLotG8Ju1bgDPkjnFA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"s390x"
|
"s390x"
|
||||||
],
|
],
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"libc": [
|
|
||||||
"glibc"
|
|
||||||
],
|
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
|
|
@ -2146,16 +2135,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@rolldown/binding-linux-x64-gnu": {
|
"node_modules/@rolldown/binding-linux-x64-gnu": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0.tgz",
|
||||||
"integrity": "sha512-0+bOkiQ779+r1WpoHOWHqncvyySci0vKph+myNDYb+im6meJAzHQXay6oEgnkHuUGouM1LKTZwqKpBow6Kj7CQ==",
|
"integrity": "sha512-Dfn7iak9BcMMePxcoJfpSbWqnEyrp/dRF63/8qW/eHBdOZov6x5aShLLEYGYdIeSJ6vMLK/XCVB+lGIxm41bQA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"libc": [
|
|
||||||
"glibc"
|
|
||||||
],
|
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
|
|
@ -2166,16 +2152,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@rolldown/binding-linux-x64-musl": {
|
"node_modules/@rolldown/binding-linux-x64-musl": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0.tgz",
|
||||||
"integrity": "sha512-mjSkrzZK5Qsl0a9d1JgILOiuZOSDTVdKENcSXBoqbzSrspLR/4/IRVDo5wd2GgZjNss/viBFJdeq+j7qH2nypw==",
|
"integrity": "sha512-5/utzzDmD/pD/bmuaUcbTf/sZYy0aztwIVlfpoW1fTjCZ0BaPOMVWGZL1zvgxyi7ZIVYWlxKONHmSbHuiOh8Jw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"libc": [
|
|
||||||
"musl"
|
|
||||||
],
|
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
|
|
@ -2186,9 +2169,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@rolldown/binding-openharmony-arm64": {
|
"node_modules/@rolldown/binding-openharmony-arm64": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0.tgz",
|
||||||
"integrity": "sha512-1v5vHasdfQAZoEHakBV72LIFAC9JjnymsiKxp+GEr/ma3+NJCPSaYK+qavInOovJkgwFrs7GccX2d6IgDA3Z5w==",
|
"integrity": "sha512-ouJs8VcUomfLfpbUECqFMRqdV4x6aeAK3MA4m6vTrJJjKyWTV5KnxZx7Jd9G+GlDaQQxubcba00x16OyJ1meig==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
|
|
@ -2203,9 +2186,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@rolldown/binding-wasm32-wasi": {
|
"node_modules/@rolldown/binding-wasm32-wasi": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0.tgz",
|
||||||
"integrity": "sha512-mb1VobWn6NheziTk5/WEaR6AKVbrwT5sOi6C7zk3gy/pD1qtJfU1j4PgTo2NJnOtbL9Dl3Aeei8w9jJ7qC2jZQ==",
|
"integrity": "sha512-E+oHKGiDA+lsKMmFtffDDw91EryDT7uJocrIuCHqhm6bCTM6xFK+3gaCkYOHfPwQr0cCNarSM2xaELoQDz9jJg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"wasm32"
|
"wasm32"
|
||||||
],
|
],
|
||||||
|
|
@ -2222,9 +2205,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@rolldown/binding-win32-arm64-msvc": {
|
"node_modules/@rolldown/binding-win32-arm64-msvc": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0.tgz",
|
||||||
"integrity": "sha512-SqKonF56vA/L2yHwHYcEp2P34URpOZ7d1fS635cTkpDnUtEGdUbhI6NzsPdqeSWvAAeGDrxjWjNmibDIdFf9/A==",
|
"integrity": "sha512-yYK02n8Rngo+gbm1y6G0+7jk1sJ/2Wt7K0me0Y7k/ErBpyf+LJ2gFpqWVTcRV1rUepBlQRmpgWkTQCiiwrK0Ow==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
|
|
@ -2239,9 +2222,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@rolldown/binding-win32-x64-msvc": {
|
"node_modules/@rolldown/binding-win32-x64-msvc": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0.tgz",
|
||||||
"integrity": "sha512-v7qRI7gXLRINcOGXt+7YmAZ6iFuyZVMIoXAxhd8oP+DR9dLfL9GfNIx7PLMxmhZdvq8waUJBQiWN9EKNy+TRBQ==",
|
"integrity": "sha512-14bpChMahXRRXiTwahSl+zzHPW6qQTXtkMuJBFlbo+pqSAews2d4BdCSHfrJ/MBsCZtpmTafsY+1QhBzitcmdg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
|
|
@ -2256,9 +2239,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@rolldown/pluginutils": {
|
"node_modules/@rolldown/pluginutils": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0.tgz",
|
||||||
"integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==",
|
"integrity": "sha512-aKs/3GSWyV0mrhNmt/96/Z3yczC3yvrzYATCiCXQebBsGyYzjNdUphRVLeJQ67ySKVXRfMxt2lm12pmXvbPFQQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
|
@ -2384,9 +2367,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@smithy/core": {
|
"node_modules/@smithy/core": {
|
||||||
"version": "3.24.5",
|
"version": "3.24.3",
|
||||||
"resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.24.5.tgz",
|
"resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.24.3.tgz",
|
||||||
"integrity": "sha512-Kt8phUg45M15EjhYAbZ+fFikYneijLu9Liugz8ZsYz2i8j0hzGv27LWKpEHYRfvj+LyCOSijpcR/2i8RouV+cA==",
|
"integrity": "sha512-Ep/7tPamGY8mgESE3LyLKtxJyy6U52WWAqr/3wial47Sj4u3PiIF73AOGI27UyLy9duTkhZbgzodOfLV4TduZg==",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@aws-crypto/crc32": "5.2.0",
|
"@aws-crypto/crc32": "5.2.0",
|
||||||
|
|
@ -2452,13 +2435,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@smithy/property-provider": {
|
"node_modules/@smithy/property-provider": {
|
||||||
"version": "4.3.5",
|
"version": "4.3.3",
|
||||||
"resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.3.5.tgz",
|
"resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.3.3.tgz",
|
||||||
"integrity": "sha512-QNc22/FgfEm/9/rkefShfQUVckH3HWiQ2RPs+40hwAdY65hbg88gombeHwkfMzmVDZjolcyQeyOjnxZRmpavIA==",
|
"integrity": "sha512-nmeVi9Ww/RMyttqj1Dh0PA+iVieKm4dxDlnT6tNP118O/5U/Qqb9b3DV5A3RX+slR/m4/MABSZ2zNfSkpVV8dw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@smithy/core": "^3.24.5",
|
"@smithy/core": "^3.24.3",
|
||||||
"tslib": "^2.6.2"
|
"tslib": "^2.6.2"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
|
|
@ -2466,12 +2449,12 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@smithy/signature-v4": {
|
"node_modules/@smithy/signature-v4": {
|
||||||
"version": "5.4.5",
|
"version": "5.4.3",
|
||||||
"resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.4.5.tgz",
|
"resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.4.3.tgz",
|
||||||
"integrity": "sha512-QBJKWGqIknH0dc9LWpfH1mkdokAx6iXYN3UcQ3eY6uIEyScuoQAhfl94ge7ozUy9WgFUdE8xsvwBjaYBbWmPNA==",
|
"integrity": "sha512-53+75QuPl6DL+ct6vVEB51FDO5oulXr20TPV46VvJZg76lIlXNWfxi8j+G2V/t0I2qxCBOa3vX/8bmjrpFVo9g==",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@smithy/core": "^3.24.5",
|
"@smithy/core": "^3.24.3",
|
||||||
"@smithy/types": "^4.14.2",
|
"@smithy/types": "^4.14.2",
|
||||||
"tslib": "^2.6.2"
|
"tslib": "^2.6.2"
|
||||||
},
|
},
|
||||||
|
|
@ -2616,9 +2599,9 @@
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@types/node": {
|
"node_modules/@types/node": {
|
||||||
"version": "25.9.1",
|
"version": "25.9.0",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.1.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.0.tgz",
|
||||||
"integrity": "sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==",
|
"integrity": "sha512-AOQwYUNolgy3VosiRqXrACUXTN8nJUtPl7FJXMqZVyxiiCLhQuG3jXKvCS1ALr+Y2OmZhzzLVlYPEqJaiqkaJQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
@ -2657,14 +2640,14 @@
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@vitest/coverage-v8": {
|
"node_modules/@vitest/coverage-v8": {
|
||||||
"version": "4.1.5",
|
"version": "4.1.6",
|
||||||
"resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.6.tgz",
|
||||||
"integrity": "sha512-38C0/Ddb7HcRG0Z4/DUem8x57d2p9jYgp18mkaYswEOQBGsI1CG4f/hjm0ZCeaJfWhSZ4k7jgs29V1Zom7Ki9A==",
|
"integrity": "sha512-36l628fQ/9a/8ihy97eOtEnvWQEdqULQOJtcaxtoNq0G1w3Mxd4szSahOaMM9/NGyZ+hyKcMtIW/WIxq0XQViQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@bcoe/v8-coverage": "^1.0.2",
|
"@bcoe/v8-coverage": "^1.0.2",
|
||||||
"@vitest/utils": "4.1.5",
|
"@vitest/utils": "4.1.6",
|
||||||
"ast-v8-to-istanbul": "^1.0.0",
|
"ast-v8-to-istanbul": "^1.0.0",
|
||||||
"istanbul-lib-coverage": "^3.2.2",
|
"istanbul-lib-coverage": "^3.2.2",
|
||||||
"istanbul-lib-report": "^3.0.1",
|
"istanbul-lib-report": "^3.0.1",
|
||||||
|
|
@ -2678,8 +2661,8 @@
|
||||||
"url": "https://opencollective.com/vitest"
|
"url": "https://opencollective.com/vitest"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@vitest/browser": "4.1.5",
|
"@vitest/browser": "4.1.6",
|
||||||
"vitest": "4.1.5"
|
"vitest": "4.1.6"
|
||||||
},
|
},
|
||||||
"peerDependenciesMeta": {
|
"peerDependenciesMeta": {
|
||||||
"@vitest/browser": {
|
"@vitest/browser": {
|
||||||
|
|
@ -2688,16 +2671,16 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vitest/expect": {
|
"node_modules/@vitest/expect": {
|
||||||
"version": "4.1.5",
|
"version": "4.1.6",
|
||||||
"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.6.tgz",
|
||||||
"integrity": "sha512-PWBaRY5JoKuRnHlUHfpV/KohFylaDZTupcXN1H9vYryNLOnitSw60Mw9IAE2r67NbwwzBw/Cc/8q9BK3kIX8Kw==",
|
"integrity": "sha512-7EHDquPthALSV0jhhjgEW8FXaviMx7rSqu8W6oqCoAuOhKov814P99QDV1pxMA3QPv21YudvJngIhjrNI4opLg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@standard-schema/spec": "^1.1.0",
|
"@standard-schema/spec": "^1.1.0",
|
||||||
"@types/chai": "^5.2.2",
|
"@types/chai": "^5.2.2",
|
||||||
"@vitest/spy": "4.1.5",
|
"@vitest/spy": "4.1.6",
|
||||||
"@vitest/utils": "4.1.5",
|
"@vitest/utils": "4.1.6",
|
||||||
"chai": "^6.2.2",
|
"chai": "^6.2.2",
|
||||||
"tinyrainbow": "^3.1.0"
|
"tinyrainbow": "^3.1.0"
|
||||||
},
|
},
|
||||||
|
|
@ -2706,13 +2689,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vitest/mocker": {
|
"node_modules/@vitest/mocker": {
|
||||||
"version": "4.1.5",
|
"version": "4.1.6",
|
||||||
"resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.6.tgz",
|
||||||
"integrity": "sha512-/x2EmFC4mT4NNzqvC3fmesuV97w5FC903KPmey4gsnJiMQ3Be1IlDKVaDaG8iqaLFHqJ2FVEkxZk5VmeLjIItw==",
|
"integrity": "sha512-MCFc63czMjEInOlcY2cpQCvCN+KgbAn+60xu9cMgP4sKaLC5JNAKw7JH8QdAnoAC88hW1IiSNZ+GgVXlN1UcMQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vitest/spy": "4.1.5",
|
"@vitest/spy": "4.1.6",
|
||||||
"estree-walker": "^3.0.3",
|
"estree-walker": "^3.0.3",
|
||||||
"magic-string": "^0.30.21"
|
"magic-string": "^0.30.21"
|
||||||
},
|
},
|
||||||
|
|
@ -2733,9 +2716,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vitest/pretty-format": {
|
"node_modules/@vitest/pretty-format": {
|
||||||
"version": "4.1.5",
|
"version": "4.1.6",
|
||||||
"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.6.tgz",
|
||||||
"integrity": "sha512-7I3q6l5qr03dVfMX2wCo9FxwSJbPdwKjy2uu/YPpU3wfHvIL4QHwVRp57OfGrDFeUJ8/8QdfBKIV12FTtLn00g==",
|
"integrity": "sha512-h5SxD/IzNhZYnrSZRsUZQIC+vD0GY8cUvq0iwsmkFKixRCKLLWqCXa/FIQ4S1R+sI+PGoojkHsdNrbZiM9Qpgw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
@ -2746,13 +2729,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vitest/runner": {
|
"node_modules/@vitest/runner": {
|
||||||
"version": "4.1.5",
|
"version": "4.1.6",
|
||||||
"resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.6.tgz",
|
||||||
"integrity": "sha512-2D+o7Pr82IEO46YPpoA/YU0neeyr6FTerQb5Ro7BUnBuv6NQtT/kmVnczngiMEBhzgqz2UZYl5gArejsyERDSQ==",
|
"integrity": "sha512-nOPCmn2+yD0ZNmKdsXGv/UxMMWbMuKeD6GyYncNwdkYDxpQvrPSKYj2rWuDjC2Y4b6w6hjip5dBKFzEUuZe3vA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vitest/utils": "4.1.5",
|
"@vitest/utils": "4.1.6",
|
||||||
"pathe": "^2.0.3"
|
"pathe": "^2.0.3"
|
||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
|
|
@ -2760,14 +2743,14 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vitest/snapshot": {
|
"node_modules/@vitest/snapshot": {
|
||||||
"version": "4.1.5",
|
"version": "4.1.6",
|
||||||
"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.6.tgz",
|
||||||
"integrity": "sha512-zypXEt4KH/XgKGPUz4eC2AvErYx0My5hfL8oDb1HzGFpEk1P62bxSohdyOmvz+d9UJwanI68MKwr2EquOaOgMQ==",
|
"integrity": "sha512-YhsdE6xAVfTDmzjxL2ZDUvjj+ZsgyOKe+TdQzqkD72wIOmHka8NuGQ6NpTNZv9D2Z63fbwWKJPeVpEw4EQgYxw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vitest/pretty-format": "4.1.5",
|
"@vitest/pretty-format": "4.1.6",
|
||||||
"@vitest/utils": "4.1.5",
|
"@vitest/utils": "4.1.6",
|
||||||
"magic-string": "^0.30.21",
|
"magic-string": "^0.30.21",
|
||||||
"pathe": "^2.0.3"
|
"pathe": "^2.0.3"
|
||||||
},
|
},
|
||||||
|
|
@ -2776,9 +2759,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vitest/spy": {
|
"node_modules/@vitest/spy": {
|
||||||
"version": "4.1.5",
|
"version": "4.1.6",
|
||||||
"resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.6.tgz",
|
||||||
"integrity": "sha512-2lNOsh6+R2Idnf1TCZqSwYlKN2E/iDlD8sgU59kYVl+OMDmvldO1VDk39smRfpUNwYpNRVn3w4YfuC7KfbBnkQ==",
|
"integrity": "sha512-JFKxMx6udhwKh/Ldo270e17QX710vgunMkuPAvXjHSvC6oqLWAHhVhjg/I71q0u0CBSErIODV1Kjv0FQNSWjdg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"funding": {
|
"funding": {
|
||||||
|
|
@ -2786,13 +2769,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vitest/utils": {
|
"node_modules/@vitest/utils": {
|
||||||
"version": "4.1.5",
|
"version": "4.1.6",
|
||||||
"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.6.tgz",
|
||||||
"integrity": "sha512-76wdkrmfXfqGjueGgnb45ITPyUi1ycZ4IHgC2bhPDUfWHklY/q3MdLOAB+TF1e6xfl8NxNY0ZYaPCFNWSsw3Ug==",
|
"integrity": "sha512-FxIY+U81R3LGKCxaHHFRQ5+g6/iRgGLmeHWdp2Amj4ljQRrEIWHmZyDfDYBRZlpyqA7qKxtS9DD1dhk8RnRIVQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vitest/pretty-format": "4.1.5",
|
"@vitest/pretty-format": "4.1.6",
|
||||||
"convert-source-map": "^2.0.0",
|
"convert-source-map": "^2.0.0",
|
||||||
"tinyrainbow": "^3.1.0"
|
"tinyrainbow": "^3.1.0"
|
||||||
},
|
},
|
||||||
|
|
@ -5447,9 +5430,6 @@
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"libc": [
|
|
||||||
"glibc"
|
|
||||||
],
|
|
||||||
"license": "MPL-2.0",
|
"license": "MPL-2.0",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
|
|
@ -5471,9 +5451,6 @@
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"libc": [
|
|
||||||
"musl"
|
|
||||||
],
|
|
||||||
"license": "MPL-2.0",
|
"license": "MPL-2.0",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
|
|
@ -5495,9 +5472,6 @@
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"libc": [
|
|
||||||
"glibc"
|
|
||||||
],
|
|
||||||
"license": "MPL-2.0",
|
"license": "MPL-2.0",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
|
|
@ -5519,9 +5493,6 @@
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"libc": [
|
|
||||||
"musl"
|
|
||||||
],
|
|
||||||
"license": "MPL-2.0",
|
"license": "MPL-2.0",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
|
|
@ -7478,9 +7449,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/postcss": {
|
"node_modules/postcss": {
|
||||||
"version": "8.5.15",
|
"version": "8.5.14",
|
||||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz",
|
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.14.tgz",
|
||||||
"integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==",
|
"integrity": "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
|
@ -7498,7 +7469,7 @@
|
||||||
],
|
],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"nanoid": "^3.3.12",
|
"nanoid": "^3.3.11",
|
||||||
"picocolors": "^1.1.1",
|
"picocolors": "^1.1.1",
|
||||||
"source-map-js": "^1.2.1"
|
"source-map-js": "^1.2.1"
|
||||||
},
|
},
|
||||||
|
|
@ -7926,14 +7897,14 @@
|
||||||
"license": "ISC"
|
"license": "ISC"
|
||||||
},
|
},
|
||||||
"node_modules/rolldown": {
|
"node_modules/rolldown": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0.tgz",
|
||||||
"integrity": "sha512-oZx5zVDtVB44AW3eaifgDml1gWRDZGvjcfdxonE4swNPG98PrrXjaO/KrnUjzlMnztCCRVlUueA1kCXhARGk6g==",
|
"integrity": "sha512-yD986aXDESFGS95spT1LAv0jssywP4npMEjmMHyN2/5+eE8qQJUype2AaKkRiLgBgyD0LFlubwAht7VmY8rGoA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@oxc-project/types": "=0.132.0",
|
"@oxc-project/types": "=0.129.0",
|
||||||
"@rolldown/pluginutils": "^1.0.0"
|
"@rolldown/pluginutils": "1.0.0"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"rolldown": "bin/cli.mjs"
|
"rolldown": "bin/cli.mjs"
|
||||||
|
|
@ -7942,21 +7913,21 @@
|
||||||
"node": "^20.19.0 || >=22.12.0"
|
"node": "^20.19.0 || >=22.12.0"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"@rolldown/binding-android-arm64": "1.0.2",
|
"@rolldown/binding-android-arm64": "1.0.0",
|
||||||
"@rolldown/binding-darwin-arm64": "1.0.2",
|
"@rolldown/binding-darwin-arm64": "1.0.0",
|
||||||
"@rolldown/binding-darwin-x64": "1.0.2",
|
"@rolldown/binding-darwin-x64": "1.0.0",
|
||||||
"@rolldown/binding-freebsd-x64": "1.0.2",
|
"@rolldown/binding-freebsd-x64": "1.0.0",
|
||||||
"@rolldown/binding-linux-arm-gnueabihf": "1.0.2",
|
"@rolldown/binding-linux-arm-gnueabihf": "1.0.0",
|
||||||
"@rolldown/binding-linux-arm64-gnu": "1.0.2",
|
"@rolldown/binding-linux-arm64-gnu": "1.0.0",
|
||||||
"@rolldown/binding-linux-arm64-musl": "1.0.2",
|
"@rolldown/binding-linux-arm64-musl": "1.0.0",
|
||||||
"@rolldown/binding-linux-ppc64-gnu": "1.0.2",
|
"@rolldown/binding-linux-ppc64-gnu": "1.0.0",
|
||||||
"@rolldown/binding-linux-s390x-gnu": "1.0.2",
|
"@rolldown/binding-linux-s390x-gnu": "1.0.0",
|
||||||
"@rolldown/binding-linux-x64-gnu": "1.0.2",
|
"@rolldown/binding-linux-x64-gnu": "1.0.0",
|
||||||
"@rolldown/binding-linux-x64-musl": "1.0.2",
|
"@rolldown/binding-linux-x64-musl": "1.0.0",
|
||||||
"@rolldown/binding-openharmony-arm64": "1.0.2",
|
"@rolldown/binding-openharmony-arm64": "1.0.0",
|
||||||
"@rolldown/binding-wasm32-wasi": "1.0.2",
|
"@rolldown/binding-wasm32-wasi": "1.0.0",
|
||||||
"@rolldown/binding-win32-arm64-msvc": "1.0.2",
|
"@rolldown/binding-win32-arm64-msvc": "1.0.0",
|
||||||
"@rolldown/binding-win32-x64-msvc": "1.0.2"
|
"@rolldown/binding-win32-x64-msvc": "1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/run-con": {
|
"node_modules/run-con": {
|
||||||
|
|
@ -8593,9 +8564,9 @@
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/tinyexec": {
|
"node_modules/tinyexec": {
|
||||||
"version": "1.2.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.1.2.tgz",
|
||||||
"integrity": "sha512-M/Q0B2cp4K7kynaT/vnED1j8TlLY+Pp7C6Wl2bl/7u/F0mUVwdyOpwomQb8JpYLitHUssAJRmLZdMCGsrx7i+g==",
|
"integrity": "sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
|
|
@ -8817,16 +8788,16 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/vite": {
|
"node_modules/vite": {
|
||||||
"version": "8.0.14",
|
"version": "8.0.12",
|
||||||
"resolved": "https://registry.npmjs.org/vite/-/vite-8.0.14.tgz",
|
"resolved": "https://registry.npmjs.org/vite/-/vite-8.0.12.tgz",
|
||||||
"integrity": "sha512-s4BJJ+5y1pYL6Otw51FHhVJQhPnuRinKig64g/1+EUNaJsd3gCKdD31IPFvswUgW9/60QT9oFHbZHbQK5imcxw==",
|
"integrity": "sha512-w2dDofOWv2QB09ZITZBsvKTVAlYvPR4IAmrY/v0ir9KvLs0xybR7i48wxhM1/oyBWO34wPns+bPGw5ZrZqDpZg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"lightningcss": "^1.32.0",
|
"lightningcss": "^1.32.0",
|
||||||
"picomatch": "^4.0.4",
|
"picomatch": "^4.0.4",
|
||||||
"postcss": "^8.5.15",
|
"postcss": "^8.5.14",
|
||||||
"rolldown": "1.0.2",
|
"rolldown": "1.0.0",
|
||||||
"tinyglobby": "^0.2.16"
|
"tinyglobby": "^0.2.16"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
|
|
@ -8895,19 +8866,19 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/vitest": {
|
"node_modules/vitest": {
|
||||||
"version": "4.1.5",
|
"version": "4.1.6",
|
||||||
"resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.6.tgz",
|
||||||
"integrity": "sha512-9Xx1v3/ih3m9hN+SbfkUyy0JAs72ap3r7joc87XL6jwF0jGg6mFBvQ1SrwaX+h8BlkX6Hz9shdd1uo6AF+ZGpg==",
|
"integrity": "sha512-6lvjbS3p9b4CrdCmguzbh2/4uoXhGE2q71R4OX5sqF9R1bo9Xd6fGrMAfvp5wnCzlBnFVdCOp6onuTQVbo8iUQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vitest/expect": "4.1.5",
|
"@vitest/expect": "4.1.6",
|
||||||
"@vitest/mocker": "4.1.5",
|
"@vitest/mocker": "4.1.6",
|
||||||
"@vitest/pretty-format": "4.1.5",
|
"@vitest/pretty-format": "4.1.6",
|
||||||
"@vitest/runner": "4.1.5",
|
"@vitest/runner": "4.1.6",
|
||||||
"@vitest/snapshot": "4.1.5",
|
"@vitest/snapshot": "4.1.6",
|
||||||
"@vitest/spy": "4.1.5",
|
"@vitest/spy": "4.1.6",
|
||||||
"@vitest/utils": "4.1.5",
|
"@vitest/utils": "4.1.6",
|
||||||
"es-module-lexer": "^2.0.0",
|
"es-module-lexer": "^2.0.0",
|
||||||
"expect-type": "^1.3.0",
|
"expect-type": "^1.3.0",
|
||||||
"magic-string": "^0.30.21",
|
"magic-string": "^0.30.21",
|
||||||
|
|
@ -8935,12 +8906,12 @@
|
||||||
"@edge-runtime/vm": "*",
|
"@edge-runtime/vm": "*",
|
||||||
"@opentelemetry/api": "^1.9.0",
|
"@opentelemetry/api": "^1.9.0",
|
||||||
"@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0",
|
"@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0",
|
||||||
"@vitest/browser-playwright": "4.1.5",
|
"@vitest/browser-playwright": "4.1.6",
|
||||||
"@vitest/browser-preview": "4.1.5",
|
"@vitest/browser-preview": "4.1.6",
|
||||||
"@vitest/browser-webdriverio": "4.1.5",
|
"@vitest/browser-webdriverio": "4.1.6",
|
||||||
"@vitest/coverage-istanbul": "4.1.5",
|
"@vitest/coverage-istanbul": "4.1.6",
|
||||||
"@vitest/coverage-v8": "4.1.5",
|
"@vitest/coverage-v8": "4.1.6",
|
||||||
"@vitest/ui": "4.1.5",
|
"@vitest/ui": "4.1.6",
|
||||||
"happy-dom": "*",
|
"happy-dom": "*",
|
||||||
"jsdom": "*",
|
"jsdom": "*",
|
||||||
"vite": "^6.0.0 || ^7.0.0 || ^8.0.0"
|
"vite": "^6.0.0 || ^7.0.0 || ^8.0.0"
|
||||||
|
|
|
||||||
12
package.json
12
package.json
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "configure-aws-credentials",
|
"name": "configure-aws-credentials",
|
||||||
"description": "A GitHub Action to configure AWS credentials",
|
"description": "A GitHub Action to configure AWS credentials",
|
||||||
"version": "6.2.0",
|
"version": "6.1.1",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "tsc",
|
"build": "tsc",
|
||||||
"lint": "biome check --error-on-warnings ./src ./test && markdownlint -i node_modules -i CHANGELOG.md '**/*.md'",
|
"lint": "biome check --error-on-warnings ./src ./test && markdownlint -i node_modules -i CHANGELOG.md '**/*.md'",
|
||||||
|
|
@ -17,11 +17,11 @@
|
||||||
"organization": true
|
"organization": true
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@aws-sdk/credential-provider-env": "^3.972.39",
|
"@aws-sdk/credential-provider-env": "^3.972.38",
|
||||||
"@biomejs/biome": "2.4.15",
|
"@biomejs/biome": "2.4.15",
|
||||||
"@smithy/property-provider": "^4.3.4",
|
"@smithy/property-provider": "^4.3.3",
|
||||||
"@types/node": "^25.9.1",
|
"@types/node": "^25.9.0",
|
||||||
"@vitest/coverage-v8": "4.1.5",
|
"@vitest/coverage-v8": "^4.1.6",
|
||||||
"aws-sdk-client-mock": "^4.1.0",
|
"aws-sdk-client-mock": "^4.1.0",
|
||||||
"esbuild": "^0.28.0",
|
"esbuild": "^0.28.0",
|
||||||
"generate-license-file": "^4.1.1",
|
"generate-license-file": "^4.1.1",
|
||||||
|
|
@ -30,7 +30,7 @@
|
||||||
"memfs": "^4.57.2",
|
"memfs": "^4.57.2",
|
||||||
"standard-version": "^9.5.0",
|
"standard-version": "^9.5.0",
|
||||||
"typescript": "^6.0.3",
|
"typescript": "^6.0.3",
|
||||||
"vitest": "4.1.5"
|
"vitest": "^4.1.6"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": "^3.0.1",
|
"@actions/core": "^3.0.1",
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,7 @@ import assert from 'node:assert';
|
||||||
import path from 'node:path';
|
import path from 'node:path';
|
||||||
import * as core from '@actions/core';
|
import * as core from '@actions/core';
|
||||||
import type { AssumeRoleCommandInput, STSClient, Tag } from '@aws-sdk/client-sts';
|
import type { AssumeRoleCommandInput, STSClient, Tag } from '@aws-sdk/client-sts';
|
||||||
import {
|
import { AssumeRoleCommand, AssumeRoleWithWebIdentityCommand } from '@aws-sdk/client-sts';
|
||||||
AssumeRoleCommand,
|
|
||||||
AssumeRoleWithWebIdentityCommand,
|
|
||||||
PackedPolicyTooLargeException,
|
|
||||||
} from '@aws-sdk/client-sts';
|
|
||||||
import type { CredentialsClient } from './CredentialsClient';
|
import type { CredentialsClient } from './CredentialsClient';
|
||||||
import { errorMessage, isDefined, readFileUtf8, sanitizeGitHubVariables } from './helpers';
|
import { errorMessage, isDefined, readFileUtf8, sanitizeGitHubVariables } from './helpers';
|
||||||
|
|
||||||
|
|
@ -65,13 +61,6 @@ async function assumeRoleWithCredentials(params: AssumeRoleCommandInput, client:
|
||||||
const creds = await client.send(new AssumeRoleCommand({ ...params }));
|
const creds = await client.send(new AssumeRoleCommand({ ...params }));
|
||||||
return creds;
|
return creds;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error instanceof PackedPolicyTooLargeException) {
|
|
||||||
core.info('Session tag size is too large; dropping droppable tags and retrying.');
|
|
||||||
const droppableKeys = new Set(DROPPABLE_TAG_SOURCES.map((s) => s.key));
|
|
||||||
params.Tags = params.Tags?.filter((tag) => !droppableKeys.has(tag.Key ?? ''));
|
|
||||||
const creds = await client.send(new AssumeRoleCommand({ ...params }));
|
|
||||||
return creds;
|
|
||||||
}
|
|
||||||
throw new Error(`Could not assume role with user credentials: ${errorMessage(error)}`);
|
throw new Error(`Could not assume role with user credentials: ${errorMessage(error)}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -98,8 +87,8 @@ const MAX_TAG_KEY_LENGTH = 128;
|
||||||
const MAX_TAG_VALUE_LENGTH = 256;
|
const MAX_TAG_VALUE_LENGTH = 256;
|
||||||
const MAX_SESSION_TAGS = 50;
|
const MAX_SESSION_TAGS = 50;
|
||||||
|
|
||||||
// Identity/audit primitives. Always emitted and cannot be dropped.
|
// Identity/audit primitives. Always emitted and cannot be overridden by custom-tags.
|
||||||
const NON_DROPPABLE_TAG_SOURCES: ReadonlyArray<{ key: string; envVar: string }> = [
|
const PROTECTED_TAG_SOURCES: ReadonlyArray<{ key: string; envVar: string }> = [
|
||||||
{ key: 'Repository', envVar: 'GITHUB_REPOSITORY' },
|
{ key: 'Repository', envVar: 'GITHUB_REPOSITORY' },
|
||||||
{ key: 'Workflow', envVar: 'GITHUB_WORKFLOW' },
|
{ key: 'Workflow', envVar: 'GITHUB_WORKFLOW' },
|
||||||
{ key: 'Action', envVar: 'GITHUB_ACTION' },
|
{ key: 'Action', envVar: 'GITHUB_ACTION' },
|
||||||
|
|
@ -108,22 +97,21 @@ const NON_DROPPABLE_TAG_SOURCES: ReadonlyArray<{ key: string; envVar: string }>
|
||||||
{ key: 'Branch', envVar: 'GITHUB_REF' },
|
{ key: 'Branch', envVar: 'GITHUB_REF' },
|
||||||
];
|
];
|
||||||
|
|
||||||
// Convenience metadata. If the AssumeRole call fails due to compressed size of
|
// Convenience metadata. Custom-tags may override (suppresses the default for that key).
|
||||||
// session tags being too large, we will drop these tags and retry once.
|
// Listed in priority order; lower-priority entries are dropped first if the user's custom-tags
|
||||||
const DROPPABLE_TAG_SOURCES: ReadonlyArray<{ key: string; envVar: string }> = [
|
// would push the total above MAX_SESSION_TAGS.
|
||||||
|
const OVERRIDEABLE_TAG_SOURCES_BY_PRIORITY: ReadonlyArray<{ key: string; envVar: string }> = [
|
||||||
{ key: 'EventName', envVar: 'GITHUB_EVENT_NAME' },
|
{ key: 'EventName', envVar: 'GITHUB_EVENT_NAME' },
|
||||||
{ key: 'BaseRef', envVar: 'GITHUB_BASE_REF' },
|
{ key: 'BaseRef', envVar: 'GITHUB_BASE_REF' },
|
||||||
{ key: 'HeadRef', envVar: 'GITHUB_HEAD_REF' },
|
{ key: 'HeadRef', envVar: 'GITHUB_HEAD_REF' },
|
||||||
|
{ key: 'RefName', envVar: 'GITHUB_REF_NAME' },
|
||||||
{ key: 'RunId', envVar: 'GITHUB_RUN_ID' },
|
{ key: 'RunId', envVar: 'GITHUB_RUN_ID' },
|
||||||
|
{ key: 'RefType', envVar: 'GITHUB_REF_TYPE' },
|
||||||
{ key: 'Job', envVar: 'GITHUB_JOB' },
|
{ key: 'Job', envVar: 'GITHUB_JOB' },
|
||||||
{ key: 'TriggeringActor', envVar: 'GITHUB_TRIGGERING_ACTOR' },
|
{ key: 'TriggeringActor', envVar: 'GITHUB_TRIGGERING_ACTOR' },
|
||||||
];
|
];
|
||||||
|
|
||||||
const PROTECTED_TAG_KEYS = new Set<string>([
|
const PROTECTED_TAG_KEYS = new Set<string>(['GitHub', ...PROTECTED_TAG_SOURCES.map((s) => s.key)]);
|
||||||
'GitHub',
|
|
||||||
...NON_DROPPABLE_TAG_SOURCES.map((s) => s.key),
|
|
||||||
...DROPPABLE_TAG_SOURCES.map((s) => s.key),
|
|
||||||
]);
|
|
||||||
|
|
||||||
export function parseAndValidateCustomTags(customTags: string, existingTags: Tag[]): Tag[] {
|
export function parseAndValidateCustomTags(customTags: string, existingTags: Tag[]): Tag[] {
|
||||||
let parsed: unknown;
|
let parsed: unknown;
|
||||||
|
|
@ -210,13 +198,7 @@ export async function assumeRole(params: assumeRoleParams) {
|
||||||
// Build session tags. Values are sanitized because the AWS tag value spec is more
|
// Build session tags. Values are sanitized because the AWS tag value spec is more
|
||||||
// restrictive than permissible characters in environment variables.
|
// restrictive than permissible characters in environment variables.
|
||||||
const protectedTags: Tag[] = [{ Key: 'GitHub', Value: 'Actions' }];
|
const protectedTags: Tag[] = [{ Key: 'GitHub', Value: 'Actions' }];
|
||||||
for (const { key, envVar } of NON_DROPPABLE_TAG_SOURCES) {
|
for (const { key, envVar } of PROTECTED_TAG_SOURCES) {
|
||||||
const value = process.env[envVar];
|
|
||||||
if (value) {
|
|
||||||
protectedTags.push({ Key: key, Value: sanitizeGitHubVariables(value) });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (const { key, envVar } of DROPPABLE_TAG_SOURCES) {
|
|
||||||
const value = process.env[envVar];
|
const value = process.env[envVar];
|
||||||
if (value) {
|
if (value) {
|
||||||
protectedTags.push({ Key: key, Value: sanitizeGitHubVariables(value) });
|
protectedTags.push({ Key: key, Value: sanitizeGitHubVariables(value) });
|
||||||
|
|
@ -224,15 +206,26 @@ export async function assumeRole(params: assumeRoleParams) {
|
||||||
}
|
}
|
||||||
|
|
||||||
const parsedCustomTags: Tag[] = customTags ? parseAndValidateCustomTags(customTags, protectedTags) : [];
|
const parsedCustomTags: Tag[] = customTags ? parseAndValidateCustomTags(customTags, protectedTags) : [];
|
||||||
|
const customTagKeys = new Set(parsedCustomTags.map((t) => t.Key));
|
||||||
|
|
||||||
const tagArray: Tag[] = [...protectedTags, ...parsedCustomTags];
|
const availableOverrideableSlots = MAX_SESSION_TAGS - protectedTags.length - parsedCustomTags.length;
|
||||||
|
const overrideableTags: Tag[] = [];
|
||||||
|
for (const { key, envVar } of OVERRIDEABLE_TAG_SOURCES_BY_PRIORITY) {
|
||||||
|
if (overrideableTags.length >= availableOverrideableSlots) break;
|
||||||
|
if (customTagKeys.has(key)) continue;
|
||||||
|
const value = process.env[envVar];
|
||||||
|
if (value) {
|
||||||
|
overrideableTags.push({ Key: key, Value: sanitizeGitHubVariables(value) });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const tagArray: Tag[] = [...protectedTags, ...overrideableTags, ...parsedCustomTags];
|
||||||
|
|
||||||
const tags = roleSkipSessionTagging ? undefined : tagArray;
|
const tags = roleSkipSessionTagging ? undefined : tagArray;
|
||||||
if (!tags) {
|
if (!tags) {
|
||||||
core.debug('Role session tagging has been skipped.');
|
core.debug('Role session tagging has been skipped.');
|
||||||
} else {
|
} else {
|
||||||
core.debug(`${tags.length} role session tags are being used:`);
|
core.debug(`${tags.length} role session tags are being used:`);
|
||||||
core.debug(JSON.stringify(tagArray));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//only populate transitiveTagKeys array if user is actually using session tagging
|
//only populate transitiveTagKeys array if user is actually using session tagging
|
||||||
|
|
|
||||||
|
|
@ -297,20 +297,6 @@ export function getBooleanInput(name: string, options?: core.InputOptions & { de
|
||||||
// O_NOFOLLOW is undefined on Windows. This sets it to 0 if it's not defined.
|
// O_NOFOLLOW is undefined on Windows. This sets it to 0 if it's not defined.
|
||||||
const O_NOFOLLOW: number = (fs.constants as { O_NOFOLLOW?: number }).O_NOFOLLOW ?? 0;
|
const O_NOFOLLOW: number = (fs.constants as { O_NOFOLLOW?: number }).O_NOFOLLOW ?? 0;
|
||||||
|
|
||||||
export function isAllowListed(filePath: string): boolean {
|
|
||||||
// Kubelet projects service-account tokens through a symlink chain
|
|
||||||
// (token -> ..data/token, ..data -> ..<timestamp>/). The containing path is
|
|
||||||
// kubelet-controlled, so we allow symlink-following reads of this fixed
|
|
||||||
// location only.
|
|
||||||
const KUBERNETES_TOKEN_PATH_REGEX = /^\/var\/run\/secrets\/[^/]+\/serviceaccount\/token$/;
|
|
||||||
|
|
||||||
if (process.platform !== 'win32') {
|
|
||||||
// No Kubernetes token paths on Windows
|
|
||||||
return KUBERNETES_TOKEN_PATH_REGEX.test(path.posix.normalize(filePath));
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function isSymlink(filePath: string): boolean {
|
export function isSymlink(filePath: string): boolean {
|
||||||
try {
|
try {
|
||||||
return fs.lstatSync(filePath).isSymbolicLink();
|
return fs.lstatSync(filePath).isSymbolicLink();
|
||||||
|
|
@ -342,14 +328,10 @@ function assertRegularFile(fd: number, filePath: string): void {
|
||||||
// ELOOP: too many symbolic links (from NOFOLLOW)
|
// ELOOP: too many symbolic links (from NOFOLLOW)
|
||||||
|
|
||||||
export function readFileUtf8(filePath: string): string | null {
|
export function readFileUtf8(filePath: string): string | null {
|
||||||
const allowSymlink = isAllowListed(filePath);
|
refuseSymlinkOnPath(filePath);
|
||||||
if (!allowSymlink) {
|
|
||||||
refuseSymlinkOnPath(filePath);
|
|
||||||
}
|
|
||||||
const openFlags = fs.constants.O_RDONLY | (allowSymlink ? 0 : O_NOFOLLOW);
|
|
||||||
let fd: number;
|
let fd: number;
|
||||||
try {
|
try {
|
||||||
fd = fs.openSync(filePath, openFlags);
|
fd = fs.openSync(filePath, fs.constants.O_RDONLY | O_NOFOLLOW);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
const code = (err as NodeJS.ErrnoException).code;
|
const code = (err as NodeJS.ErrnoException).code;
|
||||||
if (code === 'ENOENT') return null;
|
if (code === 'ENOENT') return null;
|
||||||
|
|
|
||||||
|
|
@ -177,52 +177,6 @@ describe('Configure AWS Credentials helpers', {}, () => {
|
||||||
fs.mkdirSync('/dir/subdir', { recursive: true });
|
fs.mkdirSync('/dir/subdir', { recursive: true });
|
||||||
expect(() => helpers.readFileUtf8('/dir/subdir')).toThrow(/not a regular file/);
|
expect(() => helpers.readFileUtf8('/dir/subdir')).toThrow(/not a regular file/);
|
||||||
});
|
});
|
||||||
|
|
||||||
it.skipIf(process.platform === 'win32')(
|
|
||||||
'follows the kubelet projected-token symlink chain at /var/run/secrets/*/serviceaccount/token',
|
|
||||||
() => {
|
|
||||||
fs.mkdirSync('/var/run/secrets/eks.amazonaws.com/serviceaccount/..2026_05_28_00_00_00.123', {
|
|
||||||
recursive: true,
|
|
||||||
});
|
|
||||||
fs.writeFileSync(
|
|
||||||
'/var/run/secrets/eks.amazonaws.com/serviceaccount/..2026_05_28_00_00_00.123/token',
|
|
||||||
'jwt-token',
|
|
||||||
);
|
|
||||||
fs.symlinkSync('..2026_05_28_00_00_00.123', '/var/run/secrets/eks.amazonaws.com/serviceaccount/..data');
|
|
||||||
fs.symlinkSync('..data/token', '/var/run/secrets/eks.amazonaws.com/serviceaccount/token');
|
|
||||||
expect(helpers.readFileUtf8('/var/run/secrets/eks.amazonaws.com/serviceaccount/token')).toBe('jwt-token');
|
|
||||||
},
|
|
||||||
);
|
|
||||||
|
|
||||||
it.skipIf(process.platform === 'win32')('still refuses symlinks at lookalike paths outside the allowlist', () => {
|
|
||||||
fs.mkdirSync('/var/run/secrets/eks.amazonaws.com/serviceaccount', { recursive: true });
|
|
||||||
fs.writeFileSync('/var/run/secrets/eks.amazonaws.com/serviceaccount/secret', 'jwt-token');
|
|
||||||
fs.symlinkSync(
|
|
||||||
'/var/run/secrets/eks.amazonaws.com/serviceaccount/secret',
|
|
||||||
'/var/run/secrets/eks.amazonaws.com/serviceaccount/token2',
|
|
||||||
);
|
|
||||||
expect(() => helpers.readFileUtf8('/var/run/secrets/eks.amazonaws.com/serviceaccount/token2')).toThrow(
|
|
||||||
/Refusing .* \(.* symbolic link\)/,
|
|
||||||
);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('isAllowListed', {}, () => {
|
|
||||||
it.skipIf(process.platform === 'win32')('matches the canonical kubelet projected-token path', () => {
|
|
||||||
expect(helpers.isAllowListed('/var/run/secrets/eks.amazonaws.com/serviceaccount/token')).toBe(true);
|
|
||||||
expect(helpers.isAllowListed('/var/run/secrets/kubernetes.io/serviceaccount/token')).toBe(true);
|
|
||||||
});
|
|
||||||
|
|
||||||
it.skipIf(process.platform === 'win32')('rejects nested or unrelated paths', () => {
|
|
||||||
expect(helpers.isAllowListed('/var/run/secrets/serviceaccount/token')).toBe(false);
|
|
||||||
expect(helpers.isAllowListed('/var/run/secrets/a/b/serviceaccount/token')).toBe(false);
|
|
||||||
expect(helpers.isAllowListed('/var/run/secrets/eks.amazonaws.com/serviceaccount/token2')).toBe(false);
|
|
||||||
expect(helpers.isAllowListed('/etc/var/run/secrets/foo/serviceaccount/token')).toBe(false);
|
|
||||||
});
|
|
||||||
|
|
||||||
it.skipIf(process.platform === 'win32')('normalizes path traversal attempts', () => {
|
|
||||||
expect(helpers.isAllowListed('/var/run/secrets/foo/serviceaccount/../../../../etc/passwd')).toBe(false);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('writeFileUtf8', {}, () => {
|
describe('writeFileUtf8', {}, () => {
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@ import {
|
||||||
AssumeRoleCommand,
|
AssumeRoleCommand,
|
||||||
AssumeRoleWithWebIdentityCommand,
|
AssumeRoleWithWebIdentityCommand,
|
||||||
GetCallerIdentityCommand,
|
GetCallerIdentityCommand,
|
||||||
PackedPolicyTooLargeException,
|
|
||||||
STSClient,
|
STSClient,
|
||||||
} from '@aws-sdk/client-sts';
|
} from '@aws-sdk/client-sts';
|
||||||
import { mockClient } from 'aws-sdk-client-mock';
|
import { mockClient } from 'aws-sdk-client-mock';
|
||||||
|
|
@ -295,9 +294,9 @@ describe('Configure AWS Credentials', {}, () => {
|
||||||
await run();
|
await run();
|
||||||
const tags = mockedSTSClient.commandCalls(AssumeRoleCommand)[0].args[0].input.Tags ?? [];
|
const tags = mockedSTSClient.commandCalls(AssumeRoleCommand)[0].args[0].input.Tags ?? [];
|
||||||
// 7 protected (GitHub + Repository, Workflow, Action, Actor, Commit, Branch)
|
// 7 protected (GitHub + Repository, Workflow, Action, Actor, Commit, Branch)
|
||||||
// + 6 droppable (EventName, BaseRef, HeadRef, RunId, Job, TriggeringActor).
|
// + 8 overrideable (EventName, BaseRef, HeadRef, RefName, RunId, RefType, Job, TriggeringActor).
|
||||||
// No custom-tags, all env vars set in mocks.envs → all 13 should be present, nothing else.
|
// No custom-tags, all env vars set in mocks.envs → all 15 should be present, nothing else.
|
||||||
expect(tags).toHaveLength(13);
|
expect(tags).toHaveLength(15);
|
||||||
const tagsByKey = Object.fromEntries(tags.map((t) => [t.Key, t.Value]));
|
const tagsByKey = Object.fromEntries(tags.map((t) => [t.Key, t.Value]));
|
||||||
expect(tagsByKey).toEqual({
|
expect(tagsByKey).toEqual({
|
||||||
GitHub: 'Actions',
|
GitHub: 'Actions',
|
||||||
|
|
@ -310,12 +309,14 @@ describe('Configure AWS Credentials', {}, () => {
|
||||||
EventName: 'pull_request',
|
EventName: 'pull_request',
|
||||||
BaseRef: 'main',
|
BaseRef: 'main',
|
||||||
HeadRef: 'feature-branch',
|
HeadRef: 'feature-branch',
|
||||||
|
RefName: 'feature-branch',
|
||||||
RunId: '16412345678',
|
RunId: '16412345678',
|
||||||
|
RefType: 'branch',
|
||||||
Job: 'build',
|
Job: 'build',
|
||||||
TriggeringActor: 'MY-USERNAME_bot_',
|
TriggeringActor: 'MY-USERNAME_bot_',
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
it('omits droppable tags whose env vars are unset', {}, async () => {
|
it('omits overrideable tags whose env vars are unset', {}, async () => {
|
||||||
vi.mocked(core.getInput).mockImplementation(mocks.getInput(mocks.IAM_ASSUMEROLE_INPUTS));
|
vi.mocked(core.getInput).mockImplementation(mocks.getInput(mocks.IAM_ASSUMEROLE_INPUTS));
|
||||||
delete process.env.GITHUB_BASE_REF;
|
delete process.env.GITHUB_BASE_REF;
|
||||||
delete process.env.GITHUB_HEAD_REF;
|
delete process.env.GITHUB_HEAD_REF;
|
||||||
|
|
@ -329,27 +330,6 @@ describe('Configure AWS Credentials', {}, () => {
|
||||||
expect(tagKeys).toContain('EventName');
|
expect(tagKeys).toContain('EventName');
|
||||||
expect(tagKeys).toContain('RunId');
|
expect(tagKeys).toContain('RunId');
|
||||||
});
|
});
|
||||||
it('drops droppable tags and retries on PackedPolicyTooLargeException', {}, async () => {
|
|
||||||
vi.mocked(core.getInput).mockImplementation(mocks.getInput(mocks.IAM_ASSUMEROLE_INPUTS));
|
|
||||||
mockedSTSClient
|
|
||||||
.on(AssumeRoleCommand)
|
|
||||||
.rejectsOnce(new PackedPolicyTooLargeException({ message: 'too large', $metadata: {} }))
|
|
||||||
.resolvesOnce(mocks.outputs.STS_CREDENTIALS);
|
|
||||||
await run();
|
|
||||||
expect(core.info).toHaveBeenCalledWith('Session tag size is too large; dropping droppable tags and retrying.');
|
|
||||||
const retryInput = mockedSTSClient.commandCalls(AssumeRoleCommand)[1].args[0].input;
|
|
||||||
const retryTagKeys = (retryInput.Tags ?? []).map((t) => t.Key);
|
|
||||||
expect(retryTagKeys).not.toContain('EventName');
|
|
||||||
expect(retryTagKeys).not.toContain('BaseRef');
|
|
||||||
expect(retryTagKeys).not.toContain('HeadRef');
|
|
||||||
expect(retryTagKeys).not.toContain('RunId');
|
|
||||||
expect(retryTagKeys).not.toContain('Job');
|
|
||||||
expect(retryTagKeys).not.toContain('TriggeringActor');
|
|
||||||
// Protected tags remain
|
|
||||||
expect(retryTagKeys).toContain('GitHub');
|
|
||||||
expect(retryTagKeys).toContain('Repository');
|
|
||||||
expect(core.setFailed).not.toHaveBeenCalled();
|
|
||||||
});
|
|
||||||
it('sanitizes invalid characters in env-derived tag values', {}, async () => {
|
it('sanitizes invalid characters in env-derived tag values', {}, async () => {
|
||||||
vi.mocked(core.getInput).mockImplementation(mocks.getInput(mocks.IAM_ASSUMEROLE_INPUTS));
|
vi.mocked(core.getInput).mockImplementation(mocks.getInput(mocks.IAM_ASSUMEROLE_INPUTS));
|
||||||
process.env.GITHUB_HEAD_REF = 'feature/has spaces&bad?chars';
|
process.env.GITHUB_HEAD_REF = 'feature/has spaces&bad?chars';
|
||||||
|
|
@ -402,6 +382,8 @@ describe('Configure AWS Credentials', {}, () => {
|
||||||
{ Key: 'EventName', Value: 'pull_request' },
|
{ Key: 'EventName', Value: 'pull_request' },
|
||||||
{ Key: 'RunId', Value: '16412345678' },
|
{ Key: 'RunId', Value: '16412345678' },
|
||||||
{ Key: 'Job', Value: 'build' },
|
{ Key: 'Job', Value: 'build' },
|
||||||
|
{ Key: 'RefName', Value: 'feature-branch' },
|
||||||
|
{ Key: 'RefType', Value: 'branch' },
|
||||||
{ Key: 'TriggeringActor', Value: 'MY-USERNAME_bot_' },
|
{ Key: 'TriggeringActor', Value: 'MY-USERNAME_bot_' },
|
||||||
{ Key: 'Environment', Value: 'Production' },
|
{ Key: 'Environment', Value: 'Production' },
|
||||||
{ Key: 'Team', Value: 'DevOps' },
|
{ Key: 'Team', Value: 'DevOps' },
|
||||||
|
|
@ -450,7 +432,7 @@ describe('Configure AWS Credentials', {}, () => {
|
||||||
await run();
|
await run();
|
||||||
expect(core.warning).toHaveBeenCalledWith(expect.stringContaining("'custom-tags' is set but will be ignored"));
|
expect(core.warning).toHaveBeenCalledWith(expect.stringContaining("'custom-tags' is set but will be ignored"));
|
||||||
});
|
});
|
||||||
it('rejects custom tags that conflict with droppable tag keys', {}, async () => {
|
it('lets custom tags override overrideable default tag keys', {}, async () => {
|
||||||
vi.mocked(core.getInput).mockImplementation(
|
vi.mocked(core.getInput).mockImplementation(
|
||||||
mocks.getInput({
|
mocks.getInput({
|
||||||
...mocks.IAM_ASSUMEROLE_INPUTS,
|
...mocks.IAM_ASSUMEROLE_INPUTS,
|
||||||
|
|
@ -458,10 +440,13 @@ describe('Configure AWS Credentials', {}, () => {
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
await run();
|
await run();
|
||||||
expect(core.setFailed).toHaveBeenCalledWith(
|
const tags = mockedSTSClient.commandCalls(AssumeRoleCommand)[0].args[0].input.Tags ?? [];
|
||||||
"custom-tags: key 'EventName' conflicts with a protected session tag set by this action and cannot be overridden",
|
const eventNameTags = tags.filter((t) => t.Key === 'EventName');
|
||||||
);
|
const baseRefTags = tags.filter((t) => t.Key === 'BaseRef');
|
||||||
expect(mockedSTSClient.commandCalls(AssumeRoleCommand)).toHaveLength(0);
|
expect(eventNameTags).toHaveLength(1);
|
||||||
|
expect(eventNameTags[0]?.Value).toBe('workflow_dispatch');
|
||||||
|
expect(baseRefTags).toHaveLength(1);
|
||||||
|
expect(baseRefTags[0]?.Value).toBe('release/2026');
|
||||||
});
|
});
|
||||||
it('rejects custom tags that conflict with the protected Branch tag', {}, async () => {
|
it('rejects custom tags that conflict with the protected Branch tag', {}, async () => {
|
||||||
// Regression guard: Branch was a default before v6.2 and must remain unoverridable.
|
// Regression guard: Branch was a default before v6.2 and must remain unoverridable.
|
||||||
|
|
@ -477,10 +462,62 @@ describe('Configure AWS Credentials', {}, () => {
|
||||||
);
|
);
|
||||||
expect(mockedSTSClient.commandCalls(AssumeRoleCommand)).toHaveLength(0);
|
expect(mockedSTSClient.commandCalls(AssumeRoleCommand)).toHaveLength(0);
|
||||||
});
|
});
|
||||||
it('rejects custom-tags that would exceed the session-tag limit', {}, async () => {
|
it('drops lower-priority overrideable tags when custom-tags would exceed the session-tag limit', {}, async () => {
|
||||||
// 13 existing tags (7 non-droppable + 6 droppable) + 38 custom = 51 > 50.
|
// 7 protected (GitHub + 6 from PROTECTED_TAG_SOURCES) + 40 custom = 47 used → 3 overrideable slots.
|
||||||
|
// The first 3 overrideable tags by priority are EventName, BaseRef, HeadRef (RefName, RunId, RefType,
|
||||||
|
// Job, TriggeringActor must be dropped).
|
||||||
const customTagsObj: Record<string, string> = {};
|
const customTagsObj: Record<string, string> = {};
|
||||||
for (let i = 0; i < 38; i++) {
|
for (let i = 0; i < 40; i++) {
|
||||||
|
customTagsObj[`Custom${i}`] = `value${i}`;
|
||||||
|
}
|
||||||
|
vi.mocked(core.getInput).mockImplementation(
|
||||||
|
mocks.getInput({
|
||||||
|
...mocks.IAM_ASSUMEROLE_INPUTS,
|
||||||
|
'custom-tags': JSON.stringify(customTagsObj),
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
await run();
|
||||||
|
const tags = mockedSTSClient.commandCalls(AssumeRoleCommand)[0].args[0].input.Tags ?? [];
|
||||||
|
const tagKeys = tags.map((t) => t.Key);
|
||||||
|
expect(tags).toHaveLength(50);
|
||||||
|
expect(tagKeys).toContain('Branch');
|
||||||
|
expect(tagKeys).toContain('EventName');
|
||||||
|
expect(tagKeys).toContain('BaseRef');
|
||||||
|
expect(tagKeys).toContain('HeadRef');
|
||||||
|
expect(tagKeys).not.toContain('RefName');
|
||||||
|
expect(tagKeys).not.toContain('RunId');
|
||||||
|
expect(tagKeys).not.toContain('RefType');
|
||||||
|
expect(tagKeys).not.toContain('Job');
|
||||||
|
expect(tagKeys).not.toContain('TriggeringActor');
|
||||||
|
});
|
||||||
|
it('overridden overrideable tags free a slot for a lower-priority overrideable tag', {}, async () => {
|
||||||
|
// Same 40-custom-tag scenario as above, but one of the customs overrides BaseRef.
|
||||||
|
// BaseRef no longer competes for the overrideable budget, so the next-priority overrideable (RefName) gets in.
|
||||||
|
const customTagsObj: Record<string, string> = { BaseRef: 'release/2026' };
|
||||||
|
for (let i = 0; i < 39; i++) {
|
||||||
|
customTagsObj[`Custom${i}`] = `value${i}`;
|
||||||
|
}
|
||||||
|
vi.mocked(core.getInput).mockImplementation(
|
||||||
|
mocks.getInput({
|
||||||
|
...mocks.IAM_ASSUMEROLE_INPUTS,
|
||||||
|
'custom-tags': JSON.stringify(customTagsObj),
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
await run();
|
||||||
|
const tags = mockedSTSClient.commandCalls(AssumeRoleCommand)[0].args[0].input.Tags ?? [];
|
||||||
|
const tagKeys = tags.map((t) => t.Key);
|
||||||
|
expect(tags).toHaveLength(50);
|
||||||
|
expect(tagKeys).toContain('Branch');
|
||||||
|
expect(tagKeys).toContain('EventName');
|
||||||
|
expect(tagKeys).toContain('BaseRef');
|
||||||
|
expect(tagKeys).toContain('HeadRef');
|
||||||
|
expect(tagKeys).toContain('RefName');
|
||||||
|
expect(tagKeys).not.toContain('RunId');
|
||||||
|
});
|
||||||
|
it('rejects custom-tags that would exceed the session-tag limit on their own', {}, async () => {
|
||||||
|
// 7 protected + 44 custom = 51, which is over 50 even with zero overrideable tags.
|
||||||
|
const customTagsObj: Record<string, string> = {};
|
||||||
|
for (let i = 0; i < 44; i++) {
|
||||||
customTagsObj[`Custom${i}`] = `value${i}`;
|
customTagsObj[`Custom${i}`] = `value${i}`;
|
||||||
}
|
}
|
||||||
vi.mocked(core.getInput).mockImplementation(
|
vi.mocked(core.getInput).mockImplementation(
|
||||||
|
|
@ -493,10 +530,12 @@ describe('Configure AWS Credentials', {}, () => {
|
||||||
expect(core.setFailed).toHaveBeenCalledWith(expect.stringContaining('would exceed the AWS limit of 50'));
|
expect(core.setFailed).toHaveBeenCalledWith(expect.stringContaining('would exceed the AWS limit of 50'));
|
||||||
expect(mockedSTSClient.commandCalls(AssumeRoleCommand)).toHaveLength(0);
|
expect(mockedSTSClient.commandCalls(AssumeRoleCommand)).toHaveLength(0);
|
||||||
});
|
});
|
||||||
it('allows custom-tags up to the session-tag limit', {}, async () => {
|
it('drops transitive-tag-keys entries that refer to evicted overrideable tags', {}, async () => {
|
||||||
// 13 existing tags + 37 custom = 50, exactly at the limit.
|
// Force eviction of all overrideable tags below EventName/BaseRef/HeadRef. The user transitive-tags
|
||||||
|
// RunId (which gets evicted) and Repository (which is protected and stays). The TransitiveTagKeys
|
||||||
|
// payload must include only the keys that actually appear in Tags.
|
||||||
const customTagsObj: Record<string, string> = {};
|
const customTagsObj: Record<string, string> = {};
|
||||||
for (let i = 0; i < 37; i++) {
|
for (let i = 0; i < 40; i++) {
|
||||||
customTagsObj[`Custom${i}`] = `value${i}`;
|
customTagsObj[`Custom${i}`] = `value${i}`;
|
||||||
}
|
}
|
||||||
vi.mocked(core.getInput).mockImplementation(
|
vi.mocked(core.getInput).mockImplementation(
|
||||||
|
|
@ -505,10 +544,15 @@ describe('Configure AWS Credentials', {}, () => {
|
||||||
'custom-tags': JSON.stringify(customTagsObj),
|
'custom-tags': JSON.stringify(customTagsObj),
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
vi.mocked(core.getMultilineInput).mockImplementation((name: string) => {
|
||||||
|
if (name === 'transitive-tag-keys') return ['Repository', 'RunId'];
|
||||||
|
return [];
|
||||||
|
});
|
||||||
await run();
|
await run();
|
||||||
expect(core.setFailed).not.toHaveBeenCalled();
|
const callInput = mockedSTSClient.commandCalls(AssumeRoleCommand)[0].args[0].input;
|
||||||
const tags = mockedSTSClient.commandCalls(AssumeRoleCommand)[0].args[0].input.Tags ?? [];
|
const tagKeys = (callInput.Tags ?? []).map((t) => t.Key);
|
||||||
expect(tags).toHaveLength(50);
|
expect(tagKeys).not.toContain('RunId');
|
||||||
|
expect(callInput.TransitiveTagKeys).toEqual(['Repository']);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -105,6 +105,8 @@ const envs = {
|
||||||
GITHUB_EVENT_NAME: 'pull_request',
|
GITHUB_EVENT_NAME: 'pull_request',
|
||||||
GITHUB_RUN_ID: '16412345678',
|
GITHUB_RUN_ID: '16412345678',
|
||||||
GITHUB_JOB: 'build',
|
GITHUB_JOB: 'build',
|
||||||
|
GITHUB_REF_NAME: 'feature-branch',
|
||||||
|
GITHUB_REF_TYPE: 'branch',
|
||||||
GITHUB_BASE_REF: 'main',
|
GITHUB_BASE_REF: 'main',
|
||||||
GITHUB_HEAD_REF: 'feature-branch',
|
GITHUB_HEAD_REF: 'feature-branch',
|
||||||
GITHUB_TRIGGERING_ACTOR: 'MY-USERNAME[bot]',
|
GITHUB_TRIGGERING_ACTOR: 'MY-USERNAME[bot]',
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue