Compare commits

..
313 Commits
Author SHA1 Message Date
CrazyMax c299e40c65 Merge pull request #569 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.68.0
chore(deps): Bump @docker/actions-toolkit from 0.67.0 to 0.68.0
2025-11-27 13:36:24 +01:00
CrazyMax f015d7914a chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-11-27 12:42:57 +01:00
dependabot[bot] 121bcc2ca8 chore(deps): Bump @docker/actions-toolkit from 0.67.0 to 0.68.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.67.0 to 0.68.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.67.0...v0.68.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-27 11:37:44 +00:00
CrazyMax f7b6bf41b9 Merge pull request #564 from docker/dependabot/npm_and_yarn/js-yaml-3.14.2
chore(deps): Bump js-yaml from 3.14.1 to 3.14.2
2025-11-27 12:35:12 +01:00
CrazyMax 0b95c6b860 Merge pull request #565 from docker/dependabot/github_actions/actions/checkout-6
chore(deps): Bump actions/checkout from 5 to 6
2025-11-27 12:34:57 +01:00
CrazyMax 17f70d7525 Merge pull request #568 from motoki317/docs/fix-to-24h-schedule-pattern
docs(README): Fix date format from 12h to 24h in schedule pattern
2025-11-27 12:34:33 +01:00
motoki317 afd7e6d7bb docs(README): Fix date format from 12h to 24h in schedule pattern
hh represents 12h format from 01 to 12 which is probably not suitable
for date tags.
The pattern example in the table below uses the 24h format HH, so this
makes the document consistent.

Signed-off-by: motoki317 <motoki317@gmail.com>
2025-11-27 12:57:49 +09:00
dependabot[bot] 602aff8e11 chore(deps): Bump actions/checkout from 5 to 6
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

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

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

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-19 05:05:12 +00:00
CrazyMax 8d8c7c12f7 Merge pull request #559 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.67.0
chore(deps): Bump @docker/actions-toolkit from 0.66.0 to 0.67.0
2025-11-05 16:15:03 +01:00
CrazyMax 15bd03a177 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-11-05 15:55:58 +01:00
dependabot[bot] fdba5868fb chore(deps): Bump @docker/actions-toolkit from 0.66.0 to 0.67.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.66.0 to 0.67.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.66.0...v0.67.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-05 13:53:44 +00:00
CrazyMax 318604b99e Merge pull request #539 from docker/dependabot/npm_and_yarn/babel/runtime-corejs3-7.28.2
chore(deps): Bump @babel/runtime-corejs3 from 7.14.7 to 7.28.2
2025-11-04 16:31:36 +01:00
CrazyMax 49c0a55d55 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-11-04 16:28:52 +01:00
CrazyMax 486229e3f4 Merge pull request #558 from crazy-max/fix-dist
chore: fix dist
2025-11-04 16:25:53 +01:00
CrazyMax f02aeab1ee chore: fix dist
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-11-04 16:22:29 +01:00
dependabot[bot] beafb97305 chore(deps): Bump @babel/runtime-corejs3 from 7.14.7 to 7.28.2
Bumps [@babel/runtime-corejs3](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime-corejs3) from 7.14.7 to 7.28.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.28.2/packages/babel-runtime-corejs3)

---
updated-dependencies:
- dependency-name: "@babel/runtime-corejs3"
  dependency-version: 7.28.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-04 15:16:45 +00:00
CrazyMax 3ff819c6c5 Merge pull request #557 from crazy-max/yarn-4.9.2
update yarn to 4.9.2
2025-11-04 16:14:33 +01:00
CrazyMax 05838e9769 update yarn to 4.9.2
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-11-04 16:05:10 +01:00
CrazyMax 43fa4ac0d3 Merge pull request #556 from crazy-max/dev-deps
update dev dependencies
2025-11-04 15:27:11 +01:00
CrazyMax b3120f2f18 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-11-04 15:22:53 +01:00
CrazyMax 1f469d21ee update dev dependencies
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-11-04 15:21:47 +01:00
CrazyMax b0a2bcfe7b Merge pull request #555 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.66.0
chore(deps): Bump @docker/actions-toolkit from 0.62.1 to 0.66.0
2025-11-04 15:17:27 +01:00
CrazyMax 14973dfd4b chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-11-04 15:15:22 +01:00
dependabot[bot] dae123c2bf chore(deps): Bump @docker/actions-toolkit from 0.62.1 to 0.66.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.62.1 to 0.66.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.62.1...v0.66.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-04 14:10:29 +00:00
CrazyMax fdb90a51ae Merge pull request #554 from docker/dependabot/npm_and_yarn/multi-c9330d5d78
chore(deps): Bump semver and @types/semver
2025-11-04 15:08:10 +01:00
CrazyMax e5afe339d8 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-11-04 15:05:58 +01:00
dependabot[bot] 17e37c2a42 chore(deps): Bump semver and @types/semver
Bumps [semver](https://github.com/npm/node-semver) and [@types/semver](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/semver). These dependencies needed to be updated together.

Updates `semver` from 7.7.2 to 7.7.3
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.7.2...v7.7.3)

Updates `@types/semver` from 7.7.0 to 7.7.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/semver)

---
updated-dependencies:
- dependency-name: semver
  dependency-version: 7.7.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: "@types/semver"
  dependency-version: 7.7.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-04 14:04:06 +00:00
CrazyMax aa0be5b84c Merge pull request #532 from docker/dependabot/npm_and_yarn/csv-parse-6.1.0
chore(deps): Bump csv-parse from 5.6.0 to 6.1.0
2025-11-04 15:01:36 +01:00
CrazyMax 136a4a23fe chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-11-04 14:58:59 +01:00
CrazyMax 5f9eb12581 tag: fix value type
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-11-04 14:58:00 +01:00
CrazyMax be25a4ce07 @types/csv-parse not needed anymore
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-11-04 14:57:39 +01:00
dependabot[bot] eced061233 chore(deps): Bump csv-parse from 5.6.0 to 6.1.0
Bumps [csv-parse](https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-parse) from 5.6.0 to 6.1.0.
- [Changelog](https://github.com/adaltas/node-csv/blob/master/packages/csv-parse/CHANGELOG.md)
- [Commits](https://github.com/adaltas/node-csv/commits/csv-parse@6.1.0/packages/csv-parse)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-04 13:53:34 +00:00
CrazyMax e7f20f98b1 Merge pull request #541 from docker/dependabot/npm_and_yarn/tmp-0.2.4
chore(deps): Bump tmp from 0.2.3 to 0.2.5
2025-11-04 14:51:27 +01:00
CrazyMax 95bdd37b1f chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-11-04 14:49:05 +01:00
dependabot[bot] 3fb4efdf45 chore(deps): Bump tmp from 0.2.3 to 0.2.4
Bumps [tmp](https://github.com/raszi/node-tmp) from 0.2.3 to 0.2.4.
- [Changelog](https://github.com/raszi/node-tmp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/raszi/node-tmp/compare/v0.2.3...v0.2.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-04 13:47:59 +00:00
CrazyMax f31cd74edd Merge pull request #540 from docker/dependabot/npm_and_yarn/brace-expansion-1.1.12
chore(deps): Bump brace-expansion from 1.1.11 to 1.1.12
2025-11-04 14:45:31 +01:00
CrazyMax 840a42f4cf chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-11-04 14:41:33 +01:00
dependabot[bot] ada8aa8ca0 chore(deps): Bump brace-expansion from 1.1.11 to 1.1.12
Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 1.1.11 to 1.1.12.
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](https://github.com/juliangruber/brace-expansion/compare/1.1.11...v1.1.12)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-04 13:40:16 +00:00
CrazyMax 3fa6bb33cb Merge pull request #550 from osman-butt/docs/update-checkout-v5
docs: update checkout action to v5 in README examples
2025-11-04 14:33:31 +01:00
osman-butt 8aa9733355 docs: update checkout action to v5 in README
Signed-off-by: osman-butt <butt.osman@gmail.com>
2025-11-04 14:25:27 +01:00
CrazyMax d87caff40c Merge pull request #549 from docker/dependabot/github_actions/actions/github-script-8
chore(deps): Bump actions/github-script from 7 to 8
2025-11-04 14:23:12 +01:00
CrazyMax 83e4951424 Merge pull request #553 from crazy-max/tag-names
tag-names output to return tag names without image base name
2025-11-04 14:22:33 +01:00
CrazyMax 9efc8723fe chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-11-04 14:14:12 +01:00
CrazyMax ec2c9a30cf tag-names output to return tag names without image base name
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-11-04 14:14:11 +01:00
dependabot[bot] e427fa1e40 chore(deps): Bump actions/github-script from 7 to 8
Bumps [actions/github-script](https://github.com/actions/github-script) from 7 to 8.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-04 19:01:57 +00:00
CrazyMax 032a4b3bda Merge pull request #544 from docker/dependabot/github_actions/actions/checkout-5
chore(deps): Bump actions/checkout from 4 to 5
2025-08-20 14:27:56 +02:00
dependabot[bot] 06e11bf926 chore(deps): Bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-12 02:15:24 +00:00
CrazyMax c1e51972af Merge pull request #537 from crazy-max/pep440-match
allow to match part of the git tag or value for pep440 type
2025-08-01 10:56:28 +02:00
CrazyMax 89dd65a569 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-08-01 10:53:35 +02:00
CrazyMax 699ee45cf1 allow to match part of the git tag or value for pep440 type
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-08-01 10:52:31 +02:00
CrazyMax e0542a6360 Merge pull request #536 from crazy-max/semver-match
allow to match part of the git tag or value for semver type
2025-08-01 10:41:39 +02:00
CrazyMax b7facdfcef chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-07-31 18:15:00 +02:00
CrazyMax 81c60dfb8b allow to match part of the git tag or value for semver type
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-07-31 18:13:25 +02:00
CrazyMax de1119515d Merge pull request #535 from crazy-max/not_def_branch
is_not_default_branch global expression
2025-07-31 15:22:34 +02:00
CrazyMax 2f9c64b1b1 Merge pull request #533 from docker/dependabot/npm_and_yarn/form-data-2.5.5
chore(deps): Bump form-data from 2.5.1 to 2.5.5
2025-07-31 15:21:20 +02:00
CrazyMax 510f746975 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-07-31 15:19:52 +02:00
CrazyMax 2bc3f4e0f1 is_not_default_branch global expression
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-07-31 15:18:21 +02:00
dependabot[bot] f0cfcb57f6 chore(deps): Bump form-data from 2.5.1 to 2.5.5
Bumps [form-data](https://github.com/form-data/form-data) from 2.5.1 to 2.5.5.
- [Release notes](https://github.com/form-data/form-data/releases)
- [Changelog](https://github.com/form-data/form-data/blob/v2.5.5/CHANGELOG.md)
- [Commits](https://github.com/form-data/form-data/compare/v2.5.1...v2.5.5)

---
updated-dependencies:
- dependency-name: form-data
  dependency-version: 2.5.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-21 23:17:35 +00:00
CrazyMax be19121bfd Merge pull request #528 from crazy-max/update-readme
readme: show additional case for semver
2025-06-25 17:03:18 +02:00
CrazyMax c1eb0314a3 readme: show additional case for semver
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-06-25 16:56:20 +02:00
CrazyMax b798ed8388 Merge pull request #526 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.62.1
chore(deps): Bump @docker/actions-toolkit from 0.56.0 to 0.62.1
2025-06-13 16:17:57 +02:00
CrazyMax 07d42e0b4f chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-06-13 16:11:25 +02:00
dependabot[bot] 495d5ce528 chore(deps): Bump @docker/actions-toolkit from 0.56.0 to 0.62.1
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.56.0 to 0.62.1.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.56.0...v0.62.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-13 14:09:35 +00:00
CrazyMax 54b10fa1b6 Merge pull request #525 from docker/dependabot/npm_and_yarn/moment-timezone-0.6.0
chore(deps): Bump moment-timezone from 0.5.47 to 0.6.0
2025-06-13 16:07:29 +02:00
CrazyMax c49a1eee09 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-06-13 16:01:14 +02:00
dependabot[bot] f37a3b6e88 chore(deps): Bump moment-timezone from 0.5.47 to 0.6.0
Bumps [moment-timezone](https://github.com/moment/moment-timezone) from 0.5.47 to 0.6.0.
- [Release notes](https://github.com/moment/moment-timezone/releases)
- [Changelog](https://github.com/moment/moment-timezone/blob/develop/changelog.md)
- [Commits](https://github.com/moment/moment-timezone/compare/0.5.47...0.6.0)

---
updated-dependencies:
- dependency-name: moment-timezone
  dependency-version: 0.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-13 13:40:20 +00:00
CrazyMax 85eb7c9324 Merge pull request #524 from docker/dependabot/npm_and_yarn/multi-1172310dfd
chore(deps): Bump semver and @types/semver
2025-06-13 15:38:19 +02:00
CrazyMax a1c21022b0 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-06-13 15:32:30 +02:00
dependabot[bot] 6547919405 chore(deps): Bump semver and @types/semver
Bumps [semver](https://github.com/npm/node-semver) and [@types/semver](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/semver). These dependencies needed to be updated together.

Updates `semver` from 7.7.1 to 7.7.2
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.7.1...v7.7.2)

Updates `@types/semver` from 7.5.8 to 7.7.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/semver)

---
updated-dependencies:
- dependency-name: semver
  dependency-version: 7.7.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: "@types/semver"
  dependency-version: 7.7.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-13 13:20:36 +00:00
CrazyMax 2e80e58e70 Merge pull request #523 from docker/dependabot/npm_and_yarn/actions/github-6.0.1
chore(deps): Bump @actions/github from 6.0.0 to 6.0.1
2025-06-13 15:18:33 +02:00
CrazyMax a51254e5fa chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-06-13 15:16:17 +02:00
dependabot[bot] dee3324b00 chore(deps): Bump @actions/github from 6.0.0 to 6.0.1
Bumps [@actions/github](https://github.com/actions/toolkit/tree/HEAD/packages/github) from 6.0.0 to 6.0.1.
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/github/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/github)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-07 19:45:38 +00:00
CrazyMax 418e4b98bf Merge pull request #520 from crazy-max/pr-assign-author
pr-assign-author workflow
2025-04-23 16:10:09 +02:00
CrazyMax e8ece87dc8 pr-assign-author workflow
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-04-23 14:17:36 +02:00
CrazyMax 12d9b9a905 Merge pull request #519 from crazy-max/fix-codecov
ci: fix missing source for codecov
2025-04-22 14:37:08 +02:00
CrazyMax c88acc31ec ci: fix missing source for codecov
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-04-22 14:29:47 +02:00
CrazyMax 902fa8ec7d Merge pull request #504 from docker/dependabot/npm_and_yarn/semver-7.7.1
chore(deps): Bump semver from 7.6.3 to 7.7.1
2025-02-26 16:12:33 +01:00
CrazyMax c30b9c27e6 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-02-26 16:08:18 +01:00
dependabot[bot] 0698804aab chore(deps): Bump semver from 7.6.3 to 7.7.1
Bumps [semver](https://github.com/npm/node-semver) from 7.6.3 to 7.7.1.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.6.3...v7.7.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-26 14:56:20 +00:00
CrazyMax bb3eecaaf8 Merge pull request #501 from docker/dependabot/npm_and_yarn/moment-timezone-0.5.47
chore(deps): Bump moment-timezone from 0.5.46 to 0.5.47
2025-02-26 15:53:52 +01:00
CrazyMax 94a839cf6a chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-02-26 15:34:33 +01:00
CrazyMax ecd51a0f6a Merge pull request #509 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.56.0
chore(deps): Bump @docker/actions-toolkit from 0.55.0 to 0.56.0
2025-02-26 15:29:14 +01:00
dependabot[bot] a85b1dbfe6 chore(deps): Bump @docker/actions-toolkit from 0.55.0 to 0.56.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.55.0 to 0.56.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.55.0...v0.56.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-26 14:25:36 +00:00
dependabot[bot] 5a76a0efcf chore(deps): Bump moment-timezone from 0.5.46 to 0.5.47
Bumps [moment-timezone](https://github.com/moment/moment-timezone) from 0.5.46 to 0.5.47.
- [Release notes](https://github.com/moment/moment-timezone/releases)
- [Changelog](https://github.com/moment/moment-timezone/blob/develop/changelog.md)
- [Commits](https://github.com/moment/moment-timezone/compare/0.5.46...0.5.47)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-26 14:25:02 +00:00
CrazyMax 1cc4a9856a Merge pull request #482 from docker/dependabot/npm_and_yarn/csv-parse-5.6.0
chore(deps): Bump csv-parse from 5.5.6 to 5.6.0
2025-02-26 15:22:56 +01:00
CrazyMax d84de1e022 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-02-26 15:14:04 +01:00
dependabot[bot] 092f0474e9 chore(deps): Bump csv-parse from 5.5.6 to 5.6.0
Bumps [csv-parse](https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-parse) from 5.5.6 to 5.6.0.
- [Changelog](https://github.com/adaltas/node-csv/blob/master/packages/csv-parse/CHANGELOG.md)
- [Commits](https://github.com/adaltas/node-csv/commits/csv-parse@5.6.0/packages/csv-parse)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-26 14:12:00 +00:00
CrazyMax 8b68062745 Merge pull request #507 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.55.0
chore(deps): Bump @docker/actions-toolkit from 0.44.0 to 0.55.0
2025-02-26 15:09:39 +01:00
CrazyMax 0eaca2ee4e chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-02-26 15:06:28 +01:00
CrazyMax db44dfae7a Merge pull request #508 from crazy-max/typos
Fix typos
2025-02-26 15:01:46 +01:00
Igor Zubkov 2bd8a81e96 Fix typos
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-02-26 14:46:39 +01:00
dependabot[bot] 10ff2155d8 chore(deps): Bump @docker/actions-toolkit from 0.44.0 to 0.55.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.44.0 to 0.55.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.44.0...v0.55.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-26 13:46:33 +00:00
CrazyMax a1a78f1e24 Merge pull request #506 from Yikun/patch-1
Add pep440 to Latest tag list
2025-02-26 14:43:18 +01:00
CrazyMax 95438bc6e5 Merge pull request #497 from omus/cv/output-env
Support disabling `DOCKER_METADATA_OUTPUT_*` environment variables
2025-02-26 14:37:22 +01:00
CrazyMax 0e4a06e6a2 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-02-26 14:33:12 +01:00
CrazyMax a550435c60 use Util.parseBool to parse env
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-02-26 14:33:11 +01:00
Curtis Vogt b539e14bf6 Add DOCKER_METADATA_SET_OUTPUT_ENV
Signed-off-by: Curtis Vogt <curtis.vogt@gmail.com>
2025-02-26 14:21:45 +01:00
Yikun Jiang d931b83008 Update README.md
Signed-off-by: Yikun Jiang <yikunkero@gmail.com>
2025-02-16 02:23:35 +08:00
CrazyMax 8e1d5461f0 Merge pull request #494 from crazy-max/bake-v6
update bake-action to v6
2025-01-08 18:54:58 +01:00
CrazyMax 2af3007824 update build-push-action to v6
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-08 12:48:06 +01:00
CrazyMax 0d820067b8 update bake-action to v6
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2025-01-08 12:48:06 +01:00
Tõnis Tiigi 906ecf0fc0 Merge pull request #489 from crazy-max/labels-template
global expressions support for labels and annotations
2024-12-12 10:28:33 -08:00
CrazyMax f78c299c14 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-12-09 12:32:17 +01:00
CrazyMax 87ff116aea global expressions support for labels and annotations
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-12-09 12:29:03 +01:00
CrazyMax b53be03109 Merge pull request #483 from crazy-max/update-readme
readme: update bake-action
2024-11-25 16:53:23 +01:00
CrazyMax 3da9c47fb9 remove UPGRADE.md
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-22 17:00:49 +01:00
CrazyMax f5d655ce8b readme: update bake-action
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-22 17:00:28 +01:00
CrazyMax 369eb591f4 Merge pull request #480 from crazy-max/back-to-sha-7
back to commit sha length of 7
2024-11-19 18:26:39 +01:00
CrazyMax 7d870ce854 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-19 18:24:29 +01:00
CrazyMax e44a9cd788 back to commit sha length of 7
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-19 18:24:29 +01:00
CrazyMax 8cb0002d6a Merge pull request #478 from crazy-max/commit-date-request
commiter_date: fix github api request fallback
2024-11-19 17:54:49 +01:00
CrazyMax e01ddd3e3c chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-19 17:22:11 +01:00
CrazyMax 861d98a3bd commiter_date: fix github api request fallback
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-19 17:22:11 +01:00
CrazyMax 359e915ab3 Merge pull request #475 from crazy-max/commit-date-changes
commit_date: code cleanup and readme updates
2024-11-19 15:51:51 +01:00
CrazyMax 0c395ebe62 commit_date: code cleanup and readme updates
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-19 15:48:18 +01:00
CrazyMax 115662203e Merge pull request #474 from docker/dependabot/npm_and_yarn/cross-spawn-7.0.5
chore(deps): Bump cross-spawn from 7.0.3 to 7.0.5
2024-11-18 15:13:28 +01:00
dependabot[bot] 95ea8d0c40 chore(deps): Bump cross-spawn from 7.0.3 to 7.0.5
Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.5.
- [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/moxystudio/node-cross-spawn/compare/v7.0.3...v7.0.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-18 13:45:03 +00:00
CrazyMax a4c10ad2ed Merge pull request #473 from docker/dependabot/github_actions/codecov/codecov-action-5
chore(deps): Bump codecov/codecov-action from 4 to 5
2024-11-18 14:43:11 +01:00
CrazyMax c85c22ab59 Merge pull request #471 from trim21/commit-date
feat: add variable `commit_date`
2024-11-18 14:41:10 +01:00
Trim21 526d40319b feat: add variable commit_date
Signed-off-by: Trim21 <trim21.me@gmail.com>
2024-11-17 01:04:19 +08:00
dependabot[bot] 86622a92ee chore(deps): Bump codecov/codecov-action from 4 to 5
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4 to 5.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v4...v5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-14 19:06:18 +00:00
CrazyMax 44d81d6d2a Merge pull request #472 from crazy-max/ci-context
ci: context job
2024-11-14 08:43:40 +01:00
CrazyMax 9aaeb628e0 ci: context job
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-14 08:36:54 +01:00
CrazyMax 32323e53fe Merge pull request #470 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.44.0
chore(deps): Bump @docker/actions-toolkit from 0.35.0 to 0.44.0
2024-11-13 14:02:33 +01:00
CrazyMax 3d8d1d9406 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-11-13 13:46:36 +01:00
dependabot[bot] 1b250aecdc chore(deps): Bump @docker/actions-toolkit from 0.35.0 to 0.44.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.35.0 to 0.44.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.35.0...v0.44.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-13 12:44:55 +00:00
CrazyMax bd26c982ee Merge pull request #460 from docker/dependabot/npm_and_yarn/actions/core-1.11.1
chore(deps): Bump @actions/core from 1.10.1 to 1.11.1
2024-11-10 21:36:36 +01:00
CrazyMax f574002aaf chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-10-31 11:25:58 +01:00
dependabot[bot] 30c2f0a1f0 chore(deps): Bump @actions/core from 1.10.1 to 1.11.1
Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.10.1 to 1.11.1.
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-31 10:22:02 +00:00
CrazyMax 0de3687b53 Merge pull request #459 from docker/dependabot/npm_and_yarn/moment-timezone-0.5.46
chore(deps): Bump moment-timezone from 0.5.45 to 0.5.46
2024-10-31 11:20:39 +01:00
CrazyMax 3229e62531 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-10-31 11:16:28 +01:00
dependabot[bot] f829da7245 chore(deps): Bump moment-timezone from 0.5.45 to 0.5.46
Bumps [moment-timezone](https://github.com/moment/moment-timezone) from 0.5.45 to 0.5.46.
- [Release notes](https://github.com/moment/moment-timezone/releases)
- [Changelog](https://github.com/moment/moment-timezone/blob/develop/changelog.md)
- [Commits](https://github.com/moment/moment-timezone/compare/0.5.45...0.5.46)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-31 10:10:31 +00:00
CrazyMax 9b90a2e882 Merge pull request #467 from crazy-max/increase-short-sha-size
increase short commit hash length to 12 for uniqueness
2024-10-31 11:05:50 +01:00
CrazyMax aa662cf9eb chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-10-31 10:45:42 +01:00
CrazyMax c6cb763bee DOCKER_METADATA_SHORT_SHA_LENGTH env var to customize short commit SHA length
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-10-31 10:45:41 +01:00
CrazyMax bb9c6dd583 increase short commit hash length to 12 for uniqueness
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-10-31 10:11:17 +01:00
CrazyMax d31acd5065 Merge pull request #464 from crazy-max/publish-immutable-action
ci: publish as immutable action workflow
2024-10-26 00:40:50 +02:00
CrazyMax 6df88e4e75 ci: publish as immutable action workflow
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-10-25 13:21:03 +02:00
CrazyMax 70b2cdc648 Merge pull request #454 from docker/dependabot/npm_and_yarn/path-to-regexp-6.3.0
chore(deps): Bump path-to-regexp from 6.2.2 to 6.3.0
2024-09-12 22:41:20 +02:00
dependabot[bot] 1a52488bd8 chore(deps): Bump path-to-regexp from 6.2.2 to 6.3.0
Bumps [path-to-regexp](https://github.com/pillarjs/path-to-regexp) from 6.2.2 to 6.3.0.
- [Release notes](https://github.com/pillarjs/path-to-regexp/releases)
- [Changelog](https://github.com/pillarjs/path-to-regexp/blob/master/History.md)
- [Commits](https://github.com/pillarjs/path-to-regexp/compare/v6.2.2...v6.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-12 19:22:56 +00:00
CrazyMax 60a0d343a0 Merge pull request #441 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.35.0
chore(deps): Bump @docker/actions-toolkit from 0.23.0 to 0.35.0
2024-07-23 11:04:00 +02:00
CrazyMax b3bc5a6d84 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-07-23 10:48:22 +02:00
CrazyMax e6e95c28a4 chore: move func
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-07-23 10:44:25 +02:00
dependabot[bot] 9ec63a7555 chore(deps): Bump @docker/actions-toolkit from 0.23.0 to 0.35.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.23.0 to 0.35.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.23.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-23 08:39:57 +00:00
CrazyMax 6970301b80 Merge pull request #440 from docker/dependabot/npm_and_yarn/semver-7.6.3
chore(deps): Bump semver from 7.6.2 to 7.6.3
2024-07-23 10:35:12 +02:00
CrazyMax d155f767a3 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-07-23 10:31:56 +02:00
dependabot[bot] b5b2c1dec6 chore(deps): Bump semver from 7.6.2 to 7.6.3
Bumps [semver](https://github.com/npm/node-semver) from 7.6.2 to 7.6.3.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.6.2...v7.6.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-17 19:38:08 +00:00
CrazyMax a64d0487d7 Merge pull request #424 from docker/dependabot/npm_and_yarn/braces-3.0.3
chore(deps): Bump braces from 3.0.2 to 3.0.3
2024-06-29 14:09:54 +02:00
CrazyMax 68e4cac93d Merge pull request #426 from docker/dependabot/github_actions/docker/build-push-action-6
chore(deps): Bump docker/build-push-action from 5 to 6
2024-06-29 14:09:41 +02:00
CrazyMax 7ba3606742 Merge pull request #425 from docker/dependabot/github_actions/docker/bake-action-5
chore(deps): Bump docker/bake-action from 4 to 5
2024-06-29 14:09:28 +02:00
dependabot[bot] 2331fdf258 chore(deps): Bump docker/build-push-action from 5 to 6
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5 to 6.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v5...v6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-17 19:28:50 +00:00
dependabot[bot] 24ce540669 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 19:28:46 +00:00
dependabot[bot] d729db4f91 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-16 15:05:34 +00:00
CrazyMax f7b4ed1238 Merge pull request #415 from crazy-max/update-dev-deps
chore: update dev dependencies
2024-05-15 13:02:46 +02:00
CrazyMax 33c4e25305 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-05-15 12:33:21 +02:00
CrazyMax b83177b368 chore: update dev dependencies
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-05-15 12:32:06 +02:00
CrazyMax 839b70f9d5 Merge pull request #412 from docker/dependabot/npm_and_yarn/csv-parse-5.5.6
chore(deps): Bump csv-parse from 5.5.5 to 5.5.6
2024-05-15 12:27:22 +02:00
CrazyMax dbacb9a831 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-05-15 12:24:58 +02:00
dependabot[bot] 247cc9691a chore(deps): Bump csv-parse from 5.5.5 to 5.5.6
Bumps [csv-parse](https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-parse) from 5.5.5 to 5.5.6.
- [Changelog](https://github.com/adaltas/node-csv/blob/master/packages/csv-parse/CHANGELOG.md)
- [Commits](https://github.com/adaltas/node-csv/commits/csv-parse@5.5.6/packages/csv-parse)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-15 10:23:02 +00:00
CrazyMax 4c92c35ca9 Merge pull request #411 from docker/dependabot/npm_and_yarn/semver-7.6.2
chore(deps): Bump semver from 7.6.0 to 7.6.2
2024-05-15 12:22:05 +02:00
CrazyMax 9ca1efb941 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-05-15 12:20:02 +02:00
dependabot[bot] 0170173c39 chore(deps): Bump semver from 7.6.0 to 7.6.2
Bumps [semver](https://github.com/npm/node-semver) from 7.6.0 to 7.6.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.6.0...v7.6.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-15 10:08:12 +00:00
CrazyMax dab39f1537 Merge pull request #413 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.23.0
chore(deps): Bump @docker/actions-toolkit from 0.20.0 to 0.23.0
2024-05-15 12:07:13 +02:00
CrazyMax f402fd6ae4 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-05-15 11:31:16 +02:00
dependabot[bot] b0bbce7f66 chore(deps): Bump @docker/actions-toolkit from 0.20.0 to 0.23.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.20.0 to 0.23.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.20.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 20:17:26 +00:00
CrazyMax 2ee3d3070b Merge pull request #408 from crazy-max/update-yarn
update to yarn 3.6.3
2024-05-07 12:04:33 +02:00
CrazyMax 6e3a986a06 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-05-07 10:47:24 +02:00
CrazyMax 4fde7ad49c chore: add plugin-interactive-tools yarn pkg
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-05-07 10:46:34 +02:00
CrazyMax 24b670ad98 update to yarn 3.6.3
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-05-07 10:45:56 +02:00
CrazyMax 1294d94f8e Merge pull request #402 from docker/dependabot/npm_and_yarn/undici-5.28.4
chore(deps): Bump undici from 5.28.3 to 5.28.4
2024-04-11 16:26:21 +02:00
CrazyMax 4ab8e580e1 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-04-11 15:37:46 +02:00
dependabot[bot] 3617daf484 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-11 12:33:01 +00:00
CrazyMax b5cd5676d4 Merge pull request #400 from docker/dependabot/npm_and_yarn/multi-ad9948e606
chore(deps): Bump semver and @types/semver
2024-04-11 14:31:41 +02:00
CrazyMax 204ddf0626 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-04-11 14:20:02 +02:00
dependabot[bot] 588ab464f7 chore(deps): Bump semver and @types/semver
Bumps [semver](https://github.com/npm/node-semver) and [@types/semver](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/semver). These dependencies needed to be updated together.

Updates `semver` from 7.5.4 to 7.6.0
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.5.4...v7.6.0)

Updates `@types/semver` from 7.5.1 to 7.5.8
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/semver)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: "@types/semver"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-11 11:43:29 +00:00
CrazyMax 6ed49e6282 Merge pull request #399 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.20.0
chore(deps): Bump @docker/actions-toolkit from 0.18.0 to 0.20.0
2024-04-11 13:42:35 +02:00
CrazyMax 499da83ec1 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-04-11 13:40:49 +02:00
dependabot[bot] 1bc39885c1 chore(deps): Bump @docker/actions-toolkit from 0.18.0 to 0.20.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.18.0 to 0.20.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.18.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 19:14:38 +00:00
CrazyMax c314eea2b2 Merge pull request #395 from crazy-max/bake-cwd-prefix
docs: using bake with remote and local metadata definition
2024-03-25 11:35:50 +01:00
CrazyMax 22d80c023d docs: using bake with remote and local metadata definition
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-03-25 11:33:52 +01:00
Tõnis Tiigi 38b3677383 Merge pull request #396 from crazy-max/ci-latest-buildx
ci: set buildx version
2024-03-18 15:16:15 -07:00
CrazyMax 3c91de3093 ci: set buildx version
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-03-18 10:38:16 +01:00
CrazyMax 75359341f6 Merge pull request #383 from docker/dependabot/npm_and_yarn/moment-timezone-0.5.45
chore(deps): Bump moment-timezone from 0.5.44 to 0.5.45
2024-03-13 18:55:50 +01:00
CrazyMax 2432cf717c chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-03-13 18:54:13 +01:00
CrazyMax c77859c8ba chore(deps): Bump csv-parse from 5.5.3 to 5.5.5
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-03-13 18:51:58 +01:00
dependabot[bot] 60ab7b421c chore(deps): Bump moment-timezone from 0.5.44 to 0.5.45
Bumps [moment-timezone](https://github.com/moment/moment-timezone) from 0.5.44 to 0.5.45.
- [Release notes](https://github.com/moment/moment-timezone/releases)
- [Changelog](https://github.com/moment/moment-timezone/blob/develop/changelog.md)
- [Commits](https://github.com/moment/moment-timezone/compare/0.5.44...0.5.45)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-13 17:49:48 +00:00
CrazyMax 7ce1a14667 Merge pull request #391 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.18.0
chore(deps): Bump @docker/actions-toolkit from 0.16.1 to 0.18.0
2024-03-13 18:48:10 +01:00
CrazyMax d06e52bc52 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-03-13 18:46:46 +01:00
dependabot[bot] 66f0185bb8 chore(deps): Bump @docker/actions-toolkit from 0.16.1 to 0.18.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.16.1 to 0.18.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.16.1...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-02-29 19:07:00 +00:00
CrazyMax 232fc64e3a Merge pull request #386 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:38:00 +01:00
CrazyMax 1b08479748 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-02-23 09:34:46 +01:00
CrazyMax 3a28db68be Merge pull request #387 from crazy-max/bump-gha
bump codecov/codecov-action from 3 to 4
2024-02-23 09:13:06 +01:00
CrazyMax 6bb43c8680 bump codecov/codecov-action from 3 to 4
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-02-23 09:05:37 +01:00
dependabot[bot] 41050ffe08 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:59:42 +00:00
CrazyMax 8e5442c4ef Merge pull request #382 from crazy-max/dont-set-cwd-prefix
don't set cwd:// prefix for local bake files
2024-01-31 14:06:15 +01:00
CrazyMax eda41b71bf chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-01-31 14:04:39 +01:00
CrazyMax 388c08f740 don't set cwd:// prefix for local bake files
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-01-31 14:04:39 +01:00
CrazyMax dbef88086f Merge pull request #374 from docker/dependabot/npm_and_yarn/moment-timezone-0.5.44
chore(deps): Bump moment-timezone from 0.5.43 to 0.5.44
2024-01-05 10:58:01 +01:00
CrazyMax b73e7a71ac chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-01-05 10:56:26 +01:00
dependabot[bot] b9fba690eb chore(deps): Bump moment-timezone from 0.5.43 to 0.5.44
Bumps [moment-timezone](https://github.com/moment/moment-timezone) from 0.5.43 to 0.5.44.
- [Release notes](https://github.com/moment/moment-timezone/releases)
- [Changelog](https://github.com/moment/moment-timezone/blob/develop/changelog.md)
- [Commits](https://github.com/moment/moment-timezone/compare/0.5.43...0.5.44)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-05 09:54:17 +00:00
CrazyMax ac82374ba6 Merge pull request #373 from docker/dependabot/npm_and_yarn/moment-2.30.1
chore(deps): Bump moment from 2.29.4 to 2.30.1
2024-01-05 10:51:59 +01:00
CrazyMax c92519a44e chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-01-05 10:50:35 +01:00
dependabot[bot] 3b4179d34d chore(deps): Bump moment from 2.29.4 to 2.30.1
Bumps [moment](https://github.com/moment/moment) from 2.29.4 to 2.30.1.
- [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/moment/moment/compare/2.29.4...2.30.1)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-05 10:49:11 +01:00
CrazyMax 0784993ef8 Merge pull request #371 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.16.1
chore(deps): Bump @docker/actions-toolkit from 0.16.0 to 0.16.1
2024-01-05 10:48:32 +01:00
CrazyMax 52c3e9e410 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-01-05 10:46:26 +01:00
dependabot[bot] 82a5e6726c chore(deps): Bump @docker/actions-toolkit from 0.16.0 to 0.16.1
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.16.0 to 0.16.1.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.16.0...v0.16.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-01-05 09:44:28 +00:00
Tõnis Tiigi 41e1fe3437 Merge pull request #370 from crazy-max/bake-cwd
bake: set cwd:// prefix for bake files path
2024-01-04 09:32:49 -08:00
CrazyMax 48cce1cba0 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-01-04 10:09:14 +01:00
CrazyMax 61879b94bc bake: set cwd:// prefix for bake files path
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2024-01-04 10:09:06 +01:00
CrazyMax 36ea4ee555 bake: refactor generateBakeFile
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2023-12-20 14:48:27 +01:00
CrazyMax 74fa878183 ci: bump buildx to latest
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2023-12-20 14:38:48 +01:00
CrazyMax 9dc751fe24 Merge pull request #369 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.16.0
chore(deps): Bump @docker/actions-toolkit from 0.15.0 to 0.16.0
2023-12-18 11:47:58 +01:00
CrazyMax c94c54c4e6 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2023-12-15 20:46:50 +01:00
dependabot[bot] 187f09259d chore(deps): Bump @docker/actions-toolkit from 0.15.0 to 0.16.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.15.0 to 0.16.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.15.0...v0.16.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-12-15 19:45:27 +00:00
CrazyMax 6d6eaf3451 Merge pull request #365 from docker/dependabot/npm_and_yarn/csv-parse-5.5.3
chore(deps): Bump csv-parse from 5.5.2 to 5.5.3
2023-12-15 20:44:33 +01:00
dependabot[bot] 1484a7ec95 chore(deps): Bump csv-parse from 5.5.2 to 5.5.3
Bumps [csv-parse](https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-parse) from 5.5.2 to 5.5.3.
- [Changelog](https://github.com/adaltas/node-csv/blob/master/packages/csv-parse/CHANGELOG.md)
- [Commits](https://github.com/adaltas/node-csv/commits/csv-parse@5.5.3/packages/csv-parse)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-08 19:40:22 +00:00
CrazyMax 31cebacef4 Merge pull request #363 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.15.0
chore(deps): Bump @docker/actions-toolkit from 0.14.0 to 0.15.0
2023-12-04 01:51:22 -08:00
CrazyMax 394bbab10c chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2023-12-04 10:49:19 +01:00
dependabot[bot] ee4c9054ec chore(deps): Bump @docker/actions-toolkit from 0.14.0 to 0.15.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.14.0 to 0.15.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.14.0...v0.15.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-12-04 09:39:45 +00:00
Tõnis Tiigi e6428a5c4e Merge pull request #361 from crazy-max/custom-annotations
custom annotations support
2023-11-30 09:29:27 -08:00
David Karlsson 26b4721af7 Merge pull request #359 from favonia/document-annotations
docs(README): add a hint about multi-arch builds
2023-11-30 15:35:34 +01:00
CrazyMax 352ce8b7fe chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2023-11-30 15:09:51 +01:00
CrazyMax cb0becceaf custom annotations support
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2023-11-30 15:09:51 +01:00
favonia 91224bc155 docs(README): add a hint about multi-arch builds
Document probably the most common usage of
`DOCKER_METADATA_ANNOTATIONS_LEVELS`: multi-arch builds.

Signed-off-by: favonia <favonia@gmail.com>
2023-11-30 06:53:25 -06:00
CrazyMax f19c3691d5 Merge pull request #358 from crazy-max/empty-images
feat: allow images input to be empty to output bare tags
2023-11-30 02:04:19 -08:00
CrazyMax 4066f0cede chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2023-11-30 10:41:57 +01:00
CrazyMax d6a296c454 chore: use anonymous func to generate tags and add tests
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2023-11-30 10:41:18 +01:00
Jason D'Amour aacea38e07 feat: allow the images input to be empty, to output just tags
Signed-off-by: Jason D'Amour <jasondamour98@gmail.com>
2023-11-30 10:23:11 +01:00
CrazyMax 051f7ea71b Merge pull request #357 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-30 01:21:11 -08:00
CrazyMax 2fc083a3a4 chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2023-11-30 10:15:31 +01:00
dependabot[bot] 488568d6fa 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-30 09:13:28 +00:00
CrazyMax f33ad1e20d Merge pull request #352 from crazy-max/annotations-alt
annotations support
2023-11-30 01:10:44 -08:00
CrazyMax 6bbe00c7bc chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2023-11-30 10:08:54 +01:00
CrazyMax f0ad8701de annotations support
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2023-11-30 10:08:54 +01:00
CrazyMax 2a4836ac76 Merge pull request #353 from crazy-max/split-bake-file
bake: split definition into two files
2023-11-27 00:50:21 -08:00
CrazyMax 9bdb15d11e chore: update generated content
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2023-11-23 17:08:07 +01:00
CrazyMax b94479639a bake: split definition into two files
Allows to either include tags or labels or both definitions.
Keep bake-file output for backward compatibility.

Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2023-11-23 17:08:07 +01:00
CrazyMax f3c3cad8ad Merge pull request #356 from docker/dependabot/github_actions/actions/github-script-7
chore(deps): Bump actions/github-script from 6 to 7
2023-11-17 05:02:30 -08:00
dependabot[bot] 3b632771f9 chore(deps): Bump actions/github-script from 6 to 7
Bumps [actions/github-script](https://github.com/actions/github-script) from 6 to 7.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v6...v7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-13 19:28:14 +00:00
CrazyMax 62339db73c Merge pull request #346 from docker/dependabot/npm_and_yarn/csv-parse-5.5.2
chore(deps): Bump csv-parse from 5.5.0 to 5.5.2
2023-10-25 06:44:47 -07:00
CrazyMax f13510ee59 fix yarn.lock
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-10-25 15:43:28 +02:00
dependabot[bot] 6796a85d36 chore(deps): Bump csv-parse from 5.5.0 to 5.5.2
Bumps [csv-parse](https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-parse) from 5.5.0 to 5.5.2.
- [Changelog](https://github.com/adaltas/node-csv/blob/master/packages/csv-parse/CHANGELOG.md)
- [Commits](https://github.com/adaltas/node-csv/commits/csv-parse@5.5.2/packages/csv-parse)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-25 15:41:52 +02:00
CrazyMax 1ec392100e Merge pull request #348 from docker/dependabot/npm_and_yarn/actions/github-6.0.0
chore(deps): Bump @actions/github from 5.1.1 to 6.0.0
2023-10-25 06:41:31 -07:00
CrazyMax 15f2689f92 chore: update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-10-25 15:39:40 +02:00
dependabot[bot] ad9adab519 chore(deps): Bump @actions/github from 5.1.1 to 6.0.0
Bumps [@actions/github](https://github.com/actions/toolkit/tree/HEAD/packages/github) from 5.1.1 to 6.0.0.
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/github/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/github)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-25 13:37:52 +00:00
CrazyMax 28aeae210e Merge pull request #349 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.13.0
chore(deps): Bump @docker/actions-toolkit from 0.12.0 to 0.13.0
2023-10-25 06:36:59 -07:00
CrazyMax 5f160a25bd chore: update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-10-25 15:15:43 +02:00
CrazyMax 05d3089a30 Merge pull request #350 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-10-25 06:13:07 -07:00
dependabot[bot] b8c52fa5a7 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:40:16 +00:00
dependabot[bot] fa851f2008 chore(deps): Bump @docker/actions-toolkit from 0.12.0 to 0.13.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.12.0 to 0.13.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.12.0...v0.13.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-10-13 19:33:25 +00:00
CrazyMax 879dcbb708 Merge pull request #335 from docker/dependabot/npm_and_yarn/semver-7.5.4
chore(deps): Bump semver from 7.5.3 to 7.5.4
2023-09-15 13:47:51 +02:00
CrazyMax 167d566053 chore: update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-09-15 13:45:49 +02:00
CrazyMax 6dfb6f1404 Merge pull request #341 from crazy-max/community-files
chore: github form templates
2023-09-13 11:42:14 +02:00
CrazyMax 62a438bd07 chore: github form templates
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-09-13 09:45:28 +02:00
CrazyMax ee5ff41fc8 chore: update community files
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-09-13 09:45:23 +02:00
CrazyMax c0f15f0bfe Merge pull request #339 from docker/dependabot/github_actions/docker/setup-buildx-action-3
chore(deps): Bump docker/setup-buildx-action from 2 to 3
2023-09-13 08:31:36 +02:00
CrazyMax 2c2bddef07 Merge pull request #338 from docker/dependabot/github_actions/docker/setup-qemu-action-3
chore(deps): Bump docker/setup-qemu-action from 2 to 3
2023-09-13 08:31:23 +02:00
CrazyMax 00dcdd5da5 Merge pull request #337 from docker/dependabot/github_actions/docker/bake-action-4
chore(deps): Bump docker/bake-action from 3 to 4
2023-09-13 08:31:13 +02:00
CrazyMax bd87541fe8 Merge pull request #336 from docker/dependabot/github_actions/docker/build-push-action-5
chore(deps): Bump docker/build-push-action from 4 to 5
2023-09-13 08:31:02 +02:00
dependabot[bot] b87668a573 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 19:54:57 +00:00
dependabot[bot] 407b95c632 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 19:54:55 +00:00
dependabot[bot] 0668f8e3c4 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 19:54:51 +00:00
dependabot[bot] d0efd7f63f chore(deps): Bump docker/build-push-action from 4 to 5
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4 to 5.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v4...v5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-12 19:54:48 +00:00
dependabot[bot] 672cd7b637 chore(deps): Bump semver from 7.5.3 to 7.5.4
Bumps [semver](https://github.com/npm/node-semver) from 7.5.3 to 7.5.4.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.5.3...v7.5.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-12 19:03:27 +00:00
CrazyMax 1f35ebc704 Merge pull request #334 from crazy-max/bump-major
docs: bump actions to latest major
2023-09-12 15:14:56 +02:00
CrazyMax 413e9a9a6a docs: bump actions to latest major
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-09-12 14:17:25 +02:00
CrazyMax 96383f4557 Merge pull request #320 from docker/dependabot/npm_and_yarn/csv-parse-5.5.0
Bump csv-parse from 5.4.0 to 5.5.0
2023-09-12 09:35:54 +02:00
CrazyMax f138b9677b chore: update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-09-12 09:34:10 +02:00
dependabot[bot] 9cf7015b15 Bump csv-parse from 5.4.0 to 5.5.0
Bumps [csv-parse](https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-parse) from 5.4.0 to 5.5.0.
- [Changelog](https://github.com/adaltas/node-csv/blob/master/packages/csv-parse/CHANGELOG.md)
- [Commits](https://github.com/adaltas/node-csv/commits/csv-parse@5.5.0/packages/csv-parse)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-12 07:32:56 +00:00
CrazyMax 5a8a5ff8df Merge pull request #315 from docker/dependabot/npm_and_yarn/handlebars-4.7.8
Bump handlebars from 4.7.7 to 4.7.8
2023-09-12 09:31:05 +02:00
CrazyMax 2279d9af58 chore: update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-09-12 09:29:13 +02:00
dependabot[bot] c659933213 Bump handlebars from 4.7.7 to 4.7.8
Bumps [handlebars](https://github.com/handlebars-lang/handlebars.js) from 4.7.7 to 4.7.8.
- [Release notes](https://github.com/handlebars-lang/handlebars.js/releases)
- [Changelog](https://github.com/handlebars-lang/handlebars.js/blob/v4.7.8/release-notes.md)
- [Commits](https://github.com/handlebars-lang/handlebars.js/compare/v4.7.7...v4.7.8)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-12 07:24:46 +00:00
CrazyMax 48d23ccc05 Merge pull request #333 from docker/dependabot/npm_and_yarn/actions/core-1.10.1
Bump @actions/core from 1.10.0 to 1.10.1
2023-09-12 09:17:01 +02:00
CrazyMax b83ffb48d6 chore: update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-09-12 09:12:10 +02:00
dependabot[bot] 3207f2405f 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 07:00:46 +00:00
CrazyMax 63f4a263e5 Merge pull request #328 from crazy-max/update-node20
chore: node 20 as default runtime
2023-09-12 08:23:31 +02:00
CrazyMax 547dcd6d67 chore: node 20 as default runtime
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-09-09 18:19:59 +02:00
CrazyMax 450eef4207 chore: update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-09-09 18:19:58 +02:00
CrazyMax 903f5af663 chore: fix author in package.json
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-09-09 18:19:58 +02:00
CrazyMax 3634bd57d7 vendor: bump @docker/actions-toolkit from 0.6.0 to 0.12.0
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-09-09 18:19:58 +02:00
CrazyMax d3faf0d1af chore: update dev dependencies
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-09-09 18:19:58 +02:00
CrazyMax ff376f4737 chore: update to node 20
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-09-09 18:19:58 +02:00
CrazyMax 79f06a31c0 Merge pull request #330 from frison/master
Update Bake file-reference URI
2023-09-08 11:28:34 +02:00
Tim Frison 6f69513dab Update Bake file-reference URI
Previous URL 404'd

Signed-off-by: Tim Frison <tim.frison@clio.com>
2023-09-07 16:03:19 -06:00
CrazyMax b67fef219a Merge pull request #324 from crazy-max/ci-concurrency
ci: missing concurrency checks
2023-09-05 11:09:54 +02:00
CrazyMax 51990f24d1 ci: missing concurrency checks
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-09-05 11:02:47 +02:00
CrazyMax 4af6ba2231 Merge pull request #322 from docker/dependabot/github_actions/actions/checkout-4
Bump actions/checkout from 3 to 4
2023-09-05 09:21:23 +02:00
dependabot[bot] 59de4866c5 Bump actions/checkout from 3 to 4
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-04 19:14:07 +00:00
CrazyMax 0f8c876baf Merge pull request #317 from crazy-max/rm-codeowners
chore: remove CODEOWNERS
2023-08-08 12:55:36 +02:00
CrazyMax 389ff6bdd5 chore: remove CODEOWNERS
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-08-08 12:52:23 +02:00
Tõnis Tiigi 2bcfca25d5 Merge pull request #316 from crazy-max/dependabot-update
chore: set increase as versioning strategy
2023-08-08 09:54:38 +03:00
CrazyMax 05b244eb76 chore: set increase as versioning strategy
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-08-08 06:01:53 +02:00
CrazyMax 35e9aff4f5 Merge pull request #306 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.6.0
Bump @docker/actions-toolkit from 0.5.0 to 0.6.0
2023-07-06 09:46:22 +02:00
CrazyMax 1586898b63 update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-07-05 12:37:27 +02:00
dependabot[bot] 7a273586e1 Bump @docker/actions-toolkit from 0.5.0 to 0.6.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.5.0 to 0.6.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.5.0...v0.6.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-28 19:30:46 +00:00
CrazyMax ef25336f42 Merge pull request #304 from docker/dependabot/npm_and_yarn/semver-7.5.2
Bump semver from 7.5.1 to 7.5.2
2023-06-26 15:15:32 +02:00
CrazyMax 0ab15faee8 update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-06-26 15:13:35 +02:00
dependabot[bot] 1ea1b02f9b Bump semver from 7.5.1 to 7.5.2
Bumps [semver](https://github.com/npm/node-semver) from 7.5.1 to 7.5.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.5.1...v7.5.2)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-25 12:32:27 +00:00
CrazyMax 818d4b7b91 Merge pull request #302 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.5.0
Bump @docker/actions-toolkit from 0.3.0 to 0.5.0
2023-06-13 12:27:30 +02:00
CrazyMax 948134af5e update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-06-13 12:24:59 +02:00
CrazyMax ef7eee951a enable comments to avoid breaking change with current impl
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-06-13 12:24:00 +02:00
dependabot[bot] 8ec80c3be6 Bump @docker/actions-toolkit from 0.3.0 to 0.5.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.3.0 to 0.5.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.3.0...v0.5.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-13 10:11:07 +00:00
CrazyMax 38650bbf6b Merge pull request #301 from crazy-max/dedup-labels
dedup and sort labels
2023-06-13 12:02:17 +02:00
CrazyMax ebbd9b4df7 update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-06-13 02:32:15 +02:00
CrazyMax 2dadb92b6b dedup and sort labels
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-06-13 02:31:02 +02:00
CrazyMax 2c0bd771b4 Merge pull request #296 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.3.0
Bump @docker/actions-toolkit from 0.1.0 to 0.3.0
2023-06-07 15:56:56 +02:00
CrazyMax b10b364e15 update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2023-06-07 15:52:25 +02:00
dependabot[bot] 40a1c6ff52 Bump @docker/actions-toolkit from 0.1.0 to 0.3.0
Bumps [@docker/actions-toolkit](https://github.com/docker/actions-toolkit) from 0.1.0 to 0.3.0.
- [Release notes](https://github.com/docker/actions-toolkit/releases)
- [Commits](https://github.com/docker/actions-toolkit/compare/v0.1.0...v0.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-07 13:50:58 +00:00
CrazyMax be8ea87c5a Merge pull request #294 from docker/dependabot/npm_and_yarn/csv-parse-5.4.0
Bump csv-parse from 5.3.8 to 5.4.0
2023-06-07 15:49:57 +02:00
CrazyMax dbbf01822b Merge pull request #287 from docker/dependabot/github_actions/docker/bake-action-3
Bump docker/bake-action from 2 to 3
2023-06-02 14:54:17 +02:00
dependabot[bot] 72b4ec2b60 Bump csv-parse from 5.3.8 to 5.4.0
Bumps [csv-parse](https://github.com/adaltas/node-csv/tree/HEAD/packages/csv-parse) from 5.3.8 to 5.4.0.
- [Changelog](https://github.com/adaltas/node-csv/blob/master/packages/csv-parse/CHANGELOG.md)
- [Commits](https://github.com/adaltas/node-csv/commits/csv-parse@5.4.0/packages/csv-parse)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-26 19:57:59 +00:00
dependabot[bot] 00e2c9d34e Bump docker/bake-action from 2 to 3
Bumps [docker/bake-action](https://github.com/docker/bake-action) from 2 to 3.
- [Release notes](https://github.com/docker/bake-action/releases)
- [Commits](https://github.com/docker/bake-action/compare/v2...v3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-18 19:57:31 +00:00
43 changed files with 10782 additions and 6701 deletions

No files matched your search

+11 -1
View File
@@ -1,2 +1,12 @@
/coverage /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/**
+4 -3
View File
@@ -1,18 +1,19 @@
{ {
"env": { "env": {
"node": true, "node": true,
"es2021": true, "es6": true,
"jest/globals": true "jest": true
}, },
"extends": [ "extends": [
"eslint:recommended", "eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended", "plugin:@typescript-eslint/recommended",
"plugin:jest/recommended", "plugin:jest/recommended",
"plugin:prettier/recommended" "plugin:prettier/recommended"
], ],
"parser": "@typescript-eslint/parser", "parser": "@typescript-eslint/parser",
"parserOptions": { "parserOptions": {
"ecmaVersion": "latest", "ecmaVersion": 2023,
"sourceType": "module" "sourceType": "module"
}, },
"plugins": [ "plugins": [
+2
View File
@@ -1,3 +1,5 @@
/.yarn/releases/** binary
/.yarn/plugins/** binary
/__tests__/fixtures/** -linguist-detectable /__tests__/fixtures/** -linguist-detectable
/dist/** linguist-generated=true /dist/** linguist-generated=true
/lib/** linguist-generated=true /lib/** linguist-generated=true
-1
View File
@@ -1 +0,0 @@
* @crazy-max
+3
View File
@@ -0,0 +1,3 @@
# Code of conduct
- [Moby community guidelines](https://github.com/moby/moby/blob/master/CONTRIBUTING.md#moby-community-guidelines)
+101
View File
@@ -0,0 +1,101 @@
# https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema
name: Bug Report
description: Report a bug
labels:
- status/triage
body:
- type: markdown
attributes:
value: |
Thank you for taking the time to report a bug!
If this is a security issue please report it to the [Docker Security team](mailto:security@docker.com).
- type: checkboxes
attributes:
label: Contributing guidelines
description: >
Make sure you've read the contributing guidelines before proceeding.
options:
- label: I've read the [contributing guidelines](https://github.com/docker/metadata-action/blob/master/.github/CONTRIBUTING.md) and wholeheartedly agree
required: true
- type: checkboxes
attributes:
label: "I've found a bug, and:"
description: |
Make sure that your request fulfills all of the following requirements.
If one requirement cannot be satisfied, explain in detail why.
options:
- label: The documentation does not mention anything about my problem
- label: There are no open or closed issues that are related to my problem
- type: textarea
attributes:
label: Description
description: >
Provide a brief description of the bug in 1-2 sentences.
validations:
required: true
- type: textarea
attributes:
label: Expected behaviour
description: >
Describe precisely what you'd expect to happen.
validations:
required: true
- type: textarea
attributes:
label: Actual behaviour
description: >
Describe precisely what is actually happening.
validations:
required: true
- type: input
attributes:
label: Repository URL
description: >
Enter the URL of the repository where you are experiencing the
issue. If your repository is private, provide a link to a minimal
repository that reproduces the issue.
- type: input
attributes:
label: Workflow run URL
description: >
Enter the URL of the GitHub Action workflow run if public (e.g.
`https://github.com/<user>/<repo>/actions/runs/<id>`)
- type: textarea
attributes:
label: YAML workflow
description: |
Provide the YAML of the workflow that's causing the issue.
Make sure to remove any sensitive information.
render: yaml
validations:
required: true
- type: textarea
attributes:
label: Workflow logs
description: >
[Attach](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/attaching-files)
the [log file of your workflow run](https://docs.github.com/en/actions/managing-workflow-runs/using-workflow-run-logs#downloading-logs)
and make sure to remove any sensitive information.
- type: textarea
attributes:
label: BuildKit logs
description: >
If applicable, provide the [BuildKit container logs](https://docs.docker.com/build/ci/github-actions/configure-builder/#buildkit-container-logs)
render: text
- type: textarea
attributes:
label: Additional info
description: |
Provide any additional information that could be useful.
-34
View File
@@ -1,34 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
---
### Behaviour
#### Steps to reproduce this issue
1.
2.
3.
#### Expected behaviour
> Tell us what should happen
#### Actual behaviour
> Tell us what happens instead
### Configuration
* Repository URL (if public):
* Build URL (if public):
```yml
# paste your YAML workflow file here and remove sensitive data
```
### Logs
> Download the [log file of your build](https://docs.github.com/en/actions/managing-workflow-runs/using-workflow-run-logs#downloading-logs)
> and [attach it](https://docs.github.com/en/github/managing-your-work-on-github/file-attachments-on-issues-and-pull-requests) to this issue.
+9
View File
@@ -0,0 +1,9 @@
# https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository#configuring-the-template-chooser
blank_issues_enabled: true
contact_links:
- name: Questions and Discussions
url: https://github.com/docker/metadata-action/discussions/new
about: Use Github Discussions to ask questions and/or open discussion topics.
- name: Documentation
url: https://docs.docker.com/build/ci/github-actions/
about: Read the documentation.
+15
View File
@@ -0,0 +1,15 @@
# https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema
name: Feature request
description: Missing functionality? Come tell us about it!
labels:
- kind/enhancement
- status/triage
body:
- type: textarea
id: description
attributes:
label: Description
description: What is the feature you want to see?
validations:
required: true
+12
View File
@@ -0,0 +1,12 @@
# Reporting security issues
The project maintainers take security seriously. If you discover a security
issue, please bring it to their attention right away!
**Please _DO NOT_ file a public issue**, instead send your report privately to
[security@docker.com](mailto:security@docker.com).
Security reports are greatly appreciated, and we will publicly thank you for it.
We also like to send gifts&mdash;if you'd like Docker swag, make sure to let
us know. We currently do not offer a paid security bounty program, but are not
ruling it out in the future.
-32
View File
@@ -1,32 +0,0 @@
# Support [![](https://isitmaintained.com/badge/resolution/docker/metadata-action.svg)](https://isitmaintained.com/project/docker/metadata-action)
## Reporting an issue
Please do a search in [open issues](https://github.com/docker/metadata-action/issues?utf8=%E2%9C%93&q=) to see if the
issue or feature request has already been filed.
If you find your issue already exists, make relevant comments and add your
[reaction](https://github.com/blog/2119-add-reactions-to-pull-requests-issues-and-comments). Use a reaction in place
of a "+1" comment.
:+1: - upvote
:-1: - downvote
If you cannot find an existing issue that describes your bug or feature, submit an issue using the guidelines below.
## Writing good bug reports and feature requests
File a single issue per problem and feature request.
* Do not enumerate multiple bugs or feature requests in the same issue.
* Do not add your issue as a comment to an existing issue unless it's for the identical input. Many issues look similar, but have different causes.
The more information you can provide, the more likely someone will be successful reproducing the issue and finding a fix.
You are now ready to [create a new issue](https://github.com/docker/metadata-action/issues/new/choose)!
## Closure policy
* Issues that don't have the information requested above (when applicable) will be closed immediately and the poster directed to the support guidelines.
* Issues that go a week without a response from original poster are subject to closure at our discretion.
+1
View File
@@ -11,6 +11,7 @@ updates:
directory: "/" directory: "/"
schedule: schedule:
interval: "daily" interval: "daily"
versioning-strategy: "increase"
allow: allow:
- dependency-type: "production" - dependency-type: "production"
labels: labels:
+291 -37
View File
@@ -1,5 +1,9 @@
name: ci name: ci
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on: on:
schedule: schedule:
- cron: '0 10 * * *' - cron: '0 10 * * *'
@@ -13,14 +17,39 @@ on:
env: env:
DOCKER_IMAGE: localhost:5000/name/app DOCKER_IMAGE: localhost:5000/name/app
BUILDX_VERSION: latest
jobs: jobs:
context:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
context:
- workflow
- git
steps:
-
name: Checkout
uses: actions/checkout@v6
-
name: Docker meta
uses: ./
with:
context: ${{ matrix.context }}
multi-images: multi-images:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- -
name: Checkout name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v6
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: ${{ env.BUILDX_VERSION }}
driver: docker
- -
name: Docker meta name: Docker meta
uses: ./ uses: ./
@@ -51,7 +80,13 @@ jobs:
steps: steps:
- -
name: Checkout name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v6
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: ${{ env.BUILDX_VERSION }}
driver: docker
- -
name: Docker meta name: Docker meta
uses: ./ uses: ./
@@ -81,7 +116,13 @@ jobs:
steps: steps:
- -
name: Checkout name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v6
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: ${{ env.BUILDX_VERSION }}
driver: docker
- -
name: Docker meta name: Docker meta
uses: ./ uses: ./
@@ -109,7 +150,13 @@ jobs:
steps: steps:
- -
name: Checkout name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v6
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: ${{ env.BUILDX_VERSION }}
driver: docker
- -
name: Docker meta name: Docker meta
uses: ./ uses: ./
@@ -134,7 +181,13 @@ jobs:
steps: steps:
- -
name: Checkout name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v6
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: ${{ env.BUILDX_VERSION }}
driver: docker
- -
name: Docker meta name: Docker meta
uses: ./ uses: ./
@@ -151,7 +204,13 @@ jobs:
steps: steps:
- -
name: Checkout name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v6
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: ${{ env.BUILDX_VERSION }}
driver: docker
- -
name: Docker meta name: Docker meta
uses: ./ uses: ./
@@ -161,12 +220,18 @@ jobs:
name=ghcr.io/name/app,enable=${{ github.event_name == 'pull_request' }} name=ghcr.io/name/app,enable=${{ github.event_name == 'pull_request' }}
name=ghcr.io/name/release,enable=${{ startsWith(github.ref, 'refs/tags/') }} name=ghcr.io/name/release,enable=${{ startsWith(github.ref, 'refs/tags/') }}
labels: custom-labels-annotations:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- -
name: Checkout name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v6
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: ${{ env.BUILDX_VERSION }}
driver: docker
- -
name: Docker meta name: Docker meta
uses: ./ uses: ./
@@ -179,13 +244,24 @@ jobs:
org.opencontainers.image.title=MyCustomTitle org.opencontainers.image.title=MyCustomTitle
org.opencontainers.image.description=this is a "good" example org.opencontainers.image.description=this is a "good" example
org.opencontainers.image.vendor=MyCompany org.opencontainers.image.vendor=MyCompany
annotations: |
maintainer=Foo
org.opencontainers.image.title=MyFooTitle
org.opencontainers.image.description=this is a "foo" example
org.opencontainers.image.vendor=MyFooCompany
global-exps: global-exps:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- -
name: Checkout name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v6
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: ${{ env.BUILDX_VERSION }}
driver: docker
- -
name: Docker meta name: Docker meta
uses: ./ uses: ./
@@ -193,6 +269,8 @@ jobs:
images: | images: |
${{ env.DOCKER_IMAGE }} ${{ env.DOCKER_IMAGE }}
ghcr.io/name/app ghcr.io/name/app
labels: |
org.opencontainers.image.created={{commit_date 'YYYY-MM-DDTHH:mm:ss.SSS[Z]'}}
tags: | tags: |
type=sha type=sha
type=raw,value=gexp-branch-{{branch}} type=raw,value=gexp-branch-{{branch}}
@@ -200,13 +278,20 @@ jobs:
type=raw,value=gexp-tag-{{tag}} type=raw,value=gexp-tag-{{tag}}
type=raw,value=gexp-baseref-{{base_ref}} type=raw,value=gexp-baseref-{{base_ref}}
type=raw,value=gexp-defbranch,enable={{is_default_branch}} type=raw,value=gexp-defbranch,enable={{is_default_branch}}
type=raw,value=gexp-notdefbranch,enable={{is_not_default_branch}}
json: json:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- -
name: Checkout name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v6
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: ${{ env.BUILDX_VERSION }}
driver: docker
- -
name: Docker meta name: Docker meta
id: meta id: meta
@@ -235,7 +320,13 @@ jobs:
steps: steps:
- -
name: Checkout name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v6
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: ${{ env.BUILDX_VERSION }}
driver-opts: network=host
- -
name: Docker meta name: Docker meta
id: docker_meta id: docker_meta
@@ -252,17 +343,9 @@ jobs:
type=semver,pattern=v{{major}}.{{minor}} type=semver,pattern=v{{major}}.{{minor}}
type=semver,pattern=v{{major}} type=semver,pattern=v{{major}}
type=sha type=sha
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
with:
driver-opts: network=host
- -
name: Build and push to local registry name: Build and push to local registry
uses: docker/build-push-action@v4 uses: docker/build-push-action@v6
with: with:
context: ./test context: ./test
file: ./test/Dockerfile file: ./test/Dockerfile
@@ -279,17 +362,18 @@ jobs:
name: Check manifest name: Check manifest
run: | run: |
docker buildx imagetools inspect ${{ env.DOCKER_IMAGE }}:${{ steps.docker_meta.outputs.version }} docker buildx imagetools inspect ${{ env.DOCKER_IMAGE }}:${{ steps.docker_meta.outputs.version }}
-
name: Dump context
if: always()
uses: crazy-max/ghaction-dump-context@v2
bake: bake:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- -
name: Checkout name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v6
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: ${{ env.BUILDX_VERSION }}
- -
name: Docker meta name: Docker meta
id: docker_meta id: docker_meta
@@ -307,19 +391,14 @@ jobs:
type=semver,pattern={{major}}.{{minor}} type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}} type=semver,pattern={{major}}
type=sha type=sha
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- -
name: Build name: Build
uses: docker/bake-action@v2 uses: docker/bake-action@v6
with: with:
files: | files: |
./test/docker-bake.hcl ./test/docker-bake.hcl
${{ steps.docker_meta.outputs.bake-file }} cwd://${{ steps.docker_meta.outputs.bake-file-tags }}
cwd://${{ steps.docker_meta.outputs.bake-file-labels }}
targets: | targets: |
release release
@@ -334,7 +413,13 @@ jobs:
steps: steps:
- -
name: Checkout name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v6
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: ${{ env.BUILDX_VERSION }}
driver: docker
- -
name: Docker meta name: Docker meta
id: meta id: meta
@@ -346,7 +431,7 @@ jobs:
sep-tags: ${{ matrix.sep }} sep-tags: ${{ matrix.sep }}
- -
name: Tags name: Tags
uses: actions/github-script@v6 uses: actions/github-script@v8
with: with:
script: | script: |
console.log(`${{ steps.meta.outputs.tags }}`); console.log(`${{ steps.meta.outputs.tags }}`);
@@ -356,7 +441,13 @@ jobs:
steps: steps:
- -
name: Checkout name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v6
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: ${{ env.BUILDX_VERSION }}
driver: docker
- -
name: Docker meta name: Docker meta
id: meta id: meta
@@ -367,9 +458,11 @@ jobs:
ghcr.io/name/app ghcr.io/name/app
labels: | labels: |
maintainer=CrazyMax maintainer=CrazyMax
annotations: |
maintainer=Foo
- -
name: Build name: Build
uses: docker/build-push-action@v4 uses: docker/build-push-action@v6
with: with:
context: ./test context: ./test
file: ./test/output.Dockerfile file: ./test/output.Dockerfile
@@ -377,4 +470,165 @@ jobs:
DOCKER_METADATA_OUTPUT_VERSION DOCKER_METADATA_OUTPUT_VERSION
DOCKER_METADATA_OUTPUT_TAGS DOCKER_METADATA_OUTPUT_TAGS
DOCKER_METADATA_OUTPUT_LABELS DOCKER_METADATA_OUTPUT_LABELS
DOCKER_METADATA_OUTPUT_ANNOTATIONS
DOCKER_METADATA_OUTPUT_JSON DOCKER_METADATA_OUTPUT_JSON
no-output-env:
runs-on: ubuntu-latest
env:
DOCKER_METADATA_SET_OUTPUT_ENV: false
steps:
-
name: Checkout
uses: actions/checkout@v6
-
name: Docker meta
id: meta
uses: ./
with:
images: |
${{ env.DOCKER_IMAGE }}
ghcr.io/name/app
labels: |
maintainer=CrazyMax
annotations: |
maintainer=Foo
-
name: No output environment variables set
shell: bash
run: |
[[ "$(printenv | grep "^DOCKER_METADATA_OUTPUT_" | wc -l)" -eq 0 ]] || exit 1
bake-annotations:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v6
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: ${{ env.BUILDX_VERSION }}
-
name: Docker meta
id: docker_meta
uses: ./
with:
images: |
${{ env.DOCKER_IMAGE }}
ghcr.io/name/app
tags: |
type=schedule
type=ref,event=branch
type=ref,event=tag
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=sha
env:
DOCKER_METADATA_ANNOTATIONS_LEVELS: manifest,index
-
name: Build
uses: docker/bake-action@v6
with:
files: |
./test/docker-bake.hcl
cwd://${{ steps.docker_meta.outputs.bake-file-tags }}
cwd://${{ steps.docker_meta.outputs.bake-file-annotations }}
targets: |
release
no-images:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v6
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: ${{ env.BUILDX_VERSION }}
driver: docker
-
name: Docker meta
uses: ./
with:
tags: |
type=schedule
type=ref,event=branch
type=ref,event=tag
type=ref,event=pr
type=sha
-
name: Print envs
run: env|sort
bake-path-context:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v6
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: latest
-
name: Docker meta
id: docker_meta
uses: ./
-
name: Build
uses: docker/bake-action@v6
with:
source: .
files: |
./test/docker-bake.hcl
${{ steps.docker_meta.outputs.bake-file-tags }}
${{ steps.docker_meta.outputs.bake-file-labels }}
targets: |
release
sha-short:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
short-length:
- ''
- 16
steps:
-
name: Checkout
uses: actions/checkout@v6
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: ${{ env.BUILDX_VERSION }}
driver: docker
-
name: Docker meta
uses: ./
with:
images: |
${{ env.DOCKER_IMAGE }}
ghcr.io/name/app
tags: |
type=sha
env:
DOCKER_METADATA_SHORT_SHA_LENGTH: ${{ matrix.short-length }}
dump:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v6
-
name: Dump context
uses: crazy-max/ghaction-dump-context@v2
+17
View File
@@ -0,0 +1,17 @@
name: pr-assign-author
permissions:
contents: read
on:
pull_request_target:
types:
- opened
- reopened
jobs:
run:
uses: crazy-max/.github/.github/workflows/pr-assign-author.yml@1b673f36fad86812f538c1df9794904038a23cbf
permissions:
contents: read
pull-requests: write
+21
View File
@@ -0,0 +1,21 @@
name: publish
on:
release:
types:
- published
jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
packages: write
steps:
-
name: Checkout
uses: actions/checkout@v6
-
name: Publish
uses: actions/publish-immutable-action@v0.0.4
+10 -4
View File
@@ -1,5 +1,9 @@
name: test name: test
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on: on:
push: push:
branches: branches:
@@ -13,14 +17,16 @@ jobs:
steps: steps:
- -
name: Checkout name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v6
- -
name: Test name: Test
uses: docker/bake-action@v2 uses: docker/bake-action@v6
with: with:
source: .
targets: test targets: test
- -
name: Upload coverage name: Upload coverage
uses: codecov/codecov-action@v3 uses: codecov/codecov-action@v5
with: with:
file: ./coverage/clover.xml files: ./coverage/clover.xml
token: ${{ secrets.CODECOV_TOKEN }}
+12 -10
View File
@@ -1,5 +1,9 @@
name: validate name: validate
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on: on:
push: push:
branches: branches:
@@ -11,16 +15,17 @@ jobs:
prepare: prepare:
runs-on: ubuntu-latest runs-on: ubuntu-latest
outputs: outputs:
targets: ${{ steps.targets.outputs.matrix }} targets: ${{ steps.generate.outputs.targets }}
steps: steps:
- -
name: Checkout name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v6
- -
name: Targets matrix name: List targets
id: targets id: generate
run: | uses: docker/bake-action/subaction/list-targets@v6
echo "matrix=$(docker buildx bake validate --print | jq -cr '.group.validate.targets')" >> $GITHUB_OUTPUT with:
target: validate
validate: validate:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -31,11 +36,8 @@ jobs:
matrix: matrix:
target: ${{ fromJson(needs.prepare.outputs.targets) }} target: ${{ fromJson(needs.prepare.outputs.targets) }}
steps: steps:
-
name: Checkout
uses: actions/checkout@v3
- -
name: Validate name: Validate
uses: docker/bake-action@v2 uses: docker/bake-action@v6
with: with:
targets: ${{ matrix.target }} targets: ${{ matrix.target }}
+14 -57
View File
@@ -1,12 +1,5 @@
/.dev # https://raw.githubusercontent.com/github/gitignore/main/Node.gitignore
node_modules/
lib
# Jetbrains
/.idea
/*.iml
# Rest of the file pulled from https://github.com/github/gitignore/blob/master/Node.gitignore
# Logs # Logs
logs logs
*.log *.log
@@ -14,6 +7,7 @@ npm-debug.log*
yarn-debug.log* yarn-debug.log*
yarn-error.log* yarn-error.log*
lerna-debug.log* lerna-debug.log*
.pnpm-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html) # Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
@@ -24,34 +18,14 @@ pids
*.seed *.seed
*.pid.lock *.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul # Coverage directory used by tools like istanbul
coverage coverage
*.lcov *.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 # Dependency directories
node_modules/
jspm_packages/ jspm_packages/
# TypeScript v1 declaration files
typings/
# TypeScript cache # TypeScript cache
*.tsbuildinfo *.tsbuildinfo
@@ -61,36 +35,19 @@ typings/
# Optional eslint cache # Optional eslint cache
.eslintcache .eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file # Yarn Integrity file
.yarn-integrity .yarn-integrity
# dotenv environment variables file # dotenv environment variable files
.env .env
.env.test .env.development.local
.env.test.local
.env.production.local
.env.local
# parcel-bundler cache (https://parceljs.org/) # yarn v2
.cache .yarn/cache
.yarn/unplugged
# next.js build output .yarn/build-state.yml
.next .yarn/install-state.gz
.pnp.*
# nuxt.js build output
.nuxt
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
+6
View File
@@ -0,0 +1,6 @@
# Dependency directories
node_modules/
jspm_packages/
# yarn v2
.yarn/
+17
View File
@@ -0,0 +1,17 @@
# https://yarnpkg.com/configuration/yarnrc
compressionLevel: mixed
enableGlobalCache: false
enableHardenedMode: true
logFilters:
- code: YN0013
level: discard
- code: YN0019
level: discard
- code: YN0076
level: discard
- code: YN0086
level: discard
nodeLinker: node-modules
+236 -75
View File
@@ -44,10 +44,13 @@ ___
* [`{{sha}}`](#sha) * [`{{sha}}`](#sha)
* [`{{base_ref}}`](#base_ref) * [`{{base_ref}}`](#base_ref)
* [`{{is_default_branch}}`](#is_default_branch) * [`{{is_default_branch}}`](#is_default_branch)
* [`{{is_not_default_branch}}`](#is_not_default_branch)
* [`{{date '<format>' tz='<timezone>'}}`](#date-format-tztimezone) * [`{{date '<format>' tz='<timezone>'}}`](#date-format-tztimezone)
* [`{{commit_date '<format>' tz='<timezone>'}}`](#commit_date-format-tztimezone)
* [Major version zero](#major-version-zero) * [Major version zero](#major-version-zero)
* [JSON output object](#json-output-object) * [JSON output object](#json-output-object)
* [Overwrite labels](#overwrite-labels) * [Overwrite labels and annotations](#overwrite-labels-and-annotations)
* [Annotations](#annotations)
* [Contributing](#contributing) * [Contributing](#contributing)
## Usage ## Usage
@@ -74,23 +77,23 @@ jobs:
steps: steps:
- -
name: Checkout name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v5
- -
name: Docker meta name: Docker meta
id: meta id: meta
uses: docker/metadata-action@v4 uses: docker/metadata-action@v5
with: with:
images: name/app images: name/app
- -
name: Login to DockerHub name: Login to DockerHub
if: github.event_name != 'pull_request' if: github.event_name != 'pull_request'
uses: docker/login-action@v2 uses: docker/login-action@v3
with: with:
username: ${{ secrets.DOCKERHUB_USERNAME }} username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }} password: ${{ secrets.DOCKERHUB_TOKEN }}
- -
name: Build and push name: Build and push
uses: docker/build-push-action@v4 uses: docker/build-push-action@v6
with: with:
context: . context: .
push: ${{ github.event_name != 'pull_request' }} push: ${{ github.event_name != 'pull_request' }}
@@ -128,11 +131,11 @@ jobs:
steps: steps:
- -
name: Checkout name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v5
- -
name: Docker meta name: Docker meta
id: meta id: meta
uses: docker/metadata-action@v4 uses: docker/metadata-action@v5
with: with:
images: | images: |
name/app name/app
@@ -144,13 +147,13 @@ jobs:
- -
name: Login to DockerHub name: Login to DockerHub
if: github.event_name != 'pull_request' if: github.event_name != 'pull_request'
uses: docker/login-action@v2 uses: docker/login-action@v3
with: with:
username: ${{ secrets.DOCKERHUB_USERNAME }} username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }} password: ${{ secrets.DOCKERHUB_TOKEN }}
- -
name: Build and push name: Build and push
uses: docker/build-push-action@v4 uses: docker/build-push-action@v6
with: with:
context: . context: .
push: ${{ github.event_name != 'pull_request' }} push: ${{ github.event_name != 'pull_request' }}
@@ -204,13 +207,10 @@ jobs:
docker: docker:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
-
name: Checkout
uses: actions/checkout@v3
- -
name: Docker meta name: Docker meta
id: meta id: meta
uses: docker/metadata-action@v4 uses: docker/metadata-action@v5
with: with:
images: | images: |
name/app name/app
@@ -222,16 +222,16 @@ jobs:
type=sha type=sha
- -
name: Build name: Build
uses: docker/bake-action@v2 uses: docker/bake-action@v6
with: with:
files: | files: |
./docker-bake.hcl ./docker-bake.hcl
${{ steps.meta.outputs.bake-file }} cwd://${{ steps.meta.outputs.bake-file }}
targets: build targets: build
``` ```
Content of `${{ steps.meta.outputs.bake-file }}` file will look like this with Content of `${{ steps.meta.outputs.bake-file }}` file, combining tags and
`refs/tags/v1.2.3` ref: labels, will look like this with `refs/tags/v1.2.3` ref:
```json ```json
{ {
@@ -262,12 +262,29 @@ Content of `${{ steps.meta.outputs.bake-file }}` file will look like this with
} }
``` ```
You can also use the `bake-file-tags` and `bake-file-labels` outputs if you
just want to use tags and/or labels respectively. The following example is
similar to the previous one:
```yaml
-
name: Build
uses: docker/bake-action@v6
with:
files: |
./docker-bake.hcl
cwd://${{ steps.meta.outputs.bake-file-tags }}
cwd://${{ steps.meta.outputs.bake-file-labels }}
targets: build
```
## Customizing ## Customizing
### inputs ### inputs
Following inputs can be used as `step.with` keys The following inputs can be used as `step.with` keys:
> [!NOTE]
> `List` type is a newline-delimited string > `List` type is a newline-delimited string
> ```yaml > ```yaml
> labels: | > labels: |
@@ -276,41 +293,50 @@ Following inputs can be used as `step.with` keys
> org.opencontainers.image.vendor=MyCompany > org.opencontainers.image.vendor=MyCompany
> ``` > ```
| Name | Type | Description | | Name | Type | Description |
|---------------------|--------|-------------------------------------------------------------------------------| |-------------------|--------|------------------------------------------------------------------------------|
| `context` | String | Where to get context data. Allowed options are: `workflow` (default), `git`. | | `context` | String | Where to get context data. Allowed options are: `workflow` (default), `git`. |
| `images` | List | List of Docker images to use as base name for tags | | `images` | List | List of Docker images to use as base name for tags |
| `tags` | List | List of [tags](#tags-input) as key-value pair attributes | | `tags` | List | List of [tags](#tags-input) as key-value pair attributes |
| `flavor` | List | [Flavor](#flavor-input) to apply | | `flavor` | List | [Flavor](#flavor-input) to apply |
| `labels` | List | List of custom labels | | `labels` | List | List of custom labels |
| `sep-tags` | String | Separator to use for tags output (default `\n`) | | `annotations` | List | List of custom annotations |
| `sep-labels` | String | Separator to use for labels output (default `\n`) | | `sep-tags` | String | Separator to use for tags output (default `\n`) |
| `bake-target` | String | Bake target name (default `docker-metadata-action`) | | `sep-labels` | String | Separator to use for labels output (default `\n`) |
| `sep-annotations` | String | Separator to use for annotations output (default `\n`) |
| `bake-target` | String | Bake target name (default `docker-metadata-action`) |
### outputs ### outputs
Following outputs are available The following outputs are available:
| Name | Type | Description | | Name | Type | Description |
|---------------|---------|--------------------------------------------------------------------------------------------| |-------------------------|--------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `version` | String | Docker image version | | `version` | String | Docker image version |
| `tags` | String | Docker tags | | `tags` | String | Docker tags |
| `labels` | String | Docker labels | | `tag-names` | String | Docker tag names without image base name |
| `json` | String | JSON output of tags and labels | | `labels` | String | Docker labels |
| `bake-file` | File | [Bake file definition](https://docs.docker.com/build/customize/bake/file-definition/) path | | `annotations` | String | [Annotations](https://github.com/moby/buildkit/blob/master/docs/annotations.md) |
| `json` | String | JSON output of tags and labels |
| `bake-file-tags` | File | [Bake file definition](https://docs.docker.com/build/bake/reference/) path with tags |
| `bake-file-labels` | File | [Bake file definition](https://docs.docker.com/build/bake/reference/) path with labels |
| `bake-file-annotations` | File | [Bake file definition](https://docs.docker.com/build/bake/reference/) path with [annotations](https://github.com/moby/buildkit/blob/master/docs/annotations.md) |
Alternatively, each output is also exported as an environment variable: Alternatively, each output is also exported as an environment variable when `DOCKER_METADATA_SET_OUTPUT_ENV` is `true`:
* `DOCKER_METADATA_OUTPUT_VERSION` * `DOCKER_METADATA_OUTPUT_VERSION`
* `DOCKER_METADATA_OUTPUT_TAGS` * `DOCKER_METADATA_OUTPUT_TAGS`
* `DOCKER_METADATA_OUTPUT_LABELS` * `DOCKER_METADATA_OUTPUT_LABELS`
* `DOCKER_METADATA_OUTPUT_ANNOTATIONS`
* `DOCKER_METADATA_OUTPUT_JSON` * `DOCKER_METADATA_OUTPUT_JSON`
* `DOCKER_METADATA_OUTPUT_BAKE_FILE` * `DOCKER_METADATA_OUTPUT_BAKE_FILE_TAGS`
* `DOCKER_METADATA_OUTPUT_BAKE_FILE_LABELS`
* `DOCKER_METADATA_OUTPUT_BAKE_FILE_ANNOTATIONS`
So it can be used with our [Docker Build Push action](https://github.com/docker/build-push-action/): So it can be used with our [Docker Build Push action](https://github.com/docker/build-push-action/):
```yaml ```yaml
- uses: docker/build-push-action@v4 - uses: docker/build-push-action@v6
with: with:
build-args: | build-args: |
DOCKER_METADATA_OUTPUT_JSON DOCKER_METADATA_OUTPUT_JSON
@@ -318,9 +344,12 @@ So it can be used with our [Docker Build Push action](https://github.com/docker/
### environment variables ### environment variables
| Name | Type | Description | | Name | Type | Description |
|-------------------------------|------|------------------------------------------------------------------------------------------------------------| |--------------------------------------|--------|----------------------------------------------------------------------------------------------------------------------------------------------|
| `DOCKER_METADATA_PR_HEAD_SHA` | Bool | If `true`, set associated head SHA instead of commit SHA that triggered the workflow on pull request event | | `DOCKER_METADATA_PR_HEAD_SHA` | Bool | If `true`, set associated head SHA instead of commit SHA that triggered the workflow on pull request event |
| `DOCKER_METADATA_SHORT_SHA_LENGTH` | Number | Specifies the length of the [short commit SHA](#typesha) to ensure uniqueness. Default is `7`, but can be increased for larger repositories. |
| `DOCKER_METADATA_ANNOTATIONS_LEVELS` | String | Comma separated list of annotations levels to set for annotations output separated (default `manifest`) |
| `DOCKER_METADATA_SET_OUTPUT_ENV` | Bool | If `true`, sets each output as an environment variable (default `true`) |
## `context` input ## `context` input
@@ -359,6 +388,8 @@ images: |
* `name=<string>` image base name * `name=<string>` image base name
* `enable=<true|false>` enable this entry (default `true`) * `enable=<true|false>` enable this entry (default `true`)
If `images` is empty, tags will be generated without base name.
## `flavor` input ## `flavor` input
`flavor` defines a global behavior for [`tags`](#tags-input): `flavor` defines a global behavior for [`tags`](#tags-input):
@@ -433,7 +464,7 @@ tags: |
# handlebars # handlebars
type=schedule,pattern={{date 'YYYYMMDD'}} type=schedule,pattern={{date 'YYYYMMDD'}}
# handlebars with timezone # handlebars with timezone
type=schedule,pattern={{date 'YYYYMMDD-hhmmss' tz='Asia/Tokyo'}} type=schedule,pattern={{date 'YYYYMMDD-HHmmss' tz='Asia/Tokyo'}}
``` ```
Will be used on [schedule event](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule). Will be used on [schedule event](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule).
@@ -465,6 +496,8 @@ tags: |
type=semver,pattern={{version}} type=semver,pattern={{version}}
# use custom value instead of git tag # use custom value instead of git tag
type=semver,pattern={{version}},value=v1.0.0 type=semver,pattern={{version}},value=v1.0.0
# use custom value and match part of it
type=semver,pattern={{version}},value=p1/v1.0.0,match=v(\d.\d.\d)$
``` ```
Will be used on a [push tag event](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#push) Will be used on a [push tag event](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#push)
@@ -480,18 +513,21 @@ with the following expressions:
* `minor` ; minor version identifier * `minor` ; minor version identifier
* `patch` ; patch version identifier * `patch` ; patch version identifier
| Git tag | Pattern | Output | | Git tag | Pattern | Match | Output |
|--------------------|----------------------------------------------------------|----------------------| |------------------|-----------------------|----------------|------------------|
| `v1.2.3` | `{{raw}}` | `v1.2.3` | | `v1.2.3` | `{{raw}}` | | `v1.2.3` |
| `v1.2.3` | `{{version}}` | `1.2.3` | | `v1.2.3` | `{{version}}` | | `1.2.3` |
| `v1.2.3` | `{{major}}.{{minor}}` | `1.2` | | `v1.2.3` | `{{major}}.{{minor}}` | | `1.2` |
| `v1.2.3` | `v{{major}}` | `v1` | | `v1.2.3` | `v{{major}}` | | `v1` |
| `v1.2.3` | `{{minor}}` | `2` | | `v1.2.3` | `{{minor}}` | | `2` |
| `v1.2.3` | `{{patch}}` | `3` | | `v1.2.3` | `{{patch}}` | | `3` |
| `v2.0.8-beta.67` | `{{raw}}` | `v2.0.8-beta.67` | | `p1/v1.2.3` | `{{version}}` | `v(\d.\d.\d)$` | `1.2.3` |
| `v2.0.8-beta.67` | `{{version}}` | `2.0.8-beta.67` | | `v2.0.8-beta.67` | `{{raw}}` | | `v2.0.8-beta.67` |
| `v2.0.8-beta.67` | `{{major}}.{{minor}}` | `2.0.8-beta.67`* | | `v2.0.8-beta.67` | `{{version}}` | | `2.0.8-beta.67` |
| `v2.0.8-beta.67` | `{{major}}` | | `2.0.8-beta.67`* |
| `v2.0.8-beta.67` | `{{major}}.{{minor}}` | | `2.0.8-beta.67`* |
> [!IMPORTANT]
> *Pre-release (rc, beta, alpha) will only extend `{{version}}` (or `{{raw}}` > *Pre-release (rc, beta, alpha) will only extend `{{version}}` (or `{{raw}}`
> if specified) as tag because they are updated frequently, and contain many > if specified) as tag because they are updated frequently, and contain many
> breaking changes that are (by the author's design) not yet fit for public > breaking changes that are (by the author's design) not yet fit for public
@@ -501,7 +537,7 @@ Extended attributes and default values:
```yaml ```yaml
tags: | tags: |
type=semver,enable=true,priority=900,prefix=,suffix=,pattern=,value= type=semver,enable=true,priority=900,prefix=,suffix=,pattern=,value=,match=
``` ```
### `type=pep440` ### `type=pep440`
@@ -512,6 +548,8 @@ tags: |
type=pep440,pattern={{version}} type=pep440,pattern={{version}}
# use custom value instead of git tag # use custom value instead of git tag
type=pep440,pattern={{version}},value=1.0.0 type=pep440,pattern={{version}},value=1.0.0
# use custom value and match part of it
type=pep440,pattern={{version}},value=p1/v1.0.0,match=v(\d.\d.\d)$
``` ```
Will be used on a [push tag event](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#push) Will be used on a [push tag event](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#push)
@@ -527,20 +565,22 @@ with the following expressions:
* `minor` ; minor version identifier * `minor` ; minor version identifier
* `patch` ; patch version identifier * `patch` ; patch version identifier
| Git tag | Pattern | Output | | Git tag | Pattern | Match | Output |
|--------------------|----------------------------------------------------------|----------------------| |--------------|-----------------------|----------------|----------------|
| `1.2.3` | `{{raw}}` | `1.2.3` | | `1.2.3` | `{{raw}}` | | `1.2.3` |
| `1.2.3` | `{{version}}` | `1.2.3` | | `1.2.3` | `{{version}}` | | `1.2.3` |
| `v1.2.3` | `{{version}}` | `1.2.3` | | `v1.2.3` | `{{version}}` | | `1.2.3` |
| `1.2.3` | `{{major}}.{{minor}}` | `1.2` | | `1.2.3` | `{{major}}.{{minor}}` | | `1.2` |
| `1.2.3` | `v{{major}}` | `v1` | | `1.2.3` | `v{{major}}` | | `v1` |
| `v1.2.3rc2` | `{{raw}}` | `v1.2.3rc2` | | `v1.2.3rc2` | `{{raw}}` | | `v1.2.3rc2` |
| `1.2.3rc2` | `{{version}}` | `1.2.3rc2` | | `1.2.3rc2` | `{{version}}` | | `1.2.3rc2` |
| `1.2.3rc2` | `{{major}}.{{minor}}` | `1.2.3rc2`* | | `p1/v1.2.3` | `{{version}}` | `v(\d.\d.\d)$` | `1.2.3` |
| `1.2.3post1` | `{{major}}.{{minor}}` | `1.2.3.post1`* | | `1.2.3rc2` | `{{major}}.{{minor}}` | | `1.2.3rc2`* |
| `1.2.3beta2` | `{{major}}.{{minor}}` | `1.2.3b2`* | | `1.2.3post1` | `{{major}}.{{minor}}` | | `1.2.3.post1`* |
| `1.0dev4` | `{{major}}.{{minor}}` | `1.0.dev4`* | | `1.2.3beta2` | `{{major}}.{{minor}}` | | `1.2.3b2`* |
| `1.0dev4` | `{{major}}.{{minor}}` | | `1.0.dev4`* |
> [!IMPORTANT]
> *dev/pre/post release will only extend `{{version}}` (or `{{raw}}` if > *dev/pre/post release will only extend `{{version}}` (or `{{raw}}` if
> specified) as tag because they are updated frequently, and contain many > specified) as tag because they are updated frequently, and contain many
> breaking changes that are (by the author's design) not yet fit for public > breaking changes that are (by the author's design) not yet fit for public
@@ -677,7 +717,26 @@ tags: |
type=sha,format=long type=sha,format=long
``` ```
Output Git short commit (or long if specified) as Docker tag like `sha-ad132f5`. Output Git short commit (or long if specified) as Docker tag like
`sha-860c190`.
By default, the length of the short commit SHA is `7` characters. You can
increase this length for larger repositories by setting the
[`DOCKER_METADATA_SHORT_SHA_LENGTH` environment variable](#environment-variables):
```yaml
-
name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: |
name/app
tags: |
type=sha
env:
DOCKER_METADATA_SHORT_SHA_LENGTH: 12
```
Extended attributes and default values: Extended attributes and default values:
@@ -711,6 +770,7 @@ generated by default (`auto` mode) for:
* [`type=ref,event=tag`](#typeref) * [`type=ref,event=tag`](#typeref)
* [`type=semver,pattern=...`](#typesemver) * [`type=semver,pattern=...`](#typesemver)
* [`type=pep440,pattern=...`](#typepep440)
* [`type=match,pattern=...`](#typematch) * [`type=match,pattern=...`](#typematch)
For conditionally tagging with latest for a specific branch name, e.g. if your For conditionally tagging with latest for a specific branch name, e.g. if your
@@ -752,7 +812,8 @@ Each tags `type` attribute has a default priority:
### Global expressions ### Global expressions
The following [Handlebars' template](https://handlebarsjs.com/guide/) expressions The following [Handlebars' template](https://handlebarsjs.com/guide/) expressions
for `prefix`, `suffix`, `value` and `enable` attributes are available: for `prefix`, `suffix`, `value` and `enable` attributes of `tags` input are
available:
```yaml ```yaml
tags: | tags: |
@@ -762,6 +823,13 @@ tags: |
type=raw,value=mytag-{{branch}}-{{sha}} type=raw,value=mytag-{{branch}}-{{sha}}
``` ```
They can also be applied to `labels` and `annotations` inputs:
```yaml
labels: |
org.opencontainers.image.created={{commit_date 'YYYY-MM-DDTHH:mm:ss.SSS[Z]'}}
```
#### `{{branch}}` #### `{{branch}}`
Returns the branch name that triggered the workflow run. Will be empty if not Returns the branch name that triggered the workflow run. Will be empty if not
@@ -802,6 +870,7 @@ workflow run. Will be empty for a branch reference:
| `push` | `refs/heads/my/branch` | | | `push` | `refs/heads/my/branch` | |
| `push tag`* | `refs/tags/v1.2.3` | `master` | | `push tag`* | `refs/tags/v1.2.3` | `master` |
> [!IMPORTANT]
> *`base_ref` is available in the push payload but doesn't always seem to > *`base_ref` is available in the push payload but doesn't always seem to
> return the expected branch when the push tag event occurs. It's also > return the expected branch when the push tag event occurs. It's also
> [not documented in GitHub docs](https://docs.github.com/en/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#push). > [not documented in GitHub docs](https://docs.github.com/en/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#push).
@@ -813,6 +882,11 @@ workflow run. Will be empty for a branch reference:
Returns `true` if the branch that triggered the workflow run is the default Returns `true` if the branch that triggered the workflow run is the default
one, otherwise `false`. one, otherwise `false`.
#### `{{is_not_default_branch}}`
Returns `true` if the branch that triggered the workflow run is not the default
one, otherwise `false`.
#### `{{date '<format>' tz='<timezone>'}}` #### `{{date '<format>' tz='<timezone>'}}`
Returns the current date rendered by its [moment format](https://momentjs.com/docs/#/displaying/format/). Returns the current date rendered by its [moment format](https://momentjs.com/docs/#/displaying/format/).
@@ -824,6 +898,20 @@ Default `tz` is UTC.
| `{{date 'dddd, MMMM Do YYYY, h:mm:ss a'}}` | `Friday, January 10th 2020, 3:25:50 pm` | | `{{date 'dddd, MMMM Do YYYY, h:mm:ss a'}}` | `Friday, January 10th 2020, 3:25:50 pm` |
| `{{date 'YYYYMMDD-HHmmss' tz='Asia/Tokyo'}}` | `20200110-093000` | | `{{date 'YYYYMMDD-HHmmss' tz='Asia/Tokyo'}}` | `20200110-093000` |
#### `{{commit_date '<format>' tz='<timezone>'}}`
Returns the date when the current git commit is committed, rendered by its
[moment format](https://momentjs.com/docs/#/displaying/format/). It falls back
to the current date if the commit date is not available.
Default `tz` is UTC.
| Expression | Output example |
|-----------------------------------------------------|-----------------------------------------|
| `{{commit_date 'YYYYMMDD'}}` | `20200110` |
| `{{commit_date 'dddd, MMMM Do YYYY, h:mm:ss a'}}` | `Friday, January 10th 2020, 3:25:50 pm` |
| `{{commit_date 'YYYYMMDD-HHmmss' tz='Asia/Tokyo'}}` | `20200110-093000` |
### Major version zero ### Major version zero
Major version zero (`0.y.z`) is for initial development and **may** change at Major version zero (`0.y.z`) is for initial development and **may** change at
@@ -851,13 +939,13 @@ that you can reuse them further in your workflow using the [`fromJSON` function]
```yaml ```yaml
- -
name: Docker meta name: Docker meta
uses: docker/metadata-action@v4 uses: docker/metadata-action@v5
id: meta id: meta
with: with:
images: name/app images: name/app
- -
name: Build and push name: Build and push
uses: docker/build-push-action@v4 uses: docker/build-push-action@v6
with: with:
tags: ${{ steps.meta.outputs.tags }} tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }} labels: ${{ steps.meta.outputs.labels }}
@@ -867,16 +955,17 @@ that you can reuse them further in your workflow using the [`fromJSON` function]
REVISION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }} REVISION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }}
``` ```
### Overwrite labels ### Overwrite labels and annotations
If some [OCI Image Format Specification](https://github.com/opencontainers/image-spec/blob/master/annotations.md) If some [OCI Image Format Specification](https://github.com/opencontainers/image-spec/blob/master/annotations.md)
labels generated are not suitable, you can overwrite them like this: generated are not suitable as labels/annotations, you can overwrite them like
this:
```yaml ```yaml
- -
name: Docker meta name: Docker meta
id: meta id: meta
uses: docker/metadata-action@v4 uses: docker/metadata-action@v5
with: with:
images: name/app images: name/app
labels: | labels: |
@@ -886,6 +975,78 @@ labels generated are not suitable, you can overwrite them like this:
org.opencontainers.image.vendor=MyCompany org.opencontainers.image.vendor=MyCompany
``` ```
### Annotations
Since Buildx 0.12, it is possible to set annotations to your image through the
`--annotation` flag.
With the [`build-push-action`](https://github.com/docker/build-push-action/),
you can set the `annotations` input with the value of the `annotations` output
of the `metadata-action`:
```yaml
-
name: Docker meta
uses: docker/metadata-action@v5
with:
images: name/app
-
name: Build and push
uses: docker/build-push-action@v6
with:
tags: ${{ steps.meta.outputs.tags }}
annotations: ${{ steps.meta.outputs.annotations }}
```
The same can be done with the [`bake-action`](https://github.com/docker/bake-action/):
```yaml
-
name: Docker meta
uses: docker/metadata-action@v5
with:
images: name/app
-
name: Build
uses: docker/bake-action@v6
with:
files: |
./docker-bake.hcl
cwd://${{ steps.meta.outputs.bake-file-tags }}
cwd://${{ steps.meta.outputs.bake-file-annotations }}
targets: build
```
Note that annotations can be attached at many different levels within a manifest.
By default, the generated annotations will be attached to image manifests,
but different registries may expect annotations at different places;
a common practice is to read annotations at _image indexes_ if present,
which are often used by multi-arch builds to index platform-specific images.
If you want to specify level(s) for your annotations, you can use the
[`DOCKER_METADATA_ANNOTATIONS_LEVELS` environment variable](#environment-variables)
with a comma separated list of all levels the annotations should be attached to (defaults to `manifest`).
The following configuration demonstrates the ability to attach annotations to both image manifests and image indexes,
though your registry may only need annotations at the index level. (That is, `index` alone may be enough.)
Please consult the documentation of your registry.
```yaml
-
name: Docker meta
uses: docker/metadata-action@v5
with:
images: name/app
env:
DOCKER_METADATA_ANNOTATIONS_LEVELS: manifest,index
-
name: Build and push
uses: docker/build-push-action@v6
with:
tags: ${{ steps.meta.outputs.tags }}
annotations: ${{ steps.meta.outputs.annotations }}
```
More information about annotations in the [BuildKit documentation](https://github.com/moby/buildkit/blob/master/docs/annotations.md).
## Contributing ## Contributing
Want to contribute? Awesome! You can find information about contributing to Want to contribute? Awesome! You can find information about contributing to
-300
View File
@@ -1,300 +0,0 @@
# Upgrade notes
## v2 to v3
* Repository has been moved to docker org. Replace `crazy-max/ghaction-docker-meta@v2`
with `docker/metadata-action@v4`
* The default bake target has been changed: `ghaction-docker-meta` > `docker-metadata-action`
## v1 to v2
* [inputs](#inputs)
* [`tag-sha`](#tag-sha)
* [`tag-edge` / `tag-edge-branch`](#tag-edge--tag-edge-branch)
* [`tag-semver`](#tag-semver)
* [`tag-match` / `tag-match-group`](#tag-match--tag-match-group)
* [`tag-latest`](#tag-latest)
* [`tag-schedule`](#tag-schedule)
* [`tag-custom` / `tag-custom-only`](#tag-custom--tag-custom-only)
* [`label-custom`](#label-custom)
* [Basic workflow](#basic-workflow)
* [Semver workflow](#semver-workflow)
### inputs
| New | Unchanged | Removed |
|------------|-----------------|--------------------|
| `tags` | `images` | `tag-sha` |
| `flavor` | `sep-tags` | `tag-edge` |
| `labels` | `sep-labels` | `tag-edge-branch` |
| | | `tag-semver` |
| | | `tag-match` |
| | | `tag-match-group` |
| | | `tag-latest` |
| | | `tag-schedule` |
| | | `tag-custom` |
| | | `tag-custom-only` |
| | | `label-custom` |
#### `tag-sha`
```yaml
tags: |
type=sha
```
#### `tag-edge` / `tag-edge-branch`
```yaml
tags: |
# default branch
type=edge
# specify branch
type=edge,branch=main
```
#### `tag-semver`
```yaml
tags: |
type=semver,pattern={{version}}
```
#### `tag-match` / `tag-match-group`
```yaml
tags: |
type=match,pattern=v(.*),group=1
```
#### `tag-latest`
`tag-latest` is now handled through the [`flavor` input](README.md#flavor-input):
```yaml
flavor: |
latest=auto
```
See also the notes about ["latest tag" behavior](README.md#latest-tag)
#### `tag-schedule`
```yaml
tags: |
# default tag (nightly)
type=schedule
# specific pattern
type=schedule,pattern={{date 'YYYYMMDD'}}
```
#### `tag-custom` / `tag-custom-only`
```yaml
tags: |
type=raw,value=foo
type=raw,value=bar
# or
type=raw,foo
type=raw,bar
# or
foo
bar
```
#### `label-custom`
Same behavior for `labels`:
```yaml
labels: |
maintainer=CrazyMax
```
### Basic workflow
```yaml
# v1
name: ci
on:
push:
branches:
- 'master'
tags:
- 'v*'
pull_request:
branches:
- 'master'
jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Docker meta
id: meta
uses: docker/metadata-action@v1
with:
images: name/app
-
name: Login to DockerHub
if: github.event_name != 'pull_request'
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v4
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
```
```yaml
# v2
name: ci
on:
push:
branches:
- 'master'
tags:
- 'v*'
pull_request:
branches:
- 'master'
jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: name/app
-
name: Login to DockerHub
if: github.event_name != 'pull_request'
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v4
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
```
### Semver workflow
```yaml
# v1
name: ci
on:
push:
branches:
- 'master'
tags:
- 'v*'
pull_request:
branches:
- 'master'
jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Docker meta
id: meta
uses: docker/metadata-action@v1
with:
images: name/app
tag-semver: |
{{version}}
{{major}}.{{minor}}
-
name: Login to DockerHub
if: github.event_name != 'pull_request'
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v4
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
```
```yaml
# v2
name: ci
on:
push:
branches:
- 'master'
tags:
- 'v*'
pull_request:
branches:
- 'master'
jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: name/app
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
-
name: Login to DockerHub
if: github.event_name != 'pull_request'
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v4
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
```
+17 -1
View File
@@ -204,4 +204,20 @@ export const context = {
} }
}; };
export const getOctokit = jest.fn(); export const getOctokit = jest.fn(() => ({
rest: {
repos: {
getCommit: jest.fn(() =>
Promise.resolve({
data: {
commit: {
committer: {
date: '2024-11-13T13:42:28Z'
}
}
}
})
)
}
}
}));
+35 -3
View File
@@ -5,9 +5,12 @@ import * as path from 'path';
import {Context} from '@actions/github/lib/context'; import {Context} from '@actions/github/lib/context';
import {Git} from '@docker/actions-toolkit/lib/git'; import {Git} from '@docker/actions-toolkit/lib/git';
import {GitHub} from '@docker/actions-toolkit/lib/github'; import {GitHub} from '@docker/actions-toolkit/lib/github';
import {Toolkit} from '@docker/actions-toolkit/lib/toolkit';
import {ContextSource, getContext, getInputs, Inputs} from '../src/context'; import {ContextSource, getContext, getInputs, Inputs} from '../src/context';
const toolkit = new Toolkit({githubToken: 'fake-github-token'});
beforeEach(() => { beforeEach(() => {
jest.clearAllMocks(); jest.clearAllMocks();
jest.spyOn(GitHub, 'context', 'get').mockImplementation((): Context => { jest.spyOn(GitHub, 'context', 'get').mockImplementation((): Context => {
@@ -39,8 +42,10 @@ describe('getInputs', () => {
githubToken: '', githubToken: '',
images: ['moby/buildkit', 'ghcr.io/moby/mbuildkit'], images: ['moby/buildkit', 'ghcr.io/moby/mbuildkit'],
labels: [], labels: [],
annotations: [],
sepLabels: '\n', sepLabels: '\n',
sepTags: '\n', sepTags: '\n',
sepAnnotations: '\n',
tags: [], tags: [],
} as Inputs } as Inputs
], ],
@@ -51,6 +56,7 @@ describe('getInputs', () => {
['images', 'moby/buildkit'], ['images', 'moby/buildkit'],
['sep-labels', ','], ['sep-labels', ','],
['sep-tags', ','], ['sep-tags', ','],
['sep-annotations', ',']
]), ]),
{ {
context: ContextSource.workflow, context: ContextSource.workflow,
@@ -59,11 +65,32 @@ describe('getInputs', () => {
githubToken: '', githubToken: '',
images: ['moby/buildkit'], images: ['moby/buildkit'],
labels: [], labels: [],
annotations: [],
sepLabels: ',', sepLabels: ',',
sepTags: ',', sepTags: ',',
sepAnnotations: ',',
tags: [], tags: [],
} as Inputs } as Inputs
] ],
[
2,
new Map<string, string>([
['images', 'moby/buildkit\n#comment\nghcr.io/moby/mbuildkit'],
]),
{
context: ContextSource.workflow,
bakeTarget: 'docker-metadata-action',
flavor: [],
githubToken: '',
images: ['moby/buildkit', 'ghcr.io/moby/mbuildkit'],
labels: [],
annotations: [],
sepLabels: '\n',
sepTags: '\n',
sepAnnotations: '\n',
tags: [],
} as Inputs
],
])( ])(
'[%d] given %p as inputs, returns %p', '[%d] given %p as inputs, returns %p',
async (num: number, inputs: Map<string, string>, expected: Inputs) => { async (num: number, inputs: Map<string, string>, expected: Inputs) => {
@@ -89,9 +116,10 @@ describe('getContext', () => {
}); });
it('workflow', async () => { it('workflow', async () => {
const context = await getContext(ContextSource.workflow); const context = await getContext(ContextSource.workflow, toolkit);
expect(context.ref).toEqual('refs/heads/dev'); expect(context.ref).toEqual('refs/heads/dev');
expect(context.sha).toEqual('5f3331d7f7044c18ca9f12c77d961c4d7cf3276a'); expect(context.sha).toEqual('5f3331d7f7044c18ca9f12c77d961c4d7cf3276a');
expect(context.commitDate).toEqual(new Date('2024-11-13T13:42:28.000Z'));
}); });
it('git', async () => { it('git', async () => {
@@ -101,9 +129,13 @@ describe('getContext', () => {
sha: 'git-test-sha' sha: 'git-test-sha'
} as Context); } as Context);
}); });
const context = await getContext(ContextSource.git); jest.spyOn(Git, 'commitDate').mockImplementation(async (): Promise<Date> => {
return new Date('2023-01-01T13:42:28.000Z');
});
const context = await getContext(ContextSource.git, toolkit);
expect(context.ref).toEqual('refs/heads/git-test'); expect(context.ref).toEqual('refs/heads/git-test');
expect(context.sha).toEqual('git-test-sha'); expect(context.sha).toEqual('git-test-sha');
expect(context.commitDate).toEqual(new Date('2023-01-01T13:42:28.000Z'));
}); });
}); });
+1707 -877
View File
File diff suppressed because it is too large. Load diff
+22 -4
View File
@@ -32,7 +32,8 @@ describe('transform', () => {
"priority": DefaultPriorities[Type.Semver], "priority": DefaultPriorities[Type.Semver],
"enable": "true", "enable": "true",
"pattern": "{{version}}", "pattern": "{{version}}",
"value": "" "value": "",
"match": ""
} }
}, },
{ {
@@ -147,7 +148,8 @@ describe('parse', () => {
"priority": DefaultPriorities[Type.Semver], "priority": DefaultPriorities[Type.Semver],
"enable": "true", "enable": "true",
"pattern": "{{version}}", "pattern": "{{version}}",
"value": "" "value": "",
"match": ""
} }
} as Tag, } as Tag,
false false
@@ -160,7 +162,8 @@ describe('parse', () => {
"priority": "1", "priority": "1",
"enable": "true", "enable": "true",
"pattern": "{{version}}", "pattern": "{{version}}",
"value": "" "value": "",
"match": ""
} }
} as Tag, } as Tag,
false false
@@ -173,7 +176,22 @@ describe('parse', () => {
"priority": "1", "priority": "1",
"enable": "true", "enable": "true",
"pattern": "{{version}}", "pattern": "{{version}}",
"value": "v1.0.0" "value": "v1.0.0",
"match": ""
}
} as Tag,
false
],
[
`type=semver,priority=1,enable=true,pattern={{version}},value=p1/v1.0.0,"match=v(\\d.\\d.\\d)$"`,
{
type: Type.Semver,
attrs: {
"priority": "1",
"enable": "true",
"pattern": "{{version}}",
"value": "p1/v1.0.0",
"match": "v(\\d.\\d.\\d)$"
} }
} as Tag, } as Tag,
false false
+20 -4
View File
@@ -13,7 +13,7 @@ inputs:
required: true required: true
images: images:
description: 'List of Docker images to use as base name for tags' description: 'List of Docker images to use as base name for tags'
required: true required: false
tags: tags:
description: 'List of tags as key-value pair attributes' description: 'List of tags as key-value pair attributes'
required: false required: false
@@ -23,12 +23,18 @@ inputs:
labels: labels:
description: 'List of custom labels' description: 'List of custom labels'
required: false required: false
annotations:
description: 'List of custom annotations'
required: false
sep-tags: sep-tags:
description: 'Separator to use for tags output (default \n)' description: 'Separator to use for tags output (default \n)'
required: false required: false
sep-labels: sep-labels:
description: 'Separator to use for labels output (default \n)' description: 'Separator to use for labels output (default \n)'
required: false required: false
sep-annotations:
description: 'Separator to use for annotations output (default \n)'
required: false
bake-target: bake-target:
description: 'Bake target name (default docker-metadata-action)' description: 'Bake target name (default docker-metadata-action)'
required: false required: false
@@ -42,13 +48,23 @@ outputs:
description: 'Generated Docker image version' description: 'Generated Docker image version'
tags: tags:
description: 'Generated Docker tags' description: 'Generated Docker tags'
tag-names:
description: 'Generated Docker tag names without image base name'
labels: labels:
description: 'Generated Docker labels' description: 'Generated Docker labels'
bake-file: annotations:
description: 'Bake definiton file' description: 'Generated annotations'
json: json:
description: 'JSON output of tags and labels' description: 'JSON output of tags and labels'
bake-file-tags:
description: 'Bake definition file with tags'
bake-file-labels:
description: 'Bake definition file with labels'
bake-file-annotations:
description: 'Bake definition file with annotations'
bake-file:
description: 'Bake definition file with tags and labels'
runs: runs:
using: 'node16' using: 'node20'
main: 'dist/index.js' main: 'dist/index.js'
+15 -6
View File
@@ -1,13 +1,20 @@
# syntax=docker/dockerfile:1 # syntax=docker/dockerfile:1
ARG NODE_VERSION=16 ARG NODE_VERSION=20
FROM node:${NODE_VERSION}-alpine AS base FROM node:${NODE_VERSION}-alpine AS base
RUN apk add --no-cache cpio findutils git RUN apk add --no-cache cpio findutils git
WORKDIR /src 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 FROM base AS deps
RUN --mount=type=bind,target=.,rw \ RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/.yarn/cache \
--mount=type=cache,target=/src/node_modules \ --mount=type=cache,target=/src/node_modules \
yarn install && mkdir /vendor && cp yarn.lock /vendor yarn install && mkdir /vendor && cp yarn.lock /vendor
@@ -20,7 +27,7 @@ RUN --mount=type=bind,target=.,rw <<EOT
git add -A git add -A
cp -rf /vendor/* . cp -rf /vendor/* .
if [ -n "$(git status --porcelain -- yarn.lock)" ]; then if [ -n "$(git status --porcelain -- yarn.lock)" ]; then
echo >&2 'ERROR: Vendor result differs. Please vendor your package with "docker buildx bake vendor-update"' echo >&2 'ERROR: Vendor result differs. Please vendor your package with "docker buildx bake vendor"'
git status --porcelain -- yarn.lock git status --porcelain -- yarn.lock
exit 1 exit 1
fi fi
@@ -28,6 +35,7 @@ EOT
FROM deps AS build FROM deps AS build
RUN --mount=type=bind,target=.,rw \ RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/.yarn/cache \
--mount=type=cache,target=/src/node_modules \ --mount=type=cache,target=/src/node_modules \
yarn run build && mkdir /out && cp -Rf dist /out/ yarn run build && mkdir /out && cp -Rf dist /out/
@@ -48,24 +56,25 @@ EOT
FROM deps AS format FROM deps AS format
RUN --mount=type=bind,target=.,rw \ RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/.yarn/cache \
--mount=type=cache,target=/src/node_modules \ --mount=type=cache,target=/src/node_modules \
yarn run format \ 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 FROM scratch AS format-update
COPY --from=format /out / COPY --from=format /out /
FROM deps AS lint FROM deps AS lint
RUN --mount=type=bind,target=.,rw \ RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/.yarn/cache \
--mount=type=cache,target=/src/node_modules \ --mount=type=cache,target=/src/node_modules \
yarn run lint yarn run lint
FROM deps AS test FROM deps AS test
ENV RUNNER_TEMP=/tmp/github_runner
ENV RUNNER_TOOL_CACHE=/tmp/github_tool_cache
RUN --mount=type=bind,target=.,rw \ RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/.yarn/cache \
--mount=type=cache,target=/src/node_modules \ --mount=type=cache,target=/src/node_modules \
yarn run test --coverageDirectory=/tmp/coverage yarn run test --coverage --coverageDirectory=/tmp/coverage
FROM scratch AS test-coverage FROM scratch AS test-coverage
COPY --from=test /tmp/coverage / COPY --from=test /tmp/coverage /
Generated Vendored
+300
View File
@@ -0,0 +1,300 @@
"use strict";
exports.id = 606;
exports.ids = [606];
exports.modules = {
/***/ 606:
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ pMap)
/* harmony export */ });
/* unused harmony exports pMapIterable, pMapSkip */
async function pMap(
iterable,
mapper,
{
concurrency = Number.POSITIVE_INFINITY,
stopOnError = true,
signal,
} = {},
) {
return new Promise((resolve_, reject_) => {
if (iterable[Symbol.iterator] === undefined && iterable[Symbol.asyncIterator] === undefined) {
throw new TypeError(`Expected \`input\` to be either an \`Iterable\` or \`AsyncIterable\`, got (${typeof iterable})`);
}
if (typeof mapper !== 'function') {
throw new TypeError('Mapper function is required');
}
if (!((Number.isSafeInteger(concurrency) && concurrency >= 1) || concurrency === Number.POSITIVE_INFINITY)) {
throw new TypeError(`Expected \`concurrency\` to be an integer from 1 and up or \`Infinity\`, got \`${concurrency}\` (${typeof concurrency})`);
}
const result = [];
const errors = [];
const skippedIndexesMap = new Map();
let isRejected = false;
let isResolved = false;
let isIterableDone = false;
let resolvingCount = 0;
let currentIndex = 0;
const iterator = iterable[Symbol.iterator] === undefined ? iterable[Symbol.asyncIterator]() : iterable[Symbol.iterator]();
const signalListener = () => {
reject(signal.reason);
};
const cleanup = () => {
signal?.removeEventListener('abort', signalListener);
};
const resolve = value => {
resolve_(value);
cleanup();
};
const reject = reason => {
isRejected = true;
isResolved = true;
reject_(reason);
cleanup();
};
if (signal) {
if (signal.aborted) {
reject(signal.reason);
}
signal.addEventListener('abort', signalListener, {once: true});
}
const next = async () => {
if (isResolved) {
return;
}
const nextItem = await iterator.next();
const index = currentIndex;
currentIndex++;
// Note: `iterator.next()` can be called many times in parallel.
// This can cause multiple calls to this `next()` function to
// receive a `nextItem` with `done === true`.
// The shutdown logic that rejects/resolves must be protected
// so it runs only one time as the `skippedIndex` logic is
// non-idempotent.
if (nextItem.done) {
isIterableDone = true;
if (resolvingCount === 0 && !isResolved) {
if (!stopOnError && errors.length > 0) {
reject(new AggregateError(errors)); // eslint-disable-line unicorn/error-message
return;
}
isResolved = true;
if (skippedIndexesMap.size === 0) {
resolve(result);
return;
}
const pureResult = [];
// Support multiple `pMapSkip`'s.
for (const [index, value] of result.entries()) {
if (skippedIndexesMap.get(index) === pMapSkip) {
continue;
}
pureResult.push(value);
}
resolve(pureResult);
}
return;
}
resolvingCount++;
// Intentionally detached
(async () => {
try {
const element = await nextItem.value;
if (isResolved) {
return;
}
const value = await mapper(element, index);
// Use Map to stage the index of the element.
if (value === pMapSkip) {
skippedIndexesMap.set(index, value);
}
result[index] = value;
resolvingCount--;
await next();
} catch (error) {
if (stopOnError) {
reject(error);
} else {
errors.push(error);
resolvingCount--;
// In that case we can't really continue regardless of `stopOnError` state
// since an iterable is likely to continue throwing after it throws once.
// If we continue calling `next()` indefinitely we will likely end up
// in an infinite loop of failed iteration.
try {
await next();
} catch (error) {
reject(error);
}
}
}
})();
};
// Create the concurrent runners in a detached (non-awaited)
// promise. We need this so we can await the `next()` calls
// to stop creating runners before hitting the concurrency limit
// if the iterable has already been marked as done.
// NOTE: We *must* do this for async iterators otherwise we'll spin up
// infinite `next()` calls by default and never start the event loop.
(async () => {
for (let index = 0; index < concurrency; index++) {
try {
// eslint-disable-next-line no-await-in-loop
await next();
} catch (error) {
reject(error);
break;
}
if (isIterableDone || isRejected) {
break;
}
}
})();
});
}
function pMapIterable(
iterable,
mapper,
{
concurrency = Number.POSITIVE_INFINITY,
backpressure = concurrency,
} = {},
) {
if (iterable[Symbol.iterator] === undefined && iterable[Symbol.asyncIterator] === undefined) {
throw new TypeError(`Expected \`input\` to be either an \`Iterable\` or \`AsyncIterable\`, got (${typeof iterable})`);
}
if (typeof mapper !== 'function') {
throw new TypeError('Mapper function is required');
}
if (!((Number.isSafeInteger(concurrency) && concurrency >= 1) || concurrency === Number.POSITIVE_INFINITY)) {
throw new TypeError(`Expected \`concurrency\` to be an integer from 1 and up or \`Infinity\`, got \`${concurrency}\` (${typeof concurrency})`);
}
if (!((Number.isSafeInteger(backpressure) && backpressure >= concurrency) || backpressure === Number.POSITIVE_INFINITY)) {
throw new TypeError(`Expected \`backpressure\` to be an integer from \`concurrency\` (${concurrency}) and up or \`Infinity\`, got \`${backpressure}\` (${typeof backpressure})`);
}
return {
async * [Symbol.asyncIterator]() {
const iterator = iterable[Symbol.asyncIterator] === undefined ? iterable[Symbol.iterator]() : iterable[Symbol.asyncIterator]();
const promises = [];
let runningMappersCount = 0;
let isDone = false;
let index = 0;
function trySpawn() {
if (isDone || !(runningMappersCount < concurrency && promises.length < backpressure)) {
return;
}
const promise = (async () => {
const {done, value} = await iterator.next();
if (done) {
return {done: true};
}
runningMappersCount++;
// Spawn if still below concurrency and backpressure limit
trySpawn();
try {
const returnValue = await mapper(await value, index++);
runningMappersCount--;
if (returnValue === pMapSkip) {
const index = promises.indexOf(promise);
if (index > 0) {
promises.splice(index, 1);
}
}
// Spawn if still below backpressure limit and just dropped below concurrency limit
trySpawn();
return {done: false, value: returnValue};
} catch (error) {
isDone = true;
return {error};
}
})();
promises.push(promise);
}
trySpawn();
while (promises.length > 0) {
const {error, done, value} = await promises[0]; // eslint-disable-line no-await-in-loop
promises.shift();
if (error) {
throw error;
}
if (done) {
return;
}
// Spawn if just dropped below backpressure limit and below the concurrency limit
trySpawn();
if (value === pMapSkip) {
continue;
}
yield value;
}
},
};
}
const pMapSkip = Symbol('skip');
/***/ })
};
;
//# sourceMappingURL=606.index.js.map
Generated Vendored
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"606.index.js","mappings":";;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":[".././node_modules/p-map/index.js"],"sourcesContent":["export default async function pMap(\n\titerable,\n\tmapper,\n\t{\n\t\tconcurrency = Number.POSITIVE_INFINITY,\n\t\tstopOnError = true,\n\t\tsignal,\n\t} = {},\n) {\n\treturn new Promise((resolve_, reject_) => {\n\t\tif (iterable[Symbol.iterator] === undefined && iterable[Symbol.asyncIterator] === undefined) {\n\t\t\tthrow new TypeError(`Expected \\`input\\` to be either an \\`Iterable\\` or \\`AsyncIterable\\`, got (${typeof iterable})`);\n\t\t}\n\n\t\tif (typeof mapper !== 'function') {\n\t\t\tthrow new TypeError('Mapper function is required');\n\t\t}\n\n\t\tif (!((Number.isSafeInteger(concurrency) && concurrency >= 1) || concurrency === Number.POSITIVE_INFINITY)) {\n\t\t\tthrow new TypeError(`Expected \\`concurrency\\` to be an integer from 1 and up or \\`Infinity\\`, got \\`${concurrency}\\` (${typeof concurrency})`);\n\t\t}\n\n\t\tconst result = [];\n\t\tconst errors = [];\n\t\tconst skippedIndexesMap = new Map();\n\t\tlet isRejected = false;\n\t\tlet isResolved = false;\n\t\tlet isIterableDone = false;\n\t\tlet resolvingCount = 0;\n\t\tlet currentIndex = 0;\n\t\tconst iterator = iterable[Symbol.iterator] === undefined ? iterable[Symbol.asyncIterator]() : iterable[Symbol.iterator]();\n\n\t\tconst signalListener = () => {\n\t\t\treject(signal.reason);\n\t\t};\n\n\t\tconst cleanup = () => {\n\t\t\tsignal?.removeEventListener('abort', signalListener);\n\t\t};\n\n\t\tconst resolve = value => {\n\t\t\tresolve_(value);\n\t\t\tcleanup();\n\t\t};\n\n\t\tconst reject = reason => {\n\t\t\tisRejected = true;\n\t\t\tisResolved = true;\n\t\t\treject_(reason);\n\t\t\tcleanup();\n\t\t};\n\n\t\tif (signal) {\n\t\t\tif (signal.aborted) {\n\t\t\t\treject(signal.reason);\n\t\t\t}\n\n\t\t\tsignal.addEventListener('abort', signalListener, {once: true});\n\t\t}\n\n\t\tconst next = async () => {\n\t\t\tif (isResolved) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst nextItem = await iterator.next();\n\n\t\t\tconst index = currentIndex;\n\t\t\tcurrentIndex++;\n\n\t\t\t// Note: `iterator.next()` can be called many times in parallel.\n\t\t\t// This can cause multiple calls to this `next()` function to\n\t\t\t// receive a `nextItem` with `done === true`.\n\t\t\t// The shutdown logic that rejects/resolves must be protected\n\t\t\t// so it runs only one time as the `skippedIndex` logic is\n\t\t\t// non-idempotent.\n\t\t\tif (nextItem.done) {\n\t\t\t\tisIterableDone = true;\n\n\t\t\t\tif (resolvingCount === 0 && !isResolved) {\n\t\t\t\t\tif (!stopOnError && errors.length > 0) {\n\t\t\t\t\t\treject(new AggregateError(errors)); // eslint-disable-line unicorn/error-message\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tisResolved = true;\n\n\t\t\t\t\tif (skippedIndexesMap.size === 0) {\n\t\t\t\t\t\tresolve(result);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst pureResult = [];\n\n\t\t\t\t\t// Support multiple `pMapSkip`'s.\n\t\t\t\t\tfor (const [index, value] of result.entries()) {\n\t\t\t\t\t\tif (skippedIndexesMap.get(index) === pMapSkip) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tpureResult.push(value);\n\t\t\t\t\t}\n\n\t\t\t\t\tresolve(pureResult);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresolvingCount++;\n\n\t\t\t// Intentionally detached\n\t\t\t(async () => {\n\t\t\t\ttry {\n\t\t\t\t\tconst element = await nextItem.value;\n\n\t\t\t\t\tif (isResolved) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst value = await mapper(element, index);\n\n\t\t\t\t\t// Use Map to stage the index of the element.\n\t\tLine truncated
Generated Vendored
+137 -16
View File
@@ -1,24 +1,135 @@
require('./sourcemap-register.js');(()=>{var __webpack_modules__={7351:function(p,a,r){"use strict";var d=this&&this.__createBinding||(Object.create?function(p,a,r,d){if(d===undefined)d=r;Object.defineProperty(p,d,{enumerable:true,get:function(){return a[r]}})}:function(p,a,r,d){if(d===undefined)d=r;p[d]=a[r]});var i=this&&this.__setModuleDefault||(Object.create?function(p,a){Object.defineProperty(p,"default",{enumerable:true,value:a})}:function(p,a){p["default"]=a});var b=this&&this.__importStar||function(p){if(p&&p.__esModule)return p;var a={};if(p!=null)for(var r in p)if(r!=="default"&&Object.hasOwnProperty.call(p,r))d(a,p,r);i(a,p);return a};Object.defineProperty(a,"__esModule",{value:true});a.issue=a.issueCommand=void 0;const c=b(r(2037));const M=r(5278);function issueCommand(p,a,r){const d=new Command(p,a,r);process.stdout.write(d.toString()+c.EOL)}a.issueCommand=issueCommand;function issue(p,a=""){issueCommand(p,{},a)}a.issue=issue;const z="::";class Command{constructor(p,a,r){if(!p){p="missing.command"}this.command=p;this.properties=a;this.message=r}toString(){let p=z+this.command;if(this.properties&&Object.keys(this.properties).length>0){p+=" ";let a=true;for(const r in this.properties){if(this.properties.hasOwnProperty(r)){const d=this.properties[r];if(d){if(a){a=false}else{p+=","}p+=`${r}=${escapeProperty(d)}`}}}}p+=`${z}${escapeData(this.message)}`;return p}}function escapeData(p){return M.toCommandValue(p).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function escapeProperty(p){return M.toCommandValue(p).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}},2186:function(p,a,r){"use strict";var d=this&&this.__createBinding||(Object.create?function(p,a,r,d){if(d===undefined)d=r;Object.defineProperty(p,d,{enumerable:true,get:function(){return a[r]}})}:function(p,a,r,d){if(d===undefined)d=r;p[d]=a[r]});var i=this&&this.__setModuleDefault||(Object.create?function(p,a){Object.defineProperty(p,"default",{enumerable:true,value:a})}:function(p,a){p["default"]=a});var b=this&&this.__importStar||function(p){if(p&&p.__esModule)return p;var a={};if(p!=null)for(var r in p)if(r!=="default"&&Object.hasOwnProperty.call(p,r))d(a,p,r);i(a,p);return a};var c=this&&this.__awaiter||function(p,a,r,d){function adopt(p){return p instanceof r?p:new r((function(a){a(p)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(p){try{step(d.next(p))}catch(p){i(p)}}function rejected(p){try{step(d["throw"](p))}catch(p){i(p)}}function step(p){p.done?r(p.value):adopt(p.value).then(fulfilled,rejected)}step((d=d.apply(p,a||[])).next())}))};Object.defineProperty(a,"__esModule",{value:true});a.getIDToken=a.getState=a.saveState=a.group=a.endGroup=a.startGroup=a.info=a.notice=a.warning=a.error=a.debug=a.isDebug=a.setFailed=a.setCommandEcho=a.setOutput=a.getBooleanInput=a.getMultilineInput=a.getInput=a.addPath=a.setSecret=a.exportVariable=a.ExitCode=void 0;const M=r(7351);const z=r(717);const u=r(5278);const O=b(r(2037));const l=b(r(1017));const A=r(8041);var m;(function(p){p[p["Success"]=0]="Success";p[p["Failure"]=1]="Failure"})(m=a.ExitCode||(a.ExitCode={}));function exportVariable(p,a){const r=u.toCommandValue(a);process.env[p]=r;const d=process.env["GITHUB_ENV"]||"";if(d){return z.issueFileCommand("ENV",z.prepareKeyValueMessage(p,a))}M.issueCommand("set-env",{name:p},r)}a.exportVariable=exportVariable;function setSecret(p){M.issueCommand("add-mask",{},p)}a.setSecret=setSecret;function addPath(p){const a=process.env["GITHUB_PATH"]||"";if(a){z.issueFileCommand("PATH",p)}else{M.issueCommand("add-path",{},p)}process.env["PATH"]=`${p}${l.delimiter}${process.env["PATH"]}`}a.addPath=addPath;function getInput(p,a){const r=process.env[`INPUT_${p.replace(/ /g,"_").toUpperCase()}`]||"";if(a&&a.required&&!r){throw new Error(`Input required and not supplied: ${p}`)}if(a&&a.trimWhitespace===false){return r}return r.trim()}a.getInput=getInput;function getMultilineInput(p,a){const r=getInput(p,a).split("\n").filter((p=>p!==""));if(a&&a.trimWhitespace===false){return r}return r.map((p=>p.trim()))}a.getMultilineInput=getMultilineInput;function getBooleanInput(p,a){const r=["true","True","TRUE"];const d=["false","False","FALSE"];const i=getInput(p,a);if(r.includes(i))return true;if(d.includes(i))return false;throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${p}\n`+`Support boolean input list: \`true | True | TRUE | false | False | FALSE\``)}a.getBooleanInput=getBooleanInput;function setOutput(p,a){const r=process.env["GITHUB_OUTPUT"]||"";if(r){return z.issueFileCommand("OUTPUT",z.prepareKeyValueMessage(p,a))}process.stdout.write(O.EOL);M.issueCommand("set-output",{name:p},u.toCommandValue(a))}a.setOutput=setOutput;function setCommandEcho(p){M.issue("echo",p?"on":"off")}a.setCommandEcho=setCommandEcho;function setFailed(p){process.exitCode=m.Failure;error(p)}a.setFailed=setFailed;function isDebug(){return process.env["RUNNER_DEBUG"]==="1"}a.isDeLine truncated require('./sourcemap-register.js');(()=>{var r={76846:function(r,i,a){"use strict";var c=this&&this.__createBinding||(Object.create?function(r,i,a,c){if(c===undefined)c=a;var l=Object.getOwnPropertyDescriptor(i,a);if(!l||("get"in l?!i.__esModule:l.writable||l.configurable)){l={enumerable:true,get:function(){return i[a]}}}Object.defineProperty(r,c,l)}:function(r,i,a,c){if(c===undefined)c=a;r[c]=i[a]});var l=this&&this.__exportStar||function(r,i){for(var a in r)if(a!=="default"&&!Object.prototype.hasOwnProperty.call(i,a))c(i,r,a)};Object.defineProperty(i,"__esModule",{value:true});const p=a(64487);l(a(13776),i);l(a(45655),i);l(a(64487),i);const d=new p.DefaultArtifactClient;i["default"]=d},35592:(r,i,a)=>{"use strict";Object.defineProperty(i,"__esModule",{value:true});i.Timestamp=void 0;const c=a(68886);const l=a(68886);const p=a(68886);const d=a(68886);const u=a(68886);const A=a(68886);const h=a(68886);class Timestamp$Type extends h.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=A.PbLong.from(Math.floor(i/1e3)).toString();r.nanos=i%1e3*1e6;return r}toDate(r){return new Date(A.PbLong.from(r.seconds).toNumber()*1e3+Math.ceil(r.nanos/1e6))}fromDate(r){const i=this.create();const a=r.getTime();i.seconds=A.PbLong.from(Math.floor(a/1e3)).toString();i.nanos=a%1e3*1e6;return i}internalJsonWrite(r,i){let a=A.PbLong.from(r.seconds).toNumber()*1e3;if(a<Date.parse("0001-01-01T00:00:00Z")||a>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 c="Z";if(r.nanos>0){let i=(r.nanos+1e9).toString().substring(1);if(i.substring(3)==="000000")c="."+i.substring(0,3)+"Z";else if(i.substring(6)==="000")c="."+i.substring(0,6)+"Z";else c="."+i+"Z"}return new Date(a).toISOString().replace(".000Z",c)}internalJsonRead(r,i,a){if(typeof r!=="string")throw new Error("Unable to parse Timestamp from JSON "+(0,u.typeofJsonValue)(r)+".");let c=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(!c)throw new Error("Unable to parse Timestamp from JSON. Invalid format.");let l=Date.parse(c[1]+"-"+c[2]+"-"+c[3]+"T"+c[4]+":"+c[5]+":"+c[6]+(c[8]?c[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(!a)a=this.create();a.seconds=A.PbLong.from(l/1e3).toString();a.nanos=0;if(c[7])a.nanos=parseInt("1"+c[7]+"0".repeat(9-c[7].length))-1e9;return a}create(r){const i={seconds:"0",nanos:0};globalThis.Object.defineProperty(i,d.MESSAGE_TYPE,{enumerable:false,value:this});if(r!==undefined)(0,p.reflectionMergePartial)(this,i,r);return i}internalBinaryRead(r,i,a,c){let p=c!==null&&c!==void 0?c:this.create(),d=r.pos+i;while(r.pos<d){let[i,c]=r.tag();switch(i){case 1:p.seconds=r.int64().toString();break;case 2:p.nanos=r.int32();break;default:let d=a.readUnknownField;if(d==="throw")throw new globalThis.Error(`Unknown field ${i} (wire type ${c}) for ${this.typeName}`);let u=r.skip(c);if(d!==false)(d===true?l.UnknownFieldHandler.onRead:d)(this.typeName,p,i,c,u)}}return p}internalBinaryWrite(r,i,a){if(r.seconds!=="0")i.tag(1,c.WireType.Varint).int64(r.seconds);if(r.nanos!==0)i.tag(2,c.WireType.Varint).int32(r.nanos);let p=a.writeUnknownFields;if(p!==false)(p==true?l.UnknownFieldHandler.onWrite:p)(this.typeName,r,i);return i}}i.Timestamp=new Timestamp$Type},78806:(r,i,a)=>{"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 c=a(68886);const l=a(68886);const p=a(68886);const d=a(68886);const u=a(68886);const A=a(68886);const h=a(68886);class DoubleValue$Type extends h.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,a){if(!a)a=this.create();a.value=this.refJsonReader.scalar(r,1,undefined,"value");return a}create(r){const i={value:0};globalThis.Object.defineProperty(i,A.MESSAGE_TYPE,{enumerable:false,value:this});if(r!==undefined)(0,u.reflectionMergePartial)(this,i,r);return i}internalBinaryRead(r,i,a,c){let l=c!==null&&c!==void 0?c:this.create(),p=r.pos+i;while(r.pos<p){let[i,c]=r.tag();switch(i){case 1:l.value=r.double();break;default:let p=a.readUnknownField;if(p==="throw")throw new globalThis.Error(`Unknown field ${i} (wire type ${c}) for ${this.typeName}`);let u=r.skip(c);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 c=[];const l=new Uint8Array([13,10]);g=0;let p=false;for(const[i,d]of r){if(typeof d==="string"){const r=k.encode(a+`; name="${escape(normalizeLinefeeds(i))}"`+`\r\n\r\n${normalizeLinefeeds(d)}\r\n`);c.push(r);g+=r.byteLength}else{const r=k.encode(`${a}; name="${escape(normalizeLinefeeds(i))}"`+(d.name?`; filename="${escape(d.name)}"`:"")+"\r\n"+`Content-Type: ${d.type||"application/octet-stream"}\r\n\r\n`);c.push(r,d,l);if(typeof d.size==="number"){g+=r.byteLength+d.size+l.byteLength}else{p=true}}}const d=k.encode(`--${i}--`);c.push(d);g+=d.byteLength;if(p){g=null}b=r;h=async function*(){for(const r of c){if(r.stream){yield*r.stream()}else{yield r}}};M="multipart/form-data; boundary="+i}else if(d(r)){b=r;g=r.size;if(r.type){M=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")}c=r instanceof x?r:p(r)}if(typeof b==="string"||l.isBuffer(b)){g=Buffer.byteLength(b)}if(h!=null){let i;c=new x({async start(){i=h(r)[Symbol.asyncIterator]()},async pull(r){const{value:a,done:l}=await i.next();if(l){queueMicrotask((()=>{r.close()}))}else{if(!w(c)){r.enqueue(new Uint8Array(a))}}return r.desiredSize>0},async cancel(r){await i.return()},type:undefined})}const y={stream:c,source:b,length:g};return[y,M]}function safelyExtractBody(r,i=false){if(!x){x=a(63774).ReadableStream}if(r instanceof x){v(!l.isDisturbed(r),"The body has already been consumed.");v(!r.locked,"The stream is locked.")}return extractBody(r,i)}function cloneBody(r){const[i,a]=r.stream.tee();const c=z(a,{transfer:[a]});const[,l]=c.tee();r.stream=i;return{stream:l,length:r.length,source:r.source}}async function*consumeBody(r){if(r){if(S(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[I]=true;yield*i}}}function throwIfAborted(r){if(r.aborted){throw new O("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=q(i)}return new C([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(){y.brandCheck(this,r);throwIfAborted(this[M]);const i=this.headers.get("Content-Type");if(/multipart\/form-data/.test(i)){const r={};for(const[i,a]of this.headers)r[i.toLowerCase()]=a;const i=new g;let a;try{a=new c({headers:r,preservePath:true})}catch(r){throw new O(`${r}`,"AbortError")}a.on("field",((r,a)=>{i.append(r,a)}));a.on("file",((r,a,c,l,p)=>{const d=[];if(l==="base64"||l.toLowerCase()==="base64"){let l="";a.on("data",(r=>{l+=r.toString().replace(/[\r\n]/gm,"");const i=l.length-l.length%4;d.push(Buffer.from(l.slice(0,i),"base64"));l=l.slice(i)}));a.on("end",(()=>{d.push(Buffer.from(l,"base64"));i.append(r,new T(d,c,{type:p}))}))}else{a.on("data",(r=>{d.push(r)}));a.on("end",(()=>{i.append(r,new T(d,c,{type:p}))}))}}));const l=new Promise(((r,i)=>{a.on("finish",r);a.on("error",(r=>i(new TypeError(r))))}));if(this.body!==null)for await(const r of consumeBody(this[M].body))a.write(r);a.end();await l;return i}else if(/application\/x-www-form-urlencoded/.test(i)){let r;try{let i="";const a=new TextDecoder("utf-8",{ignoreBOM:true});for await(const r of consumeBody(this[M].body)){if(!S(r)){throw new TypeError("Expected Uint8Array chunk")}i+=a.decode(r,{stream:true})}i+=a.decode();r=new URLSearchParams(i)}catch(r){throw Object.assign(new TypeError,{cause:r})}const i=new g;for(const[a,c]of r){i.append(a,c)}return i}else{await Promise.resolve();throwIfAborted(this[M]);throw y.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,a){y.brandCheck(r,a);throwIfAborted(r[M]);if(bodyUnusable(r[M].body)){throw new TypeError("Body is unusable")}const c=h();const errorSteps=r=>c.reject(r);const successSteps=r=>{try{c.resolve(i(r))}catch(r){errorSteps(r)}};if(r[M].body==null){successSteps(new Uint8Array);return c.promise}await b(r[M].body,successSteps,errorSteps);return c.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=_.decode(r);return i}function parseJSONFromBytes(r){return JSON.parse(utf8DecodeBytes(r))}function bodyMimeType(r){const{headersList:i}=r[M];const a=i.get("contentLine truncated
/*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> */p[l-4]=this.maskKey[0];p[l-3]=this.maskKey[1];p[l-2]=this.maskKey[2];p[l-1]=this.maskKey[3];p[1]=a;if(a===126){p.writeUInt16BE(i,2)}else if(a===127){p[2]=p[3]=0;p.writeUIntBE(i,4,6)}p[1]|=128;for(let r=0;r<i;r++){p[l+r]=this.frameData[r]^this.maskKey[r%4]}return p}}r.exports={WebsocketFrameSend:WebsocketFrameSend}},11131:(r,i,a)=>{"use strict";const{Writable:c}=a(2203);const l=a(31637);const{parserStates:p,opcodes:d,states:u,emptyBuffer:A}=a(87233);const{kReadyState:h,kSentClose:b,kResponse:g,kReceivedClose:M}=a(5933);const{isValidStatusCode:y,failWebsocketConnection:O,websocketMessageReceived:z}=a(35294);const{WebsocketFrameSend:C}=a(1709);const B={};B.ping=l.channel("undici:websocket:ping");B.pong=l.channel("undici:websocket:pong");class ByteParser extends c{#o=[];#a=0;#c=p.INFO;#l={};#p=[];constructor(r){super();this.ws=r}_write(r,i,a){this.#o.push(r);this.#a+=r.length;this.run(a)}run(r){while(true){if(this.#c===p.INFO){if(this.#a<2){return r()}const i=this.consume(2);this.#l.fin=(i[0]&128)!==0;this.#l.opcode=i[0]&15;this.#l.originalOpcode??=this.#l.opcode;this.#l.fragmented=!this.#l.fin&&this.#l.opcode!==d.CONTINUATION;if(this.#l.fragmented&&this.#l.opcode!==d.BINARY&&this.#l.opcode!==d.TEXT){O(this.ws,"Invalid frame type was fragmented.");return}const a=i[1]&127;if(a<=125){this.#l.payloadLength=a;this.#c=p.READ_DATA}else if(a===126){this.#c=p.PAYLOADLENGTH_16}else if(a===127){this.#c=p.PAYLOADLENGTH_64}if(this.#l.fragmented&&a>125){O(this.ws,"Fragmented frame exceeded 125 bytes.");return}else if((this.#l.opcode===d.PING||this.#l.opcode===d.PONG||this.#l.opcode===d.CLOSE)&&a>125){O(this.ws,"Payload length for control frame exceeded 125 bytes.");return}else if(this.#l.opcode===d.CLOSE){if(a===1){O(this.ws,"Received close frame with a 1-byte body.");return}const r=this.consume(a);this.#l.closeInfo=this.parseCloseBody(false,r);if(!this.ws[b]){const r=Buffer.allocUnsafe(2);r.writeUInt16BE(this.#l.closeInfo.code,0);const i=new C(r);this.ws[g].socket.write(i.createFrame(d.CLOSE),(r=>{if(!r){this.ws[b]=true}}))}this.ws[h]=u.CLOSING;this.ws[M]=true;this.end();return}else if(this.#l.opcode===d.PING){const i=this.consume(a);if(!this.ws[M]){const r=new C(i);this.ws[g].socket.write(r.createFrame(d.PONG));if(B.ping.hasSubscribers){B.ping.publish({payload:i})}}this.#c=p.INFO;if(this.#a>0){continue}else{r();return}}else if(this.#l.opcode===d.PONG){const i=this.consume(a);if(B.pong.hasSubscribers){B.pong.publish({payload:i})}if(this.#a>0){continue}else{r();return}}}else if(this.#c===p.PAYLOADLENGTH_16){if(this.#a<2){return r()}const i=this.consume(2);this.#l.payloadLength=i.readUInt16BE(0);this.#c=p.READ_DATA}else if(this.#c===p.PAYLOADLENGTH_64){if(this.#a<8){return r()}const i=this.consume(8);const a=i.readUInt32BE(0);if(a>2**31-1){O(this.ws,"Received payload length > 2^31 bytes.");return}const c=i.readUInt32BE(4);this.#l.payloadLength=(a<<8)+c;this.#c=p.READ_DATA}else if(this.#c===p.READ_DATA){if(this.#a<this.#l.payloadLength){return r()}else if(this.#a>=this.#l.payloadLength){const r=this.consume(this.#l.payloadLength);this.#p.push(r);if(!this.#l.fragmented||this.#l.fin&&this.#l.opcode===d.CONTINUATION){const r=Buffer.concat(this.#p);z(this.ws,this.#l.originalOpcode,r);this.#l={};this.#p.length=0}this.#c=p.INFO}}if(this.#a>0){continue}else{r();break}}}consume(r){if(r>this.#a){return null}else if(r===0){return A}if(this.#o[0].length===r){this.#a-=this.#o[0].length;return this.#o.shift()}const i=Buffer.allocUnsafe(r);let a=0;while(a!==r){const c=this.#o[0];const{length:l}=c;if(l+a===r){i.set(this.#o.shift(),a);break}else if(l+a>r){i.set(c.subarray(0,r-a),a);this.#o[0]=c.subarray(r-a);break}else{i.set(this.#o.shift(),a);a+=c.length}}this.#a-=r;return i}parseCloseBody(r,i){let a;if(i.length>=2){a=i.readUInt16BE(0)}if(r){if(!y(a)){return null}return{code:a}}let c=i.subarray(2);if(c[0]===239&&c[1]===187&&c[2]===191){c=c.subarray(3)}if(a!==undefined&&!y(a)){return null}try{c=new TextDecoder("utf-8",{fatal:true}).decode(c)}catch{return null}return{code:a,reason:c}}get closingInfo(){return this.#l.closeInfo}}r.exports={ByteParser:ByteParser}},5933: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")}},35294:(r,i,a)=>{"use strict";const{kReadyState:c,kController:l,kResponse:p,kBinaryType:d,kWebSocketURL:u}=a(5933);const{states:A,opcodes:h}=a(87233);const{MessageEvent:b,ErrorEvent:g}=a(32167);function isEstablished(r){return r[c]===A.OPEN}function isClosing(r){return r[c]===A.CLOSING}function isClosed(r){return r[c]===A.CLOSED}function fireEvent(r,i,a=Event,c){const l=new a(r,c);i.dispatchEvent(l)}function websocketMessageReceived(r,i,a){if(r[c]!==A.OPEN){return}let l;if(i===h.TEXT){try{l=new TextDecoder("utf-8",{fatal:true}).deLine truncated
/**
* Archiver Vending
*
* @ignore
* @license [MIT]{@link https://github.com/archiverjs/node-archiver/blob/master/LICENSE}
* @copyright (c) 2012-2014 Chris Talkington, contributors.
*/
var c=a(50549);var l={};var vending=function(r,i){return vending.create(r,i)};vending.create=function(r,i){if(l[r]){var a=new c(r,i);a.setFormat(r);a.setModule(new l[r](i));return a}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",a(22836));vending.registerFormat("tar",a(10396));vending.registerFormat("json",a(54693));r.exports=vending},50549:(r,i,a)=>{
/**
* Archiver Core
*
* @ignore
* @license [MIT]{@link https://github.com/archiverjs/node-archiver/blob/master/LICENSE}
* @copyright (c) 2012-2014 Chris Talkington, contributors.
*/
var c=a(79896);var l=a(51364);var p=a(97329);var d=a(16928);var u=a(53296);var A=a(39023).inherits;var h=a(13110);var b=a(29963).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});b.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=p.queue(this._onQueueTask.bind(this),1);this._queue.drain(this._onQueueDrain.bind(this));this._statQueue=p.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=[]};A(Archiver,b);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 a={source:null,filepath:r};if(!i.name){i.name=r}i.sourcePath=r;a.data=i;this._entriesCount++;if(i.stats&&i.stats instanceof c.Stats){a=this._updateQueueTaskWithStats(a,i.stats);if(a){if(i.stats.size){this._fsEntriesTotalBytes+=i.stats.size}this._queue.push(a)}}else{this._statQueue.push(a)}};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,a){if(this._state.aborted){a();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(a);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(a)}.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 h("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 a=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)==="/"){a=true;r.type="directory"}else if(a){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&&a){r.mode=493}}else if(r.mode===null){r.mode=a?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}c.lstat(r.filepath,function(a,c){if(this._state.aborted){setImmediate(i);return}if(a){this._entriesCount--;this.emit("warning",a);setImmediate(i);return}r=this._updateQueueTaskWithStats(r,c);if(r){if(c.size){this._fsEntriesTotalBytes+=c.size}this._queue.push(r)}setImmediate(i)}.bind(this))};Archiver.prototype._shutdown=function(){this._moduleUnpipe();this.end()};Archiver.prototype._transform=function(r,i,a){if(r){this._pointer+=r.length}a(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 c=a(39023);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}c.inherits(ArchiverError,Error);i=r.exports=ArchiverError},54693:(r,i,a)=>{
/**
* 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 c=a(39023).inherits;var l=a(29963).Transform;var p=a(84928);var d=a(53296);var Json=function(r){if(!(this instanceof Json)){return new Json(r)}r=this.options=d.defaults(r,{});l.call(this,r);this.supports={directory:true,symlink:true};this.files=[]};c(Json,l);Json.prototype._transform=function(r,i,a){a(null,r)};Json.prototype._writeStringified=function(){var r=JSON.stringify(this.files);this.write(r)};Json.prototype.append=function(r,i,a){var c=this;i.crc32=0;function onend(r,l){if(r){a(r);return}i.size=l.length||0;i.crc32=p.unsigned(l);c.files.push(i);a(null,i)}if(i.sourceType==="buffer"){onend(null,r)}else if(i.sourceType==="stream"){d.collectStream(r,onend)}};Json.prototype.finalize=function(){this._writeStringified();this.end()};r.exports=Json},10396:(r,i,a)=>{
/**
* 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 c=a(43106);var l=a(56118);var p=a(53296);var Tar=function(r){if(!(this instanceof Tar)){return new Tar(r)}r=this.options=p.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=c.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,a){var c=this;i.mtime=i.date;function append(r,l){if(r){a(r);return}c.engine.entry(i,l,(function(r){a(r,i)}))}if(i.sourceType==="buffer"){append(null,r)}else if(i.sourceType==="stream"&&i.stats){i.size=i.stats.size;var l=c.engine.entry(i,(function(r){a(r,i)}));r.pipe(l)}else if(i.sourceType==="stream"){p.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},22836:(r,i,a)=>{
/**
* 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 c=a(41622);var l=a(53296);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 c(r)};Zip.prototype.append=function(r,i,a){this.engine.entry(r,i,a)};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},97329:function(r,i){(function(r,a){true?a(i):0})(this,(function(r){"use strict";function apply(r,...i){return(...a)=>r(...i,...a)}function initialParams(r){return function(...i){var a=i.pop();return r.call(this,i,a)}}var i=typeof queueMicrotask==="function"&&queueMicrotask;var a=typeof setImmediate==="function"&&setImmediate;var c=typeof process==="object"&&typeof process.nextTick==="function";function fallback(r){setTimeout(r,0)}function wrap(r){return(i,...a)=>r((()=>i(...a)))}var l;if(i){l=queueMicrotask}else if(a){l=setImmediate}else if(c){l=process.nextTick}else{l=fallback}var p=wrap(l);function asyncify(r){if(isAsync(r)){return function(...i){const a=i.pop();const c=r.apply(this,i);return handlePromise(c,a)}}return initialParams((function(i,a){var c;try{c=r.apply(this,i)}catch(r){return a(r)}if(c&&typeof c.then==="function"){return handlePromise(c,a)}else{a(null,c)}}))}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,a){try{r(i,a)}catch(r){p((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(...a){if(typeof a[i-1]==="function"){return r.apply(this,a)}return new Promise(((c,l)=>{a[i-1]=(r,...i)=>{if(r)return l(r);c(i.length>1?i:i[0])};r.apply(this,a)}))}return awaitable}function applyEach$1(r){return function applyEach(i,...a){const c=awaitify((function(c){var l=this;return r(i,((r,i)=>{wrapAsync(r).apply(l,a.concat(i))}),c)}));return c}}function _asyncMap(r,i,a,c){i=i||[];var l=[];var p=0;var d=wrapAsync(a);return r(i,((r,i,a)=>{var c=p++;d(r,((r,i)=>{l[c]=i;a(r)}))}),(r=>{c(r,l)}))}function isArrayLike(r){return r&&typeof r.length==="number"&&r.length>=0&&r.length%1===0}const d={};var u=d;function once(r){function wrapper(...i){if(r===null)return;var a=r;r=null;a.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 a=r.length;return function next(){return++i<a?{value:r[i],key:i}:null}}function createES2015Iterator(r){var i=-1;return function next(){var a=r.next();if(a.done)return null;i++;return{value:a.value,key:i}}}function createObjectIterator(r){var i=r?Object.keys(r):[];var a=-1;var c=i.length;return function next(){var l=i[++a];if(l==="__proto__"){return next()}return a<c?{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 a=r;r=null;a.apply(this,i)}}function asyncEachOfLimit(r,i,a,c){let l=false;let p=false;let d=false;let A=0;let h=0;function replenish(){if(A>=i||d||l)return;d=true;r.next().then((({value:r,done:i})=>{if(p||l)return;d=false;if(i){l=true;if(A<=0){c(null)}return}A++;a(r,h,iterateeCallback);h++;replenish()})).catch(handleError)}function iterateeCallback(r,i){A-=1;if(p)return;if(r)return handleError(r);if(r===false){l=true;p=true;return}if(i===u||l&&A<=0){l=true;return c(null)}replenish()}function handleError(r){if(p)return;d=false;l=true;c(r)}replenish()}var eachOfLimit$2=r=>(i,a,c)=>{c=once(c);if(r<=0){throw new RangeError("concurrency limit cannot be less than 1")}if(!i){return c(null)}if(isAsyncGenerator(i)){return asyncEachOfLimit(i,r,a,c)}if(isAsyncIterable(i)){return asyncEachOfLimit(i[Symbol.asyncIterator](),r,a,c)}var l=createIterator(i);var p=false;var d=false;var A=0;var h=false;function iterateeCallback(r,i){if(d)return;A-=1;if(r){p=true;c(r)}else if(r===false){p=true;d=true}else if(i===u||p&&A<=0){p=true;return c(null)}else if(!h){replenish()}}function replenish(){h=true;while(A<r&&!p){var i=l();if(i===null){p=true;if(A<=0){c(null)}return}A+=1;a(i.value,i.key,onlyOnce(iterateeCallback))}h=false}replenish()};function eachOfLimit(r,i,a,c){return eachOfLimit$2(i)(r,Line truncated
/*! crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */
var a;(function(r){if(typeof DO_NOT_EXPORT_CRC==="undefined"){if(true){r(i)}else{}}else{r(a={})}})((function(r){r.version="1.2.2";function signed_crc_table(){var r=0,i=new Array(256);for(var a=0;a!=256;++a){r=a;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[a]=r}return typeof Int32Array!=="undefined"?new Int32Array(i):i}var i=signed_crc_table();function slice_by_16_tables(r){var i=0,a=0,c=0,l=typeof Int32Array!=="undefined"?new Int32Array(4096):new Array(4096);for(c=0;c!=256;++c)l[c]=r[c];for(c=0;c!=256;++c){a=r[c];for(i=256+c;i<4096;i+=256)a=l[i]=a>>>8^r[a&255]}var p=[];for(c=1;c!=16;++c)p[c-1]=typeof Int32Array!=="undefined"?l.subarray(c*256,c*256+256):l.slice(c*256,c*256+256);return p}var a=slice_by_16_tables(i);var c=a[0],l=a[1],p=a[2],d=a[3],u=a[4];var A=a[5],h=a[6],b=a[7],g=a[8],M=a[9];var y=a[10],O=a[11],z=a[12],C=a[13],B=a[14];function crc32_bstr(r,a){var c=a^-1;for(var l=0,p=r.length;l<p;)c=c>>>8^i[(c^r.charCodeAt(l++))&255];return~c}function crc32_buf(r,a){var I=a^-1,v=r.length-15,w=0;for(;w<v;)I=B[r[w++]^I&255]^C[r[w++]^I>>8&255]^z[r[w++]^I>>16&255]^O[r[w++]^I>>>24]^y[r[w++]]^M[r[w++]]^g[r[w++]]^b[r[w++]]^h[r[w++]]^A[r[w++]]^u[r[w++]]^d[r[w++]]^p[r[w++]]^l[r[w++]]^c[r[w++]]^i[r[w++]];v+=15;while(w<v)I=I>>>8^i[(I^r[w++])&255];return~I}function crc32_str(r,a){var c=a^-1;for(var l=0,p=r.length,d=0,u=0;l<p;){d=r.charCodeAt(l++);if(d<128){c=c>>>8^i[(c^d)&255]}else if(d<2048){c=c>>>8^i[(c^(192|d>>6&31))&255];c=c>>>8^i[(c^(128|d&63))&255]}else if(d>=55296&&d<57344){d=(d&1023)+64;u=r.charCodeAt(l++)&1023;c=c>>>8^i[(c^(240|d>>8&7))&255];c=c>>>8^i[(c^(128|d>>2&63))&255];c=c>>>8^i[(c^(128|u>>6&15|(d&3)<<4))&255];c=c>>>8^i[(c^(128|u&63))&255]}else{c=c>>>8^i[(c^(224|d>>12&15))&255];c=c>>>8^i[(c^(128|d>>6&63))&255];c=c>>>8^i[(c^(128|d&63))&255]}}return~c}r.table=i;r.bstr=crc32_bstr;r.buf=crc32_buf;r.str=crc32_str}))},3662:(r,i,a)=>{"use strict";const{Transform:c}=a(29963);const l=a(84891);class CRC32Stream extends c{constructor(r){super(r);this.checksum=Buffer.allocUnsafe(4);this.checksum.writeInt32BE(0,0);this.rawSize=0}_transform(r,i,a){if(r){this.checksum=l.buf(r,this.checksum)>>>0;this.rawSize+=r.length}a(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},76252:(r,i,a)=>{"use strict";const{DeflateRaw:c}=a(43106);const l=a(84891);class DeflateCRC32Stream extends c{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,a){if(r){this.checksum=l.buf(r,this.checksum)>>>0;this.rawSize+=r.length}super._transform(r,i,a)}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},82770:(r,i,a)=>{"use strict";r.exports={CRC32Stream:a(3662),DeflateCRC32Stream:a(76252)}},6110:(r,i,a)=>{i.formatArgs=formatArgs;i.save=save;i.load=load;i.useColors=useColors;i.storage=localstorage();i.destroy=(()=>{let r=false;return()=>{if(!r){r=true;console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}}})();i.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function useColors(){if(typeof window!=="undefined"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)){return true}if(typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)){return false}return typeof document!=="undefined"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window!=="undefined"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgeLine 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 a=new WeakMap;const c=new WeakMap;function pd(r){const i=a.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){a.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 c=Object.keys(i);for(let r=0;r<c.length;++r){const i=c[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);c.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 a=Object.keys(i);if(a.length===0){return r}function CustomEvent(i,a){r.call(this,i,a)}CustomEvent.prototype=Object.create(r.prototype,{constructor:{value:CustomEvent,configurable:true,writable:true}});for(let c=0;c<a.length;++c){const l=a[c];if(!(l in r.prototype)){const r=Object.getOwnPropertyDescriptor(i,l);const a=typeof r.value==="function";Object.defineProperty(CustomEvent.prototype,l,a?defineCallDescriptor(l):defineRedirectDescriptor(l))}}return CustomEvent}function getWrapper(r){if(r==null||r===Object.prototype){return Event}let i=c.get(r);if(i==null){i=defineWrapper(getWrapper(Object.getPrototypeOf(r)),r);c.set(r,i)}return i}function wrapEvent(r,i){const a=getWrapper(Object.getPrototypeOf(i));return new a(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 p=1;const d=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 a=i.get(r);while(a!=null){if(a.listenerType===u){return a.listener}a=a.next}return null},set(i){if(typeof i!=="function"&&!isObject(i)){i=null}const a=getListeners(this);let c=null;let l=a.get(r);while(l!=null){if(l.listenerType===u){if(c!==null){c.next=l.next}else if(l.next!==null){a.set(r,l.next)}else{a.delete(r)}}else{c=l}l=l.next}if(i!==null){const l={listener:i,listenerType:u,passive:false,once:false,next:null};if(c===null){a.set(r,l)}else{c.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(a){var c=true&&i;var l=true&&r&&r.exports==c&&r;var p=typeof global=="object"&&global;if(p.global===p||p.window===p){a=p}var d=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;var u=/[\x01-\x7F]/g;var A=/[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g;var h=/<\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 b={"­":"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
/**
* @preserve
* JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013)
*
* @author <a href="mailto:jensyt@gmail.com">Jens Taylor</a>
* @see http://github.com/homebrewing/brauhaus-diff
* @author <a href="mailto:gary.court@gmail.com">Gary Court</a>
* @see http://github.com/garycourt/murmurhash-js
* @author <a href="mailto:aappleby@gmail.com">Austin Appleby</a>
* @see http://sites.google.com/site/murmurhash/
*/
(function(){var i;function MurmurHash3(r,a){var c=this instanceof MurmurHash3?this:i;c.reset(a);if(typeof r==="string"&&r.length>0){c.hash(r)}if(c!==this){return c}}MurmurHash3.prototype.hash=function(r){var i,a,c,l,p;p=r.length;this.len+=p;a=this.k1;c=0;switch(this.rem){case 0:a^=p>c?r.charCodeAt(c++)&65535:0;case 1:a^=p>c?(r.charCodeAt(c++)&65535)<<8:0;case 2:a^=p>c?(r.charCodeAt(c++)&65535)<<16:0;case 3:a^=p>c?(r.charCodeAt(c)&255)<<24:0;a^=p>c?(r.charCodeAt(c++)&65280)>>8:0}this.rem=p+this.rem&3;p-=this.rem;if(p>0){i=this.h1;while(1){a=a*11601+(a&65535)*3432906752&4294967295;a=a<<15|a>>>17;a=a*13715+(a&65535)*461832192&4294967295;i^=a;i=i<<13|i>>>19;i=i*5+3864292196&4294967295;if(c>=p){break}a=r.charCodeAt(c++)&65535^(r.charCodeAt(c++)&65535)<<8^(r.charCodeAt(c++)&65535)<<16;l=r.charCodeAt(c++);a^=(l&255)<<24^(l&65280)>>8}a=0;switch(this.rem){case 3:a^=(r.charCodeAt(c+2)&65535)<<16;case 2:a^=(r.charCodeAt(c+1)&65535)<<8;case 1:a^=r.charCodeAt(c)&65535}this.h1=i}this.k1=a;return this};MurmurHash3.prototype.result=function(){var r,i;r=this.k1;i=this.h1;if(r>0){r=r*11601+(r&65535)*3432906752&4294967295;r=r<<15|r>>>17;r=r*13715+(r&65535)*461832192&4294967295;i^=r}i^=this.len;i^=i>>>16;i=i*51819+(i&65535)*2246770688&4294967295;i^=i>>>13;i=i*44597+(i&65535)*3266445312&4294967295;i^=i>>>16;return i>>>0};MurmurHash3.prototype.reset=function(r){this.h1=typeof r==="number"?r:0;this.rem=this.k1=this.len=0;return this};i=new MurmurHash3;if(true){r.exports=MurmurHash3}else{}})()},39598:(r,i,a)=>{try{var c=a(39023);if(typeof c.inherits!=="function")throw"";r.exports=c.inherits}catch(i){r.exports=a(26589)}},26589:r=>{if(typeof Object.create==="function"){r.exports=function inherits(r,i){if(i){r.super_=i;r.prototype=Object.create(i.prototype,{constructor:{value:r,enumerable:false,writable:true,configurable:true}})}}}else{r.exports=function inherits(r,i){if(i){r.super_=i;var TempCtor=function(){};TempCtor.prototype=i.prototype;r.prototype=new TempCtor;r.prototype.constructor=r}}}},68850:(r,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:true});i.AddressError=void 0;class AddressError extends Error{constructor(r,i){super(r);this.name="AddressError";if(i!==null){this.parseMessage=i}}}i.AddressError=AddressError},45864:(r,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:true});i.isCorrect=i.isInSubnet=void 0;function isInSubnet(r){if(this.subnetMask<r.subnetMask){return false}if(this.mask(r.subnetMask)===r.mask()){return true}return false}i.isInSubnet=isInSubnet;function isCorrect(r){return function(){if(this.addressMinusSuffix!==this.correctForm()){return false}if(this.subnetMask===r&&!this.parsedSubnet){return true}return this.parsedSubnet===String(this.subnetMask)}}i.isCorrect=isCorrect},79253:function(r,i,a){"use strict";var c=this&&this.__createBinding||(Object.create?function(r,i,a,c){if(c===undefined)c=a;var l=Object.getOwnPropertyDescriptor(i,a);if(!l||("get"in l?!i.__esModule:l.writable||l.configurable)){l={enumerable:true,get:function(){return i[a]}}}Object.defineProperty(r,c,l)}:function(r,i,a,c){if(c===undefined)c=a;r[c]=i[a]});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 p=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))c(i,r,a);l(i,r);return i};Object.defineProperty(i,"__esModule",{value:true});i.v6=i.AddressError=i.Address6=i.Address4=void 0;const d=a(17946);Object.defineProperty(i,"Address4",{enumerable:true,get:function(){return d.Address4}});const u=a(38096);Object.defineProperty(i,"Address6",{enumerable:true,get:function(){return u.Address6}});const A=a(68850);Object.defineProperty(i,"AddressError",{enumerable:true,get:function(){return A.AddressError}});const h=p(a(20339));i.v6={helpers:h}},17946:function(r,i,a){"use strict";var c=this&&this.__createBinding||(Object.create?function(r,i,a,c){if(c===undefined)c=a;var l=Object.getOwnPropertyDescriptor(i,a);if(!l||("get"in l?!i.__esModule:l.writable||l.configurable)){l={enumerable:true,get:function(){return i[a]}}}Object.defineProperty(r,c,l)}:function(r,i,a,c){if(c===undefined)c=a;r[c]=i[a]});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 p=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))c(i,r,a);l(i,r);return i};Object.defineProperty(i,"__esModule",{value:true});i.Address4=void 0;const d=p(a(45864));const u=p(a(66437));const A=a(68850);const h=a(95947);const b=a(19973);class Address4{constructor(r){this.groups=u.GROUPS;this.parsedAddress=[];this.parsedSubnet="";this.subnet="/32";this.subnetMask=32;this.v4=true;this.isCorrect=d.isCorrect(u.BITS);this.isInSubnet=d.isInSubnet;this.Line truncated
/*! /*!
* is-plain-object <https://github.com/jonschlinkert/is-plain-object> * is-plain-object <https://github.com/jonschlinkert/is-plain-object>
* *
* Copyright (c) 2014-2017, Jon Schlinkert. * Copyright (c) 2014-2017, Jon Schlinkert.
* Released under the MIT License. * Released under the MIT License.
*/function isObject(p){return Object.prototype.toString.call(p)==="[object Object]"}function isPlainObject(p){var a,r;if(isObject(p)===false)return false;a=p.constructor;if(a===undefined)return true;r=a.prototype;if(isObject(r)===false)return false;if(r.hasOwnProperty("isPrototypeOf")===false){return false}return true}a.isPlainObject=isPlainObject},4329:p=>{"use strict";function e(p){this.message=p}e.prototype=new Error,e.prototype.name="InvalidCharacterError";var a="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(p){var a=String(p).replace(/=+$/,"");if(a.length%4==1)throw new e("'atob' failed: The string to be decoded is not correctly encoded.");for(var r,d,i=0,b=0,c="";d=a.charAt(b++);~d&&(r=i%4?64*r+d:d,i++%4)?c+=String.fromCharCode(255&r>>(-2*i&6)):0)d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(d);return c};function t(p){var r=p.replace(/-/g,"+").replace(/_/g,"/");switch(r.length%4){case 0:break;case 2:r+="==";break;case 3:r+="=";break;default:throw"Illegal base64url string!"}try{return function(p){return decodeURIComponent(a(p).replace(/(.)/g,(function(p,a){var r=a.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r})))}(r)}catch(p){return a(r)}}function n(p){this.message=p}function o(p,a){if("string"!=typeof p)throw new n("Invalid token specified");var r=!0===(a=a||{}).header?0:1;try{return JSON.parse(t(p.split(".")[r]))}catch(p){throw new n("Invalid token specified: "+p.message)}}n.prototype=new Error,n.prototype.name="InvalidTokenError";const r=o;r.default=o,r.InvalidTokenError=n,p.exports=r},7129:(p,a,r)=>{"use strict";const d=r(665);const i=Symbol("max");const b=Symbol("length");const c=Symbol("lengthCalculator");const M=Symbol("allowStale");const z=Symbol("maxAge");const u=Symbol("dispose");const O=Symbol("noDisposeOnSet");const l=Symbol("lruList");const A=Symbol("cache");const m=Symbol("updateAgeOnGet");const naiveLength=()=>1;class LRUCache{constructor(p){if(typeof p==="number")p={max:p};if(!p)p={};if(p.max&&(typeof p.max!=="number"||p.max<0))throw new TypeError("max must be a non-negative number");const a=this[i]=p.max||Infinity;const r=p.length||naiveLength;this[c]=typeof r!=="function"?naiveLength:r;this[M]=p.stale||false;if(p.maxAge&&typeof p.maxAge!=="number")throw new TypeError("maxAge must be a number");this[z]=p.maxAge||0;this[u]=p.dispose;this[O]=p.noDisposeOnSet||false;this[m]=p.updateAgeOnGet||false;this.reset()}set max(p){if(typeof p!=="number"||p<0)throw new TypeError("max must be a non-negative number");this[i]=p||Infinity;trim(this)}get max(){return this[i]}set allowStale(p){this[M]=!!p}get allowStale(){return this[M]}set maxAge(p){if(typeof p!=="number")throw new TypeError("maxAge must be a non-negative number");this[z]=p;trim(this)}get maxAge(){return this[z]}set lengthCalculator(p){if(typeof p!=="function")p=naiveLength;if(p!==this[c]){this[c]=p;this[b]=0;this[l].forEach((p=>{p.length=this[c](p.value,p.key);this[b]+=p.length}))}trim(this)}get lengthCalculator(){return this[c]}get length(){return this[b]}get itemCount(){return this[l].length}rforEach(p,a){a=a||this;for(let r=this[l].tail;r!==null;){const d=r.prev;forEachStep(this,p,r,a);r=d}}forEach(p,a){a=a||this;for(let r=this[l].head;r!==null;){const d=r.next;forEachStep(this,p,r,a);r=d}}keys(){return this[l].toArray().map((p=>p.key))}values(){return this[l].toArray().map((p=>p.value))}reset(){if(this[u]&&this[l]&&this[l].length){this[l].forEach((p=>this[u](p.key,p.value)))}this[A]=new Map;this[l]=new d;this[b]=0}dump(){return this[l].map((p=>isStale(this,p)?false:{k:p.key,v:p.value,e:p.now+(p.maxAge||0)})).toArray().filter((p=>p))}dumpLru(){return this[l]}set(p,a,r){r=r||this[z];if(r&&typeof r!=="number")throw new TypeError("maxAge must be a number");const d=r?Date.now():0;const M=this[c](a,p);if(this[A].has(p)){if(M>this[i]){del(this,this[A].get(p));return false}const c=this[A].get(p);const z=c.value;if(this[u]){if(!this[O])this[u](p,z.value)}z.now=d;z.maxAge=r;z.value=a;this[b]+=M-z.length;z.length=M;this.get(p);trim(this);return true}const m=new Entry(p,a,M,d,r);if(m.length>this[i]){if(this[u])this[u](p,a);return false}this[b]+=m.length;this[l].unshift(m);this[A].set(p,this[l].head);trim(this);return true}has(p){if(!this[A].has(p))return false;const a=this[A].get(p).value;return!isStale(this,a)}get(p){return get(this,p,true)}peek(p){return get(this,p,false)}pop(){const p=this[l].tail;if(!p)return null;del(this,p);return p.value}del(p){del(this,this[A].get(p))}load(p){this.reset();const a=Date.now();for(let r=p.length-1;r>=0;r--){const d=p[r];const i=d.e||0;if(i===0)this.set(d.k,d.v);else{const p=i-a;if(p>0){this.set(d.k,d.v,p)}}}}prune(){this[A].forEach(((p,a)=>get(this,a,false)))}}const get=(p,a,r)=>{const d=p[A].get(a);if(d){const a=d.value;if(isStale(p,a)){del(p,d);if(!p[M])return undefined}else{if(r){if(p[m])d.value.now=Date.now();p[l].unshiftNode(d)}}return a.value}};const isStale=(p,a)=>{if(!a||!a.maxAge&&!p[z])return false;const Line truncated */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},96543: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},82513:r=>{var i={}.toString;r.exports=Array.isArray||function(r){return i.call(r)=="[object Array]"}},95947:function(r,i){(function(){var a;var c=0xdeadbeefcafe;var l=(c&16777215)==15715070;function BigInteger(r,i,a){if(r!=null)if("number"==typeof r)this.fromNumber(r,i,a);else if(i==null&&"string"!=typeof r)this.fromString(r,256);else this.fromString(r,i)}function nbi(){return new BigInteger(null)}function am1(r,i,a,c,l,p){while(--p>=0){var d=i*this[r++]+a[c]+l;l=Math.floor(d/67108864);a[c++]=d&67108863}return l}function am2(r,i,a,c,l,p){var d=i&32767,u=i>>15;while(--p>=0){var A=this[r]&32767;var h=this[r++]>>15;var b=u*A+h*d;A=d*A+((b&32767)<<15)+a[c]+(l&1073741823);l=(A>>>30)+(b>>>15)+u*h+(l>>>30);a[c++]=A&1073741823}return l}function am3(r,i,a,c,l,p){var d=i&16383,u=i>>14;while(--p>=0){var A=this[r]&16383;var h=this[r++]>>14;var b=u*A+h*d;A=d*A+((b&16383)<<14)+a[c]+l;l=(A>>28)+(b>>14)+u*h;a[c++]=A&268435455}return l}var p=typeof navigator!=="undefined";if(p&&l&&navigator.appName=="Microsoft Internet Explorer"){BigInteger.prototype.am=am2;a=30}else if(p&&l&&navigator.appName!="Netscape"){BigInteger.prototype.am=am1;a=26}else{BigInteger.prototype.am=am3;a=28}BigInteger.prototype.DB=a;BigInteger.prototype.DM=(1<<a)-1;BigInteger.prototype.DV=1<<a;var d=52;BigInteger.prototype.FV=Math.pow(2,d);BigInteger.prototype.F1=d-a;BigInteger.prototype.F2=2*a-d;var u="0123456789abcdefghijklmnopqrstuvwxyz";var A=new Array;var h,b;h="0".charCodeAt(0);for(b=0;b<=9;++b)A[h++]=b;h="a".charCodeAt(0);for(b=10;b<36;++b)A[h++]=b;h="A".charCodeAt(0);for(b=10;b<36;++b)A[h++]=b;function int2char(r){return u.charAt(r)}function intAt(r,i){var a=A[r.charCodeAt(i)];return a==null?-1:a}function bnpCopyTo(r){for(var i=this.t-1;i>=0;--i)r[i]=this[i];r.t=this.t;r.s=this.s}function bnpFromInt(r){this.t=1;this.s=r<0?-1:0;if(r>0)this[0]=r;else if(r<-1)this[0]=r+this.DV;else this.t=0}function nbv(r){var i=nbi();i.fromInt(r);return i}function bnpFromString(r,i){var a;if(i==16)a=4;else if(i==8)a=3;else if(i==256)a=8;else if(i==2)a=1;else if(i==32)a=5;else if(i==4)a=2;else{this.fromRadix(r,i);return}this.t=0;this.s=0;var c=r.length,l=false,p=0;while(--c>=0){var d=a==8?r[c]&255:intAt(r,c);if(d<0){if(r.charAt(c)=="-")l=true;continue}l=false;if(p==0)this[this.t++]=d;else if(p+a>this.DB){this[this.t-1]|=(d&(1<<this.DB-p)-1)<<p;this[this.t++]=d>>this.DB-p}else this[this.t-1]|=d<<p;p+=a;if(p>=this.DB)p-=this.DB}if(a==8&&(r[0]&128)!=0){this.s=-1;if(p>0)this[this.t-1]|=(1<<this.DB-p)-1<<p}this.clamp();if(l)BigInteger.ZERO.subTo(this,this)}function bnpClamp(){var r=this.s&this.DM;while(this.t>0&&this[this.t-1]==r)--this.t}function bnToString(r){if(this.s<0)return"-"+this.negate().toString(r);var i;if(r==16)i=4;else if(r==8)i=3;else if(r==2)i=1;else if(r==32)i=5;else if(r==4)i=2;else return this.toRadix(r);var a=(1<<i)-1,c,l=false,p="",d=this.t;var u=this.DB-d*this.DB%i;if(d-- >0){if(u<this.DB&&(c=this[d]>>u)>0){l=true;p=int2char(c)}while(d>=0){if(u<i){c=(this[d]&(1<<u)-1)<<i-u;c|=this[--d]>>(u+=this.DB-i)}else{c=this[d]>>(u-=i)&a;if(u<=0){u+=this.DB;--d}}if(c>0)l=true;if(l)p+=int2char(c)}}return l?p:"0"}function bnNegate(){var r=nbi();BigInteger.ZERO.subTo(this,r);return r}function bnAbs(){return this.s<0?this.negate():this}function bnCompareTo(r){var i=this.s-r.s;if(i!=0)return i;var a=this.t;i=a-r.t;if(i!=0)return this.s<0?-i:i;while(--a>=0)if((i=this[a]-r[a])!=0)return i;return 0}function nbits(r){var i=1,a;if((a=r>>>16)!=0){r=a;i+=16}if((a=r>>8)!=0){r=a;i+=8}if((a=r>>4)!=0){r=a;i+=4}if((a=r>>2)!=0){r=a;i+=2}if((a=r>>1)!=0){r=a;i+=1}return i}function bnBitLength(){if(this.t<=0)return 0;return this.DB*(this.t-1)+nbits(this[this.t-1]^this.s&this.DM)}function bnpDLShiftTo(r,i){var a;for(a=this.t-1;a>=0;--a)i[a+r]=this[a];for(a=r-1;a>=0;--a)i[a]=0;i.t=this.t+r;i.s=this.s}function bnpDRShiftTo(r,i){for(var a=r;a<this.t;++a)i[a-r]=this[a];i.t=Math.max(this.t-r,0);i.s=this.s}function bnpLShiftTo(r,i){var a=r%this.DB;var c=this.DB-a;var l=(1<<c)-1;var p=Math.floor(r/this.DB),d=this.s<<a&this.DM,u;for(u=this.t-1;u>=0;--u){i[u+p+1]=this[u]>>c|d;d=(this[u]&l)<<a}for(u=p-1;u>=0;--u)i[u]=0;i[p]=d;i.t=this.t+p+1;i.s=this.s;i.clamp()}funLine truncated
/**
* @license
* Copyright (c) 2010-2012 Mikeal Rogers
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an "AS
* IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*/if(new d.URL(r.url).hostname!==u.hostname){r.headers.delete("authorization");r.headers.delete("cookie")}if(i.status===303||r.method==="POST"&&[301,302].includes(i.status)){c.method="GET";c.body=null;r.headers.delete("content-length")}c.headers={};r.headers.forEach(((r,i)=>{c.headers[i]=r}));c.counter=++r.counter;const A=new l(d.format(u),c);return{request:A,options:c}};const fetch=async(r,i)=>{const a=u.storable(r,i)?await A(r,i):await h(r,i);if(!["GET","HEAD"].includes(r.method)&&a.status>=200&&a.status<=399){await A.invalidate(r,i)}if(!canFollowRedirect(r,a,i)){return a}const c=getRedirect(r,a,i);return fetch(c.request,c.options)};r.exports=fetch},39310:(r,i,a)=>{const{FetchError:c,Headers:l,Request:p,Response:d}=a(88483);const u=a(99824);const A=a(67242);const makeFetchHappen=(r,i)=>{const a=u(i);const c=new p(r,a);return A(c,a)};makeFetchHappen.defaults=(r,i={},a=makeFetchHappen)=>{if(typeof r==="object"){i=r;r=null}const defaultedFetch=(c,l={})=>{const p=c||r;const d={...i,...l,headers:{...i.headers,...l.headers}};return a(p,d)};defaultedFetch.defaults=(r,i={})=>makeFetchHappen.defaults(r,i,defaultedFetch);return defaultedFetch};r.exports=makeFetchHappen;r.exports.FetchError=c;r.exports.Headers=l;r.exports.Request=p;r.exports.Response=d},99824:(r,i,a)=>{const c=a(72250);const l=["if-modified-since","if-none-match","if-unmodified-since","if-match","if-range"];const configureOptions=r=>{const{strictSSL:i,...a}={...r};a.method=a.method?a.method.toUpperCase():"GET";if(i===undefined||i===null){a.rejectUnauthorized=process.env.NODE_TLS_REJECT_UNAUTHORIZED!=="0"}else{a.rejectUnauthorized=i!==false}if(!a.retry){a.retry={retries:0}}else if(typeof a.retry==="string"){const r=parseInt(a.retry,10);if(isFinite(r)){a.retry={retries:r}}else{a.retry={retries:0}}}else if(typeof a.retry==="number"){a.retry={retries:a.retry}}else{a.retry={retries:0,...a.retry}}a.dns={ttl:5*60*1e3,lookup:c.lookup,...a.dns};a.cache=a.cache||"default";if(a.cache==="default"){const r=Object.keys(a.headers||{}).some((r=>l.includes(r.toLowerCase())));if(r){a.cache="no-store"}}a.cacheAdditionalHeaders=a.cacheAdditionalHeaders||[];if(a.cacheManager&&!a.cachePath){a.cachePath=a.cacheManager}return a};r.exports=configureOptions},22314:(r,i,a)=>{"use strict";const c=a(52899);class CachingMinipassPipeline extends c{#d=[];#z=new Map;constructor(r,...i){super();this.#d=r.events;if(i.length){this.push(...i)}}on(r,i){if(this.#d.includes(r)&&this.#z.has(r)){return i(...this.#z.get(r))}return super.on(r,i)}emit(r,...i){if(this.#d.includes(r)){this.#z.set(r,i)}return super.emit(r,...i)}}r.exports=CachingMinipassPipeline},20766:(r,i,a)=>{const{Minipass:c}=a(78275);const l=a(88483);const p=a(90390);const d=a(68951);const{log:u}=a(26687);const A=a(22314);const{getAgent:h}=a(57995);const b=a(96734);const g=`${b.name}/${b.version} (+https://npm.im/${b.name})`;const M=["ECONNRESET","ECONNREFUSED","EADDRINUSE","ETIMEDOUT","ECONNECTIONTIMEOUT","EIDLETIMEOUT","ERESPONSETIMEOUT","ETRANSFERTIMEOUT"];const y=["request-timeout"];const remoteFetch=(r,i)=>{const a=h(r.url,{...i,signal:undefined});if(!r.headers.has("connection")){r.headers.set("connection",a?"keep-alive":"close")}if(!r.headers.has("user-agent")){r.headers.set("user-agent",g)}const b={...i,agent:a,redirect:"manual"};return p((async(a,p)=>{const h=new l.Request(r,b);try{let r=await l(h,b);if(b.integrity&&r.status===200){const i=d.integrityStream({algorithms:b.algorithms,integrity:b.integrity,size:b.size});const a=new A({events:["integrity","size"]},r.body,i);i.on("integrity",(r=>a.emit("integrity",r)));i.on("size",(r=>a.emit("size",r)));r=new l.Response(a,r);r.body.hasIntegrityEmitter=true}r.headers.set("x-fetch-attempts",p);const g=c.isStream(h.body);const M=h.method!=="POST"&&!g&&([408,420,429].includes(r.status)||r.status>=500);if(M){if(typeof i.onRetry==="function"){i.onRetry(r)}u.http("fetch",`${h.method} ${h.url} attempt ${p} failed with ${r.status}`);return a(r)}return r}catch(r){const c=r.code==="EPROMISERETRY"?r.retried.code:r.code;const d=r.retried instanceof l.Response||M.includes(c)&&y.includes(r.type);if(h.method==="POST"||d){throw r}if(typeof i.onRetry==="function"){i.onRetry(r)}u.http("fetch",`${h.method} ${h.url} attempt ${p} failed with ${r.code}`);return a(r)}}),i.retry).catch((r=>{if(r.status>=400&&r.type!=="system"){return r}throw r}))};r.exports=remoteFetch},99829:(r,i,a)=>{
/*!
* mime-db
* Copyright(c) 2014 Jonathan Ong
* Copyright(c) 2015-2022 Douglas Christopher Wilson
* MIT Licensed
*/
r.exports=a(81813)},14096:(r,i,a)=>{"use strict";
/*!
* mime-types
* Copyright(c) 2014 Jonathan Ong
* Copyright(c) 2015 Douglas Christopher Wilson
* MIT Licensed
*/var c=a(99829);var l=a(16928).extname;var p=/^\s*([^;\s]*)(?:;|\s|$)/;var d=/^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=p.exec(r);var a=i&&c[i[1].toLowerCase()];if(a&&a.charset){return a.charset}if(i&&d.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 c=i.charset(a);if(c)a+="; charset="+c.toLowerCase()}return a}function extension(r){if(!r||typeof r!=="string"){return false}var a=p.exec(r);var c=a&&i.extensions[a[1].toLowerCase()];if(!c||!c.length){return false}return c[0]}function lookup(r){if(!r||typeof r!=="string"){return false}var a=l("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(c).forEach((function forEachMimeType(l){var p=c[l];var d=p.extensions;if(!d||!d.length){return}r[l]=d;for(var u=0;u<d.length;u++){var A=d[u];if(i[A]){var h=a.indexOf(c[i[A]].source);var b=a.indexOf(p.source);if(i[A]!=="application/octet-stream"&&(h>b||h===b&&i[A].substr(0,12)==="application/")){continue}}i[A]=l}}))}},43772:(r,i,a)=>{r.exports=minimatch;minimatch.Minimatch=Minimatch;var c=function(){try{return a(16928)}catch(r){}}()||{sep:"/"};minimatch.sep=c.sep;var l=minimatch.GLOBSTAR=Minimatch.GLOBSTAR={};var p=a(73783);var d={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}};var u="[^/]";var A=u+"*?";var h="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?";var b="(?:(?!(?:\\/|^)\\.).)*?";var g=charSet("().*{}+?[]^$\\!");function charSet(r){return r.split("").reduce((function(r,i){r[i]=true;return r}),{})}var M=/\/+/;minimatch.filter=filter;function filter(r,i){i=i||{};return function(a,c,l){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,c,l){return i(a,c,ext(r,l))};a.Minimatch=function Minimatch(a,c){return new i.Minimatch(a,ext(r,c))};a.Minimatch.defaults=function defaults(a){return i.defaults(ext(r,a)).Minimatch};a.filter=function filter(a,c){return i.filter(a,ext(r,c))};a.defaults=function defaults(a){return i.defaults(ext(r,a))};a.makeRe=function makeRe(a,c){return i.makeRe(a,ext(r,c))};a.braceExpand=function braceExpand(a,c){return i.braceExpand(a,ext(r,c))};a.match=function(a,c,l){return i.match(a,c,ext(r,l))};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&&c.sep!=="/"){r=r.split(c.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(M)}));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 c=0;if(a.nonegate)return;for(var l=0,p=r.length;l<p&&r.charAt(l)==="!";l++){i=!i;c++}if(c)this.pattern=r.substr(c);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 p(r)}var y=1024*64;var assertValidPattern=function(r){if(typeof r!=="string"){throw new TypeError("invalid pattern")}if(r.length>y){throw new TypeError("pattern is too long")}};Minimatch.prototype.parse=parse;var O={};function parse(r,i){assertValidPattern(r);var a=this.options;if(r==="**"){if(!a.noglobstar)return l;else r=Line truncated
//! moment-timezone.js //! moment-timezone.js
//! version : 0.5.43 //! version : 0.6.0
//! Copyright (c) JS Foundation and other contributors //! Copyright (c) JS Foundation and other contributors
//! license : MIT //! license : MIT
//! github.com/moment/moment-timezone //! github.com/moment/moment-timezone
(function(a,d){"use strict";if(true&&p.exports){p.exports=d(r(9623))}else if(typeof define==="function"&&define.amd){define(["moment"],d)}else{d(a.moment)}})(this,(function(p){"use strict";if(p.version===undefined&&p.default){p=p.default}var a="0.5.43",r={},d={},i={},b={},c={},M;if(!p||typeof p.version!=="string"){logError("Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/")}var z=p.version.split("."),u=+z[0],O=+z[1];if(u<2||u===2&&O<6){logError("Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js "+p.version+". See momentjs.com")}function charCodeToInt(p){if(p>96){return p-87}else if(p>64){return p-29}return p-48}function unpackBase60(p){var a=0,r=p.split("."),d=r[0],i=r[1]||"",b=1,c,M=0,z=1;if(p.charCodeAt(0)===45){a=1;z=-1}for(a;a<d.length;a++){c=charCodeToInt(d.charCodeAt(a));M=60*M+c}for(a=0;a<i.length;a++){b=b/60;c=charCodeToInt(i.charCodeAt(a));M+=c*b}return M*z}function arrayToInt(p){for(var a=0;a<p.length;a++){p[a]=unpackBase60(p[a])}}function intToUntil(p,a){for(var r=0;r<a;r++){p[r]=Math.round((p[r-1]||0)+p[r]*6e4)}p[a-1]=Infinity}function mapIndices(p,a){var r=[],d;for(d=0;d<a.length;d++){r[d]=p[a[d]]}return r}function unpack(p){var a=p.split("|"),r=a[2].split(" "),d=a[3].split(""),i=a[4].split(" ");arrayToInt(r);arrayToInt(d);arrayToInt(i);intToUntil(i,d.length);return{name:a[0],abbrs:mapIndices(a[1].split(" "),d),offsets:mapIndices(r,d),untils:i,population:a[5]|0}}function Zone(p){if(p){this._set(unpack(p))}}Zone.prototype={_set:function(p){this.name=p.name;this.abbrs=p.abbrs;this.untils=p.untils;this.offsets=p.offsets;this.population=p.population},_index:function(p){var a=+p,r=this.untils,d;for(d=0;d<r.length;d++){if(a<r[d]){return d}}},countries:function(){var p=this.name;return Object.keys(i).filter((function(a){return i[a].zones.indexOf(p)!==-1}))},parse:function(p){var a=+p,r=this.offsets,d=this.untils,i=d.length-1,b,c,M,z;for(z=0;z<i;z++){b=r[z];c=r[z+1];M=r[z?z-1:z];if(b<c&&tz.moveAmbiguousForward){b=c}else if(b>M&&tz.moveInvalidForward){b=M}if(a<d[z]-b*6e4){return r[z]}}return r[i]},abbr:function(p){return this.abbrs[this._index(p)]},offset:function(p){logError("zone.offset has been deprecated in favor of zone.utcOffset");return this.offsets[this._index(p)]},utcOffset:function(p){return this.offsets[this._index(p)]}};function Country(p,a){this.name=p;this.zones=a}function OffsetAt(p){var a=p.toTimeString();var r=a.match(/\([a-z ]+\)/i);if(r&&r[0]){r=r[0].match(/[A-Z]/g);r=r?r.join(""):undefined}else{r=a.match(/[A-Z]{3,5}/g);r=r?r[0]:undefined}if(r==="GMT"){r=undefined}this.at=+p;this.abbr=r;this.offset=p.getTimezoneOffset()}function ZoneScore(p){this.zone=p;this.offsetScore=0;this.abbrScore=0}ZoneScore.prototype.scoreOffsetAt=function(p){this.offsetScore+=Math.abs(this.zone.utcOffset(p.at)-p.offset);if(this.zone.abbr(p.at).replace(/[^A-Z]/g,"")!==p.abbr){this.abbrScore++}};function findChange(p,a){var r,d;while(d=((a.at-p.at)/12e4|0)*6e4){r=new OffsetAt(new Date(p.at+d));if(r.offset===p.offset){p=r}else{a=r}}return p}function userOffsets(){var p=(new Date).getFullYear()-2,a=new OffsetAt(new Date(p,0,1)),r=[a],d,i,b;for(b=1;b<48;b++){i=new OffsetAt(new Date(p,b,1));if(i.offset!==a.offset){d=findChange(a,i);r.push(d);r.push(new OffsetAt(new Date(d.at+6e4)))}a=i}for(b=0;b<4;b++){r.push(new OffsetAt(new Date(p+b,0,1)));r.push(new OffsetAt(new Date(p+b,6,1)))}return r}function sortZoneScores(p,a){if(p.offsetScore!==a.offsetScore){return p.offsetScore-a.offsetScore}if(p.abbrScore!==a.abbrScore){return p.abbrScore-a.abbrScore}if(p.zone.population!==a.zone.population){return a.zone.population-p.zone.population}return a.zone.name.localeCompare(p.zone.name)}function addToGuesses(p,a){var r,d;arrayToInt(a);for(r=0;r<a.length;r++){d=a[r];c[d]=c[d]||{};c[d][p]=true}}function guessesForUserOffsets(p){var a=p.length,r={},d=[],i,M,z;for(i=0;i<a;i++){z=c[p[i].offset]||{};for(M in z){if(z.hasOwnProperty(M)){r[M]=true}}}for(i in r){if(r.hasOwnProperty(i)){d.push(b[i])}}return d}function rebuildGuess(){try{var p=Intl.DateTimeFormat().resolvedOptions().timeZone;if(p&&p.length>3){var a=b[normalizeName(p)];if(a){return a}logError("Moment Timezone found "+p+" from the Intl api, but did not have that data loaded.")}}catch(p){}var r=userOffsets(),d=r.length,i=guessesForUserOffsets(r),c=[],M,z,u;for(z=0;z<i.length;z++){M=new ZoneScore(getZone(i[z]),d);for(u=0;u<d;u++){M.scoreOffsetAt(r[u])}c.push(M)}c.sort(sortZoneScores);return c.length>0?c[0].zone.name:undefined}function guess(p){if(!M||p){M=rebuildGuess()}return M}function normalizeName(p){return(p||"").toLowerCase().replace(/\//g,"_")}function addZone(p){var a,d,i,c;if(typeof p==="string"){p=[p]}for(a=0;a<p.length;a++){i=p[a].split("|");d=i[0];c=normalizeName(d);r[c]=p[a];b[c]=d;addToGuesses(c,i[2].split(" "))}}function getZone(p,a){p=normalizeName(p);var i=r[p];var c;if(i instanceof Zone){return i}if(typeof i==="string"){i=new Zone(i);r[p]=i;return i}if(d[p]&&a!==getZone&&(c=getZone(d[p],getZone))Line truncated (function(i,c){"use strict";if(true&&r.exports){r.exports=c(a(93350))}else if(typeof define==="function"&&define.amd){define(["moment"],c)}else{c(i.moment)}})(this,(function(r){"use strict";if(r.version===undefined&&r.default){r=r.default}var i="0.6.0",a={},c={},l={},p={},d={},u;if(!r||typeof r.version!=="string"){logError("Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/")}var A=r.version.split("."),h=+A[0],b=+A[1];if(h<2||h===2&&b<6){logError("Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js "+r.version+". See momentjs.com")}function charCodeToInt(r){if(r>96){return r-87}else if(r>64){return r-29}return r-48}function unpackBase60(r){var i=0,a=r.split("."),c=a[0],l=a[1]||"",p=1,d,u=0,A=1;if(r.charCodeAt(0)===45){i=1;A=-1}for(i;i<c.length;i++){d=charCodeToInt(c.charCodeAt(i));u=60*u+d}for(i=0;i<l.length;i++){p=p/60;d=charCodeToInt(l.charCodeAt(i));u+=d*p}return u*A}function arrayToInt(r){for(var i=0;i<r.length;i++){r[i]=unpackBase60(r[i])}}function intToUntil(r,i){for(var a=0;a<i;a++){r[a]=Math.round((r[a-1]||0)+r[a]*6e4)}r[i-1]=Infinity}function mapIndices(r,i){var a=[],c;for(c=0;c<i.length;c++){a[c]=r[i[c]]}return a}function unpack(r){var i=r.split("|"),a=i[2].split(" "),c=i[3].split(""),l=i[4].split(" ");arrayToInt(a);arrayToInt(c);arrayToInt(l);intToUntil(l,c.length);return{name:i[0],abbrs:mapIndices(i[1].split(" "),c),offsets:mapIndices(a,c),untils:l,population:i[5]|0}}function Zone(r){if(r){this._set(unpack(r))}}function closest(r,i){var a=i.length;if(r<i[0]){return 0}else if(a>1&&i[a-1]===Infinity&&r>=i[a-2]){return a-1}else if(r>=i[a-1]){return-1}var c;var l=0;var p=a-1;while(p-l>1){c=Math.floor((l+p)/2);if(i[c]<=r){l=c}else{p=c}}return p}Zone.prototype={_set:function(r){this.name=r.name;this.abbrs=r.abbrs;this.untils=r.untils;this.offsets=r.offsets;this.population=r.population},_index:function(r){var i=+r,a=this.untils,c;c=closest(i,a);if(c>=0){return c}},countries:function(){var r=this.name;return Object.keys(l).filter((function(i){return l[i].zones.indexOf(r)!==-1}))},parse:function(r){var i=+r,a=this.offsets,c=this.untils,l=c.length-1,p,d,u,A;for(A=0;A<l;A++){p=a[A];d=a[A+1];u=a[A?A-1:A];if(p<d&&tz.moveAmbiguousForward){p=d}else if(p>u&&tz.moveInvalidForward){p=u}if(i<c[A]-p*6e4){return a[A]}}return a[l]},abbr:function(r){return this.abbrs[this._index(r)]},offset:function(r){logError("zone.offset has been deprecated in favor of zone.utcOffset");return this.offsets[this._index(r)]},utcOffset:function(r){return this.offsets[this._index(r)]}};function Country(r,i){this.name=r;this.zones=i}function OffsetAt(r){var i=r.toTimeString();var a=i.match(/\([a-z ]+\)/i);if(a&&a[0]){a=a[0].match(/[A-Z]/g);a=a?a.join(""):undefined}else{a=i.match(/[A-Z]{3,5}/g);a=a?a[0]:undefined}if(a==="GMT"){a=undefined}this.at=+r;this.abbr=a;this.offset=r.getTimezoneOffset()}function ZoneScore(r){this.zone=r;this.offsetScore=0;this.abbrScore=0}ZoneScore.prototype.scoreOffsetAt=function(r){this.offsetScore+=Math.abs(this.zone.utcOffset(r.at)-r.offset);if(this.zone.abbr(r.at).replace(/[^A-Z]/g,"")!==r.abbr){this.abbrScore++}};function findChange(r,i){var a,c;while(c=((i.at-r.at)/12e4|0)*6e4){a=new OffsetAt(new Date(r.at+c));if(a.offset===r.offset){r=a}else{i=a}}return r}function userOffsets(){var r=(new Date).getFullYear()-2,i=new OffsetAt(new Date(r,0,1)),a=i.offset,c=[i],l,p,d,u;for(u=1;u<48;u++){d=new Date(r,u,1).getTimezoneOffset();if(d!==a){p=new OffsetAt(new Date(r,u,1));l=findChange(i,p);c.push(l);c.push(new OffsetAt(new Date(l.at+6e4)));i=p;a=d}}for(u=0;u<4;u++){c.push(new OffsetAt(new Date(r+u,0,1)));c.push(new OffsetAt(new Date(r+u,6,1)))}return c}function sortZoneScores(r,i){if(r.offsetScore!==i.offsetScore){return r.offsetScore-i.offsetScore}if(r.abbrScore!==i.abbrScore){return r.abbrScore-i.abbrScore}if(r.zone.population!==i.zone.population){return i.zone.population-r.zone.population}return i.zone.name.localeCompare(r.zone.name)}function addToGuesses(r,i){var a,c;arrayToInt(i);for(a=0;a<i.length;a++){c=i[a];d[c]=d[c]||{};d[c][r]=true}}function guessesForUserOffsets(r){var i=r.length,a={},c=[],l={},u,A,h,b;for(u=0;u<i;u++){h=r[u].offset;if(l.hasOwnProperty(h)){continue}b=d[h]||{};for(A in b){if(b.hasOwnProperty(A)){a[A]=true}}l[h]=true}for(u in a){if(a.hasOwnProperty(u)){c.push(p[u])}}return c}function rebuildGuess(){try{var r=Intl.DateTimeFormat().resolvedOptions().timeZone;if(r&&r.length>3){var i=p[normalizeName(r)];if(i){return i}logError("Moment Timezone found "+r+" from the Intl api, but did not have that data loaded.")}}catch(r){}var a=userOffsets(),c=a.length,l=guessesForUserOffsets(a),d=[],u,A,h;for(A=0;A<l.length;A++){u=new ZoneScore(getZone(l[A]),c);for(h=0;h<c;h++){u.scoreOffsetAt(a[h])}d.push(u)}d.sort(sortZoneScores);return d.length>0?d[0].zone.name:undefined}function guess(r){if(!u||r){u=rebuildGuess()}return u}function normalizeName(r){return(r||"").toLowerCase().replace(/\//g,"_")}function addZone(r){var i,c,l,d;if(typeof r==="string"Line truncated
//! moment.js //! moment.js
//! version : 2.29.4 //! version : 2.30.1
//! authors : Tim Wood, Iskren Chernev, Moment.js contributors //! authors : Tim Wood, Iskren Chernev, Moment.js contributors
//! license : MIT //! license : MIT
//! momentjs.com //! momentjs.com
(function(a,r){true?p.exports=r():0})(this,(function(){"use strict";var a;function hooks(){return a.apply(null,arguments)}function setHookCallback(p){a=p}function isArray(p){return p instanceof Array||Object.prototype.toString.call(p)==="[object Array]"}function isObject(p){return p!=null&&Object.prototype.toString.call(p)==="[object Object]"}function hasOwnProp(p,a){return Object.prototype.hasOwnProperty.call(p,a)}function isObjectEmpty(p){if(Object.getOwnPropertyNames){return Object.getOwnPropertyNames(p).length===0}else{var a;for(a in p){if(hasOwnProp(p,a)){return false}}return true}}function isUndefined(p){return p===void 0}function isNumber(p){return typeof p==="number"||Object.prototype.toString.call(p)==="[object Number]"}function isDate(p){return p instanceof Date||Object.prototype.toString.call(p)==="[object Date]"}function map(p,a){var r=[],d,i=p.length;for(d=0;d<i;++d){r.push(a(p[d],d))}return r}function extend(p,a){for(var r in a){if(hasOwnProp(a,r)){p[r]=a[r]}}if(hasOwnProp(a,"toString")){p.toString=a.toString}if(hasOwnProp(a,"valueOf")){p.valueOf=a.valueOf}return p}function createUTC(p,a,r,d){return createLocalOrUTC(p,a,r,d,true).utc()}function defaultParsingFlags(){return{empty:false,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:false,invalidEra:null,invalidMonth:null,invalidFormat:false,userInvalidated:false,iso:false,parsedDateParts:[],era:null,meridiem:null,rfc2822:false,weekdayMismatch:false}}function getParsingFlags(p){if(p._pf==null){p._pf=defaultParsingFlags()}return p._pf}var r;if(Array.prototype.some){r=Array.prototype.some}else{r=function(p){var a=Object(this),r=a.length>>>0,d;for(d=0;d<r;d++){if(d in a&&p.call(this,a[d],d,a)){return true}}return false}}function isValid(p){if(p._isValid==null){var a=getParsingFlags(p),d=r.call(a.parsedDateParts,(function(p){return p!=null})),i=!isNaN(p._d.getTime())&&a.overflow<0&&!a.empty&&!a.invalidEra&&!a.invalidMonth&&!a.invalidWeekday&&!a.weekdayMismatch&&!a.nullInput&&!a.invalidFormat&&!a.userInvalidated&&(!a.meridiem||a.meridiem&&d);if(p._strict){i=i&&a.charsLeftOver===0&&a.unusedTokens.length===0&&a.bigHour===undefined}if(Object.isFrozen==null||!Object.isFrozen(p)){p._isValid=i}else{return i}}return p._isValid}function createInvalid(p){var a=createUTC(NaN);if(p!=null){extend(getParsingFlags(a),p)}else{getParsingFlags(a).userInvalidated=true}return a}var d=hooks.momentProperties=[],i=false;function copyConfig(p,a){var r,i,b,c=d.length;if(!isUndefined(a._isAMomentObject)){p._isAMomentObject=a._isAMomentObject}if(!isUndefined(a._i)){p._i=a._i}if(!isUndefined(a._f)){p._f=a._f}if(!isUndefined(a._l)){p._l=a._l}if(!isUndefined(a._strict)){p._strict=a._strict}if(!isUndefined(a._tzm)){p._tzm=a._tzm}if(!isUndefined(a._isUTC)){p._isUTC=a._isUTC}if(!isUndefined(a._offset)){p._offset=a._offset}if(!isUndefined(a._pf)){p._pf=getParsingFlags(a)}if(!isUndefined(a._locale)){p._locale=a._locale}if(c>0){for(r=0;r<c;r++){i=d[r];b=a[i];if(!isUndefined(b)){p[i]=b}}}return p}function Moment(p){copyConfig(this,p);this._d=new Date(p._d!=null?p._d.getTime():NaN);if(!this.isValid()){this._d=new Date(NaN)}if(i===false){i=true;hooks.updateOffset(this);i=false}}function isMoment(p){return p instanceof Moment||p!=null&&p._isAMomentObject!=null}function warn(p){if(hooks.suppressDeprecationWarnings===false&&typeof console!=="undefined"&&console.warn){console.warn("Deprecation warning: "+p)}}function deprecate(p,a){var r=true;return extend((function(){if(hooks.deprecationHandler!=null){hooks.deprecationHandler(null,p)}if(r){var d=[],i,b,c,M=arguments.length;for(b=0;b<M;b++){i="";if(typeof arguments[b]==="object"){i+="\n["+b+"] ";for(c in arguments[0]){if(hasOwnProp(arguments[0],c)){i+=c+": "+arguments[0][c]+", "}}i=i.slice(0,-2)}else{i=arguments[b]}d.push(i)}warn(p+"\nArguments: "+Array.prototype.slice.call(d).join("")+"\n"+(new Error).stack);r=false}return a.apply(this,arguments)}),a)}var b={};function deprecateSimple(p,a){if(hooks.deprecationHandler!=null){hooks.deprecationHandler(p,a)}if(!b[p]){warn(a);b[p]=true}}hooks.suppressDeprecationWarnings=false;hooks.deprecationHandler=null;function isFunction(p){return typeof Function!=="undefined"&&p instanceof Function||Object.prototype.toString.call(p)==="[object Function]"}function set(p){var a,r;for(r in p){if(hasOwnProp(p,r)){a=p[r];if(isFunction(a)){this[r]=a}else{this["_"+r]=a}}}this._config=p;this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)}function mergeConfigs(p,a){var r=extend({},p),d;for(d in a){if(hasOwnProp(a,d)){if(isObject(p[d])&&isObject(a[d])){r[d]={};extend(r[d],p[d]);extend(r[d],a[d])}else if(a[d]!=null){r[d]=a[d]}else{delete r[d]}}}for(d in p){if(hasOwnProp(p,d)&&!hasOwnProp(a,d)&&isObject(p[d])){r[d]=extend({},r[d])}}return r}function Locale(p){if(p!=null){this.set(p)}}var c;if(Object.keys){c=Object.keys}else{c=function(p){var a,r=[];for(a in p){if(hasOwnProp(p,a)){r.push(a)}}return r}}var M={sameDay:Line truncated (function(i,a){true?r.exports=a():0})(this,(function(){"use strict";var i;function hooks(){return i.apply(null,arguments)}function setHookCallback(r){i=r}function isArray(r){return r instanceof Array||Object.prototype.toString.call(r)==="[object Array]"}function isObject(r){return r!=null&&Object.prototype.toString.call(r)==="[object Object]"}function hasOwnProp(r,i){return Object.prototype.hasOwnProperty.call(r,i)}function isObjectEmpty(r){if(Object.getOwnPropertyNames){return Object.getOwnPropertyNames(r).length===0}else{var i;for(i in r){if(hasOwnProp(r,i)){return false}}return true}}function isUndefined(r){return r===void 0}function isNumber(r){return typeof r==="number"||Object.prototype.toString.call(r)==="[object Number]"}function isDate(r){return r instanceof Date||Object.prototype.toString.call(r)==="[object Date]"}function map(r,i){var a=[],c,l=r.length;for(c=0;c<l;++c){a.push(i(r[c],c))}return a}function extend(r,i){for(var a in i){if(hasOwnProp(i,a)){r[a]=i[a]}}if(hasOwnProp(i,"toString")){r.toString=i.toString}if(hasOwnProp(i,"valueOf")){r.valueOf=i.valueOf}return r}function createUTC(r,i,a,c){return createLocalOrUTC(r,i,a,c,true).utc()}function defaultParsingFlags(){return{empty:false,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:false,invalidEra:null,invalidMonth:null,invalidFormat:false,userInvalidated:false,iso:false,parsedDateParts:[],era:null,meridiem:null,rfc2822:false,weekdayMismatch:false}}function getParsingFlags(r){if(r._pf==null){r._pf=defaultParsingFlags()}return r._pf}var a;if(Array.prototype.some){a=Array.prototype.some}else{a=function(r){var i=Object(this),a=i.length>>>0,c;for(c=0;c<a;c++){if(c in i&&r.call(this,i[c],c,i)){return true}}return false}}function isValid(r){var i=null,c=false,l=r._d&&!isNaN(r._d.getTime());if(l){i=getParsingFlags(r);c=a.call(i.parsedDateParts,(function(r){return r!=null}));l=i.overflow<0&&!i.empty&&!i.invalidEra&&!i.invalidMonth&&!i.invalidWeekday&&!i.weekdayMismatch&&!i.nullInput&&!i.invalidFormat&&!i.userInvalidated&&(!i.meridiem||i.meridiem&&c);if(r._strict){l=l&&i.charsLeftOver===0&&i.unusedTokens.length===0&&i.bigHour===undefined}}if(Object.isFrozen==null||!Object.isFrozen(r)){r._isValid=l}else{return l}return r._isValid}function createInvalid(r){var i=createUTC(NaN);if(r!=null){extend(getParsingFlags(i),r)}else{getParsingFlags(i).userInvalidated=true}return i}var c=hooks.momentProperties=[],l=false;function copyConfig(r,i){var a,l,p,d=c.length;if(!isUndefined(i._isAMomentObject)){r._isAMomentObject=i._isAMomentObject}if(!isUndefined(i._i)){r._i=i._i}if(!isUndefined(i._f)){r._f=i._f}if(!isUndefined(i._l)){r._l=i._l}if(!isUndefined(i._strict)){r._strict=i._strict}if(!isUndefined(i._tzm)){r._tzm=i._tzm}if(!isUndefined(i._isUTC)){r._isUTC=i._isUTC}if(!isUndefined(i._offset)){r._offset=i._offset}if(!isUndefined(i._pf)){r._pf=getParsingFlags(i)}if(!isUndefined(i._locale)){r._locale=i._locale}if(d>0){for(a=0;a<d;a++){l=c[a];p=i[l];if(!isUndefined(p)){r[l]=p}}}return r}function Moment(r){copyConfig(this,r);this._d=new Date(r._d!=null?r._d.getTime():NaN);if(!this.isValid()){this._d=new Date(NaN)}if(l===false){l=true;hooks.updateOffset(this);l=false}}function isMoment(r){return r instanceof Moment||r!=null&&r._isAMomentObject!=null}function warn(r){if(hooks.suppressDeprecationWarnings===false&&typeof console!=="undefined"&&console.warn){console.warn("Deprecation warning: "+r)}}function deprecate(r,i){var a=true;return extend((function(){if(hooks.deprecationHandler!=null){hooks.deprecationHandler(null,r)}if(a){var c=[],l,p,d,u=arguments.length;for(p=0;p<u;p++){l="";if(typeof arguments[p]==="object"){l+="\n["+p+"] ";for(d in arguments[0]){if(hasOwnProp(arguments[0],d)){l+=d+": "+arguments[0][d]+", "}}l=l.slice(0,-2)}else{l=arguments[p]}c.push(l)}warn(r+"\nArguments: "+Array.prototype.slice.call(c).join("")+"\n"+(new Error).stack);a=false}return i.apply(this,arguments)}),i)}var p={};function deprecateSimple(r,i){if(hooks.deprecationHandler!=null){hooks.deprecationHandler(r,i)}if(!p[r]){warn(i);p[r]=true}}hooks.suppressDeprecationWarnings=false;hooks.deprecationHandler=null;function isFunction(r){return typeof Function!=="undefined"&&r instanceof Function||Object.prototype.toString.call(r)==="[object Function]"}function set(r){var i,a;for(a in r){if(hasOwnProp(r,a)){i=r[a];if(isFunction(i)){this[a]=i}else{this["_"+a]=i}}}this._config=r;this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)}function mergeConfigs(r,i){var a=extend({},r),c;for(c in i){if(hasOwnProp(i,c)){if(isObject(r[c])&&isObject(i[c])){a[c]={};extend(a[c],r[c]);extend(a[c],i[c])}else if(i[c]!=null){a[c]=i[c]}else{delete a[c]}}}for(c in r){if(hasOwnProp(r,c)&&!hasOwnProp(i,c)&&isObject(r[c])){a[c]=extend({},a[c])}}return a}function Locale(r){if(r!=null){this.set(r)}}var d;if(Object.keys){d=Object.keys}else{d=function(r){var i,a=[];for(i in r){if(hasOwnProp(r,i)){a.push(i)}}return a}}var u={sLine truncated
//! moment.js //! moment.js
hooks.version="2.29.4";setHookCallback(createLocal);hooks.fn=Ye;hooks.min=min;hooks.max=max;hooks.now=now;hooks.utc=createUTC;hooks.unix=createUnix;hooks.months=listMonths;hooks.isDate=isDate;hooks.locale=getSetGlobalLocale;hooks.invalid=createInvalid;hooks.duration=createDuration;hooks.isMoment=isMoment;hooks.weekdays=listWeekdays;hooks.parseZone=createInZone;hooks.localeData=getLocale;hooks.isDuration=isDuration;hooks.monthsShort=listMonthsShort;hooks.weekdaysMin=listWeekdaysMin;hooks.defineLocale=defineLocale;hooks.updateLocale=updateLocale;hooks.locales=listLocales;hooks.weekdaysShort=listWeekdaysShort;hooks.normalizeUnits=normalizeUnits;hooks.relativeTimeRounding=getSetRelativeTimeRounding;hooks.relativeTimeThreshold=getSetRelativeTimeThreshold;hooks.calendarFormat=getCalendarFormat;hooks.prototype=Ye;hooks.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"};return hooks}))},467:(p,a,r)=>{"use strict";Object.defineProperty(a,"__esModule",{value:true});function _interopDefault(p){return p&&typeof p==="object"&&"default"in p?p["default"]:p}var d=_interopDefault(r(2781));var i=_interopDefault(r(3685));var b=_interopDefault(r(7310));var c=_interopDefault(r(8665));var M=_interopDefault(r(5687));var z=_interopDefault(r(9796));const u=d.Readable;const O=Symbol("buffer");const l=Symbol("type");class Blob{constructor(){this[l]="";const p=arguments[0];const a=arguments[1];const r=[];let d=0;if(p){const a=p;const i=Number(a.length);for(let p=0;p<i;p++){const i=a[p];let b;if(i instanceof Buffer){b=i}else if(ArrayBuffer.isView(i)){b=Buffer.from(i.buffer,i.byteOffset,i.byteLength)}else if(i instanceof ArrayBuffer){b=Buffer.from(i)}else if(i instanceof Blob){b=i[O]}else{b=Buffer.from(typeof i==="string"?i:String(i))}d+=b.length;r.push(b)}}this[O]=Buffer.concat(r);let i=a&&a.type!==undefined&&String(a.type).toLowerCase();if(i&&!/[^\u0020-\u007E]/.test(i)){this[l]=i}}get size(){return this[O].length}get type(){return this[l]}text(){return Promise.resolve(this[O].toString())}arrayBuffer(){const p=this[O];const a=p.buffer.slice(p.byteOffset,p.byteOffset+p.byteLength);return Promise.resolve(a)}stream(){const p=new u;p._read=function(){};p.push(this[O]);p.push(null);return p}toString(){return"[object Blob]"}slice(){const p=this.size;const a=arguments[0];const r=arguments[1];let d,i;if(a===undefined){d=0}else if(a<0){d=Math.max(p+a,0)}else{d=Math.min(a,p)}if(r===undefined){i=p}else if(r<0){i=Math.max(p+r,0)}else{i=Math.min(r,p)}const b=Math.max(i-d,0);const c=this[O];const M=c.slice(d,d+b);const z=new Blob([],{type:arguments[2]});z[O]=M;return z}}Object.defineProperties(Blob.prototype,{size:{enumerable:true},type:{enumerable:true},slice:{enumerable:true}});Object.defineProperty(Blob.prototype,Symbol.toStringTag,{value:"Blob",writable:false,enumerable:false,configurable:true});function FetchError(p,a,r){Error.call(this,p);this.message=p;this.type=a;if(r){this.code=this.errno=r.code}Error.captureStackTrace(this,this.constructor)}FetchError.prototype=Object.create(Error.prototype);FetchError.prototype.constructor=FetchError;FetchError.prototype.name="FetchError";let A;try{A=r(2877).convert}catch(p){}const m=Symbol("Body internals");const q=d.PassThrough;function Body(p){var a=this;var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},i=r.size;let b=i===undefined?0:i;var c=r.timeout;let M=c===undefined?0:c;if(p==null){p=null}else if(isURLSearchParams(p)){p=Buffer.from(p.toString())}else if(isBlob(p));else if(Buffer.isBuffer(p));else if(Object.prototype.toString.call(p)==="[object ArrayBuffer]"){p=Buffer.from(p)}else if(ArrayBuffer.isView(p)){p=Buffer.from(p.buffer,p.byteOffset,p.byteLength)}else if(p instanceof d);else{p=Buffer.from(String(p))}this[m]={body:p,disturbed:false,error:null};this.size=b;this.timeout=M;if(p instanceof d){p.on("error",(function(p){const r=p.name==="AbortError"?p:new FetchError(`Invalid response body while trying to fetch ${a.url}: ${p.message}`,"system",p);a[m].error=r}))}}Body.prototype={get body(){return this[m].body},get bodyUsed(){return this[m].disturbed},arrayBuffer(){return consumeBody.call(this).then((function(p){return p.buffer.slice(p.byteOffset,p.byteOffset+p.byteLength)}))},blob(){let p=this.headers&&this.headers.get("content-type")||"";return consumeBody.call(this).then((function(a){return Object.assign(new Blob([],{type:p.toLowerCase()}),{[O]:a})}))},json(){var p=this;return consumeBody.call(this).then((function(a){try{return JSON.parse(a.toString())}catch(a){return Body.Promise.reject(new FetchError(`invalid json response body at ${p.url} reason: ${a.message}`,"invalid-json"))}}))},text(){return consumeBody.call(this).then((function(p){return p.toString()}))},buffer(){return consumeBody.call(this)},textConverted(){var p=this;return consumeBody.call(this).then((function(a){return coLine truncated hooks.version="2.30.1";setHookCallback(createLocal);hooks.fn=Ze;hooks.min=min;hooks.max=max;hooks.now=now;hooks.utc=createUTC;hooks.unix=createUnix;hooks.months=listMonths;hooks.isDate=isDate;hooks.locale=getSetGlobalLocale;hooks.invalid=createInvalid;hooks.duration=createDuration;hooks.isMoment=isMoment;hooks.weekdays=listWeekdays;hooks.parseZone=createInZone;hooks.localeData=getLocale;hooks.isDuration=isDuration;hooks.monthsShort=listMonthsShort;hooks.weekdaysMin=listWeekdaysMin;hooks.defineLocale=defineLocale;hooks.updateLocale=updateLocale;hooks.locales=listLocales;hooks.weekdaysShort=listWeekdaysShort;hooks.normalizeUnits=normalizeUnits;hooks.relativeTimeRounding=getSetRelativeTimeRounding;hooks.relativeTimeThreshold=getSetRelativeTimeThreshold;hooks.calendarFormat=getCalendarFormat;hooks.prototype=Ze;hooks.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"};return hooks}))},70744:r=>{var i=1e3;var a=i*60;var c=a*60;var l=c*24;var p=l*7;var d=l*365.25;r.exports=function(r,i){i=i||{};var a=typeof r;if(a==="string"&&r.length>0){return parse(r)}else if(a==="number"&&isFinite(r)){return i.long?fmtLong(r):fmtShort(r)}throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(r))};function parse(r){r=String(r);if(r.length>100){return}var u=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(r);if(!u){return}var A=parseFloat(u[1]);var h=(u[2]||"ms").toLowerCase();switch(h){case"years":case"year":case"yrs":case"yr":case"y":return A*d;case"weeks":case"week":case"w":return A*p;case"days":case"day":case"d":return A*l;case"hours":case"hour":case"hrs":case"hr":case"h":return A*c;case"minutes":case"minute":case"mins":case"min":case"m":return A*a;case"seconds":case"second":case"secs":case"sec":case"s":return A*i;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return A;default:return undefined}}function fmtShort(r){var p=Math.abs(r);if(p>=l){return Math.round(r/l)+"d"}if(p>=c){return Math.round(r/c)+"h"}if(p>=a){return Math.round(r/a)+"m"}if(p>=i){return Math.round(r/i)+"s"}return r+"ms"}function fmtLong(r){var p=Math.abs(r);if(p>=l){return plural(r,p,l,"day")}if(p>=c){return plural(r,p,c,"hour")}if(p>=a){return plural(r,p,a,"minute")}if(p>=i){return plural(r,p,i,"second")}return r+" ms"}function plural(r,i,a,c){var l=i>=a*1.5;return Math.round(r/a)+" "+c+(l?"s":"")}},60668:(r,i,a)=>{"use strict";
/*!
* negotiator
* Copyright(c) 2012 Federico Romero
* Copyright(c) 2012-2014 Isaac Z. Schlueter
* Copyright(c) 2015 Douglas Christopher Wilson
* MIT Licensed
*/var c=a(79168);var l=a(25111);var p=a(56008);var d=a(53672);r.exports=Negotiator;r.exports.Negotiator=Negotiator;function Negotiator(r){if(!(this instanceof Negotiator)){return new Negotiator(r)}this.request=r}Negotiator.prototype.charset=function charset(r){var i=this.charsets(r);return i&&i[0]};Negotiator.prototype.charsets=function charsets(r){return c(this.request.headers["accept-charset"],r)};Negotiator.prototype.encoding=function encoding(r,i){var a=this.encodings(r,i);return a&&a[0]};Negotiator.prototype.encodings=function encodings(r,i){var a=i||{};return l(this.request.headers["accept-encoding"],r,a.preferred)};Negotiator.prototype.language=function language(r){var i=this.languages(r);return i&&i[0]};Negotiator.prototype.languages=function languages(r){return p(this.request.headers["accept-language"],r)};Negotiator.prototype.mediaType=function mediaType(r){var i=this.mediaTypes(r);return i&&i[0]};Negotiator.prototype.mediaTypes=function mediaTypes(r){return d(this.request.headers.accept,r)};Negotiator.prototype.preferredCharset=Negotiator.prototype.charset;Negotiator.prototype.preferredCharsets=Negotiator.prototype.charsets;Negotiator.prototype.preferredEncoding=Negotiator.prototype.encoding;Negotiator.prototype.preferredEncodings=Negotiator.prototype.encodings;Negotiator.prototype.preferredLanguage=Negotiator.prototype.language;Negotiator.prototype.preferredLanguages=Negotiator.prototype.languages;Negotiator.prototype.preferredMediaType=Negotiator.prototype.mediaType;Negotiator.prototype.preferredMediaTypes=Negotiator.prototype.mediaTypes},79168:r=>{"use strict";r.exports=preferredCharsets;r.exports.preferredCharsets=preferredCharsets;var i=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function parseAcceptCharset(r){var i=r.split(",");for(var a=0,c=0;a<i.length;a++){var l=parseCharset(i[a].trim(),a);if(l){i[c++]=l}}i.length=c;return i}function parseCharset(r,a){var c=i.exec(r);if(!c)return null;var l=c[1];var p=1;if(c[2]){var d=c[2].split(";");for(var u=0;u<d.length;u++){var A=d[u].trim().split("=");if(A[0]==="q"){p=parseFloat(A[1]);break}}}return{charset:l,q:p,i:a}}function getCharsetPriority(r,i,a){var c={o:-1,q:0,s:0};for(var l=0;l<i.length;l++){var p=specify(r,i[l],a);if(p&&(c.s-p.s||c.q-p.q||c.o-p.o)<0){c=p}}return c}function specify(r,i,a){var c=0;if(i.charset.toLowerCase()===r.toLowerCase()){c|=1}else if(i.charset!=="*"){return null}return{i:a,o:i.i,q:i.q,s:c}}function preferredCharsets(r,i){var a=parseAcceptCharset(r===undefined?"*":r||"");if(!i){return a.filter(isQuality).sort(compareSpecs).map(getFullCharset)}var c=i.map((function getPriority(r,i){return getCharsetPriority(r,a,i)}));return c.filter(isQuality).sort(compareSpecs).map((function getCharset(r){return i[c.indexOf(r)]}))}function compareSpecs(r,i){return i.q-r.q||i.s-r.s||r.o-i.o||r.i-i.i||0}function getFullCharset(r){return r.charset}function isQuality(r){return r.q>0}},25111:r=>{"use strict";r.exports=preferredEncodings;r.exports.preferredEncodings=preferredEncodings;var i=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function parseAcceptEncoding(r){var i=r.split(",");var a=false;var c=1;for(var l=0,p=0;l<i.length;l++){var d=parseEncoding(i[l].trim(),l);if(d){i[p++]=d;a=a||specify("identity",d);c=Math.min(c,d.q||1)}}if(!a){i[p++]={encoding:"identity",q:c,i:l}}i.length=p;return i}function parseEncoding(r,a){var c=i.exec(r);if(!c)return null;var l=c[1];var p=1;if(c[2]){var d=c[2].split(";");for(var u=0;u<d.length;u++){var A=d[u].trim().split("=");if(A[0]==="q"){p=parseFloat(A[1]);break}}}return{encoding:l,q:p,i:a}}function getEncodingPriority(r,i,a){var c={encoding:r,o:-1,q:0,s:0};for(var l=0;l<i.length;l++){var p=specify(r,i[l],a);if(p&&(c.s-p.s||c.q-p.q||c.o-p.o)<0){c=p}}return c}function specify(r,i,a){var c=0;if(i.encoding.toLowerCase()===r.toLowerCase()){c|=1}else if(i.encoding!=="*"){return null}return{encoding:r,i:a,o:i.i,q:i.q,s:c}}function preferredEncodings(r,i,a){var c=parseAcceptEncoding(r||"");var l=a?function comparator(r,i){if(r.q!==i.q){return i.q-r.q}var c=a.indexOf(r.encoding);var l=a.indexOf(i.encoding);if(c===-1&&l===-1){return i.s-r.s||r.o-i.o||r.i-i.i}if(c!==-1&&l!==-1){return c-l}return c===-1?1:-1}:compareSpecs;if(!i){return c.filter(isQuality).sort(l).map(getFullEncoding)}var p=i.map((function getPriority(r,i){return getEncodingPriority(r,c,i)}));return p.filter(isQuality).sort(l).map((function getEncoding(r){return i[p.indexOf(r)]}))}function compareSpecs(r,i){return i.q-r.q||i.s-r.s||r.o-i.o||r.i-i.i}function getFullEncoding(r){return r.encoding}function isQuality(r){return r.q>0}},56008:r=>{"use strict";r.exports=preferredLanguages;r.exports.preferredLanguages=preferredLanguages;var i=/^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/;function parseAcceptLanguage(r){var i=r.split(",");for(var a=0,c=0;a<i.length;a++){var l=parseLanguage(i[a].trim(),a);if(l){i[c++]=l}}i.length=c;return i}function parseLanguage(r,a){var c=i.exec(r);if(!c)return null;var l=c[1];var p=c[2];var d=l;if(p)d+="-"+p;var u=1;if(c[3]){var A=c[3].split(";");forLine 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 a=r.length;if(a<=1)return r;var c="";if(a>4&&r[3]==="\\"){var l=r[2];if((l==="?"||l===".")&&r.slice(0,2)==="\\\\"){r=r.slice(2);c="//"}}var p=r.split(/[/\\]+/);if(i!==false&&p[p.length-1]===""){p.pop()}return c+p.join("/")}},55560:(r,i,a)=>{var c=a(58264);r.exports=c(once);r.exports.strict=c(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}},26687:r=>{const i=Symbol("proc-log.meta");r.exports={META:i,output:{LEVELS:["standard","error","buffer","flush"],KEYS:{standard:"standard",error:"error",buffer:"buffer",flush:"flush"},standard:function(...r){return process.emit("output","standard",...r)},error:function(...r){return process.emit("output","error",...r)},buffer:function(...r){return process.emit("output","buffer",...r)},flush:function(...r){return process.emit("output","flush",...r)}},log:{LEVELS:["notice","error","warn","info","verbose","http","silly","timing","pause","resume"],KEYS:{notice:"notice",error:"error",warn:"warn",info:"info",verbose:"verbose",http:"http",silly:"silly",timing:"timing",pause:"pause",resume:"resume"},error:function(...r){return process.emit("log","error",...r)},notice:function(...r){return process.emit("log","notice",...r)},warn:function(...r){return process.emit("log","warn",...r)},info:function(...r){return process.emit("log","info",...r)},verbose:function(...r){return process.emit("log","verbose",...r)},http:function(...r){return process.emit("log","http",...r)},silly:function(...r){return process.emit("log","silly",...r)},timing:function(...r){return process.emit("log","timing",...r)},pause:function(){return process.emit("log","pause")},resume:function(){return process.emit("log","resume")}},time:{LEVELS:["start","end"],KEYS:{start:"start",end:"end"},start:function(r,i){process.emit("time","start",r);function end(){return process.emit("time","end",r)}if(typeof i==="function"){const r=i();if(r&&r.finally){return r.finally(end)}end();return r}return end},end:function(r){return process.emit("time","end",r)}},input:{LEVELS:["start","end","read"],KEYS:{start:"start",end:"end",read:"read"},start:function(r){process.emit("input","start");function end(){return process.emit("input","end")}if(typeof r==="function"){const i=r();if(i&&i.finally){return i.finally(end)}end();return i}return end},end:function(){return process.emit("input","end")},read:function(...r){let i,a;const c=new Promise(((r,c)=>{i=r;a=c}));process.emit("input","read",i,a,...r);return c}}}},41564: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,a,c){if(typeof r!=="function"){throw new TypeError('"callback" argument must be a function')}var l=arguments.length;var p,d;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,a)}));case 4:return process.nextTick((function afterTickThree(){r.call(null,i,a,c)}));default:p=new Array(l-1);d=0;while(d<p.length){p[d++]=arguments[d]}return process.nextTick((function afterTick(){r.apply(null,p)}))}}},7945:r=>{r.exports=global.process},90390:(r,i,a)=>{"use strict";var c=a(14339);var l=a(5546);var p=Object.prototype.hasOwnProperty;function isRetryError(r){return r&&r.code==="EPROMISERETRY"&&p.call(r,"retried")}function promiseRetry(r,i){var a;var p;if(typeof r==="object"&&typeof i==="function"){a=i;i=r;r=a}p=l.operation(i);return new Promise((function(i,a){p.attempt((function(l){Promise.resolve().then((function(){return r((function(r){if(isRetryError(r)){r=r.retried}throw c(new Error("Retrying"),"EPROMISERETRY",{retried:r})}),l)})).then(i,(function(r){if(isRetryError(r)){r=r.retried;if(p.retry(r||new Error)){return}}a(r)}))}))}))}r.exports=promiseRetry},5506:(r,i,a)=>{r.exports=typeof process!=="undefined"&&typeof process.nextTick==="function"?process.nextTick.bind(process):a(36828)},36828:r=>{r.exports=typeof queueMicrotask==="function"?queueMicrotask:r=>Promise.resolve().then(r)},80652:(r,i,a)=>{"use strict";const{SymbolDispose:c}=a(50999);const{AbortError:l,codes:p}=a(69220);const{isNodeStream:d,isWebStream:u,kLine 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 c=[];var l;var p;var d=-1;var u=arguments.length;if(!u){return""}var A="";while(++d<u){var h=Number(arguments[d]);if(!isFinite(h)||h<0||h>1114111||i(h)!==h){throw RangeError("Invalid code point: "+h)}if(h<=65535){c.push(h)}else{h-=65536;l=(h>>10)+55296;p=h%1024+56320;c.push(l,p)}if(d+1===u||c.length>a){A+=r.apply(null,c);c.length=0}}return A};if(Object.defineProperty){Object.defineProperty(String,"fromCodePoint",{value:fromCodePoint,configurable:true,writable:true})}else{String.fromCodePoint=fromCodePoint}})()}})(false?0:i)},89379:(r,i,a)=>{"use strict";const c=Symbol("SemVer ANY");class Comparator{static get ANY(){return c}constructor(r,i){i=l(i);if(r instanceof Comparator){if(r.loose===!!i.loose){return r}else{r=r.value}}r=r.trim().split(/\s+/).join(" ");A("comparator",r,i);this.options=i;this.loose=!!i.loose;this.parse(r);if(this.semver===c){this.value=""}else{this.value=this.operator+this.semver.version}A("comp",this)}parse(r){const i=this.options.loose?p[d.COMPARATORLOOSE]:p[d.COMPARATOR];const a=r.match(i);if(!a){throw new TypeError(`Invalid comparator: ${r}`)}this.operator=a[1]!==undefined?a[1]:"";if(this.operator==="="){this.operator=""}if(!a[2]){this.semver=c}else{this.semver=new h(a[2],this.options.loose)}}toString(){return this.value}test(r){A("Comparator.test",r,this.options.loose);if(this.semver===c||r===c){return true}if(typeof r==="string"){try{r=new h(r,this.options)}catch(r){return false}}return u(r,this.operator,this.semver,this.options)}intersects(r,i){if(!(r instanceof Comparator)){throw new TypeError("a Comparator is required")}if(this.operator===""){if(this.value===""){return true}return new b(r.value,i).test(this.value)}else if(r.operator===""){if(r.value===""){return true}return new b(this.value,i).test(r.semver)}i=l(i);if(i.includePrerelease&&(this.value==="<0.0.0-0"||r.value==="<0.0.0-0")){return false}if(!i.includePrerelease&&(this.value.startsWith("<0.0.0")||r.value.startsWith("<0.0.0"))){return false}if(this.operator.startsWith(">")&&r.operator.startsWith(">")){return true}if(this.operator.startsWith("<")&&r.operator.startsWith("<")){return true}if(this.semver.version===r.semver.version&&this.operator.includes("=")&&r.operator.includes("=")){return true}if(u(this.semver,"<",r.semver,i)&&this.operator.startsWith(">")&&r.operator.startsWith("<")){return true}if(u(this.semver,">",r.semver,i)&&this.operator.startsWith("<")&&r.operator.startsWith(">")){return true}return false}}r.exports=Comparator;const l=a(70356);const{safeRe:p,t:d}=a(95471);const u=a(28646);const A=a(1159);const h=a(7163);const b=a(96782)},96782:(r,i,a)=>{"use strict";const c=/\s+/g;class Range{constructor(r,i){i=d(i);if(r instanceof Range){if(r.loose===!!i.loose&&r.includePrerelease===!!i.includePrerelease){return r}else{return new Range(r.raw,i)}}if(r instanceof u){this.raw=r.value;this.set=[[r]];this.formatted=undefined;return this}this.options=i;this.loose=!!i.loose;this.includePrerelease=!!i.includePrerelease;this.raw=r.trim().replace(c," ");this.set=this.raw.split("||").map((r=>this.parseRange(r.trim()))).filter((r=>r.length));if(!this.set.length){throw new TypeError(`Invalid SemVer Range: ${this.raw}`)}if(this.set.length>1){const r=this.set[0];this.set=this.set.filter((r=>!isNullSet(r[0])));if(this.set.length===0){this.set=[r]}else if(this.set.length>1){for(const r of this.set){if(r.length===1&&isAny(r[0])){this.set=[r];break}}}}this.formatted=undefined}get range(){if(this.formatted===undefined){this.formatted="";for(let r=0;r<this.set.length;r++){if(r>0){this.formatted+="||"}const i=this.set[r];for(let r=0;r<i.length;r++){if(r>0){this.formatted+=" "}this.formatted+=i[r].toString().trim()}}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(r){const i=(this.options.includePrerelease&&z)|(this.options.loose&&C);const a=i+":"+r;const c=p.get(a);if(c){return c}const l=this.options.loose;const d=l?b[g.HYPHENRANGELOOSE]:b[g.HYPHENRANGE];r=r.replace(d,hyphenReplace(this.options.includePrerelease));A("hyphen replace",r);r=r.replace(b[g.COMPARATORTRIM],M);A("comparator trim",r);r=r.replace(b[g.TILDETRIM],y);A("tilde trim",r);r=r.replace(b[g.CARETTRIM],O);A("caret trim",r);let h=r.split(" ").map((r=>parseComparator(r,this.options))).join(" ").split(/\s+/).map((r=>replaceGTE0(r,this.options)));if(l){h=h.filter((r=>{A("loose invalid filter",r,this.options);return!!r.match(b[g.COMPARATORLOOSE])}))}A("range list",h);const B=new Map;const I=h.map((r=>new u(r,this.options)));for(const r of I){if(isNullSet(r)){return[r]}B.set(r.value,r)}if(B.size>1&&B.has("")){B.delete("")}const v=[...B.values()];p.set(a,v);return v}intersects(r,i){if(!(r instanceof Range)){throw new TypeError("a Range is required")}return this.set.some((a=>isSatisfiable(a,i)&&r.set.some((r=>isSatisfiable(r,i)&&a.every((a=>r.every((r=>a.inteLine truncated
/*! /*!
* Tmp * Tmp
* *
@@ -26,49 +137,59 @@ hooks.version="2.29.4";setHookCallback(createLocal);hooks.fn=Ye;hooks.min=min;ho
* *
* MIT Licensed * MIT Licensed
*/ */
const d=r(7147);const i=r(2037);const b=r(1017);const c=r(6113);const M={fs:d.constants,os:i.constants};const z=r(4959);const u="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",O=/XXXXXX/,l=3,A=(M.O_CREAT||M.fs.O_CREAT)|(M.O_EXCL||M.fs.O_EXCL)|(M.O_RDWR||M.fs.O_RDWR),m=i.platform()==="win32",q=M.EBADF||M.os.errno.EBADF,h=M.ENOENT||M.os.errno.ENOENT,W=448,v=384,g="exit",R=[],L=d.rmdirSync.bind(d),_=z.sync;let N=false;function tmpName(p,a){const r=_parseArguments(p,a),i=r[0],b=r[1];try{_assertAndSanitizeOptions(i)}catch(p){return b(p)}let c=i.tries;(function _getUniqueName(){try{const p=_generateTmpName(i);d.stat(p,(function(a){if(!a){if(c-- >0)return _getUniqueName();return b(new Error("Could not get a unique tmp filename, max tries reached "+p))}b(null,p)}))}catch(p){b(p)}})()}function tmpNameSync(p){const a=_parseArguments(p),r=a[0];_assertAndSanitizeOptions(r);let i=r.tries;do{const p=_generateTmpName(r);try{d.statSync(p)}catch(a){return p}}while(i-- >0);throw new Error("Could not get a unique tmp filename, max tries reached")}function file(p,a){const r=_parseArguments(p,a),i=r[0],b=r[1];tmpName(i,(function _tmpNameCreated(p,a){if(p)return b(p);d.open(a,A,i.mode||v,(function _fileCreated(p,r){if(p)return b(p);if(i.discardDescriptor){return d.close(r,(function _discardCallback(p){return b(p,a,undefined,_prepareTmpFileRemoveCallback(a,-1,i,false))}))}else{const p=i.discardDescriptor||i.detachDescriptor;b(null,a,r,_prepareTmpFileRemoveCallback(a,p?-1:r,i,false))}}))}))}function fileSync(p){const a=_parseArguments(p),r=a[0];const i=r.discardDescriptor||r.detachDescriptor;const b=tmpNameSync(r);var c=d.openSync(b,A,r.mode||v);if(r.discardDescriptor){d.closeSync(c);c=undefined}return{name:b,fd:c,removeCallback:_prepareTmpFileRemoveCallback(b,i?-1:c,r,true)}}function dir(p,a){const r=_parseArguments(p,a),i=r[0],b=r[1];tmpName(i,(function _tmpNameCreated(p,a){if(p)return b(p);d.mkdir(a,i.mode||W,(function _dirCreated(p){if(p)return b(p);b(null,a,_prepareTmpDirRemoveCallback(a,i,false))}))}))}function dirSync(p){const a=_parseArguments(p),r=a[0];const i=tmpNameSync(r);d.mkdirSync(i,r.mode||W);return{name:i,removeCallback:_prepareTmpDirRemoveCallback(i,r,true)}}function _removeFileAsync(p,a){const _handler=function(p){if(p&&!_isENOENT(p)){return a(p)}a()};if(0<=p[0])d.close(p[0],(function(){d.unlink(p[1],_handler)}));else d.unlink(p[1],_handler)}function _removeFileSync(p){let a=null;try{if(0<=p[0])d.closeSync(p[0])}catch(p){if(!_isEBADF(p)&&!_isENOENT(p))throw p}finally{try{d.unlinkSync(p[1])}catch(p){if(!_isENOENT(p))a=p}}if(a!==null){throw a}}function _prepareTmpFileRemoveCallback(p,a,r,d){const i=_prepareRemoveCallback(_removeFileSync,[a,p],d);const b=_prepareRemoveCallback(_removeFileAsync,[a,p],d,i);if(!r.keep)R.unshift(i);return d?i:b}function _prepareTmpDirRemoveCallback(p,a,r){const i=a.unsafeCleanup?z:d.rmdir.bind(d);const b=a.unsafeCleanup?_:L;const c=_prepareRemoveCallback(b,p,r);const M=_prepareRemoveCallback(i,p,r,c);if(!a.keep)R.unshift(c);return r?c:M}function _prepareRemoveCallback(p,a,r,d){let i=false;return function _cleanupCallback(b){if(!i){const c=d||_cleanupCallback;const M=R.indexOf(c);if(M>=0)R.splice(M,1);i=true;if(r||p===L||p===_){return p(a)}else{return p(a,b||function(){})}}}}function _garbageCollector(){if(!N)return;while(R.length){try{R[0]()}catch(p){}}}function _randomChars(p){let a=[],r=null;try{r=c.randomBytes(p)}catch(a){r=c.pseudoRandomBytes(p)}for(var d=0;d<p;d++){a.push(u[r[d]%u.length])}return a.join("")}function _isBlank(p){return p===null||_isUndefined(p)||!p.trim()}function _isUndefined(p){return typeof p==="undefined"}function _parseArguments(p,a){if(typeof p==="function"){return[{},p]}if(_isUndefined(p)){return[{},a]}const r={};for(const a of Object.getOwnPropertyNames(p)){r[a]=p[a]}return[r,a]}function _generateTmpName(p){const a=p.tmpdir;if(!_isUndefined(p.name))return b.join(a,p.dir,p.name);if(!_isUndefined(p.template))return b.join(a,p.dir,p.template).replace(O,_randomChars(6));const r=[p.prefix?p.prefix:"tmp","-",process.pid,"-",_randomChars(12),p.postfix?"-"+p.postfix:""].join("");return b.join(a,p.dir,r)}function _assertAndSanitizeOptions(p){p.tmpdir=_getTmpDir(p);const a=p.tmpdir;if(!_isUndefined(p.name))_assertIsRelative(p.name,"name",a);if(!_isUndefined(p.dir))_assertIsRelative(p.dir,"dir",a);if(!_isUndefined(p.template)){_assertIsRelative(p.template,"template",a);if(!p.template.match(O))throw new Error(`Invalid template, found "${p.template}".`)}if(!_isUndefined(p.tries)&&isNaN(p.tries)||p.tries<0)throw new Error(`Invalid tries, found "${p.tries}".`);p.tries=_isUndefined(p.name)?p.tries||l:1;p.keep=!!p.keep;p.detachDescriptor=!!p.detachDescriptor;p.discardDescriptor=!!p.discardDescriptor;p.unsafeCleanup=!!p.unsafeCleanup;p.dir=_isUndefined(p.dir)?"":b.relative(a,_resolvePath(p.dir,a));p.template=_isUndefined(p.template)?undefined:b.relative(a,_resolvePath(p.template,a));p.template=_isBlank(p.template)?undefined:b.relative(p.dir,p.template);p.naLine truncated const c=a(79896);const l=a(70857);const p=a(16928);const d=a(76982);const u={fs:c.constants,os:l.constants};const A="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",h=/XXXXXX/,b=3,g=(u.O_CREAT||u.fs.O_CREAT)|(u.O_EXCL||u.fs.O_EXCL)|(u.O_RDWR||u.fs.O_RDWR),M=l.platform()==="win32",y=u.EBADF||u.os.errno.EBADF,O=u.ENOENT||u.os.errno.ENOENT,z=448,C=384,B="exit",I=[],v=c.rmdirSync.bind(c);let w=false;function rimraf(r,i){return c.rm(r,{recursive:true},i)}function FN_RIMRAF_SYNC(r){return c.rmSync(r,{recursive:true})}function tmpName(r,i){const a=_parseArguments(r,i),l=a[0],p=a[1];_assertAndSanitizeOptions(l,(function(r,i){if(r)return p(r);let a=i.tries;(function _getUniqueName(){try{const r=_generateTmpName(i);c.stat(r,(function(i){if(!i){if(a-- >0)return _getUniqueName();return p(new Error("Could not get a unique tmp filename, max tries reached "+r))}p(null,r)}))}catch(r){p(r)}})()}))}function tmpNameSync(r){const i=_parseArguments(r),a=i[0];const l=_assertAndSanitizeOptionsSync(a);let p=l.tries;do{const r=_generateTmpName(l);try{c.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),l=a[0],p=a[1];tmpName(l,(function _tmpNameCreated(r,i){if(r)return p(r);c.open(i,g,l.mode||C,(function _fileCreated(r,a){if(r)return p(r);if(l.discardDescriptor){return c.close(a,(function _discardCallback(r){return p(r,i,undefined,_prepareTmpFileRemoveCallback(i,-1,l,false))}))}else{const r=l.discardDescriptor||l.detachDescriptor;p(null,i,a,_prepareTmpFileRemoveCallback(i,r?-1:a,l,false))}}))}))}function fileSync(r){const i=_parseArguments(r),a=i[0];const l=a.discardDescriptor||a.detachDescriptor;const p=tmpNameSync(a);let d=c.openSync(p,g,a.mode||C);if(a.discardDescriptor){c.closeSync(d);d=undefined}return{name:p,fd:d,removeCallback:_prepareTmpFileRemoveCallback(p,l?-1:d,a,true)}}function dir(r,i){const a=_parseArguments(r,i),l=a[0],p=a[1];tmpName(l,(function _tmpNameCreated(r,i){if(r)return p(r);c.mkdir(i,l.mode||z,(function _dirCreated(r){if(r)return p(r);p(null,i,_prepareTmpDirRemoveCallback(i,l,false))}))}))}function dirSync(r){const i=_parseArguments(r),a=i[0];const l=tmpNameSync(a);c.mkdirSync(l,a.mode||z);return{name:l,removeCallback:_prepareTmpDirRemoveCallback(l,a,true)}}function _removeFileAsync(r,i){const _handler=function(r){if(r&&!_isENOENT(r)){return i(r)}i()};if(0<=r[0])c.close(r[0],(function(){c.unlink(r[1],_handler)}));else c.unlink(r[1],_handler)}function _removeFileSync(r){let i=null;try{if(0<=r[0])c.closeSync(r[0])}catch(r){if(!_isEBADF(r)&&!_isENOENT(r))throw r}finally{try{c.unlinkSync(r[1])}catch(r){if(!_isENOENT(r))i=r}}if(i!==null){throw i}}function _prepareTmpFileRemoveCallback(r,i,a,c){const l=_prepareRemoveCallback(_removeFileSync,[i,r],c);const p=_prepareRemoveCallback(_removeFileAsync,[i,r],c,l);if(!a.keep)I.unshift(l);return c?l:p}function _prepareTmpDirRemoveCallback(r,i,a){const l=i.unsafeCleanup?rimraf:c.rmdir.bind(c);const p=i.unsafeCleanup?FN_RIMRAF_SYNC:v;const d=_prepareRemoveCallback(p,r,a);const u=_prepareRemoveCallback(l,r,a,d);if(!i.keep)I.unshift(d);return a?d:u}function _prepareRemoveCallback(r,i,a,c){let l=false;return function _cleanupCallback(p){if(!l){const d=c||_cleanupCallback;const u=I.indexOf(d);if(u>=0)I.splice(u,1);l=true;if(a||r===v||r===FN_RIMRAF_SYNC){return r(i)}else{return r(i,p||function(){})}}}}function _garbageCollector(){if(!w)return;while(I.length){try{I[0]()}catch(r){}}}function _randomChars(r){let i=[],a=null;try{a=d.randomBytes(r)}catch(i){a=d.pseudoRandomBytes(r)}for(let c=0;c<r;c++){i.push(A[a[c]%A.length])}return i.join("")}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 _resolvePath(r,i,a){const l=p.isAbsolute(r)?r:p.join(i,r);c.stat(l,(function(r){if(r){c.realpath(p.dirname(l),(function(r,i){if(r)return a(r);a(null,p.join(i,p.basename(l)))}))}else{c.realpath(l,a)}}))}function _resolvePathSync(r,i){const a=p.isAbsolute(r)?r:p.join(i,r);try{c.statSync(a);return c.realpathSync(a)}catch(r){const i=c.realpathSync(p.dirname(a));return p.join(i,p.basename(a))}}function _generateTmpName(r){const i=r.tmpdir;if(!_isUndefined(r.name)){return p.join(i,r.dir,r.name)}if(!_isUndefined(r.template)){return p.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 p.join(i,r.dir,a)}function _assertOptionsBase(r){if(!_isUndefined(r.name)){const i=r.name;if(p.isAbsolute(i))throw new Error(`name option must not contain an absolute path, found "${i}".`);const a=p.basename(i);if(a===".."||a==="."||a!==i)throw new Error(`name option must not contain a path, found "${i}".`)}if(!_isUndefined(r.template)&&!r.template.match(h)){throw new Error(`Invalid templ 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 c=[];const l=new Uint8Array([13,10]);g=0;let p=false;for(const[i,d]of r){if(typeof d==="string"){const r=_.encode(a+`; name="${escape(normalizeLinefeeds(i))}"`+`\r\n\r\n${normalizeLinefeeds(d)}\r\n`);c.push(r);g+=r.byteLength}else{const r=_.encode(`${a}; name="${escape(normalizeLinefeeds(i))}"`+(d.name?`; filename="${escape(d.name)}"`:"")+"\r\n"+`Content-Type: ${d.type||"application/octet-stream"}\r\n\r\n`);c.push(r,d,l);if(typeof d.size==="number"){g+=r.byteLength+d.size+l.byteLength}else{p=true}}}const d=_.encode(`--${i}--`);c.push(d);g+=d.byteLength;if(p){g=null}b=r;h=async function*(){for(const r of c){if(r.stream){yield*r.stream()}else{yield r}}};M="multipart/form-data; boundary="+i}else if(d(r)){b=r;g=r.size;if(r.type){M=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")}c=r instanceof T?r:p(r)}if(typeof b==="string"||l.isBuffer(b)){g=Buffer.byteLength(b)}if(h!=null){let i;c=new T({async start(){i=h(r)[Symbol.asyncIterator]()},async pull(r){const{value:a,done:l}=await i.next();if(l){queueMicrotask((()=>{r.close()}))}else{if(!w(c)){r.enqueue(new Uint8Array(a))}}return r.desiredSize>0},async cancel(r){await i.return()},type:undefined})}const y={stream:c,source:b,length:g};return[y,M]}function safelyExtractBody(r,i=false){if(!T){T=a(63774).ReadableStream}if(r instanceof T){v(!l.isDisturbed(r),"The body has already been consumed.");v(!r.locked,"The stream is locked.")}return extractBody(r,i)}function cloneBody(r){const[i,a]=r.stream.tee();const c=z(a,{transfer:[a]});const[,l]=c.tee();r.stream=i;return{stream:l,length:r.length,source:r.source}}async function*consumeBody(r){if(r){if(S(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[I]=true;yield*i}}}function throwIfAborted(r){if(r.aborted){throw new O("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=q(i)}return new C([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(){y.brandCheck(this,r);throwIfAborted(this[M]);const i=this.headers.get("Content-Type");if(/multipart\/form-data/.test(i)){const r={};for(const[i,a]of this.headers)r[i.toLowerCase()]=a;const i=new g;let a;try{a=new c({headers:r,preservePath:true})}catch(r){throw new O(`${r}`,"AbortError")}a.on("field",((r,a)=>{i.append(r,a)}));a.on("file",((r,a,c,l,p)=>{const d=[];if(l==="base64"||l.toLowerCase()==="base64"){let l="";a.on("data",(r=>{l+=r.toString().replace(/[\r\n]/gm,"");const i=l.length-l.length%4;d.push(Buffer.from(l.slice(0,i),"base64"));l=l.slice(i)}));a.on("end",(()=>{d.push(Buffer.from(l,"base64"));i.append(r,new k(d,c,{type:p}))}))}else{a.on("data",(r=>{d.push(r)}));a.on("end",(()=>{i.append(r,new k(d,c,{type:p}))}))}}));const l=new Promise(((r,i)=>{a.on("finish",r);a.on("error",(r=>i(new TypeError(r))))}));if(this.body!==null)for await(const r of consumeBody(this[M].body))a.write(r);a.end();await l;return i}else if(/application\/x-www-form-urlencoded/.test(i)){let r;try{let i="";const a=new TextDecoder("utf-8",{ignoreBOM:true});for await(const r of consumeBody(this[M].body)){if(!S(r)){throw new TypeError("Expected Uint8Array chunk")}i+=a.decode(r,{stream:true})}i+=a.decode();r=new URLSearchParams(i)}catch(r){throw Object.assign(new TypeError,{cause:r})}const i=new g;for(const[a,c]of r){i.append(a,c)}return i}else{await Promise.resolve();throwIfAborted(this[M]);throw y.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,a){y.brandCheck(r,a);throwIfAborted(r[M]);if(bodyUnusable(r[M].body)){throw new TypeError("Body is unusable")}const c=h();const errorSteps=r=>c.reject(r);const successSteps=r=>{try{c.resolve(i(r))}catch(r){errorSteps(r)}};if(r[M].body==null){successSteps(new Uint8Array);return c.promise}await b(r[M].body,successSteps,errorSteps);return c.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=L.decode(r);return i}function parseJSONFromBytes(r){return JSON.parse(utf8DecodeBytes(r))}function bodyMimeType(r){const{headersList:i}=r[M];const a=i.get("contentLine truncated
/*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> */p[l-4]=this.maskKey[0];p[l-3]=this.maskKey[1];p[l-2]=this.maskKey[2];p[l-1]=this.maskKey[3];p[1]=a;if(a===126){p.writeUInt16BE(i,2)}else if(a===127){p[2]=p[3]=0;p.writeUIntBE(i,4,6)}p[1]|=128;for(let r=0;r<i;r++){p[l+r]=this.frameData[r]^this.maskKey[r%4]}return p}}r.exports={WebsocketFrameSend:WebsocketFrameSend}},43171:(r,i,a)=>{"use strict";const{Writable:c}=a(2203);const l=a(31637);const{parserStates:p,opcodes:d,states:u,emptyBuffer:A}=a(45913);const{kReadyState:h,kSentClose:b,kResponse:g,kReceivedClose:M}=a(62933);const{isValidStatusCode:y,failWebsocketConnection:O,websocketMessageReceived:z}=a(3574);const{WebsocketFrameSend:C}=a(31237);const B={};B.ping=l.channel("undici:websocket:ping");B.pong=l.channel("undici:websocket:pong");class ByteParser extends c{#o=[];#a=0;#c=p.INFO;#l={};#p=[];constructor(r){super();this.ws=r}_write(r,i,a){this.#o.push(r);this.#a+=r.length;this.run(a)}run(r){while(true){if(this.#c===p.INFO){if(this.#a<2){return r()}const i=this.consume(2);this.#l.fin=(i[0]&128)!==0;this.#l.opcode=i[0]&15;this.#l.originalOpcode??=this.#l.opcode;this.#l.fragmented=!this.#l.fin&&this.#l.opcode!==d.CONTINUATION;if(this.#l.fragmented&&this.#l.opcode!==d.BINARY&&this.#l.opcode!==d.TEXT){O(this.ws,"Invalid frame type was fragmented.");return}const a=i[1]&127;if(a<=125){this.#l.payloadLength=a;this.#c=p.READ_DATA}else if(a===126){this.#c=p.PAYLOADLENGTH_16}else if(a===127){this.#c=p.PAYLOADLENGTH_64}if(this.#l.fragmented&&a>125){O(this.ws,"Fragmented frame exceeded 125 bytes.");return}else if((this.#l.opcode===d.PING||this.#l.opcode===d.PONG||this.#l.opcode===d.CLOSE)&&a>125){O(this.ws,"Payload length for control frame exceeded 125 bytes.");return}else if(this.#l.opcode===d.CLOSE){if(a===1){O(this.ws,"Received close frame with a 1-byte body.");return}const r=this.consume(a);this.#l.closeInfo=this.parseCloseBody(false,r);if(!this.ws[b]){const r=Buffer.allocUnsafe(2);r.writeUInt16BE(this.#l.closeInfo.code,0);const i=new C(r);this.ws[g].socket.write(i.createFrame(d.CLOSE),(r=>{if(!r){this.ws[b]=true}}))}this.ws[h]=u.CLOSING;this.ws[M]=true;this.end();return}else if(this.#l.opcode===d.PING){const i=this.consume(a);if(!this.ws[M]){const r=new C(i);this.ws[g].socket.write(r.createFrame(d.PONG));if(B.ping.hasSubscribers){B.ping.publish({payload:i})}}this.#c=p.INFO;if(this.#a>0){continue}else{r();return}}else if(this.#l.opcode===d.PONG){const i=this.consume(a);if(B.pong.hasSubscribers){B.pong.publish({payload:i})}if(this.#a>0){continue}else{r();return}}}else if(this.#c===p.PAYLOADLENGTH_16){if(this.#a<2){return r()}const i=this.consume(2);this.#l.payloadLength=i.readUInt16BE(0);this.#c=p.READ_DATA}else if(this.#c===p.PAYLOADLENGTH_64){if(this.#a<8){return r()}const i=this.consume(8);const a=i.readUInt32BE(0);if(a>2**31-1){O(this.ws,"Received payload length > 2^31 bytes.");return}const c=i.readUInt32BE(4);this.#l.payloadLength=(a<<8)+c;this.#c=p.READ_DATA}else if(this.#c===p.READ_DATA){if(this.#a<this.#l.payloadLength){return r()}else if(this.#a>=this.#l.payloadLength){const r=this.consume(this.#l.payloadLength);this.#p.push(r);if(!this.#l.fragmented||this.#l.fin&&this.#l.opcode===d.CONTINUATION){const r=Buffer.concat(this.#p);z(this.ws,this.#l.originalOpcode,r);this.#l={};this.#p.length=0}this.#c=p.INFO}}if(this.#a>0){continue}else{r();break}}}consume(r){if(r>this.#a){return null}else if(r===0){return A}if(this.#o[0].length===r){this.#a-=this.#o[0].length;return this.#o.shift()}const i=Buffer.allocUnsafe(r);let a=0;while(a!==r){const c=this.#o[0];const{length:l}=c;if(l+a===r){i.set(this.#o.shift(),a);break}else if(l+a>r){i.set(c.subarray(0,r-a),a);this.#o[0]=c.subarray(r-a);break}else{i.set(this.#o.shift(),a);a+=c.length}}this.#a-=r;return i}parseCloseBody(r,i){let a;if(i.length>=2){a=i.readUInt16BE(0)}if(r){if(!y(a)){return null}return{code:a}}let c=i.subarray(2);if(c[0]===239&&c[1]===187&&c[2]===191){c=c.subarray(3)}if(a!==undefined&&!y(a)){return null}try{c=new TextDecoder("utf-8",{fatal:true}).decode(c)}catch{return null}return{code:a,reason:c}}get closingInfo(){return this.#l.closeInfo}}r.exports={ByteParser:ByteParser}},62933: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")}},3574:(r,i,a)=>{"use strict";const{kReadyState:c,kController:l,kResponse:p,kBinaryType:d,kWebSocketURL:u}=a(62933);const{states:A,opcodes:h}=a(45913);const{MessageEvent:b,ErrorEvent:g}=a(46255);function isEstablished(r){return r[c]===A.OPEN}function isClosing(r){return r[c]===A.CLOSING}function isClosed(r){return r[c]===A.CLOSED}function fireEvent(r,i,a=Event,c){const l=new a(r,c);i.dispatchEvent(l)}function websocketMessageReceived(r,i,a){if(r[c]!==A.OPEN){return}let l;if(i===h.TEXT){try{l=new TextDecoder("utf-8",{fatal:true}).Line truncated
/*! /*!
* XRegExp.build 4.4.1 * XRegExp.build 4.4.1
* <xregexp.com> * <xregexp.com>
* Steven Levithan (c) 2012-present MIT License * Steven Levithan (c) 2012-present MIT License
*/var u=function _default(p){var a="xregexp";var r=/(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*\]/g;var d=p.union([/\({{([\w$]+)}}\)|{{([\w$]+)}}/,r],"g",{conjunction:"or"});function deanchor(p){var a=/^(?:\(\?:\))*\^/;var r=/\$(?:\(\?:\))*$/;if(a.test(p)&&r.test(p)&&r.test(p.replace(/\\[\s\S]/g,""))){return p.replace(a,"").replace(r,"")}return p}function asXRegExp(r,d){var i=d?"x":"";return p.isRegExp(r)?r[a]&&r[a].captureNames?r:p(r.source,i):p(r,i)}function interpolate(a){return a instanceof RegExp?a:p.escape(a)}function reduceToSubpatternsObject(p,a,r){p["subpattern".concat(r)]=a;return p}function embedSubpatternAfter(p,a,r){var d=a<r.length-1;return p+(d?"{{subpattern".concat(a,"}}"):"")}p.tag=function(a){return function(r){var d,i;for(var b=arguments.length,c=new Array(b>1?b-1:0),u=1;u<b;u++){c[u-1]=arguments[u]}var O=(0,z["default"])(d=(0,M["default"])(c).call(c,interpolate)).call(d,reduceToSubpatternsObject,{});var l=(0,M["default"])(i=r.raw).call(i,embedSubpatternAfter).join("");return p.build(l,O,a)}};p.build=function(i,M,z){z=z||"";var u=(0,c["default"])(z).call(z,"x");var O=/^\(\?([\w$]+)\)/.exec(i);if(O){z=p._clipDuplicates(z+O[1])}var l={};for(var A in M){if(M.hasOwnProperty(A)){var m=asXRegExp(M[A],u);l[A]={pattern:deanchor(m.source),names:m[a].captureNames||[]}}}var q=asXRegExp(i,u);var h=0;var W;var v=0;var g=[0];var R=q[a].captureNames||[];var L=q.source.replace(d,(function(p,a,d,i,c){var M=a||d;var z;var u;var O;if(M){var A;if(!l.hasOwnProperty(M)){throw new ReferenceError("Undefined property ".concat(p))}if(a){z=R[v];g[++v]=++h;u="(?<".concat(z||M,">")}else{u="(?:"}W=h;var m=l[M].pattern.replace(r,(function(p,a,r){if(a){z=l[M].names[h-W];++h;if(z){return"(?<".concat(z,">")}}else if(r){O=+r-1;return l[M].names[O]?"\\k<".concat(l[M].names[O],">"):"\\".concat(+r+W)}return p}));return(0,b["default"])(A="".concat(u)).call(A,m,")")}if(i){z=R[v];g[++v]=++h;if(z){return"(?<".concat(z,">")}}else if(c){O=+c-1;return R[O]?"\\k<".concat(R[O],">"):"\\".concat(g[+c])}return p}));return p(L,z)}};a["default"]=u;p.exports=a.default},4811:(p,a,r)=>{"use strict";var d=r(515);var i=r(4218);i(a,"__esModule",{value:true});a["default"]=void 0;var b=d(r(9188));var c=d(r(466));var M=d(r(6611)); */var h=function _default(r){var i="xregexp";var a=/(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*\]/g;var c=r.union([/\({{([\w$]+)}}\)|{{([\w$]+)}}/,a],"g",{conjunction:"or"});function deanchor(r){var i=/^(?:\(\?:\))*\^/;var a=/\$(?:\(\?:\))*$/;if(i.test(r)&&a.test(r)&&a.test(r.replace(/\\[\s\S]/g,""))){return r.replace(i,"").replace(a,"")}return r}function asXRegExp(a,c){var l=c?"x":"";return r.isRegExp(a)?a[i]&&a[i].captureNames?a:r(a.source,l):r(a,l)}function interpolate(i){return i instanceof RegExp?i:r.escape(i)}function reduceToSubpatternsObject(r,i,a){r["subpattern".concat(a)]=i;return r}function embedSubpatternAfter(r,i,a){var c=i<a.length-1;return r+(c?"{{subpattern".concat(i,"}}"):"")}r.tag=function(i){return function(a){var c,l;for(var p=arguments.length,d=new Array(p>1?p-1:0),h=1;h<p;h++){d[h-1]=arguments[h]}var b=(0,A["default"])(c=(0,u["default"])(d).call(d,interpolate)).call(c,reduceToSubpatternsObject,{});var g=(0,u["default"])(l=a.raw).call(l,embedSubpatternAfter).join("");return r.build(g,b,i)}};r.build=function(l,u,A){A=A||"";var h=(0,d["default"])(A).call(A,"x");var b=/^\(\?([\w$]+)\)/.exec(l);if(b){A=r._clipDuplicates(A+b[1])}var g={};for(var M in u){if(u.hasOwnProperty(M)){var y=asXRegExp(u[M],h);g[M]={pattern:deanchor(y.source),names:y[i].captureNames||[]}}}var O=asXRegExp(l,h);var z=0;var C;var B=0;var I=[0];var v=O[i].captureNames||[];var w=O.source.replace(c,(function(r,i,c,l,d){var u=i||c;var A;var h;var b;if(u){var M;if(!g.hasOwnProperty(u)){throw new ReferenceError("Undefined property ".concat(r))}if(i){A=v[B];I[++B]=++z;h="(?<".concat(A||u,">")}else{h="(?:"}C=z;var y=g[u].pattern.replace(a,(function(r,i,a){if(i){A=g[u].names[z-C];++z;if(A){return"(?<".concat(A,">")}}else if(a){b=+a-1;return g[u].names[b]?"\\k<".concat(g[u].names[b],">"):"\\".concat(+a+C)}return r}));return(0,p["default"])(M="".concat(h)).call(M,y,")")}if(l){A=v[B];I[++B]=++z;if(A){return"(?<".concat(A,">")}}else if(d){b=+d-1;return v[b]?"\\k<".concat(v[b],">"):"\\".concat(I[+d])}return r}));return r(w,A)}};i["default"]=h;r.exports=i.default},53938:(r,i,a)=>{"use strict";var c=a(91901);var l=a(96141);l(i,"__esModule",{value:true});i["default"]=void 0;var p=c(a(17012));var d=c(a(45492));var u=c(a(73157));
/*! /*!
* XRegExp.matchRecursive 4.4.1 * XRegExp.matchRecursive 4.4.1
* <xregexp.com> * <xregexp.com>
* Steven Levithan (c) 2009-present MIT License * Steven Levithan (c) 2009-present MIT License
*/var z=function _default(p){function row(p,a,r,d){return{name:p,value:a,start:r,end:d}}p.matchRecursive=function(a,r,d,i,z){i=i||"";z=z||{};var u=(0,M["default"])(i).call(i,"g");var O=(0,M["default"])(i).call(i,"y");var l=i.replace(/y/g,"");var A=z,m=A.escapeChar;var q=z.valueNames;var h=[];var W=0;var v=0;var g=0;var R=0;var L;var _;var N;var y;var w;r=p(r,l);d=p(d,l);if(m){var E,T;if(m.length>1){throw new Error("Cannot use more than one escape character")}m=p.escape(m);w=new RegExp((0,c["default"])(E=(0,c["default"])(T="(?:".concat(m,"[\\S\\s]|(?:(?!")).call(T,p.union([r,d],"",{conjunction:"or"}).source,")[^")).call(E,m,"])+)+"),i.replace(/[^imu]+/g,""))}while(true){if(m){g+=(p.exec(a,w,g,"sticky")||[""])[0].length}N=p.exec(a,r,g);y=p.exec(a,d,g);if(N&&y){if(N.index<=y.index){y=null}else{N=null}}if(N||y){v=(N||y).index;g=v+(N||y)[0].length}else if(!W){break}if(O&&!W&&v>R){break}if(N){if(!W){L=v;_=g}++W}else if(y&&W){if(!--W){if(q){if(q[0]&&L>R){h.push(row(q[0],(0,b["default"])(a).call(a,R,L),R,L))}if(q[1]){h.push(row(q[1],(0,b["default"])(a).call(a,L,_),L,_))}if(q[2]){h.push(row(q[2],(0,b["default"])(a).call(a,_,v),_,v))}if(q[3]){h.push(row(q[3],(0,b["default"])(a).call(a,v,g),v,g))}}else{h.push((0,b["default"])(a).call(a,_,v))}R=g;if(!u){break}}}else{throw new Error("Unbalanced delimiter found in string")}if(v===g){++g}}if(u&&!O&&q&&q[0]&&a.length>R){h.push(row(q[0],(0,b["default"])(a).call(a,R),R,a.length))}return h}};a["default"]=z;p.exports=a.default},3110:(p,a,r)=>{"use strict";var d=r(515);var i=r(4218);i(a,"__esModule",{value:true});a["default"]=void 0;var b=d(r(2038));var c=d(r(5401));var M=d(r(9640));var z=d(r(7652));var u=d(r(3361));var O=d(r(9188));var l=d(r(6611));var A=d(r(466));var m=d(r(669));function _createForOfIteratorHelper(p,a){var r;if(typeof z["default"]==="undefined"||(0,M["default"])(p)==null){if((0,c["default"])(p)||(r=_unsupportedIterableToArray(p))||a&&p&&typeof p.length==="number"){if(r)p=r;var d=0;var i=function F(){};return{s:i,n:function n(){if(d>=p.length)return{done:true};return{done:false,value:p[d++]}},e:function e(p){throw p},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u=true,O=false,l;return{s:function s(){r=(0,b["default"])(p)},n:function n(){var p=r.next();u=p.done;return p},e:function e(p){O=true;l=p},f:function f(){try{if(!u&&r["return"]!=null)r["return"]()}finally{if(O)throw l}}}}function _unsupportedIterableToArray(p,a){var r;if(!p)return;if(typeof p==="string")return _arrayLikeToArray(p,a);var d=(0,O["default"])(r=Object.prototype.toString.call(p)).call(r,8,-1);if(d==="Object"&&p.constructor)d=p.constructor.name;if(d==="Map"||d==="Set")return(0,u["default"])(p);if(d==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(d))return _arrayLikeToArray(p,a)}function _arrayLikeToArray(p,a){if(a==null||a>p.length)a=p.length;for(var r=0,d=new Array(a);r<a;r++){d[r]=p[r]}return d} */var A=function _default(r){function row(r,i,a,c){return{name:r,value:i,start:a,end:c}}r.matchRecursive=function(i,a,c,l,A){l=l||"";A=A||{};var h=(0,u["default"])(l).call(l,"g");var b=(0,u["default"])(l).call(l,"y");var g=l.replace(/y/g,"");var M=A,y=M.escapeChar;var O=A.valueNames;var z=[];var C=0;var B=0;var I=0;var v=0;var w;var S;var R;var N;var Q;a=r(a,g);c=r(c,g);if(y){var q,x;if(y.length>1){throw new Error("Cannot use more than one escape character")}y=r.escape(y);Q=new RegExp((0,d["default"])(q=(0,d["default"])(x="(?:".concat(y,"[\\S\\s]|(?:(?!")).call(x,r.union([a,c],"",{conjunction:"or"}).source,")[^")).call(q,y,"])+)+"),l.replace(/[^imu]+/g,""))}while(true){if(y){I+=(r.exec(i,Q,I,"sticky")||[""])[0].length}R=r.exec(i,a,I);N=r.exec(i,c,I);if(R&&N){if(R.index<=N.index){N=null}else{R=null}}if(R||N){B=(R||N).index;I=B+(R||N)[0].length}else if(!C){break}if(b&&!C&&B>v){break}if(R){if(!C){w=B;S=I}++C}else if(N&&C){if(! --C){if(O){if(O[0]&&w>v){z.push(row(O[0],(0,p["default"])(i).call(i,v,w),v,w))}if(O[1]){z.push(row(O[1],(0,p["default"])(i).call(i,w,S),w,S))}if(O[2]){z.push(row(O[2],(0,p["default"])(i).call(i,S,B),S,B))}if(O[3]){z.push(row(O[3],(0,p["default"])(i).call(i,B,I),B,I))}}else{z.push((0,p["default"])(i).call(i,S,B))}v=I;if(!h){break}}}else{throw new Error("Unbalanced delimiter found in string")}if(B===I){++I}}if(h&&!b&&O&&O[0]&&i.length>v){z.push(row(O[0],(0,p["default"])(i).call(i,v),v,i.length))}return z}};i["default"]=A;r.exports=i.default},24594:(r,i,a)=>{"use strict";var c=a(91901);var l=a(96141);l(i,"__esModule",{value:true});i["default"]=void 0;var p=c(a(28187));var d=c(a(28708));var u=c(a(79285));var A=c(a(81098));var h=c(a(66300));var b=c(a(17012));var g=c(a(73157));var M=c(a(45492));var y=c(a(60167));function _createForOfIteratorHelper(r,i){var a;if(typeof A["default"]==="undefined"||(0,u["default"])(r)==null){if((0,d["default"])(r)||(a=_unsupportedIterableToArray(r))||i&&r&&typeof r.length==="number"){if(a)r=a;var c=0;var l=function F(){};return{s:l,n:function n(){if(c>=r.length)return{done:true};return{done:false,value:r[c++]}},e:function e(r){throw r},f:l}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var h=true,b=false,g;return{s:function s(){a=(0,p["default"])(r)},n:function n(){var r=a.next();h=r.done;return r},e:function e(r){b=true;g=r},f:function f(){try{if(!h&&a["return"]!=null)a["return"]()}finally{if(b)throw g}}}}function _unsupportedIterableToArray(r,i){var a;if(!r)return;if(typeof r==="string")return _arrayLikeToArray(r,i);var c=(0,b["default"])(a=Object.prototype.toString.call(r)).call(a,8,-1);if(c==="Object"&&r.constructor)c=r.constructor.name;if(c==="Map"||c==="Set")return(0,h["default"])(r);if(c==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c))return _arrayLikeToArray(r,i)}function _arrayLikeToArray(r,i){if(i==null||i>r.length)i=r.length;for(var a=0,c=new Array(i);a<i;a++){c[a]=r[a]}return c}
/*! /*!
* XRegExp Unicode Base 4.4.1 * XRegExp Unicode Base 4.4.1
* <xregexp.com> * <xregexp.com>
* Steven Levithan (c) 2008-present MIT License * Steven Levithan (c) 2008-present MIT License
*/var q=function _default(p){var a={};var r=p._dec;var d=p._hex;var i=p._pad4;function normalize(p){return p.replace(/[- _]+/g,"").toLowerCase()}function charCode(p){var a=/^\\[xu](.+)/.exec(p);return a?r(a[1]):p.charCodeAt(p[0]==="\\"?1:0)}function invertBmp(a){var r="";var b=-1;(0,m["default"])(p).call(p,a,/(\\x..|\\u....|\\?[\s\S])(?:-(\\x..|\\u....|\\?[\s\S]))?/,(function(p){var a=charCode(p[1]);if(a>b+1){r+="\\u".concat(i(d(b+1)));if(a>b+2){r+="-\\u".concat(i(d(a-1)))}}b=charCode(p[2]||p[1])}));if(b<65535){r+="\\u".concat(i(d(b+1)));if(b<65534){r+="-\\uFFFF"}}return r}function cacheInvertedBmp(p){var r="b!";return a[p][r]||(a[p][r]=invertBmp(a[p].bmp))}function buildAstral(p,r){var d=a[p];var i="";if(d.bmp&&!d.isBmpLast){var b;i=(0,A["default"])(b="[".concat(d.bmp,"]")).call(b,d.astral?"|":"")}if(d.astral){i+=d.astral}if(d.isBmpLast&&d.bmp){var c;i+=(0,A["default"])(c="".concat(d.astral?"|":"","[")).call(c,d.bmp,"]")}return r?"(?:(?!".concat(i,")(?:[\ud800-\udbff][\udc00-\udfff]|[\0-￿]))"):"(?:".concat(i,")")}function cacheAstral(p,r){var d=r?"a!":"a=";return a[p][d]||(a[p][d]=buildAstral(p,r))}p.addToken(/\\([pP])(?:{(\^?)([^}]*)}|([A-Za-z]))/,(function(p,r,d){var i="Invalid double negation ";var b="Unknown Unicode token ";var c="Unicode token missing data ";var M="Astral mode required for Unicode token ";var z="Astral mode does not support Unicode tokens within character classes";var u=p[1]==="P"||!!p[2];var O=(0,l["default"])(d).call(d,"A");var m=normalize(p[4]||p[3]);var q=a[m];if(p[1]==="P"&&p[2]){throw new SyntaxError(i+p[0])}if(!a.hasOwnProperty(m)){throw new SyntaxError(b+p[0])}if(q.inverseOf){m=normalize(q.inverseOf);if(!a.hasOwnProperty(m)){var h;throw new ReferenceError((0,A["default"])(h="".concat(c+p[0]," -> ")).call(h,q.inverseOf))}q=a[m];u=!u}if(!(q.bmp||O)){throw new SyntaxError(M+p[0])}if(O){if(r==="class"){throw new SyntaxError(z)}return cacheAstral(m,u)}return r==="class"?u?cacheInvertedBmp(m):q.bmp:"".concat((u?"[^":"[")+q.bmp,"]")}),{scope:"all",optionalFlags:"A",leadChar:"\\"});p.addUnicodeData=function(r){var d="Unicode token requires name";var i="Unicode token has no character data ";var b=_createForOfIteratorHelper(r),c;try{for(b.s();!(c=b.n()).done;){var M=c.value;if(!M.name){throw new Error(d)}if(!(M.inverseOf||M.bmp||M.astral)){throw new Error(i+M.name)}a[normalize(M.name)]=M;if(M.alias){a[normalize(M.alias)]=M}}}catch(p){b.e(p)}finally{b.f()}p.cache.flush("patterns")};p._getUnicodeProperty=function(p){var r=normalize(p);return a[r]}};a["default"]=q;p.exports=a.default},4686:(p,a,r)=>{"use strict";var d=r(515);var i=r(4218);i(a,"__esModule",{value:true});a["default"]=void 0;var b=d(r(5826)); */var O=function _default(r){var i={};var a=r._dec;var c=r._hex;var l=r._pad4;function normalize(r){return r.replace(/[- _]+/g,"").toLowerCase()}function charCode(r){var i=/^\\[xu](.+)/.exec(r);return i?a(i[1]):r.charCodeAt(r[0]==="\\"?1:0)}function invertBmp(i){var a="";var p=-1;(0,y["default"])(r).call(r,i,/(\\x..|\\u....|\\?[\s\S])(?:-(\\x..|\\u....|\\?[\s\S]))?/,(function(r){var i=charCode(r[1]);if(i>p+1){a+="\\u".concat(l(c(p+1)));if(i>p+2){a+="-\\u".concat(l(c(i-1)))}}p=charCode(r[2]||r[1])}));if(p<65535){a+="\\u".concat(l(c(p+1)));if(p<65534){a+="-\\uFFFF"}}return a}function cacheInvertedBmp(r){var a="b!";return i[r][a]||(i[r][a]=invertBmp(i[r].bmp))}function buildAstral(r,a){var c=i[r];var l="";if(c.bmp&&!c.isBmpLast){var p;l=(0,M["default"])(p="[".concat(c.bmp,"]")).call(p,c.astral?"|":"")}if(c.astral){l+=c.astral}if(c.isBmpLast&&c.bmp){var d;l+=(0,M["default"])(d="".concat(c.astral?"|":"","[")).call(d,c.bmp,"]")}return a?"(?:(?!".concat(l,")(?:[\ud800-\udbff][\udc00-\udfff]|[\0-￿]))"):"(?:".concat(l,")")}function cacheAstral(r,a){var c=a?"a!":"a=";return i[r][c]||(i[r][c]=buildAstral(r,a))}r.addToken(/\\([pP])(?:{(\^?)([^}]*)}|([A-Za-z]))/,(function(r,a,c){var l="Invalid double negation ";var p="Unknown Unicode token ";var d="Unicode token missing data ";var u="Astral mode required for Unicode token ";var A="Astral mode does not support Unicode tokens within character classes";var h=r[1]==="P"||!!r[2];var b=(0,g["default"])(c).call(c,"A");var y=normalize(r[4]||r[3]);var O=i[y];if(r[1]==="P"&&r[2]){throw new SyntaxError(l+r[0])}if(!i.hasOwnProperty(y)){throw new SyntaxError(p+r[0])}if(O.inverseOf){y=normalize(O.inverseOf);if(!i.hasOwnProperty(y)){var z;throw new ReferenceError((0,M["default"])(z="".concat(d+r[0]," -> ")).call(z,O.inverseOf))}O=i[y];h=!h}if(!(O.bmp||b)){throw new SyntaxError(u+r[0])}if(b){if(a==="class"){throw new SyntaxError(A)}return cacheAstral(y,h)}return a==="class"?h?cacheInvertedBmp(y):O.bmp:"".concat((h?"[^":"[")+O.bmp,"]")}),{scope:"all",optionalFlags:"A",leadChar:"\\"});r.addUnicodeData=function(a){var c="Unicode token requires name";var l="Unicode token has no character data ";var p=_createForOfIteratorHelper(a),d;try{for(p.s();!(d=p.n()).done;){var u=d.value;if(!u.name){throw new Error(c)}if(!(u.inverseOf||u.bmp||u.astral)){throw new Error(l+u.name)}i[normalize(u.name)]=u;if(u.alias){i[normalize(u.alias)]=u}}}catch(r){p.e(r)}finally{p.f()}r.cache.flush("patterns")};r._getUnicodeProperty=function(r){var a=normalize(r);return i[a]}};i["default"]=O;r.exports=i.default},65853:(r,i,a)=>{"use strict";var c=a(91901);var l=a(96141);l(i,"__esModule",{value:true});i["default"]=void 0;var p=c(a(38657));
/*! /*!
* XRegExp Unicode Blocks 4.4.1 * XRegExp Unicode Blocks 4.4.1
* <xregexp.com> * <xregexp.com>
* Steven Levithan (c) 2010-present MIT License * Steven Levithan (c) 2010-present MIT License
* Unicode data by Mathias Bynens <mathiasbynens.be> * Unicode data by Mathias Bynens <mathiasbynens.be>
*/var c=function _default(p){if(!p.addUnicodeData){throw new ReferenceError("Unicode Base must be loaded before Unicode Blocks")}p.addUnicodeData(b["default"])};a["default"]=c;p.exports=a.default},1996:(p,a,r)=>{"use strict";var d=r(515);var i=r(4218);i(a,"__esModule",{value:true});a["default"]=void 0;var b=d(r(8537)); */var d=function _default(r){if(!r.addUnicodeData){throw new ReferenceError("Unicode Base must be loaded before Unicode Blocks")}r.addUnicodeData(p["default"])};i["default"]=d;r.exports=i.default},87167:(r,i,a)=>{"use strict";var c=a(91901);var l=a(96141);l(i,"__esModule",{value:true});i["default"]=void 0;var p=c(a(4219));
/*! /*!
* XRegExp Unicode Categories 4.4.1 * XRegExp Unicode Categories 4.4.1
* <xregexp.com> * <xregexp.com>
* Steven Levithan (c) 2010-present MIT License * Steven Levithan (c) 2010-present MIT License
* Unicode data by Mathias Bynens <mathiasbynens.be> * Unicode data by Mathias Bynens <mathiasbynens.be>
*/var c=function _default(p){if(!p.addUnicodeData){throw new ReferenceError("Unicode Base must be loaded before Unicode Categories")}p.addUnicodeData(b["default"])};a["default"]=c;p.exports=a.default},9250:(p,a,r)=>{"use strict";var d=r(515);var i=r(4218);i(a,"__esModule",{value:true});a["default"]=void 0;var b=d(r(616)); */var d=function _default(r){if(!r.addUnicodeData){throw new ReferenceError("Unicode Base must be loaded before Unicode Categories")}r.addUnicodeData(p["default"])};i["default"]=d;r.exports=i.default},53682:(r,i,a)=>{"use strict";var c=a(91901);var l=a(96141);l(i,"__esModule",{value:true});i["default"]=void 0;var p=c(a(73862));
/*! /*!
* XRegExp Unicode Properties 4.4.1 * XRegExp Unicode Properties 4.4.1
* <xregexp.com> * <xregexp.com>
* Steven Levithan (c) 2012-present MIT License * Steven Levithan (c) 2012-present MIT License
* Unicode data by Mathias Bynens <mathiasbynens.be> * Unicode data by Mathias Bynens <mathiasbynens.be>
*/var c=function _default(p){if(!p.addUnicodeData){throw new ReferenceError("Unicode Base must be loaded before Unicode Properties")}var a=b["default"];a.push({name:"Assigned",inverseOf:"Cn"});p.addUnicodeData(a)};a["default"]=c;p.exports=a.default},5715:(p,a,r)=>{"use strict";var d=r(515);var i=r(4218);i(a,"__esModule",{value:true});a["default"]=void 0;var b=d(r(2524)); */var d=function _default(r){if(!r.addUnicodeData){throw new ReferenceError("Unicode Base must be loaded before Unicode Properties")}var i=p["default"];i.push({name:"Assigned",inverseOf:"Cn"});r.addUnicodeData(i)};i["default"]=d;r.exports=i.default},57387:(r,i,a)=>{"use strict";var c=a(91901);var l=a(96141);l(i,"__esModule",{value:true});i["default"]=void 0;var p=c(a(77103));
/*! /*!
* XRegExp Unicode Scripts 4.4.1 * XRegExp Unicode Scripts 4.4.1
* <xregexp.com> * <xregexp.com>
* Steven Levithan (c) 2010-present MIT License * Steven Levithan (c) 2010-present MIT License
* Unicode data by Mathias Bynens <mathiasbynens.be> * Unicode data by Mathias Bynens <mathiasbynens.be>
*/var c=function _default(p){if(!p.addUnicodeData){throw new ReferenceError("Unicode Base must be loaded before Unicode Scripts")}p.addUnicodeData(b["default"])};a["default"]=c;p.exports=a.default},7750:(p,a,r)=>{"use strict";var d=r(515);var i=r(4218);i(a,"__esModule",{value:true});a["default"]=void 0;var b=d(r(8612));var c=d(r(380));var M=d(r(4811));var z=d(r(3110));var u=d(r(4686));var O=d(r(1996));var l=d(r(9250));var A=d(r(5715));(0,c["default"])(b["default"]);(0,M["default"])(b["default"]);(0,z["default"])(b["default"]);(0,u["default"])(b["default"]);(0,O["default"])(b["default"]);(0,l["default"])(b["default"]);(0,A["default"])(b["default"]);var m=b["default"];a["default"]=m;p.exports=a.default},8612:(p,a,r)=>{"use strict";var d=r(515);var i=r(4218);i(a,"__esModule",{value:true});a["default"]=void 0;var b=d(r(2038));var c=d(r(5401));var M=d(r(9640));var z=d(r(7652));var u=d(r(3361));var O=d(r(466));var l=d(r(3781));var A=d(r(6761));var m=d(r(8135));var q=d(r(669));var h=d(r(6611));var W=d(r(1308));var v=d(r(9188));var g=d(r(8979));var R=d(r(3046));function _createForOfIteratorHelper(p,a){var r;if(typeof z["default"]==="undefined"||(0,M["default"])(p)==null){if((0,c["default"])(p)||(r=_unsupportedIterableToArray(p))||a&&p&&typeof p.length==="number"){if(r)p=r;var d=0;var i=function F(){};return{s:i,n:function n(){if(d>=p.length)return{done:true};return{done:false,value:p[d++]}},e:function e(p){throw p},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u=true,O=false,l;return{s:function s(){r=(0,b["default"])(p)},n:function n(){var p=r.next();u=p.done;return p},e:function e(p){O=true;l=p},f:function f(){try{if(!u&&r["return"]!=null)r["return"]()}finally{if(O)throw l}}}}function _unsupportedIterableToArray(p,a){var r;if(!p)return;if(typeof p==="string")return _arrayLikeToArray(p,a);var d=(0,v["default"])(r=Object.prototype.toString.call(p)).call(r,8,-1);if(d==="Object"&&p.constructor)d=p.constructor.name;if(d==="Map"||d==="Set")return(0,u["default"])(p);if(d==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(d))return _arrayLikeToArray(p,a)}function _arrayLikeToArray(p,a){if(a==null||a>p.length)a=p.length;for(var r=0,d=new Array(a);r<a;r++){d[r]=p[r]}return d} */var d=function _default(r){if(!r.addUnicodeData){throw new ReferenceError("Unicode Base must be loaded before Unicode Scripts")}r.addUnicodeData(p["default"])};i["default"]=d;r.exports=i.default},63897:(r,i,a)=>{"use strict";var c=a(91901);var l=a(96141);l(i,"__esModule",{value:true});i["default"]=void 0;var p=c(a(1240));var d=c(a(11577));var u=c(a(53938));var A=c(a(24594));var h=c(a(65853));var b=c(a(87167));var g=c(a(53682));var M=c(a(57387));(0,d["default"])(p["default"]);(0,u["default"])(p["default"]);(0,A["default"])(p["default"]);(0,h["default"])(p["default"]);(0,b["default"])(p["default"]);(0,g["default"])(p["default"]);(0,M["default"])(p["default"]);var y=p["default"];i["default"]=y;r.exports=i.default},1240:(r,i,a)=>{"use strict";var c=a(91901);var l=a(96141);l(i,"__esModule",{value:true});i["default"]=void 0;var p=c(a(28187));var d=c(a(28708));var u=c(a(79285));var A=c(a(81098));var h=c(a(66300));var b=c(a(45492));var g=c(a(70738));var M=c(a(89756));var y=c(a(77768));var O=c(a(60167));var z=c(a(73157));var C=c(a(76115));var B=c(a(17012));var I=c(a(77764));var v=c(a(89505));function _createForOfIteratorHelper(r,i){var a;if(typeof A["default"]==="undefined"||(0,u["default"])(r)==null){if((0,d["default"])(r)||(a=_unsupportedIterableToArray(r))||i&&r&&typeof r.length==="number"){if(a)r=a;var c=0;var l=function F(){};return{s:l,n:function n(){if(c>=r.length)return{done:true};return{done:false,value:r[c++]}},e:function e(r){throw r},f:l}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var h=true,b=false,g;return{s:function s(){a=(0,p["default"])(r)},n:function n(){var r=a.next();h=r.done;return r},e:function e(r){b=true;g=r},f:function f(){try{if(!h&&a["return"]!=null)a["return"]()}finally{if(b)throw g}}}}function _unsupportedIterableToArray(r,i){var a;if(!r)return;if(typeof r==="string")return _arrayLikeToArray(r,i);var c=(0,B["default"])(a=Object.prototype.toString.call(r)).call(a,8,-1);if(c==="Object"&&r.constructor)c=r.constructor.name;if(c==="Map"||c==="Set")return(0,h["default"])(r);if(c==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c))return _arrayLikeToArray(r,i)}function _arrayLikeToArray(r,i){if(i==null||i>r.length)i=r.length;for(var a=0,c=new Array(i);a<i;a++){c[a]=r[a]}return c}
/*! /*!
* XRegExp 4.4.1 * XRegExp 4.4.1
* <xregexp.com> * <xregexp.com>
* Steven Levithan (c) 2007-present MIT License * Steven Levithan (c) 2007-present MIT License
*/var L="xregexp";var _={astral:false,namespacing:false};var N={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split};var y={};var w={};var E={};var T=[];var B="default";var S="class";var X={default:/\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|\(\?(?:[:=!]|<[=!])|[?*+]\?|{\d+(?:,\d*)?}\??|[\s\S]/,class:/\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|[\s\S]/};var k=/\$(?:{([\w$]+)}|<([\w$]+)>|(\d\d?|[\s\S]))/g;var P=N.exec.call(/()??/,"")[1]===undefined;var C=(0,R["default"])(/x/)!==undefined;var x={},D=x.toString;function hasNativeFlag(p){var a=true;try{new RegExp("",p);if(p==="y"){var r=function(){return"gy"}();var d=".a".replace(new RegExp("a",r),".")==="..";if(d){a=false}}}catch(p){a=false}return a}var I=hasNativeFlag("u");var G=hasNativeFlag("y");var j={g:true,i:true,m:true,u:I,y:G};function augment(p,a,r,d,i){var b;p[L]={captureNames:a};if(i){return p}if(p.__proto__){p.__proto__=XRegExp.prototype}else{for(var c in XRegExp.prototype){p[c]=XRegExp.prototype[c]}}p[L].source=r;p[L].flags=d?(0,g["default"])(b=d.split("")).call(b).join(""):d;return p}function clipDuplicates(p){return N.replace.call(p,/([\s\S])(?=[\s\S]*\1)/g,"")}function copyRegex(p,a){var r;if(!XRegExp.isRegExp(p)){throw new TypeError("Type RegExp expected")}var d=p[L]||{};var i=getNativeFlags(p);var b="";var c="";var M=null;var z=null;a=a||{};if(a.removeG){c+="g"}if(a.removeY){c+="y"}if(c){i=N.replace.call(i,new RegExp("[".concat(c,"]+"),"g"),"")}if(a.addG){b+="g"}if(a.addY){b+="y"}if(b){i=clipDuplicates(i+b)}if(!a.isInternalOnly){if(d.source!==undefined){M=d.source}if((0,R["default"])(d)!=null){z=b?clipDuplicates((0,R["default"])(d)+b):(0,R["default"])(d)}}p=augment(new RegExp(a.source||p.source,i),hasNamedCapture(p)?(0,v["default"])(r=d.captureNames).call(r,0):null,M,z,a.isInternalOnly);return p}function dec(p){return(0,W["default"])(p,16)}function getContextualTokenSeparator(p,a,r){if(p.input[p.index-1]==="("||p.input[p.index+p[0].length]===")"||p.input[p.index-1]==="|"||p.input[p.index+p[0].length]==="|"||p.index<1||p.index+p[0].length>=p.input.length||N.test.call(/^\(\?[:=!]/,p.input.substr(p.index-3,3))||isQuantifierNext(p.input,p.index+p[0].length,r)){return""}return"(?:)"}function getNativeFlags(p){return C?(0,R["default"])(p):N.exec.call(/\/([a-z]*)$/i,RegExp.prototype.toString.call(p))[1]}function hasNamedCapture(p){return!!(p[L]&&p[L].captureNames)}function hex(p){return(0,W["default"])(p,10).toString(16)}function isQuantifierNext(p,a,r){var d="\\(\\?#[^)]*\\)";var i="#[^#\\n]*";var b="[?*+]|{\\d+(?:,\\d*)?}";return N.test.call((0,h["default"])(r).call(r,"x")?/^(?:\s|#[^#\n]*|\(\?#[^)]*\))*(?:[?*+]|{\d+(?:,\d*)?})/:/^(?:\(\?#[^)]*\))*(?:[?*+]|{\d+(?:,\d*)?})/,(0,v["default"])(p).call(p,a))}function isType(p,a){return D.call(p)==="[object ".concat(a,"]")}function pad4(p){while(p.length<4){p="0".concat(p)}return p}function prepareFlags(p,a){if(clipDuplicates(a)!==a){throw new SyntaxError("Invalid duplicate regex flag ".concat(a))}p=N.replace.call(p,/^\(\?([\w$]+)\)/,(function(p,r){if(N.test.call(/[gy]/,r)){throw new SyntaxError("Cannot use flag g or y in mode modifier ".concat(p))}a=clipDuplicates(a+r);return""}));var r=_createForOfIteratorHelper(a),d;try{for(r.s();!(d=r.n()).done;){var i=d.value;if(!j[i]){throw new SyntaxError("Unknown regex flag ".concat(i))}}}catch(p){r.e(p)}finally{r.f()}return{pattern:p,flags:a}}function prepareOptions(p){var a={};if(isType(p,"String")){(0,q["default"])(XRegExp).call(XRegExp,p,/[^\s,]+/,(function(p){a[p]=true}));return a}return p}function registerFlag(p){if(!/^[\w$]$/.test(p)){throw new Error("Flag must be a single character A-Za-z0-9_$")}j[p]=true}function runTokens(p,a,r,d,i){var b=T.length;var c=p[r];var M=null;var z;var u;while(b--){u=T[b];if(u.leadChar&&u.leadChar!==c||u.scope!==d&&u.scope!=="all"||u.flag&&!(0,h["default"])(a).call(a,u.flag)){continue}z=XRegExp.exec(p,u.regex,r,"sticky");if(z){M={matchLength:z[0].length,output:u.handler.call(i,z,d,a),reparse:u.reparse};break}}return M}function setAstral(p){_.astral=p}function setNamespacing(p){_.namespacing=p}function toObject(p){if(p==null){throw new TypeError("Cannot convert null or undefined to object")}return p}function XRegExp(p,a){if(XRegExp.isRegExp(p)){if(a!==undefined){throw new TypeError("Cannot supply flags when copying a RegExp")}return copyRegex(p)}p=p===undefined?"":String(p);a=a===undefined?"":String(a);if(XRegExp.isInstalled("astral")&&!(0,h["default"])(a).call(a,"A")){a+="A"}if(!E[p]){E[p]={}}if(!E[p][a]){var r={hasNamedCapture:false,captureNames:[]};var d=B;var i="";var b=0;var c;var M=prepareFlags(p,a);var z=M.pattern;var u=(0,R["default"])(M);while(b<z.length){do{c=runTokens(z,u,b,d,r);if(c&&c.reparse){z=(0,v["default"])(z).call(z,0,b)+c.output+(0,v["default"])(z).call(z,b+c.matchLength)}}while(c&&c.reparsLine truncated */var w="xregexp";var S={astral:false,namespacing:false};var R={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split};var N={};var Q={};var q={};var x=[];var T="default";var k="class";var _={default:/\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|\(\?(?:[:=!]|<[=!])|[?*+]\?|{\d+(?:,\d*)?}\??|[\s\S]/,class:/\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|[\s\S]/};var L=/\$(?:{([\w$]+)}|<([\w$]+)>|(\d\d?|[\s\S]))/g;var D=R.exec.call(/()??/,"")[1]===undefined;var P=(0,v["default"])(/x/)!==undefined;var W={},U=W.toString;function hasNativeFlag(r){var i=true;try{new RegExp("",r);if(r==="y"){var a=function(){return"gy"}();var c=".a".replace(new RegExp("a",a),".")==="..";if(c){i=false}}}catch(r){i=false}return i}var H=hasNativeFlag("u");var j=hasNativeFlag("y");var G={g:true,i:true,m:true,u:H,y:j};function augment(r,i,a,c,l){var p;r[w]={captureNames:i};if(l){return r}if(r.__proto__){r.__proto__=XRegExp.prototype}else{for(var d in XRegExp.prototype){r[d]=XRegExp.prototype[d]}}r[w].source=a;r[w].flags=c?(0,I["default"])(p=c.split("")).call(p).join(""):c;return r}function clipDuplicates(r){return R.replace.call(r,/([\s\S])(?=[\s\S]*\1)/g,"")}function copyRegex(r,i){var a;if(!XRegExp.isRegExp(r)){throw new TypeError("Type RegExp expected")}var c=r[w]||{};var l=getNativeFlags(r);var p="";var d="";var u=null;var A=null;i=i||{};if(i.removeG){d+="g"}if(i.removeY){d+="y"}if(d){l=R.replace.call(l,new RegExp("[".concat(d,"]+"),"g"),"")}if(i.addG){p+="g"}if(i.addY){p+="y"}if(p){l=clipDuplicates(l+p)}if(!i.isInternalOnly){if(c.source!==undefined){u=c.source}if((0,v["default"])(c)!=null){A=p?clipDuplicates((0,v["default"])(c)+p):(0,v["default"])(c)}}r=augment(new RegExp(i.source||r.source,l),hasNamedCapture(r)?(0,B["default"])(a=c.captureNames).call(a,0):null,u,A,i.isInternalOnly);return r}function dec(r){return(0,C["default"])(r,16)}function getContextualTokenSeparator(r,i,a){if(r.input[r.index-1]==="("||r.input[r.index+r[0].length]===")"||r.input[r.index-1]==="|"||r.input[r.index+r[0].length]==="|"||r.index<1||r.index+r[0].length>=r.input.length||R.test.call(/^\(\?[:=!]/,r.input.substr(r.index-3,3))||isQuantifierNext(r.input,r.index+r[0].length,a)){return""}return"(?:)"}function getNativeFlags(r){return P?(0,v["default"])(r):R.exec.call(/\/([a-z]*)$/i,RegExp.prototype.toString.call(r))[1]}function hasNamedCapture(r){return!!(r[w]&&r[w].captureNames)}function hex(r){return(0,C["default"])(r,10).toString(16)}function isQuantifierNext(r,i,a){var c="\\(\\?#[^)]*\\)";var l="#[^#\\n]*";var p="[?*+]|{\\d+(?:,\\d*)?}";return R.test.call((0,z["default"])(a).call(a,"x")?/^(?:\s|#[^#\n]*|\(\?#[^)]*\))*(?:[?*+]|{\d+(?:,\d*)?})/:/^(?:\(\?#[^)]*\))*(?:[?*+]|{\d+(?:,\d*)?})/,(0,B["default"])(r).call(r,i))}function isType(r,i){return U.call(r)==="[object ".concat(i,"]")}function pad4(r){while(r.length<4){r="0".concat(r)}return r}function prepareFlags(r,i){if(clipDuplicates(i)!==i){throw new SyntaxError("Invalid duplicate regex flag ".concat(i))}r=R.replace.call(r,/^\(\?([\w$]+)\)/,(function(r,a){if(R.test.call(/[gy]/,a)){throw new SyntaxError("Cannot use flag g or y in mode modifier ".concat(r))}i=clipDuplicates(i+a);return""}));var a=_createForOfIteratorHelper(i),c;try{for(a.s();!(c=a.n()).done;){var l=c.value;if(!G[l]){throw new SyntaxError("Unknown regex flag ".concat(l))}}}catch(r){a.e(r)}finally{a.f()}return{pattern:r,flags:i}}function prepareOptions(r){var i={};if(isType(r,"String")){(0,O["default"])(XRegExp).call(XRegExp,r,/[^\s,]+/,(function(r){i[r]=true}));return i}return r}function registerFlag(r){if(!/^[\w$]$/.test(r)){throw new Error("Flag must be a single character A-Za-z0-9_$")}G[r]=true}function runTokens(r,i,a,c,l){var p=x.length;var d=r[a];var u=null;var A;var h;while(p--){h=x[p];if(h.leadChar&&h.leadChar!==d||h.scope!==c&&h.scope!=="all"||h.flag&&!(0,z["default"])(i).call(i,h.flag)){continue}A=XRegExp.exec(r,h.regex,a,"sticky");if(A){u={matchLength:A[0].length,output:h.handler.call(l,A,c,i),reparse:h.reparse};break}}return u}function setAstral(r){S.astral=r}function setNamespacing(r){S.namespacing=r}function toObject(r){if(r==null){throw new TypeError("Cannot convert null or undefined to object")}return r}function XRegExp(r,i){if(XRegExp.isRegExp(r)){if(i!==undefined){throw new TypeError("Cannot supply flags when copying a RegExp")}return copyRegex(r)}r=r===undefined?"":String(r);i=i===undefined?"":String(i);if(XRegExp.isInstalled("astral")&&!(0,z["default"])(i).call(i,"A")){i+="A"}if(!q[r]){q[r]={}}if(!q[r][i]){var a={hasNamedCapture:false,captureNames:[]};var c=T;var l="";var p=0;var d;var u=prepareFlags(r,i);var A=u.pattern;var h=(0,v["default"])(u);while(p<A.length){do{d=runTokens(A,h,p,c,a);if(d&&d.reparse){A=(0,B["default"])(A).call(A,0,p)+d.output+(0,B["default"])(A).call(A,p+d.matchLength)}}while(d&&d.reparsLine truncated
/**
* ZipStream
*
* @ignore
* @license [MIT]{@link https://github.com/archiverjs/node-zip-stream/blob/master/LICENSE}
* @copyright (c) 2014 Chris Talkington, contributors.
*/
var c=a(39023).inherits;var l=a(47544).ZipArchiveOutputStream;var p=a(47544).ZipArchiveEntry;var d=a(53296);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)}};c(u,l);u.prototype._normalizeFileData=function(r){r=d.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 a=r.type==="symlink";if(r.name){r.name=d.sanitizePath(r.name);if(!a&&r.name.slice(-1)==="/"){i=true;r.type="directory"}else if(i){r.name+="/"}}if(i||a){r.store=true}r.date=d.dateify(r.date);return r};u.prototype.entry=function(r,i,a){if(typeof a!=="function"){a=this._emitErrorCallback.bind(this)}i=this._normalizeFileData(i);if(i.type!=="file"&&i.type!=="directory"&&i.type!=="symlink"){a(new Error(i.type+" entries not currently supported"));return}if(typeof i.name!=="string"||i.name.length===0){a(new Error("entry name must be a non-empty string value"));return}if(i.type==="symlink"&&typeof i.linkname!=="string"){a(new Error("entry linkname must be a non-empty string value when type equals symlink"));return}var c=new p(i.name);c.setTime(i.date,this.options.forceLocalTime);if(i.namePrependSlash){c.setName(i.name,true)}if(i.store){c.setMethod(0)}if(i.comment.length>0){c.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}c.setUnixMode(i.mode)}if(i.type==="symlink"&&typeof i.linkname==="string"){r=Buffer.from(i.linkname)}return l.prototype.entry.call(this,c,r,a)};u.prototype.finalize=function(){this.finish()}},40788:function(r,i,a){"use strict";var c=this&&this.__createBinding||(Object.create?function(r,i,a,c){if(c===undefined)c=a;var l=Object.getOwnPropertyDescriptor(i,a);if(!l||("get"in l?!i.__esModule:l.writable||l.configurable)){l={enumerable:true,get:function(){return i[a]}}}Object.defineProperty(r,c,l)}:function(r,i,a,c){if(c===undefined)c=a;r[c]=i[a]});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 p=this&&this.__importStar||function(){var ownKeys=function(r){ownKeys=Object.getOwnPropertyNames||function(r){var i=[];for(var a in r)if(Object.prototype.hasOwnProperty.call(r,a))i[i.length]=a;return i};return ownKeys(r)};return function(r){if(r&&r.__esModule)return r;var i={};if(r!=null)for(var a=ownKeys(r),p=0;p<a.length;p++)if(a[p]!=="default")c(i,r,a[p]);l(i,r);return i}}();var d=this&&this.__awaiter||function(r,i,a,c){function adopt(r){return r instanceof a?r:new a((function(i){i(r)}))}return new(a||(a=Promise))((function(a,l){function fulfilled(r){try{step(c.next(r))}catch(r){l(r)}}function rejected(r){try{step(c["throw"](r))}catch(r){l(r)}}function step(r){r.done?a(r.value):adopt(r.value).then(fulfilled,rejected)}step((c=c.apply(r,i||[])).next())}))};Object.defineProperty(i,"__esModule",{value:true});i.ContextSource=void 0;i.getInputs=getInputs;i.getContext=getContext;const u=p(a(37484));const A=a(23651);const h=a(21407);const b=a(36060);function getInputs(){return{context:u.getInput("context")||g.workflow,images:A.Util.getInputList("images",{ignoreComma:true,comment:"#"}),tags:A.Util.getInputList("tags",{ignoreComma:true,comment:"#"}),flavor:A.Util.getInputList("flavor",{ignoreComma:true,comment:"#"}),labels:A.Util.getInputList("labels",{ignoreComma:true,comment:"#"}),annotations:A.Util.getInputList("annotations",{ignoreComma:true,comment:"#"}),sepTags:u.getInput("sep-tags",{trimWhitespace:false})||`\n`,sepLabels:u.getInput("sep-labels",{trimWhitespace:false})||`\n`,sepAnnotations:u.getInput("sep-annotations",{trimWhitespace:false})||`\n`,bakeTarget:u.getInput("bake-target")||`docker-metadata-action`,githubToken:u.getInput("github-token")}}var g;(function(r){r["workflow"]="workflow";r["git"]="git"})(g||(i.ContextSource=g={}));function getContext(r,i){return d(this,void 0,void 0,(function*(){switch(r){case g.workflow:return yield getContextFromWorkflow(i);case g.git:return yield getContextFromGit();default:throw new Error(`Invalid context source: ${r}`)}}))}function getContextFromWorkflow(r){return d(this,void 0,void 0,(function*(){var i,a,c;const l=b.GitHub.context;if(/pull_request_target/.test(l.eventName)){l.ref=`refs/pull/${l.payload.number}/merge`}if(/true/i.test(process.env.DOCKER_METADATA_PR_HEAD_SHA||"")){if((/pull_request/.test(l.eventName)||/pull_request_target/.test(l.eventName))&&((c=(a=(i=l.payload)===null||i===void 0?void 0:i.pull_request)===null||a===void 0?void 0:a.head)===null||c===void 0?void 0:c.sha)!=undefined){l.sha=l.payload.pull_request.head.sha}}reLine truncated
//# sourceMappingURL=index.js.map //# sourceMappingURL=index.js.map
Generated Vendored
+1 -1
View File
@@ -1 +1 @@
{"version":3,"sources":["../webpack:/docker-metadata-action/node_modules/@actions/core/lib/command.js","../webpack:/docker-metadata-action/node_modules/@actions/core/lib/core.js","../webpack:/docker-metadata-action/node_modules/@actions/core/lib/file-command.js","../webpack:/docker-metadata-action/node_modules/@actions/core/lib/oidc-utils.js","../webpack:/docker-metadata-action/node_modules/@actions/core/lib/path-utils.js","../webpack:/docker-metadata-action/node_modules/@actions/core/lib/summary.js","../webpack:/docker-metadata-action/node_modules/@actions/core/lib/utils.js","../webpack:/docker-metadata-action/node_modules/@actions/exec/lib/exec.js","../webpack:/docker-metadata-action/node_modules/@actions/exec/lib/toolrunner.js","../webpack:/docker-metadata-action/node_modules/@actions/github/lib/context.js","../webpack:/docker-metadata-action/node_modules/@actions/github/lib/github.js","../webpack:/docker-metadata-action/node_modules/@actions/github/lib/internal/utils.js","../webpack:/docker-metadata-action/node_modules/@actions/github/lib/utils.js","../webpack:/docker-metadata-action/node_modules/@actions/http-client/lib/auth.js","../webpack:/docker-metadata-action/node_modules/@actions/http-client/lib/index.js","../webpack:/docker-metadata-action/node_modules/@actions/http-client/lib/proxy.js","../webpack:/docker-metadata-action/node_modules/@actions/io/lib/io-util.js","../webpack:/docker-metadata-action/node_modules/@actions/io/lib/io.js","../webpack:/docker-metadata-action/node_modules/@actions/tool-cache/lib/manifest.js","../webpack:/docker-metadata-action/node_modules/@actions/tool-cache/lib/retry-helper.js","../webpack:/docker-metadata-action/node_modules/@actions/tool-cache/lib/tool-cache.js","../webpack:/docker-metadata-action/node_modules/@actions/tool-cache/node_modules/semver/semver.js","../webpack:/docker-metadata-action/node_modules/@actions/tool-cache/node_modules/uuid/lib/bytesToUuid.js","../webpack:/docker-metadata-action/node_modules/@actions/tool-cache/node_modules/uuid/lib/rng.js","../webpack:/docker-metadata-action/node_modules/@actions/tool-cache/node_modules/uuid/v4.js","../webpack:/docker-metadata-action/node_modules/@babel/runtime-corejs3/core-js-stable/array/from.js","../webpack:/docker-metadata-action/node_modules/@babel/runtime-corejs3/core-js-stable/array/is-array.js","../webpack:/docker-metadata-action/node_modules/@babel/runtime-corejs3/core-js-stable/instance/concat.js","../webpack:/docker-metadata-action/node_modules/@babel/runtime-corejs3/core-js-stable/instance/flags.js","../webpack:/docker-metadata-action/node_modules/@babel/runtime-corejs3/core-js-stable/instance/for-each.js","../webpack:/docker-metadata-action/node_modules/@babel/runtime-corejs3/core-js-stable/instance/includes.js","../webpack:/docker-metadata-action/node_modules/@babel/runtime-corejs3/core-js-stable/instance/index-of.js","../webpack:/docker-metadata-action/node_modules/@babel/runtime-corejs3/core-js-stable/instance/map.js","../webpack:/docker-metadata-action/node_modules/@babel/runtime-corejs3/core-js-stable/instance/reduce.js","../webpack:/docker-metadata-action/node_modules/@babel/runtime-corejs3/core-js-stable/instance/slice.js","../webpack:/docker-metadata-action/node_modules/@babel/runtime-corejs3/core-js-stable/instance/sort.js","../webpack:/docker-metadata-action/node_modules/@babel/runtime-corejs3/core-js-stable/object/create.js","../webpack:/docker-metadata-action/node_modules/@babel/runtime-corejs3/core-js-stable/object/define-property.js","../webpack:/docker-metadata-action/node_modules/@babel/runtime-corejs3/core-js-stable/parse-int.js","../webpack:/docker-metadata-action/node_modules/@babel/runtime-corejs3/core-js-stable/symbol.js","../webpack:/docker-metadata-action/node_modules/@babel/runtime-corejs3/core-js/array/from.js","../webpack:/docker-metadata-action/node_modules/@babel/runtime-corejs3/core-js/array/is-array.js","../webpack:/docker-metadata-action/node_modules/@babel/runtime-corejs3/core-js/get-iterator-method.js","../webpack:/docker-metadata-action/node_modules/@babel/runtime-corejs3/core-js/get-iterator.js","../webpack:/docker-metadata-action/node_modules/@babel/runtime-corejs3/core-js/instance/slice.js","../webpack:/docker-metadata-action/node_modules/@babel/runtime-corejs3/core-js/symbol.js","../webpack:/docker-metadata-action/node_modules/@babel/runtime-corejs3/helpers/arrayLikeToArray.js","../webpack:/docker-metadata-action/node_modules/@babel/runtime-corejs3/helpers/arrayWithHoles.js","../webpack:/docker-metadata-action/node_modules/@babel/runtime-corejs3/helpers/interopRequireDefault.js","../webpack:/docker-metadata-action/node_modules/@babel/runtime-corejs3/helpers/iterableToArrayLimit.js","../webpack:/docker-metadata-action/node_modules/@babel/runtime-corejs3/helpers/nonIterableRest.js","../webpack:/docker-metadata-action/node_modules/@babel/runtime-corejs3/helpers/slicedToArray.js","../webpack:/docker-metadata-action/node_modules/@babel/runtime-corejs3/helpers/unsuLine 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","FinalizeMigratedArtifactResponse","FinalizeMigratedArtifactRequest","MigrateArtifactResponse","MigrateArtifactRequest","runtime_rpc_1","wrappers_1","wrappers_2","timestamp_1","MigrateArtifactRequest$Type","workflowRunBackendId","expiresAt","fork","join","MigrateArtifactResponse$Type","ok","signedUploadUrl","FinalizeMigratedArtifactRequest$Type","size","FinalizeMigratedArtifactResponse$Type","artifactId","CreateArtifactRequest$Type","workflowJobRunBackendId","version","CreateArtifactResponse$Type","FinalizeArtifactRequest$Type","hash","FinalizeArtifactResponse$Type","ListArtifactsRequest$Type","nameFilter","idFilter","ListArtifactsResponse$Type","artifacts","push","i","ListArtifactsResponse_MonolithArtifact$Type","databaseId","createdAt","digest","GetSignedArtifactURLRequest$Type","GetSignedArtifactURLResponse$Type","signedUrl","DeleteArtifactRequest$Type","DeleteArtifactResponse$Type","ServiceType","I","O","ArtifactServiceClientProtobuf","ArtifactServiceClientJSON","artifact_1","rpc","CreateArtifact","bind","FinalizeArtifact","ListArtifacts","GetSignedArtifactURL","DeleteArtifact","request","data","toJson","useProtoFieldName","emitDefaultValues","promise","then","fromJson","ignoreUnknownFields","toBinary","fromBinary","__awaiter","thisArg","_arguments","P","generator","adopt","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","apply","__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","plugin_request_log_1","plugin_retry_1","artifact_twirp_client_1","util_1","generated_1","_a","retryOpts","requestOpts","getRetryOptions","defaults","opts","log","userAgent","getUserAgentString","previews","retry","github","getOctokit","requestLog","getArtifactResp","deleteArtifactResp","rest","actions","owner","repo","artifact_id","artifact","id","status","InvalidResponseError","headers","artifactClient","internalArtifactTwirpClient","getBackendIdsFromToken","listReq","listRes","ArtifactNotFoundError","sort","a","b","debug","req","res","info","__setModuleDefault","v","__importStar","ownKeys","getOwnPropertyNames","ar","mod","__importDefault","default","streamExtractExternal","promises_1","crypto","stream","core","httpClient","unzip_stream_1","scrubQueryParameters","url","parsed","URL","search","exists","path","access","code","streamExtract","directory","retryCount","setTimeout","url_1","diLine truncated
Generated Vendored
+2 -1420
View File
File diff suppressed because it is too large. Load diff
Generated Vendored
+1 -1
View File
@@ -1 +1 @@
(()=>{var e={650:e=>{var r=Object.prototype.toString;var n=typeof Buffer.alloc==="function"&&typeof Buffer.allocUnsafe==="function"&&typeof Buffer.from==="function";function isArrayBuffer(e){return r.call(e).slice(8,-1)==="ArrayBuffer"}function fromArrayBuffer(e,r,t){r>>>=0;var o=e.byteLength-r;if(o<0){throw new RangeError("'offset' is out of bounds")}if(t===undefined){t=o}else{t>>>=0;if(t>o){throw new RangeError("'length' is out of bounds")}}return n?Buffer.from(e.slice(r,r+t)):new Buffer(new Uint8Array(e.slice(r,r+t)))}function fromString(e,r){if(typeof r!=="string"||r===""){r="utf8"}if(!Buffer.isEncoding(r)){throw new TypeError('"encoding" must be a valid string encoding')}return n?Buffer.from(e,r):new Buffer(e,r)}function bufferFrom(e,r,t){if(typeof e==="number"){throw new TypeError('"value" argument must not be a number')}if(isArrayBuffer(e)){return fromArrayBuffer(e,r,t)}if(typeof e==="string"){return fromString(e,r)}return n?Buffer.from(e):new Buffer(e)}e.exports=bufferFrom},274:(e,r,n)=>{var t=n(339);var o=Object.prototype.hasOwnProperty;var i=typeof Map!=="undefined";function ArraySet(){this._array=[];this._set=i?new Map:Object.create(null)}ArraySet.fromArray=function ArraySet_fromArray(e,r){var n=new ArraySet;for(var t=0,o=e.length;t<o;t++){n.add(e[t],r)}return n};ArraySet.prototype.size=function ArraySet_size(){return i?this._set.size:Object.getOwnPropertyNames(this._set).length};ArraySet.prototype.add=function ArraySet_add(e,r){var n=i?e:t.toSetString(e);var a=i?this.has(e):o.call(this._set,n);var u=this._array.length;if(!a||r){this._array.push(e)}if(!a){if(i){this._set.set(e,u)}else{this._set[n]=u}}};ArraySet.prototype.has=function ArraySet_has(e){if(i){return this._set.has(e)}else{var r=t.toSetString(e);return o.call(this._set,r)}};ArraySet.prototype.indexOf=function ArraySet_indexOf(e){if(i){var r=this._set.get(e);if(r>=0){return r}}else{var n=t.toSetString(e);if(o.call(this._set,n)){return this._set[n]}}throw new Error('"'+e+'" is not in the set.')};ArraySet.prototype.at=function ArraySet_at(e){if(e>=0&&e<this._array.length){return this._array[e]}throw new Error("No element indexed by "+e)};ArraySet.prototype.toArray=function ArraySet_toArray(){return this._array.slice()};r.I=ArraySet},449:(e,r,n)=>{var t=n(190);var o=5;var i=1<<o;var a=i-1;var u=i;function toVLQSigned(e){return e<0?(-e<<1)+1:(e<<1)+0}function fromVLQSigned(e){var r=(e&1)===1;var n=e>>1;return r?-n:n}r.encode=function base64VLQ_encode(e){var r="";var n;var i=toVLQSigned(e);do{n=i&a;i>>>=o;if(i>0){n|=u}r+=t.encode(n)}while(i>0);return r};r.decode=function base64VLQ_decode(e,r,n){var i=e.length;var s=0;var l=0;var c,p;do{if(r>=i){throw new Error("Expected more digits in base 64 VLQ value.")}p=t.decode(e.charCodeAt(r++));if(p===-1){throw new Error("Invalid base64 digit: "+e.charAt(r-1))}c=!!(p&u);p&=a;s=s+(p<<l);l+=o}while(c);n.value=fromVLQSigned(s);n.rest=r}},190:(e,r)=>{var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");r.encode=function(e){if(0<=e&&e<n.length){return n[e]}throw new TypeError("Must be between 0 and 63: "+e)};r.decode=function(e){var r=65;var n=90;var t=97;var o=122;var i=48;var a=57;var u=43;var s=47;var l=26;var c=52;if(r<=e&&e<=n){return e-r}if(t<=e&&e<=o){return e-t+l}if(i<=e&&e<=a){return e-i+c}if(e==u){return 62}if(e==s){return 63}return-1}},345:(e,r)=>{r.GREATEST_LOWER_BOUND=1;r.LEAST_UPPER_BOUND=2;function recursiveSearch(e,n,t,o,i,a){var u=Math.floor((n-e)/2)+e;var s=i(t,o[u],true);if(s===0){return u}else if(s>0){if(n-u>1){return recursiveSearch(u,n,t,o,i,a)}if(a==r.LEAST_UPPER_BOUND){return n<o.length?n:-1}else{return u}}else{if(u-e>1){return recursiveSearch(e,u,t,o,i,a)}if(a==r.LEAST_UPPER_BOUND){return u}else{return e<0?-1:e}}}r.search=function search(e,n,t,o){if(n.length===0){return-1}var i=recursiveSearch(-1,n.length,e,n,t,o||r.GREATEST_LOWER_BOUND);if(i<0){return-1}while(i-1>=0){if(t(n[i],n[i-1],true)!==0){break}--i}return i}},680:(e,r,n)=>{var t=n(339);function generatedPositionAfter(e,r){var n=e.generatedLine;var o=r.generatedLine;var i=e.generatedColumn;var a=r.generatedColumn;return o>n||o==n&&a>=i||t.compareByGeneratedPositionsInflated(e,r)<=0}function MappingList(){this._array=[];this._sorted=true;this._last={generatedLine:-1,generatedColumn:0}}MappingList.prototype.unsortedForEach=function MappingList_forEach(e,r){this._array.forEach(e,r)};MappingList.prototype.add=function MappingList_add(e){if(generatedPositionAfter(this._last,e)){this._last=e;this._array.push(e)}else{this._sorted=false;this._array.push(e)}};MappingList.prototype.toArray=function MappingList_toArray(){if(!this._sorted){this._array.sort(t.compareByGeneratedPositionsInflated);this._sorted=true}return this._array};r.H=MappingList},758:(e,r)=>{function swap(e,r,n){var t=e[r];e[r]=e[n];e[n]=t}function randomIntInRange(e,r){return Math.round(e+Math.random()*(r-e))}function doQuickSort(e,r,n,t){if(n<t){var o=randomIntInRange(n,t);var i=n-1;swap(e,o,t);var a=e[t];for(var u=n;u<t;u++){if(r(e[u],Line truncated (()=>{var e={296:e=>{var r=Object.prototype.toString;var n=typeof Buffer!=="undefined"&&typeof Buffer.alloc==="function"&&typeof Buffer.allocUnsafe==="function"&&typeof Buffer.from==="function";function isArrayBuffer(e){return r.call(e).slice(8,-1)==="ArrayBuffer"}function fromArrayBuffer(e,r,t){r>>>=0;var o=e.byteLength-r;if(o<0){throw new RangeError("'offset' is out of bounds")}if(t===undefined){t=o}else{t>>>=0;if(t>o){throw new RangeError("'length' is out of bounds")}}return n?Buffer.from(e.slice(r,r+t)):new Buffer(new Uint8Array(e.slice(r,r+t)))}function fromString(e,r){if(typeof r!=="string"||r===""){r="utf8"}if(!Buffer.isEncoding(r)){throw new TypeError('"encoding" must be a valid string encoding')}return n?Buffer.from(e,r):new Buffer(e,r)}function bufferFrom(e,r,t){if(typeof e==="number"){throw new TypeError('"value" argument must not be a number')}if(isArrayBuffer(e)){return fromArrayBuffer(e,r,t)}if(typeof e==="string"){return fromString(e,r)}return n?Buffer.from(e):new Buffer(e)}e.exports=bufferFrom},599:(e,r,n)=>{e=n.nmd(e);var t=n(927).SourceMapConsumer;var o=n(928);var i;try{i=n(896);if(!i.existsSync||!i.readFileSync){i=null}}catch(e){}var a=n(296);function dynamicRequire(e,r){return e.require(r)}var u=false;var s=false;var l=false;var c="auto";var p={};var f={};var g=/^data:application\/json[^,]+base64,/;var d=[];var h=[];function isInBrowser(){if(c==="browser")return true;if(c==="node")return false;return typeof window!=="undefined"&&typeof XMLHttpRequest==="function"&&!(window.require&&window.module&&window.process&&window.process.type==="renderer")}function hasGlobalProcessEventEmitter(){return typeof process==="object"&&process!==null&&typeof process.on==="function"}function globalProcessVersion(){if(typeof process==="object"&&process!==null){return process.version}else{return""}}function globalProcessStderr(){if(typeof process==="object"&&process!==null){return process.stderr}}function globalProcessExit(e){if(typeof process==="object"&&process!==null&&typeof process.exit==="function"){return process.exit(e)}}function handlerExec(e){return function(r){for(var n=0;n<e.length;n++){var t=e[n](r);if(t){return t}}return null}}var m=handlerExec(d);d.push((function(e){e=e.trim();if(/^file:/.test(e)){e=e.replace(/file:\/\/\/(\w:)?/,(function(e,r){return r?"":"/"}))}if(e in p){return p[e]}var r="";try{if(!i){var n=new XMLHttpRequest;n.open("GET",e,false);n.send(null);if(n.readyState===4&&n.status===200){r=n.responseText}}else if(i.existsSync(e)){r=i.readFileSync(e,"utf8")}}catch(e){}return p[e]=r}));function supportRelativeURL(e,r){if(!e)return r;var n=o.dirname(e);var t=/^\w+:\/\/[^\/]*/.exec(n);var i=t?t[0]:"";var a=n.slice(i.length);if(i&&/^\/\w\:/.test(a)){i+="/";return i+o.resolve(n.slice(i.length),r).replace(/\\/g,"/")}return i+o.resolve(n.slice(i.length),r)}function retrieveSourceMapURL(e){var r;if(isInBrowser()){try{var n=new XMLHttpRequest;n.open("GET",e,false);n.send(null);r=n.readyState===4?n.responseText:null;var t=n.getResponseHeader("SourceMap")||n.getResponseHeader("X-SourceMap");if(t){return t}}catch(e){}}r=m(e);var o=/(?:\/\/[@#][\s]*sourceMappingURL=([^\s'"]+)[\s]*$)|(?:\/\*[@#][\s]*sourceMappingURL=([^\s*'"]+)[\s]*(?:\*\/)[\s]*$)/gm;var i,a;while(a=o.exec(r))i=a;if(!i)return null;return i[1]}var v=handlerExec(h);h.push((function(e){var r=retrieveSourceMapURL(e);if(!r)return null;var n;if(g.test(r)){var t=r.slice(r.indexOf(",")+1);n=a(t,"base64").toString();r=e}else{r=supportRelativeURL(e,r);n=m(r)}if(!n){return null}return{url:r,map:n}}));function mapSourcePosition(e){var r=f[e.source];if(!r){var n=v(e.source);if(n){r=f[e.source]={url:n.url,map:new t(n.map)};if(r.map.sourcesContent){r.map.sources.forEach((function(e,n){var t=r.map.sourcesContent[n];if(t){var o=supportRelativeURL(r.url,e);p[o]=t}}))}}else{r=f[e.source]={url:null,map:null}}}if(r&&r.map&&typeof r.map.originalPositionFor==="function"){var o=r.map.originalPositionFor(e);if(o.source!==null){o.source=supportRelativeURL(r.url,o.source);return o}}return e}function mapEvalOrigin(e){var r=/^eval at ([^(]+) \((.+):(\d+):(\d+)\)$/.exec(e);if(r){var n=mapSourcePosition({source:r[2],line:+r[3],column:r[4]-1});return"eval at "+r[1]+" ("+n.source+":"+n.line+":"+(n.column+1)+")"}r=/^eval at ([^(]+) \((.+)\)$/.exec(e);if(r){return"eval at "+r[1]+" ("+mapEvalOrigin(r[2])+")"}return e}function CallSiteToString(){var e;var r="";if(this.isNative()){r="native"}else{e=this.getScriptNameOrSourceURL();if(!e&&this.isEval()){r=this.getEvalOrigin();r+=", "}if(e){r+=e}else{r+="<anonymous>"}var n=this.getLineNumber();if(n!=null){r+=":"+n;var t=this.getColumnNumber();if(t){r+=":"+t}}}var o="";var i=this.getFunctionName();var a=true;var u=this.isConstructor();var s=!(this.isToplevel()||u);if(s){var l=this.getTypeName();if(l==="[object Object]"){l="null"}var c=this.getMethodName();if(i){if(l&&i.indexOf(l)!=0){o+=l+"."}o+=i;if(c&&i.indexOf("."+c)!=i.length-c.length-1){o+=" [as "+c+"]"}}else{o+=l+"."+(c||"<anonymous>")}}else if(u){o+="new "+(i||"<aLine truncated
+15 -2
View File
@@ -1,9 +1,15 @@
target "_common" {
args = {
BUILDKIT_CONTEXT_KEEP_GIT_DIR = 1
}
}
group "default" { group "default" {
targets = ["build"] targets = ["build"]
} }
group "pre-checkin" { group "pre-checkin" {
targets = ["vendor-update", "format", "build"] targets = ["vendor", "format", "build"]
} }
group "validate" { group "validate" {
@@ -11,42 +17,49 @@ group "validate" {
} }
target "build" { target "build" {
inherits = ["_common"]
dockerfile = "dev.Dockerfile" dockerfile = "dev.Dockerfile"
target = "build-update" target = "build-update"
output = ["."] output = ["."]
} }
target "build-validate" { target "build-validate" {
inherits = ["_common"]
dockerfile = "dev.Dockerfile" dockerfile = "dev.Dockerfile"
target = "build-validate" target = "build-validate"
output = ["type=cacheonly"] output = ["type=cacheonly"]
} }
target "format" { target "format" {
inherits = ["_common"]
dockerfile = "dev.Dockerfile" dockerfile = "dev.Dockerfile"
target = "format-update" target = "format-update"
output = ["."] output = ["."]
} }
target "lint" { target "lint" {
inherits = ["_common"]
dockerfile = "dev.Dockerfile" dockerfile = "dev.Dockerfile"
target = "lint" target = "lint"
output = ["type=cacheonly"] output = ["type=cacheonly"]
} }
target "vendor-update" { target "vendor" {
inherits = ["_common"]
dockerfile = "dev.Dockerfile" dockerfile = "dev.Dockerfile"
target = "vendor-update" target = "vendor-update"
output = ["."] output = ["."]
} }
target "vendor-validate" { target "vendor-validate" {
inherits = ["_common"]
dockerfile = "dev.Dockerfile" dockerfile = "dev.Dockerfile"
target = "vendor-validate" target = "vendor-validate"
output = ["type=cacheonly"] output = ["type=cacheonly"]
} }
target "test" { target "test" {
inherits = ["_common"]
dockerfile = "dev.Dockerfile" dockerfile = "dev.Dockerfile"
target = "test-coverage" target = "test-coverage"
output = ["./coverage"] output = ["./coverage"]
+34 -37
View File
@@ -1,13 +1,16 @@
{ {
"name": "docker-metadata-action", "name": "docker-metadata-action",
"description": "GitHub Action to extract metadata (tags, labels) for Docker", "description": "GitHub Action to extract metadata (tags, labels) for Docker",
"main": "lib/main.js", "main": "src/main.ts",
"scripts": { "scripts": {
"build": "ncc build src/main.ts --source-map --minify --license licenses.txt", "build": "ncc build --source-map --minify --license licenses.txt",
"lint": "eslint src/**/*.ts __tests__/**/*.ts", "lint": "yarn run prettier && yarn run eslint",
"format": "eslint --fix src/**/*.ts __tests__/**/*.ts", "format": "yarn run prettier:fix && yarn run eslint:fix",
"test": "jest --coverage", "eslint": "eslint --max-warnings=0 .",
"all": "yarn run build && yarn run format && yarn test" "eslint:fix": "eslint --fix .",
"prettier": "prettier --check \"./**/*.ts\"",
"prettier:fix": "prettier --write \"./**/*.ts\"",
"test": "jest"
}, },
"repository": { "repository": {
"type": "git", "type": "git",
@@ -20,41 +23,35 @@
"tag", "tag",
"label" "label"
], ],
"author": "Docker", "author": "Docker Inc.",
"contributors": [
{
"name": "CrazyMax",
"url": "https://crazymax.dev"
}
],
"license": "Apache-2.0", "license": "Apache-2.0",
"packageManager": "yarn@4.9.2",
"dependencies": { "dependencies": {
"@actions/core": "^1.10.0", "@actions/core": "^1.11.1",
"@actions/github": "^5.1.1", "@actions/github": "^6.0.1",
"@docker/actions-toolkit": "^0.1.0", "@docker/actions-toolkit": "^0.68.0",
"@renovate/pep440": "^1.0.0", "@renovate/pep440": "^1.0.0",
"csv-parse": "^5.3.8", "csv-parse": "^6.1.0",
"handlebars": "^4.7.7", "handlebars": "^4.7.8",
"moment": "^2.29.4", "moment": "^2.30.1",
"moment-timezone": "^0.5.43", "moment-timezone": "^0.6.0",
"semver": "^7.5.0" "semver": "^7.7.3"
}, },
"devDependencies": { "devDependencies": {
"@types/csv-parse": "^1.2.2", "@types/node": "^20.19.9",
"@types/node": "^16.18.23", "@types/semver": "^7.7.1",
"@types/semver": "^7.3.13", "@typescript-eslint/eslint-plugin": "^7.18.0",
"@typescript-eslint/eslint-plugin": "^5.56.0", "@typescript-eslint/parser": "^7.18.0",
"@typescript-eslint/parser": "^5.56.0", "@vercel/ncc": "^0.38.3",
"@vercel/ncc": "^0.36.1", "dotenv": "^16.6.1",
"dotenv": "^16.0.3", "eslint": "^8.57.1",
"eslint": "^8.36.0", "eslint-config-prettier": "^9.1.2",
"eslint-config-prettier": "^8.8.0", "eslint-plugin-jest": "^28.14.0",
"eslint-plugin-jest": "^27.2.1", "eslint-plugin-prettier": "^5.5.4",
"eslint-plugin-prettier": "^4.2.1", "jest": "^29.7.0",
"jest": "^29.5.0", "prettier": "^3.6.2",
"prettier": "^2.8.7", "ts-jest": "^29.4.1",
"ts-jest": "^29.0.5", "ts-node": "^10.9.2",
"ts-node": "^10.9.1", "typescript": "^5.9.2"
"typescript": "^4.9.5"
} }
} }
+73 -10
View File
@@ -1,8 +1,13 @@
import * as core from '@actions/core'; import * as core from '@actions/core';
import {Context} from '@actions/github/lib/context'; import {Context as GithubContext} from '@actions/github/lib/context';
import {Util} from '@docker/actions-toolkit/lib/util'; import {Util} from '@docker/actions-toolkit/lib/util';
import {Git} from '@docker/actions-toolkit/lib/git'; import {Git} from '@docker/actions-toolkit/lib/git';
import {GitHub} from '@docker/actions-toolkit/lib/github'; import {GitHub} from '@docker/actions-toolkit/lib/github';
import {Toolkit} from '@docker/actions-toolkit/lib/toolkit';
export interface Context extends GithubContext {
commitDate: Date;
}
export interface Inputs { export interface Inputs {
context: ContextSource; context: ContextSource;
@@ -10,8 +15,10 @@ export interface Inputs {
tags: string[]; tags: string[];
flavor: string[]; flavor: string[];
labels: string[]; labels: string[];
annotations: string[];
sepTags: string; sepTags: string;
sepLabels: string; sepLabels: string;
sepAnnotations: string;
bakeTarget: string; bakeTarget: string;
githubToken: string; githubToken: string;
} }
@@ -19,12 +26,14 @@ export interface Inputs {
export function getInputs(): Inputs { export function getInputs(): Inputs {
return { return {
context: (core.getInput('context') || ContextSource.workflow) as ContextSource, context: (core.getInput('context') || ContextSource.workflow) as ContextSource,
images: Util.getInputList('images', {ignoreComma: true}), images: Util.getInputList('images', {ignoreComma: true, comment: '#'}),
tags: Util.getInputList('tags', {ignoreComma: true}), tags: Util.getInputList('tags', {ignoreComma: true, comment: '#'}),
flavor: Util.getInputList('flavor', {ignoreComma: true}), flavor: Util.getInputList('flavor', {ignoreComma: true, comment: '#'}),
labels: Util.getInputList('labels', {ignoreComma: true}), labels: Util.getInputList('labels', {ignoreComma: true, comment: '#'}),
annotations: Util.getInputList('annotations', {ignoreComma: true, comment: '#'}),
sepTags: core.getInput('sep-tags', {trimWhitespace: false}) || `\n`, sepTags: core.getInput('sep-tags', {trimWhitespace: false}) || `\n`,
sepLabels: core.getInput('sep-labels', {trimWhitespace: false}) || `\n`, sepLabels: core.getInput('sep-labels', {trimWhitespace: false}) || `\n`,
sepAnnotations: core.getInput('sep-annotations', {trimWhitespace: false}) || `\n`,
bakeTarget: core.getInput('bake-target') || `docker-metadata-action`, bakeTarget: core.getInput('bake-target') || `docker-metadata-action`,
githubToken: core.getInput('github-token') githubToken: core.getInput('github-token')
}; };
@@ -35,10 +44,10 @@ export enum ContextSource {
git = 'git' git = 'git'
} }
export async function getContext(source: ContextSource): Promise<Context> { export async function getContext(source: ContextSource, toolkit: Toolkit): Promise<Context> {
switch (source) { switch (source) {
case ContextSource.workflow: case ContextSource.workflow:
return getContextFromWorkflow(); return await getContextFromWorkflow(toolkit);
case ContextSource.git: case ContextSource.git:
return await getContextFromGit(); return await getContextFromGit();
default: default:
@@ -46,7 +55,7 @@ export async function getContext(source: ContextSource): Promise<Context> {
} }
} }
function getContextFromWorkflow(): Context { async function getContextFromWorkflow(toolkit: Toolkit): Promise<Context> {
const context = GitHub.context; const context = GitHub.context;
// Needs to override Git reference with pr ref instead of upstream branch ref // Needs to override Git reference with pr ref instead of upstream branch ref
@@ -65,9 +74,63 @@ function getContextFromWorkflow(): Context {
} }
} }
return context; return {
commitDate: await getCommitDateFromWorkflow(context.sha, toolkit),
...context
} as Context;
} }
async function getContextFromGit(): Promise<Context> { async function getContextFromGit(): Promise<Context> {
return await Git.context(); const ctx = await Git.context();
return {
commitDate: await Git.commitDate(ctx.sha),
...ctx
} as Context;
}
async function getCommitDateFromWorkflow(sha: string, toolkit: Toolkit): Promise<Date> {
const event = GitHub.context.payload as unknown as {
// branch push
commits?: Array<{
timestamp: string;
// commit sha
id: string;
}>;
// tags
head_commit?: {
timestamp: string;
// commit sha
id: string;
};
};
if (event.commits) {
const commitDate = event.commits.find(x => x.id === sha)?.timestamp;
if (commitDate) {
return new Date(commitDate);
}
}
if (event.head_commit) {
if (event.head_commit.id === sha) {
return new Date(event.head_commit.timestamp);
}
}
// fallback to github api for commit date
try {
const commit = await toolkit.github.octokit.rest.repos.getCommit({
owner: GitHub.context.repo.owner,
repo: GitHub.context.repo.repo,
ref: sha
});
if (commit.data.commit.committer?.date) {
return new Date(commit.data.commit.committer.date);
}
throw new Error('Committer date not found');
} catch (error) {
core.debug(`Failed to get commit date from GitHub API: ${error.message}`);
return new Date();
}
} }
+48 -18
View File
@@ -2,26 +2,19 @@ import * as fs from 'fs';
import * as core from '@actions/core'; import * as core from '@actions/core';
import * as actionsToolkit from '@docker/actions-toolkit'; import * as actionsToolkit from '@docker/actions-toolkit';
import {Toolkit} from '@docker/actions-toolkit/lib/toolkit'; import {Toolkit} from '@docker/actions-toolkit/lib/toolkit';
import {Util} from '@docker/actions-toolkit/lib/util';
import {getContext, getInputs, Inputs} from './context'; import {getContext, getInputs, Inputs} from './context';
import {Meta, Version} from './meta'; import {Meta, Version} from './meta';
function setOutput(name: string, value: string) {
core.setOutput(name, value);
core.exportVariable(`DOCKER_METADATA_OUTPUT_${name.replace(/\W/g, '_').toUpperCase()}`, value);
}
actionsToolkit.run( actionsToolkit.run(
// main // main
async () => { async () => {
const inputs: Inputs = getInputs(); const inputs: Inputs = getInputs();
if (inputs.images.length == 0) {
throw new Error(`images input required`);
}
const toolkit = new Toolkit({githubToken: inputs.githubToken}); const toolkit = new Toolkit({githubToken: inputs.githubToken});
const context = await getContext(inputs.context); const context = await getContext(inputs.context, toolkit);
const repo = await toolkit.github.repoData(); const repo = await toolkit.github.repoData();
const setOutput = outputEnvEnabled() ? setOutputAndEnv : core.setOutput;
await core.group(`Context info`, async () => { await core.group(`Context info`, async () => {
core.info(`eventName: ${context.eventName}`); core.info(`eventName: ${context.eventName}`);
@@ -32,6 +25,7 @@ actionsToolkit.run(
core.info(`actor: ${context.actor}`); core.info(`actor: ${context.actor}`);
core.info(`runNumber: ${context.runNumber}`); core.info(`runNumber: ${context.runNumber}`);
core.info(`runId: ${context.runId}`); core.info(`runId: ${context.runId}`);
core.info(`commitDate: ${context.commitDate}`);
}); });
if (core.isDebug()) { if (core.isDebug()) {
@@ -53,7 +47,7 @@ actionsToolkit.run(
setOutput('version', version.main || ''); setOutput('version', version.main || '');
// Docker tags // Docker tags
const tags: Array<string> = meta.getTags(); const tags = meta.getTags();
if (tags.length == 0) { if (tags.length == 0) {
core.warning('No Docker tag has been generated. Check tags input.'); core.warning('No Docker tag has been generated. Check tags input.');
} else { } else {
@@ -64,6 +58,7 @@ actionsToolkit.run(
}); });
} }
setOutput('tags', tags.join(inputs.sepTags)); setOutput('tags', tags.join(inputs.sepTags));
setOutput('tag-names', meta.getTags(true).join(inputs.sepTags));
// Docker labels // Docker labels
const labels: Array<string> = meta.getLabels(); const labels: Array<string> = meta.getLabels();
@@ -74,18 +69,53 @@ actionsToolkit.run(
setOutput('labels', labels.join(inputs.sepLabels)); setOutput('labels', labels.join(inputs.sepLabels));
}); });
// Annotations
const annotationsRaw: Array<string> = meta.getAnnotations();
const annotationsLevels = process.env.DOCKER_METADATA_ANNOTATIONS_LEVELS || 'manifest';
await core.group(`Annotations`, async () => {
const annotations: Array<string> = [];
for (const level of annotationsLevels.split(',')) {
annotations.push(
...annotationsRaw.map(label => {
const v = `${level}:${label}`;
core.info(v);
return v;
})
);
}
setOutput(`annotations`, annotations.join(inputs.sepAnnotations));
});
// JSON // JSON
const jsonOutput = meta.getJSON(); const jsonOutput = meta.getJSON(annotationsLevels.split(','));
await core.group(`JSON output`, async () => { await core.group(`JSON output`, async () => {
core.info(JSON.stringify(jsonOutput, null, 2)); core.info(JSON.stringify(jsonOutput, null, 2));
setOutput('json', JSON.stringify(jsonOutput)); setOutput('json', JSON.stringify(jsonOutput));
}); });
// Bake file definition // Bake files
const bakeFile: string = meta.getBakeFile(); for (const kind of ['tags', 'labels', 'annotations:' + annotationsLevels]) {
await core.group(`Bake file definition`, async () => { const outputName = kind.split(':')[0];
core.info(fs.readFileSync(bakeFile, 'utf8')); const bakeFile: string = meta.getBakeFile(kind);
setOutput('bake-file', bakeFile); await core.group(`Bake file definition (${outputName})`, async () => {
}); core.info(fs.readFileSync(bakeFile, 'utf8'));
setOutput(`bake-file-${outputName}`, bakeFile);
});
}
// Bake file with tags and labels
setOutput(`bake-file`, `${meta.getBakeFileTagsLabels()}`);
} }
); );
function setOutputAndEnv(name: string, value: string) {
core.setOutput(name, value);
core.exportVariable(`DOCKER_METADATA_OUTPUT_${name.replace(/\W/g, '_').toUpperCase()}`, value);
}
function outputEnvEnabled(): boolean {
if (process.env.DOCKER_METADATA_SET_OUTPUT_ENV) {
return Util.parseBool(process.env.DOCKER_METADATA_SET_OUTPUT_ENV);
}
return true;
}
+201 -51
View File
@@ -5,15 +5,16 @@ import moment from 'moment-timezone';
import * as pep440 from '@renovate/pep440'; import * as pep440 from '@renovate/pep440';
import * as semver from 'semver'; import * as semver from 'semver';
import * as core from '@actions/core'; import * as core from '@actions/core';
import {Context} from '@actions/github/lib/context';
import {Context as ToolkitContext} from '@docker/actions-toolkit/lib/context'; import {Context as ToolkitContext} from '@docker/actions-toolkit/lib/context';
import {GitHubRepo} from '@docker/actions-toolkit/lib/types/github'; import {GitHubRepo} from '@docker/actions-toolkit/lib/types/github';
import {Inputs} from './context'; import {Inputs, Context} from './context';
import * as icl from './image'; import * as icl from './image';
import * as tcl from './tag'; import * as tcl from './tag';
import * as fcl from './flavor'; import * as fcl from './flavor';
const defaultShortShaLength = 7;
export interface Version { export interface Version {
main: string | undefined; main: string | undefined;
partial: string[]; partial: string[];
@@ -113,6 +114,7 @@ export class Meta {
} }
const currentDate = this.date; const currentDate = this.date;
const commitDate = this.context.commitDate;
const vraw = this.setValue( const vraw = this.setValue(
handlebars.compile(tag.attrs['pattern'])({ handlebars.compile(tag.attrs['pattern'])({
date: function (format, options) { date: function (format, options) {
@@ -128,6 +130,20 @@ export class Meta {
} }
}); });
return m.tz(tz).format(format); return m.tz(tz).format(format);
},
commit_date: function (format, options) {
const m = moment(commitDate);
let tz = 'UTC';
Object.keys(options.hash).forEach(key => {
switch (key) {
case 'tz':
tz = options.hash[key];
break;
default:
throw new Error(`Unknown ${key} attribute`);
}
});
return m.tz(tz).format(format);
} }
}), }),
tag tag
@@ -145,8 +161,20 @@ export class Meta {
if (tag.attrs['value'].length > 0) { if (tag.attrs['value'].length > 0) {
vraw = this.setGlobalExp(tag.attrs['value']); vraw = this.setGlobalExp(tag.attrs['value']);
} else { } else {
vraw = this.context.ref.replace(/^refs\/tags\//g, '').replace(/\//g, '-'); vraw = this.context.ref.replace(/^refs\/tags\//g, '');
} }
if (tag.attrs['match'].length > 0) {
const tmatch = vraw.match(tag.attrs['match']);
if (!tmatch) {
core.warning(`${tag.attrs['match']} does not match ${vraw}.`);
} else {
vraw = tmatch[1];
}
}
vraw = vraw.replace(/\//g, '-');
if (!semver.valid(vraw)) { if (!semver.valid(vraw)) {
core.warning(`${vraw} is not a valid semver. More info: https://semver.org/`); core.warning(`${vraw} is not a valid semver. More info: https://semver.org/`);
return version; return version;
@@ -179,8 +207,20 @@ export class Meta {
if (tag.attrs['value'].length > 0) { if (tag.attrs['value'].length > 0) {
vraw = this.setGlobalExp(tag.attrs['value']); vraw = this.setGlobalExp(tag.attrs['value']);
} else { } else {
vraw = this.context.ref.replace(/^refs\/tags\//g, '').replace(/\//g, '-'); vraw = this.context.ref.replace(/^refs\/tags\//g, '');
} }
if (tag.attrs['match'].length > 0) {
const tmatch = vraw.match(tag.attrs['match']);
if (!tmatch) {
core.warning(`${tag.attrs['match']} does not match ${vraw}.`);
} else {
vraw = tmatch[1];
}
}
vraw = vraw.replace(/\//g, '-');
if (!pep440.valid(vraw)) { if (!pep440.valid(vraw)) {
core.warning(`${vraw} does not conform to PEP 440. More info: https://www.python.org/dev/peps/pep-0440`); core.warning(`${vraw} does not conform to PEP 440. More info: https://www.python.org/dev/peps/pep-0440`);
return version; return version;
@@ -307,7 +347,7 @@ export class Meta {
let val = this.context.sha; let val = this.context.sha;
if (tag.attrs['format'] === tcl.ShaFormat.Short) { if (tag.attrs['format'] === tcl.ShaFormat.Short) {
val = this.context.sha.substring(0, 7); val = Meta.shortSha(this.context.sha);
} }
const vraw = this.setValue(val, tag); const vraw = this.setValue(val, tag);
@@ -356,9 +396,10 @@ export class Meta {
return val; return val;
} }
private setGlobalExp(val): string { private setGlobalExp(val: string): string {
const context = this.context; const context = this.context;
const currentDate = this.date; const currentDate = this.date;
const commitDate = this.context.commitDate;
return handlebars.compile(val)({ return handlebars.compile(val)({
branch: function () { branch: function () {
if (!/^refs\/heads\//.test(context.ref)) { if (!/^refs\/heads\//.test(context.ref)) {
@@ -373,7 +414,7 @@ export class Meta {
return context.ref.replace(/^refs\/tags\//g, ''); return context.ref.replace(/^refs\/tags\//g, '');
}, },
sha: function () { sha: function () {
return context.sha.substring(0, 7); return Meta.shortSha(context.sha);
}, },
base_ref: function () { base_ref: function () {
if (/^refs\/tags\//.test(context.ref) && context.payload?.base_ref != undefined) { if (/^refs\/tags\//.test(context.ref) && context.payload?.base_ref != undefined) {
@@ -386,6 +427,20 @@ export class Meta {
} }
return ''; return '';
}, },
commit_date: function (format, options) {
const m = moment(commitDate);
let tz = 'UTC';
Object.keys(options.hash).forEach(key => {
switch (key) {
case 'tz':
tz = options.hash[key];
break;
default:
throw new Error(`Unknown ${key} attribute`);
}
});
return m.tz(tz).format(format);
},
is_default_branch: function () { is_default_branch: function () {
const branch = context.ref.replace(/^refs\/heads\//g, ''); const branch = context.ref.replace(/^refs\/heads\//g, '');
// TODO: "base_ref" is available in the push payload but doesn't always seem to // TODO: "base_ref" is available in the push payload but doesn't always seem to
@@ -408,6 +463,9 @@ export class Meta {
} }
return 'false'; return 'false';
}, },
is_not_default_branch: function () {
return this.is_default_branch() === 'false' ? 'true' : 'false';
},
date: function (format, options) { date: function (format, options) {
const m = moment(currentDate); const m = moment(currentDate);
let tz = 'UTC'; let tz = 'UTC';
@@ -436,26 +494,51 @@ export class Meta {
return images; return images;
} }
public getTags(): Array<string> { public getTags(namesOnly?: boolean): Array<string> {
if (!this.version.main) { if (!this.version.main) {
return []; return [];
} }
if (namesOnly) {
return this.generateTags(this.version.main);
}
const tags: Array<string> = []; const tags: Array<string> = [];
for (const imageName of this.getImageNames()) { const images = this.getImageNames();
tags.push(`${imageName}:${this.version.main}`); if (images.length > 0) {
for (const partial of this.version.partial) { for (const imageName of images) {
tags.push(`${imageName}:${partial}`); tags.push(...this.generateTags(this.version.main, imageName));
}
if (this.version.latest) {
const latestTag = `${this.flavor.prefixLatest ? this.flavor.prefix : ''}latest${this.flavor.suffixLatest ? this.flavor.suffix : ''}`;
tags.push(`${imageName}:${Meta.sanitizeTag(latestTag)}`);
} }
} else {
tags.push(...this.generateTags(this.version.main));
}
return tags;
}
private generateTags(version: string, imageName?: string): Array<string> {
const tags: Array<string> = [];
const prefix = imageName ? `${imageName}:` : '';
tags.push(`${prefix}${version}`);
for (const partial of this.version.partial) {
tags.push(`${prefix}${partial}`);
}
if (this.version.latest) {
const latestTag = `${this.flavor.prefixLatest ? this.flavor.prefix : ''}latest${this.flavor.suffixLatest ? this.flavor.suffix : ''}`;
tags.push(`${prefix}${Meta.sanitizeTag(latestTag)}`);
} }
return tags; return tags;
} }
public getLabels(): Array<string> { public getLabels(): Array<string> {
const labels: Array<string> = [ return this.getOCIAnnotationsWithCustoms(this.inputs.labels);
}
public getAnnotations(): Array<string> {
return this.getOCIAnnotationsWithCustoms(this.inputs.annotations);
}
private getOCIAnnotationsWithCustoms(extra: string[]): Array<string> {
const res: Array<string> = [
`org.opencontainers.image.title=${this.repo.name || ''}`, `org.opencontainers.image.title=${this.repo.name || ''}`,
`org.opencontainers.image.description=${this.repo.description || ''}`, `org.opencontainers.image.description=${this.repo.description || ''}`,
`org.opencontainers.image.url=${this.repo.html_url || ''}`, `org.opencontainers.image.url=${this.repo.html_url || ''}`,
@@ -465,12 +548,87 @@ export class Meta {
`org.opencontainers.image.revision=${this.context.sha || ''}`, `org.opencontainers.image.revision=${this.context.sha || ''}`,
`org.opencontainers.image.licenses=${this.repo.license?.spdx_id || ''}` `org.opencontainers.image.licenses=${this.repo.license?.spdx_id || ''}`
]; ];
labels.push(...this.inputs.labels); extra.forEach(label => {
return labels; res.push(this.setGlobalExp(label));
});
return Array.from(
new Map<string, string>(
res
.map(label => label.split('='))
// eslint-disable-next-line @typescript-eslint/no-unused-vars
.filter(([_key, ...values]) => values.length > 0)
.map(([key, ...values]) => [key, values.join('=')] as [string, string])
)
)
.sort((a, b) => a[0].localeCompare(b[0]))
.map(([key, value]) => `${key}=${value}`);
} }
public getJSON(): unknown { public getJSON(alevels: string[]): unknown {
const annotations: Array<string> = [];
for (const level of alevels) {
annotations.push(...this.getAnnotations().map(label => `${level}:${label}`));
}
return { return {
tags: this.getTags(),
'tag-names': this.getTags(true),
labels: this.getLabels().reduce((res, label) => {
const matches = label.match(/([^=]*)=(.*)/);
if (!matches) {
return res;
}
res[matches[1]] = matches[2];
return res;
}, {}),
annotations: annotations
};
}
public getBakeFile(kind: string): string {
if (kind == 'tags') {
return this.generateBakeFile(
{
tags: this.getTags(),
args: {
DOCKER_META_IMAGES: this.getImageNames().join(','),
DOCKER_META_VERSION: this.version.main
}
},
kind
);
} else if (kind == 'labels') {
return this.generateBakeFile(
{
labels: this.getLabels().reduce((res, label) => {
const matches = label.match(/([^=]*)=(.*)/);
if (!matches) {
return res;
}
res[matches[1]] = matches[2];
return res;
}, {})
},
kind
);
} else if (kind.startsWith('annotations:')) {
const name = kind.split(':')[0];
const annotations: Array<string> = [];
for (const level of kind.split(':')[1].split(',')) {
annotations.push(...this.getAnnotations().map(label => `${level}:${label}`));
}
return this.generateBakeFile(
{
annotations: annotations
},
name
);
}
throw new Error(`Unknown bake file type: ${kind}`);
}
public getBakeFileTagsLabels(): string {
return this.generateBakeFile({
tags: this.getTags(), tags: this.getTags(),
labels: this.getLabels().reduce((res, label) => { labels: this.getLabels().reduce((res, label) => {
const matches = label.match(/([^=]*)=(.*)/); const matches = label.match(/([^=]*)=(.*)/);
@@ -479,39 +637,17 @@ export class Meta {
} }
res[matches[1]] = matches[2]; res[matches[1]] = matches[2];
return res; return res;
}, {}) }, {}),
}; args: {
DOCKER_META_IMAGES: this.getImageNames().join(','),
DOCKER_META_VERSION: this.version.main
}
});
} }
public getBakeFile(): string { private generateBakeFile(dt, suffix?: string): string {
const bakeFile = path.join(ToolkitContext.tmpDir(), 'docker-metadata-action-bake.json'); const bakeFile = path.join(ToolkitContext.tmpDir(), `docker-metadata-action-bake${suffix ? `-${suffix}` : ''}.json`);
fs.writeFileSync( fs.writeFileSync(bakeFile, JSON.stringify({target: {[this.inputs.bakeTarget]: dt}}, null, 2));
bakeFile,
JSON.stringify(
{
target: {
[this.inputs.bakeTarget]: {
tags: this.getTags(),
labels: this.getLabels().reduce((res, label) => {
const matches = label.match(/([^=]*)=(.*)/);
if (!matches) {
return res;
}
res[matches[1]] = matches[2];
return res;
}, {}),
args: {
DOCKER_META_IMAGES: this.getImageNames().join(','),
DOCKER_META_VERSION: this.version.main
}
}
}
},
null,
2
)
);
return bakeFile; return bakeFile;
} }
@@ -522,4 +658,18 @@ export class Meta {
private static sanitizeTag(tag: string): string { private static sanitizeTag(tag: string): string {
return tag.replace(/[^a-zA-Z0-9._-]+/g, '-'); return tag.replace(/[^a-zA-Z0-9._-]+/g, '-');
} }
private static shortSha(sha: string): string {
let shortShaLength = defaultShortShaLength;
if (process.env.DOCKER_METADATA_SHORT_SHA_LENGTH) {
if (isNaN(Number(process.env.DOCKER_METADATA_SHORT_SHA_LENGTH))) {
throw new Error(`DOCKER_METADATA_SHORT_SHA_LENGTH is not a valid number: ${process.env.DOCKER_METADATA_SHORT_SHA_LENGTH}`);
}
shortShaLength = Number(process.env.DOCKER_METADATA_SHORT_SHA_LENGTH);
}
if (shortShaLength >= sha.length) {
return sha;
}
return sha.substring(0, shortShaLength);
}
} }
+5 -2
View File
@@ -104,10 +104,10 @@ export function Parse(s: string): Tag {
const value = parts[1]; const value = parts[1];
switch (key) { switch (key) {
case 'type': { case 'type': {
if (!Object.values(Type).includes(value)) { if (!Object.values(Type).includes(value as Type)) {
throw new Error(`Unknown tag type attribute: ${value}`); throw new Error(`Unknown tag type attribute: ${value}`);
} }
tag.type = value; tag.type = value as Type;
break; break;
} }
default: { default: {
@@ -137,6 +137,9 @@ export function Parse(s: string): Tag {
if (!Object.prototype.hasOwnProperty.call(tag.attrs, 'value')) { if (!Object.prototype.hasOwnProperty.call(tag.attrs, 'value')) {
tag.attrs['value'] = ''; tag.attrs['value'] = '';
} }
if (!Object.prototype.hasOwnProperty.call(tag.attrs, 'match')) {
tag.attrs['match'] = '';
}
break; break;
} }
case Type.Match: { case Type.Match: {
+2
View File
@@ -4,9 +4,11 @@ RUN apk add --no-cache coreutils jq
ARG DOCKER_METADATA_OUTPUT_VERSION ARG DOCKER_METADATA_OUTPUT_VERSION
ARG DOCKER_METADATA_OUTPUT_TAGS ARG DOCKER_METADATA_OUTPUT_TAGS
ARG DOCKER_METADATA_OUTPUT_LABELS ARG DOCKER_METADATA_OUTPUT_LABELS
ARG DOCKER_METADATA_OUTPUT_ANNOTATIONS
ARG DOCKER_METADATA_OUTPUT_JSON ARG DOCKER_METADATA_OUTPUT_JSON
RUN printenv DOCKER_METADATA_OUTPUT_VERSION RUN printenv DOCKER_METADATA_OUTPUT_VERSION
RUN printenv DOCKER_METADATA_OUTPUT_TAGS RUN printenv DOCKER_METADATA_OUTPUT_TAGS
RUN printenv DOCKER_METADATA_OUTPUT_LABELS RUN printenv DOCKER_METADATA_OUTPUT_LABELS
RUN printenv DOCKER_METADATA_OUTPUT_ANNOTATIONS
RUN printenv DOCKER_METADATA_OUTPUT_JSON RUN printenv DOCKER_METADATA_OUTPUT_JSON
RUN echo $DOCKER_METADATA_OUTPUT_JSON | jq RUN echo $DOCKER_METADATA_OUTPUT_JSON | jq
+7361 -3694
View File
File diff suppressed because it is too large. Load diff