Compare commits

..
206 Commits
Author SHA1 Message Date
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
42 changed files with 10166 additions and 4435 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.*
+3
View File
@@ -0,0 +1,3 @@
/dist/**
/coverage/**
/node_modules/**
+3 -2
View File
@@ -1,18 +1,19 @@
{
"env": {
"node": true,
"es2021": true,
"es6": true,
"jest": true
},
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
"plugin:jest/recommended",
"plugin:prettier/recommended"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": "latest",
"ecmaVersion": 2023,
"sourceType": "module"
},
"plugins": [
+2
View File
@@ -1,2 +1,4 @@
/.yarn/releases/** binary
/.yarn/plugins/** binary
/dist/** linguist-generated=true
/lib/** linguist-generated=true
Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

+6 -5
View File
@@ -75,10 +75,11 @@ jobs:
if: inputs.type == 'local'
run: |
sudo -E bash ./.github/e2e/${{ inputs.id }}/install.sh
sudo chown $(id -u):$(id -g) -R ~/.docker
-
name: Docker meta
id: meta
uses: docker/metadata-action@v4
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY_SLUG || inputs.slug }}
tags: |
@@ -87,13 +88,13 @@ jobs:
type=raw,gh-runid-${{ github.run_id }}
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v3
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
version: ${{ matrix.buildx_version }}
config: /tmp/buildkitd.toml
buildkitd-config: /tmp/buildkitd.toml
buildkitd-flags: --debug --allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host
driver-opts: |
image=${{ matrix.buildkit_image }}
@@ -101,7 +102,7 @@ jobs:
-
name: Login to Registry
if: github.event_name != 'pull_request' && (env.REGISTRY_USER || inputs.username_secret) != ''
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY_FQDN || inputs.registry }}
username: ${{ env.REGISTRY_USER || secrets[inputs.username_secret] }}
+464 -53
View File
@@ -38,7 +38,7 @@ jobs:
path: action
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
@@ -64,11 +64,11 @@ jobs:
path: action
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v3
-
name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
@@ -113,11 +113,11 @@ jobs:
path: action
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v3
-
name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
@@ -170,11 +170,11 @@ jobs:
uses: actions/checkout@v4
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v3
-
name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
@@ -220,7 +220,7 @@ jobs:
-
name: Docker meta
id: meta
uses: docker/metadata-action@v4
uses: docker/metadata-action@v5
with:
images: ${{ env.DOCKER_IMAGE }}
tags: |
@@ -233,7 +233,7 @@ jobs:
type=sha
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
@@ -302,10 +302,10 @@ jobs:
uses: actions/checkout@v4
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v3
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
@@ -378,7 +378,7 @@ jobs:
uses: actions/checkout@v4
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
@@ -393,6 +393,31 @@ jobs:
MYSECRET=foo
INVALID_SECRET=
secret-envs:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Set up Docker buildx
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
image=${{ inputs.buildkit-image || env.BUILDKIT_IMAGE }}
-
name: Build
uses: ./
env:
ENV_SECRET: foo
with:
context: .
file: ./test/secret.Dockerfile
secret-envs: |
MYSECRET=ENV_SECRET
INVALID_SECRET=
network:
runs-on: ubuntu-latest
steps:
@@ -401,7 +426,7 @@ jobs:
uses: actions/checkout@v4
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
@@ -425,7 +450,7 @@ jobs:
uses: actions/checkout@v4
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
@@ -447,7 +472,7 @@ jobs:
uses: actions/checkout@v4
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
@@ -472,7 +497,7 @@ jobs:
uses: actions/checkout@v4
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
@@ -495,7 +520,7 @@ jobs:
uses: actions/checkout@v4
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
@@ -520,7 +545,7 @@ jobs:
uses: actions/checkout@v4
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
@@ -554,7 +579,7 @@ jobs:
uses: actions/checkout@v4
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
version: ${{ matrix.buildx }}
driver-opts: |
@@ -573,19 +598,31 @@ jobs:
strategy:
fail-fast: false
matrix:
attrs:
- ''
- mode=max
- builder-id=foo
- false
- true
include:
- target: image
output: type=image,name=localhost:5000/name/app:latest,push=true
attr: mode=max
- target: image
output: type=image,name=localhost:5000/name/app:latest,push=true
attr: ''
- target: binary
output: /tmp/buildx-build
attr: mode=max
- target: binary
output: /tmp/buildx-build
attr: ''
services:
registry:
image: registry:2
ports:
- 5000:5000
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
@@ -597,11 +634,24 @@ jobs:
with:
context: ./test/go
file: ./test/go/Dockerfile
target: binary
outputs: type=oci,dest=/tmp/build.tar
provenance: ${{ matrix.attrs }}
cache-from: type=gha,scope=provenance
cache-to: type=gha,scope=provenance,mode=max
target: ${{ matrix.target }}
outputs: ${{ matrix.output }}
provenance: ${{ matrix.attr }}
-
name: Inspect Provenance
if: matrix.target == 'image'
run: |
docker buildx imagetools inspect localhost:5000/name/app:latest --format '{{json .Provenance}}'
-
name: Check output folder
if: matrix.target == 'binary'
run: |
tree /tmp/buildx-build
-
name: Print local Provenance
if: matrix.target == 'binary'
run: |
cat /tmp/buildx-build/provenance.json | jq
sbom:
runs-on: ubuntu-latest
@@ -624,7 +674,7 @@ jobs:
uses: actions/checkout@v4
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
@@ -642,22 +692,17 @@ jobs:
cache-from: type=gha,scope=attests-${{ matrix.target }}
cache-to: type=gha,scope=attests-${{ matrix.target }},mode=max
-
name: Inspect image
name: Inspect SBOM
if: matrix.target == 'image'
run: |
docker buildx imagetools inspect localhost:5000/name/app:latest --format '{{json .}}'
docker buildx imagetools inspect localhost:5000/name/app:latest --format '{{json .SBOM}}'
-
name: Check output folder
if: matrix.target == 'binary'
run: |
tree /tmp/buildx-build
-
name: Print provenance
if: matrix.target == 'binary'
run: |
cat /tmp/buildx-build/provenance.json | jq
-
name: Print SBOM
name: Print local SBOM
if: matrix.target == 'binary'
run: |
cat /tmp/buildx-build/sbom.spdx.json | jq
@@ -681,11 +726,11 @@ jobs:
uses: actions/checkout@v4
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v3
-
name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
@@ -750,7 +795,7 @@ jobs:
uses: actions/checkout@v4
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver: ${{ matrix.driver }}
@@ -820,10 +865,10 @@ jobs:
uses: actions/checkout@v4
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v3
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
@@ -869,10 +914,10 @@ jobs:
uses: actions/checkout@v4
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v3
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
@@ -897,6 +942,63 @@ jobs:
run: |
docker buildx imagetools inspect localhost:5000/name/app:1.0.0 --format '{{json .}}'
local-cache:
runs-on: ubuntu-latest
services:
registry:
image: registry:2
ports:
- 5000:5000
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Set up QEMU
uses: docker/setup-qemu-action@v3
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
network=host
image=${{ inputs.buildkit-image || env.BUILDKIT_IMAGE }}
buildkitd-flags: --debug
-
name: Cache Build
uses: actions/cache@v4
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-local-test-${{ github.sha }}
restore-keys: |
${{ runner.os }}-local-test-
-
name: Build and push
uses: ./
with:
context: ./test
file: ./test/multi.Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
localhost:5000/name/app:latest
localhost:5000/name/app:1.0.0
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new
-
name: Inspect
run: |
docker buildx imagetools inspect localhost:5000/name/app:1.0.0 --format '{{json .}}'
-
# 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
standalone:
runs-on: ubuntu-latest
steps:
@@ -913,7 +1015,7 @@ jobs:
fi
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
@@ -934,7 +1036,7 @@ jobs:
uses: actions/checkout@v4
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
@@ -956,7 +1058,7 @@ jobs:
uses: actions/checkout@v4
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver: docker
@@ -990,7 +1092,7 @@ jobs:
uses: actions/checkout@v4
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
@@ -1053,7 +1155,7 @@ jobs:
echo '{"proxies":{"default":{"httpProxy":"http://127.0.0.1:3128","httpsProxy":"http://127.0.0.1:3128"}}}' > ~/.docker/config.json
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
@@ -1085,7 +1187,7 @@ jobs:
uses: actions/checkout@v4
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
@@ -1100,3 +1202,312 @@ jobs:
with:
context: ./test
file: ./test/Dockerfile
annotations:
runs-on: ubuntu-latest
env:
DOCKER_IMAGE: localhost:5000/name/app
services:
registry:
image: registry:2
ports:
- 5000:5000
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Docker meta
id: meta
uses: docker/metadata-action@v5
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@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
network=host
image=${{ inputs.buildkit-image || env.BUILDKIT_IMAGE }}
-
name: Build and push to local registry
uses: ./
with:
context: ./test
file: ./test/Dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}
annotations: |
index:com.example.key=value
index:com.example.key2=value2
manifest:com.example.key3=value3
-
name: Check manifest
run: |
docker buildx imagetools inspect ${{ env.DOCKER_IMAGE }}:${{ steps.meta.outputs.version }} --format '{{json .}}'
multi-output:
runs-on: ubuntu-latest
services:
registry:
image: registry:2
ports:
- 5000:5000
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Set up QEMU
uses: docker/setup-qemu-action@v3
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
network=host
image=${{ inputs.buildkit-image || env.BUILDKIT_IMAGE }}
buildkitd-flags: --debug
-
name: Build
uses: ./
with:
context: ./test
file: ./test/Dockerfile
outputs: |
type=image,name=localhost:5000/name/app:latest,push=true
type=docker,name=app:local
type=oci,dest=/tmp/oci.tar
-
name: Check registry
run: |
docker buildx imagetools inspect localhost:5000/name/app:latest --format '{{json .}}'
-
name: Check docker
run: |
docker image inspect app:local
-
name: Check oci
run: |
set -ex
mkdir -p /tmp/oci-out
tar xf /tmp/oci.tar -C /tmp/oci-out
tree -nh /tmp/oci-out
load-and-push:
runs-on: ubuntu-latest
services:
registry:
image: registry:2
ports:
- 5000:5000
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Set up QEMU
uses: docker/setup-qemu-action@v3
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
network=host
image=${{ inputs.buildkit-image || env.BUILDKIT_IMAGE }}
buildkitd-flags: --debug
-
name: Build
uses: ./
with:
context: ./test
file: ./test/Dockerfile
load: true
push: true
tags: localhost:5000/name/app:latest
-
name: Check registry
run: |
docker buildx imagetools inspect localhost:5000/name/app:latest --format '{{json .}}'
-
name: Check docker
run: |
docker image inspect localhost:5000/name/app:latest
summary-disable:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v4
with:
path: action
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
image=${{ inputs.buildkit-image || env.BUILDKIT_IMAGE }}
-
name: Build
uses: ./action
with:
file: ./test/Dockerfile
env:
DOCKER_BUILD_SUMMARY: false
summary-disable-deprecated:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v4
with:
path: action
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
image=${{ inputs.buildkit-image || env.BUILDKIT_IMAGE }}
-
name: Build
uses: ./action
with:
file: ./test/Dockerfile
env:
DOCKER_BUILD_NO_SUMMARY: true
summary-not-supported:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v4
with:
path: action
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: v0.12.1
driver-opts: |
image=${{ inputs.buildkit-image || env.BUILDKIT_IMAGE }}
-
name: Build
uses: ./action
with:
file: ./test/Dockerfile
record-upload-disable:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v4
with:
path: action
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
image=${{ inputs.buildkit-image || env.BUILDKIT_IMAGE }}
-
name: Build
uses: ./action
with:
file: ./test/Dockerfile
env:
DOCKER_BUILD_RECORD_UPLOAD: false
record-retention-days:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
days:
- 2
- 0
steps:
-
name: Checkout
uses: actions/checkout@v4
with:
path: action
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
image=${{ inputs.buildkit-image || env.BUILDKIT_IMAGE }}
-
name: Build
uses: ./action
with:
file: ./test/Dockerfile
env:
DOCKER_BUILD_RECORD_RETENTION_DAYS: ${{ matrix.days }}
checks:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
buildx-version:
- latest
- v0.14.1
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: ${{ matrix.buildx-version }}
driver-opts: |
image=${{ inputs.buildkit-image || env.BUILDKIT_IMAGE }}
-
name: Build
uses: ./
with:
context: ./test
file: ./test/lint.Dockerfile
annotations-disabled:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
driver-opts: |
image=${{ inputs.buildkit-image || env.BUILDKIT_IMAGE }}
-
name: Build
uses: ./
with:
context: ./test
file: ./test/lint.Dockerfile
env:
DOCKER_BUILD_CHECKS_ANNOTATIONS: false
+2 -2
View File
@@ -90,8 +90,8 @@ jobs:
type: remote
-
name: Artifactory
registry: sforzando-build-team-local.jfrog.io
slug: sforzando-build-team-local.jfrog.io/build-push-action-e2e
registry: infradock.jfrog.io
slug: infradock.jfrog.io/test-ghaction/build-push-action
username_secret: ARTIFACTORY_USERNAME
password_secret: ARTIFACTORY_TOKEN
type: remote
+3 -2
View File
@@ -20,11 +20,12 @@ jobs:
uses: actions/checkout@v4
-
name: Test
uses: docker/bake-action@v3
uses: docker/bake-action@v5
with:
targets: test
-
name: Upload coverage
uses: codecov/codecov-action@v3
uses: codecov/codecov-action@v4
with:
file: ./coverage/clover.xml
token: ${{ secrets.CODECOV_TOKEN }}
+1 -1
View File
@@ -40,6 +40,6 @@ jobs:
uses: actions/checkout@v4
-
name: Validate
uses: docker/bake-action@v3
uses: docker/bake-action@v5
with:
targets: ${{ matrix.target }}
+14 -52
View File
@@ -1,7 +1,5 @@
node_modules
lib
# https://raw.githubusercontent.com/github/gitignore/main/Node.gitignore
# Rest of the file pulled from https://github.com/github/gitignore/blob/master/Node.gitignore
# Logs
logs
*.log
@@ -9,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
@@ -19,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
@@ -56,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/
Binary file not shown.
+13
View File
@@ -0,0 +1,13 @@
logFilters:
- code: YN0013
level: discard
- code: YN0019
level: discard
- code: YN0076
level: discard
nodeLinker: node-modules
plugins:
- path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
spec: "@yarnpkg/plugin-interactive-tools"
+50 -47
View File
@@ -19,21 +19,11 @@ ___
* [Git context](#git-context)
* [Path context](#path-context)
* [Examples](#examples)
* [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/)
* [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/)
* [Summaries](#summaries)
* [Customizing](#customizing)
* [inputs](#inputs)
* [outputs](#outputs)
* [environment variables](#environment-variables)
* [Troubleshooting](#troubleshooting)
* [Contributing](#contributing)
@@ -65,8 +55,6 @@ name: ci
on:
push:
branches:
- 'main'
jobs:
docker:
@@ -74,19 +62,19 @@ jobs:
steps:
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v3
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
-
name: Login to Docker Hub
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v4
uses: docker/build-push-action@v6
with:
push: true
tags: user/app:latest
@@ -104,28 +92,15 @@ expression `{{defaultContext}}`. Here we can use it to provide a subdirectory
to the default Git context:
```yaml
-
# Setting up Docker Buildx with docker-container driver is required
# at the moment to be able to use a subdirectory with Git context
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
-
name: Build and push
uses: docker/build-push-action@v4
uses: docker/build-push-action@v6
with:
context: "{{defaultContext}}:mysubdir"
push: true
tags: user/app:latest
```
> **Warning**
>
> Subdirectory for Git context is available from [BuildKit v0.9.0](https://github.com/moby/buildkit/releases/tag/v0.9.0).
> If you're using the `docker` builder (default if `setup-buildx-action` not used),
> then BuildKit in Docker Engine will be used. As Docker Engine < v22.x.x embeds
> Buildkit 0.8.2 at the moment, it does not support this feature. It's therefore
> required to use the `setup-buildx-action` at the moment.
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)
@@ -134,7 +109,7 @@ named `GIT_AUTH_TOKEN` to be able to authenticate against it with Buildx:
```yaml
-
name: Build and push
uses: docker/build-push-action@v4
uses: docker/build-push-action@v6
with:
push: true
tags: user/app:latest
@@ -149,8 +124,6 @@ name: ci
on:
push:
branches:
- 'main'
jobs:
docker:
@@ -158,22 +131,22 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v3
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
-
name: Login to Docker Hub
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v4
uses: docker/build-push-action@v6
with:
context: .
push: true
@@ -194,12 +167,35 @@ 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.
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
@@ -217,6 +213,7 @@ Following inputs can be used as `step.with` keys
|--------------------|-------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `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) |
@@ -231,13 +228,14 @@ Following inputs can be used as `step.with` keys
| `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`) |
| `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 |
@@ -246,13 +244,9 @@ Following inputs can be used as `step.with` keys
| `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 }}`) |
> **Note**
>
> * ¹ multiple `outputs` are [not yet supported](https://github.com/moby/buildkit/issues/1555)
### outputs
Following outputs are available
The following outputs are available:
| Name | Type | Description |
|------------|---------|-----------------------|
@@ -260,6 +254,15 @@ Following outputs are available
| `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)
+7 -7
View File
@@ -45,13 +45,13 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v3
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
buildkitd-flags: --debug
-
@@ -59,7 +59,7 @@ jobs:
uses: crazy-max/ghaction-setup-containerd@v2
-
name: Build Docker image
uses: docker/build-push-action@v4
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64,linux/arm64
@@ -112,7 +112,7 @@ to generate sanitized tags:
tags: latest
- name: Build and push
uses: docker/build-push-action@v4
uses: docker/build-push-action@v6
with:
context: .
push: true
@@ -130,7 +130,7 @@ Or a dedicated step to sanitize the slug:
script: return 'ghcr.io/${{ github.repository }}'.toLowerCase()
- name: Build and push
uses: docker/build-push-action@v4
uses: docker/build-push-action@v6
with:
context: .
push: true
@@ -156,7 +156,7 @@ Sometimes when your workflows are heavy consumers of disk storage, it can happen
```yaml
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
driver: docker
```
+221 -41
View File
@@ -1,13 +1,16 @@
import {beforeEach, describe, expect, jest, test} from '@jest/globals';
import * as fs from 'fs';
import * as path from 'path';
import {Builder} from '@docker/actions-toolkit/lib/buildx/builder';
import {Buildx} from '@docker/actions-toolkit/lib/buildx/buildx';
import {Build} from '@docker/actions-toolkit/lib/buildx/build';
import {Context} from '@docker/actions-toolkit/lib/context';
import {Docker} from '@docker/actions-toolkit/lib/docker/docker';
import {GitHub} from '@docker/actions-toolkit/lib/github';
import {Toolkit} from '@docker/actions-toolkit/lib/toolkit';
import {BuilderInfo} from '@docker/actions-toolkit/lib/types/builder';
import {BuilderInfo} from '@docker/actions-toolkit/lib/types/buildx/builder';
import {GitHubRepo} from '@docker/actions-toolkit/lib/types/github';
import * as context from '../src/context';
@@ -35,6 +38,16 @@ jest.spyOn(Docker, 'isAvailable').mockImplementation(async (): Promise<boolean>
return true;
});
const metadataJson = path.join(tmpDir, 'metadata.json');
jest.spyOn(Build.prototype, 'getMetadataFilePath').mockImplementation((): string => {
return metadataJson;
});
const imageIDFilePath = path.join(tmpDir, 'iidfile.txt');
jest.spyOn(Build.prototype, 'getImageIDFilePath').mockImplementation((): string => {
return imageIDFilePath;
});
jest.spyOn(Builder.prototype, 'inspect').mockImplementation(async (): Promise<BuilderInfo> => {
return {
name: 'builder2',
@@ -78,7 +91,7 @@ describe('getArgs', () => {
]),
[
'build',
'--iidfile', path.join(tmpDir, 'iidfile'),
'--iidfile', imageIDFilePath,
'.'
]
],
@@ -101,7 +114,7 @@ ccc"`],
'--build-arg', 'MY_ARG=val1,val2,val3',
'--build-arg', 'ARG=val',
'--build-arg', `MULTILINE=aaaa\nbbbb\nccc`,
'--iidfile', path.join(tmpDir, 'iidfile'),
'--iidfile', imageIDFilePath,
'https://github.com/docker/build-push-action.git#refs/heads/master'
]
],
@@ -117,7 +130,7 @@ ccc"`],
]),
[
'build',
'--iidfile', path.join(tmpDir, 'iidfile'),
'--iidfile', imageIDFilePath,
'--tag', 'name/app:7.4',
'--tag', 'name/app:latest',
'https://github.com/docker/build-push-action.git#refs/heads/master'
@@ -172,7 +185,7 @@ ccc"`],
]),
[
'build',
'--iidfile', path.join(tmpDir, 'iidfile'),
'--iidfile', imageIDFilePath,
'.'
]
],
@@ -189,7 +202,7 @@ ccc"`],
]),
[
'build',
'--iidfile', path.join(tmpDir, 'iidfile'),
'--iidfile', imageIDFilePath,
'--secret', `id=GIT_AUTH_TOKEN,src=${tmpName}`,
'.'
]
@@ -230,7 +243,7 @@ ccc"`],
[
'build',
'--file', './test/Dockerfile',
'--iidfile', path.join(tmpDir, 'iidfile'),
'--iidfile', imageIDFilePath,
'--platform', 'linux/amd64,linux/arm64',
'--secret', `id=GIT_AUTH_TOKEN,src=${tmpName}`,
'--builder', 'builder-git-context-2',
@@ -264,7 +277,7 @@ ccc"`],
[
'build',
'--file', './test/Dockerfile',
'--iidfile', path.join(tmpDir, 'iidfile'),
'--iidfile', imageIDFilePath,
'--platform', 'linux/amd64,linux/arm64',
'--secret', `id=GIT_AUTH_TOKEN,src=${tmpName}`,
'--secret', `id=MYSECRET,src=${tmpName}`,
@@ -301,7 +314,7 @@ ccc`],
[
'build',
'--file', './test/Dockerfile',
'--iidfile', path.join(tmpDir, 'iidfile'),
'--iidfile', imageIDFilePath,
'--platform', 'linux/amd64,linux/arm64',
'--secret', `id=GIT_AUTH_TOKEN,src=${tmpName}`,
'--secret', `id=MYSECRET,src=${tmpName}`,
@@ -330,7 +343,7 @@ ccc`],
[
'build',
'--file', './test/Dockerfile',
'--iidfile', path.join(tmpDir, 'iidfile'),
'--iidfile', imageIDFilePath,
'--secret', `id=MY_SECRET,src=${tmpName}`,
'--builder', 'builder-git-context-2',
'--network', 'host',
@@ -377,8 +390,8 @@ ccc`],
'--add-host', 'docker:10.180.0.1',
'--add-host', 'foo:10.0.0.1',
'--file', './test/Dockerfile',
'--iidfile', path.join(tmpDir, 'iidfile'),
'--metadata-file', path.join(tmpDir, 'metadata-file'),
'--iidfile', imageIDFilePath,
'--metadata-file', metadataJson,
'--network', 'host',
'--push',
'.'
@@ -406,11 +419,11 @@ nproc=3`],
'--add-host', 'foo:10.0.0.1',
'--cgroup-parent', 'foo',
'--file', './test/Dockerfile',
'--iidfile', path.join(tmpDir, 'iidfile'),
'--iidfile', imageIDFilePath,
'--shm-size', '2g',
'--ulimit', 'nofile=1024:1024',
'--ulimit', 'nproc=3',
'--metadata-file', path.join(tmpDir, 'metadata-file'),
'--metadata-file', metadataJson,
'.'
]
],
@@ -426,8 +439,8 @@ nproc=3`],
]),
[
'build',
'--iidfile', path.join(tmpDir, 'iidfile'),
'--metadata-file', path.join(tmpDir, 'metadata-file'),
'--iidfile', imageIDFilePath,
'--metadata-file', metadataJson,
'https://github.com/docker/build-push-action.git#refs/heads/master:docker'
]
],
@@ -444,9 +457,9 @@ nproc=3`],
]),
[
'build',
'--iidfile', path.join(tmpDir, 'iidfile'),
'--iidfile', imageIDFilePath,
'--secret', `id=GIT_AUTH_TOKEN,src=${tmpName}`,
'--metadata-file', path.join(tmpDir, 'metadata-file'),
'--metadata-file', metadataJson,
'https://github.com/docker/build-push-action.git#refs/heads/master:subdir'
]
],
@@ -463,8 +476,8 @@ nproc=3`],
]),
[
'build',
'--iidfile', path.join(tmpDir, 'iidfile'),
'--metadata-file', path.join(tmpDir, 'metadata-file'),
'--iidfile', imageIDFilePath,
'--metadata-file', metadataJson,
'.'
]
],
@@ -480,9 +493,9 @@ nproc=3`],
]),
[
'build',
'--iidfile', path.join(tmpDir, 'iidfile'),
"--provenance", `mode=min,inline-only=true,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789`,
'--metadata-file', path.join(tmpDir, 'metadata-file'),
'--iidfile', imageIDFilePath,
'--attest', `type=provenance,mode=min,inline-only=true,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789/attempts/1`,
'--metadata-file', metadataJson,
'.'
]
],
@@ -499,9 +512,9 @@ nproc=3`],
]),
[
'build',
'--iidfile', path.join(tmpDir, 'iidfile'),
"--provenance", `builder-id=https://github.com/docker/build-push-action/actions/runs/123456789`,
'--metadata-file', path.join(tmpDir, 'metadata-file'),
'--iidfile', imageIDFilePath,
'--attest', `type=provenance,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789/attempts/1`,
'--metadata-file', metadataJson,
'.'
]
],
@@ -518,9 +531,9 @@ nproc=3`],
]),
[
'build',
'--iidfile', path.join(tmpDir, 'iidfile'),
"--provenance", `mode=max,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789`,
'--metadata-file', path.join(tmpDir, 'metadata-file'),
'--iidfile', imageIDFilePath,
'--attest', `type=provenance,mode=max,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789/attempts/1`,
'--metadata-file', metadataJson,
'.'
]
],
@@ -537,9 +550,9 @@ nproc=3`],
]),
[
'build',
'--iidfile', path.join(tmpDir, 'iidfile'),
"--provenance", 'false',
'--metadata-file', path.join(tmpDir, 'metadata-file'),
'--iidfile', imageIDFilePath,
'--attest', 'type=provenance,disabled=true',
'--metadata-file', metadataJson,
'.'
]
],
@@ -556,9 +569,9 @@ nproc=3`],
]),
[
'build',
'--iidfile', path.join(tmpDir, 'iidfile'),
"--provenance", 'builder-id=foo',
'--metadata-file', path.join(tmpDir, 'metadata-file'),
'--iidfile', imageIDFilePath,
'--attest', 'type=provenance,builder-id=foo',
'--metadata-file', metadataJson,
'.'
]
],
@@ -575,9 +588,9 @@ nproc=3`],
]),
[
'build',
'--iidfile', path.join(tmpDir, 'iidfile'),
'--iidfile', imageIDFilePath,
"--output", 'type=docker',
'--metadata-file', path.join(tmpDir, 'metadata-file'),
'--metadata-file', metadataJson,
'.'
]
],
@@ -593,9 +606,9 @@ nproc=3`],
]),
[
'build',
'--iidfile', path.join(tmpDir, 'iidfile'),
'--iidfile', imageIDFilePath,
'--load',
'--metadata-file', path.join(tmpDir, 'metadata-file'),
'--metadata-file', metadataJson,
'.'
]
],
@@ -613,9 +626,176 @@ nproc=3`],
[
'build',
'--build-arg', 'FOO=bar#baz',
'--iidfile', path.join(tmpDir, 'iidfile'),
'--iidfile', imageIDFilePath,
'--load',
'--metadata-file', path.join(tmpDir, 'metadata-file'),
'--metadata-file', metadataJson,
'.'
]
],
[
26,
'0.10.0',
new Map<string, string>([
['context', '.'],
['no-cache', 'false'],
['load', 'true'],
['push', 'false'],
['pull', 'false'],
['secret-envs', `MY_SECRET=MY_SECRET_ENV
ANOTHER_SECRET=ANOTHER_SECRET_ENV`]
]),
[
'build',
'--secret', 'id=MY_SECRET,env=MY_SECRET_ENV',
'--secret', 'id=ANOTHER_SECRET,env=ANOTHER_SECRET_ENV',
'--iidfile', imageIDFilePath,
'--load',
'--metadata-file', metadataJson,
'.'
]
],
[
27,
'0.10.0',
new Map<string, string>([
['context', '.'],
['no-cache', 'false'],
['load', 'true'],
['push', 'false'],
['pull', 'false'],
['secret-envs', 'MY_SECRET=MY_SECRET_ENV,ANOTHER_SECRET=ANOTHER_SECRET_ENV']
]),
[
'build',
'--secret', 'id=MY_SECRET,env=MY_SECRET_ENV',
'--secret', 'id=ANOTHER_SECRET,env=ANOTHER_SECRET_ENV',
'--iidfile', imageIDFilePath,
'--load',
'--metadata-file', metadataJson,
'.'
]
],
[
28,
'0.11.0',
new Map<string, string>([
['context', '.'],
['annotations', 'example1=www\nindex:example2=xxx\nmanifest:example3=yyy\nmanifest-descriptor[linux/amd64]:example4=zzz'],
['outputs', 'type=local,dest=./release-out'],
['load', 'false'],
['no-cache', 'false'],
['push', 'false'],
['pull', 'false'],
]),
[
'build',
'--output', 'type=local,dest=./release-out',
'--attest', `type=provenance,mode=min,inline-only=true,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789/attempts/1`,
'--metadata-file', metadataJson,
'.'
]
],
[
29,
'0.12.0',
new Map<string, string>([
['context', '.'],
['annotations', 'example1=www\nindex:example2=xxx\nmanifest:example3=yyy\nmanifest-descriptor[linux/amd64]:example4=zzz'],
['outputs', 'type=local,dest=./release-out'],
['load', 'false'],
['no-cache', 'false'],
['push', 'false'],
['pull', 'false'],
]),
[
'build',
'--annotation', 'example1=www',
'--annotation', 'index:example2=xxx',
'--annotation', 'manifest:example3=yyy',
'--annotation', 'manifest-descriptor[linux/amd64]:example4=zzz',
'--output', 'type=local,dest=./release-out',
'--attest', `type=provenance,mode=min,inline-only=true,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789/attempts/1`,
'--metadata-file', metadataJson,
'.'
]
],
[
30,
'0.12.0',
new Map<string, string>([
['context', '.'],
['outputs', `type=image,"name=localhost:5000/name/app:latest,localhost:5000/name/app:foo",push-by-digest=true,name-canonical=true,push=true`],
['load', 'false'],
['no-cache', 'false'],
['push', 'false'],
['pull', 'false'],
]),
[
'build',
'--iidfile', imageIDFilePath,
"--output", `type=image,"name=localhost:5000/name/app:latest,localhost:5000/name/app:foo",push-by-digest=true,name-canonical=true,push=true`,
'--attest', `type=provenance,mode=min,inline-only=true,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789/attempts/1`,
'--metadata-file', metadataJson,
'.'
]
],
[
31,
'0.13.1',
new Map<string, string>([
['context', '.'],
['load', 'false'],
['no-cache', 'false'],
['push', 'false'],
['pull', 'false'],
['provenance', 'mode=max'],
['sbom', 'true'],
]),
[
'build',
'--iidfile', imageIDFilePath,
'--attest', `type=provenance,mode=max,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789/attempts/1`,
'--attest', `type=sbom,disabled=false`,
'--metadata-file', metadataJson,
'.'
]
],
[
32,
'0.13.1',
new Map<string, string>([
['context', '.'],
['load', 'false'],
['no-cache', 'false'],
['push', 'false'],
['pull', 'false'],
['attests', 'type=provenance,mode=min'],
['provenance', 'mode=max'],
]),
[
'build',
'--iidfile', imageIDFilePath,
'--attest', `type=provenance,mode=max,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789/attempts/1`,
'--metadata-file', metadataJson,
'.'
]
],
[
33,
'0.13.1',
new Map<string, string>([
['context', '.'],
['load', 'false'],
['no-cache', 'false'],
['push', 'false'],
['pull', 'false'],
['attests', 'type=provenance,mode=min'],
]),
[
'build',
'--iidfile', imageIDFilePath,
'--attest', `type=provenance,mode=min,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789/attempts/1`,
'--metadata-file', metadataJson,
'.'
]
],
+7 -1
View File
@@ -13,6 +13,9 @@ inputs:
allow:
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
@@ -80,6 +83,9 @@ inputs:
secrets:
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 (e.g., key=filename, MY_SECRET=./secret.txt)"
required: false
@@ -112,6 +118,6 @@ outputs:
description: 'Build result metadata'
runs:
using: 'node16'
using: 'node20'
main: 'dist/index.js'
post: 'dist/index.js'
+30 -26
View File
@@ -1,15 +1,20 @@
# syntax=docker/dockerfile:1
ARG NODE_VERSION=16
ARG DOCKER_VERSION=20.10.13
ARG BUILDX_VERSION=0.8.0
ARG NODE_VERSION=20
FROM node:${NODE_VERSION}-alpine AS base
RUN apk add --no-cache cpio findutils git
WORKDIR /src
RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/.yarn/cache <<EOT
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
@@ -18,18 +23,19 @@ 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-update"'
git status --porcelain -- yarn.lock
exit 1
fi
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-update"'
git status --porcelain -- yarn.lock
exit 1
fi
EOT
FROM deps AS build
RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/.yarn/cache \
--mount=type=cache,target=/src/node_modules \
yarn run build && mkdir /out && cp -Rf dist /out/
@@ -38,39 +44,37 @@ COPY --from=build /out /
FROM build AS build-validate
RUN --mount=type=bind,target=.,rw <<EOT
set -e
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
set -e
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
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/*' | cpio -pdm /out
&& 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 docker:${DOCKER_VERSION} as docker
FROM docker/buildx-bin:${BUILDX_VERSION} as buildx
FROM deps AS test
RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/.yarn/cache \
--mount=type=cache,target=/src/node_modules \
--mount=type=bind,from=docker,source=/usr/local/bin/docker,target=/usr/bin/docker \
--mount=type=bind,from=buildx,source=/buildx,target=/usr/libexec/docker/cli-plugins/docker-buildx \
yarn run test --coverageDirectory=/tmp/coverage
yarn run test --coverage --coverageDirectory=/tmp/coverage
FROM scratch AS test-coverage
COPY --from=test /tmp/coverage /
Generated Vendored
+79 -12
View File
@@ -1,30 +1,87 @@
require('./sourcemap-register.js');(()=>{var __webpack_modules__={7799:function(r,i,a){"use strict";var s=this&&this.__createBinding||(Object.create?function(r,i,a,s){if(s===undefined)s=a;var p=Object.getOwnPropertyDescriptor(i,a);if(!p||("get"in p?!i.__esModule:p.writable||p.configurable)){p={enumerable:true,get:function(){return i[a]}}}Object.defineProperty(r,s,p)}:function(r,i,a,s){if(s===undefined)s=a;r[s]=i[a]});var p=this&&this.__setModuleDefault||(Object.create?function(r,i){Object.defineProperty(r,"default",{enumerable:true,value:i})}:function(r,i){r["default"]=i});var l=this&&this.__importStar||function(r){if(r&&r.__esModule)return r;var i={};if(r!=null)for(var a in r)if(a!=="default"&&Object.prototype.hasOwnProperty.call(r,a))s(i,r,a);p(i,r);return i};var c=this&&this.__awaiter||function(r,i,a,s){function adopt(r){return r instanceof a?r:new a((function(i){i(r)}))}return new(a||(a=Promise))((function(a,p){function fulfilled(r){try{step(s.next(r))}catch(r){p(r)}}function rejected(r){try{step(s["throw"](r))}catch(r){p(r)}}function step(r){r.done?a(r.value):adopt(r.value).then(fulfilled,rejected)}step((s=s.apply(r,i||[])).next())}))};Object.defineProperty(i,"__esModule",{value:true});i.saveCache=i.restoreCache=i.isFeatureAvailable=i.ReserveCacheError=i.ValidationError=void 0;const d=l(a(2186));const u=l(a(1017));const m=l(a(1518));const h=l(a(8245));const g=a(3434);class ValidationError extends Error{constructor(r){super(r);this.name="ValidationError";Object.setPrototypeOf(this,ValidationError.prototype)}}i.ValidationError=ValidationError;class ReserveCacheError extends Error{constructor(r){super(r);this.name="ReserveCacheError";Object.setPrototypeOf(this,ReserveCacheError.prototype)}}i.ReserveCacheError=ReserveCacheError;function checkPaths(r){if(!r||r.length===0){throw new ValidationError(`Path Validation Error: At least one directory or file path is required`)}}function checkKey(r){if(r.length>512){throw new ValidationError(`Key Validation Error: ${r} cannot be larger than 512 characters.`)}const i=/^[^,]*$/;if(!i.test(r)){throw new ValidationError(`Key Validation Error: ${r} cannot contain commas.`)}}function isFeatureAvailable(){return!!process.env["ACTIONS_CACHE_URL"]}i.isFeatureAvailable=isFeatureAvailable;function restoreCache(r,i,a,s,p=false){return c(this,void 0,void 0,(function*(){checkPaths(r);a=a||[];const l=[i,...a];d.debug("Resolved Keys:");d.debug(JSON.stringify(l));if(l.length>10){throw new ValidationError(`Key Validation Error: Keys are limited to a maximum of 10.`)}for(const r of l){checkKey(r)}const c=yield m.getCompressionMethod();let y="";try{const i=yield h.getCacheEntry(l,r,{compressionMethod:c,enableCrossOsArchive:p});if(!(i===null||i===void 0?void 0:i.archiveLocation)){return undefined}if(s===null||s===void 0?void 0:s.lookupOnly){d.info("Lookup only - skipping download");return i.cacheKey}y=u.join(yield m.createTempDirectory(),m.getCacheFileName(c));d.debug(`Archive Path: ${y}`);yield h.downloadCache(i.archiveLocation,y,s);if(d.isDebug()){yield(0,g.listTar)(y,c)}const a=m.getArchiveFileSizeInBytes(y);d.info(`Cache Size: ~${Math.round(a/(1024*1024))} MB (${a} B)`);yield(0,g.extractTar)(y,c);d.info("Cache restored successfully");return i.cacheKey}catch(r){const i=r;if(i.name===ValidationError.name){throw r}else{d.warning(`Failed to restore: ${r.message}`)}}finally{try{yield m.unlinkFile(y)}catch(r){d.debug(`Failed to delete archive: ${r}`)}}return undefined}))}i.restoreCache=restoreCache;function saveCache(r,i,a,s=false){var p,l,y,v,b;return c(this,void 0,void 0,(function*(){checkPaths(r);checkKey(i);const c=yield m.getCompressionMethod();let x=-1;const w=yield m.resolvePaths(r);d.debug("Cache Paths:");d.debug(`${JSON.stringify(w)}`);if(w.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.`)}const S=yield m.createTempDirectory();const _=u.join(S,m.getCacheFileName(c));d.debug(`Archive Path: ${_}`);try{yield(0,g.createTar)(S,w,c);if(d.isDebug()){yield(0,g.listTar)(_,c)}const u=10*1024*1024*1024;const E=m.getArchiveFileSizeInBytes(_);d.debug(`File Size: ${E}`);if(E>u&&!m.isGhes()){throw new Error(`Cache size of ~${Math.round(E/(1024*1024))} MB (${E} B) is over the 10GB limit, not saving cache.`)}d.debug("Reserving Cache");const T=yield h.reserveCache(i,r,{compressionMethod:c,enableCrossOsArchive:s,cacheSize:E});if((p=T===null||T===void 0?void 0:T.result)===null||p===void 0?void 0:p.cacheId){x=(l=T===null||T===void 0?void 0:T.result)===null||l===void 0?void 0:l.cacheId}else if((T===null||T===void 0?void 0:T.statusCode)===400){throw new Error((v=(y=T===null||T===void 0?void 0:T.error)===null||y===void 0?void 0:y.message)!==null&&v!==void 0?v:`Cache size of ~${Math.round(E/(1024*1024))} MB (${E} B) is over the data cap limit, not saving cache.`)}else{throw new ReserveCacheError(`Unable to reserve cache with key ${i}, another job may be creating this cache. More details: ${(b=T===null||T===Line truncated
require('./sourcemap-register.js');(()=>{var r={79450:function(r,i,s){"use strict";var a=this&&this.__createBinding||(Object.create?function(r,i,s,a){if(a===undefined)a=s;var l=Object.getOwnPropertyDescriptor(i,s);if(!l||("get"in l?!i.__esModule:l.writable||l.configurable)){l={enumerable:true,get:function(){return i[s]}}}Object.defineProperty(r,a,l)}:function(r,i,s,a){if(a===undefined)a=s;r[a]=i[s]});var l=this&&this.__exportStar||function(r,i){for(var s in r)if(s!=="default"&&!Object.prototype.hasOwnProperty.call(i,s))a(i,r,s)};Object.defineProperty(i,"__esModule",{value:true});const c=s(46190);l(s(15769),i);l(s(38182),i);l(s(46190),i);const p=new c.DefaultArtifactClient;i["default"]=p},54622:(r,i,s)=>{"use strict";Object.defineProperty(i,"__esModule",{value:true});i.Timestamp=void 0;const a=s(4061);const l=s(4061);const c=s(4061);const p=s(4061);const u=s(4061);const d=s(4061);const A=s(4061);class Timestamp$Type extends A.MessageType{constructor(){super("google.protobuf.Timestamp",[{no:1,name:"seconds",kind:"scalar",T:3},{no:2,name:"nanos",kind:"scalar",T:5}])}now(){const r=this.create();const i=Date.now();r.seconds=d.PbLong.from(Math.floor(i/1e3)).toString();r.nanos=i%1e3*1e6;return r}toDate(r){return new Date(d.PbLong.from(r.seconds).toNumber()*1e3+Math.ceil(r.nanos/1e6))}fromDate(r){const i=this.create();const s=r.getTime();i.seconds=d.PbLong.from(Math.floor(s/1e3)).toString();i.nanos=s%1e3*1e6;return i}internalJsonWrite(r,i){let s=d.PbLong.from(r.seconds).toNumber()*1e3;if(s<Date.parse("0001-01-01T00:00:00Z")||s>Date.parse("9999-12-31T23:59:59Z"))throw new Error("Unable to encode Timestamp to JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.");if(r.nanos<0)throw new Error("Unable to encode invalid Timestamp to JSON. Nanos must not be negative.");let a="Z";if(r.nanos>0){let i=(r.nanos+1e9).toString().substring(1);if(i.substring(3)==="000000")a="."+i.substring(0,3)+"Z";else if(i.substring(6)==="000")a="."+i.substring(0,6)+"Z";else a="."+i+"Z"}return new Date(s).toISOString().replace(".000Z",a)}internalJsonRead(r,i,s){if(typeof r!=="string")throw new Error("Unable to parse Timestamp from JSON "+(0,u.typeofJsonValue)(r)+".");let a=r.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:Z|\.([0-9]{3,9})Z|([+-][0-9][0-9]:[0-9][0-9]))$/);if(!a)throw new Error("Unable to parse Timestamp from JSON. Invalid format.");let l=Date.parse(a[1]+"-"+a[2]+"-"+a[3]+"T"+a[4]+":"+a[5]+":"+a[6]+(a[8]?a[8]:"Z"));if(Number.isNaN(l))throw new Error("Unable to parse Timestamp from JSON. Invalid value.");if(l<Date.parse("0001-01-01T00:00:00Z")||l>Date.parse("9999-12-31T23:59:59Z"))throw new globalThis.Error("Unable to parse Timestamp from JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.");if(!s)s=this.create();s.seconds=d.PbLong.from(l/1e3).toString();s.nanos=0;if(a[7])s.nanos=parseInt("1"+a[7]+"0".repeat(9-a[7].length))-1e9;return s}create(r){const i={seconds:"0",nanos:0};globalThis.Object.defineProperty(i,p.MESSAGE_TYPE,{enumerable:false,value:this});if(r!==undefined)(0,c.reflectionMergePartial)(this,i,r);return i}internalBinaryRead(r,i,s,a){let c=a!==null&&a!==void 0?a:this.create(),p=r.pos+i;while(r.pos<p){let[i,a]=r.tag();switch(i){case 1:c.seconds=r.int64().toString();break;case 2:c.nanos=r.int32();break;default:let p=s.readUnknownField;if(p==="throw")throw new globalThis.Error(`Unknown field ${i} (wire type ${a}) for ${this.typeName}`);let u=r.skip(a);if(p!==false)(p===true?l.UnknownFieldHandler.onRead:p)(this.typeName,c,i,a,u)}}return c}internalBinaryWrite(r,i,s){if(r.seconds!=="0")i.tag(1,a.WireType.Varint).int64(r.seconds);if(r.nanos!==0)i.tag(2,a.WireType.Varint).int32(r.nanos);let c=s.writeUnknownFields;if(c!==false)(c==true?l.UnknownFieldHandler.onWrite:c)(this.typeName,r,i);return i}}i.Timestamp=new Timestamp$Type},8626:(r,i,s)=>{"use strict";Object.defineProperty(i,"__esModule",{value:true});i.BytesValue=i.StringValue=i.BoolValue=i.UInt32Value=i.Int32Value=i.UInt64Value=i.Int64Value=i.FloatValue=i.DoubleValue=void 0;const a=s(4061);const l=s(4061);const c=s(4061);const p=s(4061);const u=s(4061);const d=s(4061);const A=s(4061);class DoubleValue$Type extends A.MessageType{constructor(){super("google.protobuf.DoubleValue",[{no:1,name:"value",kind:"scalar",T:1}])}internalJsonWrite(r,i){return this.refJsonWriter.scalar(2,r.value,"value",false,true)}internalJsonRead(r,i,s){if(!s)s=this.create();s.value=this.refJsonReader.scalar(r,1,undefined,"value");return s}create(r){const i={value:0};globalThis.Object.defineProperty(i,d.MESSAGE_TYPE,{enumerable:false,value:this});if(r!==undefined)(0,u.reflectionMergePartial)(this,i,r);return i}internalBinaryRead(r,i,s,a){let l=a!==null&&a!==void 0?a:this.create(),c=r.pos+i;while(r.pos<c){let[i,a]=r.tag();switch(i){case 1:l.value=r.double();break;default:let c=s.readUnknownField;if(c==="throw")throw new globalThis.Error(`Unknown field ${i} (wire type ${a}) for ${this.typeName}`);let u=r.skip(a);if(c!==false)(cLine truncated
/**
* Archiver Vending
*
* @ignore
* @license [MIT]{@link https://github.com/archiverjs/node-archiver/blob/master/LICENSE}
* @copyright (c) 2012-2014 Chris Talkington, contributors.
*/
var a=s(35010);var l={};var vending=function(r,i){return vending.create(r,i)};vending.create=function(r,i){if(l[r]){var s=new a(r,i);s.setFormat(r);s.setModule(new l[r](i));return s}else{throw new Error("create("+r+"): format not registered")}};vending.registerFormat=function(r,i){if(l[r]){throw new Error("register("+r+"): format already registered")}if(typeof i!=="function"){throw new Error("register("+r+"): format module invalid")}if(typeof i.prototype.append!=="function"||typeof i.prototype.finalize!=="function"){throw new Error("register("+r+"): format module missing methods")}l[r]=i};vending.isRegisteredFormat=function(r){if(l[r]){return true}return false};vending.registerFormat("zip",s(8987));vending.registerFormat("tar",s(33614));vending.registerFormat("json",s(99827));r.exports=vending},35010:(r,i,s)=>{
/**
* Archiver Core
*
* @ignore
* @license [MIT]{@link https://github.com/archiverjs/node-archiver/blob/master/LICENSE}
* @copyright (c) 2012-2014 Chris Talkington, contributors.
*/
var a=s(57147);var l=s(44967);var c=s(57888);var p=s(71017);var u=s(82072);var d=s(73837).inherits;var A=s(13143);var h=s(45193).Transform;var g=process.platform==="win32";var Archiver=function(r,i){if(!(this instanceof Archiver)){return new Archiver(r,i)}if(typeof r!=="string"){i=r;r="zip"}i=this.options=u.defaults(i,{highWaterMark:1024*1024,statConcurrency:4});h.call(this,i);this._format=false;this._module=false;this._pending=0;this._pointer=0;this._entriesCount=0;this._entriesProcessedCount=0;this._fsEntriesTotalBytes=0;this._fsEntriesProcessedBytes=0;this._queue=c.queue(this._onQueueTask.bind(this),1);this._queue.drain(this._onQueueDrain.bind(this));this._statQueue=c.queue(this._onStatQueueTask.bind(this),i.statConcurrency);this._statQueue.drain(this._onQueueDrain.bind(this));this._state={aborted:false,finalize:false,finalizing:false,finalized:false,modulePiped:false};this._streams=[]};d(Archiver,h);Archiver.prototype._abort=function(){this._state.aborted=true;this._queue.kill();this._statQueue.kill();if(this._queue.idle()){this._shutdown()}};Archiver.prototype._append=function(r,i){i=i||{};var s={source:null,filepath:r};if(!i.name){i.name=r}i.sourcePath=r;s.data=i;this._entriesCount++;if(i.stats&&i.stats instanceof a.Stats){s=this._updateQueueTaskWithStats(s,i.stats);if(s){if(i.stats.size){this._fsEntriesTotalBytes+=i.stats.size}this._queue.push(s)}}else{this._statQueue.push(s)}};Archiver.prototype._finalize=function(){if(this._state.finalizing||this._state.finalized||this._state.aborted){return}this._state.finalizing=true;this._moduleFinalize();this._state.finalizing=false;this._state.finalized=true};Archiver.prototype._maybeFinalize=function(){if(this._state.finalizing||this._state.finalized||this._state.aborted){return false}if(this._state.finalize&&this._pending===0&&this._queue.idle()&&this._statQueue.idle()){this._finalize();return true}return false};Archiver.prototype._moduleAppend=function(r,i,s){if(this._state.aborted){s();return}this._module.append(r,i,function(r){this._task=null;if(this._state.aborted){this._shutdown();return}if(r){this.emit("error",r);setImmediate(s);return}this.emit("entry",i);this._entriesProcessedCount++;if(i.stats&&i.stats.size){this._fsEntriesProcessedBytes+=i.stats.size}this.emit("progress",{entries:{total:this._entriesCount,processed:this._entriesProcessedCount},fs:{totalBytes:this._fsEntriesTotalBytes,processedBytes:this._fsEntriesProcessedBytes}});setImmediate(s)}.bind(this))};Archiver.prototype._moduleFinalize=function(){if(typeof this._module.finalize==="function"){this._module.finalize()}else if(typeof this._module.end==="function"){this._module.end()}else{this.emit("error",new A("NOENDMETHOD"))}};Archiver.prototype._modulePipe=function(){this._module.on("error",this._onModuleError.bind(this));this._module.pipe(this);this._state.modulePiped=true};Archiver.prototype._moduleSupports=function(r){if(!this._module.supports||!this._module.supports[r]){return false}return this._module.supports[r]};Archiver.prototype._moduleUnpipe=function(){this._module.unpipe(this);this._state.modulePiped=false};Archiver.prototype._normalizeEntryData=function(r,i){r=u.defaults(r,{type:"file",name:null,date:null,mode:null,prefix:null,sourcePath:null,stats:false});if(i&&r.stats===false){r.stats=i}var s=r.type==="directory";if(r.name){if(typeof r.prefix==="string"&&""!==r.prefix){r.name=r.prefix+"/"+r.name;r.prefix=null}r.name=u.sanitizePath(r.name);if(r.type!=="symlink"&&r.name.slice(-1)==="/"){s=true;r.type="directory"}else if(s){r.name+="/"}}if(typeof r.mode==="number"){if(g){r.mode&=511}else{r.mode&=4095}}else if(r.stats&&r.mode===null){if(g){r.mode=r.stats.mode&511}else{r.mode=r.stats.mode&4095}if(g&&s){r.mode=493}}else if(r.mode===null){r.mode=s?493:420}if(r.stats&&r.date===null){r.date=r.stats.mtime}else{r.date=u.dateify(r.date)}return r};Archiver.prototype._onModuleError=function(r){this.emit("error",r)};Archiver.prototype._onQueueDrain=function(){if(this._state.finalizing||this._state.finalized||this._state.aborted){return}if(this._state.finalize&&this._pending===0&&this._queue.idle()&&this._statQueue.idle()){this._finalize()}};Archiver.prototype._onQueueTask=function(r,i){var fullCallback=()=>{if(r.data.callback){r.data.callback()}i()};if(this._state.finalizing||this._state.finalized||this._state.aborted){fullCallback();return}this._task=r;this._moduleAppend(r.source,r.data,fullCallback)};Archiver.prototype._onStatQueueTask=function(r,i){if(this._state.finalizing||this._state.finalized||this._state.aborted){i();return}a.lstat(r.filepath,function(s,a){if(this._state.aborted){setImmediate(i);return}if(s){this._entriesCount--;this.emit("warning",s);setImmediate(i);return}r=this._updateQueueTaskWithStats(r,a);if(r){if(a.size){this._fsEntriesTotalBytes+=a.size}this._queue.push(r)}setImmediate(i)}.bind(this))};Archiver.prototype._shutdown=function(){this._moduleUnpipe();this.end()};Archiver.prototype._transform=function(r,i,s){if(r){this._pointer+=r.length}s(null,r)};Archiver.prototLine truncated
/**
* Archiver Core
*
* @ignore
* @license [MIT]{@link https://github.com/archiverjs/node-archiver/blob/master/LICENSE}
* @copyright (c) 2012-2014 Chris Talkington, contributors.
*/
var a=s(73837);const l={ABORTED:"archive was aborted",DIRECTORYDIRPATHREQUIRED:"diretory dirpath argument must be a non-empty string value",DIRECTORYFUNCTIONINVALIDDATA:"invalid data returned by directory custom data function",ENTRYNAMEREQUIRED:"entry name must be a non-empty string value",FILEFILEPATHREQUIRED:"file filepath argument must be a non-empty string value",FINALIZING:"archive already finalizing",QUEUECLOSED:"queue closed",NOENDMETHOD:"no suitable finalize/end method defined by module",DIRECTORYNOTSUPPORTED:"support for directory entries not defined by module",FORMATSET:"archive format already set",INPUTSTEAMBUFFERREQUIRED:"input source must be valid Stream or Buffer instance",MODULESET:"module already set",SYMLINKNOTSUPPORTED:"support for symlink entries not defined by module",SYMLINKFILEPATHREQUIRED:"symlink filepath argument must be a non-empty string value",SYMLINKTARGETREQUIRED:"symlink target argument must be a non-empty string value",ENTRYNOTSUPPORTED:"entry not supported"};function ArchiverError(r,i){Error.captureStackTrace(this,this.constructor);this.message=l[r]||r;this.code=r;this.data=i}a.inherits(ArchiverError,Error);i=r.exports=ArchiverError},99827:(r,i,s)=>{
/**
* 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.
*/
var a=s(73837).inherits;var l=s(45193).Transform;var c=s(54119);var p=s(82072);var Json=function(r){if(!(this instanceof Json)){return new Json(r)}r=this.options=p.defaults(r,{});l.call(this,r);this.supports={directory:true,symlink:true};this.files=[]};a(Json,l);Json.prototype._transform=function(r,i,s){s(null,r)};Json.prototype._writeStringified=function(){var r=JSON.stringify(this.files);this.write(r)};Json.prototype.append=function(r,i,s){var a=this;i.crc32=0;function onend(r,l){if(r){s(r);return}i.size=l.length||0;i.crc32=c.unsigned(l);a.files.push(i);s(null,i)}if(i.sourceType==="buffer"){onend(null,r)}else if(i.sourceType==="stream"){p.collectStream(r,onend)}};Json.prototype.finalize=function(){this._writeStringified();this.end()};r.exports=Json},33614:(r,i,s)=>{
/**
* 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.
*/
var a=s(59796);var l=s(2283);var c=s(82072);var Tar=function(r){if(!(this instanceof Tar)){return new Tar(r)}r=this.options=c.defaults(r,{gzip:false});if(typeof r.gzipOptions!=="object"){r.gzipOptions={}}this.supports={directory:true,symlink:true};this.engine=l.pack(r);this.compressor=false;if(r.gzip){this.compressor=a.createGzip(r.gzipOptions);this.compressor.on("error",this._onCompressorError.bind(this))}};Tar.prototype._onCompressorError=function(r){this.engine.emit("error",r)};Tar.prototype.append=function(r,i,s){var a=this;i.mtime=i.date;function append(r,l){if(r){s(r);return}a.engine.entry(i,l,(function(r){s(r,i)}))}if(i.sourceType==="buffer"){append(null,r)}else if(i.sourceType==="stream"&&i.stats){i.size=i.stats.size;var l=a.engine.entry(i,(function(r){s(r,i)}));r.pipe(l)}else if(i.sourceType==="stream"){c.collectStream(r,append)}};Tar.prototype.finalize=function(){this.engine.finalize()};Tar.prototype.on=function(){return this.engine.on.apply(this.engine,arguments)};Tar.prototype.pipe=function(r,i){if(this.compressor){return this.engine.pipe.apply(this.engine,[this.compressor]).pipe(r,i)}else{return this.engine.pipe.apply(this.engine,arguments)}};Tar.prototype.unpipe=function(){if(this.compressor){return this.compressor.unpipe.apply(this.compressor,arguments)}else{return this.engine.unpipe.apply(this.engine,arguments)}};r.exports=Tar},8987:(r,i,s)=>{
/**
* 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.
*/
var a=s(86454);var l=s(82072);var Zip=function(r){if(!(this instanceof Zip)){return new Zip(r)}r=this.options=l.defaults(r,{comment:"",forceUTC:false,namePrependSlash:false,store:false});this.supports={directory:true,symlink:true};this.engine=new a(r)};Zip.prototype.append=function(r,i,s){this.engine.entry(r,i,s)};Zip.prototype.finalize=function(){this.engine.finalize()};Zip.prototype.on=function(){return this.engine.on.apply(this.engine,arguments)};Zip.prototype.pipe=function(){return this.engine.pipe.apply(this.engine,arguments)};Zip.prototype.unpipe=function(){return this.engine.unpipe.apply(this.engine,arguments)};r.exports=Zip},57888:function(r,i){(function(r,s){true?s(i):0})(this,(function(r){"use strict";function apply(r,...i){return(...s)=>r(...i,...s)}function initialParams(r){return function(...i){var s=i.pop();return r.call(this,i,s)}}var i=typeof queueMicrotask==="function"&&queueMicrotask;var s=typeof setImmediate==="function"&&setImmediate;var a=typeof process==="object"&&typeof process.nextTick==="function";function fallback(r){setTimeout(r,0)}function wrap(r){return(i,...s)=>r((()=>i(...s)))}var l;if(i){l=queueMicrotask}else if(s){l=setImmediate}else if(a){l=process.nextTick}else{l=fallback}var c=wrap(l);function asyncify(r){if(isAsync(r)){return function(...i){const s=i.pop();const a=r.apply(this,i);return handlePromise(a,s)}}return initialParams((function(i,s){var a;try{a=r.apply(this,i)}catch(r){return s(r)}if(a&&typeof a.then==="function"){return handlePromise(a,s)}else{s(null,a)}}))}function handlePromise(r,i){return r.then((r=>{invokeCallback(i,null,r)}),(r=>{invokeCallback(i,r&&(r instanceof Error||r.message)?r:new Error(r))}))}function invokeCallback(r,i,s){try{r(i,s)}catch(r){c((r=>{throw r}),r)}}function isAsync(r){return r[Symbol.toStringTag]==="AsyncFunction"}function isAsyncGenerator(r){return r[Symbol.toStringTag]==="AsyncGenerator"}function isAsyncIterable(r){return typeof r[Symbol.asyncIterator]==="function"}function wrapAsync(r){if(typeof r!=="function")throw new Error("expected a function");return isAsync(r)?asyncify(r):r}function awaitify(r,i){if(!i)i=r.length;if(!i)throw new Error("arity is undefined");function awaitable(...s){if(typeof s[i-1]==="function"){return r.apply(this,s)}return new Promise(((a,l)=>{s[i-1]=(r,...i)=>{if(r)return l(r);a(i.length>1?i:i[0])};r.apply(this,s)}))}return awaitable}function applyEach$1(r){return function applyEach(i,...s){const a=awaitify((function(a){var l=this;return r(i,((r,i)=>{wrapAsync(r).apply(l,s.concat(i))}),a)}));return a}}function _asyncMap(r,i,s,a){i=i||[];var l=[];var c=0;var p=wrapAsync(s);return r(i,((r,i,s)=>{var a=c++;p(r,((r,i)=>{l[a]=i;s(r)}))}),(r=>{a(r,l)}))}function isArrayLike(r){return r&&typeof r.length==="number"&&r.length>=0&&r.length%1===0}const p={};var u=p;function once(r){function wrapper(...i){if(r===null)return;var s=r;r=null;s.apply(this,i)}Object.assign(wrapper,r);return wrapper}function getIterator(r){return r[Symbol.iterator]&&r[Symbol.iterator]()}function createArrayIterator(r){var i=-1;var s=r.length;return function next(){return++i<s?{value:r[i],key:i}:null}}function createES2015Iterator(r){var i=-1;return function next(){var s=r.next();if(s.done)return null;i++;return{value:s.value,key:i}}}function createObjectIterator(r){var i=r?Object.keys(r):[];var s=-1;var a=i.length;return function next(){var l=i[++s];if(l==="__proto__"){return next()}return s<a?{value:r[l],key:l}:null}}function createIterator(r){if(isArrayLike(r)){return createArrayIterator(r)}var i=getIterator(r);return i?createES2015Iterator(i):createObjectIterator(r)}function onlyOnce(r){return function(...i){if(r===null)throw new Error("Callback was already called.");var s=r;r=null;s.apply(this,i)}}function asyncEachOfLimit(r,i,s,a){let l=false;let c=false;let p=false;let d=0;let A=0;function replenish(){if(d>=i||p||l)return;p=true;r.next().then((({value:r,done:i})=>{if(c||l)return;p=false;if(i){l=true;if(d<=0){a(null)}return}d++;s(r,A,iterateeCallback);A++;replenish()})).catch(handleError)}function iterateeCallback(r,i){d-=1;if(c)return;if(r)return handleError(r);if(r===false){l=true;c=true;return}if(i===u||l&&d<=0){l=true;return a(null)}replenish()}function handleError(r){if(c)return;p=false;l=true;a(r)}replenish()}var eachOfLimit$2=r=>(i,s,a)=>{a=once(a);if(r<=0){throw new RangeError("concurrency limit cannot be less than 1")}if(!i){return a(null)}if(isAsyncGenerator(i)){return asyncEachOfLimit(i,r,s,a)}if(isAsyncIterable(i)){return asyncEachOfLimit(i[Symbol.asyncIterator](),r,s,a)}var l=createIterator(i);var c=false;var p=false;var d=0;var A=false;function iterateeCallback(r,i){if(p)return;d-=1;if(r){c=true;a(r)}else if(r===false){c=true;p=true}else if(i===u||c&&d<=0){c=true;return a(null)}else if(!A){replenish()}}function replenish(){A=true;while(d<r&&!c){var i=l();if(i===null){c=true;if(d<=0){a(null)}return}d+=1;s(i.value,i.key,onlyOnce(iterateeCallback))}A=false}replenish()};function eachOfLimit(r,i,s,a){return eachOfLimit$2(i)(r,Line truncated
/*! crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */
var s;(function(r){if(typeof DO_NOT_EXPORT_CRC==="undefined"){if(true){r(i)}else{}}else{r(s={})}})((function(r){r.version="1.2.2";function signed_crc_table(){var r=0,i=new Array(256);for(var s=0;s!=256;++s){r=s;r=r&1?-306674912^r>>>1:r>>>1;r=r&1?-306674912^r>>>1:r>>>1;r=r&1?-306674912^r>>>1:r>>>1;r=r&1?-306674912^r>>>1:r>>>1;r=r&1?-306674912^r>>>1:r>>>1;r=r&1?-306674912^r>>>1:r>>>1;r=r&1?-306674912^r>>>1:r>>>1;r=r&1?-306674912^r>>>1:r>>>1;i[s]=r}return typeof Int32Array!=="undefined"?new Int32Array(i):i}var i=signed_crc_table();function slice_by_16_tables(r){var i=0,s=0,a=0,l=typeof Int32Array!=="undefined"?new Int32Array(4096):new Array(4096);for(a=0;a!=256;++a)l[a]=r[a];for(a=0;a!=256;++a){s=r[a];for(i=256+a;i<4096;i+=256)s=l[i]=s>>>8^r[s&255]}var c=[];for(a=1;a!=16;++a)c[a-1]=typeof Int32Array!=="undefined"?l.subarray(a*256,a*256+256):l.slice(a*256,a*256+256);return c}var s=slice_by_16_tables(i);var a=s[0],l=s[1],c=s[2],p=s[3],u=s[4];var d=s[5],A=s[6],h=s[7],g=s[8],y=s[9];var b=s[10],v=s[11],C=s[12],w=s[13],I=s[14];function crc32_bstr(r,s){var a=s^-1;for(var l=0,c=r.length;l<c;)a=a>>>8^i[(a^r.charCodeAt(l++))&255];return~a}function crc32_buf(r,s){var B=s^-1,S=r.length-15,x=0;for(;x<S;)B=I[r[x++]^B&255]^w[r[x++]^B>>8&255]^C[r[x++]^B>>16&255]^v[r[x++]^B>>>24]^b[r[x++]]^y[r[x++]]^g[r[x++]]^h[r[x++]]^A[r[x++]]^d[r[x++]]^u[r[x++]]^p[r[x++]]^c[r[x++]]^l[r[x++]]^a[r[x++]]^i[r[x++]];S+=15;while(x<S)B=B>>>8^i[(B^r[x++])&255];return~B}function crc32_str(r,s){var a=s^-1;for(var l=0,c=r.length,p=0,u=0;l<c;){p=r.charCodeAt(l++);if(p<128){a=a>>>8^i[(a^p)&255]}else if(p<2048){a=a>>>8^i[(a^(192|p>>6&31))&255];a=a>>>8^i[(a^(128|p&63))&255]}else if(p>=55296&&p<57344){p=(p&1023)+64;u=r.charCodeAt(l++)&1023;a=a>>>8^i[(a^(240|p>>8&7))&255];a=a>>>8^i[(a^(128|p>>2&63))&255];a=a>>>8^i[(a^(128|u>>6&15|(p&3)<<4))&255];a=a>>>8^i[(a^(128|u&63))&255]}else{a=a>>>8^i[(a^(224|p>>12&15))&255];a=a>>>8^i[(a^(128|p>>6&63))&255];a=a>>>8^i[(a^(128|p&63))&255]}}return~a}r.table=i;r.bstr=crc32_bstr;r.buf=crc32_buf;r.str=crc32_str}))},94521:(r,i,s)=>{"use strict";const{Transform:a}=s(45193);const l=s(83201);class CRC32Stream extends a{constructor(r){super(r);this.checksum=Buffer.allocUnsafe(4);this.checksum.writeInt32BE(0,0);this.rawSize=0}_transform(r,i,s){if(r){this.checksum=l.buf(r,this.checksum)>>>0;this.rawSize+=r.length}s(null,r)}digest(r){const i=Buffer.allocUnsafe(4);i.writeUInt32BE(this.checksum>>>0,0);return r?i.toString(r):i}hex(){return this.digest("hex").toUpperCase()}size(){return this.rawSize}}r.exports=CRC32Stream},92563:(r,i,s)=>{"use strict";const{DeflateRaw:a}=s(59796);const l=s(83201);class DeflateCRC32Stream extends a{constructor(r){super(r);this.checksum=Buffer.allocUnsafe(4);this.checksum.writeInt32BE(0,0);this.rawSize=0;this.compressedSize=0}push(r,i){if(r){this.compressedSize+=r.length}return super.push(r,i)}_transform(r,i,s){if(r){this.checksum=l.buf(r,this.checksum)>>>0;this.rawSize+=r.length}super._transform(r,i,s)}digest(r){const i=Buffer.allocUnsafe(4);i.writeUInt32BE(this.checksum>>>0,0);return r?i.toString(r):i}hex(){return this.digest("hex").toUpperCase()}size(r=false){if(r){return this.compressedSize}else{return this.rawSize}}}r.exports=DeflateCRC32Stream},5101:(r,i,s)=>{"use strict";r.exports={CRC32Stream:s(94521),DeflateCRC32Stream:s(92563)}},18611:(r,i,s)=>{var a=s(12781).Stream;var l=s(73837);r.exports=DelayedStream;function DelayedStream(){this.source=null;this.dataSize=0;this.maxDataSize=1024*1024;this.pauseStream=true;this._maxDataSizeExceeded=false;this._released=false;this._bufferedEvents=[]}l.inherits(DelayedStream,a);DelayedStream.create=function(r,i){var s=new this;i=i||{};for(var a in i){s[a]=i[a]}s.source=r;var l=r.emit;r.emit=function(){s._handleEmit(arguments);return l.apply(r,arguments)};r.on("error",(function(){}));if(s.pauseStream){r.pause()}return s};Object.defineProperty(DelayedStream.prototype,"readable",{configurable:true,enumerable:true,get:function(){return this.source.readable}});DelayedStream.prototype.setEncoding=function(){return this.source.setEncoding.apply(this.source,arguments)};DelayedStream.prototype.resume=function(){if(!this._released){this.release()}this.source.resume()};DelayedStream.prototype.pause=function(){this.source.pause()};DelayedStream.prototype.release=function(){this._released=true;this._bufferedEvents.forEach(function(r){this.emit.apply(this,r)}.bind(this));this._bufferedEvents=[]};DelayedStream.prototype.pipe=function(){var r=a.prototype.pipe.apply(this,arguments);this.resume();return r};DelayedStream.prototype._handleEmit=function(r){if(this._released){this.emit.apply(this,r);return}if(r[0]==="data"){this.dataSize+=r[1].length;this._checkIfMaxDataSizeExceeded()}this._bufferedEvents.push(r)};DelayedStream.prototype._checkIfMaxDataSizeExceeded=function(){if(this._maxDataSizeExceeded){return}if(this.dataSize<=this.maxDataSize){return}this._maxDataSizeExceeded=true;var r="DelayedStream#maxDataSize of "+this.maxDataSize+" bytes exceeded.";this.emit("error",new ErLine truncated
/**
* @author Toru Nagashima <https://github.com/mysticatea>
* @copyright 2015 Toru Nagashima. All rights reserved.
* See LICENSE file in root directory for full license.
*/Object.defineProperty(i,"__esModule",{value:true});const s=new WeakMap;const a=new WeakMap;function pd(r){const i=s.get(r);console.assert(i!=null,"'this' is expected an Event object, but got",r);return i}function setCancelFlag(r){if(r.passiveListener!=null){if(typeof console!=="undefined"&&typeof console.error==="function"){console.error("Unable to preventDefault inside passive event listener invocation.",r.passiveListener)}return}if(!r.event.cancelable){return}r.canceled=true;if(typeof r.event.preventDefault==="function"){r.event.preventDefault()}}function Event(r,i){s.set(this,{eventTarget:r,event:i,eventPhase:2,currentTarget:r,canceled:false,stopped:false,immediateStopped:false,passiveListener:null,timeStamp:i.timeStamp||Date.now()});Object.defineProperty(this,"isTrusted",{value:false,enumerable:true});const a=Object.keys(i);for(let r=0;r<a.length;++r){const i=a[r];if(!(i in this)){Object.defineProperty(this,i,defineRedirectDescriptor(i))}}}Event.prototype={get type(){return pd(this).event.type},get target(){return pd(this).eventTarget},get currentTarget(){return pd(this).currentTarget},composedPath(){const r=pd(this).currentTarget;if(r==null){return[]}return[r]},get NONE(){return 0},get CAPTURING_PHASE(){return 1},get AT_TARGET(){return 2},get BUBBLING_PHASE(){return 3},get eventPhase(){return pd(this).eventPhase},stopPropagation(){const r=pd(this);r.stopped=true;if(typeof r.event.stopPropagation==="function"){r.event.stopPropagation()}},stopImmediatePropagation(){const r=pd(this);r.stopped=true;r.immediateStopped=true;if(typeof r.event.stopImmediatePropagation==="function"){r.event.stopImmediatePropagation()}},get bubbles(){return Boolean(pd(this).event.bubbles)},get cancelable(){return Boolean(pd(this).event.cancelable)},preventDefault(){setCancelFlag(pd(this))},get defaultPrevented(){return pd(this).canceled},get composed(){return Boolean(pd(this).event.composed)},get timeStamp(){return pd(this).timeStamp},get srcElement(){return pd(this).eventTarget},get cancelBubble(){return pd(this).stopped},set cancelBubble(r){if(!r){return}const i=pd(this);i.stopped=true;if(typeof i.event.cancelBubble==="boolean"){i.event.cancelBubble=true}},get returnValue(){return!pd(this).canceled},set returnValue(r){if(!r){setCancelFlag(pd(this))}},initEvent(){}};Object.defineProperty(Event.prototype,"constructor",{value:Event,configurable:true,writable:true});if(typeof window!=="undefined"&&typeof window.Event!=="undefined"){Object.setPrototypeOf(Event.prototype,window.Event.prototype);a.set(window.Event.prototype,Event)}function defineRedirectDescriptor(r){return{get(){return pd(this).event[r]},set(i){pd(this).event[r]=i},configurable:true,enumerable:true}}function defineCallDescriptor(r){return{value(){const i=pd(this).event;return i[r].apply(i,arguments)},configurable:true,enumerable:true}}function defineWrapper(r,i){const s=Object.keys(i);if(s.length===0){return r}function CustomEvent(i,s){r.call(this,i,s)}CustomEvent.prototype=Object.create(r.prototype,{constructor:{value:CustomEvent,configurable:true,writable:true}});for(let a=0;a<s.length;++a){const l=s[a];if(!(l in r.prototype)){const r=Object.getOwnPropertyDescriptor(i,l);const s=typeof r.value==="function";Object.defineProperty(CustomEvent.prototype,l,s?defineCallDescriptor(l):defineRedirectDescriptor(l))}}return CustomEvent}function getWrapper(r){if(r==null||r===Object.prototype){return Event}let i=a.get(r);if(i==null){i=defineWrapper(getWrapper(Object.getPrototypeOf(r)),r);a.set(r,i)}return i}function wrapEvent(r,i){const s=getWrapper(Object.getPrototypeOf(i));return new s(r,i)}function isStopped(r){return pd(r).immediateStopped}function setEventPhase(r,i){pd(r).eventPhase=i}function setCurrentTarget(r,i){pd(r).currentTarget=i}function setPassiveListener(r,i){pd(r).passiveListener=i}const l=new WeakMap;const c=1;const p=2;const u=3;function isObject(r){return r!==null&&typeof r==="object"}function getListeners(r){const i=l.get(r);if(i==null){throw new TypeError("'this' is expected an EventTarget object, but got another value.")}return i}function defineEventAttributeDescriptor(r){return{get(){const i=getListeners(this);let s=i.get(r);while(s!=null){if(s.listenerType===u){return s.listener}s=s.next}return null},set(i){if(typeof i!=="function"&&!isObject(i)){i=null}const s=getListeners(this);let a=null;let l=s.get(r);while(l!=null){if(l.listenerType===u){if(a!==null){a.next=l.next}else if(l.next!==null){s.set(r,l.next)}else{s.delete(r)}}else{a=l}l=l.next}if(i!==null){const l={listener:i,listenerType:u,passive:false,once:false,next:null};if(a===null){s.set(r,l)}else{a.next=l}}},configurable:true,enumerable:true}}function defineEventAttribute(r,i){Object.defineProperty(r,`on${i}`,defineEventAttributeDescriptor(i))}function defineCustomEventTarget(r){function CustomEventTarget(){EventTarget.call(this)}CustomEventTarget.prototype=Object.create(EventTarget.prototype,{constructor:{value:CustomEventTarget,configurable:true,writable:true}});for(let i=0;i<r.length;++i){Line truncated
/*! https://mths.be/he v1.2.0 by @mathias | MIT license */(function(s){var a=true&&i;var l=true&&r&&r.exports==a&&r;var c=typeof global=="object"&&global;if(c.global===c||c.window===c){s=c}var p=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;var u=/[\x01-\x7F]/g;var d=/[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g;var A=/<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g;var h={"­":"shy","‌":"zwnj","‍":"zwj","‎":"lrm","⁣":"ic","⁢":"it","⁡":"af","‏":"rlm","​":"ZeroWidthSpace","⁠":"NoBreak","̑":"DownBreve","⃛":"tdot","⃜":"DotDot","\t":"Tab","\n":"NewLine"," ":"puncsp"," ":"MediumSpace"," ":"thinsp"," ":"hairsp"," ":"emsp13"," ":"ensp"," ":"emsp14"," ":"emsp"," ":"numsp"," ":"nbsp","  ":"ThickSpace","‾":"oline",_:"lowbar","‐":"dash","–":"ndash","—":"mdash","―":"horbar",",":"comma",";":"semi","⁏":"bsemi",":":"colon","⩴":"Colone","!":"excl","¡":"iexcl","?":"quest","¿":"iquest",".":"period","‥":"nldr","…":"mldr","·":"middot","'":"apos","‘":"lsquo","’":"rsquo","‚":"sbquo","‹":"lsaquo","›":"rsaquo",'"':"quot","“":"ldquo","”":"rdquo","„":"bdquo","«":"laquo","»":"raquo","(":"lpar",")":"rpar","[":"lsqb","]":"rsqb","{":"lcub","}":"rcub","⌈":"lceil","⌉":"rceil","⌊":"lfloor","⌋":"rfloor","⦅":"lopar","⦆":"ropar","⦋":"lbrke","⦌":"rbrke","⦍":"lbrkslu","⦎":"rbrksld","⦏":"lbrksld","⦐":"rbrkslu","⦑":"langd","⦒":"rangd","⦓":"lparlt","⦔":"rpargt","⦕":"gtlPar","⦖":"ltrPar","⟦":"lobrk","⟧":"robrk","⟨":"lang","⟩":"rang","⟪":"Lang","⟫":"Rang","⟬":"loang","⟭":"roang","❲":"lbbrk","❳":"rbbrk","‖":"Vert","§":"sect","¶":"para","@":"commat","*":"ast","/":"sol",undefined:null,"&":"amp","#":"num","%":"percnt","‰":"permil","‱":"pertenk","†":"dagger","‡":"Dagger","•":"bull","⁃":"hybull","′":"prime","″":"Prime","‴":"tprime","⁗":"qprimeLine truncated
/*!
* is-plain-object <https://github.com/jonschlinkert/is-plain-object>
*
* Copyright (c) 2014-2017, Jon Schlinkert.
* Released under the MIT License.
*/function isObject(r){return Object.prototype.toString.call(r)==="[object Object]"}function isPlainObject(r){var i,a;if(isObject(r)===false)return false;i=r.constructor;if(i===undefined)return true;a=i.prototype;if(isObject(a)===false)return false;if(a.hasOwnProperty("isPrototypeOf")===false){return false}return true}i.isPlainObject=isPlainObject},7171:(r,i,a)=>{"use strict";Object.defineProperty(i,"__esModule",{value:true});i.ContextAPI=void 0;const s=a(4118);const p=a(5135);const l=a(1877);const c="context";const d=new s.NoopContextManager;class ContextAPI{constructor(){}static getInstance(){if(!this._instance){this._instance=new ContextAPI}return this._instance}setGlobalContextManager(r){return(0,p.registerGlobal)(c,r,l.DiagAPI.instance())}active(){return this._getContextManager().active()}with(r,i,a,...s){return this._getContextManager().with(r,i,a,...s)}bind(r,i){return this._getContextManager().bind(r,i)}_getContextManager(){return(0,p.getGlobal)(c)||d}disable(){this._getContextManager().disable();(0,p.unregisterGlobal)(c,l.DiagAPI.instance())}}i.ContextAPI=ContextAPI},1877:(r,i,a)=>{"use strict";Object.defineProperty(i,"__esModule",{value:true});i.DiagAPI=void 0;const s=a(7978);const p=a(9639);const l=a(8077);const c=a(5135);const d="diag";class DiagAPI{constructor(){function _logProxy(r){return function(...i){const a=(0,c.getGlobal)("diag");if(!a)return;return a[r](...i)}}const r=this;const setLogger=(i,a={logLevel:l.DiagLogLevel.INFO})=>{var s,d,u;if(i===r){const i=new Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");r.error((s=i.stack)!==null&&s!==void 0?s:i.message);return false}if(typeof a==="number"){a={logLevel:a}}const m=(0,c.getGlobal)("diag");const h=(0,p.createLogLevelDiagLogger)((d=a.logLevel)!==null&&d!==void 0?d:l.DiagLogLevel.INFO,i);if(m&&!a.suppressOverrideMessage){const r=(u=(new Error).stack)!==null&&u!==void 0?u:"<failed to generate stacktrace>";m.warn(`Current logger will be overwritten from ${r}`);h.warn(`Current logger will overwrite one already registered from ${r}`)}return(0,c.registerGlobal)("diag",h,r,true)};r.setLogger=setLogger;r.disable=()=>{(0,c.unregisterGlobal)(d,r)};r.createComponentLogger=r=>new s.DiagComponentLogger(r);r.verbose=_logProxy("verbose");r.debug=_logProxy("debug");r.info=_logProxy("info");r.warn=_logProxy("warn");r.error=_logProxy("error")}static instance(){if(!this._instance){this._instance=new DiagAPI}return this._instance}}i.DiagAPI=DiagAPI},7696:(r,i,a)=>{"use strict";Object.defineProperty(i,"__esModule",{value:true});i.MetricsAPI=void 0;const s=a(2647);const p=a(5135);const l=a(1877);const c="metrics";class MetricsAPI{constructor(){}static getInstance(){if(!this._instance){this._instance=new MetricsAPI}return this._instance}setGlobalMeterProvider(r){return(0,p.registerGlobal)(c,r,l.DiagAPI.instance())}getMeterProvider(){return(0,p.getGlobal)(c)||s.NOOP_METER_PROVIDER}getMeter(r,i,a){return this.getMeterProvider().getMeter(r,i,a)}disable(){(0,p.unregisterGlobal)(c,l.DiagAPI.instance())}}i.MetricsAPI=MetricsAPI},9909:(r,i,a)=>{"use strict";Object.defineProperty(i,"__esModule",{value:true});i.PropagationAPI=void 0;const s=a(5135);const p=a(2368);const l=a(865);const c=a(7682);const d=a(8136);const u=a(1877);const m="propagation";const h=new p.NoopTextMapPropagator;class PropagationAPI{constructor(){this.createBaggage=d.createBaggage;this.getBaggage=c.getBaggage;this.getActiveBaggage=c.getActiveBaggage;this.setBaggage=c.setBaggage;this.deleteBaggage=c.deleteBaggage}static getInstance(){if(!this._instance){this._instance=new PropagationAPI}return this._instance}setGlobalPropagator(r){return(0,s.registerGlobal)(m,r,u.DiagAPI.instance())}inject(r,i,a=l.defaultTextMapSetter){return this._getGlobalPropagator().inject(r,i,a)}extract(r,i,a=l.defaultTextMapGetter){return this._getGlobalPropagator().extract(r,i,a)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,s.unregisterGlobal)(m,u.DiagAPI.instance())}_getGlobalPropagator(){return(0,s.getGlobal)(m)||h}}i.PropagationAPI=PropagationAPI},1539:(r,i,a)=>{"use strict";Object.defineProperty(i,"__esModule",{value:true});i.TraceAPI=void 0;const s=a(5135);const p=a(2285);const l=a(9745);const c=a(3326);const d=a(1877);const u="trace";class TraceAPI{constructor(){this._proxyTracerProvider=new p.ProxyTracerProvider;this.wrapSpanContext=l.wrapSpanContext;this.isSpanContextValid=l.isSpanContextValid;this.deleteSpan=c.deleteSpan;this.getSpan=c.getSpan;this.getActiveSpan=c.getActiveSpan;this.getSpanContext=c.getSpanContext;this.setSpan=c.setSpan;this.setSpanContext=c.setSpanContext}static getInstance(){if(!this._instance){this._instance=new TraceAPI}return this._instance}setGlobalTracerProvider(r){const i=(0,s.registerGlobal)(u,this._proxyTracerProvider,d.DiagAPI.instance());if(i){this._proxyTracerProvider.setDelegate(r)}return i}getTracerProvider(){return(0,s.getGlobal)(u)||this._proxyTracerProvider}getTracer(r,iLine truncated
/*!
* is-plain-object <https://github.com/jonschlinkert/is-plain-object>
*
* Copyright (c) 2014-2017, Jon Schlinkert.
* Released under the MIT License.
*/function isObject(r){return Object.prototype.toString.call(r)==="[object Object]"}function isPlainObject(r){var i,a;if(isObject(r)===false)return false;i=r.constructor;if(i===undefined)return true;a=i.prototype;if(isObject(a)===false)return false;if(a.hasOwnProperty("isPrototypeOf")===false){return false}return true}r.exports=isPlainObject},4329:r=>{"use strict";function e(r){this.message=r}e.prototype=new Error,e.prototype.name="InvalidCharacterError";var i="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(r){var i=String(r).replace(/=+$/,"");if(i.length%4==1)throw new e("'atob' failed: The string to be decoded is not correctly encoded.");for(var a,s,p=0,l=0,c="";s=i.charAt(l++);~s&&(a=p%4?64*a+s:s,p++%4)?c+=String.fromCharCode(255&a>>(-2*p&6)):0)s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(s);return c};function t(r){var a=r.replace(/-/g,"+").replace(/_/g,"/");switch(a.length%4){case 0:break;case 2:a+="==";break;case 3:a+="=";break;default:throw"Illegal base64url string!"}try{return function(r){return decodeURIComponent(i(r).replace(/(.)/g,(function(r,i){var a=i.charCodeAt(0).toString(16).toUpperCase();return a.length<2&&(a="0"+a),"%"+a})))}(a)}catch(r){return i(a)}}function n(r){this.message=r}function o(r,i){if("string"!=typeof r)throw new n("Invalid token specified");var a=!0===(i=i||{}).header?0:1;try{return JSON.parse(t(r.split(".")[a]))}catch(r){throw new n("Invalid token specified: "+r.message)}}n.prototype=new Error,n.prototype.name="InvalidTokenError";const a=o;a.default=o,a.InvalidTokenError=n,r.exports=a},7426:(r,i,a)=>{
*/function isObject(r){return Object.prototype.toString.call(r)==="[object Object]"}function isPlainObject(r){var i,s;if(isObject(r)===false)return false;i=r.constructor;if(i===undefined)return true;s=i.prototype;if(isObject(s)===false)return false;if(s.hasOwnProperty("isPrototypeOf")===false){return false}return true}i.isPlainObject=isPlainObject},41554:r=>{"use strict";const isStream=r=>r!==null&&typeof r==="object"&&typeof r.pipe==="function";isStream.writable=r=>isStream(r)&&r.writable!==false&&typeof r._write==="function"&&typeof r._writableState==="object";isStream.readable=r=>isStream(r)&&r.readable!==false&&typeof r._read==="function"&&typeof r._readableState==="object";isStream.duplex=r=>isStream.writable(r)&&isStream.readable(r);isStream.transform=r=>isStream.duplex(r)&&typeof r._transform==="function";r.exports=isStream},20893:r=>{var i={}.toString;r.exports=Array.isArray||function(r){return i.call(r)=="[object Array]"}},21917:(r,i,s)=>{"use strict";var a=s(51161);var l=s(68866);function renamed(r,i){return function(){throw new Error("Function yaml."+r+" is removed in js-yaml 4. "+"Use yaml."+i+" instead, which is now safe by default.")}}r.exports.Type=s(6073);r.exports.Schema=s(21082);r.exports.FAILSAFE_SCHEMA=s(28562);r.exports.JSON_SCHEMA=s(1035);r.exports.CORE_SCHEMA=s(12011);r.exports.DEFAULT_SCHEMA=s(18759);r.exports.load=a.load;r.exports.loadAll=a.loadAll;r.exports.dump=l.dump;r.exports.YAMLException=s(68179);r.exports.types={binary:s(77900),float:s(42705),map:s(86150),null:s(20721),pairs:s(96860),set:s(79548),timestamp:s(99212),bool:s(64993),int:s(11615),merge:s(86104),omap:s(19046),seq:s(67283),str:s(23619)};r.exports.safeLoad=renamed("safeLoad","load");r.exports.safeLoadAll=renamed("safeLoadAll","loadAll");r.exports.safeDump=renamed("safeDump","dump")},26829:r=>{"use strict";function isNothing(r){return typeof r==="undefined"||r===null}function isObject(r){return typeof r==="object"&&r!==null}function toArray(r){if(Array.isArray(r))return r;else if(isNothing(r))return[];return[r]}function extend(r,i){var s,a,l,c;if(i){c=Object.keys(i);for(s=0,a=c.length;s<a;s+=1){l=c[s];r[l]=i[l]}}return r}function repeat(r,i){var s="",a;for(a=0;a<i;a+=1){s+=r}return s}function isNegativeZero(r){return r===0&&Number.NEGATIVE_INFINITY===1/r}r.exports.isNothing=isNothing;r.exports.isObject=isObject;r.exports.toArray=toArray;r.exports.repeat=repeat;r.exports.isNegativeZero=isNegativeZero;r.exports.extend=extend},68866:(r,i,s)=>{"use strict";var a=s(26829);var l=s(68179);var c=s(18759);var p=Object.prototype.toString;var u=Object.prototype.hasOwnProperty;var d=65279;var A=9;var h=10;var g=13;var y=32;var b=33;var v=34;var C=35;var w=37;var I=38;var B=39;var S=42;var x=44;var _=45;var R=58;var T=61;var Q=62;var N=63;var k=64;var D=91;var O=93;var P=96;var L=123;var M=124;var U=125;var G={};G[0]="\\0";G[7]="\\a";G[8]="\\b";G[9]="\\t";G[10]="\\n";G[11]="\\v";G[12]="\\f";G[13]="\\r";G[27]="\\e";G[34]='\\"';G[92]="\\\\";G[133]="\\N";G[160]="\\_";G[8232]="\\L";G[8233]="\\P";var j=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];var q=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;function compileStyleMap(r,i){var s,a,l,c,p,d,A;if(i===null)return{};s={};a=Object.keys(i);for(l=0,c=a.length;l<c;l+=1){p=a[l];d=String(i[p]);if(p.slice(0,2)==="!!"){p="tag:yaml.org,2002:"+p.slice(2)}A=r.compiledTypeMap["fallback"][p];if(A&&u.call(A.styleAliases,d)){d=A.styleAliases[d]}s[p]=d}return s}function encodeHex(r){var i,s,c;i=r.toString(16).toUpperCase();if(r<=255){s="x";c=2}else if(r<=65535){s="u";c=4}else if(r<=4294967295){s="U";c=8}else{throw new l("code point within a string may not be greater than 0xFFFFFFFF")}return"\\"+s+a.repeat("0",c-i.length)+i}var H=1,V=2;function State(r){this.schema=r["schema"]||c;this.indent=Math.max(1,r["indent"]||2);this.noArrayIndent=r["noArrayIndent"]||false;this.skipInvalid=r["skipInvalid"]||false;this.flowLevel=a.isNothing(r["flowLevel"])?-1:r["flowLevel"];this.styleMap=compileStyleMap(this.schema,r["styles"]||null);this.sortKeys=r["sortKeys"]||false;this.lineWidth=r["lineWidth"]||80;this.noRefs=r["noRefs"]||false;this.noCompatMode=r["noCompatMode"]||false;this.condenseFlow=r["condenseFlow"]||false;this.quotingType=r["quotingType"]==='"'?V:H;this.forceQuotes=r["forceQuotes"]||false;this.replacer=typeof r["replacer"]==="function"?r["replacer"]:null;this.implicitTypes=this.schema.compiledImplicit;this.explicitTypes=this.schema.compiledExplicit;this.tag=null;this.result="";this.duplicates=[];this.usedDuplicates=null}function indentString(r,i){var s=a.repeat(" ",i),l=0,c=-1,p="",u,d=r.length;while(l<d){c=r.indexOf("\n",l);if(c===-1){u=r.slice(l);l=d}else{u=r.slice(l,c+1);l=c+1}if(u.length&&u!=="\n")p+=s;p+=u}return p}function generateNextLine(r,i){return"\n"+a.repeat(" ",r.indent*i)}function testImplicitResolving(r,i){var s,a,l;for(s=0,a=r.implicitTypes.length;s<a;s+=1){l=r.implicitTypes[s];if(l.resolve(i)){return true}}return false}function isWhitespace(r){returLine truncated
/*!
* mime-db
* Copyright(c) 2014 Jonathan Ong
* Copyright(c) 2015-2022 Douglas Christopher Wilson
* MIT Licensed
*/
r.exports=a(3765)},3583:(r,i,a)=>{"use strict";
r.exports=s(53765)},43583:(r,i,s)=>{"use strict";
/*!
* mime-types
* Copyright(c) 2014 Jonathan Ong
* Copyright(c) 2015 Douglas Christopher Wilson
* MIT Licensed
*/var s=a(7426);var p=a(1017).extname;var l=/^\s*([^;\s]*)(?:;|\s|$)/;var c=/^text\//i;i.charset=charset;i.charsets={lookup:charset};i.contentType=contentType;i.extension=extension;i.extensions=Object.create(null);i.lookup=lookup;i.types=Object.create(null);populateMaps(i.extensions,i.types);function charset(r){if(!r||typeof r!=="string"){return false}var i=l.exec(r);var a=i&&s[i[1].toLowerCase()];if(a&&a.charset){return a.charset}if(i&&c.test(i[1])){return"UTF-8"}return false}function contentType(r){if(!r||typeof r!=="string"){return false}var a=r.indexOf("/")===-1?i.lookup(r):r;if(!a){return false}if(a.indexOf("charset")===-1){var s=i.charset(a);if(s)a+="; charset="+s.toLowerCase()}return a}function extension(r){if(!r||typeof r!=="string"){return false}var a=l.exec(r);var s=a&&i.extensions[a[1].toLowerCase()];if(!s||!s.length){return false}return s[0]}function lookup(r){if(!r||typeof r!=="string"){return false}var a=p("x."+r).toLowerCase().substr(1);if(!a){return false}return i.types[a]||false}function populateMaps(r,i){var a=["nginx","apache",undefined,"iana"];Object.keys(s).forEach((function forEachMimeType(p){var l=s[p];var c=l.extensions;if(!c||!c.length){return}r[p]=c;for(var d=0;d<c.length;d++){var u=c[d];if(i[u]){var m=a.indexOf(s[i[u]].source);var h=a.indexOf(l.source);if(i[u]!=="application/octet-stream"&&(m>h||m===h&&i[u].substr(0,12)==="application/")){continue}}i[u]=p}}))}},3973:(r,i,a)=>{r.exports=minimatch;minimatch.Minimatch=Minimatch;var s=function(){try{return a(1017)}catch(r){}}()||{sep:"/"};minimatch.sep=s.sep;var p=minimatch.GLOBSTAR=Minimatch.GLOBSTAR={};var l=a(3717);var c={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}};var d="[^/]";var u=d+"*?";var m="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?";var h="(?:(?!(?:\\/|^)\\.).)*?";var g=charSet("().*{}+?[]^$\\!");function charSet(r){return r.split("").reduce((function(r,i){r[i]=true;return r}),{})}var y=/\/+/;minimatch.filter=filter;function filter(r,i){i=i||{};return function(a,s,p){return minimatch(a,r,i)}}function ext(r,i){i=i||{};var a={};Object.keys(r).forEach((function(i){a[i]=r[i]}));Object.keys(i).forEach((function(r){a[r]=i[r]}));return a}minimatch.defaults=function(r){if(!r||typeof r!=="object"||!Object.keys(r).length){return minimatch}var i=minimatch;var a=function minimatch(a,s,p){return i(a,s,ext(r,p))};a.Minimatch=function Minimatch(a,s){return new i.Minimatch(a,ext(r,s))};a.Minimatch.defaults=function defaults(a){return i.defaults(ext(r,a)).Minimatch};a.filter=function filter(a,s){return i.filter(a,ext(r,s))};a.defaults=function defaults(a){return i.defaults(ext(r,a))};a.makeRe=function makeRe(a,s){return i.makeRe(a,ext(r,s))};a.braceExpand=function braceExpand(a,s){return i.braceExpand(a,ext(r,s))};a.match=function(a,s,p){return i.match(a,s,ext(r,p))};return a};Minimatch.defaults=function(r){return minimatch.defaults(r).Minimatch};function minimatch(r,i,a){assertValidPattern(i);if(!a)a={};if(!a.nocomment&&i.charAt(0)==="#"){return false}return new Minimatch(i,a).match(r)}function Minimatch(r,i){if(!(this instanceof Minimatch)){return new Minimatch(r,i)}assertValidPattern(r);if(!i)i={};r=r.trim();if(!i.allowWindowsEscape&&s.sep!=="/"){r=r.split(s.sep).join("/")}this.options=i;this.set=[];this.pattern=r;this.regexp=null;this.negate=false;this.comment=false;this.empty=false;this.partial=!!i.partial;this.make()}Minimatch.prototype.debug=function(){};Minimatch.prototype.make=make;function make(){var r=this.pattern;var i=this.options;if(!i.nocomment&&r.charAt(0)==="#"){this.comment=true;return}if(!r){this.empty=true;return}this.parseNegate();var a=this.globSet=this.braceExpand();if(i.debug)this.debug=function debug(){console.error.apply(console,arguments)};this.debug(this.pattern,a);a=this.globParts=a.map((function(r){return r.split(y)}));this.debug(this.pattern,a);a=a.map((function(r,i,a){return r.map(this.parse,this)}),this);this.debug(this.pattern,a);a=a.filter((function(r){return r.indexOf(false)===-1}));this.debug(this.pattern,a);this.set=a}Minimatch.prototype.parseNegate=parseNegate;function parseNegate(){var r=this.pattern;var i=false;var a=this.options;var s=0;if(a.nonegate)return;for(var p=0,l=r.length;p<l&&r.charAt(p)==="!";p++){i=!i;s++}if(s)this.pattern=r.substr(s);this.negate=i}minimatch.braceExpand=function(r,i){return braceExpand(r,i)};Minimatch.prototype.braceExpand=braceExpand;function braceExpand(r,i){if(!i){if(this instanceof Minimatch){i=this.options}else{i={}}}r=typeof r==="undefined"?this.pattern:r;assertValidPattern(r);if(i.nobrace||!/\{(?:(?!\{).)*\}/.test(r)){return[r]}return l(r)}var v=1024*64;var assertValidPattern=function(r){if(typeof r!=="string"){throw new TypeError("invalid pattern")}if(r.length>v){throw new TypeError("pattern is too long")}};Minimatch.prototype.parse=parse;var b={};function parse(r,i){assertValidPattern(r);var a=this.options;if(r==="**"){if(!a.noglobstar)return p;else r="*"}iLine truncated
/*! http://mths.be/fromcodepoint v0.1.0 by @mathias */if(!String.fromCodePoint){(function(){var r=String.fromCharCode;var i=Math.floor;var fromCodePoint=function(){var a=16384;var s=[];var p;var l;var c=-1;var d=arguments.length;if(!d){return""}var u="";while(++c<d){var m=Number(arguments[c]);if(!isFinite(m)||m<0||m>1114111||i(m)!==m){throw RangeError("Invalid code point: "+m)}if(m<=65535){s.push(m)}else{m-=65536;p=(m>>10)+55296;l=m%1024+56320;s.push(p,l)}if(c+1===d||s.length>a){u+=r.apply(null,s);s.length=0}}return u};if(Object.defineProperty){Object.defineProperty(String,"fromCodePoint",{value:fromCodePoint,configurable:true,writable:true})}else{String.fromCodePoint=fromCodePoint}})()}})(false?0:i)},5911:(r,i)=>{i=r.exports=SemVer;var a;if(typeof process==="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)){a=function(){var r=Array.prototype.slice.call(arguments,0);r.unshift("SEMVER");console.log.apply(console,r)}}else{a=function(){}}i.SEMVER_SPEC_VERSION="2.0.0";var s=256;var p=Number.MAX_SAFE_INTEGER||9007199254740991;var l=16;var c=s-6;var d=i.re=[];var u=i.safeRe=[];var m=i.src=[];var h=i.tokens={};var g=0;function tok(r){h[r]=g++}var y="[a-zA-Z0-9-]";var v=[["\\s",1],["\\d",s],[y,c]];function makeSafeRe(r){for(var i=0;i<v.length;i++){var a=v[i][0];var s=v[i][1];r=r.split(a+"*").join(a+"{0,"+s+"}").split(a+"+").join(a+"{1,"+s+"}")}return r}tok("NUMERICIDENTIFIER");m[h.NUMERICIDENTIFIER]="0|[1-9]\\d*";tok("NUMERICIDENTIFIERLOOSE");m[h.NUMERICIDENTIFIERLOOSE]="\\d+";tok("NONNUMERICIDENTIFIER");m[h.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-]"+y+"*";tok("MAINVERSION");m[h.MAINVERSION]="("+m[h.NUMERICIDENTIFIER]+")\\."+"("+m[h.NUMERICIDENTIFIER]+")\\."+"("+m[h.NUMERICIDENTIFIER]+")";tok("MAINVERSIONLOOSE");m[h.MAINVERSIONLOOSE]="("+m[h.NUMERICIDENTIFIERLOOSE]+")\\."+"("+m[h.NUMERICIDENTIFIERLOOSE]+")\\."+"("+m[h.NUMERICIDENTIFIERLOOSE]+")";tok("PRERELEASEIDENTIFIER");m[h.PRERELEASEIDENTIFIER]="(?:"+m[h.NUMERICIDENTIFIER]+"|"+m[h.NONNUMERICIDENTIFIER]+")";tok("PRERELEASEIDENTIFIERLOOSE");m[h.PRERELEASEIDENTIFIERLOOSE]="(?:"+m[h.NUMERICIDENTIFIERLOOSE]+"|"+m[h.NONNUMERICIDENTIFIER]+")";tok("PRERELEASE");m[h.PRERELEASE]="(?:-("+m[h.PRERELEASEIDENTIFIER]+"(?:\\."+m[h.PRERELEASEIDENTIFIER]+")*))";tok("PRERELEASELOOSE");m[h.PRERELEASELOOSE]="(?:-?("+m[h.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+m[h.PRERELEASEIDENTIFIERLOOSE]+")*))";tok("BUILDIDENTIFIER");m[h.BUILDIDENTIFIER]=y+"+";tok("BUILD");m[h.BUILD]="(?:\\+("+m[h.BUILDIDENTIFIER]+"(?:\\."+m[h.BUILDIDENTIFIER]+")*))";tok("FULL");tok("FULLPLAIN");m[h.FULLPLAIN]="v?"+m[h.MAINVERSION]+m[h.PRERELEASE]+"?"+m[h.BUILD]+"?";m[h.FULL]="^"+m[h.FULLPLAIN]+"$";tok("LOOSEPLAIN");m[h.LOOSEPLAIN]="[v=\\s]*"+m[h.MAINVERSIONLOOSE]+m[h.PRERELEASELOOSE]+"?"+m[h.BUILD]+"?";tok("LOOSE");m[h.LOOSE]="^"+m[h.LOOSEPLAIN]+"$";tok("GTLT");m[h.GTLT]="((?:<|>)?=?)";tok("XRANGEIDENTIFIERLOOSE");m[h.XRANGEIDENTIFIERLOOSE]=m[h.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*";tok("XRANGEIDENTIFIER");m[h.XRANGEIDENTIFIER]=m[h.NUMERICIDENTIFIER]+"|x|X|\\*";tok("XRANGEPLAIN");m[h.XRANGEPLAIN]="[v=\\s]*("+m[h.XRANGEIDENTIFIER]+")"+"(?:\\.("+m[h.XRANGEIDENTIFIER]+")"+"(?:\\.("+m[h.XRANGEIDENTIFIER]+")"+"(?:"+m[h.PRERELEASE]+")?"+m[h.BUILD]+"?"+")?)?";tok("XRANGEPLAINLOOSE");m[h.XRANGEPLAINLOOSE]="[v=\\s]*("+m[h.XRANGEIDENTIFIERLOOSE]+")"+"(?:\\.("+m[h.XRANGEIDENTIFIERLOOSE]+")"+"(?:\\.("+m[h.XRANGEIDENTIFIERLOOSE]+")"+"(?:"+m[h.PRERELEASELOOSE]+")?"+m[h.BUILD]+"?"+")?)?";tok("XRANGE");m[h.XRANGE]="^"+m[h.GTLT]+"\\s*"+m[h.XRANGEPLAIN]+"$";tok("XRANGELOOSE");m[h.XRANGELOOSE]="^"+m[h.GTLT]+"\\s*"+m[h.XRANGEPLAINLOOSE]+"$";tok("COERCE");m[h.COERCE]="(^|[^\\d])"+"(\\d{1,"+l+"})"+"(?:\\.(\\d{1,"+l+"}))?"+"(?:\\.(\\d{1,"+l+"}))?"+"(?:$|[^\\d])";tok("COERCERTL");d[h.COERCERTL]=new RegExp(m[h.COERCE],"g");u[h.COERCERTL]=new RegExp(makeSafeRe(m[h.COERCE]),"g");tok("LONETILDE");m[h.LONETILDE]="(?:~>?)";tok("TILDETRIM");m[h.TILDETRIM]="(\\s*)"+m[h.LONETILDE]+"\\s+";d[h.TILDETRIM]=new RegExp(m[h.TILDETRIM],"g");u[h.TILDETRIM]=new RegExp(makeSafeRe(m[h.TILDETRIM]),"g");var b="$1~";tok("TILDE");m[h.TILDE]="^"+m[h.LONETILDE]+m[h.XRANGEPLAIN]+"$";tok("TILDELOOSE");m[h.TILDELOOSE]="^"+m[h.LONETILDE]+m[h.XRANGEPLAINLOOSE]+"$";tok("LONECARET");m[h.LONECARET]="(?:\\^)";tok("CARETTRIM");m[h.CARETTRIM]="(\\s*)"+m[h.LONECARET]+"\\s+";d[h.CARETTRIM]=new RegExp(m[h.CARETTRIM],"g");u[h.CARETTRIM]=new RegExp(makeSafeRe(m[h.CARETTRIM]),"g");var x="$1^";tok("CARET");m[h.CARET]="^"+m[h.LONECARET]+m[h.XRANGEPLAIN]+"$";tok("CARETLOOSE");m[h.CARETLOOSE]="^"+m[h.LONECARET]+m[h.XRANGEPLAINLOOSE]+"$";tok("COMPARATORLOOSE");m[h.COMPARATORLOOSE]="^"+m[h.GTLT]+"\\s*("+m[h.LOOSEPLAIN]+")$|^$";tok("COMPARATOR");m[h.COMPARATOR]="^"+m[h.GTLT]+"\\s*("+m[h.FULLPLAIN]+")$|^$";tok("COMPARATORTRIM");m[h.COMPARATORTRIM]="(\\s*)"+m[h.GTLT]+"\\s*("+m[h.LOOSEPLAIN]+"|"+m[h.XRANGEPLAIN]+")";d[h.COMPARATORTRIM]=new RegExp(m[h.COMPARATORTRIM],"g");u[h.COMPARATORTRIM]=new RegExp(makeSafeRe(m[h.COMPARATORTRIM]),"g");var w="$1$2$3";tok("HYPLine truncated
*/var a=s(47426);var l=s(71017).extname;var c=/^\s*([^;\s]*)(?:;|\s|$)/;var p=/^text\//i;i.charset=charset;i.charsets={lookup:charset};i.contentType=contentType;i.extension=extension;i.extensions=Object.create(null);i.lookup=lookup;i.types=Object.create(null);populateMaps(i.extensions,i.types);function charset(r){if(!r||typeof r!=="string"){return false}var i=c.exec(r);var s=i&&a[i[1].toLowerCase()];if(s&&s.charset){return s.charset}if(i&&p.test(i[1])){return"UTF-8"}return false}function contentType(r){if(!r||typeof r!=="string"){return false}var s=r.indexOf("/")===-1?i.lookup(r):r;if(!s){return false}if(s.indexOf("charset")===-1){var a=i.charset(s);if(a)s+="; charset="+a.toLowerCase()}return s}function extension(r){if(!r||typeof r!=="string"){return false}var s=c.exec(r);var a=s&&i.extensions[s[1].toLowerCase()];if(!a||!a.length){return false}return a[0]}function lookup(r){if(!r||typeof r!=="string"){return false}var s=l("x."+r).toLowerCase().substr(1);if(!s){return false}return i.types[s]||false}function populateMaps(r,i){var s=["nginx","apache",undefined,"iana"];Object.keys(a).forEach((function forEachMimeType(l){var c=a[l];var p=c.extensions;if(!p||!p.length){return}r[l]=p;for(var u=0;u<p.length;u++){var d=p[u];if(i[d]){var A=s.indexOf(a[i[d]].source);var h=s.indexOf(c.source);if(i[d]!=="application/octet-stream"&&(A>h||A===h&&i[d].substr(0,12)==="application/")){continue}}i[d]=l}}))}},83973:(r,i,s)=>{r.exports=minimatch;minimatch.Minimatch=Minimatch;var a=function(){try{return s(71017)}catch(r){}}()||{sep:"/"};minimatch.sep=a.sep;var l=minimatch.GLOBSTAR=Minimatch.GLOBSTAR={};var c=s(48184);var p={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}};var u="[^/]";var d=u+"*?";var A="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?";var h="(?:(?!(?:\\/|^)\\.).)*?";var g=charSet("().*{}+?[]^$\\!");function charSet(r){return r.split("").reduce((function(r,i){r[i]=true;return r}),{})}var y=/\/+/;minimatch.filter=filter;function filter(r,i){i=i||{};return function(s,a,l){return minimatch(s,r,i)}}function ext(r,i){i=i||{};var s={};Object.keys(r).forEach((function(i){s[i]=r[i]}));Object.keys(i).forEach((function(r){s[r]=i[r]}));return s}minimatch.defaults=function(r){if(!r||typeof r!=="object"||!Object.keys(r).length){return minimatch}var i=minimatch;var s=function minimatch(s,a,l){return i(s,a,ext(r,l))};s.Minimatch=function Minimatch(s,a){return new i.Minimatch(s,ext(r,a))};s.Minimatch.defaults=function defaults(s){return i.defaults(ext(r,s)).Minimatch};s.filter=function filter(s,a){return i.filter(s,ext(r,a))};s.defaults=function defaults(s){return i.defaults(ext(r,s))};s.makeRe=function makeRe(s,a){return i.makeRe(s,ext(r,a))};s.braceExpand=function braceExpand(s,a){return i.braceExpand(s,ext(r,a))};s.match=function(s,a,l){return i.match(s,a,ext(r,l))};return s};Minimatch.defaults=function(r){return minimatch.defaults(r).Minimatch};function minimatch(r,i,s){assertValidPattern(i);if(!s)s={};if(!s.nocomment&&i.charAt(0)==="#"){return false}return new Minimatch(i,s).match(r)}function Minimatch(r,i){if(!(this instanceof Minimatch)){return new Minimatch(r,i)}assertValidPattern(r);if(!i)i={};r=r.trim();if(!i.allowWindowsEscape&&a.sep!=="/"){r=r.split(a.sep).join("/")}this.options=i;this.set=[];this.pattern=r;this.regexp=null;this.negate=false;this.comment=false;this.empty=false;this.partial=!!i.partial;this.make()}Minimatch.prototype.debug=function(){};Minimatch.prototype.make=make;function make(){var r=this.pattern;var i=this.options;if(!i.nocomment&&r.charAt(0)==="#"){this.comment=true;return}if(!r){this.empty=true;return}this.parseNegate();var s=this.globSet=this.braceExpand();if(i.debug)this.debug=function debug(){console.error.apply(console,arguments)};this.debug(this.pattern,s);s=this.globParts=s.map((function(r){return r.split(y)}));this.debug(this.pattern,s);s=s.map((function(r,i,s){return r.map(this.parse,this)}),this);this.debug(this.pattern,s);s=s.filter((function(r){return r.indexOf(false)===-1}));this.debug(this.pattern,s);this.set=s}Minimatch.prototype.parseNegate=parseNegate;function parseNegate(){var r=this.pattern;var i=false;var s=this.options;var a=0;if(s.nonegate)return;for(var l=0,c=r.length;l<c&&r.charAt(l)==="!";l++){i=!i;a++}if(a)this.pattern=r.substr(a);this.negate=i}minimatch.braceExpand=function(r,i){return braceExpand(r,i)};Minimatch.prototype.braceExpand=braceExpand;function braceExpand(r,i){if(!i){if(this instanceof Minimatch){i=this.options}else{i={}}}r=typeof r==="undefined"?this.pattern:r;assertValidPattern(r);if(i.nobrace||!/\{(?:(?!\{).)*\}/.test(r)){return[r]}return c(r)}var b=1024*64;var assertValidPattern=function(r){if(typeof r!=="string"){throw new TypeError("invalid pattern")}if(r.length>b){throw new TypeError("pattern is too long")}};Minimatch.prototype.parse=parse;var v={};function parse(r,i){assertValidPattern(r);var s=this.options;if(r==="**"){if(!s.noglobstar)return l;else r=Line truncated
/*!
* normalize-path <https://github.com/jonschlinkert/normalize-path>
*
* Copyright (c) 2014-2018, Jon Schlinkert.
* Released under the MIT License.
*/
r.exports=function(r,i){if(typeof r!=="string"){throw new TypeError("expected path to be a string")}if(r==="\\"||r==="/")return"/";var s=r.length;if(s<=1)return r;var a="";if(s>4&&r[3]==="\\"){var l=r[2];if((l==="?"||l===".")&&r.slice(0,2)==="\\\\"){r=r.slice(2);a="//"}}var c=r.split(/[/\\]+/);if(i!==false&&c[c.length-1]===""){c.pop()}return a+c.join("/")}},1223:(r,i,s)=>{var a=s(62940);r.exports=a(once);r.exports.strict=a(onceStrict);once.proto=once((function(){Object.defineProperty(Function.prototype,"once",{value:function(){return once(this)},configurable:true});Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return onceStrict(this)},configurable:true})}));function once(r){var f=function(){if(f.called)return f.value;f.called=true;return f.value=r.apply(this,arguments)};f.called=false;return f}function onceStrict(r){var f=function(){if(f.called)throw new Error(f.onceError);f.called=true;return f.value=r.apply(this,arguments)};var i=r.name||"Function wrapped with `once`";f.onceError=i+" shouldn't be called more than once";f.called=false;return f}},47810:r=>{"use strict";if(typeof process==="undefined"||!process.version||process.version.indexOf("v0.")===0||process.version.indexOf("v1.")===0&&process.version.indexOf("v1.8.")!==0){r.exports={nextTick:nextTick}}else{r.exports=process}function nextTick(r,i,s,a){if(typeof r!=="function"){throw new TypeError('"callback" argument must be a function')}var l=arguments.length;var c,p;switch(l){case 0:case 1:return process.nextTick(r);case 2:return process.nextTick((function afterTickOne(){r.call(null,i)}));case 3:return process.nextTick((function afterTickTwo(){r.call(null,i,s)}));case 4:return process.nextTick((function afterTickThree(){r.call(null,i,s,a)}));default:c=new Array(l-1);p=0;while(p<c.length){c[p++]=arguments[p]}return process.nextTick((function afterTick(){r.apply(null,c)}))}}},45676:r=>{r.exports=global.process},5322:(r,i,s)=>{r.exports=typeof process!=="undefined"&&typeof process.nextTick==="function"?process.nextTick.bind(process):s(71031)},71031:r=>{r.exports=typeof queueMicrotask==="function"?queueMicrotask:r=>Promise.resolve().then(r)},80289:(r,i,s)=>{"use strict";const{SymbolDispose:a}=s(89629);const{AbortError:l,codes:c}=s(80529);const{isNodeStream:p,isWebStream:u,kControllerErrorFunction:d}=s(27981);const A=s(76080);const{ERR_INVALID_ARG_TYPE:h}=c;let g;const validateAbortSignal=(r,i)=>{if(typeof r!=="object"||!("aborted"in r)){throw new h(i,"AbortSignal",r)}};r.exports.addAbortSignal=function addAbortSignal(i,s){validateAbortSignal(i,"signal");if(!p(s)&&!u(s)){throw new h("stream",["ReadableStream","WritableStream","Stream"],s)}return r.exports.addAbortSignalNoValidate(i,s)};r.exports.addAbortSignalNoValidate=function(r,i){if(typeof r!=="object"||!("aborted"in r)){return i}const c=p(i)?()=>{i.destroy(new l(undefined,{cause:r.reason}))}:()=>{i[d](new l(undefined,{cause:r.reason}))};if(r.aborted){c()}else{g=g||s(46959).addAbortListener;const l=g(r,c);A(i,l[a])}return i}},52746:(r,i,s)=>{"use strict";const{StringPrototypeSlice:a,SymbolIterator:l,TypedArrayPrototypeSet:c,Uint8Array:p}=s(89629);const{Buffer:u}=s(14300);const{inspect:d}=s(46959);r.exports=class BufferList{constructor(){this.head=null;this.tail=null;this.length=0}push(r){const i={data:r,next:null};if(this.length>0)this.tail.next=i;else this.head=i;this.tail=i;++this.length}unshift(r){const i={data:r,next:this.head};if(this.length===0)this.tail=i;this.head=i;++this.length}shift(){if(this.length===0)return;const r=this.head.data;if(this.length===1)this.head=this.tail=null;else this.head=this.head.next;--this.length;return r}clear(){this.head=this.tail=null;this.length=0}join(r){if(this.length===0)return"";let i=this.head;let s=""+i.data;while((i=i.next)!==null)s+=r+i.data;return s}concat(r){if(this.length===0)return u.alloc(0);const i=u.allocUnsafe(r>>>0);let s=this.head;let a=0;while(s){c(i,s.data,a);a+=s.data.length;s=s.next}return i}consume(r,i){const s=this.head.data;if(r<s.length){const i=s.slice(0,r);this.head.data=s.slice(r);return i}if(r===s.length){return this.shift()}return i?this._getString(r):this._getBuffer(r)}first(){return this.head.data}*[l](){for(let r=this.head;r;r=r.next){yield r.data}}_getString(r){let i="";let s=this.head;let l=0;do{const c=s.data;if(r>c.length){i+=c;r-=c.length}else{if(r===c.length){i+=c;++l;if(s.next)this.head=s.next;else this.head=this.tail=null}else{i+=a(c,0,r);this.head=s;s.data=a(c,r)}break}++l}while((s=s.next)!==null);this.length-=l;return i}_getBuffer(r){const i=u.allocUnsafe(r);const s=r;let a=this.head;let l=0;do{const u=a.data;if(r>u.length){c(i,u,s-r);r-=u.length}else{if(r===u.length){c(i,u,s-r);++l;if(a.next)this.head=a.next;else this.head=this.tail=null}else{c(i,new p(u.buffer,u.byteOffset,r),s-r);this.head=a;a.data=u.slice(r)}break}++l}while((a=a.next)!==null);this.length-=l;return i}[Symbol.for("nodejs.util.inspect.custom")](r,i){return d(this,{...i,depth:0,customInspect:false})}}},63129:(r,i,s)=>{"use stricLine truncated
/*! http://mths.be/fromcodepoint v0.1.0 by @mathias */if(!String.fromCodePoint){(function(){var r=String.fromCharCode;var i=Math.floor;var fromCodePoint=function(){var s=16384;var a=[];var l;var c;var p=-1;var u=arguments.length;if(!u){return""}var d="";while(++p<u){var A=Number(arguments[p]);if(!isFinite(A)||A<0||A>1114111||i(A)!==A){throw RangeError("Invalid code point: "+A)}if(A<=65535){a.push(A)}else{A-=65536;l=(A>>10)+55296;c=A%1024+56320;a.push(l,c)}if(p+1===u||a.length>s){d+=r.apply(null,a);a.length=0}}return d};if(Object.defineProperty){Object.defineProperty(String,"fromCodePoint",{value:fromCodePoint,configurable:true,writable:true})}else{String.fromCodePoint=fromCodePoint}})()}})(false?0:i)},85911:(r,i)=>{i=r.exports=SemVer;var s;if(typeof process==="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)){s=function(){var r=Array.prototype.slice.call(arguments,0);r.unshift("SEMVER");console.log.apply(console,r)}}else{s=function(){}}i.SEMVER_SPEC_VERSION="2.0.0";var a=256;var l=Number.MAX_SAFE_INTEGER||9007199254740991;var c=16;var p=a-6;var u=i.re=[];var d=i.safeRe=[];var A=i.src=[];var h=i.tokens={};var g=0;function tok(r){h[r]=g++}var y="[a-zA-Z0-9-]";var b=[["\\s",1],["\\d",a],[y,p]];function makeSafeRe(r){for(var i=0;i<b.length;i++){var s=b[i][0];var a=b[i][1];r=r.split(s+"*").join(s+"{0,"+a+"}").split(s+"+").join(s+"{1,"+a+"}")}return r}tok("NUMERICIDENTIFIER");A[h.NUMERICIDENTIFIER]="0|[1-9]\\d*";tok("NUMERICIDENTIFIERLOOSE");A[h.NUMERICIDENTIFIERLOOSE]="\\d+";tok("NONNUMERICIDENTIFIER");A[h.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-]"+y+"*";tok("MAINVERSION");A[h.MAINVERSION]="("+A[h.NUMERICIDENTIFIER]+")\\."+"("+A[h.NUMERICIDENTIFIER]+")\\."+"("+A[h.NUMERICIDENTIFIER]+")";tok("MAINVERSIONLOOSE");A[h.MAINVERSIONLOOSE]="("+A[h.NUMERICIDENTIFIERLOOSE]+")\\."+"("+A[h.NUMERICIDENTIFIERLOOSE]+")\\."+"("+A[h.NUMERICIDENTIFIERLOOSE]+")";tok("PRERELEASEIDENTIFIER");A[h.PRERELEASEIDENTIFIER]="(?:"+A[h.NUMERICIDENTIFIER]+"|"+A[h.NONNUMERICIDENTIFIER]+")";tok("PRERELEASEIDENTIFIERLOOSE");A[h.PRERELEASEIDENTIFIERLOOSE]="(?:"+A[h.NUMERICIDENTIFIERLOOSE]+"|"+A[h.NONNUMERICIDENTIFIER]+")";tok("PRERELEASE");A[h.PRERELEASE]="(?:-("+A[h.PRERELEASEIDENTIFIER]+"(?:\\."+A[h.PRERELEASEIDENTIFIER]+")*))";tok("PRERELEASELOOSE");A[h.PRERELEASELOOSE]="(?:-?("+A[h.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+A[h.PRERELEASEIDENTIFIERLOOSE]+")*))";tok("BUILDIDENTIFIER");A[h.BUILDIDENTIFIER]=y+"+";tok("BUILD");A[h.BUILD]="(?:\\+("+A[h.BUILDIDENTIFIER]+"(?:\\."+A[h.BUILDIDENTIFIER]+")*))";tok("FULL");tok("FULLPLAIN");A[h.FULLPLAIN]="v?"+A[h.MAINVERSION]+A[h.PRERELEASE]+"?"+A[h.BUILD]+"?";A[h.FULL]="^"+A[h.FULLPLAIN]+"$";tok("LOOSEPLAIN");A[h.LOOSEPLAIN]="[v=\\s]*"+A[h.MAINVERSIONLOOSE]+A[h.PRERELEASELOOSE]+"?"+A[h.BUILD]+"?";tok("LOOSE");A[h.LOOSE]="^"+A[h.LOOSEPLAIN]+"$";tok("GTLT");A[h.GTLT]="((?:<|>)?=?)";tok("XRANGEIDENTIFIERLOOSE");A[h.XRANGEIDENTIFIERLOOSE]=A[h.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*";tok("XRANGEIDENTIFIER");A[h.XRANGEIDENTIFIER]=A[h.NUMERICIDENTIFIER]+"|x|X|\\*";tok("XRANGEPLAIN");A[h.XRANGEPLAIN]="[v=\\s]*("+A[h.XRANGEIDENTIFIER]+")"+"(?:\\.("+A[h.XRANGEIDENTIFIER]+")"+"(?:\\.("+A[h.XRANGEIDENTIFIER]+")"+"(?:"+A[h.PRERELEASE]+")?"+A[h.BUILD]+"?"+")?)?";tok("XRANGEPLAINLOOSE");A[h.XRANGEPLAINLOOSE]="[v=\\s]*("+A[h.XRANGEIDENTIFIERLOOSE]+")"+"(?:\\.("+A[h.XRANGEIDENTIFIERLOOSE]+")"+"(?:\\.("+A[h.XRANGEIDENTIFIERLOOSE]+")"+"(?:"+A[h.PRERELEASELOOSE]+")?"+A[h.BUILD]+"?"+")?)?";tok("XRANGE");A[h.XRANGE]="^"+A[h.GTLT]+"\\s*"+A[h.XRANGEPLAIN]+"$";tok("XRANGELOOSE");A[h.XRANGELOOSE]="^"+A[h.GTLT]+"\\s*"+A[h.XRANGEPLAINLOOSE]+"$";tok("COERCE");A[h.COERCE]="(^|[^\\d])"+"(\\d{1,"+c+"})"+"(?:\\.(\\d{1,"+c+"}))?"+"(?:\\.(\\d{1,"+c+"}))?"+"(?:$|[^\\d])";tok("COERCERTL");u[h.COERCERTL]=new RegExp(A[h.COERCE],"g");d[h.COERCERTL]=new RegExp(makeSafeRe(A[h.COERCE]),"g");tok("LONETILDE");A[h.LONETILDE]="(?:~>?)";tok("TILDETRIM");A[h.TILDETRIM]="(\\s*)"+A[h.LONETILDE]+"\\s+";u[h.TILDETRIM]=new RegExp(A[h.TILDETRIM],"g");d[h.TILDETRIM]=new RegExp(makeSafeRe(A[h.TILDETRIM]),"g");var v="$1~";tok("TILDE");A[h.TILDE]="^"+A[h.LONETILDE]+A[h.XRANGEPLAIN]+"$";tok("TILDELOOSE");A[h.TILDELOOSE]="^"+A[h.LONETILDE]+A[h.XRANGEPLAINLOOSE]+"$";tok("LONECARET");A[h.LONECARET]="(?:\\^)";tok("CARETTRIM");A[h.CARETTRIM]="(\\s*)"+A[h.LONECARET]+"\\s+";u[h.CARETTRIM]=new RegExp(A[h.CARETTRIM],"g");d[h.CARETTRIM]=new RegExp(makeSafeRe(A[h.CARETTRIM]),"g");var C="$1^";tok("CARET");A[h.CARET]="^"+A[h.LONECARET]+A[h.XRANGEPLAIN]+"$";tok("CARETLOOSE");A[h.CARETLOOSE]="^"+A[h.LONECARET]+A[h.XRANGEPLAINLOOSE]+"$";tok("COMPARATORLOOSE");A[h.COMPARATORLOOSE]="^"+A[h.GTLT]+"\\s*("+A[h.LOOSEPLAIN]+")$|^$";tok("COMPARATOR");A[h.COMPARATOR]="^"+A[h.GTLT]+"\\s*("+A[h.FULLPLAIN]+")$|^$";tok("COMPARATORTRIM");A[h.COMPARATORTRIM]="(\\s*)"+A[h.GTLT]+"\\s*("+A[h.LOOSEPLAIN]+"|"+A[h.XRANGEPLAIN]+")";u[h.COMPARATORTRIM]=new RegExp(A[h.COMPARATORTRIM],"g");d[h.COMPARATORTRIM]=new RegExp(makeSafeRe(A[h.COMPARATORTRIM]),"g");var w="$1$2$3";tok("HYLine truncated
/*!
* Tmp
*
@@ -32,5 +89,15 @@ r.exports=a(3765)},3583:(r,i,a)=>{"use strict";
*
* MIT Licensed
*/
const s=a(7147);const p=a(2037);const l=a(1017);const c=a(6113);const d={fs:s.constants,os:p.constants};const u=a(4959);const m="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",h=/XXXXXX/,g=3,y=(d.O_CREAT||d.fs.O_CREAT)|(d.O_EXCL||d.fs.O_EXCL)|(d.O_RDWR||d.fs.O_RDWR),v=p.platform()==="win32",b=d.EBADF||d.os.errno.EBADF,x=d.ENOENT||d.os.errno.ENOENT,w=448,S=384,_="exit",E=[],T=s.rmdirSync.bind(s),N=u.sync;let P=false;function tmpName(r,i){const a=_parseArguments(r,i),p=a[0],l=a[1];try{_assertAndSanitizeOptions(p)}catch(r){return l(r)}let c=p.tries;(function _getUniqueName(){try{const r=_generateTmpName(p);s.stat(r,(function(i){if(!i){if(c-- >0)return _getUniqueName();return l(new Error("Could not get a unique tmp filename, max tries reached "+r))}l(null,r)}))}catch(r){l(r)}})()}function tmpNameSync(r){const i=_parseArguments(r),a=i[0];_assertAndSanitizeOptions(a);let p=a.tries;do{const r=_generateTmpName(a);try{s.statSync(r)}catch(i){return r}}while(p-- >0);throw new Error("Could not get a unique tmp filename, max tries reached")}function file(r,i){const a=_parseArguments(r,i),p=a[0],l=a[1];tmpName(p,(function _tmpNameCreated(r,i){if(r)return l(r);s.open(i,y,p.mode||S,(function _fileCreated(r,a){if(r)return l(r);if(p.discardDescriptor){return s.close(a,(function _discardCallback(r){return l(r,i,undefined,_prepareTmpFileRemoveCallback(i,-1,p,false))}))}else{const r=p.discardDescriptor||p.detachDescriptor;l(null,i,a,_prepareTmpFileRemoveCallback(i,r?-1:a,p,false))}}))}))}function fileSync(r){const i=_parseArguments(r),a=i[0];const p=a.discardDescriptor||a.detachDescriptor;const l=tmpNameSync(a);var c=s.openSync(l,y,a.mode||S);if(a.discardDescriptor){s.closeSync(c);c=undefined}return{name:l,fd:c,removeCallback:_prepareTmpFileRemoveCallback(l,p?-1:c,a,true)}}function dir(r,i){const a=_parseArguments(r,i),p=a[0],l=a[1];tmpName(p,(function _tmpNameCreated(r,i){if(r)return l(r);s.mkdir(i,p.mode||w,(function _dirCreated(r){if(r)return l(r);l(null,i,_prepareTmpDirRemoveCallback(i,p,false))}))}))}function dirSync(r){const i=_parseArguments(r),a=i[0];const p=tmpNameSync(a);s.mkdirSync(p,a.mode||w);return{name:p,removeCallback:_prepareTmpDirRemoveCallback(p,a,true)}}function _removeFileAsync(r,i){const _handler=function(r){if(r&&!_isENOENT(r)){return i(r)}i()};if(0<=r[0])s.close(r[0],(function(){s.unlink(r[1],_handler)}));else s.unlink(r[1],_handler)}function _removeFileSync(r){let i=null;try{if(0<=r[0])s.closeSync(r[0])}catch(r){if(!_isEBADF(r)&&!_isENOENT(r))throw r}finally{try{s.unlinkSync(r[1])}catch(r){if(!_isENOENT(r))i=r}}if(i!==null){throw i}}function _prepareTmpFileRemoveCallback(r,i,a,s){const p=_prepareRemoveCallback(_removeFileSync,[i,r],s);const l=_prepareRemoveCallback(_removeFileAsync,[i,r],s,p);if(!a.keep)E.unshift(p);return s?p:l}function _prepareTmpDirRemoveCallback(r,i,a){const p=i.unsafeCleanup?u:s.rmdir.bind(s);const l=i.unsafeCleanup?N:T;const c=_prepareRemoveCallback(l,r,a);const d=_prepareRemoveCallback(p,r,a,c);if(!i.keep)E.unshift(c);return a?c:d}function _prepareRemoveCallback(r,i,a,s){let p=false;return function _cleanupCallback(l){if(!p){const c=s||_cleanupCallback;const d=E.indexOf(c);if(d>=0)E.splice(d,1);p=true;if(a||r===T||r===N){return r(i)}else{return r(i,l||function(){})}}}}function _garbageCollector(){if(!P)return;while(E.length){try{E[0]()}catch(r){}}}function _randomChars(r){let i=[],a=null;try{a=c.randomBytes(r)}catch(i){a=c.pseudoRandomBytes(r)}for(var s=0;s<r;s++){i.push(m[a[s]%m.length])}return i.join("")}function _isBlank(r){return r===null||_isUndefined(r)||!r.trim()}function _isUndefined(r){return typeof r==="undefined"}function _parseArguments(r,i){if(typeof r==="function"){return[{},r]}if(_isUndefined(r)){return[{},i]}const a={};for(const i of Object.getOwnPropertyNames(r)){a[i]=r[i]}return[a,i]}function _generateTmpName(r){const i=r.tmpdir;if(!_isUndefined(r.name))return l.join(i,r.dir,r.name);if(!_isUndefined(r.template))return l.join(i,r.dir,r.template).replace(h,_randomChars(6));const a=[r.prefix?r.prefix:"tmp","-",process.pid,"-",_randomChars(12),r.postfix?"-"+r.postfix:""].join("");return l.join(i,r.dir,a)}function _assertAndSanitizeOptions(r){r.tmpdir=_getTmpDir(r);const i=r.tmpdir;if(!_isUndefined(r.name))_assertIsRelative(r.name,"name",i);if(!_isUndefined(r.dir))_assertIsRelative(r.dir,"dir",i);if(!_isUndefined(r.template)){_assertIsRelative(r.template,"template",i);if(!r.template.match(h))throw new Error(`Invalid template, found "${r.template}".`)}if(!_isUndefined(r.tries)&&isNaN(r.tries)||r.tries<0)throw new Error(`Invalid tries, found "${r.tries}".`);r.tries=_isUndefined(r.name)?r.tries||g:1;r.keep=!!r.keep;r.detachDescriptor=!!r.detachDescriptor;r.discardDescriptor=!!r.discardDescriptor;r.unsafeCleanup=!!r.unsafeCleanup;r.dir=_isUndefined(r.dir)?"":l.relative(i,_resolvePath(r.dir,i));r.template=_isUndefined(r.template)?undefined:l.relative(i,_resolvePath(r.template,i));r.template=_isBlank(r.template)?undefined:l.relative(r.dir,r.template);r.naLine truncated
const a=s(57147);const l=s(22037);const c=s(71017);const p=s(6113);const u={fs:a.constants,os:l.constants};const d="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",A=/XXXXXX/,h=3,g=(u.O_CREAT||u.fs.O_CREAT)|(u.O_EXCL||u.fs.O_EXCL)|(u.O_RDWR||u.fs.O_RDWR),y=l.platform()==="win32",b=u.EBADF||u.os.errno.EBADF,v=u.ENOENT||u.os.errno.ENOENT,C=448,w=384,I="exit",B=[],S=a.rmdirSync.bind(a);let x=false;function rimraf(r,i){return a.rm(r,{recursive:true},i)}function FN_RIMRAF_SYNC(r){return a.rmSync(r,{recursive:true})}function tmpName(r,i){const s=_parseArguments(r,i),l=s[0],c=s[1];try{_assertAndSanitizeOptions(l)}catch(r){return c(r)}let p=l.tries;(function _getUniqueName(){try{const r=_generateTmpName(l);a.stat(r,(function(i){if(!i){if(p-- >0)return _getUniqueName();return c(new Error("Could not get a unique tmp filename, max tries reached "+r))}c(null,r)}))}catch(r){c(r)}})()}function tmpNameSync(r){const i=_parseArguments(r),s=i[0];_assertAndSanitizeOptions(s);let l=s.tries;do{const r=_generateTmpName(s);try{a.statSync(r)}catch(i){return r}}while(l-- >0);throw new Error("Could not get a unique tmp filename, max tries reached")}function file(r,i){const s=_parseArguments(r,i),l=s[0],c=s[1];tmpName(l,(function _tmpNameCreated(r,i){if(r)return c(r);a.open(i,g,l.mode||w,(function _fileCreated(r,s){if(r)return c(r);if(l.discardDescriptor){return a.close(s,(function _discardCallback(r){return c(r,i,undefined,_prepareTmpFileRemoveCallback(i,-1,l,false))}))}else{const r=l.discardDescriptor||l.detachDescriptor;c(null,i,s,_prepareTmpFileRemoveCallback(i,r?-1:s,l,false))}}))}))}function fileSync(r){const i=_parseArguments(r),s=i[0];const l=s.discardDescriptor||s.detachDescriptor;const c=tmpNameSync(s);var p=a.openSync(c,g,s.mode||w);if(s.discardDescriptor){a.closeSync(p);p=undefined}return{name:c,fd:p,removeCallback:_prepareTmpFileRemoveCallback(c,l?-1:p,s,true)}}function dir(r,i){const s=_parseArguments(r,i),l=s[0],c=s[1];tmpName(l,(function _tmpNameCreated(r,i){if(r)return c(r);a.mkdir(i,l.mode||C,(function _dirCreated(r){if(r)return c(r);c(null,i,_prepareTmpDirRemoveCallback(i,l,false))}))}))}function dirSync(r){const i=_parseArguments(r),s=i[0];const l=tmpNameSync(s);a.mkdirSync(l,s.mode||C);return{name:l,removeCallback:_prepareTmpDirRemoveCallback(l,s,true)}}function _removeFileAsync(r,i){const _handler=function(r){if(r&&!_isENOENT(r)){return i(r)}i()};if(0<=r[0])a.close(r[0],(function(){a.unlink(r[1],_handler)}));else a.unlink(r[1],_handler)}function _removeFileSync(r){let i=null;try{if(0<=r[0])a.closeSync(r[0])}catch(r){if(!_isEBADF(r)&&!_isENOENT(r))throw r}finally{try{a.unlinkSync(r[1])}catch(r){if(!_isENOENT(r))i=r}}if(i!==null){throw i}}function _prepareTmpFileRemoveCallback(r,i,s,a){const l=_prepareRemoveCallback(_removeFileSync,[i,r],a);const c=_prepareRemoveCallback(_removeFileAsync,[i,r],a,l);if(!s.keep)B.unshift(l);return a?l:c}function _prepareTmpDirRemoveCallback(r,i,s){const l=i.unsafeCleanup?rimraf:a.rmdir.bind(a);const c=i.unsafeCleanup?FN_RIMRAF_SYNC:S;const p=_prepareRemoveCallback(c,r,s);const u=_prepareRemoveCallback(l,r,s,p);if(!i.keep)B.unshift(p);return s?p:u}function _prepareRemoveCallback(r,i,s,a){let l=false;return function _cleanupCallback(c){if(!l){const p=a||_cleanupCallback;const u=B.indexOf(p);if(u>=0)B.splice(u,1);l=true;if(s||r===S||r===FN_RIMRAF_SYNC){return r(i)}else{return r(i,c||function(){})}}}}function _garbageCollector(){if(!x)return;while(B.length){try{B[0]()}catch(r){}}}function _randomChars(r){let i=[],s=null;try{s=p.randomBytes(r)}catch(i){s=p.pseudoRandomBytes(r)}for(var a=0;a<r;a++){i.push(d[s[a]%d.length])}return i.join("")}function _isBlank(r){return r===null||_isUndefined(r)||!r.trim()}function _isUndefined(r){return typeof r==="undefined"}function _parseArguments(r,i){if(typeof r==="function"){return[{},r]}if(_isUndefined(r)){return[{},i]}const s={};for(const i of Object.getOwnPropertyNames(r)){s[i]=r[i]}return[s,i]}function _generateTmpName(r){const i=r.tmpdir;if(!_isUndefined(r.name))return c.join(i,r.dir,r.name);if(!_isUndefined(r.template))return c.join(i,r.dir,r.template).replace(A,_randomChars(6));const s=[r.prefix?r.prefix:"tmp","-",process.pid,"-",_randomChars(12),r.postfix?"-"+r.postfix:""].join("");return c.join(i,r.dir,s)}function _assertAndSanitizeOptions(r){r.tmpdir=_getTmpDir(r);const i=r.tmpdir;if(!_isUndefined(r.name))_assertIsRelative(r.name,"name",i);if(!_isUndefined(r.dir))_assertIsRelative(r.dir,"dir",i);if(!_isUndefined(r.template)){_assertIsRelative(r.template,"template",i);if(!r.template.match(A))throw new Error(`Invalid template, found "${r.template}".`)}if(!_isUndefined(r.tries)&&isNaN(r.tries)||r.tries<0)throw new Error(`Invalid tries, found "${r.tries}".`);r.tries=_isUndefined(r.name)?r.tries||h:1;r.keep=!!r.keep;r.detachDescriptor=!!r.detachDescriptor;r.discardDescriptor=!!r.discardDescriptor;r.unsafeCleanup=!!r.unsafeCleanup;r.dir=_isUndefined(r.dir)?"":c.relative(i,_resolvePath(r.dir,i));r.template=_isUndefined(r.template)Line truncated
/*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */;const escape=r=>r.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22");const normalizeLinefeeds=r=>r.replace(/\r?\n|\r/g,"\r\n");const a=[];const l=new Uint8Array([13,10]);g=0;let c=false;for(const[i,p]of r){if(typeof p==="string"){const r=O.encode(s+`; name="${escape(normalizeLinefeeds(i))}"`+`\r\n\r\n${normalizeLinefeeds(p)}\r\n`);a.push(r);g+=r.byteLength}else{const r=O.encode(`${s}; name="${escape(normalizeLinefeeds(i))}"`+(p.name?`; filename="${escape(p.name)}"`:"")+"\r\n"+`Content-Type: ${p.type||"application/octet-stream"}\r\n\r\n`);a.push(r,p,l);if(typeof p.size==="number"){g+=r.byteLength+p.size+l.byteLength}else{c=true}}}const p=O.encode(`--${i}--`);a.push(p);g+=p.byteLength;if(c){g=null}h=r;A=async function*(){for(const r of a){if(r.stream){yield*r.stream()}else{yield r}}};y="multipart/form-data; boundary="+i}else if(p(r)){h=r;g=r.size;if(r.type){y=r.type}}else if(typeof r[Symbol.asyncIterator]==="function"){if(i){throw new TypeError("keepalive")}if(l.isDisturbed(r)||r.locked){throw new TypeError("Response body object should not be disturbed or locked")}a=r instanceof k?r:c(r)}if(typeof h==="string"||l.isBuffer(h)){g=Buffer.byteLength(h)}if(A!=null){let i;a=new k({async start(){i=A(r)[Symbol.asyncIterator]()},async pull(r){const{value:s,done:l}=await i.next();if(l){queueMicrotask((()=>{r.close()}))}else{if(!x(a)){r.enqueue(new Uint8Array(s))}}return r.desiredSize>0},async cancel(r){await i.return()},type:undefined})}const b={stream:a,source:h,length:g};return[b,y]}function safelyExtractBody(r,i=false){if(!k){k=s(35356).ReadableStream}if(r instanceof k){S(!l.isDisturbed(r),"The body has already been consumed.");S(!r.locked,"The stream is locked.")}return extractBody(r,i)}function cloneBody(r){const[i,s]=r.stream.tee();const a=C(s,{transfer:[s]});const[,l]=a.tee();r.stream=i;return{stream:l,length:r.length,source:r.source}}async function*consumeBody(r){if(r){if(_(r)){yield r}else{const i=r.stream;if(l.isDisturbed(i)){throw new TypeError("The body has already been consumed.")}if(i.locked){throw new TypeError("The stream is locked.")}i[B]=true;yield*i}}}function throwIfAborted(r){if(r.aborted){throw new v("The operation was aborted.","AbortError")}}function bodyMixinMethods(r){const i={blob(){return specConsumeBody(this,(r=>{let i=bodyMimeType(this);if(i==="failure"){i=""}else if(i){i=N(i)}return new w([r],{type:i})}),r)},arrayBuffer(){return specConsumeBody(this,(r=>new Uint8Array(r).buffer),r)},text(){return specConsumeBody(this,utf8DecodeBytes,r)},json(){return specConsumeBody(this,parseJSONFromBytes,r)},async formData(){b.brandCheck(this,r);throwIfAborted(this[y]);const i=this.headers.get("Content-Type");if(/multipart\/form-data/.test(i)){const r={};for(const[i,s]of this.headers)r[i.toLowerCase()]=s;const i=new g;let s;try{s=new a({headers:r,preservePath:true})}catch(r){throw new v(`${r}`,"AbortError")}s.on("field",((r,s)=>{i.append(r,s)}));s.on("file",((r,s,a,l,c)=>{const p=[];if(l==="base64"||l.toLowerCase()==="base64"){let l="";s.on("data",(r=>{l+=r.toString().replace(/[\r\n]/gm,"");const i=l.length-l.length%4;p.push(Buffer.from(l.slice(0,i),"base64"));l=l.slice(i)}));s.on("end",(()=>{p.push(Buffer.from(l,"base64"));i.append(r,new D(p,a,{type:c}))}))}else{s.on("data",(r=>{p.push(r)}));s.on("end",(()=>{i.append(r,new D(p,a,{type:c}))}))}}));const l=new Promise(((r,i)=>{s.on("finish",r);s.on("error",(r=>i(new TypeError(r))))}));if(this.body!==null)for await(const r of consumeBody(this[y].body))s.write(r);s.end();await l;return i}else if(/application\/x-www-form-urlencoded/.test(i)){let r;try{let i="";const s=new TextDecoder("utf-8",{ignoreBOM:true});for await(const r of consumeBody(this[y].body)){if(!_(r)){throw new TypeError("Expected Uint8Array chunk")}i+=s.decode(r,{stream:true})}i+=s.decode();r=new URLSearchParams(i)}catch(r){throw Object.assign(new TypeError,{cause:r})}const i=new g;for(const[s,a]of r){i.append(s,a)}return i}else{await Promise.resolve();throwIfAborted(this[y]);throw b.errors.exception({header:`${r.name}.formData`,message:"Could not parse content as FormData."})}}};return i}function mixinBody(r){Object.assign(r.prototype,bodyMixinMethods(r))}async function specConsumeBody(r,i,s){b.brandCheck(r,s);throwIfAborted(r[y]);if(bodyUnusable(r[y].body)){throw new TypeError("Body is unusable")}const a=A();const errorSteps=r=>a.reject(r);const successSteps=r=>{try{a.resolve(i(r))}catch(r){errorSteps(r)}};if(r[y].body==null){successSteps(new Uint8Array);return a.promise}await h(r[y].body,successSteps,errorSteps);return a.promise}function bodyUnusable(r){return r!=null&&(r.stream.locked||l.isDisturbed(r.stream))}function utf8DecodeBytes(r){if(r.length===0){return""}if(r[0]===239&&r[1]===187&&r[2]===191){r=r.subarray(3)}const i=P.decode(r);return i}function parseJSONFromBytes(r){return JSON.parse(utf8DecodeBytes(r))}function bodyMimeType(r){const{headersList:i}=r[y];const s=i.get("contentLine truncated
/*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> */c[l-4]=this.maskKey[0];c[l-3]=this.maskKey[1];c[l-2]=this.maskKey[2];c[l-1]=this.maskKey[3];c[1]=s;if(s===126){c.writeUInt16BE(i,2)}else if(s===127){c[2]=c[3]=0;c.writeUIntBE(i,4,6)}c[1]|=128;for(let r=0;r<i;r++){c[l+r]=this.frameData[r]^this.maskKey[r%4]}return c}}r.exports={WebsocketFrameSend:WebsocketFrameSend}},11688:(r,i,s)=>{"use strict";const{Writable:a}=s(12781);const l=s(67643);const{parserStates:c,opcodes:p,states:u,emptyBuffer:d}=s(19188);const{kReadyState:A,kSentClose:h,kResponse:g,kReceivedClose:y}=s(37578);const{isValidStatusCode:b,failWebsocketConnection:v,websocketMessageReceived:C}=s(25515);const{WebsocketFrameSend:w}=s(25444);const I={};I.ping=l.channel("undici:websocket:ping");I.pong=l.channel("undici:websocket:pong");class ByteParser extends a{#o=[];#a=0;#l=c.INFO;#c={};#p=[];constructor(r){super();this.ws=r}_write(r,i,s){this.#o.push(r);this.#a+=r.length;this.run(s)}run(r){while(true){if(this.#l===c.INFO){if(this.#a<2){return r()}const i=this.consume(2);this.#c.fin=(i[0]&128)!==0;this.#c.opcode=i[0]&15;this.#c.originalOpcode??=this.#c.opcode;this.#c.fragmented=!this.#c.fin&&this.#c.opcode!==p.CONTINUATION;if(this.#c.fragmented&&this.#c.opcode!==p.BINARY&&this.#c.opcode!==p.TEXT){v(this.ws,"Invalid frame type was fragmented.");return}const s=i[1]&127;if(s<=125){this.#c.payloadLength=s;this.#l=c.READ_DATA}else if(s===126){this.#l=c.PAYLOADLENGTH_16}else if(s===127){this.#l=c.PAYLOADLENGTH_64}if(this.#c.fragmented&&s>125){v(this.ws,"Fragmented frame exceeded 125 bytes.");return}else if((this.#c.opcode===p.PING||this.#c.opcode===p.PONG||this.#c.opcode===p.CLOSE)&&s>125){v(this.ws,"Payload length for control frame exceeded 125 bytes.");return}else if(this.#c.opcode===p.CLOSE){if(s===1){v(this.ws,"Received close frame with a 1-byte body.");return}const r=this.consume(s);this.#c.closeInfo=this.parseCloseBody(false,r);if(!this.ws[h]){const r=Buffer.allocUnsafe(2);r.writeUInt16BE(this.#c.closeInfo.code,0);const i=new w(r);this.ws[g].socket.write(i.createFrame(p.CLOSE),(r=>{if(!r){this.ws[h]=true}}))}this.ws[A]=u.CLOSING;this.ws[y]=true;this.end();return}else if(this.#c.opcode===p.PING){const i=this.consume(s);if(!this.ws[y]){const r=new w(i);this.ws[g].socket.write(r.createFrame(p.PONG));if(I.ping.hasSubscribers){I.ping.publish({payload:i})}}this.#l=c.INFO;if(this.#a>0){continue}else{r();return}}else if(this.#c.opcode===p.PONG){const i=this.consume(s);if(I.pong.hasSubscribers){I.pong.publish({payload:i})}if(this.#a>0){continue}else{r();return}}}else if(this.#l===c.PAYLOADLENGTH_16){if(this.#a<2){return r()}const i=this.consume(2);this.#c.payloadLength=i.readUInt16BE(0);this.#l=c.READ_DATA}else if(this.#l===c.PAYLOADLENGTH_64){if(this.#a<8){return r()}const i=this.consume(8);const s=i.readUInt32BE(0);if(s>2**31-1){v(this.ws,"Received payload length > 2^31 bytes.");return}const a=i.readUInt32BE(4);this.#c.payloadLength=(s<<8)+a;this.#l=c.READ_DATA}else if(this.#l===c.READ_DATA){if(this.#a<this.#c.payloadLength){return r()}else if(this.#a>=this.#c.payloadLength){const r=this.consume(this.#c.payloadLength);this.#p.push(r);if(!this.#c.fragmented||this.#c.fin&&this.#c.opcode===p.CONTINUATION){const r=Buffer.concat(this.#p);C(this.ws,this.#c.originalOpcode,r);this.#c={};this.#p.length=0}this.#l=c.INFO}}if(this.#a>0){continue}else{r();break}}}consume(r){if(r>this.#a){return null}else if(r===0){return d}if(this.#o[0].length===r){this.#a-=this.#o[0].length;return this.#o.shift()}const i=Buffer.allocUnsafe(r);let s=0;while(s!==r){const a=this.#o[0];const{length:l}=a;if(l+s===r){i.set(this.#o.shift(),s);break}else if(l+s>r){i.set(a.subarray(0,r-s),s);this.#o[0]=a.subarray(r-s);break}else{i.set(this.#o.shift(),s);s+=a.length}}this.#a-=r;return i}parseCloseBody(r,i){let s;if(i.length>=2){s=i.readUInt16BE(0)}if(r){if(!b(s)){return null}return{code:s}}let a=i.subarray(2);if(a[0]===239&&a[1]===187&&a[2]===191){a=a.subarray(3)}if(s!==undefined&&!b(s)){return null}try{a=new TextDecoder("utf-8",{fatal:true}).decode(a)}catch{return null}return{code:s,reason:a}}get closingInfo(){return this.#c.closeInfo}}r.exports={ByteParser:ByteParser}},37578:r=>{"use strict";r.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}},25515:(r,i,s)=>{"use strict";const{kReadyState:a,kController:l,kResponse:c,kBinaryType:p,kWebSocketURL:u}=s(37578);const{states:d,opcodes:A}=s(19188);const{MessageEvent:h,ErrorEvent:g}=s(52611);function isEstablished(r){return r[a]===d.OPEN}function isClosing(r){return r[a]===d.CLOSING}function isClosed(r){return r[a]===d.CLOSED}function fireEvent(r,i,s=Event,a){const l=new s(r,a);i.dispatchEvent(l)}function websocketMessageReceived(r,i,s){if(r[a]!==d.OPEN){return}let l;if(i===A.TEXT){try{l=new TextDecoder("utf-8",{fatal:trueLine truncated
/**
* ZipStream
*
* @ignore
* @license [MIT]{@link https://github.com/archiverjs/node-zip-stream/blob/master/LICENSE}
* @copyright (c) 2014 Chris Talkington, contributors.
*/
var a=s(73837).inherits;var l=s(25445).ZipArchiveOutputStream;var c=s(25445).ZipArchiveEntry;var p=s(82072);var u=r.exports=function(r){if(!(this instanceof u)){return new u(r)}r=this.options=r||{};r.zlib=r.zlib||{};l.call(this,r);if(typeof r.level==="number"&&r.level>=0){r.zlib.level=r.level;delete r.level}if(!r.forceZip64&&typeof r.zlib.level==="number"&&r.zlib.level===0){r.store=true}r.namePrependSlash=r.namePrependSlash||false;if(r.comment&&r.comment.length>0){this.setComment(r.comment)}};a(u,l);u.prototype._normalizeFileData=function(r){r=p.defaults(r,{type:"file",name:null,namePrependSlash:this.options.namePrependSlash,linkname:null,date:null,mode:null,store:this.options.store,comment:""});var i=r.type==="directory";var s=r.type==="symlink";if(r.name){r.name=p.sanitizePath(r.name);if(!s&&r.name.slice(-1)==="/"){i=true;r.type="directory"}else if(i){r.name+="/"}}if(i||s){r.store=true}r.date=p.dateify(r.date);return r};u.prototype.entry=function(r,i,s){if(typeof s!=="function"){s=this._emitErrorCallback.bind(this)}i=this._normalizeFileData(i);if(i.type!=="file"&&i.type!=="directory"&&i.type!=="symlink"){s(new Error(i.type+" entries not currently supported"));return}if(typeof i.name!=="string"||i.name.length===0){s(new Error("entry name must be a non-empty string value"));return}if(i.type==="symlink"&&typeof i.linkname!=="string"){s(new Error("entry linkname must be a non-empty string value when type equals symlink"));return}var a=new c(i.name);a.setTime(i.date,this.options.forceLocalTime);if(i.namePrependSlash){a.setName(i.name,true)}if(i.store){a.setMethod(0)}if(i.comment.length>0){a.setComment(i.comment)}if(i.type==="symlink"&&typeof i.mode!=="number"){i.mode=40960}if(typeof i.mode==="number"){if(i.type==="symlink"){i.mode|=40960}a.setUnixMode(i.mode)}if(i.type==="symlink"&&typeof i.linkname==="string"){r=Buffer.from(i.linkname)}return l.prototype.entry.call(this,a,r,s)};u.prototype.finalize=function(){this.finish()}},98954:function(r,i,s){"use strict";var a=this&&this.__createBinding||(Object.create?function(r,i,s,a){if(a===undefined)a=s;var l=Object.getOwnPropertyDescriptor(i,s);if(!l||("get"in l?!i.__esModule:l.writable||l.configurable)){l={enumerable:true,get:function(){return i[s]}}}Object.defineProperty(r,a,l)}:function(r,i,s,a){if(a===undefined)a=s;r[a]=i[s]});var l=this&&this.__setModuleDefault||(Object.create?function(r,i){Object.defineProperty(r,"default",{enumerable:true,value:i})}:function(r,i){r["default"]=i});var c=this&&this.__importStar||function(r){if(r&&r.__esModule)return r;var i={};if(r!=null)for(var s in r)if(s!=="default"&&Object.prototype.hasOwnProperty.call(r,s))a(i,r,s);l(i,r);return i};var p=this&&this.__awaiter||function(r,i,s,a){function adopt(r){return r instanceof s?r:new s((function(i){i(r)}))}return new(s||(s=Promise))((function(s,l){function fulfilled(r){try{step(a.next(r))}catch(r){l(r)}}function rejected(r){try{step(a["throw"](r))}catch(r){l(r)}}function step(r){r.done?s(r.value):adopt(r.value).then(fulfilled,rejected)}step((a=a.apply(r,i||[])).next())}))};Object.defineProperty(i,"__esModule",{value:true});i.getArgs=i.sanitizeInputs=i.getInputs=void 0;const u=c(s(42186));const d=c(s(97492));const A=s(57622);const h=s(54051);const g=s(6276);const y=s(28662);function getInputs(){return p(this,void 0,void 0,(function*(){return{"add-hosts":y.Util.getInputList("add-hosts"),allow:y.Util.getInputList("allow"),annotations:y.Util.getInputList("annotations",{ignoreComma:true}),attests:y.Util.getInputList("attests",{ignoreComma:true}),"build-args":y.Util.getInputList("build-args",{ignoreComma:true}),"build-contexts":y.Util.getInputList("build-contexts",{ignoreComma:true}),builder:u.getInput("builder"),"cache-from":y.Util.getInputList("cache-from",{ignoreComma:true}),"cache-to":y.Util.getInputList("cache-to",{ignoreComma:true}),"cgroup-parent":u.getInput("cgroup-parent"),context:u.getInput("context")||h.Context.gitContext(),file:u.getInput("file"),labels:y.Util.getInputList("labels",{ignoreComma:true}),load:u.getBooleanInput("load"),network:u.getInput("network"),"no-cache":u.getBooleanInput("no-cache"),"no-cache-filters":y.Util.getInputList("no-cache-filters"),outputs:y.Util.getInputList("outputs",{ignoreComma:true,quote:false}),platforms:y.Util.getInputList("platforms"),provenance:A.Build.getProvenanceInput("provenance"),pull:u.getBooleanInput("pull"),push:u.getBooleanInput("push"),sbom:u.getInput("sbom"),secrets:y.Util.getInputList("secrets",{ignoreComma:true}),"secret-envs":y.Util.getInputList("secret-envs"),"secret-files":y.Util.getInputList("secret-files",{ignoreComma:true}),"shm-size":u.getInput("shm-size"),ssh:y.Util.getInputList("ssh"),tags:y.Util.getInputList("tags"),target:u.getInput("target"),ulimit:y.Util.getInputList("ulimit",{ignoreComma:true}),"github-token":u.getInput("github-token")}}))}i.getInputs=getInputs;function sanitizeInputs(r){const i={};for(const s of Object.keys(r)){if(s==="github-token"){continue}const a=r[s];if(typeof a==="boolean"&&a===false){continLine truncated
//# sourceMappingURL=index.js.map
Generated Vendored
+1 -1
View File
@@ -1 +1 @@
{"version":3,"sources":["../webpack:/docker-build-push/node_modules/@actions/cache/lib/cache.js","../webpack:/docker-build-push/node_modules/@actions/cache/lib/internal/cacheHttpClient.js","../webpack:/docker-build-push/node_modules/@actions/cache/lib/internal/cacheUtils.js","../webpack:/docker-build-push/node_modules/@actions/cache/lib/internal/constants.js","../webpack:/docker-build-push/node_modules/@actions/cache/lib/internal/downloadUtils.js","../webpack:/docker-build-push/node_modules/@actions/cache/lib/internal/requestUtils.js","../webpack:/docker-build-push/node_modules/@actions/cache/lib/internal/tar.js","../webpack:/docker-build-push/node_modules/@actions/cache/lib/options.js","../webpack:/docker-build-push/node_modules/@actions/cache/node_modules/uuid/index.js","../webpack:/docker-build-push/node_modules/@actions/cache/node_modules/uuid/lib/bytesToUuid.js","../webpack:/docker-build-push/node_modules/@actions/cache/node_modules/uuid/lib/rng.js","../webpack:/docker-build-push/node_modules/@actions/cache/node_modules/uuid/v1.js","../webpack:/docker-build-push/node_modules/@actions/cache/node_modules/uuid/v4.js","../webpack:/docker-build-push/node_modules/@actions/core/lib/command.js","../webpack:/docker-build-push/node_modules/@actions/core/lib/core.js","../webpack:/docker-build-push/node_modules/@actions/core/lib/file-command.js","../webpack:/docker-build-push/node_modules/@actions/core/lib/oidc-utils.js","../webpack:/docker-build-push/node_modules/@actions/core/lib/path-utils.js","../webpack:/docker-build-push/node_modules/@actions/core/lib/summary.js","../webpack:/docker-build-push/node_modules/@actions/core/lib/utils.js","../webpack:/docker-build-push/node_modules/@actions/exec/lib/exec.js","../webpack:/docker-build-push/node_modules/@actions/exec/lib/toolrunner.js","../webpack:/docker-build-push/node_modules/@actions/github/lib/context.js","../webpack:/docker-build-push/node_modules/@actions/github/lib/github.js","../webpack:/docker-build-push/node_modules/@actions/github/lib/internal/utils.js","../webpack:/docker-build-push/node_modules/@actions/github/lib/utils.js","../webpack:/docker-build-push/node_modules/@actions/github/node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js","../webpack:/docker-build-push/node_modules/@actions/glob/lib/glob.js","../webpack:/docker-build-push/node_modules/@actions/glob/lib/internal-glob-options-helper.js","../webpack:/docker-build-push/node_modules/@actions/glob/lib/internal-globber.js","../webpack:/docker-build-push/node_modules/@actions/glob/lib/internal-match-kind.js","../webpack:/docker-build-push/node_modules/@actions/glob/lib/internal-path-helper.js","../webpack:/docker-build-push/node_modules/@actions/glob/lib/internal-path.js","../webpack:/docker-build-push/node_modules/@actions/glob/lib/internal-pattern-helper.js","../webpack:/docker-build-push/node_modules/@actions/glob/lib/internal-pattern.js","../webpack:/docker-build-push/node_modules/@actions/glob/lib/internal-search-state.js","../webpack:/docker-build-push/node_modules/@actions/http-client/lib/auth.js","../webpack:/docker-build-push/node_modules/@actions/http-client/lib/index.js","../webpack:/docker-build-push/node_modules/@actions/http-client/lib/proxy.js","../webpack:/docker-build-push/node_modules/@actions/io/lib/io-util.js","../webpack:/docker-build-push/node_modules/@actions/io/lib/io.js","../webpack:/docker-build-push/node_modules/@actions/tool-cache/lib/manifest.js","../webpack:/docker-build-push/node_modules/@actions/tool-cache/lib/retry-helper.js","../webpack:/docker-build-push/node_modules/@actions/tool-cache/lib/tool-cache.js","../webpack:/docker-build-push/node_modules/@actions/tool-cache/node_modules/uuid/lib/bytesToUuid.js","../webpack:/docker-build-push/node_modules/@actions/tool-cache/node_modules/uuid/lib/rng.js","../webpack:/docker-build-push/node_modules/@actions/tool-cache/node_modules/uuid/v4.js","../webpack:/docker-build-push/node_modules/@azure/abort-controller/dist/index.js","../webpack:/docker-build-push/node_modules/@azure/core-auth/dist/index.js","../webpack:/docker-build-push/node_modules/@azure/core-http/dist/index.js","../webpack:/docker-build-push/node_modules/@azure/core-http/node_modules/form-data/lib/form_data.js","../webpack:/docker-build-push/node_modules/@azure/core-http/node_modules/form-data/lib/populate.js","../webpack:/docker-build-push/node_modules/@azure/core-lro/dist/index.js","../webpack:/docker-build-push/node_modules/@azure/core-paging/dist/index.js","../webpack:/docker-build-push/node_modules/@azure/core-tracing/dist/index.js","../webpack:/docker-build-push/node_modules/@azure/core-util/dist/index.js","../webpack:/docker-build-push/node_modules/@azure/logger/dist/index.js","../webpack:/docker-build-push/node_modules/@azure/storage-blob/dist/index.js","../webpack:/docker-build-push/node_modules/@docker/actions-toolkit/lib/buildkit/buildkit.js","../webpack:/docker-build-push/node_modules/@docker/actions-toolkit/lib/buildkit/configLine truncated
{"version":3,"file":"index.js","names":["__createBinding","this","Object","create","o","m","k","k2","undefined","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","get","defineProperty","__exportStar","exports","p","prototype","hasOwnProperty","call","value","client_1","__webpack_require__","client","DefaultArtifactClient","Timestamp","runtime_1","runtime_2","runtime_3","runtime_4","runtime_5","runtime_6","runtime_7","Timestamp$Type","MessageType","constructor","super","no","name","kind","T","now","msg","ms","Date","seconds","PbLong","from","Math","floor","toString","nanos","toDate","message","toNumber","ceil","fromDate","date","getTime","internalJsonWrite","options","parse","Error","z","nanosStr","substring","toISOString","replace","internalJsonRead","json","target","typeofJsonValue","matches","match","Number","isNaN","globalThis","parseInt","repeat","length","MESSAGE_TYPE","reflectionMergePartial","internalBinaryRead","reader","end","pos","fieldNo","wireType","tag","int64","int32","u","readUnknownField","typeName","d","skip","UnknownFieldHandler","onRead","internalBinaryWrite","writer","WireType","Varint","writeUnknownFields","onWrite","BytesValue","StringValue","BoolValue","UInt32Value","Int32Value","UInt64Value","Int64Value","FloatValue","DoubleValue","DoubleValue$Type","refJsonWriter","scalar","refJsonReader","double","Bit64","FloatValue$Type","float","Bit32","Int64Value$Type","ScalarType","INT64","LongType","STRING","UInt64Value$Type","UINT64","uint64","Int32Value$Type","UInt32Value$Type","uint32","BoolValue$Type","bool","StringValue$Type","string","LengthDelimited","BytesValue$Type","Uint8Array","bytes","ArtifactService","DeleteArtifactResponse","DeleteArtifactRequest","GetSignedArtifactURLResponse","GetSignedArtifactURLRequest","ListArtifactsResponse_MonolithArtifact","ListArtifactsResponse","ListArtifactsRequest","FinalizeArtifactResponse","FinalizeArtifactRequest","CreateArtifactResponse","CreateArtifactRequest","runtime_rpc_1","wrappers_1","wrappers_2","timestamp_1","CreateArtifactRequest$Type","workflowRunBackendId","workflowJobRunBackendId","version","expiresAt","fork","join","CreateArtifactResponse$Type","ok","signedUploadUrl","FinalizeArtifactRequest$Type","size","hash","FinalizeArtifactResponse$Type","artifactId","ListArtifactsRequest$Type","nameFilter","idFilter","ListArtifactsResponse$Type","artifacts","push","i","ListArtifactsResponse_MonolithArtifact$Type","databaseId","createdAt","GetSignedArtifactURLRequest$Type","GetSignedArtifactURLResponse$Type","signedUrl","DeleteArtifactRequest$Type","DeleteArtifactResponse$Type","ServiceType","I","O","__awaiter","thisArg","_arguments","P","generator","adopt","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","createArtifactServiceServer","ArtifactServiceMethodList","ArtifactServiceMethod","ArtifactServiceClientProtobuf","ArtifactServiceClientJSON","twirp_ts_1","artifact_1","rpc","CreateArtifact","bind","FinalizeArtifact","ListArtifacts","GetSignedArtifactURL","DeleteArtifact","request","data","toJson","useProtoFieldName","emitDefaultValues","promise","fromJson","ignoreUnknownFields","toBinary","fromBinary","service","TwirpServer","packageName","serviceName","methodList","matchRoute","matchArtifactServiceRoute","method","events","ctx","interceptors","assign","methodName","onMatch","handleArtifactServiceCreateArtifactRequest","handleArtifactServiceFinalizeArtifactRequest","handleArtifactServiceListArtifactsRequest","handleArtifactServiceGetSignedArtifactURLRequest","handleArtifactServiceDeleteArtifactRequest","onNotFound","TwirpError","TwirpErrorCode","BadRoute","contentType","TwirpContentType","JSON","handleArtifactServiceCreateArtifactJSON","Protobuf","handleArtifactServiceCreateArtifactProtobuf","handleArtifactServiceFinalizeArtifactJSON","handleArtifactServiceFinalizeArtifactProtobuf","handleArtifactServiceListArtifactsJSON","handleArtifactServiceListArtifactsProtobuf","handleArtifactServiceGetSignedArtifactURLJSON","handleArtifactServiceGetSignedArtifactURLProtobuf","handleArtifactServiceDeleteArtifactJSON","handleArtifactServiceDeleteArtifactProtobuf","response","body","Malformed","withCause","interceptor","chainInterceptors","inputReq","stringify","Buffer","__rest","s","t","indexOf","getOwnPropertySymbols","propertyIsEnumerable","core_1","config_1","upload_artifact_1","download_artifact_1","delete_artifact_1","get_artifact_1","list_artifacts_1","errors_1","uploadArtifact","files","rootDirectory","isGhes","GHESNotSupportedError","error","warning","downloadArtifact","findBy","repositoryOwner","repositoryName","token","downloadOptions","downloadArtifactPublic","downloadArtifactInternal","listArtifacts","workflowRunId","listArtifactsPublic","latest","listArtifactsInternal","getArtifact","artifactName","getArtifactPublic","getArtifactInternal","deleteArtifact","deleteArtifactPublic","deleteArtifactInternal","github_1","user_agent_1","retry_options_1","utils_1","Line truncated
Generated Vendored
+2030 -109
View File
File diff suppressed because it is too large. Load diff
+2 -2
View File
@@ -3,7 +3,7 @@ group "default" {
}
group "pre-checkin" {
targets = ["vendor-update", "format", "build"]
targets = ["vendor", "format", "build"]
}
group "validate" {
@@ -34,7 +34,7 @@ target "lint" {
output = ["type=cacheonly"]
}
target "vendor-update" {
target "vendor" {
dockerfile = "dev.Dockerfile"
target = "vendor-update"
output = ["."]
-3
View File
@@ -1,3 +0,0 @@
# Cache
This page has moved to [Docker Docs website](https://docs.docker.com/build/ci/github-actions/cache/)
-3
View File
@@ -1,3 +0,0 @@
# Copy images between registries
This page has moved to [Docker Docs website](https://docs.docker.com/build/ci/github-actions/copy-image-registries/)
-3
View File
@@ -1,3 +0,0 @@
# Update Docker Hub repo description
This page has moved to [Docker Docs website](https://docs.docker.com/build/ci/github-actions/update-dockerhub-desc/)
-3
View File
@@ -1,3 +0,0 @@
# Export image to Docker
This page has moved to [Docker Docs website](https://docs.docker.com/build/ci/github-actions/export-docker/)
-3
View File
@@ -1,3 +0,0 @@
# Isolated builders
This page has moved to [Docker Docs website](https://docs.docker.com/build/ci/github-actions/configure-builder/#isolated-builders)
-3
View File
@@ -1,3 +0,0 @@
# Local registry
This page has moved to [Docker Docs website](https://docs.docker.com/build/ci/github-actions/local-registry/)
-3
View File
@@ -1,3 +0,0 @@
# Multi-platform image
This page has moved to [Docker Docs website](https://docs.docker.com/build/ci/github-actions/multi-platform/)
-3
View File
@@ -1,3 +0,0 @@
# Named contexts
This page has moved to [Docker Docs website](https://docs.docker.com/build/ci/github-actions/named-contexts/)
-3
View File
@@ -1,3 +0,0 @@
# Push to multi-registries
This page has moved to [Docker Docs website](https://docs.docker.com/build/ci/github-actions/push-multi-registries/)
-3
View File
@@ -1,3 +0,0 @@
# Secrets
This page has moved to [Docker Docs website](https://docs.docker.com/build/ci/github-actions/secrets/)
-3
View File
@@ -1,3 +0,0 @@
# Share built image between jobs
This page has moved to [Docker Docs website](https://docs.docker.com/build/ci/github-actions/share-image-jobs/)
-3
View File
@@ -1,3 +0,0 @@
# Handle tags and labels
This page has moved to [Docker Docs website](https://docs.docker.com/build/ci/github-actions/manage-tags-labels/)
-3
View File
@@ -1,3 +0,0 @@
# Test your image before pushing it
This page has moved to [Docker Docs website](https://docs.docker.com/build/ci/github-actions/test-before-push/)
+26 -29
View File
@@ -1,13 +1,16 @@
{
"name": "docker-build-push",
"description": "Build and push Docker images",
"main": "lib/main.js",
"main": "src/main.ts",
"scripts": {
"build": "ncc build src/main.ts --source-map --minify --license licenses.txt",
"lint": "eslint src/**/*.ts __tests__/**/*.ts",
"format": "eslint --fix src/**/*.ts __tests__/**/*.ts",
"test": "jest --coverage",
"all": "yarn run build && yarn run format && yarn test"
"build": "ncc build --source-map --minify --license licenses.txt",
"lint": "yarn run prettier && yarn run eslint",
"format": "yarn run prettier:fix && yarn run eslint:fix",
"eslint": "eslint --max-warnings=0 .",
"eslint:fix": "eslint --fix .",
"prettier": "prettier --check \"./**/*.ts\"",
"prettier:fix": "prettier --write \"./**/*.ts\"",
"test": "jest"
},
"repository": {
"type": "git",
@@ -19,33 +22,27 @@
"build",
"push"
],
"author": "Docker",
"contributors": [
{
"name": "CrazyMax",
"url": "https://crazymax.dev"
}
],
"author": "Docker Inc.",
"license": "Apache-2.0",
"packageManager": "yarn@3.6.3",
"dependencies": {
"@actions/core": "^1.10.0",
"@docker/actions-toolkit": "^0.8.0",
"@actions/core": "^1.10.1",
"@docker/actions-toolkit": "0.37.0",
"handlebars": "^4.7.7"
},
"devDependencies": {
"@types/csv-parse": "^1.2.2",
"@types/node": "^16.18.21",
"@typescript-eslint/eslint-plugin": "^5.56.0",
"@typescript-eslint/parser": "^5.56.0",
"@vercel/ncc": "^0.36.1",
"eslint": "^8.36.0",
"eslint-config-prettier": "^8.8.0",
"eslint-plugin-jest": "^27.2.1",
"eslint-plugin-prettier": "^4.2.1",
"jest": "^29.5.0",
"prettier": "^2.8.7",
"ts-jest": "^29.0.5",
"ts-node": "^10.9.1",
"typescript": "^4.9.5"
"@types/node": "^20.12.12",
"@typescript-eslint/eslint-plugin": "^7.9.0",
"@typescript-eslint/parser": "^7.9.0",
"@vercel/ncc": "^0.38.1",
"eslint": "^8.57.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-jest": "^28.5.0",
"eslint-plugin-prettier": "^5.1.3",
"jest": "^29.7.0",
"prettier": "^3.2.5",
"ts-jest": "^29.1.2",
"ts-node": "^10.9.2",
"typescript": "^5.4.5"
}
}
+134 -65
View File
@@ -1,28 +1,30 @@
import * as core from '@actions/core';
import * as handlebars from 'handlebars';
import {Build} from '@docker/actions-toolkit/lib/buildx/build';
import {Context} from '@docker/actions-toolkit/lib/context';
import {GitHub} from '@docker/actions-toolkit/lib/github';
import {Inputs as BuildxInputs} from '@docker/actions-toolkit/lib/buildx/inputs';
import {Toolkit} from '@docker/actions-toolkit/lib/toolkit';
import {Util} from '@docker/actions-toolkit/lib/util';
export interface Inputs {
addHosts: string[];
'add-hosts': string[];
allow: string[];
annotations: string[];
attests: string[];
buildArgs: string[];
buildContexts: string[];
'build-args': string[];
'build-contexts': string[];
builder: string;
cacheFrom: string[];
cacheTo: string[];
cgroupParent: string;
'cache-from': string[];
'cache-to': string[];
'cgroup-parent': string;
context: string;
file: string;
labels: string[];
load: boolean;
network: string;
noCache: boolean;
noCacheFilters: string[];
'no-cache': boolean;
'no-cache-filters': string[];
outputs: string[];
platforms: string[];
provenance: string;
@@ -30,50 +32,72 @@ export interface Inputs {
push: boolean;
sbom: string;
secrets: string[];
secretFiles: string[];
shmSize: string;
'secret-envs': string[];
'secret-files': string[];
'shm-size': string;
ssh: string[];
tags: string[];
target: string;
ulimit: string[];
githubToken: string;
'github-token': string;
}
export async function getInputs(): Promise<Inputs> {
return {
addHosts: Util.getInputList('add-hosts'),
'add-hosts': Util.getInputList('add-hosts'),
allow: Util.getInputList('allow'),
annotations: Util.getInputList('annotations', {ignoreComma: true}),
attests: Util.getInputList('attests', {ignoreComma: true}),
buildArgs: Util.getInputList('build-args', {ignoreComma: true}),
buildContexts: Util.getInputList('build-contexts', {ignoreComma: true}),
'build-args': Util.getInputList('build-args', {ignoreComma: true}),
'build-contexts': Util.getInputList('build-contexts', {ignoreComma: true}),
builder: core.getInput('builder'),
cacheFrom: Util.getInputList('cache-from', {ignoreComma: true}),
cacheTo: Util.getInputList('cache-to', {ignoreComma: true}),
cgroupParent: core.getInput('cgroup-parent'),
'cache-from': Util.getInputList('cache-from', {ignoreComma: true}),
'cache-to': Util.getInputList('cache-to', {ignoreComma: true}),
'cgroup-parent': core.getInput('cgroup-parent'),
context: core.getInput('context') || Context.gitContext(),
file: core.getInput('file'),
labels: Util.getInputList('labels', {ignoreComma: true}),
load: core.getBooleanInput('load'),
network: core.getInput('network'),
noCache: core.getBooleanInput('no-cache'),
noCacheFilters: Util.getInputList('no-cache-filters'),
outputs: Util.getInputList('outputs', {ignoreComma: true}),
'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: BuildxInputs.getProvenanceInput('provenance'),
provenance: Build.getProvenanceInput('provenance'),
pull: core.getBooleanInput('pull'),
push: core.getBooleanInput('push'),
sbom: core.getInput('sbom'),
secrets: Util.getInputList('secrets', {ignoreComma: true}),
secretFiles: Util.getInputList('secret-files', {ignoreComma: true}),
shmSize: core.getInput('shm-size'),
'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'),
ulimit: Util.getInputList('ulimit', {ignoreComma: true}),
githubToken: core.getInput('github-token')
'github-token': core.getInput('github-token')
};
}
export function sanitizeInputs(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 === false) {
continue;
} else if (Array.isArray(value) && value.length === 0) {
continue;
} else if (!value) {
continue;
}
res[key] = value;
}
return res;
}
export async function getArgs(inputs: Inputs, toolkit: Toolkit): Promise<Array<string>> {
const context = handlebars.compile(inputs.context)({
defaultContext: Context.gitContext()
@@ -88,44 +112,55 @@ export async function getArgs(inputs: Inputs, toolkit: Toolkit): Promise<Array<s
async function getBuildArgs(inputs: Inputs, context: string, toolkit: Toolkit): Promise<Array<string>> {
const args: Array<string> = ['build'];
await Util.asyncForEach(inputs.addHosts, async addHost => {
await Util.asyncForEach(inputs['add-hosts'], async addHost => {
args.push('--add-host', addHost);
});
if (inputs.allow.length > 0) {
args.push('--allow', inputs.allow.join(','));
}
if (await toolkit.buildx.versionSatisfies('>=0.10.0')) {
await Util.asyncForEach(inputs.attests, async attest => {
args.push('--attest', attest);
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.buildArgs, async buildArg => {
await Util.asyncForEach(inputs['build-args'], async buildArg => {
args.push('--build-arg', buildArg);
});
if (await toolkit.buildx.versionSatisfies('>=0.8.0')) {
await Util.asyncForEach(inputs.buildContexts, async buildContext => {
await Util.asyncForEach(inputs['build-contexts'], async buildContext => {
args.push('--build-context', buildContext);
});
} 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.cacheFrom, async cacheFrom => {
await Util.asyncForEach(inputs['cache-from'], async cacheFrom => {
args.push('--cache-from', cacheFrom);
});
await Util.asyncForEach(inputs.cacheTo, async cacheTo => {
await Util.asyncForEach(inputs['cache-to'], async cacheTo => {
args.push('--cache-to', cacheTo);
});
if (inputs.cgroupParent) {
args.push('--cgroup-parent', inputs.cgroupParent);
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 (!BuildxInputs.hasLocalExporter(inputs.outputs) && !BuildxInputs.hasTarExporter(inputs.outputs) && (inputs.platforms.length == 0 || (await toolkit.buildx.versionSatisfies('>=0.4.2')))) {
args.push('--iidfile', BuildxInputs.getBuildImageIDFilePath());
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 Util.asyncForEach(inputs.noCacheFilters, async noCacheFilter => {
await Util.asyncForEach(inputs['no-cache-filters'], async noCacheFilter => {
args.push('--no-cache-filter', noCacheFilter);
});
await Util.asyncForEach(inputs.outputs, async output => {
@@ -135,44 +170,29 @@ async function getBuildArgs(inputs: Inputs, context: string, toolkit: Toolkit):
args.push('--platform', inputs.platforms.join(','));
}
if (await toolkit.buildx.versionSatisfies('>=0.10.0')) {
if (inputs.provenance) {
args.push('--provenance', inputs.provenance);
} else if ((await toolkit.buildkit.versionSatisfies(inputs.builder, '>=0.11.0')) && !BuildxInputs.hasDockerExporter(inputs.outputs, inputs.load)) {
// if provenance not specified 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('--provenance', BuildxInputs.resolveProvenanceAttrs(`mode=min,inline-only=true`));
} else {
// for a public repository, we set max provenance mode.
args.push('--provenance', BuildxInputs.resolveProvenanceAttrs(`mode=max`));
}
}
if (inputs.sbom) {
args.push('--sbom', inputs.sbom);
}
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', BuildxInputs.resolveBuildSecretString(secret));
args.push('--secret', Build.resolveSecretString(secret));
} catch (err) {
core.warning(err.message);
}
});
await Util.asyncForEach(inputs.secretFiles, async secretFile => {
await Util.asyncForEach(inputs['secret-files'], async secretFile => {
try {
args.push('--secret', BuildxInputs.resolveBuildSecretFile(secretFile));
args.push('--secret', Build.resolveSecretFile(secretFile));
} catch (err) {
core.warning(err.message);
}
});
if (inputs.githubToken && !BuildxInputs.hasGitAuthTokenSecret(inputs.secrets) && context.startsWith(Context.gitContext())) {
args.push('--secret', BuildxInputs.resolveBuildSecretString(`GIT_AUTH_TOKEN=${inputs.githubToken}`));
if (inputs['github-token'] && !Build.hasGitAuthTokenSecret(inputs.secrets) && context.startsWith(Context.gitContext())) {
args.push('--secret', Build.resolveSecretString(`GIT_AUTH_TOKEN=${inputs['github-token']}`));
}
if (inputs.shmSize) {
args.push('--shm-size', inputs.shmSize);
if (inputs['shm-size']) {
args.push('--shm-size', inputs['shm-size']);
}
await Util.asyncForEach(inputs.ssh, async ssh => {
args.push('--ssh', ssh);
@@ -198,12 +218,12 @@ async function getCommonArgs(inputs: Inputs, toolkit: Toolkit): Promise<Array<st
args.push('--load');
}
if (await toolkit.buildx.versionSatisfies('>=0.6.0')) {
args.push('--metadata-file', BuildxInputs.getBuildMetadataFilePath());
args.push('--metadata-file', toolkit.buildxBuild.getMetadataFilePath());
}
if (inputs.network) {
args.push('--network', inputs.network);
}
if (inputs.noCache) {
if (inputs['no-cache']) {
args.push('--no-cache');
}
if (inputs.pull) {
@@ -214,3 +234,52 @@ async function getCommonArgs(inputs: Inputs, toolkit: Toolkit): Promise<Array<st
}
return args;
}
async function getAttestArgs(inputs: Inputs, toolkit: Toolkit): Promise<Array<string>> {
const args: Array<string> = [];
// 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;
}
});
let provenanceSet = false;
let sbomSet = false;
if (inputs.provenance) {
args.push('--attest', Build.resolveAttestationAttrs(`type=provenance,${inputs.provenance}`));
provenanceSet = true;
} else if (!hasAttestProvenance && (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;
}
// 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;
}
+179 -11
View File
@@ -3,20 +3,30 @@ import * as path from 'path';
import * as stateHelper from './state-helper';
import * as core from '@actions/core';
import * as actionsToolkit from '@docker/actions-toolkit';
import {Buildx} from '@docker/actions-toolkit/lib/buildx/buildx';
import {History as BuildxHistory} from '@docker/actions-toolkit/lib/buildx/history';
import {Context} from '@docker/actions-toolkit/lib/context';
import {Docker} from '@docker/actions-toolkit/lib/docker/docker';
import {Exec} from '@docker/actions-toolkit/lib/exec';
import {GitHub} from '@docker/actions-toolkit/lib/github';
import {Inputs as BuildxInputs} from '@docker/actions-toolkit/lib/buildx/inputs';
import {Toolkit} from '@docker/actions-toolkit/lib/toolkit';
import {ConfigFile} from '@docker/actions-toolkit/lib/types/docker';
import {Util} from '@docker/actions-toolkit/lib/util';
import {BuilderInfo} from '@docker/actions-toolkit/lib/types/buildx/builder';
import {ConfigFile} from '@docker/actions-toolkit/lib/types/docker/docker';
import {UploadArtifactResponse} from '@docker/actions-toolkit/lib/types/github';
import * as context from './context';
actionsToolkit.run(
// main
async () => {
const startedTime = new Date();
const inputs: context.Inputs = await context.getInputs();
core.debug(`inputs: ${JSON.stringify(inputs)}`);
stateHelper.setInputs(inputs);
const toolkit = new Toolkit();
await core.group(`GitHub Actions runtime token ACs`, async () => {
@@ -48,7 +58,7 @@ actionsToolkit.run(
if (dockerConfig && dockerConfig.proxies) {
for (const host in dockerConfig.proxies) {
let prefix = '';
if (dockerConfig.proxies.length > 1) {
if (Object.keys(dockerConfig.proxies).length > 1) {
prefix = ' ';
core.info(host);
}
@@ -72,20 +82,36 @@ actionsToolkit.run(
await toolkit.buildx.printVersion();
});
let builder: BuilderInfo;
await core.group(`Builder info`, async () => {
builder = await toolkit.builder.inspect(inputs.builder);
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
ignoreReturnCode: true,
env: Object.assign({}, process.env, {
BUILDX_METADATA_WARNINGS: 'true'
}) as {
[key: string]: string;
}
}).then(res => {
if (res.stderr.length > 0 && res.exitCode != 0) {
throw new Error(`buildx failed with: ${res.stderr.match(/(.*)\s*$/)?.[0]?.trim() ?? 'unknown error'}`);
err = Error(`buildx failed with: ${res.stderr.match(/(.*)\s*$/)?.[0]?.trim() ?? 'unknown error'}`);
}
});
const imageID = BuildxInputs.resolveBuildImageID();
const metadata = BuildxInputs.resolveBuildMetadata();
const digest = BuildxInputs.resolveDigest();
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);
@@ -100,13 +126,95 @@ actionsToolkit.run(
}
if (metadata) {
await core.group(`Metadata`, async () => {
core.info(metadata);
core.setOutput('metadata', metadata);
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 (GitHub.isGHES) {
core.warning('Build summary is not yet supported on GHES');
} else if (!(await toolkit.buildx.versionSatisfies('>=0.13.0'))) {
core.warning('Build summary requires Buildx >= 0.13.0');
} else if (builder && builder.driver === 'cloud') {
core.warning('Build summary is not yet supported with Docker Build Cloud');
} else if (!ref) {
core.warning('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 GitHub.uploadArtifact({
filename: exportRes.dockerbuildFilename,
mimeType: 'application/gzip',
retentionDays: recordRetentionDays
});
}
await GitHub.writeBuildSummary({
exportRes: exportRes,
uploadRes: uploadRes,
inputs: stateHelper.inputs
});
} catch (e) {
core.warning(e.message);
}
});
}
if (stateHelper.tmpDir.length > 0) {
await core.group(`Removing temp folder ${stateHelper.tmpDir}`, async () => {
fs.rmSync(stateHelper.tmpDir, {recursive: true});
@@ -114,3 +222,63 @@ actionsToolkit.run(
}
}
);
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] : '';
}
function buildChecksAnnotationsEnabled(): boolean {
if (process.env.DOCKER_BUILD_CHECKS_ANNOTATIONS) {
return Util.parseBool(process.env.DOCKER_BUILD_CHECKS_ANNOTATIONS);
}
return true;
}
function buildSummaryEnabled(): boolean {
if (process.env.DOCKER_BUILD_NO_SUMMARY) {
core.warning('DOCKER_BUILD_NO_SUMMARY is deprecated. Set DOCKER_BUILD_SUMMARY to false instead.');
return !Util.parseBool(process.env.DOCKER_BUILD_NO_SUMMARY);
} else 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 {
let val: string | undefined;
if (process.env.DOCKER_BUILD_EXPORT_RETENTION_DAYS) {
core.warning('DOCKER_BUILD_EXPORT_RETENTION_DAYS is deprecated. Use DOCKER_BUILD_RECORD_RETENTION_DAYS instead.');
val = process.env.DOCKER_BUILD_EXPORT_RETENTION_DAYS;
} else if (process.env.DOCKER_BUILD_RECORD_RETENTION_DAYS) {
val = process.env.DOCKER_BUILD_RECORD_RETENTION_DAYS;
}
if (val) {
const res = parseInt(val);
if (isNaN(res)) {
throw Error(`Invalid build record retention days: ${val}`);
}
return res;
}
}
+17
View File
@@ -1,7 +1,24 @@
import * as core from '@actions/core';
import {Inputs, sanitizeInputs} from './context';
export const tmpDir = process.env['STATE_tmpDir'] || '';
export const inputs = process.env['STATE_inputs'] ? JSON.parse(process.env['STATE_inputs']) : undefined;
export const buildRef = process.env['STATE_buildRef'] || '';
export const isSummarySupported = !!process.env['STATE_isSummarySupported'];
export function setTmpDir(tmpDir: string) {
core.saveState('tmpDir', tmpDir);
}
export function setInputs(inputs: Inputs) {
core.saveState('inputs', JSON.stringify(sanitizeInputs(inputs)));
}
export function setBuildRef(buildRef: string) {
core.saveState('buildRef', buildRef);
}
export function setSummarySupported() {
core.saveState('isSummarySupported', 'true');
}
+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
+6843 -3927
View File
File diff suppressed because it is too large. Load diff