Compare commits

...
805 Commits
Author SHA1 Message Date
CrazyMax f9f3042f7e Merge pull request #1517 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.88.0
chore(deps): Bump @docker/actions-toolkit from 0.87.0 to 0.90.0
2026-05-21 17:17:52 +02:00
github-actions[bot] 812d5fd921 chore: update generated content 2026-05-21 15:14:24 +00:00
dependabot[bot] b6f6693076 chore(deps): Bump @docker/actions-toolkit from 0.87.0 to 0.90.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.87.0 to 0.90.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.87.0...v0.90.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-version: 0.88.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-21 15:13:14 +00:00
CrazyMax c1c626eced Merge pull request #1525 from docker/dependabot/npm_and_yarn/actions/core-3.0.1
chore(deps): Bump @actions/core from 3.0.0 to 3.0.1
2026-05-21 17:02:09 +02:00
github-actions[bot] 51bb284cd4 chore: update generated content 2026-05-21 14:59:33 +00:00
dependabot[bot] 5f7884def8 chore(deps): Bump @actions/core from 3.0.0 to 3.0.1
Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 3.0.0 to 3.0.1.
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core)

---
updated-dependencies:
- dependency-name: "@actions/core"
  dependency-version: 3.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-21 14:58:26 +00:00
CrazyMax e01deff7d9 Merge pull request #1521 from docker/dependabot/npm_and_yarn/fast-xml-parser-5.7.1
chore(deps): Bump fast-xml-parser from 5.5.7 to 5.8.0
2026-05-21 16:56:15 +02:00
github-actions[bot] 3804d49793 chore: update generated content 2026-05-21 14:54:16 +00:00
dependabot[bot] 71e8947aac chore(deps): Bump fast-xml-parser from 5.5.7 to 5.8.0
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 5.5.7 to 5.8.0.
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v5.5.7...v5.8.0)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-version: 5.7.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-21 14:53:05 +00:00
CrazyMax 4925ad24cd Merge pull request #1526 from docker/dependabot/npm_and_yarn/postcss-8.5.10
chore(deps): Bump postcss from 8.5.6 to 8.5.10
2026-05-21 16:50:55 +02:00
CrazyMax 08c59e6569 Merge pull request #1529 from docker/dependabot/npm_and_yarn/fast-xml-builder-1.2.0
chore(deps): Bump fast-xml-builder from 1.1.4 to 1.2.0
2026-05-21 16:50:28 +02:00
github-actions[bot] 63e6a3e1d8 chore: update generated content 2026-05-21 14:48:38 +00:00
dependabot[bot] 7c3825ea74 chore(deps): Bump fast-xml-builder from 1.1.4 to 1.2.0
Bumps [fast-xml-builder](https://github.com/NaturalIntelligence/fast-xml-builder) from 1.1.4 to 1.2.0.
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-builder/blob/main/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-builder/compare/v1.1.4...v1.2.0)

---
updated-dependencies:
- dependency-name: fast-xml-builder
  dependency-version: 1.2.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-21 14:47:34 +00:00
CrazyMax d7cd9d7a35 Merge pull request #1533 from docker/dependabot/npm_and_yarn/tar-7.5.15
chore(deps): Bump tar from 6.2.1 to 7.5.15
2026-05-21 16:45:18 +02:00
CrazyMax 157becc75e Merge pull request #1534 from docker/dependabot/npm_and_yarn/brace-expansion-5.0.6
chore(deps): Bump brace-expansion from 2.0.2 to 5.0.6
2026-05-21 16:41:57 +02:00
CrazyMax 5ae6a4a064 Merge pull request #1531 from docker/dependabot/github_actions/crazy-max-dot-github-6667ecc476
chore(deps): Bump the crazy-max-dot-github group with 2 updates
2026-05-21 16:26:51 +02:00
CrazyMax 422287b25a Merge pull request #1532 from docker/dependabot/github_actions/actions/create-github-app-token-3.2.0
chore(deps): Bump actions/create-github-app-token from 3.1.1 to 3.2.0
2026-05-21 16:26:28 +02:00
CrazyMax af6a07f739 Merge pull request #1535 from docker/dependabot/github_actions/github/codeql-action-4.35.5
chore(deps): Bump github/codeql-action from 4.35.1 to 4.35.5
2026-05-21 16:25:59 +02:00
CrazyMax 3d01f53c7b Merge pull request #1536 from docker/dependabot/github_actions/codecov/codecov-action-6.0.1
chore(deps): Bump codecov/codecov-action from 6.0.0 to 6.0.1
2026-05-21 16:24:51 +02:00
CrazyMax e46f50c06e Merge pull request #1537 from crazy-max/zizmor-fixes
ci: restrict update-dist GitHub App token scope
2026-05-21 14:57:22 +02:00
CrazyMax 69b698e993 ci: restrict update-dist GitHub App token scope
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-05-21 14:23:33 +02:00
dependabot[bot] f8538d20fd chore(deps): Bump codecov/codecov-action from 6.0.0 to 6.0.1
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 6.0.0 to 6.0.1.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/57e3a136b779b570ffcdbf80b3bdc90e7fab3de2...e79a6962e0d4c0c17b229090214935d2e33f8354)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-version: 6.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-20 17:44:10 +00:00
dependabot[bot] c39566cf62 chore(deps): Bump github/codeql-action from 4.35.1 to 4.35.5
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.35.1 to 4.35.5.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/c10b8064de6f491fea524254123dbe5e09572f13...9e0d7b8d25671d64c341c19c0152d693099fb5ba)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.35.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-18 21:19:09 +00:00
github-actions[bot] c707ca9135 chore: update generated content 2026-05-18 16:49:19 +00:00
dependabot[bot] ffa52ef3ea chore(deps): Bump brace-expansion from 2.0.2 to 5.0.6
Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 2.0.2 to 5.0.6.
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](https://github.com/juliangruber/brace-expansion/compare/v2.0.2...v5.0.6)

---
updated-dependencies:
- dependency-name: brace-expansion
  dependency-version: 5.0.6
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-18 16:48:14 +00:00
dependabot[bot] 7a8bc15c71 chore(deps): Bump tar from 6.2.1 to 7.5.15
Bumps [tar](https://github.com/isaacs/node-tar) from 6.2.1 to 7.5.15.
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-tar/compare/v6.2.1...v7.5.15)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 7.5.15
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-15 00:39:31 +00:00
dependabot[bot] f66d2d71bf chore(deps): Bump actions/create-github-app-token from 3.1.1 to 3.2.0
Bumps [actions/create-github-app-token](https://github.com/actions/create-github-app-token) from 3.1.1 to 3.2.0.
- [Release notes](https://github.com/actions/create-github-app-token/releases)
- [Changelog](https://github.com/actions/create-github-app-token/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/create-github-app-token/compare/1b10c78c7865c340bc4f6099eb2f838309f1e8c3...bcd2ba49218906704ab6c1aa796996da409d3eb1)

---
updated-dependencies:
- dependency-name: actions/create-github-app-token
  dependency-version: 3.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-14 11:52:51 +00:00
dependabot[bot] eef0e2e2ee chore(deps): Bump the crazy-max-dot-github group with 2 updates
Bumps the crazy-max-dot-github group with 2 updates: [crazy-max/.github/.github/workflows/pr-assign-author.yml](https://github.com/crazy-max/.github) and [crazy-max/.github/.github/workflows/zizmor.yml](https://github.com/crazy-max/.github).


Updates `crazy-max/.github/.github/workflows/pr-assign-author.yml` from 1.7.1 to 1.8.0
- [Release notes](https://github.com/crazy-max/.github/releases)
- [Commits](https://github.com/crazy-max/.github/compare/64a0bfaf6e6bb1c448d6e4c42b11034ee7094f16...9ba6e6f9450baf3b1237f8035c1fdc45932510bd)

Updates `crazy-max/.github/.github/workflows/zizmor.yml` from 1.7.1 to 1.8.0
- [Release notes](https://github.com/crazy-max/.github/releases)
- [Commits](https://github.com/crazy-max/.github/compare/64a0bfaf6e6bb1c448d6e4c42b11034ee7094f16...9ba6e6f9450baf3b1237f8035c1fdc45932510bd)

---
updated-dependencies:
- dependency-name: crazy-max/.github/.github/workflows/pr-assign-author.yml
  dependency-version: 1.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: crazy-max-dot-github
- dependency-name: crazy-max/.github/.github/workflows/zizmor.yml
  dependency-version: 1.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: crazy-max-dot-github
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-12 17:51:43 +00:00
CrazyMax 789f686580 Merge pull request #1524 from docker/dependabot/github_actions/crazy-max-dot-github-a3893cf95f
chore(deps): Bump the crazy-max-dot-github group with 2 updates
2026-04-27 09:36:37 +02:00
dependabot[bot] 152d4297d0 chore(deps): Bump postcss from 8.5.6 to 8.5.10
Bumps [postcss](https://github.com/postcss/postcss) from 8.5.6 to 8.5.10.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.5.6...8.5.10)

---
updated-dependencies:
- dependency-name: postcss
  dependency-version: 8.5.10
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-24 17:40:31 +00:00
Tõnis Tiigi 21f7630a74 Merge pull request #1523 from crazy-max/esbuild
replace ncc with esbuild for action bundling
2026-04-24 10:38:43 -07:00
dependabot[bot] 3ff27d3602 chore(deps): Bump the crazy-max-dot-github group with 2 updates
Bumps the crazy-max-dot-github group with 2 updates: [crazy-max/.github/.github/workflows/pr-assign-author.yml](https://github.com/crazy-max/.github) and [crazy-max/.github/.github/workflows/zizmor.yml](https://github.com/crazy-max/.github).


Updates `crazy-max/.github/.github/workflows/pr-assign-author.yml` from 1.7.0 to 1.7.1
- [Release notes](https://github.com/crazy-max/.github/releases)
- [Commits](https://github.com/crazy-max/.github/compare/4a17dbaa9ce13920fc5bb8824eb89c16301e5ab2...64a0bfaf6e6bb1c448d6e4c42b11034ee7094f16)

Updates `crazy-max/.github/.github/workflows/zizmor.yml` from 1.7.0 to 1.7.1
- [Release notes](https://github.com/crazy-max/.github/releases)
- [Commits](https://github.com/crazy-max/.github/compare/4a17dbaa9ce13920fc5bb8824eb89c16301e5ab2...64a0bfaf6e6bb1c448d6e4c42b11034ee7094f16)

---
updated-dependencies:
- dependency-name: crazy-max/.github/.github/workflows/pr-assign-author.yml
  dependency-version: 1.7.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: crazy-max-dot-github
- dependency-name: crazy-max/.github/.github/workflows/zizmor.yml
  dependency-version: 1.7.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: crazy-max-dot-github
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-24 11:52:30 +00:00
CrazyMax d70693f4ae replace ncc with esbuild for action bundling
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-04-24 11:09:46 +02:00
CrazyMax e0fea16cbf Merge pull request #1519 from docker/dependabot/github_actions/actions/setup-node-6.4.0
chore(deps): Bump actions/setup-node from 6.3.0 to 6.4.0
2026-04-24 09:48:12 +02:00
CrazyMax f832d4c773 Merge pull request #1520 from docker/dependabot/github_actions/crazy-max-dot-github-6f136b1f9e
chore(deps): Bump the crazy-max-dot-github group with 2 updates
2026-04-24 09:46:03 +02:00
dependabot[bot] 17a24e14ed chore(deps): Bump the crazy-max-dot-github group with 2 updates
Bumps the crazy-max-dot-github group with 2 updates: [crazy-max/.github/.github/workflows/pr-assign-author.yml](https://github.com/crazy-max/.github) and [crazy-max/.github/.github/workflows/zizmor.yml](https://github.com/crazy-max/.github).


Updates `crazy-max/.github/.github/workflows/pr-assign-author.yml` from 1.6.0 to 1.7.0
- [Release notes](https://github.com/crazy-max/.github/releases)
- [Commits](https://github.com/crazy-max/.github/compare/d89fe92d808a15e2b2ed5cdb62db7c172c31410d...4a17dbaa9ce13920fc5bb8824eb89c16301e5ab2)

Updates `crazy-max/.github/.github/workflows/zizmor.yml` from 1.6.0 to 1.7.0
- [Release notes](https://github.com/crazy-max/.github/releases)
- [Commits](https://github.com/crazy-max/.github/compare/d89fe92d808a15e2b2ed5cdb62db7c172c31410d...4a17dbaa9ce13920fc5bb8824eb89c16301e5ab2)

---
updated-dependencies:
- dependency-name: crazy-max/.github/.github/workflows/pr-assign-author.yml
  dependency-version: 1.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: crazy-max-dot-github
- dependency-name: crazy-max/.github/.github/workflows/zizmor.yml
  dependency-version: 1.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: crazy-max-dot-github
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-22 11:52:24 +00:00
dependabot[bot] ad938becb9 chore(deps): Bump actions/setup-node from 6.3.0 to 6.4.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6.3.0 to 6.4.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/53b83947a5a98c8d113130e565377fae1a50d02f...48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: 6.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-21 11:52:31 +00:00
Tõnis Tiigi c269a24fa2 Merge pull request #1516 from crazy-max/fix-zizmor
ci(zizmor): update rules
2026-04-15 14:25:13 -07:00
CrazyMax 64fda479ac ci(zizmor): update rules
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-04-15 16:01:32 +02:00
CrazyMax c1d0c0cc42 Merge pull request #1514 from docker/dependabot/github_actions/actions/create-github-app-token-3.1.1
chore(deps): Bump actions/create-github-app-token from 3.0.0 to 3.1.1
2026-04-15 14:48:56 +02:00
CrazyMax d5c8665698 Merge pull request #1515 from docker/dependabot/github_actions/actions/cache-5.0.5
chore(deps): Bump actions/cache from 5.0.4 to 5.0.5
2026-04-15 14:48:40 +02:00
dependabot[bot] e4086eff94 chore(deps): Bump actions/cache from 5.0.4 to 5.0.5
Bumps [actions/cache](https://github.com/actions/cache) from 5.0.4 to 5.0.5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/668228422ae6a00e4ad889ee87cd7109ec5666a7...27d5ce7f107fe9357f9df03efb73ab90386fccae)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: 5.0.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-15 11:54:10 +00:00
CrazyMax e6ed27f63f Merge pull request #1513 from docker/dependabot/github_actions/docker/bake-action-7.1.0
chore(deps): Bump docker/bake-action from 7.0.0 to 7.1.0
2026-04-14 10:54:30 +02:00
dependabot[bot] dba6f6cfd6 chore(deps): Bump actions/create-github-app-token from 3.0.0 to 3.1.1
Bumps [actions/create-github-app-token](https://github.com/actions/create-github-app-token) from 3.0.0 to 3.1.1.
- [Release notes](https://github.com/actions/create-github-app-token/releases)
- [Commits](https://github.com/actions/create-github-app-token/compare/f8d387b68d61c58ab83c6c016672934102569859...1b10c78c7865c340bc4f6099eb2f838309f1e8c3)

---
updated-dependencies:
- dependency-name: actions/create-github-app-token
  dependency-version: 3.1.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-13 12:35:24 +00:00
dependabot[bot] 4fc600fc62 chore(deps): Bump docker/bake-action from 7.0.0 to 7.1.0
Bumps [docker/bake-action](https://github.com/docker/bake-action) from 7.0.0 to 7.1.0.
- [Release notes](https://github.com/docker/bake-action/releases)
- [Commits](https://github.com/docker/bake-action/compare/82490499d2e5613fcead7e128237ef0b0ea210f7...a66e1c87e2eca0503c343edf1d208c716d54b8a8)

---
updated-dependencies:
- dependency-name: docker/bake-action
  dependency-version: 7.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-13 12:34:56 +00:00
CrazyMax bcafcacb16 Merge pull request #1509 from docker/dependabot/npm_and_yarn/vite-7.3.2
chore(deps): Bump vite from 7.3.1 to 7.3.2
2026-04-09 19:49:37 +02:00
CrazyMax 18e62f1158 Merge pull request #1510 from docker/dependabot/npm_and_yarn/lodash-4.18.1
chore(deps): Bump lodash from 4.17.23 to 4.18.1
2026-04-09 19:48:40 +02:00
github-actions[bot] 46580d2c9d chore: update generated content 2026-04-09 17:44:17 +00:00
dependabot[bot] 3f80b252ca chore(deps): Bump lodash from 4.17.23 to 4.18.1
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.23 to 4.18.1.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.23...4.18.1)

---
updated-dependencies:
- dependency-name: lodash
  dependency-version: 4.18.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-09 17:43:05 +00:00
CrazyMax efeec9557c Merge pull request #1505 from crazy-max/refactor-git-context
refactor: use new gitContext for build context resolution
2026-04-09 19:38:17 +02:00
CrazyMax ddf04b08eb Merge pull request #1511 from docker/dependabot/github_actions/crazy-max-dot-github-f0991e81fd
chore(deps): Bump the crazy-max-dot-github group with 2 updates
2026-04-09 10:21:34 +02:00
dependabot[bot] db08d97a08 chore(deps): Bump the crazy-max-dot-github group with 2 updates
Bumps the crazy-max-dot-github group with 2 updates: [crazy-max/.github/.github/workflows/pr-assign-author.yml](https://github.com/crazy-max/.github) and [crazy-max/.github/.github/workflows/zizmor.yml](https://github.com/crazy-max/.github).


Updates `crazy-max/.github/.github/workflows/pr-assign-author.yml` from 1.3.0 to 1.6.0
- [Release notes](https://github.com/crazy-max/.github/releases)
- [Commits](https://github.com/crazy-max/.github/compare/bb328ea508cd6a89d0865555ddbeb148e5724aed...d89fe92d808a15e2b2ed5cdb62db7c172c31410d)

Updates `crazy-max/.github/.github/workflows/zizmor.yml` from 1.3.0 to 1.6.0
- [Release notes](https://github.com/crazy-max/.github/releases)
- [Commits](https://github.com/crazy-max/.github/compare/bb328ea508cd6a89d0865555ddbeb148e5724aed...d89fe92d808a15e2b2ed5cdb62db7c172c31410d)

---
updated-dependencies:
- dependency-name: crazy-max/.github/.github/workflows/pr-assign-author.yml
  dependency-version: 1.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: crazy-max-dot-github
- dependency-name: crazy-max/.github/.github/workflows/zizmor.yml
  dependency-version: 1.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: crazy-max-dot-github
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-09 08:17:23 +00:00
CrazyMax ef1fb9688f Merge pull request #1508 from docker/dependabot/github_actions/docker/login-action-4.1.0
chore(deps): Bump docker/login-action from 4.0.0 to 4.1.0
2026-04-08 12:55:35 +02:00
CrazyMax 2d8f2a1a37 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-04-08 12:50:34 +02:00
CrazyMax 919ac7bd7d fix test since secrets are not written to temp path anymore
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-04-08 12:49:36 +02:00
CrazyMax c850e6994a refactor: use new gitContext for build context resolution
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-04-08 12:49:35 +02:00
CrazyMax 56795cf70a bump @docker/actions-toolkit from 0.79.0 to 0.87.0
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-04-08 12:49:35 +02:00
dependabot[bot] c991b20ccb chore(deps): Bump vite from 7.3.1 to 7.3.2
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.3.1 to 7.3.2.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v7.3.2/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v7.3.2/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 7.3.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-06 21:43:23 +00:00
dependabot[bot] e2565a753f chore(deps): Bump docker/login-action from 4.0.0 to 4.1.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/b45d80f862d83dbcd57f89517bcf500b2ab88fb2...4907a6ddec9925e35a0a9e82d7399ccc52663121)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 4.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-06 11:53:15 +00:00
CrazyMax 83bfd93ab4 Merge pull request #1496 from docker/dependabot/npm_and_yarn/picomatch-4.0.4
chore(deps): Bump picomatch from 4.0.3 to 4.0.4
2026-04-01 15:17:17 +02:00
CrazyMax a7d4e2ac29 Merge pull request #1497 from docker/dependabot/npm_and_yarn/handlebars-4.7.9
chore(deps): Bump handlebars from 4.7.8 to 4.7.9
2026-04-01 15:17:00 +02:00
CrazyMax 00c4e32030 Merge pull request #1504 from crazy-max/fix-update-dist
ci: stop update-dist reruns after generated dist pushes
2026-04-01 15:07:55 +02:00
github-actions[bot] 7144aa40aa chore: update generated content 2026-04-01 11:04:06 +00:00
dependabot[bot] 00a2ffdccc chore(deps): Bump handlebars from 4.7.8 to 4.7.9
Bumps [handlebars](https://github.com/handlebars-lang/handlebars.js) from 4.7.8 to 4.7.9.
- [Release notes](https://github.com/handlebars-lang/handlebars.js/releases)
- [Changelog](https://github.com/handlebars-lang/handlebars.js/blob/v4.7.9/release-notes.md)
- [Commits](https://github.com/handlebars-lang/handlebars.js/compare/v4.7.8...v4.7.9)

---
updated-dependencies:
- dependency-name: handlebars
  dependency-version: 4.7.9
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-01 11:02:58 +00:00
CrazyMax dab806366e Merge pull request #1500 from docker/dependabot/npm_and_yarn/brace-expansion-1.1.13
chore(deps): Bump brace-expansion from 1.1.12 to 1.1.13
2026-04-01 13:00:46 +02:00
CrazyMax a691600376 ci: stop update-dist reruns after generated dist pushes
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-04-01 12:59:41 +02:00
CrazyMax c5117b60bc Merge pull request #1503 from docker/dependabot/github_actions/codecov/codecov-action-6.0.0
chore(deps): Bump codecov/codecov-action from 5.5.4 to 6.0.0
2026-03-31 09:31:46 +02:00
dependabot[bot] 3e0f90700c chore(deps): Bump codecov/codecov-action from 5.5.4 to 6.0.0
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.5.4 to 6.0.0.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/75cd11691c0faa626561e295848008c8a7dddffe...57e3a136b779b570ffcdbf80b3bdc90e7fab3de2)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-31 01:51:50 +00:00
Tõnis Tiigi 502612d464 Merge pull request #1501 from crazy-max/zizmor
ci: zizmor workflow
2026-03-30 18:49:21 -07:00
CrazyMax 81e9d51607 fix zizmor findings
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-03-30 13:40:47 +02:00
CrazyMax d61b4b1884 ci: zizmor workflow
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-03-30 12:10:46 +02:00
github-actions[bot] 19413e5c69 chore: update generated content 2026-03-27 14:22:21 +00:00
dependabot[bot] 2cd9929dbc chore(deps): Bump brace-expansion from 1.1.12 to 1.1.13
Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 1.1.12 to 1.1.13.
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](https://github.com/juliangruber/brace-expansion/compare/v1.1.12...v1.1.13)

---
updated-dependencies:
- dependency-name: brace-expansion
  dependency-version: 1.1.13
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-27 14:21:11 +00:00
dependabot[bot] 5e0c3c443d chore(deps): Bump picomatch from 4.0.3 to 4.0.4
Bumps [picomatch](https://github.com/micromatch/picomatch) from 4.0.3 to 4.0.4.
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/picomatch/compare/4.0.3...4.0.4)

---
updated-dependencies:
- dependency-name: picomatch
  dependency-version: 4.0.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-26 07:52:14 +00:00
Tõnis Tiigi b66d8774c6 Merge pull request #1494 from crazy-max/update-crazy-max-actions
ci: bump crazy-max/.github to 1.1.0
2026-03-25 10:43:06 -07:00
CrazyMax b859af5ad8 ci: bump crazy-max/.github to 1.1.0
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-03-25 12:33:47 +01:00
CrazyMax de30867634 Merge pull request #1490 from docker/dependabot/npm_and_yarn/glob-10.5.0
chore(deps): Bump glob from 10.3.12 to 10.5.0
2026-03-20 17:31:23 +01:00
github-actions[bot] 94f57482d8 chore: update generated content 2026-03-20 16:27:43 +00:00
dependabot[bot] 27173685d7 chore(deps): Bump glob from 10.3.12 to 10.5.0
Bumps [glob](https://github.com/isaacs/node-glob) from 10.3.12 to 10.5.0.
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v10.3.12...v10.5.0)

---
updated-dependencies:
- dependency-name: glob
  dependency-version: 10.5.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-20 16:26:37 +00:00
CrazyMax 8ed8ece47c Merge pull request #1491 from docker/dependabot/npm_and_yarn/flatted-3.4.2
chore(deps): Bump flatted from 3.3.3 to 3.4.2
2026-03-20 17:24:48 +01:00
CrazyMax 2133d1712a Merge pull request #1492 from crazy-max/codeql
ci: enable SAST scanning with CodeQL
2026-03-20 16:57:08 +01:00
CrazyMax bebcd8f390 ci: enable SAST scanning with CodeQL
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-03-20 11:37:15 +01:00
CrazyMax a3f8b56eb8 Merge pull request #1486 from docker/dependabot/npm_and_yarn/undici-6.24.0
chore(deps): Bump undici from 6.23.0 to 6.24.1
2026-03-20 11:35:38 +01:00
github-actions[bot] 5e178f1185 chore: update generated content 2026-03-20 10:22:42 +00:00
dependabot[bot] dbf1bb58c7 chore(deps): Bump undici from 6.23.0 to 6.24.0
Bumps [undici](https://github.com/nodejs/undici) from 6.23.0 to 6.24.0.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v6.23.0...v6.24.0)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 6.24.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-20 10:21:37 +00:00
dependabot[bot] b4f9e48f9d chore(deps): Bump flatted from 3.3.3 to 3.4.2
Bumps [flatted](https://github.com/WebReflection/flatted) from 3.3.3 to 3.4.2.
- [Commits](https://github.com/WebReflection/flatted/compare/v3.3.3...v3.4.2)

---
updated-dependencies:
- dependency-name: flatted
  dependency-version: 3.4.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-20 10:21:18 +00:00
CrazyMax 139e1274c0 Merge pull request #1489 from docker/dependabot/npm_and_yarn/fast-xml-parser-5.5.7
chore(deps): Bump fast-xml-parser from 5.4.2 to 5.5.7
2026-03-20 11:19:34 +01:00
github-actions[bot] 693b70024e chore: update generated content 2026-03-20 01:08:19 +00:00
dependabot[bot] 01a13d0bbd chore(deps): Bump fast-xml-parser from 5.4.2 to 5.5.7
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 5.4.2 to 5.5.7.
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v5.4.2...v5.5.7)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-version: 5.5.7
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-20 01:07:15 +00:00
Tõnis Tiigi eb6512707b Merge pull request #1480 from crazy-max/update-readme
readme: update to v7
2026-03-16 17:56:31 -07:00
CrazyMax 1031bc45c5 Merge pull request #1487 from docker/dependabot/github_actions/actions/create-github-app-token-3
chore(deps): Bump actions/create-github-app-token from 2 to 3
2026-03-16 14:06:41 +01:00
dependabot[bot] 344ec24f8d chore(deps): Bump actions/create-github-app-token from 2 to 3
Bumps [actions/create-github-app-token](https://github.com/actions/create-github-app-token) from 2 to 3.
- [Release notes](https://github.com/actions/create-github-app-token/releases)
- [Commits](https://github.com/actions/create-github-app-token/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/create-github-app-token
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-16 11:55:56 +00:00
Tõnis Tiigi dbac3ca1e5 Merge pull request #1481 from docker/dependabot/github_actions/docker/bake-action-7
chore(deps): Bump docker/bake-action from 6 to 7
2026-03-09 12:34:41 -07:00
CrazyMax b0bdd3ad21 ci: switch to matrix subaction
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-03-09 16:26:49 +01:00
dependabot[bot] 3cb57ac71c chore(deps): Bump docker/bake-action from 6 to 7
Bumps [docker/bake-action](https://github.com/docker/bake-action) from 6 to 7.
- [Release notes](https://github.com/docker/bake-action/releases)
- [Commits](https://github.com/docker/bake-action/compare/v6...v7)

---
updated-dependencies:
- dependency-name: docker/bake-action
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-09 15:25:03 +00:00
CrazyMax f64672cf50 Merge pull request #1482 from docker/dependabot/github_actions/docker/metadata-action-6
chore(deps): Bump docker/metadata-action from 5 to 6
2026-03-09 16:23:42 +01:00
dependabot[bot] 63e92d1fdf chore(deps): Bump docker/metadata-action from 5 to 6
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 5 to 6.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](https://github.com/docker/metadata-action/compare/v5...v6)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-06 11:52:23 +00:00
CrazyMax 155e77ab84 readme: update to v7
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-03-05 22:21:36 +01:00
CrazyMax d08e5c354a Merge pull request #1479 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.79.0
chore(deps): Bump @docker/actions-toolkit from 0.78.0 to 0.79.0
2026-03-05 19:12:33 +01:00
github-actions[bot] cbd2dff9a0 chore: update generated content 2026-03-05 18:07:51 +00:00
dependabot[bot] f76f51f129 chore(deps): Bump @docker/actions-toolkit from 0.78.0 to 0.79.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.78.0 to 0.79.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.78.0...v0.79.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-version: 0.79.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-05 18:06:03 +00:00
Tõnis Tiigi 7d03e66b5f Merge pull request #1473 from crazy-max/rm-deprecated-envs
remove deprecated envs
2026-03-05 08:20:01 -08:00
CrazyMax 98f853d923 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-03-05 17:05:08 +01:00
CrazyMax cadccf6e8c remove deprecated envs
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-03-05 17:05:07 +01:00
CrazyMax 03fe8775e3 Merge pull request #1478 from docker/dependabot/github_actions/docker/setup-buildx-action-4
chore(deps): Bump docker/setup-buildx-action from 3 to 4
2026-03-05 14:33:00 +01:00
dependabot[bot] 827e36650e chore(deps): Bump docker/setup-buildx-action from 3 to 4
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3 to 4.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-05 11:52:29 +00:00
Tõnis Tiigi e25db879d0 Merge pull request #1474 from crazy-max/rm-export-build-tool
remove legacy export-build tool support
2026-03-04 17:37:33 -08:00
Tõnis Tiigi 1ac2573b5c Merge pull request #1470 from crazy-max/node24
node 24 as default runtime
2026-03-04 17:37:05 -08:00
CrazyMax 5b9c34fb44 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-03-04 14:52:07 +01:00
CrazyMax 61cac19eba remove legacy export-build tool support
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-03-04 14:49:59 +01:00
CrazyMax 9a57217389 Merge pull request #1476 from docker/dependabot/github_actions/docker/setup-qemu-action-4
chore(deps): Bump docker/setup-qemu-action from 3 to 4
2026-03-04 13:47:52 +01:00
CrazyMax 975aafcd3e Merge pull request #1475 from docker/dependabot/github_actions/docker/login-action-4
chore(deps): Bump docker/login-action from 3 to 4
2026-03-04 13:47:35 +01:00
dependabot[bot] 2c65e9c5d3 chore(deps): Bump docker/setup-qemu-action from 3 to 4
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 3 to 4.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-04 11:52:24 +00:00
dependabot[bot] 230fd87864 chore(deps): Bump docker/login-action from 3 to 4
Bumps [docker/login-action](https://github.com/docker/login-action) from 3 to 4.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-04 11:52:18 +00:00
CrazyMax 7c68264114 node 24 as default runtime
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-03-04 11:47:11 +01:00
CrazyMax 1d41182205 Merge pull request #1472 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.78.0
chore(deps): Bump @docker/actions-toolkit from 0.77.0 to 0.78.0
2026-03-04 11:44:05 +01:00
github-actions[bot] 6b3878c083 chore: update generated content 2026-03-04 10:34:16 +00:00
dependabot[bot] 582091f7f9 chore(deps): Bump @docker/actions-toolkit from 0.77.0 to 0.78.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.77.0 to 0.78.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.77.0...v0.78.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-version: 0.78.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-04 10:33:05 +00:00
Tõnis Tiigi 38de52285e Merge pull request #1453 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.76.0
chore(deps): Bump @docker/actions-toolkit from 0.62.1 to 0.77.0
2026-03-03 11:11:32 -08:00
CrazyMax 5bc2aa100a chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-03-03 18:38:14 +01:00
CrazyMax f939b4c816 test: stabilize context test fixtures and github mock setup since ESM
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-03-03 18:38:14 +01:00
CrazyMax b4bda282d6 github summary and artifact logic moved since actions-toolkit v0.77.0
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-03-03 18:12:21 +01:00
dependabot[bot] 683985cc23 chore(deps): Bump @docker/actions-toolkit from 0.62.1 to 0.76.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.62.1 to 0.76.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.62.1...v0.76.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-version: 0.76.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-03 17:08:49 +00:00
CrazyMax 8913706d4e Merge pull request #1454 from docker/dependabot/npm_and_yarn/actions/core-3.0.0
chore(deps): Bump @actions/core from 1.11.1 to 3.0.0
2026-03-03 18:06:52 +01:00
github-actions[bot] 2505ca301c chore: update generated content 2026-03-03 17:04:10 +00:00
dependabot[bot] 2faeb55053 chore(deps): Bump @actions/core from 1.11.1 to 3.0.0
Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.11.1 to 3.0.0.
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core)

---
updated-dependencies:
- dependency-name: "@actions/core"
  dependency-version: 3.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-03 17:02:34 +00:00
CrazyMax 217eea940b Merge pull request #1463 from docker/dependabot/npm_and_yarn/minimatch-3.1.3
chore(deps): Bump minimatch from 3.1.2 to 3.1.5
2026-03-03 17:59:13 +01:00
github-actions[bot] 4003f769ac chore: update generated content 2026-03-03 15:33:06 +00:00
dependabot[bot] dbbef96a17 chore(deps): Bump minimatch from 3.1.2 to 3.1.3
Bumps [minimatch](https://github.com/isaacs/minimatch) from 3.1.2 to 3.1.3.
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v3.1.2...v3.1.3)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 3.1.3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-03 15:32:02 +00:00
CrazyMax d2c9f1ec18 Merge pull request #1466 from crazy-max/esm
switch to ESM and update config/test wiring
2026-03-03 16:16:49 +01:00
CrazyMax 2bd26e7129 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-03-02 09:36:28 +01:00
CrazyMax 4c8333398a dockerfile: fix vendoring
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-03-02 09:36:28 +01:00
CrazyMax ce71e4f44d update dev dependencies
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-03-01 11:07:00 +01:00
CrazyMax b66574c6d1 switch to ESM and update config/test wiring
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-03-01 11:07:00 +01:00
CrazyMax db4ff6ca90 switch from jest to vitest
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-02-28 16:32:47 +01:00
CrazyMax 10e90e3645 Merge pull request #1458 from crazy-max/git-auth-port
preserve port in GIT_AUTH_TOKEN host
2026-02-12 09:49:36 +01:00
CrazyMax 5262538458 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-02-12 01:26:27 +01:00
CrazyMax cd130e45cb preserve port in GIT_AUTH_TOKEN host
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-02-12 01:24:04 +01:00
CrazyMax 806c75105a Merge pull request #1452 from crazy-max/update-yarn
update yarn to 4.9.2
2026-02-11 19:59:17 +01:00
CrazyMax 601a80b39c Merge pull request #1456 from crazy-max/auth-token-dyn-host
derive GIT_AUTH_TOKEN host from GitHub server URL
2026-02-11 16:43:48 +01:00
CrazyMax 8f7fd7c8c7 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-02-11 13:59:06 +01:00
CrazyMax 710e335474 derive GIT_AUTH_TOKEN host from GitHub server URL
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-02-11 13:47:42 +01:00
CrazyMax c4ca8486a6 update yarn to 4.9.2
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-02-10 17:54:01 +01:00
CrazyMax ee4ca427a2 Merge pull request #1398 from docker/dependabot/npm_and_yarn/tmp-0.2.4
chore(deps): Bump tmp from 0.2.3 to 0.2.4
2026-02-10 17:34:08 +01:00
github-actions[bot] f1b3bb51af chore: update generated content 2026-02-10 16:31:49 +00:00
dependabot[bot] db35f80311 chore(deps): Bump tmp from 0.2.3 to 0.2.4
Bumps [tmp](https://github.com/raszi/node-tmp) from 0.2.3 to 0.2.4.
- [Changelog](https://github.com/raszi/node-tmp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/raszi/node-tmp/compare/v0.2.3...v0.2.4)

---
updated-dependencies:
- dependency-name: tmp
  dependency-version: 0.2.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-10 16:30:28 +00:00
CrazyMax a129300020 Merge pull request #1397 from docker/dependabot/npm_and_yarn/undici-5.29.0
chore(deps): Bump undici from 5.28.4 to 5.29.0
2026-02-10 17:28:15 +01:00
github-actions[bot] ba15693834 chore: update generated content 2026-02-10 16:20:42 +00:00
dependabot[bot] 367ff5effe chore(deps): Bump undici from 5.28.4 to 5.29.0
Bumps [undici](https://github.com/nodejs/undici) from 5.28.4 to 5.29.0.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v5.28.4...v5.29.0)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 5.29.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-10 16:19:23 +00:00
CrazyMax 0149a90b0f Merge pull request #1396 from docker/dependabot/npm_and_yarn/brace-expansion-1.1.12
chore(deps): Bump brace-expansion from 1.1.11 to 1.1.12
2026-02-10 17:16:59 +01:00
github-actions[bot] d1d3988951 chore: update generated content 2026-02-10 16:01:19 +00:00
dependabot[bot] b88979e155 chore(deps): Bump brace-expansion from 1.1.11 to 1.1.12
Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 1.1.11 to 1.1.12.
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](https://github.com/juliangruber/brace-expansion/compare/1.1.11...v1.1.12)

---
updated-dependencies:
- dependency-name: brace-expansion
  dependency-version: 1.1.12
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-10 15:59:52 +00:00
CrazyMax 176babefcc Merge pull request #1429 from docker/dependabot/npm_and_yarn/js-yaml-3.14.2
chore(deps): Bump js-yaml from 3.14.1 to 3.14.2
2026-02-10 16:57:14 +01:00
CrazyMax 469bed9e93 Merge pull request #1446 from docker/dependabot/npm_and_yarn/lodash-4.17.23
chore(deps): Bump lodash from 4.17.21 to 4.17.23
2026-02-10 16:56:47 +01:00
CrazyMax f477955db5 Merge pull request #1451 from crazy-max/fix-git-auth-token
scope default git auth token to github.com
2026-02-10 16:55:36 +01:00
CrazyMax 9760b3030f chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-02-10 15:39:22 +01:00
CrazyMax d40bd56b13 scope default git auth token to github.com
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-02-10 15:39:21 +01:00
CrazyMax 8c1e8f8e5b Merge pull request #1449 from crazy-max/update-dist-workflow
ci: update-dist workflow
2026-01-29 21:27:27 +01:00
CrazyMax 456cabcd5e ci: update-dist workflow
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-01-29 16:23:06 +01:00
dependabot[bot] 073b0e6385 chore(deps): Bump lodash from 4.17.21 to 4.17.23
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.21 to 4.17.23.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.17.23)

---
updated-dependencies:
- dependency-name: lodash
  dependency-version: 4.17.23
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-22 00:11:31 +00:00
Tõnis Tiigi 64c9b14150 Merge pull request #1443 from crazy-max/update-dev-deps
update dev dependencies
2026-01-07 16:41:35 -08:00
CrazyMax b035f368b0 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-01-07 16:17:58 +01:00
CrazyMax 607c92fb2b fix lint issues
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-01-07 16:15:39 +01:00
CrazyMax 2fec442ac0 update jest config since 30.0
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-01-07 16:14:24 +01:00
CrazyMax f91d05adaa migrate eslint config to new format required since 9.0.0
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-01-07 16:12:56 +01:00
CrazyMax c6a539d2f5 update dev dependencies
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-01-07 16:12:01 +01:00
CrazyMax 19e4966231 Merge pull request #1438 from docker/dependabot/github_actions/actions/cache-5
chore(deps): Bump actions/cache from 4 to 5
2026-01-07 16:07:27 +01:00
CrazyMax 01c006c5e0 Merge pull request #1434 from docker/dependabot/github_actions/actions/checkout-6
chore(deps): Bump actions/checkout from 5 to 6
2026-01-07 16:07:09 +01:00
dependabot[bot] 2a7a5fe65d chore(deps): Bump actions/cache from 4 to 5
Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-12 11:01:05 +00:00
dependabot[bot] 56acb03b80 chore(deps): Bump actions/checkout from 5 to 6
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-21 11:01:55 +00:00
dependabot[bot] 6d01ebc3b0 chore(deps): Bump js-yaml from 3.14.1 to 3.14.2
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.14.1 to 3.14.2.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/3.14.1...3.14.2)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 3.14.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-17 19:01:34 +00:00
CrazyMax 9e436ba9f2 Merge pull request #1413 from osman-butt/docs/update-checkout-v5
docs: update checkout action to v5 in README examples
2025-09-29 12:15:59 +02:00
osman-butt 62929198b5 docs: update checkout action to v5 in README
Signed-off-by: osman-butt <butt.osman@gmail.com>
2025-09-06 00:04:00 +02:00
CrazyMax cb8fc7586f Merge pull request #1411 from docker/update-e2e
ci: update harbor and distribution to latest
2025-09-05 12:13:31 +02:00
CrazyMax 5225a9fc21 ci: update harbor and distribution to latest
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-09-05 12:07:59 +02:00
CrazyMax ccc2b40e9e Merge pull request #1402 from docker/dependabot/github_actions/actions/checkout-5
chore(deps): Bump actions/checkout from 4 to 5
2025-08-21 11:14:53 +02:00
dependabot[bot] 5dd7b9db36 chore(deps): Bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-12 18:53:24 +00:00
CrazyMax 55146d969b Merge pull request #1391 from docker/dependabot/npm_and_yarn/form-data-2.5.5
chore(deps): Bump form-data from 2.5.1 to 2.5.5
2025-08-05 15:17:00 +02:00
dependabot[bot] 24e9b7e65f chore(deps): Bump form-data from 2.5.1 to 2.5.5
---
updated-dependencies:
- dependency-name: form-data
  dependency-version: 2.5.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-21 23:10:01 +00:00
CrazyMax 263435318d Merge pull request #1381 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.62.1
chore(deps): Bump @docker/actions-toolkit from 0.61.0 to 0.62.1
2025-05-27 18:32:33 +02:00
CrazyMax c0432d2e01 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-05-27 18:24:03 +02:00
CrazyMax 0bb1f27d6b set builder driver and endpoint attributes for dbc summary support
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-05-27 18:23:18 +02:00
dependabot[bot] 5f9dbf956c chore(deps): Bump @docker/actions-toolkit from 0.61.0 to 0.62.1
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.61.0 to 0.62.1.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.61.0...v0.62.1)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-version: 0.62.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-27 16:21:00 +00:00
CrazyMax 0788c444d8 Merge pull request #1375 from crazy-max/remove-gcr
e2e: remove GCR
2025-05-15 15:48:50 +02:00
CrazyMax aa179ca4f4 e2e: remove GCR
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-05-15 15:02:58 +02:00
CrazyMax 1dc7386353 Merge pull request #1364 from crazy-max/history-export-cmd
Bump @docker/actions-toolkit from 0.59.0 to 0.61.0
2025-05-15 10:18:19 +02:00
CrazyMax 9c9803f364 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-05-13 13:34:30 +02:00
CrazyMax db1f6c46e8 DOCKER_BUILD_EXPORT_LEGACY env var to opt-in for legacy export
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-05-13 13:34:30 +02:00
CrazyMax 721e8c79de Bump @docker/actions-toolkit from 0.59.0 to 0.61.0
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-05-13 13:34:29 +02:00
CrazyMax 14487ce63c Merge pull request #1343 from crazy-max/fix-no-default-attest
handle no default attestations env var
2025-04-23 18:39:17 +02:00
CrazyMax 0ec91264d8 Merge pull request #1366 from crazy-max/pr-assign-author
pr-assign-author workflow
2025-04-23 16:10:45 +02:00
CrazyMax b749522b90 pr-assign-author workflow
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-04-23 14:15:19 +02:00
CrazyMax c566248492 Merge pull request #1363 from crazy-max/fix-codecov
ci: fix missing source for codecov
2025-04-22 14:23:11 +02:00
CrazyMax 13275dd76e ci: fix missing source for codecov
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-04-22 14:11:25 +02:00
CrazyMax 67dc78bbaf Merge pull request #1361 from mschoettle/patch-1
docs: add validating build configuration example
2025-04-17 17:12:36 +02:00
Matthias Schoettle 0760504437 docs: add validating build configuration example
Signed-off-by: Matthias Schoettle <git@mattsch.com>
2025-04-17 10:14:30 -04:00
CrazyMax 1c198f4467 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-04-09 18:58:46 +02:00
CrazyMax 288d9e2e4a handle no default attestations env var
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-04-09 18:48:40 +02:00
CrazyMax 88844b95d8 Merge pull request #1353 from crazy-max/summary-secret-keys
only print secret keys in build summary output
2025-04-09 18:48:07 +02:00
CrazyMax 1be4244e8d chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-04-09 13:28:49 +02:00
CrazyMax 094d2bc0cd only print secret keys in build summary output
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-04-09 13:27:52 +02:00
CrazyMax 548776e8d0 Merge pull request #1352 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.59.0
chore(deps): Bump @docker/actions-toolkit from 0.56.0 to 0.59.0
2025-04-08 17:50:15 +02:00
CrazyMax 91838c2ba3 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-04-08 17:47:27 +02:00
dependabot[bot] 1332e65dc3 chore(deps): Bump @docker/actions-toolkit from 0.56.0 to 0.59.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.56.0 to 0.59.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.56.0...v0.59.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-version: 0.59.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-08 15:44:44 +00:00
CrazyMax 66147ca503 Merge pull request #1344 from k-kbk/add-exception-handling
refactor: add missing 'new' and exception handling
2025-04-07 14:46:26 +02:00
k-kbk 8ea72f78e8 chore: update dist
Signed-off-by: k-kbk <kkbk0077@gmail.com>
2025-04-01 23:28:50 +09:00
Bokyeom 6481840af9 refactor: add missing 'new' and exception handling
Signed-off-by: Bokyeom <79684339+k-kbk@users.noreply.github.com>
2025-04-01 11:36:44 +09:00
CrazyMax 84ad562665 Merge pull request #1337 from crazy-max/note-download-artifact
note about usage of summary feature with download-artifact action
2025-03-10 16:09:21 +01:00
CrazyMax 9bea05fc44 note about usage of summary feature with download-artifact action
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-03-10 11:16:14 +01:00
CrazyMax 471d1dc4e0 Merge pull request #1330 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.56.0
chore(deps): Bump @docker/actions-toolkit from 0.55.0 to 0.56.0
2025-02-26 15:30:30 +01:00
CrazyMax b89ff0a6f2 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-02-26 15:27:47 +01:00
dependabot[bot] 1e3ae3a4d3 chore(deps): Bump @docker/actions-toolkit from 0.55.0 to 0.56.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.55.0 to 0.56.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.55.0...v0.56.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-26 14:25:15 +00:00
CrazyMax b16f42f92a Merge pull request #1325 from crazy-max/buildx-edge
ci: update buildx to edge and buildkit to latest
2025-02-20 12:00:07 +01:00
CrazyMax dc0fea5e62 ci: update buildx to edge and buildkit to latest
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-02-20 11:56:02 +01:00
CrazyMax 0adf995921 Merge pull request #1324 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.55.0
chore(deps): Bump @docker/actions-toolkit from 0.53.0 to 0.55.0
2025-02-19 16:05:15 +01:00
CrazyMax d88cd289df chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-02-19 15:28:34 +01:00
dependabot[bot] 3d09a6bd70 chore(deps): Bump @docker/actions-toolkit from 0.53.0 to 0.55.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.53.0 to 0.55.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.53.0...v0.55.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-19 14:26:59 +00:00
CrazyMax ca877d9245 Merge pull request #1308 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.53.0
chore(deps): Bump @docker/actions-toolkit from 0.51.0 to 0.53.0
2025-01-24 10:23:33 +01:00
CrazyMax d2fe919bb5 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-24 10:19:21 +01:00
dependabot[bot] f0fc9ece82 chore(deps): Bump @docker/actions-toolkit from 0.51.0 to 0.53.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.51.0 to 0.53.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.51.0...v0.53.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-23 11:30:16 +00:00
CrazyMax 67a2d409c0 Merge pull request #1300 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.51.0
chore(deps): Bump @docker/actions-toolkit from 0.49.0 to 0.51.0
2025-01-15 13:50:03 +01:00
CrazyMax 0b1b1c9c43 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-15 13:44:43 +01:00
dependabot[bot] b6a7c2c4ee chore(deps): Bump @docker/actions-toolkit from 0.49.0 to 0.51.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.49.0 to 0.51.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.49.0...v0.51.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-15 12:07:48 +00:00
CrazyMax 31ca4e5d51 Merge pull request #1296 from crazy-max/bake-v6
update bake-action to v6
2025-01-08 18:54:38 +01:00
CrazyMax e613db9d5a update bake-action to v6
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-08 12:54:04 +01:00
CrazyMax b32b51a8ed Merge pull request #1281 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.49.0
chore(deps): Bump @docker/actions-toolkit from 0.46.0 to 0.49.0
2025-01-08 10:14:20 +01:00
CrazyMax 594bf46f0f Merge pull request #1294 from crazy-max/fix-e2e
ci(e2e): fix setup docker config
2025-01-08 10:14:00 +01:00
CrazyMax fd37bd55af ci(e2e): fix setup docker config
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-08 10:09:44 +01:00
CrazyMax e6478a2405 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-08 10:02:55 +01:00
dependabot[bot] 78785bddff chore(deps): Bump @docker/actions-toolkit from 0.46.0 to 0.49.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.46.0 to 0.49.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.46.0...v0.49.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-08 08:59:30 +00:00
CrazyMax 128779fed7 Merge pull request #1283 from crazy-max/named-context-handlebars
handlebar defaultContext support for build-contexts input
2025-01-08 09:57:16 +01:00
CrazyMax 7e094594be Merge pull request #1282 from crazy-max/remove-buildkit-5561
Revert "init buildkit-5561 workflow"
2024-12-17 16:32:34 +01:00
CrazyMax 32ee877a58 Revert "init buildkit-5561 workflow"
This reverts commit f5a8591a7f.

Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-12-17 16:26:04 +01:00
CrazyMax d1a4129c41 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-12-17 16:25:57 +01:00
CrazyMax 49c623eaf8 handlebar defaultContext support for build-contexts input
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-12-17 16:25:56 +01:00
CrazyMax bcc9f4afe7 Merge pull request #1284 from crazy-max/dockerfiles-pin-bases
test: fix multi-sudo dockerfile
2024-12-17 16:18:44 +01:00
CrazyMax da5b6c75b9 test: fix multi-sudo dockerfile
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-12-17 16:12:32 +01:00
CrazyMax 11be14d908 Merge pull request #1274 from crazy-max/init-buildkit-5561
init buildkit-5561 workflow
2024-12-05 15:27:22 +01:00
CrazyMax f5a8591a7f init buildkit-5561 workflow
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-12-05 15:21:59 +01:00
CrazyMax 8796455d32 Merge pull request #1272 from crazy-max/update-readme
readme: move login step up
2024-12-03 16:04:51 +01:00
CrazyMax 750f367828 readme: move login step up
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-12-03 15:36:12 +01:00
CrazyMax 48aba3b46d Merge pull request #1268 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.46.0
chore(deps): Bump @docker/actions-toolkit from 0.39.0 to 0.46.0
2024-11-26 11:20:57 +01:00
CrazyMax 678328cf8e chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-26 11:17:24 +01:00
dependabot[bot] cdf0a37e6f chore(deps): Bump @docker/actions-toolkit from 0.39.0 to 0.46.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.39.0 to 0.46.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.39.0...v0.46.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-26 10:16:04 +00:00
CrazyMax d719b79de1 Merge pull request #1238 from docker/dependabot/npm_and_yarn/actions/core-1.11.1
chore(deps): Bump @actions/core from 1.10.1 to 1.11.1
2024-11-26 11:14:18 +01:00
CrazyMax c333dfd43d chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-26 11:12:04 +01:00
dependabot[bot] 6b56a4c3f8 chore(deps): Bump @actions/core from 1.10.1 to 1.11.1
Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.10.1 to 1.11.1.
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core)

---
updated-dependencies:
- dependency-name: "@actions/core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-26 10:01:50 +00:00
CrazyMax 92fb0d73b6 Merge pull request #1259 from docker/dependabot/github_actions/codecov/codecov-action-5
chore(deps): Bump codecov/codecov-action from 4 to 5
2024-11-26 10:59:59 +01:00
CrazyMax 40532c5d6f ci: fix deprecated input for codecov-action
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-26 10:56:40 +01:00
CrazyMax 70dd953427 Merge pull request #1267 from crazy-max/fix-allow
iterate over allow input values and push each separately
2024-11-26 10:54:57 +01:00
CrazyMax 41b4e8020e Merge pull request #1261 from docker/dependabot/npm_and_yarn/cross-spawn-7.0.6
chore(deps): Bump cross-spawn from 7.0.3 to 7.0.6
2024-11-26 10:54:24 +01:00
CrazyMax 22cd91d73b Merge pull request #1266 from crazy-max/update-trbsht
update troubleshooting markdown
2024-11-26 10:14:48 +01:00
CrazyMax 6bdcc4fb8c chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-26 01:30:39 +01:00
CrazyMax b5e932e401 iterate over allow input values and push each separately
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-26 01:30:38 +01:00
CrazyMax 325a8bf0f1 update troubleshooting markdown
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-26 01:12:56 +01:00
Shaun Thompson 0259cb088b Merge pull request #1265 from crazy-max/call-check
call input to set method for evaluating build
2024-11-25 14:51:52 -05:00
CrazyMax 1b8e4efb78 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-25 18:38:40 +01:00
CrazyMax 75ffdcce88 call input to set method for evaluating build
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-25 18:37:45 +01:00
dependabot[bot] 73b7dbf5d4 chore(deps): Bump cross-spawn from 7.0.3 to 7.0.6
Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.6.
- [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/moxystudio/node-cross-spawn/compare/v7.0.3...v7.0.6)

---
updated-dependencies:
- dependency-name: cross-spawn
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-18 22:35:50 +00:00
dependabot[bot] f79ca49284 chore(deps): Bump codecov/codecov-action from 4 to 5
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4 to 5.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v4...v5)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-15 11:05:57 +00:00
CrazyMax 5e99dacf67 Merge pull request #1245 from crazy-max/publish-immutable-action
ci: publish as immutable action workflow
2024-10-26 00:40:44 +02:00
CrazyMax b249570060 ci: publish as immutable action workflow
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-10-25 13:18:56 +02:00
CrazyMax 4f58ea7922 Merge pull request #1234 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.39.0
chore(deps): Bump @docker/actions-toolkit from 0.38.0 to 0.39.0
2024-09-30 11:50:59 +02:00
CrazyMax 49b5ea61c6 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-09-30 11:40:00 +02:00
dependabot[bot] 13c9fddd72 chore(deps): Bump @docker/actions-toolkit from 0.38.0 to 0.39.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.38.0 to 0.39.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.38.0...v0.39.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-30 09:34:56 +00:00
CrazyMax e44afff359 Merge pull request #1232 from docker/dependabot/npm_and_yarn/path-to-regexp-6.3.0
chore(deps): Bump path-to-regexp from 6.2.2 to 6.3.0
2024-09-27 14:21:12 +02:00
dependabot[bot] 67ebad331f chore(deps): Bump path-to-regexp from 6.2.2 to 6.3.0
Bumps [path-to-regexp](https://github.com/pillarjs/path-to-regexp) from 6.2.2 to 6.3.0.
- [Release notes](https://github.com/pillarjs/path-to-regexp/releases)
- [Changelog](https://github.com/pillarjs/path-to-regexp/blob/master/History.md)
- [Commits](https://github.com/pillarjs/path-to-regexp/compare/v6.2.2...v6.3.0)

---
updated-dependencies:
- dependency-name: path-to-regexp
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-27 11:38:59 +00:00
CrazyMax 32945a3392 Merge pull request #1230 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.38.0
chore(deps): Bump @docker/actions-toolkit from 0.37.1 to 0.38.0
2024-09-27 13:36:58 +02:00
CrazyMax e0fe9cf0f2 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-09-27 13:34:05 +02:00
dependabot[bot] 8f1ff6bf9a chore(deps): Bump @docker/actions-toolkit from 0.37.1 to 0.38.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.37.1 to 0.38.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.37.1...v0.38.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-27 10:57:29 +00:00
CrazyMax 5cd11c3a4c Merge pull request #1211 from crazy-max/summary-info-message
print info message for build summary support checks
2024-08-13 12:33:34 +02:00
CrazyMax 0aba704831 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-08-13 11:18:29 +02:00
CrazyMax 23c657a01f print info message for build summary support checks
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-08-13 11:05:41 +02:00
CrazyMax 16ebe778df Merge pull request #1205 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.37.1
chore(deps): Bump @docker/actions-toolkit from 0.37.0 to 0.37.1
2024-08-07 22:17:02 +02:00
CrazyMax 646a62b4f2 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-08-07 22:13:02 +02:00
dependabot[bot] d92ab1347f chore(deps): Bump @docker/actions-toolkit from 0.37.0 to 0.37.1
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.37.0 to 0.37.1.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.37.0...v0.37.1)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-07 20:11:38 +00:00
CrazyMax 4f7cdeb0f0 Merge pull request #1198 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.37.0
chore(deps): Bump @docker/actions-toolkit from 0.36.0 to 0.37.0
2024-08-07 10:02:48 +02:00
CrazyMax ad3cd774a4 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-08-07 09:52:34 +02:00
dependabot[bot] 3efbc13366 chore(deps): Bump @docker/actions-toolkit from 0.36.0 to 0.37.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.36.0 to 0.37.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.36.0...v0.37.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-07 07:50:48 +00:00
CrazyMax 2dbe91db48 Merge pull request #1197 from crazy-max/build-checks
generate GitHub annotations for build checks
2024-08-06 17:08:37 +02:00
CrazyMax 7de3854c4c chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-07-31 14:16:51 +02:00
CrazyMax 175aa53a3f opt to disable github annotations generation for build checks
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-07-31 14:01:00 +02:00
CrazyMax 806a2a461f generate GitHub annotations for build checks
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-07-30 17:57:28 +02:00
CrazyMax a8d35412fb Merge pull request #1196 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.36.0
chore(deps): Bump @docker/actions-toolkit from 0.35.0 to 0.36.0
2024-07-30 16:33:04 +02:00
CrazyMax 1672e74297 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-07-30 16:24:19 +02:00
dependabot[bot] a04f51d3b4 chore(deps): Bump @docker/actions-toolkit from 0.35.0 to 0.36.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.35.0 to 0.36.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.35.0...v0.36.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-30 14:12:41 +00:00
CrazyMax 5176d81f87 Merge pull request #1191 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.35.0
chore(deps): Bump @docker/actions-toolkit from 0.34.0 to 0.35.0
2024-07-22 11:57:03 +02:00
CrazyMax ec10ae8f96 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-07-22 11:54:59 +02:00
dependabot[bot] 597e8fc414 chore(deps): Bump @docker/actions-toolkit from 0.34.0 to 0.35.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.34.0 to 0.35.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.34.0...v0.35.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-22 09:44:56 +00:00
CrazyMax e050dfa622 Merge pull request #1186 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.34.0
chore(deps): Bump @docker/actions-toolkit from 0.33.0 to 0.34.0
2024-07-19 13:10:25 +02:00
CrazyMax d1fcdb6ee0 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-07-18 16:55:34 +02:00
dependabot[bot] a6067b9a1a chore(deps): Bump @docker/actions-toolkit from 0.33.0 to 0.34.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.33.0 to 0.34.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.33.0...v0.34.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-18 11:36:14 +00:00
CrazyMax 1ca370b3a9 Merge pull request #1183 from crazy-max/revert-gha-cache-to
revert "set repository and ghtoken attributes for gha cache type"
2024-07-17 11:01:30 +02:00
CrazyMax 2c95ebed5c chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-07-17 10:48:34 +02:00
CrazyMax d189d0ef33 Revert "set repository and ghtoken attributes for gha cache type"
This reverts commit 522345f555.

Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-07-17 10:47:38 +02:00
CrazyMax a254f8ca60 Merge pull request #1179 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.33.0
chore(deps): Bump @docker/actions-toolkit from 0.31.0 to 0.33.0
2024-07-15 13:54:32 +02:00
CrazyMax 94dae62c78 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-07-15 13:51:58 +02:00
dependabot[bot] 267a69d6cc chore(deps): Bump @docker/actions-toolkit from 0.31.0 to 0.33.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.31.0 to 0.33.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.31.0...v0.33.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-15 11:50:08 +00:00
CrazyMax f23fb2a7cb Merge pull request #1133 from crazy-max/gha-cache-to
set repository and ghtoken attributes for gha cache type
2024-07-15 13:47:10 +02:00
CrazyMax ef76d100ee chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-07-03 10:03:37 +02:00
CrazyMax 522345f555 set repository and ghtoken attributes for gha cache type
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-07-03 10:02:24 +02:00
CrazyMax 1a162644f9 Merge pull request #1172 from crazy-max/build-export-disable
opt to disable build record upload
2024-07-02 18:38:46 +02:00
CrazyMax 9eea548195 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-07-02 18:19:48 +02:00
CrazyMax 11c2faaa9e rename DOCKER_BUILD_EXPORT_RETENTION_DAYS to DOCKER_BUILD_RECORD_RETENTION_DAYS
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-07-02 18:13:41 +02:00
CrazyMax de2365af33 opt to disable build record upload
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-07-02 18:07:54 +02:00
CrazyMax bca5082da7 Merge pull request #1173 from crazy-max/build-summary-env-change
switch DOCKER_BUILD_SUMMARY_DISABLE to DOCKER_BUILD_SUMMARY
2024-07-02 17:59:43 +02:00
CrazyMax e7aab408d9 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-07-02 17:55:45 +02:00
CrazyMax 63eb7590c6 switch DOCKER_BUILD_SUMMARY_DISABLE to DOCKER_BUILD_SUMMARY
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-07-02 17:55:44 +02:00
CrazyMax 53ec48606f Merge pull request #1171 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.31.0
chore(deps): Bump @docker/actions-toolkit from 0.30.0 to 0.31.0
2024-07-02 15:28:50 +02:00
CrazyMax fe9d9f1d0c chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-07-02 15:26:29 +02:00
dependabot[bot] ad37ba1ad0 chore(deps): Bump @docker/actions-toolkit from 0.30.0 to 0.31.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.30.0 to 0.31.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.30.0...v0.31.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-02 13:25:11 +00:00
CrazyMax aabbd3f4d7 Merge pull request #1170 from crazy-max/rename-summary-disable
rename DOCKER_BUILD_NO_SUMMARY to DOCKER_BUILD_SUMMARY_DISABLE
2024-07-02 15:11:52 +02:00
CrazyMax 9c7c277413 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-07-02 14:50:21 +02:00
CrazyMax 987902144c rename DOCKER_BUILD_NO_SUMMARY to DOCKER_BUILD_SUMMARY_DISABLE
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-07-02 14:49:31 +02:00
CrazyMax 709dde20a7 Merge pull request #1160 from crazy-max/check-summary-support
move summary support check right after build
2024-07-02 14:28:05 +02:00
CrazyMax ec2d640ea6 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-07-02 14:22:01 +02:00
CrazyMax 3dc0757c66 move summary support check right after build
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-07-02 14:20:56 +02:00
CrazyMax dcb0699155 Merge pull request #1169 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.30.0
chore(deps): Bump @docker/actions-toolkit from 0.29.0 to 0.30.0
2024-07-02 14:16:55 +02:00
CrazyMax a3c06e8698 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-07-02 14:14:03 +02:00
dependabot[bot] e75138d857 chore(deps): Bump @docker/actions-toolkit from 0.29.0 to 0.30.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.29.0 to 0.30.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.29.0...v0.30.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-02 12:03:13 +00:00
CrazyMax 9552610e81 Merge pull request #1166 from crazy-max/subdir-supported
docs: subdir for git context supported since Docker 23
2024-07-01 13:43:50 +02:00
CrazyMax 99c83871c1 docs: subdir for git context supported since Docker 23
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-07-01 00:54:10 +02:00
CrazyMax af64c4e18f Merge pull request #1161 from docker/readme-summaries
readme: add section on job summaries
2024-06-27 14:15:15 +02:00
David Karlsson 6fdff4fb09 readme: add section on job summaries
Signed-off-by: David Karlsson <35727626+dvdksn@users.noreply.github.com>
2024-06-27 13:51:35 +02:00
CrazyMax 9e59c61762 Merge pull request #1159 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.29.0
chore(deps): Bump @docker/actions-toolkit from 0.28.0 to 0.29.0
2024-06-27 11:11:05 +02:00
CrazyMax 49351df2b7 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-06-27 11:08:00 +02:00
dependabot[bot] 723ff6ffad chore(deps): Bump @docker/actions-toolkit from 0.28.0 to 0.29.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.28.0 to 0.29.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.28.0...v0.29.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-27 09:03:36 +00:00
CrazyMax 15560696de Merge pull request #1158 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.28.0
chore(deps): Bump @docker/actions-toolkit from 0.27.0 to 0.28.0
2024-06-26 14:20:37 +02:00
CrazyMax 57e1d34ac3 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-06-26 14:14:54 +02:00
dependabot[bot] 309982ebc9 chore(deps): Bump @docker/actions-toolkit from 0.27.0 to 0.28.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.27.0 to 0.28.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.27.0...v0.28.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-26 12:10:23 +00:00
CrazyMax 9476c25b2a Merge pull request #1153 from crazy-max/export-retention
use default retention days for build export artifact
2024-06-26 14:00:48 +02:00
CrazyMax 97be5a4928 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-06-24 10:28:21 +02:00
CrazyMax 9cac6c8ea0 use default retention days for build export artifact
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-06-24 10:28:21 +02:00
CrazyMax 31159d49c0 Merge pull request #1149 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.27.0
chore(deps): Bump @docker/actions-toolkit from 0.26.2 to 0.27.0
2024-06-20 19:22:45 +02:00
CrazyMax 07e1c3e148 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-06-20 19:18:43 +02:00
dependabot[bot] f7febd621d chore(deps): Bump @docker/actions-toolkit from 0.26.2 to 0.27.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.26.2 to 0.27.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.26.2...v0.27.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-20 17:13:56 +00:00
CrazyMax f6010ea701 Merge pull request #1147 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.26.2
chore(deps): Bump @docker/actions-toolkit from 0.26.1 to 0.26.2
2024-06-20 15:56:23 +02:00
CrazyMax c0a6b9680f chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-06-20 14:56:13 +02:00
dependabot[bot] 0dfe9c3d41 chore(deps): Bump @docker/actions-toolkit from 0.26.1 to 0.26.2
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.26.1 to 0.26.2.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.26.1...v0.26.2)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-20 11:15:38 +00:00
CrazyMax 94f8f8c2ee Merge pull request #1142 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.26.1
chore(deps): Bump @docker/actions-toolkit from 0.26.0 to 0.26.1
2024-06-18 17:39:29 +02:00
CrazyMax 22f4433c58 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-06-18 17:37:35 +02:00
dependabot[bot] 6721c56015 chore(deps): Bump @docker/actions-toolkit from 0.26.0 to 0.26.1
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.26.0 to 0.26.1.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.26.0...v0.26.1)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-18 15:33:20 +00:00
CrazyMax 4367da978b Merge pull request #1140 from docker/dependabot/github_actions/docker/bake-action-5
chore(deps): Bump docker/bake-action from 4 to 5
2024-06-17 13:17:16 +02:00
CrazyMax 0883ebe52d Merge pull request #1139 from crazy-max/bump-major
docs: bump actions to latest major
2024-06-17 13:16:55 +02:00
dependabot[bot] 76e5c2d6ea chore(deps): Bump docker/bake-action from 4 to 5
Bumps [docker/bake-action](https://github.com/docker/bake-action) from 4 to 5.
- [Release notes](https://github.com/docker/bake-action/releases)
- [Commits](https://github.com/docker/bake-action/compare/v4...v5)

---
updated-dependencies:
- dependency-name: docker/bake-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-17 11:08:17 +00:00
CrazyMax 29d67824d8 docs: bump actions to latest major
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-06-17 11:46:56 +02:00
CrazyMax c382f710d3 Merge pull request #1120 from crazy-max/build-summary
export build record and generate summary
2024-06-17 09:23:45 +02:00
CrazyMax 5a5b70d974 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-06-14 16:11:49 +02:00
CrazyMax dc24cf9e25 don't generate summary for cloud driver
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-06-14 16:06:09 +02:00
CrazyMax 667cb22c52 DOCKER_BUILD_NO_SUMMARY env to disable summary
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-06-14 16:06:09 +02:00
CrazyMax d880b1964b generate build summary
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-06-14 16:06:08 +02:00
CrazyMax e51051ad0b export build record and upload artifact
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-06-14 16:06:08 +02:00
CrazyMax 86c2bd0031 Merge pull request #1137 from docker/dependabot/npm_and_yarn/braces-3.0.3
chore(deps): Bump braces from 3.0.2 to 3.0.3
2024-06-14 16:05:47 +02:00
CrazyMax 268d2b1611 Merge pull request #1138 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.26.0
chore(deps): Bump @docker/actions-toolkit from 0.25.1 to 0.26.0
2024-06-14 16:02:14 +02:00
CrazyMax 2b8dc7f529 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-06-14 15:59:52 +02:00
dependabot[bot] 840c12be17 chore(deps): Bump @docker/actions-toolkit from 0.25.1 to 0.26.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.25.1 to 0.26.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.25.1...v0.26.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-14 13:55:22 +00:00
dependabot[bot] 26368743c0 chore(deps): Bump braces from 3.0.2 to 3.0.3
Bumps [braces](https://github.com/micromatch/braces) from 3.0.2 to 3.0.3.
- [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3)

---
updated-dependencies:
- dependency-name: braces
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-12 07:44:48 +00:00
CrazyMax cfed4e995e Merge pull request #1136 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.25.1
chore(deps): Bump @docker/actions-toolkit from 0.25.0 to 0.25.1
2024-06-12 09:42:53 +02:00
CrazyMax dca03ca8fd chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-06-12 09:38:12 +02:00
dependabot[bot] e030091ff4 chore(deps): Bump @docker/actions-toolkit from 0.25.0 to 0.25.1
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.25.0 to 0.25.1.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.25.0...v0.25.1)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-12 07:34:37 +00:00
CrazyMax 84354d3b32 Merge pull request #1132 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.25.0
chore(deps): Bump @docker/actions-toolkit from 0.24.0 to 0.25.0
2024-06-10 15:14:08 +02:00
CrazyMax de5408fe94 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-06-10 15:12:15 +02:00
CrazyMax cfc1555281 fix tests after changes with provenance builder-id
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-06-10 15:06:45 +02:00
dependabot[bot] f6a172d30e chore(deps): Bump @docker/actions-toolkit from 0.24.0 to 0.25.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.24.0 to 0.25.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.24.0...v0.25.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-10 12:56:13 +00:00
CrazyMax ca052bb54a Merge pull request #1128 from crazy-max/builder-info
show builder information before building
2024-05-29 14:20:19 +02:00
CrazyMax 025c2051f3 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-05-29 12:53:55 +02:00
CrazyMax 12076d2fb1 show builder information before building
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-05-29 12:52:50 +02:00
CrazyMax ef6cba3353 Merge pull request #1127 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.24.0
chore(deps): Bump @docker/actions-toolkit from 0.23.0 to 0.24.0
2024-05-27 12:51:04 +02:00
CrazyMax 4c16cf906a chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-05-27 12:48:55 +02:00
CrazyMax a3118a86c8 fixes since moved types
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-05-27 12:45:25 +02:00
dependabot[bot] c86eb8b0f7 chore(deps): Bump @docker/actions-toolkit from 0.23.0 to 0.24.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.23.0 to 0.24.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.23.0...v0.24.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-27 10:44:02 +00:00
CrazyMax 2a53c6ccda Merge pull request #1122 from crazy-max/update-dev-deps
chore: update dev dependencies
2024-05-15 13:47:05 +02:00
CrazyMax ccef1f210d chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-05-15 13:44:48 +02:00
CrazyMax 79117b6ea5 chore: update dev dependencies
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-05-15 13:41:47 +02:00
CrazyMax df19a799eb Merge pull request #1121 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.23.0
chore(deps): Bump @docker/actions-toolkit from 0.22.0 to 0.23.0
2024-05-14 14:34:37 +02:00
CrazyMax 0e2ab16cd2 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-05-14 14:32:09 +02:00
CrazyMax 54d0f58d64 fixes related to actions-toolkit 0.23.0 changes
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-05-14 14:11:32 +02:00
dependabot[bot] 563a2f55e4 chore(deps): Bump @docker/actions-toolkit from 0.22.0 to 0.23.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.22.0 to 0.23.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.22.0...v0.23.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-14 11:51:36 +00:00
CrazyMax 6003d3266a Merge pull request #1115 from crazy-max/fix-e2e-artifactory
ci(e2e): fix artifactory slug
2024-05-10 10:21:37 +02:00
CrazyMax e1e22cdde8 ci(e2e): fix artifactory slug
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-05-10 10:19:21 +02:00
CrazyMax fc15b64049 Merge pull request #1114 from crazy-max/e2e-artifactory
ci(e2e): update artifactory instance
2024-05-10 10:15:01 +02:00
CrazyMax 6c58ea3670 ci(e2e): update artifactory instance
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-05-10 09:56:42 +02:00
CrazyMax 729f7f4926 Merge pull request #1109 from crazy-max/align-inputs-iface
align interface fields with action inputs
2024-05-06 12:18:15 +02:00
CrazyMax 99d83235bc chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-05-06 12:11:32 +02:00
CrazyMax 1d5307d7af align interface fields with action inputs
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-05-06 12:08:12 +02:00
CrazyMax cf8d130912 Merge pull request #1110 from crazy-max/update-yarn
update to yarn 3.6.3
2024-05-06 12:07:31 +02:00
CrazyMax 8804d8e2ac chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-05-06 12:02:50 +02:00
CrazyMax 1984549052 chore: add plugin-interactive-tools yarn pkg
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-05-06 12:01:44 +02:00
CrazyMax 5bc9e2e9b9 update to yarn 3.6.3
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-05-06 12:01:20 +02:00
CrazyMax eb539f44b1 Merge pull request #1090 from docker/dependabot/npm_and_yarn/undici-5.28.4
chore(deps): Bump undici from 5.28.3 to 5.28.4
2024-04-26 13:42:42 +02:00
CrazyMax b6ff9e5753 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-04-26 13:06:55 +02:00
dependabot[bot] 929fba6cce chore(deps): Bump undici from 5.28.3 to 5.28.4
Bumps [undici](https://github.com/nodejs/undici) from 5.28.3 to 5.28.4.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v5.28.3...v5.28.4)

---
updated-dependencies:
- dependency-name: undici
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-26 10:59:25 +00:00
CrazyMax 7f1f43ba33 Merge pull request #1105 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.22.0
chore(deps): Bump @docker/actions-toolkit from 0.20.0 to 0.22.0
2024-04-26 12:22:27 +02:00
CrazyMax 40d6a900e0 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-04-26 11:54:16 +02:00
CrazyMax d56be63626 Merge pull request #1106 from crazy-max/docs-rm-stubs
docs: remove stub files
2024-04-26 11:21:16 +02:00
CrazyMax eb3cfeaf00 switch to new Build class
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-04-26 11:20:49 +02:00
CrazyMax d0fc12d8a4 docs: remove stub files
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-04-26 11:12:45 +02:00
dependabot[bot] 68615d5b67 chore(deps): Bump @docker/actions-toolkit from 0.20.0 to 0.22.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.20.0 to 0.22.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.20.0...v0.22.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-26 09:09:12 +00:00
CrazyMax c3b570184c Merge pull request #1086 from crazy-max/fix-attests-provenance-sbom
handle attests correctly with provenance and sbom inputs
2024-04-26 11:05:55 +02:00
CrazyMax 7e6f77677b Merge pull request #1095 from crazy-max/ci-use-stable-1
ci: switch to stable buildkit image for load and push
2024-04-16 08:47:52 +02:00
CrazyMax 2ce6beaad4 readme: update following latest buildx/buildkit releases
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-04-15 09:50:33 +02:00
CrazyMax 4c8d1e6826 ci: switch to stable buildkit image for load and push
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-04-15 09:47:50 +02:00
CrazyMax b0312962ef chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-04-02 10:58:32 +02:00
CrazyMax 96acf63e4c handle attests correctly with provenance and sbom inputs
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-04-02 10:54:20 +02:00
CrazyMax f8bc7f4600 Merge pull request #1088 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.20.0
chore(deps): Bump @docker/actions-toolkit from 0.19.0 to 0.20.0
2024-04-02 10:47:32 +02:00
CrazyMax c2064be02c chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-04-02 10:43:15 +02:00
dependabot[bot] 4f02f34098 chore(deps): Bump @docker/actions-toolkit from 0.19.0 to 0.20.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.19.0 to 0.20.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.19.0...v0.20.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-02 08:41:33 +00:00
CrazyMax 090ca155fc Merge pull request #1081 from crazy-max/ci-update-bk-config
ci: use buildkitd-config input
2024-03-18 09:33:18 +01:00
CrazyMax ec4854f780 ci: use buildkitd-config input
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-03-17 18:33:27 +01:00
CrazyMax 2cdde995de Merge pull request #1080 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.19.0
chore(deps): Bump @docker/actions-toolkit from 0.18.0 to 0.19.0
2024-03-13 19:21:45 +01:00
CrazyMax 008747aa03 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-03-13 19:19:46 +01:00
dependabot[bot] 1580753126 chore(deps): Bump @docker/actions-toolkit from 0.18.0 to 0.19.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.18.0 to 0.19.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.18.0...v0.19.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-13 18:18:15 +00:00
Tõnis Tiigi 2a7db1d68a Merge pull request #1075 from crazy-max/ci-multi-output
ci: test multi output
2024-03-11 16:57:53 -07:00
CrazyMax 35e7dd5921 ci: test multi output
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-03-08 14:07:12 +01:00
CrazyMax af5a7ed5ba Merge pull request #1074 from crazy-max/build-cmd-debug
disable quotes detection for "outputs" input
2024-03-07 19:54:57 +01:00
CrazyMax 2a85189a6c chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-03-06 15:26:36 +01:00
CrazyMax 6c2079483e disable quotes detection for "outputs" input
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-03-06 15:25:57 +01:00
CrazyMax afdf0c0a67 chore: debug build cmd and args
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-03-06 15:20:53 +01:00
CrazyMax 00ae31ab6e Merge pull request #1070 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.18.0
chore(deps): Bump @docker/actions-toolkit from 0.14.0 to 0.18.0
2024-03-06 14:43:50 +01:00
CrazyMax 701942b6e5 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-03-06 14:40:26 +01:00
dependabot[bot] 90e54d0b1d chore(deps): Bump @docker/actions-toolkit from 0.14.0 to 0.18.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.14.0 to 0.18.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.14.0...v0.18.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-01 11:36:46 +00:00
CrazyMax 831ca179d3 Merge pull request #1066 from crazy-max/ci-local-cache
ci: local-cache job to test local cache feature
2024-02-29 13:00:40 +01:00
CrazyMax 6bd0e5492f ci: local-cache job to test local cache feature
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-02-28 15:47:13 +01:00
CrazyMax b3eddbb94c Merge pull request #1057 from docker/dependabot/npm_and_yarn/undici-5.28.3
chore(deps): Bump undici from 5.26.3 to 5.28.3
2024-02-23 09:32:22 +01:00
CrazyMax ffd798c1f1 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-02-23 09:30:57 +01:00
CrazyMax 62d8db0960 Merge pull request #1059 from crazy-max/codecov-token
ci: set codecov token
2024-02-22 23:31:08 +01:00
CrazyMax 8ab81cb898 ci: set codecov token
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-02-22 23:27:38 +01:00
dependabot[bot] d47e7c357d chore(deps): Bump undici from 5.26.3 to 5.28.3
Bumps [undici](https://github.com/nodejs/undici) from 5.26.3 to 5.28.3.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v5.26.3...v5.28.3)

---
updated-dependencies:
- dependency-name: undici
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-16 17:55:24 +00:00
CrazyMax 4976231911 Merge pull request #1046 from docker/dependabot/github_actions/codecov/codecov-action-4
chore(deps): Bump codecov/codecov-action from 3 to 4
2024-02-03 15:27:24 +01:00
dependabot[bot] d236adc992 chore(deps): Bump codecov/codecov-action from 3 to 4
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 3 to 4.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-01 11:49:00 +00:00
CrazyMax 94d76d3bc1 Merge pull request #1041 from k-yamasaki-zakisan/feature/upgrate-readme-to-actions/checkout@v4
upgrade actions/checkout to v4
2024-01-26 10:41:26 +01:00
k-yamasaki-zakisan 2b28f2a854 upgrade actions/checkout to v4
Signed-off-by: Kazuyoshi Yamasaki <kazuyoshi.kyushu@gmail.com>
2024-01-26 17:18:20 +09:00
CrazyMax 9f6f8c940b Merge pull request #1019 from favonia/warn-about-ignored-inputs
feat: warn about ignored inputs
2023-12-01 09:31:23 -08:00
favonia 8411d080ee feat: warn about ignored inputs
Currently, several inputs can be silently ignored without
any warnings. This change will issue a warning for each
ignored input with a short explanation.

Signed-off-by: favonia <favonia@gmail.com>
2023-12-01 07:50:51 -06:00
CrazyMax 4a13e500e5 Merge pull request #1006 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.14.0
chore(deps): Bump @docker/actions-toolkit from 0.13.0 to 0.14.0
2023-11-17 03:34:00 -08:00
CrazyMax 7416668686 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2023-11-17 12:22:57 +01:00
dependabot[bot] b4f76a5dc6 chore(deps): Bump @docker/actions-toolkit from 0.13.0 to 0.14.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.13.0 to 0.14.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.13.0...v0.14.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-17 10:59:04 +00:00
CrazyMax b7feb766fa Merge pull request #1005 from crazy-max/ci-inspect
ci: inspect sbom and provenance
2023-11-17 02:46:05 -08:00
CrazyMax fae8018297 ci: inspect sbom and provenance
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2023-11-17 11:44:11 +01:00
CrazyMax b625868b13 Merge pull request #1004 from crazy-max/ci-update-buildx
ci: update buildx to latest
2023-11-17 02:21:23 -08:00
CrazyMax 5193ef1da6 ci: update buildx to latest
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2023-11-17 11:06:32 +01:00
CrazyMax d3afd779e4 Merge pull request #991 from docker/dependabot/npm_and_yarn/babel/traverse-7.23.2
chore(deps): Bump @babel/traverse from 7.17.3 to 7.23.2
2023-11-16 01:53:02 -08:00
Tõnis Tiigi 7a786bb2b9 Merge pull request #992 from crazy-max/annotations
add annotations input
2023-11-15 13:19:25 -08:00
CrazyMax c66ae3adcf chore: update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-10-27 06:43:13 +02:00
CrazyMax 248131c7bf add annotations input
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-10-27 06:43:13 +02:00
CrazyMax b425c4cd5a ci: bump buildx to v0.12.0-rc1
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-10-27 06:42:50 +02:00
dependabot[bot] 9834ce5b4d chore(deps): Bump @babel/traverse from 7.17.3 to 7.23.2
Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.17.3 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-17 20:37:00 +00:00
CrazyMax fdf7f43ecf Merge pull request #990 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.13.0
chore(deps): Bump @docker/actions-toolkit from 0.13.0-rc.1 to 0.13.0
2023-10-13 05:17:16 -07:00
CrazyMax e3a4c332fb chore: update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-10-13 14:15:17 +02:00
dependabot[bot] c48d200483 chore(deps): Bump @docker/actions-toolkit from 0.13.0-rc.1 to 0.13.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.13.0-rc.1 to 0.13.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.13.0-rc.1...v0.13.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-13 12:11:38 +00:00
CrazyMax 8d2cf95286 Merge pull request #988 from crazy-max/e2e-disable-artifactory
e2e: disable artifactory
2023-10-12 05:37:42 -07:00
CrazyMax 3c7915695f chore: update secret-envs description
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-10-12 14:32:49 +02:00
CrazyMax 0a283b683f e2e: disable artifactory
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-10-12 14:26:08 +02:00
CrazyMax c544b50d70 Merge pull request #980 from elias-lundgren/env-secrets-input
feat: add secret-envs input
2023-10-12 05:24:34 -07:00
Elias Lundgren dd31262fa7 chore: update generated content
Signed-off-by: Elias Lundgren <145569914+elias-lundgren@users.noreply.github.com>
2023-10-11 15:44:41 +02:00
Elias Lundgren 5f01267817 feat: add secret-envs input
Signed-off-by: Elias Lundgren <145569914+elias-lundgren@users.noreply.github.com>
2023-10-11 15:43:05 +02:00
CrazyMax 0f847266c3 Merge pull request #985 from crazy-max/fix-e2e
e2e: fix .docker folder perms
2023-10-09 01:09:50 -07:00
CrazyMax ea8499618b e2e: fix .docker folder perms
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-10-08 19:01:40 +02:00
CrazyMax 4c1b68d83a Merge pull request #960 from crazy-max/bump-major
docs: bump actions to latest major
2023-09-12 15:15:43 +02:00
CrazyMax 5909c5bffe Merge pull request #965 from docker/dependabot/github_actions/docker/bake-action-4
chore(deps): Bump docker/bake-action from 3 to 4
2023-09-12 14:28:09 +02:00
CrazyMax 285730d174 Merge pull request #964 from docker/dependabot/github_actions/docker/login-action-3
chore(deps): Bump docker/login-action from 2 to 3
2023-09-12 14:27:54 +02:00
CrazyMax 4bbe0177ef Merge pull request #963 from docker/dependabot/github_actions/docker/metadata-action-5
chore(deps): Bump docker/metadata-action from 4 to 5
2023-09-12 14:27:41 +02:00
CrazyMax cc4d1d4d5f Merge pull request #962 from docker/dependabot/github_actions/docker/setup-buildx-action-3
chore(deps): Bump docker/setup-buildx-action from 2 to 3
2023-09-12 14:27:28 +02:00
CrazyMax e7d3750abc Merge pull request #961 from docker/dependabot/github_actions/docker/setup-qemu-action-3
chore(deps): Bump docker/setup-qemu-action from 2 to 3
2023-09-12 14:27:11 +02:00
CrazyMax 4556201a14 docs: bump actions to latest major
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-09-12 14:19:32 +02:00
dependabot[bot] 9fa62cfa91 chore(deps): Bump docker/bake-action from 3 to 4
Bumps [docker/bake-action](https://github.com/docker/bake-action) from 3 to 4.
- [Release notes](https://github.com/docker/bake-action/releases)
- [Commits](https://github.com/docker/bake-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/bake-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-12 11:17:20 +00:00
dependabot[bot] 8026f009fc chore(deps): Bump docker/login-action from 2 to 3
Bumps [docker/login-action](https://github.com/docker/login-action) from 2 to 3.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-12 11:17:17 +00:00
dependabot[bot] 6b35a7a7f1 chore(deps): Bump docker/metadata-action from 4 to 5
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4 to 5.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Upgrade guide](https://github.com/docker/metadata-action/blob/master/UPGRADE.md)
- [Commits](https://github.com/docker/metadata-action/compare/v4...v5)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-12 11:17:15 +00:00
dependabot[bot] c6e64b478a chore(deps): Bump docker/setup-buildx-action from 2 to 3
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2 to 3.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-12 11:17:11 +00:00
dependabot[bot] e2505c6383 chore(deps): Bump docker/setup-qemu-action from 2 to 3
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 2 to 3.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-12 11:17:07 +00:00
CrazyMax 0565240e2d Merge pull request #959 from docker/dependabot/npm_and_yarn/actions/core-1.10.1
chore(deps): Bump @actions/core from 1.10.0 to 1.10.1
2023-09-12 08:59:19 +02:00
CrazyMax 3ab07f8801 chore: update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-09-12 08:53:09 +02:00
dependabot[bot] b9e7e4daec chore(deps): Bump @actions/core from 1.10.0 to 1.10.1
Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.10.0 to 1.10.1.
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core)

---
updated-dependencies:
- dependency-name: "@actions/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-12 06:30:14 +00:00
CrazyMax 04d1a3b049 Merge pull request #954 from crazy-max/update-node20
chore: node 20 as default runtime
2023-09-12 08:22:50 +02:00
CrazyMax 1a4d1a13fb chore: node 20 as default runtime
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-09-09 18:09:30 +02:00
CrazyMax 675965c0e1 chore: update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-09-09 18:09:30 +02:00
CrazyMax 58ee34cb6b chore: fix author in package.json
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-09-09 18:08:44 +02:00
CrazyMax c97c4060bd fix ProxyConfig type when checking length
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-09-09 18:08:43 +02:00
CrazyMax 47d5369e0b vendor: bump @docker/actions-toolkit from 0.8.0 to 0.12.0
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-09-09 18:08:43 +02:00
CrazyMax 8895c7468f chore: update dev dependencies
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-09-09 18:08:43 +02:00
CrazyMax 59ba712c53 dev: remove unneeded binaries
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-09-09 18:08:43 +02:00
CrazyMax 0c20fff10d chore: update to node 20
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-09-09 18:08:43 +02:00
CrazyMax 0a97817b6a Merge pull request #957 from crazy-max/warn-docker-config
warn if docker config can't be parsed
2023-09-08 15:38:01 +02:00
CrazyMax ec39ef320c chore: update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-09-08 15:35:42 +02:00
CrazyMax f46044b799 warn if docker config can't be parsed
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-09-08 15:35:04 +02:00
CrazyMax 4e4ee680f6 Merge pull request #951 from crazy-max/ci-concurrency
ci: missing concurrency checks
2023-09-05 11:08:06 +02:00
CrazyMax e86cf554b6 ci: missing concurrency checks
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-09-05 10:59:10 +02:00
CrazyMax daa0106f78 Merge pull request #949 from docker/dependabot/github_actions/actions/checkout-4
chore(deps): Bump actions/checkout from 3 to 4
2023-09-05 09:33:40 +02:00
dependabot[bot] ce51e905a6 chore(deps): Bump actions/checkout from 3 to 4
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-05 07:31:24 +00:00
CrazyMax 1fde16337d Merge pull request #950 from crazy-max/fix-ci
ci: fix workflow
2023-09-05 09:30:47 +02:00
CrazyMax ae311c520f ci: fix workflow
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-09-05 09:26:58 +02:00
CrazyMax 9311bf5263 Merge pull request #932 from crazy-max/form-templates
chore: github form templates
2023-08-16 14:32:56 +02:00
CrazyMax b1654941ef Merge pull request #931 from crazy-max/community-files
chore: update community files
2023-08-16 11:42:18 +02:00
CrazyMax 12a9f89349 chore: update community files
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-08-16 11:06:16 +02:00
CrazyMax 2036a561be chore: github form templates
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-08-16 11:01:25 +02:00
CrazyMax b1d46f11a2 Merge pull request #902 from docker/dependabot/npm_and_yarn/semver-6.3.1
chore(deps): Bump semver from 6.3.0 to 6.3.1
2023-08-16 07:48:43 +02:00
CrazyMax e5b2fc7017 update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-08-16 07:46:50 +02:00
CrazyMax 24216ba114 Merge pull request #925 from docker/dependabot/npm_and_yarn/word-wrap-1.2.5
chore(deps): Bump word-wrap from 1.2.3 to 1.2.5
2023-08-16 07:45:29 +02:00
dependabot[bot] eb33afda71 chore(deps): Bump semver from 6.3.0 to 6.3.1
Bumps [semver](https://github.com/npm/node-semver) from 6.3.0 to 6.3.1.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/v6.3.1/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v6.3.0...v6.3.1)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-16 05:44:10 +00:00
dependabot[bot] 9407ba1305 chore(deps): Bump word-wrap from 1.2.3 to 1.2.5
Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.5.
- [Release notes](https://github.com/jonschlinkert/word-wrap/releases)
- [Commits](https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.5)

---
updated-dependencies:
- dependency-name: word-wrap
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-16 05:43:59 +00:00
CrazyMax 429cdb70ad Merge pull request #930 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.8.0
chore(deps): Bump @docker/actions-toolkit from 0.6.0 to 0.8.0
2023-08-16 07:41:36 +02:00
CrazyMax 74a34eff3a update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-08-16 07:40:13 +02:00
dependabot[bot] 6787bde0a6 chore(deps): Bump @docker/actions-toolkit from 0.6.0 to 0.8.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.6.0 to 0.8.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.6.0...v0.8.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-16 05:37:37 +00:00
CrazyMax 56932deb0a Merge pull request #928 from crazy-max/ci-test-digest
ci: test digest without output
2023-08-11 13:49:27 +02:00
CrazyMax 0681013357 ci: test digest without output
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-08-11 12:11:25 +02:00
CrazyMax be4bf1099e Merge pull request #872 from crazy-max/ci-proxy
display proxy configuration
2023-08-10 13:44:51 +02:00
CrazyMax 9ec154c4b6 Merge pull request #876 from crazy-max/e2e-matrix
e2e: test buildx and buildkit edge
2023-08-10 12:19:07 +02:00
CrazyMax 380260b6c7 ci: proxy config check
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-08-09 12:45:05 +02:00
CrazyMax ac790be09a update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-08-09 12:45:05 +02:00
CrazyMax dc0a85b056 display proxy configuration
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-08-09 12:43:54 +02:00
CrazyMax aca01f02d5 e2e: test buildx and buildkit edge
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-08-09 12:37:34 +02:00
CrazyMax 4b0752a2b1 Merge pull request #924 from crazy-max/rm-codeowners
chore: remove CODEOWNERS
2023-08-08 12:55:23 +02:00
CrazyMax be06a9da57 chore: remove CODEOWNERS
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-08-08 12:50:32 +02:00
Tõnis Tiigi 19184b90ca Merge pull request #922 from crazy-max/dependabot-update
chore: set increase as versioning strategy
2023-08-08 09:55:00 +03:00
CrazyMax 57e90a56ab chore: set increase as versioning strategy
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-08-08 06:04:14 +02:00
Justin Chadwell 4fad532b9f Merge pull request #903 from jedevc/update-artifactory-instance 2023-07-11 11:15:35 +01:00
Justin Chadwell 413aee355f ci: update artifactory instance
Signed-off-by: Justin Chadwell <me@jedevc.com>
2023-07-11 11:13:17 +01:00
CrazyMax f05b754b57 Merge pull request #890 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.6.0
chore(deps): Bump @docker/actions-toolkit from 0.5.0 to 0.6.0
2023-07-06 09:45:26 +02:00
CrazyMax 2f3765570b update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-07-05 12:33:21 +02:00
CrazyMax 68d0dc20df Merge pull request #893 from nvuillam/patch-1
Update TROUBLESHOOTING.md to add not loaded image workaround
2023-07-04 11:33:25 +02:00
Nicolas Vuillamy 1fd7f72e60 Update TROUBLESHOOTING.md to add not loaded image workaround
Fixes https://github.com/docker/build-push-action/issues/892

Related to https://github.com/docker/build-push-action/issues/321

Signed-off-by: Nicolas Vuillamy <nicolas.vuillamy@gmail.com>
2023-07-03 09:01:27 +02:00
dependabot[bot] ea907fb0a4 chore(deps): Bump @docker/actions-toolkit from 0.5.0 to 0.6.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.5.0 to 0.6.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.5.0...v0.6.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-29 11:52:48 +00:00
CrazyMax 2eb1c1961a Merge pull request #880 from crazy-max/fix-inputlist
chore(deps): Bump @docker/actions-toolkit from 0.3.0 to 0.5.0
2023-06-13 11:24:40 +02:00
CrazyMax 27376fe2fc update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-06-13 10:53:38 +02:00
CrazyMax c9330004c2 test: build-arg with hash
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-06-13 10:52:03 +02:00
CrazyMax dac08d41ad chore(deps): Bump @docker/actions-toolkit from 0.3.0 to 0.5.0
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-06-13 10:46:59 +02:00
CrazyMax 44ea916f6c Merge pull request #875 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.3.0
chore(deps): Bump @docker/actions-toolkit from 0.2.0 to 0.3.0
2023-06-07 16:44:03 +02:00
CrazyMax 0167eef179 update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-06-07 16:40:11 +02:00
dependabot[bot] 91bf8bfc4d chore(deps): Bump @docker/actions-toolkit from 0.2.0 to 0.3.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.2.0 to 0.3.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.2.0...v0.3.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-07 14:30:42 +00:00
CrazyMax a799b4decf Merge pull request #860 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.2.0
chore(deps): Bump @docker/actions-toolkit from 0.1.0 to 0.2.0
2023-06-05 13:21:33 +02:00
CrazyMax 87480bdf69 update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-06-05 13:19:32 +02:00
Justin Chadwell f9efed53cc Merge pull request #871 from dvdksn/fix/secret-example-link 2023-05-31 10:43:01 +01:00
David Karlsson 3580b78e04 fix: broken link to secret example docs
Signed-off-by: David Karlsson <david.karlsson@docker.com>
2023-05-31 11:36:48 +02:00
CrazyMax 91df6b874e Merge pull request #859 from docker/dependabot/github_actions/docker/bake-action-3
chore(deps): Bump docker/bake-action from 2 to 3
2023-05-11 15:20:14 +02:00
dependabot[bot] ea92b18afb chore(deps): Bump @docker/actions-toolkit from 0.1.0 to 0.2.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.1.0 to 0.2.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.1.0...v0.2.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-19 11:56:57 +00:00
dependabot[bot] 6f91eb31f7 chore(deps): Bump docker/bake-action from 2 to 3
Bumps [docker/bake-action](https://github.com/docker/bake-action) from 2 to 3.
- [Release notes](https://github.com/docker/bake-action/releases)
- [Commits](https://github.com/docker/bake-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: docker/bake-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-18 11:56:41 +00:00
CrazyMax eafaea8d0f Merge pull request #855 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.1.0
chore(deps): Bump @docker/actions-toolkit from 0.1.0-beta.19 to 0.1.0
2023-04-17 08:07:44 +02:00
CrazyMax ddd2a92197 update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-04-17 02:10:24 +02:00
CrazyMax a54198e85a use new implementation from toolkit
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-04-17 02:09:47 +02:00
CrazyMax 7e3a79c50d update dev dependencies
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-04-17 02:09:47 +02:00
dependabot[bot] 4a730ce64b chore(deps): Bump @docker/actions-toolkit from 0.1.0-beta.19 to 0.1.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.1.0-beta.19 to 0.1.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.1.0-beta.19...v0.1.0)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-11 11:57:09 +00:00
CrazyMax 817ed59f97 Merge pull request #837 from crazy-max/update-workflows
ci: split validate and test workflow
2023-04-11 09:44:56 +02:00
CrazyMax a3646c08f8 test: update go example
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-04-10 00:13:50 +02:00
CrazyMax 5c3465b033 ci: merge example workflow to ci one
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-04-10 00:13:50 +02:00
CrazyMax e9c0697e5b ci: virtual-env workflow moved to actions-toolkit repo
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-04-10 00:13:50 +02:00
CrazyMax e090350180 ci: split validate and test workflow
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-04-10 00:13:49 +02:00
CrazyMax f2a1d5e99d Merge pull request #838 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.1.0-beta.19
chore(deps): Bump @docker/actions-toolkit from 0.1.0-beta.14 to 0.1.0-beta.19
2023-03-13 08:49:57 +00:00
CrazyMax 81f5252b54 update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-03-12 23:37:34 +01:00
CrazyMax b3435979d1 use methods from toolkit to handle provenance attrs
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-03-12 23:37:34 +01:00
dependabot[bot] 80def7c74e chore(deps): Bump @docker/actions-toolkit
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.1.0-beta.14 to 0.1.0-beta.19.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.1.0-beta.14...v0.1.0-beta.19)

---
updated-dependencies:
- dependency-name: "@docker/actions-toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-12 21:49:46 +00:00
CrazyMax 35434f557a Merge pull request #809 from crazy-max/test-named-context
ci: named context jobs
2023-02-27 15:58:24 +01:00
CrazyMax d63c96254b Merge pull request #811 from crazy-max/switch-toolkit
switch to actions-toolkit implementation
2023-02-24 19:15:59 +01:00
CrazyMax 21fe05ff59 Merge pull request #818 from crazy-max/fix-docs-links
docs: fix links
2023-02-24 14:46:55 +01:00
CrazyMax 097a3e23ac update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-02-24 10:22:20 +01:00
CrazyMax d8823bfaed switch to actions-toolkit implementation
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-02-24 10:22:19 +01:00
CrazyMax 3a3620ed49 docs: fix links
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-02-23 17:16:49 +01:00
CrazyMax 8082ebc6ea ci: named context jobs
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-02-23 14:06:53 +01:00
Justin Chadwell a3ae207c14 Merge pull request #815 from jedevc/e2e-distribution-fixup
fixup! e2e: add distribution tests
2023-02-22 12:50:28 +00:00
Justin Chadwell 4858a31f84 fixup! e2e: add distribution tests
Signed-off-by: Justin Chadwell <me@jedevc.com>
2023-02-22 12:40:15 +00:00
Justin Chadwell d10433366f Merge pull request #814 from jedevc/e2e-distribution
e2e: add distribution tests
2023-02-22 12:19:02 +00:00
Justin Chadwell ee5cabd9e3 e2e: add distribution tests
Signed-off-by: Justin Chadwell <me@jedevc.com>
2023-02-22 11:55:00 +00:00
CrazyMax 7944f9a25b Merge pull request #796 from docker/dependabot/npm_and_yarn/csv-parse-5.3.5
chore(deps): Bump csv-parse from 5.3.4 to 5.3.5
2023-02-16 14:13:36 +01:00
CrazyMax c088e12d82 Merge pull request #804 from docker/registry-artifactory
ci: add artifactory container registry to test against
2023-02-15 19:26:39 +01:00
CrazyMax e941dc0149 Merge pull request #805 from crazy-max/e2e-update-quay
e2e: update quay namespace
2023-02-15 19:25:25 +01:00
CrazyMax 0d6f3e8936 e2e: update quay namespace
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-02-15 19:23:19 +01:00
Justin Chadwell c779d8500d ci: add artifactory container registry to test against
The artifactory container registry is configured to accept schema 2
manifests.

Signed-off-by: Justin Chadwell <me@jedevc.com>
2023-02-15 10:48:45 +00:00
CrazyMax b651cf69a6 Merge pull request #802 from docker/dependabot/github_actions/crazy-max/ghaction-dump-context-2
chore(deps): Bump crazy-max/ghaction-dump-context from 1 to 2
2023-02-13 13:10:23 +01:00
dependabot[bot] 0db6129a57 chore(deps): Bump crazy-max/ghaction-dump-context from 1 to 2
Bumps [crazy-max/ghaction-dump-context](https://github.com/crazy-max/ghaction-dump-context) from 1 to 2.
- [Release notes](https://github.com/crazy-max/ghaction-dump-context/releases)
- [Changelog](https://github.com/crazy-max/ghaction-dump-context/blob/master/CHANGELOG.md)
- [Commits](https://github.com/crazy-max/ghaction-dump-context/compare/v1...v2)

---
updated-dependencies:
- dependency-name: crazy-max/ghaction-dump-context
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-13 11:57:09 +00:00
CrazyMax 70cc701b9c Merge pull request #800 from crazy-max/e2e-local
e2e: local harbor and nexus
2023-02-10 17:36:20 +01:00
CrazyMax af7537dc3e e2e: local nexus
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-02-10 06:18:22 +01:00
CrazyMax 2d8166c4b9 e2e: local harbor
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-02-10 04:45:30 +01:00
CrazyMax 6a8fbf0dbc Merge pull request #799 from crazy-max/e2e-quay
e2e: quay.io
2023-02-09 13:09:47 +01:00
CrazyMax f74fd039f3 e2e: input to set additional tag
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-02-09 12:53:34 +01:00
CrazyMax 695ee8547d e2e: quay.io
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-02-09 12:06:55 +01:00
Justin Chadwell fd7264830a Merge pull request #798 from docker/e2e-enable-debug
e2e: enable buildkit container logs
2023-02-08 13:16:49 +00:00
Justin Chadwell 6842956e83 e2e: enable buildkit container logs
Signed-off-by: Justin Chadwell <me@jedevc.com>
2023-02-08 12:27:02 +00:00
CrazyMax 9d1b8fa4e2 Merge pull request #797 from crazy-max/e2e-rm-harbor
e2e: remove harbor
2023-02-08 13:14:41 +01:00
CrazyMax 17c742ea85 e2e: remove harbor
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-02-08 13:10:54 +01:00
dependabot[bot] 916f6873ae chore(deps): Bump csv-parse from 5.3.4 to 5.3.5
Bumps [csv-parse](https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-parse) from 5.3.4 to 5.3.5.
- [Release notes](https://github.com/adaltas/node-csv/releases)
- [Changelog](https://github.com/adaltas/node-csv/blob/master/packages/csv-parse/CHANGELOG.md)
- [Commits](https://github.com/adaltas/node-csv/commits/csv-parse@5.3.5/packages/csv-parse)

---
updated-dependencies:
- dependency-name: csv-parse
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-08 11:02:07 +00:00
CrazyMax a3f7a443f9 Merge pull request #787 from docker/dependabot/npm_and_yarn/csv-parse-5.3.4
chore(deps): Bump csv-parse from 5.3.3 to 5.3.4
2023-02-06 17:25:28 +01:00
CrazyMax 05e89e68aa Merge pull request #790 from crazy-max/e2e-harbor
e2e: harbor
2023-02-06 14:29:57 +01:00
CrazyMax d16cc0b66f e2e: harbor
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-02-02 13:42:15 +01:00
dependabot[bot] 306a0a9f50 chore(deps): Bump csv-parse from 5.3.3 to 5.3.4
Bumps [csv-parse](https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-parse) from 5.3.3 to 5.3.4.
- [Release notes](https://github.com/adaltas/node-csv/releases)
- [Changelog](https://github.com/adaltas/node-csv/blob/master/packages/csv-parse/CHANGELOG.md)
- [Commits](https://github.com/adaltas/node-csv/commits/csv-parse@5.3.4/packages/csv-parse)

---
updated-dependencies:
- dependency-name: csv-parse
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-01 11:02:18 +00:00
CrazyMax 55a3485913 Merge pull request #785 from crazy-max/update-version
docs: update version to v4
2023-01-30 19:33:53 +01:00
CrazyMax 71e9aaaf29 docs: update version to v4
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-01-30 19:30:24 +01:00
CrazyMax 3b5e8027fc Merge pull request #784 from crazy-max/enable-provenance
revert disable provenance by default if not set
2023-01-30 19:25:07 +01:00
CrazyMax 02d3266a89 update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-01-30 19:23:01 +01:00
CrazyMax f403dafe18 revert disable provenance by default if not set
This partially reverts 337a09d182 but
keeps the newly added tests.

Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-01-30 19:23:00 +01:00
CrazyMax 1104d47137 Merge pull request #781 from crazy-max/disable-provenance
Disable provenance by default if not set
2023-01-30 19:07:44 +01:00
CrazyMax 838bf90c88 update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-01-30 10:15:05 +01:00
CrazyMax 337a09d182 disable provenance by default if not set
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-01-30 10:15:05 +01:00
CrazyMax 37abcedcc1 Merge pull request #760 from crazy-max/test-envs
test: move envs to jest config
2023-01-13 13:27:37 +01:00
CrazyMax 67109bc4b2 test: move envs to jest config
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-01-13 13:23:43 +01:00
CrazyMax d1b0eb0a29 Merge pull request #759 from crazy-max/fix-provenance-input
Fix provenance input
2023-01-13 13:06:45 +01:00
CrazyMax a0635fe7cd update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-01-13 12:59:31 +01:00
CrazyMax f834265449 tests for provenance
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-01-13 12:59:31 +01:00
CrazyMax 0191543e0b fix provenance input
When `provenance: false`, we should not set the builder-id.

Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-01-13 12:59:31 +01:00
CrazyMax 2a16835223 Merge pull request #758 from crazy-max/revert-736
Revert build-args newline split
2023-01-13 11:35:45 +01:00
CrazyMax 9b96801525 Revert build-args newline split
This reverts commit 6afac853c9, reversing
changes made to 1d910c8aa2.

Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-01-13 11:27:13 +01:00
CrazyMax 6afac853c9 Merge pull request #736 from ruslandoga/build-args-newline-split
build-args newline split
2023-01-13 10:03:35 +01:00
ruslandoga 3bfdd83cd7 pre-checkin
Signed-off-by: ruslandoga <67764432+ruslandoga@users.noreply.github.com>
2023-01-13 15:15:03 +07:00
ruslandoga 316d5eb8b3 build-args newline split
Signed-off-by: ruslandoga <67764432+ruslandoga@users.noreply.github.com>
2023-01-13 12:51:11 +07:00
CrazyMax 1d910c8aa2 Merge pull request #707 from crazy-max/gh-runtime-token-info
Log GitHub Actions runtime token access controls
2023-01-12 19:50:31 +01:00
CrazyMax f9ccca010f log GitHub Actions runtime token access controls
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-01-12 19:44:24 +01:00
CrazyMax c40bf0fdf6 Merge pull request #746 from crazy-max/attests-sbom-provenance-inputs
add attests, provenance and sbom inputs
2023-01-12 19:27:54 +01:00
CrazyMax 223ed1ebd4 ci: fix registry-cache job
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-01-11 15:56:26 +01:00
CrazyMax fdafae777b update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-01-11 15:56:25 +01:00
CrazyMax 0cb700ffba do not set default provenance if user wants to load the image
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-01-11 15:56:25 +01:00
CrazyMax ee7989df81 always set builder-id attribute for provenance
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-01-11 15:56:25 +01:00
CrazyMax 74f883a069 check BuildKit compatibility before setting default provenance opts
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-01-11 15:56:25 +01:00
CrazyMax 0149503e26 ci: inspect with json output
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-01-11 15:56:25 +01:00
CrazyMax 26ce4f3617 provenance: set mode max and builder-id for public repos by default
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-01-11 15:56:24 +01:00
CrazyMax ed2672fc33 add attests, provenance and sbom inputs
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-01-11 15:56:24 +01:00
CrazyMax 472ccddef1 test: go project sample
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-01-11 15:56:24 +01:00
CrazyMax d235d2d5ea Merge pull request #749 from docker/dependabot/npm_and_yarn/json5-2.2.3
chore(deps): Bump json5 from 2.2.0 to 2.2.3
2023-01-08 18:32:06 +01:00
dependabot[bot] 2f519a7883 chore(deps): Bump json5 from 2.2.0 to 2.2.3
Bumps [json5](https://github.com/json5/json5) from 2.2.0 to 2.2.3.
- [Release notes](https://github.com/json5/json5/releases)
- [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md)
- [Commits](https://github.com/json5/json5/compare/v2.2.0...v2.2.3)

---
updated-dependencies:
- dependency-name: json5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-07 04:56:41 +00:00
CrazyMax 4eb68bb2ac Merge pull request #729 from docker/dependabot/npm_and_yarn/csv-parse-5.3.3
chore(deps): Bump csv-parse from 5.3.0 to 5.3.3
2022-12-19 20:44:37 +01:00
CrazyMax b4755849f0 update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-12-19 20:42:49 +01:00
dependabot[bot] ade1a6afe3 chore(deps): Bump csv-parse from 5.3.0 to 5.3.3
Bumps [csv-parse](https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-parse) from 5.3.0 to 5.3.3.
- [Release notes](https://github.com/adaltas/node-csv/releases)
- [Changelog](https://github.com/adaltas/node-csv/blob/master/packages/csv-parse/CHANGELOG.md)
- [Commits](https://github.com/adaltas/node-csv/commits/csv-parse@5.3.3/packages/csv-parse)

---
updated-dependencies:
- dependency-name: csv-parse
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-19 19:37:51 +00:00
CrazyMax 21d6059e1e Merge pull request #732 from docker/dependabot/npm_and_yarn/minimatch-3.1.2
chore(deps): Bump minimatch from 3.0.4 to 3.1.2
2022-12-19 20:20:03 +01:00
CrazyMax c2c50190db readme: fix badges
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-12-19 20:17:23 +01:00
CrazyMax a154a68da0 Update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-12-19 20:15:46 +01:00
dependabot[bot] 4ac90f5dca chore(deps): Bump minimatch from 3.0.4 to 3.1.2
Bumps [minimatch](https://github.com/isaacs/minimatch) from 3.0.4 to 3.1.2.
- [Release notes](https://github.com/isaacs/minimatch/releases)
- [Commits](https://github.com/isaacs/minimatch/compare/v3.0.4...v3.1.2)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-29 17:55:45 +00:00
CrazyMax 175d02bffe Merge pull request #723 from crazy-max/docs-fix-link
docs: fix link
2022-11-10 18:25:38 +01:00
CrazyMax 546378e7fb docs: fix link
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-11-10 15:57:59 +01:00
CrazyMax ffe65bfc27 Merge pull request #718 from crazy-max/moved-examples
docs: examples moved to docs website
2022-11-04 14:11:17 +01:00
CrazyMax d4c14fd006 docs: examples moved to docs website
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-11-04 09:17:25 +01:00
CrazyMax 6e95f19fb8 Merge pull request #708 from kaznovac/patch-1
[docs] test-before-push: push tested image as latest
2022-10-20 21:05:58 +02:00
Marko Kaznovac 2a752d5a63 [docs] test-before-push: push tested image as latest
also renamed image name from `myapp` -> `app`

Signed-off-by: Marko Kaznovac <kaznovac@users.noreply.github.com>
2022-10-20 16:03:06 +02:00
CrazyMax c56af95754 Merge pull request #704 from crazy-max/setOutput
Remove workaround for setOutput
2022-10-12 08:33:54 +02:00
CrazyMax 75aaa63262 Remove workaround for setOutput
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-10-12 06:56:31 +02:00
CrazyMax f97d6e2850 Merge pull request #700 from crazy-max/update-docs
docs: update links and layout
2022-10-11 12:07:35 +02:00
CrazyMax 47c00d78bf ci: secret job to check for invalid secrets
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-10-09 17:42:47 +02:00
CrazyMax 871b930e7a docs: update links and layout
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-10-07 19:28:55 +02:00
CrazyMax 105bf59b00 docs: copy between registries with buildx
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-10-07 19:23:10 +02:00
CrazyMax 48888e0b13 Merge pull request #699 from crazy-max/docs-outputs
docs: note about multiple outputs
2022-10-07 18:33:56 +02:00
CrazyMax 6b820ad47e docs: note about multiple outputs
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-10-07 18:31:06 +02:00
CrazyMax e1a10350ee Merge pull request #665 from baibaratsky/patch-1
docs: named contexts
2022-10-07 18:25:40 +02:00
CrazyMax 0f5a7d48d5 docs: named contexts
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-10-07 18:22:40 +02:00
Andrei Baibaratsky 6a6e8c7c14 docs: build contexts and bake options
Signed-off-by: Andrei Baibaratsky <andrei@baibaratsky.com>
2022-10-07 18:21:37 +02:00
CrazyMax e189a1cb78 Merge pull request #696 from docker/dependabot/npm_and_yarn/actions/github-5.1.1
Bump @actions/github from 5.0.3 to 5.1.1
2022-10-07 16:47:39 +02:00
CrazyMax 2cf0d6fbdc Update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-10-07 16:46:29 +02:00
dependabot[bot] 3cde535b0c Bump @actions/github from 5.0.3 to 5.1.1
Bumps [@actions/github](https://github.com/actions/toolkit/tree/HEAD/packages/github) from 5.0.3 to 5.1.1.
- [Release notes](https://github.com/actions/toolkit/releases)
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/github/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/github)

---
updated-dependencies:
- dependency-name: "@actions/github"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-01 01:09:07 +00:00
CrazyMax 83a00fb5e6 Merge pull request #695 from docker/dependabot/npm_and_yarn/actions/core-1.10.0
Bump @actions/core from 1.9.1 to 1.10.0
2022-10-01 03:07:44 +02:00
CrazyMax 1d5915004a Update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-10-01 03:05:50 +02:00
dependabot[bot] 2e87529dad Bump @actions/core from 1.9.1 to 1.10.0
Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.9.1 to 1.10.0.
- [Release notes](https://github.com/actions/toolkit/releases)
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core)

---
updated-dependencies:
- dependency-name: "@actions/core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-30 11:12:03 +00:00
CrazyMax e27bcee4eb Merge pull request #685 from crazy-max/git-context-docs
docs: fix Git context link and add more details about subdir support
2022-09-02 14:26:21 +02:00
CrazyMax 71d260c49a docs: fix Git context link and add more details about subdir support
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-09-02 12:24:08 +02:00
CrazyMax 965c6a410d Merge pull request #672 from crazy-max/fix-ci-dispatch
ci: fix workflow dispatch inputs
2022-08-17 11:25:02 +02:00
CrazyMax 08aa123a28 ci: fix workflow dispatch inputs
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-08-17 02:17:37 +02:00
CrazyMax 1527803881 Merge pull request #666 from deronnax/patch-1
use ${{ env.TEST_TAG }} to tag image in push step
2022-08-12 18:17:02 +02:00
CrazyMax a49d9ab751 Merge pull request #667 from docker/dependabot/npm_and_yarn/actions/core-1.9.1
Bump @actions/core from 1.9.0 to 1.9.1
2022-08-12 18:14:31 +02:00
CrazyMax cbb574ee73 Update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-08-12 18:13:02 +02:00
CrazyMax 8b56e74b48 ci: cleanup ci workflow
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-08-12 18:12:47 +02:00
dependabot[bot] a5024d816a Bump @actions/core from 1.9.0 to 1.9.1
Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.9.0 to 1.9.1.
- [Release notes](https://github.com/actions/toolkit/releases)
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core)

Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>

---
updated-dependencies:
- dependency-name: "@actions/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-12 18:12:16 +02:00
CrazyMax 2235b57edd Merge pull request #669 from crazy-max/buildx-dispatch
ci: allow arbitrary buildx/buildkit version on workflow dispatch event
2022-08-12 17:04:32 +02:00
CrazyMax 15b9e74b95 ci: allow arbitrary buildx/buildkit version on workflow dispatch event
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-08-12 16:45:35 +02:00
Mathieu Dupuy 48daa618bd use ${{ env.TEST_TAG }} to tag image in push step
Signed-off-by: Mathieu Dupuy <deronnax@gmail.com>
2022-08-06 11:12:45 +02:00
CrazyMax c84f382811 Merge pull request #663 from crazy-max/fix-git-token-cond
Fix GitHub token not passed with Git context if subdir defined
2022-08-03 17:25:08 +02:00
CrazyMax cd5d0b79ea Merge pull request #661 from dud225/subdir_context
Update comment regarding the support of subdir context
2022-08-03 16:59:34 +02:00
CrazyMax 30a32246ba Fix GitHub token not passed with Git context if subdir defined
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-08-03 14:39:01 +02:00
Herve Werner 1f19633b92 Update comment regarding the support of subdir context
Signed-off-by: Hervé Werner <dud225@hotmail.com>
2022-08-03 13:55:05 +02:00
CrazyMax 67af6dc1d3 Merge pull request #657 from bendrucker/deprecated-fs-rmdir
Replace deprecated `fs.rmdir` with `fs.rm`
2022-07-28 11:04:08 +02:00
Ben Drucker 988cb093f2 replace deprecated fs.rmdir with fs.rm
Signed-off-by: Ben Drucker <bvdrucker@gmail.com>
2022-07-27 16:47:22 -07:00
CrazyMax 1cb9d22b93 Merge pull request #653 from crazy-max/no-cache-filters
`no-cache-filters` input
2022-07-19 17:04:40 +02:00
CrazyMax 5ffbca1432 no-cache-filters input
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-07-19 00:04:41 +02:00
CrazyMax a8d76c070a Merge pull request #650 from docker/dependabot/npm_and_yarn/csv-parse-5.3.0
Bump csv-parse from 5.1.0 to 5.3.0
2022-07-18 17:08:08 +02:00
CrazyMax 12b1e419c2 Update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-07-18 17:06:02 +02:00
dependabot[bot] 2a60beff0d Bump csv-parse from 5.1.0 to 5.3.0
Bumps [csv-parse](https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-parse) from 5.1.0 to 5.3.0.
- [Release notes](https://github.com/adaltas/node-csv/releases)
- [Changelog](https://github.com/adaltas/node-csv/blob/master/packages/csv-parse/CHANGELOG.md)
- [Commits](https://github.com/adaltas/node-csv/commits/csv-parse@5.3.0/packages/csv-parse)

---
updated-dependencies:
- dependency-name: csv-parse
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-18 15:03:16 +00:00
CrazyMax 5268745b5f Merge pull request #637 from docker/dependabot/npm_and_yarn/actions/core-1.9.0
Bump @actions/core from 1.8.2 to 1.9.0
2022-07-18 17:01:49 +02:00
CrazyMax a2a27346c0 Update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-07-18 16:53:08 +02:00
dependabot[bot] 05d9e522ae Bump @actions/core from 1.8.2 to 1.9.0
Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.8.2 to 1.9.0.
- [Release notes](https://github.com/actions/toolkit/releases)
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core)

---
updated-dependencies:
- dependency-name: "@actions/core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-16 11:05:21 +00:00
CrazyMax 42863b1282 Merge pull request #623 from docker/dependabot/npm_and_yarn/csv-parse-5.1.0
Bump csv-parse from 5.0.4 to 5.1.0
2022-06-07 11:35:13 +02:00
CrazyMax c372f73edc Update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-06-07 11:30:16 +02:00
CrazyMax d17cab8f42 Merge pull request #630 from crazy-max/bump-actions
Bump actions to latest major
2022-06-07 11:22:11 +02:00
CrazyMax 4c2810ab91 Merge pull request #622 from crazy-max/ubuntu-2204
ci: add ubuntu 22.04 to virtual env
2022-05-31 10:18:41 +02:00
CrazyMax 307a009589 Bump actions to latest major
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-05-28 18:36:30 +02:00
dependabot[bot] f2c26aa560 Bump csv-parse from 5.0.4 to 5.1.0
Bumps [csv-parse](https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-parse) from 5.0.4 to 5.1.0.
- [Release notes](https://github.com/adaltas/node-csv/releases)
- [Changelog](https://github.com/adaltas/node-csv/blob/master/packages/csv-parse/CHANGELOG.md)
- [Commits](https://github.com/adaltas/node-csv/commits/csv-parse@5.1.0/packages/csv-parse)

---
updated-dependencies:
- dependency-name: csv-parse
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-24 14:03:18 +00:00
CrazyMax a806b8fe18 Merge pull request #620 from docker/dependabot/npm_and_yarn/actions/core-1.8.2
Bump @actions/core from 1.6.0 to 1.8.2
2022-05-24 16:01:57 +02:00
CrazyMax ae74c4950a Update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-05-24 15:50:32 +02:00
dependabot[bot] 80c878df65 Bump @actions/core from 1.6.0 to 1.8.2
Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.6.0 to 1.8.2.
- [Release notes](https://github.com/actions/toolkit/releases)
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core)

Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>

---
updated-dependencies:
- dependency-name: "@actions/core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-23 09:04:16 +00:00
CrazyMax a571ccfa72 Merge pull request #619 from docker/dependabot/npm_and_yarn/actions/github-5.0.3
Bump @actions/github from 5.0.1 to 5.0.3
2022-05-23 11:02:48 +02:00
CrazyMax 283625c36b Update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-05-23 10:53:30 +02:00
CrazyMax bb751c2095 ci: add ubuntu 22.04 to virtual env
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-05-23 10:24:26 +02:00
dependabot[bot] 8d9444d675 Bump @actions/github from 5.0.1 to 5.0.3
Bumps [@actions/github](https://github.com/actions/toolkit/tree/HEAD/packages/github) from 5.0.1 to 5.0.3.
- [Release notes](https://github.com/actions/toolkit/releases)
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/github/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/github)

---
updated-dependencies:
- dependency-name: "@actions/github"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-16 11:05:13 +00:00
CrazyMax c5e6528d5d Merge pull request #610 from crazy-max/update-refs
Bump all Docker actions to latest major
2022-05-05 19:34:15 +02:00
CrazyMax ceb414dc73 Remove UPGRADE notes (v1 EOL)
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-05-05 19:26:50 +02:00
CrazyMax dda70725ed Bump all Docker actions to latest major
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-05-05 19:26:01 +02:00
CrazyMax e551b19e49 Merge pull request #564 from crazy-max/node-16
Node 16 as default runtime
2022-05-05 19:06:55 +02:00
CrazyMax 3554377aa3 Merge pull request #609 from crazy-max/ci-fix-test
ci: fix standalone test
2022-05-05 18:42:11 +02:00
CrazyMax a62bc1b22b ci: fix standalone test
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-05-05 18:40:08 +02:00
CrazyMax c2085839e1 Merge pull request #601 from crazy-max/standalone-mode
Standalone mode support
2022-05-05 18:11:51 +02:00
CrazyMax fcd91249e5 Merge pull request #607 from docker/dependabot/github_actions/docker/metadata-action-4
Bump docker/metadata-action from 3 to 4
2022-05-05 14:01:16 +02:00
dependabot[bot] 0ebe720aed Bump docker/metadata-action from 3 to 4
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 3 to 4.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Upgrade guide](https://github.com/docker/metadata-action/blob/master/UPGRADE.md)
- [Commits](https://github.com/docker/metadata-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-05 11:02:33 +00:00
CrazyMax 38b45804b5 Standalone mode support
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-04-28 09:31:51 +02:00
CrazyMax ba317382dc Merge pull request #533 from docker/dependabot/npm_and_yarn/csv-parse-5.0.4
Bump csv-parse from 4.16.3 to 5.0.4
2022-04-25 06:51:12 +02:00
CrazyMax 43721d2346 Update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-04-25 06:47:57 +02:00
CrazyMax 5ea21bf2ba Fix csv-parse implementation since major update
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-04-25 06:47:57 +02:00
dependabot[bot] 300b1bdff7 Bump csv-parse from 4.16.3 to 5.0.4
Bumps [csv-parse](https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-parse) from 4.16.3 to 5.0.4.
- [Release notes](https://github.com/adaltas/node-csv/releases)
- [Changelog](https://github.com/adaltas/node-csv/blob/master/packages/csv-parse/CHANGELOG.md)
- [Commits](https://github.com/adaltas/node-csv/commits/csv-parse@5.0.4/packages/csv-parse)

---
updated-dependencies:
- dependency-name: csv-parse
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-22 09:27:30 +00:00
CrazyMax 84580d7737 Merge pull request #595 from docker/dependabot/npm_and_yarn/semver-7.3.7
Bump semver from 7.3.5 to 7.3.7
2022-04-22 11:26:12 +02:00
CrazyMax a460b5e683 Update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-04-22 11:08:34 +02:00
dependabot[bot] 9f1392c9bf Bump semver from 7.3.5 to 7.3.7
Bumps [semver](https://github.com/npm/node-semver) from 7.3.5 to 7.3.7.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.3.5...v7.3.7)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-13 11:04:19 +00:00
CrazyMax 9472e90210 Merge pull request #589 from docker/dependabot/github_actions/codecov/codecov-action-3
Bump codecov/codecov-action from 2 to 3
2022-04-08 15:51:32 +02:00
dependabot[bot] 5accc8e023 Bump codecov/codecov-action from 2 to 3
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2 to 3.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-06 11:03:02 +00:00
CrazyMax f7a2a67b4c Merge pull request #584 from docker/dependabot/npm_and_yarn/minimist-1.2.6
Bump minimist from 1.2.5 to 1.2.6
2022-04-04 15:12:31 +02:00
dependabot[bot] b905f177bc Bump minimist from 1.2.5 to 1.2.6
Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-04 13:10:51 +00:00
CrazyMax 0779722168 Merge pull request #582 from docker/dependabot/npm_and_yarn/actions/github-5.0.1
Bump @actions/github from 5.0.0 to 5.0.1
2022-04-04 15:10:11 +02:00
CrazyMax fd75456293 Update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-04-04 15:07:18 +02:00
dependabot[bot] ada965aa7b Bump @actions/github from 5.0.0 to 5.0.1
Bumps [@actions/github](https://github.com/actions/toolkit/tree/HEAD/packages/github) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/actions/toolkit/releases)
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/github/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/github)

---
updated-dependencies:
- dependency-name: "@actions/github"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-01 11:04:48 +00:00
CrazyMax b5730d2471 Merge pull request #575 from docker/dependabot/github_actions/actions/cache-3
Bump actions/cache from 2 to 3
2022-03-22 19:55:45 +01:00
dependabot[bot] 839389a46c Bump actions/cache from 2 to 3
Bumps [actions/cache](https://github.com/actions/cache) from 2 to 3.
- [Release notes](https://github.com/actions/cache/releases)
- [Commits](https://github.com/actions/cache/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-21 11:16:07 +00:00
CrazyMax 34c1caa1ce Merge pull request #573 from docker/dependabot/npm_and_yarn/actions/exec-1.1.1
Bump @actions/exec from 1.1.0 to 1.1.1
2022-03-21 10:07:25 +01:00
CrazyMax 6ff230f13e Node 16 as default runtime
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-03-21 09:58:43 +01:00
CrazyMax 75c825aabc Merge pull request #571 from crazy-max/update-dev
chore: update dev dependencies and workflow
2022-03-21 09:55:11 +01:00
CrazyMax 5f7b938b8c ci: update virtual-env workflow
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-03-19 10:44:24 +01:00
dependabot[bot] 7ae34a20f3 Bump @actions/exec from 1.1.0 to 1.1.1
Bumps [@actions/exec](https://github.com/actions/toolkit/tree/HEAD/packages/exec) from 1.1.0 to 1.1.1.
- [Release notes](https://github.com/actions/toolkit/releases)
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/exec/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/@actions/tool-cache@1.1.1/packages/exec)

---
updated-dependencies:
- dependency-name: "@actions/exec"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-18 11:03:49 +00:00
CrazyMax acb76cdd52 chore: update bins
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-03-15 22:00:00 +01:00
CrazyMax 2d081a4fd5 chore: update dev dependencies and workflow
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-03-15 21:59:59 +01:00
CrazyMax ac9327eae2 Merge pull request #563 from crazy-max/new-inputs
`build-contexts` input
2022-03-14 20:15:50 +01:00
CrazyMax 7c41daf2a5 build-contexts input
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-03-14 20:09:15 +01:00
CrazyMax e115266953 Merge pull request #569 from crazy-max/imageid-digest
add imageid output and use metadata to set digest output
2022-03-14 20:03:35 +01:00
CrazyMax 50fa0058d9 add imageid output and use metadata to set digest output
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-03-14 19:30:54 +01:00
CrazyMax 309fb9180f Merge pull request #568 from docker/dependabot/github_actions/actions/checkout-3
Bump actions/checkout from 2 to 3
2022-03-04 19:16:11 +01:00
dependabot[bot] db68526220 Bump actions/checkout from 2 to 3
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-02 11:03:44 +00:00
CrazyMax fe02965b48 Merge pull request #559 from crazy-max/outputs
Enhance outputs display
2022-02-09 11:41:29 +01:00
CrazyMax 5af8693d82 Enhance outputs display
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-02-09 11:32:44 +01:00
CrazyMax 7f9d37fa54 Merge pull request #555 from crazy-max/fix-add-host
Fix add-hosts context
2022-01-31 11:53:18 +01:00
CrazyMax d7458455bb Fix add-hosts context
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-01-31 11:47:45 +01:00
CrazyMax 1ca185b339 Merge pull request #553 from crazy-max/add-host
`add-host` input
2022-01-31 10:14:02 +01:00
CrazyMax eebf87aed1 add-host input
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-01-30 18:33:31 +01:00
CrazyMax d8b0ca6f0e Merge pull request #552 from crazy-max/readme
Fix git context subdir example and improve README
2022-01-30 18:15:27 +01:00
CrazyMax da767377fb Fix git context subdir example and improve README
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-01-30 18:12:55 +01:00
CrazyMax 8c76bb76c2 Merge pull request #549 from docker/dependabot/npm_and_yarn/node-fetch-2.6.7
Bump node-fetch from 2.6.1 to 2.6.7
2022-01-27 13:57:49 +01:00
CrazyMax b598b2a3bd Update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-01-27 13:55:08 +01:00
dependabot[bot] eb2857f4ca Bump node-fetch from 2.6.1 to 2.6.7
Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.6.1 to 2.6.7.
- [Release notes](https://github.com/node-fetch/node-fetch/releases)
- [Commits](https://github.com/node-fetch/node-fetch/compare/v2.6.1...v2.6.7)

---
updated-dependencies:
- dependency-name: node-fetch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-27 11:58:42 +00:00
CrazyMax f4cf574474 Merge pull request #548 from crazy-max/e2e-acr
Add e2e tests for ACR
2022-01-27 12:58:15 +01:00
CrazyMax 5c924147ba Add e2e tests for ACR
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-01-27 11:38:10 +01:00
CrazyMax 253376207c Merge pull request #544 from KMConner/readme-add-token-option
Add description on `github-token` option to README
2022-01-25 19:15:53 +01:00
KMConner 6f7a604875 Add description on github-token option to README
Signed-off-by: KMConner <KMConner@users.noreply.github.com>
2022-01-24 20:28:48 +09:00
CrazyMax 604f033158 Merge pull request #542 from crazy-max/update-readme
Note about new inputs
2022-01-18 15:02:20 +01:00
CrazyMax 5645ea7274 Note about new inputs
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-01-18 14:57:36 +01:00
CrazyMax 1814d3dfb3 Merge pull request #531 from BeyondEvil/subdir-with-default-context
Add subdirectory for Git context
2022-01-12 13:49:37 +01:00
Jim Brännlund fc5a732e0c Add subdirectory for Git context
Since v0.9.0 of BuildKit (BuildX v0.7.0) you can provide a subdirectory
to the default Git context.

Closes #460
Closes #528

Signed-off-by: Jim Brännlund <jimbrannlund@fastmail.com>
2022-01-06 01:38:18 +01:00
CrazyMax b1aeb1103e Merge pull request #510 from crazy-max/venv
ci: virtual env file system info
2021-12-02 19:47:58 +01:00
CrazyMax e31f93ab9f ci: virtual env file system info
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-12-02 19:45:34 +01:00
CrazyMax 9ed5823618 Merge pull request #501 from crazy-max/new-inputs
add `cgroup-parent`, `shm-size`, `ulimit` inputs
2021-11-17 08:21:46 +01:00
CrazyMax 4222161e3e Merge pull request #500 from crazy-max/readme
readme: remove v1 section
2021-11-16 20:50:23 +01:00
CrazyMax 67ff4df4b7 add cgroup-parent, shm-size, ulimit inputs
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-11-16 07:19:39 +01:00
CrazyMax 91274a04da sort flags
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-11-16 05:19:44 +01:00
CrazyMax ff329397c0 readme: remove v1 section
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-11-16 05:01:51 +01:00
CrazyMax 04841f2a72 Merge pull request #499 from crazy-max/update-workflow
dev: update workflow
2021-11-16 04:57:00 +01:00
CrazyMax 049b7cab08 dev: update workflow
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-11-16 04:53:10 +01:00
CrazyMax 0a196c9deb Merge pull request #495 from crazy-max/images
ci: list preloaded docker images
2021-11-10 12:06:46 +01:00
CrazyMax 94e0a28d6a ci: list preloaded docker images
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-11-10 12:04:28 +01:00
CrazyMax 5e11b373bf Merge pull request #478 from crazy-max/virtual-envs
ci: update virtual envs
2021-10-05 10:58:16 +02:00
CrazyMax 6f3b90dea1 ci: update virtual envs
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-10-05 10:56:09 +02:00
CrazyMax f71a68fb09 Merge pull request #474 from docker/dependabot/npm_and_yarn/actions/core-1.6.0
Bump @actions/core from 1.5.0 to 1.6.0
2021-10-04 13:13:49 +02:00
CrazyMax 82446970f9 Update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-10-04 13:11:37 +02:00
CrazyMax 2cf7b61533 Merge pull request #476 from crazy-max/metadata-example
docs: example to sanitize tags with metadata-action
2021-10-02 18:43:57 +02:00
CrazyMax 0732bea0f8 docs: example to sanitize tags with metadata-action
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-10-02 18:37:02 +02:00
CrazyMax 96daefdf52 Merge pull request #475 from crazy-max/fix-docs
docs: wrong syntax to sanitize repo slug
2021-10-02 18:25:34 +02:00
CrazyMax 9f46d13e71 docs: wrong syntax to sanitize repo slug
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-10-02 18:23:03 +02:00
dependabot[bot] a8f79af565 Bump @actions/core from 1.5.0 to 1.6.0
Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.5.0 to 1.6.0.
- [Release notes](https://github.com/actions/toolkit/releases)
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core)

---
updated-dependencies:
- dependency-name: "@actions/core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-29 11:03:05 +00:00
CrazyMax 04d5124fcb Merge pull request #473 from akhilerm/patch-1
docs: update tag-push-action to v2
2021-09-28 11:49:58 +02:00
Akhil Mohan 541dfa92f4 update tag-push-action to v2
update tag push action to v2 which uses crane instead of containerd
for pushing the images

Signed-off-by: Akhil Mohan <akhil.mohan@mayadata.io>
2021-09-28 12:43:43 +05:30
CrazyMax 291bae5a41 Merge pull request #470 from crazy-max/fix-outputs
Don't set outputs if empty or nil
2021-09-24 16:52:57 +02:00
CrazyMax 91520dfd9f Don't set outputs if empty or nil
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-09-24 16:49:17 +02:00
CrazyMax a41d90ba13 Merge pull request #469 from docker/dependabot/npm_and_yarn/ansi-regex-5.0.1
Bump ansi-regex from 5.0.0 to 5.0.1
2021-09-24 14:52:51 +02:00
dependabot[bot] 22baeb6cdf Bump ansi-regex from 5.0.0 to 5.0.1
Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](https://github.com/chalk/ansi-regex/compare/v5.0.0...v5.0.1)

---
updated-dependencies:
- dependency-name: ansi-regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-24 12:07:06 +00:00
CrazyMax 6061a365d8 Merge pull request #465 from docker/dependabot/npm_and_yarn/tmpl-1.0.5
Bump tmpl from 1.0.4 to 1.0.5
2021-09-24 14:06:38 +02:00
dependabot[bot] 9962be8aaf Bump tmpl from 1.0.4 to 1.0.5
Bumps [tmpl](https://github.com/daaku/nodejs-tmpl) from 1.0.4 to 1.0.5.
- [Release notes](https://github.com/daaku/nodejs-tmpl/releases)
- [Commits](https://github.com/daaku/nodejs-tmpl/commits/v1.0.5)

---
updated-dependencies:
- dependency-name: tmpl
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-22 02:08:36 +00:00
CrazyMax 375f72aff6 Merge pull request #459 from docker/dependabot/npm_and_yarn/csv-parse-4.16.3
Bump csv-parse from 4.16.2 to 4.16.3
2021-09-03 13:21:09 +02:00
CrazyMax 8ba85ead00 Update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-09-03 13:18:53 +02:00
dependabot[bot] c6dca826de Bump csv-parse from 4.16.2 to 4.16.3
Bumps [csv-parse](https://github.com/wdavidw/node-csv-parse) from 4.16.2 to 4.16.3.
- [Release notes](https://github.com/wdavidw/node-csv-parse/releases)
- [Commits](https://github.com/wdavidw/node-csv-parse/commits)

---
updated-dependencies:
- dependency-name: csv-parse
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-03 11:03:15 +00:00
CrazyMax 0c3d31c275 Merge pull request #451 from docker/dependabot/npm_and_yarn/csv-parse-4.16.2
Bump csv-parse from 4.16.0 to 4.16.2
2021-09-02 18:36:50 +02:00
CrazyMax 5681933133 Update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-09-02 18:35:05 +02:00
CrazyMax 821890eae4 Merge pull request #443 from alextes/patch-1
fix typo
2021-09-02 11:04:46 +02:00
CrazyMax d0931a71a9 Merge pull request #455 from crazy-max/doc
Test before pushing your image (docs)
2021-09-01 21:14:14 +02:00
CrazyMax 326ec1ede4 Test before pushing your image (docs)
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-09-01 16:47:59 +02:00
Alexander Tesfamichael b0c26e5619 fix typo
Signed-off-by: Alexander Tesfamichael <alex.tesfamichael@gmail.com>
2021-08-31 15:35:22 +02:00
dependabot[bot] 3139e8d280 Bump csv-parse from 4.16.0 to 4.16.2
Bumps [csv-parse](https://github.com/wdavidw/node-csv-parse) from 4.16.0 to 4.16.2.
- [Release notes](https://github.com/wdavidw/node-csv-parse/releases)
- [Commits](https://github.com/wdavidw/node-csv-parse/commits)

---
updated-dependencies:
- dependency-name: csv-parse
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-30 11:03:34 +00:00
CrazyMax a66e35b9cb Merge pull request #439 from docker/dependabot/npm_and_yarn/actions/core-1.5.0
Bump @actions/core from 1.4.0 to 1.5.0
2021-08-20 11:07:21 +02:00
CrazyMax 6a98f97e24 Update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-08-20 11:05:00 +02:00
dependabot[bot] 26f24d6851 Bump @actions/core from 1.4.0 to 1.5.0
Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.4.0 to 1.5.0.
- [Release notes](https://github.com/actions/toolkit/releases)
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core)

---
updated-dependencies:
- dependency-name: "@actions/core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-20 09:02:21 +00:00
CrazyMax b0b7751850 Merge pull request #412 from crazy-max/metadata-file
Add `metadata` output
2021-08-20 10:28:45 +02:00
CrazyMax c0b121fe44 Add metadata output
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-08-16 23:44:35 +02:00
CrazyMax 09d66c261a Merge pull request #427 from crazy-max/doc-typo
Fix doc typo
2021-08-05 16:36:31 +02:00
CrazyMax 24d162ecb4 Fix doc typo
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-08-05 16:36:12 +02:00
CrazyMax 6484a61448 Merge pull request #426 from crazy-max/doc-sanitize-ref
Add note to sanitize tags
2021-08-05 08:12:32 +02:00
CrazyMax c40e0ee07a Add note to sanitize tags
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-08-05 08:09:56 +02:00
CrazyMax e06a3af40d Merge pull request #421 from crazy-max/doc-typo
Fix typo in cache doc
2021-07-29 17:03:20 +02:00
CrazyMax 2e10e1984b Fix typo in cache doc
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-07-29 17:01:12 +02:00
CrazyMax 1a60e0d706 Merge pull request #406 from crazy-max/cache-exporter-doc
Cache backend API example
2021-07-29 16:59:14 +02:00
CrazyMax 3530a97c47 Cache backend API example
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-07-29 16:57:27 +02:00
CrazyMax 3c507bedc4 Merge pull request #420 from crazy-max/upgrade-notes
Update upgrade notes
2021-07-29 09:51:45 +02:00
CrazyMax 7c64fd5e10 Update upgrade notes
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-07-29 09:49:25 +02:00
CrazyMax c65ff7ffb1 Merge pull request #407 from crazy-max/git-subdir
Remove note about Git context not supporting subdir
2021-07-25 23:03:46 +02:00
CrazyMax 2a8d638779 Merge pull request #415 from docker/dependabot/github_actions/codecov/codecov-action-2.0.1
Bump codecov/codecov-action from 1 to 2.0.1
2021-07-23 09:50:49 +02:00
CrazyMax 900c06250b Use major
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-07-23 08:18:38 +02:00
dependabot[bot] b5e5b85e1b Bump codecov/codecov-action from 1 to 2.0.1
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 1 to 2.0.1.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v1...v2.0.1)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-20 11:01:50 +00:00
CrazyMax cf25934f0f Merge pull request #411 from crazy-max/test-dockerfile
Update test Dockerfile
2021-07-18 22:46:27 +02:00
CrazyMax 37831a7a20 Update test Dockerfile
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-07-18 22:44:25 +02:00
CrazyMax ad1d2e93be Merge pull request #408 from dvalentiate/detail_ignore_of_dockerignore
Detail `.dockerignore` is ignored in git context
2021-07-16 13:36:05 +02:00
David ValentiateandCrazyMax e80adc3299 Detail .dockerignore is ignored in git context
Add a note to README.md that .dockerignore is not processed by default
by build-push-action@v2.

Signed-off-by: David Valentiate <david@bluedrop.com>

Co-authored-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
Signed-off-by: David Valentiate <david@bluedrop.com>
2021-07-13 18:17:22 -04:00
CrazyMax 7594ecce5b Remove note about Git context not supporting subdir
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-07-13 20:33:04 +02:00
92 changed files with 16438 additions and 23470 deletions

No files matched your search

+11 -1
View File
@@ -1,2 +1,12 @@
/coverage
/node_modules
# Dependency directories
node_modules/
jspm_packages/
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
+2
View File
@@ -1,2 +1,4 @@
/.yarn/releases/** binary
/.yarn/plugins/** binary
/dist/** linguist-generated=true
/lib/** linguist-generated=true
-1
View File
@@ -1 +0,0 @@
* @crazy-max
+3
View File
@@ -0,0 +1,3 @@
# Code of conduct
- [Moby community guidelines](https://github.com/moby/moby/blob/master/CONTRIBUTING.md#moby-community-guidelines)
+101
View File
@@ -0,0 +1,101 @@
# https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema
name: Bug Report
description: Report a bug
labels:
- status/triage
body:
- type: markdown
attributes:
value: |
Thank you for taking the time to report a bug!
If this is a security issue please report it to the [Docker Security team](mailto:security@docker.com).
Before submitting a bug report, check out the [Troubleshooting doc](https://github.com/docker/build-push-action/blob/master/TROUBLESHOOTING.md).
- type: checkboxes
attributes:
label: Contributing guidelines
description: >
Make sure you've read the contributing guidelines before proceeding.
options:
- label: I've read the [contributing guidelines](https://github.com/docker/build-push-action/blob/master/.github/CONTRIBUTING.md) and wholeheartedly agree
required: true
- type: checkboxes
attributes:
label: "I've found a bug, and:"
description: |
Make sure that your request fulfills all of the following requirements.
If one requirement cannot be satisfied, explain in detail why.
options:
- label: The documentation does not mention anything about my problem
- label: There are no open or closed issues that are related to my problem
- type: textarea
attributes:
label: Description
description: >
Provide a brief description of the bug in 1-2 sentences.
validations:
required: true
- type: textarea
attributes:
label: Expected behaviour
description: >
Describe precisely what you'd expect to happen.
validations:
required: true
- type: textarea
attributes:
label: Actual behaviour
description: >
Describe precisely what is actually happening.
validations:
required: true
- type: input
attributes:
label: Repository URL
description: >
Enter the URL of the repository where you are experiencing the
issue. If your repository is private, provide a link to a minimal
repository that reproduces the issue.
- type: input
attributes:
label: Workflow run URL
description: >
Enter the URL of the GitHub Action workflow run, if public.
- type: textarea
attributes:
label: YAML workflow
description: |
Provide the YAML of the workflow that's causing the issue.
Make sure to remove any sensitive information.
render: yaml
validations:
required: true
- type: textarea
attributes:
label: Workflow logs
description: >
[Attach](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/attaching-files)
the [log file of your workflow run](https://docs.github.com/en/actions/managing-workflow-runs/using-workflow-run-logs#downloading-logs)
and make sure to remove any sensitive information.
- type: textarea
attributes:
label: BuildKit logs
description: >
If applicable, provide the [BuildKit container logs](https://docs.docker.com/build/ci/github-actions/configure-builder/#buildkit-container-logs)
render: text
- type: textarea
attributes:
label: Additional info
description: |
Provide any additional information that could be useful.
-37
View File
@@ -1,37 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
---
### Troubleshooting
Before submitting a bug report please read the [Troubleshooting doc](https://github.com/docker/build-push-action/blob/master/TROUBLESHOOTING.md).
### Behaviour
#### Steps to reproduce this issue
1.
2.
3.
#### Expected behaviour
> Tell us what should happen
#### Actual behaviour
> Tell us what happens instead
### Configuration
* Repository URL (if public):
* Build URL (if public):
```yml
# paste your YAML workflow file here and remove sensitive data
```
### Logs
> Download the [log file of your build](https://docs.github.com/en/actions/managing-workflow-runs/using-workflow-run-logs#downloading-logs) and [attach it](https://docs.github.com/en/github/managing-your-work-on-github/file-attachments-on-issues-and-pull-requests) to this issue.
+9
View File
@@ -0,0 +1,9 @@
# https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository#configuring-the-template-chooser
blank_issues_enabled: true
contact_links:
- name: Questions and Discussions
url: https://github.com/docker/build-push-action/discussions/new
about: Use Github Discussions to ask questions and/or open discussion topics.
- name: Documentation
url: https://docs.docker.com/build/ci/github-actions/
about: Read the documentation.
+15
View File
@@ -0,0 +1,15 @@
# https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema
name: Feature request
description: Missing functionality? Come tell us about it!
labels:
- kind/enhancement
- status/triage
body:
- type: textarea
id: description
attributes:
label: Description
description: What is the feature you want to see?
validations:
required: true
+12
View File
@@ -0,0 +1,12 @@
# Reporting security issues
The project maintainers take security seriously. If you discover a security
issue, please bring it to their attention right away!
**Please _DO NOT_ file a public issue**, instead send your report privately to
[security@docker.com](mailto:security@docker.com).
Security reports are greatly appreciated, and we will publicly thank you for it.
We also like to send gifts&mdash;if you'd like Docker swag, make sure to let
us know. We currently do not offer a paid security bounty program, but are not
ruling it out in the future.
-31
View File
@@ -1,31 +0,0 @@
# Support [![](https://isitmaintained.com/badge/resolution/docker/build-push-action.svg)](https://isitmaintained.com/project/docker/build-push-action)
First, [be a good guy](https://github.com/kossnocorp/etiquette/blob/master/README.md).
## Reporting an issue
Please do a search in [open issues](https://github.com/docker/build-push-action/issues?utf8=%E2%9C%93&q=) to see if the issue or feature request has already been filed.
If you find your issue already exists, make relevant comments and add your [reaction](https://github.com/blog/2119-add-reactions-to-pull-requests-issues-and-comments). Use a reaction in place of a "+1" comment.
:+1: - upvote
:-1: - downvote
If you cannot find an existing issue that describes your bug or feature, submit an issue using the guidelines below.
## Writing good bug reports and feature requests
File a single issue per problem and feature request.
* Do not enumerate multiple bugs or feature requests in the same issue.
* Do not add your issue as a comment to an existing issue unless it's for the identical input. Many issues look similar, but have different causes.
The more information you can provide, the more likely someone will be successful reproducing the issue and finding a fix.
You are now ready to [create a new issue](https://github.com/docker/build-push-action/issues/new/choose)!
## Closure policy
* Issues that don't have the information requested above (when applicable) will be closed immediately and the poster directed to the support guidelines.
* Issues that go a week without a response from original poster are subject to closure at our discretion.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

+11
View File
@@ -4,6 +4,12 @@ updates:
directory: "/"
schedule:
interval: "daily"
cooldown:
default-days: 2
groups:
crazy-max-dot-github:
patterns:
- "crazy-max/.github/*"
labels:
- "dependencies"
- "bot"
@@ -11,6 +17,11 @@ updates:
directory: "/"
schedule:
interval: "daily"
cooldown:
default-days: 2
exclude:
- "@docker/actions-toolkit"
versioning-strategy: "increase"
allow:
- dependency-type: "production"
labels:
+5
View File
@@ -0,0 +1,5 @@
REGISTRY_FQDN=localhost:8080
REGISTRY_SLUG=localhost:8080/test-docker-action
DISTRIBUTION_HOST=localhost
DISTRIBUTION_PORT=8080
+13
View File
@@ -0,0 +1,13 @@
#!/usr/bin/env bash
set -eu
: "${DISTRIBUTION_VERSION:=2}"
: "${DISTRIBUTION_HOST:=localhost}"
: "${DISTRIBUTION_PORT:=8080}"
echo "::group::Starting registry:${DISTRIBUTION_VERSION}"
(
set -x
docker run -d --name registry -p "${DISTRIBUTION_PORT}:5000" "registry:${DISTRIBUTION_VERSION}"
)
echo "::endgroup::"
+8
View File
@@ -0,0 +1,8 @@
REGISTRY_FQDN=localhost:8081
REGISTRY_USER=admin
REGISTRY_PASSWORD=Harbor12345
REGISTRY_SLUG=localhost:8081/test-docker-action/test-docker-action
HARBOR_HOST=localhost
HARBOR_PORT=8081
HARBOR_PROJECT=test-docker-action
+79
View File
@@ -0,0 +1,79 @@
#!/usr/bin/env bash
set -eu
: "${HARBOR_VERSION:=v2.7.0}"
: "${HARBOR_HOST:=localhost}"
: "${HARBOR_PORT:=49154}"
: "${REGISTRY_USER:=admin}"
: "${REGISTRY_PASSWORD:=Harbor12345}"
: "${HARBOR_PROJECT:=test-docker-action}"
project_post_data() {
cat <<EOF
{
"project_name": "$HARBOR_PROJECT",
"public": true
}
EOF
}
export TERM=xterm
# download
echo "::group::Downloading Harbor $HARBOR_VERSION"
(
cd /tmp
set -x
wget -q "https://github.com/goharbor/harbor/releases/download/${HARBOR_VERSION}/harbor-offline-installer-${HARBOR_VERSION}.tgz" -O harbor-online-installer.tgz
tar xvf harbor-online-installer.tgz
)
echo "::endgroup::"
# config
echo "::group::Configuring Harbor"
(
cd /tmp/harbor
set -x
cp harbor.yml.tmpl harbor.yml
harborConfig="$(harborHost="$HARBOR_HOST" harborPort="$HARBOR_PORT" harborPwd="$REGISTRY_PASSWORD" yq --no-colors '.hostname = env(harborHost) | .http.port = env(harborPort) | .harbor_admin_password = env(harborPwd) | del(.https)' harbor.yml)"
tee harbor.yml <<<"$harborConfig" >/dev/null
yq --no-colors harbor.yml
)
echo "::endgroup::"
# install and start
echo "::group::Installing Harbor"
(
cd /tmp/harbor
set -x
./install.sh
sleep 10
netstat -aptn
)
echo "::endgroup::"
# compose config
echo "::group::Compose config"
(
cd /tmp/harbor
set -x
docker compose config
)
echo "::endgroup::"
# create project
echo "::group::Creating project"
(
set -x
curl --fail -v -k --max-time 10 -u "$REGISTRY_USER:$REGISTRY_PASSWORD" -X POST -H "Content-Type: application/json" -d "$(project_post_data)" "http://$HARBOR_HOST:$HARBOR_PORT/api/v2.0/projects"
)
echo "::endgroup::"
# list projects
echo "::group::List projects"
(
set -x
curl --fail -s -k --max-time 10 -u "$REGISTRY_USER:$REGISTRY_PASSWORD" -H "Content-Type: application/json" "http://$HARBOR_HOST:$HARBOR_PORT/api/v2.0/projects" | jq
)
echo "::endgroup::"
+8
View File
@@ -0,0 +1,8 @@
services:
nexus:
image: sonatype/nexus3:${NEXUS_VERSION:-latest}
volumes:
- "./data:/nexus-data"
ports:
- "8081:8081"
- "8082:8082"
+9
View File
@@ -0,0 +1,9 @@
REGISTRY_FQDN=localhost:8082
REGISTRY_USER=admin
REGISTRY_PASSWORD=Nexus12345
REGISTRY_SLUG=localhost:8082/test-docker-action
NEXUS_HOST=localhost
NEXUS_PORT=8081
NEXUS_REGISTRY_PORT=8082
NEXUS_REPO=test-docker-action
+94
View File
@@ -0,0 +1,94 @@
#!/usr/bin/env bash
set -eu
SCRIPT_DIR=$(cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd)
: "${NEXUS_VERSION:=3.47.1}"
: "${NEXUS_HOST:=localhost}"
: "${NEXUS_PORT:=8081}"
: "${NEXUS_REGISTRY_PORT:=8082}"
: "${REGISTRY_USER:=admin}"
: "${REGISTRY_PASSWORD:=Nexus12345}"
: "${NEXUS_REPO:=test-docker-action}"
createrepo_post_data() {
cat <<EOF
{
"name": "${NEXUS_REPO}",
"online": true,
"storage": {
"blobStoreName": "default",
"strictContentTypeValidation": true,
"writePolicy": "ALLOW"
},
"docker": {
"v1Enabled": false,
"forceBasicAuth": true,
"httpPort": ${NEXUS_REGISTRY_PORT},
"httpsPort": null,
"subdomain": null
}
}
EOF
}
export NEXUS_VERSION
mkdir -p /tmp/nexus/data
chown 200:200 /tmp/nexus/data
cp "${SCRIPT_DIR}/docker-compose.yml" /tmp/nexus/docker-compose.yml
echo "::group::Pulling Nexus $NEXUS_VERSION"
(
cd /tmp/nexus
set -x
docker compose pull
)
echo "::endgroup::"
echo "::group::Compose config"
(
cd /tmp/nexus
set -x
docker compose config
)
echo "::endgroup::"
echo "::group::Running Nexus"
(
cd /tmp/nexus
set -x
docker compose up -d
)
echo "::endgroup::"
echo "::group::Running Nexus"
(
cd /tmp/nexus
set -x
docker compose up -d
)
echo "::endgroup::"
echo "::group::Waiting for Nexus to be ready"
until $(curl --output /dev/null --silent --head --fail "http://$NEXUS_HOST:$NEXUS_PORT"); do
printf '.'
sleep 5
done
echo "ready!"
echo "::endgroup::"
echo "::group::Change user's password"
(
set -x
curl --fail -v -k --max-time 10 -u "$REGISTRY_USER:$(cat /tmp/nexus/data/admin.password)" -X PUT -H 'Content-Type: text/plain' -d "$REGISTRY_PASSWORD" "http://$NEXUS_HOST:$NEXUS_PORT/service/rest/v1/security/users/$REGISTRY_USER/change-password"
)
echo "::endgroup::"
echo "::group::Create Docker repository"
(
set -x
curl --fail -v -k --max-time 10 -u "$REGISTRY_USER:$REGISTRY_PASSWORD" -X POST -H 'Content-Type: application/json' -d "$(createrepo_post_data)" "http://$NEXUS_HOST:$NEXUS_PORT/service/rest/v1/repositories/docker/hosted"
)
echo "::endgroup::"
+146
View File
@@ -0,0 +1,146 @@
# reusable workflow
name: .e2e-run
permissions:
contents: read
on:
workflow_call:
inputs:
id:
required: false
type: string
type:
required: true
type: string
name:
required: true
type: string
registry:
required: false
type: string
slug:
required: false
type: string
secrets:
registry_username:
required: false
registry_password:
required: false
env:
HARBOR_VERSION: v2.13.2
NEXUS_VERSION: 3.47.1
DISTRIBUTION_VERSION: 3.0.0
jobs:
run:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
-
buildx_version: edge
buildkit_image: moby/buildkit:latest
-
buildx_version: latest
buildkit_image: moby/buildkit:buildx-stable-1
-
buildx_version: https://github.com/docker/buildx.git#master
buildkit_image: moby/buildkit:master
steps:
-
name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
-
name: Set up env
if: inputs.type == 'local'
env:
ID: ${{ inputs.id }}
run: |
cat ./.github/e2e/${ID}/env >> $GITHUB_ENV
-
name: Set up BuildKit config
env:
TYPE: ${{ inputs.type }}
run: |
touch /tmp/buildkitd.toml
if [ "${TYPE}" = "local" ]; then
echo -e "[registry.\"${{ env.REGISTRY_FQDN }}\"]\nhttp = true\ninsecure = true" > /tmp/buildkitd.toml
fi
-
name: Set up Docker daemon
if: inputs.type == 'local'
run: |
if [ ! -e /etc/docker/daemon.json ]; then
echo '{}' | sudo tee /etc/docker/daemon.json >/dev/null
fi
DOCKERD_CONFIG=$(jq '.+{"insecure-registries":["http://${{ env.REGISTRY_FQDN }}"]}' /etc/docker/daemon.json)
sudo tee /etc/docker/daemon.json <<<"$DOCKERD_CONFIG" >/dev/null
cat /etc/docker/daemon.json
sudo service docker restart
-
name: Install ${{ inputs.name }}
if: inputs.type == 'local'
env:
ID: ${{ inputs.id }}
run: |
sudo -E bash ./.github/e2e/${ID}/install.sh
sudo chown $(id -u):$(id -g) -R ~/.docker
-
name: Docker meta
id: meta
uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6.0.0
with:
images: ${{ env.REGISTRY_SLUG || inputs.slug }}
tags: |
type=ref,event=branch,enable=${{ matrix.buildx_version == 'latest' && matrix.buildkit_image == 'moby/buildkit:buildx-stable-1' }}
type=ref,event=tag,enable=${{ matrix.buildx_version == 'latest' && matrix.buildkit_image == 'moby/buildkit:buildx-stable-1' }}
type=raw,gh-runid-${{ github.run_id }}
-
name: Set up QEMU
uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4.0.0
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0
with:
version: ${{ matrix.buildx_version }}
buildkitd-config: /tmp/buildkitd.toml
buildkitd-flags: --debug --allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host
driver-opts: |
image=${{ matrix.buildkit_image }}
network=host
-
name: Login to Registry
if: github.event_name != 'pull_request' && (inputs.type == 'remote' || env.REGISTRY_USER != '')
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
with:
registry: ${{ env.REGISTRY_FQDN || inputs.registry }}
username: ${{ env.REGISTRY_USER || secrets.registry_username }}
password: ${{ env.REGISTRY_PASSWORD || secrets.registry_password }}
-
name: Build and push
uses: ./
with:
context: ./test
file: ./test/multi.Dockerfile
platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64,linux/ppc64le,linux/s390x
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=registry,ref=${{ env.REGISTRY_SLUG || inputs.slug }}:master
cache-to: type=inline
-
name: Inspect image
env:
SLUG: ${{ env.REGISTRY_SLUG || inputs.slug }}
run: |
docker pull ${SLUG}:${{ steps.meta.outputs.version }}
docker image inspect ${SLUG}:${{ steps.meta.outputs.version }}
-
name: Check manifest
env:
SLUG: ${{ env.REGISTRY_SLUG || inputs.slug }}
run: |
docker buildx imagetools inspect ${SLUG}:${{ steps.meta.outputs.version }} --format '{{json .}}'
+1230 -258
View File
File diff suppressed because it is too large. Load diff
+46
View File
@@ -0,0 +1,46 @@
name: codeql
permissions:
contents: read
on:
push:
branches:
- 'master'
- 'releases/v*'
pull_request:
env:
NODE_VERSION: "24"
jobs:
analyze:
runs-on: ubuntu-latest
permissions:
contents: read
security-events: write
steps:
-
name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
-
name: Enable corepack
run: |
corepack enable
yarn --version
-
name: Set up Node
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: ${{ env.NODE_VERSION }}
-
name: Initialize CodeQL
uses: github/codeql-action/init@9e0d7b8d25671d64c341c19c0152d693099fb5ba # v4.35.5
with:
languages: javascript-typescript
build-mode: none
-
name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@9e0d7b8d25671d64c341c19c0152d693099fb5ba # v4.35.5
with:
category: "/language:javascript-typescript"
+94 -72
View File
@@ -1,105 +1,127 @@
name: e2e
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
workflow_dispatch:
schedule:
- cron: '0 10 * * *' # everyday at 10am
- cron: '0 10 * * *'
push:
branches:
- master
- 'master'
tags:
- v*
- 'v*'
jobs:
docker:
runs-on: ubuntu-latest
build:
uses: ./.github/workflows/.e2e-run.yml
strategy:
fail-fast: false
matrix:
include:
-
name: Distribution
id: distribution
auth: none
type: local
-
name: Docker Hub
registry: ''
slug: ghactionstest/ghactionstest
username_secret: DOCKERHUB_USERNAME
password_secret: DOCKERHUB_TOKEN
auth: dockerhub
type: remote
-
name: GitHub
registry: ghcr.io
slug: ghcr.io/docker-ghactiontest/test
username_secret: GHCR_USERNAME
password_secret: GHCR_PAT
auth: ghcr
type: remote
-
name: GitLab
registry: registry.gitlab.com
slug: registry.gitlab.com/test1716/test
username_secret: GITLAB_USERNAME
password_secret: GITLAB_TOKEN
auth: gitlab
type: remote
-
name: AWS ECR
registry: 175142243308.dkr.ecr.us-east-2.amazonaws.com
slug: 175142243308.dkr.ecr.us-east-2.amazonaws.com/sandbox/test-docker-action
username_secret: AWS_ACCESS_KEY_ID
password_secret: AWS_SECRET_ACCESS_KEY
auth: aws
type: remote
-
name: AWS ECR Public
registry: public.ecr.aws
slug: public.ecr.aws/q3b5f1u4/test-docker-action
username_secret: AWS_ACCESS_KEY_ID
password_secret: AWS_SECRET_ACCESS_KEY
auth: aws
type: remote
-
name: Google Artifact Registry
registry: us-east4-docker.pkg.dev
slug: us-east4-docker.pkg.dev/sandbox-298914/docker-official-github-actions/test-docker-action
username_secret: GAR_USERNAME
password_secret: GAR_JSON_KEY
auth: gar
type: remote
-
registry: gcr.io
slug: gcr.io/sandbox-298914/test-docker-action
username_secret: GCR_USERNAME
password_secret: GCR_JSON_KEY
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Docker meta
id: meta
uses: docker/metadata-action@v3
with:
images: ${{ matrix.slug }}
-
name: Set up QEMU
uses: docker/setup-qemu-action@v1
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
-
name: Login to Registry
if: github.event_name != 'pull_request'
uses: docker/login-action@v1
with:
registry: ${{ matrix.registry }}
username: ${{ secrets[matrix.username_secret] }}
password: ${{ secrets[matrix.password_secret] }}
-
name: Build and push
uses: ./
with:
context: ./test
file: ./test/multi.Dockerfile
platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64,linux/ppc64le,linux/s390x
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=registry,ref=${{ matrix.slug }}:master
cache-to: type=inline
-
name: Inspect image
if: github.event_name != 'pull_request'
run: |
docker pull ${{ matrix.slug }}:${{ steps.meta.outputs.version }}
docker image inspect ${{ matrix.slug }}:${{ steps.meta.outputs.version }}
-
name: Check manifest
if: github.event_name != 'pull_request'
run: |
docker buildx imagetools inspect ${{ matrix.slug }}:${{ steps.meta.outputs.version }}
-
name: Dump context
if: always()
uses: crazy-max/ghaction-dump-context@v1
name: Azure Container Registry
registry: officialgithubactions.azurecr.io
slug: officialgithubactions.azurecr.io/test-docker-action
auth: acr
type: remote
-
name: Quay
registry: quay.io
slug: quay.io/docker_build_team/ghactiontest
auth: quay
type: remote
-
name: Artifactory
registry: infradock.jfrog.io
slug: infradock.jfrog.io/test-ghaction/build-push-action
auth: artifactory
type: remote
-
name: Harbor
id: harbor
auth: none
type: local
-
name: Nexus
id: nexus
auth: none
type: local
with:
id: ${{ matrix.id }}
type: ${{ matrix.type }}
name: ${{ matrix.name }}
registry: ${{ matrix.registry }}
slug: ${{ matrix.slug }}
secrets:
# Pass only the two secrets needed by each matrix entry.
registry_username: >-
${{
matrix.auth == 'dockerhub' && secrets.DOCKERHUB_USERNAME ||
matrix.auth == 'ghcr' && secrets.GHCR_USERNAME ||
matrix.auth == 'gitlab' && secrets.GITLAB_USERNAME ||
matrix.auth == 'aws' && secrets.AWS_ACCESS_KEY_ID ||
matrix.auth == 'gar' && secrets.GAR_USERNAME ||
matrix.auth == 'acr' && secrets.AZURE_CLIENT_ID ||
matrix.auth == 'quay' && secrets.QUAY_USERNAME ||
matrix.auth == 'artifactory' && secrets.ARTIFACTORY_USERNAME ||
''
}}
registry_password: >-
${{
matrix.auth == 'dockerhub' && secrets.DOCKERHUB_TOKEN ||
matrix.auth == 'ghcr' && secrets.GHCR_PAT ||
matrix.auth == 'gitlab' && secrets.GITLAB_TOKEN ||
matrix.auth == 'aws' && secrets.AWS_SECRET_ACCESS_KEY ||
matrix.auth == 'gar' && secrets.GAR_JSON_KEY ||
matrix.auth == 'acr' && secrets.AZURE_CLIENT_SECRET ||
matrix.auth == 'quay' && secrets.QUAY_TOKEN ||
matrix.auth == 'artifactory' && secrets.ARTIFACTORY_TOKEN ||
''
}}
-78
View File
@@ -1,78 +0,0 @@
# This workflow is provided just as an usage example and not for repo testing/verification
name: example
on:
schedule:
- cron: '0 10 * * 0' # everyday sunday at 10am
push:
branches:
- '**'
tags:
- 'v*.*.*'
pull_request:
env:
DOCKER_IMAGE: localhost:5000/name/app
jobs:
docker:
runs-on: ubuntu-latest
services:
registry:
image: registry:2
ports:
- 5000:5000
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Docker meta
id: meta
uses: docker/metadata-action@v3
with:
images: ${{ env.DOCKER_IMAGE }}
tags: |
type=schedule
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=sha
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
with:
driver-opts: network=host
-
name: Build and export to Docker client
uses: ./
with:
context: ./test
file: ./test/Dockerfile
load: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
-
name: Build and push to local registry
uses: ./
with:
context: ./test
file: ./test/Dockerfile
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
-
name: Inspect image
run: |
docker image inspect ${{ env.DOCKER_IMAGE }}:${{ steps.meta.outputs.version }}
-
name: Check manifest
if: github.event_name != 'pull_request'
run: |
docker buildx imagetools inspect ${{ env.DOCKER_IMAGE }}:${{ steps.meta.outputs.version }}
-
name: Dump context
if: always()
uses: crazy-max/ghaction-dump-context@v1
+17
View File
@@ -0,0 +1,17 @@
name: pr-assign-author
permissions:
contents: read
on:
pull_request_target: # zizmor: ignore[dangerous-triggers] safe to use without checkout
types:
- opened
- reopened
jobs:
run:
uses: crazy-max/.github/.github/workflows/pr-assign-author.yml@9ba6e6f9450baf3b1237f8035c1fdc45932510bd # v1.8.0
permissions:
contents: read
pull-requests: write
+28
View File
@@ -0,0 +1,28 @@
name: publish
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
release:
types:
- published
jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
packages: write
steps:
-
name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
-
name: Publish
uses: actions/publish-immutable-action@4bc8754ffc40f27910afb20287dbbbb675a4e978 # v0.0.4
+14 -11
View File
@@ -1,12 +1,18 @@
name: test
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
push:
branches:
- 'master'
- 'releases/v*'
pull_request:
branches:
- 'master'
jobs:
test:
@@ -14,19 +20,16 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Validate
uses: docker/bake-action@v1
with:
targets: validate
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
-
name: Test
uses: docker/bake-action@v1
uses: docker/bake-action@a66e1c87e2eca0503c343edf1d208c716d54b8a8 # v7.1.0
with:
source: .
targets: test
-
name: Upload coverage
uses: codecov/codecov-action@v1
uses: codecov/codecov-action@e79a6962e0d4c0c17b229090214935d2e33f8354 # v6.0.1
with:
file: ./coverage/clover.xml
files: ./coverage/clover.xml
token: ${{ secrets.CODECOV_TOKEN }}
+58
View File
@@ -0,0 +1,58 @@
name: update-dist
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
pull_request:
types:
- opened
- synchronize
jobs:
update-dist:
if: github.actor == 'dependabot[bot]' && github.event.pull_request.user.login == 'dependabot[bot]' && github.repository == github.event.pull_request.head.repo.full_name
runs-on: ubuntu-latest
steps:
-
name: GitHub auth token from GitHub App
id: docker-read-app
uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
with:
app-id: ${{ secrets.GHACTIONS_REPO_WRITE_APP_ID }}
private-key: ${{ secrets.GHACTIONS_REPO_WRITE_APP_PRIVATE_KEY }}
owner: docker
repositories: build-push-action
permission-contents: write
-
name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
ref: ${{ github.event.pull_request.head.ref }}
fetch-depth: 0
token: ${{ steps.docker-read-app.outputs.token }}
-
name: Build
uses: docker/bake-action@a66e1c87e2eca0503c343edf1d208c716d54b8a8 # v7.1.0
with:
source: .
targets: build
-
name: Commit and push dist
run: |
if [ -n "$(git status --porcelain -- dist)" ]; then
(
set -x
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add dist
git commit -m "chore: update generated content"
git push
)
else
echo "No changes in dist"
fi
+46
View File
@@ -0,0 +1,46 @@
name: validate
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
push:
branches:
- 'master'
- 'releases/v*'
pull_request:
jobs:
prepare:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.generate.outputs.matrix }}
steps:
-
name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
-
name: Generate matrix
id: generate
uses: docker/bake-action/subaction/matrix@a66e1c87e2eca0503c343edf1d208c716d54b8a8 # v7.1.0
with:
target: validate
validate:
runs-on: ubuntu-latest
needs:
- prepare
strategy:
fail-fast: false
matrix:
include: ${{ fromJson(needs.prepare.outputs.matrix) }}
steps:
-
name: Validate
uses: docker/bake-action@a66e1c87e2eca0503c343edf1d208c716d54b8a8 # v7.1.0
with:
targets: ${{ matrix.target }}
-38
View File
@@ -1,38 +0,0 @@
name: virtual-env
on:
workflow_dispatch:
schedule:
- cron: '0 10 * * *' # everyday at 10am
jobs:
os:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-20.04
- ubuntu-18.04
- ubuntu-16.04
steps:
-
name: List install packages
run: apt list --installed
-
name: Docker info
run: docker info
-
name: Docker version
run: docker version
-
name: buildx version
run: docker buildx version
-
name: containerd version
run: containerd --version
-
name: Dump context
if: always()
uses: crazy-max/ghaction-dump-context@v1
+29
View File
@@ -0,0 +1,29 @@
name: zizmor
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
workflow_dispatch:
push:
branches:
- 'master'
- 'releases/v*'
tags:
- 'v*'
pull_request:
jobs:
zizmor:
uses: crazy-max/.github/.github/workflows/zizmor.yml@9ba6e6f9450baf3b1237f8035c1fdc45932510bd # v1.8.0
permissions:
contents: read
security-events: write
with:
min-severity: medium
min-confidence: medium
persona: pedantic
+14 -56
View File
@@ -1,11 +1,5 @@
node_modules
lib
# https://raw.githubusercontent.com/github/gitignore/main/Node.gitignore
# Jetbrains
/.idea
/*.iml
# Rest of the file pulled from https://github.com/github/gitignore/blob/master/Node.gitignore
# Logs
logs
*.log
@@ -13,6 +7,7 @@ npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
@@ -23,34 +18,14 @@ pids
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# TypeScript cache
*.tsbuildinfo
@@ -60,36 +35,19 @@ typings/
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
# dotenv environment variable files
.env
.env.test
.env.development.local
.env.test.local
.env.production.local
.env.local
# parcel-bundler cache (https://parceljs.org/)
.cache
# next.js build output
.next
# nuxt.js build output
.nuxt
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
+6
View File
@@ -0,0 +1,6 @@
# Dependency directories
node_modules/
jspm_packages/
# yarn v2
.yarn/
+1 -2
View File
@@ -6,6 +6,5 @@
"singleQuote": true,
"trailingComma": "none",
"bracketSpacing": false,
"arrowParens": "avoid",
"parser": "typescript"
"arrowParens": "avoid"
}
+17
View File
@@ -0,0 +1,17 @@
# https://yarnpkg.com/configuration/yarnrc
compressionLevel: mixed
enableGlobalCache: false
enableHardenedMode: true
logFilters:
- code: YN0013
level: discard
- code: YN0019
level: discard
- code: YN0076
level: discard
- code: YN0086
level: discard
nodeLinker: node-modules
+178 -138
View File
@@ -1,23 +1,15 @@
[![GitHub release](https://img.shields.io/github/release/docker/build-push-action.svg?style=flat-square)](https://github.com/docker/build-push-action/releases/latest)
[![GitHub marketplace](https://img.shields.io/badge/marketplace-build--and--push--docker--images-blue?logo=github&style=flat-square)](https://github.com/marketplace/actions/build-and-push-docker-images)
[![CI workflow](https://img.shields.io/github/workflow/status/docker/build-push-action/ci?label=ci&logo=github&style=flat-square)](https://github.com/docker/build-push-action/actions?workflow=ci)
[![Test workflow](https://img.shields.io/github/workflow/status/docker/build-push-action/test?label=test&logo=github&style=flat-square)](https://github.com/docker/build-push-action/actions?workflow=test)
[![CI workflow](https://img.shields.io/github/actions/workflow/status/docker/build-push-action/ci.yml?branch=master&label=ci&logo=github&style=flat-square)](https://github.com/docker/build-push-action/actions?workflow=ci)
[![Test workflow](https://img.shields.io/github/actions/workflow/status/docker/build-push-action/test.yml?branch=master&label=test&logo=github&style=flat-square)](https://github.com/docker/build-push-action/actions?workflow=test)
[![Codecov](https://img.shields.io/codecov/c/github/docker/build-push-action?logo=codecov&style=flat-square)](https://codecov.io/gh/docker/build-push-action)
## Upgrade from v1
`v2` of this action includes significant updates and now uses Docker [Buildx](https://github.com/docker/buildx). It's
also rewritten as a [typescript-action](https://github.com/actions/typescript-action/) to be as close as possible
of the [GitHub Runner](https://github.com/actions/virtual-environments) during its execution.
[Upgrade notes](UPGRADE.md) with many [usage examples](#advanced-usage) have been added to handle most use cases but
`v1` is still available through [`releases/v1` branch](https://github.com/docker/build-push-action/tree/releases/v1).
## About
GitHub Action to build and push Docker images with [Buildx](https://github.com/docker/buildx) with full support of the
features provided by [Moby BuildKit](https://github.com/moby/buildkit) builder toolkit. This includes multi-platform
build, secrets, remote cache, etc. and different builder deployment/namespacing options.
GitHub Action to build and push Docker images with [Buildx](https://github.com/docker/buildx)
with full support of the features provided by [Moby BuildKit](https://github.com/moby/buildkit)
builder toolkit. This includes multi-platform build, secrets, remote cache, etc.
and different builder deployment/namespacing options.
![Screenshot](.github/build-push-action.png)
@@ -26,94 +18,98 @@ ___
* [Usage](#usage)
* [Git context](#git-context)
* [Path context](#path-context)
* [Advanced usage](#advanced-usage)
* [Multi-platform image](docs/advanced/multi-platform.md)
* [Secrets](docs/advanced/secrets.md)
* [Isolated builders](docs/advanced/isolated-builders.md)
* [Push to multi-registries](docs/advanced/push-multi-registries.md)
* [Copy between registries](docs/advanced/copy-between-registries.md)
* [Cache](docs/advanced/cache.md)
* [Registry cache](docs/advanced/cache.md#registry-cache)
* [GitHub cache](docs/advanced/cache.md#github-cache)
* [Local registry](docs/advanced/local-registry.md)
* [Export image to Docker](docs/advanced/export-docker.md)
* [Share built image between jobs](docs/advanced/share-image-jobs.md)
* [Handle tags and labels](docs/advanced/tags-labels.md)
* [Update DockerHub repo description](docs/advanced/dockerhub-desc.md)
* [Examples](#examples)
* [Summaries](#summaries)
* [Customizing](#customizing)
* [inputs](#inputs)
* [outputs](#outputs)
* [environment variables](#environment-variables)
* [Troubleshooting](#troubleshooting)
* [Keep up-to-date with GitHub Dependabot](#keep-up-to-date-with-github-dependabot)
* [Contributing](#contributing)
## Usage
By default, this action uses the [Git context](#git-context) so you don't need to use the
[`actions/checkout`](https://github.com/actions/checkout/) action to checkout the repository because this will be
done directly by buildkit. The git reference will be based on the [event that triggered your workflow](https://docs.github.com/en/actions/reference/events-that-trigger-workflows)
and will result in the following context: `https://github.com/<owner>/<repo>.git#<ref>`.
In the examples below we are also using 3 other actions:
Be careful because **any file mutation in the steps that precede the build step will be ignored** since
the context is based on the git reference. However, you can use the [Path context](#path-context) using the
[`context` input](#inputs) alongside the [`actions/checkout`](https://github.com/actions/checkout/) action to remove
this restriction.
In the examples below we are using 3 other actions:
* [`setup-buildx`](https://github.com/docker/setup-buildx-action) action will create and boot a builder using by
default the `docker-container` [builder driver](https://github.com/docker/buildx/blob/master/docs/reference/buildx_create.md#driver).
This is **not required but recommended** using it to be able to build multi-platform images, export cache, etc.
* [`setup-qemu`](https://github.com/docker/setup-qemu-action) action can be useful if you want
to add emulation support with QEMU to be able to build against more platforms.
* [`login`](https://github.com/docker/login-action) action will take care to log in against a Docker registry.
* [`setup-buildx`](https://github.com/docker/setup-buildx-action) action will
create and boot a builder using by default the [`docker-container` driver](https://docs.docker.com/build/building/drivers/docker-container/).
This is **not required but recommended** using it to be able to build
multi-platform images, export cache, etc.
* [`setup-qemu`](https://github.com/docker/setup-qemu-action) action can be
useful if you want to add emulation support with QEMU to be able to build
against more platforms.
* [`login`](https://github.com/docker/login-action) action will take care to
log in against a Docker registry.
### Git context
By default, this action uses the [Git context](https://docs.docker.com/engine/reference/commandline/build/#git-repositories),
so you don't need to use the [`actions/checkout`](https://github.com/actions/checkout/)
action to check out the repository as this will be done directly by [BuildKit](https://github.com/moby/buildkit).
The git reference will be based on the [event that triggered your workflow](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows)
and will result in the following context: `https://github.com/<owner>/<repo>.git#<ref>`.
```yaml
name: ci
on:
push:
branches:
- 'master'
jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Set up QEMU
uses: docker/setup-qemu-action@v1
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
-
name: Login to DockerHub
uses: docker/login-action@v1
name: Login to Docker Hub
uses: docker/login-action@v4
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
username: ${{ vars.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Set up QEMU
uses: docker/setup-qemu-action@v4
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
-
name: Build and push
id: docker_build
uses: docker/build-push-action@v2
uses: docker/build-push-action@v7
with:
push: true
tags: user/app:latest
-
name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}
```
Building from the current repository automatically uses the [GitHub Token](https://help.github.com/en/actions/configuring-and-managing-workflows/authenticating-with-the-github_token)
so it does not need to be passed. If you want to authenticate against another private repository, you have to use
a [secret](docs/advanced/secrets.md) named `GIT_AUTH_TOKEN` to be able to authenticate against it with buildx:
Be careful because **any file mutation in the steps that precede the build step
will be ignored, including processing of the `.dockerignore` file** since
the context is based on the Git reference. However, you can use the
[Path context](#path-context) using the [`context` input](#inputs) alongside
the [`actions/checkout`](https://github.com/actions/checkout/) action to remove
this restriction.
Default Git context can also be provided using the [Handlebars template](https://handlebarsjs.com/guide/)
expression `{{defaultContext}}`. Here we can use it to provide a subdirectory
to the default Git context:
```yaml
-
name: Build and push
id: docker_build
uses: docker/build-push-action@v2
uses: docker/build-push-action@v7
with:
context: "{{defaultContext}}:mysubdir"
push: true
tags: user/app:latest
```
Building from the current repository automatically uses the [GitHub Token](https://docs.github.com/en/actions/security-guides/automatic-token-authentication),
so it does not need to be passed. If you want to authenticate against another
private repository, you have to use a [secret](https://docs.docker.com/build/ci/github-actions/secrets)
named `GIT_AUTH_TOKEN` to be able to authenticate against it with Buildx:
```yaml
-
name: Build and push
uses: docker/build-push-action@v7
with:
push: true
tags: user/app:latest
@@ -121,9 +117,6 @@ a [secret](docs/advanced/secrets.md) named `GIT_AUTH_TOKEN` to be able to authen
GIT_AUTH_TOKEN=${{ secrets.MYTOKEN }}
```
> :warning: Subdir for Git context is not yet supported ([moby/buildkit#1684](https://github.com/moby/buildkit/issues/1684))
> but you can use the [path context](#path-context) in the meantime. More info on [Docker docs website](https://docs.docker.com/engine/reference/commandline/build/#git-repositories).
### Path context
```yaml
@@ -131,8 +124,6 @@ name: ci
on:
push:
branches:
- 'master'
jobs:
docker:
@@ -140,49 +131,85 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v6
-
name: Set up QEMU
uses: docker/setup-qemu-action@v1
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
-
name: Login to DockerHub
uses: docker/login-action@v1
name: Login to Docker Hub
uses: docker/login-action@v4
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
username: ${{ vars.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Set up QEMU
uses: docker/setup-qemu-action@v4
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
-
name: Build and push
uses: docker/build-push-action@v2
uses: docker/build-push-action@v7
with:
context: .
push: true
tags: user/app:latest
```
## Advanced usage
## Examples
* [Multi-platform image](docs/advanced/multi-platform.md)
* [Secrets](docs/advanced/secrets.md)
* [Isolated builders](docs/advanced/isolated-builders.md)
* [Push to multi-registries](docs/advanced/push-multi-registries.md)
* [Copy between registries](docs/advanced/copy-between-registries.md)
* [Cache](docs/advanced/cache.md)
* [Registry cache](docs/advanced/cache.md#registry-cache)
* [GitHub cache](docs/advanced/cache.md#github-cache)
* [Local registry](docs/advanced/local-registry.md)
* [Export image to Docker](docs/advanced/export-docker.md)
* [Share built image between jobs](docs/advanced/share-image-jobs.md)
* [Handle tags and labels](docs/advanced/tags-labels.md)
* [Update DockerHub repo description](docs/advanced/dockerhub-desc.md)
* [Multi-platform image](https://docs.docker.com/build/ci/github-actions/multi-platform/)
* [Secrets](https://docs.docker.com/build/ci/github-actions/secrets/)
* [Push to multi-registries](https://docs.docker.com/build/ci/github-actions/push-multi-registries/)
* [Manage tags and labels](https://docs.docker.com/build/ci/github-actions/manage-tags-labels/)
* [Cache management](https://docs.docker.com/build/ci/github-actions/cache/)
* [Export to Docker](https://docs.docker.com/build/ci/github-actions/export-docker/)
* [Test before push](https://docs.docker.com/build/ci/github-actions/test-before-push/)
* [Validating build configuration](https://docs.docker.com/build/ci/github-actions/checks/)
* [Local registry](https://docs.docker.com/build/ci/github-actions/local-registry/)
* [Share built image between jobs](https://docs.docker.com/build/ci/github-actions/share-image-jobs/)
* [Named contexts](https://docs.docker.com/build/ci/github-actions/named-contexts/)
* [Copy image between registries](https://docs.docker.com/build/ci/github-actions/copy-image-registries/)
* [Update Docker Hub repo description](https://docs.docker.com/build/ci/github-actions/update-dockerhub-desc/)
* [SBOM and provenance attestations](https://docs.docker.com/build/ci/github-actions/attestations/)
* [Annotations](https://docs.docker.com/build/ci/github-actions/annotations/)
* [Reproducible builds](https://docs.docker.com/build/ci/github-actions/reproducible-builds/)
## Summaries
This action generates a [job summary](https://github.blog/2022-05-09-supercharging-github-actions-with-job-summaries/)
that provides a detailed overview of the build execution. The summary shows an
overview of all the steps executed during the build, including the build inputs
and eventual errors.
![build-push-action job summary](./.github/build-push-summary.png)
The summary also includes a link for downloading the build record with
additional details about the build, including build stats, logs, outputs, and
more. The build record can be imported to Docker Desktop for inspecting the
build in greater detail.
> [!WARNING]
>
> If you're using the [`actions/download-artifact`](https://github.com/actions/download-artifact)
> action in your workflow, you need to ignore the build record artifacts
> if `name` and `pattern` inputs are not specified ([defaults to download all artifacts](https://github.com/actions/download-artifact?tab=readme-ov-file#download-all-artifacts) of the workflow),
> otherwise the action will fail:
> ```yaml
> - uses: actions/download-artifact@v4
> with:
> pattern: "!*.dockerbuild"
> ```
> More info: https://github.com/actions/toolkit/pull/1874
Summaries are enabled by default, but can be disabled with the
`DOCKER_BUILD_SUMMARY` [environment variable](#environment-variables).
For more information about summaries, refer to the
[documentation](https://docs.docker.com/go/build-summary/).
## Customizing
### inputs
Following inputs can be used as `step.with` keys
The following inputs can be used as `step.with` keys:
> `List` type is a newline-delimited string
> ```yaml
@@ -196,53 +223,66 @@ Following inputs can be used as `step.with` keys
> tags: name/app:latest,name/app:1.0.0
> ```
| Name | Type | Description |
|---------------------|----------|------------------------------------|
| `allow` | List/CSV | List of [extra privileged entitlement](https://github.com/docker/buildx/blob/master/docs/reference/buildx_build.md#allow) (eg. `network.host,security.insecure`) |
| `builder` | String | Builder instance (see [setup-buildx](https://github.com/docker/setup-buildx-action) action) |
| `build-args` | List | List of build-time variables |
| `cache-from` | List | List of [external cache sources](https://github.com/docker/buildx/blob/master/docs/reference/buildx_build.md#cache-from) (eg. `type=local,src=path/to/dir`) |
| `cache-to` | List | List of [cache export destinations](https://github.com/docker/buildx/blob/master/docs/reference/buildx_build.md#cache-to) (eg. `type=local,dest=path/to/dir`) |
| `context` | String | Build's context is the set of files located in the specified [`PATH` or `URL`](https://docs.docker.com/engine/reference/commandline/build/) (default [Git context](#git-context)) |
| `file` | String | Path to the Dockerfile. (default `{context}/Dockerfile`) |
| `labels` | List | List of metadata for an image |
| `load` | Bool | [Load](https://github.com/docker/buildx/blob/master/docs/reference/buildx_build.md#load) is a shorthand for `--output=type=docker` (default `false`) |
| `network` | String | Set the networking mode for the `RUN` instructions during build |
| `no-cache` | Bool | Do not use cache when building the image (default `false`) |
| `outputs` | List | List of [output destinations](https://github.com/docker/buildx/blob/master/docs/reference/buildx_build.md#output) (format: `type=local,dest=path`) |
| `platforms` | List/CSV | List of [target platforms](https://github.com/docker/buildx/blob/master/docs/reference/buildx_build.md#platform) for build |
| `pull` | Bool | Always attempt to pull a newer version of the image (default `false`) |
| `push` | Bool | [Push](https://github.com/docker/buildx/blob/master/docs/reference/buildx_build.md#push) is a shorthand for `--output=type=registry` (default `false`) |
| `secrets` | List | List of secrets to expose to the build (eg. `key=string`, `GIT_AUTH_TOKEN=mytoken`) |
| `secret-files` | List | List of secret files to expose to the build (eg. `key=filename`, `MY_SECRET=./secret.txt`) |
| `ssh` | List | List of SSH agent socket or keys to expose to the build |
| `tags` | List/CSV | List of tags |
| `target` | String | Sets the target stage to build |
| Name | Type | Description |
|--------------------|-------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `add-hosts` | List/CSV | List of [customs host-to-IP mapping](https://docs.docker.com/engine/reference/commandline/build/#add-entries-to-container-hosts-file---add-host) (e.g., `docker:10.180.0.1`) |
| `allow` | List/CSV | List of [extra privileged entitlement](https://docs.docker.com/engine/reference/commandline/buildx_build/#allow) (e.g., `network.host,security.insecure`) |
| `annotations` | List | List of annotation to set to the image |
| `attests` | List | List of [attestation](https://docs.docker.com/build/attestations/) parameters (e.g., `type=sbom,generator=image`) |
| `builder` | String | Builder instance (see [setup-buildx](https://github.com/docker/setup-buildx-action) action) |
| `build-args` | List | List of [build-time variables](https://docs.docker.com/engine/reference/commandline/buildx_build/#build-arg) |
| `build-contexts` | List | List of additional [build contexts](https://docs.docker.com/engine/reference/commandline/buildx_build/#build-context) (e.g., `name=path`) |
| `cache-from` | List | List of [external cache sources](https://docs.docker.com/engine/reference/commandline/buildx_build/#cache-from) (e.g., `type=local,src=path/to/dir`) |
| `cache-to` | List | List of [cache export destinations](https://docs.docker.com/engine/reference/commandline/buildx_build/#cache-to) (e.g., `type=local,dest=path/to/dir`) |
| `call` | String | Set [method for evaluating build](https://docs.docker.com/reference/cli/docker/buildx/build/#call) (e.g., `check`) |
| `cgroup-parent` | String | Optional [parent cgroup](https://docs.docker.com/engine/reference/commandline/build/#use-a-custom-parent-cgroup---cgroup-parent) for the container used in the build |
| `context` | String | Build's context is the set of files located in the specified [`PATH` or `URL`](https://docs.docker.com/engine/reference/commandline/build/) (default [Git context](#git-context)) |
| `file` | String | Path to the Dockerfile. (default `{context}/Dockerfile`) |
| `labels` | List | List of metadata for an image |
| `load` | Bool | [Load](https://docs.docker.com/engine/reference/commandline/buildx_build/#load) is a shorthand for `--output=type=docker` (default `false`) |
| `network` | String | Set the networking mode for the `RUN` instructions during build |
| `no-cache` | Bool | Do not use cache when building the image (default `false`) |
| `no-cache-filters` | List/CSV | Do not cache specified stages |
| `outputs` | List | List of [output destinations](https://docs.docker.com/engine/reference/commandline/buildx_build/#output) (format: `type=local,dest=path`) |
| `platforms` | List/CSV | List of [target platforms](https://docs.docker.com/engine/reference/commandline/buildx_build/#platform) for build |
| `provenance` | Bool/String | Generate [provenance](https://docs.docker.com/build/attestations/slsa-provenance/) attestation for the build (shorthand for `--attest=type=provenance`) |
| `pull` | Bool | Always attempt to pull all referenced images (default `false`) |
| `push` | Bool | [Push](https://docs.docker.com/engine/reference/commandline/buildx_build/#push) is a shorthand for `--output=type=registry` (default `false`) |
| `sbom` | Bool/String | Generate [SBOM](https://docs.docker.com/build/attestations/sbom/) attestation for the build (shorthand for `--attest=type=sbom`) |
| `secrets` | List | List of [secrets](https://docs.docker.com/engine/reference/commandline/buildx_build/#secret) to expose to the build (e.g., `key=string`, `GIT_AUTH_TOKEN=mytoken`) |
| `secret-envs` | List/CSV | List of [secret env vars](https://docs.docker.com/engine/reference/commandline/buildx_build/#secret) to expose to the build (e.g., `key=envname`, `MY_SECRET=MY_ENV_VAR`) |
| `secret-files` | List | List of [secret files](https://docs.docker.com/engine/reference/commandline/buildx_build/#secret) to expose to the build (e.g., `key=filename`, `MY_SECRET=./secret.txt`) |
| `shm-size` | String | Size of [`/dev/shm`](https://docs.docker.com/engine/reference/commandline/buildx_build/#shm-size) (e.g., `2g`) |
| `ssh` | List | List of [SSH agent socket or keys](https://docs.docker.com/engine/reference/commandline/buildx_build/#ssh) to expose to the build |
| `tags` | List/CSV | List of tags |
| `target` | String | Sets the target stage to build |
| `ulimit` | List | [Ulimit](https://docs.docker.com/engine/reference/commandline/buildx_build/#ulimit) options (e.g., `nofile=1024:1024`) |
| `github-token` | String | GitHub Token used to authenticate against a repository for [Git context](#git-context) (default `${{ github.token }}`) |
### outputs
Following outputs are available
The following outputs are available:
| Name | Type | Description |
|---------------|---------|---------------------------------------|
| `digest` | String | Image content-addressable identifier also called a digest |
| Name | Type | Description |
|------------|---------|-----------------------|
| `imageid` | String | Image ID |
| `digest` | String | Image digest |
| `metadata` | JSON | Build result metadata |
### environment variables
| Name | Type | Default | Description |
|--------------------------------------|--------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `DOCKER_BUILD_CHECKS_ANNOTATIONS` | Bool | `true` | If `false`, GitHub annotations are not generated for [build checks](https://docs.docker.com/build/checks/) |
| `DOCKER_BUILD_SUMMARY` | Bool | `true` | If `false`, [build summary](https://docs.docker.com/build/ci/github-actions/build-summary/) generation is disabled |
| `DOCKER_BUILD_RECORD_UPLOAD` | Bool | `true` | If `false`, build record upload as [GitHub artifact](https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts) is disabled |
| `DOCKER_BUILD_RECORD_RETENTION_DAYS` | Number | | Duration after which build record artifact will expire in days. Defaults to repository/org [retention settings](https://docs.github.com/en/actions/learn-github-actions/usage-limits-billing-and-administration#artifact-and-log-retention-policy) if unset or `0` |
## Troubleshooting
See [TROUBLESHOOTING.md](TROUBLESHOOTING.md)
## Keep up-to-date with GitHub Dependabot
## Contributing
Since [Dependabot](https://docs.github.com/en/github/administering-a-repository/keeping-your-actions-up-to-date-with-github-dependabot)
has [native GitHub Actions support](https://docs.github.com/en/github/administering-a-repository/configuration-options-for-dependency-updates#package-ecosystem),
to enable it on your GitHub repo all you need to do is add the `.github/dependabot.yml` file:
```yaml
version: 2
updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
```
Want to contribute? Awesome! You can find information about contributing to
this project in the [CONTRIBUTING.md](/.github/CONTRIBUTING.md)
+59 -47
View File
@@ -1,8 +1,7 @@
# Troubleshooting
* [Cannot push to a registry](#cannot-push-to-a-registry)
* [BuildKit container logs](#buildkit-container-logs)
* [With containerd](#with-containerd)
* [`repository name must be lowercase`](#repository-name-must-be-lowercase)
## Cannot push to a registry
@@ -14,58 +13,71 @@ While pushing to a registry, you may encounter these kinds of issues:
* `failed commit on ref "manifest-sha256:...": unexpected status: 401 Unauthorized`
* `unexpected response: 401 Unauthorized`
These issues are not directly related to this action but are rather linked to [buildx](https://github.com/docker/buildx),
[buildkit](https://github.com/moby/buildkit), [containerd](https://github.com/containerd/containerd) or the registry
on which you're pushing your image. The quality of error message depends on the registry and are usually not very informative.
### BuildKit container logs
These issues are not directly related to this action but are rather linked to
[Buildx](https://github.com/docker/buildx), [BuildKit](https://github.com/moby/buildkit),
[containerd](https://github.com/containerd/containerd) or the registry on which
you're pushing your image. The quality of error message depends on the registry
and are usually not very informative.
To help you solve this, you have to [enable debugging in the setup-buildx](https://github.com/docker/setup-buildx-action#buildkit-container-logs)
action step and attach BuildKit container logs to your issue.
### With containerd
## `repository name must be lowercase`
Next you can test pushing with [containerd action](https://github.com/crazy-max/ghaction-setup-containerd) using the
following workflow. If it works then open an issue on [buildkit](https://github.com/moby/buildkit) repository.
You may encounter this issue if you're using `github.repository` as a repo slug
in your tag:
```
#6 exporting to image
#6 exporting layers
#6 exporting layers 1.2s done
#6 exporting manifest sha256:b47f7dfb97b89ccd5de553af3c8cd94c4795884cbe5693e93946b1d95a7b1d12 0.0s done
#6 exporting config sha256:995e93fab8196893192f08a38deea6769dc4d98f86cf705eccc24ec96a3e271c 0.0s done
#6 ERROR: invalid reference format: repository name must be lowercase
------
> exporting to image:
------
error: failed to solve: invalid reference format: repository name must be lowercase
```
or a cache reference:
```
#10 importing cache manifest from ghcr.io/My-Org/repo:main
#10 ERROR: invalid reference format: repository name must be lowercase
```
To fix this issue you can use our [metadata action](https://github.com/docker/metadata-action)
to generate sanitized tags:
```yaml
name: containerd
- name: Docker meta
id: meta
uses: docker/metadata-action@v6
with:
images: ghcr.io/${{ github.repository }}
tags: latest
on:
push:
- name: Build and push
uses: docker/build-push-action@v7
with:
push: true
tags: ${{ steps.meta.outputs.tags }}
```
jobs:
containerd:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Set up QEMU
uses: docker/setup-qemu-action@v1
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
with:
buildkitd-flags: --debug
-
name: Set up containerd
uses: crazy-max/ghaction-setup-containerd@v1
-
name: Build Docker image
uses: docker/build-push-action@v2
with:
context: .
platforms: linux/amd64,linux/arm64
tags: docker.io/user/app:latest
outputs: type=oci,dest=/tmp/image.tar
-
name: Import image in containerd
run: |
sudo ctr i import --base-name docker.io/user/app --digests --all-platforms /tmp/image.tar
-
name: Push image with containerd
run: |
sudo ctr --debug i push --user "${{ secrets.DOCKER_USERNAME }}:${{ secrets.DOCKER_PASSWORD }}" docker.io/user/app:latest
Or a dedicated step to sanitize the slug:
```yaml
- name: Sanitize repo slug
uses: actions/github-script@v8
id: repo_slug
with:
result-encoding: string
script: return 'ghcr.io/${{ github.repository }}'.toLowerCase()
- name: Build and push
uses: docker/build-push-action@v7
with:
push: true
tags: ${{ steps.repo_slug.outputs.result }}:latest
```
-147
View File
@@ -1,147 +0,0 @@
# Upgrade notes
## v1 to v2
* Input `path` is now called `context` for consistency with other Docker build tools
* `path` defaults to current git repository so checkout action is not required in a workflow
* Rename `dockerfile` input to `file` for consistency with other Docker build tools
* Rename `always_pull` input to `pull` for consistency with other Docker build tools
* Add `builder` input to be able to choose a builder instance through our [setup-buildx action](https://github.com/docker/setup-buildx-action)
* Add `platforms` input to support multi-platform builds
* Add `allow` input
* Add `load` input
* Add `outputs` input
* Add `cache-from` input (`cache_froms` removed)
* Add `cache-to` input
* Rename `build_args` input to `build-args` for consistency with other Docker build tools
* Add `secrets` input
* Review `tags` input
* Remove `repository` input. See [Simple workflow](#simple-workflow) for migration
* Remove `username`, `password` and `registry` inputs. Login support moved to [docker/login-action](https://github.com/docker/login-action) repo
* Remove `tag_with_sha`, `tag_with_ref`, `add_git_labels` inputs. See [Tags with ref and Git labels](#tags-with-ref-and-git-labels) for migration
* Handle Git context
* Add `digest` output
### Simple workflow
```yaml
# v1
steps:
-
name: Checkout code
uses: actions/checkout@v2
-
name: Build and push Docker images
uses: docker/build-push-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: myorg/myrepository
always_pull: true
build_args: arg1=value1,arg2=value2
cache_froms: myorg/myrepository:latest
tags: latest
```
```yaml
# v2
steps:
-
name: Checkout code
uses: actions/checkout@v2
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
-
name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
-
name: Build and push
uses: docker/build-push-action@v2
with:
context: .
pull: true
push: true
build-args: |
arg1=value1
arg2=value2
cache-from: type=registry,ref=myorg/myrepository:latest
cache-to: type=inline
tags: myorg/myrepository:latest
```
### Tags with ref and Git labels
```yaml
# v1
steps:
-
name: Checkout code
uses: actions/checkout@v2
-
name: Build and push Docker images
uses: docker/build-push-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: myorg/myrepository
push: ${{ github.event_name != 'pull_request' }}
tag_with_ref: true
tag_with_sha: true
add_git_labels: true
```
```yaml
# v2
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Prepare
id: prep
run: |
DOCKER_IMAGE=myorg/myrepository
VERSION=edge
if [[ $GITHUB_REF == refs/tags/* ]]; then
VERSION=${GITHUB_REF#refs/tags/}
elif [[ $GITHUB_REF == refs/heads/* ]]; then
VERSION=$(echo ${GITHUB_REF#refs/heads/} | sed -r 's#/+#-#g')
elif [[ $GITHUB_REF == refs/pull/* ]]; then
VERSION=pr-${{ github.event.number }}
fi
TAGS="${DOCKER_IMAGE}:${VERSION}"
if [ "${{ github.event_name }}" = "push" ]; then
TAGS="$TAGS,${DOCKER_IMAGE}:sha-${GITHUB_SHA::8}"
fi
echo ::set-output name=version::${VERSION}
echo ::set-output name=tags::${TAGS}
echo ::set-output name=created::$(date -u +'%Y-%m-%dT%H:%M:%SZ')
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
-
name: Login to DockerHub
if: github.event_name != 'pull_request'
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
-
name: Build and push
uses: docker/build-push-action@v2
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.prep.outputs.tags }}
labels: |
org.opencontainers.image.source=${{ github.event.repository.html_url }}
org.opencontainers.image.created=${{ steps.prep.outputs.created }}
org.opencontainers.image.revision=${{ github.sha }}
```
> You can also use the [Docker meta action to handle tags and labels](docs/advanced/tags-labels.md) based on GitHub
> actions events and Git metadata.
-176
View File
@@ -1,176 +0,0 @@
import * as fs from 'fs';
import * as path from 'path';
import * as semver from 'semver';
import * as exec from '@actions/exec';
import * as buildx from '../src/buildx';
import * as context from '../src/context';
const tmpNameSync = path.join('/tmp/.docker-build-push-jest', '.tmpname-jest').split(path.sep).join(path.posix.sep);
const digest = 'sha256:bfb45ab72e46908183546477a08f8867fc40cebadd00af54b071b097aed127a9';
jest.spyOn(context, 'tmpDir').mockImplementation((): string => {
const tmpDir = path.join('/tmp/.docker-build-push-jest').split(path.sep).join(path.posix.sep);
if (!fs.existsSync(tmpDir)) {
fs.mkdirSync(tmpDir, {recursive: true});
}
return tmpDir;
});
jest.spyOn(context, 'tmpNameSync').mockImplementation((): string => {
return tmpNameSync;
});
describe('getImageID', () => {
it('matches', async () => {
const imageIDFile = await buildx.getImageIDFile();
console.log(`imageIDFile: ${imageIDFile}`);
await fs.writeFileSync(imageIDFile, digest);
const imageID = await buildx.getImageID();
console.log(`imageID: ${imageID}`);
expect(imageID).toEqual(digest);
});
});
describe('isLocalOrTarExporter', () => {
// prettier-ignore
test.each([
[
[
'type=registry,ref=user/app',
],
false
],
[
[
'type=docker',
],
false
],
[
[
'type=local,dest=./release-out'
],
true
],
[
[
'type=tar,dest=/tmp/image.tar'
],
true
],
[
[
'type=docker',
'type=tar,dest=/tmp/image.tar'
],
true
],
[
[
'"type=tar","dest=/tmp/image.tar"'
],
true
],
[
[
'" type= local" , dest=./release-out'
],
true
],
[
[
'.'
],
true
],
])(
'given %p returns %p',
async (outputs: Array<string>, expected: boolean) => {
expect(buildx.isLocalOrTarExporter(outputs)).toEqual(expected);
}
);
});
describe('isAvailable', () => {
const execSpy: jest.SpyInstance = jest.spyOn(exec, 'getExecOutput');
buildx.isAvailable();
expect(execSpy).toHaveBeenCalledWith(`docker`, ['buildx'], {
silent: true,
ignoreReturnCode: true
});
});
describe('getVersion', () => {
async function isDaemonRunning() {
return await exec
.getExecOutput(`docker`, ['version', '--format', '{{.Server.Os}}'], {
ignoreReturnCode: true,
silent: true
})
.then(res => {
return !res.stdout.includes(' ') && res.exitCode == 0;
});
}
(isDaemonRunning() ? it : it.skip)(
'valid',
async () => {
const version = await buildx.getVersion();
console.log(`version: ${version}`);
expect(semver.valid(version)).not.toBeNull();
},
100000
);
});
describe('parseVersion', () => {
test.each([
['github.com/docker/buildx 0.4.1+azure bda4882a65349ca359216b135896bddc1d92461c', '0.4.1'],
['github.com/docker/buildx v0.4.1 bda4882a65349ca359216b135896bddc1d92461c', '0.4.1'],
['github.com/docker/buildx v0.4.2 fb7b670b764764dc4716df3eba07ffdae4cc47b2', '0.4.2'],
['github.com/docker/buildx f117971 f11797113e5a9b86bd976329c5dbb8a8bfdfadfa', 'f117971']
])('given %p', async (stdout, expected) => {
expect(buildx.parseVersion(stdout)).toEqual(expected);
});
});
describe('satisfies', () => {
test.each([
['0.4.1', '>=0.3.2', true],
['bda4882a65349ca359216b135896bddc1d92461c', '>0.1.0', false],
['f117971', '>0.6.0', true]
])('given %p', async (version, range, expected) => {
expect(buildx.satisfies(version, range)).toBe(expected);
});
});
describe('getSecret', () => {
test.each([
['A_SECRET=abcdef0123456789', false, 'A_SECRET', 'abcdef0123456789', false],
['GIT_AUTH_TOKEN=abcdefghijklmno=0123456789', false, 'GIT_AUTH_TOKEN', 'abcdefghijklmno=0123456789', false],
['MY_KEY=c3RyaW5nLXdpdGgtZXF1YWxzCg==', false, 'MY_KEY', 'c3RyaW5nLXdpdGgtZXF1YWxzCg==', false],
['aaaaaaaa', false, '', '', true],
['aaaaaaaa=', false, '', '', true],
['=bbbbbbb', false, '', '', true],
[`foo=${path.join(__dirname, 'fixtures', 'secret.txt').split(path.sep).join(path.posix.sep)}`, true, 'foo', 'bar', false],
[`notfound=secret`, true, '', '', true]
])('given %p key and %p secret', async (kvp, file, exKey, exValue, invalid) => {
try {
let secret: string;
if (file) {
secret = await buildx.getSecretFile(kvp);
} else {
secret = await buildx.getSecretString(kvp);
}
expect(true).toBe(!invalid);
console.log(`secret: ${secret}`);
expect(secret).toEqual(`id=${exKey},src=${tmpNameSync}`);
const secretValue = await fs.readFileSync(tmpNameSync, 'utf-8');
console.log(`secretValue: ${secretValue}`);
expect(secretValue).toEqual(exValue);
} catch (err) {
expect(true).toBe(invalid);
}
});
});
+749 -390
View File
File diff suppressed because it is too large. Load diff
+22
View File
@@ -0,0 +1,22 @@
{
"name": "builder2",
"driver": "docker-container",
"lastActivity": "2023-01-16 09:45:23 +0000 UTC",
"nodes": [
{
"buildkit": "v0.11.0",
"buildkitd-flags": "--debug --allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host",
"driver-opts": [
"BUILDKIT_STEP_LOG_MAX_SIZE=10485760",
"BUILDKIT_STEP_LOG_MAX_SPEED=10485760",
"JAEGER_TRACE=localhost:6831",
"image=moby/buildkit:latest",
"network=host"
],
"endpoint": "unix:///var/run/docker.sock",
"name": "builder20",
"platforms": "linux/amd64,linux/amd64/v2,linux/amd64/v3,linux/arm64,linux/riscv64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/mips64,linux/arm/v7,linux/arm/v6",
"status": "running"
}
]
}
+1 -1
View File
@@ -1 +1 @@
bar
bar
+39
View File
@@ -0,0 +1,39 @@
import fs from 'node:fs';
import os from 'node:os';
import path from 'node:path';
import {vi} from 'vitest';
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'docker-build-push-action-'));
const githubPayload = {
repository: {
private: true
}
};
const githubEventPath = path.join(tmpDir, 'github-event.json');
fs.writeFileSync(githubEventPath, JSON.stringify(githubPayload));
process.env = Object.assign({}, process.env, {
TEMP: tmpDir,
GITHUB_REPOSITORY: 'docker/build-push-action',
GITHUB_REF: 'refs/heads/master',
GITHUB_RUN_ID: '123456789',
GITHUB_RUN_ATTEMPT: '1',
GITHUB_EVENT_PATH: githubEventPath,
RUNNER_TEMP: path.join(tmpDir, 'runner-temp'),
RUNNER_TOOL_CACHE: path.join(tmpDir, 'runner-tool-cache')
});
vi.mock('@actions/github', () => ({
context: {
repo: {
owner: 'docker',
repo: 'build-push-action'
},
ref: 'refs/heads/master',
runId: 123456789,
payload: githubPayload
},
getOctokit: vi.fn()
}));
+50 -10
View File
@@ -7,20 +7,38 @@ branding:
color: 'blue'
inputs:
add-hosts:
description: "List of a customs host-to-IP mapping (e.g., docker:10.180.0.1)"
required: false
allow:
description: "List of extra privileged entitlement (eg. network.host,security.insecure)"
description: "List of extra privileged entitlement (e.g., network.host,security.insecure)"
required: false
annotations:
description: "List of annotation to set to the image"
required: false
attests:
description: "List of attestation parameters (e.g., type=sbom,generator=image)"
required: false
build-args:
description: "List of build-time variables"
required: false
build-contexts:
description: "List of additional build contexts (e.g., name=path)"
required: false
builder:
description: "Builder instance"
required: false
cache-from:
description: "List of external cache sources for buildx (eg. user/app:cache, type=local,src=path/to/dir)"
description: "List of external cache sources for buildx (e.g., user/app:cache, type=local,src=path/to/dir)"
required: false
cache-to:
description: "List of cache export destinations for buildx (eg. user/app:cache, type=local,dest=path/to/dir)"
description: "List of cache export destinations for buildx (e.g., user/app:cache, type=local,dest=path/to/dir)"
required: false
call:
description: "Set method for evaluating build (e.g., check)"
required: false
cgroup-parent:
description: "Optional parent cgroup for the container used in the build"
required: false
context:
description: "Build's context is the set of files located in the specified PATH or URL"
@@ -42,25 +60,40 @@ inputs:
description: "Do not use cache when building the image"
required: false
default: 'false'
no-cache-filters:
description: "Do not cache specified stages"
required: false
outputs:
description: "List of output destinations (format: type=local,dest=path)"
required: false
platforms:
description: "List of target platforms for build"
required: false
provenance:
description: "Generate provenance attestation for the build (shorthand for --attest=type=provenance)"
required: false
pull:
description: "Always attempt to pull a newer version of the image"
description: "Always attempt to pull all referenced images"
required: false
default: 'false'
push:
description: "Push is a shorthand for --output=type=registry"
required: false
default: 'false'
sbom:
description: "Generate SBOM attestation for the build (shorthand for --attest=type=sbom)"
required: false
secrets:
description: "List of secrets to expose to the build (eg. key=string, GIT_AUTH_TOKEN=mytoken)"
description: "List of secrets to expose to the build (e.g., key=string, GIT_AUTH_TOKEN=mytoken)"
required: false
secret-envs:
description: "List of secret env vars to expose to the build (e.g., key=envname, MY_SECRET=MY_ENV_VAR)"
required: false
secret-files:
description: "List of secret files to expose to the build (eg. key=filename, MY_SECRET=./secret.txt)"
description: "List of secret files to expose to the build (e.g., key=filename, MY_SECRET=./secret.txt)"
required: false
shm-size:
description: "Size of /dev/shm (e.g., 2g)"
required: false
ssh:
description: "List of SSH agent socket or keys to expose to the build"
@@ -71,16 +104,23 @@ inputs:
target:
description: "Sets the target stage to build"
required: false
ulimit:
description: "Ulimit options (e.g., nofile=1024:1024)"
required: false
github-token:
description: "GitHub Token used to authenticate against a repository for Git context"
default: ${{ github.token }}
required: false
outputs:
imageid:
description: 'Image ID'
digest:
description: 'Image content-addressable identifier also called a digest'
description: 'Image digest'
metadata:
description: 'Build result metadata'
runs:
using: 'node12'
main: 'dist/index.js'
post: 'dist/index.js'
using: 'node24'
main: 'dist/index.cjs'
post: 'dist/index.cjs'
+89
View File
@@ -0,0 +1,89 @@
# syntax=docker/dockerfile:1
ARG NODE_VERSION=24
FROM node:${NODE_VERSION}-alpine AS base
RUN apk add --no-cache cpio findutils git rsync
WORKDIR /src
RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/.yarn/cache <<EOT
set -e
corepack enable
yarn --version
yarn config set --home enableTelemetry 0
EOT
FROM base AS deps
RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/.yarn/cache \
--mount=type=cache,target=/src/node_modules \
yarn install && mkdir /vendor && cp yarn.lock /vendor
FROM scratch AS vendor-update
COPY --from=deps /vendor /
FROM deps AS vendor-validate
RUN --mount=type=bind,target=.,rw <<EOT
set -e
git add -A
cp -rf /vendor/* .
if [ -n "$(git status --porcelain -- yarn.lock)" ]; then
echo >&2 'ERROR: Vendor result differs. Please vendor your package with "docker buildx bake vendor"'
git status --porcelain -- yarn.lock
exit 1
fi
EOT
FROM deps AS build
RUN --mount=target=/context \
--mount=type=cache,target=/src/.yarn/cache \
--mount=type=cache,target=/src/node_modules <<EOT
set -e
rsync -a /context/. .
rm -rf dist
yarn run build
mkdir /out
cp -r dist /out
EOT
FROM scratch AS build-update
COPY --from=build /out /
FROM build AS build-validate
RUN --mount=target=/context \
--mount=target=.,type=tmpfs <<EOT
set -e
rsync -a /context/. .
git add -A
rm -rf dist
cp -rf /out/* .
if [ -n "$(git status --porcelain -- dist)" ]; then
echo >&2 'ERROR: Build result differs. Please build first with "docker buildx bake build"'
git status --porcelain -- dist
exit 1
fi
EOT
FROM deps AS format
RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/.yarn/cache \
--mount=type=cache,target=/src/node_modules \
yarn run format && mkdir /out && find . -name '*.ts' -not -path './node_modules/*' -not -path './.yarn/*' | cpio -pdm /out
FROM scratch AS format-update
COPY --from=format /out /
FROM deps AS lint
RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/.yarn/cache \
--mount=type=cache,target=/src/node_modules \
yarn run lint
FROM deps AS test
RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/.yarn/cache \
--mount=type=cache,target=/src/node_modules \
yarn run test --coverage --coverage.reportsDirectory=/tmp/coverage
FROM scratch AS test-coverage
COPY --from=test /tmp/coverage /
Generated Vendored
+443
View File
@@ -0,0 +1,443 @@
var Int=Object.create;var nH=Object.defineProperty;var Snt=Object.getOwnPropertyDescriptor;var Bnt=Object.getOwnPropertyNames;var vnt=Object.getPrototypeOf,xnt=Object.prototype.hasOwnProperty;var _nt=(t,e)=>()=>(t&&(e=t(t=0)),e);var A=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),bpe=(t,e)=>{for(var r in e)nH(t,r,{get:e[r],enumerable:!0})},Rnt=(t,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Bnt(e))!xnt.call(t,n)&&n!==r&&nH(t,n,{get:()=>e[n],enumerable:!(i=Snt(e,n))||i.enumerable});return t};var q=(t,e,r)=>(r=t!=null?Int(vnt(t)):{},Rnt(e||!t||!t.__esModule?nH(r,"default",{value:t,enumerable:!0}):r,t));var xpe=A($0=>{"use strict";var tBr=require("net"),knt=require("tls"),uH=require("http"),Spe=require("https"),Qnt=require("events"),rBr=require("assert"),Lnt=require("util");$0.httpOverHttp=Fnt;$0.httpsOverHttp=Mnt;$0.httpOverHttps=Unt;$0.httpsOverHttps=qnt;function Fnt(t){var e=new od(t);return e.request=uH.request,e}function Mnt(t){var e=new od(t);return e.request=uH.request,e.createSocket=Bpe,e.defaultPort=443,e}function Unt(t){var e=new od(t);return e.request=Spe.request,e}function qnt(t){var e=new od(t);return e.request=Spe.request,e.createSocket=Bpe,e.defaultPort=443,e}function od(t){var e=this;e.options=t||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||uH.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on("free",function(i,n,s,o){for(var a=vpe(n,s,o),c=0,l=e.requests.length;c<l;++c){var u=e.requests[c];if(u.host===a.host&&u.port===a.port){e.requests.splice(c,1),u.request.onSocket(i);return}}i.destroy(),e.removeSocket(i)})}Lnt.inherits(od,Qnt.EventEmitter);od.prototype.addRequest=function(e,r,i,n){var s=this,o=fH({request:e},s.options,vpe(r,i,n));if(s.sockets.length>=this.maxSockets){s.requests.push(o);return}s.createSocket(o,function(a){a.on("free",c),a.on("close",l),a.on("agentRemove",l),e.onSocket(a);function c(){s.emit("free",a,o)}function l(u){s.removeSocket(a),a.removeListener("free",c),a.removeListener("close",l),a.removeListener("agentRemove",l)}})};od.prototype.createSocket=function(e,r){var i=this,n={};i.sockets.push(n);var s=fH({},i.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(s.localAddress=e.localAddress),s.proxyAuth&&(s.headers=s.headers||{},s.headers["Proxy-Authorization"]="Basic "+new Buffer(s.proxyAuth).toString("base64")),rm("making CONNECT request");var o=i.request(s);o.useChunkedEncodingByDefault=!1,o.once("response",a),o.once("upgrade",c),o.once("connect",l),o.once("error",u),o.end();function a(f){f.upgrade=!0}function c(f,h,d){process.nextTick(function(){l(f,h,d)})}function l(f,h,d){if(o.removeAllListeners(),h.removeAllListeners(),f.statusCode!==200){rm("tunneling socket could not be established, statusCode=%d",f.statusCode),h.destroy();var p=new Error("tunneling socket could not be established, statusCode="+f.statusCode);p.code="ECONNRESET",e.request.emit("error",p),i.removeSocket(n);return}if(d.length>0){rm("got illegal response body from proxy"),h.destroy();var p=new Error("got illegal response body from proxy");p.code="ECONNRESET",e.request.emit("error",p),i.removeSocket(n);return}return rm("tunneling connection has established"),i.sockets[i.sockets.indexOf(n)]=h,r(h)}function u(f){o.removeAllListeners(),rm(`tunneling socket could not be established, cause=%s
`,f.message,f.stack);var h=new Error("tunneling socket could not be established, cause="+f.message);h.code="ECONNRESET",e.request.emit("error",h),i.removeSocket(n)}};od.prototype.removeSocket=function(e){var r=this.sockets.indexOf(e);if(r!==-1){this.sockets.splice(r,1);var i=this.requests.shift();i&&this.createSocket(i,function(n){i.request.onSocket(n)})}};function Bpe(t,e){var r=this;od.prototype.createSocket.call(r,t,function(i){var n=t.request.getHeader("host"),s=fH({},r.options,{socket:i,servername:n?n.replace(/:.*$/,""):t.host}),o=knt.connect(0,s);r.sockets[r.sockets.indexOf(i)]=o,e(o)})}function vpe(t,e,r){return typeof t=="string"?{host:t,port:e,localAddress:r}:t}function fH(t){for(var e=1,r=arguments.length;e<r;++e){var i=arguments[e];if(typeof i=="object")for(var n=Object.keys(i),s=0,o=n.length;s<o;++s){var a=n[s];i[a]!==void 0&&(t[a]=i[a])}}return t}var rm;process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)?rm=function(){var t=Array.prototype.slice.call(arguments);typeof t[0]=="string"?t[0]="TUNNEL: "+t[0]:t.unshift("TUNNEL:"),console.error.apply(console,t)}:rm=function(){};$0.debug=rm});var OB=A((nBr,_pe)=>{_pe.exports=xpe()});var li=A((sBr,Rpe)=>{Rpe.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kBody:Symbol("abstracted request body"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kResume:Symbol("resume"),kOnError:Symbol("on error"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size"),kHTTP2Session:Symbol("http2Session"),kHTTP2SessionState:Symbol("http2Session state"),kRetryHandlerDefaultRetry:Symbol("retry agent default retry"),kConstruct:Symbol("constructable"),kListeners:Symbol("listeners"),kHTTPContext:Symbol("http context"),kMaxConcurrentStreams:Symbol("max concurrent streams"),kNoProxyAgent:Symbol("no proxy agent"),kHttpProxyAgent:Symbol("http proxy agent"),kHttpsProxyAgent:Symbol("https proxy agent")}});var Ar=A((oBr,eme)=>{"use strict";var Tpe=Symbol.for("undici.error.UND_ERR"),ui=class extends Error{constructor(e){super(e),this.name="UndiciError",this.code="UND_ERR"}static[Symbol.hasInstance](e){return e&&e[Tpe]===!0}[Tpe]=!0},Npe=Symbol.for("undici.error.UND_ERR_CONNECT_TIMEOUT"),hH=class extends ui{constructor(e){super(e),this.name="ConnectTimeoutError",this.message=e||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}static[Symbol.hasInstance](e){return e&&e[Npe]===!0}[Npe]=!0},Dpe=Symbol.for("undici.error.UND_ERR_HEADERS_TIMEOUT"),dH=class extends ui{constructor(e){super(e),this.name="HeadersTimeoutError",this.message=e||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}static[Symbol.hasInstance](e){return e&&e[Dpe]===!0}[Dpe]=!0},Ope=Symbol.for("undici.error.UND_ERR_HEADERS_OVERFLOW"),pH=class extends ui{constructor(e){super(e),this.name="HeadersOverflowError",this.message=e||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}static[Symbol.hasInstance](e){return e&&e[Ope]===!0}[Ope]=!0},Ppe=Symbol.for("undici.error.UND_ERR_BODY_TIMEOUT"),mH=class extends ui{constructor(e){super(e),this.name="BodyTimeoutError",this.message=e||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}static[Symbol.hasInstance](e){return e&&e[Ppe]===!0}[Ppe]=!0},kpe=Symbol.for("undici.error.UND_ERR_RESPONSE_STATUS_CODE"),AH=class extends ui{constructor(e,r,i,n){super(e),this.name="ResponseStatusCodeError",this.message=e||"Response Status Code Error",this.code="UND_ERR_RESPONSE_STATUS_C Line truncated
`)||t.includes("\r")||t.includes("\0"))===!1}function iat(t,e){let{headersList:r}=e,i=(r.get("referrer-policy",!0)??"").split(","),n="";if(i.length>0)for(let s=i.length;s!==0;s--){let o=i[s-1].trim();if(qot.has(o)){n=o;break}}n!==""&&(t.referrerPolicy=n)}function nat(){return"allowed"}function sat(){return"success"}function oat(){return"success"}function aat(t){let e=null;e=t.mode,t.headersList.set("sec-fetch-mode",e,!0)}function cat(t){let e=t.origin;if(!(e==="client"||e===void 0)){if(t.responseTainting==="cors"||t.mode==="websocket")t.headersList.append("origin",e,!0);else if(t.method!=="GET"&&t.method!=="HEAD"){switch(t.referrerPolicy){case"no-referrer":e=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":t.origin&&a6(t.origin)&&!a6(GB(t))&&(e=null);break;case"same-origin":G2(t,GB(t))||(e=null);break;default:}t.headersList.append("origin",e,!0)}}}function ib(t,e){return t}function lat(t,e,r){return!t?.startTime||t.startTime<e?{domainLookupStartTime:e,domainLookupEndTime:e,connectionStartTime:e,connectionEndTime:e,secureConnectionStartTime:e,ALPNNegotiatedProtocol:t?.ALPNNegotiatedProtocol}:{domainLookupStartTime:ib(t.domainLookupStartTime,r),domainLookupEndTime:ib(t.domainLookupEndTime,r),connectionStartTime:ib(t.connectionStartTime,r),connectionEndTime:ib(t.connectionEndTime,r),secureConnectionStartTime:ib(t.secureConnectionStartTime,r),ALPNNegotiatedProtocol:t.ALPNNegotiatedProtocol}}function uat(t){return ib(Vot.now(),t)}function fat(t){return{startTime:t.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:t.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function pAe(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function hat(t){return{referrerPolicy:t.referrerPolicy}}function dat(t){let e=t.referrerPolicy;Sg(e);let r=null;if(t.referrer==="client"){let a=cAe();if(!a||a.origin==="null")return"no-referrer";r=new URL(a)}else t.referrer instanceof URL&&(r=t.referrer);let i=o6(r),n=o6(r,!0);i.toString().length>4096&&(i=n);let s=G2(t,i),o=qB(i)&&!qB(t.url);switch(e){case"origin":return n??o6(r,!0);case"unsafe-url":return i;case"same-origin":return s?n:"no-referrer";case"origin-when-cross-origin":return s?i:n;case"strict-origin-when-cross-origin":{let a=GB(t);return G2(i,a)?i:qB(i)&&!qB(a)?"no-referrer":n}default:return o?"no-referrer":n}}function o6(t,e){return Sg(t instanceof URL),t=new URL(t),t.protocol==="file:"||t.protocol==="about:"||t.protocol==="blank:"?"no-referrer":(t.username="",t.password="",t.hash="",e&&(t.pathname="",t.search=""),t)}function qB(t){if(!(t instanceof URL))return!1;if(t.href==="about:blank"||t.href==="about:srcdoc"||t.protocol==="data:"||t.protocol==="file:")return!0;return e(t.origin);function e(r){if(r==null||r==="null")return!1;let i=new URL(r);return!!(i.protocol==="https:"||i.protocol==="wss:"||/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(i.hostname)||i.hostname==="localhost"||i.hostname.includes("localhost.")||i.hostname.endsWith(".localhost"))}}function pat(t,e){if(q2===void 0)return!0;let r=mAe(e);if(r==="no metadata"||r.length===0)return!0;let i=Aat(r),n=gat(r,i);for(let s of n){let o=s.algo,a=s.hash,c=q2.createHash(o).update(t).digest("base64");if(c[c.length-1]==="="&&(c[c.length-2]==="="?c=c.slice(0,-2):c=c.slice(0,-1)),yat(c,a))return!0}return!1}var mat=/(?<algo>sha256|sha384|sha512)-((?<hash>[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i;function mAe(t){let e=[],r=!0;for(let i of t.split(" ")){r=!1;let n=mat.exec(i);if(n===null||n.groups===void 0||n.groups.algo===void 0)continue;let s=n.groups.algo.toLowerCase();uAe.includes(s)&&e.push(n.groups)}return r===!0?"no metadata":e}function Aat(t){let e=t[0].algo;if(e[3]==="5")return e;for(let r=1;r<t.length;++r){let i=t[r];if(i.algo[3]==="5"){e="sha512";break}else{if(e[3]==="3")continue;i.algo[3]==="3"&&(e="sha384")}}return e}function gat(t,e){if(t.length===1)return t;let r=0;for(let i=0;i<t.length;++i)t[i].algo===e&&(t[r++]=t[i]);return t.length=r,t}function yat(t,e){if(t.length!==e.length)return!1;for(let r=0;r<t.length;++r)if(t[r]!==e[r]){if(t[r]==="+"&&e[r]==="-"||t[r]==="/"&&e[r]==="_")continue;return!1}return!0}function Eat(t){}function G2(t,e){return t.origin===e.origin&&t.origin==="null"||t.protocol===e.protocol&&t.hostname===e.hostname&&t.port===e.port}function bat(){let t,e;return{promise:new Promise((i,n)=>{t=i,e=n}),resolve:t,reject:e}}function wat(t){return t.controller.state==="aborted"}function Cat(t){return t.controller.state==="aborted"||t.controller.state==="terminated"}function Iat(t){return Jot[t.toLowerCase()]??t}function Sat(t){let e=JSON.stringify(t);if(e===void 0)throw new TypeError("Value is not JSON serializable");return Sg(typeof e=="string"),e}var Bat=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function AAe(t,e,r=0,i=1){class n{ Line truncated
`);function tct(t){for(let e=0;e<t.length;++e)if((t.charCodeAt(e)&-128)!==0)return!1;return!0}function rct(t){let e=t.length;if(e<27||e>70)return!1;for(let r=0;r<e;++r){let i=t.charCodeAt(r);if(!(i>=48&&i<=57||i>=65&&i<=90||i>=97&&i<=122||i===39||i===45||i===95))return!1}return!0}function ict(t,e){j2(e!=="failure"&&e.essence==="multipart/form-data");let r=e.parameters.get("boundary");if(r===void 0)return"failure";let i=Buffer.from(`--${r}`,"utf8"),n=[],s={position:0};for(;t[s.position]===13&&t[s.position+1]===10;)s.position+=2;let o=t.length;for(;t[o-1]===10&&t[o-2]===13;)o-=2;for(o!==t.length&&(t=t.subarray(0,o));;){if(t.subarray(s.position,s.position+i.length).equals(i))s.position+=i.length;else return"failure";if(s.position===t.length-2&&z2(t,Zat,s)||s.position===t.length-4&&z2(t,ect,s))return n;if(t[s.position]!==13||t[s.position+1]!==10)return"failure";s.position+=2;let a=nct(t,s);if(a==="failure")return"failure";let{name:c,filename:l,contentType:u,encoding:f}=a;s.position+=2;let h;{let p=t.indexOf(i.subarray(2),s.position);if(p===-1)return"failure";h=t.subarray(s.position,p-4),s.position+=h.length,f==="base64"&&(h=Buffer.from(h.toString(),"base64"))}if(t[s.position]!==13||t[s.position+1]!==10)return"failure";s.position+=2;let d;l!==null?(u??="text/plain",tct(u)||(u=""),d=new Kat([h],l,{type:u})):d=Vat(Buffer.from(h)),j2(_Ae(c)),j2(typeof d=="string"&&_Ae(d)||Wat(d)),n.push(Jat(c,d,l))}}function nct(t,e){let r=null,i=null,n=null,s=null;for(;;){if(t[e.position]===13&&t[e.position+1]===10)return r===null?"failure":{name:r,filename:i,contentType:n,encoding:s};let o=sb(a=>a!==10&&a!==13&&a!==58,t,e);if(o=p6(o,!0,!0,a=>a===9||a===32),!$at.test(o.toString())||t[e.position]!==58)return"failure";switch(e.position++,sb(a=>a===32||a===9,t,e),zat(o)){case"content-disposition":{if(r=i=null,!z2(t,Xat,e)||(e.position+=17,r=NAe(t,e),r===null))return"failure";if(z2(t,TAe,e)){let a=e.position+TAe.length;if(t[a]===42&&(e.position+=1,a+=1),t[a]!==61||t[a+1]!==34||(e.position+=12,i=NAe(t,e),i===null))return"failure"}break}case"content-type":{let a=sb(c=>c!==10&&c!==13,t,e);a=p6(a,!1,!0,c=>c===9||c===32),n=RAe(a);break}case"content-transfer-encoding":{let a=sb(c=>c!==10&&c!==13,t,e);a=p6(a,!1,!0,c=>c===9||c===32),s=RAe(a);break}default:sb(a=>a!==10&&a!==13,t,e)}if(t[e.position]!==13&&t[e.position+1]!==10)return"failure";e.position+=2}}function NAe(t,e){j2(t[e.position-1]===34);let r=sb(i=>i!==10&&i!==13&&i!==34,t,e);return t[e.position]!==34?null:(e.position++,r=new TextDecoder().decode(r).replace(/%0A/ig,`
`).replace(/%0D/ig,"\r").replace(/%22/g,'"'),r)}function sb(t,e,r){let i=r.position;for(;i<e.length&&t(e[i]);)++i;return e.subarray(r.position,r.position=i)}function p6(t,e,r,i){let n=0,s=t.length-1;if(e)for(;n<t.length&&i(t[n]);)n++;if(r)for(;s>0&&i(t[s]);)s--;return n===0&&s===t.length-1?t:t.subarray(n,s+1)}function z2(t,e,r){if(t.length<e.length)return!1;for(let i=0;i<e.length;i++)if(e[i]!==t[r.position+i])return!1;return!0}DAe.exports={multipartFormDataParser:ict,validateBoundary:rct}});var cb=A((NBr,HAe)=>{"use strict";var zB=Ht(),{ReadableStreamFrom:sct,isBlobLike:PAe,isReadableStreamLike:oct,readableStreamClose:act,createDeferredPromise:cct,fullyReadBody:lct,extractMimeType:uct,utf8DecodeBytes:LAe}=ja(),{FormData:kAe}=jB(),{kState:ab}=im(),{webidl:fct}=ws(),{Blob:hct}=require("node:buffer"),m6=require("node:assert"),{isErrored:FAe,isDisturbed:dct}=require("node:stream"),{isArrayBuffer:pct}=require("node:util/types"),{serializeAMimeType:mct}=ca(),{multipartFormDataParser:Act}=OAe(),A6;try{let t=require("node:crypto");A6=e=>t.randomInt(0,e)}catch{A6=t=>Math.floor(Math.random(t))}var V2=new TextEncoder;function gct(){}var MAe=globalThis.FinalizationRegistry&&process.version.indexOf("v18")!==0,UAe;MAe&&(UAe=new FinalizationRegistry(t=>{let e=t.deref();e&&!e.locked&&!dct(e)&&!FAe(e)&&e.cancel("Response object has been garbage collected").catch(gct)}));function qAe(t,e=!1){let r=null;t instanceof ReadableStream?r=t:PAe(t)?r=t.stream():r=new ReadableStream({async pull(c){let l=typeof n=="string"?V2.encode(n):n;l.byteLength&&c.enqueue(l),queueMicrotask(()=>act(c))},start(){},type:"bytes"}),m6(oct(r));let i=null,n=null,s=null,o=null;if(typeof t=="string")n=t,o="text/plain;charset=UTF-8";else if(t instanceof URLSearchParams)n=t.toString(),o="application/x-www-form-urlencoded;charset=UTF-8";else if(pct(t))n=new Uint8Array(t.slice());else if(ArrayBuffer.isView(t))n=new Uint8Array(t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength));else if(zB.isFormDataLike(t)){let c=`----formdata-undici-0${`${A6(1e11)}`.padStart(11,"0")}`,l=`--${c}\r
Content-Disposition: form-data`;let u=y=>y.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),f=y=>y.replace(/\r?\n|\r/g,`\r
`),h=[],d=new Uint8Array([13,10]);s=0;let p=!1;for(let[y,g]of t)if(typeof g=="string"){let E=V2.encode(l+`; name="${u(f(y))}"\r
\r
${f(g)}\r
`);h.push(E),s+=E.byteLength}else{let E=V2.encode(`${l}; name="${u(f(y))}"`+(g.name?`; filename="${u(g.name)}"`:"")+`\r
Content-Type: ${g.type||"application/octet-stream"}\r
\r
`);h.push(E,g,d),typeof g.size=="number"?s+=E.byteLength+g.size+d.byteLength:p=!0}let m=V2.encode(`--${c}--\r
`);h.push(m),s+=m.byteLength,p&&(s=null),n=t,i=async function*(){for(let y of h)y.stream?yield*y.stream():yield y},o=`multipart/form-data; boundary=${c}`}else if(PAe(t))n=t,s=t.size,t.type&&(o=t.type);else if(typeof t[Symbol.asyncIterator]=="function"){if(e)throw new TypeError("keepalive");if(zB.isDisturbed(t)||t.locked)throw new TypeError("Response body object should not be disturbed or locked");r=t instanceof ReadableStream?t:sct(t)}if((typeof n=="string"||zB.isBuffer(n))&&(s=Buffer.byteLength(n)),i!=null){let c;r=new ReadableStream({async start(){c=i(t)[Symbol.asyncIterator]()},async pull(l){let{value:u,done:f}=await c.next();if(f)queueMicrotask(()=>{l.close(),l.byobRequest?.respond(0)});else if(!FAe(r)){let h=new Uint8Array(u);h.byteLength&&l.enqueue(h)}return l.desiredSize>0},async cancel(l){await c.return()},type:"bytes"})}return[{stream:r,source:n,length:s},o]}function yct(t,e=!1){return t instanceof ReadableStream&&(m6(!zB.isDisturbed(t),"The body has already been consumed."),m6(!t.locked,"The stream is locked.")),qAe(t,e)}function Ect(t,e){let[r,i]=e.stream.tee();return e.stream=r,{stream:i,length:e.length,source:e.source}}function bct(t){if(t.aborted)throw new DOMException("The operation was aborted.","AbortError")}function wct(t){return{blob(){return ob(this,r=>{let i=QAe(this);return i===null?i="":i&&(i=mct(i)),new hct([r],{type:i})},t)},arrayBuffer(){return ob(this,r=>new Uint8Array(r).buffer,t)},text(){return ob(this,LAe,t)},json(){return ob(this,Ict,t)},formData(){return ob(this,r=>{let i=QAe(this);if(i!==null)switch(i.essence){case"multipart/form-data":{let n=Act(r,i);if(n==="failure")throw new TypeError("Failed to parse body as FormData.");let s=new kAe;return s[ab]=n,s}case"application/x-www-form-urlencoded":{let n=new URLSearchParams(r.toString()),s=new kAe;for(let[o,a]of n)s.append(o,a);return s}}throw new TypeError('Content-Type was not one of "multipart/form-data" or "application/x-www-form-urlencoded".')},t)},bytes(){return ob(this,r=>new Uint8Array(r),t)}}}function Cct(t){Object.assign(t.prototype,wct(t))}async function ob(t,e,r){if(fct.brandCheck(t,r),GAe(t))throw new TypeError("Body is unusable: Body has already been read");bct(t[ab]);let i=cct(),n=o=>i.reject(o),s=o=>{try{i.resolve(e(o))}catch(a){n(a)}};return t[ab].body==null?(s(Buffer.allocUnsafe(0)),i.promise):(await lct(t[ab].body,s,n),i.promise)}function GAe(t){let e=t[ab].body;return e!=null&&(e.stream.locked||zB.isDisturbed(e.stream))}function Ict(t){return JSON.parse(LAe(t))}function QAe(t){let e=t[ab].headersList,r=uct(e);return r==="failure"?null:r}HAe.exports={extractBody:qAe,safelyExtractBody:yct,cloneBody:Ect,mixinBody:Cct,streamRegistry:UAe,hasFinalizationRegistry:MAe,bodyUnusable:GAe}});var ege=A((DBr,ZAe)=>{"use strict";var ft=require("node:assert"),wt=Ht(),{channels:jAe}=J0(),g6=XH(),{RequestContentLengthMismatchError:Bg,ResponseContentLengthMismatchError:Sct,RequestAbortedError:YAe,HeadersTimeoutError:Bct,HeadersOverflowError:vct,SocketError:X2,InformationalError:lb,BodyTimeoutError:xct,HTTPParserError:_ct,ResponseExceededMaxSizeError:Rct}=Ar(),{kUrl:KAe,kReset:la,kClient:w6,kParser:_i,kBlocking:WB,kRunning:Us,kPending:Tct,kSize:zAe,kWriting:sm,kQueue:Kl,kNoRef:VB,kKeepAliveDefaultTimeout:Nct,kHostHeader:Dct,kPendingIdx:Oct,kRunningIdx:Gc,kError:Hc,kPipelining:Y2,kSocket:ub,kKeepAliveTimeoutValue:Z2,kMaxHeadersSize:y6,kKeepAliveMaxTimeout:Pct,kKeepAliveTimeoutThreshold:kct,kHeadersTimeout:Qct,kBodyTimeout:Lct,kStrictContentLength:C6,kMaxRequests:VAe,kCounter:Fct,kMaxResponseSize:Mct,kOnError:Uct,kResume:nm,kHTTPContext:XAe}=li(),Yu=Ume(),qct=Buffer.alloc(0),$2=Buffer[Symbol.species],W2=wt.addListener,Gct=wt.removeAllListeners,E6;async function Hct(){let t=process.env.JEST_WORKER_ID?t6():void 0,e;try{e=await WebAssembly.compile(Hme())}catch{e=await WebAssembly.compile(t||t6())}return await WebAssembly.instantiate(e,{env:{wasm_on_url:(r,i,n)=>0,wasm_on_status:(r,i,n)=>{ft(_n.ptr===r);let s=i-Xu+Ku.byteOffset;return _n.onStatus(new $2(Ku.buffer,s,n))||0},wasm_on_message_begin:r=>(ft(_n.ptr===r),_n.onMessageBegin()||0),wasm_on_header_field:(r,i,n)=>{ft(_n.ptr===r);let s=i-Xu+Ku.byteOffset;return _n.onHeaderField(new $2(Ku.buffer,s,n))||0},wasm_on_header_value:(r,i,n)=>{ft(_n.ptr===r);let s=i-Xu+Ku.byteOffset;return _n.onHeaderValue(new $2(Ku.buffer,s,n))||0},wasm_on_headers_complete:(r,i,n,s)=>(ft(_n.ptr===r),_n.onHeadersComplete(i,!!n,!!s)||0),wasm_on_body:(r,i,n)=>{ft(_n.ptr===r);let s=i-Xu+Ku.byteOffset;return _n.onBody(new $2(Ku.buffer,s,n))||0},wasm_on_message_complete:r=>(ft(_n.ptr===r),_n.onMessageComplete()||0)}})}var b6=null,I6=Hct();I6.catch();var _n=null,Ku=null,J2=0,Xu=null,jct=0,$B=1,fb=2|$B,K2=4|$B,S6=8|jct,B6=class{constructor(e,r,{exports:i}){ft(Number.isFinite(e[y6])&&e[y6]>0),this.llhttp=i,this.ptr=this.llhttp.llhttp_alloc(Yu.TYPE.RESPONSE),this.client=e,this.socket=r,this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.statusCode=null,this.statusText="",this.upgrade=!1,this.headers= Line truncated
`;if(typeof n=="string"?m+=`host: ${n}\r
`:m+=t[Dct],s?m+=`connection: upgrade\r
upgrade: ${s}\r
`:t[Y2]&&!d[la]?m+=`connection: keep-alive\r
`:m+=`connection: close\r
`,Array.isArray(l))for(let y=0;y<l.length;y+=2){let g=l[y+0],E=l[y+1];if(Array.isArray(E))for(let w=0;w<E.length;w++)m+=`${g}: ${E[w]}\r
`;else m+=`${g}: ${E}\r
`}return jAe.sendHeaders.hasSubscribers&&jAe.sendHeaders.publish({request:e,headers:m,socket:d}),!c||h===0?WAe(p,null,t,e,d,u,m,f):wt.isBuffer(c)?WAe(p,c,t,e,d,u,m,f):wt.isBlobLike(c)?typeof c.stream=="function"?JAe(p,c.stream(),t,e,d,u,m,f):Yct(p,c,t,e,d,u,m,f):wt.isStream(c)?Jct(p,c,t,e,d,u,m,f):wt.isIterable(c)?JAe(p,c,t,e,d,u,m,f):ft(!1),!0}function Jct(t,e,r,i,n,s,o,a){ft(s!==0||r[Us]===0,"stream body cannot be pipelined");let c=!1,l=new eD({abort:t,socket:n,request:i,contentLength:s,client:r,expectsPayload:a,header:o}),u=function(p){if(!c)try{!l.write(p)&&this.pause&&this.pause()}catch(m){wt.destroy(this,m)}},f=function(){c||e.resume&&e.resume()},h=function(){if(queueMicrotask(()=>{e.removeListener("error",d)}),!c){let p=new YAe;queueMicrotask(()=>d(p))}},d=function(p){if(!c){if(c=!0,ft(n.destroyed||n[sm]&&r[Us]<=1),n.off("drain",f).off("error",d),e.removeListener("data",u).removeListener("end",d).removeListener("close",h),!p)try{l.end()}catch(m){p=m}l.destroy(p),p&&(p.code!=="UND_ERR_INFO"||p.message!=="reset")?wt.destroy(e,p):wt.destroy(e)}};e.on("data",u).on("end",d).on("error",d).on("close",h),e.resume&&e.resume(),n.on("drain",f).on("error",d),e.errorEmitted??e.errored?setImmediate(()=>d(e.errored)):(e.endEmitted??e.readableEnded)&&setImmediate(()=>d(null)),(e.closeEmitted??e.closed)&&setImmediate(h)}function WAe(t,e,r,i,n,s,o,a){try{e?wt.isBuffer(e)&&(ft(s===e.byteLength,"buffer body must have content length"),n.cork(),n.write(`${o}content-length: ${s}\r
\r
`,"latin1"),n.write(e),n.uncork(),i.onBodySent(e),!a&&i.reset!==!1&&(n[la]=!0)):s===0?n.write(`${o}content-length: 0\r
\r
`,"latin1"):(ft(s===null,"no body must not have content length"),n.write(`${o}\r
`,"latin1")),i.onRequestSent(),r[nm]()}catch(c){t(c)}}async function Yct(t,e,r,i,n,s,o,a){ft(s===e.size,"blob body must have content length");try{if(s!=null&&s!==e.size)throw new Bg;let c=Buffer.from(await e.arrayBuffer());n.cork(),n.write(`${o}content-length: ${s}\r
\r
`,"latin1"),n.write(c),n.uncork(),i.onBodySent(c),i.onRequestSent(),!a&&i.reset!==!1&&(n[la]=!0),r[nm]()}catch(c){t(c)}}async function JAe(t,e,r,i,n,s,o,a){ft(s!==0||r[Us]===0,"iterator body cannot be pipelined");let c=null;function l(){if(c){let h=c;c=null,h()}}let u=()=>new Promise((h,d)=>{ft(c===null),n[Hc]?d(n[Hc]):c=h});n.on("close",l).on("drain",l);let f=new eD({abort:t,socket:n,request:i,contentLength:s,client:r,expectsPayload:a,header:o});try{for await(let h of e){if(n[Hc])throw n[Hc];f.write(h)||await u()}f.end()}catch(h){f.destroy(h)}finally{n.off("close",l).off("drain",l)}}var eD=class{constructor({abort:e,socket:r,request:i,contentLength:n,client:s,expectsPayload:o,header:a}){this.socket=r,this.request=i,this.contentLength=n,this.client=s,this.bytesWritten=0,this.expectsPayload=o,this.header=a,this.abort=e,r[sm]=!0}write(e){let{socket:r,request:i,contentLength:n,client:s,bytesWritten:o,expectsPayload:a,header:c}=this;if(r[Hc])throw r[Hc];if(r.destroyed)return!1;let l=Buffer.byteLength(e);if(!l)return!0;if(n!==null&&o+l>n){if(s[C6])throw new Bg;process.emitWarning(new Bg)}r.cork(),o===0&&(!a&&i.reset!==!1&&(r[la]=!0),n===null?r.write(`${c}transfer-encoding: chunked\r
`,"latin1"):r.write(`${c}content-length: ${n}\r
\r
`,"latin1")),n===null&&r.write(`\r
${l.toString(16)}\r
`,"latin1"),this.bytesWritten+=l;let u=r.write(e);return r.uncork(),i.onBodySent(e),u||r[_i].timeout&&r[_i].timeoutType===fb&&r[_i].timeout.refresh&&r[_i].timeout.refresh(),u}end(){let{socket:e,contentLength:r,client:i,bytesWritten:n,expectsPayload:s,header:o,request:a}=this;if(a.onRequestSent(),e[sm]=!1,e[Hc])throw e[Hc];if(!e.destroyed){if(n===0?s?e.write(`${o}content-length: 0\r
\r
`,"latin1"):e.write(`${o}\r
`,"latin1"):r===null&&e.write(`\r
0\r
\r
`,"latin1"),r!==null&&n!==r){if(i[C6])throw new Bg;process.emitWarning(new Bg)}e[_i].timeout&&e[_i].timeoutType===fb&&e[_i].timeout.refresh&&e[_i].timeout.refresh(),i[nm]()}}destroy(e){let{socket:r,client:i,abort:n}=this;r[sm]=!1,e&&(ft(i[Us]<=1,"pipeline should only contain this request"),n(e))}};ZAe.exports=zct});var cge=A((OBr,age)=>{"use strict";var jc=require("node:assert"),{pipeline:Kct}=require("node:stream"),Kt=Ht(),{RequestContentLengthMismatchError:v6,RequestAbortedError:tge,SocketError:JB,InformationalError:x6}=Ar(),{kUrl:tD,kReset:iD,kClient:hb,kRunning:nD,kPending:Xct,kQueue:om,kPendingIdx:_6,kRunningIdx:Xl,kError:eu,kSocket:jn,kStrictContentLength:Zct,kOnError:R6,kMaxConcurrentStreams:oge,kHTTP2Session:Zl,kResume:am,kSize:elt,kHTTPContext:tlt}=li(),hd=Symbol("open streams"),rge,ige=!1,rD;try{rD=require("node:http2")}catch{rD={constants:{}}}var{constants:{HTTP2_HEADER_AUTHORITY:rlt,HTTP2_HEADER_METHOD:ilt,HTTP2_HEADER_PATH:nlt,HTTP2_HEADER_SCHEME:slt,HTTP2_HEADER_CONTENT_LENGTH:olt,HTTP2_HEADER_EXPECT:alt,HTTP2_HEADER_STATUS:clt}}=rD;function llt(t){let e=[];for(let[r,i]of Object.entries(t))if(Array.isArray(i))for(let n of i)e.push(Buffer.from(r),Buffer.from(n));else e.push(Buffer.from(r),Buffer.from(i));return e}async function ult(t,e){t[jn]=e,ige||(ige=!0,process.emitWarning("H2 support is experimental, expect them to change at any time.",{code:"UNDICI-H2"}));let r=rD.connect(t[tD],{createConnection:()=>e,peerMaxConcurrentStreams:t[oge]});r[hd]=0,r[hb]=t,r[jn]=e,Kt.addListener(r,"error",hlt),Kt.addListener(r,"frameError",dlt),Kt.addListener(r,"end",plt),Kt.addListener(r,"goaway",mlt),Kt.addListener(r,"close",function(){let{[hb]:n}=this,{[jn]:s}=n,o=this[jn][eu]||this[eu]||new JB("closed",Kt.getSocketInfo(s));if(n[Zl]=null,n.destroyed){jc(n[Xct]===0);let a=n[om].splice(n[Xl]);for(let c=0;c<a.length;c++){let l=a[c];Kt.errorRequest(n,l,o)}}}),r.unref(),t[Zl]=r,e[Zl]=r,Kt.addListener(e,"error",function(n){jc(n.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[eu]=n,this[hb][R6](n)}),Kt.addListener(e,"end",function(){Kt.destroy(this,new JB("other side closed",Kt.getSocketInfo(this)))}),Kt.addListener(e,"close",function(){let n=this[eu]||new JB("closed",Kt.getSocketInfo(this));t[jn]=null,this[Zl]!=null&&this[Zl].destroy(n),t[_6]=t[Xl],jc(t[nD]===0),t.emit("disconnect",t[tD],[t],n),t[am]()});let i=!1;return e.on("close",()=>{i=!0}),{version:"h2",defaultPipelining:1/0,write(...n){return glt(t,...n)},resume(){flt(t)},destroy(n,s){i?queueMicrotask(s):e.destroy(n).on("close",s)},get destroyed(){return e.destroyed},busy(){return!1}}}function flt(t){let e=t[jn];e?.destroyed===!1&&(t[elt]===0&&t[oge]===0?(e.unref(),t[Zl].unref()):(e.ref(),t[Zl].ref()))}function hlt(t){jc(t.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[jn][eu]=t,this[hb][R6](t)}function dlt(t,e,r){if(r===0){let i=new x6(`HTTP/2: "frameError" received - type ${t}, code ${e}`);this[jn][eu]=i,this[hb][R6](i)}}function plt(){let t=new JB("other side closed",Kt.getSocketInfo(this[jn]));this.destroy(t),Kt.destroy(this[jn],t)}function mlt(t){let e=this[eu]||new JB(`HTTP/2: "GOAWAY" frame received with code ${t}`,Kt.getSocketInfo(this)),r=this[hb];if(r[jn]=null,r[tlt]=null,this[Zl]!=null&&(this[Zl].destroy(e),this[Zl]=null),Kt.destroy(this[jn],e),r[Xl]<r[om].length){let i=r[om][r[Xl]];r[om][r[Xl]++]=null,Kt.errorRequest(r,i,e),r[_6]=r[Xl]}jc(r[nD]===0),r.emit("disconnect",r[tD],[r],e),r[am]()}function Alt(t){return t!=="GET"&&t!=="HEAD"&&t!=="OPTIONS"&&t!=="TRACE"&&t!=="CONNECT"}function glt(t,e){let r=t[Zl],{method:i,path:n,host:s,upgrade:o,expectContinue:a,signal:c,headers:l}=e,{body:u}=e;if(o)return Kt.errorRequest(t,e,new Error("Upgrade not supported for H2")),!1;let f={};for(let C=0;C<l.length;C+=2){let N=l[C+0],F=l[C+1];if(Array.isArray(F))for(let x=0;x<F.length;x++)f[N]?f[N]+=`,${F[x]}`:f[N]=F[x];else f[N]=F}let h,{hostname:d,port:p}=t[tD];f[rlt]=s||`${d}${p?`:${p}`:""}`,f[ilt]=i;let m=C=>{e.aborted||e.completed||(C=C||new tge,Kt.errorRequest(t,e,C),h!=null&&Kt.destroy(h,C),Kt.destroy(u,C),t[om][t[Xl]++]=null,t[am]())};try{e.onConnect(m)}catch(C){Kt.errorRequest(t,e,C)}if(e.aborted)return!1;if(i==="CONNECT")return r.ref(),h=r.request(f,{endStream:!1,signal:c}),h.id&&!h.pending?(e.onUpgrade(null,null,h),++r[hd],t[om][t[Xl]++]=null):h.once("ready",()=>{e.onUpgrade(null,null,h),++r[hd],t[om][t[Xl]++]=null}),h.once("close",()=>{r[hd]-=1,r[hd]===0&&r.unref()}),!0;f[nlt]=n,f[slt]="https";let y=i==="PUT"||i==="POST"||i==="PATCH";u&&typeof u.read=="function"&&u.read(0);let g=Kt.bodyLength(u);if(Kt.isFormDataLike(u)){rge??=cb().extractBody;let[C,N]=rge(u);f["content-type"]=N,u=C.stream,g=C.length}if(g==null&&(g=e.contentLength),(g===0||!y)&&(g=null),Alt(i)&&g>0&&e.contentLength!=null&&e.contentLength!==g){if(t[Zct])return Kt.errorRequest(t,e,new v6),!1;process.emitWarning(new v6)}g!=null&&(jc(u,"no body must not have content length"),f[olt]=`${g}`),r.ref();let E=i==="GET"||i==="HEAD"||u===null;return a?(f[alt]="100-continue",h=r.request(f,{endStream:E,signa Line truncated
`,this[Hlt]=c??3e5,this[Glt]=n??3e5,this[jlt]=E??!0,this[zlt]=C,this[O6]=F,this[lm]=null,this[Ylt]=M>-1?M:-1,this[Xlt]=k??100,this[Wi]=null,this[tu]=[],this[pd]=0,this[ru]=0,this[ZB]=z=>k6(this,z),this[Klt]=z=>bge(this,z)}get pipelining(){return this[cD]}set pipelining(e){this[cD]=e,this[ZB](!0)}get[rv](){return this[tu].length-this[ru]}get[tv](){return this[ru]-this[pd]}get[ev](){return this[tu].length-this[pd]}get[klt](){return!!this[Wi]&&!this[pb]&&!this[Wi].destroyed}get[D6](){return!!(this[Wi]?.busy(null)||this[ev]>=(Ege(this)||1)||this[rv]>0)}[Plt](e){wge(this),this.once("connect",e)}[Jlt](e,r){let i=e.origin||this[ef].origin,n=new _lt(i,e,r);return this[tu].push(n),this[xg]||(vg.bodyLength(n.body)==null&&vg.isIterable(n.body)?(this[xg]=1,queueMicrotask(()=>k6(this))):this[ZB](!0)),this[xg]&&this[um]!==2&&this[D6]&&(this[um]=2),this[um]<2}async[$lt](){return new Promise(e=>{this[ev]?this[lm]=e:e(null)})}async[Wlt](e){return new Promise(r=>{let i=this[tu].splice(this[ru]);for(let s=0;s<i.length;s++){let o=i[s];vg.errorRequest(this,o,e)}let n=()=>{this[lm]&&(this[lm](),this[lm]=null),r(null)};this[Wi]?(this[Wi].destroy(e,n),this[Wi]=null):queueMicrotask(n),this[ZB]()})}},tut=aD();function bge(t,e){if(t[tv]===0&&e.code!=="UND_ERR_INFO"&&e.code!=="UND_ERR_SOCKET"){dd(t[ru]===t[pd]);let r=t[tu].splice(t[pd]);for(let i=0;i<r.length;i++){let n=r[i];vg.errorRequest(t,n,e)}dd(t[ev]===0)}}async function wge(t){dd(!t[pb]),dd(!t[Wi]);let{host:e,hostname:r,protocol:i,port:n}=t[ef];if(r[0]==="["){let s=r.indexOf("]");dd(s!==-1);let o=r.substring(1,s);dd(yge.isIP(o)),r=o}t[pb]=!0,db.beforeConnect.hasSubscribers&&db.beforeConnect.publish({connectParams:{host:e,hostname:r,protocol:i,port:n,version:t[Wi]?.version,servername:t[cm],localAddress:t[XB]},connector:t[KB]});try{let s=await new Promise((o,a)=>{t[KB]({host:e,hostname:r,protocol:i,port:n,servername:t[cm],localAddress:t[XB]},(c,l)=>{c?a(c):o(l)})});if(t.destroyed){vg.destroy(s.on("error",Age),new Nlt);return}dd(s);try{t[Wi]=s.alpnProtocol==="h2"?await eut(t,s):await Zlt(t,s)}catch(o){throw s.destroy().on("error",Age),o}t[pb]=!1,s[Vlt]=0,s[O6]=t[O6],s[Olt]=t,s[Llt]=null,db.connected.hasSubscribers&&db.connected.publish({connectParams:{host:e,hostname:r,protocol:i,port:n,version:t[Wi]?.version,servername:t[cm],localAddress:t[XB]},connector:t[KB],socket:s}),t.emit("connect",t[ef],[t])}catch(s){if(t.destroyed)return;if(t[pb]=!1,db.connectError.hasSubscribers&&db.connectError.publish({connectParams:{host:e,hostname:r,protocol:i,port:n,version:t[Wi]?.version,servername:t[cm],localAddress:t[XB]},connector:t[KB],error:s}),s.code==="ERR_TLS_CERT_ALTNAME_INVALID")for(dd(t[tv]===0);t[rv]>0&&t[tu][t[ru]].servername===t[cm];){let o=t[tu][t[ru]++];vg.errorRequest(t,o,s)}else bge(t,s);t.emit("connectionError",t[ef],[t],s)}t[ZB]()}function gge(t){t[um]=0,t.emit("drain",t[ef],[t])}function k6(t,e){t[xg]!==2&&(t[xg]=2,rut(t,e),t[xg]=0,t[pd]>256&&(t[tu].splice(0,t[pd]),t[ru]-=t[pd],t[pd]=0))}function rut(t,e){for(;;){if(t.destroyed){dd(t[rv]===0);return}if(t[lm]&&!t[ev]){t[lm](),t[lm]=null;return}if(t[Wi]&&t[Wi].resume(),t[D6])t[um]=2;else if(t[um]===2){e?(t[um]=1,queueMicrotask(()=>gge(t))):gge(t);continue}if(t[rv]===0||t[tv]>=(Ege(t)||1))return;let r=t[tu][t[ru]];if(t[ef].protocol==="https:"&&t[cm]!==r.servername){if(t[tv]>0)return;t[cm]=r.servername,t[Wi]?.destroy(new Tlt("servername changed"),()=>{t[Wi]=null,k6(t)})}if(t[pb])return;if(!t[Wi]){wge(t);return}if(t[Wi].destroyed||t[Wi].busy(r))return;!r.aborted&&t[Wi].write(r)?t[ru]++:t[tu].splice(t[ru],1)}}Cge.exports=P6});var Q6=A((FBr,Ige)=>{"use strict";var lD=class{constructor(){this.bottom=0,this.top=0,this.list=new Array(2048),this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(e){this.list[this.top]=e,this.top=this.top+1&2047}shift(){let e=this.list[this.bottom];return e===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,e)}};Ige.exports=class{constructor(){this.head=this.tail=new lD}isEmpty(){return this.head.isEmpty()}push(e){this.head.isFull()&&(this.head=this.head.next=new lD),this.head.push(e)}shift(){let e=this.tail,r=e.shift();return e.isEmpty()&&e.next!==null&&(this.tail=e.next),r}}});var Bge=A((MBr,Sge)=>{var{kFree:iut,kConnected:nut,kPending:sut,kQueued:out,kRunning:aut,kSize:cut}=li(),_g=Symbol("pool"),L6=class{constructor(e){this[_g]=e}get connected(){return this[_g][nut]}get free(){return this[_g][iut]}get pending(){return this[_g][sut]}get queued(){return this[_g][out]}get running(){return this[_g][aut]}get size(){return this[_g][cut]}};Sge.exports=L6});var H6=A((UBr,kge)=>{"use strict";var lut=Z0(),uut=Q6(),{kConnected:F6,kSize:vge,kRunning:xge,kPending:_ge,kQueued:iv,kBusy:fut,kFree:hut,kUrl:dut,kClose:put,kDestroy:mut,kDispatch:Aut}=li(),gut=Bge(),ua=Symbol("clients"),wo=Symbol("needDrain"),nv=Symbol("queue"),M6=Symbol("closed resolve"),U6=Symbol("onDrain"),Rge=Symbol("onConnect"),Tge=Symbol("onDisconnect"),Nge=Symbol("onConnec Line truncated
${i.count} ${i.noun} ${i.is} pending:
${e.format(r)}
`.trim())}};qEe.exports=Hj});var xD=A((pvr,VEe)=>{"use strict";var HEe=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:Hht}=Ar(),jht=gb();zEe()===void 0&&jEe(new jht);function jEe(t){if(!t||typeof t.dispatch!="function")throw new Hht("Argument agent must implement Agent");Object.defineProperty(globalThis,HEe,{value:t,writable:!0,enumerable:!1,configurable:!1})}function zEe(){return globalThis[HEe]}VEe.exports={setGlobalDispatcher:jEe,getGlobalDispatcher:zEe}});var _D=A((Avr,$Ee)=>{"use strict";$Ee.exports=class{#e;constructor(e){if(typeof e!="object"||e===null)throw new TypeError("handler must be an object");this.#e=e}onConnect(...e){return this.#e.onConnect?.(...e)}onError(...e){return this.#e.onError?.(...e)}onUpgrade(...e){return this.#e.onUpgrade?.(...e)}onResponseStarted(...e){return this.#e.onResponseStarted?.(...e)}onHeaders(...e){return this.#e.onHeaders?.(...e)}onData(...e){return this.#e.onData?.(...e)}onComplete(...e){return this.#e.onComplete?.(...e)}onBodySent(...e){return this.#e.onBodySent?.(...e)}}});var JEe=A((gvr,WEe)=>{"use strict";var zht=oD();WEe.exports=t=>{let e=t?.maxRedirections;return r=>function(n,s){let{maxRedirections:o=e,...a}=n;if(!o)return r(n,s);let c=new zht(r,o,n,s);return r(a,c)}}});var KEe=A((yvr,YEe)=>{"use strict";var Vht=gD();YEe.exports=t=>e=>function(i,n){return e(i,new Vht({...i,retryOptions:{...t,...i.retryOptions}},{handler:n,dispatch:e}))}});var ZEe=A((Evr,XEe)=>{"use strict";var $ht=Ht(),{InvalidArgumentError:Wht,RequestAbortedError:Jht}=Ar(),Yht=_D(),jj=class extends Yht{#e=1024*1024;#t=null;#i=!1;#r=!1;#n=0;#c=null;#f=null;constructor({maxSize:e},r){if(super(r),e!=null&&(!Number.isFinite(e)||e<1))throw new Wht("maxSize must be a number greater than 0");this.#e=e??this.#e,this.#f=r}onConnect(e){this.#t=e,this.#f.onConnect(this.#u.bind(this))}#u(e){this.#r=!0,this.#c=e}onHeaders(e,r,i,n){let o=$ht.parseHeaders(r)["content-length"];if(o!=null&&o>this.#e)throw new Jht(`Response size (${o}) larger than maxSize (${this.#e})`);return this.#r?!0:this.#f.onHeaders(e,r,i,n)}onError(e){this.#i||(e=this.#c??e,this.#f.onError(e))}onData(e){return this.#n=this.#n+e.length,this.#n>=this.#e&&(this.#i=!0,this.#r?this.#f.onError(this.#c):this.#f.onComplete([])),!0}onComplete(e){if(!this.#i){if(this.#r){this.#f.onError(this.reason);return}this.#f.onComplete(e)}}};function Kht({maxSize:t}={maxSize:1024*1024}){return e=>function(i,n){let{dumpMaxSize:s=t}=i,o=new jj({maxSize:s},n);return e(i,o)}}XEe.exports=Kht});var r0e=A((bvr,t0e)=>{"use strict";var{isIP:Xht}=require("node:net"),{lookup:Zht}=require("node:dns"),edt=_D(),{InvalidArgumentError:xb,InformationalError:tdt}=Ar(),e0e=Math.pow(2,31)-1,zj=class{#e=0;#t=0;#i=new Map;dualStack=!0;affinity=null;lookup=null;pick=null;constructor(e){this.#e=e.maxTTL,this.#t=e.maxItems,this.dualStack=e.dualStack,this.affinity=e.affinity,this.lookup=e.lookup??this.#r,this.pick=e.pick??this.#n}get full(){return this.#i.size===this.#t}runLookup(e,r,i){let n=this.#i.get(e.hostname);if(n==null&&this.full){i(null,e.origin);return}let s={affinity:this.affinity,dualStack:this.dualStack,lookup:this.lookup,pick:this.pick,...r.dns,maxTTL:this.#e,maxItems:this.#t};if(n==null)this.lookup(e,s,(o,a)=>{if(o||a==null||a.length===0){i(o??new tdt("No DNS entries found"));return}this.setRecords(e,a);let c=this.#i.get(e.hostname),l=this.pick(e,c,s.affinity),u;typeof l.port=="number"?u=`:${l.port}`:e.port!==""?u=`:${e.port}`:u="",i(null,`${e.protocol}//${l.family===6?`[${l.address}]`:l.address}${u}`)});else{let o=this.pick(e,n,s.affinity);if(o==null){this.#i.delete(e.hostname),this.runLookup(e,r,i);return}let a;typeof o.port=="number"?a=`:${o.port}`:e.port!==""?a=`:${e.port}`:a="",i(null,`${e.protocol}//${o.family===6?`[${o.address}]`:o.address}${a}`)}}#r(e,r,i){Zht(e.hostname,{all:!0,family:this.dualStack===!1?this.affinity:0,order:"ipv4first"},(n,s)=>{if(n)return i(n);let o=new Map;for(let a of s)o.set(`${a.address}:${a.family}`,a);i(null,o.values())})}#n(e,r,i){let n=null,{records:s,offset:o}=r,a;if(this.dualStack?(i==null&&(o==null||o===e0e?(r.offset=0,i=4):(r.offset++,i=(r.offset&1)===1?6:4)),s[i]!=null&&s[i].ips.length>0?a=s[i]:a=s[i===4?6:4]):a=s[i],a==null||a.ips.length===0)return n;a.offset==null||a.offset===e0e?a.offset=0:a.offset++;let c=a.offset%a.ips.length;return n=a.ips[c]??null,n==null?n:Date.now()-n.timestamp>n.ttl?(a.ips.splice(c,1),this.pick(e,r,i)):n}setRecords(e,r){let i=Date.now(),n={records:{4:null,6:null}};for(let s of r){s.timestamp=i,typeof s.ttl=="number"?s.ttl=Math.min(s.ttl,this.#e):s.ttl=this.#e;let o=n.records[s.family]??{ips:[]};o.ips.push(s),n.records[s.family]=o}this.#i.set(e.hostname,n)}getHandler(e,r){return new Vj(this,e,r)}},Vj=class extends edt{#e=null;#t=null;#i=null;#r=null;#n=null;constructor(e,{origin:r,handler:i,dispatch:n},s){super(i),this.#n=r,this.#r=i,this.#t={...s},this.#e=e,this.#i=n}onError(e){switch(e.code){case"ETIMEDOUT":case"ECONNREFUSED":{if(this.#e.dualStack){this.#e.runLookup(this.#n,this.#t,( Line truncated
${s}`;break;case"retry":kwe(s)&&(r[n]=s);break;case"id":Qwe(s)&&(r[n]=s);break;case"event":s.length>0&&(r[n]=s);break}}processEvent(e){e.retry&&kwe(e.retry)&&(this.state.reconnectionTime=parseInt(e.retry,10)),e.id&&Qwe(e.id)&&(this.state.lastEventId=e.id),e.data!==void 0&&this.push({type:e.event||"message",options:{data:e.data,lastEventId:this.state.lastEventId,origin:this.state.origin}})}clearEvent(){this.event={data:void 0,event:void 0,id:void 0,retry:void 0}}};Lwe.exports={EventSourceStream:Nz}});var Vwe=A((Kvr,zwe)=>{"use strict";var{pipeline:fgt}=require("node:stream"),{fetching:hgt}=gv(),{makeRequest:dgt}=Tb(),{webidl:Ed}=ws(),{EventSourceStream:pgt}=Fwe(),{parseMIMEType:mgt}=ca(),{createFastMessageEvent:Agt}=Qb(),{isNetworkError:Mwe}=mv(),{delay:ggt}=Rz(),{kEnumerableProperty:Hg}=Ht(),{environmentSettingsObject:Uwe}=ja(),qwe=!1,Gwe=3e3,Tv=0,Hwe=1,Nv=2,ygt="anonymous",Egt="use-credentials",qb=class t extends EventTarget{#e={open:null,error:null,message:null};#t=null;#i=!1;#r=Tv;#n=null;#c=null;#f;#u;constructor(e,r={}){super(),Ed.util.markAsUncloneable(this);let i="EventSource constructor";Ed.argumentLengthCheck(arguments,1,i),qwe||(qwe=!0,process.emitWarning("EventSource is experimental, expect them to change at any time.",{code:"UNDICI-ES"})),e=Ed.converters.USVString(e,i,"url"),r=Ed.converters.EventSourceInitDict(r,i,"eventSourceInitDict"),this.#f=r.dispatcher,this.#u={lastEventId:"",reconnectionTime:Gwe};let n=Uwe,s;try{s=new URL(e,n.settingsObject.baseUrl),this.#u.origin=s.origin}catch(c){throw new DOMException(c,"SyntaxError")}this.#t=s.href;let o=ygt;r.withCredentials&&(o=Egt,this.#i=!0);let a={redirect:"follow",keepalive:!0,mode:"cors",credentials:o==="anonymous"?"same-origin":"omit",referrer:"no-referrer"};a.client=Uwe.settingsObject,a.headersList=[["accept",{name:"accept",value:"text/event-stream"}]],a.cache="no-store",a.initiator="other",a.urlList=[new URL(this.#t)],this.#n=dgt(a),this.#a()}get readyState(){return this.#r}get url(){return this.#t}get withCredentials(){return this.#i}#a(){if(this.#r===Nv)return;this.#r=Tv;let e={request:this.#n,dispatcher:this.#f},r=i=>{Mwe(i)&&(this.dispatchEvent(new Event("error")),this.close()),this.#l()};e.processResponseEndOfBody=r,e.processResponse=i=>{if(Mwe(i))if(i.aborted){this.close(),this.dispatchEvent(new Event("error"));return}else{this.#l();return}let n=i.headersList.get("content-type",!0),s=n!==null?mgt(n):"failure",o=s!=="failure"&&s.essence==="text/event-stream";if(i.status!==200||o===!1){this.close(),this.dispatchEvent(new Event("error"));return}this.#r=Hwe,this.dispatchEvent(new Event("open")),this.#u.origin=i.urlList[i.urlList.length-1].origin;let a=new pgt({eventSourceSettings:this.#u,push:c=>{this.dispatchEvent(Agt(c.type,c.options))}});fgt(i.body.stream,a,c=>{c?.aborted===!1&&(this.close(),this.dispatchEvent(new Event("error")))})},this.#c=hgt(e)}async#l(){this.#r!==Nv&&(this.#r=Tv,this.dispatchEvent(new Event("error")),await ggt(this.#u.reconnectionTime),this.#r===Tv&&(this.#u.lastEventId.length&&this.#n.headersList.set("last-event-id",this.#u.lastEventId,!0),this.#a()))}close(){Ed.brandCheck(this,t),this.#r!==Nv&&(this.#r=Nv,this.#c.abort(),this.#n=null)}get onopen(){return this.#e.open}set onopen(e){this.#e.open&&this.removeEventListener("open",this.#e.open),typeof e=="function"?(this.#e.open=e,this.addEventListener("open",e)):this.#e.open=null}get onmessage(){return this.#e.message}set onmessage(e){this.#e.message&&this.removeEventListener("message",this.#e.message),typeof e=="function"?(this.#e.message=e,this.addEventListener("message",e)):this.#e.message=null}get onerror(){return this.#e.error}set onerror(e){this.#e.error&&this.removeEventListener("error",this.#e.error),typeof e=="function"?(this.#e.error=e,this.addEventListener("error",e)):this.#e.error=null}},jwe={CONNECTING:{__proto__:null,configurable:!1,enumerable:!0,value:Tv,writable:!1},OPEN:{__proto__:null,configurable:!1,enumerable:!0,value:Hwe,writable:!1},CLOSED:{__proto__:null,configurable:!1,enumerable:!0,value:Nv,writable:!1}};Object.defineProperties(qb,jwe);Object.defineProperties(qb.prototype,jwe);Object.defineProperties(qb.prototype,{close:Hg,onerror:Hg,onmessage:Hg,onopen:Hg,readyState:Hg,url:Hg,withCredentials:Hg});Ed.converters.EventSourceInitDict=Ed.dictionaryConverter([{key:"withCredentials",converter:Ed.converters.boolean,defaultValue:()=>!1},{key:"dispatcher",converter:Ed.converters.any}]);zwe.exports={EventSource:qb,defaultReconnectionTime:Gwe}});var jg=A((Xvr,pt)=>{"use strict";var bgt=mb(),$we=kB(),wgt=Ab(),Cgt=jge(),Igt=gb(),Sgt=rj(),Bgt=pye(),vgt=bye(),Wwe=Ar(),mO=Ht(),{InvalidArgumentError:pO}=Wwe,Gb=oEe(),xgt=LB(),_gt=Lj(),Rgt=GEe(),Tgt=Uj(),Ngt=Sj(),Dgt=gD(),{getGlobalDispatcher:Jwe,setGlobalDispatcher:Ogt}=xD(),Pgt=_D(),kgt=oD(),Qgt=aD();Object.assign($we.prototype,Gb);pt.exports.Dispatcher=$we;pt.exports.Client=bgt;pt.exports.Pool=wgt;pt.exports.BalancedPool=Cgt;pt.exports.Agent=Igt;pt.exports.ProxyAgent=Sgt;pt.exports.EnvHttpProxyAgent=Bgt;pt.e Line truncated
%s`,N,N,E,i);var F=E.type==="*"?qV:E.type==="?"?UV:"\\"+E.type;n=!0,i=i.slice(0,E.reStart)+F+"\\("+N}p(),s&&(i+="\\\\");var x=!1;switch(i.charAt(0)){case"[":case".":case"(":x=!0}for(var M=a.length-1;M>-1;M--){var P=a[M],V=i.slice(0,P.reStart),k=i.slice(P.reStart,P.reEnd-8),H=i.slice(P.reEnd-8,P.reEnd),z=i.slice(P.reEnd);H+=z;var ie=V.split("(").length-1,ne=z;for(m=0;m<ie;m++)ne=ne.replace(/\)[+*?]?/,"");z=ne;var we="";z===""&&e!==UO&&(we="$");var K=V+k+z+we+H;i=K}if(i!==""&&n&&(i="(?=.)"+i),x&&(i=h+i),e===UO)return[i,n];if(!n)return cwt(t);var ce=r.nocase?"i":"";try{var Ee=new RegExp("^"+i+"$",ce)}catch{return new RegExp("$.")}return Ee._glob=t,Ee._src=i,Ee}rc.makeRe=function(t,e){return new yn(t,e||{}).makeRe()};yn.prototype.makeRe=awt;function awt(){if(this.regexp||this.regexp===!1)return this.regexp;var t=this.set;if(!t.length)return this.regexp=!1,this.regexp;var e=this.options,r=e.noglobstar?qV:e.dot?Zbt:ewt,i=e.nocase?"i":"",n=t.map(function(s){return s.map(function(o){return o===Zg?r:typeof o=="string"?lwt(o):o._src}).join("\\/")}).join("|");n="^(?:"+n+")$",this.negate&&(n="^(?!"+n+").*$");try{this.regexp=new RegExp(n,i)}catch{this.regexp=!1}return this.regexp}rc.match=function(t,e,r){r=r||{};var i=new yn(e,r);return t=t.filter(function(n){return i.match(n)}),i.options.nonull&&!t.length&&t.push(e),t};yn.prototype.match=function(e,r){if(typeof r>"u"&&(r=this.partial),this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return e==="";if(e==="/"&&r)return!0;var i=this.options;rx.sep!=="/"&&(e=e.split(rx.sep).join("/")),e=e.split(rBe),this.debug(this.pattern,"split",e);var n=this.set;this.debug(this.pattern,"set",n);var s,o;for(o=e.length-1;o>=0&&(s=e[o],!s);o--);for(o=0;o<n.length;o++){var a=n[o],c=e;i.matchBase&&a.length===1&&(c=[s]);var l=this.matchOne(c,a,r);if(l)return i.flipNegate?!0:!this.negate}return i.flipNegate?!1:this.negate};yn.prototype.matchOne=function(t,e,r){return e.indexOf(Zg)!==-1?this._matchGlobstar(t,e,r,0,0):this._matchOne(t,e,r,0,0)};yn.prototype._matchGlobstar=function(t,e,r,i,n){var s,o=-1;for(s=n;s<e.length;s++)if(e[s]===Zg){o=s;break}var a=-1;for(s=e.length-1;s>=0;s--)if(e[s]===Zg){a=s;break}var c=e.slice(n,o),l=r?e.slice(o+1):e.slice(o+1,a),u=r?[]:e.slice(a+1);if(c.length){var f=t.slice(i,i+c.length);if(!this._matchOne(f,c,r,0,0))return!1;i+=c.length}var h=0;if(u.length){if(u.length+i>t.length)return!1;var d=t.length-u.length;if(this._matchOne(t,u,r,d,0))h=u.length;else{if(t[t.length-1]!==""||i+u.length===t.length||(d--,!this._matchOne(t,u,r,d,0)))return!1;h=u.length+1}}if(!l.length){var p=!!h;for(s=i;s<t.length-h;s++){var m=String(t[s]);if(p=!0,m==="."||m===".."||!this.options.dot&&m.charAt(0)===".")return!1}return r||p}for(var y=[[[],0]],g=y[0],E=0,w=[0],C=0;C<l.length;C++){var N=l[C];N===Zg?(w.push(E),g=[[],0],y.push(g)):(g[0].push(N),E++)}for(var F=y.length-1,x=t.length-h,M=0;M<y.length;M++)y[M][1]=x-(w[F--]+y[M][0].length);return!!this._matchGlobStarBodySections(t,y,i,0,r,0,!!h)};yn.prototype._matchGlobStarBodySections=function(t,e,r,i,n,s,o){var a=e[i];if(!a){for(var c=r;c<t.length;c++){o=!0;var l=t[c];if(l==="."||l===".."||!this.options.dot&&l.charAt(0)===".")return!1}return o}for(var u=a[0],f=a[1];r<=f;){var h=this._matchOne(t.slice(0,r+u.length),u,n,r,0);if(h&&s<this.maxGlobstarRecursion){var d=this._matchGlobStarBodySections(t,e,r+u.length,i+1,n,s+1,o);if(d!==!1)return d}var l=t[r];if(l==="."||l===".."||!this.options.dot&&l.charAt(0)===".")return!1;r++}return n||null};yn.prototype._matchOne=function(t,e,r,i,n){var s,o,a,c;for(s=i,o=n,a=t.length,c=e.length;s<a&&o<c;s++,o++){this.debug("matchOne loop");var l=e[o],u=t[s];if(this.debug(e,l,u),l===!1||l===Zg)return!1;var f;if(typeof l=="string"?(f=u===l,this.debug("string match",l,u,f)):(f=u.match(l),this.debug("pattern match",l,u,f)),!f)return!1}if(s===a&&o===c)return!0;if(s===a)return r;if(o===c)return s===a-1&&t[s]==="";throw new Error("wtf?")};function cwt(t){return t.replace(/\\(.)/g,"$1")}function lwt(t){return t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}});var sx=A((vTr,lBe)=>{"use strict";var gwt="2.0.0",ywt=Number.MAX_SAFE_INTEGER||9007199254740991,Ewt=16,bwt=250,wwt=["major","premajor","minor","preminor","patch","prepatch","prerelease"];lBe.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:Ewt,MAX_SAFE_BUILD_LENGTH:bwt,MAX_SAFE_INTEGER:ywt,RELEASE_TYPES:wwt,SEMVER_SPEC_VERSION:gwt,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var ox=A((xTr,uBe)=>{"use strict";var Cwt=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};uBe.exports=Cwt});var Zb=A((uf,fBe)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:HV,MAX_SAFE_BUILD_LENGTH:Iwt,MAX_LENGTH:Swt}=sx(),Bwt=ox();uf=fBe.exports={};var vwt=uf.re=[],xwt=uf.safeRe=[],ke=uf.src=[],_wt=uf.safeSrc=[],Qe=uf.t={},Rwt=0,jV="[a-zA-Z0-9-]",Twt=[["\\s",1],["\\d",Swt],[jV,Iwt]],Nwt=t=>{for(let[e,r]of Twt)t=t.split(`${e}*`).join(`${e}{0,${r}}`).split(`${e}+`).join(`${Line truncated
`).join(`
`+s),t.push(n+"m+"+_P.exports.humanize(this.diff)+"\x1B[0m")}else t[0]=tBt()+e+" "+t[0]}function tBt(){return Ss.inspectOpts.hideDate?"":new Date().toISOString()+" "}function rBt(...t){return process.stderr.write(xP.format(...t)+`
`)}function iBt(t){t?process.env.DEBUG=t:delete process.env.DEBUG}function nBt(){return process.env.DEBUG}function sBt(t){t.inspectOpts={};let e=Object.keys(Ss.inspectOpts);for(let r=0;r<e.length;r++)t.inspectOpts[e[r]]=Ss.inspectOpts[e[r]]}_P.exports=R9()(Ss);var{formatters:zxe}=_P.exports;zxe.o=function(t){return this.inspectOpts.colors=this.useColors,xP.inspect(t,this.inspectOpts).split(`
`).map(e=>e.trim()).join(" ")};zxe.O=function(t){return this.inspectOpts.colors=this.useColors,xP.inspect(t,this.inspectOpts)}});var uy=A((H1r,O9)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?O9.exports=Uxe():O9.exports=Vxe()});var Jxe=A(ma=>{"use strict";var oBt=ma&&ma.__createBinding||(Object.create?(function(t,e,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(e,r);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,i,n)}):(function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]})),aBt=ma&&ma.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),$xe=ma&&ma.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&oBt(e,t,r);return aBt(e,t),e};Object.defineProperty(ma,"__esModule",{value:!0});ma.req=ma.json=ma.toBuffer=void 0;var cBt=$xe(require("http")),lBt=$xe(require("https"));async function Wxe(t){let e=0,r=[];for await(let i of t)e+=i.length,r.push(i);return Buffer.concat(r,e)}ma.toBuffer=Wxe;async function uBt(t){let r=(await Wxe(t)).toString("utf8");try{return JSON.parse(r)}catch(i){let n=i;throw n.message+=` (input: ${r})`,n}}ma.json=uBt;function fBt(t,e={}){let i=((typeof t=="string"?t:t.href).startsWith("https:")?lBt:cBt).request(t,e),n=new Promise((s,o)=>{i.once("response",s).once("error",o).end()});return i.then=n.then.bind(n),i}ma.req=fBt});var Zxe=A(oc=>{"use strict";var Kxe=oc&&oc.__createBinding||(Object.create?(function(t,e,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(e,r);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,i,n)}):(function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]})),hBt=oc&&oc.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),Xxe=oc&&oc.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&Kxe(e,t,r);return hBt(e,t),e},dBt=oc&&oc.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&Kxe(e,t,r)};Object.defineProperty(oc,"__esModule",{value:!0});oc.Agent=void 0;var pBt=Xxe(require("net")),Yxe=Xxe(require("http")),mBt=require("https");dBt(Jxe(),oc);var df=Symbol("AgentBaseInternalState"),P9=class extends Yxe.Agent{constructor(e){super(e),this[df]={}}isSecureEndpoint(e){if(e){if(typeof e.secureEndpoint=="boolean")return e.secureEndpoint;if(typeof e.protocol=="string")return e.protocol==="https:"}let{stack:r}=new Error;return typeof r!="string"?!1:r.split(`
`).some(i=>i.indexOf("(https.js:")!==-1||i.indexOf("node:https:")!==-1)}incrementSockets(e){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;this.sockets[e]||(this.sockets[e]=[]);let r=new pBt.Socket({writable:!1});return this.sockets[e].push(r),this.totalSocketCount++,r}decrementSockets(e,r){if(!this.sockets[e]||r===null)return;let i=this.sockets[e],n=i.indexOf(r);n!==-1&&(i.splice(n,1),this.totalSocketCount--,i.length===0&&delete this.sockets[e])}getName(e){return this.isSecureEndpoint(e)?mBt.Agent.prototype.getName.call(this,e):super.getName(e)}createSocket(e,r,i){let n={...r,secureEndpoint:this.isSecureEndpoint(r)},s=this.getName(n),o=this.incrementSockets(s);Promise.resolve().then(()=>this.connect(e,n)).then(a=>{if(this.decrementSockets(s,o),a instanceof Yxe.Agent)try{return a.addRequest(e,n)}catch(c){return i(c)}this[df].currentSocket=a,super.createSocket(e,r,i)},a=>{this.decrementSockets(s,o),i(a)})}createConnection(){let e=this[df].currentSocket;if(this[df].currentSocket=void 0,!e)throw new Error("No socket was returned in the `connect()` function");return e}get defaultPort(){return this[df].defaultPort??(this.protocol==="https:"?443:80)}set defaultPort(e){this[df]&&(this[df].defaultPort=e)}get protocol(){return this[df].protocol??(this.isSecureEndpoint()?"https:":"http:")}set protocol(e){this[df]&&(this[df].protocol=e)}};oc.Agent=P9});var e_e=A(cw=>{"use strict";var ABt=cw&&cw.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(cw,"__esModule",{value:!0});cw.parseProxyResponse=void 0;var gBt=ABt(uy()),RP=(0,gBt.default)("https-proxy-agent:parse-proxy-response");function yBt(t){return new Promise((e,r)=>{let i=0,n=[];function s(){let u=t.read();u?l(u):t.once("readable",s)}function o(){t.removeListener("end",a),t.removeListener("error",c),t.removeListener("readable",s)}function a(){o(),RP("onend"),r(new Error("Proxy connection ended before receiving CONNECT response"))}function c(u){o(),RP("onerror %o",u),r(u)}function l(u){n.push(u),i+=u.length;let f=Buffer.concat(n,i),h=f.indexOf(`\r
\r
`);if(h===-1){RP("have not received end of HTTP headers yet..."),s();return}let d=f.slice(0,h).toString("ascii").split(`\r
`),p=d.shift();if(!p)return t.destroy(),r(new Error("No header received from proxy CONNECT response"));let m=p.split(" "),y=+m[1],g=m.slice(2).join(" "),E={};for(let w of d){if(!w)continue;let C=w.indexOf(":");if(C===-1)return t.destroy(),r(new Error(`Invalid header from proxy CONNECT response: "${w}"`));let N=w.slice(0,C).toLowerCase(),F=w.slice(C+1).trimStart(),x=E[N];typeof x=="string"?E[N]=[x,F]:Array.isArray(x)?x.push(F):E[N]=F}RP("got proxy server response: %o %o",p,E),o(),e({connect:{statusCode:y,statusText:g,headers:E},buffered:f})}t.on("error",c),t.on("end",a),s()})}cw.parseProxyResponse=yBt});var o_e=A(il=>{"use strict";var EBt=il&&il.__createBinding||(Object.create?(function(t,e,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(e,r);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,i,n)}):(function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]})),bBt=il&&il.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),n_e=il&&il.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&EBt(e,t,r);return bBt(e,t),e},s_e=il&&il.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(il,"__esModule",{value:!0});il.HttpsProxyAgent=void 0;var TP=n_e(require("net")),t_e=n_e(require("tls")),wBt=s_e(require("assert")),CBt=s_e(uy()),IBt=Zxe(),SBt=require("url"),BBt=e_e(),bx=(0,CBt.default)("https-proxy-agent"),r_e=t=>t.servername===void 0&&t.host&&!TP.isIP(t.host)?{...t,servername:t.host}:t,NP=class extends IBt.Agent{constructor(e,r){super(r),this.options={path:void 0},this.proxy=typeof e=="string"?new SBt.URL(e):e,this.proxyHeaders=r?.headers??{},bx("Creating new HttpsProxyAgent instance: %o",this.proxy.href);let i=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),n=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={ALPNProtocols:["http/1.1"],...r?i_e(r,"headers"):null,host:i,port:n}}async connect(e,r){let{proxy:i}=this;if(!r.host)throw new TypeError('No "host" provided');let n;i.protocol==="https:"?(bx("Creating `tls.Socket`: %o",this.connectOpts),n=t_e.connect(r_e(this.connectOpts))):(bx("Creating `net.Socket`: %o",this.connectOpts),n=TP.connect(this.connectOpts));let s=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders},o=TP.isIPv6(r.host)?`[${r.host}]`:r.host,a=`CONNECT ${o}:${r.port} HTTP/1.1\r
`;if(i.username||i.password){let h=`${decodeURIComponent(i.username)}:${decodeURIComponent(i.password)}`;s["Proxy-Authorization"]=`Basic ${Buffer.from(h).toString("base64")}`}s.Host=`${o}:${r.port}`,s["Proxy-Connection"]||(s["Proxy-Connection"]=this.keepAlive?"Keep-Alive":"close");for(let h of Object.keys(s))a+=`${h}: ${s[h]}\r
`;let c=(0,BBt.parseProxyResponse)(n);n.write(`${a}\r
`);let{connect:l,buffered:u}=await c;if(e.emit("proxyConnect",l),this.emit("proxyConnect",l,e),l.statusCode===200)return e.once("socket",vBt),r.secureEndpoint?(bx("Upgrading socket connection to TLS"),t_e.connect({...i_e(r_e(r),"host","path","port"),socket:n})):n;n.destroy();let f=new TP.Socket({writable:!1});return f.readable=!0,e.once("socket",h=>{bx("Replaying proxy buffer for failed request"),(0,wBt.default)(h.listenerCount("data")>0),h.push(u),h.push(null)}),f}};NP.protocols=["http","https"];il.HttpsProxyAgent=NP;function vBt(t){t.resume()}function i_e(t,...e){let r={},i;for(i in t)e.includes(i)||(r[i]=t[i]);return r}});var l_e=A(Aa=>{"use strict";var xBt=Aa&&Aa.__createBinding||(Object.create?(function(t,e,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(e,r);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,i,n)}):(function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]})),_Bt=Aa&&Aa.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),a_e=Aa&&Aa.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&xBt(e,t,r);return _Bt(e,t),e};Object.defineProperty(Aa,"__esModule",{value:!0});Aa.req=Aa.json=Aa.toBuffer=void 0;var RBt=a_e(require("http")),TBt=a_e(require("https"));async function c_e(t){let e=0,r=[];for await(let i of t)e+=i.length,r.push(i);return Buffer.concat(r,e)}Aa.toBuffer=c_e;async function NBt(t){let r=(await c_e(t)).toString("utf8");try{return JSON.parse(r)}catch(i){let n=i;throw n.message+=` (input: ${r})`,n}}Aa.json=NBt;function DBt(t,e={}){let i=((typeof t=="string"?t:t.href).startsWith("https:")?TBt:RBt).request(t,e),n=new Promise((s,o)=>{i.once("response",s).once("error",o).end()});return i.then=n.then.bind(n),i}Aa.req=DBt});var wx=A(ac=>{"use strict";var f_e=ac&&ac.__createBinding||(Object.create?(function(t,e,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(e,r);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,i,n)}):(function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]})),OBt=ac&&ac.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),h_e=ac&&ac.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&f_e(e,t,r);return OBt(e,t),e},PBt=ac&&ac.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&f_e(e,t,r)};Object.defineProperty(ac,"__esModule",{value:!0});ac.Agent=void 0;var kBt=h_e(require("net")),u_e=h_e(require("http")),QBt=require("https");PBt(l_e(),ac);var pf=Symbol("AgentBaseInternalState"),k9=class extends u_e.Agent{constructor(e){super(e),this[pf]={}}isSecureEndpoint(e){if(e){if(typeof e.secureEndpoint=="boolean")return e.secureEndpoint;if(typeof e.protocol=="string")return e.protocol==="https:"}let{stack:r}=new Error;return typeof r!="string"?!1:r.split(`
`).some(i=>i.indexOf("(https.js:")!==-1||i.indexOf("node:https:")!==-1)}incrementSockets(e){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;this.sockets[e]||(this.sockets[e]=[]);let r=new kBt.Socket({writable:!1});return this.sockets[e].push(r),this.totalSocketCount++,r}decrementSockets(e,r){if(!this.sockets[e]||r===null)return;let i=this.sockets[e],n=i.indexOf(r);n!==-1&&(i.splice(n,1),this.totalSocketCount--,i.length===0&&delete this.sockets[e])}getName(e){return(typeof e.secureEndpoint=="boolean"?e.secureEndpoint:this.isSecureEndpoint(e))?QBt.Agent.prototype.getName.call(this,e):super.getName(e)}createSocket(e,r,i){let n={...r,secureEndpoint:this.isSecureEndpoint(r)},s=this.getName(n),o=this.incrementSockets(s);Promise.resolve().then(()=>this.connect(e,n)).then(a=>{if(this.decrementSockets(s,o),a instanceof u_e.Agent)return a.addRequest(e,n);this[pf].currentSocket=a,super.createSocket(e,r,i)},a=>{this.decrementSockets(s,o),i(a)})}createConnection(){let e=this[pf].currentSocket;if(this[pf].currentSocket=void 0,!e)throw new Error("No socket was returned in the `connect()` function");return e}get defaultPort(){return this[pf].defaultPort??(this.protocol==="https:"?443:80)}set defaultPort(e){this[pf]&&(this[pf].defaultPort=e)}get protocol(){return this[pf].protocol??(this.isSecureEndpoint()?"https:":"http:")}set protocol(e){this[pf]&&(this[pf].protocol=e)}};ac.Agent=k9});var Q9=A(nl=>{"use strict";var LBt=nl&&nl.__createBinding||(Object.create?(function(t,e,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(e,r);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,i,n)}):(function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]})),FBt=nl&&nl.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),p_e=nl&&nl.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&LBt(e,t,r);return FBt(e,t),e},MBt=nl&&nl.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(nl,"__esModule",{value:!0});nl.HttpProxyAgent=void 0;var UBt=p_e(require("net")),qBt=p_e(require("tls")),GBt=MBt(uy()),HBt=require("events"),jBt=wx(),d_e=require("url"),lw=(0,GBt.default)("http-proxy-agent"),DP=class extends jBt.Agent{constructor(e,r){super(r),this.proxy=typeof e=="string"?new d_e.URL(e):e,this.proxyHeaders=r?.headers??{},lw("Creating new HttpProxyAgent instance: %o",this.proxy.href);let i=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),n=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={...r?zBt(r,"headers"):null,host:i,port:n}}addRequest(e,r){e._header=null,this.setRequestProps(e,r),super.addRequest(e,r)}setRequestProps(e,r){let{proxy:i}=this,n=r.secureEndpoint?"https:":"http:",s=e.getHeader("host")||"localhost",o=`${n}//${s}`,a=new d_e.URL(e.path,o);r.port!==80&&(a.port=String(r.port)),e.path=String(a);let c=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders};if(i.username||i.password){let l=`${decodeURIComponent(i.username)}:${decodeURIComponent(i.password)}`;c["Proxy-Authorization"]=`Basic ${Buffer.from(l).toString("base64")}`}c["Proxy-Connection"]||(c["Proxy-Connection"]=this.keepAlive?"Keep-Alive":"close");for(let l of Object.keys(c)){let u=c[l];u&&e.setHeader(l,u)}}async connect(e,r){e._header=null,e.path.includes("://")||this.setRequestProps(e,r);let i,n;lw("Regenerating stored HTTP header string for request"),e._implicitHeader(),e.outputData&&e.outputData.length>0&&(lw("Patching connection write() output buffer with updated header"),i=e.outputData[0].data,n=i.indexOf(`\r
\r
`)+4,e.outputData[0].data=e._header+i.substring(n),lw("Output buffer: %o",e.outputData[0].data));let s;return this.proxy.protocol==="https:"?(lw("Creating `tls.Socket`: %o",this.connectOpts),s=qBt.connect(this.connectOpts)):(lw("Creating `net.Socket`: %o",this.connectOpts),s=UBt.connect(this.connectOpts)),await(0,HBt.once)(s,"connect"),s}};DP.protocols=["http","https"];nl.HttpProxyAgent=DP;function zBt(t,...e){let r={},i;for(i in t)e.includes(i)||(r[i]=t[i]);return r}});var Q_e=A(VP=>{"use strict";Object.defineProperty(VP,"__esModule",{value:!0});VP.state=void 0;VP.state={instrumenterImplementation:void 0}});var Z_e=A(KP=>{"use strict";Object.defineProperty(KP,"__esModule",{value:!0});KP.state=void 0;KP.state={operationRequestMap:new WeakMap}});var NNe=A(xw=>{"use strict";Object.defineProperty(xw,"__esModule",{value:!0});var fNt=require("os"),hNt=require("util");function dNt(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var pNt=dNt(hNt);function mNt(t,...e){process.stderr.write(`${pNt.default.format(t,...e)}${fNt.EOL}`)}var wNe=typeof process<"u"&&process.env&&process.env.DEBUG||void 0,INe,p7=[],m7=[],AQ=[];wNe&&A7(wNe);var SNe=Object.assign(t=>BNe(t),{enable:A7,enabled:g7,disable:ANt,log:mNt});function A7(t){INe=t,p7=[],m7=[];let e=/\*/g,r=t.split(",").map(i=>i.trim().replace(e,".*?"));for(let i of r)i.startsWith("-")?m7.push(new RegExp(`^${i.substr(1)}$`)):p7.push(new RegExp(`^${i}$`));for(let i of AQ)i.enabled=g7(i.namespace)}function g7(t){if(t.endsWith("*"))return!0;for(let e of m7)if(e.test(t))return!1;for(let e of p7)if(e.test(t))return!0;return!1}function ANt(){let t=INe||"";return A7(""),t}function BNe(t){let e=Object.assign(r,{enabled:g7(t),destroy:gNt,log:SNe.log,namespace:t,extend:yNt});function r(...i){e.enabled&&(i.length>0&&(i[0]=`${t} ${i[0]}`),e.log(...i))}return AQ.push(e),e}function gNt(){let t=AQ.indexOf(this);return t>=0?(AQ.splice(t,1),!0):!1}function yNt(t){let e=BNe(`${this.namespace}:${t}`);return e.log=this.log,e}var c_=SNe,vNe=new Set,pQ=typeof process<"u"&&process.env&&process.env.AZURE_LOG_LEVEL||void 0,gQ,yQ=c_("azure");yQ.log=(...t)=>{c_.log(...t)};var y7=["verbose","info","warning","error"];pQ&&(TNe(pQ)?xNe(pQ):console.error(`AZURE_LOG_LEVEL set to unknown log level '${pQ}'; logging is not enabled. Acceptable values: ${y7.join(", ")}.`));function xNe(t){if(t&&!TNe(t))throw new Error(`Unknown log level '${t}'. Acceptable values: ${y7.join(",")}`);gQ=t;let e=[];for(let r of vNe)RNe(r)&&e.push(r.namespace);c_.enable(e.join(","))}function ENt(){return gQ}var CNe={verbose:400,info:300,warning:200,error:100};function bNt(t){let e=yQ.extend(t);return _Ne(yQ,e),{error:mQ(e,"error"),warning:mQ(e,"warning"),info:mQ(e,"info"),verbose:mQ(e,"verbose")}}function _Ne(t,e){e.log=(...r)=>{t.log(...r)}}function mQ(t,e){let r=Object.assign(t.extend(e),{level:e});if(_Ne(t,r),RNe(r)){let i=c_.disable();c_.enable(i+","+r.namespace)}return vNe.add(r),r}function RNe(t){return!!(gQ&&CNe[t.level]<=CNe[gQ])}function TNe(t){return y7.includes(t)}xw.AzureLogger=yQ;xw.createClientLogger=bNt;xw.getLogLevel=ENt;xw.setLogLevel=xNe});var w7=A(u_=>{"use strict";Object.defineProperty(u_,"__esModule",{value:!0});var _w=new WeakMap,EQ=new WeakMap,l_=class t{constructor(){this.onabort=null,_w.set(this,[]),EQ.set(this,!1)}get aborted(){if(!EQ.has(this))throw new TypeError("Expected `this` to be an instance of AbortSignal.");return EQ.get(this)}static get none(){return new t}addEventListener(e,r){if(!_w.has(this))throw new TypeError("Expected `this` to be an instance of AbortSignal.");_w.get(this).push(r)}removeEventListener(e,r){if(!_w.has(this))throw new TypeError("Expected `this` to be an instance of AbortSignal.");let i=_w.get(this),n=i.indexOf(r);n>-1&&i.splice(n,1)}dispatchEvent(e){throw new Error("This is a stub dispatchEvent implementation that should not be used. It only exists for type-checking purposes.")}};function DNe(t){if(t.aborted)return;t.onabort&&t.onabort.call(t);let e=_w.get(t);e&&e.slice().forEach(r=>{r.call(t,{type:"abort"})}),EQ.set(t,!0)}var E7=class extends Error{constructor(e){super(e),this.name="AbortError"}},b7=class{constructor(e){if(this._signal=new l_,!!e){Array.isArray(e)||(e=arguments);for(let r of e)r.aborted?this.abort():r.addEventListener("abort",()=>{this.abort()})}}get signal(){return this._signal}abort(){DNe(this._signal)}static timeout(e){let r=new l_,i=setTimeout(DNe,e,r);return typeof i.unref=="function"&&i.unref(),r}};u_.AbortController=b7;u_.AbortError=E7;u_.AbortSignal=l_});var LNe=A(Pi=>{"use strict";Object.defineProperty(Pi,"__esModule",{value:!0});var wNt=w7(),_7=require("crypto");function ONe(t,e){let{cleanupBeforeAbort:r,abortSignal:i,abortErrorMsg:n}=e??{};return new Promise((s,o)=>{function a(){o(new wNt.AbortError(n??"The operation was aborted."))}function c(){i?.removeEventListener("abort",l)}function l(){r?.(),c(),a()}if(i?.aborted)return a();try{t(u=>{c(),s(u)},u=>{c(),o(u)})}catch(u){o(u)}i?.addEventListener("abort",l)})}var CNt="The delay was Line truncated
Polling from: ${r.config.operationLocation}
Operation status: ${u}
Polling status: ${qNe.includes(u)?"Stopped":"Running"}`),u==="succeeded"){let f=o(l,r);if(f!==void 0)return{response:await e(f).catch(MNe({state:r,stateProxy:i,isOperationError:a})),status:u}}return{response:l,status:u}}async function zNe(t){let{poll:e,state:r,stateProxy:i,options:n,getOperationStatus:s,getResourceLocation:o,getOperationLocation:a,isOperationError:c,withOperationLocation:l,getPollingInterval:u,processResult:f,getError:h,updateState:d,setDelay:p,isDone:m,setErrorAsResult:y}=t,{operationLocation:g}=r.config;if(g!==void 0){let{response:E,status:w}=await YNt({poll:e,getOperationStatus:s,state:r,stateProxy:i,operationLocation:g,getResourceLocation:o,isOperationError:c,options:n});if(HNe({status:w,response:E,state:r,stateProxy:i,isDone:m,processResult:f,getError:h,setErrorAsResult:y}),!qNe.includes(w)){let C=u?.(E);C&&p(C);let N=a?.(E,r);if(N!==void 0){let F=g!==N;r.config.operationLocation=N,l?.(N,F)}else l?.(g,!1)}d?.(r,E)}}function VNe(t){let{azureAsyncOperation:e,operationLocation:r}=t;return r??e}function $Ne(t){return t.headers.location}function WNe(t){return t.headers["operation-location"]}function JNe(t){return t.headers["azure-asyncoperation"]}function KNt(t){var e;let{location:r,requestMethod:i,requestPath:n,resourceLocationConfig:s}=t;switch(i){case"PUT":return n;case"DELETE":return;case"PATCH":return(e=o())!==null&&e!==void 0?e:n;default:return o()}function o(){switch(s){case"azure-async-operation":return;case"original-uri":return n;default:return r}}}function YNe(t){let{rawResponse:e,requestMethod:r,requestPath:i,resourceLocationConfig:n}=t,s=WNe(e),o=JNe(e),a=VNe({operationLocation:s,azureAsyncOperation:o}),c=$Ne(e),l=r?.toLocaleUpperCase();return a!==void 0?{mode:"OperationLocation",operationLocation:a,resourceLocation:KNt({requestMethod:l,location:c,requestPath:i,resourceLocationConfig:n})}:c!==void 0?{mode:"ResourceLocation",operationLocation:c}:l==="PUT"&&i?{mode:"Body",operationLocation:i}:void 0}function KNe(t){let{status:e,statusCode:r}=t;if(typeof e!="string"&&e!==void 0)throw new Error(`Polling was unsuccessful. Expected status to have a string value or no value but it has instead: ${e}. This doesn't necessarily indicate the operation has failed. Check your Azure subscription or resource status for more information.`);switch(e?.toLocaleLowerCase()){case void 0:return D7(r);case"succeeded":return"succeeded";case"failed":return"failed";case"running":case"accepted":case"started":case"canceling":case"cancelling":return"running";case"canceled":case"cancelled":return"canceled";default:return _y.verbose(`LRO: unrecognized operation status: ${e}`),e}}function XNt(t){var e;let{status:r}=(e=t.body)!==null&&e!==void 0?e:{};return KNe({status:r,statusCode:t.statusCode})}function ZNt(t){var e,r;let{properties:i,provisioningState:n}=(e=t.body)!==null&&e!==void 0?e:{},s=(r=i?.provisioningState)!==null&&r!==void 0?r:n;return KNe({status:s,statusCode:t.statusCode})}function D7(t){return t===202?"running":t<300?"succeeded":"failed"}function XNe({rawResponse:t}){let e=t.headers["retry-after"];if(e!==void 0){let r=parseInt(e);return isNaN(r)?e1t(new Date(e)):r*1e3}}function ZNe(t){let e=t.flatResponse.error;if(!e){_y.warning("The long-running operation failed but there is no error property in the response's body");return}if(!e.code||!e.message){_y.warning("The long-running operation failed but the error property in the response's body doesn't contain code or message");return}return e}function e1t(t){let e=Math.floor(new Date().getTime()),r=t.getTime();if(e<r)return r-e}function e1e(t){let{response:e,state:r,operationLocation:i}=t;function n(){var o;switch((o=r.config.metadata)===null||o===void 0?void 0:o.mode){case void 0:return D7(e.rawResponse.statusCode);case"Body":return O7(e,r);default:return"running"}}let s=n();return s==="running"&&i===void 0?"succeeded":s}async function t1t(t){let{stateProxy:e,resourceLocationConfig:r,processResult:i,lro:n,setErrorAsResult:s}=t;return jNe({init:async()=>{let o=await n.sendInitialRequest(),a=YNe({rawResponse:o.rawResponse,requestPath:n.requestPath,requestMethod:n.requestMethod,resourceLocationConfig:r});return Object.assign({response:o,operationLocation:a?.operationLocation,resourceLocation:a?.resourceLocation},a?.mode?{metadata:{mode:a.mode}}:{})},stateProxy:e,processResult:i?({flatResponse:o},a)=>i(o,a):({flatResponse:o})=>o,getOperationStatus:e1e,setErrorAsResult:s})}function t1e({rawResponse:t},e){var r;switch((r=e.config.metadata)===null||r===void 0?void 0:r.mode){case"OperationLocation":return VNe({operationLocation:WNe(t),azureAsyncOperation:JNe(t)});case"ResourceLocation":return $Ne(t);default:return}}function O7({rawResponse:t},e){var r;let i=(r=e.config.metadata)===null||r===void 0?void 0:r.mode;switch(i){case"OperationLocation":return XNt(t);case"ResourceLocation":return D7(t.statusCode);case"Body":return ZNt(t);default:throw new Error(`Internal error: Unexpected operation mode: ${i}`)}}function r1e({flatResponse:t},e){if(typeof t=="object"Line truncated
`:case"\r":case" ":case" ":continue;default:throw Error("invalid base64 string.")}switch(n){case 0:o=s,n=1;break;case 1:r[i++]=o<<2|(s&48)>>4,o=s,n=2;break;case 2:r[i++]=(o&15)<<4|(s&60)>>2,o=s,n=3;break;case 3:r[i++]=(o&3)<<6|s,n=0;break}}if(n==1)throw Error("invalid base64 string.");return r.subarray(0,i)}Pw.base64decode=F1t;function M1t(t){let e="",r=0,i,n=0;for(let s=0;s<t.length;s++)switch(i=t[s],r){case 0:e+=Ld[i>>2],n=(i&3)<<4,r=1;break;case 1:e+=Ld[n|i>>4],n=(i&15)<<2,r=2;break;case 2:e+=Ld[n|i>>6],e+=Ld[i&63],r=0;break}return r&&(e+=Ld[n],e+="=",r==1&&(e+="=")),e}Pw.base64encode=M1t});var N1e=A(FQ=>{"use strict";Object.defineProperty(FQ,"__esModule",{value:!0});FQ.utf8read=void 0;var H7=t=>String.fromCharCode.apply(String,t);function U1t(t){if(t.length<1)return"";let e=0,r=[],i=[],n=0,s,o=t.length;for(;e<o;)s=t[e++],s<128?i[n++]=s:s>191&&s<224?i[n++]=(s&31)<<6|t[e++]&63:s>239&&s<365?(s=((s&7)<<18|(t[e++]&63)<<12|(t[e++]&63)<<6|t[e++]&63)-65536,i[n++]=55296+(s>>10),i[n++]=56320+(s&1023)):i[n++]=(s&15)<<12|(t[e++]&63)<<6|t[e++]&63,n>8191&&(r.push(H7(i)),n=0);return r.length?(n&&r.push(H7(i.slice(0,n))),r.join("")):H7(i.slice(0,n))}FQ.utf8read=U1t});var y_=A(Uf=>{"use strict";Object.defineProperty(Uf,"__esModule",{value:!0});Uf.WireType=Uf.mergeBinaryOptions=Uf.UnknownFieldHandler=void 0;var q1t;(function(t){t.symbol=Symbol.for("protobuf-ts/unknown"),t.onRead=(r,i,n,s,o)=>{(e(i)?i[t.symbol]:i[t.symbol]=[]).push({no:n,wireType:s,data:o})},t.onWrite=(r,i,n)=>{for(let{no:s,wireType:o,data:a}of t.list(i))n.tag(s,o).raw(a)},t.list=(r,i)=>{if(e(r)){let n=r[t.symbol];return i?n.filter(s=>s.no==i):n}return[]},t.last=(r,i)=>t.list(r,i).slice(-1)[0];let e=r=>r&&Array.isArray(r[t.symbol])})(q1t=Uf.UnknownFieldHandler||(Uf.UnknownFieldHandler={}));function G1t(t,e){return Object.assign(Object.assign({},t),e)}Uf.mergeBinaryOptions=G1t;var H1t;(function(t){t[t.Varint=0]="Varint",t[t.Bit64=1]="Bit64",t[t.LengthDelimited=2]="LengthDelimited",t[t.StartGroup=3]="StartGroup",t[t.EndGroup=4]="EndGroup",t[t.Bit32=5]="Bit32"})(H1t=Uf.WireType||(Uf.WireType={}))});var UQ=A(Ia=>{"use strict";Object.defineProperty(Ia,"__esModule",{value:!0});Ia.varint32read=Ia.varint32write=Ia.int64toString=Ia.int64fromString=Ia.varint64write=Ia.varint64read=void 0;function j1t(){let t=0,e=0;for(let i=0;i<28;i+=7){let n=this.buf[this.pos++];if(t|=(n&127)<<i,(n&128)==0)return this.assertBounds(),[t,e]}let r=this.buf[this.pos++];if(t|=(r&15)<<28,e=(r&112)>>4,(r&128)==0)return this.assertBounds(),[t,e];for(let i=3;i<=31;i+=7){let n=this.buf[this.pos++];if(e|=(n&127)<<i,(n&128)==0)return this.assertBounds(),[t,e]}throw new Error("invalid varint")}Ia.varint64read=j1t;function z1t(t,e,r){for(let s=0;s<28;s=s+7){let o=t>>>s,a=!(!(o>>>7)&&e==0),c=(a?o|128:o)&255;if(r.push(c),!a)return}let i=t>>>28&15|(e&7)<<4,n=e>>3!=0;if(r.push((n?i|128:i)&255),!!n){for(let s=3;s<31;s=s+7){let o=e>>>s,a=!!(o>>>7),c=(a?o|128:o)&255;if(r.push(c),!a)return}r.push(e>>>31&1)}}Ia.varint64write=z1t;var MQ=65536*65536;function V1t(t){let e=t[0]=="-";e&&(t=t.slice(1));let r=1e6,i=0,n=0;function s(o,a){let c=Number(t.slice(o,a));n*=r,i=i*r+c,i>=MQ&&(n=n+(i/MQ|0),i=i%MQ)}return s(-24,-18),s(-18,-12),s(-12,-6),s(-6),[e,i,n]}Ia.int64fromString=V1t;function $1t(t,e){if(e>>>0<=2097151)return""+(MQ*e+(t>>>0));let r=t&16777215,i=(t>>>24|e<<8)>>>0&16777215,n=e>>16&65535,s=r+i*6777216+n*6710656,o=i+n*8147497,a=n*2,c=1e7;s>=c&&(o+=Math.floor(s/c),s%=c),o>=c&&(a+=Math.floor(o/c),o%=c);function l(u,f){let h=u?String(u):"";return f?"0000000".slice(h.length)+h:h}return l(a,0)+l(o,a)+l(s,1)}Ia.int64toString=$1t;function W1t(t,e){if(t>=0){for(;t>127;)e.push(t&127|128),t=t>>>7;e.push(t)}else{for(let r=0;r<9;r++)e.push(t&127|128),t=t>>7;e.push(1)}}Ia.varint32write=W1t;function J1t(){let t=this.buf[this.pos++],e=t&127;if((t&128)==0)return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<7,(t&128)==0)return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<14,(t&128)==0)return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<21,(t&128)==0)return this.assertBounds(),e;t=this.buf[this.pos++],e|=(t&15)<<28;for(let r=5;(t&128)!==0&&r<10;r++)t=this.buf[this.pos++];if((t&128)!=0)throw new Error("invalid varint");return this.assertBounds(),e>>>0}Ia.varint32read=J1t});var Gm=A(qm=>{"use strict";Object.defineProperty(qm,"__esModule",{value:!0});qm.PbLong=qm.PbULong=qm.detectBi=void 0;var E_=UQ(),Mr;function D1e(){let t=new DataView(new ArrayBuffer(8));Mr=globalThis.BigInt!==void 0&&typeof t.getBigInt64=="function"&&typeof t.getBigUint64=="function"&&typeof t.setBigInt64=="function"&&typeof t.setBigUint64=="function"?{MIN:BigInt("-9223372036854775808"),MAX:BigInt("9223372036854775807"),UMIN:BigInt("0"),UMAX:BigInt("18446744073709551615"),C:BigInt,V:t}:void 0}qm.detectBi=D1e;D1e();function O1e(t){if(!t)throw new Error("BigInt unavailable, see https://github.com/timostamm/protobuf-ts/blob/v1.0.8/MANUAL.md#bigint-support")}var P1e=/^-?[0-9]+$/,GQ=4294967296,qQ=2147483648,HQ=c Line truncated
`)}};dL.RpcError=AK});var yK=A(mL=>{"use strict";Object.defineProperty(mL,"__esModule",{value:!0});mL.mergeRpcOptions=void 0;var u2e=Zi();function gDt(t,e){if(!e)return t;let r={};pL(t,r),pL(e,r);for(let i of Object.keys(e)){let n=e[i];switch(i){case"jsonOptions":r.jsonOptions=u2e.mergeJsonOptions(t.jsonOptions,r.jsonOptions);break;case"binaryOptions":r.binaryOptions=u2e.mergeBinaryOptions(t.binaryOptions,r.binaryOptions);break;case"meta":r.meta={},pL(t.meta,r.meta),pL(e.meta,r.meta);break;case"interceptors":r.interceptors=t.interceptors?t.interceptors.concat(n):n.concat();break}}return r}mL.mergeRpcOptions=gDt;function pL(t,e){if(!t)return;let r=e;for(let[i,n]of Object.entries(t))n instanceof Date?r[i]=new Date(n.getTime()):Array.isArray(n)?r[i]=n.concat():r[i]=n}});var bK=A(Oy=>{"use strict";Object.defineProperty(Oy,"__esModule",{value:!0});Oy.Deferred=Oy.DeferredState=void 0;var Hf;(function(t){t[t.PENDING=0]="PENDING",t[t.REJECTED=1]="REJECTED",t[t.RESOLVED=2]="RESOLVED"})(Hf=Oy.DeferredState||(Oy.DeferredState={}));var EK=class{constructor(e=!0){this._state=Hf.PENDING,this._promise=new Promise((r,i)=>{this._resolve=r,this._reject=i}),e&&this._promise.catch(r=>{})}get state(){return this._state}get promise(){return this._promise}resolve(e){if(this.state!==Hf.PENDING)throw new Error(`cannot resolve ${Hf[this.state].toLowerCase()}`);this._resolve(e),this._state=Hf.RESOLVED}reject(e){if(this.state!==Hf.PENDING)throw new Error(`cannot reject ${Hf[this.state].toLowerCase()}`);this._reject(e),this._state=Hf.REJECTED}resolvePending(e){this._state===Hf.PENDING&&this.resolve(e)}rejectPending(e){this._state===Hf.PENDING&&this.reject(e)}};Oy.Deferred=EK});var CK=A(AL=>{"use strict";Object.defineProperty(AL,"__esModule",{value:!0});AL.RpcOutputStreamController=void 0;var f2e=bK(),Py=Zi(),wK=class{constructor(){this._lis={nxt:[],msg:[],err:[],cmp:[]},this._closed=!1,this._itState={q:[]}}onNext(e){return this.addLis(e,this._lis.nxt)}onMessage(e){return this.addLis(e,this._lis.msg)}onError(e){return this.addLis(e,this._lis.err)}onComplete(e){return this.addLis(e,this._lis.cmp)}addLis(e,r){return r.push(e),()=>{let i=r.indexOf(e);i>=0&&r.splice(i,1)}}clearLis(){for(let e of Object.values(this._lis))e.splice(0,e.length)}get closed(){return this._closed!==!1}notifyNext(e,r,i){Py.assert((e?1:0)+(r?1:0)+(i?1:0)<=1,"only one emission at a time"),e&&this.notifyMessage(e),r&&this.notifyError(r),i&&this.notifyComplete()}notifyMessage(e){Py.assert(!this.closed,"stream is closed"),this.pushIt({value:e,done:!1}),this._lis.msg.forEach(r=>r(e)),this._lis.nxt.forEach(r=>r(e,void 0,!1))}notifyError(e){Py.assert(!this.closed,"stream is closed"),this._closed=e,this.pushIt(e),this._lis.err.forEach(r=>r(e)),this._lis.nxt.forEach(r=>r(void 0,e,!1)),this.clearLis()}notifyComplete(){Py.assert(!this.closed,"stream is closed"),this._closed=!0,this.pushIt({value:null,done:!0}),this._lis.cmp.forEach(e=>e()),this._lis.nxt.forEach(e=>e(void 0,void 0,!0)),this.clearLis()}[Symbol.asyncIterator](){return this._closed===!0?this.pushIt({value:null,done:!0}):this._closed!==!1&&this.pushIt(this._closed),{next:()=>{let e=this._itState;Py.assert(e,"bad state"),Py.assert(!e.p,"iterator contract broken");let r=e.q.shift();return r?"value"in r?Promise.resolve(r):Promise.reject(r):(e.p=new f2e.Deferred,e.p.promise)}}}pushIt(e){let r=this._itState;if(r.p){let i=r.p;Py.assert(i.state==f2e.DeferredState.PENDING,"iterator contract broken"),"value"in e?i.resolve(e):i.reject(e),delete r.p}else r.q.push(e)}};AL.RpcOutputStreamController=wK});var SK=A(qw=>{"use strict";var yDt=qw&&qw.__awaiter||function(t,e,r,i){function n(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(function(s,o){function a(u){try{l(i.next(u))}catch(f){o(f)}}function c(u){try{l(i.throw(u))}catch(f){o(f)}}function l(u){u.done?s(u.value):n(u.value).then(a,c)}l((i=i.apply(t,e||[])).next())})};Object.defineProperty(qw,"__esModule",{value:!0});qw.UnaryCall=void 0;var IK=class{constructor(e,r,i,n,s,o,a){this.method=e,this.requestHeaders=r,this.request=i,this.headers=n,this.response=s,this.status=o,this.trailers=a}then(e,r){return this.promiseFinished().then(i=>e?Promise.resolve(e(i)):i,i=>r?Promise.resolve(r(i)):Promise.reject(i))}promiseFinished(){return yDt(this,void 0,void 0,function*(){let[e,r,i,n]=yield Promise.all([this.headers,this.response,this.status,this.trailers]);return{method:this.method,requestHeaders:this.requestHeaders,request:this.request,headers:e,response:r,status:i,trailers:n}})}};qw.UnaryCall=IK});var vK=A(Gw=>{"use strict";var EDt=Gw&&Gw.__awaiter||function(t,e,r,i){function n(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(function(s,o){function a(u){try{l(i.next(u))}catch(f){o(f)}}function c(u){try{l(i.throw(u))}catch(f){o(f)}}function l(u){u.done?s(u.value):n(u.value).then(a,c)}l((i=i.apply(t,e||[])).next())})};Object.defineProperty(Gw,"__esModule",{value:!0});Gw.ServerStreamingCall=void 0;var BK=class{constructor(e Line truncated
You can add a runtime option to disable the check or this warning:
See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details`))}function yLt(){Object.keys(KL).forEach(function(t){delete KL[t]})}});var ZL=A($f=>{"use strict";$f.__esModule=!0;$f.HandlebarsEnvironment=HX;function mPe(t){return t&&t.__esModule?t:{default:t}}var My=Po(),ELt=yc(),qX=mPe(ELt),bLt=LX(),wLt=fPe(),CLt=MX(),XL=mPe(CLt),ILt=UX(),SLt="4.7.9";$f.VERSION=SLt;var BLt=8;$f.COMPILER_REVISION=BLt;var vLt=7;$f.LAST_COMPATIBLE_COMPILER_REVISION=vLt;var xLt={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0 <4.3.0",8:">= 4.3.0"};$f.REVISION_CHANGES=xLt;var GX="[object Object]";function HX(t,e,r){this.helpers=t||{},this.partials=e||{},this.decorators=r||{},bLt.registerDefaultHelpers(this),wLt.registerDefaultDecorators(this)}HX.prototype={constructor:HX,logger:XL.default,log:XL.default.log,registerHelper:function(e,r){if(My.toString.call(e)===GX){if(r)throw new qX.default("Arg not supported with multiple helpers");My.extend(this.helpers,e)}else this.helpers[e]=r},unregisterHelper:function(e){delete this.helpers[e]},registerPartial:function(e,r){if(My.toString.call(e)===GX)My.extend(this.partials,e);else{if(typeof r>"u")throw new qX.default('Attempting to register a partial called "'+e+'" as undefined');this.partials[e]=r}},unregisterPartial:function(e){delete this.partials[e]},registerDecorator:function(e,r){if(My.toString.call(e)===GX){if(r)throw new qX.default("Arg not supported with multiple decorators");My.extend(this.decorators,e)}else this.decorators[e]=r},unregisterDecorator:function(e){delete this.decorators[e]},resetLoggedPropertyAccesses:function(){ILt.resetLoggedProperties()}};var _Lt=XL.default.log;$f.log=_Lt;$f.createFrame=My.createFrame;$f.logger=XL.default});var gPe=A((eF,APe)=>{"use strict";eF.__esModule=!0;function jX(t){this.string=t}jX.prototype.toString=jX.prototype.toHTML=function(){return""+this.string};eF.default=jX;APe.exports=eF.default});var yPe=A(zX=>{"use strict";zX.__esModule=!0;zX.wrapHelper=RLt;function RLt(t,e){if(typeof t!="function")return t;var r=function(){var n=arguments[arguments.length-1];return arguments[arguments.length-1]=e(n),t.apply(this,arguments)};return r}});var SPe=A(Vm=>{"use strict";Vm.__esModule=!0;Vm.checkRevision=kLt;Vm.template=QLt;Vm.wrapProgram=tF;Vm.resolvePartial=LLt;Vm.invokePartial=FLt;Vm.noop=CPe;function TLt(t){return t&&t.__esModule?t:{default:t}}function NLt(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}var DLt=Po(),tC=NLt(DLt),OLt=yc(),Ud=TLt(OLt),qd=ZL(),EPe=LX(),PLt=yPe(),bPe=UX();function kLt(t){var e=t&&t[0]||1,r=qd.COMPILER_REVISION;if(!(e>=qd.LAST_COMPATIBLE_COMPILER_REVISION&&e<=qd.COMPILER_REVISION))if(e<qd.LAST_COMPATIBLE_COMPILER_REVISION){var i=qd.REVISION_CHANGES[r],n=qd.REVISION_CHANGES[e];throw new Ud.default("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+i+") or downgrade your runtime to an older version ("+n+").")}else throw new Ud.default("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+t[1]+").")}function QLt(t,e){if(!e)throw new Ud.default("No environment passed to template");if(!t||!t.main)throw new Ud.default("Unknown template object: "+typeof t);t.main.decorator=t.main_d,e.VM.checkRevision(t.compiler);var r=t.compiler&&t.compiler[0]===7;function i(o,a,c){c.hash&&(a=tC.extend({},a,c.hash),c.ids&&(c.ids[0]=!0)),o=e.VM.resolvePartial.call(this,o,a,c),c.hooks=this.hooks,c.protoAccessControl=this.protoAccessControl;var l=e.VM.invokePartial.call(this,o,a,c);if(l==null&&e.compile&&(c.partials[c.name]=e.compile(o,t.compilerOptions,e),l=c.partials[c.name](a,c)),l!=null){if(c.indent){for(var u=l.split(`
`),f=0,h=u.length;f<h&&!(!u[f]&&f+1===h);f++)u[f]=c.indent+u[f];l=u.join(`
`)}return l}else throw new Ud.default("The partial "+c.name+" could not be compiled when running in runtime-only mode")}var n={strict:function(a,c,l){if(!a||!(c in a))throw new Ud.default('"'+c+'" not defined in '+a,{loc:l});return n.lookupProperty(a,c)},lookupProperty:function(a,c){var l=a[c];if(l==null||Object.prototype.hasOwnProperty.call(a,c)||bPe.resultIsAllowed(l,n.protoAccessControl,c))return l},lookup:function(a,c){for(var l=a.length,u=0;u<l;u++){var f=a[u]&&n.lookupProperty(a[u],c);if(f!=null)return f}},lambda:function(a,c){return typeof a=="function"?a.call(c):a},escapeExpression:tC.escapeExpression,invokePartial:i,fn:function(a){var c=t[a];return c.decorator=t[a+"_d"],c},programs:[],program:function(a,c,l,u,f){var h=this.programs[a],d=this.fn(a);return c||f||u||l?h=tF(this,a,d,c,l,u,f):h||(h=this.programs[a]=tF(this,a,d)),h},data:function(a,c){for(;a&&c--;)a=a._parent;return a},mergeIfNeeded:function(a,c){var l=a||c;return a&&c&&a!==c&&(l=tC.extend({},c,a)),l},nullContext:Object.seal({}),noop:e.VM.noop,compilerInfo:t.compiler};function s(o){var a=arguments.length<=1||arguments[1]===void 0?{}:arguments[1],c=a.data;s._setup(a),!a.partial&&t.useData&&(c=MLt(o,c));var l=void 0,u=t.useBlockParams?[]:void 0;t.useDepths&&(a.depths?l=o!=a.depths[0]?[o].concat(a.depths):a.depths:l=[o]);function f(h){return""+t.main(n,h,n.helpers,n.partials,c,u,l)}return f=IPe(t.main,f,n,a.depths||[],c,u),f(o,a)}return s.isTop=!0,s._setup=function(o){if(o.partial)n.protoAccessControl=o.protoAccessControl,n.helpers=o.helpers,n.partials=o.partials,n.decorators=o.decorators,n.hooks=o.hooks;else{var a={};wPe(a,e.helpers,n),wPe(a,o.helpers,n),n.helpers=a,t.usePartial&&(n.partials=n.mergeIfNeeded(o.partials,e.partials)),(t.usePartial||t.useDecorators)&&(n.decorators=tC.extend({},e.decorators,o.decorators)),n.hooks={},n.protoAccessControl=bPe.createProtoAccessControl(o);var c=o.allowCallsToHelperMissing||r;EPe.moveHelperToHooks(n,"helperMissing",c),EPe.moveHelperToHooks(n,"blockHelperMissing",c)}},s._child=function(o,a,c,l){if(t.useBlockParams&&!c)throw new Ud.default("must pass block params");if(t.useDepths&&!l)throw new Ud.default("must pass parent depths");return tF(n,o,t[o],a,0,c,l)},s}function tF(t,e,r,i,n,s,o){function a(c){var l=arguments.length<=1||arguments[1]===void 0?{}:arguments[1],u=o;return o&&c!=o[0]&&!(c===t.nullContext&&o[0]===null)&&(u=[c].concat(o)),r(t,c,t.helpers,t.partials,l.data||i,s&&[l.blockParams].concat(s),u)}return a=IPe(r,a,t,o,i,s),a.program=e,a.depth=o?o.length:0,a.blockParams=n||0,a}function LLt(t,e,r){return t?!t.call&&!r.name&&(r.name=t,t=rF(r.partials,t)):r.name==="@partial-block"?t=rF(r.data,"partial-block"):t=rF(r.partials,r.name),t}function FLt(t,e,r){var i=rF(r.data,"partial-block");r.partial=!0,r.ids&&(r.data.contextPath=r.ids[0]||r.data.contextPath);var n=void 0;if(r.fn&&r.fn!==CPe&&(function(){r.data=qd.createFrame(r.data);var s=r.fn;n=r.data["partial-block"]=function(a){var c=arguments.length<=1||arguments[1]===void 0?{}:arguments[1];return c.data=qd.createFrame(c.data),c.data["partial-block"]=i,s(a,c)},s.partials&&(r.partials=tC.extend({},r.partials,s.partials))})(),t===void 0&&n&&(t=n),t===void 0)throw new Ud.default("The partial "+r.name+" could not be found");if(t instanceof Function)return t(e,r)}function CPe(){return""}function rF(t,e){if(t&&Object.prototype.hasOwnProperty.call(t,e))return t[e]}function MLt(t,e){return(!e||!("root"in e))&&(e=e?qd.createFrame(e):{},e.root=t),e}function IPe(t,e,r,i,n,s){if(t.decorator){var o={};e=t.decorator(e,o,r,i&&i[0],n,s,i),tC.extend(e,o)}return e}function wPe(t,e,r){e&&Object.keys(e).forEach(function(i){var n=e[i];t[i]=ULt(n,r)})}function ULt(t,e){var r=e.lookupProperty;return PLt.wrapHelper(t,function(i){return i.lookupProperty=r,i})}});var VX=A((iF,BPe)=>{"use strict";iF.__esModule=!0;iF.default=function(t){(function(){typeof globalThis!="object"&&(Object.prototype.__defineGetter__("__magic__",function(){return this}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__)})();var e=globalThis.Handlebars;t.noConflict=function(){return globalThis.Handlebars===t&&(globalThis.Handlebars=e),t}};BPe.exports=iF.default});var TPe=A((nF,RPe)=>{"use strict";nF.__esModule=!0;function WX(t){return t&&t.__esModule?t:{default:t}}function JX(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e}var qLt=ZL(),vPe=JX(qLt),GLt=gPe(),HLt=WX(GLt),jLt=yc(),zLt=WX(jLt),VLt=Po(),$X=JX(VLt),$Lt=SPe(),xPe=JX($Lt),WLt=VX(),JLt=WX(WLt);function _Pe(){var t=new vPe.HandlebarsEnvironment;return $X.extend(t,vPe),t.SafeString=HLt.default,t.Exception=zLt.default,t.Utils=$X,t.escapeExpression=$X.escapeExpression,t.VM=xPe,t.template=function(e){return xPe.template(e,t)},t}var H_=_Pe();H_.create=_Pe;JLt.default(H_);H_.default=H_;nF.default=H_;RPe.exports=nF.default});var YX=A((sF,DPe)=>{"use strict";sF.__esModule=!0;var NPe={helpers:{helperExpression:function(e){return e.type===" Line truncated
`+this.lexer.showPosition()+`
Expecting `+ie.join(", ")+", got '"+(this.terminals_[C]||C)+"'":ne="Parse error on line "+(f+1)+": Unexpected "+(C==1?"end of input":"'"+(this.terminals_[C]||C)+"'"),this.parseError(ne,{text:this.lexer.match,token:this.terminals_[C]||C,line:this.lexer.yylineno,loc:y,expected:ie})}}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+F+", token: "+C);switch(x[0]){case 1:o.push(C),a.push(this.lexer.yytext),c.push(this.lexer.yylloc),o.push(x[1]),C=null,N?(C=N,N=null):(h=this.lexer.yyleng,u=this.lexer.yytext,f=this.lexer.yylineno,y=this.lexer.yylloc,d>0&&d--);break;case 2:if(H=this.productions_[x[1]][1],V.$=a[a.length-H],V._$={first_line:c[c.length-(H||1)].first_line,last_line:c[c.length-1].last_line,first_column:c[c.length-(H||1)].first_column,last_column:c[c.length-1].last_column},g&&(V._$.range=[c[c.length-(H||1)].range[0],c[c.length-1].range[1]]),P=this.performAction.call(V,u,h,f,this.yy,x[1],a,c),typeof P<"u")return P;H&&(o=o.slice(0,-1*H*2),a=a.slice(0,-1*H),c=c.slice(0,-1*H)),o.push(this.productions_[x[1]][0]),a.push(V.$),c.push(V._$),z=l[o[o.length-2]][o[o.length-1]],o.push(z);break;case 3:return!0}}return!0}},e=(function(){var i={EOF:1,parseError:function(s,o){if(this.yy.parser)this.yy.parser.parseError(s,o);else throw new Error(s)},setInput:function(s){return this._input=s,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var s=this._input[0];this.yytext+=s,this.yyleng++,this.offset++,this.match+=s,this.matched+=s;var o=s.match(/(?:\r\n?|\n).*/g);return o?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),s},unput:function(s){var o=s.length,a=s.split(/(?:\r\n?|\n)/g);this._input=s+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-o-1),this.offset-=o;var c=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),a.length-1&&(this.yylineno-=a.length-1);var l=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:a?(a.length===c.length?this.yylloc.first_column:0)+c[c.length-a.length].length-a[0].length:this.yylloc.first_column-o},this.options.ranges&&(this.yylloc.range=[l[0],l[0]+this.yyleng-o]),this},more:function(){return this._more=!0,this},less:function(s){this.unput(this.match.slice(s))},pastInput:function(){var s=this.matched.substr(0,this.matched.length-this.match.length);return(s.length>20?"...":"")+s.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var s=this.match;return s.length<20&&(s+=this._input.substr(0,20-s.length)),(s.substr(0,20)+(s.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var s=this.pastInput(),o=new Array(s.length+1).join("-");return s+this.upcomingInput()+`
`+o+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var s,o,a,c,l,u;this._more||(this.yytext="",this.match="");for(var f=this._currentRules(),h=0;h<f.length&&(a=this._input.match(this.rules[f[h]]),!(a&&(!o||a[0].length>o[0].length)&&(o=a,c=h,!this.options.flex)));h++);return o?(u=o[0].match(/(?:\r\n?|\n).*/g),u&&(this.yylineno+=u.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:u?u[u.length-1].length-u[u.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+o[0].length},this.yytext+=o[0],this.match+=o[0],this.matches=o,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(o[0].length),this.matched+=o[0],s=this.performAction.call(this,this.yy,this,f[c],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),s||void 0):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var s=this.next();return typeof s<"u"?s:this.lex()},begin:function(s){this.conditionStack.push(s)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(s){this.begin(s)}};return i.options={},i.performAction=function(s,o,a,c){function l(f,h){return o.yytext=o.yytext.substring(f,o.yyleng-h+f)}var u=c;switch(a){case 0:if(o.yytext.slice(-2)==="\\\\"?(l(0,1),this.begin("mu")):o.yytext.slice(-1)==="\\"?(l(0,1),this.begin("emu")):this.begin("mu"),o.yytext)return 15;break;case 1:return 15;case 2:return this.popState(),15;break;case 3:return this.begin("raw"),15;break;case 4:return this.popState(),this.conditionStack[this.conditionStack.length-1]==="raw"?15:(l(5,9),"END_RAW_BLOCK");case 5:return 15;case 6:return this.popState(),14;break;case 7:return 65;case 8:return 68;case 9:return 19;case 10:return this.popState(),this.begin("raw"),23;break;case 11:return 55;case 12:return 60;case 13:return 29;case 14:return 47;case 15:return this.popState(),44;break;case 16:return this.popState(),44;break;case 17:return 34;case 18:return 39;case 19:return 51;case 20:return 48;case 21:this.unput(o.yytext),this.popState(),this.begin("com");break;case 22:return this.popState(),14;break;case 23:return 48;case 24:return 73;case 25:return 72;case 26:return 72;case 27:return 87;case 28:break;case 29:return this.popState(),54;break;case 30:return this.popState(),33;break;case 31:return o.yytext=l(1,2).replace(/\\"/g,'"'),80;break;case 32:return o.yytext=l(1,2).replace(/\\'/g,"'"),80;break;case 33:return 85;case 34:return 82;case 35:return 82;case 36:return 83;case 37:return 84;case 38:return 81;case 39:return 75;case 40:return 77;case 41:return 72;case 42:return o.yytext=o.yytext.replace(/\\([\\\]])/g,"$1"),72;break;case 43:return"INVALID";case 44:return 5}},i.rules=[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{(?=[^\/]))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]+?(?=(\{\{\{\{)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#>)/,/^(?:\{\{(~)?#\*?)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?\*?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[(\\\]|[^\]])*\])/,/^(?:.)/,/^(?:$)/],i.conditions={mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}},i})();t.lexer=e;function r(){this.yy={}}return r.prototype=t,t.Parser=r,new r})();oF.default=YLt;OPe.exports=oF.default});var uF=A((lF,LPe)=>{"use strict";lF.__esModule=!0;function KLt(t){return t&&t.__esModule?t:{default:t}}var XLt=yc(),KX=KLt(XLt);function aF(){this.parents=[]}aF.prototype={constructor:aF,mutating:!1,acceptKey:function(e,r){var i=this.accept(e[r]);if(this.mutating){if(i&&!aF.prototype[i.type])throw new KX.default('Unexpected node type "'+i.type+'" found when accepting '+r+" on "+e.type);e[r]=i}},acceptRequired:function(e,r){if(this.acceptKey(e,r),!e[r])throw new KX.default(e.type+" requires "+r)},acceptArray:function(e){for(var r=0,i=e.length;r<i;r++)this.acceptKey(e,r),e[r]||(e.splice(r,1),r--,i--)},accept:function(e){if(e){if(!this[e.type])throw new KX.default("Unknown type: "+e.type,e);this.current&&this.parents.unshift(this.current),this.current=e;var r=this[e.type](e);if(this.current=this.parents.shift(),!this.mutating||r)return r;if(r!==!1)return e}},Program:function(e){this.acceptArray(e.body)},MustacheStatement:cF,Decorator:cF,BlockStatement:kPe,DecoratorBlock:kPe,PartialStatement:QPe,PartialBlockStatement:function(e){QPe.call(this,e),this.acceptKey(e,"program")},ContentStatement:function(){},CommentStatement:function(){},SubExpression:cF,PathExpression:function(){},StringLiteral:function(){},NumberLiteral:function(){},BooleanLiteral:function(){},UndefinedLiteral:function(){},NullLiteral:function(){},Hash:function(e){this.acceptArray(e.pairs)},HashPair:function(e){this.acceptRequired(e,"value")}};function cF(t){this.acceptRequired(t,"path"),this.acceptArray(t.params),this.acceptKey(t,"hash")}function Line truncated
`])}),e},each:function(e){for(var r=0,i=this.source.length;r<i;r++)e(this.source[r])},empty:function(){var e=this.currentLocation||{start:{}};return new Hy(e.start.line,e.start.column,this.srcFile)},wrap:function(e){var r=arguments.length<=1||arguments[1]===void 0?this.currentLocation||{start:{}}:arguments[1];return e instanceof Hy?e:(e=EZ(e,this,r),new Hy(r.start.line,r.start.column,this.srcFile,e))},functionCall:function(e,r,i){return i=this.generateList(i),this.wrap([e,r?"."+r+"(":"(",i,")"])},quotedString:function(e){return'"'+(e+"").replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")+'"'},objectLiteral:function(e){var r=this,i=[];Object.keys(e).forEach(function(s){var o=EZ(e[s],r);o!=="undefined"&&i.push([r.quotedString(s),":",o])});var n=this.generateList(i);return n.prepend("{"),n.add("}"),n},generateList:function(e){for(var r=this.empty(),i=0,n=e.length;i<n;i++)i&&r.add(","),r.add(EZ(e[i],this));return r},generateArray:function(e){var r=this.generateList(e);return r.prepend("["),r.add("]"),r}};yF.default=yke;Eke.exports=yF.default});var Bke=A((EF,Ske)=>{"use strict";EF.__esModule=!0;function Ike(t){return t&&t.__esModule?t:{default:t}}var wke=ZL(),JFt=yc(),wZ=Ike(JFt),YFt=Po(),KFt=bke(),Cke=Ike(KFt);function aC(t){this.value=t}function cC(){}cC.prototype={nameLookup:function(e,r){return this.internalNameLookup(e,r)},depthedLookup:function(e){return[this.aliasable("container.lookup"),"(depths, ",JSON.stringify(e),")"]},compilerInfo:function(){var e=wke.COMPILER_REVISION,r=wke.REVISION_CHANGES[e];return[e,r]},appendToBuffer:function(e,r,i){return YFt.isArray(e)||(e=[e]),e=this.source.wrap(e,r),this.environment.isSimple?["return ",e,";"]:i?["buffer += ",e,";"]:(e.appendToBuffer=!0,e)},initializeBuffer:function(){return this.quotedString("")},internalNameLookup:function(e,r){return this.lookupPropertyFunctionIsUsed=!0,["lookupProperty(",e,",",JSON.stringify(r),")"]},lookupPropertyFunctionIsUsed:!1,compile:function(e,r,i,n){this.environment=e,this.options=r,this.stringParams=this.options.stringParams,this.trackIds=this.options.trackIds,this.precompile=!n,this.name=this.environment.name,this.isChild=!!i,this.context=i||{decorators:[],programs:[],environments:[]},this.preamble(),this.stackSlot=0,this.stackVars=[],this.aliases={},this.registers={list:[]},this.hashes=[],this.compileStack=[],this.inlineStack=[],this.blockParams=[],this.compileChildren(e,r),this.useDepths=this.useDepths||e.useDepths||e.useDecorators||this.options.compat,this.useBlockParams=this.useBlockParams||e.useBlockParams;var s=e.opcodes,o=void 0,a=void 0,c=void 0,l=void 0;for(c=0,l=s.length;c<l;c++)o=s[c],this.source.currentLocation=o.loc,a=a||o.loc,this[o.opcode].apply(this,o.args);if(this.source.currentLocation=a,this.pushSource(""),this.stackSlot||this.inlineStack.length||this.compileStack.length)throw new wZ.default("Compile completed with content left on stack");this.decorators.isEmpty()?this.decorators=void 0:(this.useDecorators=!0,this.decorators.prepend(["var decorators = container.decorators, ",this.lookupPropertyFunctionVarDeclaration(),`;
`]),this.decorators.push("return fn;"),n?this.decorators=Function.apply(this,["fn","props","container","depth0","data","blockParams","depths",this.decorators.merge()]):(this.decorators.prepend(`function(fn, props, container, depth0, data, blockParams, depths) {
`),this.decorators.push(`}
`),this.decorators=this.decorators.merge()));var u=this.createFunctionContext(n);if(this.isChild)return u;var f={compiler:this.compilerInfo(),main:u};this.decorators&&(f.main_d=this.decorators,f.useDecorators=!0);var h=this.context,d=h.programs,p=h.decorators;for(c=0,l=d.length;c<l;c++)f[c]=d[c],p[c]&&(f[c+"_d"]=p[c],f.useDecorators=!0);return this.environment.usePartial&&(f.usePartial=!0),this.options.data&&(f.useData=!0),this.useDepths&&(f.useDepths=!0),this.useBlockParams&&(f.useBlockParams=!0),this.options.compat&&(f.compat=!0),n?f.compilerOptions=this.options:(f.compiler=JSON.stringify(f.compiler),this.source.currentLocation={start:{line:1,column:0}},f=this.objectLiteral(f),r.srcName?(f=f.toStringWithSourceMap({file:r.destName}),f.map=f.map&&f.map.toString()):f=f.toString()),f},preamble:function(){this.lastContext=0,this.source=new Cke.default(this.options.srcName),this.decorators=new Cke.default(this.options.srcName)},createFunctionContext:function(e){var r=this,i="",n=this.stackVars.concat(this.registers.list);n.length>0&&(i+=", "+n.join(", "));var s=0;Object.keys(this.aliases).forEach(function(c){var l=r.aliases[c];l.children&&l.referenceCount>1&&(i+=", alias"+ ++s+"="+c,l.children[0]="alias"+s)}),this.lookupPropertyFunctionIsUsed&&(i+=", "+this.lookupPropertyFunctionVarDeclaration());var o=["container","depth0","helpers","partials","data"];(this.useBlockParams||this.useDepths)&&o.push("blockParams"),this.useDepths&&o.push("depths");var a=this.mergeSource(i);return e?(o.push(a),Function.apply(this,o)):this.source.wrap(["function(",o.join(","),`) {
`,a,"}"])},mergeSource:function(e){var r=this.environment.isSimple,i=!this.forceBuffer,n=void 0,s=void 0,o=void 0,a=void 0;return this.source.each(function(c){c.appendToBuffer?(o?c.prepend(" + "):o=c,a=c):(o&&(s?o.prepend("buffer += "):n=!0,a.add(";"),o=a=void 0),s=!0,r||(i=!1))}),i?o?(o.prepend("return "),a.add(";")):s||this.source.push('return "";'):(e+=", buffer = "+(n?"":this.initializeBuffer()),o?(o.prepend("return buffer + "),a.add(";")):this.source.push("return buffer;")),e&&this.source.prepend("var "+e.substring(2)+(n?"":`;
`)),this.source.merge()},lookupPropertyFunctionVarDeclaration:function(){return`
lookupProperty = container.lookupProperty || function(parent, propertyName) {
if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {
return parent[propertyName];
}
return undefined
}
`.trim()},blockValue:function(e){var r=this.aliasable("container.hooks.blockHelperMissing"),i=[this.contextName(0)];this.setupHelperArgs(e,0,i);var n=this.popStack();i.splice(1,0,n),this.push(this.source.functionCall(r,"call",i))},ambiguousBlockValue:function(){var e=this.aliasable("container.hooks.blockHelperMissing"),r=[this.contextName(0)];this.setupHelperArgs("",0,r,!0),this.flushInline();var i=this.topStack();r.splice(1,0,i),this.pushSource(["if (!",this.lastHelper,") { ",i," = ",this.source.functionCall(e,"call",r),"}"])},appendContent:function(e){this.pendingContent?e=this.pendingContent+e:this.pendingLocation=this.source.currentLocation,this.pendingContent=e},append:function(){if(this.isInline())this.replaceStack(function(r){return[" != null ? ",r,' : ""']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var e=this.popStack();this.pushSource(["if (",e," != null) { ",this.appendToBuffer(e,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("container.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(e){this.lastContext=e},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(e,r,i,n){var s=0;!n&&this.options.compat&&!this.lastContext?this.push(this.depthedLookup(e[s++])):this.pushContext(),this.resolvePath("context",e,s,r,i)},lookupBlockParam:function(e,r){this.useBlockParams=!0,this.push(["blockParams[",e[0],"][",e[1],"]"]),this.resolvePath("context",r,1)},lookupData:function(e,r,i){e?this.pushStackLiteral("container.data(data, "+e+")"):this.pushStackLiteral("data"),this.resolvePath("data",r,0,!0,i)},resolvePath:function(e,r,i,n,s){var o=this;if(this.options.strict||this.options.assumeObjects){this.push(XFt(this.options.strict&&s,this,r,i,e));return}for(var a=r.length,c=function(u){o.replaceStack(function(f){var h=o.nameLookup(f,r[u],e);return n?[" && ",h]:[" != null ? ",h," : ",f]})},l=i;l<a;l++)c(l)},resolvePossibleLambda:function(){this.push([this.aliasable("container.lambda"),"(",this.popStack(),", ",this.contextName(0),")"])},pushStringParam:function(e,r){this.pushContext(),this.pushString(r),r!=="SubExpression"&&(typeof e=="string"?this.pushString(e):this.pushStackLiteral(e))},emptyHash:function(e){this.trackIds&&this.push("{}"),this.stringParams&&(this.push("{}"),this.push("{}")),this.pushStackLiteral(e?"undefined":"{}")},pushHash:function(){this.hash&&this.hashes.push(this.hash),this.hash={values:{},types:[],contexts:[],ids:[]}},popHash:function(){var e=this.hash;this.hash=this.hashes.pop(),this.trackIds&&this.push(this.objectLiteral(e.ids)),this.stringParams&&(this.push(this.objectLiteral(e.contexts)),this.push(this.objectLiteral(e.types))),this.push(this.objectLiteral(e.values))},pushString:function(e){this.pushStackLiteral(this.quotedString(e))},pushLiteral:function(e){this.pushStackLiteral(e)},pushProgram:function(e){e!=null?this.pushStackLiteral(this.programExpression(e)):this.pushStackLiteral(null)},registerDecorator:function(e,r){var i=this.nameLookup("decorators",r,"decorator"),n=this.setupHelperArgs(r,e);this.decorators.push(["var decorator = ",i,";"]),this.decorators.push(['if (typeof decorator !== "function") { throw new Error(',this.quotedString('Missing decorator: "'+r+'"'),"); }"]),this.decorators.push(["fn = ",this.decorators.functionCall("decorator","",["fn","props","container",n])," || fn;"])},invokeHelper:function(e,r,i){var n=this.popStack(),s=this.setupHelper(e,r),o=[];i&&o.push(s.name),o.push(n),this.options.strict||o.push(this.aliasable("container.hooks.helperMissing"));var a=["(",this.itemsSeparatedBy(o,"||"),")"],c=this.source.functionCall(a,"call",s.callParams);this.push(c)},itemsSeparatedBy:function(e,r){var i=[];i.push(e[0]);for(var n=1;n<e.length;n++)i.push(r,e[n]);return i},invokeKnownHelper:function(e,r){var i=this.setupHelper(e,r);this.push(this.source.functionCall(i.name,"call",i.callParams))},invokeAmbiguous:function(e,r){this.useRegister("helper");var i=this.popStack();this.emptyHash();var n=this.setupHelper(0,e,r),s=this.lastHelper=this.nameLookup("helpers",e,"helper"),o=["(","(helper = ",s," || ",i,")"];this.options.strict||(o[0]="(helper = ",o.push(" != null ? helper : ",this.aliasable("container.hooks.helperMissing"))),this.push(["(",o,n.paramsInit?["),(",n.paramsInit]:[],"),","(typeof helper === ",this.aliasable('"function"')," ? ",this.source.functionCall("helper","call",n.callParams)," : helper))"])},invokePartial:function(e,r,i){var n=[],s=this.setupParams(r,1,n);e&&(r=this.popStack(),delete s.name),i&&(s.indent=JSON.stringify(i)),s.helpers="helpers",s.partials="partials",s.decorators="container.decorators",e?n.unshift(r):n.unshift(this.nameLookup("partials",r,"partial")),this.options.compat&&(s.depths="depths"),s=this.objectLiteral(s),n.push(s),this.push(this.source.functionCall("container.invokePartial","",n))},assignToHash Line truncated
`,e};Li.prototype.Program=function(t){var e="",r=t.body,i=void 0,n=void 0;if(t.blockParams){var s="BLOCK PARAMS: [";for(i=0,n=t.blockParams.length;i<n;i++)s+=" "+t.blockParams[i];s+=" ]",e+=this.pad(s)}for(i=0,n=r.length;i<n;i++)e+=this.accept(r[i]);return this.padding--,e};Li.prototype.MustacheStatement=function(t){return this.pad("{{ "+this.SubExpression(t)+" }}")};Li.prototype.Decorator=function(t){return this.pad("{{ DIRECTIVE "+this.SubExpression(t)+" }}")};Li.prototype.BlockStatement=Li.prototype.DecoratorBlock=function(t){var e="";return e+=this.pad((t.type==="DecoratorBlock"?"DIRECTIVE ":"")+"BLOCK:"),this.padding++,e+=this.pad(this.SubExpression(t)),t.program&&(e+=this.pad("PROGRAM:"),this.padding++,e+=this.accept(t.program),this.padding--),t.inverse&&(t.program&&this.padding++,e+=this.pad("{{^}}"),this.padding++,e+=this.accept(t.inverse),this.padding--,t.program&&this.padding--),this.padding--,e};Li.prototype.PartialStatement=function(t){var e="PARTIAL:"+t.name.original;return t.params[0]&&(e+=" "+this.accept(t.params[0])),t.hash&&(e+=" "+this.accept(t.hash)),this.pad("{{> "+e+" }}")};Li.prototype.PartialBlockStatement=function(t){var e="PARTIAL BLOCK:"+t.name.original;return t.params[0]&&(e+=" "+this.accept(t.params[0])),t.hash&&(e+=" "+this.accept(t.hash)),e+=" "+this.pad("PROGRAM:"),this.padding++,e+=this.accept(t.program),this.padding--,this.pad("{{> "+e+" }}")};Li.prototype.ContentStatement=function(t){return this.pad("CONTENT[ '"+t.value+"' ]")};Li.prototype.CommentStatement=function(t){return this.pad("{{! '"+t.value+"' }}")};Li.prototype.SubExpression=function(t){for(var e=t.params,r=[],i=void 0,n=0,s=e.length;n<s;n++)r.push(this.accept(e[n]));return e="["+r.join(", ")+"]",i=t.hash?" "+this.accept(t.hash):"",this.accept(t.path)+" "+e+i};Li.prototype.PathExpression=function(t){var e=t.parts.join("/");return(t.data?"@":"")+"PATH:"+e};Li.prototype.StringLiteral=function(t){return'"'+t.value+'"'};Li.prototype.NumberLiteral=function(t){return"NUMBER{"+t.value+"}"};Li.prototype.BooleanLiteral=function(t){return"BOOLEAN{"+t.value+"}"};Li.prototype.UndefinedLiteral=function(){return"UNDEFINED"};Li.prototype.NullLiteral=function(){return"NULL"};Li.prototype.Hash=function(t){for(var e=t.pairs,r=[],i=0,n=e.length;i<n;i++)r.push(this.accept(e[i]));return"HASH{"+r.join(", ")+"}"};Li.prototype.HashPair=function(t){return t.key+"="+this.accept(t.value)}});var SZ=A((ljr,Dke)=>{var CF=_ke().default,Nke=Rke();CF.PrintVisitor=Nke.PrintVisitor;CF.print=Nke.print;Dke.exports=CF;function Tke(t,e){var r=require("fs"),i=r.readFileSync(e,"utf8");t.exports=CF.compile(i)}typeof require<"u"&&require.extensions&&(require.extensions[".handlebars"]=Tke,require.extensions[".hbs"]=Tke)});var jke=A(vF=>{"use strict";Object.defineProperty(vF,"__esModule",{value:!0});vF.getProxyUrl=wMt;vF.checkBypass=Hke;function wMt(t){let e=t.protocol==="https:";if(Hke(t))return;let r=e?process.env.https_proxy||process.env.HTTPS_PROXY:process.env.http_proxy||process.env.HTTP_PROXY;if(r)try{return new BF(r)}catch{if(!r.startsWith("http://")&&!r.startsWith("https://"))return new BF(`http://${r}`)}else return}function Hke(t){if(!t.hostname)return!1;let e=t.hostname;if(CMt(e))return!0;let r=process.env.no_proxy||process.env.NO_PROXY||"";if(!r)return!1;let i;t.port?i=Number(t.port):t.protocol==="http:"?i=80:t.protocol==="https:"&&(i=443);let n=[t.hostname.toUpperCase()];typeof i=="number"&&n.push(`${n[0]}:${i}`);for(let s of r.split(",").map(o=>o.trim().toUpperCase()).filter(o=>o))if(s==="*"||n.some(o=>o===s||o.endsWith(`.${s}`)||s.startsWith(".")&&o.endsWith(`${s}`)))return!0;return!1}function CMt(t){let e=t.toLowerCase();return e==="localhost"||e.startsWith("127.")||e.startsWith("[::1]")||e.startsWith("[0:0:0:0:0:0:0:1]")}var BF=class extends URL{constructor(e,r){super(e,r),this._decodedUsername=decodeURIComponent(super.username),this._decodedPassword=decodeURIComponent(super.password)}get username(){return this._decodedUsername}get password(){return this._decodedPassword}}});var Vke=A(mi=>{"use strict";var IMt=mi&&mi.__createBinding||(Object.create?(function(t,e,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(e,r);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,i,n)}):(function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]})),SMt=mi&&mi.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),TF=mi&&mi.__importStar||(function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var i=[];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(i[i.length]=n);return i},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i=t(e),n=0;n<i.length;n++)i[n]!=="default"&&IMt(r,e,i[n]);return SMt(r,e),r}})(),rn=mi&&mi.__awaiter||function(t,e,r,i){function n(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(fun Line truncated
`:case"\r":case" ":case" ":continue;default:throw Error("invalid base64 string.")}switch(n){case 0:o=s,n=1;break;case 1:r[i++]=o<<2|(s&48)>>4,o=s,n=2;break;case 2:r[i++]=(o&15)<<4|(s&60)>>2,o=s,n=3;break;case 3:r[i++]=(o&3)<<6|s,n=0;break}}if(n==1)throw Error("invalid base64 string.");return r.subarray(0,i)}gC.base64decode=JUt;function YUt(t){let e="",r=0,i,n=0;for(let s=0;s<t.length;s++)switch(i=t[s],r){case 0:e+=$d[i>>2],n=(i&3)<<4,r=1;break;case 1:e+=$d[n|i>>4],n=(i&15)<<2,r=2;break;case 2:e+=$d[n|i>>6],e+=$d[i&63],r=0;break}return r&&(e+=$d[n],e+="=",r==1&&(e+="=")),e}gC.base64encode=YUt});var KQe=A(zF=>{"use strict";Object.defineProperty(zF,"__esModule",{value:!0});zF.utf8read=void 0;var see=t=>String.fromCharCode.apply(String,t);function KUt(t){if(t.length<1)return"";let e=0,r=[],i=[],n=0,s,o=t.length;for(;e<o;)s=t[e++],s<128?i[n++]=s:s>191&&s<224?i[n++]=(s&31)<<6|t[e++]&63:s>239&&s<365?(s=((s&7)<<18|(t[e++]&63)<<12|(t[e++]&63)<<6|t[e++]&63)-65536,i[n++]=55296+(s>>10),i[n++]=56320+(s&1023)):i[n++]=(s&15)<<12|(t[e++]&63)<<6|t[e++]&63,n>8191&&(r.push(see(i)),n=0);return r.length?(n&&r.push(see(i.slice(0,n))),r.join("")):see(i.slice(0,n))}zF.utf8read=KUt});var pR=A(Jf=>{"use strict";Object.defineProperty(Jf,"__esModule",{value:!0});Jf.WireType=Jf.mergeBinaryOptions=Jf.UnknownFieldHandler=void 0;var XUt;(function(t){t.symbol=Symbol.for("protobuf-ts/unknown"),t.onRead=(r,i,n,s,o)=>{(e(i)?i[t.symbol]:i[t.symbol]=[]).push({no:n,wireType:s,data:o})},t.onWrite=(r,i,n)=>{for(let{no:s,wireType:o,data:a}of t.list(i))n.tag(s,o).raw(a)},t.list=(r,i)=>{if(e(r)){let n=r[t.symbol];return i?n.filter(s=>s.no==i):n}return[]},t.last=(r,i)=>t.list(r,i).slice(-1)[0];let e=r=>r&&Array.isArray(r[t.symbol])})(XUt=Jf.UnknownFieldHandler||(Jf.UnknownFieldHandler={}));function ZUt(t,e){return Object.assign(Object.assign({},t),e)}Jf.mergeBinaryOptions=ZUt;var eqt;(function(t){t[t.Varint=0]="Varint",t[t.Bit64=1]="Bit64",t[t.LengthDelimited=2]="LengthDelimited",t[t.StartGroup=3]="StartGroup",t[t.EndGroup=4]="EndGroup",t[t.Bit32=5]="Bit32"})(eqt=Jf.WireType||(Jf.WireType={}))});var $F=A(xa=>{"use strict";Object.defineProperty(xa,"__esModule",{value:!0});xa.varint32read=xa.varint32write=xa.int64toString=xa.int64fromString=xa.varint64write=xa.varint64read=void 0;function tqt(){let t=0,e=0;for(let i=0;i<28;i+=7){let n=this.buf[this.pos++];if(t|=(n&127)<<i,(n&128)==0)return this.assertBounds(),[t,e]}let r=this.buf[this.pos++];if(t|=(r&15)<<28,e=(r&112)>>4,(r&128)==0)return this.assertBounds(),[t,e];for(let i=3;i<=31;i+=7){let n=this.buf[this.pos++];if(e|=(n&127)<<i,(n&128)==0)return this.assertBounds(),[t,e]}throw new Error("invalid varint")}xa.varint64read=tqt;function rqt(t,e,r){for(let s=0;s<28;s=s+7){let o=t>>>s,a=!(!(o>>>7)&&e==0),c=(a?o|128:o)&255;if(r.push(c),!a)return}let i=t>>>28&15|(e&7)<<4,n=e>>3!=0;if(r.push((n?i|128:i)&255),!!n){for(let s=3;s<31;s=s+7){let o=e>>>s,a=!!(o>>>7),c=(a?o|128:o)&255;if(r.push(c),!a)return}r.push(e>>>31&1)}}xa.varint64write=rqt;var VF=65536*65536;function iqt(t){let e=t[0]=="-";e&&(t=t.slice(1));let r=1e6,i=0,n=0;function s(o,a){let c=Number(t.slice(o,a));n*=r,i=i*r+c,i>=VF&&(n=n+(i/VF|0),i=i%VF)}return s(-24,-18),s(-18,-12),s(-12,-6),s(-6),[e,i,n]}xa.int64fromString=iqt;function nqt(t,e){if(e>>>0<=2097151)return""+(VF*e+(t>>>0));let r=t&16777215,i=(t>>>24|e<<8)>>>0&16777215,n=e>>16&65535,s=r+i*6777216+n*6710656,o=i+n*8147497,a=n*2,c=1e7;s>=c&&(o+=Math.floor(s/c),s%=c),o>=c&&(a+=Math.floor(o/c),o%=c);function l(u,f){let h=u?String(u):"";return f?"0000000".slice(h.length)+h:h}return l(a,0)+l(o,a)+l(s,1)}xa.int64toString=nqt;function sqt(t,e){if(t>=0){for(;t>127;)e.push(t&127|128),t=t>>>7;e.push(t)}else{for(let r=0;r<9;r++)e.push(t&127|128),t=t>>7;e.push(1)}}xa.varint32write=sqt;function oqt(){let t=this.buf[this.pos++],e=t&127;if((t&128)==0)return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<7,(t&128)==0)return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<14,(t&128)==0)return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<21,(t&128)==0)return this.assertBounds(),e;t=this.buf[this.pos++],e|=(t&15)<<28;for(let r=5;(t&128)!==0&&r<10;r++)t=this.buf[this.pos++];if((t&128)!=0)throw new Error("invalid varint");return this.assertBounds(),e>>>0}xa.varint32read=oqt});var Km=A(Ym=>{"use strict";Object.defineProperty(Ym,"__esModule",{value:!0});Ym.PbLong=Ym.PbULong=Ym.detectBi=void 0;var mR=$F(),Ur;function XQe(){let t=new DataView(new ArrayBuffer(8));Ur=globalThis.BigInt!==void 0&&typeof t.getBigInt64=="function"&&typeof t.getBigUint64=="function"&&typeof t.setBigInt64=="function"&&typeof t.setBigUint64=="function"?{MIN:BigInt("-9223372036854775808"),MAX:BigInt("9223372036854775807"),UMIN:BigInt("0"),UMAX:BigInt("18446744073709551615"),C:BigInt,V:t}:void 0}Ym.detectBi=XQe;XQe();function ZQe(t){if(!t)throw new Error("BigInt unavailable, see https://github.com/timostamm/protobuf-ts/blob/v1.0.8/MANUAL.md#bigint-support")}var eLe=/^-?[0-9]+$/,JF=4294967296,WF=2147483648, Line truncated
`)}};bM.RpcError=zee});var $ee=A(CM=>{"use strict";Object.defineProperty(CM,"__esModule",{value:!0});CM.mergeRpcOptions=void 0;var OLe=ri();function _3t(t,e){if(!e)return t;let r={};wM(t,r),wM(e,r);for(let i of Object.keys(e)){let n=e[i];switch(i){case"jsonOptions":r.jsonOptions=OLe.mergeJsonOptions(t.jsonOptions,r.jsonOptions);break;case"binaryOptions":r.binaryOptions=OLe.mergeBinaryOptions(t.binaryOptions,r.binaryOptions);break;case"meta":r.meta={},wM(t.meta,r.meta),wM(e.meta,r.meta);break;case"interceptors":r.interceptors=t.interceptors?t.interceptors.concat(n):n.concat();break}}return r}CM.mergeRpcOptions=_3t;function wM(t,e){if(!t)return;let r=e;for(let[i,n]of Object.entries(t))n instanceof Date?r[i]=new Date(n.getTime()):Array.isArray(n)?r[i]=n.concat():r[i]=n}});var Jee=A(Yy=>{"use strict";Object.defineProperty(Yy,"__esModule",{value:!0});Yy.Deferred=Yy.DeferredState=void 0;var rh;(function(t){t[t.PENDING=0]="PENDING",t[t.REJECTED=1]="REJECTED",t[t.RESOLVED=2]="RESOLVED"})(rh=Yy.DeferredState||(Yy.DeferredState={}));var Wee=class{constructor(e=!0){this._state=rh.PENDING,this._promise=new Promise((r,i)=>{this._resolve=r,this._reject=i}),e&&this._promise.catch(r=>{})}get state(){return this._state}get promise(){return this._promise}resolve(e){if(this.state!==rh.PENDING)throw new Error(`cannot resolve ${rh[this.state].toLowerCase()}`);this._resolve(e),this._state=rh.RESOLVED}reject(e){if(this.state!==rh.PENDING)throw new Error(`cannot reject ${rh[this.state].toLowerCase()}`);this._reject(e),this._state=rh.REJECTED}resolvePending(e){this._state===rh.PENDING&&this.resolve(e)}rejectPending(e){this._state===rh.PENDING&&this.reject(e)}};Yy.Deferred=Wee});var Kee=A(IM=>{"use strict";Object.defineProperty(IM,"__esModule",{value:!0});IM.RpcOutputStreamController=void 0;var PLe=Jee(),Ky=ri(),Yee=class{constructor(){this._lis={nxt:[],msg:[],err:[],cmp:[]},this._closed=!1}onNext(e){return this.addLis(e,this._lis.nxt)}onMessage(e){return this.addLis(e,this._lis.msg)}onError(e){return this.addLis(e,this._lis.err)}onComplete(e){return this.addLis(e,this._lis.cmp)}addLis(e,r){return r.push(e),()=>{let i=r.indexOf(e);i>=0&&r.splice(i,1)}}clearLis(){for(let e of Object.values(this._lis))e.splice(0,e.length)}get closed(){return this._closed!==!1}notifyNext(e,r,i){Ky.assert((e?1:0)+(r?1:0)+(i?1:0)<=1,"only one emission at a time"),e&&this.notifyMessage(e),r&&this.notifyError(r),i&&this.notifyComplete()}notifyMessage(e){Ky.assert(!this.closed,"stream is closed"),this.pushIt({value:e,done:!1}),this._lis.msg.forEach(r=>r(e)),this._lis.nxt.forEach(r=>r(e,void 0,!1))}notifyError(e){Ky.assert(!this.closed,"stream is closed"),this._closed=e,this.pushIt(e),this._lis.err.forEach(r=>r(e)),this._lis.nxt.forEach(r=>r(void 0,e,!1)),this.clearLis()}notifyComplete(){Ky.assert(!this.closed,"stream is closed"),this._closed=!0,this.pushIt({value:null,done:!0}),this._lis.cmp.forEach(e=>e()),this._lis.nxt.forEach(e=>e(void 0,void 0,!0)),this.clearLis()}[Symbol.asyncIterator](){return this._itState||(this._itState={q:[]}),this._closed===!0?this.pushIt({value:null,done:!0}):this._closed!==!1&&this.pushIt(this._closed),{next:()=>{let e=this._itState;Ky.assert(e,"bad state"),Ky.assert(!e.p,"iterator contract broken");let r=e.q.shift();return r?"value"in r?Promise.resolve(r):Promise.reject(r):(e.p=new PLe.Deferred,e.p.promise)}}}pushIt(e){let r=this._itState;if(r)if(r.p){let i=r.p;Ky.assert(i.state==PLe.DeferredState.PENDING,"iterator contract broken"),"value"in e?i.resolve(e):i.reject(e),delete r.p}else r.q.push(e)}};IM.RpcOutputStreamController=Yee});var Zee=A(vC=>{"use strict";var R3t=vC&&vC.__awaiter||function(t,e,r,i){function n(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(function(s,o){function a(u){try{l(i.next(u))}catch(f){o(f)}}function c(u){try{l(i.throw(u))}catch(f){o(f)}}function l(u){u.done?s(u.value):n(u.value).then(a,c)}l((i=i.apply(t,e||[])).next())})};Object.defineProperty(vC,"__esModule",{value:!0});vC.UnaryCall=void 0;var Xee=class{constructor(e,r,i,n,s,o,a){this.method=e,this.requestHeaders=r,this.request=i,this.headers=n,this.response=s,this.status=o,this.trailers=a}then(e,r){return this.promiseFinished().then(i=>e?Promise.resolve(e(i)):i,i=>r?Promise.resolve(r(i)):Promise.reject(i))}promiseFinished(){return R3t(this,void 0,void 0,function*(){let[e,r,i,n]=yield Promise.all([this.headers,this.response,this.status,this.trailers]);return{method:this.method,requestHeaders:this.requestHeaders,request:this.request,headers:e,response:r,status:i,trailers:n}})}};vC.UnaryCall=Xee});var tte=A(xC=>{"use strict";var T3t=xC&&xC.__awaiter||function(t,e,r,i){function n(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(function(s,o){function a(u){try{l(i.next(u))}catch(f){o(f)}}function c(u){try{l(i.throw(u))}catch(f){o(f)}}function l(u){u.done?s(u.value):n(u.value).then(a,c)}l((i=i.apply(t,e||[])).next())})};Object.defineProperty(xC,"__esModule",{value:!0});xC.ServerStreamingCal Line truncated
globstar while`,e,f,r,h,d),this.matchOne(e.slice(f),r.slice(h),i))return this.debug("globstar found match!",f,a,d),!0;if(d==="."||d===".."||!n.dot&&d.charAt(0)==="."){this.debug("dot detected!",e,f,r,h);break}this.debug("globstar swallow a segment, and continue"),f++}return!!(i&&(this.debug(`
>>> no match, partial?`,e,f,r,h),f===a))}var p;if(typeof l=="string"?(p=u===l,this.debug("string match",l,u,p)):(p=u.match(l),this.debug("pattern match",l,u,p)),!p)return!1}if(s===a&&o===c)return!0;if(s===a)return i;if(o===c)return s===a-1&&e[s]==="";throw new Error("wtf?")}braceExpand(){return AFe(this.pattern,this.options)}parse(e,r){RM(e);let i=this.options;if(e==="**")if(i.noglobstar)e="*";else return _u;if(e==="")return"";let n="",s=!1,o=!1,a=[],c=[],l,u=!1,f=-1,h=-1,d,p,m,y=e.charAt(0)===".",g=i.dot||y,E=()=>y?"":g?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)",w=x=>x.charAt(0)==="."?"":i.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)",C=()=>{if(l){switch(l){case"*":n+=Qte,s=!0;break;case"?":n+=Mte,s=!0;break;default:n+="\\"+l;break}this.debug("clearStateChar %j %j",l,n),l=!1}};for(let x=0,M;x<e.length&&(M=e.charAt(x));x++){if(this.debug("%s %s %s %j",e,x,n,M),o){if(M==="/")return!1;dFe[M]&&(n+="\\"),n+=M,o=!1;continue}switch(M){case"/":return!1;case"\\":if(u&&e.charAt(x+1)==="-"){n+=M;continue}C(),o=!0;continue;case"?":case"*":case"+":case"@":case"!":if(this.debug("%s %s %s %j <-- stateChar",e,x,n,M),u){this.debug(" in class"),M==="!"&&x===h+1&&(M="^"),n+=M;continue}this.debug("call clearStateChar %j",l),C(),l=M,i.noext&&C();continue;case"(":{if(u){n+="(";continue}if(!l){n+="\\(";continue}let P={type:l,start:x-1,reStart:n.length,open:hFe[l].open,close:hFe[l].close};this.debug(this.pattern," ",P),a.push(P),n+=P.open,P.start===0&&P.type!=="!"&&(y=!0,n+=w(e.slice(x+1))),this.debug("plType %j %j",l,n),l=!1;continue}case")":{let P=a[a.length-1];if(u||!P){n+="\\)";continue}a.pop(),C(),s=!0,p=P,n+=p.close,p.type==="!"&&c.push(Object.assign(p,{reEnd:n.length}));continue}case"|":{let P=a[a.length-1];if(u||!P){n+="\\|";continue}C(),n+="|",P.start===0&&P.type!=="!"&&(y=!0,n+=w(e.slice(x+1)));continue}case"[":if(C(),u){n+="\\"+M;continue}u=!0,h=x,f=n.length,n+=M;continue;case"]":if(x===h+1||!u){n+="\\"+M;continue}d=e.substring(h+1,x);try{RegExp("["+E4t(g4t(d))+"]"),n+=M}catch{n=n.substring(0,f)+"(?:$.)"}s=!0,u=!1;continue;default:C(),dFe[M]&&!(M==="^"&&u)&&(n+="\\"),n+=M;break}}for(u&&(d=e.slice(h+1),m=this.parse(d,Lte),n=n.substring(0,f)+"\\["+m[0],s=s||m[1]),p=a.pop();p;p=a.pop()){let x;x=n.slice(p.reStart+p.open.length),this.debug("setting tail",n,p),x=x.replace(/((?:\\{2}){0,64})(\\?)\|/g,(P,V,k)=>(k||(k="\\"),V+V+k+"|")),this.debug(`tail=%j
%s`,x,x,p,n);let M=p.type==="*"?Qte:p.type==="?"?Mte:"\\"+p.type;s=!0,n=n.slice(0,p.reStart)+M+"\\("+x}C(),o&&(n+="\\\\");let N=p4t[n.charAt(0)];for(let x=c.length-1;x>-1;x--){let M=c[x],P=n.slice(0,M.reStart),V=n.slice(M.reStart,M.reEnd-8),k=n.slice(M.reEnd),H=n.slice(M.reEnd-8,M.reEnd)+k,z=P.split(")").length,ie=P.split("(").length-z,ne=k;for(let K=0;K<ie;K++)ne=ne.replace(/\)[+*?]?/,"");k=ne;let we=k===""&&r!==Lte?"(?:$|\\/)":"";n=P+V+k+we+H}if(n!==""&&s&&(n="(?=.)"+n),N&&(n=E()+n),r===Lte)return[n,s];if(i.nocase&&!s&&(s=e.toUpperCase()!==e.toLowerCase()),!s)return A4t(e);let F=i.nocase?"i":"";try{return Object.assign(new RegExp("^"+n+"$",F),{_glob:e,_src:n})}catch{return new RegExp("$.")}}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let e=this.set;if(!e.length)return this.regexp=!1,this.regexp;let r=this.options,i=r.noglobstar?Qte:r.dot?h4t:d4t,n=r.nocase?"i":"",s=e.map(o=>(o=o.map(a=>typeof a=="string"?y4t(a):a===_u?_u:a._src).reduce((a,c)=>(a[a.length-1]===_u&&c===_u||a.push(c),a),[]),o.forEach((a,c)=>{a!==_u||o[c-1]===_u||(c===0?o.length>1?o[c+1]="(?:\\/|"+i+"\\/)?"+o[c+1]:o[c]=i:c===o.length-1?o[c-1]+="(?:\\/|"+i+")?":(o[c-1]+="(?:\\/|\\/"+i+"\\/)"+o[c+1],o[c+1]=_u))}),o.filter(a=>a!==_u).join("/"))).join("|");s="^(?:"+s+")$",this.negate&&(s="^(?!"+s+").*$");try{this.regexp=new RegExp(s,n)}catch{this.regexp=!1}return this.regexp}match(e,r=this.partial){if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return e==="";if(e==="/"&&r)return!0;let i=this.options;Fte.sep!=="/"&&(e=e.split(Fte.sep).join("/")),e=e.split(pFe),this.debug(this.pattern,"split",e);let n=this.set;this.debug(this.pattern,"set",n);let s;for(let o=e.length-1;o>=0&&(s=e[o],!s);o--);for(let o=0;o<n.length;o++){let a=n[o],c=e;if(i.matchBase&&a.length===1&&(c=[s]),this.matchOne(c,a,r))return i.flipNegate?!0:!this.negate}return i.flipNegate?!1:this.negate}static defaults(e){return Ic.defaults(e).Minimatch}};Ic.Minimatch=QC});var CFe=A((m$r,wFe)=>{wFe.exports=bFe;var Gte=require("fs"),{EventEmitter:b4t}=require("events"),{Minimatch:qte}=gFe(),{resolve:w4t}=require("path");function C4t(t,e){return new Promise((r,i)=>{Gte.readdir(t,{withFileTypes:!0},(n,s)=>{if(n)switch(n.code){case"ENOTDIR":e?i(n):r([]);break;case"ENOTSUP":case"ENOENT":case"ENAMETOOLONG":case"UNKNOWN":r([]);break;default:i(n);break}else r(s)})})}function yFe(t,e){return new Promise((r,i)=>{(e?Gte.stat:Gte.lstat)(t,(s,o)=>{s?s.code==="ENOENT"?r(e?yFe(t,!1):null):r(null):r(o)})})}async function*EFe(t,e,r,i,n,s){let o=await C4t(e+t,s);for(let a of o){let c=a.name;c===void 0&&(c=a,i=!0);let l=t+"/"+c,u=l.slice(1),f=e+"/"+u,h=null;(i||r)&&(h=await yFe(f,r)),!h&&a.name!==void 0&&(h=a),h===null&&(h={isDirectory:()=>!1}),h.isDirectory()?n(u)||(yield{relative:u,absolute:f,stats:h},yield*EFe(l,e,r,i,n,!1)):yield{relative:u,absolute:f,stats:h}}}async function*I4t(t,e,r,i){yield*EFe("",t,e,r,i,!0)}function S4t(t){return{pattern:t.pattern,dot:!!t.dot,noglobstar:!!t.noglobstar,matchBase:!!t.matchBase,nocase:!!t.nocase,ignore:t.ignore,skip:t.skip,follow:!!t.follow,stat:!!t.stat,nodir:!!t.nodir,mark:!!t.mark,silent:!!t.silent,absolute:!!t.absolute}}var TM=class extends b4t{constructor(e,r,i){if(super(),typeof r=="function"&&(i=r,r=null),this.options=S4t(r||{}),this.matchers=[],this.options.pattern){let n=Array.isArray(this.options.pattern)?this.options.pattern:[this.options.pattern];this.matchers=n.map(s=>new qte(s,{dot:this.options.dot,noglobstar:this.options.noglobstar,matchBase:this.options.matchBase,nocase:this.options.nocase}))}if(this.ignoreMatchers=[],this.options.ignore){let n=Array.isArray(this.options.ignore)?this.options.ignore:[this.options.ignore];this.ignoreMatchers=n.map(s=>new qte(s,{dot:!0}))}if(this.skipMatchers=[],this.options.skip){let n=Array.isArray(this.options.skip)?this.options.skip:[this.options.skip];this.skipMatchers=n.map(s=>new qte(s,{dot:!0}))}this.iterator=I4t(w4t(e||"."),this.options.follow,this.options.stat,this._shouldSkipDirectory.bind(this)),this.paused=!1,this.inactive=!1,this.aborted=!1,i&&(this._matches=[],this.on("match",n=>this._matches.push(this.options.absolute?n.absolute:n.relative)),this.on("error",n=>i(n)),this.on("end",()=>i(null,this._matches))),setTimeout(()=>this._next(),0)}_shouldSkipDirectory(e){return this.skipMatchers.some(r=>r.match(e))}_fileMatches(e,r){let i=e+(r?"/":"");return(this.matchers.length===0||this.matchers.some(n=>n.match(i)))&&!this.ignoreMatchers.some(n=>n.match(i))&&(!this.options.nodir||!r)}_next(){!this.paused&&!this.aborted?this.iterator.next().then(e=>{if(e.done)this.emit("end");else{let r=e.value.stats.isDirectory();if(this._fileMatches(e.value.relative,r)){let i=e.value.relative,n=e.value.absolute;this.options.mark&&r&&(i+="/",n+="/"),this.options.stat?this.emit("match",{relative:i,absolute:n,stat:e.value.stats}):this.emit("match",{relative:i,absolute:n})}this._next(this.iterator)}}).catch(e=>{this.abort(),this.emit("error",e),!e.code&&!this.options.silent&&console.erro Line truncated
`,D);D=Y===-1?T.length:Y}else if(U!==-1&&T[D]==="/"&&T[D+1]==="*"){let Y=T.indexOf("*/",D);Y!==-1?(D=Y+2,U=T.indexOf("*/",D)):(B+=T[D],D++)}else B+=T[D],D++;return B}function fe(T){let B=Z(T.toString()),D=B.match(he);if(D||(D=B.match(b)),!D)throw new Error(`could not parse args in autoInject
Source:
`+B);let[,U]=D;return U.replace(/\s/g,"").split(v).map(Y=>Y.replace(L,"").trim())}function Ne(T,B){var D={};return Object.keys(T).forEach(U=>{var Y=T[U],ee,re=d(Y),oe=!re&&Y.length===1||re&&Y.length===0;if(Array.isArray(Y))ee=[...Y],Y=ee.pop(),D[U]=ee.concat(ee.length>0?de:Y);else if(oe)D[U]=Y;else{if(ee=fe(Y),Y.length===0&&!re&&ee.length===0)throw new Error("autoInject task functions require explicit parameters.");re||ee.pop(),D[U]=ee.concat(de)}function de(Je,nr){var pr=ee.map(or=>Je[or]);pr.push(nr),y(Y)(...pr)}}),te(D,B)}class Ce{constructor(){this.head=this.tail=null,this.length=0}removeLink(B){return B.prev?B.prev.next=B.next:this.head=B.next,B.next?B.next.prev=B.prev:this.tail=B.prev,B.prev=B.next=null,this.length-=1,B}empty(){for(;this.head;)this.shift();return this}insertAfter(B,D){D.prev=B,D.next=B.next,B.next?B.next.prev=D:this.tail=D,B.next=D,this.length+=1}insertBefore(B,D){D.prev=B.prev,D.next=B,B.prev?B.prev.next=D:this.head=D,B.prev=D,this.length+=1}unshift(B){this.head?this.insertBefore(this.head,B):et(this,B)}push(B){this.tail?this.insertAfter(this.tail,B):et(this,B)}shift(){return this.head&&this.removeLink(this.head)}pop(){return this.tail&&this.removeLink(this.tail)}toArray(){return[...this]}*[Symbol.iterator](){for(var B=this.head;B;)yield B.data,B=B.next}remove(B){for(var D=this.head;D;){var{next:U}=D;B(D)&&this.removeLink(D),D=U}return this}}function et(T,B){T.length=1,T.head=T.tail=B}function It(T,B,D){if(B==null)B=1;else if(B===0)throw new RangeError("Concurrency must not be zero");var U=y(T),Y=0,ee=[];let re={error:[],drain:[],saturated:[],unsaturated:[],empty:[]};function oe(at,$e){re[at].push($e)}function de(at,$e){let ct=(...ar)=>{Je(at,ct),$e(...ar)};re[at].push(ct)}function Je(at,$e){if(!at)return Object.keys(re).forEach(ct=>re[ct]=[]);if(!$e)return re[at]=[];re[at]=re[at].filter(ct=>ct!==$e)}function nr(at,...$e){re[at].forEach(ct=>ct(...$e))}var pr=!1;function or(at,$e,ct,ar){if(ar!=null&&typeof ar!="function")throw new Error("task callback must be a function");mr.started=!0;var ci,Gn;function Uc(bg,...DB){if(bg)return ct?Gn(bg):ci();if(DB.length<=1)return ci(DB[0]);ci(DB)}var V0=mr._createTaskItem(at,ct?Uc:ar||Uc);if($e?mr._tasks.unshift(V0):mr._tasks.push(V0),pr||(pr=!0,l(()=>{pr=!1,mr.process()})),ct||!ar)return new Promise((bg,DB)=>{ci=bg,Gn=DB})}function Mc(at){return function($e,...ct){Y-=1;for(var ar=0,ci=at.length;ar<ci;ar++){var Gn=at[ar],Uc=ee.indexOf(Gn);Uc===0?ee.shift():Uc>0&&ee.splice(Uc,1),Gn.callback($e,...ct),$e!=null&&nr("error",$e,Gn.data)}Y<=mr.concurrency-mr.buffer&&nr("unsaturated"),mr.idle()&&nr("drain"),mr.process()}}function z0(at){return at.length===0&&mr.idle()?(l(()=>nr("drain")),!0):!1}let Eg=at=>$e=>{if(!$e)return new Promise((ct,ar)=>{de(at,(ci,Gn)=>{if(ci)return ar(ci);ct(Gn)})});Je(at),oe(at,$e)};var NB=!1,mr={_tasks:new Ce,_createTaskItem(at,$e){return{data:at,callback:$e}},*[Symbol.iterator](){yield*mr._tasks[Symbol.iterator]()},concurrency:B,payload:D,buffer:B/4,started:!1,paused:!1,push(at,$e){return Array.isArray(at)?z0(at)?void 0:at.map(ct=>or(ct,!1,!1,$e)):or(at,!1,!1,$e)},pushAsync(at,$e){return Array.isArray(at)?z0(at)?void 0:at.map(ct=>or(ct,!1,!0,$e)):or(at,!1,!0,$e)},kill(){Je(),mr._tasks.empty()},unshift(at,$e){return Array.isArray(at)?z0(at)?void 0:at.map(ct=>or(ct,!0,!1,$e)):or(at,!0,!1,$e)},unshiftAsync(at,$e){return Array.isArray(at)?z0(at)?void 0:at.map(ct=>or(ct,!0,!0,$e)):or(at,!0,!0,$e)},remove(at){mr._tasks.remove(at)},process(){if(!NB){for(NB=!0;!mr.paused&&Y<mr.concurrency&&mr._tasks.length;){var at=[],$e=[],ct=mr._tasks.length;mr.payload&&(ct=Math.min(ct,mr.payload));for(var ar=0;ar<ct;ar++){var ci=mr._tasks.shift();at.push(ci),ee.push(ci),$e.push(ci.data)}Y+=1,mr._tasks.length===0&&nr("empty"),Y===mr.concurrency&&nr("saturated");var Gn=z(Mc(at));U($e,Gn)}NB=!1}},length(){return mr._tasks.length},running(){return Y},workersList(){return ee},idle(){return mr._tasks.length+Y===0},pause(){mr.paused=!0},resume(){mr.paused!==!1&&(mr.paused=!1,l(mr.process))}};return Object.defineProperties(mr,{saturated:{writable:!1,value:Eg("saturated")},unsaturated:{writable:!1,value:Eg("unsaturated")},empty:{writable:!1,value:Eg("empty")},drain:{writable:!1,value:Eg("drain")},error:{writable:!1,value:Eg("error")}}),mr}function bt(T,B){return It(T,1,B)}function dt(T,B,D){return It(T,B,D)}function dr(T,B,D,U){U=x(U);var Y=y(D);return ir(T,(ee,re,oe)=>{Y(B,ee,(de,Je)=>{B=Je,oe(de)})},ee=>U(ee,B))}var sr=g(dr,4);function Fr(...T){var B=T.map(y);return function(...D){var U=this,Y=D[D.length-1];return typeof Y=="function"?D.pop():Y=W(),sr(B,D,(ee,re,oe)=>{re.apply(U,ee.concat((de,...Je)=>{oe(de,Je)}))},(ee,re)=>Y(ee,...re)),Y[G]}}function ye(...T){return Fr(...T.reverse())}function $(T,B,D,U){return w(ne(B),T,D,U)}var O=g($,4);function J(T,B,D,U){var Y=y(D);return O(T,B,(ee,re)=>{Y(ee,(oe,...de)=>oe?re(oe):re(oe,de))},(ee,re)=>{for(var oe=[],de=0;de<re.length;de++)re[de]&&(oe=oe.concat(...re[de]));return U(ee,oe)})}var X=g(J,4);function se( Line truncated
GFS4: `),console.error(t)});Ci[Rs]||(DFe=global[Rs]||[],PFe(Ci,DFe),Ci.close=(function(t){function e(r,i){return t.call(Ci,r,function(n){n||OFe(),typeof i=="function"&&i.apply(this,arguments)})}return Object.defineProperty(e,kM,{value:t}),e})(Ci.close),Ci.closeSync=(function(t){function e(r){t.apply(Ci,arguments),OFe()}return Object.defineProperty(e,kM,{value:t}),e})(Ci.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",function(){Zy(Ci[Rs]),require("assert").equal(Ci[Rs].length,0)}));var DFe;global[Rs]||PFe(global,Ci[Rs]);Vte.exports=jte(O4t(Ci));process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!Ci.__patched&&(Vte.exports=jte(Ci),Ci.__patched=!0);function jte(t){N4t(t),t.gracefulify=jte,t.createReadStream=N,t.createWriteStream=F;var e=t.readFile;t.readFile=r;function r(P,V,k){return typeof V=="function"&&(k=V,V=null),H(P,V,k);function H(z,ie,ne,we){return e(z,ie,function(K){K&&(K.code==="EMFILE"||K.code==="ENFILE")?LC([H,[z,ie,ne],K,we||Date.now(),Date.now()]):typeof ne=="function"&&ne.apply(this,arguments)})}}var i=t.writeFile;t.writeFile=n;function n(P,V,k,H){return typeof k=="function"&&(H=k,k=null),z(P,V,k,H);function z(ie,ne,we,K,ce){return i(ie,ne,we,function(Ee){Ee&&(Ee.code==="EMFILE"||Ee.code==="ENFILE")?LC([z,[ie,ne,we,K],Ee,ce||Date.now(),Date.now()]):typeof K=="function"&&K.apply(this,arguments)})}}var s=t.appendFile;s&&(t.appendFile=o);function o(P,V,k,H){return typeof k=="function"&&(H=k,k=null),z(P,V,k,H);function z(ie,ne,we,K,ce){return s(ie,ne,we,function(Ee){Ee&&(Ee.code==="EMFILE"||Ee.code==="ENFILE")?LC([z,[ie,ne,we,K],Ee,ce||Date.now(),Date.now()]):typeof K=="function"&&K.apply(this,arguments)})}}var a=t.copyFile;a&&(t.copyFile=c);function c(P,V,k,H){return typeof k=="function"&&(H=k,k=0),z(P,V,k,H);function z(ie,ne,we,K,ce){return a(ie,ne,we,function(Ee){Ee&&(Ee.code==="EMFILE"||Ee.code==="ENFILE")?LC([z,[ie,ne,we,K],Ee,ce||Date.now(),Date.now()]):typeof K=="function"&&K.apply(this,arguments)})}}var l=t.readdir;t.readdir=f;var u=/^v[0-5]\./;function f(P,V,k){typeof V=="function"&&(k=V,V=null);var H=u.test(process.version)?function(ne,we,K,ce){return l(ne,z(ne,we,K,ce))}:function(ne,we,K,ce){return l(ne,we,z(ne,we,K,ce))};return H(P,V,k);function z(ie,ne,we,K){return function(ce,Ee){ce&&(ce.code==="EMFILE"||ce.code==="ENFILE")?LC([H,[ie,ne,we],ce,K||Date.now(),Date.now()]):(Ee&&Ee.sort&&Ee.sort(),typeof we=="function"&&we.call(this,ce,Ee))}}}if(process.version.substr(0,4)==="v0.8"){var h=D4t(t);g=h.ReadStream,w=h.WriteStream}var d=t.ReadStream;d&&(g.prototype=Object.create(d.prototype),g.prototype.open=E);var p=t.WriteStream;p&&(w.prototype=Object.create(p.prototype),w.prototype.open=C),Object.defineProperty(t,"ReadStream",{get:function(){return g},set:function(P){g=P},enumerable:!0,configurable:!0}),Object.defineProperty(t,"WriteStream",{get:function(){return w},set:function(P){w=P},enumerable:!0,configurable:!0});var m=g;Object.defineProperty(t,"FileReadStream",{get:function(){return m},set:function(P){m=P},enumerable:!0,configurable:!0});var y=w;Object.defineProperty(t,"FileWriteStream",{get:function(){return y},set:function(P){y=P},enumerable:!0,configurable:!0});function g(P,V){return this instanceof g?(d.apply(this,arguments),this):g.apply(Object.create(g.prototype),arguments)}function E(){var P=this;M(P.path,P.flags,P.mode,function(V,k){V?(P.autoClose&&P.destroy(),P.emit("error",V)):(P.fd=k,P.emit("open",k),P.read())})}function w(P,V){return this instanceof w?(p.apply(this,arguments),this):w.apply(Object.create(w.prototype),arguments)}function C(){var P=this;M(P.path,P.flags,P.mode,function(V,k){V?(P.destroy(),P.emit("error",V)):(P.fd=k,P.emit("open",k))})}function N(P,V){return new t.ReadStream(P,V)}function F(P,V){return new t.WriteStream(P,V)}var x=t.open;t.open=M;function M(P,V,k,H){return typeof k=="function"&&(H=k,k=null),z(P,V,k,H);function z(ie,ne,we,K,ce){return x(ie,ne,we,function(Ee,Ye){Ee&&(Ee.code==="EMFILE"||Ee.code==="ENFILE")?LC([z,[ie,ne,we,K],Ee,ce||Date.now(),Date.now()]):typeof K=="function"&&K.apply(this,arguments)})}}return t}function LC(t){Zy("ENQUEUE",t[0].name,t[1]),Ci[Rs].push(t),zte()}var PM;function OFe(){for(var t=Date.now(),e=0;e<Ci[Rs].length;++e)Ci[Rs][e].length>2&&(Ci[Rs][e][3]=t,Ci[Rs][e][4]=t);zte()}function zte(){if(clearTimeout(PM),PM=void 0,Ci[Rs].length!==0){var t=Ci[Rs].shift(),e=t[0],r=t[1],i=t[2],n=t[3],s=t[4];if(n===void 0)Zy("RETRY",e.name,r),e.apply(null,r);else if(Date.now()-n>=6e4){Zy("TIMEOUT",e.name,r);var o=r.pop();typeof o=="function"&&o.call(null,i)}else{var a=Date.now()-s,c=Math.max(s-n,1),l=Math.min(c*1.2,100);a>=l?(Zy("RETRY",e.name,r),e.apply(null,r.concat([n]))):Ci[Rs].push(t)}PM===void 0&&(PM=setTimeout(zte,0))}}});var QM=A((b$r,kFe)=>{"use strict";var oh=t=>t!==null&&typeof t=="object"&&typeof t.pipe=="function";oh.writable=t=>oh(t)&&t.writable!==!1&&typeof t._write=="function"&&typeof t._writableState=="object";oh.readable=t=>oh(t)&&t.readable!==!1&&typeof t._read=="function"&&typeof t._readableState= Line truncated
`;super(r),this.name="AggregateError",this.errors=e}};Dre.exports={AggregateError:Nre,kEmptyObject:Object.freeze({}),once(t){let e=!1;return function(...r){e||(e=!0,t.apply(this,r))}},createDeferredPromise:function(){let t,e;return{promise:new Promise((i,n)=>{t=i,e=n}),resolve:t,reject:e}},promisify(t){return new Promise((e,r)=>{t((i,...n)=>i?r(i):e(...n))})},debuglog(){return function(){}},format(t,...e){return t.replace(/%([sdifj])/g,function(...[r,i]){let n=e.shift();return i==="f"?n.toFixed(6):i==="j"?JSON.stringify(n):i==="s"&&typeof n=="object"?`${n.constructor!==Object?n.constructor.name:""} {}`.trim():n.toString()})},inspect(t){switch(typeof t){case"string":if(t.includes("'"))if(t.includes('"')){if(!t.includes("`")&&!t.includes("${"))return`\`${t}\``}else return`"${t}"`;return`'${t}'`;case"number":return isNaN(t)?"NaN":Object.is(t,-0)?String(t):t;case"bigint":return`${String(t)}n`;case"boolean":case"undefined":return String(t);case"object":return"{}"}},types:{isAsyncFunction(t){return t instanceof A6t},isArrayBufferView(t){return ArrayBuffer.isView(t)}},isBlob:g6t,deprecate(t,e){return t},addAbortListener:require("events").addAbortListener||function(e,r){if(e===void 0)throw new ERR_INVALID_ARG_TYPE("signal","AbortSignal",e);xqe(e,"signal"),y6t(r,"listener");let i;return e.aborted?queueMicrotask(()=>r()):(e.addEventListener("abort",r,{__proto__:null,once:!0,[h6t]:!0}),i=()=>{e.removeEventListener("abort",r)}),{__proto__:null,[d6t](){var n;(n=i)===null||n===void 0||n()}}},AbortSignalAny:p6t.any||function(e){if(e.length===1)return e[0];let r=new m6t,i=()=>r.abort();return e.forEach(n=>{xqe(n,"signals"),n.addEventListener("abort",i,{once:!0})}),r.signal.addEventListener("abort",()=>{e.forEach(n=>n.removeEventListener("abort",i))},{once:!0}),r.signal}};Dre.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")});var Mo=A((NWr,Tqe)=>{"use strict";var{format:E6t,inspect:nU,AggregateError:b6t}=Xs(),w6t=globalThis.AggregateError||b6t,C6t=Symbol("kIsNodeError"),I6t=["string","function","number","object","Function","Object","boolean","bigint","symbol"],S6t=/^([A-Z][a-z0-9]*)+$/,B6t="__node_internal_",sU={};function rE(t,e){if(!t)throw new sU.ERR_INTERNAL_ASSERTION(e)}function _qe(t){let e="",r=t.length,i=t[0]==="-"?1:0;for(;r>=i+4;r-=3)e=`_${t.slice(r-3,r)}${e}`;return`${t.slice(0,r)}${e}`}function v6t(t,e,r){if(typeof e=="function")return rE(e.length<=r.length,`Code: ${t}; The provided arguments length (${r.length}) does not match the required ones (${e.length}).`),e(...r);let i=(e.match(/%[dfijoOs]/g)||[]).length;return rE(i===r.length,`Code: ${t}; The provided arguments length (${r.length}) does not match the required ones (${i}).`),r.length===0?e:E6t(e,...r)}function Ns(t,e,r){r||(r=Error);class i extends r{constructor(...s){super(v6t(t,e,s))}toString(){return`${this.name} [${t}]: ${this.message}`}}Object.defineProperties(i.prototype,{name:{value:r.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${t}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),i.prototype.code=t,i.prototype[C6t]=!0,sU[t]=i}function Rqe(t){let e=B6t+t.name;return Object.defineProperty(t,"name",{value:e}),t}function x6t(t,e){if(t&&e&&t!==e){if(Array.isArray(e.errors))return e.errors.push(t),e;let r=new w6t([e,t],e.message);return r.code=e.code,r}return t||e}var Ore=class extends Error{constructor(e="The operation was aborted",r=void 0){if(r!==void 0&&typeof r!="object")throw new sU.ERR_INVALID_ARG_TYPE("options","Object",r);super(e,r),this.code="ABORT_ERR",this.name="AbortError"}};Ns("ERR_ASSERTION","%s",Error);Ns("ERR_INVALID_ARG_TYPE",(t,e,r)=>{rE(typeof t=="string","'name' must be a string"),Array.isArray(e)||(e=[e]);let i="The ";t.endsWith(" argument")?i+=`${t} `:i+=`"${t}" ${t.includes(".")?"property":"argument"} `,i+="must be ";let n=[],s=[],o=[];for(let c of e)rE(typeof c=="string","All expected entries have to be of type string"),I6t.includes(c)?n.push(c.toLowerCase()):S6t.test(c)?s.push(c):(rE(c!=="object",'The value "object" should be written as "Object"'),o.push(c));if(s.length>0){let c=n.indexOf("object");c!==-1&&(n.splice(n,c,1),s.push("Object"))}if(n.length>0){switch(n.length){case 1:i+=`of type ${n[0]}`;break;case 2:i+=`one of type ${n[0]} or ${n[1]}`;break;default:{let c=n.pop();i+=`one of type ${n.join(", ")}, or ${c}`}}(s.length>0||o.length>0)&&(i+=" or ")}if(s.length>0){switch(s.length){case 1:i+=`an instance of ${s[0]}`;break;case 2:i+=`an instance of ${s[0]} or ${s[1]}`;break;default:{let c=s.pop();i+=`an instance of ${s.join(", ")}, or ${c}`}}o.length>0&&(i+=" or ")}switch(o.length){case 0:break;case 1:o[0].toLowerCase()!==o[0]&&(i+="an "),i+=`${o[0]}`;break;case 2:i+=`one of ${o[0]} or ${o[1]}`;break;default:{let c=o.pop();i+=`one of ${o.join(", ")}, or ${c}`}}if(r==null)i+=`. Received ${r}`;else if(typeof r=="function"&&r.name)i+=`. Received function ${r.name}`;else if(typeof r=="object"){var a;if((a=r.constructor)!==null&&a!==void 0&&a.name)i+=Line truncated
`)),e.linkname&&(r+=lse(" linkpath="+e.linkname+`
`));let i=e.pax;if(i)for(let n in i)r+=lse(" "+n+"="+i[n]+`
`);return hr.from(r)};vI.decodePax=function(e){let r={};for(;e.length;){let i=0;for(;i<e.length&&e[i]!==32;)i++;let n=parseInt(hr.toString(e.subarray(0,i)),10);if(!n)return r;let s=hr.toString(e.subarray(i+1,n-1)),o=s.indexOf("=");if(o===-1)return r;r[s.slice(0,o)]=s.slice(o+1),e=e.subarray(n)}return r};vI.encode=function(e){let r=hr.alloc(512),i=e.name,n="";if(e.typeflag===5&&i[i.length-1]!=="/"&&(i+="/"),hr.byteLength(i)!==i.length)return null;for(;hr.byteLength(i)>100;){let s=i.indexOf("/");if(s===-1)return null;n+=n?"/"+i.slice(0,s):i.slice(0,s),i=i.slice(s+1)}return hr.byteLength(i)>100||hr.byteLength(n)>155||e.linkname&&hr.byteLength(e.linkname)>100?null:(hr.write(r,i),hr.write(r,gA(e.mode&HXt,6),100),hr.write(r,gA(e.uid,6),108),hr.write(r,gA(e.gid,6),116),YXt(e.size,r,124),hr.write(r,gA(e.mtime.getTime()/1e3|0,11),136),r[156]=kq+WXt(e.type),e.linkname&&hr.write(r,e.linkname,157),hr.copy(R6e,r,jT),hr.copy(UXt,r,use),e.uname&&hr.write(r,e.uname,265),e.gname&&hr.write(r,e.gname,297),hr.write(r,gA(e.devmajor||0,6),329),hr.write(r,gA(e.devminor||0,6),337),n&&hr.write(r,n,345),hr.write(r,gA(N6e(r),6),148),r)};vI.decode=function(e,r,i){let n=e[156]===0?0:e[156]-kq,s=BI(e,0,100,r),o=AA(e,100,8),a=AA(e,108,8),c=AA(e,116,8),l=AA(e,124,12),u=AA(e,136,12),f=$Xt(n),h=e[157]===0?null:BI(e,157,100,r),d=BI(e,265,32),p=BI(e,297,32),m=AA(e,329,8),y=AA(e,337,8),g=N6e(e);if(g===256)return null;if(g!==AA(e,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(jXt(e))e[345]&&(s=BI(e,345,155,r)+"/"+s);else if(!zXt(e)){if(!i)throw new Error("Invalid tar header: unknown format.")}return n===0&&s&&s[s.length-1]==="/"&&(n=5),{name:s,mode:o,uid:a,gid:c,size:l,mtime:new Date(1e3*u),type:f,linkname:h,uname:d,gname:p,devmajor:m,devminor:y,pax:null}};function jXt(t){return hr.equals(R6e,t.subarray(jT,jT+6))}function zXt(t){return hr.equals(qXt,t.subarray(jT,jT+6))&&hr.equals(GXt,t.subarray(use,use+2))}function VXt(t,e,r){return typeof t!="number"?r:(t=~~t,t>=e?e:t>=0||(t+=e,t>=0)?t:0)}function $Xt(t){switch(t){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null}function WXt(t){switch(t){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0}function T6e(t,e,r,i){for(;r<i;r++)if(t[r]===e)return r;return i}function N6e(t){let e=256;for(let r=0;r<148;r++)e+=t[r];for(let r=156;r<512;r++)e+=t[r];return e}function gA(t,e){return t=t.toString(8),t.length>e?MXt.slice(0,e)+" ":FXt.slice(0,e-t.length)+t+" "}function JXt(t,e,r){e[r]=128;for(let i=11;i>0;i--)e[r+i]=t&255,t=Math.floor(t/256)}function YXt(t,e,r){t.toString(8).length>11?JXt(t,e,r):hr.write(e,gA(t,11),r)}function KXt(t){let e;if(t[0]===128)e=!0;else if(t[0]===255)e=!1;else return null;let r=[],i;for(i=t.length-1;i>0;i--){let o=t[i];e?r.push(o):r.push(255-o)}let n=0,s=r.length;for(i=0;i<s;i++)n+=r[i]*Math.pow(256,i);return e?n:-1*n}function AA(t,e,r){if(t=t.subarray(e,e+r),e=0,t[e]&128)return KXt(t);{for(;e<t.length&&t[e]===32;)e++;let i=VXt(T6e(t,32,e,t.length),t.length,t.length);for(;e<i&&t[e]===0;)e++;return i===e?0:parseInt(hr.toString(t.subarray(e,i)),8)}}function BI(t,e,r,i){return hr.toString(t.subarray(e,T6e(t,0,e,e+r)),i)}function lse(t){let e=hr.byteLength(t),r=Math.floor(Math.log(e)/Math.log(10))+1;return e+r>=Math.pow(10,r)&&r++,e+r+t}});var Q6e=A((KYr,k6e)=>{var{Writable:XXt,Readable:ZXt,getStreamError:D6e}=cse(),eZt=Vne(),O6e=Pq(),xI=fse(),tZt=O6e.alloc(0),dse=class{constructor(){this.buffered=0,this.shifted=0,this.queue=new eZt,this._offset=0}push(e){this.buffered+=e.byteLength,this.queue.push(e)}shiftFirst(e){return this._buffered===0?null:this._next(e)}shift(e){if(e>this.buffered)return null;if(e===0)return tZt;let r=this._next(e);if(e===r.byteLength)return r;let i=[r];for(;(e-=r.byteLength)>0;)r=this._next(e),i.push(r);return O6e.concat(i)}_next(e){let r=this.queue.peek(),i=r.byteLength-this._offset;if(e>=i){let n=this._offset?r.subarray(this._offset,r.byteLength):r;return this.queue.shift(),this._offset=0,this.buffered-=i,this.shifted+=i,n}return this.buffered-=e,this.shifted+=e,r.subarray(this._offset,this._offset+=e)}},pse=class extends ZXt{constructor(e,r,i){super(),this.header=r,this.offset=i,this._parent=e}_read(e){this.header.size===0&&this.push(null),this._parent._stream===this&&this._parent._update(),e(null)}_predestroy(){this._parent.destroy(D6e(this))}_detach(){this._parent._stream===this&&(this._parent._stream=null,this._parent._missing=P6e(this.header.size),this._parent._update())}_destroy(e){this._detach(),e(null)}},mse=class extends X Line truncated
`,nexist:"\u2204",nexists:"\u2204",nfr:"\u{1D52B}",Nfr:"\u{1D511}",nge:"\u2271",ngE:"\u2267\u0338",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2A7E\u0338",nges:"\u2A7E\u0338",nGg:"\u22D9\u0338",ngsim:"\u2275",ngt:"\u226F",nGt:"\u226B\u20D2",ngtr:"\u226F",nGtv:"\u226B\u0338",nharr:"\u21AE",nhArr:"\u21CE",nhpar:"\u2AF2",ni:"\u220B",nis:"\u22FC",nisd:"\u22FA",niv:"\u220B",njcy:"\u045A",NJcy:"\u040A",nlarr:"\u219A",nlArr:"\u21CD",nldr:"\u2025",nle:"\u2270",nlE:"\u2266\u0338",nleftarrow:"\u219A",nLeftarrow:"\u21CD",nleftrightarrow:"\u21AE",nLeftrightarrow:"\u21CE",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2A7D\u0338",nles:"\u2A7D\u0338",nless:"\u226E",nLl:"\u22D8\u0338",nlsim:"\u2274",nlt:"\u226E",nLt:"\u226A\u20D2",nltri:"\u22EA",nltrie:"\u22EC",nLtv:"\u226A\u0338",nmid:"\u2224",NoBreak:"\u2060",NonBreakingSpace:"\xA0",nopf:"\u{1D55F}",Nopf:"\u2115",not:"\xAC",Not:"\u2AEC",NotCongruent:"\u2262",NotCupCap:"\u226D",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226F",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226B\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2A7E\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224E\u0338",NotHumpEqual:"\u224F\u0338",notin:"\u2209",notindot:"\u22F5\u0338",notinE:"\u22F9\u0338",notinva:"\u2209",notinvb:"\u22F7",notinvc:"\u22F6",NotLeftTriangle:"\u22EA",NotLeftTriangleBar:"\u29CF\u0338",NotLeftTriangleEqual:"\u22EC",NotLess:"\u226E",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226A\u0338",NotLessSlantEqual:"\u2A7D\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2AA2\u0338",NotNestedLessLess:"\u2AA1\u0338",notni:"\u220C",notniva:"\u220C",notnivb:"\u22FE",notnivc:"\u22FD",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2AAF\u0338",NotPrecedesSlantEqual:"\u22E0",NotReverseElement:"\u220C",NotRightTriangle:"\u22EB",NotRightTriangleBar:"\u29D0\u0338",NotRightTriangleEqual:"\u22ED",NotSquareSubset:"\u228F\u0338",NotSquareSubsetEqual:"\u22E2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22E3",NotSubset:"\u2282\u20D2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2AB0\u0338",NotSucceedsSlantEqual:"\u22E1",NotSucceedsTilde:"\u227F\u0338",NotSuperset:"\u2283\u20D2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",npar:"\u2226",nparallel:"\u2226",nparsl:"\u2AFD\u20E5",npart:"\u2202\u0338",npolint:"\u2A14",npr:"\u2280",nprcue:"\u22E0",npre:"\u2AAF\u0338",nprec:"\u2280",npreceq:"\u2AAF\u0338",nrarr:"\u219B",nrArr:"\u21CF",nrarrc:"\u2933\u0338",nrarrw:"\u219D\u0338",nrightarrow:"\u219B",nRightarrow:"\u21CF",nrtri:"\u22EB",nrtrie:"\u22ED",nsc:"\u2281",nsccue:"\u22E1",nsce:"\u2AB0\u0338",nscr:"\u{1D4C3}",Nscr:"\u{1D4A9}",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22E2",nsqsupe:"\u22E3",nsub:"\u2284",nsube:"\u2288",nsubE:"\u2AC5\u0338",nsubset:"\u2282\u20D2",nsubseteq:"\u2288",nsubseteqq:"\u2AC5\u0338",nsucc:"\u2281",nsucceq:"\u2AB0\u0338",nsup:"\u2285",nsupe:"\u2289",nsupE:"\u2AC6\u0338",nsupset:"\u2283\u20D2",nsupseteq:"\u2289",nsupseteqq:"\u2AC6\u0338",ntgl:"\u2279",ntilde:"\xF1",Ntilde:"\xD1",ntlg:"\u2278",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",nu:"\u03BD",Nu:"\u039D",num:"#",numero:"\u2116",numsp:"\u2007",nvap:"\u224D\u20D2",nvdash:"\u22AC",nvDash:"\u22AD",nVdash:"\u22AE",nVDash:"\u22AF",nvge:"\u2265\u20D2",nvgt:">\u20D2",nvHarr:"\u2904",nvinfin:"\u29DE",nvlArr:"\u2902",nvle:"\u2264\u20D2",nvlt:"<\u20D2",nvltrie:"\u22B4\u20D2",nvrArr:"\u2903",nvrtrie:"\u22B5\u20D2",nvsim:"\u223C\u20D2",nwarhk:"\u2923",nwarr:"\u2196",nwArr:"\u21D6",nwarrow:"\u2196",nwnear:"\u2927",oacute:"\xF3",Oacute:"\xD3",oast:"\u229B",ocir:"\u229A",ocirc:"\xF4",Ocirc:"\xD4",ocy:"\u043E",Ocy:"\u041E",odash:"\u229D",odblac:"\u0151",Odblac:"\u0150",odiv:"\u2A38",odot:"\u2299",odsold:"\u29BC",oelig:"\u0153",OElig:"\u0152",ofcir:"\u29BF",ofr:"\u{1D52C}",Ofr:"\u{1D512}",ogon:"\u02DB",ograve:"\xF2",Ograve:"\xD2",ogt:"\u29C1",ohbar:"\u29B5",ohm:"\u03A9",oint:"\u222E",olarr:"\u21BA",olcir:"\u29BE",olcross:"\u29BB",oline:"\u203E",olt:"\u29C0",omacr:"\u014D",Omacr:"\u014C",omega:"\u03C9",Omega:"\u03A9",omicron:"\u03BF",Omicron:"\u039F",omid:"\u29B6",ominus:"\u2296",oopf:"\u{1D560}",Oopf:"\u{1D546}",opar:"\u29B7",OpenCurlyDoubleQuote:"\u201C",OpenCurlyQuote:"\u2018",operp:"\u29B9",oplus:"\u2295",or:"\u2228",Or:"\u2A54",orarr:"\u21BB",ord:"\u2A5D",order:"\u2134",orderof:"\u2134",ordf:"\xAA",ordm:"\xBA",origof:"\u22B6",oror:"\u2A56",orslope:"\u2A57",orv:"\u2A5B",oS:"\u24C8",oscr:"\u2134",Oscr:"\u{1D4AA}",oslash:"\xF8",Oslash:"\xD8",osol:"\u2298",otilde:"\xF5",Otilde:"\xD5",otimes:"\u2297",Otimes:"\u2A37",otimesas:"\u2A36",ouml:"\xF6",Ouml:"\xD6",ovbar:"\u233D",OverBar:"\u203E",OverBrace:"\u23DE",OverBracket:"\u23B4 Line truncated
`).forEach(r=>{r.match(Mir)||r.match(Uir)||(e+=r)}),Buffer.from(e,"base64")}function Gir(t,e="CERTIFICATE"){let i=t.toString("base64").match(/.{1,64}/g)||"";return[`-----BEGIN ${e}-----`,...i,`-----END ${e}-----`].join(`
`).concat(`
`)}});var R3=A(DA=>{"use strict";Object.defineProperty(DA,"__esModule",{value:!0});DA.SHA2_HASH_ALGOS=DA.RSA_SIGNATURE_ALGOS=DA.ECDSA_SIGNATURE_ALGOS=void 0;DA.ECDSA_SIGNATURE_ALGOS={"1.2.840.10045.4.3.1":"sha224","1.2.840.10045.4.3.2":"sha256","1.2.840.10045.4.3.3":"sha384","1.2.840.10045.4.3.4":"sha512"};DA.RSA_SIGNATURE_ALGOS={"1.2.840.113549.1.1.14":"sha224","1.2.840.113549.1.1.11":"sha256","1.2.840.113549.1.1.12":"sha384","1.2.840.113549.1.1.13":"sha512"};DA.SHA2_HASH_ALGOS={"2.16.840.1.101.3.4.2.1":"sha256","2.16.840.1.101.3.4.2.2":"sha384","2.16.840.1.101.3.4.2.3":"sha512"}});var goe=A(T3=>{"use strict";Object.defineProperty(T3,"__esModule",{value:!0});T3.RFC3161TimestampVerificationError=void 0;var Aoe=class extends Error{};T3.RFC3161TimestampVerificationError=Aoe});var l9e=A(Ih=>{"use strict";var Hir=Ih&&Ih.__createBinding||(Object.create?(function(t,e,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(e,r);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,i,n)}):(function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]})),jir=Ih&&Ih.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),zir=Ih&&Ih.__importStar||(function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var i=[];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(i[i.length]=n);return i},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i=t(e),n=0;n<i.length;n++)i[n]!=="default"&&Hir(r,e,i[n]);return jir(r,e),r}})();Object.defineProperty(Ih,"__esModule",{value:!0});Ih.TSTInfo=void 0;var c9e=zir(jI()),Vir=R3(),$ir=goe(),yoe=class{root;constructor(e){this.root=e}get version(){return this.root.subs[0].toInteger()}get genTime(){return this.root.subs[4].toDate()}get messageImprintHashAlgorithm(){let e=this.messageImprintObj.subs[0].subs[0].toOID();return Vir.SHA2_HASH_ALGOS[e]}get messageImprintHashedMessage(){return this.messageImprintObj.subs[1].value}get raw(){return this.root.toDER()}verify(e){let r=c9e.digest(this.messageImprintHashAlgorithm,e);if(!c9e.bufferEqual(r,this.messageImprintHashedMessage))throw new $ir.RFC3161TimestampVerificationError("message imprint does not match artifact")}get messageImprintObj(){return this.root.subs[2]}};Ih.TSTInfo=yoe});var f9e=A(Sh=>{"use strict";var Wir=Sh&&Sh.__createBinding||(Object.create?(function(t,e,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(e,r);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,i,n)}):(function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]})),Jir=Sh&&Sh.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),Yir=Sh&&Sh.__importStar||(function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var i=[];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(i[i.length]=n);return i},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i=t(e),n=0;n<i.length;n++)i[n]!=="default"&&Wir(r,e,i[n]);return Jir(r,e),r}})();Object.defineProperty(Sh,"__esModule",{value:!0});Sh.RFC3161Timestamp=void 0;var Kir=v3(),Eoe=Yir(jI()),u9e=R3(),cN=goe(),Xir=l9e(),Zir="1.2.840.113549.1.7.2",enr="1.2.840.113549.1.9.16.1.4",tnr="1.2.840.113549.1.9.4",boe=class t{root;constructor(e){this.root=e}static parse(e){let r=Kir.ASN1Obj.parseBuffer(e);return new t(r)}get status(){return this.pkiStatusInfoObj.subs[0].toInteger()}get contentType(){return this.contentTypeObj.toOID()}get eContentType(){return this.eContentTypeObj.toOID()}get signingTime(){return this.tstInfo.genTime}get signerIssuer(){return this.signerSidObj.subs[0].value}get signerSerialNumber(){return this.signerSidObj.subs[1].value}get signerDigestAlgorithm(){let e=this.signerDigestAlgorithmObj.subs[0].toOID();return u9e.SHA2_HASH_ALGOS[e]}get signatureAlgorithm(){let e=this.signatureAlgorithmObj.subs[0].toOID();return u9e.ECDSA_SIGNATURE_ALGOS[e]}get signatureValue(){return this.signatureValueObj.value}get tstInfo(){return new Xir.TSTInfo(this.eContentObj.subs[0].subs[0])}verify(e,r){if(!this.timeStampTokenObj)throw new cN.RFC3161TimestampVerificationError("timeStampToken is missing");if(this.contentType!==Zir)throw new cN.RFC3161TimestampVerificationError(`incorrect content type: ${this.contentType}`);if(this.eContentType!==enr)throw new cN.RFC3161TimestampVerificationError(`incorrect encapsulated content type: ${this.eContentType}`);this.tstInfo.verify(e),this.verifyMessageDigest(),this.verifySignature(r)}verifyMessageDigest(){let e=Eoe.digest(this.signerDigestAlgorithm,this.tstInfo.raw),r=this.messageDigestAttributeObj.subs[1].subs[0].value;if(!Eoe.bufferEqual(e,r))throw new cN.RFC3161TimestampVerificationError("signed data does not match tstInfo")}verifySignature(e){let r=this.signedAttrsObj.toD Line truncated
\v\f\r\x1B !"#$\u066A&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xB0\xB7\u2219\u221A\u2592\u2500\u2502\u253C\u2524\u252C\u251C\u2534\u2510\u250C\u2514\u2518\u03B2\u221E\u03C6\xB1\xBD\xBC\u2248\xAB\xBB\uFEF7\uFEF8\uFFFD\uFFFD\uFEFB\uFEFC\uFFFD\xA0\xAD\uFE82\xA3\xA4\uFE84\uFFFD\uFFFD\uFE8E\uFE8F\uFE95\uFE99\u060C\uFE9D\uFEA1\uFEA5\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFED1\u061B\uFEB1\uFEB5\uFEB9\u061F\xA2\uFE80\uFE81\uFE83\uFE85\uFECA\uFE8B\uFE8D\uFE91\uFE93\uFE97\uFE9B\uFE9F\uFEA3\uFEA7\uFEA9\uFEAB\uFEAD\uFEAF\uFEB3\uFEB7\uFEBB\uFEBF\uFEC1\uFEC5\uFECB\uFECF\xA6\xAC\xF7\xD7\uFEC9\u0640\uFED3\uFED7\uFEDB\uFEDF\uFEE3\uFEE7\uFEEB\uFEED\uFEEF\uFEF3\uFEBD\uFECC\uFECE\uFECD\uFEE1\uFE7D\u0651\uFEE5\uFEE9\uFEEC\uFEF0\uFEF2\uFED0\uFED5\uFEF5\uFEF6\uFEDD\uFED9\uFEF1\u25A0\uFFFD`},ibm864:"cp864",csibm864:"cp864",cp865:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xA4\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm865:"cp865",csibm865:"cp865",cp866:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\xA4\u25A0\xA0"},ibm866:"cp866",csibm866:"cp866",cp869:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0386\uFFFD\xB7\xAC\xA6\u2018\u2019\u0388\u2015\u0389\u038A\u03AA\u038C\uFFFD\uFFFD\u038E\u03AB\xA9\u038F\xB2\xB3\u03AC\xA3\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03CD\u0391\u0392\u0393\u0394\u0395\u0396\u0397\xBD\u0398\u0399\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u039A\u039B\u039C\u039D\u2563\u2551\u2557\u255D\u039E\u039F\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u03A0\u03A1\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u2518\u250C\u2588\u2584\u03B4\u03B5\u2580\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u0384\xAD\xB1\u03C5\u03C6\u03C7\xA7\u03C8\u0385\xB0\xA8\u03C9\u03CB\u03B0\u03CE\u25A0\xA0"},ibm869:"cp869",csibm869:"cp869",cp922:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\u203E\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0160\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\u017D\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0161\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\u017E\xFF"},ibm922:"cp922",csibm922:"cp922",cp1046:{type:"_sbcs",chars:"\uFE88\xD7\xF7\uF8F6\uF8F5\uF8F4\uF8F7\uFE71\x88\u25A0\u2502\u2500\u2510\u250C\u2514\u2518\uFE79\uFE7B\uFE7D\uFE7F\uFE77\uFE8A\uFEF0\uFEF3\uFEF2\uFECE\uFECF\uFED0\uFEF6\uFEF8\uFEFA\uFEFC\xA0\uF8FA\uF8F9\uF8F8\xA4\uF8FB\uFE8B\uFE91\uFE97\uFE9B\uFE9F\uFEA3\u060C\xAD\uFEA7\uFEB3\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFEB7\u061B\uFEBB\uFEBF\uFECA\u061F\uFECB\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\uFEC7\u0639\u063A\uFECC\uFE82\uFE84\uFE8E\uFED3\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFED7\uFEDB\uFEDF\uF8FC\uFEF5\uFEF7\uFEF9\uFEFB\uFEE3\uFEE7\uFEEC\uFEE9\uFFFD"},ibm1046:"cp1046",csibm1046:"cp1046",cp1124:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0490\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041FLine truncated
\v\f\r\u1EE8\u1EF0\u1EF2\u1EF6\u1EF8\xDD\u1EF4\x1B !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xC0\u1EA2\xC3\xC1\u1EA0\u1EB6\u1EAC\xC8\u1EBA\u1EBC\xC9\u1EB8\u1EC6\xCC\u1EC8\u0128\xCD\u1ECA\xD2\u1ECE\xD5\xD3\u1ECC\u1ED8\u1EDC\u1EDE\u1EE0\u1EDA\u1EE2\xD9\u1EE6\u0168\xA0\u0102\xC2\xCA\xD4\u01A0\u01AF\u0110\u0103\xE2\xEA\xF4\u01A1\u01B0\u0111\u1EB0\u0300\u0309\u0303\u0301\u0323\xE0\u1EA3\xE3\xE1\u1EA1\u1EB2\u1EB1\u1EB3\u1EB5\u1EAF\u1EB4\u1EAE\u1EA6\u1EA8\u1EAA\u1EA4\u1EC0\u1EB7\u1EA7\u1EA9\u1EAB\u1EA5\u1EAD\xE8\u1EC2\u1EBB\u1EBD\xE9\u1EB9\u1EC1\u1EC3\u1EC5\u1EBF\u1EC7\xEC\u1EC9\u1EC4\u1EBE\u1ED2\u0129\xED\u1ECB\xF2\u1ED4\u1ECF\xF5\xF3\u1ECD\u1ED3\u1ED5\u1ED7\u1ED1\u1ED9\u1EDD\u1EDF\u1EE1\u1EDB\u1EE3\xF9\u1ED6\u1EE7\u0169\xFA\u1EE5\u1EEB\u1EED\u1EEF\u1EE9\u1EF1\u1EF3\u1EF7\u1EF9\xFD\u1EF5\u1ED0`},georgianacademy:{type:"_sbcs",chars:"\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5\u10F6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},georgianps:{type:"_sbcs",chars:"\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10F1\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10F2\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10F3\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10F4\u10EF\u10F0\u10F5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},pt154:{type:"_sbcs",chars:"\u0496\u0492\u04EE\u0493\u201E\u2026\u04B6\u04AE\u04B2\u04AF\u04A0\u04E2\u04A2\u049A\u04BA\u04B8\u0497\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u04B3\u04B7\u04A1\u04E3\u04A3\u049B\u04BB\u04B9\xA0\u040E\u045E\u0408\u04E8\u0498\u04B0\xA7\u0401\xA9\u04D8\xAB\xAC\u04EF\xAE\u049C\xB0\u04B1\u0406\u0456\u0499\u04E9\xB6\xB7\u0451\u2116\u04D9\xBB\u0458\u04AA\u04AB\u049D\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},viscii:{type:"_sbcs",chars:`\0\u1EB2\u1EB4\u1EAA\x07\b
\v\f\r\u1EF6\u1EF8\x1B\u1EF4 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\u1EA0\u1EAE\u1EB0\u1EB6\u1EA4\u1EA6\u1EA8\u1EAC\u1EBC\u1EB8\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EE2\u1EDA\u1EDC\u1EDE\u1ECA\u1ECE\u1ECC\u1EC8\u1EE6\u0168\u1EE4\u1EF2\xD5\u1EAF\u1EB1\u1EB7\u1EA5\u1EA7\u1EA9\u1EAD\u1EBD\u1EB9\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1ED1\u1ED3\u1ED5\u1ED7\u1EE0\u01A0\u1ED9\u1EDD\u1EDF\u1ECB\u1EF0\u1EE8\u1EEA\u1EEC\u01A1\u1EDB\u01AF\xC0\xC1\xC2\xC3\u1EA2\u0102\u1EB3\u1EB5\xC8\xC9\xCA\u1EBA\xCC\xCD\u0128\u1EF3\u0110\u1EE9\xD2\xD3\xD4\u1EA1\u1EF7\u1EEB\u1EED\xD9\xDA\u1EF9\u1EF5\xDD\u1EE1\u01B0\xE0\xE1\xE2\xE3\u1EA3\u0103\u1EEF\u1EAB\xE8\xE9\xEA\u1EBB\xEC\xED\u0129\u1EC9\u0111\u1EF1\xF2\xF3\xF4\xF5\u1ECF\u1ECD\u1EE5\xF9\xFA\u0169\u1EE7\xFD\u1EE3\u1EEE`},iso646cn:{type:"_sbcs",chars:`\0\x07\b
\v\f\r\x1B !"#\xA5%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD`},iso646jp:{type:"_sbcs",chars:`\0\x07\b
\v\f\r\x1B !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xA5]^_\`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD`},hproman8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xC0\xC2\xC8\xCA\xCB\xCE\xCF\xB4\u02CB\u02C6\xA8\u02DC\xD9\xDB\u20A4\xAF\xDD\xFD\xB0\xC7\xE7\xD1\xF1\xA1\xBF\xA4\xA3\xA5\xA7\u0192\xA2\xE2\xEA\xF4\xFB\xE1\xE9\xF3\xFA\xE0\xE8\xF2\xF9\xE4\xEB\xF6\xFC\xC5\xEE\xD8\xC6\xE5\xED\xF8\xE6\xC4\xEC\xD6\xDC\xC9\xEF\xDF\xD4\xC1\xC3\xE3\xD0\xF0\xCD\xCC\xD3\xD2\xD5\xF5\u0160\u0161\xDA\u0178\xFF\xDE\xFE\xB7\xB5\xB6\xBE\u2014\xBC\xBD\xAA\xBA\xAB\u25A0\xBB\xB1\uFFFD"},macintosh:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},ascii:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},tis620:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"}}});var B$e=A(S$e=>{"use strict";var cce=wp().Buffer;S$e._dbcs=Ip;var ks=-1,I$e=-2,Ll=-10,ta=-1e3,nS=new Array(256),xN=-1;for(m4=0;m4<256;m4++)nS[m4]=ks;var m4;function Ip(t,e){if(this.encodingName=t.encodingName,!t)throw new Error("DBCS codec is called without the data.");if(!t.table)throw new Error("Encoding '"+this.encodingName+"' has no data.");var r=t.table();this.decodeTables=[],this.decodeTables[0]=nS.slice(0),this.decodeTableSeq=[];for(var i=0;i<r.length;i++)this._addDecodeChunk(r[i]);if(typeof t.gb18030=="function"){this.gb18030=t.gb18030();var n=this.decodeTables.length;this.decodeTables.push(nS.slice(0));var s=this.decodeTables.length;this.decodeTables.push(nS.slice(0));for(var o=this.decodeTables[0],i=129;i<=254;i++)for(var a=this.decodeTables[ta-o[i]],c=48;c<=57;c++){if(a[c]===ks)a[c]=ta-n;else if(a[c]>ta)throw new Error("gb18030 decode tables conflict at byte 2");for(var l=this.decodeTables[ta-a[c]],u=129;u<=254;u++){if(l[u]===ks)l[u]=ta-s;else{if(l[u]===ta-s)continue;if(l[u]>ta)throw new Error("gb18030 decode tables conflict at byte 3")}for(var f=this.decodeTables[ta-l[u]],h=48;h<=57;h++)f[h]===ks&&(f[h]=I$e)}}}this.defaultCharUnicode=e.defaultCharUnicode,this.encodeTable=[],this.encodeTableSeq=[];var d={};if(t.encodeSkipVals)for(var i=0;i<t.encodeSkipValLine truncated
Wanted: ${this.expectedSize}
Found: ${this.size}`);i.code="EBADSIZE",i.found=this.size,i.expected=this.expectedSize,i.sri=this.sri,this.emit("error",i)}else if(this.sri&&!r){let i=new Error(`${this.sri} integrity checksum failed when using ${this.algorithm}: wanted ${this.digests} but got ${e}. (${this.size} bytes)`);i.code="EINTEGRITY",i.found=e,i.expected=this.digests,i.algorithm=this.algorithm,i.sri=this.sri,this.emit("error",i)}else this.#t=this.size,this.emit("size",this.size),this.#e=e,this.emit("integrity",e),r&&(this.#i=r,this.emit("verified",r))}},_p=class{get isHash(){return!0}constructor(e,r){let i=r?.strict;this.source=e.trim(),this.digest="",this.algorithm="",this.options=[];let n=this.source.match(i?par:dar);if(!n||i&&!Dce.includes(n[1])||!NWe.includes(n[1]))return;this.algorithm=n[1],this.digest=n[2];let s=n[3];s&&(this.options=s.slice(1).split("?"))}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}match(e,r){let i=Oc(e,r);if(!i)return!1;if(i.isIntegrity){let n=i.pickAlgorithm(r,[this.algorithm]);if(!n)return!1;let s=i[n].find(o=>o.digest===this.digest);return s||!1}return i.digest===this.digest?i:!1}toString(e){return e?.strict&&!(Dce.includes(this.algorithm)&&this.digest.match(har)&&this.options.every(r=>r.match(mar)))?"":`${this.algorithm}-${this.digest}${kN(this.options)}`}};function TWe(t,e,r,i){let n=t!=="",s=!1,o="",a=i.length-1;for(let l=0;l<a;l++){let u=_p.prototype.toString.call(i[l],r);u&&(s=!0,o+=u,o+=e)}let c=_p.prototype.toString.call(i[a],r);return c&&(s=!0,o+=c),n&&s?t+e+o:t+o}var KE=class{get isIntegrity(){return!0}toJSON(){return this.toString()}isEmpty(){return Object.keys(this).length===0}toString(e){let r=e?.sep||" ",i="";if(e?.strict){r=r.replace(/\S+/g," ");for(let n of Dce)this[n]&&(i=TWe(i,r,e,this[n]))}else for(let n of Object.keys(this))i=TWe(i,r,e,this[n]);return i}concat(e,r){let i=typeof e=="string"?e:ON(e,r);return Oc(`${this.toString(r)} ${i}`,r)}hexDigest(){return Oc(this,{single:!0}).hexDigest()}merge(e,r){let i=Oc(e,r);for(let n in i)if(this[n]){if(!this[n].find(s=>i[n].find(o=>s.digest===o.digest)))throw new Error("hashes do not match, cannot update integrity")}else this[n]=i[n]}match(e,r){let i=Oc(e,r);if(!i)return!1;let n=i.pickAlgorithm(r,Object.keys(this));return!!n&&this[n].find(s=>i[n].find(o=>s.digest===o.digest))||!1}pickAlgorithm(e,r){let i=e?.pickAlgorithm||Car,n=Object.keys(this);return r?.length&&(n=n.filter(s=>r.includes(s))),n.length?n.reduce((s,o)=>i(s,o)||s):null}};Ph.exports.parse=Oc;function Oc(t,e){if(!t)return null;if(typeof t=="string")return Nce(t,e);if(t.algorithm&&t.digest){let r=new KE;return r[t.algorithm]=[t],Nce(ON(r,e),e)}else return Nce(ON(t,e),e)}function Nce(t,e){if(e?.single)return new _p(t,e);let r=t.trim().split(/\s+/).reduce((i,n)=>{let s=new _p(n,e);if(s.algorithm&&s.digest){let o=s.algorithm;Object.keys(i).includes(o)||(i[o]=[]),i[o].push(s)}return i},new KE);return r.isEmpty()?null:r}Ph.exports.stringify=ON;function ON(t,e){return t.algorithm&&t.digest?_p.prototype.toString.call(t,e):typeof t=="string"?ON(Oc(t,e),e):KE.prototype.toString.call(t,e)}Ph.exports.fromHex=Aar;function Aar(t,e,r){let i=kN(r?.options);return Oc(`${e}-${Buffer.from(t,"hex").toString("base64")}${i}`,r)}Ph.exports.fromData=gar;function gar(t,e){let r=e?.algorithms||[...Pce],i=kN(e?.options);return r.reduce((n,s)=>{let o=PN.createHash(s).update(t).digest("base64"),a=new _p(`${s}-${o}${i}`,e);if(a.algorithm&&a.digest){let c=a.algorithm;n[c]||(n[c]=[]),n[c].push(a)}return n},new KE)}Ph.exports.fromStream=yar;function yar(t,e){let r=kce(e);return new Promise((i,n)=>{t.pipe(r),t.on("error",n),r.on("error",n);let s;r.on("integrity",o=>{s=o}),r.on("end",()=>i(s)),r.resume()})}Ph.exports.checkData=Ear;function Ear(t,e,r){if(e=Oc(e,r),!e||!Object.keys(e).length){if(r?.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let i=e.pickAlgorithm(r),n=PN.createHash(i).update(t).digest("base64"),s=Oc({algorithm:i,digest:n}),o=s.match(e,r);if(r=r||{},o||!r.error)return o;if(typeof r.size=="number"&&t.length!==r.size){let a=new Error(`data size mismatch when checking ${e}.
Wanted: ${r.size}
Found: ${t.length}`);throw a.code="EBADSIZE",a.found=t.length,a.expected=r.size,a.sri=e,a}else{let a=new Error(`Integrity checksum failed when using ${i}: Wanted ${e}, but got ${s}. (${t.length} bytes)`);throw a.code="EINTEGRITY",a.found=s,a.expected=e,a.algorithm=i,a.sri=e,a}}Ph.exports.checkStream=bar;function bar(t,e,r){if(r=r||Object.create(null),r.integrity=e,e=Oc(e,r),!e||!Object.keys(e).length)return Promise.reject(Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"}));let i=kce(r);return new Promise((n,s)=>{t.pipe(i),t.on("error",s),i.on("error",s);let o;i.on("verified",a=>{o=a}),i.on("end",()=>n(o)),i.resume()})}Ph.exports.integrityStream=kce;function kce(t=Object.create(null)){return new Oce(t)}Ph.exports.create=war;function war(t){let e=t?.algorithms||[...Pce],r=kN(t?.options),i=e.map(PN.createHash);return{update:function(n,s){return i.forEach(o=>o.update(n,s)),this},digest:function(){return e.reduce((s,o)=>{let a=i.shift().digest("base64"),c=new _p(`${o}-${a}${r}`,t);return s[c.algorithm]||(s[c.algorithm]=[]),s[c.algorithm].push(c),s},new KE)}}}function Car(t,e){return RWe.indexOf(t.toLowerCase())>=RWe.indexOf(e.toLowerCase())?t:e}});var Lce=A((Cei,QWe)=>{var DWe=Sce(),OWe=Tce(),Iar=kh(),PWe={shared:!1,ignoreCargoCult:!0},Sar={status:200,headers:{}},aS=t=>{let e={method:t.method,url:t.url,headers:{},compress:t.compress};return t.headers.forEach((r,i)=>{e.headers[i]=r}),e},kWe=t=>{let e={status:t.status,headers:{}};return t.headers.forEach((r,i)=>{e.headers[i]=r}),e},Qce=class{constructor({entry:e,request:r,response:i,options:n}){this.entry=e,this.request=aS(r),this.response=kWe(i),this.options=n,this.policy=new DWe(this.request,this.response,PWe),this.entry&&(this.policy._responseTime=this.entry.metadata.time)}static storable(e,r){return!r.cachePath||r.cache==="no-store"||!["GET","HEAD"].includes(e.method)?!1:new DWe(aS(e),Sar,PWe).storable()}satisfies(e){let r=aS(e);if(this.request.headers.host!==r.headers.host||this.request.compress!==r.compress)return!1;let i=new OWe(this.request),n=new OWe(r);return JSON.stringify(i.mediaTypes())!==JSON.stringify(n.mediaTypes())||JSON.stringify(i.languages())!==JSON.stringify(n.languages())||JSON.stringify(i.encodings())!==JSON.stringify(n.encodings())?!1:this.options.integrity?Iar.parse(this.options.integrity).match(this.entry.integrity):!0}storable(){return this.policy.storable()}get mustRevalidate(){return!!this.policy._rescc["must-revalidate"]}needsRevalidation(e){let r=aS(e);return r.method="GET",!this.policy.satisfiesWithoutRevalidation(r)}responseHeaders(){return this.policy.responseHeaders()}revalidationHeaders(e){let r=aS(e);return this.policy.revalidationHeaders(r)}revalidated(e,r){let i=aS(e),n=kWe(r);return!this.policy.revalidatedPolicy(i,n).modified}};QWe.exports=Qce});var FWe=A((Iei,LWe)=>{var Fce=class extends Error{constructor(e){super(`request to ${e} failed: cache mode is 'only-if-cached' but no cached response is available.`),this.code="ENOTCACHED"}};LWe.exports={NotCachedError:Fce}});var WWe=A((Sei,$We)=>{"use strict";var MWe=typeof process=="object"&&process?process:{stdout:null,stderr:null},Bar=require("events"),UWe=require("stream"),qWe=require("string_decoder").StringDecoder,Rp=Symbol("EOF"),Tp=Symbol("maybeEmitEnd"),UA=Symbol("emittedEnd"),_4=Symbol("emittingEnd"),QN=Symbol("emittedError"),R4=Symbol("closed"),GWe=Symbol("read"),T4=Symbol("flush"),HWe=Symbol("flushChunk"),Pa=Symbol("encoding"),Np=Symbol("decoder"),N4=Symbol("flowing"),LN=Symbol("paused"),cS=Symbol("resume"),ms=Symbol("bufferLength"),Mce=Symbol("bufferPush"),Uce=Symbol("bufferShift"),uo=Symbol("objectMode"),fo=Symbol("destroyed"),qce=Symbol("emitData"),jWe=Symbol("emitEnd"),Gce=Symbol("emitEnd2"),Dp=Symbol("async"),FN=t=>Promise.resolve().then(t),zWe=global._MP_NO_ITERATOR_SYMBOLS_!=="1",xar=zWe&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),_ar=zWe&&Symbol.iterator||Symbol("iterator not implemented"),Rar=t=>t==="end"||t==="finish"||t==="prefinish",Tar=t=>t instanceof ArrayBuffer||typeof t=="object"&&t.constructor&&t.constructor.name==="ArrayBuffer"&&t.byteLength>=0,Nar=t=>!Buffer.isBuffer(t)&&ArrayBuffer.isView(t),D4=class{constructor(e,r,i){this.src=e,this.dest=r,this.opts=i,this.ondrain=()=>e[cS](),r.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},Hce=class extends D4{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,r,i){super(e,r,i),this.proxyErrors=n=>r.emit("error",n),e.on("error",this.proxyErrors)}};$We.exports=class VWe extends UWe{constructor(e){super(),this[N4]=!1,this[LN]=!1,this.pipes=[],this.buffer=[],this[uo]=e&&e.objectMode||!1,this[uo]?this[Pa]=null:this[Pa]=e&&e.encoding||null,this[Pa]==="buffer"&&(this[Pa]=null),this[Dp]=e&&!!e.async||!1,this[Np]=this[Pa]?new qWe(this[Pa]):null,this[Rp]=!1,this[UA]=!1,this[_4]=!1,this[R4]=!1,this[QN]=null,this.writable=!0,thi Line truncated
`+o.map(h=>{let d=JSON.stringify(h);return`${i5(d)} ${d}`}).join(`
`),c=async()=>{let h=chr(Lh.join(t,"tmp"),i.tmpPrefix);return await Fle(Lh.dirname(h),{recursive:!0}),{target:h,moved:!1}},l=async h=>{if(!h.moved)return nKe(h.target,{recursive:!0,force:!0})},u=async h=>{await shr(h.target,a,{flag:"wx"}),await Fle(Lh.dirname(n),{recursive:!0}),await hhr(h.target,n),h.moved=!0},f=await c();try{await u(f)}finally{await l(f)}return o.reverse().map(h=>n5(t,h,!0))}kc.exports.insert=sKe;async function sKe(t,e,r,i={}){let{metadata:n,size:s,time:o}=i,a=t1(t,e),c={key:e,integrity:r&&ahr.stringify(r),time:o||Date.now(),size:s,metadata:n};try{await Fle(Lh.dirname(a),{recursive:!0});let l=JSON.stringify(c);await rhr(a,`
${i5(l)} ${l}`)}catch(l){if(l.code==="ENOENT")return;throw l}return n5(t,c)}kc.exports.find=phr;async function phr(t,e){let r=t1(t,e);try{return(await r5(r)).reduce((n,s)=>s&&s.key===e?n5(t,s):n,null)}catch(i){if(i.code==="ENOENT")return null;throw i}}kc.exports.delete=mhr;function mhr(t,e,r={}){if(!r.removeFully)return sKe(t,e,null,r);let i=t1(t,e);return nKe(i,{recursive:!0,force:!0})}kc.exports.lsStream=oKe;function oKe(t){let e=Mle(t),r=new ohr({objectMode:!0});return Promise.resolve().then(async()=>{let{default:i}=await Promise.resolve().then(()=>(t5(),e5)),n=await Lle(e);return await i(n,async s=>{let o=Lh.join(e,s),a=await Lle(o);await i(a,async c=>{let l=Lh.join(o,c),u=await Lle(l);await i(u,async f=>{let h=Lh.join(l,f);try{let p=(await r5(h)).reduce((m,y)=>(m.set(y.key,y),m),new Map);for(let m of p.values()){let y=n5(t,m);y&&r.write(y)}}catch(d){if(d.code==="ENOENT")return;throw d}},{concurrency:Qle})},{concurrency:Qle})},{concurrency:Qle}),r.end(),r}).catch(i=>r.emit("error",i)),r}kc.exports.ls=Ahr;async function Ahr(t){return(await oKe(t).collect()).reduce((r,i)=>(r[i.key]=i,r),{})}kc.exports.bucketEntries=r5;async function r5(t,e){let r=await ihr(t,"utf8");return ghr(r,e)}function ghr(t){let e=[];return t.split(`
`).forEach(r=>{if(!r)return;let i=r.split(" ");if(!i[1]||i5(i[1])!==i[0])return;let n;try{n=JSON.parse(i[1])}catch{}n&&e.push(n)}),e}kc.exports.bucketDir=Mle;function Mle(t){return Lh.join(t,`index-v${fhr}`)}kc.exports.bucketPath=t1;function t1(t,e){let r=aKe(e);return Lh.join.apply(Lh,[Mle(t)].concat(uhr(r)))}kc.exports.hashKey=aKe;function aKe(t){return cKe(t,"sha256")}kc.exports.hashEntry=i5;function i5(t){return cKe(t,"sha1")}function cKe(t,e){return thr.createHash(e).update(t).digest("hex")}function n5(t,e,r){return!e.integrity&&!r?null:{key:e.key,integrity:e.integrity,path:e.integrity?lhr(t,e.integrity):void 0,size:e.size,time:e.time,metadata:e.metadata}}function Lle(t){return nhr(t).catch(e=>{if(e.code==="ENOENT"||e.code==="ENOTDIR")return[];throw e})}});var i1=A(a5=>{"use strict";Object.defineProperty(a5,"__esModule",{value:!0});a5.LRUCache=void 0;var yhr=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,uKe=new Set,Ule=typeof process=="object"&&process?process:{},fKe=(t,e,r,i)=>{typeof Ule.emitWarning=="function"?Ule.emitWarning(t,e,r,i):console.error(`[${r}] ${e}: ${t}`)},o5=globalThis.AbortController,lKe=globalThis.AbortSignal;if(typeof o5>"u"){lKe=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(r,i){this._onabort.push(i)}},o5=class{constructor(){e()}signal=new lKe;abort(r){if(!this.signal.aborted){this.signal.reason=r,this.signal.aborted=!0;for(let i of this.signal._onabort)i(r);this.signal.onabort?.(r)}}};let t=Ule.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",e=()=>{t&&(t=!1,fKe("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",e))}}var Ehr=t=>!uKe.has(t),GA=t=>t&&t===Math.floor(t)&&t>0&&isFinite(t),hKe=t=>GA(t)?t<=Math.pow(2,8)?Uint8Array:t<=Math.pow(2,16)?Uint16Array:t<=Math.pow(2,32)?Uint32Array:t<=Number.MAX_SAFE_INTEGER?s5:null:null,s5=class extends Array{constructor(t){super(t),this.fill(0)}},bhr=class r1{heap;length;static#e=!1;static create(e){let r=hKe(e);if(!r)return[];r1.#e=!0;let i=new r1(e,r);return r1.#e=!1,i}constructor(e,r){if(!r1.#e)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new r(e),this.length=0}push(e){this.heap[this.length++]=e}pop(){return this.heap[--this.length]}},whr=class dKe{#e;#t;#i;#r;#n;#c;#f;#u;get perf(){return this.#u}ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#a;#l;#d;#h;#s;#A;#w;#m;#E;#v;#y;#I;#x;#p;#C;#S;#_;#o;#T;static unsafeExposeInternals(e){return{starts:e.#x,ttls:e.#p,autopurgeTimers:e.#C,sizes:e.#I,keyMap:e.#d,keyList:e.#h,valList:e.#s,next:e.#A,prev:e.#w,get head(){return e.#m},get tail(){return e.#E},free:e.#v,isBackgroundFetch:r=>e.#g(r),backgroundFetch:(r,i,n,s)=>e.#H(r,i,n,s),moveToTail:r=>e.#U(r),indexes:r=>e.#b(r),rindexes:r=>e.#N(r),isStale:r=>e.#B(r)}}get max(){return this.#e}get maxSize(){return this.#t}get calculatedSize(){return this.#l}get size(){return this.#a}get fetchMethod(){return this.#c}get memoMethod(){return this.#f}get dispose(){return this.#i}get onInsert(){return this.#r}get disposeAfter(){return this.#n}constructor(e){let{max:r=0,ttl:i,ttlResolution:n=1,ttlAutopurge:s,updateAgeOnGet:o,updateAgeOnHas:a,allowStale:c,dispose:l,onInsert:u,disposeAfter:f,noDisposeOnSet:h,noUpdateTTL:d,maxSize:p=0,maxEntrySize:m=0,sizeCalculation:y,fetchMethod:g,memoMethod:E,noDeleteOnFetchRejection:w,noDeleteOnStaleGet:C,allowStaleOnFetchRejection:N,allowStaleOnFetchAbort:F,ignoreFetchAbort:x,perf:M}=e;if(M!==void 0&&typeof M?.now!="function")throw new TypeError("perf option must have a now() method if specified");if(this.#u=M??yhr,r!==0&&!GA(r))throw new TypeError("max option must be a nonnegative integer");let P=r?hKe(r):Array;if(!P)throw new Error("invalid max value: "+r);if(this.#e=r,this.#t=p,this.maxEntrySize=m||this.#t,this.sizeCalculation=y,this.sizeCalculation){if(!this.#t&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(E!==void 0&&typeof E!="function")throw new TypeError("memoMethod must be a function if defined");if(this.#f=E,g!==void 0&&typeof g!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#c=g,this.#_=!!g,this.#d=new Map,this.#h=new Array(r).fill(void 0),this.#s=new Array(r).fill(void 0),this.#A=new P(r),this.#w=new P(r),this.#m=0,this.#E=0,this.#v=bhr.create(r),th Line truncated
Wanted: ${t}
Found: ${e}`);return r.code="EINTEGRITY",r.expected=t,r.found=e,r}});var kKe=A((Jti,eue)=>{"use strict";var NKe=yS(),DKe=n1(),OKe=TKe(),idr=MN(),{PassThrough:ndr}=Wce(),sdr=ZE(),PKe=t=>({algorithms:["sha512"],...t});eue.exports=odr;async function odr(t,e,r,i={}){let{memoize:n}=i;i=PKe(i);let s=await OKe(t,r,i),o=await NKe.insert(t,e,s.integrity,{...i,size:s.size});return n&&DKe.put(t,o,r,i),s.integrity}eue.exports.stream=adr;function adr(t,e,r={}){let{memoize:i}=r;r=PKe(r);let n,s,o,a,c=new sdr;if(i){let u=new ndr().on("collect",f=>{a=f});c.push(u)}let l=OKe.stream(t,r).on("integrity",u=>{n=u}).on("size",u=>{s=u}).on("error",u=>{o=u});return c.push(l),c.push(new idr({async flush(){if(!o){let u=await NKe.insert(t,e,n,{...r,size:s});i&&a&&DKe.put(t,u,a,r),c.emit("integrity",n),c.emit("size",s)}}})),c}});var XKe=A(rr=>{"use strict";var Qs=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),cdr=Qs(t=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.range=t.balanced=void 0;var e=(n,s,o)=>{let a=n instanceof RegExp?r(n,o):n,c=s instanceof RegExp?r(s,o):s,l=a!==null&&c!=null&&(0,t.range)(a,c,o);return l&&{start:l[0],end:l[1],pre:o.slice(0,l[0]),body:o.slice(l[0]+a.length,l[1]),post:o.slice(l[1]+c.length)}};t.balanced=e;var r=(n,s)=>{let o=s.match(n);return o?o[0]:null},i=(n,s,o)=>{let a,c,l,u,f,h=o.indexOf(n),d=o.indexOf(s,h+1),p=h;if(h>=0&&d>0){if(n===s)return[h,d];for(a=[],l=o.length;p>=0&&!f;){if(p===h)a.push(p),h=o.indexOf(n,p+1);else if(a.length===1){let m=a.pop();m!==void 0&&(f=[m,d])}else c=a.pop(),c!==void 0&&c<l&&(l=c,u=d),d=o.indexOf(s,p+1);p=h<d&&h>=0?h:d}a.length&&u!==void 0&&(f=[l,u])}return f};t.range=i}),ldr=Qs(t=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EXPANSION_MAX=void 0,t.expand=N;var e=cdr(),r="\0SLASH"+Math.random()+"\0",i="\0OPEN"+Math.random()+"\0",n="\0CLOSE"+Math.random()+"\0",s="\0COMMA"+Math.random()+"\0",o="\0PERIOD"+Math.random()+"\0",a=new RegExp(r,"g"),c=new RegExp(i,"g"),l=new RegExp(n,"g"),u=new RegExp(s,"g"),f=new RegExp(o,"g"),h=/\\\\/g,d=/\\{/g,p=/\\}/g,m=/\\,/g,y=/\\./g;t.EXPANSION_MAX=1e5;function g(k){return isNaN(k)?k.charCodeAt(0):parseInt(k,10)}function E(k){return k.replace(h,r).replace(d,i).replace(p,n).replace(m,s).replace(y,o)}function w(k){return k.replace(a,"\\").replace(c,"{").replace(l,"}").replace(u,",").replace(f,".")}function C(k){if(!k)return[""];let H=[],z=(0,e.balanced)("{","}",k);if(!z)return k.split(",");let{pre:ie,body:ne,post:we}=z,K=ie.split(",");K[K.length-1]+="{"+ne+"}";let ce=C(we);return we.length&&(K[K.length-1]+=ce.shift(),K.push.apply(K,ce)),H.push.apply(H,K),H}function N(k,H={}){if(!k)return[];let{max:z=t.EXPANSION_MAX}=H;return k.slice(0,2)==="{}"&&(k="\\{\\}"+k.slice(2)),V(E(k),z,!0).map(w)}function F(k){return"{"+k+"}"}function x(k){return/^-?0\d/.test(k)}function M(k,H){return k<=H}function P(k,H){return k>=H}function V(k,H,z){let ie=[],ne=(0,e.balanced)("{","}",k);if(!ne)return[k];let we=ne.pre,K=ne.post.length?V(ne.post,H,!1):[""];if(/\$$/.test(ne.pre))for(let ce=0;ce<K.length&&ce<H;ce++){let Ee=we+"{"+ne.body+"}"+K[ce];ie.push(Ee)}else{let ce=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(ne.body),Ee=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(ne.body),Ye=ce||Ee,Ke=ne.body.indexOf(",")>=0;if(!Ye&&!Ke)return ne.post.match(/,(?!,).*\}/)?(k=ne.pre+"{"+ne.body+n+ne.post,V(k,H,!0)):[k];let We;if(Ye)We=ne.body.split(/\.\./);else if(We=C(ne.body),We.length===1&&We[0]!==void 0&&(We=V(We[0],H,!1).map(F),We.length===1))return K.map(qt=>ne.pre+We[0]+qt);let mt;if(Ye&&We[0]!==void 0&&We[1]!==void 0){let qt=g(We[0]),kt=g(We[1]),ir=Math.max(We[0].length,We[1].length),Gt=We.length===3&&We[2]!==void 0?Math.abs(g(We[2])):1,vi=M;kt<qt&&(Gt*=-1,vi=P);let Q=We.some(x);mt=[];for(let G=qt;vi(G,kt);G+=Gt){let W;if(Ee)W=String.fromCharCode(G),W==="\\"&&(W="");else if(W=String(G),Q){let te=ir-W.length;if(te>0){let he=new Array(te+1).join("0");G<0?W="-"+he+W.slice(1):W=he+W}}mt.push(W)}}else{mt=[];for(let qt=0;qt<We.length;qt++)mt.push.apply(mt,V(We[qt],H,!1))}for(let qt=0;qt<mt.length;qt++)for(let kt=0;kt<K.length&&ie.length<H;kt++){let ir=we+mt[qt]+K[kt];(!z||Ye||ir)&&ie.push(ir)}}return ie}}),udr=Qs(t=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assertValidPattern=void 0;var e=1024*64,r=i=>{if(typeof i!="string")throw new TypeError("invalid pattern");if(i.length>e)throw new TypeError("pattern is too long")};t.assertValidPattern=r}),fdr=Qs(t=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseClass=void 0;var e={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},r=o=>o.replace(/[[\]\\-]/g,"\\$&") Line truncated
globstar while`,Q,Ce,G,et,It),this.matchOne(Q.slice(Ce),G.slice(et),W))return this.debug("globstar found match!",Ce,L,It),!0;if(It==="."||It===".."||!te.dot&&It.charAt(0)==="."){this.debug("dot detected!",Q,Ce,G,et);break}this.debug("globstar swallow a segment, and continue"),Ce++}return!!(W&&(this.debug(`
>>> no match, partial?`,Q,Ce,G,et),Ce===L))}let bt;if(typeof fe=="string"?(bt=Ne===fe,this.debug("string match",fe,Ne,bt)):(bt=fe.test(Ne),this.debug("pattern match",fe,Ne,bt)),!bt)return!1}if(b===L&&v===Z)return!0;if(b===L)return W;if(v===Z)return b===L-1&&Q[b]==="";throw new Error("wtf?")}braceExpand(){return(0,t.braceExpand)(this.pattern,this.options)}parse(Q){(0,r.assertValidPattern)(Q);let G=this.options;if(Q==="**")return t.GLOBSTAR;if(Q==="")return"";let W,te=null;(W=Q.match(g))?te=G.dot?w:E:(W=Q.match(a))?te=(G.nocase?G.dot?f:u:G.dot?l:c)(W[1]):(W=Q.match(C))?te=(G.nocase?G.dot?F:N:G.dot?x:M)(W):(W=Q.match(h))?te=G.dot?p:d:(W=Q.match(m))&&(te=y);let he=i.AST.fromGlob(Q,this.options).toMMPattern();return te&&typeof he=="object"&&Reflect.defineProperty(he,"test",{value:te}),he}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let Q=this.set;if(!Q.length)return this.regexp=!1,this.regexp;let G=this.options,W=G.noglobstar?ie:G.dot?ne:we,te=new Set(G.nocase?["i"]:[]),he=Q.map(L=>{let Z=L.map(Ne=>{if(Ne instanceof RegExp)for(let Ce of Ne.flags.split(""))te.add(Ce);return typeof Ne=="string"?qt(Ne):Ne===t.GLOBSTAR?t.GLOBSTAR:Ne._src});Z.forEach((Ne,Ce)=>{let et=Z[Ce+1],It=Z[Ce-1];Ne!==t.GLOBSTAR||It===t.GLOBSTAR||(It===void 0?et!==void 0&&et!==t.GLOBSTAR?Z[Ce+1]="(?:\\/|"+W+"\\/)?"+et:Z[Ce]=W:et===void 0?Z[Ce-1]=It+"(?:\\/|\\/"+W+")?":et!==t.GLOBSTAR&&(Z[Ce-1]=It+"(?:\\/|\\/"+W+"\\/)"+et,Z[Ce+1]=t.GLOBSTAR))});let fe=Z.filter(Ne=>Ne!==t.GLOBSTAR);if(this.partial&&fe.length>=1){let Ne=[];for(let Ce=1;Ce<=fe.length;Ce++)Ne.push(fe.slice(0,Ce).join("/"));return"(?:"+Ne.join("|")+")"}return fe.join("/")}).join("|"),[b,v]=Q.length>1?["(?:",")"]:["",""];he="^"+b+he+v+"$",this.partial&&(he="^(?:\\/|"+b+he.slice(1,-1)+v+")$"),this.negate&&(he="^(?!"+he+").+$");try{this.regexp=new RegExp(he,[...te].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(Q){return this.preserveMultipleSlashes?Q.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(Q)?["",...Q.split(/\/+/)]:Q.split(/\/+/)}match(Q,G=this.partial){if(this.debug("match",Q,this.pattern),this.comment)return!1;if(this.empty)return Q==="";if(Q==="/"&&G)return!0;let W=this.options;this.isWindows&&(Q=Q.split("\\").join("/"));let te=this.slashSplit(Q);this.debug(this.pattern,"split",te);let he=this.set;this.debug(this.pattern,"set",he);let b=te[te.length-1];if(!b)for(let v=te.length-2;!b&&v>=0;v--)b=te[v];for(let v=0;v<he.length;v++){let L=he[v],Z=te;if(W.matchBase&&L.length===1&&(Z=[b]),this.matchOne(Z,L,G))return W.flipNegate?!0:!this.negate}return W.flipNegate?!1:this.negate}static defaults(Q){return t.minimatch.defaults(Q).Minimatch}};t.Minimatch=kt;var ir=QKe();Object.defineProperty(t,"AST",{enumerable:!0,get:function(){return ir.AST}});var Gt=LKe();Object.defineProperty(t,"escape",{enumerable:!0,get:function(){return Gt.escape}});var vi=tue();Object.defineProperty(t,"unescape",{enumerable:!0,get:function(){return vi.unescape}}),t.minimatch.AST=i.AST,t.minimatch.Minimatch=kt,t.minimatch.escape=n.escape,t.minimatch.unescape=s.unescape}),hdr=Qs(t=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LRUCache=void 0;var e=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,r=new Set,i=typeof process=="object"&&process?process:{},n=(d,p,m,y)=>{typeof i.emitWarning=="function"?i.emitWarning(d,p,m,y):console.error(`[${m}] ${p}: ${d}`)},s=globalThis.AbortController,o=globalThis.AbortSignal;if(typeof s>"u"){o=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(m,y){this._onabort.push(y)}},s=class{constructor(){p()}signal=new o;abort(m){if(!this.signal.aborted){this.signal.reason=m,this.signal.aborted=!0;for(let y of this.signal._onabort)y(m);this.signal.onabort?.(m)}}};let d=i.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",p=()=>{d&&(d=!1,n("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",p))}}var a=d=>!r.has(d),c=d=>d&&d===Math.floor(d)&&d>0&&isFinite(d),l=d=>c(d)?d<=Math.pow(2,8)?Uint8Array:d<=Math.pow(2,16)?Uint16Array:d<=Math.pow(2,32)?Uint32Array:d<=Number.MAX_SAFE_INTEGER?u:null:null,u=class extends Array{constructor(d){super(d),this.fill(0)}},f=class f1{heap;length;static#e=!1;static create(p){let m=l(p);if(!m)return[];f1.#e=!0;let y=new f1(p,m);return f1.#e=!1,y}constructor(p,m){if(!f1.#e)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new m(p),this.length=0}push(p){this.heap[this.length++]=p}pop(){return this.heap[--this.length]}},h=class UKe{#e;#t;#i;#r;#n;#c;#f;#u;get perf(){return this.#u}ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDispose Line truncated
\r
`);if(h===-1){S5("have not received end of HTTP headers yet..."),s();return}let d=f.slice(0,h).toString("ascii").split(`\r
`),p=d.shift();if(!p)return t.destroy(),r(new Error("No header received from proxy CONNECT response"));let m=p.split(" "),y=+m[1],g=m.slice(2).join(" "),E={};for(let w of d){if(!w)continue;let C=w.indexOf(":");if(C===-1)return t.destroy(),r(new Error(`Invalid header from proxy CONNECT response: "${w}"`));let N=w.slice(0,C).toLowerCase(),F=w.slice(C+1).trimStart(),x=E[N];typeof x=="string"?E[N]=[x,F]:Array.isArray(x)?x.push(F):E[N]=F}S5("got proxy server response: %o %o",p,E),o(),e({connect:{statusCode:y,statusText:g,headers:E},buffered:f})}t.on("error",c),t.on("end",a),s()})}TS.parseProxyResponse=Gpr});var GXe=A(ql=>{"use strict";var Hpr=ql&&ql.__createBinding||(Object.create?(function(t,e,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(e,r);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,i,n)}):(function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]})),jpr=ql&&ql.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),UXe=ql&&ql.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&Hpr(e,t,r);return jpr(e,t),e},qXe=ql&&ql.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ql,"__esModule",{value:!0});ql.HttpsProxyAgent=void 0;var m1=UXe(require("net")),FXe=UXe(require("tls")),zpr=qXe(require("assert")),Vpr=qXe(uy()),$pr=wx(),Wpr=require("url"),Jpr=LXe(),A1=(0,Vpr.default)("https-proxy-agent"),B5=class extends $pr.Agent{constructor(e,r){super(r),this.options={path:void 0},this.proxy=typeof e=="string"?new Wpr.URL(e):e,this.proxyHeaders=r?.headers??{},A1("Creating new HttpsProxyAgent instance: %o",this.proxy.href);let i=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),n=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={ALPNProtocols:["http/1.1"],...r?MXe(r,"headers"):null,host:i,port:n}}async connect(e,r){let{proxy:i}=this;if(!r.host)throw new TypeError('No "host" provided');let n;if(i.protocol==="https:"){A1("Creating `tls.Socket`: %o",this.connectOpts);let h=this.connectOpts.servername||this.connectOpts.host;n=FXe.connect({...this.connectOpts,servername:h&&m1.isIP(h)?void 0:h})}else A1("Creating `net.Socket`: %o",this.connectOpts),n=m1.connect(this.connectOpts);let s=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders},o=m1.isIPv6(r.host)?`[${r.host}]`:r.host,a=`CONNECT ${o}:${r.port} HTTP/1.1\r
`;if(i.username||i.password){let h=`${decodeURIComponent(i.username)}:${decodeURIComponent(i.password)}`;s["Proxy-Authorization"]=`Basic ${Buffer.from(h).toString("base64")}`}s.Host=`${o}:${r.port}`,s["Proxy-Connection"]||(s["Proxy-Connection"]=this.keepAlive?"Keep-Alive":"close");for(let h of Object.keys(s))a+=`${h}: ${s[h]}\r
`;let c=(0,Jpr.parseProxyResponse)(n);n.write(`${a}\r
`);let{connect:l,buffered:u}=await c;if(e.emit("proxyConnect",l),this.emit("proxyConnect",l,e),l.statusCode===200){if(e.once("socket",Ypr),r.secureEndpoint){A1("Upgrading socket connection to TLS");let h=r.servername||r.host;return FXe.connect({...MXe(r,"host","path","port"),socket:n,servername:m1.isIP(h)?void 0:h})}return n}n.destroy();let f=new m1.Socket({writable:!1});return f.readable=!0,e.once("socket",h=>{A1("Replaying proxy buffer for failed request"),(0,zpr.default)(h.listenerCount("data")>0),h.push(u),h.push(null)}),f}};B5.protocols=["http","https"];ql.HttpsProxyAgent=B5;function Ypr(t){t.resume()}function MXe(t,...e){let r={},i;for(i in t)e.includes(i)||(r[i]=t[i]);return r}});var VXe=A(zp=>{"use strict";Object.defineProperty(zp,"__esModule",{value:!0});var HXe=require("buffer"),f0={INVALID_ENCODING:"Invalid encoding provided. Please specify a valid encoding the internal Node.js Buffer supports.",INVALID_SMARTBUFFER_SIZE:"Invalid size provided. Size must be a valid integer greater than zero.",INVALID_SMARTBUFFER_BUFFER:"Invalid Buffer provided in SmartBufferOptions.",INVALID_SMARTBUFFER_OBJECT:"Invalid SmartBufferOptions object supplied to SmartBuffer constructor or factory methods.",INVALID_OFFSET:"An invalid offset value was provided.",INVALID_OFFSET_NON_NUMBER:"An invalid offset value was provided. A numeric value is required.",INVALID_LENGTH:"An invalid length value was provided.",INVALID_LENGTH_NON_NUMBER:"An invalid length value was provived. A numeric value is required.",INVALID_TARGET_OFFSET:"Target offset is beyond the bounds of the internal SmartBuffer data.",INVALID_TARGET_LENGTH:"Specified length value moves cursor beyong the bounds of the internal SmartBuffer data.",INVALID_READ_BEYOND_BOUNDS:"Attempted to read beyond the bounds of the managed data.",INVALID_WRITE_BEYOND_BOUNDS:"Attempted to write beyond the bounds of the managed data."};zp.ERRORS=f0;function Kpr(t){if(!HXe.Buffer.isEncoding(t))throw new Error(f0.INVALID_ENCODING)}zp.checkEncoding=Kpr;function jXe(t){return typeof t=="number"&&isFinite(t)&&tmr(t)}zp.isFiniteInteger=jXe;function zXe(t,e){if(typeof t=="number"){if(!jXe(t)||t<0)throw new Error(e?f0.INVALID_OFFSET:f0.INVALID_LENGTH)}else throw new Error(e?f0.INVALID_OFFSET_NON_NUMBER:f0.INVALID_LENGTH_NON_NUMBER)}function Xpr(t){zXe(t,!1)}zp.checkLengthValue=Xpr;function Zpr(t){zXe(t,!0)}zp.checkOffsetValue=Zpr;function emr(t,e){if(t<0||t>e.length)throw new Error(f0.INVALID_TARGET_OFFSET)}zp.checkTargetOffset=emr;function tmr(t){return typeof t=="number"&&isFinite(t)&&Math.floor(t)===t}function rmr(t){if(typeof BigInt>"u")throw new Error("Platform does not support JS BigInt type.");if(typeof HXe.Buffer.prototype[t]>"u")throw new Error(`Platform does not support Buffer.prototype.${t}.`)}zp.bigIntAndBufferInt64Check=rmr});var WXe=A(Bue=>{"use strict";Object.defineProperty(Bue,"__esModule",{value:!0});var Ut=VXe(),$Xe=4096,imr="utf8",Sue=class t{constructor(e){if(this.length=0,this._encoding=imr,this._writeOffset=0,this._readOffset=0,t.isSmartBufferOptions(e))if(e.encoding&&(Ut.checkEncoding(e.encoding),this._encoding=e.encoding),e.size)if(Ut.isFiniteInteger(e.size)&&e.size>0)this._buff=Buffer.allocUnsafe(e.size);else throw new Error(Ut.ERRORS.INVALID_SMARTBUFFER_SIZE);else if(e.buff)if(Buffer.isBuffer(e.buff))this._buff=e.buff,this.length=e.buff.length;else throw new Error(Ut.ERRORS.INVALID_SMARTBUFFER_BUFFER);else this._buff=Buffer.allocUnsafe($Xe);else{if(typeof e<"u")throw new Error(Ut.ERRORS.INVALID_SMARTBUFFER_OBJECT);this._buff=Buffer.allocUnsafe($Xe)}}static fromSize(e,r){return new this({size:e,encoding:r})}static fromBuffer(e,r){return new this({buff:e,encoding:r})}static fromOptions(e){return new this(e)}static isSmartBufferOptions(e){let r=e;return r&&(r.encoding!==void 0||r.size!==void 0||r.buff!==void 0)}readInt8(e){return this._readNumberValue(Buffer.prototype.readInt8,1,e)}readInt16BE(e){return this._readNumberValue(Buffer.prototype.readInt16BE,2,e)}readInt16LE(e){return this._readNumberValue(Buffer.prototype.readInt16LE,2,e)}readInt32BE(e){return this._readNumberValue(Buffer.prototype.readInt32BE,4,e)}readInt32LE(e){return this._readNumberValue(Buffer.prototype.readInt32LE,4,e)}readBigInt64BE(e){return Ut.bigIntAndBufferInt64Check("readBigInt64BE"),this._readNumberValue(Buffer.prototype.readBigInt64BE,8,e)}readBigInt64LE(e){return Ut.bigIntAndBufferInt64Check("readBigInt64LE"),this._readNumberValue(Buffer.prototype.readBigInt64LE,8,e)}writeInt8(e,r){return this._writeNumberValue(Buffer.prototype.writeInt8,1,e,r),this}insertInt8(e,r){return this._insertNumberValue(Buffer.prototype.writeInt8,1,e,r)}writeInt16BE(e,r){return this._writeNumberValue(Buffer.prototype.writeInt16BE,2,e,r)}insertInt16BE(e,r){return this._insertNumberValue(Buffer.prototype.writeInt16BE,2,e,r)}writeInt16LE(e,r){return this._writeNumberValue(Buffer.prototype.writeInt16LE,2,e,r)}insertInt16LE(e,r){return this._insertNumberValue(Buffer.prototype.writeInt16LE,2,e,r)}writeInt32BE(e,r){retur Line truncated
`).join(`
`+s),t.push(n+"m+"+FG.exports.humanize(this.diff)+"\x1B[0m")}else t[0]=_br()+e+" "+t[0]}function _br(){return bs.inspectOpts.hideDate?"":new Date().toISOString()+" "}function Rbr(...t){return process.stderr.write(LG.formatWithOptions(bs.inspectOpts,...t)+`
`)}function Tbr(t){t?process.env.DEBUG=t:delete process.env.DEBUG}function Nbr(){return process.env.DEBUG}function Dbr(t){t.inspectOpts={};let e=Object.keys(bs.inspectOpts);for(let r=0;r<e.length;r++)t.inspectOpts[e[r]]=bs.inspectOpts[e[r]]}FG.exports=Che()(bs);var{formatters:Mtt}=FG.exports;Mtt.o=function(t){return this.inspectOpts.colors=this.useColors,LG.inspect(t,this.inspectOpts).split(`
`).map(e=>e.trim()).join(" ")};Mtt.O=function(t){return this.inspectOpts.colors=this.useColors,LG.inspect(t,this.inspectOpts)}});var She=A((yni,Ihe)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?Ihe.exports=Ftt():Ihe.exports=Utt()});var Gtt=A((Eni,qtt)=>{var Obr=require("dns"),Pbr=["if-modified-since","if-none-match","if-unmodified-since","if-match","if-range"],kbr=t=>{let{strictSSL:e,...r}={...t};if(r.method=r.method?r.method.toUpperCase():"GET",e==null?r.rejectUnauthorized=process.env.NODE_TLS_REJECT_UNAUTHORIZED!=="0":r.rejectUnauthorized=e!==!1,!r.retry)r.retry={retries:0};else if(typeof r.retry=="string"){let i=parseInt(r.retry,10);isFinite(i)?r.retry={retries:i}:r.retry={retries:0}}else typeof r.retry=="number"?r.retry={retries:r.retry}:r.retry={retries:0,...r.retry};return r.dns={ttl:300*1e3,lookup:Obr.lookup,...r.dns},r.cache=r.cache||"default",r.cache==="default"&&Object.keys(r.headers||{}).some(n=>Pbr.includes(n.toLowerCase()))&&(r.cache="no-store"),r.cacheAdditionalHeaders=r.cacheAdditionalHeaders||[],r.cacheManager&&!r.cachePath&&(r.cachePath=r.cacheManager),r};qtt.exports=kbr});var vhe=A((bni,$tt)=>{var Htt=Sce(),jtt=Tce(),Qbr=kh(),ztt={shared:!1,ignoreCargoCult:!0},Lbr={status:200,headers:{}},nB=t=>{let e={method:t.method,url:t.url,headers:{},compress:t.compress};return t.headers.forEach((r,i)=>{e.headers[i]=r}),e},Vtt=t=>{let e={status:t.status,headers:{}};return t.headers.forEach((r,i)=>{e.headers[i]=r}),e},Bhe=class{constructor({entry:e,request:r,response:i,options:n}){this.entry=e,this.request=nB(r),this.response=Vtt(i),this.options=n,this.policy=new Htt(this.request,this.response,ztt),this.entry&&(this.policy._responseTime=this.entry.metadata.time)}static storable(e,r){return!r.cachePath||r.cache==="no-store"||!["GET","HEAD"].includes(e.method)?!1:new Htt(nB(e),Lbr,ztt).storable()}satisfies(e){let r=nB(e);if(this.request.headers.host!==r.headers.host||this.request.compress!==r.compress)return!1;let i=new jtt(this.request),n=new jtt(r);return JSON.stringify(i.mediaTypes())!==JSON.stringify(n.mediaTypes())||JSON.stringify(i.languages())!==JSON.stringify(n.languages())||JSON.stringify(i.encodings())!==JSON.stringify(n.encodings())?!1:this.options.integrity?Qbr.parse(this.options.integrity).match(this.entry.integrity):!0}storable(){return this.policy.storable()}get mustRevalidate(){return!!this.policy._rescc["must-revalidate"]}needsRevalidation(e){let r=nB(e);return r.method="GET",!this.policy.satisfiesWithoutRevalidation(r)}responseHeaders(){return this.policy.responseHeaders()}revalidationHeaders(e){let r=nB(e);return this.policy.revalidationHeaders(r)}revalidated(e,r){let i=nB(e),n=Vtt(r);return!this.policy.revalidatedPolicy(i,n).modified}};$tt.exports=Bhe});var Jtt=A((wni,Wtt)=>{var xhe=class extends Error{constructor(e){super(`request to ${e} failed: cache mode is 'only-if-cached' but no cached response is available.`),this.code="ENOTCACHED"}};Wtt.exports={NotCachedError:xhe}});var Rhe=A((Cni,Ytt)=>{"use strict";var Fbr=ZE(),_he=class extends Fbr{#e=[];#t=new Map;constructor(e,...r){super(),this.#e=e.events,r.length&&this.push(...r)}on(e,r){return this.#e.includes(e)&&this.#t.has(e)?r(...this.#t.get(e)):super.on(e,r)}emit(e,...r){return this.#e.includes(e)&&this.#t.set(e,r),super.emit(e,...r)}};Ytt.exports=_he});var Xtt=A((Ini,Ktt)=>{var{URL:Mbr,format:Ubr}=require("url"),qbr={auth:!1,fragment:!1,search:!0,unicode:!1},Gbr=t=>{let e=new Mbr(t.url);return`make-fetch-happen:request-cache:${Ubr(e,qbr)}`};Ktt.exports=Gbr});var Ztt=A((Sni,Hbr)=>{Hbr.exports={name:"make-fetch-happen",version:"15.0.4",description:"Opinionated, caching, retrying fetch client",main:"lib/index.js",files:["bin/","lib/"],scripts:{test:"tap",posttest:"npm run lint",eslint:'eslint "**/*.{js,cjs,ts,mjs,jsx,tsx}"',lint:"npm run eslint",lintfix:"npm run eslint -- --fix",postlint:"template-oss-check",snap:"tap","template-oss-apply":"template-oss-apply --force"},repository:{type:"git",url:"git+https://github.com/npm/make-fetch-happen.git"},keywords:["http","request","fetch","mean girls","caching","cache","subresource integrity"],author:"GitHub Inc.",license:"ISC",dependencies:{"@gar/promise-retry":"^1.0.0","@npmcli/agent":"^4.0.0",cacache:"^20.0.1","http-cache-semantics":"^4.1.1",minipass:"^7.0.2","minipass-fetch":"^5.0.0","minipass-flush":"^1.0.5","minipass-pipeline":"^1.2.4",negotiator:"^1.0.0","proc-log":"^6.0.0",ssri:"^13.0.0"},devDependencies:{"@npmcli/eslint-config":"^5.0.0","@npmcli/template-oss":"4.25.0",nock:"^13.2.4","safe-buffer":"^5.2.1","standard-version":"^9.3.2",tap:"^16.0.0"},engines:{node:"^20.17.0 || >=22.9.0"},tap:{color:1,files:"test/*.js","check-coverage":!0,timeout:60,"nyc-arg":["--exclude","tap-snapshots/**"]},templateOSS:{"//@npmcli/template-oss":"This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",version:"4.25.0",publish:"true"}}});var UG=A((Bni,trt)=>{var{Minipass:jbr}=Xo(),MG=xp(),{promiseRetry:zbr}=gue(),Vbr=kh(),{log:ert}=b Line truncated
`).forEach(r=>{r.match(NCr)||r.match(DCr)||(e+=r)}),Buffer.from(e,"base64")}function PCr(t,e="CERTIFICATE"){let i=t.toString("base64").match(/.{1,64}/g)||"";return[`-----BEGIN ${e}-----`,...i,`-----END ${e}-----`].join(`
`).concat(`
`)}});var u8=A(sg=>{"use strict";Object.defineProperty(sg,"__esModule",{value:!0});sg.SHA2_HASH_ALGOS=sg.RSA_SIGNATURE_ALGOS=sg.ECDSA_SIGNATURE_ALGOS=void 0;sg.ECDSA_SIGNATURE_ALGOS={"1.2.840.10045.4.3.1":"sha224","1.2.840.10045.4.3.2":"sha256","1.2.840.10045.4.3.3":"sha384","1.2.840.10045.4.3.4":"sha512"};sg.RSA_SIGNATURE_ALGOS={"1.2.840.113549.1.1.14":"sha224","1.2.840.113549.1.1.11":"sha256","1.2.840.113549.1.1.12":"sha384","1.2.840.113549.1.1.13":"sha512"};sg.SHA2_HASH_ALGOS={"2.16.840.1.101.3.4.2.1":"sha256","2.16.840.1.101.3.4.2.2":"sha384","2.16.840.1.101.3.4.2.3":"sha512"}});var Ade=A(f8=>{"use strict";Object.defineProperty(f8,"__esModule",{value:!0});f8.RFC3161TimestampVerificationError=void 0;var mde=class extends Error{};f8.RFC3161TimestampVerificationError=mde});var Krt=A(Wh=>{"use strict";var kCr=Wh&&Wh.__createBinding||(Object.create?(function(t,e,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(e,r);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,i,n)}):(function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]})),QCr=Wh&&Wh.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),LCr=Wh&&Wh.__importStar||(function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var i=[];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(i[i.length]=n);return i},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i=t(e),n=0;n<i.length;n++)i[n]!=="default"&&kCr(r,e,i[n]);return QCr(r,e),r}})();Object.defineProperty(Wh,"__esModule",{value:!0});Wh.TSTInfo=void 0;var Yrt=LCr(fB()),FCr=u8(),MCr=Ade(),gde=class{root;constructor(e){this.root=e}get version(){return this.root.subs[0].toInteger()}get genTime(){return this.root.subs[4].toDate()}get messageImprintHashAlgorithm(){let e=this.messageImprintObj.subs[0].subs[0].toOID();return FCr.SHA2_HASH_ALGOS[e]}get messageImprintHashedMessage(){return this.messageImprintObj.subs[1].value}get raw(){return this.root.toDER()}verify(e){let r=Yrt.digest(this.messageImprintHashAlgorithm,e);if(!Yrt.bufferEqual(r,this.messageImprintHashedMessage))throw new MCr.RFC3161TimestampVerificationError("message imprint does not match artifact")}get messageImprintObj(){return this.root.subs[2]}};Wh.TSTInfo=gde});var Zrt=A(Jh=>{"use strict";var UCr=Jh&&Jh.__createBinding||(Object.create?(function(t,e,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(e,r);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,i,n)}):(function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]})),qCr=Jh&&Jh.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),GCr=Jh&&Jh.__importStar||(function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var i=[];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(i[i.length]=n);return i},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i=t(e),n=0;n<i.length;n++)i[n]!=="default"&&UCr(r,e,i[n]);return qCr(r,e),r}})();Object.defineProperty(Jh,"__esModule",{value:!0});Jh.RFC3161Timestamp=void 0;var HCr=a8(),yde=GCr(fB()),Xrt=u8(),j1=Ade(),jCr=Krt(),zCr="1.2.840.113549.1.7.2",VCr="1.2.840.113549.1.9.16.1.4",$Cr="1.2.840.113549.1.9.4",Ede=class t{root;constructor(e){this.root=e}static parse(e){let r=HCr.ASN1Obj.parseBuffer(e);return new t(r)}get status(){return this.pkiStatusInfoObj.subs[0].toInteger()}get contentType(){return this.contentTypeObj.toOID()}get eContentType(){return this.eContentTypeObj.toOID()}get signingTime(){return this.tstInfo.genTime}get signerIssuer(){return this.signerSidObj.subs[0].value}get signerSerialNumber(){return this.signerSidObj.subs[1].value}get signerDigestAlgorithm(){let e=this.signerDigestAlgorithmObj.subs[0].toOID();return Xrt.SHA2_HASH_ALGOS[e]}get signatureAlgorithm(){let e=this.signatureAlgorithmObj.subs[0].toOID();return Xrt.ECDSA_SIGNATURE_ALGOS[e]}get signatureValue(){return this.signatureValueObj.value}get tstInfo(){return new jCr.TSTInfo(this.eContentObj.subs[0].subs[0])}verify(e,r){if(!this.timeStampTokenObj)throw new j1.RFC3161TimestampVerificationError("timeStampToken is missing");if(this.contentType!==zCr)throw new j1.RFC3161TimestampVerificationError(`incorrect content type: ${this.contentType}`);if(this.eContentType!==VCr)throw new j1.RFC3161TimestampVerificationError(`incorrect encapsulated content type: ${this.eContentType}`);this.tstInfo.verify(e),this.verifyMessageDigest(),this.verifySignature(r)}verifyMessageDigest(){let e=yde.digest(this.signerDigestAlgorithm,this.tstInfo.raw),r=this.messageDigestAttributeObj.subs[1].subs[0].value;if(!yde.bufferEqual(e,r))throw new j1.RFC3161TimestampVerificationError("signed data does not match tstInfo")}verifySignature(e){let r=this.signedAttrsObj.toD Line truncated
`,cSr=/\u2014 (\S+) (\S+)\n/g;function lSr(t,e){let r=t.inclusionProof,i=Vde.fromString(r.checkpoint.envelope),n=S8.fromString(i.note);if(!uSr(i,e))throw new J1.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"invalid checkpoint signature"});return n}function uSr(t,e){let r=Buffer.from(t.note,"utf-8");return t.signatures.some(i=>{let n=e.find(s=>vit.crypto.bufferEqual(s.logID.subarray(0,4),i.keyHint)&&s.baseURL.match(i.name));return n?vit.crypto.verify(r,n.publicKey,i.signature):!1})}var Vde=class t{note;signatures;constructor(e,r){this.note=e,this.signatures=r}static fromString(e){if(!e.includes(zde))throw new J1.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"missing checkpoint separator"});let r=e.indexOf(zde),i=e.slice(0,r+1),s=e.slice(r+zde.length).matchAll(cSr),o=Array.from(s,a=>{let[,c,l]=a,u=Buffer.from(l,"base64");if(u.length<5)throw new J1.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"malformed checkpoint signature"});return{name:c,keyHint:u.subarray(0,4),signature:u.subarray(4)}});if(o.length===0)throw new J1.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"no signatures found in checkpoint"});return new t(i,o)}},S8=class t{origin;logSize;logHash;rest;constructor(e,r,i,n){this.origin=e,this.logSize=r,this.logHash=i,this.rest=n}static fromString(e){let r=e.trimEnd().split(`
`);if(r.length<3)throw new J1.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"too few lines in checkpoint header"});let i=r[0],n=BigInt(r[1]),s=Buffer.from(r[2],"base64"),o=r.slice(3);return new t(i,n,s,o)}};Y1.LogCheckpoint=S8});var _it=A(Yde=>{"use strict";Object.defineProperty(Yde,"__esModule",{value:!0});Yde.verifyMerkleInclusion=dSr;var Jde=ju(),$de=yo(),fSr=Buffer.from([0]),hSr=Buffer.from([1]);function dSr(t,e){let r=t.inclusionProof,i=BigInt(r.logIndex),n=BigInt(e.logSize);if(i<0n||i>=n)throw new $de.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:`invalid index: ${i}`});let{inner:s,border:o}=pSr(i,n);if(r.hashes.length!==s+o)throw new $de.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"invalid hash count"});let a=r.hashes.slice(0,s),c=r.hashes.slice(s),l=bSr(t.canonicalizedBody),u=ASr(mSr(l,a,i),c);if(!Jde.crypto.bufferEqual(u,e.logHash))throw new $de.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"calculated root hash does not match inclusion proof"})}function pSr(t,e){let r=gSr(t,e),i=ySr(t>>BigInt(r));return{inner:r,border:i}}function mSr(t,e,r){return e.reduce((i,n,s)=>r>>BigInt(s)&BigInt(1)?Wde(n,i):Wde(i,n),t)}function ASr(t,e){return e.reduce((r,i)=>Wde(i,r),t)}function gSr(t,e){return ESr(t^e-BigInt(1))}function ySr(t){return t.toString(2).split("1").length-1}function ESr(t){return t===0n?0:t.toString(2).length}function Wde(t,e){return Jde.crypto.digest("sha256",hSr,t,e)}function bSr(t){return Jde.crypto.digest("sha256",fSr,t)}});var Tit=A(Kde=>{"use strict";Object.defineProperty(Kde,"__esModule",{value:!0});Kde.verifyTLogSET=ISr;var Rit=ju(),wSr=yo(),CSr=pB();function ISr(t,e){if(!(0,CSr.filterTLogAuthorities)(e,{logID:t.logId.keyId,targetDate:new Date(Number(t.integratedTime)*1e3)}).some(n=>{let s=SSr(t),o=Buffer.from(Rit.json.canonicalize(s),"utf8"),a=t.inclusionPromise.signedEntryTimestamp;return Rit.crypto.verify(o,n.publicKey,a)}))throw new wSr.VerificationError({code:"TLOG_INCLUSION_PROMISE_ERROR",message:"inclusion promise could not be verified"})}function SSr(t){let{integratedTime:e,logIndex:r,logId:i,canonicalizedBody:n}=t;return{body:n.toString("base64"),integratedTime:Number(e),logIndex:Number(r),logID:i.keyId.toString("hex")}}});var Dit=A(B8=>{"use strict";Object.defineProperty(B8,"__esModule",{value:!0});B8.verifyTLogBody=RSr;B8.verifyTLogInclusion=TSr;var Nit=Efe(),epe=yo(),Xde=Iit(),Zde=Sit(),BSr=Bit(),vSr=xit(),xSr=_it(),_Sr=Tit();function RSr(t,e){let{kind:r,version:i}=t.kindVersion,n=JSON.parse(t.canonicalizedBody.toString("utf8"));if(r!==n.kind||i!==n.apiVersion)throw new epe.VerificationError({code:"TLOG_BODY_ERROR",message:`kind/version mismatch - expected: ${r}/${i}, received: ${n.kind}/${n.apiVersion}`});switch(r){case"dsse":if(i==Xde.DSSE_API_VERSION_V1)return(0,Xde.verifyDSSETLogBody)(n,e);{let s=Nit.Entry.fromJSON(n);return(0,Xde.verifyDSSETLogBodyV2)(s,e)}case"intoto":return(0,BSr.verifyIntotoTLogBody)(n,e);case"hashedrekord":if(i==Zde.HASHEDREKORD_API_VERSION_V1)return(0,Zde.verifyHashedRekordTLogBody)(n,e);{let s=Nit.Entry.fromJSON(n);return(0,Zde.verifyHashedRekordTLogBodyV2)(s,e)}default:throw new epe.VerificationError({code:"TLOG_BODY_ERROR",message:`unsupported kind: ${r}`})}}function TSr(t,e){let r=!1;if(NSr(t)&&((0,_Sr.verifyTLogSET)(t,e),r=!0),DSr(t)){let i=(0,vSr.verifyCheckpoint)(t,e);(0,xSr.verifyMerkleInclusion)(t,i),r=!0}if(!r)throw new epe.VerificationError({code:"TLOG_MISSING_INCLUSION_ERROR",message:"inclusion could not be verified"})}function NSr(t){return t.inclusionPromise!==void 0}function DSr(t){return t.inclusionProof!==void 0}});var Fit=A(v8=>{"use strict";Object.defineProperty(v8,"__esModule",{value:!0});v8.Verifier=void 0;var OSr=require("util"),mB=yo(),Oit=git(),Pit=Eit(),kit=Cit(),Qit=Dit(),tpe=class{trustMaterial;options;constructor(e,r={}){this.trustMaterial=e,this.options={ctlogThreshold:r.ctlogThreshold??1,tlogThreshold:r.tlogThreshold??1,timestampThreshold:r.timestampThreshold??r.tsaThreshold??1,tsaThreshold:0}}verify(e,r){let i=this.verifyTimestamps(e),n=this.verifySigningKey(e,i);return this.verifyTLogs(e),this.verifySignature(e,n),r&&this.verifyPolicy(r,n.identity||{}),n}verifyTimestamps(e){let r=0,i=e.timestamps.map(n=>{switch(n.$case){case"timestamp-authority":return r++,(0,kit.getTSATimestamp)(n.timestamp,e.signature.signature,this.trustMaterial.timestampAuthorities);case"transparency-log":return r++,(0,kit.getTLogTimestamp)(n.tlogEntry)}});if(Lit(i))throw new mB.VerificationError({code:"TIMESTAMP_ERROR",message:"duplicate timestamp"});if(r<this.options.timestampThreshold)throw new mB.VerificationError({code:"TIMESTAMP_ERROR",message:`expected ${this.options.timestampThreshold} timestamps, got ${r}`});return i.map(n=>n.timestamp)}verifySigningKey({key:e},r){switch(e.$case){case"public-key":return(0,Oit.verifyPublicKey)(e.hint,r,this.trustMaterial);case"certificate":{let i=(0,Oit.verifyCertificate)(e.certificate,r,this.trustMaterial);if(Lit(i.scts))throw new mB.Verificat Line truncated
Support boolean input list: \`true | True | TRUE | false | False | FALSE\``)}function wO(t,e){if(process.env.GITHUB_OUTPUT||"")return b2("OUTPUT",cH(t,e));process.stdout.write($z.EOL),sd("set-output",{name:t},nd(e))}function CO(t){process.exitCode=Vz.Failure,myt(t)}function le(t){sd("debug",{},t)}function myt(t,e={}){sd("error",sH(e),t instanceof Error?t.toString():t)}function Kr(t,e={}){sd("warning",sH(e),t instanceof Error?t.toString():t)}function ae(t){process.stdout.write(t+$z.EOL)}function Ayt(t){aH("group",t)}function gyt(){aH("endgroup")}function Ri(t,e){return pyt(this,void 0,void 0,function*(){Ayt(t);let r;try{r=yield e()}finally{gyt()}return r})}function au(t,e){if(process.env.GITHUB_STATE||"")return b2("STATE",cH(t,e));sd("save-state",{name:t},nd(e))}function yCe(t){return process.env[`STATE_${t}`]||""}var SL=q(require("fs"),1),oX=q(require("os"),1),aX=q(require("path"),1);var bCe=q(require("os"),1);function Mv(t){return t==null?"":typeof t=="string"||t instanceof String?t:JSON.stringify(t)}function wCe(t,e,r){let i=new Wz(t,e,r);process.stdout.write(i.toString()+bCe.EOL)}var ECe="::",Wz=class{constructor(e,r,i){e||(e="missing.command"),this.command=e,this.properties=r,this.message=i}toString(){let e=ECe+this.command;if(this.properties&&Object.keys(this.properties).length>0){e+=" ";let r=!0;for(let i in this.properties)if(this.properties.hasOwnProperty(i)){let n=this.properties[i];n&&(r?r=!1:e+=",",e+=`${i}=${Eyt(n)}`)}}return e+=`${ECe}${yyt(this.message)}`,e}};function yyt(t){return Mv(t).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function Eyt(t){return Mv(t).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}var BCe=q(require("os"),1);var ICe=require("os"),Uv=require("fs"),Jz=function(t,e,r,i){function n(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(function(s,o){function a(u){try{l(i.next(u))}catch(f){o(f)}}function c(u){try{l(i.throw(u))}catch(f){o(f)}}function l(u){u.done?s(u.value):n(u.value).then(a,c)}l((i=i.apply(t,e||[])).next())})},{access:byt,appendFile:wyt,writeFile:Cyt}=Uv.promises,CCe="GITHUB_STEP_SUMMARY";var Yz=class{constructor(){this._buffer=""}filePath(){return Jz(this,void 0,void 0,function*(){if(this._filePath)return this._filePath;let e=process.env[CCe];if(!e)throw new Error(`Unable to find environment variable for $${CCe}. Check if your runtime environment supports job summaries.`);try{yield byt(e,Uv.constants.R_OK|Uv.constants.W_OK)}catch{throw new Error(`Unable to access summary file: '${e}'. Check if the file has correct read/write permissions.`)}return this._filePath=e,this._filePath})}wrap(e,r,i={}){let n=Object.entries(i).map(([s,o])=>` ${s}="${o}"`).join("");return r?`<${e}${n}>${r}</${e}>`:`<${e}${n}>`}write(e){return Jz(this,void 0,void 0,function*(){let r=!!e?.overwrite,i=yield this.filePath();return yield(r?Cyt:wyt)(i,this._buffer,{encoding:"utf8"}),this.emptyBuffer()})}clear(){return Jz(this,void 0,void 0,function*(){return this.emptyBuffer().write({overwrite:!0})})}stringify(){return this._buffer}isEmptyBuffer(){return this._buffer.length===0}emptyBuffer(){return this._buffer="",this}addRaw(e,r=!1){return this._buffer+=e,r?this.addEOL():this}addEOL(){return this.addRaw(ICe.EOL)}addCodeBlock(e,r){let i=Object.assign({},r&&{lang:r}),n=this.wrap("pre",this.wrap("code",e),i);return this.addRaw(n).addEOL()}addList(e,r=!1){let i=r?"ol":"ul",n=e.map(o=>this.wrap("li",o)).join(""),s=this.wrap(i,n);return this.addRaw(s).addEOL()}addTable(e){let r=e.map(n=>{let s=n.map(o=>{if(typeof o=="string")return this.wrap("td",o);let{header:a,data:c,colspan:l,rowspan:u}=o,f=a?"th":"td",h=Object.assign(Object.assign({},l&&{colspan:l}),u&&{rowspan:u});return this.wrap(f,c,h)}).join("");return this.wrap("tr",s)}).join(""),i=this.wrap("table",r);return this.addRaw(i).addEOL()}addDetails(e,r){let i=this.wrap("details",this.wrap("summary",e)+r);return this.addRaw(i).addEOL()}addImage(e,r,i){let{width:n,height:s}=i||{},o=Object.assign(Object.assign({},n&&{width:n}),s&&{height:s}),a=this.wrap("img",null,Object.assign({src:e,alt:r},o));return this.addRaw(a).addEOL()}addHeading(e,r){let i=`h${r}`,n=["h1","h2","h3","h4","h5","h6"].includes(i)?i:"h1",s=this.wrap(n,e);return this.addRaw(s).addEOL()}addSeparator(){let e=this.wrap("hr",null);return this.addRaw(e).addEOL()}addBreak(){let e=this.wrap("br",null);return this.addRaw(e).addEOL()}addQuote(e,r){let i=Object.assign({},r&&{cite:r}),n=this.wrap("blockquote",e,i);return this.addRaw(n).addEOL()}addLink(e,r){let i=this.wrap("a",e,{href:r});return this.addRaw(i).addEOL()}},Pxr=new Yz;var Kz=q(require("os"),1);var Lxr=Kz.default.platform(),Fxr=Kz.default.arch();var SCe;(function(t){t[t.Success=0]="Success",t[t.Failure=1]="Failure"})(SCe||(SCe={}));function Xz(){return process.env.RUNNER_DEBUG==="1"}function zr(t){wCe("debug",{},t)}function Zz(t){process.stdout.write(t+BCe.EOL)}var wV=q(require("crypto"),1),zs=q(require("fs"),1);var Ebt=q(EV()Line truncated
`),e=e.replace(/\r/g,`
`));let n=e.split(`
`).map(s=>s.trim());for(let s of n)!s||s.startsWith("#")||i.patterns.push(new ix(s));return i.searchPaths.push(...QV(i.patterns)),i})}static stat(e,r,i){return GV(this,void 0,void 0,function*(){let n;if(r.followSymbolicLinks)try{n=yield Xb.promises.stat(e.path)}catch(s){if(s.code==="ENOENT"){if(r.omitBrokenSymbolicLinks){Xc(`Broken symlink '${e.path}'`);return}throw new Error(`No information found for the path '${e.path}'. This may indicate a broken symbolic link.`)}throw s}else n=yield Xb.promises.lstat(e.path);if(n.isDirectory()&&r.followSymbolicLinks){let s=yield Xb.promises.realpath(e.path);for(;i.length>=e.level;)i.pop();if(i.some(o=>o===s)){Xc(`Symlink cycle detected for path '${e.path}' and realpath '${s}'`);return}i.push(s)}return n})}};var mwt=function(t,e,r,i){function n(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(function(s,o){function a(u){try{l(i.next(u))}catch(f){o(f)}}function c(u){try{l(i.throw(u))}catch(f){o(f)}}function l(u){u.done?s(u.value):n(u.value).then(a,c)}l((i=i.apply(t,e||[])).next())})};function cBe(t,e){return mwt(this,void 0,void 0,function*(){return yield GO.create(t,e)})}var nP=q(require("crypto"),1),tw=q(require("fs"),1),iy=q(require("path"),1),Zve=q(Kve(),1),exe=q(require("util"),1);var hx;(function(t){t.Gzip="cache.tgz",t.Zstd="cache.tzst"})(hx||(hx={}));var xo;(function(t){t.Gzip="gzip",t.ZstdWithoutLong="zstd-without-long",t.Zstd="zstd"})(xo||(xo={}));var ic;(function(t){t.GNU="gnu",t.BSD="bsd"})(ic||(ic={}));var rP=2,iP=5e3,c9=5e3,l9=`${process.env.PROGRAMFILES}\\Git\\usr\\bin\\tar.exe`,Xve=`${process.env.SYSTEMDRIVE}\\Windows\\System32\\tar.exe`,dx="cache.tar",u9="manifest.txt",ANr=10*Math.pow(1024,3);var ew=function(t,e,r,i){function n(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(function(s,o){function a(u){try{l(i.next(u))}catch(f){o(f)}}function c(u){try{l(i.throw(u))}catch(f){o(f)}}function l(u){u.done?s(u.value):n(u.value).then(a,c)}l((i=i.apply(t,e||[])).next())})},hSt=function(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],r;return e?e.call(t):(t=typeof __values=="function"?__values(t):t[Symbol.iterator](),r={},i("next"),i("throw"),i("return"),r[Symbol.asyncIterator]=function(){return this},r);function i(s){r[s]=t[s]&&function(o){return new Promise(function(a,c){o=t[s](o),n(a,c,o.done,o.value)})}}function n(s,o,a,c){Promise.resolve(c).then(function(l){s({value:l,done:a})},o)}},dSt="1.0";function px(){return ew(this,void 0,void 0,function*(){let t=process.platform==="win32",e=process.env.RUNNER_TEMP||"";if(!e){let i;t?i=process.env.USERPROFILE||"C:\\":process.platform==="darwin"?i="/Users":i="/home",e=iy.join(i,"actions","temp")}let r=iy.join(e,nP.randomUUID());return yield wd(r),r})}function ff(t){return tw.statSync(t).size}function f9(t){return ew(this,void 0,void 0,function*(){var e,r,i,n,s;let o=[],a=(s=process.env.GITHUB_WORKSPACE)!==null&&s!==void 0?s:process.cwd(),c=yield cBe(t.join(`
`),{implicitDescendants:!1});try{for(var l=!0,u=hSt(c.globGenerator()),f;f=yield u.next(),e=f.done,!e;l=!0){n=f.value,l=!1;let d=iy.relative(a,n).replace(new RegExp(`\\${iy.sep}`,"g"),"/");ve(`Matched: ${d}`),d===""?o.push("."):o.push(`${d}`)}}catch(h){r={error:h}}finally{try{!l&&!e&&(i=u.return)&&(yield i.call(u))}finally{if(r)throw r.error}}return o})}function mx(t){return ew(this,void 0,void 0,function*(){return exe.promisify(tw.unlink)(t)})}function txe(t){return ew(this,arguments,void 0,function*(e,r=[]){let i="";r.push("--version"),ve(`Checking ${e} ${r.join(" ")}`);try{yield tc(`${e}`,r,{ignoreReturnCode:!0,silent:!0,listeners:{stdout:n=>i+=n.toString(),stderr:n=>i+=n.toString()}})}catch(n){ve(n.message)}return i=i.trim(),ve(i),i})}function Ax(){return ew(this,void 0,void 0,function*(){let t=yield txe("zstd",["--quiet"]),e=Zve.clean(t);return ve(`zstd version: ${e}`),t===""?xo.Gzip:xo.ZstdWithoutLong})}function _m(t){return t===xo.Gzip?hx.Gzip:hx.Zstd}function rxe(){return ew(this,void 0,void 0,function*(){return tw.existsSync(l9)?l9:(yield txe("tar")).toLowerCase().includes("gnu tar")?Cs("tar"):""})}function h9(t,e){if(e===void 0)throw Error(`Expected ${t} but value was undefiend`);return e}function rw(t,e,r=!1){let i=t.slice();return e&&i.push(e),process.platform==="win32"&&!r&&i.push("windows-only"),i.push(dSt),nP.createHash("sha256").update(i.join("|")).digest("hex")}function ixe(){let t=process.env.ACTIONS_RUNTIME_TOKEN;if(!t)throw new Error("Unable to get the ACTIONS_RUNTIME_TOKEN env variable");return t}var Dw=q(require("fs"),1),_1e=require("url");var hf=class extends Error{constructor(e){super(e),this.name="AbortError"}};var nxe=require("node:os"),sxe=q(require("node:util"),1),oxe=q(require("node:process"),1);function axe(t,...e){oxe.default.stderr.write(`${sxe.default.format(t,...e)}${nxe.EOL}`)}var cxe=typeof process<"u"&&process.env&&process.env.DEBUG||void 0,uxe,d9=[],p9=[],oP=[];cxe&&m9(cxe);var fxe=Object.assign(t=>hxe(t),{enable:m9,enabled:A9,disable:pSt,log:axe});function m9(t){uxe=t,d9=[],p9=[];let e=t.split(",").map(r=>r.trim());for(let r of e)r.startsWith("-")?p9.push(r.substring(1)):d9.push(r);for(let r of oP)r.enabled=A9(r.namespace)}function A9(t){if(t.endsWith("*"))return!0;for(let e of p9)if(lxe(t,e))return!1;for(let e of d9)if(lxe(t,e))return!0;return!1}function lxe(t,e){if(e.indexOf("*")===-1)return t===e;let r=e;if(e.indexOf("**")!==-1){let h=[],d="";for(let p of e)p==="*"&&d==="*"||(d=p,h.push(p));r=h.join("")}let i=0,n=0,s=r.length,o=t.length,a=-1,c=-1;for(;i<o&&n<s;)if(r[n]==="*"){if(a=n,n++,n===s)return!0;for(;t[i]!==r[n];)if(i++,i===o)return!1;c=i,i++,n++;continue}else if(r[n]===t[i])n++,i++;else if(a>=0){if(n=a+1,i=c+1,i===o)return!1;for(;t[i]!==r[n];)if(i++,i===o)return!1;c=i,i++,n++;continue}else return!1;let l=i===t.length,u=n===r.length,f=n===r.length-1&&r[n]==="*";return l&&(u||f)}function pSt(){let t=uxe||"";return m9(""),t}function hxe(t){let e=Object.assign(r,{enabled:A9(t),destroy:mSt,log:fxe.log,namespace:t,extend:ASt});function r(...i){e.enabled&&(i.length>0&&(i[0]=`${t} ${i[0]}`),e.log(...i))}return oP.push(e),e}function mSt(){let t=oP.indexOf(this);return t>=0?(oP.splice(t,1),!0):!1}function ASt(t){let e=hxe(`${this.namespace}:${t}`);return e.log=this.log,e}var iw=fxe;var g9=["verbose","info","warning","error"],dxe={verbose:400,info:300,warning:200,error:100};function pxe(t,e){e.log=(...r)=>{t.log(...r)}}function mxe(t){return g9.includes(t)}function aP(t){let e=new Set,r=typeof process<"u"&&process.env&&process.env[t.logLevelEnvVarName]||void 0,i,n=iw(t.namespace);n.log=(...u)=>{iw.log(...u)};function s(u){if(u&&!mxe(u))throw new Error(`Unknown log level '${u}'. Acceptable values: ${g9.join(",")}`);i=u;let f=[];for(let h of e)o(h)&&f.push(h.namespace);iw.enable(f.join(","))}r&&(mxe(r)?s(r):console.error(`${t.logLevelEnvVarName} set to unknown log level '${r}'; logging is not enabled. Acceptable values: ${g9.join(", ")}.`));function o(u){return!!(i&&dxe[u.level]<=dxe[i])}function a(u,f){let h=Object.assign(u.extend(f),{level:f});if(pxe(u,h),o(h)){let d=iw.disable();iw.enable(d+","+h.namespace)}return e.add(h),h}function c(){return i}function l(u){let f=n.extend(u);return pxe(n,f),{error:a(f,"error"),warning:a(f,"warning"),info:a(f,"info"),verbose:a(f,"verbose")}}return{setLogLevel:s,getLogLevel:c,createClientLogger:l,logger:n}}var Axe=aP({logLevelEnvVarName:"TYPESPEC_RUNTIME_LOG_LEVEL",namespace:"typeSpecRuntime"}),gSt=Axe.logger;function gx(t){return Axe.createClientLogger(t)}function cP(t){return t.toLowerCase()}function*ySt(t){for(let e of t.values())yield[e.name,e.value]}var y9=class{_headersMap;constructor(e){if(this._headersMap=new Map,e)for(let r of Object.keys(e))this.set(r,e[r])}set(e,r){this._headersMap.set(cP(e),{name:e,value:String(r).trim()})}get(e){return this._headersMap.get(cP(e))?.value}has(e){return this._headersMap.has(cP(e))}delete(e){this._headersMap.delete(cP(e))}toJSON(e={}){let r={};if(e.preserveCase)for(let i of this._headersMap. Line truncated
${wSt.sanitize({...this,request:{...this.request,agent:i},response:this.response})}`,enumerable:!1}),Object.setPrototypeOf(this,t.prototype)}};function fP(t){return t instanceof _o?!0:sy(t)&&t.name==="RestError"}function pa(t,e){return Buffer.from(t,e)}var hP=q(require("node:http"),1),dP=q(require("node:https"),1),C9=q(require("node:zlib"),1),wxe=require("node:stream");var tl=gx("ts-http-runtime");var CSt={};function yx(t){return t&&typeof t.pipe=="function"}function bxe(t){return t.readable===!1?Promise.resolve():new Promise(e=>{let r=()=>{e(),t.removeListener("close",r),t.removeListener("end",r),t.removeListener("error",r)};t.on("close",r),t.on("end",r),t.on("error",r)})}function Cxe(t){return t&&typeof t.byteLength=="number"}var pP=class extends wxe.Transform{loadedBytes=0;progressCallback;_transform(e,r,i){this.push(e),this.loadedBytes+=e.length;try{this.progressCallback({loadedBytes:this.loadedBytes}),i()}catch(n){i(n)}}constructor(e){super(),this.progressCallback=e}},I9=class{cachedHttpAgent;cachedHttpsAgents=new WeakMap;async sendRequest(e){let r=new AbortController,i;if(e.abortSignal){if(e.abortSignal.aborted)throw new hf("The operation was aborted. Request has already been canceled.");i=l=>{l.type==="abort"&&r.abort()},e.abortSignal.addEventListener("abort",i)}let n;e.timeout>0&&(n=setTimeout(()=>{let l=new hu;tl.info(`request to '${l.sanitizeUrl(e.url)}' timed out. canceling...`),r.abort()},e.timeout));let s=e.headers.get("Accept-Encoding"),o=s?.includes("gzip")||s?.includes("deflate"),a=typeof e.body=="function"?e.body():e.body;if(a&&!e.headers.has("Content-Length")){let l=vSt(a);l!==null&&e.headers.set("Content-Length",l)}let c;try{if(a&&e.onUploadProgress){let p=e.onUploadProgress,m=new pP(p);m.on("error",y=>{tl.error("Error in upload progress",y)}),yx(a)?a.pipe(m):m.end(a),a=m}let l=await this.makeRequest(e,r,a);n!==void 0&&clearTimeout(n);let u=ISt(l),h={status:l.statusCode??0,headers:u,request:e};if(e.method==="HEAD")return l.resume(),h;c=o?SSt(l,u):l;let d=e.onDownloadProgress;if(d){let p=new pP(d);p.on("error",m=>{tl.error("Error in download progress",m)}),c.pipe(p),c=p}return e.streamResponseStatusCodes?.has(Number.POSITIVE_INFINITY)||e.streamResponseStatusCodes?.has(h.status)?h.readableStreamBody=c:h.bodyAsText=await BSt(c),h}finally{if(e.abortSignal&&i){let l=Promise.resolve();yx(a)&&(l=bxe(a));let u=Promise.resolve();yx(c)&&(u=bxe(c)),Promise.all([l,u]).then(()=>{i&&e.abortSignal?.removeEventListener("abort",i)}).catch(f=>{tl.warning("Error when cleaning up abortListener on httpRequest",f)})}}}makeRequest(e,r,i){let n=new URL(e.url),s=n.protocol!=="https:";if(s&&!e.allowInsecureConnection)throw new Error(`Cannot connect to ${e.url} while allowInsecureConnection is false.`);let a={agent:e.agent??this.getOrCreateAgent(e,s),hostname:n.hostname,path:`${n.pathname}${n.search}`,port:n.port,method:e.method,headers:e.headers.toJSON({preserveCase:!0}),...e.requestOverrides};return new Promise((c,l)=>{let u=s?hP.default.request(a,c):dP.default.request(a,c);u.once("error",f=>{l(new _o(f.message,{code:f.code??_o.REQUEST_SEND_ERROR,request:e}))}),r.signal.addEventListener("abort",()=>{let f=new hf("The operation was aborted. Rejecting from abort signal callback while making request.");u.destroy(f),l(f)}),i&&yx(i)?i.pipe(u):i?typeof i=="string"||Buffer.isBuffer(i)?u.end(i):Cxe(i)?u.end(ArrayBuffer.isView(i)?Buffer.from(i.buffer):Buffer.from(i)):(tl.error("Unrecognized body type",i),l(new _o("Unrecognized body type"))):u.end()})}getOrCreateAgent(e,r){let i=e.disableKeepAlive;if(r)return i?hP.default.globalAgent:(this.cachedHttpAgent||(this.cachedHttpAgent=new hP.default.Agent({keepAlive:!0})),this.cachedHttpAgent);{if(i&&!e.tlsSettings)return dP.default.globalAgent;let n=e.tlsSettings??CSt,s=this.cachedHttpsAgents.get(n);return s&&s.options.keepAlive===!i||(tl.info("No cached TLS Agent exist, creating a new Agent"),s=new dP.default.Agent({keepAlive:!i,...n}),this.cachedHttpsAgents.set(n,s)),s}}};function ISt(t){let e=nc();for(let r of Object.keys(t.headers)){let i=t.headers[r];Array.isArray(i)?i.length>0&&e.set(r,i[0]):i&&e.set(r,i)}return e}function SSt(t,e){let r=e.get("Content-Encoding");if(r==="gzip"){let i=C9.default.createGunzip();return t.pipe(i),i}else if(r==="deflate"){let i=C9.default.createInflate();return t.pipe(i),i}return t}function BSt(t){return new Promise((e,r)=>{let i=[];t.on("data",n=>{Buffer.isBuffer(n)?i.push(n):i.push(Buffer.from(n))}),t.on("end",()=>{e(Buffer.concat(i).toString("utf8"))}),t.on("error",n=>{n&&n?.name==="AbortError"?r(n):r(new _o(`Error reading response as text: ${n.message}`,{code:_o.PARSE_ERROR}))})})}function vSt(t){return t?Buffer.isBuffer(t)?t.length:yx(t)?null:Cxe(t)?t.byteLength:typeof t=="string"?Buffer.from(t).length:null:0}function Ixe(){return new I9}function mP(){return Ixe()}var S9="logPolicy";function AP(t={}){let e=t.logger??tl.info,r=new hu({additionalAllowedHeaderNames:t.additionalAllowedHeaderNames,additionalAllowedQueryParameters:t.additional Line truncated
`;return e}function nvt(t){return t instanceof Uint8Array?t.byteLength:LP(t)?t.size===-1?void 0:t.size:void 0}function svt(t){let e=0;for(let r of t){let i=nvt(r);if(i===void 0)return;e+=i}return e}async function ovt(t,e,r){let i=[pa(`--${r}`,"utf-8"),...e.flatMap(s=>[pa(`\r
`,"utf-8"),pa(ivt(s.headers),"utf-8"),pa(`\r
`,"utf-8"),s.body,pa(`\r
--${r}`,"utf-8")]),pa(`--\r
\r
`,"utf-8")],n=svt(i);n&&t.headers.set("Content-Length",n),t.body=await S_e(i)}var Cx="multipartPolicy",avt=70,cvt=new Set("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'()+,-./:=?");function lvt(t){if(t.length>avt)throw new Error(`Multipart boundary "${t}" exceeds maximum length of 70 characters`);if(Array.from(t).some(e=>!cvt.has(e)))throw new Error(`Multipart boundary "${t}" contains invalid characters`)}function MP(){return{name:Cx,async sendRequest(t,e){if(!t.multipartBody)return e(t);if(t.body)throw new Error("multipartBody and regular body cannot be set at the same time");let r=t.multipartBody.boundary,i=t.headers.get("Content-Type")??"multipart/mixed",n=i.match(/^(multipart\/[^ ;]+)(?:; *boundary=(.+))?$/);if(!n)throw new Error(`Got multipart request body, but content-type header was not multipart: ${i}`);let[,s,o]=n;if(o&&r&&o!==r)throw new Error(`Multipart boundary was specified as ${o} in the header, but got ${r} in the request body`);return r??=o,r?lvt(r):r=rvt(),t.headers.set("Content-Type",`${s}; boundary=${r}`),await ovt(t,t.multipartBody.parts,r),t.multipartBody=void 0,e(t)}}}function UP(){return uP()}var B_e=aP({logLevelEnvVarName:"AZURE_LOG_LEVEL",namespace:"azure"}),ZDr=B_e.logger;function mf(t){return B_e.createClientLogger(t)}var Af=mf("core-rest-pipeline");function H9(t={}){return AP({logger:Af.info,...t})}var j9=gP;function z9(t={}){return yP(t)}var qP=q(require("node:os"),1),GP=q(require("node:process"),1);function v_e(){return"User-Agent"}async function x_e(t){if(GP.default&&GP.default.versions){let e=`${qP.default.type()} ${qP.default.release()}; ${qP.default.arch()}`,r=GP.default.versions;r.bun?t.set("Bun",`${r.bun} (${e})`):r.deno?t.set("Deno",`${r.deno} (${e})`):r.node&&t.set("Node",`${r.node} (${e})`)}}var HP="1.22.2";function gvt(t){let e=[];for(let[r,i]of t){let n=i?`${r}/${i}`:r;e.push(n)}return e.join(" ")}function __e(){return v_e()}async function jP(t){let e=new Map;e.set("core-rest-pipeline",HP),await x_e(e);let r=gvt(e);return t?`${t} ${r}`:r}var R_e=__e(),T_e="userAgentPolicy";function V9(t={}){let e=jP(t.userAgentPrefix);return{name:T_e,async sendRequest(r,i){return r.headers.has(R_e)||r.headers.set(R_e,await e),i(r)}}}var cc=class extends Error{constructor(e){super(e),this.name="AbortError"}};function $9(t,e){let{cleanupBeforeAbort:r,abortSignal:i,abortErrorMsg:n}=e??{};return new Promise((s,o)=>{function a(){o(new cc(n??"The operation was aborted."))}function c(){i?.removeEventListener("abort",l)}function l(){r?.(),c(),a()}if(i?.aborted)return a();try{t(u=>{c(),s(u)},u=>{c(),o(u)})}catch(u){o(u)}i?.addEventListener("abort",l)})}var Cvt="The delay was aborted.";function Ix(t,e){let r,{abortSignal:i,abortErrorMsg:n}=e??{};return $9(s=>{r=setTimeout(s,t)},{cleanupBeforeAbort:()=>clearTimeout(r),abortSignal:i,abortErrorMsg:n??Cvt})}function Tm(t){if(sy(t))return t.message;{let e;try{typeof t=="object"&&t?e=JSON.stringify(t):e=String(t)}catch{e="[unable to stringify input]"}return`Unknown error ${e}`}}function N_e(t){return sy(t)}function uw(){return ny()}var wr=cy;var D_e=Symbol("rawContent");function J9(t){return typeof t[D_e]=="function"}function O_e(t){return J9(t)?t[D_e]():t}var zP=Cx;function Y9(){let t=MP();return{name:zP,sendRequest:async(e,r)=>{if(e.multipartBody)for(let i of e.multipartBody.parts)J9(i.body)&&(i.body=O_e(i.body));return t.sendRequest(e,r)}}}var K9=EP;function X9(){return bP()}function Z9(t={}){return IP(t)}function e$(){return SP()}function Nm(t){return F9(t)}function t$(t,e){return PP(t,e)}var P_e="setClientRequestIdPolicy";function r$(t="x-ms-client-request-id"){return{name:P_e,async sendRequest(e,r){return e.headers.has(t)||e.headers.set(t,e.requestId),r(e)}}}function i$(t){return kP(t)}function n$(t){return QP(t)}var fw={span:Symbol.for("@azure/core-tracing span"),namespace:Symbol.for("@azure/core-tracing namespace")};function k_e(t={}){let e=new s$(t.parentContext);return t.span&&(e=e.setValue(fw.span,t.span)),t.namespace&&(e=e.setValue(fw.namespace,t.namespace)),e}var s$=class t{_contextMap;constructor(e){this._contextMap=e instanceof t?new Map(e._contextMap):new Map}setValue(e,r){let i=new t(this);return i._contextMap.set(e,r),i}getValue(e){return this._contextMap.get(e)}deleteValue(e){let r=new t(this);return r._contextMap.delete(e),r}};var L_e=q(Q_e(),1),$P=L_e.state;function Ivt(){return{end:()=>{},isRecording:()=>!1,recordException:()=>{},setAttribute:()=>{},setStatus:()=>{},addEvent:()=>{}}}function Svt(){return{createRequestHeaders:()=>({}),parseTraceparentHeader:()=>{},startSpan:(t,e)=>({span:Ivt(),tracingContext:k_e({parentContext:e.tracingContext})}),withContext(t,e,...r){return e(...r)}}}function Sx(){return $P.instrumenterImplementation||($P.instrumenterImplementation=Svt()),$P.instrumenterImplementation}function Bx(t){let{namespace:e,packageName:r,packageVersion:i}=t;function n(l,u,f){let h=Sx().startSpan(l,{...f,packageName:r,packageVersion:i,tracingContext:u?.tracingOptions?.tracingContext}),d=h.tracingConte Line truncated
`&&t[s]!=="\r";s++)c+=t[s];if(c=c.trim(),c[c.length-1]==="/"&&(c=c.substring(0,c.length-1),s--),!Vxt(c)){let f;return c.trim().length===0?f="Invalid space after '<'.":f="Tag '"+c+"' is an invalid name.",Yi("InvalidTag",f,Ro(t,s))}let l=qxt(t,s);if(l===!1)return Yi("InvalidAttr","Attributes for '"+c+"' have open quote.",Ro(t,s));let u=l.value;if(s=l.index,u[u.length-1]==="/"){let f=s-u.length;u=u.substring(0,u.length-1);let h=yRe(u,e);if(h===!0)i=!0;else return Yi(h.err.code,h.err.msg,Ro(t,f+h.err.line))}else if(a)if(l.tagClosed){if(u.trim().length>0)return Yi("InvalidTag","Closing tag '"+c+"' can't have attributes or invalid starting.",Ro(t,o));if(r.length===0)return Yi("InvalidTag","Closing tag '"+c+"' has not been opened.",Ro(t,o));{let f=r.pop();if(c!==f.tagName){let h=Ro(t,f.tagStartPos);return Yi("InvalidTag","Expected closing tag '"+f.tagName+"' (opened in line "+h.line+", col "+h.col+") instead of closing tag '"+c+"'.",Ro(t,o))}r.length==0&&(n=!0)}}else return Yi("InvalidTag","Closing tag '"+c+"' doesn't have proper closing.",Ro(t,s));else{let f=yRe(u,e);if(f!==!0)return Yi(f.err.code,f.err.msg,Ro(t,s-u.length+f.err.line));if(n===!0)return Yi("InvalidXml","Multiple possible root nodes found.",Ro(t,s));e.unpairedTags.indexOf(c)!==-1||r.push({tagName:c,tagStartPos:o}),i=!0}for(s++;s<t.length;s++)if(t[s]==="<")if(t[s+1]==="!"){s++,s=gRe(t,s);continue}else if(t[s+1]==="?"){if(s=ARe(t,++s),s.err)return s}else break;else if(t[s]==="&"){let f=jxt(t,s);if(f==-1)return Yi("InvalidChar","char '&' is not expected.",Ro(t,s));s=f}else if(n===!0&&!mRe(t[s]))return Yi("InvalidXml","Extra text at the end",Ro(t,s));t[s]==="<"&&s--}}else{if(mRe(t[s]))continue;return Yi("InvalidChar","char '"+t[s]+"' is not expected.",Ro(t,s))}if(i){if(r.length==1)return Yi("InvalidTag","Unclosed tag '"+r[0].tagName+"'.",Ro(t,r[0].tagStartPos));if(r.length>0)return Yi("InvalidXml","Invalid '"+JSON.stringify(r.map(s=>s.tagName),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1})}else return Yi("InvalidXml","Start tag expected.",1);return!0}function mRe(t){return t===" "||t===" "||t===`
`||t==="\r"}function ARe(t,e){let r=e;for(;e<t.length;e++)if(t[e]=="?"||t[e]==" "){let i=t.substr(r,e-r);if(e>5&&i==="xml")return Yi("InvalidXml","XML declaration allowed only at the start of the document.",Ro(t,e));if(t[e]=="?"&&t[e+1]==">"){e++;break}else continue}return e}function gRe(t,e){if(t.length>e+5&&t[e+1]==="-"&&t[e+2]==="-"){for(e+=3;e<t.length;e++)if(t[e]==="-"&&t[e+1]==="-"&&t[e+2]===">"){e+=2;break}}else if(t.length>e+8&&t[e+1]==="D"&&t[e+2]==="O"&&t[e+3]==="C"&&t[e+4]==="T"&&t[e+5]==="Y"&&t[e+6]==="P"&&t[e+7]==="E"){let r=1;for(e+=8;e<t.length;e++)if(t[e]==="<")r++;else if(t[e]===">"&&(r--,r===0))break}else if(t.length>e+9&&t[e+1]==="["&&t[e+2]==="C"&&t[e+3]==="D"&&t[e+4]==="A"&&t[e+5]==="T"&&t[e+6]==="A"&&t[e+7]==="["){for(e+=8;e<t.length;e++)if(t[e]==="]"&&t[e+1]==="]"&&t[e+2]===">"){e+=2;break}}return e}var Mxt='"',Uxt="'";function qxt(t,e){let r="",i="",n=!1;for(;e<t.length;e++){if(t[e]===Mxt||t[e]===Uxt)i===""?i=t[e]:i!==t[e]||(i="");else if(t[e]===">"&&i===""){n=!0;break}r+=t[e]}return i!==""?!1:{value:r,index:e,tagClosed:n}}var Gxt=new RegExp(`(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['"])(([\\s\\S])*?)\\5)?`,"g");function yRe(t,e){let r=rk(t,Gxt),i={};for(let n=0;n<r.length;n++){if(r[n][1].length===0)return Yi("InvalidAttr","Attribute '"+r[n][2]+"' has no space in starting.",kx(r[n]));if(r[n][3]!==void 0&&r[n][4]===void 0)return Yi("InvalidAttr","Attribute '"+r[n][2]+"' is without value.",kx(r[n]));if(r[n][3]===void 0&&!e.allowBooleanAttributes)return Yi("InvalidAttr","boolean attribute '"+r[n][2]+"' is not allowed.",kx(r[n]));let s=r[n][2];if(!zxt(s))return Yi("InvalidAttr","Attribute '"+s+"' is an invalid name.",kx(r[n]));if(!Object.prototype.hasOwnProperty.call(i,s))i[s]=1;else return Yi("InvalidAttr","Attribute '"+s+"' is repeated.",kx(r[n]))}return!0}function Hxt(t,e){let r=/\d/;for(t[e]==="x"&&(e++,r=/[\da-fA-F]/);e<t.length;e++){if(t[e]===";")return e;if(!t[e].match(r))break}return-1}function jxt(t,e){if(e++,t[e]===";")return-1;if(t[e]==="#")return e++,Hxt(t,e);let r=0;for(;e<t.length;e++,r++)if(!(t[e].match(/\w/)&&r<20)){if(t[e]===";")break;return-1}return e}function Yi(t,e,r){return{err:{code:t,msg:e,line:r.line||r,col:r.col}}}function zxt(t){return I$(t)}function Vxt(t){return I$(t)}function Ro(t,e){let r=t.substring(0,e).split(/\r?\n/);return{line:r.length,col:r[r.length-1].length+1}}function kx(t){return t.startIndex+t[1].length}var ERe={amp:"&",AMP:"&",lt:"<",LT:"<",gt:">",GT:">",quot:'"',QUOT:'"',apos:"'",lsquo:"\u2018",rsquo:"\u2019",ldquo:"\u201C",rdquo:"\u201D",lsquor:"\u201A",rsquor:"\u2019",ldquor:"\u201E",bdquo:"\u201E",comma:",",period:".",colon:":",semi:";",excl:"!",quest:"?",num:"#",dollar:"$",percent:"%",amp:"&",ast:"*",commat:"@",lowbar:"_",verbar:"|",vert:"|",sol:"/",bsol:"\\",lbrace:"{",rbrace:"}",lbrack:"[",rbrack:"]",lpar:"(",rpar:")",nbsp:"\xA0",iexcl:"\xA1",cent:"\xA2",pound:"\xA3",curren:"\xA4",yen:"\xA5",brvbar:"\xA6",sect:"\xA7",uml:"\xA8",copy:"\xA9",COPY:"\xA9",ordf:"\xAA",laquo:"\xAB",not:"\xAC",shy:"\xAD",reg:"\xAE",REG:"\xAE",macr:"\xAF",deg:"\xB0",plusmn:"\xB1",sup2:"\xB2",sup3:"\xB3",acute:"\xB4",micro:"\xB5",para:"\xB6",middot:"\xB7",cedil:"\xB8",sup1:"\xB9",ordm:"\xBA",raquo:"\xBB",frac14:"\xBC",frac12:"\xBD",half:"\xBD",frac34:"\xBE",iquest:"\xBF",times:"\xD7",div:"\xF7",divide:"\xF7"},bRe={Agrave:"\xC0",agrave:"\xE0",Aacute:"\xC1",aacute:"\xE1",Acirc:"\xC2",acirc:"\xE2",Atilde:"\xC3",atilde:"\xE3",Auml:"\xC4",auml:"\xE4",Aring:"\xC5",aring:"\xE5",AElig:"\xC6",aelig:"\xE6",Ccedil:"\xC7",ccedil:"\xE7",Egrave:"\xC8",egrave:"\xE8",Eacute:"\xC9",eacute:"\xE9",Ecirc:"\xCA",ecirc:"\xEA",Euml:"\xCB",euml:"\xEB",Igrave:"\xCC",igrave:"\xEC",Iacute:"\xCD",iacute:"\xED",Icirc:"\xCE",icirc:"\xEE",Iuml:"\xCF",iuml:"\xEF",ETH:"\xD0",eth:"\xF0",Ntilde:"\xD1",ntilde:"\xF1",Ograve:"\xD2",ograve:"\xF2",Oacute:"\xD3",oacute:"\xF3",Ocirc:"\xD4",ocirc:"\xF4",Otilde:"\xD5",otilde:"\xF5",Ouml:"\xD6",ouml:"\xF6",Oslash:"\xD8",oslash:"\xF8",Ugrave:"\xD9",ugrave:"\xF9",Uacute:"\xDA",uacute:"\xFA",Ucirc:"\xDB",ucirc:"\xFB",Uuml:"\xDC",uuml:"\xFC",Yacute:"\xDD",yacute:"\xFD",THORN:"\xDE",thorn:"\xFE",szlig:"\xDF",yuml:"\xFF",Yuml:"\u0178"},wRe={Amacr:"\u0100",amacr:"\u0101",Abreve:"\u0102",abreve:"\u0103",Aogon:"\u0104",aogon:"\u0105",Cacute:"\u0106",cacute:"\u0107",Ccirc:"\u0108",ccirc:"\u0109",Cdot:"\u010A",cdot:"\u010B",Ccaron:"\u010C",ccaron:"\u010D",Dcaron:"\u010E",dcaron:"\u010F",Dstrok:"\u0110",dstrok:"\u0111",Emacr:"\u0112",emacr:"\u0113",Ecaron:"\u011A",ecaron:"\u011B",Edot:"\u0116",edot:"\u0117",Eogon:"\u0118",eogon:"\u0119",Gcirc:"\u011C",gcirc:"\u011D",Gbreve:"\u011E",gbreve:"\u011F",Gdot:"\u0120",gdot:"\u0121",Gcedil:"\u0122",Hcirc:"\u0124",hcirc:"\u0125",Hstrok:"\u0126",hstrok:"\u0127",Itilde:"\u0128",itilde:"\u0129",Imacr:"\u012A",imacr:"\u012B",Iogon:"\u012E",iogon:"\u012F",Idot:"\u0130",IJlig:"\u0132",ijlig:"\u0133",Jcirc:"\u0134",jcirc:"\u0135",Kcedil:"\u0136",kcedil:"\u0137",kgreen:"\u0138",Lacute:"\u0139",lacute:"\u013A",Lcedil:"\u013B",lcedil:"\u013C",LcaroLine truncated
`);let e=new ya("!xml"),r=e,i="";this.matcher.reset(),this.entityDecoder.reset(),this.entityExpansionCount=0,this.currentExpandedLength=0;let n=this.options,s=new Fx(n.processEntities),o=t.length;for(let a=0;a<o;a++)if(t[a]==="<"){let l=t.charCodeAt(a+1);if(l===47){let u=Aw(t,">",a,"Closing Tag is not closed."),f=t.substring(a+2,u).trim();if(n.removeNSPrefix){let d=f.indexOf(":");d!==-1&&(f=f.substr(d+1))}f=N$(n.transformTagName,f,"",n).tagName,r&&(i=this.saveTextToParentTag(i,r,this.readonlyMatcher));let h=this.matcher.getCurrentTag();if(f&&n.unpairedTagsSet.has(f))throw new Error(`Unpaired tag can not be used as closing tag: </${f}>`);h&&n.unpairedTagsSet.has(h)&&(this.matcher.pop(),this.tagsNodeStack.pop()),this.matcher.pop(),this.isCurrentNodeStopNode=!1,r=this.tagsNodeStack.pop(),i="",a=u}else if(l===63){let u=D$(t,a,!1,"?>");if(!u)throw new Error("Pi Tag is not closed.");i=this.saveTextToParentTag(i,r,this.readonlyMatcher);let f=this.buildAttributesMap(u.tagExp,this.matcher,u.tagName,!0);if(f){let h=f[this.options.attributeNamePrefix+"version"];this.entityDecoder.setXmlVersion(Number(h)||1),s.setXmlVersion(Number(h)||1)}if(!(n.ignoreDeclaration&&u.tagName==="?xml"||n.ignorePiTags)){let h=new ya(u.tagName);h.add(n.textNodeName,""),u.tagName!==u.tagExp&&u.attrExpPresent&&n.ignoreAttributes!==!0&&(h[":@"]=f),this.addChild(r,h,this.readonlyMatcher,a)}a=u.closeIndex+1}else if(l===33&&t.charCodeAt(a+2)===45&&t.charCodeAt(a+3)===45){let u=Aw(t,"-->",a+4,"Comment is not closed.");if(n.commentPropName){let f=t.substring(a+4,u-2);i=this.saveTextToParentTag(i,r,this.readonlyMatcher),r.add(n.commentPropName,[{[n.textNodeName]:f}])}a=u}else if(l===33&&t.charCodeAt(a+2)===68){let u=s.readDocType(t,a);this.entityDecoder.addInputEntities(u.entities),a=u.i}else if(l===33&&t.charCodeAt(a+2)===91){let u=Aw(t,"]]>",a,"CDATA is not closed.")-2,f=t.substring(a+9,u);i=this.saveTextToParentTag(i,r,this.readonlyMatcher);let h=this.parseTextData(f,r.tagname,this.readonlyMatcher,!0,!1,!0,!0);h==null&&(h=""),n.cdataPropName?r.add(n.cdataPropName,[{[n.textNodeName]:f}]):r.add(n.textNodeName,h),a=u+2}else{let u=D$(t,a,n.removeNSPrefix);if(!u){let F=t.substring(Math.max(0,a-50),Math.min(o,a+50));throw new Error(`readTagExp returned undefined at position ${a}. Context: "${F}"`)}let f=u.tagName,h=u.rawTagName,d=u.tagExp,p=u.attrExpPresent,m=u.closeIndex;if({tagName:f,tagExp:d}=N$(n.transformTagName,f,d,n),n.strictReservedNames&&(f===n.commentPropName||f===n.cdataPropName||f===n.textNodeName||f===n.attributesGroupName))throw new Error(`Invalid tag name: ${f}`);r&&i&&r.tagname!=="!xml"&&(i=this.saveTextToParentTag(i,r,this.readonlyMatcher,!1));let y=r;y&&n.unpairedTagsSet.has(y.tagname)&&(r=this.tagsNodeStack.pop(),this.matcher.pop());let g=!1;d.length>0&&d.lastIndexOf("/")===d.length-1&&(g=!0,f[f.length-1]==="/"?(f=f.substr(0,f.length-1),d=f):d=d.substr(0,d.length-1),p=f!==d);let E=null,w={},C;C=m_t(h),f!==e.tagname&&this.matcher.push(f,{},C),f!==d&&p&&(E=this.buildAttributesMap(d,this.matcher,f),E&&(w=p_t(E,n))),f!==e.tagname&&(this.isCurrentNodeStopNode=this.isItStopNode());let N=a;if(this.isCurrentNodeStopNode){let F="";if(g)a=u.closeIndex;else if(n.unpairedTagsSet.has(f))a=u.closeIndex;else{let M=this.readStopNodeData(t,h,m+1);if(!M)throw new Error(`Unexpected end of ${h}`);a=M.i,F=M.tagContent}let x=new ya(f);E&&(x[":@"]=E),x.add(n.textNodeName,F),this.matcher.pop(),this.isCurrentNodeStopNode=!1,this.addChild(r,x,this.readonlyMatcher,N)}else{if(g){({tagName:f,tagExp:d}=N$(n.transformTagName,f,d,n));let F=new ya(f);E&&(F[":@"]=E),this.addChild(r,F,this.readonlyMatcher,N),this.matcher.pop(),this.isCurrentNodeStopNode=!1}else if(n.unpairedTagsSet.has(f)){let F=new ya(f);E&&(F[":@"]=E),this.addChild(r,F,this.readonlyMatcher,N),this.matcher.pop(),this.isCurrentNodeStopNode=!1,a=u.closeIndex;continue}else{let F=new ya(f);if(this.tagsNodeStack.length>n.maxNestedTags)throw new Error("Maximum nested tags exceeded");this.tagsNodeStack.push(r),E&&(F[":@"]=E),this.addChild(r,F,this.readonlyMatcher,N),r=F}i="",a=m}}}else i+=t[a];return e.child};function w_t(t,e,r,i){this.options.captureMetaData||(i=void 0);let n=this.options.jPath?r.toString():r,s=this.options.updateTag(e.tagname,n,e[":@"]);s===!1||(typeof s=="string"&&(e.tagname=s),t.addChild(e,i))}function C_t(t,e,r){let i=this.options.processEntities;if(!i||!i.enabled)return t;if(i.allowedTags){let n=this.options.jPath?r.toString():r;if(!(Array.isArray(i.allowedTags)?i.allowedTags.includes(e):i.allowedTags(e,n)))return t}if(i.tagFilter){let n=this.options.jPath?r.toString():r;if(!i.tagFilter(e,n))return t}return this.entityDecoder.decode(t)}function I_t(t,e,r,i){return t&&(i===void 0&&(i=e.child.length===0),t=this.parseTextData(t,e.tagname,r,!1,e[":@"]?Object.keys(e[":@"]).length!==0:!1,i),t!==void 0&&t!==""&&e.add(this.options.textNodeName,t),t=""),t}function S_t(){return this.stopNodeExpressionsSet.size===0?!1:this.matcher.matchesAny(this.stopNodeExpressionsSet)}function B_t(t,e,r=">"){Line truncated
`;function O_t(t,e){if(!Array.isArray(t)||t.length===0)return"1.0";let r=t[0];if(F$(r)==="?xml"){let n=r[":@"];if(n){let s=e.attributeNamePrefix+"version";if(n[s])return n[s]}}return"1.0"}function qRe(t,e,r,i,n){return!r.sanitizeName||py(t,{xmlVersion:n})?t:r.sanitizeName(t,{isAttribute:e,matcher:i.readOnly()})}function L$(t,e){let r="";e.format&&(r=D_t);let i=[];if(e.stopNodes&&Array.isArray(e.stopNodes))for(let o=0;o<e.stopNodes.length;o++){let a=e.stopNodes[o];typeof a=="string"?i.push(new fc(a)):a instanceof fc&&i.push(a)}let n=O_t(t,e),s=new Ef;return GRe(t,e,r,s,i,n)}function GRe(t,e,r,i,n,s){let o="",a=!1;if(e.maxNestedTags&&i.getDepth()>e.maxNestedTags)throw new Error("Maximum nested tags exceeded");if(!Array.isArray(t)){if(t!=null){let c=t.toString();return c=Q$(c,e),c}return""}for(let c=0;c<t.length;c++){let l=t[c],u=F$(l);if(u===void 0)continue;let h=u===e.textNodeName||u===e.cdataPropName||u===e.commentPropName||u[0]==="?"?u:qRe(u,!1,e,i,s),d=P_t(l[":@"],e);i.push(h,d);let p=Q_t(i,n);if(h===e.textNodeName){let w=l[u];p||(w=e.tagValueProcessor(h,w),w=Q$(w,e)),a&&(o+=r),o+=w,a=!1,i.pop();continue}else if(h===e.cdataPropName){a&&(o+=r);let w=l[u][0][e.textNodeName],C=lk(w);o+=`<![CDATA[${C}]]>`,a=!1,i.pop();continue}else if(h===e.commentPropName){let w=l[u][0][e.textNodeName],C=ck(w);o+=r+`<!--${C}-->`,a=!0,i.pop();continue}else if(h[0]==="?"){let w=URe(l[":@"],e,p,i,s);o+=(h==="?xml"?"":r)+`<${h}${w}?>`,a=!0,i.pop();continue}let m=r;m!==""&&(m+=e.indentBy);let y=URe(l[":@"],e,p,i,s),g=r+`<${h}${y}`,E;p?E=HRe(l[u],e):E=GRe(l[u],e,m,i,n,s),e.unpairedTags.indexOf(h)!==-1?e.suppressUnpairedNode?o+=g+">":o+=g+"/>":(!E||E.length===0)&&e.suppressEmptyNode?o+=g+"/>":E&&E.endsWith(">")?o+=g+`>${E}${r}</${h}>`:(o+=g+">",E&&r!==""&&(E.includes("/>")||E.includes("</"))?o+=r+e.indentBy+E+r:o+=E,o+=`</${h}>`),a=!0,i.pop()}return o}function P_t(t,e){if(!t||e.ignoreAttributes)return null;let r={},i=!1;for(let n in t){if(!Object.prototype.hasOwnProperty.call(t,n))continue;let s=n.startsWith(e.attributeNamePrefix)?n.substr(e.attributeNamePrefix.length):n;r[s]=Pm(t[n]),i=!0}return i?r:null}function HRe(t,e){if(!Array.isArray(t))return t!=null?t.toString():"";let r="";for(let i=0;i<t.length;i++){let n=t[i],s=F$(n);if(s===e.textNodeName)r+=n[s];else if(s===e.cdataPropName)r+=n[s][0][e.textNodeName];else if(s===e.commentPropName)r+=n[s][0][e.textNodeName];else{if(s&&s[0]==="?")continue;if(s){let o=k_t(n[":@"],e),a=HRe(n[s],e);!a||a.length===0?r+=`<${s}${o}/>`:r+=`<${s}${o}>${a}</${s}>`}}}return r}function k_t(t,e){let r="";if(t&&!e.ignoreAttributes)for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i))continue;let n=t[i];n===!0&&e.suppressBooleanAttributes?r+=` ${i.substr(e.attributeNamePrefix.length)}`:r+=` ${i.substr(e.attributeNamePrefix.length)}="${Pm(n)}"`}return r}function F$(t){let e=Object.keys(t);for(let r=0;r<e.length;r++){let i=e[r];if(Object.prototype.hasOwnProperty.call(t,i)&&i!==":@")return i}}function URe(t,e,r,i,n){let s="";if(t&&!e.ignoreAttributes)for(let o in t){if(!Object.prototype.hasOwnProperty.call(t,o))continue;let a=o.substr(e.attributeNamePrefix.length),c=r?a:qRe(a,!0,e,i,n),l;r?l=t[o]:(l=e.attributeValueProcessor(o,t[o]),l=Q$(l,e)),l===!0&&e.suppressBooleanAttributes?s+=` ${c}`:s+=` ${c}="${Pm(l)}"`}return s}function Q_t(t,e){if(!e||e.length===0)return!1;for(let r=0;r<e.length;r++)if(t.matches(e[r]))return!0;return!1}function Q$(t,e){if(t&&t.length>0&&e.processEntities)for(let r=0;r<e.entities.length;r++){let i=e.entities[r];t=t.replace(i.regex,i.val)}return t}function M$(t){return typeof t=="function"?t:Array.isArray(t)?e=>{for(let r of t)if(typeof r=="string"&&e===r||r instanceof RegExp&&r.test(e))return!0}:()=>!1}var L_t={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&amp;"},{regex:new RegExp(">","g"),val:"&gt;"},{regex:new RegExp("<","g"),val:"&lt;"},{regex:new RegExp("'","g"),val:"&apos;"},{regex:new RegExp('"',"g"),val:"&quot;"}],processEntities:!0,stopNodes:[],oneListGroup:!1,maxNestedTags:100,jPath:!0,sanitizeName:!1};function ba(t){if(this.options=Object.assign({},L_t,t),this.options.stopNodes&&Array.isArray(this.options.stopNodes)&&(this.options.stopNodes=this.options.stopNodes.map(e=>typeof e=="string"&&e.startsWith("*.")?".."+e.substring(2):e)),this.stopNodeExpressions=[],this.options.stopNodes&&Array.isArray(this.options.stopNodes))for(let e=0;e<this.options.stopNodes.length;e++){let r=this.options.stopNodes[e];typeof r=="string"?this.stopNodeExpressions.push(new fc(r)):r instanceof fc&&this.stopNodeExpressions.push(r)}this.options.ignoreAttributes===!0||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignorLine truncated
`,this.newLine=`
`):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function F_t(t,e){let r=t["?xml"];if(r&&typeof r=="object"){if(e.attributesGroupName&&r[e.attributesGroupName]){let n=r[e.attributesGroupName][e.attributeNamePrefix+"version"];if(n)return n}let i=r[e.attributeNamePrefix+"version"];if(i)return i}return"1.0"}function U$(t,e,r,i,n){return!r.sanitizeName||py(t,{xmlVersion:n})?t:r.sanitizeName(t,{isAttribute:e,matcher:i.readOnly()})}ba.prototype.build=function(t){if(this.options.preserveOrder)return L$(t,this.options);{Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t});let e=new Ef,r=F_t(t,this.options);return this.j2x(t,0,e,r).val}};ba.prototype.j2x=function(t,e,r,i){let n="",s="";if(this.options.maxNestedTags&&r.getDepth()>=this.options.maxNestedTags)throw new Error("Maximum nested tags exceeded");let o=this.options.jPath?r.toString():r,a=this.checkStopNode(r);for(let c in t){if(!Object.prototype.hasOwnProperty.call(t,c))continue;let u=c===this.options.textNodeName||c===this.options.cdataPropName||c===this.options.commentPropName||this.options.attributesGroupName&&c===this.options.attributesGroupName||this.isAttribute(c)||c[0]==="?"?c:U$(c,!1,this.options,r,i);if(typeof t[c]>"u")this.isAttribute(c)&&(s+="");else if(t[c]===null)this.isAttribute(c)||u===this.options.cdataPropName||u===this.options.commentPropName?s+="":u[0]==="?"?s+=this.indentate(e)+"<"+u+"?"+this.tagEndChar:s+=this.indentate(e)+"<"+u+"/"+this.tagEndChar;else if(t[c]instanceof Date)s+=this.buildTextValNode(t[c],u,"",e,r);else if(typeof t[c]!="object"){let f=this.isAttribute(c);if(f&&!this.ignoreAttributesFn(f,o)){let h=U$(f,!0,this.options,r,i);n+=this.buildAttrPairStr(h,""+t[c],a)}else if(!f)if(c===this.options.textNodeName){let h=this.options.tagValueProcessor(c,""+t[c]);s+=this.replaceEntitiesValue(h)}else{r.push(u);let h=this.checkStopNode(r);if(r.pop(),h){let d=""+t[c];d===""?s+=this.indentate(e)+"<"+u+this.closeTag(u)+this.tagEndChar:s+=this.indentate(e)+"<"+u+">"+d+"</"+u+this.tagEndChar}else s+=this.buildTextValNode(t[c],u,"",e,r)}}else if(Array.isArray(t[c])){let f=t[c].length,h="",d="";for(let p=0;p<f;p++){let m=t[c][p];if(!(typeof m>"u"))if(m===null)u[0]==="?"?s+=this.indentate(e)+"<"+u+"?"+this.tagEndChar:s+=this.indentate(e)+"<"+u+"/"+this.tagEndChar;else if(typeof m=="object")if(this.options.oneListGroup){r.push(u);let y=this.j2x(m,e+1,r,i);r.pop(),h+=y.val,this.options.attributesGroupName&&m.hasOwnProperty(this.options.attributesGroupName)&&(d+=y.attrStr)}else h+=this.processTextOrObjNode(m,u,e,r,i);else if(this.options.oneListGroup){let y=this.options.tagValueProcessor(u,m);y=this.replaceEntitiesValue(y),h+=y}else{r.push(u);let y=this.checkStopNode(r);if(r.pop(),y){let g=""+m;g===""?h+=this.indentate(e)+"<"+u+this.closeTag(u)+this.tagEndChar:h+=this.indentate(e)+"<"+u+">"+g+"</"+u+this.tagEndChar}else h+=this.buildTextValNode(m,u,"",e,r)}}this.options.oneListGroup&&(h=this.buildObjectNode(h,u,d,e)),s+=h}else if(this.options.attributesGroupName&&c===this.options.attributesGroupName){let f=Object.keys(t[c]),h=f.length;for(let d=0;d<h;d++){let p=U$(f[d],!0,this.options,r,i);n+=this.buildAttrPairStr(p,""+t[c][f[d]],a)}}else s+=this.processTextOrObjNode(t[c],u,e,r,i)}return{attrStr:n,val:s}};ba.prototype.buildAttrPairStr=function(t,e,r){return r||(e=this.options.attributeValueProcessor(t,""+e),e=this.replaceEntitiesValue(e)),this.options.suppressBooleanAttributes&&e==="true"?" "+t:" "+t+'="'+Pm(e)+'"'};function M_t(t,e,r,i,n){let s=this.extractAttributes(t);if(i.push(e,s),this.checkStopNode(i)){let c=this.buildRawContent(t),l=this.buildAttributesForStopNode(t);return i.pop(),this.buildObjectNode(c,e,l,r)}let a=this.j2x(t,r+1,i,n);return i.pop(),e[0]==="?"?this.buildTextValNode("",e,a.attrStr,r,i):t[this.options.textNodeName]!==void 0&&Object.keys(t).length===1?this.buildTextValNode(t[this.options.textNodeName],e,a.attrStr,r,i):this.buildObjectNode(a.val,e,a.attrStr,r)}ba.prototype.extractAttributes=function(t){if(!t||typeof t!="object")return null;let e={},r=!1;if(this.options.attributesGroupName&&t[this.options.attributesGroupName]){let i=t[this.options.attributesGroupName];for(let n in i){if(!Object.prototype.hasOwnProperty.call(i,n))continue;let s=n.startsWith(this.options.attributeNamePrefix)?n.substring(this.options.attributeNamePrefix.length):n;e[s]=Pm(i[n]),r=!0}}else for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i))continue;let n=this.isAttribute(i);n&&(e[n]=Pm(t[i]),r=!0)}return r?e:null};ba.prototype.buildRawContent=function(t){if(typeof t=="string")return t;if(typeof t!="object"||t===null)return String(t);if(t[this.options.textNodeName]!==void 0)return t[this.options.textNodeName];let e="";for(let r in t){if(!Object.prototype.hasOwnProperty.call(t,r)||this.isAttribute(r)||this.options.attributesGroupName&&r===this.options.attributesGroupName)continue;let i=t[r];if(r===this.options.textNodeName)e+=i;else if(Array.isA Line truncated
`)+`
`+this.getCanonicalizedHeadersString(e)+this.getCanonicalizedResourceString(e),i=this.factory.computeHMACSHA256(r);return e.headers.set(Et.AUTHORIZATION,`SharedKey ${this.factory.accountName}:${i}`),e}getHeaderValueToSign(e,r){let i=e.headers.get(r);return!i||r===Et.CONTENT_LENGTH&&i==="0"?"":i}getCanonicalizedHeadersString(e){let r=e.headers.headersArray().filter(n=>n.name.toLowerCase().startsWith(Et.PREFIX_FOR_STORAGE));r.sort((n,s)=>bk(n.name.toLowerCase(),s.name.toLowerCase())),r=r.filter((n,s,o)=>!(s>0&&n.name.toLowerCase()===o[s-1].name.toLowerCase()));let i="";return r.forEach(n=>{i+=`${n.name.toLowerCase().trimRight()}:${n.value.trimLeft()}
`}),i}getCanonicalizedResourceString(e){let r=gk(e.url)||"/",i="";i+=`/${this.factory.accountName}${r}`;let n=yk(e.url),s={};if(n){let o=[];for(let a in n)if(Object.prototype.hasOwnProperty.call(n,a)){let c=a.toLowerCase();s[c]=n[a],o.push(c)}o.sort();for(let a of o)i+=`
${a}:${decodeURIComponent(s[a])}`}return i}};var Ti=class extends gy{accountName;accountKey;constructor(e,r){super(),this.accountName=e,this.accountKey=Buffer.from(r,"base64")}create(e,r){return new Hx(e,r,this)}computeHMACSHA256(e){return(0,KRe.createHmac)("sha256",this.accountKey).update(e,"utf8").digest("base64")}};var Tn=mf("storage-common");var sl;(function(t){t[t.EXPONENTIAL=0]="EXPONENTIAL",t[t.FIXED=1]="FIXED"})(sl||(sl={}));var Qm={maxRetryDelayInMs:120*1e3,maxTries:4,retryDelayInMs:4*1e3,retryPolicyType:sl.EXPONENTIAL,secondaryHost:"",tryTimeoutInMs:void 0},W_t=new cc("The operation was aborted."),jx=class extends bf{retryOptions;constructor(e,r,i=Qm){super(e,r),this.retryOptions={retryPolicyType:i.retryPolicyType?i.retryPolicyType:Qm.retryPolicyType,maxTries:i.maxTries&&i.maxTries>=1?Math.floor(i.maxTries):Qm.maxTries,tryTimeoutInMs:i.tryTimeoutInMs&&i.tryTimeoutInMs>=0?i.tryTimeoutInMs:Qm.tryTimeoutInMs,retryDelayInMs:i.retryDelayInMs&&i.retryDelayInMs>=0?Math.min(i.retryDelayInMs,i.maxRetryDelayInMs?i.maxRetryDelayInMs:Qm.maxRetryDelayInMs):Qm.retryDelayInMs,maxRetryDelayInMs:i.maxRetryDelayInMs&&i.maxRetryDelayInMs>=0?i.maxRetryDelayInMs:Qm.maxRetryDelayInMs,secondaryHost:i.secondaryHost?i.secondaryHost:Qm.secondaryHost}}async sendRequest(e){return this.attemptSendRequest(e,!1,1)}async attemptSendRequest(e,r,i){let n=e.clone(),s=r||!this.retryOptions.secondaryHost||!(e.method==="GET"||e.method==="HEAD"||e.method==="OPTIONS")||i%2===1;s||(n.url=Ak(n.url,this.retryOptions.secondaryHost)),this.retryOptions.tryTimeoutInMs&&(n.url=km(n.url,_d.Parameters.TIMEOUT,Math.floor(this.retryOptions.tryTimeoutInMs/1e3).toString()));let o;try{if(Tn.info(`RetryPolicy: =====> Try=${i} ${s?"Primary":"Secondary"}`),o=await this._nextPolicy.sendRequest(n),!this.shouldRetry(s,i,o))return o;r=r||!s&&o.status===404}catch(a){if(Tn.error(`RetryPolicy: Caught error, message: ${a.message}, code: ${a.code}`),!this.shouldRetry(s,i,o,a))throw a}return await this.delay(s,i,e.abortSignal),this.attemptSendRequest(e,r,++i)}shouldRetry(e,r,i,n){if(r>=this.retryOptions.maxTries)return Tn.info(`RetryPolicy: Attempt(s) ${r} >= maxTries ${this.retryOptions.maxTries}, no further try.`),!1;let s=["ETIMEDOUT","ESOCKETTIMEDOUT","ECONNREFUSED","ECONNRESET","ENOENT","ENOTFOUND","TIMEOUT","EPIPE","REQUEST_SEND_ERROR"];if(n){for(let o of s)if(n.name.toUpperCase().includes(o)||n.message.toUpperCase().includes(o)||n.code&&n.code.toString().toUpperCase()===o)return Tn.info(`RetryPolicy: Network error ${o} found, will retry.`),!0}if(i||n){let o=i?i.status:n?n.statusCode:0;if(!e&&o===404)return Tn.info("RetryPolicy: Secondary access with 404, will retry."),!0;if(o===503||o===500)return Tn.info(`RetryPolicy: Will retry for status code ${o}.`),!0}if(i&&i?.status>=400){let o=i.headers.get(Et.X_MS_CopySourceErrorCode);if(o!==void 0)switch(o){case"InternalError":case"OperationTimedOut":case"ServerBusy":return!0}}return n?.code==="PARSE_ERROR"&&n?.message.startsWith('Error "Error: Unclosed root tag')?(Tn.info("RetryPolicy: Incomplete XML response likely due to service timeout, will retry."),!0):!1}async delay(e,r,i){let n=0;if(e)switch(this.retryOptions.retryPolicyType){case sl.EXPONENTIAL:n=Math.min((Math.pow(2,r-1)-1)*this.retryOptions.retryDelayInMs,this.retryOptions.maxRetryDelayInMs);break;case sl.FIXED:n=this.retryOptions.retryDelayInMs;break}else n=Math.random()*1e3;return Tn.info(`RetryPolicy: Delay for ${n}ms`),Ek(n,i,W_t)}};var zx=class{retryOptions;constructor(e){this.retryOptions=e}create(e,r){return new jx(e,r,this.retryOptions)}};var J_t="storageBrowserPolicy";function XRe(){return{name:J_t,async sendRequest(t,e){return wr||((t.method==="GET"||t.method==="HEAD")&&(t.url=km(t.url,_d.Parameters.FORCE_BROWSER_NO_CACHE,new Date().getTime().toString())),t.headers.delete(Et.COOKIE),t.headers.delete(Et.CONTENT_LENGTH)),e(t)}}}var Y_t="StorageCorrectContentLengthPolicy";function ZRe(){function t(e){e.body&&(typeof e.body=="string"||Buffer.isBuffer(e.body))&&e.body.length>0&&e.headers.set(Et.CONTENT_LENGTH,Buffer.byteLength(e.body))}return{name:Y_t,async sendRequest(e,r){return t(e),r(e)}}}var K_t="storageRetryPolicy",yw={maxRetryDelayInMs:120*1e3,maxTries:4,retryDelayInMs:4*1e3,retryPolicyType:sl.EXPONENTIAL,secondaryHost:"",tryTimeoutInMs:void 0},X_t=["ETIMEDOUT","ESOCKETTIMEDOUT","ECONNREFUSED","ECONNRESET","ENOENT","ENOTFOUND","TIMEOUT","EPIPE","REQUEST_SEND_ERROR"],Z_t=new cc("The operation was aborted.");function eTe(t={}){let e=t.retryPolicyType??yw.retryPolicyType,r=t.maxTries??yw.maxTries,i=t.retryDelayInMs??yw.retryDelayInMs,n=t.maxRetryDelayInMs??yw.maxRetryDelayInMs,s=t.secondaryHost??yw.secondaryHost,o=t.tryTimeoutInMs??yw.tryTimeoutInMs;function a({isPrimaryRetry:l,attempt:u,response:f,error:h}){if(u>=r)return Tn.info(`RetryPolicy: Attempt(s) ${u} >= maxTries ${r}, no further try.`),!1;if(h){for(let d of X_t)if(h.name.toUpperCase().includes(d)||h.message.toUpperCase().includes(d)||h.code&&h.code.toString().toUpperCase()===d)return Line truncated
`)+`
`+i(s)+n(s),a=(0,tTe.createHmac)("sha256",t.accountKey).update(o,"utf8").digest("base64");s.headers.set(Et.AUTHORIZATION,`SharedKey ${t.accountName}:${a}`)}function r(s,o){let a=s.headers.get(o);return!a||o===Et.CONTENT_LENGTH&&a==="0"?"":a}function i(s){let o=[];for(let[c,l]of s.headers)c.toLowerCase().startsWith(Et.PREFIX_FOR_STORAGE)&&o.push({name:c,value:l});o.sort((c,l)=>bk(c.name.toLowerCase(),l.name.toLowerCase())),o=o.filter((c,l,u)=>!(l>0&&c.name.toLowerCase()===u[l-1].name.toLowerCase()));let a="";return o.forEach(c=>{a+=`${c.name.toLowerCase().trimRight()}:${c.value.trimLeft()}
`}),a}function n(s){let o=gk(s.url)||"/",a="";a+=`/${t.accountName}${o}`;let c=yk(s.url),l={};if(c){let u=[];for(let f in c)if(Object.prototype.hasOwnProperty.call(c,f)){let h=f.toLowerCase();l[h]=c[f],u.push(h)}u.sort();for(let f of u)a+=`
${f}:${decodeURIComponent(l[f])}`}return a}return{name:eRt,async sendRequest(s,o){return e(s),o(s)}}}var tRt="storageRequestFailureDetailsParserPolicy";function rTe(){return{name:tRt,async sendRequest(t,e){try{return await e(t)}catch(r){throw typeof r=="object"&&r!==null&&r.response&&r.response.parsedBody&&r.response.parsedBody.code==="InvalidHeaderValue"&&r.response.parsedBody.HeaderName==="x-ms-version"&&(r.message=`The provided service version is not enabled on this storage account. Please see https://learn.microsoft.com/rest/api/storageservices/versioning-for-the-azure-storage-services for additional information.
`),r}}}}var iTe=require("node:crypto"),wk=class{accountName;userDelegationKey;key;constructor(e,r){this.accountName=e,this.userDelegationKey=r,this.key=Buffer.from(r.value,"base64")}computeHMACSHA256(e){return(0,iTe.createHmac)("sha256",this.key).update(e,"utf8").digest("base64")}};var Ck="12.31.0",Ik="2026-02-06";var Sk="https://storage.azure.com/.default",Rd={Parameters:{FORCE_BROWSER_NO_CACHE:"_",SIGNATURE:"sig",SNAPSHOT:"snapshot",VERSIONID:"versionid",TIMEOUT:"timeout"}};var du="",V$="*",rRt=1*1024*1024;var iRt=4*rRt;var nTe="AES256",sTe="DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;",oTe=["Access-Control-Allow-Origin","Cache-Control","Content-Length","Content-Type","Date","Request-Id","traceparent","Transfer-Encoding","User-Agent","x-ms-client-request-id","x-ms-date","x-ms-error-code","x-ms-request-id","x-ms-return-client-request-id","x-ms-version","Accept-Ranges","Content-Disposition","Content-Encoding","Content-Language","Content-MD5","Content-Range","ETag","Last-Modified","Server","Vary","x-ms-content-crc64","x-ms-copy-action","x-ms-copy-completion-time","x-ms-copy-id","x-ms-copy-progress","x-ms-copy-status","x-ms-has-immutability-policy","x-ms-has-legal-hold","x-ms-lease-state","x-ms-lease-status","x-ms-range","x-ms-request-server-encrypted","x-ms-server-encrypted","x-ms-snapshot","x-ms-source-range","If-Match","If-Modified-Since","If-None-Match","If-Unmodified-Since","x-ms-access-tier","x-ms-access-tier-change-time","x-ms-access-tier-inferred","x-ms-account-kind","x-ms-archive-status","x-ms-blob-append-offset","x-ms-blob-cache-control","x-ms-blob-committed-block-count","x-ms-blob-condition-appendpos","x-ms-blob-condition-maxsize","x-ms-blob-content-disposition","x-ms-blob-content-encoding","x-ms-blob-content-language","x-ms-blob-content-length","x-ms-blob-content-md5","x-ms-blob-content-type","x-ms-blob-public-access","x-ms-blob-sequence-number","x-ms-blob-type","x-ms-copy-destination-snapshot","x-ms-creation-time","x-ms-default-encryption-scope","x-ms-delete-snapshots","x-ms-delete-type-permanent","x-ms-deny-encryption-scope-override","x-ms-encryption-algorithm","x-ms-if-sequence-number-eq","x-ms-if-sequence-number-le","x-ms-if-sequence-number-lt","x-ms-incremental-copy","x-ms-lease-action","x-ms-lease-break-period","x-ms-lease-duration","x-ms-lease-id","x-ms-lease-time","x-ms-page-write","x-ms-proposed-lease-id","x-ms-range-get-content-md5","x-ms-rehydrate-priority","x-ms-sequence-number-action","x-ms-sku-name","x-ms-source-content-md5","x-ms-source-if-match","x-ms-source-if-modified-since","x-ms-source-if-none-match","x-ms-source-if-unmodified-since","x-ms-tag-count","x-ms-encryption-key-sha256","x-ms-copy-source-error-code","x-ms-copy-source-status-code","x-ms-if-tags","x-ms-source-if-tags"],aTe=["comp","maxresults","rscc","rscd","rsce","rscl","rsct","se","si","sip","sp","spr","sr","srt","ss","st","sv","include","marker","prefix","copyid","restype","blockid","blocklisttype","delimiter","prevsnapshot","ske","skoid","sks","skt","sktid","skv","snapshot"],cTe="BlobUsesCustomerSpecifiedEncryption",lTe="BlobDoesNotUseCustomerSpecifiedEncryption",uTe=["10000","10001","10002","10003","10004","10100","10101","10102","10103","10104","11000","11001","11002","11003","11004","11100","11101","11102","11103","11104"];function Td(t){if(!t||typeof t!="object")return!1;let e=t;return Array.isArray(e.factories)&&typeof e.options=="object"&&typeof e.toServiceClientOptions=="function"}var Vx=class{factories;options;constructor(e,r={}){this.factories=e,this.options=r}toServiceClientOptions(){return{httpClient:this.options.httpClient,requestPolicyFactories:this.factories}}};function Ki(t,e={}){t||(t=new hi);let r=new Vx([],e);return r._credential=t,r}function nRt(t){let e=[sRt,fTe,oRt,aRt,cRt,lRt,fRt];if(t.factories.length){let r=t.factories.filter(i=>!e.some(n=>n(i)));if(r.length){let i=r.some(n=>uRt(n));return{wrappedPolicies:w$(r),afterRetry:i}}}}function $$(t){let{httpClient:e,...r}=t.options,i=t._coreHttpClient;i||(i=e?C$(e):j$(),t._coreHttpClient=i);let n=t._corePipeline;if(!n){let s=`azsdk-js-azure-storage-blob/${Ck}`,o=r.userAgentOptions&&r.userAgentOptions.userAgentPrefix?`${r.userAgentOptions.userAgentPrefix} ${s}`:`${s}`;n=_x({...r,loggingOptions:{additionalAllowedHeaderNames:oTe,additionalAllowedQueryParameters:aTe,logger:fk.info},userAgentOptions:{userAgentPrefix:o},serializationOptions:{stringifyXML:uk,serializerOptions:{xml:{xmlCharKey:"#"}}},deserializationOptions:{parseXML:G$,serializerOptions:{xml:{xmlCharKey:"#"}}}}),n.removePolicy({phase:"Retry"}),n.removePolicy({name:K9}),n.addPolicy(ZRe()),n.addPolicy(eTe(r.retryOptions),{phase:"Retry"}),n.addPolicy(rTe()),n.addPolicy(XRe());let a=nRt(t);a&&n.addPolicy(a.wrappedPolicies,a.afterRetry?{afterPhase:"Retry"}:void 0);let c=W$(t);lc(c)?n.addPolicy(hw({credential:c,scopes:r.audience??Sk Line truncated
`),s=e.computeHMACSHA256(n);return{sasQueryParameters:new yu(t.version,s,i,void 0,void 0,t.protocol,t.startsOn,t.expiresOn,t.ipRange,t.identifier,r,t.cacheControl,t.contentDisposition,t.contentEncoding,t.contentLanguage,t.contentType),stringToSign:n}}function sNt(t,e){if(t=vy(t),!t.identifier&&!(t.permissions&&t.expiresOn))throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when 'identifier' is not provided.");let r="c",i=t.snapshotTime;t.blobName&&(r="b",t.snapshotTime?r="bs":t.versionId&&(r="bv",i=t.versionId));let n;t.permissions&&(t.blobName?n=Lf.parse(t.permissions.toString()).toString():n=Ff.parse(t.permissions.toString()).toString());let s=[n||"",t.startsOn?Cr(t.startsOn,!1):"",t.expiresOn?Cr(t.expiresOn,!1):"",By(e.accountName,t.containerName,t.blobName),t.identifier,t.ipRange?gu(t.ipRange):"",t.protocol?t.protocol:"",t.version,r,i,t.cacheControl?t.cacheControl:"",t.contentDisposition?t.contentDisposition:"",t.contentEncoding?t.contentEncoding:"",t.contentLanguage?t.contentLanguage:"",t.contentType?t.contentType:""].join(`
`),o=e.computeHMACSHA256(s);return{sasQueryParameters:new yu(t.version,o,n,void 0,void 0,t.protocol,t.startsOn,t.expiresOn,t.ipRange,t.identifier,r,t.cacheControl,t.contentDisposition,t.contentEncoding,t.contentLanguage,t.contentType),stringToSign:s}}function oNt(t,e){if(t=vy(t),!t.identifier&&!(t.permissions&&t.expiresOn))throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when 'identifier' is not provided.");let r="c",i=t.snapshotTime;t.blobName&&(r="b",t.snapshotTime?r="bs":t.versionId&&(r="bv",i=t.versionId));let n;t.permissions&&(t.blobName?n=Lf.parse(t.permissions.toString()).toString():n=Ff.parse(t.permissions.toString()).toString());let s=[n||"",t.startsOn?Cr(t.startsOn,!1):"",t.expiresOn?Cr(t.expiresOn,!1):"",By(e.accountName,t.containerName,t.blobName),t.identifier,t.ipRange?gu(t.ipRange):"",t.protocol?t.protocol:"",t.version,r,i,t.encryptionScope,t.cacheControl?t.cacheControl:"",t.contentDisposition?t.contentDisposition:"",t.contentEncoding?t.contentEncoding:"",t.contentLanguage?t.contentLanguage:"",t.contentType?t.contentType:""].join(`
`),o=e.computeHMACSHA256(s);return{sasQueryParameters:new yu(t.version,o,n,void 0,void 0,t.protocol,t.startsOn,t.expiresOn,t.ipRange,t.identifier,r,t.cacheControl,t.contentDisposition,t.contentEncoding,t.contentLanguage,t.contentType,void 0,void 0,void 0,t.encryptionScope),stringToSign:s}}function aNt(t,e){if(t=vy(t),!t.permissions||!t.expiresOn)throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS.");let r="c",i=t.snapshotTime;t.blobName&&(r="b",t.snapshotTime?r="bs":t.versionId&&(r="bv",i=t.versionId));let n;t.permissions&&(t.blobName?n=Lf.parse(t.permissions.toString()).toString():n=Ff.parse(t.permissions.toString()).toString());let s=[n||"",t.startsOn?Cr(t.startsOn,!1):"",t.expiresOn?Cr(t.expiresOn,!1):"",By(e.accountName,t.containerName,t.blobName),e.userDelegationKey.signedObjectId,e.userDelegationKey.signedTenantId,e.userDelegationKey.signedStartsOn?Cr(e.userDelegationKey.signedStartsOn,!1):"",e.userDelegationKey.signedExpiresOn?Cr(e.userDelegationKey.signedExpiresOn,!1):"",e.userDelegationKey.signedService,e.userDelegationKey.signedVersion,t.ipRange?gu(t.ipRange):"",t.protocol?t.protocol:"",t.version,r,i,t.cacheControl,t.contentDisposition,t.contentEncoding,t.contentLanguage,t.contentType].join(`
`),o=e.computeHMACSHA256(s);return{sasQueryParameters:new yu(t.version,o,n,void 0,void 0,t.protocol,t.startsOn,t.expiresOn,t.ipRange,t.identifier,r,t.cacheControl,t.contentDisposition,t.contentEncoding,t.contentLanguage,t.contentType,e.userDelegationKey),stringToSign:s}}function cNt(t,e){if(t=vy(t),!t.permissions||!t.expiresOn)throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS.");let r="c",i=t.snapshotTime;t.blobName&&(r="b",t.snapshotTime?r="bs":t.versionId&&(r="bv",i=t.versionId));let n;t.permissions&&(t.blobName?n=Lf.parse(t.permissions.toString()).toString():n=Ff.parse(t.permissions.toString()).toString());let s=[n||"",t.startsOn?Cr(t.startsOn,!1):"",t.expiresOn?Cr(t.expiresOn,!1):"",By(e.accountName,t.containerName,t.blobName),e.userDelegationKey.signedObjectId,e.userDelegationKey.signedTenantId,e.userDelegationKey.signedStartsOn?Cr(e.userDelegationKey.signedStartsOn,!1):"",e.userDelegationKey.signedExpiresOn?Cr(e.userDelegationKey.signedExpiresOn,!1):"",e.userDelegationKey.signedService,e.userDelegationKey.signedVersion,t.preauthorizedAgentObjectId,void 0,t.correlationId,t.ipRange?gu(t.ipRange):"",t.protocol?t.protocol:"",t.version,r,i,t.cacheControl,t.contentDisposition,t.contentEncoding,t.contentLanguage,t.contentType].join(`
`),o=e.computeHMACSHA256(s);return{sasQueryParameters:new yu(t.version,o,n,void 0,void 0,t.protocol,t.startsOn,t.expiresOn,t.ipRange,t.identifier,r,t.cacheControl,t.contentDisposition,t.contentEncoding,t.contentLanguage,t.contentType,e.userDelegationKey,t.preauthorizedAgentObjectId,t.correlationId),stringToSign:s}}function lNt(t,e){if(t=vy(t),!t.permissions||!t.expiresOn)throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS.");let r="c",i=t.snapshotTime;t.blobName&&(r="b",t.snapshotTime?r="bs":t.versionId&&(r="bv",i=t.versionId));let n;t.permissions&&(t.blobName?n=Lf.parse(t.permissions.toString()).toString():n=Ff.parse(t.permissions.toString()).toString());let s=[n||"",t.startsOn?Cr(t.startsOn,!1):"",t.expiresOn?Cr(t.expiresOn,!1):"",By(e.accountName,t.containerName,t.blobName),e.userDelegationKey.signedObjectId,e.userDelegationKey.signedTenantId,e.userDelegationKey.signedStartsOn?Cr(e.userDelegationKey.signedStartsOn,!1):"",e.userDelegationKey.signedExpiresOn?Cr(e.userDelegationKey.signedExpiresOn,!1):"",e.userDelegationKey.signedService,e.userDelegationKey.signedVersion,t.preauthorizedAgentObjectId,void 0,t.correlationId,t.ipRange?gu(t.ipRange):"",t.protocol?t.protocol:"",t.version,r,i,t.encryptionScope,t.cacheControl,t.contentDisposition,t.contentEncoding,t.contentLanguage,t.contentType].join(`
`),o=e.computeHMACSHA256(s);return{sasQueryParameters:new yu(t.version,o,n,void 0,void 0,t.protocol,t.startsOn,t.expiresOn,t.ipRange,t.identifier,r,t.cacheControl,t.contentDisposition,t.contentEncoding,t.contentLanguage,t.contentType,e.userDelegationKey,t.preauthorizedAgentObjectId,t.correlationId,t.encryptionScope),stringToSign:s}}function uNt(t,e){if(t=vy(t),!t.permissions||!t.expiresOn)throw new RangeError("Must provide 'permissions' and 'expiresOn' for Blob SAS generation when generating user delegation SAS.");let r="c",i=t.snapshotTime;t.blobName&&(r="b",t.snapshotTime?r="bs":t.versionId&&(r="bv",i=t.versionId));let n;t.permissions&&(t.blobName?n=Lf.parse(t.permissions.toString()).toString():n=Ff.parse(t.permissions.toString()).toString());let s=[n||"",t.startsOn?Cr(t.startsOn,!1):"",t.expiresOn?Cr(t.expiresOn,!1):"",By(e.accountName,t.containerName,t.blobName),e.userDelegationKey.signedObjectId,e.userDelegationKey.signedTenantId,e.userDelegationKey.signedStartsOn?Cr(e.userDelegationKey.signedStartsOn,!1):"",e.userDelegationKey.signedExpiresOn?Cr(e.userDelegationKey.signedExpiresOn,!1):"",e.userDelegationKey.signedService,e.userDelegationKey.signedVersion,t.preauthorizedAgentObjectId,void 0,t.correlationId,void 0,t.delegatedUserObjectId,t.ipRange?gu(t.ipRange):"",t.protocol?t.protocol:"",t.version,r,i,t.encryptionScope,t.cacheControl,t.contentDisposition,t.contentEncoding,t.contentLanguage,t.contentType].join(`
`),o=e.computeHMACSHA256(s);return{sasQueryParameters:new yu(t.version,o,n,void 0,void 0,t.protocol,t.startsOn,t.expiresOn,t.ipRange,t.identifier,r,t.cacheControl,t.contentDisposition,t.contentEncoding,t.contentLanguage,t.contentType,e.userDelegationKey,t.preauthorizedAgentObjectId,t.correlationId,t.encryptionScope,t.delegatedUserObjectId),stringToSign:s}}function By(t,e,r){let i=[`/blob/${t}/${e}`];return r&&i.push(`/${r}`),i.join("")}function vy(t){let e=t.version?t.version:Ik;if(t.snapshotTime&&e<"2018-11-09")throw RangeError("'version' must be >= '2018-11-09' when providing 'snapshotTime'.");if(t.blobName===void 0&&t.snapshotTime)throw RangeError("Must provide 'blobName' when providing 'snapshotTime'.");if(t.versionId&&e<"2019-10-10")throw RangeError("'version' must be >= '2019-10-10' when providing 'versionId'.");if(t.blobName===void 0&&t.versionId)throw RangeError("Must provide 'blobName' when providing 'versionId'.");if(t.permissions&&t.permissions.setImmutabilityPolicy&&e<"2020-08-04")throw RangeError("'version' must be >= '2020-08-04' when provided 'i' permission.");if(t.permissions&&t.permissions.deleteVersion&&e<"2019-10-10")throw RangeError("'version' must be >= '2019-10-10' when providing 'x' permission.");if(t.permissions&&t.permissions.permanentDelete&&e<"2019-10-10")throw RangeError("'version' must be >= '2019-10-10' when providing 'y' permission.");if(t.permissions&&t.permissions.tag&&e<"2019-12-12")throw RangeError("'version' must be >= '2019-12-12' when providing 't' permission.");if(e<"2020-02-10"&&t.permissions&&(t.permissions.move||t.permissions.execute))throw RangeError("'version' must be >= '2020-02-10' when providing the 'm' or 'e' permission.");if(e<"2021-04-10"&&t.permissions&&t.permissions.filterByTags)throw RangeError("'version' must be >= '2021-04-10' when providing the 'f' permission.");if(e<"2020-02-10"&&(t.preauthorizedAgentObjectId||t.correlationId))throw RangeError("'version' must be >= '2020-02-10' when providing 'preauthorizedAgentObjectId' or 'correlationId'.");if(t.encryptionScope&&e<"2020-12-06")throw RangeError("'version' must be >= '2020-12-06' when provided 'encryptionScope' in SAS.");return t.version=e,t}var n_=class{_leaseId;_url;_containerOrBlobOperation;_isContainer;get leaseId(){return this._leaseId}get url(){return this._url}constructor(e,r){let i=e.storageClientContext;this._url=e.url,e.name===void 0?(this._isContainer=!0,this._containerOrBlobOperation=i.container):(this._isContainer=!1,this._containerOrBlobOperation=i.blob),r||(r=uw()),this._leaseId=r}async acquireLease(e,r={}){if(this._isContainer&&(r.conditions?.ifMatch&&r.conditions?.ifMatch!==du||r.conditions?.ifNoneMatch&&r.conditions?.ifNoneMatch!==du||r.conditions?.tagConditions))throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.");return Ve.withSpan("BlobLeaseClient-acquireLease",r,async i=>rt(await this._containerOrBlobOperation.acquireLease({abortSignal:r.abortSignal,duration:e,modifiedAccessConditions:{...r.conditions,ifTags:r.conditions?.tagConditions},proposedLeaseId:this._leaseId,tracingOptions:i.tracingOptions})))}async changeLease(e,r={}){if(this._isContainer&&(r.conditions?.ifMatch&&r.conditions?.ifMatch!==du||r.conditions?.ifNoneMatch&&r.conditions?.ifNoneMatch!==du||r.conditions?.tagConditions))throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.");return Ve.withSpan("BlobLeaseClient-changeLease",r,async i=>{let n=rt(await this._containerOrBlobOperation.changeLease(this._leaseId,e,{abortSignal:r.abortSignal,modifiedAccessConditions:{...r.conditions,ifTags:r.conditions?.tagConditions},tracingOptions:i.tracingOptions}));return this._leaseId=e,n})}async releaseLease(e={}){if(this._isContainer&&(e.conditions?.ifMatch&&e.conditions?.ifMatch!==du||e.conditions?.ifNoneMatch&&e.conditions?.ifNoneMatch!==du||e.conditions?.tagConditions))throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.");return Ve.withSpan("BlobLeaseClient-releaseLease",e,async r=>rt(await this._containerOrBlobOperation.releaseLease(this._leaseId,{abortSignal:e.abortSignal,modifiedAccessConditions:{...e.conditions,ifTags:e.conditions?.tagConditions},tracingOptions:r.tracingOptions})))}async renewLease(e={}){if(this._isContainer&&(e.conditions?.ifMatch&&e.conditions?.ifMatch!==du||e.conditions?.ifNoneMatch&&e.conditions?.ifNoneMatch!==du||e.conditions?.tagConditions))throw new RangeError("The IfMatch, IfNoneMatch and tags access conditions are ignored by the service. Values other than undefined or their default values are not acceptable.");return Ve.withSpan("BlobLeaseClient-renewLease",e,async r=>this._containerOrBlobOperation.renewLease(this._leaseId,{abortSignal:e.ab Line truncated
If you are using self-hosted runners, please make sure your runner has access to all GitHub endpoints: https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners#communication-between-self-hosted-runners-and-github`;super(r),this.code=e,this.name="NetworkError"}};Tw.isNetworkErrorCode=t=>t?["ECONNRESET","ENOTFOUND","ETIMEDOUT","ECONNREFUSED","EHOSTUNREACH"].includes(t):!1;var Ty=class extends Error{constructor(){super(`Cache storage quota has been hit. Unable to upload any new cache entries. Usage is recalculated every 6-12 hours.
More info on storage limits: https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions#calculating-minute-and-storage-spending`),this.name="UsageError"}};Ty.isUsageErrorMessage=t=>t?t.includes("insufficient usage"):!1;var p_=class extends Error{constructor(e){super(e),this.name="RateLimitError"}};var b1t=function(t,e,r,i){function n(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(function(s,o){function a(u){try{l(i.next(u))}catch(f){o(f)}}function c(u){try{l(i.throw(u))}catch(f){o(f)}}function l(u){u.done?s(u.value):n(u.value).then(a,c)}l((i=i.apply(t,e||[])).next())})},L7=class{constructor(e){this.contentLength=e,this.sentBytes=0,this.displayedComplete=!1,this.startTime=Date.now()}setSentBytes(e){this.sentBytes=e}getTransferredBytes(){return this.sentBytes}isDone(){return this.getTransferredBytes()===this.contentLength}display(){if(this.displayedComplete)return;let e=this.sentBytes,r=(100*(e/this.contentLength)).toFixed(1),i=Date.now()-this.startTime,n=(e/(1024*1024)/(i/1e3)).toFixed(1);gn(`Sent ${e} of ${this.contentLength} (${r}%), ${n} MBs/sec`),this.isDone()&&(this.displayedComplete=!0)}onProgress(){return e=>{this.setSentBytes(e.loadedBytes)}}startDisplayTimer(e=1e3){let r=()=>{this.display(),this.isDone()||(this.timeoutHandle=setTimeout(r,e))};this.timeoutHandle=setTimeout(r,e)}stopDisplayTimer(){this.timeoutHandle&&(clearTimeout(this.timeoutHandle),this.timeoutHandle=void 0),this.display()}};function p1e(t,e,r){return b1t(this,void 0,void 0,function*(){var i;let n=new Eu(t),s=n.getBlockBlobClient(),o=new L7((i=r?.archiveSizeBytes)!==null&&i!==void 0?i:0),a={blockSize:r?.uploadChunkSize,concurrency:r?.uploadConcurrency,maxSingleShotSize:128*1024*1024,onProgress:o.onProgress()};try{o.startDisplayTimer(),ve(`BlobClient: ${n.name}:${n.accountName}:${n.containerName}`);let c=yield s.uploadFile(e,a);if(c._response.status>=400)throw new _Q(`uploadCacheArchiveSDK: upload failed with status code ${c._response.status}`);return c}catch(c){throw lu(`uploadCacheArchiveSDK: internal error uploading cache archive: ${c.message}`),c}finally{o.stopDisplayTimer()}})}var A1e=q(require("buffer"),1),Mf=q(require("fs"),1),g1e=q(require("stream"),1),y1e=q(require("util"),1);var RQ=function(t,e,r,i){function n(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(function(s,o){function a(u){try{l(i.next(u))}catch(f){o(f)}}function c(u){try{l(i.throw(u))}catch(f){o(f)}}function l(u){u.done?s(u.value):n(u.value).then(a,c)}l((i=i.apply(t,e||[])).next())})};function TQ(t){return t?t>=200&&t<300:!1}function w1t(t){return t?t>=500:!0}function C1t(t){return t?[Dr.BadGateway,Dr.ServiceUnavailable,Dr.GatewayTimeout].includes(t):!1}function I1t(t){return RQ(this,void 0,void 0,function*(){return new Promise(e=>setTimeout(e,t))})}function m1e(t,e,r){return RQ(this,arguments,void 0,function*(i,n,s,o=rP,a=iP,c=void 0){let l="",u=1;for(;u<=o;){let f,h,d=!1;try{f=yield n()}catch(p){c&&(f=c(p)),d=!0,l=p.message}if(f&&(h=s(f),!w1t(h)))return f;if(h&&(d=C1t(h),l=`Cache service responded with ${h}`),ve(`${i} - Attempt ${u} of ${o} failed with error: ${l}`),!d){ve(`${i} - Error is not retryable`);break}yield I1t(a),u++}throw Error(`${i} failed: ${l}`)})}function m_(t,e){return RQ(this,arguments,void 0,function*(r,i,n=rP,s=iP){return yield m1e(r,i,o=>o.statusCode,n,s,o=>{if(o instanceof sf)return{statusCode:o.statusCode,result:null,headers:{},error:o}})})}function Nw(t,e){return RQ(this,arguments,void 0,function*(r,i,n=rP,s=iP){return yield m1e(r,i,o=>o.message.statusCode,n,s)})}var ul=function(t,e,r,i){function n(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(function(s,o){function a(u){try{l(i.next(u))}catch(f){o(f)}}function c(u){try{l(i.throw(u))}catch(f){o(f)}}function l(u){u.done?s(u.value):n(u.value).then(a,c)}l((i=i.apply(t,e||[])).next())})};function S1t(t,e){return ul(this,void 0,void 0,function*(){yield y1e.promisify(g1e.pipeline)(t.message,e)})}var NQ=class{constructor(e){this.contentLength=e,this.segmentIndex=0,this.segmentSize=0,this.segmentOffset=0,this.receivedBytes=0,this.displayedComplete=!1,this.startTime=Date.now()}nextSegment(e){this.segmentOffset=this.segmentOffset+this.segmentSize,this.segmentIndex=this.segmentIndex+1,this.segmentSize=e,this.receivedBytes=0,ve(`Downloading segment at offset ${this.segmentOffset} with length ${this.segmentSize}...`)}setReceivedBytes(e){this.receivedBytes=e}getTransferredBytes(){return this.segmentOffset+this.receivedBytes}isDone(){return this.getTransferredBytes()===this.contentLength}display(){if(this.displayedComplete)return;let e=this.segmentOffset+this.receivedBytes,r=(100*(e/this.contentLength)).toFixed(1),i=Date.now()-this.startTime,n=(e/(1024*1024)/(i/1e3)).toFixed(1);gn(`Received ${e} of ${this.contentLength} (${r}%), ${n} MBs/sec`),this.isDone()&&(this.displayedComplete=!0)}onProgress(){return e=>{this.setReceivedBytes(e.loadedBytes)}}startDisplayTi Line truncated
Other caches with similar key:`);for(let a of s?.artifactCaches||[])ve(`Cache Key: ${a?.cacheKey}, Cache Version: ${a?.cacheVersion}, Cache Scope: ${a?.scope}, Cache Created: ${a?.creationTime}`)}}})}function q7(t,e,r){return Ca(this,void 0,void 0,function*(){let i=new _1e.URL(t),n=C1e(r);i.hostname.endsWith(".blob.core.windows.net")?n.useAzureSdk?yield b1e(t,e,n):n.concurrentBlobDownloads?yield E1e(t,e,n):yield DQ(t,e):yield DQ(t,e)})}function T1e(t,e,r){return Ca(this,void 0,void 0,function*(){let i=U7(),n=rw(e,r?.compressionMethod,r?.enableCrossOsArchive),s={key:t,version:n,cacheSize:r?.cacheSize};return yield m_("reserveCache",()=>Ca(this,void 0,void 0,function*(){return i.postJson(g_("caches"),s)}))})}function x1e(t,e){return`bytes ${t}-${e}/*`}function D1t(t,e,r,i,n){return Ca(this,void 0,void 0,function*(){ve(`Uploading chunk of size ${n-i+1} bytes at offset ${i} with content range: ${x1e(i,n)}`);let s={"Content-Type":"application/octet-stream","Content-Range":x1e(i,n)},o=yield Nw(`uploadChunk (start: ${i}, end: ${n})`,()=>Ca(this,void 0,void 0,function*(){return t.sendStream("PATCH",e,r(),s)}));if(!TQ(o.message.statusCode))throw new Error(`Cache service responded with ${o.message.statusCode} during upload chunk.`)})}function O1t(t,e,r,i){return Ca(this,void 0,void 0,function*(){let n=ff(r),s=g_(`caches/${e.toString()}`),o=Dw.openSync(r,"r"),a=F7(i),c=h9("uploadConcurrency",a.uploadConcurrency),l=h9("uploadChunkSize",a.uploadChunkSize),u=[...new Array(c).keys()];ve("Awaiting all uploads");let f=0;try{yield Promise.all(u.map(()=>Ca(this,void 0,void 0,function*(){for(;f<n;){let h=Math.min(n-f,l),d=f,p=f+h-1;f+=l,yield D1t(t,s,()=>Dw.createReadStream(r,{fd:o,start:d,end:p,autoClose:!1}).on("error",m=>{throw new Error(`Cache upload failed because file read failed with ${m.message}`)}),d,p)}})))}finally{Dw.closeSync(o)}})}function P1t(t,e,r){return Ca(this,void 0,void 0,function*(){let i={size:r};return yield m_("commitCache",()=>Ca(this,void 0,void 0,function*(){return t.postJson(g_(`caches/${e.toString()}`),i)}))})}function G7(t,e,r,i){return Ca(this,void 0,void 0,function*(){if(F7(i).useAzureSdk){if(!r)throw new Error("Azure Storage SDK can only be used when a signed URL is provided.");yield p1e(r,e,i)}else{let s=U7();ve("Upload cache"),yield O1t(s,t,e,i),ve("Commiting cache");let o=ff(e);gn(`Cache Size: ~${Math.round(o/(1024*1024))} MB (${o} B)`);let a=yield P1t(s,t,o);if(!TQ(a.statusCode))throw new Error(`Cache service responded with ${a.statusCode} during commit cache.`);gn("Cache saved successfully")}})}var S2e=q(g2e(),1),en=q(Zi(),1),pc=q(Zi(),1),ky=q(Zi(),1),Qy=q(Zi(),1),Ly=q(Zi(),1);var QK=q(Zi(),1),LK=q(Zi(),1),w2e=q(Zi(),1),C2e=q(Zi(),1),I2e=q(Zi(),1);var OK=q(Zi(),1),PK=q(Zi(),1),y2e=q(Zi(),1),E2e=q(Zi(),1),b2e=q(Zi(),1),kK=class extends b2e.MessageType{constructor(){super("github.actions.results.entities.v1.CacheScope",[{no:1,name:"scope",kind:"scalar",T:9},{no:2,name:"permission",kind:"scalar",T:3}])}create(e){let r={scope:"",permission:"0"};return globalThis.Object.defineProperty(r,E2e.MESSAGE_TYPE,{enumerable:!1,value:this}),e!==void 0&&(0,y2e.reflectionMergePartial)(this,r,e),r}internalBinaryRead(e,r,i,n){let s=n??this.create(),o=e.pos+r;for(;e.pos<o;){let[a,c]=e.tag();switch(a){case 1:s.scope=e.string();break;case 2:s.permission=e.int64().toString();break;default:let l=i.readUnknownField;if(l==="throw")throw new globalThis.Error(`Unknown field ${a} (wire type ${c}) for ${this.typeName}`);let u=e.skip(c);l!==!1&&(l===!0?PK.UnknownFieldHandler.onRead:l)(this.typeName,s,a,c,u)}}return s}internalBinaryWrite(e,r,i){e.scope!==""&&r.tag(1,OK.WireType.LengthDelimited).string(e.scope),e.permission!=="0"&&r.tag(2,OK.WireType.Varint).int64(e.permission);let n=i.writeUnknownFields;return n!==!1&&(n==!0?PK.UnknownFieldHandler.onWrite:n)(this.typeName,e,r),r}},EL=new kK;var FK=class extends I2e.MessageType{constructor(){super("github.actions.results.entities.v1.CacheMetadata",[{no:1,name:"repository_id",kind:"scalar",T:3},{no:2,name:"scope",kind:"message",repeat:1,T:()=>EL}])}create(e){let r={repositoryId:"0",scope:[]};return globalThis.Object.defineProperty(r,C2e.MESSAGE_TYPE,{enumerable:!1,value:this}),e!==void 0&&(0,w2e.reflectionMergePartial)(this,r,e),r}internalBinaryRead(e,r,i,n){let s=n??this.create(),o=e.pos+r;for(;e.pos<o;){let[a,c]=e.tag();switch(a){case 1:s.repositoryId=e.int64().toString();break;case 2:s.scope.push(EL.internalBinaryRead(e,e.uint32(),i));break;default:let l=i.readUnknownField;if(l==="throw")throw new globalThis.Error(`Unknown field ${a} (wire type ${c}) for ${this.typeName}`);let u=e.skip(c);l!==!1&&(l===!0?LK.UnknownFieldHandler.onRead:l)(this.typeName,s,a,c,u)}}return s}internalBinaryWrite(e,r,i){e.repositoryId!=="0"&&r.tag(1,QK.WireType.Varint).int64(e.repositoryId);for(let s=0;s<e.scope.length;s++)EL.internalBinaryWrite(e.scope[s],r.tag(2,QK.WireType.LengthDelimited).fork(),i).join();let n=i.writeUnknownFields;return n!==!1&&(n==!0?LK.UnknownFieldHandler.onWrite:n)(th Line truncated
`));let i=yield ZK(r,"create");yield eX(i,t)})}var Jw=function(t,e,r,i){function n(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(function(s,o){function a(u){try{l(i.next(u))}catch(f){o(f)}}function c(u){try{l(i.throw(u))}catch(f){o(f)}}function l(u){u.done?s(u.value):n(u.value).then(a,c)}l((i=i.apply(t,e||[])).next())})},Cu=class t extends Error{constructor(e){super(e),this.name="ValidationError",Object.setPrototypeOf(this,t.prototype)}},Ww=class t extends Error{constructor(e){super(e),this.name="ReserveCacheError",Object.setPrototypeOf(this,t.prototype)}},IL=class t extends Error{constructor(e){super(e),this.name="FinalizeCacheError",Object.setPrototypeOf(this,t.prototype)}};function _2e(t){if(!t||t.length===0)throw new Cu("Path Validation Error: At least one directory or file path is required")}function iX(t){if(t.length>512)throw new Cu(`Key Validation Error: ${t} cannot be larger than 512 characters.`);if(!/^[^,]*$/.test(t))throw new Cu(`Key Validation Error: ${t} cannot contain commas.`)}function nX(){return A_()==="v2"?!!process.env.ACTIONS_RESULTS_URL:!!process.env.ACTIONS_CACHE_URL}function R2e(t,e,r,i){return Jw(this,arguments,void 0,function*(n,s,o,a,c=!1){let l=A_();return ve(`Cache service version: ${l}`),_2e(n),l==="v2"?yield JDt(n,s,o,a,c):yield WDt(n,s,o,a,c)})}function WDt(t,e,r,i){return Jw(this,arguments,void 0,function*(n,s,o,a,c=!1){o=o||[];let l=[s,...o];if(ve("Resolved Keys:"),ve(JSON.stringify(l)),l.length>10)throw new Cu("Key Validation Error: Keys are limited to a maximum of 10.");for(let h of l)iX(h);let u=yield Ax(),f="";try{let h=yield R1e(l,n,{compressionMethod:u,enableCrossOsArchive:c});if(!h?.archiveLocation)return;if(a?.lookupOnly)return gn("Lookup only - skipping download"),h.cacheKey;f=O_.join(yield px(),_m(u)),ve(`Archive Path: ${f}`),yield q7(h.archiveLocation,f,a),Kg()&&(yield D_(f,u));let d=ff(f);return gn(`Cache Size: ~${Math.round(d/(1024*1024))} MB (${d} B)`),yield tX(f,u),gn("Cache restored successfully"),h.cacheKey}catch(h){let d=h;if(d.name===Cu.name)throw h;d instanceof sf&&typeof d.statusCode=="number"&&d.statusCode>=500?Kv(`Failed to restore: ${h.message}`):lu(`Failed to restore: ${h.message}`)}finally{try{yield mx(f)}catch(h){ve(`Failed to delete archive: ${h}`)}}})}function JDt(t,e,r,i){return Jw(this,arguments,void 0,function*(n,s,o,a,c=!1){a=Object.assign(Object.assign({},a),{useAzureSdk:!0}),o=o||[];let l=[s,...o];if(ve("Resolved Keys:"),ve(JSON.stringify(l)),l.length>10)throw new Cu("Key Validation Error: Keys are limited to a maximum of 10.");for(let f of l)iX(f);let u="";try{let f=XK(),h=yield Ax(),d={key:s,restoreKeys:o,version:rw(n,h,c)},p=yield f.GetCacheEntryDownloadURL(d);if(!p.ok){ve(`Cache not found for version ${d.version} of keys: ${l.join(", ")}`);return}if(d.key!==p.matchedKey?gn(`Cache hit for restore-key: ${p.matchedKey}`):gn(`Cache hit for: ${p.matchedKey}`),a?.lookupOnly)return gn("Lookup only - skipping download"),p.matchedKey;u=O_.join(yield px(),_m(h)),ve(`Archive path: ${u}`),ve(`Starting download of archive to: ${u}`),yield q7(p.signedDownloadUrl,u,a);let y=ff(u);return gn(`Cache Size: ~${Math.round(y/(1024*1024))} MB (${y} B)`),Kg()&&(yield D_(u,h)),yield tX(u,h),gn("Cache restored successfully"),p.matchedKey}catch(f){let h=f;if(h.name===Cu.name)throw f;h instanceof sf&&typeof h.statusCode=="number"&&h.statusCode>=500?Kv(`Failed to restore: ${f.message}`):lu(`Failed to restore: ${f.message}`)}finally{try{u&&(yield mx(u))}catch(f){ve(`Failed to delete archive: ${f}`)}}})}function sX(t,e,r){return Jw(this,arguments,void 0,function*(i,n,s,o=!1){let a=A_();return ve(`Cache service version: ${a}`),_2e(i),iX(n),a==="v2"?yield KDt(i,n,s,o):yield YDt(i,n,s,o)})}function YDt(t,e,r){return Jw(this,arguments,void 0,function*(i,n,s,o=!1){var a,c,l,u,f;let h=yield Ax(),d=-1,p=yield f9(i);if(ve("Cache Paths:"),ve(`${JSON.stringify(p)}`),p.length===0)throw new Error("Path Validation Error: Path(s) specified in the action for caching do(es) not exist, hence no cache is being saved.");let m=yield px(),y=O_.join(m,_m(h));ve(`Archive Path: ${y}`);try{yield rX(m,p,h),Kg()&&(yield D_(y,h));let g=10*1024*1024*1024,E=ff(y);if(ve(`File Size: ${E}`),E>g&&!M7())throw new Error(`Cache size of ~${Math.round(E/(1024*1024))} MB (${E} B) is over the 10GB limit, not saving cache.`);ve("Reserving Cache");let w=yield T1e(n,i,{compressionMethod:h,enableCrossOsArchive:o,cacheSize:E});if(!((a=w?.result)===null||a===void 0)&&a.cacheId)d=(c=w?.result)===null||c===void 0?void 0:c.cacheId;else throw w?.statusCode===400?new Error((u=(l=w?.error)===null||l===void 0?void 0:l.message)!==null&&u!==void 0?u:`Cache size of ~${Math.round(E/(1024*1024))} MB (${E} B) is over the data cap limit, not saving cache.`):new Ww(`Unable to reserve cache with key ${n}, another job may be creating this cache. More details: ${(f=w?.error)===null||f===void 0?void 0:f.message}`);ve(`Saving Cache (ID: ${d})`),yield G7(d,y,"",s)}catch(g){let E=g;if(E.name===Cu.nam Line truncated
`,o).length:f,l?(a===null?0:a.length)+c.length:0,l?c.length+f:0);return h<d},parse:function(i,n,s,o){let{bom:a,comment_no_infix:c,encoding:l,from_line:u,ltrim:f,max_record_size:h,raw:d,relax_quotes:p,rtrim:m,skip_empty_lines:y,to:g,to_line:E}=this.options,{comment:w,escape:C,quote:N,record_delimiter:F}=this.options,{bomSkipped:x,previousBuf:M,rawBuffer:P,escapeIsQuote:V}=this.state,k;if(M===void 0)if(i===void 0){o();return}else k=i;else M!==void 0&&i===void 0?k=M:k=Buffer.concat([M,i]);if(x===!1)if(a===!1)this.state.bomSkipped=!0;else if(k.length<3){if(n===!1){this.state.previousBuf=k;return}}else{for(let ie in uC)if(uC[ie].compare(k,0,uC[ie].length)===0){let ne=uC[ie].length;this.state.bufBytesStart+=ne,k=k.slice(ne);let we=xZ({...this.original_options,encoding:ie});for(let K in we)this.options[K]=we[K];({comment:w,escape:C,quote:N}=this.options);break}this.state.bomSkipped=!0}let H=k.length,z;for(z=0;z<H&&!this.__needMoreData(z,H,n);z++){if(this.state.wasRowDelimiter===!0&&(this.info.lines++,this.state.wasRowDelimiter=!1),E!==-1&&this.info.lines>E){this.state.stop=!0,o();return}this.state.quoting===!1&&F.length===0&&this.__autoDiscoverRecordDelimiter(k,z)&&(F=this.options.record_delimiter);let ie=k[z];if(d===!0&&P.append(ie),(ie===EMt||ie===bMt)&&this.state.wasRowDelimiter===!1&&(this.state.wasRowDelimiter=!0),this.state.escaping===!0)this.state.escaping=!1;else{if(C!==null&&this.state.quoting===!0&&this.__isEscape(k,z,ie)&&z+C.length<H)if(V){if(this.__isQuote(k,z+C.length)){this.state.escaping=!0,z+=C.length-1;continue}}else{this.state.escaping=!0,z+=C.length-1;continue}if(this.state.commenting===!1&&this.__isQuote(k,z))if(this.state.quoting===!0){let K=k[z+N.length],ce=m&&this.__isCharTrimable(k,z+N.length),Ee=w!==null&&this.__compareBytes(w,k,z+N.length,K),Ye=this.__isDelimiter(k,z+N.length,K),Ke=F.length===0?this.__autoDiscoverRecordDelimiter(k,z+N.length):this.__isRecordDelimiter(K,k,z+N.length);if(C!==null&&this.__isEscape(k,z,ie)&&this.__isQuote(k,z+C.length))z+=C.length-1;else if(!K||Ye||Ke||Ee||ce){this.state.quoting=!1,this.state.wasQuoting=!0,z+=N.length-1;continue}else if(p===!1){let We=this.__error(new fr("CSV_INVALID_CLOSING_QUOTE",["Invalid Closing Quote:",`got "${String.fromCharCode(K)}"`,`at line ${this.info.lines}`,"instead of delimiter, record delimiter, trimable character","(if activated) or comment"],this.options,this.__infoField()));if(We!==void 0)return We}else this.state.quoting=!1,this.state.wasQuoting=!0,this.state.field.prepend(N),z+=N.length-1}else if(this.state.field.length!==0){if(p===!1){let K=this.__infoField(),ce=Object.keys(uC).map(Ye=>uC[Ye].equals(this.state.field.toString())?Ye:!1).filter(Boolean)[0],Ee=this.__error(new fr("INVALID_OPENING_QUOTE",["Invalid Opening Quote:",`a quote is found on field ${JSON.stringify(K.column)} at line ${K.lines}, value is ${JSON.stringify(this.state.field.toString(l))}`,ce?`(${ce} bom)`:void 0],this.options,K,{field:this.state.field}));if(Ee!==void 0)return Ee}}else{this.state.quoting=!0,z+=N.length-1;continue}if(this.state.quoting===!1){let K=this.__isRecordDelimiter(ie,k,z);if(K!==0){if(this.state.commenting&&this.state.wasQuoting===!1&&this.state.record.length===0&&this.state.field.length===0)this.info.comment_lines++;else{if(this.state.enabled===!1&&this.info.lines+(this.state.wasRowDelimiter===!0?1:0)>=u){this.state.enabled=!0,this.__resetField(),this.__resetRecord(),z+=K-1;continue}if(y===!0&&this.state.wasQuoting===!1&&this.state.record.length===0&&this.state.field.length===0){this.info.empty_lines++,z+=K-1;continue}this.info.bytes=this.state.bufBytesStart+z;let Ye=this.__onField();if(Ye!==void 0)return Ye;this.info.bytes=this.state.bufBytesStart+z+K;let Ke=this.__onRecord(s);if(Ke!==void 0)return Ke;if(g!==-1&&this.info.records>=g){this.state.stop=!0,o();return}}this.state.commenting=!1,z+=K-1;continue}if(this.state.commenting)continue;if(w!==null&&(c===!1||this.state.record.length===0&&this.state.field.length===0)&&this.__compareBytes(w,k,z,ie)!==0){this.state.commenting=!0;continue}let ce=this.__isDelimiter(k,z,ie);if(ce!==0){this.info.bytes=this.state.bufBytesStart+z;let Ee=this.__onField();if(Ee!==void 0)return Ee;z+=ce-1;continue}}}if(this.state.commenting===!1&&h!==0&&this.state.record_length+this.state.field.length>h)return this.__error(new fr("CSV_MAX_RECORD_SIZE",["Max Record Size:","record exceed the maximum number of tolerated bytes",`of ${h}`,`at line ${this.info.lines}`],this.options,this.__infoField()));let ne=f===!1||this.state.quoting===!0||this.state.field.length!==0||!this.__isCharTrimable(k,z),we=m===!1||this.state.wasQuoting===!1;if(ne===!0&&we===!0)this.state.field.append(ie);else{if(m===!0&&!this.__isCharTrimable(k,z))return this.__error(new fr("CSV_NON_TRIMABLE_CHAR_AFTER_CLOSING_QUOTE",["Invalid Closing Quote:","found non trimable byte after quote",`at line ${this.info.lines}`],this.options,this.__infoField()));ne===!1&&(z+=this.__isCharTrimable(k,z)-1);continue}}if(n===!0)if(this.state.quoting===!0){let Line truncated
`,s),Buffer.from(`
`,s),Buffer.from("\r",s)];e:for(let a=0;a<o.length;a++){let c=o[a].length;for(let l=0;l<c;l++)if(o[a][l]!==i[n+l])continue e;return this.options.record_delimiter.push(o[a]),this.state.recordDelimiterMaxLength=o[a].length,o[a].length}return 0},__error:function(i){let{encoding:n,raw:s,skip_records_with_error:o}=this.options,a=typeof i=="string"?new Error(i):i;if(o){if(this.state.recordHasError=!0,this.options.on_skip!==void 0)try{this.options.on_skip(a,s?this.state.rawBuffer.toString(n):void 0)}catch(c){return c}return}else return a},__infoDataSet:function(){return{...this.info,columns:this.options.columns}},__infoRecord:function(){let{columns:i,raw:n,encoding:s}=this.options;return{...this.__infoDataSet(),bytes_records:this.info.bytes,error:this.state.error,header:i===!0,index:this.state.record.length,raw:n?this.state.rawBuffer.toString(s):void 0}},__infoField:function(){let{columns:i}=this.options,n=Array.isArray(i),s=this.info.bytes_records;return{...this.__infoRecord(),bytes_records:s,column:n===!0?i.length>this.state.record.length?i[this.state.record.length].name:null:this.state.record.length,quoting:this.state.wasQuoting}}}};var bc=function(t,e={}){typeof t=="string"&&(t=Buffer.from(t));let r=e&&e.objname?{}:[],i=Lke(e),n=a=>{i.options.objname===void 0?r.push(a):r[a[0]]=a[1]},s=()=>{},o=i.parse(t,!0,n,s);if(o!==void 0)throw o;return r};var Be=class t{static getInputList(e,r){return this.getList(Is(e,{trimWhitespace:r?.trimWhitespace!==!1}),r)}static getList(e,r){let i=[];if(e=="")return i;let n=bc(e,{columns:!1,relaxQuotes:!0,comment:r?.comment,comment_no_infix:r?.commentNoInfix,relaxColumnCount:!0,skipEmptyLines:!0,quote:r?.quote});for(let s of n)s.length==1?r?.ignoreComma?i.push(s[0]):i.push(...s[0].split(",")):r?.ignoreComma?i.push(s.join(",")):i.push(...s);return i.filter(s=>s).map(s=>r?.trimWhitespace===!1?s:s.trim())}static getInputNumber(e){let r=Is(e);if(r)return parseInt(r)}static async asyncForEach(e,r){for(let i=0;i<e.length;i++)await r(e[i],i,e)}static isValidURL(e){let r;try{r=new URL(e)}catch{return!1}return r.protocol==="http:"||r.protocol==="https:"}static isValidRef(e){if(t.isValidURL(e))return!0;for(let r of["git://","github.com/","git@"])if(e.startsWith(r))return!0;return!1}static async powershellCommand(e,r){let i=await Cs("powershell",!0),n=e.replace(/'/g,"''").replace(/"|\n|\r/g,""),s=[];if(r)for(let o in r)s.push(`-${o} '${r[o].replace(/'/g,"''").replace(/"|\n|\r/g,"")}'`);return{command:`"${i}"`,args:["-NoLogo","-Sta","-NoProfile","-NonInteractive","-ExecutionPolicy","Unrestricted","-Command",`& '${n}' ${s.join(" ")}`]}}static isDirectory(e){try{return Fke.default.lstatSync(e).isDirectory()}catch{}return!1}static trimPrefix(e,r){return!e||!r||e.indexOf(r)!==0?e:e.substring(r.length)}static trimSuffix(e,r){if(!e||!r)return e;let i=e.lastIndexOf(r);return i===-1||i+r.length!==e.length?e:e.substring(0,i)}static sleep(e){return new Promise(r=>setTimeout(r,e*1e3))}static hash(e){return _Z.default.createHash("sha256").update(e).digest("hex")}static parseBool(e){if(e===void 0)return!1;switch(e){case"1":case"t":case"T":case"true":case"TRUE":case"True":return!0;case"0":case"f":case"F":case"false":case"FALSE":case"False":return!1;default:throw new Error(`parseBool syntax error: ${e}`)}}static parseBoolOrDefault(e,r=!1){try{return this.parseBool(e)}catch{return r}}static formatFileSize(e){if(e===0)return"0 Bytes";let r=1024,i=["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"],n=Math.floor(Math.log(e)/Math.log(r));return parseFloat((e/Math.pow(r,n)).toFixed(2))+" "+i[n]}static generateRandomString(e=10){return _Z.default.randomBytes(Math.ceil(e/2)).toString("hex").slice(0,e)}static compileHandlebars(e,r,i){return Mke.default.compile(e,r)(i)}static stringToUnicodeEntities(e){return Array.from(e).map(r=>`&#x${r.charCodeAt(0).toString(16)};`).join("")}static countLines(e){return e.split(/\r\n|\r|\n/).length}static isPathRelativeTo(e,r){let i=eR.default.resolve(e);return eR.default.resolve(r).startsWith(i.endsWith(eR.default.sep)?i:`${i}${eR.default.sep}`)}static formatDuration(e){if(e===0)return"0s";let r=Math.floor(e/1e9),i=Math.floor(r/3600),n=Math.floor(r%3600/60),s=r%60,o=[];return i&&o.push(`${i}h`),n&&o.push(`${n}m`),(s||o.length===0)&&o.push(`${s}s`),o.join("")}};var tn=class t{static get configDir(){return process.env.DOCKER_CONFIG||tR.default.join(Uke.default.homedir(),".docker")}static configFile(){let e=tR.default.join(t.configDir,"config.json");if(RZ.default.existsSync(e))return JSON.parse(RZ.default.readFileSync(e,{encoding:"utf-8"}))}static async isAvailable(){return await Cs("docker",!0).then(e=>(le(`Docker.isAvailable ok: ${e}`),!0)).catch(e=>(le(`Docker.isAvailable error: ${e}`),!1))}static async isDaemonRunning(){try{return await t.getExecOutput(["version"],{silent:!0}),!0}catch{return!1}}static async exec(e,r){return nt.exec("docker",e,t.execOptions(r))}static async getExecOutput(e,r){return nt.getExecOutput("docker",e,t.execOptions(r))}static execOptions(e){return e||(e={}), Line truncated
`+t.errors.map(e=>` - ${e.message}`).join(`
`)}var dUt=class extends Error{constructor(t,e,r){super(hUt(r)),this.request=t,this.headers=e,this.response=r,this.errors=r.errors,this.data=r.data,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}name="GraphqlResponseError";errors;data},pUt=["method","baseUrl","url","headers","request","query","mediaType","operationName"],mUt=["query","method","url"],SQe=/\/api\/v3\/?$/;function AUt(t,e,r){if(r){if(typeof e=="string"&&"query"in r)return Promise.reject(new Error('[@octokit/graphql] "query" cannot be used as variable name'));for(let o in r)if(mUt.includes(o))return Promise.reject(new Error(`[@octokit/graphql] "${o}" cannot be used as variable name`))}let i=typeof e=="string"?Object.assign({query:e},r):e,n=Object.keys(i).reduce((o,a)=>pUt.includes(a)?(o[a]=i[a],o):(o.variables||(o.variables={}),o.variables[a]=i[a],o),{}),s=i.baseUrl||t.endpoint.DEFAULTS.baseUrl;return SQe.test(s)&&(n.url=s.replace(SQe,"/api/graphql")),t(n).then(o=>{if(o.data.errors){let a={};for(let c of Object.keys(o.headers))a[c]=o.headers[c];throw new dUt(n,a,o.data)}return o.data.data})}function UZ(t,e){let r=t.defaults(e);return Object.assign((n,s)=>AUt(r,n,s),{defaults:UZ.bind(null,r),endpoint:r.endpoint})}var szr=UZ(sR,{headers:{"user-agent":`octokit-graphql.js/${fUt} ${Wm()}`},method:"POST",url:"/graphql"});function BQe(t){return UZ(t,{method:"POST",url:"/graphql"})}var qZ="(?:[a-zA-Z0-9_-]+)",vQe="\\.",xQe=new RegExp(`^${qZ}${vQe}${qZ}${vQe}${qZ}$`),gUt=xQe.test.bind(xQe);async function yUt(t){let e=gUt(t),r=t.startsWith("v1.")||t.startsWith("ghs_"),i=t.startsWith("ghu_");return{type:"token",token:t,tokenType:e?"app":r?"installation":i?"user-to-server":"oauth"}}function EUt(t){return t.split(/\./).length===3?`bearer ${t}`:`token ${t}`}async function bUt(t,e,r,i){let n=e.endpoint.merge(r,i);return n.headers.authorization=EUt(t),e(n)}var _Qe=function(e){if(!e)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if(typeof e!="string")throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return e=e.replace(/^(token|bearer) +/i,""),Object.assign(yUt.bind(null,e),{hook:bUt.bind(null,e)})};var GZ="7.0.6";var RQe=()=>{},wUt=console.warn.bind(console),CUt=console.error.bind(console);function IUt(t={}){return typeof t.debug!="function"&&(t.debug=RQe),typeof t.info!="function"&&(t.info=RQe),typeof t.warn!="function"&&(t.warn=wUt),typeof t.error!="function"&&(t.error=CUt),t}var TQe=`octokit-core.js/${GZ} ${Wm()}`,pC=class{static VERSION=GZ;static defaults(e){return class extends this{constructor(...i){let n=i[0]||{};if(typeof e=="function"){super(e(n));return}super(Object.assign({},e,n,n.userAgent&&e.userAgent?{userAgent:`${n.userAgent} ${e.userAgent}`}:null))}}}static plugins=[];static plugin(...e){let r=this.plugins;return class extends this{static plugins=r.concat(e.filter(n=>!r.includes(n)))}}constructor(e={}){let r=new iQe.Collection,i={baseUrl:sR.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},e.request,{hook:r.bind(null,"request")}),mediaType:{previews:[],format:""}};if(i.headers["user-agent"]=e.userAgent?`${e.userAgent} ${TQe}`:TQe,e.baseUrl&&(i.baseUrl=e.baseUrl),e.previews&&(i.mediaType.previews=e.previews),e.timeZone&&(i.headers["time-zone"]=e.timeZone),this.request=sR.defaults(i),this.graphql=BQe(this.request).defaults(i),this.log=IUt(e.log),this.hook=r,e.authStrategy){let{authStrategy:s,...o}=e,a=s(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:o},e.auth));r.wrap("request",a.hook),this.auth=a}else if(!e.auth)this.auth=async()=>({type:"unauthenticated"});else{let s=_Qe(e.auth);r.wrap("request",s.hook),this.auth=s}let n=this.constructor;for(let s=0;s<n.plugins.length;++s)Object.assign(this,n.plugins[s](this,e))}request;graphql;log;hook;auth};var HZ="17.0.0";var SUt={actions:{addCustomLabelsToSelfHostedRunnerForOrg:["POST /orgs/{org}/actions/runners/{runner_id}/labels"],addCustomLabelsToSelfHostedRunnerForRepo:["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],addRepoAccessToSelfHostedRunnerGroupInOrg:["PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],approveWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createEnvironmentVariable:["POST /repos/{owner}/{repo}/environments/{environment_name}/variables"],createHostedRunnerForOrg:["POST /orgs/{org}/actions/hosted-runners"],createOrUpdateEnvironmentSecret:["PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createOrgVaria Line truncated
More info: ${c.url}`);let d=c.range&&c.range.length>0?c.range[0]?.start.line:void 0,p=!1;for(let m of o)if(m.remote||m.path.endsWith(l)&&m.content===u){a.push({title:f,message:h,file:m.path,startLine:d}),p=!0;break}p||le(`Buildx.convertWarningsToGitHubAnnotations: skipping warning without matching Dockerfile ${l}: ${f}`)}return a}};var XZ=q(require("fs"),1),ZZ=q(require("path"),1);var MF=class t{buildx;constructor(e){this.buildx=e?.buildx||new gr}async getCommand(e){return await this.buildx.getCommand(["history",...e])}async getInspectCommand(e){return await this.getCommand(["inspect",...e])}async getExportCommand(e){return await this.getCommand(["export",...e])}async inspect(e){let r=["--format","json"];e.builder&&r.push("--builder",e.builder),e.ref&&r.push(e.ref);let i=await this.getInspectCommand(r);return await nt.getExecOutput(i.command,i.args,{ignoreReturnCode:!0,silent:!0}).then(n=>{if(n.stderr.length>0&&n.exitCode!=0)throw new Error(n.stderr.trim());return JSON.parse(n.stdout)})}async export(e){if(!await this.buildx.versionSatisfies(">=0.23.0"))throw new Error("Buildx >= 0.23.0 is required to export a build record");let r="",i="",n=[];for(let f of e.refs){let h=f.split("/");if(h.length!=3)throw new Error(`Invalid build ref: ${f}`);n.push(h[2]),r||(r=h[0]),i||(i=h[1])}if(n.length===0)throw new Error("No build refs provided");let s=ZZ.default.join(Zt.tmpDir(),"export");ae(`exporting build record to ${s}`),XZ.default.mkdirSync(s,{recursive:!0}),await this.buildx.versionSatisfies("<0.24.0")&&await Be.sleep(3);let o={};if(!e.noSummaries)for(let f of n)await this.inspect({ref:f,builder:r}).then(h=>{let d="";h.Error&&h.Status!=="canceled"&&(h.Error.Message?d=h.Error.Message:h.Error.Name&&h.Error.Logs&&(d=`=> ${h.Error.Name}
${h.Error.Logs}`)),o[f]={name:h.Name,status:h.Status,duration:Be.formatDuration(h.Duration),numCachedSteps:h.NumCachedSteps,numTotalSteps:h.NumTotalSteps,numCompletedSteps:h.NumCompletedSteps,defaultPlatform:h.Platform?.[0],error:d}});let a=ZZ.default.join(s,`${t.exportFilename(n)}.dockerbuild`),c=["--builder",r,"--output",a,...n];await this.buildx.versionSatisfies(">=0.24.0")&&c.push("--finalize");let l=await this.getExportCommand(c);await nt.getExecOutput(l.command,l.args);let u=XZ.default.statSync(a);return{dockerbuildFilename:a,dockerbuildSize:u.size,builderName:r,nodeName:i,refs:n,summaries:o}}static exportFilename(e){let r=`${Ot.context.repo.owner}~${Ot.context.repo.repo}~${e[0].substring(0,6).toUpperCase()}`;return e.length>1&&(r+=`+${e.length-1}`),r}};var Rze=q(require("fs"),1),kse=q(require("path"),1);var UQe=q(require("os"),1);function uR(t){return t==null?"":typeof t=="string"||t instanceof String?t:JSON.stringify(t)}function eee(t){return Object.keys(t).length?{title:t.title,file:t.file,line:t.startLine,endLine:t.endLine,col:t.startColumn,endColumn:t.endColumn}:{}}function fR(t,e,r){let i=new tee(t,e,r);process.stdout.write(i.toString()+UQe.EOL)}var MQe="::",tee=class{constructor(e,r,i){e||(e="missing.command"),this.command=e,this.properties=r,this.message=i}toString(){let e=MQe+this.command;if(this.properties&&Object.keys(this.properties).length>0){e+=" ";let r=!0;for(let i in this.properties)if(this.properties.hasOwnProperty(i)){let n=this.properties[i];n&&(r?r=!1:e+=",",e+=`${i}=${GUt(n)}`)}}return e+=`${MQe}${qUt(this.message)}`,e}};function qUt(t){return uR(t).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function GUt(t){return uR(t).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}var jQe=q(require("os"),1);var GQe=require("os"),hR=require("fs"),ree=function(t,e,r,i){function n(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(function(s,o){function a(u){try{l(i.next(u))}catch(f){o(f)}}function c(u){try{l(i.throw(u))}catch(f){o(f)}}function l(u){u.done?s(u.value):n(u.value).then(a,c)}l((i=i.apply(t,e||[])).next())})},{access:HUt,appendFile:jUt,writeFile:zUt}=hR.promises,qQe="GITHUB_STEP_SUMMARY";var iee=class{constructor(){this._buffer=""}filePath(){return ree(this,void 0,void 0,function*(){if(this._filePath)return this._filePath;let e=process.env[qQe];if(!e)throw new Error(`Unable to find environment variable for $${qQe}. Check if your runtime environment supports job summaries.`);try{yield HUt(e,hR.constants.R_OK|hR.constants.W_OK)}catch{throw new Error(`Unable to access summary file: '${e}'. Check if the file has correct read/write permissions.`)}return this._filePath=e,this._filePath})}wrap(e,r,i={}){let n=Object.entries(i).map(([s,o])=>` ${s}="${o}"`).join("");return r?`<${e}${n}>${r}</${e}>`:`<${e}${n}>`}write(e){return ree(this,void 0,void 0,function*(){let r=!!e?.overwrite,i=yield this.filePath();return yield(r?zUt:jUt)(i,this._buffer,{encoding:"utf8"}),this.emptyBuffer()})}clear(){return ree(this,void 0,void 0,function*(){return this.emptyBuffer().write({overwrite:!0})})}stringify(){return this._buffer}isEmptyBuffer(){return this._buffer.length===0}emptyBuffer(){return this._buffer="",this}addRaw(e,r=!1){return this._buffer+=e,r?this.addEOL():this}addEOL(){return this.addRaw(GQe.EOL)}addCodeBlock(e,r){let i=Object.assign({},r&&{lang:r}),n=this.wrap("pre",this.wrap("code",e),i);return this.addRaw(n).addEOL()}addList(e,r=!1){let i=r?"ol":"ul",n=e.map(o=>this.wrap("li",o)).join(""),s=this.wrap(i,n);return this.addRaw(s).addEOL()}addTable(e){let r=e.map(n=>{let s=n.map(o=>{if(typeof o=="string")return this.wrap("td",o);let{header:a,data:c,colspan:l,rowspan:u}=o,f=a?"th":"td",h=Object.assign(Object.assign({},l&&{colspan:l}),u&&{rowspan:u});return this.wrap(f,c,h)}).join("");return this.wrap("tr",s)}).join(""),i=this.wrap("table",r);return this.addRaw(i).addEOL()}addDetails(e,r){let i=this.wrap("details",this.wrap("summary",e)+r);return this.addRaw(i).addEOL()}addImage(e,r,i){let{width:n,height:s}=i||{},o=Object.assign(Object.assign({},n&&{width:n}),s&&{height:s}),a=this.wrap("img",null,Object.assign({src:e,alt:r},o));return this.addRaw(a).addEOL()}addHeading(e,r){let i=`h${r}`,n=["h1","h2","h3","h4","h5","h6"].includes(i)?i:"h1",s=this.wrap(n,e);return this.addRaw(s).addEOL()}addSeparator(){let e=this.wrap("hr",null);return this.addRaw(e).addEOL()}addBreak(){let e=this.wrap("br",null);return this.addRaw(e).addEOL()}addQuote(e,r){let i=Object.assign({},r&&{cite:r}),n=this.wrap("blockquote",e,i);return this.addRaw(n).addEOL()}addLink(e,r){let i=this.wrap("a",e,{href:r});return this.addRaw(i).addEOL()}},sVr=new iee;var nee=q(require("os"),1);var cVr=nee.default.platform(),lVr=nee.default.arch();var HQe;(function(t){t[t.Success=0]="Success",t[t.Failure=1]="Failure"})(HQe||(HQe={}));function UF(t){fR("add-mask",{},t)}function Nt(t){fR("debug",{},t)}function dR(t,e={}){fR("error",eee(e),t instaLine truncated
`," Line feed \\n"]]),HLe=new Map([...Tte,["\\"," Backslash \\"],["/"," Forward slash /"]]);function jLe(t){if(!t)throw new Error("Provided artifact name input during validation is empty");for(let[e,r]of HLe)if(t.includes(e))throw new Error(`The artifact name is not valid: ${t}. Contains the following character: ${r}
Invalid characters include: ${Array.from(HLe.values()).toString()}
These characters are not allowed in the artifact name due to limitations with certain file systems such as NTFS. To maintain file system agnostic behavior, these characters are intentionally not allowed to prevent potential problems with downloads on different file systems.`);jt("Artifact name is valid!")}function Nte(t){if(!t)throw new Error("Provided file path input during validation is empty");for(let[e,r]of Tte)if(t.includes(e))throw new Error(`The path for one of the files in artifact is not valid: ${t}. Contains the following character: ${r}
Invalid characters include: ${Array.from(Tte.values()).toString()}
The following characters are not allowed in files that are uploaded due to limitations with certain file systems such as NTFS. To maintain file system agnostic behavior, these characters are intentionally not allowed to prevent potential problems with downloads on different file systems.
`)}var WLe=q($Le(),1);function ih(){return`@actions/artifact-${WLe.version}`}var OC=class extends Error{constructor(e=[]){let r="No files were found to upload";e.length>0&&(r+=`: ${e.join(", ")}`),super(r),this.files=e,this.name="FilesNotFoundError"}},xu=class extends Error{constructor(e){super(e),this.name="InvalidResponseError"}},Wd=class extends Error{constructor(e="Artifact not found"){super(e),this.name="ArtifactNotFoundError"}},Zm=class extends Error{constructor(e="@actions/artifact v2.0.0+, upload-artifact@v4+ and download-artifact@v4+ are not currently supported on GHES."){super(e),this.name="GHESNotSupportedError"}},Jd=class extends Error{constructor(e){let r=`Unable to make request: ${e}
If you are using self-hosted runners, please make sure your runner has access to all GitHub endpoints: https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners#communication-between-self-hosted-runners-and-github`;super(r),this.code=e,this.name="NetworkError"}};Jd.isNetworkErrorCode=t=>t?["ECONNRESET","ENOTFOUND","ETIMEDOUT","ECONNREFUSED","EHOSTUNREACH"].includes(t):!1;var Xy=class extends Error{constructor(){super(`Artifact storage quota has been hit. Unable to upload any new artifacts.
More info on storage limits: https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions#calculating-minute-and-storage-spending`),this.name="UsageError"}};Xy.isUsageErrorMessage=t=>t?t.includes("insufficient usage"):!1;var xM=new Error("Failed to get backend IDs: The provided JWT token is invalid and/or missing claims");function nh(){let t=qF(),e=FF(t);if(!e.scp)throw xM;let r=e.scp.split(" ");if(r.length===0)throw xM;for(let i of r){let n=i.split(":");if(n?.[0]!=="Actions.Results")continue;if(n.length!==3)throw xM;let s={workflowRunBackendId:n[1],workflowJobRunBackendId:n[2]};return Nt(`Workflow Run Backend ID: ${s.workflowRunBackendId}`),Nt(`Workflow Job Run Backend ID: ${s.workflowJobRunBackendId}`),s}throw xM}function JLe(t){if(t)try{let r=new URL(t).searchParams.get("sig");r&&(UF(r),UF(encodeURIComponent(r)))}catch(e){Nt(`Failed to parse URL: ${t} ${e instanceof Error?e.message:String(e)}`)}}function YLe(t){if(typeof t!="object"||t===null){Nt("body is not an object or is null");return}"signed_upload_url"in t&&typeof t.signed_upload_url=="string"&&JLe(t.signed_upload_url),"signed_url"in t&&typeof t.signed_url=="string"&&JLe(t.signed_url)}var _M=function(t,e,r,i){function n(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(function(s,o){function a(u){try{l(i.next(u))}catch(f){o(f)}}function c(u){try{l(i.throw(u))}catch(f){o(f)}}function l(u){u.done?s(u.value):n(u.value).then(a,c)}l((i=i.apply(t,e||[])).next())})},Dte=class{constructor(e,r,i,n){this.maxAttempts=5,this.baseRetryIntervalMilliseconds=3e3,this.retryMultiplier=1.5;let s=qF();this.baseUrl=VQe(),r&&(this.maxAttempts=r),i&&(this.baseRetryIntervalMilliseconds=i),n&&(this.retryMultiplier=n),this.httpClient=new An(e,[new Za(s)])}request(e,r,i,n){return _M(this,void 0,void 0,function*(){let s=new URL(`/twirp/${e}/${r}`,this.baseUrl).href;Nt(`[Request] ${r} ${s}`);let o={"Content-Type":i};try{let{body:a}=yield this.retryableRequest(()=>_M(this,void 0,void 0,function*(){return this.httpClient.post(s,JSON.stringify(n),o)}));return a}catch(a){throw new Error(`Failed to ${r}: ${a.message}`)}})}retryableRequest(e){return _M(this,void 0,void 0,function*(){let r=0,i="",n="";for(;r<this.maxAttempts;){let s=!1;try{let a=yield e(),c=a.message.statusCode;n=yield a.readBody(),Nt(`[Response] - ${a.message.statusCode}`),Nt(`Headers: ${JSON.stringify(a.message.headers,null,2)}`);let l=JSON.parse(n);if(YLe(l),Nt(`Body: ${JSON.stringify(l,null,2)}`),this.isSuccessStatusCode(c))return{response:a,body:l};if(s=this.isRetryableHttpStatusCode(c),i=`Failed request: (${c}) ${a.message.statusMessage}`,l.msg){if(Xy.isUsageErrorMessage(l.msg))throw new Xy;i=`${i}: ${l.msg}`}}catch(a){if(a instanceof SyntaxError&&Nt(`Raw Body: ${n}`),a instanceof Xy)throw a;if(Jd.isNetworkErrorCode(a?.code))throw new Jd(a?.code);s=!0,i=a.message}if(!s)throw new Error(`Received non-retryable error: ${i}`);if(r+1===this.maxAttempts)throw new Error(`Failed to make request after ${this.maxAttempts} attempts: ${i}`);let o=this.getExponentialRetryTimeMilliseconds(r);jt(`Attempt ${r+1} of ${this.maxAttempts} failed with error: ${i}. Retrying request in ${o} ms...`),yield this.sleep(o),r++}throw new Error("Request failed")})}isSuccessStatusCode(e){return e?e>=200&&e<300:!1}isRetryableHttpStatusCode(e){return e?[Dr.BadGateway,Dr.GatewayTimeout,Dr.InternalServerError,Dr.ServiceUnavailable,Dr.TooManyRequests].includes(e):!1}sleep(e){return _M(this,void 0,void 0,function*(){return new Promise(r=>setTimeout(r,e))})}getExponentialRetryTimeMilliseconds(e){if(e<0)throw new Error("attempt should be a positive integer");if(e===0)return this.baseRetryIntervalMilliseconds;let r=this.baseRetryIntervalMilliseconds*Math.pow(this.retryMultiplier,e),i=r*this.retryMultiplier;return Math.trunc(Math.random()*(i-r)+r)}};function sh(t){let e=new Dte(ih(),t?.maxAttempts,t?.retryIntervalMs,t?.retryMultiplier);return new vM(e)}var kC=q(require("fs"),1);var PC=require("path");function KLe(t){if(!kC.existsSync(t))throw new Error(`The provided rootDirectory ${t} does not exist`);if(!kC.statSync(t).isDirectory())throw new Error(`The provided rootDirectory ${t} is not a valid directory`);jt("Root directory input is valid!")}function XLe(t,e){let r=[];e=(0,PC.normalize)(e),e=(0,PC.resolve)(e);for(let i of t){let n=kC.lstatSync(i,{throwIfNoEntry:!1});if(!n)throw new Error(`File ${i} does not exist`);if(n.isDirectory()){let s=i.replace(e,"");Nte(s),r.push({sourcePath:null,destinationPath:s,stats:n})}else{if(i=(0,PC.normalize)(i),i=(0,PC.resolve)(i),!i.startsWith(e))throw new Error(`The rootDirectory: ${e} is not a parent directory of the file: ${i}`);let s=i.replace(e,"");Nte(s),r.push({sourcePath:i,destinationPath:s,stats:n})}}return r}var eFe=q(require("crypto"),1),tFe=q(require("stream"),1);var ZLe=function(t,e,r,i){function n(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(function(s,o){function a(u){try{l(i.next(u))}catch(f){o Line truncated
Are you trying to download from a different run? Try specifying a github-token with \`actions:read\` scope.`);c.length>1&&_s("Multiple artifacts found, defaulting to first.");let l={workflowRunBackendId:c[0].workflowRunBackendId,workflowJobRunBackendId:c[0].workflowJobRunBackendId,name:c[0].name},{signedUrl:u}=yield i.GetSignedArtifactURL(l);jt(`Redirecting to blob download url: ${fze(u)}`);try{jt(`Starting download of artifact to: ${r}`);let f=yield hze(u,r,e?.skipDecompress);jt("Artifact download completed successfully."),e?.expectedHash&&e?.expectedHash!==f.sha256Digest&&(n=!0,Nt(`Computed digest: ${f.sha256Digest}`),Nt(`Expected digest: ${e.expectedHash}`))}catch(f){throw new Error(`Unable to download and extract artifact: ${f.message}`)}return{downloadPath:r,digestMismatch:n}})}function mze(){return DI(this,arguments,void 0,function*(t=$Qe()){return(yield mer(t))?Nt(`Artifact destination folder already exists: ${t}`):(Nt(`Artifact destination folder does not exist, creating: ${t}`),yield Dse.default.mkdir(t,{recursive:!0})),t})}var ger=5,yer=[400,401,403,404,422];function OI(t,e=ger,r=yer){var i;if(e<=0)return[{enabled:!1},t.request];let n={enabled:!0};r.length>0&&(n.doNotRetry=r);let s=Object.assign(Object.assign({},t.request),{retries:e});return Nt(`GitHub client configured with: (retries: ${s.retries}, retry-exempt-status-code: ${(i=n.doNotRetry)!==null&&i!==void 0?i:"octokit default: [400, 401, 403, 404, 422]"})`),[n,s]}var Aze="6.0.0";function RE(t){t.hook.wrap("request",(e,r)=>{t.log.debug("request",r);let i=Date.now(),n=t.request.endpoint.parse(r),s=n.url.replace(r.baseUrl,"");return e(r).then(o=>{let a=o.headers["x-github-request-id"];return t.log.info(`${n.method} ${s} - ${o.status} with id ${a} in ${Date.now()-i}ms`),o}).catch(o=>{let a=o.response?.headers["x-github-request-id"]||"UNKNOWN";throw t.log.error(`${n.method} ${s} - ${o.status} with id ${a} in ${Date.now()-i}ms`),o})})}RE.VERSION=Aze;var Eze=q(gze(),1);var Eer="0.0.0-development";function ber(t){return t.request!==void 0}async function yze(t,e,r,i){if(!ber(r)||!r?.request.request)throw r;if(r.status>=400&&!t.doNotRetry.includes(r.status)){let n=i.request.retries!=null?i.request.retries:t.retries,s=Math.pow((i.request.retryCount||0)+1,2);throw e.retry.retryRequest(r,n,s)}throw r}async function wer(t,e,r,i){let n=new Eze.default;return n.on("failed",function(s,o){let a=~~s.request.request?.retries,c=~~s.request.request?.retryAfter;if(i.request.retryCount=o.retryCount+1,a>o.retryCount)return c*t.retryAfterBaseValue}),n.schedule(Cer.bind(null,t,e,r),i)}async function Cer(t,e,r,i){let n=await r(i);if(n.data&&n.data.errors&&n.data.errors.length>0&&/Something went wrong while executing your query/.test(n.data.errors[0].message)){let s=new jd(n.data.errors[0].message,500,{request:i,response:n});return yze(t,e,s,i)}return n}function TE(t,e){let r=Object.assign({enabled:!0,retryAfterBaseValue:1e3,doNotRetry:[400,401,403,404,410,422,451],retries:3},e.retry),i={retry:{retryRequest:(n,s,o)=>(n.request.request=Object.assign({},n.request.request,{retries:s,retryAfter:o}),n)}};return r.enabled&&(t.hook.error("request",yze.bind(null,r,i)),t.hook.wrap("request",wer.bind(null,r,i))),i}TE.VERSION=Eer;var bze=function(t,e,r,i){function n(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(function(s,o){function a(u){try{l(i.next(u))}catch(f){o(f)}}function c(u){try{l(i.throw(u))}catch(f){o(f)}}function l(u){u.done?s(u.value):n(u.value).then(a,c)}l((i=i.apply(t,e||[])).next())})};function $q(t,e,r,i,n){return bze(this,void 0,void 0,function*(){var s;let[o,a]=OI(vE),c={log:void 0,userAgent:ih(),previews:void 0,retry:o,request:a},u=yield bA(n,c,TE,RE).request("GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts{?name}",{owner:r,repo:i,run_id:e,name:t});if(u.status!==200)throw new xu(`Invalid response from GitHub API: ${u.status} (${(s=u?.headers)===null||s===void 0?void 0:s["x-github-request-id"]})`);if(u.data.artifacts.length===0)throw new Wd(`Artifact not found for name: ${t}
Please ensure that your artifact is not expired and the artifact was uploaded using a compatible version of toolkit/upload-artifact.
For more information, visit the GitHub Artifacts FAQ: https://github.com/actions/toolkit/blob/main/packages/artifact/docs/faq.md`);let f=u.data.artifacts[0];return u.data.artifacts.length>1&&(f=u.data.artifacts.sort((h,d)=>d.id-h.id)[0],Nt(`More than one artifact found for a single name, returning newest (id: ${f.id})`)),{artifact:{name:f.name,id:f.id,size:f.size_in_bytes,createdAt:f.created_at?new Date(f.created_at):void 0,digest:f.digest}}})}function wze(t){return bze(this,void 0,void 0,function*(){var e;let r=sh(),{workflowRunBackendId:i,workflowJobRunBackendId:n}=nh(),s={workflowRunBackendId:i,workflowJobRunBackendId:n,nameFilter:wn.create({value:t})},o=yield r.ListArtifacts(s);if(o.artifacts.length===0)throw new Wd(`Artifact not found for name: ${t}
Please ensure that your artifact is not expired and the artifact was uploaded using a compatible version of toolkit/upload-artifact.
For more information, visit the GitHub Artifacts FAQ: https://github.com/actions/toolkit/blob/main/packages/artifact/docs/faq.md`);let a=o.artifacts[0];return o.artifacts.length>1&&(a=o.artifacts.sort((c,l)=>Number(l.databaseId)-Number(c.databaseId))[0],Nt(`More than one artifact found for a single name, returning newest (id: ${a.databaseId})`)),{artifact:{name:a.name,id:Number(a.databaseId),size:Number(a.size),createdAt:a.createdAt?Cc.toDate(a.createdAt):void 0,digest:(e=a.digest)===null||e===void 0?void 0:e.value}}})}var Cze=function(t,e,r,i){function n(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(function(s,o){function a(u){try{l(i.next(u))}catch(f){o(f)}}function c(u){try{l(i.throw(u))}catch(f){o(f)}}function l(u){u.done?s(u.value):n(u.value).then(a,c)}l((i=i.apply(t,e||[])).next())})};function Ize(t,e,r,i,n){return Cze(this,void 0,void 0,function*(){var s;let[o,a]=OI(vE),c={log:void 0,userAgent:ih(),previews:void 0,retry:o,request:a},l=bA(n,c,TE,RE),u=yield $q(t,e,r,i,n),f=yield l.rest.actions.deleteArtifact({owner:r,repo:i,artifact_id:u.artifact.id});if(f.status!==204)throw new xu(`Invalid response from GitHub API: ${f.status} (${(s=f?.headers)===null||s===void 0?void 0:s["x-github-request-id"]})`);return{id:u.artifact.id}})}function Sze(t){return Cze(this,void 0,void 0,function*(){let e=sh(),{workflowRunBackendId:r,workflowJobRunBackendId:i}=nh(),n={workflowRunBackendId:r,workflowJobRunBackendId:i,nameFilter:wn.create({value:t})},s=yield e.ListArtifacts(n);if(s.artifacts.length===0)throw new Wd(`Artifact not found for name: ${t}`);let o=s.artifacts[0];s.artifacts.length>1&&(o=s.artifacts.sort((l,u)=>Number(u.databaseId)-Number(l.databaseId))[0],Nt(`More than one artifact found for a single name, returning newest (id: ${o.databaseId})`));let a={workflowRunBackendId:o.workflowRunBackendId,workflowJobRunBackendId:o.workflowJobRunBackendId,name:o.name},c=yield e.DeleteArtifact(a);return jt(`Artifact '${t}' (ID: ${c.artifactId}) deleted`),{id:Number(c.artifactId)}})}var Bze=function(t,e,r,i){function n(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(function(s,o){function a(u){try{l(i.next(u))}catch(f){o(f)}}function c(u){try{l(i.throw(u))}catch(f){o(f)}}function l(u){u.done?s(u.value):n(u.value).then(a,c)}l((i=i.apply(t,e||[])).next())})},Wq=YQe(),Jq=100,Ier=Math.ceil(Wq/Jq);function vze(t,e,r,i){return Bze(this,arguments,void 0,function*(n,s,o,a,c=!1){jt(`Fetching artifact list for workflow run ${n} in repository ${s}/${o}`);let l=[],[u,f]=OI(vE),h={log:void 0,userAgent:ih(),previews:void 0,retry:u,request:f},d=bA(a,h,TE,RE),p=1,{data:m}=yield d.request("GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts",{owner:s,repo:o,run_id:n,per_page:Jq,page:p}),y=Math.ceil(m.total_count/Jq),g=m.total_count;g>Wq&&(_s(`Workflow run ${n} has ${g} artifacts, exceeding the limit of ${Wq}. Results will be incomplete as only the first ${Wq} artifacts will be returned`),y=Ier);for(let E of m.artifacts)l.push({name:E.name,id:E.id,size:E.size_in_bytes,createdAt:E.created_at?new Date(E.created_at):void 0,digest:E.digest});for(p++,p;p<=y;p++){Nt(`Fetching page ${p} of artifact list`);let{data:E}=yield d.request("GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts",{owner:s,repo:o,run_id:n,per_page:Jq,page:p});for(let w of E.artifacts)l.push({name:w.name,id:w.id,size:w.size_in_bytes,createdAt:w.created_at?new Date(w.created_at):void 0,digest:w.digest})}return c&&(l=_ze(l)),jt(`Found ${l.length} artifact(s)`),{artifacts:l}})}function xze(){return Bze(this,arguments,void 0,function*(t=!1){let e=sh(),{workflowRunBackendId:r,workflowJobRunBackendId:i}=nh(),n={workflowRunBackendId:r,workflowJobRunBackendId:i},o=(yield e.ListArtifacts(n)).artifacts.map(a=>{var c;return{name:a.name,id:Number(a.databaseId),size:Number(a.size),createdAt:a.createdAt?Cc.toDate(a.createdAt):void 0,digest:(c=a.digest)===null||c===void 0?void 0:c.value}});return t&&(o=_ze(o)),jt(`Found ${o.length} artifact(s)`),{artifacts:o}})}function _ze(t){t.sort((i,n)=>n.id-i.id);let e=[],r=new Set;for(let i of t)r.has(i.name)||(e.push(i),r.add(i.name));return e}var XT=function(t,e,r,i){function n(s){return s instanceof r?s:new r(function(o){o(s)})}return new(r||(r=Promise))(function(s,o){function a(u){try{l(i.next(u))}catch(f){o(f)}}function c(u){try{l(i.throw(u))}catch(f){o(f)}}function l(u){u.done?s(u.value):n(u.value).then(a,c)}l((i=i.apply(t,e||[])).next())})},Ser=function(t,e){var r={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&e.indexOf(i)<0&&(r[i]=t[i]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,i=Object.getOwnPropertySymbols(t);n<i.length;n++)e.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(t,i[n])&&(r[i[n]]=t[i[n]]);return r},PI=class{uploadArtifact(e,r,i,n){return XT(this,void 0,void 0,function*(){try{if(mC())throw new Zm;return dje(e,r,i,n)}catch(s){throw _s(`Artifact upload failed with error: ${s}.
Errors can be temporary, so please try again and optionally run the action with debug mode enabled for more information.
If the error persists, please check whether Actions is operating normally at [https://githubstatus.com](https://www.githubstatus.com).`),s}})}downloadArtifact(e,r){return XT(this,void 0,void 0,function*(){try{if(mC())throw new Zm;if(r?.findBy){let{findBy:{repositoryOwner:i,repositoryName:n,token:s}}=r,o=Ser(r,["findBy"]);return dze(e,i,n,s,o)}return pze(e,r)}catch(i){throw _s(`Download Artifact failed with error: ${i}.
Errors can be temporary, so please try again and optionally run the action with debug mode enabled for more information.
If the error persists, please check whether Actions and API requests are operating normally at [https://githubstatus.com](https://www.githubstatus.com).`),i}})}listArtifacts(e){return XT(this,void 0,void 0,function*(){try{if(mC())throw new Zm;if(e?.findBy){let{findBy:{workflowRunId:r,repositoryOwner:i,repositoryName:n,token:s}}=e;return vze(r,i,n,s,e?.latest)}return xze(e?.latest)}catch(r){throw _s(`Listing Artifacts failed with error: ${r}.
Errors can be temporary, so please try again and optionally run the action with debug mode enabled for more information.
If the error persists, please check whether Actions and API requests are operating normally at [https://githubstatus.com](https://www.githubstatus.com).`),r}})}getArtifact(e,r){return XT(this,void 0,void 0,function*(){try{if(mC())throw new Zm;if(r?.findBy){let{findBy:{workflowRunId:i,repositoryOwner:n,repositoryName:s,token:o}}=r;return $q(e,i,n,s,o)}return wze(e)}catch(i){throw _s(`Get Artifact failed with error: ${i}.
Errors can be temporary, so please try again and optionally run the action with debug mode enabled for more information.
If the error persists, please check whether Actions and API requests are operating normally at [https://githubstatus.com](https://www.githubstatus.com).`),i}})}deleteArtifact(e,r){return XT(this,void 0,void 0,function*(){try{if(mC())throw new Zm;if(r?.findBy){let{findBy:{repositoryOwner:i,repositoryName:n,workflowRunId:s,token:o}}=r;return Ize(e,s,i,n,o)}return Sze(e)}catch(i){throw _s(`Delete Artifact failed with error: ${i}.
Errors can be temporary, so please try again and optionally run the action with debug mode enabled for more information.
If the error persists, please check whether Actions and API requests are operating normally at [https://githubstatus.com](https://www.githubstatus.com).`),i}})}};var rXr=new PI;var Yq=class{static async upload(e){if(Ot.isGHES)throw new Error("@actions/artifact v2.0.0+ is currently not supported on GHES.");let r=kse.default.basename(e.filename),i=new PI;ae(`Uploading ${r} as an artifact`);let n=kse.default.dirname(e.filename),s=await i.uploadArtifact(r,[e.filename],n,{retentionDays:e.retentionDays,skipArchive:!0});if(!s.id)throw new xu("Cannot upload artifact");let o=s.size??Rze.default.statSync(e.filename).size,a=`${Ot.workflowRunURL()}/artifacts/${s.id}`;return ae(`Artifact download URL: ${a}`),{id:s.id,filename:r,digest:s.digest||"",size:o,url:a}}};var Jse=q(Tze(),1);function Vze(t){return typeof t>"u"||t===null}function Ber(t){return typeof t=="object"&&t!==null}function ver(t){return Array.isArray(t)?t:Vze(t)?[]:[t]}function xer(t,e){var r,i,n,s;if(e)for(s=Object.keys(e),r=0,i=s.length;r<i;r+=1)n=s[r],t[n]=e[n];return t}function _er(t,e){var r="",i;for(i=0;i<e;i+=1)r+=t;return r}function Rer(t){return t===0&&Number.NEGATIVE_INFINITY===1/t}var Ter=Vze,Ner=Ber,Der=ver,Oer=_er,Per=Rer,ker=xer,Un={isNothing:Ter,isObject:Ner,toArray:Der,repeat:Oer,isNegativeZero:Per,extend:ker};function $ze(t,e){var r="",i=t.reason||"(unknown reason)";return t.mark?(t.mark.name&&(r+='in "'+t.mark.name+'" '),r+="("+(t.mark.line+1)+":"+(t.mark.column+1)+")",!e&&t.mark.snippet&&(r+=`
`+t.mark.snippet),i+" "+r):i}function tN(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=$ze(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}tN.prototype=Object.create(Error.prototype);tN.prototype.constructor=tN;tN.prototype.toString=function(e){return this.name+": "+$ze(this,e)};var Ta=tN;function Qse(t,e,r,i,n){var s="",o="",a=Math.floor(n/2)-1;return i-e>a&&(s=" ... ",e=i-a+s.length),r-i>a&&(o=" ...",r=i+a-o.length),{str:s+t.slice(e,r).replace(/\t/g,"\u2192")+o,pos:i-e+s.length}}function Lse(t,e){return Un.repeat(" ",e-t.length)+t}function Qer(t,e){if(e=Object.create(e||null),!t.buffer)return null;e.maxLength||(e.maxLength=79),typeof e.indent!="number"&&(e.indent=1),typeof e.linesBefore!="number"&&(e.linesBefore=3),typeof e.linesAfter!="number"&&(e.linesAfter=2);for(var r=/\r?\n|\r|\0/g,i=[0],n=[],s,o=-1;s=r.exec(t.buffer);)n.push(s.index),i.push(s.index+s[0].length),t.position<=s.index&&o<0&&(o=i.length-2);o<0&&(o=i.length-1);var a="",c,l,u=Math.min(t.line+e.linesAfter,n.length).toString().length,f=e.maxLength-(e.indent+u+3);for(c=1;c<=e.linesBefore&&!(o-c<0);c++)l=Qse(t.buffer,i[o-c],n[o-c],t.position-(i[o]-i[o-c]),f),a=Un.repeat(" ",e.indent)+Lse((t.line-c+1).toString(),u)+" | "+l.str+`
`+a;for(l=Qse(t.buffer,i[o],n[o],t.position,f),a+=Un.repeat(" ",e.indent)+Lse((t.line+1).toString(),u)+" | "+l.str+`
`,a+=Un.repeat("-",e.indent+u+3+l.pos)+`^
`,c=1;c<=e.linesAfter&&!(o+c>=n.length);c++)l=Qse(t.buffer,i[o+c],n[o+c],t.position-(i[o]-i[o+c]),f),a+=Un.repeat(" ",e.indent)+Lse((t.line+c+1).toString(),u)+" | "+l.str+`
`;return a.replace(/\n$/,"")}var Ler=Qer,Fer=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],Mer=["scalar","sequence","mapping"];function Uer(t){var e={};return t!==null&&Object.keys(t).forEach(function(r){t[r].forEach(function(i){e[String(i)]=r})}),e}function qer(t,e){if(e=e||{},Object.keys(e).forEach(function(r){if(Fer.indexOf(r)===-1)throw new Ta('Unknown option "'+r+'" is met in definition of "'+t+'" YAML type.')}),this.options=e,this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(r){return r},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.representName=e.representName||null,this.defaultStyle=e.defaultStyle||null,this.multi=e.multi||!1,this.styleAliases=Uer(e.styleAliases||null),Mer.indexOf(this.kind)===-1)throw new Ta('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}var io=qer;function Nze(t,e){var r=[];return t[e].forEach(function(i){var n=r.length;r.forEach(function(s,o){s.tag===i.tag&&s.kind===i.kind&&s.multi===i.multi&&(n=o)}),r[n]=i}),r}function Ger(){var t={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},e,r;function i(n){n.multi?(t.multi[n.kind].push(n),t.multi.fallback.push(n)):t[n.kind][n.tag]=t.fallback[n.tag]=n}for(e=0,r=arguments.length;e<r;e+=1)arguments[e].forEach(i);return t}function Mse(t){return this.extend(t)}Mse.prototype.extend=function(e){var r=[],i=[];if(e instanceof io)i.push(e);else if(Array.isArray(e))i=i.concat(e);else if(e&&(Array.isArray(e.implicit)||Array.isArray(e.explicit)))e.implicit&&(r=r.concat(e.implicit)),e.explicit&&(i=i.concat(e.explicit));else throw new Ta("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");r.forEach(function(s){if(!(s instanceof io))throw new Ta("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(s.loadKind&&s.loadKind!=="scalar")throw new Ta("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(s.multi)throw new Ta("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),i.forEach(function(s){if(!(s instanceof io))throw new Ta("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var n=Object.create(Mse.prototype);return n.implicit=(this.implicit||[]).concat(r),n.explicit=(this.explicit||[]).concat(i),n.compiledImplicit=Nze(n,"implicit"),n.compiledExplicit=Nze(n,"explicit"),n.compiledTypeMap=Ger(n.compiledImplicit,n.compiledExplicit),n};var Her=Mse,jer=new io("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return t!==null?t:""}}),zer=new io("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return t!==null?t:[]}}),Ver=new io("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return t!==null?t:{}}}),$er=new Her({explicit:[jer,zer,Ver]});function Wer(t){if(t===null)return!0;var e=t.length;return e===1&&t==="~"||e===4&&(t==="null"||t==="Null"||t==="NULL")}function Jer(){return null}function Yer(t){return t===null}var Ker=new io("tag:yaml.org,2002:null",{kind:"scalar",resolve:Wer,construct:Jer,predicate:Yer,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"});function Xer(t){if(t===null)return!1;var e=t.length;return e===4&&(t==="true"||t==="True"||t==="TRUE")||e===5&&(t==="false"||t==="False"||t==="FALSE")}function Zer(t){return t==="true"||t==="True"||t==="TRUE"}function etr(t){return Object.prototype.toString.call(t)==="[object Boolean]"}var ttr=new io("tag:yaml.org,2002:bool",{kind:"scalar",resolve:Xer,construct:Zer,predicate:etr,represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"});function rtr(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function itr(t){return 48<=t&&t<=55}function ntr(t){return 48<=t&&t<=57}function str(t){if(t===null)return!1;var e=t.length,r=0,i=!1,n;if(!e)return!1;if(n=t[r],(n==="-"||n==="+")&&(n=t[++r]),n==="0"){if(r+1===e)return!0;if(n=t[++r],n==="b"){for(r++;r<e;r++)if(n=t[r],n!=="_"){if(n!=="0"&&n!=="1")return!1;i=!0}return i&&n!=="_"}if(n==="x"){for(r++;r<e;r++)if(n=t[r],n!=="_"){if(!rtr(t.charCodeAt(r)))return!1;i=!0}return i&&n!=="_"}if(n==="o"){for(r++;r<e;r++)if(n=t[r],n!=="_"){if(!itr(t.charCodeAt(r)))return!1;i=!0}return i&&n!=="_"}}if(n==="_")return!1;for(;r<e;r++)if(n=t[r],n!=="_"){if(!ntr(t.charCodeAt(r)))return!1;i=!0}return!(!i||n==="_")}function otr(t){var e=t,r=1,i;if(e.indexOf("_")!==-1&&(e=e.replace(/_/g,"")),i=e[0],(i==="-"||i==="+")&&(i==="-"&&(r=-1),e=e.slice(1),i=e[0]),e==="0")retur Line truncated
\r`;function Str(t){if(t===null)return!1;var e,r,i=0,n=t.length,s=jse;for(r=0;r<n;r++)if(e=s.indexOf(t.charAt(r)),!(e>64)){if(e<0)return!1;i+=6}return i%8===0}function Btr(t){var e,r,i=t.replace(/[\r\n=]/g,""),n=i.length,s=jse,o=0,a=[];for(e=0;e<n;e++)e%4===0&&e&&(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return r=n%4*6,r===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):r===18?(a.push(o>>10&255),a.push(o>>2&255)):r===12&&a.push(o>>4&255),new Uint8Array(a)}function vtr(t){var e="",r=0,i,n,s=t.length,o=jse;for(i=0;i<s;i++)i%3===0&&i&&(e+=o[r>>18&63],e+=o[r>>12&63],e+=o[r>>6&63],e+=o[r&63]),r=(r<<8)+t[i];return n=s%3,n===0?(e+=o[r>>18&63],e+=o[r>>12&63],e+=o[r>>6&63],e+=o[r&63]):n===2?(e+=o[r>>10&63],e+=o[r>>4&63],e+=o[r<<2&63],e+=o[64]):n===1&&(e+=o[r>>2&63],e+=o[r<<4&63],e+=o[64],e+=o[64]),e}function xtr(t){return Object.prototype.toString.call(t)==="[object Uint8Array]"}var _tr=new io("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Str,construct:Btr,predicate:xtr,represent:vtr}),Rtr=Object.prototype.hasOwnProperty,Ttr=Object.prototype.toString;function Ntr(t){if(t===null)return!0;var e=[],r,i,n,s,o,a=t;for(r=0,i=a.length;r<i;r+=1){if(n=a[r],o=!1,Ttr.call(n)!=="[object Object]")return!1;for(s in n)if(Rtr.call(n,s))if(!o)o=!0;else return!1;if(!o)return!1;if(e.indexOf(s)===-1)e.push(s);else return!1}return!0}function Dtr(t){return t!==null?t:[]}var Otr=new io("tag:yaml.org,2002:omap",{kind:"sequence",resolve:Ntr,construct:Dtr}),Ptr=Object.prototype.toString;function ktr(t){if(t===null)return!0;var e,r,i,n,s,o=t;for(s=new Array(o.length),e=0,r=o.length;e<r;e+=1){if(i=o[e],Ptr.call(i)!=="[object Object]"||(n=Object.keys(i),n.length!==1))return!1;s[e]=[n[0],i[n[0]]]}return!0}function Qtr(t){if(t===null)return[];var e,r,i,n,s,o=t;for(s=new Array(o.length),e=0,r=o.length;e<r;e+=1)i=o[e],n=Object.keys(i),s[e]=[n[0],i[n[0]]];return s}var Ltr=new io("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:ktr,construct:Qtr}),Ftr=Object.prototype.hasOwnProperty;function Mtr(t){if(t===null)return!0;var e,r=t;for(e in r)if(Ftr.call(r,e)&&r[e]!==null)return!1;return!0}function Utr(t){return t!==null?t:{}}var qtr=new io("tag:yaml.org,2002:set",{kind:"mapping",resolve:Mtr,construct:Utr}),Yze=gtr.extend({implicit:[wtr,Itr],explicit:[_tr,Otr,Ltr,qtr]}),BA=Object.prototype.hasOwnProperty,Xq=1,Kze=2,Xze=3,Zq=4,Fse=1,Gtr=2,Dze=3,Htr=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,jtr=/[\x85\u2028\u2029]/,ztr=/[,\[\]\{\}]/,Zze=/^(?:!|!!|![a-z\-]+!)$/i,eVe=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function Oze(t){return Object.prototype.toString.call(t)}function yh(t){return t===10||t===13}function DE(t){return t===9||t===32}function Na(t){return t===9||t===32||t===10||t===13}function QI(t){return t===44||t===91||t===93||t===123||t===125}function Vtr(t){var e;return 48<=t&&t<=57?t-48:(e=t|32,97<=e&&e<=102?e-97+10:-1)}function $tr(t){return t===120?2:t===117?4:t===85?8:0}function Wtr(t){return 48<=t&&t<=57?t-48:-1}function Pze(t){return t===48?"\0":t===97?"\x07":t===98?"\b":t===116||t===9?" ":t===110?`
`:t===118?"\v":t===102?"\f":t===114?"\r":t===101?"\x1B":t===32?" ":t===34?'"':t===47?"/":t===92?"\\":t===78?"\x85":t===95?"\xA0":t===76?"\u2028":t===80?"\u2029":""}function Jtr(t){return t<=65535?String.fromCharCode(t):String.fromCharCode((t-65536>>10)+55296,(t-65536&1023)+56320)}function tVe(t,e,r){e==="__proto__"?Object.defineProperty(t,e,{configurable:!0,enumerable:!0,writable:!0,value:r}):t[e]=r}var rVe=new Array(256),iVe=new Array(256);for(NE=0;NE<256;NE++)rVe[NE]=Pze(NE)?1:0,iVe[NE]=Pze(NE);var NE;function Ytr(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||Yze,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function nVe(t,e){var r={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return r.snippet=Ler(r),new Ta(e,r)}function Ze(t,e){throw nVe(t,e)}function e3(t,e){t.onWarning&&t.onWarning.call(null,nVe(t,e))}var kze={YAML:function(e,r,i){var n,s,o;e.version!==null&&Ze(e,"duplication of %YAML directive"),i.length!==1&&Ze(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&&Ze(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&&Ze(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&e3(e,"unsupported YAML version of the document")},TAG:function(e,r,i){var n,s;i.length!==2&&Ze(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],Zze.test(n)||Ze(e,"ill-formed tag handle (first argument) of the TAG directive"),BA.call(e.tagMap,n)&&Ze(e,'there is a previously declared suffix for "'+n+'" tag handle'),eVe.test(s)||Ze(e,"ill-formed tag prefix (second argument) of the TAG directive");try{s=decodeURIComponent(s)}catch{Ze(e,"tag prefix is malformed: "+s)}e.tagMap[n]=s}};function SA(t,e,r,i){var n,s,o,a;if(e<r){if(a=t.input.slice(e,r),i)for(n=0,s=a.length;n<s;n+=1)o=a.charCodeAt(n),o===9||32<=o&&o<=1114111||Ze(t,"expected valid JSON character");else Htr.test(a)&&Ze(t,"the stream contains non-printable characters");t.result+=a}}function Qze(t,e,r,i){var n,s,o,a;for(Un.isObject(r)||Ze(t,"cannot merge mappings; the provided source object is unacceptable"),n=Object.keys(r),o=0,a=n.length;o<a;o+=1)s=n[o],BA.call(e,s)||(tVe(e,s,r[s]),i[s]=!0)}function LI(t,e,r,i,n,s,o,a,c){var l,u;if(Array.isArray(n))for(n=Array.prototype.slice.call(n),l=0,u=n.length;l<u;l+=1)Array.isArray(n[l])&&Ze(t,"nested arrays are not supported inside keys"),typeof n=="object"&&Oze(n[l])==="[object Object]"&&(n[l]="[object Object]");if(typeof n=="object"&&Oze(n)==="[object Object]"&&(n="[object Object]"),n=String(n),e===null&&(e={}),i==="tag:yaml.org,2002:merge")if(Array.isArray(s))for(l=0,u=s.length;l<u;l+=1)Qze(t,e,s[l],r);else Qze(t,e,s,r);else!t.json&&!BA.call(r,n)&&BA.call(e,n)&&(t.line=o||t.line,t.lineStart=a||t.lineStart,t.position=c||t.position,Ze(t,"duplicated mapping key")),tVe(e,n,s),delete r[n];return e}function zse(t){var e;e=t.input.charCodeAt(t.position),e===10?t.position++:e===13?(t.position++,t.input.charCodeAt(t.position)===10&&t.position++):Ze(t,"a line break is expected"),t.line+=1,t.lineStart=t.position,t.firstTabInLine=-1}function Sn(t,e,r){for(var i=0,n=t.input.charCodeAt(t.position);n!==0;){for(;DE(n);)n===9&&t.firstTabInLine===-1&&(t.firstTabInLine=t.position),n=t.input.charCodeAt(++t.position);if(e&&n===35)do n=t.input.charCodeAt(++t.position);while(n!==10&&n!==13&&n!==0);if(yh(n))for(zse(t),n=t.input.charCodeAt(t.position),i++,t.lineIndent=0;n===32;)t.lineIndent++,n=t.input.charCodeAt(++t.position);else break}return r!==-1&&i!==0&&t.lineIndent<r&&e3(t,"deficient indentation"),i}function i3(t){var e=t.position,r;return r=t.input.charCodeAt(e),!!((r===45||r===46)&&r===t.input.charCodeAt(e+1)&&r===t.input.charCodeAt(e+2)&&(e+=3,r=t.input.charCodeAt(e),r===0||Na(r)))}function Vse(t,e){e===1?t.result+=" ":e>1&&(t.result+=Un.repeat(`
`,e-1))}function Ktr(t,e,r){var i,n,s,o,a,c,l,u,f=t.kind,h=t.result,d;if(d=t.input.charCodeAt(t.position),Na(d)||QI(d)||d===35||d===38||d===42||d===33||d===124||d===62||d===39||d===34||d===37||d===64||d===96||(d===63||d===45)&&(n=t.input.charCodeAt(t.position+1),Na(n)||r&&QI(n)))return!1;for(t.kind="scalar",t.result="",s=o=t.position,a=!1;d!==0;){if(d===58){if(n=t.input.charCodeAt(t.position+1),Na(n)||r&&QI(n))break}else if(d===35){if(i=t.input.charCodeAt(t.position-1),Na(i))break}else{if(t.position===t.lineStart&&i3(t)||r&&QI(d))break;if(yh(d))if(c=t.line,l=t.lineStart,u=t.lineIndent,Sn(t,!1,-1),t.lineIndent>=e){a=!0,d=t.input.charCodeAt(t.position);continue}else{t.position=o,t.line=c,t.lineStart=l,t.lineIndent=u;break}}a&&(SA(t,s,o,!1),Vse(t,t.line-c),s=o=t.position,a=!1),DE(d)||(o=t.position+1),d=t.input.charCodeAt(++t.position)}return SA(t,s,o,!1),t.result?!0:(t.kind=f,t.result=h,!1)}function Xtr(t,e){var r,i,n;if(r=t.input.charCodeAt(t.position),r!==39)return!1;for(t.kind="scalar",t.result="",t.position++,i=n=t.position;(r=t.input.charCodeAt(t.position))!==0;)if(r===39)if(SA(t,i,t.position,!0),r=t.input.charCodeAt(++t.position),r===39)i=t.position,t.position++,n=t.position;else return!0;else yh(r)?(SA(t,i,n,!0),Vse(t,Sn(t,!1,e)),i=n=t.position):t.position===t.lineStart&&i3(t)?Ze(t,"unexpected end of the document within a single quoted scalar"):(t.position++,n=t.position);Ze(t,"unexpected end of the stream within a single quoted scalar")}function Ztr(t,e){var r,i,n,s,o,a;if(a=t.input.charCodeAt(t.position),a!==34)return!1;for(t.kind="scalar",t.result="",t.position++,r=i=t.position;(a=t.input.charCodeAt(t.position))!==0;){if(a===34)return SA(t,r,t.position,!0),t.position++,!0;if(a===92){if(SA(t,r,t.position,!0),a=t.input.charCodeAt(++t.position),yh(a))Sn(t,!1,e);else if(a<256&&rVe[a])t.result+=iVe[a],t.position++;else if((o=$tr(a))>0){for(n=o,s=0;n>0;n--)a=t.input.charCodeAt(++t.position),(o=Vtr(a))>=0?s=(s<<4)+o:Ze(t,"expected hexadecimal character");t.result+=Jtr(s),t.position++}else Ze(t,"unknown escape sequence");r=i=t.position}else yh(a)?(SA(t,r,i,!0),Vse(t,Sn(t,!1,e)),r=i=t.position):t.position===t.lineStart&&i3(t)?Ze(t,"unexpected end of the document within a double quoted scalar"):(t.position++,i=t.position)}Ze(t,"unexpected end of the stream within a double quoted scalar")}function err(t,e){var r=!0,i,n,s,o=t.tag,a,c=t.anchor,l,u,f,h,d,p=Object.create(null),m,y,g,E;if(E=t.input.charCodeAt(t.position),E===91)u=93,d=!1,a=[];else if(E===123)u=125,d=!0,a={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=a),E=t.input.charCodeAt(++t.position);E!==0;){if(Sn(t,!0,e),E=t.input.charCodeAt(t.position),E===u)return t.position++,t.tag=o,t.anchor=c,t.kind=d?"mapping":"sequence",t.result=a,!0;r?E===44&&Ze(t,"expected the node content, but found ','"):Ze(t,"missed comma between flow collection entries"),y=m=g=null,f=h=!1,E===63&&(l=t.input.charCodeAt(t.position+1),Na(l)&&(f=h=!0,t.position++,Sn(t,!0,e))),i=t.line,n=t.lineStart,s=t.position,FI(t,e,Xq,!1,!0),y=t.tag,m=t.result,Sn(t,!0,e),E=t.input.charCodeAt(t.position),(h||t.line===i)&&E===58&&(f=!0,E=t.input.charCodeAt(++t.position),Sn(t,!0,e),FI(t,e,Xq,!1,!0),g=t.result),d?LI(t,a,p,y,m,g,i,n,s):f?a.push(LI(t,null,p,y,m,g,i,n,s)):a.push(m),Sn(t,!0,e),E=t.input.charCodeAt(t.position),E===44?(r=!0,E=t.input.charCodeAt(++t.position)):r=!1}Ze(t,"unexpected end of the stream within a flow collection")}function trr(t,e){var r,i,n=Fse,s=!1,o=!1,a=e,c=0,l=!1,u,f;if(f=t.input.charCodeAt(t.position),f===124)i=!1;else if(f===62)i=!0;else return!1;for(t.kind="scalar",t.result="";f!==0;)if(f=t.input.charCodeAt(++t.position),f===43||f===45)Fse===n?n=f===43?Dze:Gtr:Ze(t,"repeat of a chomping mode identifier");else if((u=Wtr(f))>=0)u===0?Ze(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?Ze(t,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(DE(f)){do f=t.input.charCodeAt(++t.position);while(DE(f));if(f===35)do f=t.input.charCodeAt(++t.position);while(!yh(f)&&f!==0)}for(;f!==0;){for(zse(t),t.lineIndent=0,f=t.input.charCodeAt(t.position);(!o||t.lineIndent<a)&&f===32;)t.lineIndent++,f=t.input.charCodeAt(++t.position);if(!o&&t.lineIndent>a&&(a=t.lineIndent),yh(f)){c++;continue}if(t.lineIndent<a){n===Dze?t.result+=Un.repeat(`
`,s?1+c:c):n===Fse&&s&&(t.result+=`
`);break}for(i?DE(f)?(l=!0,t.result+=Un.repeat(`
`,s?1+c:c)):l?(l=!1,t.result+=Un.repeat(`
`,c+1)):c===0?s&&(t.result+=" "):t.result+=Un.repeat(`
`,c):t.result+=Un.repeat(`
`,s?1+c:c),s=!0,o=!0,c=0,r=t.position;!yh(f)&&f!==0;)f=t.input.charCodeAt(++t.position);SA(t,r,t.position,!1)}return!0}function Lze(t,e){var r,i=t.tag,n=t.anchor,s=[],o,a=!1,c;if(t.firstTabInLine!==-1)return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=s),c=t.input.charCodeAt(t.position);c!==0&&(t.firstTabInLine!==-1&&(t.position=t.firstTabInLine,Ze(t,"tab characters must not be used in indentation")),!(c!==45||(o=t.input.charCodeAt(t.position+1),!Na(o))));){if(a=!0,t.position++,Sn(t,!0,-1)&&t.lineIndent<=e){s.push(null),c=t.input.charCodeAt(t.position);continue}if(r=t.line,FI(t,e,Xze,!1,!0),s.push(t.result),Sn(t,!0,-1),c=t.input.charCodeAt(t.position),(t.line===r||t.lineIndent>e)&&c!==0)Ze(t,"bad indentation of a sequence entry");else if(t.lineIndent<e)break}return a?(t.tag=i,t.anchor=n,t.kind="sequence",t.result=s,!0):!1}function rrr(t,e,r){var i,n,s,o,a,c,l=t.tag,u=t.anchor,f={},h=Object.create(null),d=null,p=null,m=null,y=!1,g=!1,E;if(t.firstTabInLine!==-1)return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=f),E=t.input.charCodeAt(t.position);E!==0;){if(!y&&t.firstTabInLine!==-1&&(t.position=t.firstTabInLine,Ze(t,"tab characters must not be used in indentation")),i=t.input.charCodeAt(t.position+1),s=t.line,(E===63||E===58)&&Na(i))E===63?(y&&(LI(t,f,h,d,p,null,o,a,c),d=p=m=null),g=!0,y=!0,n=!0):y?(y=!1,n=!0):Ze(t,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),t.position+=1,E=i;else{if(o=t.line,a=t.lineStart,c=t.position,!FI(t,r,Kze,!1,!0))break;if(t.line===s){for(E=t.input.charCodeAt(t.position);DE(E);)E=t.input.charCodeAt(++t.position);if(E===58)E=t.input.charCodeAt(++t.position),Na(E)||Ze(t,"a whitespace character is expected after the key-value separator within a block mapping"),y&&(LI(t,f,h,d,p,null,o,a,c),d=p=m=null),g=!0,y=!1,n=!1,d=t.tag,p=t.result;else if(g)Ze(t,"can not read an implicit mapping pair; a colon is missed");else return t.tag=l,t.anchor=u,!0}else if(g)Ze(t,"can not read a block mapping entry; a multiline key may not be an implicit key");else return t.tag=l,t.anchor=u,!0}if((t.line===s||t.lineIndent>e)&&(y&&(o=t.line,a=t.lineStart,c=t.position),FI(t,e,Zq,!0,n)&&(y?p=t.result:m=t.result),y||(LI(t,f,h,d,p,m,o,a,c),d=p=m=null),Sn(t,!0,-1),E=t.input.charCodeAt(t.position)),(t.line===s||t.lineIndent>e)&&E!==0)Ze(t,"bad indentation of a mapping entry");else if(t.lineIndent<e)break}return y&&LI(t,f,h,d,p,null,o,a,c),g&&(t.tag=l,t.anchor=u,t.kind="mapping",t.result=f),g}function irr(t){var e,r=!1,i=!1,n,s,o;if(o=t.input.charCodeAt(t.position),o!==33)return!1;if(t.tag!==null&&Ze(t,"duplication of a tag property"),o=t.input.charCodeAt(++t.position),o===60?(r=!0,o=t.input.charCodeAt(++t.position)):o===33?(i=!0,n="!!",o=t.input.charCodeAt(++t.position)):n="!",e=t.position,r){do o=t.input.charCodeAt(++t.position);while(o!==0&&o!==62);t.position<t.length?(s=t.input.slice(e,t.position),o=t.input.charCodeAt(++t.position)):Ze(t,"unexpected end of the stream within a verbatim tag")}else{for(;o!==0&&!Na(o);)o===33&&(i?Ze(t,"tag suffix cannot contain exclamation marks"):(n=t.input.slice(e-1,t.position+1),Zze.test(n)||Ze(t,"named tag handle cannot contain such characters"),i=!0,e=t.position+1)),o=t.input.charCodeAt(++t.position);s=t.input.slice(e,t.position),ztr.test(s)&&Ze(t,"tag suffix cannot contain flow indicator characters")}s&&!eVe.test(s)&&Ze(t,"tag name cannot contain such characters: "+s);try{s=decodeURIComponent(s)}catch{Ze(t,"tag name is malformed: "+s)}return r?t.tag=s:BA.call(t.tagMap,n)?t.tag=t.tagMap[n]+s:n==="!"?t.tag="!"+s:n==="!!"?t.tag="tag:yaml.org,2002:"+s:Ze(t,'undeclared tag handle "'+n+'"'),!0}function nrr(t){var e,r;if(r=t.input.charCodeAt(t.position),r!==38)return!1;for(t.anchor!==null&&Ze(t,"duplication of an anchor property"),r=t.input.charCodeAt(++t.position),e=t.position;r!==0&&!Na(r)&&!QI(r);)r=t.input.charCodeAt(++t.position);return t.position===e&&Ze(t,"name of an anchor node must contain at least one character"),t.anchor=t.input.slice(e,t.position),!0}function srr(t){var e,r,i;if(i=t.input.charCodeAt(t.position),i!==42)return!1;for(i=t.input.charCodeAt(++t.position),e=t.position;i!==0&&!Na(i)&&!QI(i);)i=t.input.charCodeAt(++t.position);return t.position===e&&Ze(t,"name of an alias node must contain at least one character"),r=t.input.slice(e,t.position),BA.call(t.anchorMap,r)||Ze(t,'unidentified alias "'+r+'"'),t.result=t.anchorMap[r],Sn(t,!0,-1),!0}function FI(t,e,r,i,n){var s,o,a,c=1,l=!1,u=!1,f,h,d,p,m,y;if(t.listener!==null&&t.listener("open",t),t.tag=null,t.anchor=null,t.kind=null,t.result=null,s=o=a=Zq===r||Xze===r,i&&Sn(t,!0,-1)&&(l=!0,t.lineIndent>e?c=1:t.lineIndent===e?c=0:t.lineIndent<e&&(c=-1)),c===1)for(;irr(t)||nrr(t);)Sn(t,!0,-1)?(l=!0,a=s,t.lineIndent>e?c=1:t.lineIndent===e?c=0:t.lineIndent<e&&(c=-1)):a=!1;if(a&&(a=l||n),(c===1||Zq===r)&&(Xq===r||Kze===r?m=e:m=e+1,y=t.position-t.lineStart,c===1?a&&(Lze(t,y)||rrr(t,y,m))||err(t,m)?u=!0:(o&&trr(t,m)||Xtr(t,m)||Ztr(t,m)?u=!0:srr(t)?(u=!0,(t.tag!==null||t. Line truncated
`),t.charCodeAt(0)===65279&&(t=t.slice(1)));var r=new Ytr(t,e),i=t.indexOf("\0");for(i!==-1&&(r.position=i,Ze(r,"null byte is not allowed in input")),r.input+="\0";r.input.charCodeAt(r.position)===32;)r.lineIndent+=1,r.position+=1;for(;r.position<r.length-1;)orr(r);return r.documents}function arr(t,e,r){e!==null&&typeof e=="object"&&typeof r>"u"&&(r=e,e=null);var i=sVe(t,r);if(typeof e!="function")return i;for(var n=0,s=i.length;n<s;n+=1)e(i[n])}function crr(t,e){var r=sVe(t,e);if(r.length!==0){if(r.length===1)return r[0];throw new Ta("expected a single document in the stream, but found more")}}var lrr=arr,urr=crr,oVe={loadAll:lrr,load:urr},aVe=Object.prototype.toString,cVe=Object.prototype.hasOwnProperty,$se=65279,frr=9,rN=10,hrr=13,drr=32,prr=33,mrr=34,Use=35,Arr=37,grr=38,yrr=39,Err=42,lVe=44,brr=45,t3=58,wrr=61,Crr=62,Irr=63,Srr=64,uVe=91,fVe=93,Brr=96,hVe=123,vrr=124,dVe=125,no={};no[0]="\\0";no[7]="\\a";no[8]="\\b";no[9]="\\t";no[10]="\\n";no[11]="\\v";no[12]="\\f";no[13]="\\r";no[27]="\\e";no[34]='\\"';no[92]="\\\\";no[133]="\\N";no[160]="\\_";no[8232]="\\L";no[8233]="\\P";var xrr=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],_rr=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;function Rrr(t,e){var r,i,n,s,o,a,c;if(e===null)return{};for(r={},i=Object.keys(e),n=0,s=i.length;n<s;n+=1)o=i[n],a=String(e[o]),o.slice(0,2)==="!!"&&(o="tag:yaml.org,2002:"+o.slice(2)),c=t.compiledTypeMap.fallback[o],c&&cVe.call(c.styleAliases,a)&&(a=c.styleAliases[a]),r[o]=a;return r}function Trr(t){var e,r,i;if(e=t.toString(16).toUpperCase(),t<=255)r="x",i=2;else if(t<=65535)r="u",i=4;else if(t<=4294967295)r="U",i=8;else throw new Ta("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+r+Un.repeat("0",i-e.length)+e}var Nrr=1,iN=2;function Drr(t){this.schema=t.schema||Yze,this.indent=Math.max(1,t.indent||2),this.noArrayIndent=t.noArrayIndent||!1,this.skipInvalid=t.skipInvalid||!1,this.flowLevel=Un.isNothing(t.flowLevel)?-1:t.flowLevel,this.styleMap=Rrr(this.schema,t.styles||null),this.sortKeys=t.sortKeys||!1,this.lineWidth=t.lineWidth||80,this.noRefs=t.noRefs||!1,this.noCompatMode=t.noCompatMode||!1,this.condenseFlow=t.condenseFlow||!1,this.quotingType=t.quotingType==='"'?iN:Nrr,this.forceQuotes=t.forceQuotes||!1,this.replacer=typeof t.replacer=="function"?t.replacer:null,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function Fze(t,e){for(var r=Un.repeat(" ",e),i=0,n=-1,s="",o,a=t.length;i<a;)n=t.indexOf(`
`,i),n===-1?(o=t.slice(i),i=a):(o=t.slice(i,n+1),i=n+1),o.length&&o!==`
`&&(s+=r),s+=o;return s}function qse(t,e){return`
`+Un.repeat(" ",t.indent*e)}function Orr(t,e){var r,i,n;for(r=0,i=t.implicitTypes.length;r<i;r+=1)if(n=t.implicitTypes[r],n.resolve(e))return!0;return!1}function r3(t){return t===drr||t===frr}function nN(t){return 32<=t&&t<=126||161<=t&&t<=55295&&t!==8232&&t!==8233||57344<=t&&t<=65533&&t!==$se||65536<=t&&t<=1114111}function Mze(t){return nN(t)&&t!==$se&&t!==hrr&&t!==rN}function Uze(t,e,r){var i=Mze(t),n=i&&!r3(t);return(r?i:i&&t!==lVe&&t!==uVe&&t!==fVe&&t!==hVe&&t!==dVe)&&t!==Use&&!(e===t3&&!n)||Mze(e)&&!r3(e)&&t===Use||e===t3&&n}function Prr(t){return nN(t)&&t!==$se&&!r3(t)&&t!==brr&&t!==Irr&&t!==t3&&t!==lVe&&t!==uVe&&t!==fVe&&t!==hVe&&t!==dVe&&t!==Use&&t!==grr&&t!==Err&&t!==prr&&t!==vrr&&t!==wrr&&t!==Crr&&t!==yrr&&t!==mrr&&t!==Arr&&t!==Srr&&t!==Brr}function krr(t){return!r3(t)&&t!==t3}function eN(t,e){var r=t.charCodeAt(e),i;return r>=55296&&r<=56319&&e+1<t.length&&(i=t.charCodeAt(e+1),i>=56320&&i<=57343)?(r-55296)*1024+i-56320+65536:r}function pVe(t){var e=/^\n* /;return e.test(t)}var mVe=1,Gse=2,AVe=3,gVe=4,kI=5;function Qrr(t,e,r,i,n,s,o,a){var c,l=0,u=null,f=!1,h=!1,d=i!==-1,p=-1,m=Prr(eN(t,0))&&krr(eN(t,t.length-1));if(e||o)for(c=0;c<t.length;l>=65536?c+=2:c++){if(l=eN(t,c),!nN(l))return kI;m=m&&Uze(l,u,a),u=l}else{for(c=0;c<t.length;l>=65536?c+=2:c++){if(l=eN(t,c),l===rN)f=!0,d&&(h=h||c-p-1>i&&t[p+1]!==" ",p=c);else if(!nN(l))return kI;m=m&&Uze(l,u,a),u=l}h=h||d&&c-p-1>i&&t[p+1]!==" "}return!f&&!h?m&&!o&&!n(t)?mVe:s===iN?kI:Gse:r>9&&pVe(t)?kI:o?s===iN?kI:Gse:h?gVe:AVe}function Lrr(t,e,r,i,n){t.dump=(function(){if(e.length===0)return t.quotingType===iN?'""':"''";if(!t.noCompatMode&&(xrr.indexOf(e)!==-1||_rr.test(e)))return t.quotingType===iN?'"'+e+'"':"'"+e+"'";var s=t.indent*Math.max(1,r),o=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-s),a=i||t.flowLevel>-1&&r>=t.flowLevel;function c(l){return Orr(t,l)}switch(Qrr(e,a,t.indent,o,c,t.quotingType,t.forceQuotes&&!i,n)){case mVe:return e;case Gse:return"'"+e.replace(/'/g,"''")+"'";case AVe:return"|"+qze(e,t.indent)+Gze(Fze(e,s));case gVe:return">"+qze(e,t.indent)+Gze(Fze(Frr(e,o),s));case kI:return'"'+Mrr(e)+'"';default:throw new Ta("impossible error: invalid scalar style")}})()}function qze(t,e){var r=pVe(t)?String(e):"",i=t[t.length-1]===`
`,n=i&&(t[t.length-2]===`
`||t===`
`),s=n?"+":i?"":"-";return r+s+`
`}function Gze(t){return t[t.length-1]===`
`?t.slice(0,-1):t}function Frr(t,e){for(var r=/(\n+)([^\n]*)/g,i=(function(){var l=t.indexOf(`
`);return l=l!==-1?l:t.length,r.lastIndex=l,Hze(t.slice(0,l),e)})(),n=t[0]===`
`||t[0]===" ",s,o;o=r.exec(t);){var a=o[1],c=o[2];s=c[0]===" ",i+=a+(!n&&!s&&c!==""?`
`:"")+Hze(c,e),n=s}return i}function Hze(t,e){if(t===""||t[0]===" ")return t;for(var r=/ [^ ]/g,i,n=0,s,o=0,a=0,c="";i=r.exec(t);)a=i.index,a-n>e&&(s=o>n?o:a,c+=`
`+t.slice(n,s),n=s+1),o=a;return c+=`
`,t.length-n>e&&o>n?c+=t.slice(n,o)+`
`+t.slice(o+1):c+=t.slice(n),c.slice(1)}function Mrr(t){for(var e="",r=0,i,n=0;n<t.length;r>=65536?n+=2:n++)r=eN(t,n),i=no[r],!i&&nN(r)?(e+=t[n],r>=65536&&(e+=t[n+1])):e+=i||Trr(r);return e}function Urr(t,e,r){var i="",n=t.tag,s,o,a;for(s=0,o=r.length;s<o;s+=1)a=r[s],t.replacer&&(a=t.replacer.call(r,String(s),a)),(up(t,e,a,!1,!1)||typeof a>"u"&&up(t,e,null,!1,!1))&&(i!==""&&(i+=","+(t.condenseFlow?"":" ")),i+=t.dump);t.tag=n,t.dump="["+i+"]"}function jze(t,e,r,i){var n="",s=t.tag,o,a,c;for(o=0,a=r.length;o<a;o+=1)c=r[o],t.replacer&&(c=t.replacer.call(r,String(o),c)),(up(t,e+1,c,!0,!0,!1,!0)||typeof c>"u"&&up(t,e+1,null,!0,!0,!1,!0))&&((!i||n!=="")&&(n+=qse(t,e)),t.dump&&rN===t.dump.charCodeAt(0)?n+="-":n+="- ",n+=t.dump);t.tag=s,t.dump=n||"[]"}function qrr(t,e,r){var i="",n=t.tag,s=Object.keys(r),o,a,c,l,u;for(o=0,a=s.length;o<a;o+=1)u="",i!==""&&(u+=", "),t.condenseFlow&&(u+='"'),c=s[o],l=r[c],t.replacer&&(l=t.replacer.call(r,c,l)),up(t,e,c,!1,!1)&&(t.dump.length>1024&&(u+="? "),u+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),up(t,e,l,!1,!1)&&(u+=t.dump,i+=u));t.tag=n,t.dump="{"+i+"}"}function Grr(t,e,r,i){var n="",s=t.tag,o=Object.keys(r),a,c,l,u,f,h;if(t.sortKeys===!0)o.sort();else if(typeof t.sortKeys=="function")o.sort(t.sortKeys);else if(t.sortKeys)throw new Ta("sortKeys must be a boolean or a function");for(a=0,c=o.length;a<c;a+=1)h="",(!i||n!=="")&&(h+=qse(t,e)),l=o[a],u=r[l],t.replacer&&(u=t.replacer.call(r,l,u)),up(t,e+1,l,!0,!0,!0)&&(f=t.tag!==null&&t.tag!=="?"||t.dump&&t.dump.length>1024,f&&(t.dump&&rN===t.dump.charCodeAt(0)?h+="?":h+="? "),h+=t.dump,f&&(h+=qse(t,e)),up(t,e+1,u,!0,f)&&(t.dump&&rN===t.dump.charCodeAt(0)?h+=":":h+=": ",h+=t.dump,n+=h));t.tag=s,t.dump=n||"{}"}function zze(t,e,r){var i,n,s,o,a,c;for(n=r?t.explicitTypes:t.implicitTypes,s=0,o=n.length;s<o;s+=1)if(a=n[s],(a.instanceOf||a.predicate)&&(!a.instanceOf||typeof e=="object"&&e instanceof a.instanceOf)&&(!a.predicate||a.predicate(e))){if(r?a.multi&&a.representName?t.tag=a.representName(e):t.tag=a.tag:t.tag="?",a.represent){if(c=t.styleMap[a.tag]||a.defaultStyle,aVe.call(a.represent)==="[object Function]")i=a.represent(e,c);else if(cVe.call(a.represent,c))i=a.represent[c](e,c);else throw new Ta("!<"+a.tag+'> tag resolver accepts not "'+c+'" style');t.dump=i}return!0}return!1}function up(t,e,r,i,n,s,o){t.tag=null,t.dump=r,zze(t,r,!1)||zze(t,r,!0);var a=aVe.call(t.dump),c=i,l;i&&(i=t.flowLevel<0||t.flowLevel>e);var u=a==="[object Object]"||a==="[object Array]",f,h;if(u&&(f=t.duplicates.indexOf(r),h=f!==-1),(t.tag!==null&&t.tag!=="?"||h||t.indent!==2&&e>0)&&(n=!1),h&&t.usedDuplicates[f])t.dump="*ref_"+f;else{if(u&&h&&!t.usedDuplicates[f]&&(t.usedDuplicates[f]=!0),a==="[object Object]")i&&Object.keys(t.dump).length!==0?(Grr(t,e,t.dump,n),h&&(t.dump="&ref_"+f+t.dump)):(qrr(t,e,t.dump),h&&(t.dump="&ref_"+f+" "+t.dump));else if(a==="[object Array]")i&&t.dump.length!==0?(t.noArrayIndent&&!o&&e>0?jze(t,e-1,t.dump,n):jze(t,e,t.dump,n),h&&(t.dump="&ref_"+f+t.dump)):(Urr(t,e,t.dump),h&&(t.dump="&ref_"+f+" "+t.dump));else if(a==="[object String]")t.tag!=="?"&&Lrr(t,t.dump,e,s,c);else{if(a==="[object Undefined]")return!1;if(t.skipInvalid)return!1;throw new Ta("unacceptable kind of an object to dump "+a)}t.tag!==null&&t.tag!=="?"&&(l=encodeURI(t.tag[0]==="!"?t.tag.slice(1):t.tag).replace(/!/g,"%21"),t.tag[0]==="!"?l="!"+l:l.slice(0,18)==="tag:yaml.org,2002:"?l="!!"+l.slice(18):l="!<"+l+">",t.dump=l+" "+t.dump)}return!0}function Hrr(t,e){var r=[],i=[],n,s;for(Hse(t,r,i),n=0,s=i.length;n<s;n+=1)e.duplicates.push(r[i[n]]);e.usedDuplicates=new Array(s)}function Hse(t,e,r){var i,n,s;if(t!==null&&typeof t=="object")if(n=e.indexOf(t),n!==-1)r.indexOf(n)===-1&&r.push(n);else if(e.push(t),Array.isArray(t))for(n=0,s=t.length;n<s;n+=1)Hse(t[n],e,r);else for(i=Object.keys(t),n=0,s=i.length;n<s;n+=1)Hse(t[i[n]],e,r)}function jrr(t,e){e=e||{};var r=new Drr(e);r.noRefs||Hrr(t,r);var i=t;return r.replacer&&(i=r.replacer.call({"":i},"",i)),up(r,0,i,!0,!0)?r.dump+`
`:""}var zrr=jrr,Vrr={dump:zrr};function Wse(t,e){return function(){throw new Error("Function yaml."+t+" is removed in js-yaml 4. Use yaml."+e+" instead, which is now safe by default.")}}var uXr=oVe.load,fXr=oVe.loadAll,yVe=Vrr.dump;var hXr=Wse("safeLoad","load"),dXr=Wse("safeLoadAll","loadAll"),pXr=Wse("safeDump","dump");var EVe=q(require("os"),1);var n3=class t{static async writeBuildSummary(e){let r=function(c,l,u=!1){return`<a href="${l}">${c}</a>`+(u?EVe.default.EOL:"")},i=e.exportRes.refs.length,n=i>0?e.exportRes.refs?.[0]:void 0,s=n?e.exportRes.summaries?.[n]:void 0,o=e.driver==="cloud"&&e.endpoint?e.endpoint?.replace(/^cloud:\/\//,"").split("/")[0]:void 0,a=Qz.addHeading("Docker Build summary",2);if(o&&i===1&&n&&s){let c=t.formatDBCBuildURL(o,n,s.defaultPlatform);a.addRaw("<p>").addRaw("For a detailed look at the build, you can check the results at:").addRaw("</p>").addRaw("<p>").addRaw(`:whale: ${r(`<strong>${c}</strong>`,c)}`).addRaw("</p>")}if(e.uploadRes){let c=`./${Ot.runId}/${e.uploadRes.url.split("/").slice(-2).join("/")}`;o&&i===1?a.addRaw("<p>").addRaw("You can also download the following build record archive and import it into Docker Desktop's Builds view. ").addBreak().addRaw("Build records include details such as timing, dependencies, results, logs, traces, and other information about a build. ").addRaw(r("Learn more","https://www.docker.com/blog/new-beta-feature-deep-dive-into-github-actions-docker-builds-with-docker-desktop/?utm_source=github&utm_medium=actions")).addRaw("</p>"):a.addRaw("<p>").addRaw("For a detailed look at the build, download the following build record archive and import it into Docker Desktop's Builds view. ").addBreak().addRaw("Build records include details such as timing, dependencies, results, logs, traces, and other information about a build. ").addRaw(r("Learn more","https://www.docker.com/blog/new-beta-feature-deep-dive-into-github-actions-docker-builds-with-docker-desktop/?utm_source=github&utm_medium=actions")).addRaw("</p>"),a.addRaw("<p>").addRaw(`:arrow_down: ${r(`<strong>${Be.stringToUnicodeEntities(e.uploadRes.filename)}</strong>`,c)} (${Be.formatFileSize(e.uploadRes.size)} - includes <strong>${i} build record${i>1?"s":""}</strong>)`).addRaw("</p>")}else e.exportRes.summaries&&a.addRaw("<p>").addRaw("The following table provides a brief summary of your build.").addBreak().addRaw("For a detailed look at the build, including timing, dependencies, results, logs, traces, and other information, consider enabling the export of the build record so you can import it into Docker Desktop's Builds view. ").addRaw(r("Learn more","https://www.docker.com/blog/new-beta-feature-deep-dive-into-github-actions-docker-builds-with-docker-desktop/?utm_source=github&utm_medium=actions")).addRaw("</p>");if(a.addRaw("<p>").addRaw("Find this useful? ").addRaw(r("Let us know","https://docs.docker.com/feedback/gha-build-summary")).addRaw("</p>"),e.exportRes.summaries){a.addRaw("<p>");let c=[[{header:!0,data:"ID"},{header:!0,data:"Name"},{header:!0,data:"Status"},{header:!0,data:"Cached"},{header:!0,data:"Duration"},...o&&i>1?[{header:!0,data:"Build result URL"}]:[]]],l;for(let u in e.exportRes.summaries)if(Object.prototype.hasOwnProperty.call(e.exportRes.summaries,u)){let f=e.exportRes.summaries[u];c.push([{data:`<code>${u.substring(0,6).toUpperCase()}</code>`},{data:`<strong>${Be.stringToUnicodeEntities(f.name)}</strong>`},{data:`${f.status==="completed"?":white_check_mark:":f.status==="canceled"?":no_entry_sign:":":x:"} ${f.status}`},{data:`${f.numCachedSteps>0?Math.round(f.numCachedSteps/f.numTotalSteps*100):0}%`},{data:f.duration},...o&&i>1?[{data:r(":whale: Open",t.formatDBCBuildURL(o,u,f.defaultPlatform))}]:[]]),f.error&&(l=f.error)}a.addTable([...c]),a.addRaw("</p>"),l&&(a.addRaw("<blockquote>"),Be.countLines(l)>10?a.addRaw("<details><summary><strong>Error</strong></summary>").addCodeBlock(Jse.default.encode(l),"text").addRaw("</details>"):a.addRaw("<strong>Error</strong>").addBreak().addRaw("<p>").addCodeBlock(Jse.default.encode(l),"text").addRaw("</p>"),a.addRaw("</blockquote>"))}e.inputs&&a.addRaw("<details><summary><strong>Build inputs</strong></summary>").addCodeBlock(yVe(e.inputs,{indent:2,lineWidth:-1}),"yaml").addRaw("</details>"),e.bakeDefinition&&a.addRaw("<details><summary><strong>Bake definition</strong></summary>").addCodeBlock(JSON.stringify(e.bakeDefinition,null,2),"json").addRaw("</details>"),ae("Writing summary"),await a.addSeparator().write()}static formatDBCBuildURL(e,r,i){return`https://app.docker.com/build/accounts/${e}/builds/${(i??"linux/amd64").replace("/","-")}/${r}`}};var OE=q(require("fs"),1),Yse=q(require("path"),1);var kr=class t{buildx;iidFilename;metadataFilename;constructor(e){this.buildx=e?.buildx||new gr,this.iidFilename=`build-iidfile-${Be.generateRandomString()}.txt`,this.metadataFilename=`build-metadata-${Be.generateRandomString()}.json`}async gitContext(e){let r=new Set(["ref","checksum","subdir"]),i=e?.attrs||{},n=Object.entries(i).fi Line truncated
`),{delimiter:",",trim:!0,columns:!1,relaxColumnCount:!0});for(let n of i){if(n.length==1&&!n[0].startsWith("type="))return e=="local";for(let[s,o]of n.map(a=>a.split("=").map(c=>c.trim())))if(s=="type"&&o==e)return!0}return!1}static hasAttestationType(e,r){let i=bc(r,{delimiter:",",trim:!0,columns:!1,relaxColumnCount:!0});for(let n of i)for(let[s,o]of n.map(a=>a.split("=").map(c=>c.trim())))if(s=="type"&&o==e)return!0;return!1}static resolveAttestationAttrs(e){let r=bc(e,{delimiter:",",trim:!0,columns:!1,relaxColumnCount:!0}),i=[];for(let n of r)for(let s of n)try{let o=Be.parseBool(s);i.push(`disabled=${!o}`)}catch{i.push(s)}return i.join(",")}static hasGitAuthTokenSecret(e,r){for(let i of e){if(r&&i.startsWith(`GIT_AUTH_TOKEN.${r}=`))return!0;if(i.startsWith("GIT_AUTH_TOKEN="))return!0}return!1}static parseSecretKvp(e,r){let i=e.indexOf("="),n=e.substring(0,i),s=e.substring(i+1);if(n.length==0||s.length==0)throw new Error(`${e} is not a valid secret`);return r&&kv(s),[n,s]}};var Kse=q(require("fs"),1),bVe=q(require("path"),1);var s3=class t{buildx;metadataFilename;constructor(e){this.buildx=e?.buildx||new gr,this.metadataFilename=`bake-metadata-${Be.generateRandomString()}.json`}getMetadataFilePath(){return bVe.default.join(Zt.tmpDir(),this.metadataFilename)}resolveMetadata(){let e=this.getMetadataFilePath();if(!Kse.default.existsSync(e))return;let r=Kse.default.readFileSync(e,{encoding:"utf-8"}).trim();if(r!=="null")return JSON.parse(r)}resolveRefs(e){if(!e&&(e=this.resolveMetadata(),!e))return;let r=new Array;for(let i in e)"buildx.build.ref"in e[i]&&r.push(e[i]["buildx.build.ref"]);return r.length>0?r:void 0}resolveWarnings(e){if(!(!e&&(e=this.resolveMetadata(),!e))&&"buildx.build.warnings"in e)return e["buildx.build.warnings"]}async getDefinition(e,r){r=r||{ignoreReturnCode:!0},r.ignoreReturnCode=!0,r.env=Object.assign({},process.env,r.env||{},e.githubToken?{BUILDX_BAKE_GIT_AUTH_TOKEN:e.githubToken}:{});let i=["bake"],n,s=[],o=[...e.files||[],e.source];if(o){for(let c of o.map(l=>l?l.trim():""))if(c.length!=0){if(!Be.isValidRef(c)){s.push(c);continue}if(n)throw new Error("Only one remote bake definition can be defined");n=c}}n&&i.push(n);for(let c of s)i.push("--file",c);if(e.overrides)for(let c of e.overrides)i.push("--set",c);if(e.vars)for(let c of e.vars)i.push("--var",c);if(e.allow)for(let c of e.allow)i.push("--allow",c);e.call&&i.push("--call",e.call),e.load&&i.push("--load"),e.noCache&&i.push("--no-cache"),e.provenance&&i.push("--provenance",e.provenance),e.push&&i.push("--push"),e.sbom&&i.push("--sbom",e.sbom);let a=await this.buildx.getCommand([...i,"--print",...e.targets||[]]);return await nt.getExecOutput(a.command,a.args,r).then(c=>{if(c.stderr.length>0&&c.exitCode!=0)throw new Error(`cannot parse bake definitions: ${c.stderr.match(/(.*)\s*$/)?.[0]?.trim()??"unknown error"}`);return t.parseDefinition(c.stdout.trim())})}static parseDefinition(e){let r=JSON.parse(e);for(let i in r.target){let n=r.target[i];n.attest&&Array.isArray(n.attest)&&(n.attest=n.attest.map(s=>t.parseAttestEntry(s))),n["cache-from"]&&Array.isArray(n["cache-from"])&&(n["cache-from"]=n["cache-from"].map(s=>t.parseCacheEntry(s))),n["cache-to"]&&Array.isArray(n["cache-to"])&&(n["cache-to"]=n["cache-to"].map(s=>t.parseCacheEntry(s))),n.output&&Array.isArray(n.output)&&(n.output=n.output.map(s=>t.parseExportEntry(s))),n.secret&&Array.isArray(n.secret)&&(n.secret=n.secret.map(s=>t.parseSecretEntry(s))),n.ssh&&Array.isArray(n.ssh)&&(n.ssh=n.ssh.map(s=>t.parseSSHEntry(s)))}return r}static parseAttestEntry(e){if(typeof e!="string")return e;let r={type:""},i=bc(e,{relaxColumnCount:!0,skipEmptyLines:!0})[0];for(let n of i){let[s,o]=n.toString().split(/(?<=^[^=]+?)=/).map(a=>a.trim());switch(s){case"type":r.type=o;break;case"disabled":r.disabled=Be.parseBool(o);break;default:r[s]=o}}return r}static parseCacheEntry(e){if(typeof e!="string")return e;let r={type:""},i=bc(e,{relaxColumnCount:!0,skipEmptyLines:!0})[0];if(i.length===1&&!i[0].includes("="))return r.type="registry",r.ref=i[0],r;for(let n of i){let[s,o]=n.toString().split(/(?<=^[^=]+?)=/).map(a=>a.trim());s==="type"?r.type=o:r[s]=o}return r}static parseExportEntry(e){if(typeof e!="string")return e;let r={type:""},i=bc(e,{relaxColumnCount:!0,skipEmptyLines:!0})[0];if(i.length===1&&i[0]===e&&!e.startsWith("type="))return e!=="-"?(r.type="local",r.dest=e,r):(r.type="tar",r.dest=e,r);for(let n of i){let[s,o]=n.toString().split(/(?<=^[^=]+?)=/).map(a=>a.trim());s==="type"?r.type=o:r[s]=o}return r}static parseSecretEntry(e){if(typeof e!="string")return e;let r={},i=bc(e,{relaxColumnCount:!0,skipEmptyLines:!0})[0],n="";for(let s of i){let[o,a]=s.toString().split(/(?<=^[^=]+?)=/).map(c=>c.trim());switch(o){case"type":n=a;break;case"id":r.id=a;break;case"source":case"src":r.src=a;break;case"env":r.env=a;break}}return n==="env"&&!r.env&&(r.env=r.src,r.src=void 0),r}static parseSSHEntry(e){if(typeof e!="string")return e;let r={},[i,n]=e.split("=",2);return r.id=i,n&&(r.paths=n.split Line truncated
`)[0])}static async isHeadDetached(){return await t.exec(["branch","--show-current"]).then(e=>e.length==0)}static async getDetachedRef(){let e=await t.exec(["show","-s","--pretty=%D"]);le(`detached HEAD ref: ${e}`);let r=e.replace(/^grafted, /,"").trim();if(r==="HEAD")return await t.inferRefFromHead();let i=r.match(/^HEAD, (.*)$/);if(!i||!i[1])throw new Error(`Cannot find detached HEAD ref in "${e}"`);let n=i[1].trim();if(n.startsWith("tag: "))return`refs/tags/${n.split(":")[1].trim()}`;if(n.match(/^pull\/\d+\/(head|merge)$/))return`refs/${n}`;let o=n.match(/^[^/]+\/[^/]+, (.+)$/);if(o)return`refs/heads/${o[1].trim()}`;let a=n.match(/^[^/]+\/(.+)$/);if(a)return`refs/heads/${a[1].trim()}`;throw new Error(`Unsupported detached HEAD ref in "${e}"`)}static async exec(e=[]){return await nt.getExecOutput("git",e,{ignoreReturnCode:!0,silent:!0}).then(r=>{if(r.stderr.length>0&&r.exitCode!=0)throw new Error(r.stderr);return r.stdout.trim()})}static async inferRefFromHead(){let e=await t.findContainingRef("refs/heads/");if(e)return e;let r=await t.findContainingRef("refs/remotes/");if(r){let s=r.match(/^refs\/remotes\/[^/]+\/(.+)$/);return s?`refs/heads/${s[1]}`:r}let i=await t.exec(["tag","--contains","HEAD"]),[n]=i.split(`
`).map(s=>s.trim()).filter(s=>s.length>0);if(n)return`refs/tags/${n}`;throw new Error("Cannot infer ref from detached HEAD")}static async findContainingRef(e){let r=await t.exec(["for-each-ref","--format=%(refname)","--contains","HEAD","--sort=-committerdate",e]),[i]=r.split(`
`).map(n=>n.trim()).filter(n=>n.length>0);return i}static async commitDate(e){return new Date(await t.exec(["show","-s",'--format="%ci"',e]))}};var $it=require("crypto"),Kh=q(require("fs"),1),cg=q(require("path"),1);var K1=q(oN(),1),Xh=q(Pet(),1),Wit=q(ide(),1),AB=q(Uit(),1);var rpe=q(oN(),1);var Git=q(Iu(),1);var qit="application/vnd.oci.empty.v1+json";var Kp=class{binPath;_version;_versionOnce;constructor(e){this.binPath=e?.binPath||"cosign",this._version="",this._versionOnce=!1}async isAvailable(){let e=await nt.getExecOutput(this.binPath,[],{ignoreReturnCode:!0,silent:!0}).then(r=>r.stderr.length>0&&r.exitCode!=0?(le(`Cosign.isAvailable cmd err: ${r.stderr.trim()}`),!1):r.exitCode==0).catch(r=>(le(`Cosign.isAvailable error: ${r}`),!1));return le(`Cosign.isAvailable: ${e}`),e}async version(){return this._versionOnce?this._version:(this._versionOnce=!0,this._version=await nt.getExecOutput(this.binPath,["version","--json"],{ignoreReturnCode:!0,silent:!0}).then(e=>{if(e.stderr.length>0&&e.exitCode!=0)throw new Error(e.stderr.trim());return JSON.parse(e.stdout.trim()).gitVersion}),this._version)}async printVersion(){await nt.exec(this.binPath,["version","--json"],{failOnStdErr:!1})}async versionSatisfies(e,r){let i=r??await this.version();if(!i)return le("Cosign.versionSatisfies false: undefined version"),!1;let n=Git.satisfies(i,e)||/^[0-9a-f]{7}$/.exec(i)!==null;return le(`Cosign.versionSatisfies ${i} statisfies ${e}: ${n}`),n}static parseCommandOutput(e){let r,i,n,s;for(let o of e.split(/\r?\n/)){let a=o.trim();if(!a.startsWith("{")||!a.endsWith("}"))continue;let c;try{c=JSON.parse(a)}catch{continue}if(c&&Array.isArray(c.errors)&&c.errors.length>0&&(s=c.errors),!r&&c&&Array.isArray(c.manifests)&&c.manifests.length>0){let l=c.manifests[0];l?.artifactType===rpe.BUNDLE_V03_MEDIA_TYPE&&typeof l.digest=="string"?r=l.digest:l?.artifactType===qit&&typeof l.digest=="string"&&(i=l.digest)}if(!n&&c&&c.mediaType===rpe.BUNDLE_V03_MEDIA_TYPE&&(n=c),n&&(r||i)){s=void 0;break}}return{bundle:n,signatureManifestDigest:r||i,errors:s}}};var ipe=q(require("fs"),1);var x8=class t{buildx;constructor(e){this.buildx=e?.buildx||new gr}async getCommand(e){return await this.buildx.getCommand(["imagetools",...e])}async getInspectCommand(e){return await this.getCommand(["inspect",...e])}async getCreateCommand(e){return await this.getCommand(["create",...e])}async inspectImage(e){return await this.inspect(e,"{{json .Image}}",r=>{if(typeof r=="object"&&!Array.isArray(r)&&r!==null)return Object.prototype.hasOwnProperty.call(r,"config"),r;throw new Error("Unexpected output format")})}async inspectManifest(e){return await this.inspect(e,"{{json .Manifest}}",r=>{if(typeof r=="object"&&!Array.isArray(r)&&r!==null)return Object.prototype.hasOwnProperty.call(r,"manifests"),r;throw new Error("Unexpected output format")})}async attestationDescriptors(e){let r=await this.inspectManifest(e);if(typeof r!="object"||r===null||!("manifests"in r)||!Array.isArray(r.manifests))throw new Error(`No descriptor found for ${e.name}`);let i=r.manifests.filter(o=>o.annotations?.["vnd.docker.reference.type"]==="attestation-manifest");if(!e.platform)return i;let n=e.platform,s=new Map;for(let o of r.manifests)o.digest&&s.set(o.digest,o);return i.filter(o=>{let a=o.annotations?.["vnd.docker.reference.digest"];if(!a)return!1;let c=s.get(a);return c?c.platform?.os===n.os&&c.platform?.architecture===n.architecture&&(c.platform?.variant??"")===(n.variant??""):!1})}async attestationDigests(e){return(await this.attestationDescriptors(e)).map(r=>r.digest)}async create(e){let r=[],i=Zt.tmpName({tmpdir:Zt.tmpDir(),template:"imagetools-metadata-XXXXXX"}),n=[],s=[];for(let a of e.sources){if(a.startsWith("cwd://")){let c=a.substring(6);c.length>0&&n.push(c);continue}s.push(a)}if(e.tags)for(let a of e.tags)r.push("--tag",a);if(e.platforms)for(let a of e.platforms)r.push("--platform",a);if(e.annotations)for(let a of e.annotations)r.push("--annotation",a);e.dryRun?r.push("--dry-run"):r.push("--metadata-file",i);for(let a of n)r.push("--file",a);for(let a of s)r.push(a);let o=await this.getCreateCommand(r);if(e.skipExec){ae(`[command]${o.command} ${o.args.join(" ")}`),ae("Skipped create command");return}return await nt.getExecOutput(o.command,o.args,{ignoreReturnCode:!0,silent:e.silent}).then(a=>{if(a.stderr.length>0&&a.exitCode!=0)throw new Error(a.stderr.trim());if(!e.dryRun){if(!ipe.default.existsSync(i))return;let c=ipe.default.readFileSync(i,{encoding:"utf-8"}).trim();if(c===""||c==="null")return;let l=JSON.parse(c),u=l["containerimage.descriptor"];return u?{digest:l["containerimage.digest"]||u.digest,descriptor:u,imageNames:l["image.name"]?l["image.name"].split(",").map(f=>f.trim()):[]}:void 0}})}async inspect(e,r,i){let n=await this.getInspectCommand([e.name,"--format",r]);if(!e.retryOnManifestUnknown)return await this.execInspect(n.command,n.args,i);let s=e.retryLimit??15,o;for(let a=0;a<s;a++)try{return await this.execInspect(n.command,n.args,i)}catch(c){if(o=c,!t.isM Line truncated
${o.message}`),await new Promise(l=>setTimeout(l,Math.pow(2,a)*100))}throw o??new Error(`ImageTools inspect command failed for ${e.name}`)}async execInspect(e,r,i){return await nt.getExecOutput(e,r,{ignoreReturnCode:!0,silent:!0}).then(n=>{if(n.stderr.length>0&&n.exitCode!=0)throw new Error(n.stderr.trim());return i(JSON.parse(n.stdout))})}static isManifestUnknownError(e){return/(MANIFEST_UNKNOWN|manifest unknown|not found: not found)/i.test(e)}};var Hit="application/vnd.in-toto+json";var jit="https://fulcio.sigstore.dev",zit="https://rekor.sigstore.dev",Vit="https://timestamp.sigstore.dev",D0="https://search.sigstore.dev";var LSr="slsaprovenance1",lg=class t{cosign;imageTools;constructor(e){this.cosign=e?.cosign||new Kp,this.imageTools=e?.imageTools||new x8}async signAttestationManifests(e){if(!await this.cosign.isAvailable())throw new Error("Cosign is required to sign attestation manifests");let r={};try{if(!process.env.ACTIONS_ID_TOKEN_REQUEST_URL)throw new Error('missing "id-token" permission. Please add "permissions: id-token: write" to your workflow.');let i=this.signingEndpoints(e.noTransparencyLog);ae(`Using Sigstore signing endpoint: ${i.fulcioURL}`);let n=t.noTransparencyLog(e.noTransparencyLog),s=[];await this.cosign.versionSatisfies(">=3.0.4")?await Ri("Creating Sigstore protobuf signing config",async()=>{let o=Zt.tmpName({template:"signing-config-XXXXXX.json",tmpdir:Zt.tmpDir()}),a=["signing-config","create","--with-default-services=true",`--out=${o}`];n&&a.push("--no-default-rekor=true"),await nt.exec(this.cosign.binPath,a,{env:Object.assign({},process.env,{COSIGN_EXPERIMENTAL:"1"})}),ae(JSON.stringify(JSON.parse(Kh.default.readFileSync(o,{encoding:"utf-8"})),null,2)),s.push(`--signing-config=${o}`)}):(s.push("--use-signing-config"),n&&s.push("--tlog-upload=false"));for(let o of e.imageNames){let a=await this.imageTools.attestationDigests({name:`${o}@${e.imageDigest}`,retryOnManifestUnknown:e.retryOnManifestUnknown,retryLimit:e.retryLimit});for(let c of a){let l=`${o}@${c}`;await Ri(`Signing attestation manifest ${l}`,async()=>{let u=["sign","--yes","--oidc-provider","github-actions","--registry-referrers-mode","oci-1-1","--new-bundle-format",...s];ae(`[command]${this.cosign.binPath} ${[...u,l].join(" ")}`);let f=await nt.getExecOutput(this.cosign.binPath,["--verbose",...u,l],{ignoreReturnCode:!0,silent:!0,env:Object.assign({},process.env,{COSIGN_EXPERIMENTAL:"1"})}),h=Kp.parseCommandOutput(f.stderr.trim());if(f.exitCode!=0)if(h.errors&&h.errors.length>0){let p=h.errors.map(m=>`- [${m.code}] ${m.message} : ${m.detail}`).join(`
`);throw new Error(`Cosign sign command failed with errors:
${p}`)}else throw new Error(`Cosign sign command failed with: ${f.stderr.trim().split(/\r?\n/).filter(p=>p.length>0).pop()??"unknown error"}`);let d=t.parseBundle((0,K1.bundleFromJSON)(h.bundle));d.tlogID&&ae(`Uploaded to Rekor transparency log: ${D0}?logIndex=${d.tlogID}`),ae(`Signature manifest pushed: https://oci.dag.dev/?referrers=${l}`),r[l]={...d,imageName:o}})}}}catch(i){throw new Error(`Signing BuildKit attestation manifests failed: ${i.message}`)}return r}async verifySignedManifests(e,r){let i={};for(let[n,s]of Object.entries(e))await Ri(`Verifying signature of ${n}`,async()=>{let o=await this.verifyImageAttestation(n,{certificateIdentityRegexp:r.certificateIdentityRegexp,noTransparencyLog:r.noTransparencyLog||!s.tlogID,retryOnManifestUnknown:r.retryOnManifestUnknown});ae(`Signature manifest verified: https://oci.dag.dev/?image=${s.imageName}@${o.signatureManifestDigest}`),i[n]=o});return i}async verifyImageAttestations(e,r){let i={},n=await this.imageTools.attestationDigests({name:e,platform:r.platform,retryOnManifestUnknown:r.retryOnManifestUnknown,retryLimit:r.retryLimit});if(n.length===0)throw new Error(`No attestation manifests found for ${e}`);let s=e.split(":",1)[0];for(let o of n){let a=`${s}@${o}`,c=await this.verifyImageAttestation(a,r);ae(`Signature manifest verified: https://oci.dag.dev/?image=${s}@${c.signatureManifestDigest}`),i[a]=c}return i}async verifyImageAttestation(e,r){if(!await this.cosign.isAvailable())throw new Error("Cosign is required to verify signed manifests");let i=["verify","--experimental-oci11","--new-bundle-format","--certificate-oidc-issuer","https://token.actions.githubusercontent.com","--certificate-identity-regexp",r.certificateIdentityRegexp];if(r.noTransparencyLog&&i.push("--use-signed-timestamps","--insecure-ignore-tlog"),!r.retryOnManifestUnknown){ae(`[command]${this.cosign.binPath} ${[...i,e].join(" ")}`);let o=await nt.getExecOutput(this.cosign.binPath,["--verbose",...i,e],{ignoreReturnCode:!0,silent:!0,env:Object.assign({},process.env,{COSIGN_EXPERIMENTAL:"1"})});if(o.exitCode!==0)throw new Error(`Cosign verify command failed with: ${o.stderr.trim().split(/\r?\n/).filter(c=>c.length>0).pop()??"unknown error"}`);let a=Kp.parseCommandOutput(o.stderr.trim());return{cosignArgs:i,signatureManifestDigest:a.signatureManifestDigest}}let n=r.retryLimit??15,s;ae(`[command]${this.cosign.binPath} ${[...i,e].join(" ")}`);for(let o=0;o<n;o++){let a=await nt.getExecOutput(this.cosign.binPath,["--verbose",...i,e],{ignoreReturnCode:!0,silent:!0,env:Object.assign({},process.env,{COSIGN_EXPERIMENTAL:"1"})}),c=Kp.parseCommandOutput(a.stderr.trim());if(a.exitCode===0)return{cosignArgs:i,signatureManifestDigest:c.signatureManifestDigest};if(c.errors&&c.errors.length>0){let l=c.errors.map(u=>`- [${u.code}] ${u.message} : ${u.detail}`).join(`
`);if(s=new Error(`Cosign verify command failed with errors:
${l}`),c.errors.some(u=>u.code==="MANIFEST_UNKNOWN"))ae(`Cosign verify command failed with MANIFEST_UNKNOWN, retrying attempt ${o+1}/${n}...
${l}`),await new Promise(u=>setTimeout(u,Math.pow(2,o)*100));else throw s}else throw new Error(`Cosign verify command failed with: ${a.stderr.trim().split(/\r?\n/).filter(l=>l.length>0).pop()??"unknown error"}`)}throw s}async signProvenanceBlobs(e){let r={};try{if(!process.env.ACTIONS_ID_TOKEN_REQUEST_URL)throw new Error('missing "id-token" permission. Please add "permissions: id-token: write" to your workflow.');let i=this.signingEndpoints(e.noTransparencyLog);ae(`Using Sigstore signing endpoint: ${i.fulcioURL}`);let n=t.getProvenanceBlobs(e);for(let s of Object.keys(n))await Ri(`Signing ${s}`,async()=>{let o=n[s],a=cg.default.join(cg.default.dirname(s),`${e.name??"provenance"}.sigstore.json`),c=t.getProvenanceSubjects(o);if(c.length===0){Kr(`No subjects found in provenance ${s}, skip signing.`);return}let l=await t.signPayload({data:o,type:Hit},i),u=t.parseBundle(l);ae("Provenance blob signed for:");for(let f of c){let[h,d]=Object.entries(f.digest)[0]||[];ae(` - ${f.name} (${h}:${d})`)}u.tlogID&&ae(`Attestation signature uploaded to Rekor transparency log: ${D0}?logIndex=${u.tlogID}`),ae(`Writing Sigstore bundle to: ${a}`),Kh.default.writeFileSync(a,JSON.stringify(u.payload,null,2),{encoding:"utf-8"}),r[s]={...u,bundlePath:a,subjects:c}})}catch(i){throw new Error(`Signing BuildKit provenance blobs failed: ${i.message}`)}return r}async verifySignedArtifacts(e,r){let i={};if(!await this.cosign.isAvailable())throw new Error("Cosign is required to verify signed artifacts");for(let[n,s]of Object.entries(e)){let o=cg.default.dirname(n);await Ri(`Verifying signature bundle ${s.bundlePath}`,async()=>{for(let a of s.subjects){let c=cg.default.join(o,a.name);ae(`Verifying signed artifact ${c}`);let l=["verify-blob-attestation","--new-bundle-format","--certificate-oidc-issuer","https://token.actions.githubusercontent.com","--certificate-identity-regexp",r.certificateIdentityRegexp,"--type",r.predicateType??LSr];(r.noTransparencyLog||!s.tlogID)&&l.push("--use-signed-timestamps","--insecure-ignore-tlog");let u=await nt.getExecOutput(this.cosign.binPath,[...l,"--bundle",s.bundlePath,c],{ignoreReturnCode:!0});if(u.stderr.length>0&&u.exitCode!=0)throw new Error(u.stderr);i[c]={bundlePath:s.bundlePath,cosignArgs:l}}})}return i}async verifyArtifact(e,r,i){ae("Verifying keyless verification bundle signature");let n=JSON.parse(Kh.default.readFileSync(r,"utf-8")),s=(0,K1.bundleFromJSON)(n);ae("Fetching Sigstore TUF trusted root metadata");let o=await Wit.getTrustedRoot(),a=(0,AB.toTrustMaterial)(o);try{ae("Verifying artifact signature");let c=(0,AB.toSignedEntity)(s,Kh.default.readFileSync(e)),l=t.parseCertificate(s),u=s.verificationMaterial.tlogEntries,f=u.length>0?u[0].logIndex:void 0;if(i?.subjectAlternativeName&&i?.subjectAlternativeName instanceof RegExp){let p=l.subjectAltName?.replace(/^uri:/i,"");if(p){if(!p.match(i.subjectAlternativeName))throw new Error(`Signing certificate subjectAlternativeName "${p}" does not match expected pattern`)}else throw new Error("Signing certificate does not contain subjectAltName")}let d=new AB.Verifier(a).verify(c,{subjectAlternativeName:i?.subjectAlternativeName&&typeof i.subjectAlternativeName=="string"?i.subjectAlternativeName:void 0,extensions:i?.issuer?{issuer:i.issuer}:void 0});return le(`Sigstore.verifyArtifact signer: ${JSON.stringify(d)}`),{payload:n,certificate:l.toString(),tlogID:f}}catch(c){throw new Error(`Failed to verify artifact signature: ${c}`)}}signingEndpoints(e){return e=t.noTransparencyLog(e),ae(`Upload to transparency log: ${e?"disabled":"enabled"}`),{fulcioURL:jit,rekorURL:e?void 0:zit,tsaServerURL:Vit}}static noTransparencyLog(e){return e??Ot.context.payload.repository?.private}static getProvenanceBlobs(e){let r=cg.default.join(e.localExportDir,"provenance.json");if(Kh.default.existsSync(r))return{[r]:Kh.default.readFileSync(r)};let i=Kh.default.readdirSync(e.localExportDir,{withFileTypes:!0}),n=i.filter(s=>s.isDirectory());if(n.length>0&&n.length===i.length&&n.every(s=>Kh.default.existsSync(cg.default.join(e.localExportDir,s.name,"provenance.json")))){let s={};for(let o of n){let a=cg.default.join(e.localExportDir,o.name,"provenance.json");s[a]=Kh.default.readFileSync(a)}return s}throw new Error(`No valid provenance.json found in ${e.localExportDir}`)}static getProvenanceSubjects(e){return JSON.parse(e.toString()).subject.map(i=>({name:i.name,digest:i.digest}))}static async signPayload(e,r,i,n){let s=[],o=new Xh.FulcioSigner({identityProvider:new Xh.CIContextProvider("sigstore"),fulcioBaseURL:r.fulcioURL,timeout:i,retry:n});return r.rekorURL&&s.push(new Xh.RekorWitness({rekorBaseURL:r.rekorURL,fetchOnConflict:!0,timeout:i,retry:n})),r.tsaServerURL&&s.push(new Xh.TSAWitness({tsaBaseURL:r.tsaServerURL,timeout:i,retry:n})),new Xh.DSSEBundleBuilder({signer:o,witnesses:s}).create(e)}static parseBundle(e){let r=t.parseCertificate(e),i=e.verificationMaterial.tlogEntries,n=i.length>0?i[0].logIndex:void 0;return{payload:(0,K1.bundleToJSON)(e),certificate:r.toString() Line truncated
`)){let[l,...u]=c.split(":"),f=l.toLowerCase(),h=u.map(d=>d.trim()).join(":");if(l.length!=0)switch(!0){case f=="name":i=void 0,r.name==null?r.name=h:(s&&n.gcPolicy&&(n.gcPolicy.push(s),s=void 0),n.name&&r.nodes.push(n),n={name:h});break;case f=="driver":i=void 0,r.driver=h;break;case f=="last activity":i=void 0,r.lastActivity=new Date(h);break;case f=="endpoint":i=void 0,n.endpoint=h;break;case f=="driver options":i=void 0,n["driver-opts"]=(h.match(/([a-zA-Z0-9_.]+)="([^"]*)"/g)||[]).map(d=>d.replace(/^(.*)="(.*)"$/g,"$1=$2"));break;case f=="status":i=void 0,n.status=h;break;case f=="buildkit daemon flags":case f=="flags":i=void 0,n["buildkitd-flags"]=h;break;case f=="buildkit version":case f=="buildkit":i=void 0,n.buildkit=h;break;case f=="platforms":{if(i=void 0,!h)break;let d=[];if(h.includes("*"))for(let p of h.split(", "))p.includes("*")&&d.push(p.replace(/\*/g,""));else d=h.split(", ");n.platforms=d.join(",");break}case f=="features":i="features",n.features={};break;case f=="labels":i="label",n.labels={};break;case f=="devices":i="devices",n.devices=n.devices||[];break;case f.startsWith("gc policy rule#"):i="gcpolicy",n.gcPolicy&&s&&(n.gcPolicy.push(s),s=void 0);break;case f.startsWith("file#"):i="file",a=l.split("#")[1],n.files=n.files||{},n.files[a]="";break;default:switch(i&&i!=="devices"&&n.devices&&o&&(n.devices.push(o),o=void 0),i||""){case"features":{n.features=n.features||{},n.features[l.trim()]=!!h;break}case"label":{n.labels=n.labels||{},n.labels[l.trim()]=h;break}case"devices":{switch(f.trim()){case"name":{n.devices&&o&&n.devices.push(o),o={},o.name=h;break}case"on-demand":{o&&h&&(o.onDemand=h=="true");break}case"automatically allowed":{o&&h&&(o.autoAllow=h=="true");break}case"annotations":{o&&(o.annotations=o.annotations||{});break}default:o&&o.annotations&&(o.annotations[l.trim()]=h)}break}case"gcpolicy":{switch(n.gcPolicy=n.gcPolicy||[],s=s||{},f.trim()){case"all":{s.all=h=="true";break}case"filters":{h&&(s.filter=h.split(","));break}case"keep duration":{s.keepDuration=h;break}case"keep bytes":{s.keepBytes=h;break}case"reserved space":{s.reservedSpace=h;break}case"max used space":{s.maxUsedSpace=h;break}case"min free space":{s.minFreeSpace=h;break}}break}case"file":{a&&n.files&&(n.files[a].length>0&&(n.files[a]+=`
`),n.files[a]+=c.replace(/^\s>\s?/,""));break}}}}return o&&n.devices&&n.devices.push(o),s&&n.gcPolicy&&n.gcPolicy.push(s),n.name&&r.nodes.push(n),r}};var Jit=q(Iu(),1);var R8=q(require("fs"),1);var T8=class{resolveFromString(e){return this.resolve(e,!1)}resolveFromFile(e){return this.resolve(e,!0)}resolve(e,r){if(r){if(!R8.default.existsSync(e))throw new Error(`config file ${e} not found`);e=R8.default.readFileSync(e,{encoding:"utf-8"})}let i=Zt.tmpName({tmpdir:Zt.tmpDir()});return R8.default.writeFileSync(i,e),i}};var N8=class{buildx;config;constructor(e){this.config=new T8,this.buildx=e?.buildx||new gr}async getVersion(e){if(!e.buildkit&&e.name)try{return await this.getVersionWithinImage(e.name)}catch(r){Kr(r)}return e.buildkit}async getVersionWithinImage(e){return le(`BuildKit.getVersionWithinImage nodeName: ${e}`),tn.getExecOutput(["inspect","--format","{{.Config.Image}}",`${gr.containerNamePrefix}${e}`],{ignoreReturnCode:!0,silent:!0}).then(r=>{if(r.exitCode==0&&r.stdout.length>0)return le(`BuildKit.getVersionWithinImage image: ${r.stdout.trim()}`),tn.getExecOutput(["run","--rm",r.stdout.trim(),"--version"],{ignoreReturnCode:!0,silent:!0}).then(i=>{if(i.exitCode==0&&i.stdout.length>0)return`${r.stdout.trim()} => ${i.stdout.trim()}`;if(i.stderr.length>0)throw new Error(r.stderr.trim());return i.stdout.trim()});if(r.stderr.length>0)throw new Error(r.stderr.trim());return r.stdout.trim()})}async versionSatisfies(e,r,i){i||(i=await new yB({buildx:this.buildx}).inspect(e));for(let n of i.nodes){let s=n.buildkit;if(le(`BuildKit.versionSatisfies ${s}: ${r}`),!s)try{s=await this.getVersionWithinImage(n.name||"")}catch{return le(`BuildKit.versionSatisfies ${n.name}: can't get version`),!1}if(le(`BuildKit.versionSatisfies ${n.name}: version ${s}`),i.driver=="docker"&&!s.endsWith("-moby")||!Jit.satisfies(s.replace(/-moby$/,""),r))return!1}return!0}};var D8=class t{_version;_versionOnce;_standalone;constructor(e){this._standalone=e?.standalone,this._version="",this._versionOnce=!1}async isStandalone(){let e=this._standalone??!await tn.isAvailable();return le(`Compose.isStandalone: ${e}`),e}async getCommand(e){let r=await this.isStandalone();return{command:r?"compose":"docker",args:r?e:["compose",...e]}}async isAvailable(){let e=await this.getCommand([]),r=await nt.getExecOutput(e.command,e.args,{ignoreReturnCode:!0,silent:!0}).then(i=>i.stderr.length>0&&i.exitCode!=0?(le(`Compose.isAvailable cmd err: ${i.stderr.trim()}`),!1):i.exitCode==0).catch(i=>(le(`Compose.isAvailable error: ${i}`),!1));return le(`Compose.isAvailable: ${r}`),r}async version(){if(this._versionOnce)return this._version;this._versionOnce=!0;let e=await this.getCommand(["version"]);return this._version=await nt.getExecOutput(e.command,e.args,{ignoreReturnCode:!0,silent:!0}).then(r=>{if(r.stderr.length>0&&r.exitCode!=0)throw new Error(r.stderr.trim());return t.parseVersion(r.stdout.trim())}),this._version}async printVersion(){let e=await this.getCommand(["version"]);await nt.exec(e.command,e.args,{failOnStdErr:!1})}static parseVersion(e){let r=/\sv?([0-9a-f]{7}|[0-9.]+)/.exec(e);if(!r)throw new Error("Cannot parse compose version");return r[1]}};var Zp=q(require("fs"),1),ed=q(require("os"),1),EB=q(require("path"),1);var P8=q(Iu(),1),spe=q(require("util"),1);var O8=class t{standalone;githubToken;constructor(e){this.standalone=e?.standalone,this.githubToken=e?.githubToken||process.env.GITHUB_TOKEN}async download(e,r){let i=await t.getDownloadVersion(e);le(`Install.download version: ${i.version}`);let n=await t.getRelease(i,this.githubToken);le(`Install.download release tag name: ${n.tag_name}`);let s=await this.vspec(n.tag_name);le(`Install.download vspec: ${s}`);let o=P8.clean(s)||"";if(!P8.valid(o))throw new Error(`Invalid Compose version "${s}".`);let a=new Kn({htcName:i.key!="official"?`compose-dl-bin-${i.key}`:"compose-dl-bin",htcVersion:s,baseCacheDir:EB.default.join(ed.default.homedir(),".bin","docker-compose"),cacheFile:ed.default.platform()=="win32"?"docker-compose.exe":"docker-compose",ghaNoCache:r}),c=await a.find();if(c)return ae(`Compose binary found in ${c}`),c;let l=spe.format(i.downloadURL,s,this.filename());ae(`Downloading ${l}`);let u=await Kc(l,void 0,this.githubToken);le(`Install.download htcDownloadPath: ${u}`);let f=await a.save(u);return ae(`Cached to ${f}`),f}async installStandalone(e,r){ae("Standalone mode"),r=r||Zt.tmpDir();let i=EB.default.join(r,"compose-bin-standalone");Zp.default.existsSync(i)||Zp.default.mkdirSync(i,{recursive:!0});let n=ed.default.platform()=="win32"?"compose.exe":"compose",s=EB.default.join(i,n);return Zp.default.copyFileSync(e,s),ae("Fixing perms"),Zp.default.chmodSync(s,"0755"),af(i),ae("Added Compose to PATH"),ae(`Binary path: ${s}`),s}async installPlugin(e,r){ae("Docker plugin mode"),r=r||tn.configDir;let i=EB.default.join(r,"cli-plugins");Zp.default.existsSync(i)||Zp.default.mkdirSync(i,{recursive:!0});let n=ed.default.platform()=="win32"?"docker-compose.exe":"docker-compose",s=EB.default.join( Line truncated
# syntax=docker/dockerfile:1
ARG GO_VERSION="1.24"
ARG ALPINE_VERSION="3.22"
FROM --platform=$BUILDPLATFORM tonistiigi/xx:1.7.0 AS xx
FROM --platform=$BUILDPLATFORM golang:\${GO_VERSION}-alpine\${ALPINE_VERSION} AS builder-base
COPY --from=xx / /
RUN apk add --no-cache git
ENV GOTOOLCHAIN=auto
ENV CGO_ENABLED=0
WORKDIR /src
RUN --mount=type=cache,target=/go/pkg/mod \\
--mount=type=bind,source=go.mod,target=go.mod \\
--mount=type=bind,source=go.sum,target=go.sum \\
go mod download
FROM builder-base AS version
RUN --mount=type=bind,target=. <<'EOT'
git rev-parse HEAD 2>/dev/null || {
echo >&2 "Failed to get git revision, make sure --build-arg BUILDKIT_CONTEXT_KEEP_GIT_DIR=1 is set when building from Git directly"
exit 1
}
set -ex
export PKG=sigs.k8s.io BUILDDATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") TREESTATE=$(if ! git diff --no-ext-diff --quiet --exit-code; then echo dirty; else echo clean; fi) VERSION=$(git describe --match 'v[0-9]*' --dirty='.m' --always --tags) COMMIT=$(git rev-parse HEAD)$(if ! git diff --no-ext-diff --quiet --exit-code; then echo .m; fi);
echo "-X \${PKG}/release-utils/version.gitVersion=\${VERSION} -X \${PKG}/release-utils/version.gitCommit=\${COMMIT} -X \${PKG}/release-utils/version.gitTreeState=\${TREESTATE} -X \${PKG}/release-utils/version.buildDate=\${BUILDDATE}" > /tmp/.ldflags;
echo -n "\${VERSION}" > /tmp/.version;
EOT
FROM builder-base AS builder
ARG TARGETPLATFORM
RUN --mount=type=bind,target=. \\
--mount=type=cache,target=/root/.cache,id=cosign-$TARGETPLATFORM \\
--mount=source=/tmp/.ldflags,target=/tmp/.ldflags,from=version \\
--mount=type=cache,target=/go/pkg/mod <<EOT
set -ex
xx-go build -trimpath -ldflags "-s -w $(cat /tmp/.ldflags)" -o /out/cosign ./cmd/cosign
xx-verify --static /out/cosign
EOT
FROM scratch
COPY --from=builder /out /
`;var k8=class t{githubToken;buildx;sigstore;constructor(e){this.githubToken=e?.githubToken||process.env.GITHUB_TOKEN,this.buildx=e?.buildx||new gr,this.sigstore=e?.sigstore||new lg}async download(e){let r=await t.getDownloadVersion(e.version);le(`Install.download version: ${r.version}`);let i=await t.getRelease(r,this.githubToken);le(`Install.download release tag name: ${i.tag_name}`);let n=await this.vspec(i.tag_name);le(`Install.download vspec: ${n}`);let s=wB.clean(n)||"";if(!wB.valid(s))throw new Error(`Invalid Cosign version "${n}".`);let o=new Kn({htcName:"cosign-dl-bin",htcVersion:n,baseCacheDir:bB.default.join(zu.default.homedir(),".bin"),cacheFile:zu.default.platform()=="win32"?"cosign.exe":"cosign",ghaNoCache:e.ghaNoCache}),a=await o.find();if(a)return ae(`Cosign binary found in ${a}`),a;let c=ope.format(r.downloadURL,n,this.filename());ae(`Downloading ${c}`);let l=await Kc(c,void 0,this.githubToken);le(`Install.download htcDownloadPath: ${l}`),e.verifySignature&&wB.satisfies(n,">=3.0.1")&&await this.verifySignature(l,c);let u=await o.save(l,e.skipState);return ae(`Cached to ${u}`),u}async build(e,r,i){let n=await this.vspec(e);le(`Install.build vspec: ${n}`);let s=new Kn({htcName:"cosign-build-bin",htcVersion:n,baseCacheDir:bB.default.join(zu.default.homedir(),".bin"),cacheFile:zu.default.platform()=="win32"?"cosign.exe":"cosign",ghaNoCache:r}),o=await s.find();if(o)return ae(`Cosign binary found in ${o}`),o;let a=bB.default.join(Zt.tmpDir(),"cosign-build-cache"),c=await this.buildCommand(e,a),l=await nt.getExecOutput(c.command,c.args,{ignoreReturnCode:!0,input:Buffer.from(Yit)}).then(f=>{if(f.stderr.length>0&&f.exitCode!=0)throw new Error(`build failed with: ${f.stderr.match(/(.*)\s*$/)?.[0]?.trim()??"unknown error"}`);return`${a}/cosign`}),u=await s.save(l,i);return ae(`Cached to ${u}`),u}async install(e,r){r=r||Zt.tmpDir();let i=bB.default.join(r,"cosign-bin");X1.default.existsSync(i)||X1.default.mkdirSync(i,{recursive:!0});let n=zu.default.platform()=="win32"?"cosign.exe":"cosign",s=bB.default.join(i,n);return X1.default.copyFileSync(e,s),ae("Fixing perms"),X1.default.chmodSync(s,"0755"),af(i),ae("Added Cosign to PATH"),ae(`Binary path: ${s}`),s}async buildCommand(e,r){let i=await new gr({standalone:!0}).isAvailable(),n=await new gr({standalone:!1}).isAvailable(),s=!1;if(await this.buildx.isStandalone()&&i)le("Install.buildCommand: Buildx standalone found, build with it"),s=!0;else if(!await this.buildx.isStandalone()&&n)le("Install.buildCommand: Buildx plugin found, build with it"),s=!1;else if(i)le("Install.buildCommand: Buildx plugin not found, but standalone found so trying to build with it"),s=!0;else if(n)le("Install.buildCommand: Buildx standalone not found, but plugin found so trying to build with it"),s=!1;else throw new Error(`Neither buildx standalone or plugin have been found to build from ref ${e}`);let o=["build","--platform","local","--build-arg","BUILDKIT_CONTEXT_KEEP_GIT_DIR=1","--output",`type=local,dest=${r}`];return process.env.GIT_AUTH_TOKEN&&o.push("--secret","id=GIT_AUTH_TOKEN"),o.push("-f-",e),await new gr({standalone:s}).getCommand(o)}async verifySignature(e,r){let i=`${r}.sigstore.json`;ae(`Downloading keyless verification bundle at ${i}`);let n=await Kc(i,void 0,this.githubToken);le(`Install.verifySignature bundlePath: ${n}`);let s=await this.sigstore.verifyArtifact(e,n,{subjectAlternativeName:"keyless@projectsigstore.iam.gserviceaccount.com",issuer:"https://accounts.google.com"});ae(`Cosign binary signature verified! ${s.tlogID?`${D0}?logIndex=${s.tlogID}`:""}`)}filename(){let e;switch(zu.default.arch()){case"x64":{e="amd64";break}case"ppc64":{e="ppc64le";break}default:{e=zu.default.arch();break}}let r=zu.default.platform()=="win32"?"windows":zu.default.platform(),i=zu.default.platform()=="win32"?".exe":"";return ope.format("cosign-%s-%s%s",r,e,i)}async vspec(e){if(!Be.isValidRef(e)){let l=e.replace(/^v+|v+$/g,"");return ae(`Use ${l} version spec cache key for ${e}`),l}let[r,i]=e.split("#");i.length==0&&(i="master");let n;i.match(/^[0-9a-fA-F]{40}$/)?n=i:n=await MI.remoteSha(r,i,process.env.GIT_AUTH_TOKEN);let[s,o]=r.substring(19).split("/"),a=`${s}/${Be.trimSuffix(o,".git")}/${n}`,c=Be.hash(a);return ae(`Use ${c} version spec cache key for ${a}`),c}static async getDownloadVersion(e){return{version:e,downloadURL:"https://github.com/sigstore/cosign/releases/download/v%s/%s",contentOpts:{owner:"docker",repo:"actions-toolkit",ref:"main",path:".github/cosign-releases.json"}}}static async getRelease(e,r){let n=await new Ot({token:r}).releases("Cosign",e.contentOpts);if(!n[e.version])throw new Error(`Cannot find Cosign release ${e.version} in releases JSON`);return n[e.version]}};var Kit=q(Iu(),1);var Q8=class{binPath;_version;_versionOnce;constructor(e){this.binPath=e?.binPath||"regctl",this._version="",this._versionOnce=!1}async blobGet(e){return await nt.getExecOutput(this.binPath,["blob","get",e.repository,e.digest],{ignoreReturnCode:!0,silent:!0}).then(r=>{if(r.st Line truncated
`)[0]?.trim()):f.stderr.length>0&&(o=new Error(`buildx failed with: ${f.stderr.match(/(.*)\s*$/)?.[0]?.trim()??"unknown error"}`)))});let a=r.buildxBuild.resolveImageID(),c=r.buildxBuild.resolveMetadata(),l=r.buildxBuild.resolveDigest(c);a&&await Ri("ImageID",async()=>{ae(a),wO("imageid",a)}),l&&await Ri("Digest",async()=>{ae(l),wO("digest",l)}),c&&await Ri("Metadata",async()=>{let f=JSON.stringify(c,null,2);ae(f),wO("metadata",f)});let u;if(await Ri("Reference",async()=>{u=await jSr(r,t,e.builder),u?(ae(u),unt(u)):ae("No build reference found")}),zSr()){let f=r.buildxBuild.resolveWarnings(c);if(u&&f&&f.length>0){let h=await gr.convertWarningsToGitHubAnnotations(f,[u]);le(`annotations: ${JSON.stringify(h,null,2)}`),h&&h.length>0&&await Ri(`Generating GitHub annotations (${h.length} build checks found)`,async()=>{for(let d of h)Kr(d.message,d)})}}if(await Ri("Check build summary support",async()=>{VSr()?e.call&&e.call!=="build"?ae(`Build summary skipped for ${e.call} subrequest`):Ot.isGHES?ae("Build summary is not yet supported on GHES"):await r.buildx.versionSatisfies(">=0.23.0")?u?(ae("Build summary supported!"),fnt()):ae("Build summary requires a build reference"):ae("Build summary requires Buildx >= 0.23.0"):ae("Build summary disabled")}),o)throw o},async()=>{ont&&await Ri("Generating build summary",async()=>{try{let t=$Sr(),e;t&&(e=WSr());let i=await new MF().export({refs:upe?[upe]:[]});ae(`Build record written to ${i.dockerbuildFilename} (${Be.formatFileSize(i.dockerbuildSize)})`);let n;t&&(n=await Yq.upload({filename:i.dockerbuildFilename,retentionDays:e})),await n3.writeBuildSummary({exportRes:i,uploadRes:n,inputs:snt,driver:int,endpoint:nnt})}catch(t){Kr(t.message)}}),r2.length>0&&await Ri(`Removing temp folder ${r2}`,async()=>{try{dnt.rmSync(r2,{recursive:!0})}catch{Kr(`Failed to remove temp folder ${r2}`)}})});async function jSr(t,e,r){let i=t.buildxBuild.resolveRef();if(i)return i;r||(r=(await t.builder.inspect()).name);let n=gr.refs({dir:gr.refsDir,builderName:r,since:e});return Object.keys(n).length>0?Object.keys(n)[0]:""}function zSr(){return process.env.DOCKER_BUILD_CHECKS_ANNOTATIONS?Be.parseBool(process.env.DOCKER_BUILD_CHECKS_ANNOTATIONS):!0}function VSr(){return process.env.DOCKER_BUILD_SUMMARY?Be.parseBool(process.env.DOCKER_BUILD_SUMMARY):!0}function $Sr(){return process.env.DOCKER_BUILD_RECORD_UPLOAD?Be.parseBool(process.env.DOCKER_BUILD_RECORD_UPLOAD):!0}function WSr(){let t=process.env.DOCKER_BUILD_RECORD_RETENTION_DAYS;if(t){let e=parseInt(t);if(isNaN(e))throw new Error(`Invalid build record retention days: ${t}`);return e}}
/*! Bundled license information:
undici/lib/web/fetch/body.js:
(*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> *)
undici/lib/web/websocket/frame.js:
(*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)
tmp/lib/tmp.js:
(*!
* Tmp
*
* Copyright (c) 2011-2017 KARASZI Istvan <github@spam.raszi.hu>
*
* MIT Licensed
*)
normalize-path/index.js:
(*!
* normalize-path <https://github.com/jonschlinkert/normalize-path>
*
* Copyright (c) 2014-2018, Jon Schlinkert.
* Released under the MIT License.
*)
archiver/lib/error.js:
archiver/lib/core.js:
(**
* Archiver Core
*
* @ignore
* @license [MIT]{@link https://github.com/archiverjs/node-archiver/blob/master/LICENSE}
* @copyright (c) 2012-2014 Chris Talkington, contributors.
*)
crc-32/crc32.js:
(*! crc32.js (C) 2014-present SheetJS -- http://sheetjs.com *)
zip-stream/index.js:
(**
* ZipStream
*
* @ignore
* @license [MIT]{@link https://github.com/archiverjs/node-zip-stream/blob/master/LICENSE}
* @copyright (c) 2014 Chris Talkington, contributors.
*)
archiver/lib/plugins/zip.js:
(**
* ZIP Format Plugin
*
* @module plugins/zip
* @license [MIT]{@link https://github.com/archiverjs/node-archiver/blob/master/LICENSE}
* @copyright (c) 2012-2014 Chris Talkington, contributors.
*)
archiver/lib/plugins/tar.js:
(**
* TAR Format Plugin
*
* @module plugins/tar
* @license [MIT]{@link https://github.com/archiverjs/node-archiver/blob/master/LICENSE}
* @copyright (c) 2012-2014 Chris Talkington, contributors.
*)
archiver/lib/plugins/json.js:
(**
* JSON Format Plugin
*
* @module plugins/json
* @license [MIT]{@link https://github.com/archiverjs/node-archiver/blob/master/LICENSE}
* @copyright (c) 2012-2014 Chris Talkington, contributors.
*)
archiver/index.js:
(**
* Archiver Vending
*
* @ignore
* @license [MIT]{@link https://github.com/archiverjs/node-archiver/blob/master/LICENSE}
* @copyright (c) 2012-2014 Chris Talkington, contributors.
*)
he/he.js:
(*! https://mths.be/he v1.2.0 by @mathias | MIT license *)
negotiator/index.js:
(*!
* negotiator
* Copyright(c) 2012 Federico Romero
* Copyright(c) 2012-2014 Isaac Z. Schlueter
* Copyright(c) 2015 Douglas Christopher Wilson
* MIT Licensed
*)
imurmurhash/imurmurhash.js:
(**
* @preserve
* JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013)
*
* @author <a href="mailto:jensyt@gmail.com">Jens Taylor</a>
* @see http://github.com/homebrewing/brauhaus-diff
* @author <a href="mailto:gary.court@gmail.com">Gary Court</a>
* @see http://github.com/garycourt/murmurhash-js
* @author <a href="mailto:aappleby@gmail.com">Austin Appleby</a>
* @see http://sites.google.com/site/murmurhash/
*)
make-fetch-happen/lib/fetch.js:
make-fetch-happen/lib/fetch.js:
(**
* @license
* Copyright (c) 2010-2012 Mikeal Rogers
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an "AS
* IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*)
@octokit/request-error/dist-src/index.js:
(* v8 ignore else -- @preserve -- Bug with vitest coverage where it sees an else branch that doesn't exist *)
@octokit/request/dist-bundle/index.js:
(* v8 ignore next -- @preserve *)
(* v8 ignore else -- @preserve *)
js-yaml/dist/js-yaml.mjs:
(*! js-yaml 4.1.1 https://github.com/nodeca/js-yaml @license MIT *)
*/
//# sourceMappingURL=index.cjs.map
Generated Vendored
+7
View File
@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../node_modules/tunnel/lib/tunnel.js", "../node_modules/tunnel/index.js", "../node_modules/undici/lib/core/symbols.js", "../node_modules/undici/lib/core/errors.js", "../node_modules/undici/lib/core/constants.js", "../node_modules/undici/lib/core/tree.js", "../node_modules/undici/lib/core/util.js", "../node_modules/undici/lib/core/diagnostics.js", "../node_modules/undici/lib/core/request.js", "../node_modules/undici/lib/dispatcher/dispatcher.js", "../node_modules/undici/lib/dispatcher/dispatcher-base.js", "../node_modules/undici/lib/util/timers.js", "../node_modules/undici/lib/core/connect.js", "../node_modules/undici/lib/llhttp/utils.js", "../node_modules/undici/lib/llhttp/constants.js", "../node_modules/undici/lib/llhttp/llhttp-wasm.js", "../node_modules/undici/lib/llhttp/llhttp_simd-wasm.js", "../node_modules/undici/lib/web/fetch/constants.js", "../node_modules/undici/lib/web/fetch/global.js", "../node_modules/undici/lib/web/fetch/data-url.js", "../node_modules/undici/lib/web/fetch/webidl.js", "../node_modules/undici/lib/web/fetch/util.js", "../node_modules/undici/lib/web/fetch/symbols.js", "../node_modules/undici/lib/web/fetch/file.js", "../node_modules/undici/lib/web/fetch/formdata.js", "../node_modules/undici/lib/web/fetch/formdata-parser.js", "../node_modules/undici/lib/web/fetch/body.js", "../node_modules/undici/lib/dispatcher/client-h1.js", "../node_modules/undici/lib/dispatcher/client-h2.js", "../node_modules/undici/lib/handler/redirect-handler.js", "../node_modules/undici/lib/interceptor/redirect-interceptor.js", "../node_modules/undici/lib/dispatcher/client.js", "../node_modules/undici/lib/dispatcher/fixed-queue.js", "../node_modules/undici/lib/dispatcher/pool-stats.js", "../node_modules/undici/lib/dispatcher/pool-base.js", "../node_modules/undici/lib/dispatcher/pool.js", "../node_modules/undici/lib/dispatcher/balanced-pool.js", "../node_modules/undici/lib/dispatcher/agent.js", "../node_modules/undici/lib/dispatcher/proxy-agent.js", "../node_modules/undici/lib/dispatcher/env-http-proxy-agent.js", "../node_modules/undici/lib/handler/retry-handler.js", "../node_modules/undici/lib/dispatcher/retry-agent.js", "../node_modules/undici/lib/api/readable.js", "../node_modules/undici/lib/api/util.js", "../node_modules/undici/lib/api/api-request.js", "../node_modules/undici/lib/api/abort-signal.js", "../node_modules/undici/lib/api/api-stream.js", "../node_modules/undici/lib/api/api-pipeline.js", "../node_modules/undici/lib/api/api-upgrade.js", "../node_modules/undici/lib/api/api-connect.js", "../node_modules/undici/lib/api/index.js", "../node_modules/undici/lib/mock/mock-errors.js", "../node_modules/undici/lib/mock/mock-symbols.js", "../node_modules/undici/lib/mock/mock-utils.js", "../node_modules/undici/lib/mock/mock-interceptor.js", "../node_modules/undici/lib/mock/mock-client.js", "../node_modules/undici/lib/mock/mock-pool.js", "../node_modules/undici/lib/mock/pluralizer.js", "../node_modules/undici/lib/mock/pending-interceptors-formatter.js", "../node_modules/undici/lib/mock/mock-agent.js", "../node_modules/undici/lib/global.js", "../node_modules/undici/lib/handler/decorator-handler.js", "../node_modules/undici/lib/interceptor/redirect.js", "../node_modules/undici/lib/interceptor/retry.js", "../node_modules/undici/lib/interceptor/dump.js", "../node_modules/undici/lib/interceptor/dns.js", "../node_modules/undici/lib/web/fetch/headers.js", "../node_modules/undici/lib/web/fetch/response.js", "../node_modules/undici/lib/web/fetch/dispatcher-weakref.js", "../node_modules/undici/lib/web/fetch/request.js", "../node_modules/undici/lib/web/fetch/index.js", "../node_modules/undici/lib/web/fileapi/symbols.js", "../node_modules/undici/lib/web/fileapi/progressevent.js", "../node_modules/undici/lib/web/fileapi/encoding.js", "../node_modules/undici/lib/web/fileapi/util.js", "../node_modules/undici/lib/web/fileapi/filereader.js", "../node_modules/undici/lib/web/cache/symbols.js", "../node_modules/undici/lib/web/cache/util.js", "../node_modules/undici/lib/web/cache/cache.js", "../node_modules/undici/lib/web/cache/cachestorage.js", "../node_modules/undici/lib/web/cookies/constants.js", "../node_modules/undici/lib/web/cookies/util.js", "../node_modules/undici/lib/web/cookies/parse.js", "../node_modules/undici/lib/web/cookies/index.js", "../node_modules/undici/lib/web/websocket/events.js", "../node_modules/undici/lib/web/websocket/constants.js", "../node_modules/undici/lib/web/websocket/symbols.js", "../node_modules/undici/lib/web/websocket/util.js", "../node_modules/undici/lib/web/websocket/frame.js", "../node_modules/undici/lib/web/websocket/connection.js", "../node_modules/undici/lib/web/websocket/permessage-deflate.js", "../node_modules/undici/lib/web/websocket/receiver.js", "../node_modules/undici/lib/web/websocket/sender.js", "../node_modules/undici/lib/web/websocket/websocket.js", "../node_modules/undici/lib/web/eventsource/util.js", "../node_modules/undici/lib/web/eventsource/eventsource-stream.js",Line truncated
"sourcesContent": ["'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('Line truncated
"mappings": "koBAAA,IAAAA,IAAAC,EAAAC,IAAA,cAEA,IAAIC,IAAM,QAAQ,KAAK,EACnBC,IAAM,QAAQ,KAAK,EACnBC,GAAO,QAAQ,MAAM,EACrBC,IAAQ,QAAQ,OAAO,EACvBC,IAAS,QAAQ,QAAQ,EACzBC,IAAS,QAAQ,QAAQ,EACzBC,IAAO,QAAQ,MAAM,EAGzBP,GAAQ,aAAeQ,IACvBR,GAAQ,cAAgBS,IACxBT,GAAQ,cAAgBU,IACxBV,GAAQ,eAAiBW,IAGzB,SAASH,IAAaI,EAAS,CAC7B,IAAIC,EAAQ,IAAIC,GAAeF,CAAO,EACtC,OAAAC,EAAM,QAAUV,GAAK,QACdU,CACT,CAEA,SAASJ,IAAcG,EAAS,CAC9B,IAAIC,EAAQ,IAAIC,GAAeF,CAAO,EACtC,OAAAC,EAAM,QAAUV,GAAK,QACrBU,EAAM,aAAeE,IACrBF,EAAM,YAAc,IACbA,CACT,CAEA,SAASH,IAAcE,EAAS,CAC9B,IAAIC,EAAQ,IAAIC,GAAeF,CAAO,EACtC,OAAAC,EAAM,QAAUT,IAAM,QACfS,CACT,CAEA,SAASF,IAAeC,EAAS,CAC/B,IAAIC,EAAQ,IAAIC,GAAeF,CAAO,EACtC,OAAAC,EAAM,QAAUT,IAAM,QACtBS,EAAM,aAAeE,IACrBF,EAAM,YAAc,IACbA,CACT,CAGA,SAASC,GAAeF,EAAS,CAC/B,IAAII,EAAO,KACXA,EAAK,QAAUJ,GAAW,CAAC,EAC3BI,EAAK,aAAeA,EAAK,QAAQ,OAAS,CAAC,EAC3CA,EAAK,WAAaA,EAAK,QAAQ,YAAcb,GAAK,MAAM,kBACxDa,EAAK,SAAW,CAAC,EACjBA,EAAK,QAAU,CAAC,EAEhBA,EAAK,GAAG,OAAQ,SAAgBC,EAAQC,EAAMC,EAAMC,EAAc,CAEhE,QADIR,EAAUS,IAAUH,EAAMC,EAAMC,CAAY,EACvCE,EAAI,EAAGC,EAAMP,EAAK,SAAS,OAAQM,EAAIC,EAAK,EAAED,EAAG,CACxD,IAAIE,EAAUR,EAAK,SAASM,CAAC,EAC7B,GAAIE,EAAQ,OAASZ,EAAQ,MAAQY,EAAQ,OAASZ,EAAQ,KAAM,CAGlEI,EAAK,SAAS,OAAOM,EAAG,CAAC,EACzBE,EAAQ,QAAQ,SAASP,CAAM,EAC/B,MACF,CACF,CACAA,EAAO,QAAQ,EACfD,EAAK,aAAaC,CAAM,CAC1B,CAAC,CACH,CACAV,IAAK,SAASO,GAAgBT,IAAO,YAAY,EAEjDS,GAAe,UAAU,WAAa,SAAoBW,EAAKP,EAAMC,EAAMC,EAAc,CACvF,IAAIJ,EAAO,KACPJ,EAAUc,GAAa,CAAC,QAASD,CAAG,EAAGT,EAAK,QAASK,IAAUH,EAAMC,EAAMC,CAAY,CAAC,EAE5F,GAAIJ,EAAK,QAAQ,QAAU,KAAK,WAAY,CAE1CA,EAAK,SAAS,KAAKJ,CAAO,EAC1B,MACF,CAGAI,EAAK,aAAaJ,EAAS,SAASK,EAAQ,CAC1CA,EAAO,GAAG,OAAQU,CAAM,EACxBV,EAAO,GAAG,QAASW,CAAe,EAClCX,EAAO,GAAG,cAAeW,CAAe,EACxCH,EAAI,SAASR,CAAM,EAEnB,SAASU,GAAS,CAChBX,EAAK,KAAK,OAAQC,EAAQL,CAAO,CACnC,CAEA,SAASgB,EAAgBC,EAAK,CAC5Bb,EAAK,aAAaC,CAAM,EACxBA,EAAO,eAAe,OAAQU,CAAM,EACpCV,EAAO,eAAe,QAASW,CAAe,EAC9CX,EAAO,eAAe,cAAeW,CAAe,CACtD,CACF,CAAC,CACH,EAEAd,GAAe,UAAU,aAAe,SAAsBF,EAASkB,EAAI,CACzE,IAAId,EAAO,KACPe,EAAc,CAAC,EACnBf,EAAK,QAAQ,KAAKe,CAAW,EAE7B,IAAIC,EAAiBN,GAAa,CAAC,EAAGV,EAAK,aAAc,CACvD,OAAQ,UACR,KAAMJ,EAAQ,KAAO,IAAMA,EAAQ,KACnC,MAAO,GACP,QAAS,CACP,KAAMA,EAAQ,KAAO,IAAMA,EAAQ,IACrC,CACF,CAAC,EACGA,EAAQ,eACVoB,EAAe,aAAepB,EAAQ,cAEpCoB,EAAe,YACjBA,EAAe,QAAUA,EAAe,SAAW,CAAC,EACpDA,EAAe,QAAQ,qBAAqB,EAAI,SAC5C,IAAI,OAAOA,EAAe,SAAS,EAAE,SAAS,QAAQ,GAG5DC,GAAM,wBAAwB,EAC9B,IAAIC,EAAalB,EAAK,QAAQgB,CAAc,EAC5CE,EAAW,4BAA8B,GACzCA,EAAW,KAAK,WAAYC,CAAU,EACtCD,EAAW,KAAK,UAAWE,CAAS,EACpCF,EAAW,KAAK,UAAWG,CAAS,EACpCH,EAAW,KAAK,QAASI,CAAO,EAChCJ,EAAW,IAAI,EAEf,SAASC,EAAWI,EAAK,CAEvBA,EAAI,QAAU,EAChB,CAEA,SAASH,EAAUG,EAAKtB,EAAQuB,EAAM,CAEpC,QAAQ,SAAS,UAAW,CAC1BH,EAAUE,EAAKtB,EAAQuB,CAAI,CAC7B,CAAC,CACH,CAEA,SAASH,EAAUE,EAAKtB,EAAQuB,EAAM,CAIpC,GAHAN,EAAW,mBAAmB,EAC9BjB,EAAO,mBAAmB,EAEtBsB,EAAI,aAAe,IAAK,CAC1BN,GAAM,2DACJM,EAAI,UAAU,EAChBtB,EAAO,QAAQ,EACf,IAAIwB,EAAQ,IAAI,MAAM,yDACJF,EAAI,UAAU,EAChCE,EAAM,KAAO,aACb7B,EAAQ,QAAQ,KAAK,QAAS6B,CAAK,EACnCzB,EAAK,aAAae,CAAW,EAC7B,MACF,CACA,GAAIS,EAAK,OAAS,EAAG,CACnBP,GAAM,sCAAsC,EAC5ChB,EAAO,QAAQ,EACf,IAAIwB,EAAQ,IAAI,MAAM,sCAAsC,EAC5DA,EAAM,KAAO,aACb7B,EAAQ,QAAQ,KAAK,QAAS6B,CAAK,EACnCzB,EAAK,aAAae,CAAW,EAC7B,MACF,CACA,OAAAE,GAAM,sCAAsC,EAC5CjB,EAAK,QAAQA,EAAK,QAAQ,QAAQe,CAAW,CAAC,EAAId,EAC3Ca,EAAGb,CAAM,CAClB,CAEA,SAASqB,EAAQI,EAAO,CACtBR,EAAW,mBAAmB,EAE9BD,GAAM;AAAA,EACAS,EAAM,QAASA,EAAM,KAAK,EAChC,IAAID,EAAQ,IAAI,MAAM,oDACWC,EAAM,OAAO,EAC9CD,EAAM,KAAO,aACb7B,EAAQ,QAAQ,KAAK,QAAS6B,CAAK,EACnCzB,EAAK,aAAae,CAAW,CAC/B,CACF,EAEAjB,GAAe,UAAU,aAAe,SAAsBG,EAAQ,CACpE,IAAI0B,EAAM,KAAK,QAAQ,QAAQ1B,CAAM,EACrC,GAAI0B,IAAQ,GAGZ,MAAK,QAAQ,OAAOA,EAAK,CAAC,EAE1B,IAAInB,EAAU,KAAK,SAAS,MAAM,EAC9BA,GAGF,KAAK,aAAaA,EAAS,SAASP,EAAQ,CAC1CO,EAAQ,QAAQ,SAASP,CAAM,CACjC,CAAC,EAEL,EAEA,SAASF,IAAmBH,EAASkB,EAAI,CACvC,IAAId,EAAO,KACXF,GAAe,UAAU,aAAa,KAAKE,EAAMJ,EAAS,SAASK,EAAQ,CACzE,IAAI2B,EAAahC,EAAQ,QAAQ,UAAU,MAAM,EAC7CiC,EAAanB,GAAa,CAAC,EAAGV,EAAK,QAAS,CAC9C,OAAQC,EACR,WAAY2B,EAAaA,EAAW,QAAQ,OAAQ,EAAE,EAAIhC,EAAQ,IACpE,CAAC,EAGGkC,EAAe5C,IAAI,QAAQ,EAAG2C,CAAU,EAC5C7B,EAAK,QAAQA,EAAK,QAAQ,QAAQC,CAAM,CAAC,EAAI6B,EAC7ChB,EAAGgB,CAAY,CACjB,CAAC,CACH,CAGA,SAASzB,IAAUH,EAAMC,EAAMC,EAAc,CAC3C,OAAI,OAAOF,GAAS,SACX,CACL,KAAMA,EACN,KAAMC,EACN,aAAcC,CAChB,EAEKF,CACT,CAEA,SAASQ,GAAaqB,EAAQ,CAC5B,QAASzB,EAAI,EAAGC,EAAM,UAAU,OAAQD,EAAIC,EAAK,EAAED,EAAG,CACpD,IAAI0B,EAAY,UAAU1B,CAAC,EAC3B,GAAI,OAAO0B,GAAc,SAEvB,QADIC,EAAO,OAAO,KAAKD,CAAS,EACvBE,EAAI,EAAGC,EAASF,EAAK,OAAQC,EAAIC,EAAQ,EAAED,EAAG,CACrD,IAAIE,EAAIH,EAAKC,CAAC,EACVF,EAAUI,CAAC,IAAM,SACnBL,EAAOK,CAAC,EAAIJ,EAAUI,CAAC,EAE3B,CAEJ,CACA,OAAOL,CACT,CAGA,IAAId,GACA,QAAQ,IAAI,YAAc,aAAa,KAAK,QAAQ,IAAI,UAAU,EACpEA,GAAQ,UAAW,CACjB,IAAIoB,EAAO,MAAM,UAAU,MAAM,KAAK,SAAS,EAC3C,OAAOA,EAAK,CAAC,GAAM,SACrBA,EAAK,CAAC,EAAI,WAAaA,EAAK,CAAC,EAE7BA,EAAK,QAAQ,SAAS,EAExB,QAAQ,MAAM,MAAM,QAASA,CAAI,CACnC,EAEApB,GAAQ,UAAW,CAAC,EAEtBjC,GAAQ,MAAQiC,KCvQhB,IAAAqB,GAAAC,EAAA,CAAAC,IAAAC,MAAA,CAAAA,IAAO,QAAU,QCAjB,IAAAC,GAAAC,EAAA,CAAAC,IAAAC,MAAA,CAAAA,IAAO,QAAU,CACf,OAAQ,OAAO,OAAO,EACtB,SAAU,OAAO,SAAS,EAC1B,UAAW,OAAO,UAAU,EAC5B,KAAM,OAAO,KAAK,EAClB,SAAULine truncated
"names": ["require_tunnel", "__commonJSMin", "exports", "net", "tls", "http", "https", "events", "assert", "util", "httpOverHttp", "httpsOverHttp", "httpOverHttps", "httpsOverHttps", "options", "agent", "TunnelingAgent", "createSecureSocket", "self", "socket", "host", "port", "localAddress", "toOptions", "i", "len", "pending", "req", "mergeOptions", "onFree", "onCloseOrRemove", "err", "cb", "placeholder", "connectOptions", "debug", "connectReq", "onResponse", "onUpgrade", "onConnect", "onError", "res", "head", "error", "cause", "pos", "hostHeader", "tlsOptions", "secureSocket", "target", "overrides", "keys", "j", "keyLen", "k", "args", "require_tunnel", "__commonJSMin", "exports", "module", "require_symbols", "__commonJSMin", "exports", "module", "require_errors", "__commonJSMin", "exports", "module", "kUndiciError", "UndiciError", "message", "instance", "kConnectTimeoutError", "ConnectTimeoutError", "kHeadersTimeoutError", "HeadersTimeoutError", "kHeadersOverflowError", "HeadersOverflowError", "kBodyTimeoutError", "BodyTimeoutError", "kResponseStatusCodeError", "ResponseStatusCodeError", "statusCode", "headers", "body", "kInvalidArgumentError", "InvalidArgumentError", "kInvalidReturnValueError", "InvalidReturnValueError", "kAbortError", "AbortError", "kRequestAbortedError", "RequestAbortedError", "kInformationalError", "InformationalError", "kRequestContentLengthMismatchError", "RequestContentLengthMismatchError", "kResponseContentLengthMismatchError", "ResponseContentLengthMismatchError", "kClientDestroyedError", "ClientDestroyedError", "kClientClosedError", "ClientClosedError", "kSocketError", "SocketError", "socket", "kNotSupportedError", "NotSupportedError", "kBalancedPoolMissingUpstreamError", "BalancedPoolMissingUpstreamError", "kHTTPParserError", "HTTPParserError", "code", "data", "kResponseExceededMaxSizeError", "ResponseExceededMaxSizeError", "kRequestRetryError", "RequestRetryError", "kResponseError", "ResponseError", "kSecureProxyConnectionError", "SecureProxyConnectionError", "cause", "options", "kMessageSizeExceededError", "MessageSizeExceededError", "require_constants", "__commonJSMin", "exports", "module", "headerNameLowerCasedRecord", "wellknownHeaderNames", "i", "key", "lowerCasedKey", "require_tree", "__commonJSMin", "exports", "module", "wellknownHeaderNames", "headerNameLowerCasedRecord", "TstNode", "_TstNode", "key", "value", "index", "length", "node", "code", "keylength", "TernarySearchTree", "tree", "i", "require_util", "__commonJSMin", "exports", "module", "assert", "kDestroyed", "kBodyUsed", "kListeners", "kBody", "IncomingMessage", "stream", "net", "Blob", "nodeUtil", "stringify", "EE", "InvalidArgumentError", "headerNameLowerCasedRecord", "tree", "nodeMajor", "nodeMinor", "v", "BodyAsyncIterable", "body", "wrapRequestBody", "isStream", "bodyLength", "isIterable", "nop", "obj", "isBlobLike", "object", "sTag", "buildURL", "url", "queryParams", "stringified", "isValidPort", "port", "value", "isHttpOrHttpsPrefixed", "parseURL", "origin", "path", "parseOrigin", "getHostname", "host", "idx", "getServerName", "servername", "deepClone", "isAsyncIterable", "state", "isBuffer", "isDestroyed", "destroy", "err", "KEEPALIVE_TIMEOUT_EXPR", "parseKeepAliveTimeout", "val", "m", "headerNameToString", "bufferToLowerCasedHeaderName", "parseHeaders", "headers", "i", "key", "headersValue", "x", "parseRawHeaders", "len", "ret", "hasContentLength", "contentDispositionIdx", "kLen", "n", "buffer", "validateHandler", "handler", "method", "upgrade", "isDisturbed", "isErrored", "isReadable", "getSocketInfo", "socket", "ReadableStreamFrom", "iterable", "iterator", "controller", "done", "buf", "reason", "isFormDataLike", "addAbortListener", "signal", "listener", "hasToWellFormed", "hasIsWellFormed", "toUSVString", "isUSVString", "isTokenCharCode", "c", "isValidHTTPToken", "characters", "headerCharRegex", "isValidHeaderValue", "parseRangeHeader", "range", "addListener", "name", "removeAllListeners", "errorRequest", "client", "request", "kEnumerableProperty", "normalizedMethodRecordsBase", "normalizedMethodRecords", "require_diagnostics", "__commonJSMin", "exports", "module", "diagnosticsChannel", "util", "undiciDebugLog", "fetchDebuglog", "websocketDebuglog", "isClientSet", "channels", "debuglog", "evt", "version", "protocol", "port", "host", "error", "method", "path", "origin", "statusCode", "address", "websocket", "code", "reason", "err", "require_request", "__commonJSMin", "exports", "module", "InvalidArgumentError", "NotSupportedError", "assert", "isValidHTTPToken", "isValidHeaderValue", "isStream", "destroy", "isBuffer", "isFormDataLike", "isIterable", "isBlobLike", "buildURL", "validateHandler", "getServerName", "normalizedMethodRecords", "channels", "headerNameLowerCasedRecord", "invalidPathRegex", "kHandler", "Request", "origin", "path", "method", "body", "headers", "query", "idempotent", "blocking", "upgrade", "headersTimeout", "bodyTimeout", "reset", "throwOnError", "expectContinue", "servername",Line truncated
}
Generated Vendored
-17052
View File
File diff suppressed because it is too large. Load diff
Generated Vendored
+5725
View File
File diff suppressed because it is too large. Load diff
+26 -27
View File
@@ -1,10 +1,6 @@
variable "NODE_VERSION" {
default = "12"
}
target "node-version" {
target "_common" {
args = {
NODE_VERSION = NODE_VERSION
BUILDKIT_CONTEXT_KEEP_GIT_DIR = 1
}
}
@@ -13,55 +9,58 @@ group "default" {
}
group "pre-checkin" {
targets = ["vendor-update", "format", "build"]
targets = ["vendor", "format", "build"]
}
group "validate" {
targets = ["format-validate", "build-validate", "vendor-validate"]
targets = ["lint", "build-validate", "vendor-validate"]
}
target "build" {
inherits = ["node-version"]
dockerfile = "./hack/build.Dockerfile"
inherits = ["_common"]
dockerfile = "dev.Dockerfile"
target = "build-update"
output = ["."]
}
target "build-validate" {
inherits = ["node-version"]
dockerfile = "./hack/build.Dockerfile"
inherits = ["_common"]
dockerfile = "dev.Dockerfile"
target = "build-validate"
output = ["type=cacheonly"]
}
target "format" {
inherits = ["node-version"]
dockerfile = "./hack/build.Dockerfile"
inherits = ["_common"]
dockerfile = "dev.Dockerfile"
target = "format-update"
output = ["."]
}
target "format-validate" {
inherits = ["node-version"]
dockerfile = "./hack/build.Dockerfile"
target = "format-validate"
target "lint" {
inherits = ["_common"]
dockerfile = "dev.Dockerfile"
target = "lint"
output = ["type=cacheonly"]
}
target "vendor-update" {
inherits = ["node-version"]
dockerfile = "./hack/vendor.Dockerfile"
target = "update"
target "vendor" {
inherits = ["_common"]
dockerfile = "dev.Dockerfile"
target = "vendor-update"
output = ["."]
}
target "vendor-validate" {
inherits = ["node-version"]
dockerfile = "./hack/vendor.Dockerfile"
target = "validate"
inherits = ["_common"]
dockerfile = "dev.Dockerfile"
target = "vendor-validate"
output = ["type=cacheonly"]
}
target "test" {
inherits = ["node-version"]
dockerfile = "./hack/test.Dockerfile"
inherits = ["_common"]
dockerfile = "dev.Dockerfile"
target = "test-coverage"
output = ["./coverage"]
}
-107
View File
@@ -1,107 +0,0 @@
# Cache
* [Registry cache](#registry-cache)
* [GitHub cache](#github-cache)
> More info about buildx cache: https://github.com/docker/buildx/blob/master/docs/reference/buildx_build.md#cache-from
## Registry cache
You can import/export cache from a cache manifest or (special) image configuration on the registry.
```yaml
name: ci
on:
push:
branches:
- 'master'
jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
-
name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v2
with:
context: .
push: true
tags: user/app:latest
cache-from: type=registry,ref=user/app:latest
cache-to: type=inline
```
## GitHub cache
> :warning: At the moment caches are copied over the existing cache so it [keeps growing](https://github.com/docker/build-push-action/issues/252).
> The `Move cache` step is used as a temporary fix (see https://github.com/moby/buildkit/issues/1896).
> :rocket: There is a new cache backend using GitHub cache being developed that will lighten your workflow.
> More info: https://github.com/docker/buildx/pull/535
You can leverage [GitHub cache](https://docs.github.com/en/actions/configuring-and-managing-workflows/caching-dependencies-to-speed-up-workflows)
using [actions/cache](https://github.com/actions/cache) with this action:
```yaml
name: ci
on:
push:
branches:
- 'master'
jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
-
name: Cache Docker layers
uses: actions/cache@v2
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
-
name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v2
with:
context: .
push: true
tags: user/app:latest
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new
-
# Temp fix
# https://github.com/docker/build-push-action/issues/252
# https://github.com/moby/buildkit/issues/1896
name: Move cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
```
-73
View File
@@ -1,73 +0,0 @@
# Copy images between registries
Multi-platform images built using buildx can be copied from one registry to another without
changing the image SHA using the [tag-push-action](https://github.com/akhilerm/tag-push-action).
The following workflow will first push the image to dockerhub, run some tests using the images
and then push to quay and ghcr
```yaml
name: ci
on:
push:
branches:
- 'master'
jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Set up QEMU
uses: docker/setup-qemu-action@v1
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- # quay and ghcr logins for pushing image after testing
name: Login to Quay Registry
uses: docker/login-action@v1
with:
registry: quay.io
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_TOKEN }}
-
name: Login to GitHub Container Registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
-
name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v2
with:
context: .
platforms: linux/amd64,linux/arm64
push: true
tags: |
user/app:latest
user/app:1.0.0
- # run tests using image from docker hub
name: Run Tests
run: make tests
- # copy multiplatform image from dockerhub to quay and ghcr
name: Push Image to multiple registries
uses: akhilerm/tag-push-action@v1.0.0
with:
src: docker.io/user/app:1.0.0
dst: |
quay.io/user/app:latest
quay.io/user/app:1.0.0
ghcr.io/user/app:latest
ghcr.io/user/app:1.0.0
```
-48
View File
@@ -1,48 +0,0 @@
# Update DockerHub repo description
You can update the [DockerHub repository description](https://docs.docker.com/docker-hub/repos/) using
a third party action called [DockerHub Description](https://github.com/peter-evans/dockerhub-description)
with this action:
```yaml
name: ci
on:
push:
branches:
- 'master'
jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Set up QEMU
uses: docker/setup-qemu-action@v1
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
-
name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v2
with:
context: .
push: true
tags: user/app:latest
-
name: Update repo description
uses: peter-evans/dockerhub-description@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
repository: user/app
```
-35
View File
@@ -1,35 +0,0 @@
# Export image to Docker
You may want your build result to be available in the Docker client through `docker images` to be able to use it
in another step of your workflow:
```yaml
name: ci
on:
push:
branches:
- 'master'
jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
-
name: Build
uses: docker/build-push-action@v2
with:
context: .
load: true
tags: myimage:latest
-
name: Inspect
run: |
docker image inspect myimage:latest
```
-44
View File
@@ -1,44 +0,0 @@
# Isolated builders
```yaml
name: ci
on:
push:
branches:
- 'master'
jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
uses: docker/setup-buildx-action@v1
id: builder1
-
uses: docker/setup-buildx-action@v1
id: builder2
-
name: Builder 1 name
run: echo ${{ steps.builder1.outputs.name }}
-
name: Builder 2 name
run: echo ${{ steps.builder2.outputs.name }}
-
name: Build against builder1
uses: docker/build-push-action@v2
with:
builder: ${{ steps.builder1.outputs.name }}
context: .
target: mytarget1
-
name: Build against builder2
uses: docker/build-push-action@v2
with:
builder: ${{ steps.builder2.outputs.name }}
context: .
target: mytarget2
```
-44
View File
@@ -1,44 +0,0 @@
# Local registry
For testing purposes you may need to create a [local registry](https://hub.docker.com/_/registry) to push images into:
```yaml
name: ci
on:
push:
branches:
- 'master'
jobs:
docker:
runs-on: ubuntu-latest
services:
registry:
image: registry:2
ports:
- 5000:5000
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Set up QEMU
uses: docker/setup-qemu-action@v1
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
with:
driver-opts: network=host
-
name: Build and push to local registry
uses: docker/build-push-action@v2
with:
context: .
push: true
tags: localhost:5000/name/app:latest
-
name: Inspect
run: |
docker buildx imagetools inspect localhost:5000/name/app:latest
```
-44
View File
@@ -1,44 +0,0 @@
# Multi-platform image
You can build multi-platform images using the [`platforms` input](../../README.md#inputs) as described below.
> :bulb: List of available platforms will be displayed and available through our [setup-buildx](https://github.com/docker/setup-buildx-action#about) action.
> :bulb: If you want support for more platforms, you can use QEMU with our [setup-qemu](https://github.com/docker/setup-qemu-action) action.
```yaml
name: ci
on:
push:
branches:
- 'master'
jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Set up QEMU
uses: docker/setup-qemu-action@v1
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
-
name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v2
with:
context: .
platforms: linux/amd64,linux/arm64
push: true
tags: user/app:latest
```
-57
View File
@@ -1,57 +0,0 @@
# Push to multi-registries
* [Docker Hub and GHCR](#docker-hub-and-ghcr)
## Docker Hub and GHCR
The following workflow will connect you to [DockerHub](https://github.com/docker/login-action#dockerhub)
and [GitHub Container Registry](https://github.com/docker/login-action#github-container-registry) and push the
image to these registries.
```yaml
name: ci
on:
push:
branches:
- 'master'
jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Set up QEMU
uses: docker/setup-qemu-action@v1
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
-
name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Login to GitHub Container Registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v2
with:
context: .
platforms: linux/amd64,linux/arm64
push: true
tags: |
user/app:latest
user/app:1.0.0
ghcr.io/user/app:latest
ghcr.io/user/app:1.0.0
```
-84
View File
@@ -1,84 +0,0 @@
# Secrets
In the following example we will expose and use the [GITHUB_TOKEN secret](https://docs.github.com/en/actions/reference/authentication-in-a-workflow#about-the-github_token-secret)
as provided by GitHub in your workflow.
First let's create our `Dockerfile` to use our secret:
```Dockerfile
#syntax=docker/dockerfile:1.2
FROM alpine
RUN --mount=type=secret,id=github_token \
cat /run/secrets/github_token
```
As you can see we have named our secret `github_token`. Here is the workflow you can use to expose this secret using
the [`secrets` input](../../README.md#inputs):
```yaml
name: ci
on:
push:
branches:
- 'master'
jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Set up QEMU
uses: docker/setup-qemu-action@v1
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
-
name: Build
uses: docker/build-push-action@v2
with:
context: .
platforms: linux/amd64,linux/arm64
tags: user/app:latest
secrets: |
"github_token=${{ secrets.GITHUB_TOKEN }}"
```
> :bulb: You can also expose a secret file to the build with [`secret-files`](../../README.md#inputs) input:
> ```yaml
> secret-files: |
> "MY_SECRET=./secret.txt"
> ```
If you're using [GitHub secrets](https://docs.github.com/en/actions/reference/encrypted-secrets) and need to handle
multi-line value, you will need to place the key-value pair between quotes:
```yaml
secrets: |
"MYSECRET=${{ secrets.GPG_KEY }}"
GIT_AUTH_TOKEN=abcdefghi,jklmno=0123456789
"MYSECRET=aaaaaaaa
bbbbbbb
ccccccccc"
FOO=bar
"EMPTYLINE=aaaa
bbbb
ccc"
"JSON_SECRET={""key1"":""value1"",""key2"":""value2""}"
```
| Key | Value |
|--------------------|--------------------------------------------------|
| `MYSECRET` | `***********************` |
| `GIT_AUTH_TOKEN` | `abcdefghi,jklmno=0123456789` |
| `MYSECRET` | `aaaaaaaa\nbbbbbbb\nccccccccc` |
| `FOO` | `bar` |
| `EMPTYLINE` | `aaaa\n\nbbbb\nccc` |
| `JSON_SECRET` | `{"key1":"value1","key2":"value2"}` |
> :bulb: All quote signs need to be doubled for escaping.
-58
View File
@@ -1,58 +0,0 @@
# Share built image between jobs
As each job is isolated in its own runner you cannot use your built image between jobs (except for [self-hosted runners](https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners)).
However, you can [pass data between jobs in a workflow](https://docs.github.com/en/actions/guides/storing-workflow-data-as-artifacts#passing-data-between-jobs-in-a-workflow)
using the [actions/upload-artifact](https://github.com/actions/upload-artifact) and [actions/download-artifact](https://github.com/actions/download-artifact)
actions:
```yaml
name: ci
on:
push:
branches:
- 'master'
jobs:
build:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
-
name: Build and export
uses: docker/build-push-action@v2
with:
context: .
tags: myimage:latest
outputs: type=docker,dest=/tmp/myimage.tar
-
name: Upload artifact
uses: actions/upload-artifact@v2
with:
name: myimage
path: /tmp/myimage.tar
use:
runs-on: ubuntu-latest
needs: build
steps:
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
-
name: Download artifact
uses: actions/download-artifact@v2
with:
name: myimage
path: /tmp
-
name: Load image
run: |
docker load --input /tmp/myimage.tar
docker image ls -a
```
-77
View File
@@ -1,77 +0,0 @@
# Handle tags and labels
If you come from [`v1`](https://github.com/docker/build-push-action/tree/releases/v1#readme) and want an
"automatic" tag management and [OCI Image Format Specification](https://github.com/opencontainers/image-spec/blob/master/annotations.md)
for labels, you can do it in a dedicated step. The following workflow will use the [Docker metadata action](https://github.com/docker/metadata-action)
to handle tags and labels based on GitHub actions events and Git metadata.
```yaml
name: ci
on:
schedule:
- cron: '0 10 * * *' # everyday at 10am
push:
branches:
- '**'
tags:
- 'v*.*.*'
pull_request:
branches:
- 'master'
jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Docker meta
id: meta
uses: docker/metadata-action@v3
with:
# list of Docker images to use as base name for tags
images: |
name/app
ghcr.io/username/app
# generate Docker tags based on the following events/attributes
tags: |
type=schedule
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=sha
-
name: Set up QEMU
uses: docker/setup-qemu-action@v1
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
-
name: Login to DockerHub
if: github.event_name != 'pull_request'
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Login to GHCR
if: github.event_name != 'pull_request'
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v2
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
```
+52
View File
@@ -0,0 +1,52 @@
import {defineConfig} from 'eslint/config';
import js from '@eslint/js';
import tseslint from '@typescript-eslint/eslint-plugin';
import vitest from '@vitest/eslint-plugin';
import globals from 'globals';
import eslintConfigPrettier from 'eslint-config-prettier/flat';
import eslintPluginPrettier from 'eslint-plugin-prettier';
export default defineConfig([
{
ignores: ['.yarn/**/*', 'coverage/**/*', 'dist/**/*']
},
js.configs.recommended,
...tseslint.configs['flat/recommended'],
eslintConfigPrettier,
{
languageOptions: {
globals: {
...globals.node
}
}
},
{
files: ['__tests__/**'],
...vitest.configs.recommended,
languageOptions: {
globals: {
...globals.node,
...vitest.environments.env.globals
}
},
rules: {
...vitest.configs.recommended.rules,
'vitest/no-conditional-expect': 'error',
'vitest/no-disabled-tests': 0
}
},
{
plugins: {
prettier: eslintPluginPrettier
},
rules: {
'prettier/prettier': 'error',
'@typescript-eslint/no-require-imports': [
'error',
{
allowAsImport: true
}
]
}
}
]);
-42
View File
@@ -1,42 +0,0 @@
# syntax=docker/dockerfile:1.2
ARG NODE_VERSION
FROM node:${NODE_VERSION}-alpine AS base
RUN apk add --no-cache cpio findutils git
WORKDIR /src
FROM base AS deps
RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/node_modules \
yarn install
FROM deps AS build
RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/node_modules \
yarn run build && mkdir /out && cp -Rf dist /out/
FROM scratch AS build-update
COPY --from=build /out /
FROM build AS build-validate
RUN --mount=type=bind,target=.,rw \
git add -A && cp -rf /out/* .; \
if [ -n "$(git status --porcelain -- dist)" ]; then \
echo >&2 'ERROR: Build result differs. Please build first with "docker buildx bake build"'; \
git status --porcelain -- dist; \
exit 1; \
fi
FROM deps AS format
RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/node_modules \
yarn run format \
&& mkdir /out && find . -name '*.ts' -not -path './node_modules/*' | cpio -pdm /out
FROM scratch AS format-update
COPY --from=format /out /
FROM deps AS format-validate
RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/node_modules \
yarn run format-check \
-23
View File
@@ -1,23 +0,0 @@
# syntax=docker/dockerfile:1.2
ARG NODE_VERSION
FROM node:${NODE_VERSION}-alpine AS base
RUN apk add --no-cache git
WORKDIR /src
FROM base AS deps
RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/node_modules \
yarn install
FROM deps AS test
ENV RUNNER_TEMP=/tmp/github_runner
ENV RUNNER_TOOL_CACHE=/tmp/github_tool_cache
RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/node_modules \
--mount=type=bind,from=crazymax/docker,source=/usr/libexec/docker/cli-plugins/docker-buildx,target=/usr/libexec/docker/cli-plugins/docker-buildx \
--mount=type=bind,from=crazymax/docker,source=/usr/local/bin/docker,target=/usr/bin/docker \
yarn run test --coverageDirectory=/tmp/coverage
FROM scratch AS test-coverage
COPY --from=test /tmp/coverage /
-23
View File
@@ -1,23 +0,0 @@
# syntax=docker/dockerfile:1.2
ARG NODE_VERSION
FROM node:${NODE_VERSION}-alpine AS base
RUN apk add --no-cache git
WORKDIR /src
FROM base AS vendored
RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/node_modules \
yarn install && mkdir /out && cp yarn.lock /out
FROM scratch AS update
COPY --from=vendored /out /
FROM vendored AS validate
RUN --mount=type=bind,target=.,rw \
git add -A && cp -rf /out/* .; \
if [ -n "$(git status --porcelain -- yarn.lock)" ]; then \
echo >&2 'ERROR: Vendor result differs. Please vendor your package with "docker buildx bake vendor-update"'; \
git status --porcelain -- yarn.lock; \
exit 1; \
fi
-12
View File
@@ -1,12 +0,0 @@
module.exports = {
clearMocks: false,
moduleFileExtensions: ['js', 'ts'],
setupFiles: ["dotenv/config"],
testEnvironment: 'node',
testMatch: ['**/*.test.ts'],
testRunner: 'jest-circus/runner',
transform: {
'^.+\\.ts$': 'ts-jest'
},
verbose: false
}
+27 -32
View File
@@ -1,13 +1,14 @@
{
"name": "docker-build-push",
"description": "Build and push Docker images",
"main": "lib/main.js",
"type": "module",
"main": "src/main.ts",
"scripts": {
"build": "tsc && ncc build",
"format": "prettier --write **/*.ts",
"format-check": "prettier --check **/*.ts",
"test": "jest --coverage",
"pre-checkin": "yarn run format && yarn run build"
"build": "esbuild src/main.ts --bundle --platform=node --target=node24 --format=cjs --outfile=dist/index.cjs --sourcemap --minify && yarn run license",
"lint": "eslint --max-warnings=0 .",
"format": "eslint --fix .",
"test": "vitest run",
"license": "generate-license-file --input package.json --output dist/licenses.txt --overwrite --ci --no-spinner --eol lf"
},
"repository": {
"type": "git",
@@ -19,35 +20,29 @@
"build",
"push"
],
"author": "Docker",
"contributors": [
{
"name": "CrazyMax",
"url": "https://crazymax.dev"
}
],
"author": "Docker Inc.",
"license": "Apache-2.0",
"packageManager": "yarn@4.9.2",
"dependencies": {
"@actions/core": "^1.4.0",
"@actions/exec": "^1.1.0",
"@actions/github": "^5.0.0",
"csv-parse": "^4.16.0",
"semver": "^7.3.5",
"tmp": "^0.2.1"
"@actions/core": "^3.0.1",
"@docker/actions-toolkit": "0.90.0",
"handlebars": "^4.7.9"
},
"devDependencies": {
"@types/csv-parse": "^1.2.2",
"@types/jest": "^26.0.23",
"@types/node": "^14.17.4",
"@types/tmp": "^0.2.0",
"@vercel/ncc": "^0.28.6",
"dotenv": "^8.6.0",
"jest": "^26.6.3",
"jest-circus": "^26.6.3",
"jest-runtime": "^26.6.3",
"prettier": "^2.3.1",
"ts-jest": "^26.5.6",
"typescript": "^4.3.4",
"typescript-formatter": "^7.2.2"
"@eslint/js": "^9.39.3",
"@types/node": "^24.11.0",
"@typescript-eslint/eslint-plugin": "^8.56.1",
"@typescript-eslint/parser": "^8.56.1",
"@vitest/coverage-v8": "^4.0.18",
"@vitest/eslint-plugin": "^1.6.9",
"esbuild": "^0.28.0",
"eslint": "^9.39.3",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-prettier": "^5.5.5",
"generate-license-file": "^4.1.1",
"globals": "^17.3.0",
"prettier": "^3.8.1",
"typescript": "^5.9.3",
"vitest": "^4.0.18"
}
}
-120
View File
@@ -1,120 +0,0 @@
import csvparse from 'csv-parse/lib/sync';
import fs from 'fs';
import path from 'path';
import * as semver from 'semver';
import * as exec from '@actions/exec';
import * as context from './context';
export async function getImageIDFile(): Promise<string> {
return path.join(context.tmpDir(), 'iidfile').split(path.sep).join(path.posix.sep);
}
export async function getImageID(): Promise<string | undefined> {
const iidFile = await getImageIDFile();
if (!fs.existsSync(iidFile)) {
return undefined;
}
return fs.readFileSync(iidFile, {encoding: 'utf-8'});
}
export async function getSecretString(kvp: string): Promise<string> {
return getSecret(kvp, false);
}
export async function getSecretFile(kvp: string): Promise<string> {
return getSecret(kvp, true);
}
export async function getSecret(kvp: string, file: boolean): Promise<string> {
const delimiterIndex = kvp.indexOf('=');
const key = kvp.substring(0, delimiterIndex);
let value = kvp.substring(delimiterIndex + 1);
if (key.length == 0 || value.length == 0) {
throw new Error(`${kvp} is not a valid secret`);
}
if (file) {
if (!fs.existsSync(value)) {
throw new Error(`secret file ${value} not found`);
}
value = fs.readFileSync(value, {encoding: 'utf-8'});
}
const secretFile = context.tmpNameSync({
tmpdir: context.tmpDir()
});
fs.writeFileSync(secretFile, value);
return `id=${key},src=${secretFile}`;
}
export function isLocalOrTarExporter(outputs: string[]): Boolean {
for (let output of csvparse(outputs.join(`\n`), {
delimiter: ',',
trim: true,
columns: false,
relaxColumnCount: true
})) {
// Local if no type is defined
// https://github.com/docker/buildx/blob/d2bf42f8b4784d83fde17acb3ed84703ddc2156b/build/output.go#L29-L43
if (output.length == 1 && !output[0].startsWith('type=')) {
return true;
}
for (let [key, value] of output.map(chunk => chunk.split('=').map(item => item.trim()))) {
if (key == 'type' && (value == 'local' || value == 'tar')) {
return true;
}
}
}
return false;
}
export function hasGitAuthToken(secrets: string[]): Boolean {
for (let secret of secrets) {
if (secret.startsWith('GIT_AUTH_TOKEN=')) {
return true;
}
}
return false;
}
export async function isAvailable(): Promise<Boolean> {
return await exec
.getExecOutput('docker', ['buildx'], {
ignoreReturnCode: true,
silent: true
})
.then(res => {
if (res.stderr.length > 0 && res.exitCode != 0) {
return false;
}
return res.exitCode == 0;
});
}
export async function getVersion(): Promise<string> {
return await exec
.getExecOutput('docker', ['buildx', 'version'], {
ignoreReturnCode: true,
silent: true
})
.then(res => {
if (res.stderr.length > 0 && res.exitCode != 0) {
throw new Error(res.stderr.trim());
}
return parseVersion(res.stdout.trim());
});
}
export function parseVersion(stdout: string): string {
const matches = /\sv?([0-9a-f]{7}|[0-9.]+)/.exec(stdout);
if (!matches) {
throw new Error(`Cannot parse buildx version`);
}
return matches[1];
}
export function satisfies(version: string, range: string): boolean {
return semver.satisfies(version, range) || /^[0-9a-f]{7}$/.exec(version) !== null;
}
+221 -145
View File
@@ -1,216 +1,292 @@
import csvparse from 'csv-parse/lib/sync';
import * as fs from 'fs';
import * as os from 'os';
import * as path from 'path';
import * as semver from 'semver';
import * as tmp from 'tmp';
import * as core from '@actions/core';
import {issueCommand} from '@actions/core/lib/command';
import * as github from '@actions/github';
import * as handlebars from 'handlebars';
import * as buildx from './buildx';
import {Build} from '@docker/actions-toolkit/lib/buildx/build.js';
import {GitHub} from '@docker/actions-toolkit/lib/github/github.js';
import {Toolkit} from '@docker/actions-toolkit/lib/toolkit.js';
import {Util} from '@docker/actions-toolkit/lib/util.js';
let _defaultContext, _tmpDir: string;
let defaultContextPromise: Promise<string> | undefined;
async function getDefaultContext(): Promise<string> {
defaultContextPromise ??= new Build().gitContext();
return await defaultContextPromise;
}
export interface Inputs {
'add-hosts': string[];
allow: string[];
buildArgs: string[];
annotations: string[];
attests: string[];
'build-args': string[];
'build-contexts': string[];
builder: string;
cacheFrom: string[];
cacheTo: string[];
'cache-from': string[];
'cache-to': string[];
call: string;
'cgroup-parent': string;
context: string;
file: string;
labels: string[];
load: boolean;
network: string;
noCache: boolean;
'no-cache': boolean;
'no-cache-filters': string[];
outputs: string[];
platforms: string[];
provenance: string;
pull: boolean;
push: boolean;
sbom: string;
secrets: string[];
secretFiles: string[];
'secret-envs': string[];
'secret-files': string[];
'shm-size': string;
ssh: string[];
tags: string[];
target: string;
githubToken: string;
ulimit: string[];
'github-token': string;
}
export function defaultContext(): string {
if (!_defaultContext) {
let ref = github.context.ref;
if (github.context.sha && ref && !ref.startsWith('refs/')) {
ref = `refs/heads/${github.context.ref}`;
}
if (github.context.sha && !ref.startsWith(`refs/pull/`)) {
ref = github.context.sha;
}
_defaultContext = `${process.env.GITHUB_SERVER_URL || 'https://github.com'}/${github.context.repo.owner}/${github.context.repo.repo}.git#${ref}`;
}
return _defaultContext;
}
export function tmpDir(): string {
if (!_tmpDir) {
_tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'docker-build-push-')).split(path.sep).join(path.posix.sep);
}
return _tmpDir;
}
export function tmpNameSync(options?: tmp.TmpNameOptions): string {
return tmp.tmpNameSync(options);
}
export async function getInputs(defaultContext: string): Promise<Inputs> {
export async function getInputs(): Promise<Inputs> {
const defaultContext = await getDefaultContext();
return {
allow: await getInputList('allow'),
buildArgs: await getInputList('build-args', true),
'add-hosts': Util.getInputList('add-hosts'),
allow: Util.getInputList('allow'),
annotations: Util.getInputList('annotations', {ignoreComma: true}),
attests: Util.getInputList('attests', {ignoreComma: true}),
'build-args': Util.getInputList('build-args', {ignoreComma: true}),
'build-contexts': Util.getInputList('build-contexts', {ignoreComma: true}),
builder: core.getInput('builder'),
cacheFrom: await getInputList('cache-from', true),
cacheTo: await getInputList('cache-to', true),
context: core.getInput('context') || defaultContext,
'cache-from': Util.getInputList('cache-from', {ignoreComma: true}),
'cache-to': Util.getInputList('cache-to', {ignoreComma: true}),
call: core.getInput('call'),
'cgroup-parent': core.getInput('cgroup-parent'),
context: handlebars.compile(core.getInput('context'))({defaultContext}) || defaultContext,
file: core.getInput('file'),
labels: await getInputList('labels', true),
labels: Util.getInputList('labels', {ignoreComma: true}),
load: core.getBooleanInput('load'),
network: core.getInput('network'),
noCache: core.getBooleanInput('no-cache'),
outputs: await getInputList('outputs', true),
platforms: await getInputList('platforms'),
'no-cache': core.getBooleanInput('no-cache'),
'no-cache-filters': Util.getInputList('no-cache-filters'),
outputs: Util.getInputList('outputs', {ignoreComma: true, quote: false}),
platforms: Util.getInputList('platforms'),
provenance: Build.getProvenanceInput('provenance'),
pull: core.getBooleanInput('pull'),
push: core.getBooleanInput('push'),
secrets: await getInputList('secrets', true),
secretFiles: await getInputList('secret-files', true),
ssh: await getInputList('ssh'),
tags: await getInputList('tags'),
sbom: core.getInput('sbom'),
secrets: Util.getInputList('secrets', {ignoreComma: true}),
'secret-envs': Util.getInputList('secret-envs'),
'secret-files': Util.getInputList('secret-files', {ignoreComma: true}),
'shm-size': core.getInput('shm-size'),
ssh: Util.getInputList('ssh'),
tags: Util.getInputList('tags'),
target: core.getInput('target'),
githubToken: core.getInput('github-token')
ulimit: Util.getInputList('ulimit', {ignoreComma: true}),
'github-token': core.getInput('github-token')
};
}
export async function getArgs(inputs: Inputs, defaultContext: string, buildxVersion: string): Promise<Array<string>> {
let args: Array<string> = ['buildx'];
args.push.apply(args, await getBuildArgs(inputs, defaultContext, buildxVersion));
args.push.apply(args, await getCommonArgs(inputs));
args.push(inputs.context);
return args;
export async function getArgs(inputs: Inputs, toolkit: Toolkit): Promise<Array<string>> {
// prettier-ignore
return [
...await getBuildArgs(inputs, inputs.context, toolkit),
...await getCommonArgs(inputs, toolkit),
inputs.context
];
}
async function getBuildArgs(inputs: Inputs, defaultContext: string, buildxVersion: string): Promise<Array<string>> {
let args: Array<string> = ['build'];
await asyncForEach(inputs.buildArgs, async buildArg => {
async function getBuildArgs(inputs: Inputs, context: string, toolkit: Toolkit): Promise<Array<string>> {
const defaultContext = await getDefaultContext();
const args: Array<string> = ['build'];
await Util.asyncForEach(inputs['add-hosts'], async addHost => {
args.push('--add-host', addHost);
});
await Util.asyncForEach(inputs.allow, async allow => {
args.push('--allow', allow);
});
if (await toolkit.buildx.versionSatisfies('>=0.12.0')) {
await Util.asyncForEach(inputs.annotations, async annotation => {
args.push('--annotation', annotation);
});
} else if (inputs.annotations.length > 0) {
core.warning("Annotations are only supported by buildx >= 0.12.0; the input 'annotations' is ignored.");
}
await Util.asyncForEach(inputs['build-args'], async buildArg => {
args.push('--build-arg', buildArg);
});
await asyncForEach(inputs.labels, async label => {
if (await toolkit.buildx.versionSatisfies('>=0.8.0')) {
await Util.asyncForEach(inputs['build-contexts'], async buildContext => {
args.push(
'--build-context',
handlebars.compile(buildContext)({
defaultContext: defaultContext
})
);
});
} else if (inputs['build-contexts'].length > 0) {
core.warning("Build contexts are only supported by buildx >= 0.8.0; the input 'build-contexts' is ignored.");
}
await Util.asyncForEach(inputs['cache-from'], async cacheFrom => {
args.push('--cache-from', cacheFrom);
});
await Util.asyncForEach(inputs['cache-to'], async cacheTo => {
args.push('--cache-to', cacheTo);
});
if (inputs.call) {
if (!(await toolkit.buildx.versionSatisfies('>=0.15.0'))) {
throw new Error(`Buildx >= 0.15.0 is required to use the call flag.`);
}
args.push('--call', inputs.call);
}
if (inputs['cgroup-parent']) {
args.push('--cgroup-parent', inputs['cgroup-parent']);
}
await Util.asyncForEach(inputs['secret-envs'], async secretEnv => {
try {
args.push('--secret', Build.resolveSecretEnv(secretEnv));
} catch (err) {
core.warning(err.message);
}
});
if (inputs.file) {
args.push('--file', inputs.file);
}
if (!Build.hasLocalExporter(inputs.outputs) && !Build.hasTarExporter(inputs.outputs) && (inputs.platforms.length == 0 || (await toolkit.buildx.versionSatisfies('>=0.4.2')))) {
args.push('--iidfile', toolkit.buildxBuild.getImageIDFilePath());
}
await Util.asyncForEach(inputs.labels, async label => {
args.push('--label', label);
});
await asyncForEach(inputs.tags, async tag => {
await Util.asyncForEach(inputs['no-cache-filters'], async noCacheFilter => {
args.push('--no-cache-filter', noCacheFilter);
});
await Util.asyncForEach(inputs.outputs, async output => {
args.push('--output', output);
});
if (inputs.platforms.length > 0) {
args.push('--platform', inputs.platforms.join(','));
}
if (await toolkit.buildx.versionSatisfies('>=0.10.0')) {
args.push(...(await getAttestArgs(inputs, toolkit)));
} else {
core.warning("Attestations are only supported by buildx >= 0.10.0; the inputs 'attests', 'provenance' and 'sbom' are ignored.");
}
await Util.asyncForEach(inputs.secrets, async secret => {
try {
args.push('--secret', Build.resolveSecretString(secret));
} catch (err) {
core.warning(err.message);
}
});
await Util.asyncForEach(inputs['secret-files'], async secretFile => {
try {
args.push('--secret', Build.resolveSecretFile(secretFile));
} catch (err) {
core.warning(err.message);
}
});
if (inputs['github-token'] && !Build.hasGitAuthTokenSecret(inputs.secrets) && context.startsWith(defaultContext)) {
args.push('--secret', Build.resolveSecretString(`GIT_AUTH_TOKEN.${new URL(GitHub.serverURL).host.trimEnd()}=${inputs['github-token']}`));
}
if (inputs['shm-size']) {
args.push('--shm-size', inputs['shm-size']);
}
await Util.asyncForEach(inputs.ssh, async ssh => {
args.push('--ssh', ssh);
});
await Util.asyncForEach(inputs.tags, async tag => {
args.push('--tag', tag);
});
if (inputs.target) {
args.push('--target', inputs.target);
}
if (inputs.allow.length > 0) {
args.push('--allow', inputs.allow.join(','));
}
if (inputs.platforms.length > 0) {
args.push('--platform', inputs.platforms.join(','));
}
await asyncForEach(inputs.outputs, async output => {
args.push('--output', output);
await Util.asyncForEach(inputs.ulimit, async ulimit => {
args.push('--ulimit', ulimit);
});
if (!buildx.isLocalOrTarExporter(inputs.outputs) && (inputs.platforms.length == 0 || buildx.satisfies(buildxVersion, '>=0.4.2'))) {
args.push('--iidfile', await buildx.getImageIDFile());
}
await asyncForEach(inputs.cacheFrom, async cacheFrom => {
args.push('--cache-from', cacheFrom);
});
await asyncForEach(inputs.cacheTo, async cacheTo => {
args.push('--cache-to', cacheTo);
});
await asyncForEach(inputs.secrets, async secret => {
try {
args.push('--secret', await buildx.getSecretString(secret));
} catch (err) {
core.warning(err.message);
}
});
await asyncForEach(inputs.secretFiles, async secretFile => {
try {
args.push('--secret', await buildx.getSecretFile(secretFile));
} catch (err) {
core.warning(err.message);
}
});
if (inputs.githubToken && !buildx.hasGitAuthToken(inputs.secrets) && inputs.context == defaultContext) {
args.push('--secret', await buildx.getSecretString(`GIT_AUTH_TOKEN=${inputs.githubToken}`));
}
await asyncForEach(inputs.ssh, async ssh => {
args.push('--ssh', ssh);
});
if (inputs.file) {
args.push('--file', inputs.file);
}
return args;
}
async function getCommonArgs(inputs: Inputs): Promise<Array<string>> {
let args: Array<string> = [];
if (inputs.noCache) {
args.push('--no-cache');
}
async function getCommonArgs(inputs: Inputs, toolkit: Toolkit): Promise<Array<string>> {
const args: Array<string> = [];
if (inputs.builder) {
args.push('--builder', inputs.builder);
}
if (inputs.pull) {
args.push('--pull');
}
if (inputs.load) {
args.push('--load');
}
if (await toolkit.buildx.versionSatisfies('>=0.6.0')) {
args.push('--metadata-file', toolkit.buildxBuild.getMetadataFilePath());
}
if (inputs.network) {
args.push('--network', inputs.network);
}
if (inputs['no-cache']) {
args.push('--no-cache');
}
if (inputs.pull) {
args.push('--pull');
}
if (inputs.push) {
args.push('--push');
}
return args;
}
export async function getInputList(name: string, ignoreComma?: boolean): Promise<string[]> {
let res: Array<string> = [];
async function getAttestArgs(inputs: Inputs, toolkit: Toolkit): Promise<Array<string>> {
const args: Array<string> = [];
const items = core.getInput(name);
if (items == '') {
return res;
}
for (let output of (await csvparse(items, {
columns: false,
relax: true,
relaxColumnCount: true,
skipLinesWithEmptyValues: true
})) as Array<string[]>) {
if (output.length == 1) {
res.push(output[0]);
continue;
} else if (!ignoreComma) {
res.push(...output);
continue;
// check if provenance attestation is set in attests input
let hasAttestProvenance = false;
await Util.asyncForEach(inputs.attests, async (attest: string) => {
if (Build.hasAttestationType('provenance', attest)) {
hasAttestProvenance = true;
}
res.push(output.join(','));
});
let provenanceSet = false;
let sbomSet = false;
if (inputs.provenance) {
args.push('--attest', Build.resolveAttestationAttrs(`type=provenance,${inputs.provenance}`));
provenanceSet = true;
} else if (!hasAttestProvenance && !noDefaultAttestations() && (await toolkit.buildkit.versionSatisfies(inputs.builder, '>=0.11.0')) && !Build.hasDockerExporter(inputs.outputs, inputs.load)) {
// if provenance not specified in provenance or attests inputs and BuildKit
// version compatible for attestation, set default provenance. Also needs
// to make sure user doesn't want to explicitly load the image to docker.
if (GitHub.context.payload.repository?.private ?? false) {
// if this is a private repository, we set the default provenance
// attributes being set in buildx: https://github.com/docker/buildx/blob/fb27e3f919dcbf614d7126b10c2bc2d0b1927eb6/build/build.go#L603
args.push('--attest', `type=provenance,${Build.resolveProvenanceAttrs(`mode=min,inline-only=true`)}`);
} else {
// for a public repository, we set max provenance mode.
args.push('--attest', `type=provenance,${Build.resolveProvenanceAttrs(`mode=max`)}`);
}
}
if (inputs.sbom) {
args.push('--attest', Build.resolveAttestationAttrs(`type=sbom,${inputs.sbom}`));
sbomSet = true;
}
return res.filter(item => item).map(pat => pat.trim());
// set attests but check if provenance or sbom types already set as
// provenance and sbom inputs take precedence over attests input.
await Util.asyncForEach(inputs.attests, async (attest: string) => {
if (!Build.hasAttestationType('provenance', attest) && !Build.hasAttestationType('sbom', attest)) {
args.push('--attest', Build.resolveAttestationAttrs(attest));
} else if (!provenanceSet && Build.hasAttestationType('provenance', attest)) {
args.push('--attest', Build.resolveProvenanceAttrs(attest));
} else if (!sbomSet && Build.hasAttestationType('sbom', attest)) {
args.push('--attest', attest);
}
});
return args;
}
export const asyncForEach = async (array, callback) => {
for (let index = 0; index < array.length; index++) {
await callback(array[index], index, array);
function noDefaultAttestations(): boolean {
if (process.env.BUILDX_NO_DEFAULT_ATTESTATIONS) {
return Util.parseBool(process.env.BUILDX_NO_DEFAULT_ATTESTATIONS);
}
};
// FIXME: Temp fix https://github.com/actions/toolkit/issues/777
export function setOutput(name: string, value: any): void {
issueCommand('set-output', {name}, value);
return false;
}
+271 -41
View File
@@ -1,60 +1,290 @@
import * as fs from 'fs';
import * as buildx from './buildx';
import * as context from './context';
import * as stateHelper from './state-helper';
import * as path from 'path';
import * as core from '@actions/core';
import * as exec from '@actions/exec';
import * as actionsToolkit from '@docker/actions-toolkit';
async function run(): Promise<void> {
try {
core.startGroup(`Docker info`);
await exec.exec('docker', ['version']);
await exec.exec('docker', ['info']);
core.endGroup();
import {Buildx} from '@docker/actions-toolkit/lib/buildx/buildx.js';
import {History as BuildxHistory} from '@docker/actions-toolkit/lib/buildx/history.js';
import {Context} from '@docker/actions-toolkit/lib/context.js';
import {Docker} from '@docker/actions-toolkit/lib/docker/docker.js';
import {Exec} from '@docker/actions-toolkit/lib/exec.js';
import {GitHub} from '@docker/actions-toolkit/lib/github/github.js';
import {GitHubArtifact} from '@docker/actions-toolkit/lib/github/artifact.js';
import {GitHubSummary} from '@docker/actions-toolkit/lib/github/summary.js';
import {Toolkit} from '@docker/actions-toolkit/lib/toolkit.js';
import {Util} from '@docker/actions-toolkit/lib/util.js';
if (!(await buildx.isAvailable())) {
import {BuilderInfo} from '@docker/actions-toolkit/lib/types/buildx/builder.js';
import {ConfigFile} from '@docker/actions-toolkit/lib/types/docker/docker.js';
import {UploadResponse as UploadArtifactResponse} from '@docker/actions-toolkit/lib/types/github/artifact.js';
import * as context from './context.js';
import * as stateHelper from './state-helper.js';
actionsToolkit.run(
// main
async () => {
const startedTime = new Date();
const inputs: context.Inputs = await context.getInputs();
stateHelper.setSummaryInputs(inputs);
core.debug(`inputs: ${JSON.stringify(inputs)}`);
const toolkit = new Toolkit();
await core.group(`GitHub Actions runtime token ACs`, async () => {
try {
await GitHub.printActionsRuntimeTokenACs();
} catch (e) {
core.warning(e.message);
}
});
await core.group(`Docker info`, async () => {
try {
await Docker.printVersion();
await Docker.printInfo();
} catch (e) {
core.info(e.message);
}
});
await core.group(`Proxy configuration`, async () => {
let dockerConfig: ConfigFile | undefined;
let dockerConfigMalformed = false;
try {
dockerConfig = await Docker.configFile();
} catch (e) {
dockerConfigMalformed = true;
core.warning(`Unable to parse config file ${path.join(Docker.configDir, 'config.json')}: ${e}`);
}
if (dockerConfig && dockerConfig.proxies) {
for (const host in dockerConfig.proxies) {
let prefix = '';
if (Object.keys(dockerConfig.proxies).length > 1) {
prefix = ' ';
core.info(host);
}
for (const key in dockerConfig.proxies[host]) {
core.info(`${prefix}${key}: ${dockerConfig.proxies[host][key]}`);
}
}
} else if (!dockerConfigMalformed) {
core.info('No proxy configuration found');
}
});
if (!(await toolkit.buildx.isAvailable())) {
core.setFailed(`Docker buildx is required. See https://github.com/docker/setup-buildx-action to set up buildx.`);
return;
}
stateHelper.setTmpDir(context.tmpDir());
const buildxVersion = await buildx.getVersion();
const defContext = context.defaultContext();
let inputs: context.Inputs = await context.getInputs(defContext);
stateHelper.setTmpDir(Context.tmpDir());
const args: string[] = await context.getArgs(inputs, defContext, buildxVersion);
await exec
.getExecOutput('docker', args, {
ignoreReturnCode: true
})
.then(res => {
if (res.stderr.length > 0 && res.exitCode != 0) {
throw new Error(`buildx failed with: ${res.stderr.match(/(.*)\s*$/)![0].trim()}`);
await core.group(`Buildx version`, async () => {
await toolkit.buildx.printVersion();
});
let builder: BuilderInfo;
await core.group(`Builder info`, async () => {
builder = await toolkit.builder.inspect(inputs.builder);
stateHelper.setBuilderDriver(builder.driver ?? '');
stateHelper.setBuilderEndpoint(builder.nodes?.[0]?.endpoint ?? '');
core.info(JSON.stringify(builder, null, 2));
});
const args: string[] = await context.getArgs(inputs, toolkit);
core.debug(`context.getArgs: ${JSON.stringify(args)}`);
const buildCmd = await toolkit.buildx.getCommand(args);
core.debug(`buildCmd.command: ${buildCmd.command}`);
core.debug(`buildCmd.args: ${JSON.stringify(buildCmd.args)}`);
let err: Error | undefined;
await Exec.getExecOutput(buildCmd.command, buildCmd.args, {
ignoreReturnCode: true,
env: Object.assign({}, process.env, {
BUILDX_METADATA_WARNINGS: 'true'
}) as {
[key: string]: string;
}
}).then(res => {
if (res.exitCode != 0) {
if (inputs.call && inputs.call === 'check' && res.stdout.length > 0) {
// checks warnings are printed to stdout: https://github.com/docker/buildx/pull/2647
// take the first line with the message summaryzing the warnings
err = new Error(res.stdout.split('\n')[0]?.trim());
} else if (res.stderr.length > 0) {
err = new Error(`buildx failed with: ${res.stderr.match(/(.*)\s*$/)?.[0]?.trim() ?? 'unknown error'}`);
}
}
});
const imageID = toolkit.buildxBuild.resolveImageID();
const metadata = toolkit.buildxBuild.resolveMetadata();
const digest = toolkit.buildxBuild.resolveDigest(metadata);
if (imageID) {
await core.group(`ImageID`, async () => {
core.info(imageID);
core.setOutput('imageid', imageID);
});
}
if (digest) {
await core.group(`Digest`, async () => {
core.info(digest);
core.setOutput('digest', digest);
});
}
if (metadata) {
await core.group(`Metadata`, async () => {
const metadatadt = JSON.stringify(metadata, null, 2);
core.info(metadatadt);
core.setOutput('metadata', metadatadt);
});
}
let ref: string | undefined;
await core.group(`Reference`, async () => {
ref = await buildRef(toolkit, startedTime, inputs.builder);
if (ref) {
core.info(ref);
stateHelper.setBuildRef(ref);
} else {
core.info('No build reference found');
}
});
if (buildChecksAnnotationsEnabled()) {
const warnings = toolkit.buildxBuild.resolveWarnings(metadata);
if (ref && warnings && warnings.length > 0) {
const annotations = await Buildx.convertWarningsToGitHubAnnotations(warnings, [ref]);
core.debug(`annotations: ${JSON.stringify(annotations, null, 2)}`);
if (annotations && annotations.length > 0) {
await core.group(`Generating GitHub annotations (${annotations.length} build checks found)`, async () => {
for (const annotation of annotations) {
core.warning(annotation.message, annotation);
}
});
}
}
}
await core.group(`Check build summary support`, async () => {
if (!buildSummaryEnabled()) {
core.info('Build summary disabled');
} else if (inputs.call && inputs.call !== 'build') {
core.info(`Build summary skipped for ${inputs.call} subrequest`);
} else if (GitHub.isGHES) {
core.info('Build summary is not yet supported on GHES');
} else if (!(await toolkit.buildx.versionSatisfies('>=0.23.0'))) {
core.info('Build summary requires Buildx >= 0.23.0');
} else if (!ref) {
core.info('Build summary requires a build reference');
} else {
core.info('Build summary supported!');
stateHelper.setSummarySupported();
}
});
if (err) {
throw err;
}
},
// post
async () => {
if (stateHelper.isSummarySupported) {
await core.group(`Generating build summary`, async () => {
try {
const recordUploadEnabled = buildRecordUploadEnabled();
let recordRetentionDays: number | undefined;
if (recordUploadEnabled) {
recordRetentionDays = buildRecordRetentionDays();
}
const buildxHistory = new BuildxHistory();
const exportRes = await buildxHistory.export({
refs: stateHelper.buildRef ? [stateHelper.buildRef] : []
});
core.info(`Build record written to ${exportRes.dockerbuildFilename} (${Util.formatFileSize(exportRes.dockerbuildSize)})`);
let uploadRes: UploadArtifactResponse | undefined;
if (recordUploadEnabled) {
uploadRes = await GitHubArtifact.upload({
filename: exportRes.dockerbuildFilename,
retentionDays: recordRetentionDays
});
}
await GitHubSummary.writeBuildSummary({
exportRes: exportRes,
uploadRes: uploadRes,
inputs: stateHelper.summaryInputs,
driver: stateHelper.builderDriver,
endpoint: stateHelper.builderEndpoint
});
} catch (e) {
core.warning(e.message);
}
});
}
if (stateHelper.tmpDir.length > 0) {
await core.group(`Removing temp folder ${stateHelper.tmpDir}`, async () => {
try {
fs.rmSync(stateHelper.tmpDir, {recursive: true});
} catch {
core.warning(`Failed to remove temp folder ${stateHelper.tmpDir}`);
}
});
const imageID = await buildx.getImageID();
if (imageID) {
core.startGroup(`Extracting digest`);
core.info(`${imageID}`);
context.setOutput('digest', imageID);
core.endGroup();
}
} catch (error) {
core.setFailed(error.message);
}
);
async function buildRef(toolkit: Toolkit, since: Date, builder?: string): Promise<string> {
// get ref from metadata file
const ref = toolkit.buildxBuild.resolveRef();
if (ref) {
return ref;
}
// otherwise, look for the very first build ref since the build has started
if (!builder) {
const currentBuilder = await toolkit.builder.inspect();
builder = currentBuilder.name;
}
const refs = Buildx.refs({
dir: Buildx.refsDir,
builderName: builder,
since: since
});
return Object.keys(refs).length > 0 ? Object.keys(refs)[0] : '';
}
async function cleanup(): Promise<void> {
if (stateHelper.tmpDir.length > 0) {
core.startGroup(`Removing temp folder ${stateHelper.tmpDir}`);
fs.rmdirSync(stateHelper.tmpDir, {recursive: true});
core.endGroup();
function buildChecksAnnotationsEnabled(): boolean {
if (process.env.DOCKER_BUILD_CHECKS_ANNOTATIONS) {
return Util.parseBool(process.env.DOCKER_BUILD_CHECKS_ANNOTATIONS);
}
return true;
}
if (!stateHelper.IsPost) {
run();
} else {
cleanup();
function buildSummaryEnabled(): boolean {
if (process.env.DOCKER_BUILD_SUMMARY) {
return Util.parseBool(process.env.DOCKER_BUILD_SUMMARY);
}
return true;
}
function buildRecordUploadEnabled(): boolean {
if (process.env.DOCKER_BUILD_RECORD_UPLOAD) {
return Util.parseBool(process.env.DOCKER_BUILD_RECORD_UPLOAD);
}
return true;
}
function buildRecordRetentionDays(): number | undefined {
const val = process.env.DOCKER_BUILD_RECORD_RETENTION_DAYS;
if (val) {
const res = parseInt(val);
if (isNaN(res)) {
throw new Error(`Invalid build record retention days: ${val}`);
}
return res;
}
}
+61 -3
View File
@@ -1,12 +1,70 @@
import * as core from '@actions/core';
export const IsPost = !!process.env['STATE_isPost'];
import {Build} from '@docker/actions-toolkit/lib/buildx/build.js';
import {Inputs} from './context.js';
export const tmpDir = process.env['STATE_tmpDir'] || '';
export const builderDriver = process.env['STATE_builderDriver'] || '';
export const builderEndpoint = process.env['STATE_builderEndpoint'] || '';
export const summaryInputs = process.env['STATE_summaryInputs'] ? JSON.parse(process.env['STATE_summaryInputs']) : undefined;
export const buildRef = process.env['STATE_buildRef'] || '';
export const isSummarySupported = !!process.env['STATE_isSummarySupported'];
export function setTmpDir(tmpDir: string) {
core.saveState('tmpDir', tmpDir);
}
if (!IsPost) {
core.saveState('isPost', 'true');
export function setBuilderDriver(builderDriver: string) {
core.saveState('builderDriver', builderDriver);
}
export function setBuilderEndpoint(builderEndpoint: string) {
core.saveState('builderEndpoint', builderEndpoint);
}
export function setBuildRef(buildRef: string) {
core.saveState('buildRef', buildRef);
}
export function setSummarySupported() {
core.saveState('isSummarySupported', 'true');
}
export function setSummaryInputs(inputs: Inputs) {
const res = {};
for (const key of Object.keys(inputs)) {
if (key === 'github-token') {
continue;
}
const value: string | string[] | boolean = inputs[key];
if (typeof value === 'boolean' && !value) {
continue;
} else if (Array.isArray(value)) {
if (value.length === 0) {
continue;
} else if (key === 'secrets' && value.length > 0) {
const secretKeys: string[] = [];
for (const secret of value) {
try {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const [skey, _] = Build.parseSecretKvp(secret, true);
secretKeys.push(skey);
} catch {
// ignore invalid secret
}
}
if (secretKeys.length > 0) {
res[key] = secretKeys;
}
continue;
}
} else if (!value) {
continue;
}
res[key] = value;
}
core.saveState('summaryInputs', JSON.stringify(res));
}
+1 -1
View File
@@ -1,3 +1,3 @@
# syntax=docker/dockerfile:1
FROM alpine
RUN echo "Hello world!"
+3
View File
@@ -0,0 +1,3 @@
# syntax=docker/dockerfile:1
FROM busybox
RUN cat /etc/hosts
+3
View File
@@ -0,0 +1,3 @@
# syntax=docker/dockerfile:1
FROM alpine
RUN cat /proc/self/cgroup
+19
View File
@@ -0,0 +1,19 @@
# syntax=docker/dockerfile:1
FROM golang:alpine AS base
ENV CGO_ENABLED=0
RUN apk add --no-cache file git
WORKDIR /src
FROM base AS build
RUN --mount=type=bind,target=/src \
--mount=type=cache,target=/root/.cache/go-build \
go build -ldflags "-s -w" -o /usr/bin/app .
FROM scratch AS binary
COPY --from=build /usr/bin/app /bin/app
FROM alpine AS image
COPY --from=build /usr/bin/app /bin/app
EXPOSE 8080
ENTRYPOINT ["/bin/app"]
+3
View File
@@ -0,0 +1,3 @@
module github.com/docker/build-push-action/test/go
go 1.18
+14
View File
@@ -0,0 +1,14 @@
package main
import (
"fmt"
"log"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, Go!")
})
log.Fatal(http.ListenAndServe(":8080", nil))
}
+12
View File
@@ -0,0 +1,12 @@
frOM busybox as base
cOpy lint.Dockerfile .
from scratch
MAINTAINER moby@example.com
COPy --from=base \
/lint.Dockerfile \
/
CMD [ "echo", "Hello, Norway!" ]
CMD [ "echo", "Hello, Sweden!" ]
ENTRYPOINT my-program start
+3 -4
View File
@@ -1,9 +1,9 @@
FROM --platform=$BUILDPLATFORM golang:alpine AS build
# syntax=docker/dockerfile:1
FROM --platform=$BUILDPLATFORM alpine AS build
ARG TARGETPLATFORM
ARG BUILDPLATFORM
RUN echo "I am running on $BUILDPLATFORM, building for $TARGETPLATFORM" > /log
RUN apk --update --no-cache add \
shadow \
sudo \
@@ -13,10 +13,9 @@ RUN apk --update --no-cache add \
&& rm -rf /tmp/* /var/cache/apk/*
USER buildx
RUN sudo chown buildx. /log
RUN sudo chown buildx: /log
USER root
FROM alpine
COPY --from=build /log /log
RUN ls -al /log
+1
View File
@@ -1,3 +1,4 @@
# syntax=docker/dockerfile:1
FROM --platform=$BUILDPLATFORM golang:alpine AS build
ARG TARGETPLATFORM
+4
View File
@@ -0,0 +1,4 @@
# syntax=docker/dockerfile:1
FROM debian
RUN echo "Hello debian!"
+4
View File
@@ -0,0 +1,4 @@
# syntax=docker/dockerfile:1
FROM alpine
RUN cat /etc/*release
+9
View File
@@ -0,0 +1,9 @@
# syntax=docker/dockerfile:1
FROM busybox AS base
RUN echo "Hello world!" > /hello
FROM alpine AS build
COPY --from=base /hello /hello
RUN uname -a
FROM build
+9
View File
@@ -0,0 +1,9 @@
# syntax=docker/dockerfile:1
FROM alpine
RUN apk add --no-cache curl net-tools
ARG HTTP_PROXY
ARG HTTPS_PROXY
RUN printenv HTTP_PROXY
RUN printenv HTTPS_PROXY
RUN netstat -aptn
RUN curl --retry 5 --retry-all-errors --retry-delay 0 --connect-timeout 5 --proxy $HTTP_PROXY -v --insecure --head https://www.google.com
+4
View File
@@ -0,0 +1,4 @@
# syntax=docker/dockerfile:1
FROM busybox
RUN --mount=type=secret,id=MYSECRET \
echo "MYSECRET=$(cat /run/secrets/MYSECRET)"
+1
View File
@@ -0,0 +1 @@
foo
+3
View File
@@ -0,0 +1,3 @@
# syntax=docker/dockerfile:1
FROM busybox
RUN mount | grep /dev/shm
+3
View File
@@ -0,0 +1,3 @@
# syntax=docker/dockerfile:1
FROM busybox
RUN ulimit -a
+8 -12
View File
@@ -1,21 +1,17 @@
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"lib": [
"es6",
"dom"
],
"module": "nodenext",
"moduleResolution": "nodenext",
"esModuleInterop": true,
"newLine": "lf",
"outDir": "./lib",
"rootDir": "./src",
"strict": true,
"forceConsistentCasingInFileNames": true,
"noImplicitAny": false,
"esModuleInterop": true,
"sourceMap": true
"resolveJsonModule": true,
"useUnknownInCatchVariables": false,
},
"exclude": [
"node_modules",
"**/*.test.ts"
"include": [
"src/**/*.ts"
]
}
+16
View File
@@ -0,0 +1,16 @@
import {defineConfig} from 'vitest/config';
export default defineConfig({
test: {
clearMocks: true,
environment: 'node',
setupFiles: ['./__tests__/setup.unit.ts'],
include: ['**/*.test.ts'],
coverage: {
provider: 'v8',
reporter: ['clover'],
include: ['src/**/*.ts'],
exclude: ['src/**/main.ts']
}
}
});
+6172 -3768
View File
File diff suppressed because it is too large. Load diff