Compare commits
372
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c299e40c65 | ||
|
|
f015d7914a | ||
|
|
121bcc2ca8 | ||
|
|
f7b6bf41b9 | ||
|
|
0b95c6b860 | ||
|
|
17f70d7525 | ||
|
|
afd7e6d7bb | ||
|
|
602aff8e11 | ||
|
|
aecb1a49a5 | ||
|
|
8d8c7c12f7 | ||
|
|
15bd03a177 | ||
|
|
fdba5868fb | ||
|
|
318604b99e | ||
|
|
49c0a55d55 | ||
|
|
486229e3f4 | ||
|
|
f02aeab1ee | ||
|
|
beafb97305 | ||
|
|
3ff819c6c5 | ||
|
|
05838e9769 | ||
|
|
43fa4ac0d3 | ||
|
|
b3120f2f18 | ||
|
|
1f469d21ee | ||
|
|
b0a2bcfe7b | ||
|
|
14973dfd4b | ||
|
|
dae123c2bf | ||
|
|
fdb90a51ae | ||
|
|
e5afe339d8 | ||
|
|
17e37c2a42 | ||
|
|
aa0be5b84c | ||
|
|
136a4a23fe | ||
|
|
5f9eb12581 | ||
|
|
be25a4ce07 | ||
|
|
eced061233 | ||
|
|
e7f20f98b1 | ||
|
|
95bdd37b1f | ||
|
|
3fb4efdf45 | ||
|
|
f31cd74edd | ||
|
|
840a42f4cf | ||
|
|
ada8aa8ca0 | ||
|
|
3fa6bb33cb | ||
|
|
8aa9733355 | ||
|
|
d87caff40c | ||
|
|
83e4951424 | ||
|
|
9efc8723fe | ||
|
|
ec2c9a30cf | ||
|
|
e427fa1e40 | ||
|
|
032a4b3bda | ||
|
|
06e11bf926 | ||
|
|
c1e51972af | ||
|
|
89dd65a569 | ||
|
|
699ee45cf1 | ||
|
|
e0542a6360 | ||
|
|
b7facdfcef | ||
|
|
81c60dfb8b | ||
|
|
de1119515d | ||
|
|
2f9c64b1b1 | ||
|
|
510f746975 | ||
|
|
2bc3f4e0f1 | ||
|
|
f0cfcb57f6 | ||
|
|
be19121bfd | ||
|
|
c1eb0314a3 | ||
|
|
b798ed8388 | ||
|
|
07d42e0b4f | ||
|
|
495d5ce528 | ||
|
|
54b10fa1b6 | ||
|
|
c49a1eee09 | ||
|
|
f37a3b6e88 | ||
|
|
85eb7c9324 | ||
|
|
a1c21022b0 | ||
|
|
6547919405 | ||
|
|
2e80e58e70 | ||
|
|
a51254e5fa | ||
|
|
dee3324b00 | ||
|
|
418e4b98bf | ||
|
|
e8ece87dc8 | ||
|
|
12d9b9a905 | ||
|
|
c88acc31ec | ||
|
|
902fa8ec7d | ||
|
|
c30b9c27e6 | ||
|
|
0698804aab | ||
|
|
bb3eecaaf8 | ||
|
|
94a839cf6a | ||
|
|
ecd51a0f6a | ||
|
|
a85b1dbfe6 | ||
|
|
5a76a0efcf | ||
|
|
1cc4a9856a | ||
|
|
d84de1e022 | ||
|
|
092f0474e9 | ||
|
|
8b68062745 | ||
|
|
0eaca2ee4e | ||
|
|
db44dfae7a | ||
|
|
2bd8a81e96 | ||
|
|
10ff2155d8 | ||
|
|
a1a78f1e24 | ||
|
|
95438bc6e5 | ||
|
|
0e4a06e6a2 | ||
|
|
a550435c60 | ||
|
|
b539e14bf6 | ||
|
|
d931b83008 | ||
|
|
8e1d5461f0 | ||
|
|
2af3007824 | ||
|
|
0d820067b8 | ||
|
|
906ecf0fc0 | ||
|
|
f78c299c14 | ||
|
|
87ff116aea | ||
|
|
b53be03109 | ||
|
|
3da9c47fb9 | ||
|
|
f5d655ce8b | ||
|
|
369eb591f4 | ||
|
|
7d870ce854 | ||
|
|
e44a9cd788 | ||
|
|
8cb0002d6a | ||
|
|
e01ddd3e3c | ||
|
|
861d98a3bd | ||
|
|
359e915ab3 | ||
|
|
0c395ebe62 | ||
|
|
115662203e | ||
|
|
95ea8d0c40 | ||
|
|
a4c10ad2ed | ||
|
|
c85c22ab59 | ||
|
|
526d40319b | ||
|
|
86622a92ee | ||
|
|
44d81d6d2a | ||
|
|
9aaeb628e0 | ||
|
|
32323e53fe | ||
|
|
3d8d1d9406 | ||
|
|
1b250aecdc | ||
|
|
bd26c982ee | ||
|
|
f574002aaf | ||
|
|
30c2f0a1f0 | ||
|
|
0de3687b53 | ||
|
|
3229e62531 | ||
|
|
f829da7245 | ||
|
|
9b90a2e882 | ||
|
|
aa662cf9eb | ||
|
|
c6cb763bee | ||
|
|
bb9c6dd583 | ||
|
|
d31acd5065 | ||
|
|
6df88e4e75 | ||
|
|
70b2cdc648 | ||
|
|
1a52488bd8 | ||
|
|
60a0d343a0 | ||
|
|
b3bc5a6d84 | ||
|
|
e6e95c28a4 | ||
|
|
9ec63a7555 | ||
|
|
6970301b80 | ||
|
|
d155f767a3 | ||
|
|
b5b2c1dec6 | ||
|
|
a64d0487d7 | ||
|
|
68e4cac93d | ||
|
|
7ba3606742 | ||
|
|
2331fdf258 | ||
|
|
24ce540669 | ||
|
|
d729db4f91 | ||
|
|
f7b4ed1238 | ||
|
|
33c4e25305 | ||
|
|
b83177b368 | ||
|
|
839b70f9d5 | ||
|
|
dbacb9a831 | ||
|
|
247cc9691a | ||
|
|
4c92c35ca9 | ||
|
|
9ca1efb941 | ||
|
|
0170173c39 | ||
|
|
dab39f1537 | ||
|
|
f402fd6ae4 | ||
|
|
b0bbce7f66 | ||
|
|
2ee3d3070b | ||
|
|
6e3a986a06 | ||
|
|
4fde7ad49c | ||
|
|
24b670ad98 | ||
|
|
1294d94f8e | ||
|
|
4ab8e580e1 | ||
|
|
3617daf484 | ||
|
|
b5cd5676d4 | ||
|
|
204ddf0626 | ||
|
|
588ab464f7 | ||
|
|
6ed49e6282 | ||
|
|
499da83ec1 | ||
|
|
1bc39885c1 | ||
|
|
c314eea2b2 | ||
|
|
22d80c023d | ||
|
|
38b3677383 | ||
|
|
3c91de3093 | ||
|
|
75359341f6 | ||
|
|
2432cf717c | ||
|
|
c77859c8ba | ||
|
|
60ab7b421c | ||
|
|
7ce1a14667 | ||
|
|
d06e52bc52 | ||
|
|
66f0185bb8 | ||
|
|
232fc64e3a | ||
|
|
1b08479748 | ||
|
|
3a28db68be | ||
|
|
6bb43c8680 | ||
|
|
41050ffe08 | ||
|
|
8e5442c4ef | ||
|
|
eda41b71bf | ||
|
|
388c08f740 | ||
|
|
dbef88086f | ||
|
|
b73e7a71ac | ||
|
|
b9fba690eb | ||
|
|
ac82374ba6 | ||
|
|
c92519a44e | ||
|
|
3b4179d34d | ||
|
|
0784993ef8 | ||
|
|
52c3e9e410 | ||
|
|
82a5e6726c | ||
|
|
41e1fe3437 | ||
|
|
48cce1cba0 | ||
|
|
61879b94bc | ||
|
|
36ea4ee555 | ||
|
|
74fa878183 | ||
|
|
9dc751fe24 | ||
|
|
c94c54c4e6 | ||
|
|
187f09259d | ||
|
|
6d6eaf3451 | ||
|
|
1484a7ec95 | ||
|
|
31cebacef4 | ||
|
|
394bbab10c | ||
|
|
ee4c9054ec | ||
|
|
e6428a5c4e | ||
|
|
26b4721af7 | ||
|
|
352ce8b7fe | ||
|
|
cb0becceaf | ||
|
|
91224bc155 | ||
|
|
f19c3691d5 | ||
|
|
4066f0cede | ||
|
|
d6a296c454 | ||
|
|
aacea38e07 | ||
|
|
051f7ea71b | ||
|
|
2fc083a3a4 | ||
|
|
488568d6fa | ||
|
|
f33ad1e20d | ||
|
|
6bbe00c7bc | ||
|
|
f0ad8701de | ||
|
|
2a4836ac76 | ||
|
|
9bdb15d11e | ||
|
|
b94479639a | ||
|
|
f3c3cad8ad | ||
|
|
3b632771f9 | ||
|
|
62339db73c | ||
|
|
f13510ee59 | ||
|
|
6796a85d36 | ||
|
|
1ec392100e | ||
|
|
15f2689f92 | ||
|
|
ad9adab519 | ||
|
|
28aeae210e | ||
|
|
5f160a25bd | ||
|
|
05d3089a30 | ||
|
|
b8c52fa5a7 | ||
|
|
fa851f2008 | ||
|
|
879dcbb708 | ||
|
|
167d566053 | ||
|
|
6dfb6f1404 | ||
|
|
62a438bd07 | ||
|
|
ee5ff41fc8 | ||
|
|
c0f15f0bfe | ||
|
|
2c2bddef07 | ||
|
|
00dcdd5da5 | ||
|
|
bd87541fe8 | ||
|
|
b87668a573 | ||
|
|
407b95c632 | ||
|
|
0668f8e3c4 | ||
|
|
d0efd7f63f | ||
|
|
672cd7b637 | ||
|
|
1f35ebc704 | ||
|
|
413e9a9a6a | ||
|
|
96383f4557 | ||
|
|
f138b9677b | ||
|
|
9cf7015b15 | ||
|
|
5a8a5ff8df | ||
|
|
2279d9af58 | ||
|
|
c659933213 | ||
|
|
48d23ccc05 | ||
|
|
b83ffb48d6 | ||
|
|
3207f2405f | ||
|
|
63f4a263e5 | ||
|
|
547dcd6d67 | ||
|
|
450eef4207 | ||
|
|
903f5af663 | ||
|
|
3634bd57d7 | ||
|
|
d3faf0d1af | ||
|
|
ff376f4737 | ||
|
|
79f06a31c0 | ||
|
|
6f69513dab | ||
|
|
b67fef219a | ||
|
|
51990f24d1 | ||
|
|
4af6ba2231 | ||
|
|
59de4866c5 | ||
|
|
0f8c876baf | ||
|
|
389ff6bdd5 | ||
|
|
2bcfca25d5 | ||
|
|
05b244eb76 | ||
|
|
35e9aff4f5 | ||
|
|
1586898b63 | ||
|
|
7a273586e1 | ||
|
|
ef25336f42 | ||
|
|
0ab15faee8 | ||
|
|
1ea1b02f9b | ||
|
|
818d4b7b91 | ||
|
|
948134af5e | ||
|
|
ef7eee951a | ||
|
|
8ec80c3be6 | ||
|
|
38650bbf6b | ||
|
|
ebbd9b4df7 | ||
|
|
2dadb92b6b | ||
|
|
2c0bd771b4 | ||
|
|
b10b364e15 | ||
|
|
40a1c6ff52 | ||
|
|
be8ea87c5a | ||
|
|
dbbf01822b | ||
|
|
72b4ec2b60 | ||
|
|
00e2c9d34e | ||
|
|
c4ee3adeed | ||
|
|
3bea1eeada | ||
|
|
88c7f0d3f6 | ||
|
|
101f9cbeaf | ||
|
|
0e44559303 | ||
|
|
517f8b0c3b | ||
|
|
bfaa9197f7 | ||
|
|
16dbdc96f6 | ||
|
|
bf095b87d3 | ||
|
|
2ed3c45f27 | ||
|
|
5076359ba6 | ||
|
|
d8f57c18fa | ||
|
|
80530e08c5 | ||
|
|
da933fb889 | ||
|
|
3f6690a76c | ||
|
|
dda839d15b | ||
|
|
37f1d84442 | ||
|
|
1ce942256d | ||
|
|
8f8c795666 | ||
|
|
9ec57ed1fc | ||
|
|
2bdac1078b | ||
|
|
9e02960866 | ||
|
|
ea910e3ad4 | ||
|
|
8b6629002b | ||
|
|
1db8e21e35 | ||
|
|
b30cff8c11 | ||
|
|
916b4b90e3 | ||
|
|
0ef9f130fa | ||
|
|
f5c49ece12 | ||
|
|
18df8a69c4 | ||
|
|
3343011071 | ||
|
|
0524f79273 | ||
|
|
b5c378621c | ||
|
|
a103499e09 | ||
|
|
766400ca14 | ||
|
|
e2ffd4cc94 | ||
|
|
6c3ca5dfa6 | ||
|
|
235becadd8 | ||
|
|
507c2f2dc5 | ||
|
|
04861f5102 | ||
|
|
6729545cde | ||
|
|
05d22bf317 | ||
|
|
70b403b46b | ||
|
|
9e6ae02878 | ||
|
|
3d239e8b8a | ||
|
|
7cb52e2750 | ||
|
|
90a1d5cf21 | ||
|
|
c98ac5e987 | ||
|
|
44d853bc0a | ||
|
|
d1abf80723 | ||
|
|
3358a27538 | ||
|
|
314ddf6d4a | ||
|
|
b91e8f52b0 | ||
|
|
fbac5f9bca | ||
|
|
57396166ad | ||
|
|
473bdc561c | ||
|
|
ebedea2c18 | ||
|
|
d00b20e38f | ||
|
|
a99e71cdc7 |
No files matched your search
+11
-1
@@ -1,2 +1,12 @@
|
||||
/coverage
|
||||
/node_modules
|
||||
|
||||
# Dependency directories
|
||||
node_modules/
|
||||
jspm_packages/
|
||||
|
||||
# yarn v2
|
||||
.yarn/cache
|
||||
.yarn/unplugged
|
||||
.yarn/build-state.yml
|
||||
.yarn/install-state.gz
|
||||
.pnp.*
|
||||
@@ -0,0 +1,3 @@
|
||||
/dist/**
|
||||
/coverage/**
|
||||
/node_modules/**
|
||||
+4
-3
@@ -1,18 +1,19 @@
|
||||
{
|
||||
"env": {
|
||||
"node": true,
|
||||
"es2021": true,
|
||||
"jest/globals": true
|
||||
"es6": true,
|
||||
"jest": true
|
||||
},
|
||||
"extends": [
|
||||
"eslint:recommended",
|
||||
"plugin:@typescript-eslint/eslint-recommended",
|
||||
"plugin:@typescript-eslint/recommended",
|
||||
"plugin:jest/recommended",
|
||||
"plugin:prettier/recommended"
|
||||
],
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"parserOptions": {
|
||||
"ecmaVersion": "latest",
|
||||
"ecmaVersion": 2023,
|
||||
"sourceType": "module"
|
||||
},
|
||||
"plugins": [
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/.yarn/releases/** binary
|
||||
/.yarn/plugins/** binary
|
||||
/__tests__/fixtures/** -linguist-detectable
|
||||
/dist/** linguist-generated=true
|
||||
/lib/** linguist-generated=true
|
||||
@@ -1 +0,0 @@
|
||||
* @crazy-max
|
||||
@@ -0,0 +1,3 @@
|
||||
# Code of conduct
|
||||
|
||||
- [Moby community guidelines](https://github.com/moby/moby/blob/master/CONTRIBUTING.md#moby-community-guidelines)
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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
|
||||
@@ -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—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.
|
||||
@@ -1,32 +0,0 @@
|
||||
# Support [](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.
|
||||
@@ -11,6 +11,7 @@ updates:
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
versioning-strategy: "increase"
|
||||
allow:
|
||||
- dependency-type: "production"
|
||||
labels:
|
||||
|
||||
+321
-39
@@ -1,8 +1,12 @@
|
||||
name: ci
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 */4 * * *' # every 4 hours
|
||||
- cron: '0 10 * * *'
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
@@ -10,20 +14,42 @@ on:
|
||||
tags:
|
||||
- 'v*.*.*'
|
||||
pull_request:
|
||||
branches:
|
||||
- 'master'
|
||||
- 'releases/v*'
|
||||
|
||||
env:
|
||||
DOCKER_IMAGE: localhost:5000/name/app
|
||||
BUILDX_VERSION: latest
|
||||
|
||||
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:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
-
|
||||
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
|
||||
uses: ./
|
||||
@@ -37,6 +63,9 @@ jobs:
|
||||
type=ref,event=tag
|
||||
type=ref,event=pr
|
||||
type=sha
|
||||
-
|
||||
name: Print envs
|
||||
run: env|sort
|
||||
|
||||
tag-schedule:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -51,7 +80,13 @@ jobs:
|
||||
steps:
|
||||
-
|
||||
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
|
||||
uses: ./
|
||||
@@ -81,7 +116,13 @@ jobs:
|
||||
steps:
|
||||
-
|
||||
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
|
||||
uses: ./
|
||||
@@ -109,7 +150,13 @@ jobs:
|
||||
steps:
|
||||
-
|
||||
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
|
||||
uses: ./
|
||||
@@ -134,7 +181,13 @@ jobs:
|
||||
steps:
|
||||
-
|
||||
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
|
||||
uses: ./
|
||||
@@ -151,7 +204,13 @@ jobs:
|
||||
steps:
|
||||
-
|
||||
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
|
||||
uses: ./
|
||||
@@ -161,12 +220,18 @@ jobs:
|
||||
name=ghcr.io/name/app,enable=${{ github.event_name == 'pull_request' }}
|
||||
name=ghcr.io/name/release,enable=${{ startsWith(github.ref, 'refs/tags/') }}
|
||||
|
||||
labels:
|
||||
custom-labels-annotations:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
-
|
||||
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
|
||||
uses: ./
|
||||
@@ -179,13 +244,24 @@ jobs:
|
||||
org.opencontainers.image.title=MyCustomTitle
|
||||
org.opencontainers.image.description=this is a "good" example
|
||||
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:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
-
|
||||
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
|
||||
uses: ./
|
||||
@@ -193,6 +269,8 @@ jobs:
|
||||
images: |
|
||||
${{ env.DOCKER_IMAGE }}
|
||||
ghcr.io/name/app
|
||||
labels: |
|
||||
org.opencontainers.image.created={{commit_date 'YYYY-MM-DDTHH:mm:ss.SSS[Z]'}}
|
||||
tags: |
|
||||
type=sha
|
||||
type=raw,value=gexp-branch-{{branch}}
|
||||
@@ -200,13 +278,20 @@ jobs:
|
||||
type=raw,value=gexp-tag-{{tag}}
|
||||
type=raw,value=gexp-baseref-{{base_ref}}
|
||||
type=raw,value=gexp-defbranch,enable={{is_default_branch}}
|
||||
type=raw,value=gexp-notdefbranch,enable={{is_not_default_branch}}
|
||||
|
||||
json:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
-
|
||||
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
|
||||
id: meta
|
||||
@@ -235,7 +320,13 @@ jobs:
|
||||
steps:
|
||||
-
|
||||
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
|
||||
id: docker_meta
|
||||
@@ -252,17 +343,9 @@ jobs:
|
||||
type=semver,pattern=v{{major}}.{{minor}}
|
||||
type=semver,pattern=v{{major}}
|
||||
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
|
||||
uses: docker/build-push-action@v3
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
context: ./test
|
||||
file: ./test/Dockerfile
|
||||
@@ -279,17 +362,18 @@ jobs:
|
||||
name: Check manifest
|
||||
run: |
|
||||
docker buildx imagetools inspect ${{ env.DOCKER_IMAGE }}:${{ steps.docker_meta.outputs.version }}
|
||||
-
|
||||
name: Dump context
|
||||
if: always()
|
||||
uses: crazy-max/ghaction-dump-context@v1
|
||||
|
||||
bake:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
-
|
||||
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
|
||||
id: docker_meta
|
||||
@@ -307,19 +391,14 @@ jobs:
|
||||
type=semver,pattern={{major}}.{{minor}}
|
||||
type=semver,pattern={{major}}
|
||||
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
|
||||
uses: docker/bake-action@v2
|
||||
uses: docker/bake-action@v6
|
||||
with:
|
||||
files: |
|
||||
./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: |
|
||||
release
|
||||
|
||||
@@ -334,7 +413,13 @@ jobs:
|
||||
steps:
|
||||
-
|
||||
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
|
||||
id: meta
|
||||
@@ -346,7 +431,204 @@ jobs:
|
||||
sep-tags: ${{ matrix.sep }}
|
||||
-
|
||||
name: Tags
|
||||
uses: actions/github-script@v6
|
||||
uses: actions/github-script@v8
|
||||
with:
|
||||
script: |
|
||||
console.log(`${{ steps.meta.outputs.tags }}`);
|
||||
|
||||
output-env:
|
||||
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
|
||||
id: meta
|
||||
uses: ./
|
||||
with:
|
||||
images: |
|
||||
${{ env.DOCKER_IMAGE }}
|
||||
ghcr.io/name/app
|
||||
labels: |
|
||||
maintainer=CrazyMax
|
||||
annotations: |
|
||||
maintainer=Foo
|
||||
-
|
||||
name: Build
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
context: ./test
|
||||
file: ./test/output.Dockerfile
|
||||
build-args: |
|
||||
DOCKER_METADATA_OUTPUT_VERSION
|
||||
DOCKER_METADATA_OUTPUT_TAGS
|
||||
DOCKER_METADATA_OUTPUT_LABELS
|
||||
DOCKER_METADATA_OUTPUT_ANNOTATIONS
|
||||
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
|
||||
@@ -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
|
||||
@@ -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
-12
@@ -1,14 +1,15 @@
|
||||
name: test
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
- 'releases/v*'
|
||||
pull_request:
|
||||
branches:
|
||||
- 'master'
|
||||
- 'releases/v*'
|
||||
|
||||
jobs:
|
||||
test:
|
||||
@@ -16,19 +17,16 @@ jobs:
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
-
|
||||
name: Validate
|
||||
uses: docker/bake-action@v2
|
||||
with:
|
||||
targets: validate
|
||||
uses: actions/checkout@v6
|
||||
-
|
||||
name: Test
|
||||
uses: docker/bake-action@v2
|
||||
uses: docker/bake-action@v6
|
||||
with:
|
||||
source: .
|
||||
targets: test
|
||||
-
|
||||
name: Upload coverage
|
||||
uses: codecov/codecov-action@v3
|
||||
uses: codecov/codecov-action@v5
|
||||
with:
|
||||
file: ./coverage/clover.xml
|
||||
files: ./coverage/clover.xml
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
@@ -0,0 +1,43 @@
|
||||
name: validate
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
- 'releases/v*'
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
prepare:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
targets: ${{ steps.generate.outputs.targets }}
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
-
|
||||
name: List targets
|
||||
id: generate
|
||||
uses: docker/bake-action/subaction/list-targets@v6
|
||||
with:
|
||||
target: validate
|
||||
|
||||
validate:
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- prepare
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
target: ${{ fromJson(needs.prepare.outputs.targets) }}
|
||||
steps:
|
||||
-
|
||||
name: Validate
|
||||
uses: docker/bake-action@v6
|
||||
with:
|
||||
targets: ${{ matrix.target }}
|
||||
+14
-57
@@ -1,12 +1,5 @@
|
||||
/.dev
|
||||
node_modules/
|
||||
lib
|
||||
# https://raw.githubusercontent.com/github/gitignore/main/Node.gitignore
|
||||
|
||||
# Jetbrains
|
||||
/.idea
|
||||
/*.iml
|
||||
|
||||
# Rest of the file pulled from https://github.com/github/gitignore/blob/master/Node.gitignore
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
@@ -14,6 +7,7 @@ npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
lerna-debug.log*
|
||||
.pnpm-debug.log*
|
||||
|
||||
# Diagnostic reports (https://nodejs.org/api/report.html)
|
||||
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
|
||||
@@ -24,34 +18,14 @@ pids
|
||||
*.seed
|
||||
*.pid.lock
|
||||
|
||||
# Directory for instrumented libs generated by jscoverage/JSCover
|
||||
lib-cov
|
||||
|
||||
# Coverage directory used by tools like istanbul
|
||||
coverage
|
||||
*.lcov
|
||||
|
||||
# nyc test coverage
|
||||
.nyc_output
|
||||
|
||||
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
|
||||
.grunt
|
||||
|
||||
# Bower dependency directory (https://bower.io/)
|
||||
bower_components
|
||||
|
||||
# node-waf configuration
|
||||
.lock-wscript
|
||||
|
||||
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
||||
build/Release
|
||||
|
||||
# Dependency directories
|
||||
node_modules/
|
||||
jspm_packages/
|
||||
|
||||
# TypeScript v1 declaration files
|
||||
typings/
|
||||
|
||||
# TypeScript cache
|
||||
*.tsbuildinfo
|
||||
|
||||
@@ -61,36 +35,19 @@ typings/
|
||||
# Optional eslint cache
|
||||
.eslintcache
|
||||
|
||||
# Optional REPL history
|
||||
.node_repl_history
|
||||
|
||||
# Output of 'npm pack'
|
||||
*.tgz
|
||||
|
||||
# Yarn Integrity file
|
||||
.yarn-integrity
|
||||
|
||||
# dotenv environment variables file
|
||||
# dotenv environment variable files
|
||||
.env
|
||||
.env.test
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
.env.local
|
||||
|
||||
# parcel-bundler cache (https://parceljs.org/)
|
||||
.cache
|
||||
|
||||
# next.js build output
|
||||
.next
|
||||
|
||||
# nuxt.js build output
|
||||
.nuxt
|
||||
|
||||
# vuepress build output
|
||||
.vuepress/dist
|
||||
|
||||
# Serverless directories
|
||||
.serverless/
|
||||
|
||||
# FuseBox cache
|
||||
.fusebox/
|
||||
|
||||
# DynamoDB Local files
|
||||
.dynamodb/
|
||||
# yarn v2
|
||||
.yarn/cache
|
||||
.yarn/unplugged
|
||||
.yarn/build-state.yml
|
||||
.yarn/install-state.gz
|
||||
.pnp.*
|
||||
@@ -0,0 +1,6 @@
|
||||
# Dependency directories
|
||||
node_modules/
|
||||
jspm_packages/
|
||||
|
||||
# yarn v2
|
||||
.yarn/
|
||||
+17
@@ -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
|
||||
@@ -1,6 +1,7 @@
|
||||
[](https://github.com/docker/metadata-action/releases/latest)
|
||||
[](https://github.com/marketplace/actions/docker-metadata-action)
|
||||
[](https://github.com/docker/metadata-action/actions?workflow=test)
|
||||
[](https://github.com/docker/metadata-action/actions?workflow=ci)
|
||||
[](https://github.com/docker/metadata-action/actions?workflow=test)
|
||||
[](https://codecov.io/gh/docker/metadata-action)
|
||||
|
||||
## About
|
||||
@@ -20,6 +21,8 @@ ___
|
||||
* [Customizing](#customizing)
|
||||
* [inputs](#inputs)
|
||||
* [outputs](#outputs)
|
||||
* [environment variables](#environment-variables)
|
||||
* [`context` input](#context-input)
|
||||
* [`images` input](#images-input)
|
||||
* [`flavor` input](#flavor-input)
|
||||
* [`tags` input](#tags-input)
|
||||
@@ -41,10 +44,13 @@ ___
|
||||
* [`{{sha}}`](#sha)
|
||||
* [`{{base_ref}}`](#base_ref)
|
||||
* [`{{is_default_branch}}`](#is_default_branch)
|
||||
* [`{{date '<format>'}}`](#date-format)
|
||||
* [`{{is_not_default_branch}}`](#is_not_default_branch)
|
||||
* [`{{date '<format>' tz='<timezone>'}}`](#date-format-tztimezone)
|
||||
* [`{{commit_date '<format>' tz='<timezone>'}}`](#commit_date-format-tztimezone)
|
||||
* [Major version zero](#major-version-zero)
|
||||
* [JSON output object](#json-output-object)
|
||||
* [Overwrite labels](#overwrite-labels)
|
||||
* [Overwrite labels and annotations](#overwrite-labels-and-annotations)
|
||||
* [Annotations](#annotations)
|
||||
* [Contributing](#contributing)
|
||||
|
||||
## Usage
|
||||
@@ -71,23 +77,23 @@ jobs:
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v5
|
||||
-
|
||||
name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
uses: docker/metadata-action@v5
|
||||
with:
|
||||
images: name/app
|
||||
-
|
||||
name: Login to DockerHub
|
||||
if: github.event_name != 'pull_request'
|
||||
uses: docker/login-action@v2
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
-
|
||||
name: Build and push
|
||||
uses: docker/build-push-action@v3
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
context: .
|
||||
push: ${{ github.event_name != 'pull_request' }}
|
||||
@@ -125,11 +131,11 @@ jobs:
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v5
|
||||
-
|
||||
name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
uses: docker/metadata-action@v5
|
||||
with:
|
||||
images: |
|
||||
name/app
|
||||
@@ -141,13 +147,13 @@ jobs:
|
||||
-
|
||||
name: Login to DockerHub
|
||||
if: github.event_name != 'pull_request'
|
||||
uses: docker/login-action@v2
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
-
|
||||
name: Build and push
|
||||
uses: docker/build-push-action@v3
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
context: .
|
||||
push: ${{ github.event_name != 'pull_request' }}
|
||||
@@ -201,13 +207,10 @@ jobs:
|
||||
docker:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
-
|
||||
name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
uses: docker/metadata-action@v5
|
||||
with:
|
||||
images: |
|
||||
name/app
|
||||
@@ -219,16 +222,16 @@ jobs:
|
||||
type=sha
|
||||
-
|
||||
name: Build
|
||||
uses: docker/bake-action@v2
|
||||
uses: docker/bake-action@v6
|
||||
with:
|
||||
files: |
|
||||
./docker-bake.hcl
|
||||
${{ steps.meta.outputs.bake-file }}
|
||||
cwd://${{ steps.meta.outputs.bake-file }}
|
||||
targets: build
|
||||
```
|
||||
|
||||
Content of `${{ steps.meta.outputs.bake-file }}` file will look like this with
|
||||
`refs/tags/v1.2.3` ref:
|
||||
Content of `${{ steps.meta.outputs.bake-file }}` file, combining tags and
|
||||
labels, will look like this with `refs/tags/v1.2.3` ref:
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -259,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
|
||||
|
||||
### 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
|
||||
> ```yaml
|
||||
> labels: |
|
||||
@@ -273,27 +293,77 @@ Following inputs can be used as `step.with` keys
|
||||
> org.opencontainers.image.vendor=MyCompany
|
||||
> ```
|
||||
|
||||
| Name | Type | Description |
|
||||
|---------------------|--------|----------------------------------------------------------|
|
||||
| `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 |
|
||||
| `flavor` | List | [Flavor](#flavor-input) to apply |
|
||||
| `labels` | List | List of custom labels |
|
||||
| `sep-tags` | String | Separator to use for tags output (default `\n`) |
|
||||
| `sep-labels` | String | Separator to use for labels output (default `\n`) |
|
||||
| `bake-target` | String | Bake target name (default `docker-metadata-action`) |
|
||||
| Name | Type | Description |
|
||||
|-------------------|--------|------------------------------------------------------------------------------|
|
||||
| `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 |
|
||||
| `tags` | List | List of [tags](#tags-input) as key-value pair attributes |
|
||||
| `flavor` | List | [Flavor](#flavor-input) to apply |
|
||||
| `labels` | List | List of custom labels |
|
||||
| `annotations` | List | List of custom annotations |
|
||||
| `sep-tags` | String | Separator to use for tags output (default `\n`) |
|
||||
| `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
|
||||
|
||||
Following outputs are available
|
||||
The following outputs are available:
|
||||
|
||||
| Name | Type | Description |
|
||||
|---------------|---------|--------------------------------------------------------------------------------------------|
|
||||
| `version` | String | Docker image version |
|
||||
| `tags` | String | Docker tags |
|
||||
| `labels` | String | Docker labels |
|
||||
| `json` | String | JSON output of tags and labels |
|
||||
| `bake-file` | File | [Bake file definition](https://docs.docker.com/build/customize/bake/file-definition/) path |
|
||||
| Name | Type | Description |
|
||||
|-------------------------|--------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `version` | String | Docker image version |
|
||||
| `tags` | String | Docker tags |
|
||||
| `tag-names` | String | Docker tag names without image base name |
|
||||
| `labels` | String | Docker labels |
|
||||
| `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 when `DOCKER_METADATA_SET_OUTPUT_ENV` is `true`:
|
||||
|
||||
* `DOCKER_METADATA_OUTPUT_VERSION`
|
||||
* `DOCKER_METADATA_OUTPUT_TAGS`
|
||||
* `DOCKER_METADATA_OUTPUT_LABELS`
|
||||
* `DOCKER_METADATA_OUTPUT_ANNOTATIONS`
|
||||
* `DOCKER_METADATA_OUTPUT_JSON`
|
||||
* `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/):
|
||||
|
||||
```yaml
|
||||
- uses: docker/build-push-action@v6
|
||||
with:
|
||||
build-args: |
|
||||
DOCKER_METADATA_OUTPUT_JSON
|
||||
```
|
||||
|
||||
### environment variables
|
||||
|
||||
| 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_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` defines where to get context metadata:
|
||||
|
||||
```yaml
|
||||
# default
|
||||
context: workflow
|
||||
# or
|
||||
context: git
|
||||
```
|
||||
|
||||
* `workflow`: Get context metadata from the workflow (GitHub context). See https://docs.github.com/en/actions/learn-github-actions/contexts#github-context
|
||||
* `git`: Get context metadata from the workflow and overrides some of them with current Git context, such as `ref` and `sha`.
|
||||
|
||||
## `images` input
|
||||
|
||||
@@ -318,6 +388,8 @@ images: |
|
||||
* `name=<string>` image base name
|
||||
* `enable=<true|false>` enable this entry (default `true`)
|
||||
|
||||
If `images` is empty, tags will be generated without base name.
|
||||
|
||||
## `flavor` input
|
||||
|
||||
`flavor` defines a global behavior for [`tags`](#tags-input):
|
||||
@@ -391,6 +463,8 @@ tags: |
|
||||
type=schedule,pattern=nightly
|
||||
# handlebars
|
||||
type=schedule,pattern={{date 'YYYYMMDD'}}
|
||||
# handlebars with timezone
|
||||
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).
|
||||
@@ -398,12 +472,14 @@ Will be used on [schedule event](https://docs.github.com/en/actions/using-workfl
|
||||
`pattern` is a specially crafted attribute to support [Handlebars' template](https://handlebarsjs.com/guide/)
|
||||
with the following expressions:
|
||||
|
||||
* `date 'format'` ; render date by its [moment format](https://momentjs.com/docs/#/displaying/format/)
|
||||
* `date 'format' tz='Timezone'` ; render date by its [moment format](https://momentjs.com/docs/#/displaying/format/).
|
||||
Default `tz` is UTC.
|
||||
|
||||
| Pattern | Output |
|
||||
|--------------------------|----------------------|
|
||||
| `nightly` | `nightly` |
|
||||
| `{{date 'YYYYMMDD'}}` | `20210326` |
|
||||
| Pattern | Output |
|
||||
|----------------------------------------------|-------------------|
|
||||
| `nightly` | `nightly` |
|
||||
| `{{date 'YYYYMMDD'}}` | `20200110` |
|
||||
| `{{date 'YYYYMMDD-HHmmss' tz='Asia/Tokyo'}}` | `20200110-093000` |
|
||||
|
||||
Extended attributes and default values:
|
||||
|
||||
@@ -420,6 +496,8 @@ tags: |
|
||||
type=semver,pattern={{version}}
|
||||
# use custom value instead of git tag
|
||||
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)
|
||||
@@ -435,18 +513,21 @@ with the following expressions:
|
||||
* `minor` ; minor version identifier
|
||||
* `patch` ; patch version identifier
|
||||
|
||||
| Git tag | Pattern | Output |
|
||||
|--------------------|----------------------------------------------------------|----------------------|
|
||||
| `v1.2.3` | `{{raw}}` | `v1.2.3` |
|
||||
| `v1.2.3` | `{{version}}` | `1.2.3` |
|
||||
| `v1.2.3` | `{{major}}.{{minor}}` | `1.2` |
|
||||
| `v1.2.3` | `v{{major}}` | `v1` |
|
||||
| `v1.2.3` | `{{minor}}` | `2` |
|
||||
| `v1.2.3` | `{{patch}}` | `3` |
|
||||
| `v2.0.8-beta.67` | `{{raw}}` | `v2.0.8-beta.67` |
|
||||
| `v2.0.8-beta.67` | `{{version}}` | `2.0.8-beta.67` |
|
||||
| `v2.0.8-beta.67` | `{{major}}.{{minor}}` | `2.0.8-beta.67`* |
|
||||
| Git tag | Pattern | Match | Output |
|
||||
|------------------|-----------------------|----------------|------------------|
|
||||
| `v1.2.3` | `{{raw}}` | | `v1.2.3` |
|
||||
| `v1.2.3` | `{{version}}` | | `1.2.3` |
|
||||
| `v1.2.3` | `{{major}}.{{minor}}` | | `1.2` |
|
||||
| `v1.2.3` | `v{{major}}` | | `v1` |
|
||||
| `v1.2.3` | `{{minor}}` | | `2` |
|
||||
| `v1.2.3` | `{{patch}}` | | `3` |
|
||||
| `p1/v1.2.3` | `{{version}}` | `v(\d.\d.\d)$` | `1.2.3` |
|
||||
| `v2.0.8-beta.67` | `{{raw}}` | | `v2.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}}`
|
||||
> 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
|
||||
@@ -456,7 +537,7 @@ Extended attributes and default values:
|
||||
|
||||
```yaml
|
||||
tags: |
|
||||
type=semver,enable=true,priority=900,prefix=,suffix=,pattern=,value=
|
||||
type=semver,enable=true,priority=900,prefix=,suffix=,pattern=,value=,match=
|
||||
```
|
||||
|
||||
### `type=pep440`
|
||||
@@ -467,6 +548,8 @@ tags: |
|
||||
type=pep440,pattern={{version}}
|
||||
# use custom value instead of git tag
|
||||
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)
|
||||
@@ -482,20 +565,22 @@ with the following expressions:
|
||||
* `minor` ; minor version identifier
|
||||
* `patch` ; patch version identifier
|
||||
|
||||
| Git tag | Pattern | Output |
|
||||
|--------------------|----------------------------------------------------------|----------------------|
|
||||
| `1.2.3` | `{{raw}}` | `1.2.3` |
|
||||
| `1.2.3` | `{{version}}` | `1.2.3` |
|
||||
| `v1.2.3` | `{{version}}` | `1.2.3` |
|
||||
| `1.2.3` | `{{major}}.{{minor}}` | `1.2` |
|
||||
| `1.2.3` | `v{{major}}` | `v1` |
|
||||
| `v1.2.3rc2` | `{{raw}}` | `v1.2.3rc2` |
|
||||
| `1.2.3rc2` | `{{version}}` | `1.2.3rc2` |
|
||||
| `1.2.3rc2` | `{{major}}.{{minor}}` | `1.2.3rc2`* |
|
||||
| `1.2.3post1` | `{{major}}.{{minor}}` | `1.2.3.post1`* |
|
||||
| `1.2.3beta2` | `{{major}}.{{minor}}` | `1.2.3b2`* |
|
||||
| `1.0dev4` | `{{major}}.{{minor}}` | `1.0.dev4`* |
|
||||
| Git tag | Pattern | Match | Output |
|
||||
|--------------|-----------------------|----------------|----------------|
|
||||
| `1.2.3` | `{{raw}}` | | `1.2.3` |
|
||||
| `1.2.3` | `{{version}}` | | `1.2.3` |
|
||||
| `v1.2.3` | `{{version}}` | | `1.2.3` |
|
||||
| `1.2.3` | `{{major}}.{{minor}}` | | `1.2` |
|
||||
| `1.2.3` | `v{{major}}` | | `v1` |
|
||||
| `v1.2.3rc2` | `{{raw}}` | | `v1.2.3rc2` |
|
||||
| `1.2.3rc2` | `{{version}}` | | `1.2.3rc2` |
|
||||
| `p1/v1.2.3` | `{{version}}` | `v(\d.\d.\d)$` | `1.2.3` |
|
||||
| `1.2.3rc2` | `{{major}}.{{minor}}` | | `1.2.3rc2`* |
|
||||
| `1.2.3post1` | `{{major}}.{{minor}}` | | `1.2.3.post1`* |
|
||||
| `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
|
||||
> 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
|
||||
@@ -632,7 +717,26 @@ tags: |
|
||||
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:
|
||||
|
||||
@@ -666,6 +770,7 @@ generated by default (`auto` mode) for:
|
||||
|
||||
* [`type=ref,event=tag`](#typeref)
|
||||
* [`type=semver,pattern=...`](#typesemver)
|
||||
* [`type=pep440,pattern=...`](#typepep440)
|
||||
* [`type=match,pattern=...`](#typematch)
|
||||
|
||||
For conditionally tagging with latest for a specific branch name, e.g. if your
|
||||
@@ -707,7 +812,8 @@ Each tags `type` attribute has a default priority:
|
||||
### Global 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
|
||||
tags: |
|
||||
@@ -717,6 +823,13 @@ tags: |
|
||||
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}}`
|
||||
|
||||
Returns the branch name that triggered the workflow run. Will be empty if not
|
||||
@@ -757,6 +870,7 @@ workflow run. Will be empty for a branch reference:
|
||||
| `push` | `refs/heads/my/branch` | |
|
||||
| `push tag`* | `refs/tags/v1.2.3` | `master` |
|
||||
|
||||
> [!IMPORTANT]
|
||||
> *`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
|
||||
> [not documented in GitHub docs](https://docs.github.com/en/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#push).
|
||||
@@ -768,14 +882,35 @@ workflow run. Will be empty for a branch reference:
|
||||
Returns `true` if the branch that triggered the workflow run is the default
|
||||
one, otherwise `false`.
|
||||
|
||||
#### `{{date '<format>'}}`
|
||||
#### `{{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>'}}`
|
||||
|
||||
Returns the current date rendered by its [moment format](https://momentjs.com/docs/#/displaying/format/).
|
||||
Default `tz` is UTC.
|
||||
|
||||
| Expression | Output example |
|
||||
|--------------------------------------------|-----------------------------------------|
|
||||
| `{{date 'YYYYMMDD'}}` | `20200110` |
|
||||
| `{{date 'dddd, MMMM Do YYYY, h:mm:ss a'}}` | `Friday, January 10th 2020, 3:25:50 pm` |
|
||||
| Expression | Output example |
|
||||
|----------------------------------------------|-----------------------------------------|
|
||||
| `{{date 'YYYYMMDD'}}` | `20200110` |
|
||||
| `{{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` |
|
||||
|
||||
#### `{{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
|
||||
|
||||
@@ -804,13 +939,13 @@ that you can reuse them further in your workflow using the [`fromJSON` function]
|
||||
```yaml
|
||||
-
|
||||
name: Docker meta
|
||||
uses: docker/metadata-action@v4
|
||||
uses: docker/metadata-action@v5
|
||||
id: meta
|
||||
with:
|
||||
images: name/app
|
||||
-
|
||||
name: Build and push
|
||||
uses: docker/build-push-action@v3
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
@@ -820,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'] }}
|
||||
```
|
||||
|
||||
### Overwrite labels
|
||||
### Overwrite labels and annotations
|
||||
|
||||
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
|
||||
-
|
||||
name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
uses: docker/metadata-action@v5
|
||||
with:
|
||||
images: name/app
|
||||
labels: |
|
||||
@@ -839,6 +975,78 @@ labels generated are not suitable, you can overwrite them like this:
|
||||
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
|
||||
|
||||
Want to contribute? Awesome! You can find information about contributing to
|
||||
|
||||
-300
@@ -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@v3
|
||||
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@v3
|
||||
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@v3
|
||||
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@v3
|
||||
with:
|
||||
context: .
|
||||
push: ${{ github.event_name != 'pull_request' }}
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
```
|
||||
@@ -0,0 +1,223 @@
|
||||
import {jest} from '@jest/globals';
|
||||
|
||||
export const context = {
|
||||
repo: {
|
||||
owner: 'docker',
|
||||
repo: 'actions-toolkit'
|
||||
},
|
||||
ref: 'refs/heads/master',
|
||||
runId: 123,
|
||||
payload: {
|
||||
after: '860c1904a1ce19322e91ac35af1ab07466440c37',
|
||||
base_ref: null,
|
||||
before: '5f3331d7f7044c18ca9f12c77d961c4d7cf3276a',
|
||||
commits: [
|
||||
{
|
||||
author: {
|
||||
email: 'crazy-max@users.noreply.github.com',
|
||||
name: 'CrazyMax',
|
||||
username: 'crazy-max'
|
||||
},
|
||||
committer: {
|
||||
email: 'crazy-max@users.noreply.github.com',
|
||||
name: 'CrazyMax',
|
||||
username: 'crazy-max'
|
||||
},
|
||||
distinct: true,
|
||||
id: '860c1904a1ce19322e91ac35af1ab07466440c37',
|
||||
message: 'hello dev',
|
||||
timestamp: '2022-04-19T11:27:24+02:00',
|
||||
tree_id: 'd2c60af597e863787d2d27f569e30495b0b92820',
|
||||
url: 'https://github.com/docker/test-docker-action/commit/860c1904a1ce19322e91ac35af1ab07466440c37'
|
||||
}
|
||||
],
|
||||
compare: 'https://github.com/docker/test-docker-action/compare/5f3331d7f704...860c1904a1ce',
|
||||
created: false,
|
||||
deleted: false,
|
||||
forced: false,
|
||||
head_commit: {
|
||||
author: {
|
||||
email: 'crazy-max@users.noreply.github.com',
|
||||
name: 'CrazyMax',
|
||||
username: 'crazy-max'
|
||||
},
|
||||
committer: {
|
||||
email: 'crazy-max@users.noreply.github.com',
|
||||
name: 'CrazyMax',
|
||||
username: 'crazy-max'
|
||||
},
|
||||
distinct: true,
|
||||
id: '860c1904a1ce19322e91ac35af1ab07466440c37',
|
||||
message: 'hello dev',
|
||||
timestamp: '2022-04-19T11:27:24+02:00',
|
||||
tree_id: 'd2c60af597e863787d2d27f569e30495b0b92820',
|
||||
url: 'https://github.com/docker/test-docker-action/commit/860c1904a1ce19322e91ac35af1ab07466440c37'
|
||||
},
|
||||
organization: {
|
||||
avatar_url: 'https://avatars.githubusercontent.com/u/5429470?v=4',
|
||||
description: 'Docker helps developers bring their ideas to life by conquering the complexity of app development.',
|
||||
events_url: 'https://api.github.com/orgs/docker/events',
|
||||
hooks_url: 'https://api.github.com/orgs/docker/hooks',
|
||||
id: 5429470,
|
||||
issues_url: 'https://api.github.com/orgs/docker/issues',
|
||||
login: 'docker',
|
||||
members_url: 'https://api.github.com/orgs/docker/members{/member}',
|
||||
node_id: 'MDEyOk9yZ2FuaXphdGlvbjU0Mjk0NzA=',
|
||||
public_members_url: 'https://api.github.com/orgs/docker/public_members{/member}',
|
||||
repos_url: 'https://api.github.com/orgs/docker/repos',
|
||||
url: 'https://api.github.com/orgs/docker'
|
||||
},
|
||||
pusher: {
|
||||
email: 'github@crazymax.dev',
|
||||
name: 'crazy-max'
|
||||
},
|
||||
ref: 'refs/heads/dev',
|
||||
repository: {
|
||||
allow_forking: true,
|
||||
archive_url: 'https://api.github.com/repos/docker/test-docker-action/{archive_format}{/ref}',
|
||||
archived: false,
|
||||
assignees_url: 'https://api.github.com/repos/docker/test-docker-action/assignees{/user}',
|
||||
blobs_url: 'https://api.github.com/repos/docker/test-docker-action/git/blobs{/sha}',
|
||||
branches_url: 'https://api.github.com/repos/docker/test-docker-action/branches{/branch}',
|
||||
clone_url: 'https://github.com/docker/test-docker-action.git',
|
||||
collaborators_url: 'https://api.github.com/repos/docker/test-docker-action/collaborators{/collaborator}',
|
||||
comments_url: 'https://api.github.com/repos/docker/test-docker-action/comments{/number}',
|
||||
commits_url: 'https://api.github.com/repos/docker/test-docker-action/commits{/sha}',
|
||||
compare_url: 'https://api.github.com/repos/docker/test-docker-action/compare/{base}...{head}',
|
||||
contents_url: 'https://api.github.com/repos/docker/test-docker-action/contents/{+path}',
|
||||
contributors_url: 'https://api.github.com/repos/docker/test-docker-action/contributors',
|
||||
created_at: 1596792180,
|
||||
default_branch: 'master',
|
||||
deployments_url: 'https://api.github.com/repos/docker/test-docker-action/deployments',
|
||||
description: 'Test "Docker" Actions',
|
||||
disabled: false,
|
||||
downloads_url: 'https://api.github.com/repos/docker/test-docker-action/downloads',
|
||||
events_url: 'https://api.github.com/repos/docker/test-docker-action/events',
|
||||
fork: false,
|
||||
forks: 1,
|
||||
forks_count: 1,
|
||||
forks_url: 'https://api.github.com/repos/docker/test-docker-action/forks',
|
||||
full_name: 'docker/test-docker-action',
|
||||
git_commits_url: 'https://api.github.com/repos/docker/test-docker-action/git/commits{/sha}',
|
||||
git_refs_url: 'https://api.github.com/repos/docker/test-docker-action/git/refs{/sha}',
|
||||
git_tags_url: 'https://api.github.com/repos/docker/test-docker-action/git/tags{/sha}',
|
||||
git_url: 'git://github.com/docker/test-docker-action.git',
|
||||
has_downloads: true,
|
||||
has_issues: true,
|
||||
has_pages: false,
|
||||
has_projects: true,
|
||||
has_wiki: true,
|
||||
homepage: '',
|
||||
hooks_url: 'https://api.github.com/repos/docker/test-docker-action/hooks',
|
||||
html_url: 'https://github.com/docker/test-docker-action',
|
||||
id: 285789493,
|
||||
is_template: false,
|
||||
issue_comment_url: 'https://api.github.com/repos/docker/test-docker-action/issues/comments{/number}',
|
||||
issue_events_url: 'https://api.github.com/repos/docker/test-docker-action/issues/events{/number}',
|
||||
issues_url: 'https://api.github.com/repos/docker/test-docker-action/issues{/number}',
|
||||
keys_url: 'https://api.github.com/repos/docker/test-docker-action/keys{/key_id}',
|
||||
labels_url: 'https://api.github.com/repos/docker/test-docker-action/labels{/name}',
|
||||
language: 'JavaScript',
|
||||
languages_url: 'https://api.github.com/repos/docker/test-docker-action/languages',
|
||||
license: {
|
||||
key: 'mit',
|
||||
name: 'MIT License',
|
||||
node_id: 'MDc6TGljZW5zZTEz',
|
||||
spdx_id: 'MIT',
|
||||
url: 'https://api.github.com/licenses/mit'
|
||||
},
|
||||
master_branch: 'master',
|
||||
merges_url: 'https://api.github.com/repos/docker/test-docker-action/merges',
|
||||
milestones_url: 'https://api.github.com/repos/docker/test-docker-action/milestones{/number}',
|
||||
mirror_url: null,
|
||||
name: 'test-docker-action',
|
||||
node_id: 'MDEwOlJlcG9zaXRvcnkyODU3ODk0OTM=',
|
||||
notifications_url: 'https://api.github.com/repos/docker/test-docker-action/notifications{?since,all,participating}',
|
||||
open_issues: 6,
|
||||
open_issues_count: 6,
|
||||
organization: 'docker',
|
||||
owner: {
|
||||
avatar_url: 'https://avatars.githubusercontent.com/u/5429470?v=4',
|
||||
email: 'info@docker.com',
|
||||
events_url: 'https://api.github.com/users/docker/events{/privacy}',
|
||||
followers_url: 'https://api.github.com/users/docker/followers',
|
||||
following_url: 'https://api.github.com/users/docker/following{/other_user}',
|
||||
gists_url: 'https://api.github.com/users/docker/gists{/gist_id}',
|
||||
gravatar_id: '',
|
||||
html_url: 'https://github.com/docker',
|
||||
id: 5429470,
|
||||
login: 'docker',
|
||||
name: 'docker',
|
||||
node_id: 'MDEyOk9yZ2FuaXphdGlvbjU0Mjk0NzA=',
|
||||
organizations_url: 'https://api.github.com/users/docker/orgs',
|
||||
received_events_url: 'https://api.github.com/users/docker/received_events',
|
||||
repos_url: 'https://api.github.com/users/docker/repos',
|
||||
site_admin: false,
|
||||
starred_url: 'https://api.github.com/users/docker/starred{/owner}{/repo}',
|
||||
subscriptions_url: 'https://api.github.com/users/docker/subscriptions',
|
||||
type: 'Organization',
|
||||
url: 'https://api.github.com/users/docker'
|
||||
},
|
||||
private: true,
|
||||
pulls_url: 'https://api.github.com/repos/docker/test-docker-action/pulls{/number}',
|
||||
pushed_at: 1650360446,
|
||||
releases_url: 'https://api.github.com/repos/docker/test-docker-action/releases{/id}',
|
||||
size: 796,
|
||||
ssh_url: 'git@github.com:docker/test-docker-action.git',
|
||||
stargazers: 0,
|
||||
stargazers_count: 0,
|
||||
stargazers_url: 'https://api.github.com/repos/docker/test-docker-action/stargazers',
|
||||
statuses_url: 'https://api.github.com/repos/docker/test-docker-action/statuses/{sha}',
|
||||
subscribers_url: 'https://api.github.com/repos/docker/test-docker-action/subscribers',
|
||||
subscription_url: 'https://api.github.com/repos/docker/test-docker-action/subscription',
|
||||
svn_url: 'https://github.com/docker/test-docker-action',
|
||||
tags_url: 'https://api.github.com/repos/docker/test-docker-action/tags',
|
||||
teams_url: 'https://api.github.com/repos/docker/test-docker-action/teams',
|
||||
topics: [],
|
||||
trees_url: 'https://api.github.com/repos/docker/test-docker-action/git/trees{/sha}',
|
||||
updated_at: '2022-04-19T09:05:09Z',
|
||||
url: 'https://github.com/docker/test-docker-action',
|
||||
visibility: 'private',
|
||||
watchers: 0,
|
||||
watchers_count: 0
|
||||
},
|
||||
sender: {
|
||||
avatar_url: 'https://avatars.githubusercontent.com/u/1951866?v=4',
|
||||
events_url: 'https://api.github.com/users/crazy-max/events{/privacy}',
|
||||
followers_url: 'https://api.github.com/users/crazy-max/followers',
|
||||
following_url: 'https://api.github.com/users/crazy-max/following{/other_user}',
|
||||
gists_url: 'https://api.github.com/users/crazy-max/gists{/gist_id}',
|
||||
gravatar_id: '',
|
||||
html_url: 'https://github.com/crazy-max',
|
||||
id: 1951866,
|
||||
login: 'crazy-max',
|
||||
node_id: 'MDQ6VXNlcjE5NTE4NjY=',
|
||||
organizations_url: 'https://api.github.com/users/crazy-max/orgs',
|
||||
received_events_url: 'https://api.github.com/users/crazy-max/received_events',
|
||||
repos_url: 'https://api.github.com/users/crazy-max/repos',
|
||||
site_admin: false,
|
||||
starred_url: 'https://api.github.com/users/crazy-max/starred{/owner}{/repo}',
|
||||
subscriptions_url: 'https://api.github.com/users/crazy-max/subscriptions',
|
||||
type: 'User',
|
||||
url: 'https://api.github.com/users/crazy-max'
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export const getOctokit = jest.fn(() => ({
|
||||
rest: {
|
||||
repos: {
|
||||
getCommit: jest.fn(() =>
|
||||
Promise.resolve({
|
||||
data: {
|
||||
commit: {
|
||||
committer: {
|
||||
date: '2024-11-13T13:42:28Z'
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
)
|
||||
}
|
||||
}
|
||||
}));
|
||||
+128
-154
@@ -1,167 +1,141 @@
|
||||
import {describe, expect, it, jest} from '@jest/globals';
|
||||
import {afterEach, beforeEach, describe, expect, test, it, jest} from '@jest/globals';
|
||||
import * as dotenv from 'dotenv';
|
||||
import * as fs from 'fs';
|
||||
import * as path from 'path';
|
||||
import {Context} from '@actions/github/lib/context';
|
||||
import {Git} from '@docker/actions-toolkit/lib/git';
|
||||
import {GitHub} from '@docker/actions-toolkit/lib/github';
|
||||
import {Toolkit} from '@docker/actions-toolkit/lib/toolkit';
|
||||
|
||||
import * as context from '../src/context';
|
||||
import {ContextSource, getContext, getInputs, Inputs} from '../src/context';
|
||||
|
||||
jest.spyOn(context, 'tmpDir').mockImplementation((): string => {
|
||||
const tmpDir = path.join('/tmp/.docker-metadata-action-jest').split(path.sep).join(path.posix.sep);
|
||||
if (!fs.existsSync(tmpDir)) {
|
||||
fs.mkdirSync(tmpDir, {recursive: true});
|
||||
}
|
||||
return tmpDir;
|
||||
});
|
||||
const toolkit = new Toolkit({githubToken: 'fake-github-token'});
|
||||
|
||||
describe('getInputList', () => {
|
||||
it('single line correctly', async () => {
|
||||
await setInput('foo', 'bar');
|
||||
const res = context.getInputList('foo');
|
||||
expect(res).toEqual(['bar']);
|
||||
});
|
||||
|
||||
it('multiline correctly', async () => {
|
||||
setInput('foo', 'bar\nbaz');
|
||||
const res = context.getInputList('foo');
|
||||
expect(res).toEqual(['bar', 'baz']);
|
||||
});
|
||||
|
||||
it('empty lines correctly', async () => {
|
||||
setInput('foo', 'bar\n\nbaz');
|
||||
const res = context.getInputList('foo');
|
||||
expect(res).toEqual(['bar', 'baz']);
|
||||
});
|
||||
|
||||
it('comment correctly', async () => {
|
||||
setInput('foo', 'bar\n#com\n"#taken"\nhello#comment\nbaz');
|
||||
const res = context.getInputList('foo');
|
||||
expect(res).toEqual(['bar', '#taken', 'hello', 'baz']);
|
||||
});
|
||||
|
||||
it('comma correctly', async () => {
|
||||
setInput('foo', 'bar,baz');
|
||||
const res = context.getInputList('foo');
|
||||
expect(res).toEqual(['bar', 'baz']);
|
||||
});
|
||||
|
||||
it('empty result correctly', async () => {
|
||||
setInput('foo', 'bar,baz,');
|
||||
const res = context.getInputList('foo');
|
||||
expect(res).toEqual(['bar', 'baz']);
|
||||
});
|
||||
|
||||
it('different new lines correctly', async () => {
|
||||
setInput('foo', 'bar\r\nbaz');
|
||||
const res = context.getInputList('foo');
|
||||
expect(res).toEqual(['bar', 'baz']);
|
||||
});
|
||||
|
||||
it('different new lines and comma correctly', async () => {
|
||||
setInput('foo', 'bar\r\nbaz,bat');
|
||||
const res = context.getInputList('foo');
|
||||
expect(res).toEqual(['bar', 'baz', 'bat']);
|
||||
});
|
||||
|
||||
it('multiline and ignoring comma correctly', async () => {
|
||||
setInput('cache-from', 'user/app:cache\ntype=local,src=path/to/dir');
|
||||
const res = context.getInputList('cache-from', true);
|
||||
expect(res).toEqual(['user/app:cache', 'type=local,src=path/to/dir']);
|
||||
});
|
||||
|
||||
it('different new lines and ignoring comma correctly', async () => {
|
||||
setInput('cache-from', 'user/app:cache\r\ntype=local,src=path/to/dir');
|
||||
const res = context.getInputList('cache-from', true);
|
||||
expect(res).toEqual(['user/app:cache', 'type=local,src=path/to/dir']);
|
||||
});
|
||||
|
||||
it('multiline values', async () => {
|
||||
setInput(
|
||||
'secrets',
|
||||
`GIT_AUTH_TOKEN=abcdefgh,ijklmno=0123456789
|
||||
"MYSECRET=aaaaaaaa
|
||||
bbbbbbb
|
||||
ccccccccc"
|
||||
FOO=bar`
|
||||
);
|
||||
const res = context.getInputList('secrets', true);
|
||||
expect(res).toEqual([
|
||||
'GIT_AUTH_TOKEN=abcdefgh,ijklmno=0123456789',
|
||||
`MYSECRET=aaaaaaaa
|
||||
bbbbbbb
|
||||
ccccccccc`,
|
||||
'FOO=bar'
|
||||
]);
|
||||
});
|
||||
|
||||
it('multiline values with empty lines', async () => {
|
||||
setInput(
|
||||
'secrets',
|
||||
`GIT_AUTH_TOKEN=abcdefgh,ijklmno=0123456789
|
||||
"MYSECRET=aaaaaaaa
|
||||
bbbbbbb
|
||||
ccccccccc"
|
||||
FOO=bar
|
||||
"EMPTYLINE=aaaa
|
||||
|
||||
bbbb
|
||||
ccc"`
|
||||
);
|
||||
const res = context.getInputList('secrets', true);
|
||||
expect(res).toEqual([
|
||||
'GIT_AUTH_TOKEN=abcdefgh,ijklmno=0123456789',
|
||||
`MYSECRET=aaaaaaaa
|
||||
bbbbbbb
|
||||
ccccccccc`,
|
||||
'FOO=bar',
|
||||
`EMPTYLINE=aaaa
|
||||
|
||||
bbbb
|
||||
ccc`
|
||||
]);
|
||||
});
|
||||
|
||||
it('multiline values without quotes', async () => {
|
||||
setInput(
|
||||
'secrets',
|
||||
`GIT_AUTH_TOKEN=abcdefgh,ijklmno=0123456789
|
||||
MYSECRET=aaaaaaaa
|
||||
bbbbbbb
|
||||
ccccccccc
|
||||
FOO=bar`
|
||||
);
|
||||
const res = context.getInputList('secrets', true);
|
||||
expect(res).toEqual(['GIT_AUTH_TOKEN=abcdefgh,ijklmno=0123456789', 'MYSECRET=aaaaaaaa', 'bbbbbbb', 'ccccccccc', 'FOO=bar']);
|
||||
});
|
||||
|
||||
it('multiline values escape quotes', async () => {
|
||||
setInput(
|
||||
'secrets',
|
||||
`GIT_AUTH_TOKEN=abcdefgh,ijklmno=0123456789
|
||||
"MYSECRET=aaaaaaaa
|
||||
bbbb""bbb
|
||||
ccccccccc"
|
||||
FOO=bar`
|
||||
);
|
||||
const res = context.getInputList('secrets', true);
|
||||
expect(res).toEqual([
|
||||
'GIT_AUTH_TOKEN=abcdefgh,ijklmno=0123456789',
|
||||
`MYSECRET=aaaaaaaa
|
||||
bbbb"bbb
|
||||
ccccccccc`,
|
||||
'FOO=bar'
|
||||
]);
|
||||
beforeEach(() => {
|
||||
jest.clearAllMocks();
|
||||
jest.spyOn(GitHub, 'context', 'get').mockImplementation((): Context => {
|
||||
return new Context();
|
||||
});
|
||||
});
|
||||
|
||||
describe('asyncForEach', () => {
|
||||
it('executes async tasks sequentially', async () => {
|
||||
const testValues = [1, 2, 3, 4, 5];
|
||||
const results: number[] = [];
|
||||
describe('getInputs', () => {
|
||||
beforeEach(() => {
|
||||
process.env = Object.keys(process.env).reduce((object, key) => {
|
||||
if (!key.startsWith('INPUT_')) {
|
||||
object[key] = process.env[key];
|
||||
}
|
||||
return object;
|
||||
}, {});
|
||||
});
|
||||
|
||||
await context.asyncForEach(testValues, async value => {
|
||||
results.push(value);
|
||||
// prettier-ignore
|
||||
test.each([
|
||||
[
|
||||
0,
|
||||
new Map<string, string>([
|
||||
['images', 'moby/buildkit\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
|
||||
],
|
||||
[
|
||||
1,
|
||||
new Map<string, string>([
|
||||
['bake-target', 'metadata'],
|
||||
['images', 'moby/buildkit'],
|
||||
['sep-labels', ','],
|
||||
['sep-tags', ','],
|
||||
['sep-annotations', ',']
|
||||
]),
|
||||
{
|
||||
context: ContextSource.workflow,
|
||||
bakeTarget: 'metadata',
|
||||
flavor: [],
|
||||
githubToken: '',
|
||||
images: ['moby/buildkit'],
|
||||
labels: [],
|
||||
annotations: [],
|
||||
sepLabels: ',',
|
||||
sepTags: ',',
|
||||
sepAnnotations: ',',
|
||||
tags: [],
|
||||
} 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',
|
||||
async (num: number, inputs: Map<string, string>, expected: Inputs) => {
|
||||
inputs.forEach((value: string, name: string) => {
|
||||
setInput(name, value);
|
||||
});
|
||||
expect(await getInputs()).toEqual(expected);
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
describe('getContext', () => {
|
||||
const originalEnv = process.env;
|
||||
beforeEach(() => {
|
||||
jest.resetModules();
|
||||
process.env = {
|
||||
...originalEnv,
|
||||
...dotenv.parse(fs.readFileSync(path.join(__dirname, 'fixtures/event_create_branch.env')))
|
||||
};
|
||||
});
|
||||
afterEach(() => {
|
||||
process.env = originalEnv;
|
||||
});
|
||||
|
||||
it('workflow', async () => {
|
||||
const context = await getContext(ContextSource.workflow, toolkit);
|
||||
expect(context.ref).toEqual('refs/heads/dev');
|
||||
expect(context.sha).toEqual('5f3331d7f7044c18ca9f12c77d961c4d7cf3276a');
|
||||
expect(context.commitDate).toEqual(new Date('2024-11-13T13:42:28.000Z'));
|
||||
});
|
||||
|
||||
it('git', async () => {
|
||||
jest.spyOn(Git, 'context').mockImplementation((): Promise<Context> => {
|
||||
return Promise.resolve({
|
||||
ref: 'refs/heads/git-test',
|
||||
sha: 'git-test-sha'
|
||||
} as Context);
|
||||
});
|
||||
|
||||
expect(results).toEqual(testValues);
|
||||
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.sha).toEqual('git-test-sha');
|
||||
expect(context.commitDate).toEqual(new Date('2023-01-01T13:42:28.000Z'));
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import {describe, expect, test} from '@jest/globals';
|
||||
|
||||
import {Flavor, Transform} from '../src/flavor';
|
||||
|
||||
describe('transform', () => {
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
import {describe, expect, jest, it} from '@jest/globals';
|
||||
import * as github from '../src/github';
|
||||
|
||||
import * as repoFixture from './fixtures/repo.json';
|
||||
jest.spyOn(github, 'repo').mockImplementation((): Promise<github.ReposGetResponseData> => {
|
||||
return <Promise<github.ReposGetResponseData>>(repoFixture as unknown);
|
||||
});
|
||||
|
||||
describe('repo', () => {
|
||||
it('returns GitHub repository', async () => {
|
||||
const repo = await github.repo(process.env.GITHUB_TOKEN || '');
|
||||
expect(repo.name).not.toBeNull();
|
||||
});
|
||||
});
|
||||
@@ -1,4 +1,5 @@
|
||||
import {describe, expect, test} from '@jest/globals';
|
||||
|
||||
import {Transform, Image} from '../src/image';
|
||||
|
||||
describe('transform', () => {
|
||||
@@ -86,7 +87,7 @@ describe('transform', () => {
|
||||
[
|
||||
[`name/foo,name=name/bar,enable=true`], undefined, true
|
||||
]
|
||||
])('given %p', async (l: string[], expected: Image[], invalid: boolean) => {
|
||||
])('given %p', async (l: string[], expected: Image[] | undefined, invalid: boolean) => {
|
||||
try {
|
||||
const images = Transform(l);
|
||||
expect(images).toEqual(expected);
|
||||
|
||||
+2036
-808
File diff suppressed because it is too large.
Load diff
+35
-4
@@ -1,4 +1,5 @@
|
||||
import {describe, expect, test} from '@jest/globals';
|
||||
|
||||
import {Transform, Parse, Tag, Type, RefEvent, ShaFormat, DefaultPriorities} from '../src/tag';
|
||||
|
||||
describe('transform', () => {
|
||||
@@ -31,7 +32,8 @@ describe('transform', () => {
|
||||
"priority": DefaultPriorities[Type.Semver],
|
||||
"enable": "true",
|
||||
"pattern": "{{version}}",
|
||||
"value": ""
|
||||
"value": "",
|
||||
"match": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -126,6 +128,18 @@ describe('parse', () => {
|
||||
} as Tag,
|
||||
false
|
||||
],
|
||||
[
|
||||
`type=schedule,enable=true,pattern={{date 'YYYYMMDD' tz='Asia/Tokyo'}}`,
|
||||
{
|
||||
type: Type.Schedule,
|
||||
attrs: {
|
||||
"priority": DefaultPriorities[Type.Schedule],
|
||||
"enable": "true",
|
||||
"pattern": `{{date 'YYYYMMDD' tz='Asia/Tokyo'}}`
|
||||
}
|
||||
} as Tag,
|
||||
false
|
||||
],
|
||||
[
|
||||
`type=semver,enable=true,pattern={{version}}`,
|
||||
{
|
||||
@@ -134,7 +148,8 @@ describe('parse', () => {
|
||||
"priority": DefaultPriorities[Type.Semver],
|
||||
"enable": "true",
|
||||
"pattern": "{{version}}",
|
||||
"value": ""
|
||||
"value": "",
|
||||
"match": ""
|
||||
}
|
||||
} as Tag,
|
||||
false
|
||||
@@ -147,7 +162,8 @@ describe('parse', () => {
|
||||
"priority": "1",
|
||||
"enable": "true",
|
||||
"pattern": "{{version}}",
|
||||
"value": ""
|
||||
"value": "",
|
||||
"match": ""
|
||||
}
|
||||
} as Tag,
|
||||
false
|
||||
@@ -160,7 +176,22 @@ describe('parse', () => {
|
||||
"priority": "1",
|
||||
"enable": "true",
|
||||
"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,
|
||||
false
|
||||
|
||||
+24
-4
@@ -7,9 +7,13 @@ branding:
|
||||
color: 'blue'
|
||||
|
||||
inputs:
|
||||
context:
|
||||
description: 'Where to get context data. Allowed options are "workflow" (default), "git".'
|
||||
default: "workflow"
|
||||
required: true
|
||||
images:
|
||||
description: 'List of Docker images to use as base name for tags'
|
||||
required: true
|
||||
required: false
|
||||
tags:
|
||||
description: 'List of tags as key-value pair attributes'
|
||||
required: false
|
||||
@@ -19,12 +23,18 @@ inputs:
|
||||
labels:
|
||||
description: 'List of custom labels'
|
||||
required: false
|
||||
annotations:
|
||||
description: 'List of custom annotations'
|
||||
required: false
|
||||
sep-tags:
|
||||
description: 'Separator to use for tags output (default \n)'
|
||||
required: false
|
||||
sep-labels:
|
||||
description: 'Separator to use for labels output (default \n)'
|
||||
required: false
|
||||
sep-annotations:
|
||||
description: 'Separator to use for annotations output (default \n)'
|
||||
required: false
|
||||
bake-target:
|
||||
description: 'Bake target name (default docker-metadata-action)'
|
||||
required: false
|
||||
@@ -38,13 +48,23 @@ outputs:
|
||||
description: 'Generated Docker image version'
|
||||
tags:
|
||||
description: 'Generated Docker tags'
|
||||
tag-names:
|
||||
description: 'Generated Docker tag names without image base name'
|
||||
labels:
|
||||
description: 'Generated Docker labels'
|
||||
bake-file:
|
||||
description: 'Bake definiton file'
|
||||
annotations:
|
||||
description: 'Generated annotations'
|
||||
json:
|
||||
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:
|
||||
using: 'node16'
|
||||
using: 'node20'
|
||||
main: 'dist/index.js'
|
||||
+30
-21
@@ -1,13 +1,20 @@
|
||||
# syntax=docker/dockerfile:1
|
||||
|
||||
ARG NODE_VERSION=16
|
||||
ARG NODE_VERSION=20
|
||||
|
||||
FROM node:${NODE_VERSION}-alpine AS base
|
||||
RUN apk add --no-cache cpio findutils git
|
||||
WORKDIR /src
|
||||
RUN --mount=type=bind,target=.,rw \
|
||||
--mount=type=cache,target=/src/.yarn/cache <<EOT
|
||||
corepack enable
|
||||
yarn --version
|
||||
yarn config set --home enableTelemetry 0
|
||||
EOT
|
||||
|
||||
FROM base AS deps
|
||||
RUN --mount=type=bind,target=.,rw \
|
||||
--mount=type=cache,target=/src/.yarn/cache \
|
||||
--mount=type=cache,target=/src/node_modules \
|
||||
yarn install && mkdir /vendor && cp yarn.lock /vendor
|
||||
|
||||
@@ -16,18 +23,19 @@ COPY --from=deps /vendor /
|
||||
|
||||
FROM deps AS vendor-validate
|
||||
RUN --mount=type=bind,target=.,rw <<EOT
|
||||
set -e
|
||||
git add -A
|
||||
cp -rf /vendor/* .
|
||||
if [ -n "$(git status --porcelain -- yarn.lock)" ]; then
|
||||
echo >&2 'ERROR: Vendor result differs. Please vendor your package with "docker buildx bake vendor-update"'
|
||||
git status --porcelain -- yarn.lock
|
||||
exit 1
|
||||
fi
|
||||
set -e
|
||||
git add -A
|
||||
cp -rf /vendor/* .
|
||||
if [ -n "$(git status --porcelain -- yarn.lock)" ]; then
|
||||
echo >&2 'ERROR: Vendor result differs. Please vendor your package with "docker buildx bake vendor"'
|
||||
git status --porcelain -- yarn.lock
|
||||
exit 1
|
||||
fi
|
||||
EOT
|
||||
|
||||
FROM deps AS build
|
||||
RUN --mount=type=bind,target=.,rw \
|
||||
--mount=type=cache,target=/src/.yarn/cache \
|
||||
--mount=type=cache,target=/src/node_modules \
|
||||
yarn run build && mkdir /out && cp -Rf dist /out/
|
||||
|
||||
@@ -36,36 +44,37 @@ COPY --from=build /out /
|
||||
|
||||
FROM build AS build-validate
|
||||
RUN --mount=type=bind,target=.,rw <<EOT
|
||||
set -e
|
||||
git add -A
|
||||
cp -rf /out/* .
|
||||
if [ -n "$(git status --porcelain -- dist)" ]; then
|
||||
echo >&2 'ERROR: Build result differs. Please build first with "docker buildx bake build"'
|
||||
git status --porcelain -- dist
|
||||
exit 1
|
||||
fi
|
||||
set -e
|
||||
git add -A
|
||||
cp -rf /out/* .
|
||||
if [ -n "$(git status --porcelain -- dist)" ]; then
|
||||
echo >&2 'ERROR: Build result differs. Please build first with "docker buildx bake build"'
|
||||
git status --porcelain -- dist
|
||||
exit 1
|
||||
fi
|
||||
EOT
|
||||
|
||||
FROM deps AS format
|
||||
RUN --mount=type=bind,target=.,rw \
|
||||
--mount=type=cache,target=/src/.yarn/cache \
|
||||
--mount=type=cache,target=/src/node_modules \
|
||||
yarn run format \
|
||||
&& mkdir /out && find . -name '*.ts' -not -path './node_modules/*' | cpio -pdm /out
|
||||
&& mkdir /out && find . -name '*.ts' -not -path './node_modules/*' -not -path './.yarn/*' | cpio -pdm /out
|
||||
|
||||
FROM scratch AS format-update
|
||||
COPY --from=format /out /
|
||||
|
||||
FROM deps AS lint
|
||||
RUN --mount=type=bind,target=.,rw \
|
||||
--mount=type=cache,target=/src/.yarn/cache \
|
||||
--mount=type=cache,target=/src/node_modules \
|
||||
yarn run lint
|
||||
|
||||
FROM deps AS test
|
||||
ENV RUNNER_TEMP=/tmp/github_runner
|
||||
ENV RUNNER_TOOL_CACHE=/tmp/github_tool_cache
|
||||
RUN --mount=type=bind,target=.,rw \
|
||||
--mount=type=cache,target=/src/.yarn/cache \
|
||||
--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
|
||||
COPY --from=test /tmp/coverage /
|
||||
+300
@@ -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
|
||||
+1
@@ -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
|
||||
+148
-13
@@ -1,60 +1,195 @@
|
||||
require('./sourcemap-register.js');(()=>{var __webpack_modules__={7351:function(t,a,r){"use strict";var d=this&&this.__createBinding||(Object.create?function(t,a,r,d){if(d===undefined)d=r;Object.defineProperty(t,d,{enumerable:true,get:function(){return a[r]}})}:function(t,a,r,d){if(d===undefined)d=r;t[d]=a[r]});var i=this&&this.__setModuleDefault||(Object.create?function(t,a){Object.defineProperty(t,"default",{enumerable:true,value:a})}:function(t,a){t["default"]=a});var o=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var a={};if(t!=null)for(var r in t)if(r!=="default"&&Object.hasOwnProperty.call(t,r))d(a,t,r);i(a,t);return a};Object.defineProperty(a,"__esModule",{value:true});a.issue=a.issueCommand=void 0;const p=o(r(2037));const u=r(5278);function issueCommand(t,a,r){const d=new Command(t,a,r);process.stdout.write(d.toString()+p.EOL)}a.issueCommand=issueCommand;function issue(t,a=""){issueCommand(t,{},a)}a.issue=issue;const l="::";class Command{constructor(t,a,r){if(!t){t="missing.command"}this.command=t;this.properties=a;this.message=r}toString(){let t=l+this.command;if(this.properties&&Object.keys(this.properties).length>0){t+=" ";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{t+=","}t+=`${r}=${escapeProperty(d)}`}}}}t+=`${l}${escapeData(this.message)}`;return t}}function escapeData(t){return u.toCommandValue(t).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function escapeProperty(t){return u.toCommandValue(t).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}},2186:function(t,a,r){"use strict";var d=this&&this.__createBinding||(Object.create?function(t,a,r,d){if(d===undefined)d=r;Object.defineProperty(t,d,{enumerable:true,get:function(){return a[r]}})}:function(t,a,r,d){if(d===undefined)d=r;t[d]=a[r]});var i=this&&this.__setModuleDefault||(Object.create?function(t,a){Object.defineProperty(t,"default",{enumerable:true,value:a})}:function(t,a){t["default"]=a});var o=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var a={};if(t!=null)for(var r in t)if(r!=="default"&&Object.hasOwnProperty.call(t,r))d(a,t,r);i(a,t);return a};var p=this&&this.__awaiter||function(t,a,r,d){function adopt(t){return t instanceof r?t:new r((function(a){a(t)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(t){try{step(d.next(t))}catch(t){i(t)}}function rejected(t){try{step(d["throw"](t))}catch(t){i(t)}}function step(t){t.done?r(t.value):adopt(t.value).then(fulfilled,rejected)}step((d=d.apply(t,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 u=r(7351);const l=r(717);const c=r(5278);const m=o(r(2037));const h=o(r(1017));const v=r(8041);var g;(function(t){t[t["Success"]=0]="Success";t[t["Failure"]=1]="Failure"})(g=a.ExitCode||(a.ExitCode={}));function exportVariable(t,a){const r=c.toCommandValue(a);process.env[t]=r;const d=process.env["GITHUB_ENV"]||"";if(d){return l.issueFileCommand("ENV",l.prepareKeyValueMessage(t,a))}u.issueCommand("set-env",{name:t},r)}a.exportVariable=exportVariable;function setSecret(t){u.issueCommand("add-mask",{},t)}a.setSecret=setSecret;function addPath(t){const a=process.env["GITHUB_PATH"]||"";if(a){l.issueFileCommand("PATH",t)}else{u.issueCommand("add-path",{},t)}process.env["PATH"]=`${t}${h.delimiter}${process.env["PATH"]}`}a.addPath=addPath;function getInput(t,a){const r=process.env[`INPUT_${t.replace(/ /g,"_").toUpperCase()}`]||"";if(a&&a.required&&!r){throw new Error(`Input required and not supplied: ${t}`)}if(a&&a.trimWhitespace===false){return r}return r.trim()}a.getInput=getInput;function getMultilineInput(t,a){const r=getInput(t,a).split("\n").filter((t=>t!==""));if(a&&a.trimWhitespace===false){return r}return r.map((t=>t.trim()))}a.getMultilineInput=getMultilineInput;function getBooleanInput(t,a){const r=["true","True","TRUE"];const d=["false","False","FALSE"];const i=getInput(t,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: ${t}\n`+`Support boolean input list: \`true | True | TRUE | false | False | FALSE\``)}a.getBooleanInput=getBooleanInput;function setOutput(t,a){const r=process.env["GITHUB_OUTPUT"]||"";if(r){return l.issueFileCommand("OUTPUT",l.prepareKeyValueMessage(t,a))}process.stdout.write(m.EOL);u.issueCommand("set-output",{name:t},c.toCommandValue(a))}a.setOutput=setOutput;function setCommandEcho(t){u.issue("echo",t?"on":"off")}a.setCommandEcho=setCommandEcho;function setFailed(t){process.exitCode=g.Failure;error(t)}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>
|
||||
*
|
||||
* Copyright (c) 2014-2017, Jon Schlinkert.
|
||||
* Released under the MIT License.
|
||||
*/function isObject(t){return Object.prototype.toString.call(t)==="[object Object]"}function isPlainObject(t){var a,r;if(isObject(t)===false)return false;a=t.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},7129:(t,a,r)=>{"use strict";const d=r(665);const i=Symbol("max");const o=Symbol("length");const p=Symbol("lengthCalculator");const u=Symbol("allowStale");const l=Symbol("maxAge");const c=Symbol("dispose");const m=Symbol("noDisposeOnSet");const h=Symbol("lruList");const v=Symbol("cache");const g=Symbol("updateAgeOnGet");const naiveLength=()=>1;class LRUCache{constructor(t){if(typeof t==="number")t={max:t};if(!t)t={};if(t.max&&(typeof t.max!=="number"||t.max<0))throw new TypeError("max must be a non-negative number");const a=this[i]=t.max||Infinity;const r=t.length||naiveLength;this[p]=typeof r!=="function"?naiveLength:r;this[u]=t.stale||false;if(t.maxAge&&typeof t.maxAge!=="number")throw new TypeError("maxAge must be a number");this[l]=t.maxAge||0;this[c]=t.dispose;this[m]=t.noDisposeOnSet||false;this[g]=t.updateAgeOnGet||false;this.reset()}set max(t){if(typeof t!=="number"||t<0)throw new TypeError("max must be a non-negative number");this[i]=t||Infinity;trim(this)}get max(){return this[i]}set allowStale(t){this[u]=!!t}get allowStale(){return this[u]}set maxAge(t){if(typeof t!=="number")throw new TypeError("maxAge must be a non-negative number");this[l]=t;trim(this)}get maxAge(){return this[l]}set lengthCalculator(t){if(typeof t!=="function")t=naiveLength;if(t!==this[p]){this[p]=t;this[o]=0;this[h].forEach((t=>{t.length=this[p](t.value,t.key);this[o]+=t.length}))}trim(this)}get lengthCalculator(){return this[p]}get length(){return this[o]}get itemCount(){return this[h].length}rforEach(t,a){a=a||this;for(let r=this[h].tail;r!==null;){const d=r.prev;forEachStep(this,t,r,a);r=d}}forEach(t,a){a=a||this;for(let r=this[h].head;r!==null;){const d=r.next;forEachStep(this,t,r,a);r=d}}keys(){return this[h].toArray().map((t=>t.key))}values(){return this[h].toArray().map((t=>t.value))}reset(){if(this[c]&&this[h]&&this[h].length){this[h].forEach((t=>this[c](t.key,t.value)))}this[v]=new Map;this[h]=new d;this[o]=0}dump(){return this[h].map((t=>isStale(this,t)?false:{k:t.key,v:t.value,e:t.now+(t.maxAge||0)})).toArray().filter((t=>t))}dumpLru(){return this[h]}set(t,a,r){r=r||this[l];if(r&&typeof r!=="number")throw new TypeError("maxAge must be a number");const d=r?Date.now():0;const u=this[p](a,t);if(this[v].has(t)){if(u>this[i]){del(this,this[v].get(t));return false}const p=this[v].get(t);const l=p.value;if(this[c]){if(!this[m])this[c](t,l.value)}l.now=d;l.maxAge=r;l.value=a;this[o]+=u-l.length;l.length=u;this.get(t);trim(this);return true}const g=new Entry(t,a,u,d,r);if(g.length>this[i]){if(this[c])this[c](t,a);return false}this[o]+=g.length;this[h].unshift(g);this[v].set(t,this[h].head);trim(this);return true}has(t){if(!this[v].has(t))return false;const a=this[v].get(t).value;return!isStale(this,a)}get(t){return get(this,t,true)}peek(t){return get(this,t,false)}pop(){const t=this[h].tail;if(!t)return null;del(this,t);return t.value}del(t){del(this,this[v].get(t))}load(t){this.reset();const a=Date.now();for(let r=t.length-1;r>=0;r--){const d=t[r];const i=d.e||0;if(i===0)this.set(d.k,d.v);else{const t=i-a;if(t>0){this.set(d.k,d.v,t)}}}}prune(){this[v].forEach(((t,a)=>get(this,a,false)))}}const get=(t,a,r)=>{const d=t[v].get(a);if(d){const a=d.value;if(isStale(t,a)){del(t,d);if(!t[u])return undefined}else{if(r){if(t[g])d.value.now=Date.now();t[h].unshiftNode(d)}}return a.value}};const isStale=(t,a)=>{if(!a||!a.maxAge&&!t[l])return false;const r=Date.now()-a.now;return a.maxAge?r>a.maxAge:t[l]&&r>t[l]};const trim=t=>{if(t[o]>t[i]){for(let a=t[h].tail;t[o]>t[i]&&a!==null;){const r=a.prev;del(t,a);a=r}}};const del=(t,a)=>{if(a){const r=a.value;if(t[c])t[c](r.key,r.value);t[o]-=r.length;t[v].delete(r.key);t[h].removeNode(a)}};class Entry{constructor(t,a,r,d,i){this.key=t;this.value=a;this.length=r;this.now=d;this.maxAge=i||0}}const forEachStep=(t,a,r,d)=>{let i=r.value;if(isStale(t,i)){del(t,r);if(!t[u])i=undefined}if(i)a.call(d,i.value,i.key,t)};t.exports=LRUCache},9623:function(t,a,r){t=r.nmd(t);
|
||||
*/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
|
||||
//! version : 0.6.0
|
||||
//! Copyright (c) JS Foundation and other contributors
|
||||
//! license : MIT
|
||||
//! github.com/moment/moment-timezone
|
||||
(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
|
||||
//! version : 2.29.4
|
||||
//! version : 2.30.1
|
||||
//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
|
||||
//! license : MIT
|
||||
//! momentjs.com
|
||||
(function(a,r){true?t.exports=r():0})(this,(function(){"use strict";var a;function hooks(){return a.apply(null,arguments)}function setHookCallback(t){a=t}function isArray(t){return t instanceof Array||Object.prototype.toString.call(t)==="[object Array]"}function isObject(t){return t!=null&&Object.prototype.toString.call(t)==="[object Object]"}function hasOwnProp(t,a){return Object.prototype.hasOwnProperty.call(t,a)}function isObjectEmpty(t){if(Object.getOwnPropertyNames){return Object.getOwnPropertyNames(t).length===0}else{var a;for(a in t){if(hasOwnProp(t,a)){return false}}return true}}function isUndefined(t){return t===void 0}function isNumber(t){return typeof t==="number"||Object.prototype.toString.call(t)==="[object Number]"}function isDate(t){return t instanceof Date||Object.prototype.toString.call(t)==="[object Date]"}function map(t,a){var r=[],d,i=t.length;for(d=0;d<i;++d){r.push(a(t[d],d))}return r}function extend(t,a){for(var r in a){if(hasOwnProp(a,r)){t[r]=a[r]}}if(hasOwnProp(a,"toString")){t.toString=a.toString}if(hasOwnProp(a,"valueOf")){t.valueOf=a.valueOf}return t}function createUTC(t,a,r,d){return createLocalOrUTC(t,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(t){if(t._pf==null){t._pf=defaultParsingFlags()}return t._pf}var r;if(Array.prototype.some){r=Array.prototype.some}else{r=function(t){var a=Object(this),r=a.length>>>0,d;for(d=0;d<r;d++){if(d in a&&t.call(this,a[d],d,a)){return true}}return false}}function isValid(t){if(t._isValid==null){var a=getParsingFlags(t),d=r.call(a.parsedDateParts,(function(t){return t!=null})),i=!isNaN(t._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(t._strict){i=i&&a.charsLeftOver===0&&a.unusedTokens.length===0&&a.bigHour===undefined}if(Object.isFrozen==null||!Object.isFrozen(t)){t._isValid=i}else{return i}}return t._isValid}function createInvalid(t){var a=createUTC(NaN);if(t!=null){extend(getParsingFlags(a),t)}else{getParsingFlags(a).userInvalidated=true}return a}var d=hooks.momentProperties=[],i=false;function copyConfig(t,a){var r,i,o,p=d.length;if(!isUndefined(a._isAMomentObject)){t._isAMomentObject=a._isAMomentObject}if(!isUndefined(a._i)){t._i=a._i}if(!isUndefined(a._f)){t._f=a._f}if(!isUndefined(a._l)){t._l=a._l}if(!isUndefined(a._strict)){t._strict=a._strict}if(!isUndefined(a._tzm)){t._tzm=a._tzm}if(!isUndefined(a._isUTC)){t._isUTC=a._isUTC}if(!isUndefined(a._offset)){t._offset=a._offset}if(!isUndefined(a._pf)){t._pf=getParsingFlags(a)}if(!isUndefined(a._locale)){t._locale=a._locale}if(p>0){for(r=0;r<p;r++){i=d[r];o=a[i];if(!isUndefined(o)){t[i]=o}}}return t}function Moment(t){copyConfig(this,t);this._d=new Date(t._d!=null?t._d.getTime():NaN);if(!this.isValid()){this._d=new Date(NaN)}if(i===false){i=true;hooks.updateOffset(this);i=false}}function isMoment(t){return t instanceof Moment||t!=null&&t._isAMomentObject!=null}function warn(t){if(hooks.suppressDeprecationWarnings===false&&typeof console!=="undefined"&&console.warn){console.warn("Deprecation warning: "+t)}}function deprecate(t,a){var r=true;return extend((function(){if(hooks.deprecationHandler!=null){hooks.deprecationHandler(null,t)}if(r){var d=[],i,o,p,u=arguments.length;for(o=0;o<u;o++){i="";if(typeof arguments[o]==="object"){i+="\n["+o+"] ";for(p in arguments[0]){if(hasOwnProp(arguments[0],p)){i+=p+": "+arguments[0][p]+", "}}i=i.slice(0,-2)}else{i=arguments[o]}d.push(i)}warn(t+"\nArguments: "+Array.prototype.slice.call(d).join("")+"\n"+(new Error).stack);r=false}return a.apply(this,arguments)}),a)}var o={};function deprecateSimple(t,a){if(hooks.deprecationHandler!=null){hooks.deprecationHandler(t,a)}if(!o[t]){warn(a);o[t]=true}}hooks.suppressDeprecationWarnings=false;hooks.deprecationHandler=null;function isFunction(t){return typeof Function!=="undefined"&&t instanceof Function||Object.prototype.toString.call(t)==="[object Function]"}function set(t){var a,r;for(r in t){if(hasOwnProp(t,r)){a=t[r];if(isFunction(a)){this[r]=a}else{this["_"+r]=a}}}this._config=t;this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)}function mergeConfigs(t,a){var r=extend({},t),d;for(d in a){if(hasOwnProp(a,d)){if(isObject(t[d])&&isObject(a[d])){r[d]={};extend(r[d],t[d]);extend(r[d],a[d])}else if(a[d]!=null){r[d]=a[d]}else{delete r[d]}}}for(d in t){if(hasOwnProp(t,d)&&!hasOwnProp(a,d)&&isObject(t[d])){r[d]=extend({},r[d])}}return r}function Locale(t){if(t!=null){this.set(t)}}var p;if(Object.keys){p=Object.keys}else{p=function(t){var a,r=[];for(a in t){if(hasOwnProp(t,a)){r.push(a)}}return r}}var u={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
|
||||
hooks.version="2.29.4";setHookCallback(createLocal);hooks.fn=We;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=We;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:(t,a,r)=>{"use strict";Object.defineProperty(a,"__esModule",{value:true});function _interopDefault(t){return t&&typeof t==="object"&&"default"in t?t["default"]:t}var d=_interopDefault(r(2781));var i=_interopDefault(r(3685));var o=_interopDefault(r(7310));var p=_interopDefault(r(3323));var u=_interopDefault(r(5687));var l=_interopDefault(r(9796));const c=d.Readable;const m=Symbol("buffer");const h=Symbol("type");class Blob{constructor(){this[h]="";const t=arguments[0];const a=arguments[1];const r=[];let d=0;if(t){const a=t;const i=Number(a.length);for(let t=0;t<i;t++){const i=a[t];let o;if(i instanceof Buffer){o=i}else if(ArrayBuffer.isView(i)){o=Buffer.from(i.buffer,i.byteOffset,i.byteLength)}else if(i instanceof ArrayBuffer){o=Buffer.from(i)}else if(i instanceof Blob){o=i[m]}else{o=Buffer.from(typeof i==="string"?i:String(i))}d+=o.length;r.push(o)}}this[m]=Buffer.concat(r);let i=a&&a.type!==undefined&&String(a.type).toLowerCase();if(i&&!/[^\u0020-\u007E]/.test(i)){this[h]=i}}get size(){return this[m].length}get type(){return this[h]}text(){return Promise.resolve(this[m].toString())}arrayBuffer(){const t=this[m];const a=t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength);return Promise.resolve(a)}stream(){const t=new c;t._read=function(){};t.push(this[m]);t.push(null);return t}toString(){return"[object Blob]"}slice(){const t=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(t+a,0)}else{d=Math.min(a,t)}if(r===undefined){i=t}else if(r<0){i=Math.max(t+r,0)}else{i=Math.min(r,t)}const o=Math.max(i-d,0);const p=this[m];const u=p.slice(d,d+o);const l=new Blob([],{type:arguments[2]});l[m]=u;return l}}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(t,a,r){Error.call(this,t);this.message=t;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 v;try{v=r(2877).convert}catch(t){}const g=Symbol("Body internals");const _=d.PassThrough;function Body(t){var a=this;var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},i=r.size;let o=i===undefined?0:i;var p=r.timeout;let u=p===undefined?0:p;if(t==null){t=null}else if(isURLSearchParams(t)){t=Buffer.from(t.toString())}else if(isBlob(t));else if(Buffer.isBuffer(t));else if(Object.prototype.toString.call(t)==="[object ArrayBuffer]"){t=Buffer.from(t)}else if(ArrayBuffer.isView(t)){t=Buffer.from(t.buffer,t.byteOffset,t.byteLength)}else if(t instanceof d);else{t=Buffer.from(String(t))}this[g]={body:t,disturbed:false,error:null};this.size=o;this.timeout=u;if(t instanceof d){t.on("error",(function(t){const r=t.name==="AbortError"?t:new FetchError(`Invalid response body while trying to fetch ${a.url}: ${t.message}`,"system",t);a[g].error=r}))}}Body.prototype={get body(){return this[g].body},get bodyUsed(){return this[g].disturbed},arrayBuffer(){return consumeBody.call(this).then((function(t){return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}))},blob(){let t=this.headers&&this.headers.get("content-type")||"";return consumeBody.call(this).then((function(a){return Object.assign(new Blob([],{type:t.toLowerCase()}),{[m]:a})}))},json(){var t=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 ${t.url} reason: ${a.message}`,"invalid-json"))}}))},text(){return consumeBody.call(this).then((function(t){return t.toString()}))},buffer(){return consumeBody.call(this)},textConverted(){var t=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
|
||||
*
|
||||
* Copyright (c) 2011-2017 KARASZI Istvan <github@spam.raszi.hu>
|
||||
*
|
||||
* MIT Licensed
|
||||
*/
|
||||
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.com>
|
||||
* Steven Levithan (c) 2012-present MIT License
|
||||
*/var c=function _default(t){var a="xregexp";var r=/(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*\]/g;var d=t.union([/\({{([\w$]+)}}\)|{{([\w$]+)}}/,r],"g",{conjunction:"or"});function deanchor(t){var a=/^(?:\(\?:\))*\^/;var r=/\$(?:\(\?:\))*$/;if(a.test(t)&&r.test(t)&&r.test(t.replace(/\\[\s\S]/g,""))){return t.replace(a,"").replace(r,"")}return t}function asXRegExp(r,d){var i=d?"x":"";return t.isRegExp(r)?r[a]&&r[a].captureNames?r:t(r.source,i):t(r,i)}function interpolate(a){return a instanceof RegExp?a:t.escape(a)}function reduceToSubpatternsObject(t,a,r){t["subpattern".concat(r)]=a;return t}function embedSubpatternAfter(t,a,r){var d=a<r.length-1;return t+(d?"{{subpattern".concat(a,"}}"):"")}t.tag=function(a){return function(r){var d,i;for(var o=arguments.length,p=new Array(o>1?o-1:0),c=1;c<o;c++){p[c-1]=arguments[c]}var m=(0,l["default"])(d=(0,u["default"])(p).call(p,interpolate)).call(d,reduceToSubpatternsObject,{});var h=(0,u["default"])(i=r.raw).call(i,embedSubpatternAfter).join("");return t.build(h,m,a)}};t.build=function(i,u,l){l=l||"";var c=(0,p["default"])(l).call(l,"x");var m=/^\(\?([\w$]+)\)/.exec(i);if(m){l=t._clipDuplicates(l+m[1])}var h={};for(var v in u){if(u.hasOwnProperty(v)){var g=asXRegExp(u[v],c);h[v]={pattern:deanchor(g.source),names:g[a].captureNames||[]}}}var _=asXRegExp(i,c);var b=0;var w;var y=0;var S=[0];var E=_[a].captureNames||[];var T=_.source.replace(d,(function(t,a,d,i,p){var u=a||d;var l;var c;var m;if(u){var v;if(!h.hasOwnProperty(u)){throw new ReferenceError("Undefined property ".concat(t))}if(a){l=E[y];S[++y]=++b;c="(?<".concat(l||u,">")}else{c="(?:"}w=b;var g=h[u].pattern.replace(r,(function(t,a,r){if(a){l=h[u].names[b-w];++b;if(l){return"(?<".concat(l,">")}}else if(r){m=+r-1;return h[u].names[m]?"\\k<".concat(h[u].names[m],">"):"\\".concat(+r+w)}return t}));return(0,o["default"])(v="".concat(c)).call(v,g,")")}if(i){l=E[y];S[++y]=++b;if(l){return"(?<".concat(l,">")}}else if(p){m=+p-1;return E[m]?"\\k<".concat(E[m],">"):"\\".concat(S[+p])}return t}));return t(T,l)}};a["default"]=c;t.exports=a.default},4811:(t,a,r)=>{"use strict";var d=r(515);var i=r(4218);i(a,"__esModule",{value:true});a["default"]=void 0;var o=d(r(9188));var p=d(r(466));var u=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.com>
|
||||
* Steven Levithan (c) 2009-present MIT License
|
||||
*/var l=function _default(t){function row(t,a,r,d){return{name:t,value:a,start:r,end:d}}t.matchRecursive=function(a,r,d,i,l){i=i||"";l=l||{};var c=(0,u["default"])(i).call(i,"g");var m=(0,u["default"])(i).call(i,"y");var h=i.replace(/y/g,"");var v=l,g=v.escapeChar;var _=l.valueNames;var b=[];var w=0;var y=0;var S=0;var E=0;var T;var k;var O;var P;var x;r=t(r,h);d=t(d,h);if(g){var D,A;if(g.length>1){throw new Error("Cannot use more than one escape character")}g=t.escape(g);x=new RegExp((0,p["default"])(D=(0,p["default"])(A="(?:".concat(g,"[\\S\\s]|(?:(?!")).call(A,t.union([r,d],"",{conjunction:"or"}).source,")[^")).call(D,g,"])+)+"),i.replace(/[^imu]+/g,""))}while(true){if(g){S+=(t.exec(a,x,S,"sticky")||[""])[0].length}O=t.exec(a,r,S);P=t.exec(a,d,S);if(O&&P){if(O.index<=P.index){P=null}else{O=null}}if(O||P){y=(O||P).index;S=y+(O||P)[0].length}else if(!w){break}if(m&&!w&&y>E){break}if(O){if(!w){T=y;k=S}++w}else if(P&&w){if(!--w){if(_){if(_[0]&&T>E){b.push(row(_[0],(0,o["default"])(a).call(a,E,T),E,T))}if(_[1]){b.push(row(_[1],(0,o["default"])(a).call(a,T,k),T,k))}if(_[2]){b.push(row(_[2],(0,o["default"])(a).call(a,k,y),k,y))}if(_[3]){b.push(row(_[3],(0,o["default"])(a).call(a,y,S),y,S))}}else{b.push((0,o["default"])(a).call(a,k,y))}E=S;if(!c){break}}}else{throw new Error("Unbalanced delimiter found in string")}if(y===S){++S}}if(c&&!m&&_&&_[0]&&a.length>E){b.push(row(_[0],(0,o["default"])(a).call(a,E),E,a.length))}return b}};a["default"]=l;t.exports=a.default},3110:(t,a,r)=>{"use strict";var d=r(515);var i=r(4218);i(a,"__esModule",{value:true});a["default"]=void 0;var o=d(r(2038));var p=d(r(5401));var u=d(r(9640));var l=d(r(7652));var c=d(r(3361));var m=d(r(9188));var h=d(r(6611));var v=d(r(466));var g=d(r(669));function _createForOfIteratorHelper(t,a){var r;if(typeof l["default"]==="undefined"||(0,u["default"])(t)==null){if((0,p["default"])(t)||(r=_unsupportedIterableToArray(t))||a&&t&&typeof t.length==="number"){if(r)t=r;var d=0;var i=function F(){};return{s:i,n:function n(){if(d>=t.length)return{done:true};return{done:false,value:t[d++]}},e:function e(t){throw t},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 c=true,m=false,h;return{s:function s(){r=(0,o["default"])(t)},n:function n(){var t=r.next();c=t.done;return t},e:function e(t){m=true;h=t},f:function f(){try{if(!c&&r["return"]!=null)r["return"]()}finally{if(m)throw h}}}}function _unsupportedIterableToArray(t,a){var r;if(!t)return;if(typeof t==="string")return _arrayLikeToArray(t,a);var d=(0,m["default"])(r=Object.prototype.toString.call(t)).call(r,8,-1);if(d==="Object"&&t.constructor)d=t.constructor.name;if(d==="Map"||d==="Set")return(0,c["default"])(t);if(d==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(d))return _arrayLikeToArray(t,a)}function _arrayLikeToArray(t,a){if(a==null||a>t.length)a=t.length;for(var r=0,d=new Array(a);r<a;r++){d[r]=t[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.com>
|
||||
* Steven Levithan (c) 2008-present MIT License
|
||||
*/var _=function _default(t){var a={};var r=t._dec;var d=t._hex;var i=t._pad4;function normalize(t){return t.replace(/[- _]+/g,"").toLowerCase()}function charCode(t){var a=/^\\[xu](.+)/.exec(t);return a?r(a[1]):t.charCodeAt(t[0]==="\\"?1:0)}function invertBmp(a){var r="";var o=-1;(0,g["default"])(t).call(t,a,/(\\x..|\\u....|\\?[\s\S])(?:-(\\x..|\\u....|\\?[\s\S]))?/,(function(t){var a=charCode(t[1]);if(a>o+1){r+="\\u".concat(i(d(o+1)));if(a>o+2){r+="-\\u".concat(i(d(a-1)))}}o=charCode(t[2]||t[1])}));if(o<65535){r+="\\u".concat(i(d(o+1)));if(o<65534){r+="-\\uFFFF"}}return r}function cacheInvertedBmp(t){var r="b!";return a[t][r]||(a[t][r]=invertBmp(a[t].bmp))}function buildAstral(t,r){var d=a[t];var i="";if(d.bmp&&!d.isBmpLast){var o;i=(0,v["default"])(o="[".concat(d.bmp,"]")).call(o,d.astral?"|":"")}if(d.astral){i+=d.astral}if(d.isBmpLast&&d.bmp){var p;i+=(0,v["default"])(p="".concat(d.astral?"|":"","[")).call(p,d.bmp,"]")}return r?"(?:(?!".concat(i,")(?:[\ud800-\udbff][\udc00-\udfff]|[\0-]))"):"(?:".concat(i,")")}function cacheAstral(t,r){var d=r?"a!":"a=";return a[t][d]||(a[t][d]=buildAstral(t,r))}t.addToken(/\\([pP])(?:{(\^?)([^}]*)}|([A-Za-z]))/,(function(t,r,d){var i="Invalid double negation ";var o="Unknown Unicode token ";var p="Unicode token missing data ";var u="Astral mode required for Unicode token ";var l="Astral mode does not support Unicode tokens within character classes";var c=t[1]==="P"||!!t[2];var m=(0,h["default"])(d).call(d,"A");var g=normalize(t[4]||t[3]);var _=a[g];if(t[1]==="P"&&t[2]){throw new SyntaxError(i+t[0])}if(!a.hasOwnProperty(g)){throw new SyntaxError(o+t[0])}if(_.inverseOf){g=normalize(_.inverseOf);if(!a.hasOwnProperty(g)){var b;throw new ReferenceError((0,v["default"])(b="".concat(p+t[0]," -> ")).call(b,_.inverseOf))}_=a[g];c=!c}if(!(_.bmp||m)){throw new SyntaxError(u+t[0])}if(m){if(r==="class"){throw new SyntaxError(l)}return cacheAstral(g,c)}return r==="class"?c?cacheInvertedBmp(g):_.bmp:"".concat((c?"[^":"[")+_.bmp,"]")}),{scope:"all",optionalFlags:"A",leadChar:"\\"});t.addUnicodeData=function(r){var d="Unicode token requires name";var i="Unicode token has no character data ";var o=_createForOfIteratorHelper(r),p;try{for(o.s();!(p=o.n()).done;){var u=p.value;if(!u.name){throw new Error(d)}if(!(u.inverseOf||u.bmp||u.astral)){throw new Error(i+u.name)}a[normalize(u.name)]=u;if(u.alias){a[normalize(u.alias)]=u}}}catch(t){o.e(t)}finally{o.f()}t.cache.flush("patterns")};t._getUnicodeProperty=function(t){var r=normalize(t);return a[r]}};a["default"]=_;t.exports=a.default},4686:(t,a,r)=>{"use strict";var d=r(515);var i=r(4218);i(a,"__esModule",{value:true});a["default"]=void 0;var o=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.com>
|
||||
* Steven Levithan (c) 2010-present MIT License
|
||||
* Unicode data by Mathias Bynens <mathiasbynens.be>
|
||||
*/var p=function _default(t){if(!t.addUnicodeData){throw new ReferenceError("Unicode Base must be loaded before Unicode Blocks")}t.addUnicodeData(o["default"])};a["default"]=p;t.exports=a.default},1996:(t,a,r)=>{"use strict";var d=r(515);var i=r(4218);i(a,"__esModule",{value:true});a["default"]=void 0;var o=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.com>
|
||||
* Steven Levithan (c) 2010-present MIT License
|
||||
* Unicode data by Mathias Bynens <mathiasbynens.be>
|
||||
*/var p=function _default(t){if(!t.addUnicodeData){throw new ReferenceError("Unicode Base must be loaded before Unicode Categories")}t.addUnicodeData(o["default"])};a["default"]=p;t.exports=a.default},9250:(t,a,r)=>{"use strict";var d=r(515);var i=r(4218);i(a,"__esModule",{value:true});a["default"]=void 0;var o=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.com>
|
||||
* Steven Levithan (c) 2012-present MIT License
|
||||
* Unicode data by Mathias Bynens <mathiasbynens.be>
|
||||
*/var p=function _default(t){if(!t.addUnicodeData){throw new ReferenceError("Unicode Base must be loaded before Unicode Properties")}var a=o["default"];a.push({name:"Assigned",inverseOf:"Cn"});t.addUnicodeData(a)};a["default"]=p;t.exports=a.default},5715:(t,a,r)=>{"use strict";var d=r(515);var i=r(4218);i(a,"__esModule",{value:true});a["default"]=void 0;var o=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.com>
|
||||
* Steven Levithan (c) 2010-present MIT License
|
||||
* Unicode data by Mathias Bynens <mathiasbynens.be>
|
||||
*/var p=function _default(t){if(!t.addUnicodeData){throw new ReferenceError("Unicode Base must be loaded before Unicode Scripts")}t.addUnicodeData(o["default"])};a["default"]=p;t.exports=a.default},7750:(t,a,r)=>{"use strict";var d=r(515);var i=r(4218);i(a,"__esModule",{value:true});a["default"]=void 0;var o=d(r(8612));var p=d(r(380));var u=d(r(4811));var l=d(r(3110));var c=d(r(4686));var m=d(r(1996));var h=d(r(9250));var v=d(r(5715));(0,p["default"])(o["default"]);(0,u["default"])(o["default"]);(0,l["default"])(o["default"]);(0,c["default"])(o["default"]);(0,m["default"])(o["default"]);(0,h["default"])(o["default"]);(0,v["default"])(o["default"]);var g=o["default"];a["default"]=g;t.exports=a.default},8612:(t,a,r)=>{"use strict";var d=r(515);var i=r(4218);i(a,"__esModule",{value:true});a["default"]=void 0;var o=d(r(2038));var p=d(r(5401));var u=d(r(9640));var l=d(r(7652));var c=d(r(3361));var m=d(r(466));var h=d(r(3781));var v=d(r(6761));var g=d(r(8135));var _=d(r(669));var b=d(r(6611));var w=d(r(1308));var y=d(r(9188));var S=d(r(8979));var E=d(r(3046));function _createForOfIteratorHelper(t,a){var r;if(typeof l["default"]==="undefined"||(0,u["default"])(t)==null){if((0,p["default"])(t)||(r=_unsupportedIterableToArray(t))||a&&t&&typeof t.length==="number"){if(r)t=r;var d=0;var i=function F(){};return{s:i,n:function n(){if(d>=t.length)return{done:true};return{done:false,value:t[d++]}},e:function e(t){throw t},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 c=true,m=false,h;return{s:function s(){r=(0,o["default"])(t)},n:function n(){var t=r.next();c=t.done;return t},e:function e(t){m=true;h=t},f:function f(){try{if(!c&&r["return"]!=null)r["return"]()}finally{if(m)throw h}}}}function _unsupportedIterableToArray(t,a){var r;if(!t)return;if(typeof t==="string")return _arrayLikeToArray(t,a);var d=(0,y["default"])(r=Object.prototype.toString.call(t)).call(r,8,-1);if(d==="Object"&&t.constructor)d=t.constructor.name;if(d==="Map"||d==="Set")return(0,c["default"])(t);if(d==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(d))return _arrayLikeToArray(t,a)}function _arrayLikeToArray(t,a){if(a==null||a>t.length)a=t.length;for(var r=0,d=new Array(a);r<a;r++){d[r]=t[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.com>
|
||||
* Steven Levithan (c) 2007-present MIT License
|
||||
*/var T="xregexp";var k={astral:false,namespacing:false};var O={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split};var P={};var x={};var D={};var A=[];var N="default";var R="class";var C={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 I=/\$(?:{([\w$]+)}|<([\w$]+)>|(\d\d?|[\s\S]))/g;var L=O.exec.call(/()??/,"")[1]===undefined;var M=(0,E["default"])(/x/)!==undefined;var G={},V=G.toString;function hasNativeFlag(t){var a=true;try{new RegExp("",t);if(t==="y"){var r=function(){return"gy"}();var d=".a".replace(new RegExp("a",r),".")==="..";if(d){a=false}}}catch(t){a=false}return a}var U=hasNativeFlag("u");var j=hasNativeFlag("y");var B={g:true,i:true,m:true,u:U,y:j};function augment(t,a,r,d,i){var o;t[T]={captureNames:a};if(i){return t}if(t.__proto__){t.__proto__=XRegExp.prototype}else{for(var p in XRegExp.prototype){t[p]=XRegExp.prototype[p]}}t[T].source=r;t[T].flags=d?(0,S["default"])(o=d.split("")).call(o).join(""):d;return t}function clipDuplicates(t){return O.replace.call(t,/([\s\S])(?=[\s\S]*\1)/g,"")}function copyRegex(t,a){var r;if(!XRegExp.isRegExp(t)){throw new TypeError("Type RegExp expected")}var d=t[T]||{};var i=getNativeFlags(t);var o="";var p="";var u=null;var l=null;a=a||{};if(a.removeG){p+="g"}if(a.removeY){p+="y"}if(p){i=O.replace.call(i,new RegExp("[".concat(p,"]+"),"g"),"")}if(a.addG){o+="g"}if(a.addY){o+="y"}if(o){i=clipDuplicates(i+o)}if(!a.isInternalOnly){if(d.source!==undefined){u=d.source}if((0,E["default"])(d)!=null){l=o?clipDuplicates((0,E["default"])(d)+o):(0,E["default"])(d)}}t=augment(new RegExp(a.source||t.source,i),hasNamedCapture(t)?(0,y["default"])(r=d.captureNames).call(r,0):null,u,l,a.isInternalOnly);return t}function dec(t){return(0,w["default"])(t,16)}function getContextualTokenSeparator(t,a,r){if(t.input[t.index-1]==="("||t.input[t.index+t[0].length]===")"||t.input[t.index-1]==="|"||t.input[t.index+t[0].length]==="|"||t.index<1||t.index+t[0].length>=t.input.length||O.test.call(/^\(\?[:=!]/,t.input.substr(t.index-3,3))||isQuantifierNext(t.input,t.index+t[0].length,r)){return""}return"(?:)"}function getNativeFlags(t){return M?(0,E["default"])(t):O.exec.call(/\/([a-z]*)$/i,RegExp.prototype.toString.call(t))[1]}function hasNamedCapture(t){return!!(t[T]&&t[T].captureNames)}function hex(t){return(0,w["default"])(t,10).toString(16)}function isQuantifierNext(t,a,r){var d="\\(\\?#[^)]*\\)";var i="#[^#\\n]*";var o="[?*+]|{\\d+(?:,\\d*)?}";return O.test.call((0,b["default"])(r).call(r,"x")?/^(?:\s|#[^#\n]*|\(\?#[^)]*\))*(?:[?*+]|{\d+(?:,\d*)?})/:/^(?:\(\?#[^)]*\))*(?:[?*+]|{\d+(?:,\d*)?})/,(0,y["default"])(t).call(t,a))}function isType(t,a){return V.call(t)==="[object ".concat(a,"]")}function pad4(t){while(t.length<4){t="0".concat(t)}return t}function prepareFlags(t,a){if(clipDuplicates(a)!==a){throw new SyntaxError("Invalid duplicate regex flag ".concat(a))}t=O.replace.call(t,/^\(\?([\w$]+)\)/,(function(t,r){if(O.test.call(/[gy]/,r)){throw new SyntaxError("Cannot use flag g or y in mode modifier ".concat(t))}a=clipDuplicates(a+r);return""}));var r=_createForOfIteratorHelper(a),d;try{for(r.s();!(d=r.n()).done;){var i=d.value;if(!B[i]){throw new SyntaxError("Unknown regex flag ".concat(i))}}}catch(t){r.e(t)}finally{r.f()}return{pattern:t,flags:a}}function prepareOptions(t){var a={};if(isType(t,"String")){(0,_["default"])(XRegExp).call(XRegExp,t,/[^\s,]+/,(function(t){a[t]=true}));return a}return t}function registerFlag(t){if(!/^[\w$]$/.test(t)){throw new Error("Flag must be a single character A-Za-z0-9_$")}B[t]=true}function runTokens(t,a,r,d,i){var o=A.length;var p=t[r];var u=null;var l;var c;while(o--){c=A[o];if(c.leadChar&&c.leadChar!==p||c.scope!==d&&c.scope!=="all"||c.flag&&!(0,b["default"])(a).call(a,c.flag)){continue}l=XRegExp.exec(t,c.regex,r,"sticky");if(l){u={matchLength:l[0].length,output:c.handler.call(i,l,d,a),reparse:c.reparse};break}}return u}function setAstral(t){k.astral=t}function setNamespacing(t){k.namespacing=t}function toObject(t){if(t==null){throw new TypeError("Cannot convert null or undefined to object")}return t}function XRegExp(t,a){if(XRegExp.isRegExp(t)){if(a!==undefined){throw new TypeError("Cannot supply flags when copying a RegExp")}return copyRegex(t)}t=t===undefined?"":String(t);a=a===undefined?"":String(a);if(XRegExp.isInstalled("astral")&&!(0,b["default"])(a).call(a,"A")){a+="A"}if(!D[t]){D[t]={}}if(!D[t][a]){var r={hasNamedCapture:false,captureNames:[]};var d=N;var i="";var o=0;var p;var u=prepareFlags(t,a);var l=u.pattern;var c=(0,E["default"])(u);while(o<l.length){do{p=runTokens(l,c,o,d,r);if(p&&p.reparse){l=(0,y["default"])(l).call(l,0,o)+p.output+(0,y["default"])(l).call(l,o+p.matchLength)}}while(p&&p.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
|
||||
+1
-1
@@ -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/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/@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/unsupportedIterableToArray.js","../webpack:/docker-metadata-action/node_modules/@octokit/auth-token/dist-node/index.js","../webpack:/docker-metadata-action/node_modules/@octokit/core/dist-node/index.js","../webpack:/docker-metadata-action/node_modules/@octokit/endpoint/dist-node/index.js","../webpack:/docker-metadata-action/node_modules/@octokit/graphql/dist-node/index.js","../webpack:/docker-metadata-action/node_modules/@octokit/graphql/node_modules/@octokit/request-error/dist-node/index.js","../webpack:/docker-metadata-action/node_modules/@octokit/graphql/node_modules/@octokit/request/dist-node/index.js","../webpack:/docker-metadata-action/node_modules/@octokit/plugin-paginate-rest/dist-node/index.js","../webpack:/docker-metadata-action/node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js","../webpack:/docker-metadata-action/node_modules/@octokit/request/dist-node/index.js","../webpack:/docker-metadata-action/node_modules/@octokit/request/nodLine 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
|
||||
+2
-870
@@ -1,879 +1,11 @@
|
||||
@actions/core
|
||||
MIT
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright 2019 GitHub
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
@actions/github
|
||||
MIT
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright 2019 GitHub
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
@actions/http-client
|
||||
MIT
|
||||
Actions Http Client for Node.js
|
||||
|
||||
Copyright (c) GitHub, Inc.
|
||||
|
||||
All rights reserved.
|
||||
|
||||
MIT License
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
|
||||
associated documentation files (the "Software"), to deal in the Software without restriction,
|
||||
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
||||
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
||||
NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
@babel/runtime-corejs3
|
||||
p-map
|
||||
MIT
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2014-present Sebastian McKenzie and other contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
@octokit/auth-token
|
||||
MIT
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2019 Octokit contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
@octokit/core
|
||||
MIT
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2019 Octokit contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
@octokit/endpoint
|
||||
MIT
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2018 Octokit contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
@octokit/graphql
|
||||
MIT
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2018 Octokit contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
@octokit/plugin-paginate-rest
|
||||
MIT
|
||||
MIT License Copyright (c) 2019 Octokit contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
@octokit/plugin-rest-endpoint-methods
|
||||
MIT
|
||||
MIT License Copyright (c) 2019 Octokit contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
@octokit/request
|
||||
MIT
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2018 Octokit contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
@octokit/request-error
|
||||
MIT
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2019 Octokit contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
@renovate/pep440
|
||||
Apache-2.0
|
||||
This software is made available under the terms of *either* of the licenses
|
||||
found in LICENSE.APACHE or LICENSE.BSD. Contributions to this software is made
|
||||
under the terms of *both* these licenses.
|
||||
|
||||
|
||||
@vercel/ncc
|
||||
MIT
|
||||
Copyright 2018 ZEIT, Inc.
|
||||
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
before-after-hook
|
||||
Apache-2.0
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "{}"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright 2018 Gregor Martynus and other contributors.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
core-js-pure
|
||||
MIT
|
||||
Copyright (c) 2014-2021 Denis Pushkarev
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
csv-parse
|
||||
MIT
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2010 Adaltas
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
|
||||
deprecation
|
||||
ISC
|
||||
The ISC License
|
||||
|
||||
Copyright (c) Gregor Martynus and contributors
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
||||
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
|
||||
handlebars
|
||||
MIT
|
||||
Copyright (C) 2011-2019 by Yehuda Katz
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
is-plain-object
|
||||
MIT
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014-2017, Jon Schlinkert.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
lru-cache
|
||||
ISC
|
||||
The ISC License
|
||||
|
||||
Copyright (c) Isaac Z. Schlueter and Contributors
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
||||
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
|
||||
moment
|
||||
MIT
|
||||
Copyright (c) JS Foundation and other contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
node-fetch
|
||||
MIT
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2016 David Frank
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
|
||||
|
||||
once
|
||||
ISC
|
||||
The ISC License
|
||||
|
||||
Copyright (c) Isaac Z. Schlueter and Contributors
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
||||
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
|
||||
semver
|
||||
ISC
|
||||
The ISC License
|
||||
|
||||
Copyright (c) Isaac Z. Schlueter and Contributors
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
||||
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
|
||||
source-map
|
||||
BSD-3-Clause
|
||||
|
||||
Copyright (c) 2009-2011, Mozilla Foundation and contributors
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the names of the Mozilla Foundation nor the names of project
|
||||
contributors may be used to endorse or promote products derived from this
|
||||
software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
tr46
|
||||
MIT
|
||||
|
||||
tunnel
|
||||
MIT
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2012 Koichi Kobayashi
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
universal-user-agent
|
||||
ISC
|
||||
# [ISC License](https://spdx.org/licenses/ISC)
|
||||
|
||||
Copyright (c) 2018, Gregor Martynus (https://github.com/gr2m)
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
|
||||
uuid
|
||||
MIT
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2010-2020 Robert Kieffer and other contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
webidl-conversions
|
||||
BSD-2-Clause
|
||||
# The BSD 2-Clause License
|
||||
|
||||
Copyright (c) 2014, Domenic Denicola
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
whatwg-url
|
||||
MIT
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015–2016 Sebastian Mayr
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
wrappy
|
||||
ISC
|
||||
The ISC License
|
||||
|
||||
Copyright (c) Isaac Z. Schlueter and Contributors
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
||||
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
|
||||
xregexp
|
||||
MIT
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2007-present Steven Levithan <http://xregexp.com/>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
yallist
|
||||
ISC
|
||||
The ISC License
|
||||
|
||||
Copyright (c) Isaac Z. Schlueter and Contributors
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
||||
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
+1
-1
@@ -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},284:(e,r,n)=>{e=n.nmd(e);var t=n(596).SourceMapConsumer;var o=n(17);var i;try{i=n(147);if(!i.existsSync||!i.readFileSync){i=null}}catch(e){}var a=n(650);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 h=[];var d=[];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(h);h.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(d);d.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||"<anonymous>")}else if(i){o+=i}elLine 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
@@ -1,9 +1,15 @@
|
||||
target "_common" {
|
||||
args = {
|
||||
BUILDKIT_CONTEXT_KEEP_GIT_DIR = 1
|
||||
}
|
||||
}
|
||||
|
||||
group "default" {
|
||||
targets = ["build"]
|
||||
}
|
||||
|
||||
group "pre-checkin" {
|
||||
targets = ["vendor-update", "format", "build"]
|
||||
targets = ["vendor", "format", "build"]
|
||||
}
|
||||
|
||||
group "validate" {
|
||||
@@ -11,42 +17,49 @@ group "validate" {
|
||||
}
|
||||
|
||||
target "build" {
|
||||
inherits = ["_common"]
|
||||
dockerfile = "dev.Dockerfile"
|
||||
target = "build-update"
|
||||
output = ["."]
|
||||
}
|
||||
|
||||
target "build-validate" {
|
||||
inherits = ["_common"]
|
||||
dockerfile = "dev.Dockerfile"
|
||||
target = "build-validate"
|
||||
output = ["type=cacheonly"]
|
||||
}
|
||||
|
||||
target "format" {
|
||||
inherits = ["_common"]
|
||||
dockerfile = "dev.Dockerfile"
|
||||
target = "format-update"
|
||||
output = ["."]
|
||||
}
|
||||
|
||||
target "lint" {
|
||||
inherits = ["_common"]
|
||||
dockerfile = "dev.Dockerfile"
|
||||
target = "lint"
|
||||
output = ["type=cacheonly"]
|
||||
}
|
||||
|
||||
target "vendor-update" {
|
||||
target "vendor" {
|
||||
inherits = ["_common"]
|
||||
dockerfile = "dev.Dockerfile"
|
||||
target = "vendor-update"
|
||||
output = ["."]
|
||||
}
|
||||
|
||||
target "vendor-validate" {
|
||||
inherits = ["_common"]
|
||||
dockerfile = "dev.Dockerfile"
|
||||
target = "vendor-validate"
|
||||
output = ["type=cacheonly"]
|
||||
}
|
||||
|
||||
target "test" {
|
||||
inherits = ["_common"]
|
||||
dockerfile = "dev.Dockerfile"
|
||||
target = "test-coverage"
|
||||
output = ["./coverage"]
|
||||
|
||||
@@ -1,5 +1,21 @@
|
||||
import fs from 'fs';
|
||||
import os from 'os';
|
||||
import path from 'path';
|
||||
|
||||
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'docker-metadata-action-'));
|
||||
|
||||
process.env = Object.assign({}, process.env, {
|
||||
TEMP: tmpDir,
|
||||
GITHUB_REPOSITORY: 'docker/metadata-action',
|
||||
RUNNER_TEMP: path.join(tmpDir, 'runner-temp'),
|
||||
RUNNER_TOOL_CACHE: path.join(tmpDir, 'runner-tool-cache')
|
||||
}) as {
|
||||
[key: string]: string;
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
clearMocks: true,
|
||||
testEnvironment: 'node',
|
||||
moduleFileExtensions: ['js', 'ts'],
|
||||
setupFiles: ['dotenv/config'],
|
||||
testMatch: ['**/*.test.ts'],
|
||||
@@ -9,5 +25,7 @@ module.exports = {
|
||||
moduleNameMapper: {
|
||||
'^csv-parse/sync': '<rootDir>/node_modules/csv-parse/dist/cjs/sync.cjs'
|
||||
},
|
||||
collectCoverageFrom: ['src/**/{!(main.ts),}.ts'],
|
||||
coveragePathIgnorePatterns: ['lib/', 'node_modules/', '__mocks__/', '__tests__/'],
|
||||
verbose: true
|
||||
};
|
||||
+34
-35
@@ -1,13 +1,16 @@
|
||||
{
|
||||
"name": "docker-metadata-action",
|
||||
"description": "GitHub Action to extract metadata (tags, labels) for Docker",
|
||||
"main": "lib/main.js",
|
||||
"main": "src/main.ts",
|
||||
"scripts": {
|
||||
"build": "ncc build src/main.ts --source-map --minify --license licenses.txt",
|
||||
"lint": "eslint src/**/*.ts __tests__/**/*.ts",
|
||||
"format": "eslint --fix src/**/*.ts __tests__/**/*.ts",
|
||||
"test": "jest --coverage",
|
||||
"all": "yarn run build && yarn run format && yarn test"
|
||||
"build": "ncc build --source-map --minify --license licenses.txt",
|
||||
"lint": "yarn run prettier && yarn run eslint",
|
||||
"format": "yarn run prettier:fix && yarn run eslint:fix",
|
||||
"eslint": "eslint --max-warnings=0 .",
|
||||
"eslint:fix": "eslint --fix .",
|
||||
"prettier": "prettier --check \"./**/*.ts\"",
|
||||
"prettier:fix": "prettier --write \"./**/*.ts\"",
|
||||
"test": "jest"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -20,39 +23,35 @@
|
||||
"tag",
|
||||
"label"
|
||||
],
|
||||
"author": "Docker",
|
||||
"contributors": [
|
||||
{
|
||||
"name": "CrazyMax",
|
||||
"url": "https://crazymax.dev"
|
||||
}
|
||||
],
|
||||
"author": "Docker Inc.",
|
||||
"license": "Apache-2.0",
|
||||
"packageManager": "yarn@4.9.2",
|
||||
"dependencies": {
|
||||
"@actions/core": "^1.10.0",
|
||||
"@actions/github": "^5.1.1",
|
||||
"@actions/core": "^1.11.1",
|
||||
"@actions/github": "^6.0.1",
|
||||
"@docker/actions-toolkit": "^0.68.0",
|
||||
"@renovate/pep440": "^1.0.0",
|
||||
"csv-parse": "^5.3.0",
|
||||
"handlebars": "^4.7.7",
|
||||
"moment": "^2.29.4",
|
||||
"semver": "^7.3.7"
|
||||
"csv-parse": "^6.1.0",
|
||||
"handlebars": "^4.7.8",
|
||||
"moment": "^2.30.1",
|
||||
"moment-timezone": "^0.6.0",
|
||||
"semver": "^7.7.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/csv-parse": "^1.2.2",
|
||||
"@types/node": "^16.11.26",
|
||||
"@types/semver": "^7.3.9",
|
||||
"@typescript-eslint/eslint-plugin": "^5.14.0",
|
||||
"@typescript-eslint/parser": "^5.14.0",
|
||||
"@vercel/ncc": "^0.33.3",
|
||||
"dotenv": "^16.0.0",
|
||||
"eslint": "^8.11.0",
|
||||
"eslint-config-prettier": "^8.5.0",
|
||||
"eslint-plugin-jest": "^26.1.1",
|
||||
"eslint-plugin-prettier": "^4.0.0",
|
||||
"jest": "^27.2.5",
|
||||
"prettier": "^2.3.1",
|
||||
"ts-jest": "^27.1.2",
|
||||
"ts-node": "^10.7.0",
|
||||
"typescript": "^4.4.4"
|
||||
"@types/node": "^20.19.9",
|
||||
"@types/semver": "^7.7.1",
|
||||
"@typescript-eslint/eslint-plugin": "^7.18.0",
|
||||
"@typescript-eslint/parser": "^7.18.0",
|
||||
"@vercel/ncc": "^0.38.3",
|
||||
"dotenv": "^16.6.1",
|
||||
"eslint": "^8.57.1",
|
||||
"eslint-config-prettier": "^9.1.2",
|
||||
"eslint-plugin-jest": "^28.14.0",
|
||||
"eslint-plugin-prettier": "^5.5.4",
|
||||
"jest": "^29.7.0",
|
||||
"prettier": "^3.6.2",
|
||||
"ts-jest": "^29.4.1",
|
||||
"ts-node": "^10.9.2",
|
||||
"typescript": "^5.9.2"
|
||||
}
|
||||
}
|
||||
+110
-48
@@ -1,74 +1,136 @@
|
||||
import * as fs from 'fs';
|
||||
import * as os from 'os';
|
||||
import * as path from 'path';
|
||||
import * as core from '@actions/core';
|
||||
import {parse} from 'csv-parse/sync';
|
||||
import {Context as GithubContext} from '@actions/github/lib/context';
|
||||
import {Util} from '@docker/actions-toolkit/lib/util';
|
||||
import {Git} from '@docker/actions-toolkit/lib/git';
|
||||
import {GitHub} from '@docker/actions-toolkit/lib/github';
|
||||
import {Toolkit} from '@docker/actions-toolkit/lib/toolkit';
|
||||
|
||||
let _tmpDir: string;
|
||||
export interface Context extends GithubContext {
|
||||
commitDate: Date;
|
||||
}
|
||||
|
||||
export interface Inputs {
|
||||
context: ContextSource;
|
||||
images: string[];
|
||||
tags: string[];
|
||||
flavor: string[];
|
||||
labels: string[];
|
||||
annotations: string[];
|
||||
sepTags: string;
|
||||
sepLabels: string;
|
||||
sepAnnotations: string;
|
||||
bakeTarget: string;
|
||||
githubToken: string;
|
||||
}
|
||||
|
||||
export function tmpDir(): string {
|
||||
if (!_tmpDir) {
|
||||
_tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'docker-metadata-action-')).split(path.sep).join(path.posix.sep);
|
||||
}
|
||||
return _tmpDir;
|
||||
}
|
||||
|
||||
export function getInputs(): Inputs {
|
||||
return {
|
||||
images: getInputList('images', true),
|
||||
tags: getInputList('tags', true),
|
||||
flavor: getInputList('flavor', true),
|
||||
labels: getInputList('labels', true),
|
||||
context: (core.getInput('context') || ContextSource.workflow) as ContextSource,
|
||||
images: Util.getInputList('images', {ignoreComma: true, comment: '#'}),
|
||||
tags: Util.getInputList('tags', {ignoreComma: true, comment: '#'}),
|
||||
flavor: Util.getInputList('flavor', {ignoreComma: true, comment: '#'}),
|
||||
labels: Util.getInputList('labels', {ignoreComma: true, comment: '#'}),
|
||||
annotations: Util.getInputList('annotations', {ignoreComma: true, comment: '#'}),
|
||||
sepTags: core.getInput('sep-tags', {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`,
|
||||
githubToken: core.getInput('github-token')
|
||||
};
|
||||
}
|
||||
|
||||
export function getInputList(name: string, ignoreComma?: boolean): string[] {
|
||||
const res: Array<string> = [];
|
||||
|
||||
const items = core.getInput(name);
|
||||
if (items == '') {
|
||||
return res;
|
||||
}
|
||||
|
||||
const records = parse(items, {
|
||||
columns: false,
|
||||
relaxQuotes: true,
|
||||
comment: '#',
|
||||
relaxColumnCount: true,
|
||||
skipEmptyLines: true
|
||||
});
|
||||
|
||||
for (const record of records as Array<string[]>) {
|
||||
if (record.length == 1) {
|
||||
res.push(record[0]);
|
||||
continue;
|
||||
} else if (!ignoreComma) {
|
||||
res.push(...record);
|
||||
continue;
|
||||
}
|
||||
res.push(record.join(','));
|
||||
}
|
||||
|
||||
return res.filter(item => item).map(pat => pat.trim());
|
||||
export enum ContextSource {
|
||||
workflow = 'workflow',
|
||||
git = 'git'
|
||||
}
|
||||
|
||||
export const asyncForEach = async (array, callback) => {
|
||||
for (let index = 0; index < array.length; index++) {
|
||||
await callback(array[index], index, array);
|
||||
export async function getContext(source: ContextSource, toolkit: Toolkit): Promise<Context> {
|
||||
switch (source) {
|
||||
case ContextSource.workflow:
|
||||
return await getContextFromWorkflow(toolkit);
|
||||
case ContextSource.git:
|
||||
return await getContextFromGit();
|
||||
default:
|
||||
throw new Error(`Invalid context source: ${source}`);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
async function getContextFromWorkflow(toolkit: Toolkit): Promise<Context> {
|
||||
const context = GitHub.context;
|
||||
|
||||
// Needs to override Git reference with pr ref instead of upstream branch ref
|
||||
// for pull_request_target event
|
||||
// https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request_target
|
||||
if (/pull_request_target/.test(context.eventName)) {
|
||||
context.ref = `refs/pull/${context.payload.number}/merge`;
|
||||
}
|
||||
|
||||
// DOCKER_METADATA_PR_HEAD_SHA env var can be used to set associated head
|
||||
// SHA instead of commit SHA that triggered the workflow on pull request
|
||||
// event.
|
||||
if (/true/i.test(process.env.DOCKER_METADATA_PR_HEAD_SHA || '')) {
|
||||
if ((/pull_request/.test(context.eventName) || /pull_request_target/.test(context.eventName)) && context.payload?.pull_request?.head?.sha != undefined) {
|
||||
context.sha = context.payload.pull_request.head.sha;
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
commitDate: await getCommitDateFromWorkflow(context.sha, toolkit),
|
||||
...context
|
||||
} as Context;
|
||||
}
|
||||
|
||||
async function getContextFromGit(): Promise<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();
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
import * as github from '@actions/github';
|
||||
import {Context} from '@actions/github/lib/context';
|
||||
import {components as OctoOpenApiTypes} from '@octokit/openapi-types';
|
||||
|
||||
export type ReposGetResponseData = OctoOpenApiTypes['schemas']['repository'];
|
||||
|
||||
export function context(): Context {
|
||||
return github.context;
|
||||
}
|
||||
|
||||
export async function repo(token: string): Promise<ReposGetResponseData> {
|
||||
return github
|
||||
.getOctokit(token)
|
||||
.rest.repos.get({...github.context.repo})
|
||||
.then(response => response.data as ReposGetResponseData);
|
||||
}
|
||||
+91
-56
@@ -1,34 +1,37 @@
|
||||
import * as fs from 'fs';
|
||||
import {getInputs, Inputs} from './context';
|
||||
import * as github from './github';
|
||||
import {Meta, Version} from './meta';
|
||||
import * as core from '@actions/core';
|
||||
import {Context} from '@actions/github/lib/context';
|
||||
import * as actionsToolkit from '@docker/actions-toolkit';
|
||||
import {Toolkit} from '@docker/actions-toolkit/lib/toolkit';
|
||||
import {Util} from '@docker/actions-toolkit/lib/util';
|
||||
|
||||
async function run() {
|
||||
try {
|
||||
const inputs: Inputs = await getInputs();
|
||||
if (inputs.images.length == 0) {
|
||||
throw new Error(`images input required`);
|
||||
}
|
||||
import {getContext, getInputs, Inputs} from './context';
|
||||
import {Meta, Version} from './meta';
|
||||
|
||||
const context: Context = github.context();
|
||||
const repo: github.ReposGetResponseData = await github.repo(inputs.githubToken);
|
||||
core.startGroup(`Context info`);
|
||||
core.info(`eventName: ${context.eventName}`);
|
||||
core.info(`sha: ${context.sha}`);
|
||||
core.info(`ref: ${context.ref}`);
|
||||
core.info(`workflow: ${context.workflow}`);
|
||||
core.info(`action: ${context.action}`);
|
||||
core.info(`actor: ${context.actor}`);
|
||||
core.info(`runNumber: ${context.runNumber}`);
|
||||
core.info(`runId: ${context.runId}`);
|
||||
core.endGroup();
|
||||
actionsToolkit.run(
|
||||
// main
|
||||
async () => {
|
||||
const inputs: Inputs = getInputs();
|
||||
const toolkit = new Toolkit({githubToken: inputs.githubToken});
|
||||
const context = await getContext(inputs.context, toolkit);
|
||||
const repo = await toolkit.github.repoData();
|
||||
const setOutput = outputEnvEnabled() ? setOutputAndEnv : core.setOutput;
|
||||
|
||||
await core.group(`Context info`, async () => {
|
||||
core.info(`eventName: ${context.eventName}`);
|
||||
core.info(`sha: ${context.sha}`);
|
||||
core.info(`ref: ${context.ref}`);
|
||||
core.info(`workflow: ${context.workflow}`);
|
||||
core.info(`action: ${context.action}`);
|
||||
core.info(`actor: ${context.actor}`);
|
||||
core.info(`runNumber: ${context.runNumber}`);
|
||||
core.info(`runId: ${context.runId}`);
|
||||
core.info(`commitDate: ${context.commitDate}`);
|
||||
});
|
||||
|
||||
if (core.isDebug()) {
|
||||
core.startGroup(`Webhook payload`);
|
||||
core.info(JSON.stringify(context.payload, null, 2));
|
||||
core.endGroup();
|
||||
await core.group(`Webhook payload`, async () => {
|
||||
core.info(JSON.stringify(context.payload, null, 2));
|
||||
});
|
||||
}
|
||||
|
||||
const meta: Meta = new Meta(inputs, context, repo);
|
||||
@@ -37,50 +40,82 @@ async function run() {
|
||||
if (meta.version.main == undefined || meta.version.main.length == 0) {
|
||||
core.warning(`No Docker image version has been generated. Check tags input.`);
|
||||
} else {
|
||||
core.startGroup(`Docker image version`);
|
||||
core.info(version.main || '');
|
||||
core.endGroup();
|
||||
await core.group(`Docker image version`, async () => {
|
||||
core.info(version.main || '');
|
||||
});
|
||||
}
|
||||
core.setOutput('version', version.main || '');
|
||||
setOutput('version', version.main || '');
|
||||
|
||||
// Docker tags
|
||||
const tags: Array<string> = meta.getTags();
|
||||
const tags = meta.getTags();
|
||||
if (tags.length == 0) {
|
||||
core.warning('No Docker tag has been generated. Check tags input.');
|
||||
} else {
|
||||
core.startGroup(`Docker tags`);
|
||||
for (const tag of tags) {
|
||||
core.info(tag);
|
||||
}
|
||||
core.endGroup();
|
||||
await core.group(`Docker tags`, async () => {
|
||||
for (const tag of tags) {
|
||||
core.info(tag);
|
||||
}
|
||||
});
|
||||
}
|
||||
core.setOutput('tags', tags.join(inputs.sepTags));
|
||||
setOutput('tags', tags.join(inputs.sepTags));
|
||||
setOutput('tag-names', meta.getTags(true).join(inputs.sepTags));
|
||||
|
||||
// Docker labels
|
||||
const labels: Array<string> = meta.getLabels();
|
||||
core.startGroup(`Docker labels`);
|
||||
for (const label of labels) {
|
||||
core.info(label);
|
||||
}
|
||||
core.endGroup();
|
||||
core.setOutput('labels', labels.join(inputs.sepLabels));
|
||||
await core.group(`Docker labels`, async () => {
|
||||
for (const label of labels) {
|
||||
core.info(label);
|
||||
}
|
||||
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
|
||||
const jsonOutput = meta.getJSON();
|
||||
core.startGroup(`JSON output`);
|
||||
core.info(JSON.stringify(jsonOutput, null, 2));
|
||||
core.endGroup();
|
||||
core.setOutput('json', jsonOutput);
|
||||
const jsonOutput = meta.getJSON(annotationsLevels.split(','));
|
||||
await core.group(`JSON output`, async () => {
|
||||
core.info(JSON.stringify(jsonOutput, null, 2));
|
||||
setOutput('json', JSON.stringify(jsonOutput));
|
||||
});
|
||||
|
||||
// Bake file definition
|
||||
const bakeFile: string = meta.getBakeFile();
|
||||
core.startGroup(`Bake file definition`);
|
||||
core.info(fs.readFileSync(bakeFile, 'utf8'));
|
||||
core.endGroup();
|
||||
core.setOutput('bake-file', bakeFile);
|
||||
} catch (error) {
|
||||
core.setFailed(error.message);
|
||||
// Bake files
|
||||
for (const kind of ['tags', 'labels', 'annotations:' + annotationsLevels]) {
|
||||
const outputName = kind.split(':')[0];
|
||||
const bakeFile: string = meta.getBakeFile(kind);
|
||||
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);
|
||||
}
|
||||
|
||||
run();
|
||||
function outputEnvEnabled(): boolean {
|
||||
if (process.env.DOCKER_METADATA_SET_OUTPUT_ENV) {
|
||||
return Util.parseBool(process.env.DOCKER_METADATA_SET_OUTPUT_ENV);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
+249
-86
@@ -1,16 +1,19 @@
|
||||
import * as handlebars from 'handlebars';
|
||||
import * as fs from 'fs';
|
||||
import * as path from 'path';
|
||||
import moment from 'moment';
|
||||
import moment from 'moment-timezone';
|
||||
import * as pep440 from '@renovate/pep440';
|
||||
import * as semver from 'semver';
|
||||
import {Inputs, tmpDir} from './context';
|
||||
import {ReposGetResponseData} from './github';
|
||||
import * as core from '@actions/core';
|
||||
import {Context as ToolkitContext} from '@docker/actions-toolkit/lib/context';
|
||||
import {GitHubRepo} from '@docker/actions-toolkit/lib/types/github';
|
||||
|
||||
import {Inputs, Context} from './context';
|
||||
import * as icl from './image';
|
||||
import * as tcl from './tag';
|
||||
import * as fcl from './flavor';
|
||||
import * as core from '@actions/core';
|
||||
import {Context} from '@actions/github/lib/context';
|
||||
|
||||
const defaultShortShaLength = 7;
|
||||
|
||||
export interface Version {
|
||||
main: string | undefined;
|
||||
@@ -23,24 +26,13 @@ export class Meta {
|
||||
|
||||
private readonly inputs: Inputs;
|
||||
private readonly context: Context;
|
||||
private readonly repo: ReposGetResponseData;
|
||||
private readonly repo: GitHubRepo;
|
||||
private readonly images: icl.Image[];
|
||||
private readonly tags: tcl.Tag[];
|
||||
private readonly flavor: fcl.Flavor;
|
||||
private readonly date: Date;
|
||||
|
||||
constructor(inputs: Inputs, context: Context, repo: ReposGetResponseData) {
|
||||
// Needs to override Git reference with pr ref instead of upstream branch ref
|
||||
// for pull_request_target event
|
||||
// https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request_target
|
||||
if (/pull_request_target/.test(context.eventName)) {
|
||||
context.ref = `refs/pull/${context.payload.number}/merge`;
|
||||
}
|
||||
|
||||
if ((/pull_request/.test(context.eventName) || /pull_request_target/.test(context.eventName)) && context.payload?.pull_request?.head?.sha != undefined) {
|
||||
context.sha = context.payload.pull_request.head.sha;
|
||||
}
|
||||
|
||||
constructor(inputs: Inputs, context: Context, repo: GitHubRepo) {
|
||||
this.inputs = inputs;
|
||||
this.context = context;
|
||||
this.repo = repo;
|
||||
@@ -122,10 +114,36 @@ export class Meta {
|
||||
}
|
||||
|
||||
const currentDate = this.date;
|
||||
const commitDate = this.context.commitDate;
|
||||
const vraw = this.setValue(
|
||||
handlebars.compile(tag.attrs['pattern'])({
|
||||
date: function (format) {
|
||||
return moment(currentDate).utc().format(format);
|
||||
date: function (format, options) {
|
||||
const m = moment(currentDate);
|
||||
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);
|
||||
},
|
||||
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
|
||||
@@ -143,8 +161,20 @@ export class Meta {
|
||||
if (tag.attrs['value'].length > 0) {
|
||||
vraw = this.setGlobalExp(tag.attrs['value']);
|
||||
} 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)) {
|
||||
core.warning(`${vraw} is not a valid semver. More info: https://semver.org/`);
|
||||
return version;
|
||||
@@ -152,7 +182,7 @@ export class Meta {
|
||||
|
||||
let latest = false;
|
||||
const sver = semver.parse(vraw, {
|
||||
includePrerelease: true
|
||||
loose: true
|
||||
});
|
||||
if (semver.prerelease(vraw)) {
|
||||
if (Meta.isRawStatement(tag.attrs['pattern'])) {
|
||||
@@ -177,8 +207,20 @@ export class Meta {
|
||||
if (tag.attrs['value'].length > 0) {
|
||||
vraw = this.setGlobalExp(tag.attrs['value']);
|
||||
} 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)) {
|
||||
core.warning(`${vraw} does not conform to PEP 440. More info: https://www.python.org/dev/peps/pep-0440`);
|
||||
return version;
|
||||
@@ -305,7 +347,7 @@ export class Meta {
|
||||
|
||||
let val = this.context.sha;
|
||||
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);
|
||||
@@ -354,60 +396,89 @@ export class Meta {
|
||||
return val;
|
||||
}
|
||||
|
||||
private setGlobalExp(val): string {
|
||||
const ctx = this.context;
|
||||
private setGlobalExp(val: string): string {
|
||||
const context = this.context;
|
||||
const currentDate = this.date;
|
||||
const commitDate = this.context.commitDate;
|
||||
return handlebars.compile(val)({
|
||||
branch: function () {
|
||||
if (!/^refs\/heads\//.test(ctx.ref)) {
|
||||
if (!/^refs\/heads\//.test(context.ref)) {
|
||||
return '';
|
||||
}
|
||||
return ctx.ref.replace(/^refs\/heads\//g, '');
|
||||
return context.ref.replace(/^refs\/heads\//g, '');
|
||||
},
|
||||
tag: function () {
|
||||
if (!/^refs\/tags\//.test(ctx.ref)) {
|
||||
if (!/^refs\/tags\//.test(context.ref)) {
|
||||
return '';
|
||||
}
|
||||
return ctx.ref.replace(/^refs\/tags\//g, '');
|
||||
return context.ref.replace(/^refs\/tags\//g, '');
|
||||
},
|
||||
sha: function () {
|
||||
return ctx.sha.substring(0, 7);
|
||||
return Meta.shortSha(context.sha);
|
||||
},
|
||||
base_ref: function () {
|
||||
if (/^refs\/tags\//.test(ctx.ref) && ctx.payload?.base_ref != undefined) {
|
||||
return ctx.payload.base_ref.replace(/^refs\/heads\//g, '');
|
||||
if (/^refs\/tags\//.test(context.ref) && context.payload?.base_ref != undefined) {
|
||||
return context.payload.base_ref.replace(/^refs\/heads\//g, '');
|
||||
}
|
||||
// FIXME: keep this for backward compatibility even if doesn't always seem
|
||||
// to return the expected branch. See the comment below.
|
||||
if (/^refs\/pull\//.test(ctx.ref) && ctx.payload?.pull_request?.base?.ref != undefined) {
|
||||
return ctx.payload.pull_request.base.ref;
|
||||
if (/^refs\/pull\//.test(context.ref) && context.payload?.pull_request?.base?.ref != undefined) {
|
||||
return context.payload.pull_request.base.ref;
|
||||
}
|
||||
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 () {
|
||||
const branch = ctx.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
|
||||
// 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
|
||||
// more context: https://github.com/docker/metadata-action/pull/192#discussion_r854673012
|
||||
// if (/^refs\/tags\//.test(ctx.ref) && ctx.payload?.base_ref != undefined) {
|
||||
// branch = ctx.payload.base_ref.replace(/^refs\/heads\//g, '');
|
||||
// if (/^refs\/tags\//.test(context.ref) && context.payload?.base_ref != undefined) {
|
||||
// branch = context.payload.base_ref.replace(/^refs\/heads\//g, '');
|
||||
// }
|
||||
if (branch == undefined || branch.length == 0) {
|
||||
return 'false';
|
||||
}
|
||||
if (ctx.payload?.repository?.default_branch == branch) {
|
||||
if (context.payload?.repository?.default_branch == branch) {
|
||||
return 'true';
|
||||
}
|
||||
// following events always trigger for last commit on default branch
|
||||
// https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows
|
||||
if (/create/.test(ctx.eventName) || /discussion/.test(ctx.eventName) || /issues/.test(ctx.eventName) || /schedule/.test(ctx.eventName)) {
|
||||
if (/create/.test(context.eventName) || /discussion/.test(context.eventName) || /issues/.test(context.eventName) || /schedule/.test(context.eventName)) {
|
||||
return 'true';
|
||||
}
|
||||
return 'false';
|
||||
},
|
||||
date: function (format) {
|
||||
return moment(currentDate).utc().format(format);
|
||||
is_not_default_branch: function () {
|
||||
return this.is_default_branch() === 'false' ? 'true' : 'false';
|
||||
},
|
||||
date: function (format, options) {
|
||||
const m = moment(currentDate);
|
||||
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);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -423,26 +494,51 @@ export class Meta {
|
||||
return images;
|
||||
}
|
||||
|
||||
public getTags(): Array<string> {
|
||||
public getTags(namesOnly?: boolean): Array<string> {
|
||||
if (!this.version.main) {
|
||||
return [];
|
||||
}
|
||||
if (namesOnly) {
|
||||
return this.generateTags(this.version.main);
|
||||
}
|
||||
|
||||
const tags: Array<string> = [];
|
||||
for (const imageName of this.getImageNames()) {
|
||||
tags.push(`${imageName}:${this.version.main}`);
|
||||
for (const partial of this.version.partial) {
|
||||
tags.push(`${imageName}:${partial}`);
|
||||
}
|
||||
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)}`);
|
||||
const images = this.getImageNames();
|
||||
if (images.length > 0) {
|
||||
for (const imageName of images) {
|
||||
tags.push(...this.generateTags(this.version.main, imageName));
|
||||
}
|
||||
} 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;
|
||||
}
|
||||
|
||||
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.description=${this.repo.description || ''}`,
|
||||
`org.opencontainers.image.url=${this.repo.html_url || ''}`,
|
||||
@@ -452,12 +548,87 @@ export class Meta {
|
||||
`org.opencontainers.image.revision=${this.context.sha || ''}`,
|
||||
`org.opencontainers.image.licenses=${this.repo.license?.spdx_id || ''}`
|
||||
];
|
||||
labels.push(...this.inputs.labels);
|
||||
return labels;
|
||||
extra.forEach(label => {
|
||||
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 {
|
||||
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(),
|
||||
labels: this.getLabels().reduce((res, label) => {
|
||||
const matches = label.match(/([^=]*)=(.*)/);
|
||||
@@ -466,39 +637,17 @@ export class Meta {
|
||||
}
|
||||
res[matches[1]] = matches[2];
|
||||
return res;
|
||||
}, {})
|
||||
};
|
||||
}, {}),
|
||||
args: {
|
||||
DOCKER_META_IMAGES: this.getImageNames().join(','),
|
||||
DOCKER_META_VERSION: this.version.main
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public getBakeFile(): string {
|
||||
const bakeFile = path.join(tmpDir(), 'docker-metadata-action-bake.json').split(path.sep).join(path.posix.sep);
|
||||
fs.writeFileSync(
|
||||
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
|
||||
)
|
||||
);
|
||||
|
||||
private generateBakeFile(dt, suffix?: string): string {
|
||||
const bakeFile = path.join(ToolkitContext.tmpDir(), `docker-metadata-action-bake${suffix ? `-${suffix}` : ''}.json`);
|
||||
fs.writeFileSync(bakeFile, JSON.stringify({target: {[this.inputs.bakeTarget]: dt}}, null, 2));
|
||||
return bakeFile;
|
||||
}
|
||||
|
||||
@@ -509,4 +658,18 @@ export class Meta {
|
||||
private static sanitizeTag(tag: string): string {
|
||||
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);
|
||||
}
|
||||
}
|
||||
+6
-3
@@ -95,7 +95,7 @@ export function Parse(s: string): Tag {
|
||||
for (const field of fields) {
|
||||
const parts = field
|
||||
.toString()
|
||||
.split('=')
|
||||
.split(/(?<=^[^=]+?)=/)
|
||||
.map(item => item.trim());
|
||||
if (parts.length == 1) {
|
||||
tag.attrs['value'] = parts[0];
|
||||
@@ -104,10 +104,10 @@ export function Parse(s: string): Tag {
|
||||
const value = parts[1];
|
||||
switch (key) {
|
||||
case 'type': {
|
||||
if (!Object.values(Type).includes(value)) {
|
||||
if (!Object.values(Type).includes(value as Type)) {
|
||||
throw new Error(`Unknown tag type attribute: ${value}`);
|
||||
}
|
||||
tag.type = value;
|
||||
tag.type = value as Type;
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
@@ -137,6 +137,9 @@ export function Parse(s: string): Tag {
|
||||
if (!Object.prototype.hasOwnProperty.call(tag.attrs, 'value')) {
|
||||
tag.attrs['value'] = '';
|
||||
}
|
||||
if (!Object.prototype.hasOwnProperty.call(tag.attrs, 'match')) {
|
||||
tag.attrs['match'] = '';
|
||||
}
|
||||
break;
|
||||
}
|
||||
case Type.Match: {
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# syntax=docker/dockerfile:1
|
||||
FROM alpine
|
||||
RUN apk add --no-cache coreutils jq
|
||||
ARG DOCKER_METADATA_OUTPUT_VERSION
|
||||
ARG DOCKER_METADATA_OUTPUT_TAGS
|
||||
ARG DOCKER_METADATA_OUTPUT_LABELS
|
||||
ARG DOCKER_METADATA_OUTPUT_ANNOTATIONS
|
||||
ARG DOCKER_METADATA_OUTPUT_JSON
|
||||
RUN printenv DOCKER_METADATA_OUTPUT_VERSION
|
||||
RUN printenv DOCKER_METADATA_OUTPUT_TAGS
|
||||
RUN printenv DOCKER_METADATA_OUTPUT_LABELS
|
||||
RUN printenv DOCKER_METADATA_OUTPUT_ANNOTATIONS
|
||||
RUN printenv DOCKER_METADATA_OUTPUT_JSON
|
||||
RUN echo $DOCKER_METADATA_OUTPUT_JSON | jq
|
||||
+5
-3
@@ -1,20 +1,22 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"esModuleInterop": true,
|
||||
"target": "es6",
|
||||
"module": "commonjs",
|
||||
"strict": true,
|
||||
"newLine": "lf",
|
||||
"outDir": "./lib",
|
||||
"rootDir": "./src",
|
||||
"esModuleInterop": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"strict": true,
|
||||
"noImplicitAny": false,
|
||||
"resolveJsonModule": true,
|
||||
"useUnknownInCatchVariables": false,
|
||||
},
|
||||
"exclude": [
|
||||
"./__mocks__/**/*",
|
||||
"./__tests__/**/*",
|
||||
"./lib/**/*",
|
||||
"node_modules",
|
||||
"**/*.test.ts",
|
||||
"jest.config.ts"
|
||||
]
|
||||
}
|
||||
Reference in new issue
Block a user