diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 27fe954..046dd4a 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -13,15 +13,15 @@ jobs:
name: ${{ matrix.os }} - node ${{ matrix.node-version }}
strategy:
matrix:
- node-version: [16, 18, 20]
+ node-version: [16, 18]
os: [ubuntu-latest]
- fail-fast: false
+ fail-fast: true
runs-on: ${{ matrix.os }}
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v3
- name: Setup Node ${{ matrix.node-version }}
- uses: actions/setup-node@v4
+ uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- run: npm ci
diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml
index 12de602..3d12a0e 100644
--- a/.github/workflows/coverage.yml
+++ b/.github/workflows/coverage.yml
@@ -16,7 +16,7 @@ jobs:
coverage:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v3
- uses: ArtiomTr/jest-coverage-report-action@v2
with:
test-script: npm test
\ No newline at end of file
diff --git a/.github/workflows/prepare-release.yml b/.github/workflows/prepare-release.yml
index 611d29d..774c068 100644
--- a/.github/workflows/prepare-release.yml
+++ b/.github/workflows/prepare-release.yml
@@ -19,11 +19,11 @@ jobs:
name: Prepare release
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Node
- uses: actions/setup-node@v4
+ uses: actions/setup-node@v3
with:
node-version: 18
- name: Git config
diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml
index d0dce86..a72fe6c 100644
--- a/.github/workflows/pull-request.yml
+++ b/.github/workflows/pull-request.yml
@@ -18,15 +18,15 @@ jobs:
name: ${{ matrix.os }} - node ${{ matrix.node-version }}
strategy:
matrix:
- node-version: [16, 18, 20]
+ node-version: [16, 18]
os: [ubuntu-latest]
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v3
- name: Setup Node ${{ matrix.node-version }}
- uses: actions/setup-node@v4
+ uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- run: npm ci
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index cdfe93f..34c968e 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -17,11 +17,11 @@ jobs:
name: Release package
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Node
- uses: actions/setup-node@v4
+ uses: actions/setup-node@v3
with:
node-version: 18
- name: Git config
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e3a24a6..aec168d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,81 +1,5 @@
# Changelog
-## 4.8.5 (2025-04-15)
-
-* build(deps): audit fix (#150) ([3a9d367](https://github.com/kiegroup/git-backporting/commit/3a9d367)), closes [#150](https://github.com/kiegroup/git-backporting/issues/150)
-* build(deps): upgrade release-it to v18 (#153) ([c9a7375](https://github.com/kiegroup/git-backporting/commit/c9a7375)), closes [#153](https://github.com/kiegroup/git-backporting/issues/153)
-* fix(#151): fix gitlab post comments url (#152) ([d74a787](https://github.com/kiegroup/git-backporting/commit/d74a787)), closes [#152](https://github.com/kiegroup/git-backporting/issues/152)
-
-## [4.8.4](https://github.com/kiegroup/git-backporting/compare/v4.8.3...v4.8.4) (2024-11-02)
-
-
-### Bug Fixes
-
-* abort conflicting cherry-pick before starting new one ([#146](https://github.com/kiegroup/git-backporting/issues/146)) ([3deee59](https://github.com/kiegroup/git-backporting/commit/3deee59d4c3b726ae131b5974af4618dd5e7d1d2))
-
-## [4.8.3](https://github.com/kiegroup/git-backporting/compare/v4.8.2...v4.8.3) (2024-10-10)
-
-
-### Bug Fixes
-
-* auto-no-squash inference for GitLab ([#140](https://github.com/kiegroup/git-backporting/issues/140)) ([b4d0481](https://github.com/kiegroup/git-backporting/commit/b4d0481c5649115367f1ae0724d12d55b6b86e10))
-
-## [4.8.2](https://github.com/kiegroup/git-backporting/compare/v4.8.1...v4.8.2) (2024-10-07)
-
-
-### Bug Fixes
-
-* cherry-pick order on GitLab by reversing commmit list only once ([#137](https://github.com/kiegroup/git-backporting/issues/137)) ([e2d73d0](https://github.com/kiegroup/git-backporting/commit/e2d73d050c8387c0858877ac3c56c565bacaf4f9))
-* handle Codeberg returning null entry in requested_reviewers ([#136](https://github.com/kiegroup/git-backporting/issues/136)) ([1e8358b](https://github.com/kiegroup/git-backporting/commit/1e8358bb2c461c56cf86e82bec4d71284866b13b))
-
-## [4.8.1](https://github.com/kiegroup/git-backporting/compare/v4.8.0...v4.8.1) (2024-07-16)
-
-
-### Bug Fixes
-
-* **gh130:** apply commits in the correct order on github ([#131](https://github.com/kiegroup/git-backporting/issues/131)) ([cb3473d](https://github.com/kiegroup/git-backporting/commit/cb3473d7c9de66cb7bec188f08538e134cdc4bc0))
-
-## [4.8.0](https://github.com/kiegroup/git-backporting/compare/v4.7.1...v4.8.0) (2024-04-11)
-
-
-### Features
-
-* auto-detect the value of the no-squash option ([#118](https://github.com/kiegroup/git-backporting/issues/118)) ([6042bcc](https://github.com/kiegroup/git-backporting/commit/6042bcc40ba83593a23dfe4d92cf50655a05b1cd))
-* implement error notification as pr comment ([#124](https://github.com/kiegroup/git-backporting/issues/124)) ([2bb7f73](https://github.com/kiegroup/git-backporting/commit/2bb7f731127e099d1f196e6785e992589f7c4940))
-
-## [4.7.1](https://github.com/kiegroup/git-backporting/compare/v4.7.0...v4.7.1) (2024-04-03)
-
-
-### Bug Fixes
-
-* gha input is target-branch-pattern, not target-reg-exp ([#120](https://github.com/kiegroup/git-backporting/issues/120)) ([e6f86f8](https://github.com/kiegroup/git-backporting/commit/e6f86f8f839bc86adf36fa0d3c8dcad6cab2f92e))
-
-## [4.7.0](https://github.com/kiegroup/git-backporting/compare/v4.6.0...v4.7.0) (2024-04-02)
-
-
-### Features
-
-* add --cherry-pick-options to add to all cherry-pick run ([#116](https://github.com/kiegroup/git-backporting/issues/116)) ([fe6be83](https://github.com/kiegroup/git-backporting/commit/fe6be83074476d91c1b038fd7f03c4868e96f113))
-* **gh75:** extract target branched from pr labels ([#112](https://github.com/kiegroup/git-backporting/issues/112)) ([53cc505](https://github.com/kiegroup/git-backporting/commit/53cc505f17630fb30daa70f75895323325cc0c7d))
-
-
-### Bug Fixes
-
-* return GitHub no-squash commits in order ([#115](https://github.com/kiegroup/git-backporting/issues/115)) ([6d9b9db](https://github.com/kiegroup/git-backporting/commit/6d9b9db590f9713e2b056bcc8e20fc3f3c70618b))
-
-## [4.6.0](https://github.com/kiegroup/git-backporting/compare/v4.5.2...v4.6.0) (2024-03-25)
-
-
-### Features
-
-* add --git-client to explicitly set the type of forge ([#106](https://github.com/kiegroup/git-backporting/issues/106)) ([80a0b55](https://github.com/kiegroup/git-backporting/commit/80a0b554f0c1920a178e28bd678f709581a1b224))
-
-## [4.5.2](https://github.com/kiegroup/git-backporting/compare/v4.5.1...v4.5.2) (2024-03-08)
-
-### Improvements
-
-* upgrade to node20 for gha ([c8ede8d](https://github.com/kiegroup/git-backporting/commit/c8ede8d4e2428cb3f4dc2d727f24b37e5781cbb1))
-
## [4.5.1](https://github.com/kiegroup/git-backporting/compare/v4.5.0...v4.5.1) (2024-02-23)
@@ -209,4 +133,4 @@ Project moved under @kiegroup organization.
### Features
* backport still open pull requests ([b3936e0](https://github.com/kiegroup/git-backporting/commit/b3936e019a19976281c5e2582904264e974b8b42))
-* pull request backporting ([b3936e0](https://github.com/kiegroup/git-backporting/commit/b3936e019a19976281c5e2582904264e974b8b42))
+* pull request backporting ([b3936e0](https://github.com/kiegroup/git-backporting/commit/b3936e019a19976281c5e2582904264e974b8b42))
\ No newline at end of file
diff --git a/README.md b/README.md
index cdf9c1a..57734a5 100644
--- a/README.md
+++ b/README.md
@@ -24,6 +24,7 @@ Table of content
* **[CLI tool](#cli-tool)**
* **[GitHub action](#github-action)**
* **[Future works](#future-works)**
+* **[Migrating to v4](#migrating-to-v4)**
* **[Development](#development)**
* **[Contributing](#contributing)**
* **[License](#license)**
@@ -38,7 +39,7 @@ Therefore this tools is for anybody who is working on projects where they have t
## CLI tool
-> All instructions provided below pertain to version `v4` of the tool. If you wish to use an earlier version, please refer to the documentation from the corresponding tag/release.
+> All instructions provided below pertain to version `v4` of the tool. If you wish to use an earlier version, we strongly encourage you to consider migrating to version `v4` as there are no valid reason to keep using older versions. Please refer to [Migrating to v4](#migrating-to-v4) section for comprehensive details on how to properly migrate to version `v4`.
This tool is released on the [public npm registry](https://www.npmjs.com/), therefore it can be easily installed using `npm`:
@@ -46,7 +47,7 @@ This tool is released on the [public npm registry](https://www.npmjs.com/), ther
$ npm install -g @kie/git-backporting
```
-Then you just have to choose the pull request (or merge request on *Gitlab*) that you would like to backport and the target branch and then simply run the following command:
+Then you just have to choose the pull request (or merge request on *Gitlab*) that you would like to backport and the target branch and the simply run the following command:
```bash
$ git-backporting -tb -pr -a
@@ -66,38 +67,22 @@ This is the easiest invocation where you let the tool set / compute most of the
### How it works?
-It works in this way: given the provided `pull/merge request` it infers the server API to use (either *Github* or *Gitlab* for now) and retrieves the corresponding pull request object (original pull/merge request to be backported into another branch).
+The simply works in this way: given the provided `pull/merge request` it infers the git client to use (either *Github* or *Gitlab* for now) and it retrieve the corresponding pull request object (original pull/merge request to be backported into another branch).
After that it clones the corresponding git repository, check out in the provided `target branch` and create a new branch from that (name automatically generated if not provided as option).
-By default the tool will try to cherry-pick the single squashed/merged commit into the newly created branch. The `--no-squash` and `--auto-no-squash` options control this behavior according the following table.
-
-| No squash | Auto no squash |Behavior|
-|---|---|---|
-| unset/false | unset/false | cherry-pick a single commit, squashed or merged |
-| set/true | unset/false | cherry-pick all commits found in the the original pull/merge request|
-| (ignored) | set/true | cherry-pick all commits if the original pull/merge request was merged, a single commit if it was squashed |
+By default the tool will try to cherry-pick the single squashed/merged commit into the newly created branch (please consider using `--no-squash` option if you want to cherry-pick all commits belonging to the provided pull request).
Based on the original pull request, creates a new one containing the backporting to the target branch. Note that most of these information can be overridden with appropriate CLI options or GHA inputs.
-#### cherry-pick strategy
+#### Default cherry-pick strategy
The default cherry-pick strategy is `recursive` with `theirs` option for automatic conflicts resolution. Therefore, by default, all commits are cherry-picked using the following git-equivalent command:
```bash
$ git cherry-pick -m 1 --strategy=recursive --strategy-option=theirs
```
-From version `v4.2.0` both can be configured via the `strategy` or `strategy-option` inputs if using the action and the `--strategy` or `--strategy-option` arguments if using the CLI.
-
-The [default strategy](https://git-scm.com/docs/git-merge#Documentation/git-merge.txt--sltstrategygt) of the `git-cherry-pick` command is different from the defaults of `git-backporting`.
-```bash
-$ git cherry-pick -m 1
-```
-is the same as:
-```bash
-$ git cherry-pick -m 1 --strategy=ort --strategy-option=find-renames
-```
-If there is a conflict the backport will fail and require manual intervention.
+From version `v4.2.0` we made both `strategy` and `strategy-option` fully configurable from CLI or GitHub action, so if users need a specific strategy which differs from the default one please consider using either `--strategy` or `--strategy-option`, or their equivalent GitHub action inputs, more details in [inputs](#inputs) section.
> **NOTE**: If there are any conflicts, the tool will block the process and exit signalling the failure as there are still no ways to interactively resolve them. In these cases a manual cherry-pick is needed, or alternatively users could manually resume the process in the cloned repository (here the user will have to resolve the conflicts, push the branch and create the pull request - all manually).
@@ -110,12 +95,10 @@ This tool comes with some inputs that allow users to override the default behavi
| Version | -V, --version | - | Current version of the tool | |
| Help | -h, --help | - | Display the help message | |
| Target Branches | -tb, --target-branch | N | Comma separated list of branches where the changes must be backported to | |
-| Target Branches Pattern | -tbp, --target-branch-pattern | N | Regular expression pattern to extract target branch(es) from pr labels. The branches will be extracted from the pattern's required `target` named capturing group, e.g., `^backport (?([^ ]+))$` | |
| Pull Request | -pr, --pull-request | N | Original pull request url, the one that must be backported, e.g., https://github.com/kiegroup/git-backporting/pull/1 | |
| Configuration File | -cf, --config-file | N | Configuration file, in JSON format, containing all options to be overridded, note that if provided all other CLI options will be ignored | |
| Auth | -a, --auth | N | Git access/authorization token, if provided all token env variables will be ignored. See [auth token](#authorization-token) section for more details | "" |
| Folder | -f, --folder | N | Local folder full name of the repository that will be checked out, e.g., /tmp/folder | {cwd}/bp |
-| Git Client | --git-client | N | Git client type , if not set it is infered from pull-request
| Git User | -gu, --git-user | N | Local git user name | "GitHub" |
| Git Email | -ge, --git-email | N | Local git user email | "noreply@github.com" |
| Title | --title | N | Backporting pull request title | "{original-pr-title}" |
@@ -127,16 +110,13 @@ This tool comes with some inputs that allow users to override the default behavi
| Backport Branch Names | --bp-branch-name | N | Comma separated lists of the backporting pull request branch names, if they exceeds 250 chars they will be truncated | bp-{target-branch}-{sha1}...{shaN} |
| Labels | --labels | N | Provide custom labels to be added to the backporting pull request | [] |
| Inherit labels | --inherit-labels | N | If enabled inherit lables from the original pull request | false |
-| No squash | --no-squash | N | Backport all commits found in the pull request. The default behavior is to only backport the first commit that was merged in the base branch. | |
-| Auto no squash | --auto-no-squash | N | If the pull request was merged or is open, backport all commits. If the pull request commits were squashed, backport the squashed commit. | |
+| No squash | --no-squash | N | If provided the backporting will try to backport all pull request commits without squashing | false |
| Strategy | --strategy | N | Cherry pick merging strategy, see [git-merge](https://git-scm.com/docs/git-merge#_merge_strategies) doc for all possible values | "recursive" |
| Strategy Option | --strategy-option | N | Cherry pick merging strategy option, see [git-merge](https://git-scm.com/docs/git-merge#_merge_strategies) doc for all possible values | "theirs" |
-| Cherry-pick Options | --cherry-pick-options | N | Additional cherry-pick options, see [git-cherry-pick](https://git-scm.com/docs/git-cherry-pick) doc for all possible values | "theirs" |
| Additional comments | --comments | N | Semicolon separated list of additional comments to be posted to the backported pull request | [] |
-| Enable error notification | --enable-err-notification | N | If true, enable the error notification as comment on the original pull request | false |
| Dry Run | -d, --dry-run | N | If enabled the tool does not push nor create anything remotely, use this to skip PR creation | false |
-> **NOTE**: `pull request` and (`target branch` or `target branch pattern`) are *mandatory*, they must be provided as CLI options or as part of the configuration file (if used).
+> **NOTE**: `pull request` and `target branch` are *mandatory*, they must be provided as CLI options or as part of the configuration file (if used).
#### Authorization token
@@ -161,7 +141,7 @@ This is an example of a configuration file that can be used.
"auth": "*****"
}
```
-Keep in mind that its structure MUST match the [Args](src/service/args/args.types.ts) interface, which is actually a camel-case version of the CLI options.
+Keep in mind that its structue MUST match the [Args](src/service/args/args.types.ts) interface, which is actually a camel-case version of the CLI options.
### Supported git services
@@ -263,6 +243,23 @@ For a complete description of all inputs see [Inputs section](#inputs).
- Integrate it into other CI/CD services like gitlab CI.
- Provide some reusable *GitHub* workflows.
+## Migrating to v4
+
+From version `v4` the project has been moved under [@kiegroup](https://github.com/kiegroup) organization. During this migration we changed some things that you should be aware of. I'll try to summarize them in the following table:
+
+> **NOTE**: these changes did not affect the tool features.
+
+| | **v4 (after migration)** | v3 or older (before migration) |
+|-------------|--------------------------|--------------------------------|
+| Owner | kiegroup | lampajr |
+| Repository | git-backporting | backporting |
+| NPM package | @kie/git-backporting | @lampajr/bper |
+| CLI tool | git-backporting | bper |
+
+So everytime you would use older version keep in mind that these changes are madnatory to make the tool working.
+
+> **NOTE**: Versions `v3.1.1` and `v4.0.0` offer identical features; the only distinction lies in the project's renaming and organization movement.
+
## Development
### Package release
@@ -324,4 +321,4 @@ Every change must be submitted through a *GitHub* pull request (PR). Backporting
## License
-Git backporting open source project is licensed under the [MIT](./LICENSE) license.
+Git backporting open source project is licensed under the [MIT](./LICENSE) license.
\ No newline at end of file
diff --git a/action.yml b/action.yml
index d468e9e..aad7087 100644
--- a/action.yml
+++ b/action.yml
@@ -1,122 +1,78 @@
name: "Backporting GitHub Action"
-description: GitHub action providing an automated way to backport pull requests from one branch to another
+description: "GitHub action providing an automated way to backport pull requests from one branch to another"
inputs:
pull-request:
- description: >
- URL of the pull request to backport, e.g., "https://github.com/kiegroup/git-backporting/pull/1"
+ description: "URL of the pull request to backport, e.g., https://github.com/kiegroup/git-backporting/pull/1"
required: false
target-branch:
- description: >
- Comma separated list of branches where the pull request must be backported to
- required: false
- target-branch-pattern:
- description: >
- Regular expression pattern to extract target branch(es) from pr labels.
- The branches will be extracted from the pattern's required `target` named capturing group,
- for instance "^backport (?([^ ]+))$"
+ description: "Comma separated list of branches where the pull request must be backported to"
required: false
config-file:
- description: >
- Path to a file containing the json configuration for this tool,
- the object must match the Args interface
+ description: "Path to a file containing the json configuration for this tool, the object must match the Args interface"
required: false
dry-run:
- description: >
- If enabled the tool does not create any pull request nor push anything remotely
+ description: "If enabled the tool does not create any pull request nor push anything remotely"
required: false
default: "false"
auth:
- description: >
- GITHUB_TOKEN or a `repo` scoped Personal Access Token (PAT),
- if not provided will look for existing env variables like GITHUB_TOKEN
+ description: "GITHUB_TOKEN or a `repo` scoped Personal Access Token (PAT), if not provided will look for existing env variables like GITHUB_TOKEN"
default: ${{ github.token }}
required: false
- git-client:
- description: >
- Git client type , if not set it is infered from pull-request
- required: false
git-user:
- description: Local git user name
+ description: "Local git user name"
default: "GitHub"
required: false
git-email:
- description: Local git user email
+ description: "Local git user email"
default: "noreply@github.com"
required: false
title:
- description: >
- Backporting PR title. Default is the original PR title prefixed by the target branch
+ description: "Backporting PR title. Default is the original PR title prefixed by the target branch"
required: false
body-prefix:
- description: >
- Backporting PR body prefix. Default is `Backport: `
+ description: "Backporting PR body prefix. Default is `Backport: `"
required: false
body:
- description: >
- Backporting PR body. Default is the original PR body
+ description: "Backporting PR body. Default is the original PR body"
required: false
bp-branch-name:
- description: >
- Comma separated list of backporting PR branch names.
- Default is auto-generated from commit and target branches
+ description: "Comma separated list of backporting PR branch names. Default is auto-generated from commit and target branches"
required: false
reviewers:
- description: >
- Comma separated list of reviewers for the backporting pull request
+ description: "Comma separated list of reviewers for the backporting pull request"
required: false
assignees:
- description: >
- Comma separated list of reviewers for the backporting pull request
+ description: "Comma separated list of reviewers for the backporting pull request"
required: false
no-inherit-reviewers:
- description: >
- Considered only if reviewers is empty, if true keep reviewers as empty list,
- otherwise inherit from original pull request
+ description: "Considered only if reviewers is empty, if true keep reviewers as empty list, otherwise inherit from original pull request"
required: false
default: "false"
labels:
- description: >
- Comma separated list of labels to be assigned to the backported pull request
+ description: "Comma separated list of labels to be assigned to the backported pull request"
required: false
inherit-labels:
- description: >
- If true the backported pull request will inherit labels from the original one
+ description: "If true the backported pull request will inherit labels from the original one"
required: false
default: "false"
no-squash:
- description: >
- Backport all commits found in the pull request.
- The default behavior is to only backport the first commit that was merged in the base branch.
- required: false
- auto-no-squash:
- description: >
- If the pull request was merged or is open, backport all commits.
- If the pull request commits were squashed, backport the squashed commit.
+ description: "If set to true the tool will backport all commits as part of the pull request instead of the suqashed one"
required: false
+ default: "false"
strategy:
- description: Cherry-pick merge strategy
+ description: "Cherry-pick merge strategy"
required: false
default: "recursive"
strategy-option:
- description: Cherry-pick merge strategy option
+ description: "Cherry-pick merge strategy option"
required: false
default: "theirs"
- cherry-pick-options:
- description: >
- Additional cherry-pick options
- required: false
comments:
- description: >
- Semicolon separated list of additional comments to be posted to the backported pull request
+ description: "Semicolon separated list of additional comments to be posted to the backported pull request"
required: false
- enable-err-notification:
- description: >
- If true, enable the error notification as comment on the original pull request
- required: false
- default: "false"
runs:
- using: node20
+ using: node16
main: dist/gha/index.js
branding:
diff --git a/dist/cli/index.js b/dist/cli/index.js
index 61bd8fd..7fa7d77 100755
--- a/dist/cli/index.js
+++ b/dist/cli/index.js
@@ -39,21 +39,16 @@ class ArgsParser {
}
parse() {
const args = this.readArgs();
- if (!args.pullRequest) {
- throw new Error("Missing option: pull request must be provided");
- }
// validate and fill with defaults
- if ((!args.targetBranch || args.targetBranch.trim().length == 0) && !args.targetBranchPattern) {
- throw new Error("Missing option: target branch(es) or target regular expression must be provided");
+ if (!args.pullRequest || !args.targetBranch || args.targetBranch.trim().length == 0) {
+ throw new Error("Missing option: pull request and target branches must be provided");
}
return {
pullRequest: args.pullRequest,
targetBranch: args.targetBranch,
- targetBranchPattern: args.targetBranchPattern,
dryRun: this.getOrDefault(args.dryRun, false),
auth: this.getOrDefault(args.auth),
folder: this.getOrDefault(args.folder),
- gitClient: this.getOrDefault(args.gitClient),
gitUser: this.getOrDefault(args.gitUser),
gitEmail: this.getOrDefault(args.gitEmail),
title: this.getOrDefault(args.title),
@@ -66,12 +61,9 @@ class ArgsParser {
labels: this.getOrDefault(args.labels, []),
inheritLabels: this.getOrDefault(args.inheritLabels, false),
squash: this.getOrDefault(args.squash, true),
- autoNoSquash: this.getOrDefault(args.autoNoSquash, false),
strategy: this.getOrDefault(args.strategy),
strategyOption: this.getOrDefault(args.strategyOption),
- cherryPickOptions: this.getOrDefault(args.cherryPickOptions),
- comments: this.getOrDefault(args.comments),
- enableErrorNotification: this.getOrDefault(args.enableErrorNotification, false),
+ comments: this.getOrDefault(args.comments)
};
}
}
@@ -109,7 +101,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
return result;
};
Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.getAsBooleanOrUndefined = exports.getAsSemicolonSeparatedList = exports.getAsCommaSeparatedList = exports.getAsCleanedCommaSeparatedList = exports.getOrUndefined = exports.readConfigFile = exports.parseArgs = void 0;
+exports.getAsBooleanOrDefault = exports.getAsSemicolonSeparatedList = exports.getAsCommaSeparatedList = exports.getAsCleanedCommaSeparatedList = exports.getOrUndefined = exports.readConfigFile = exports.parseArgs = void 0;
const fs = __importStar(__nccwpck_require__(7147));
/**
* Parse the input configuation string as json object and
@@ -160,11 +152,11 @@ function getAsSemicolonSeparatedList(value) {
return trimmed !== "" ? trimmed.split(";").map(v => v.trim()) : undefined;
}
exports.getAsSemicolonSeparatedList = getAsSemicolonSeparatedList;
-function getAsBooleanOrUndefined(value) {
+function getAsBooleanOrDefault(value) {
const trimmed = value.trim();
return trimmed !== "" ? trimmed.toLowerCase() === "true" : undefined;
}
-exports.getAsBooleanOrUndefined = getAsBooleanOrUndefined;
+exports.getAsBooleanOrDefault = getAsBooleanOrDefault;
/***/ }),
@@ -188,11 +180,9 @@ class CLIArgsParser extends args_parser_1.default {
.version(package_json_1.version)
.description(package_json_1.description)
.option("-tb, --target-branch ", "comma separated list of branches where changes must be backported to")
- .option("-tbp, --target-branch-pattern ", "regular expression pattern to extract target branch(es) from pr labels, the branches will be extracted from the pattern's required `target` named capturing group")
.option("-pr, --pull-request ", "pull request url, e.g., https://github.com/kiegroup/git-backporting/pull/1")
.option("-d, --dry-run", "if enabled the tool does not create any pull request nor push anything remotely")
.option("-a, --auth ", "git authentication string, if not provided fallback by looking for existing env variables like GITHUB_TOKEN")
- .option("--git-client ", "git client type, if not set it is infered from --pull-request")
.option("-gu, --git-user ", "local git user name, default is 'GitHub'")
.option("-ge, --git-email ", "local git user email, default is 'noreply@github.com'")
.option("-f, --folder ", "local folder where the repo will be checked out, e.g., /tmp/folder")
@@ -205,13 +195,10 @@ class CLIArgsParser extends args_parser_1.default {
.option("--no-inherit-reviewers", "if provided and reviewers option is empty then inherit them from original pull request")
.option("--labels ", "comma separated list of labels to be assigned to the backported pull request", args_utils_1.getAsCommaSeparatedList)
.option("--inherit-labels", "if true the backported pull request will inherit labels from the original one")
- .option("--no-squash", "backport all commits found in the pull request. The default behavior is to only backport the first commit that was merged in the base branch")
- .option("--auto-no-squash", "if the pull request was merged or is open, backport all commits. If the pull request commits were squashed, backport the squashed commit.")
+ .option("--no-squash", "if provided the tool will backport all commits as part of the pull request")
.option("--strategy ", "cherry-pick merge strategy, default to 'recursive'", undefined)
.option("--strategy-option ", "cherry-pick merge strategy option, default to 'theirs'")
- .option("--cherry-pick-options ", "additional cherry-pick options")
.option("--comments ", "semicolon separated list of additional comments to be posted to the backported pull request", args_utils_1.getAsSemicolonSeparatedList)
- .option("--enable-err-notification", "if true, enable the error notification as comment on the original pull request")
.option("-cf, --config-file ", "configuration file containing all valid options, the json must match Args interface");
}
readArgs() {
@@ -229,9 +216,7 @@ class CLIArgsParser extends args_parser_1.default {
auth: opts.auth,
pullRequest: opts.pullRequest,
targetBranch: opts.targetBranch,
- targetBranchPattern: opts.targetBranchPattern,
folder: opts.folder,
- gitClient: opts.gitClient,
gitUser: opts.gitUser,
gitEmail: opts.gitEmail,
title: opts.title,
@@ -244,12 +229,9 @@ class CLIArgsParser extends args_parser_1.default {
labels: opts.labels,
inheritLabels: opts.inheritLabels,
squash: opts.squash,
- autoNoSquash: opts.autoNoSquash,
strategy: opts.strategy,
strategyOption: opts.strategyOption,
- cherryPickOptions: opts.cherryPickOptions,
comments: opts.comments,
- enableErrorNotification: opts.enableErrNotification,
};
}
return args;
@@ -303,9 +285,7 @@ exports["default"] = ConfigsParser;
"use strict";
Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.AuthTokenId = exports.MESSAGE_TARGET_BRANCH_PLACEHOLDER = exports.MESSAGE_ERROR_PLACEHOLDER = void 0;
-exports.MESSAGE_ERROR_PLACEHOLDER = "{{error}}";
-exports.MESSAGE_TARGET_BRANCH_PLACEHOLDER = "{{target-branch}}";
+exports.AuthTokenId = void 0;
var AuthTokenId;
(function (AuthTokenId) {
// github specific token
@@ -332,7 +312,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
Object.defineProperty(exports, "__esModule", ({ value: true }));
const args_utils_1 = __nccwpck_require__(8048);
const configs_parser_1 = __importDefault(__nccwpck_require__(5799));
-const configs_types_1 = __nccwpck_require__(4753);
const git_client_factory_1 = __importDefault(__nccwpck_require__(8550));
class PullRequestConfigsParser extends configs_parser_1.default {
constructor() {
@@ -341,9 +320,6 @@ class PullRequestConfigsParser extends configs_parser_1.default {
}
async parse(args) {
let pr;
- if (args.autoNoSquash) {
- args.squash = undefined;
- }
try {
pr = await this.gitClient.getPullRequestFromUrl(args.pullRequest, args.squash);
}
@@ -352,18 +328,7 @@ class PullRequestConfigsParser extends configs_parser_1.default {
throw error;
}
const folder = args.folder ?? this.getDefaultFolder();
- let targetBranches = [];
- if (args.targetBranchPattern) {
- // parse labels to extract target branch(es)
- targetBranches = this.getTargetBranchesFromLabels(args.targetBranchPattern, pr.labels);
- if (targetBranches.length === 0) {
- throw new Error(`Unable to extract target branches with regular expression "${args.targetBranchPattern}"`);
- }
- }
- else {
- // target branch must be provided if targetRegExp is missing
- targetBranches = [...new Set((0, args_utils_1.getAsCommaSeparatedList)(args.targetBranch))];
- }
+ const targetBranches = [...new Set((0, args_utils_1.getAsCommaSeparatedList)(args.targetBranch))];
const bpBranchNames = [...new Set(args.bpBranchName ? ((0, args_utils_1.getAsCleanedCommaSeparatedList)(args.bpBranchName) ?? []) : [])];
if (bpBranchNames.length > 1 && bpBranchNames.length != targetBranches.length) {
throw new Error(`The number of backport branch names, if provided, must match the number of target branches or just one, provided ${bpBranchNames.length} branch names instead`);
@@ -374,48 +339,17 @@ class PullRequestConfigsParser extends configs_parser_1.default {
folder: `${folder.startsWith("/") ? "" : process.cwd() + "/"}${args.folder ?? this.getDefaultFolder()}`,
mergeStrategy: args.strategy,
mergeStrategyOption: args.strategyOption,
- cherryPickOptions: args.cherryPickOptions,
originalPullRequest: pr,
backportPullRequests: this.generateBackportPullRequestsData(pr, args, targetBranches, bpBranchNames),
git: {
user: args.gitUser ?? this.gitClient.getDefaultGitUser(),
email: args.gitEmail ?? this.gitClient.getDefaultGitEmail(),
- },
- errorNotification: {
- enabled: args.enableErrorNotification ?? false,
- message: this.getDefaultErrorComment(),
- },
+ }
};
}
getDefaultFolder() {
return "bp";
}
- getDefaultErrorComment() {
- // TODO: fetch from arg or set default with placeholder {{error}}
- return `The backport to \`${configs_types_1.MESSAGE_TARGET_BRANCH_PLACEHOLDER}\` failed. Check the latest run for more details.`;
- }
- /**
- * Parse the provided labels and return a list of target branches
- * obtained by applying the provided pattern as regular expression extractor
- * @param pattern reg exp pattern to extract target branch from label name
- * @param labels list of labels to check
- * @returns list of target branches
- */
- getTargetBranchesFromLabels(pattern, labels) {
- this.logger.debug(`Extracting branches from [${labels}] using ${pattern}`);
- const regExp = new RegExp(pattern);
- const branches = [];
- for (const l of labels) {
- const result = regExp.exec(l);
- if (result?.groups) {
- const { target } = result.groups;
- if (target) {
- branches.push(target);
- }
- }
- }
- return [...new Set(branches)];
- }
/**
* Create a backport pull request starting from the target branch and
* the original pr to be backported
@@ -541,13 +475,6 @@ class GitCLIService {
return;
}
this.logger.info(`Folder ${to} already exist. Won't clone`);
- // ensure the working tree is properly reset - no stale changes
- // from previous (failed) backport
- const ongoingCherryPick = await this.anyConflict(to);
- if (ongoingCherryPick) {
- this.logger.warn("Found previously failed cherry-pick, aborting it");
- await this.git(to).raw(["cherry-pick", "--abort"]);
- }
// checkout to the proper branch
this.logger.info(`Checking out branch ${branch}`);
await this.git(to).checkout(branch);
@@ -586,14 +513,9 @@ class GitCLIService {
* @param cwd repository in which the sha should be cherry picked to
* @param sha commit sha
*/
- async cherryPick(cwd, sha, strategy = "recursive", strategyOption = "theirs", cherryPickOptions) {
+ async cherryPick(cwd, sha, strategy = "recursive", strategyOption = "theirs") {
this.logger.info(`Cherry picking ${sha}`);
- let options = ["cherry-pick", "-m", "1", `--strategy=${strategy}`, `--strategy-option=${strategyOption}`];
- if (cherryPickOptions !== undefined) {
- options = options.concat(cherryPickOptions.split(" "));
- }
- options.push(sha);
- this.logger.debug(`Cherry picking command git ${options}`);
+ const options = ["cherry-pick", "-m", "1", `--strategy=${strategy}`, `--strategy-option=${strategyOption}`, sha];
try {
await this.git(cwd).raw(options);
}
@@ -605,20 +527,6 @@ class GitCLIService {
throw error;
}
}
- /**
- * Check whether there are some conflicts in the current working directory
- * which means there is an ongoing cherry-pick that did not complete successfully
- * @param cwd repository in which the check should be performed
- * @return true if there is some conflict, false otherwise
- */
- async anyConflict(cwd) {
- const status = await this.git(cwd).status();
- if (status.conflicted.length > 0) {
- this.logger.debug(`Found conflicts in branch ${status.current}`);
- return true;
- }
- return false;
- }
/**
* Push a branch to a remote
* @param cwd repository in which the push should be performed
@@ -702,16 +610,12 @@ GitClientFactory.logger = logger_service_factory_1.default.getLogger();
/***/ }),
/***/ 9080:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
"use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
-};
Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.getEnv = exports.getGitTokenFromEnv = exports.inferSquash = exports.inferGitApiUrl = exports.inferGitClient = void 0;
-const logger_service_factory_1 = __importDefault(__nccwpck_require__(8936));
+exports.getEnv = exports.getGitTokenFromEnv = exports.inferGitApiUrl = exports.inferGitClient = void 0;
const git_types_1 = __nccwpck_require__(750);
const configs_types_1 = __nccwpck_require__(4753);
const PUBLIC_GITHUB_URL = "https://github.com";
@@ -751,30 +655,6 @@ const inferGitApiUrl = (prUrl, apiVersion = "v4") => {
return `${baseUrl}/api/${apiVersion}`;
};
exports.inferGitApiUrl = inferGitApiUrl;
-/**
- * Infer the value of the squash option
- * @param open true if the pull/merge request is still open
- * @param squash_commit undefined or null if the pull/merge request was merged, the sha of the squashed commit if it was squashed
- * @returns true if a single commit must be cherry-picked, false if all merged commits must be cherry-picked
- */
-const inferSquash = (open, squash_commit) => {
- const logger = logger_service_factory_1.default.getLogger();
- if (open) {
- logger.debug("cherry-pick all commits because they have not been merged (or squashed) in the base branch yet");
- return false;
- }
- else {
- if (squash_commit) {
- logger.debug(`cherry-pick the squashed commit ${squash_commit}`);
- return true;
- }
- else {
- logger.debug("cherry-pick the merged commit(s)");
- return false;
- }
- }
-};
-exports.inferSquash = inferSquash;
/**
* Retrieve the git token from env variable, the default is taken from GIT_TOKEN env.
* All specific git env variable have precedence and override the default one.
@@ -850,7 +730,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", ({ value: true }));
-const git_util_1 = __nccwpck_require__(9080);
const git_types_1 = __nccwpck_require__(750);
const github_mapper_1 = __importDefault(__nccwpck_require__(5764));
const octokit_factory_1 = __importDefault(__nccwpck_require__(4257));
@@ -873,28 +752,13 @@ class GitHubClient {
getDefaultGitEmail() {
return "noreply@github.com";
}
- async getPullRequest(owner, repo, prNumber, squash) {
+ async getPullRequest(owner, repo, prNumber, squash = true) {
this.logger.debug(`Fetching pull request ${owner}/${repo}/${prNumber}`);
const { data } = await this.octokit.rest.pulls.get({
owner: owner,
repo: repo,
pull_number: prNumber,
});
- if (squash === undefined) {
- let commit_sha = undefined;
- const open = data.state == "open";
- if (!open) {
- const commit = await this.octokit.rest.git.getCommit({
- owner: owner,
- repo: repo,
- commit_sha: data.merge_commit_sha,
- });
- if (commit.data.parents.length === 1) {
- commit_sha = data.merge_commit_sha;
- }
- }
- squash = (0, git_util_1.inferSquash)(open, commit_sha);
- }
const commits = [];
if (!squash) {
// fetch all commits
@@ -905,11 +769,6 @@ class GitHubClient {
pull_number: prNumber,
});
commits.push(...data.map(c => c.sha));
- if (this.isForCodeberg) {
- // For some reason, even though Codeberg advertises API compatibility
- // with GitHub, it returns commits in reversed order.
- commits.reverse();
- }
}
catch (error) {
throw new Error(`Failed to retrieve commits for pull request n. ${prNumber}`);
@@ -917,7 +776,7 @@ class GitHubClient {
}
return this.mapper.mapPullRequest(data, commits);
}
- async getPullRequestFromUrl(prUrl, squash) {
+ async getPullRequestFromUrl(prUrl, squash = true) {
const { owner, project, id } = this.extractPullRequestData(prUrl);
return this.getPullRequest(owner, project, id, squash);
}
@@ -974,26 +833,6 @@ class GitHubClient {
await Promise.all(promises);
return data.html_url;
}
- async createPullRequestComment(prUrl, comment) {
- let commentUrl = undefined;
- try {
- const { owner, project, id } = this.extractPullRequestData(prUrl);
- const { data } = await this.octokit.issues.createComment({
- owner: owner,
- repo: project,
- issue_number: id,
- body: comment
- });
- if (!data) {
- throw new Error("Pull request comment creation failed");
- }
- commentUrl = data.url;
- }
- catch (error) {
- this.logger.error(`Error creating comment on pull request ${prUrl}: ${error}`);
- }
- return commentUrl;
- }
// UTILS
/**
* Extract repository owner and project from the pull request url
@@ -1041,8 +880,8 @@ class GitHubMapper {
state: this.mapGitState(pr.state),
merged: pr.merged ?? false,
mergedBy: pr.merged_by?.login,
- reviewers: pr.requested_reviewers?.filter(r => r && "login" in r).map((r => r?.login)) ?? [],
- assignees: pr.assignees?.filter(r => r && "login" in r).map(r => r.login) ?? [],
+ reviewers: pr.requested_reviewers?.filter(r => "login" in r).map((r => r?.login)) ?? [],
+ assignees: pr.assignees?.filter(r => "login" in r).map(r => r.login) ?? [],
labels: pr.labels?.map(l => l.name) ?? [],
sourceRepo: await this.mapSourceRepo(pr),
targetRepo: await this.mapTargetRepo(pr),
@@ -1116,7 +955,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", ({ value: true }));
-const git_util_1 = __nccwpck_require__(9080);
const git_types_1 = __nccwpck_require__(750);
const logger_service_factory_1 = __importDefault(__nccwpck_require__(8936));
const gitlab_mapper_1 = __importDefault(__nccwpck_require__(2675));
@@ -1149,14 +987,9 @@ class GitLabClient {
}
// READ
// example: /api/v4/projects/%2Fbackporting-example/merge_requests/1
- async getPullRequest(namespace, repo, mrNumber, squash) {
+ async getPullRequest(namespace, repo, mrNumber, squash = true) {
const projectId = this.getProjectId(namespace, repo);
- const url = `/projects/${projectId}/merge_requests/${mrNumber}`;
- this.logger.debug(`Fetching pull request ${url}`);
- const { data } = await this.client.get(`${url}`);
- if (squash === undefined) {
- squash = (0, git_util_1.inferSquash)(data.state === "opened", data.squash_commit_sha);
- }
+ const { data } = await this.client.get(`/projects/${projectId}/merge_requests/${mrNumber}`);
const commits = [];
if (!squash) {
// fetch all commits
@@ -1171,7 +1004,7 @@ class GitLabClient {
}
return this.mapper.mapPullRequest(data, commits);
}
- getPullRequestFromUrl(mrUrl, squash) {
+ getPullRequestFromUrl(mrUrl, squash = true) {
const { namespace, project, id } = this.extractMergeRequestData(mrUrl);
return this.getPullRequest(namespace, project, id, squash);
}
@@ -1237,25 +1070,6 @@ class GitLabClient {
await Promise.all(promises);
return mr.web_url;
}
- // https://docs.gitlab.com/ee/api/notes.html#create-new-issue-note
- async createPullRequestComment(mrUrl, comment) {
- const commentUrl = undefined;
- try {
- const { namespace, project, id } = this.extractMergeRequestData(mrUrl);
- const projectId = this.getProjectId(namespace, project);
- const { data } = await this.client.post(`/projects/${projectId}/merge_requests/${id}/notes`, {
- body: comment,
- });
- if (!data) {
- throw new Error("Merge request comment creation failed");
- }
- }
- catch (error) {
- this.logger.error(`Error creating comment on merge request ${mrUrl}: ${error}`);
- }
- return commentUrl;
- }
- // UTILS
/**
* Retrieve a gitlab user given its username
* @param username
@@ -1403,9 +1217,6 @@ class ConsoleLoggerService {
setContext(newContext) {
this.context = newContext;
}
- getContext() {
- return this.context;
- }
clearContext() {
this.context = undefined;
}
@@ -1482,39 +1293,6 @@ class Logger {
exports["default"] = Logger;
-/***/ }),
-
-/***/ 9632:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.injectTargetBranch = exports.injectError = void 0;
-const configs_types_1 = __nccwpck_require__(4753);
-/**
- * Inject the error message in the provided `message`.
- * This is injected in place of the MESSAGE_ERROR_PLACEHOLDER placeholder
- * @param message string that needs to be updated
- * @param errMsg the error message that needs to be injected
- */
-const injectError = (message, errMsg) => {
- return message.replace(configs_types_1.MESSAGE_ERROR_PLACEHOLDER, errMsg);
-};
-exports.injectError = injectError;
-/**
- * Inject the target branch into the provided `message`.
- * This is injected in place of the MESSAGE_TARGET_BRANCH_PLACEHOLDER placeholder
- * @param message string that needs to be updated
- * @param targetBranch the target branch to inject
- * @returns
- */
-const injectTargetBranch = (message, targetBranch) => {
- return message.replace(configs_types_1.MESSAGE_TARGET_BRANCH_PLACEHOLDER, targetBranch);
-};
-exports.injectTargetBranch = injectTargetBranch;
-
-
/***/ }),
/***/ 8810:
@@ -1532,7 +1310,6 @@ const git_client_factory_1 = __importDefault(__nccwpck_require__(8550));
const git_types_1 = __nccwpck_require__(750);
const logger_service_factory_1 = __importDefault(__nccwpck_require__(8936));
const git_util_1 = __nccwpck_require__(9080);
-const runner_util_1 = __nccwpck_require__(9632);
/**
* Main runner implementation, it implements the core logic flow
*/
@@ -1566,13 +1343,7 @@ class Runner {
this.logger.warn("Dry run enabled");
}
// 2. init git service
- let gitClientType;
- if (args.gitClient === undefined) {
- gitClientType = (0, git_util_1.inferGitClient)(args.pullRequest);
- }
- else {
- gitClientType = args.gitClient;
- }
+ const gitClientType = (0, git_util_1.inferGitClient)(args.pullRequest);
// the api version is ignored in case of github
const apiUrl = (0, git_util_1.inferGitApiUrl)(args.pullRequest, gitClientType === git_types_1.GitClientType.CODEBERG ? "v1" : undefined);
const token = this.fetchToken(args, gitClientType);
@@ -1597,12 +1368,6 @@ class Runner {
}
catch (error) {
this.logger.error(`Something went wrong backporting to ${pr.base}: ${error}`);
- if (!configs.dryRun && configs.errorNotification.enabled && configs.errorNotification.message.length > 0) {
- // notify the failure as comment in the original pull request
- let comment = (0, runner_util_1.injectError)(configs.errorNotification.message, error);
- comment = (0, runner_util_1.injectTargetBranch)(comment, pr.base);
- await gitApi.createPullRequestComment(configs.originalPullRequest.url, comment);
- }
failures.push(error);
}
}
@@ -1648,7 +1413,7 @@ class Runner {
// 7. apply all changes to the new branch
this.logger.debug("Cherry picking commits..");
for (const sha of originalPR.commits) {
- await git.gitCli.cherryPick(configs.folder, sha, configs.mergeStrategy, configs.mergeStrategyOption, configs.cherryPickOptions);
+ await git.gitCli.cherryPick(configs.folder, sha, configs.mergeStrategy, configs.mergeStrategyOption);
}
if (!configs.dryRun) {
// 8. push the new branch to origin
@@ -6117,7 +5882,6 @@ var preservedUrlFields = [
"protocol",
"query",
"search",
- "hash",
];
// Create handlers that pass events from native requests
@@ -6551,7 +6315,7 @@ RedirectableRequest.prototype._processResponse = function (response) {
redirectUrl.protocol !== "https:" ||
redirectUrl.host !== currentHost &&
!isSubdomain(redirectUrl.host, currentHost)) {
- removeMatchingHeaders(/^(?:(?:proxy-)?authorization|cookie)$/i, this._options.headers);
+ removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers);
}
// Evaluate the beforeRedirect callback
@@ -16268,14 +16032,6 @@ module.exports = require("child_process");
/***/ }),
-/***/ 6113:
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("crypto");
-
-/***/ }),
-
/***/ 2361:
/***/ ((module) => {
@@ -19644,11 +19400,10 @@ exports.suggestSimilar = suggestSimilar;
/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
"use strict";
-/*! Axios v1.8.4 Copyright (c) 2025 Matt Zabriskie and contributors */
+// Axios v1.6.0 Copyright (c) 2023 Matt Zabriskie and contributors
const FormData$1 = __nccwpck_require__(4334);
-const crypto = __nccwpck_require__(6113);
const url = __nccwpck_require__(7310);
const proxyFromEnv = __nccwpck_require__(3329);
const http = __nccwpck_require__(3685);
@@ -19657,20 +19412,19 @@ const util = __nccwpck_require__(3837);
const followRedirects = __nccwpck_require__(7707);
const zlib = __nccwpck_require__(9796);
const stream = __nccwpck_require__(2781);
-const events = __nccwpck_require__(2361);
+const EventEmitter = __nccwpck_require__(2361);
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
const FormData__default = /*#__PURE__*/_interopDefaultLegacy(FormData$1);
-const crypto__default = /*#__PURE__*/_interopDefaultLegacy(crypto);
const url__default = /*#__PURE__*/_interopDefaultLegacy(url);
-const proxyFromEnv__default = /*#__PURE__*/_interopDefaultLegacy(proxyFromEnv);
const http__default = /*#__PURE__*/_interopDefaultLegacy(http);
const https__default = /*#__PURE__*/_interopDefaultLegacy(https);
const util__default = /*#__PURE__*/_interopDefaultLegacy(util);
const followRedirects__default = /*#__PURE__*/_interopDefaultLegacy(followRedirects);
const zlib__default = /*#__PURE__*/_interopDefaultLegacy(zlib);
const stream__default = /*#__PURE__*/_interopDefaultLegacy(stream);
+const EventEmitter__default = /*#__PURE__*/_interopDefaultLegacy(EventEmitter);
function bind(fn, thisArg) {
return function wrap() {
@@ -19885,8 +19639,6 @@ const isFormData = (thing) => {
*/
const isURLSearchParams = kindOfTest('URLSearchParams');
-const [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);
-
/**
* Trim excess whitespace off the beginning and end of a string
*
@@ -20275,7 +20027,28 @@ const toObjectSet = (arrayOrString, delimiter) => {
const noop = () => {};
const toFiniteNumber = (value, defaultValue) => {
- return value != null && Number.isFinite(value = +value) ? value : defaultValue;
+ value = +value;
+ return Number.isFinite(value) ? value : defaultValue;
+};
+
+const ALPHA = 'abcdefghijklmnopqrstuvwxyz';
+
+const DIGIT = '0123456789';
+
+const ALPHABET = {
+ DIGIT,
+ ALPHA,
+ ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT
+};
+
+const generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {
+ let str = '';
+ const {length} = alphabet;
+ while (size--) {
+ str += alphabet[Math.random() * length|0];
+ }
+
+ return str;
};
/**
@@ -20325,37 +20098,7 @@ const isAsyncFn = kindOfTest('AsyncFunction');
const isThenable = (thing) =>
thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);
-// original code
-// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34
-
-const _setImmediate = ((setImmediateSupported, postMessageSupported) => {
- if (setImmediateSupported) {
- return setImmediate;
- }
-
- return postMessageSupported ? ((token, callbacks) => {
- _global.addEventListener("message", ({source, data}) => {
- if (source === _global && data === token) {
- callbacks.length && callbacks.shift()();
- }
- }, false);
-
- return (cb) => {
- callbacks.push(cb);
- _global.postMessage(token, "*");
- }
- })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);
-})(
- typeof setImmediate === 'function',
- isFunction(_global.postMessage)
-);
-
-const asap = typeof queueMicrotask !== 'undefined' ?
- queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);
-
-// *********************
-
-const utils$1 = {
+const utils = {
isArray,
isArrayBuffer,
isBuffer,
@@ -20366,10 +20109,6 @@ const utils$1 = {
isBoolean,
isObject,
isPlainObject,
- isReadableStream,
- isRequest,
- isResponse,
- isHeaders,
isUndefined,
isDate,
isFile,
@@ -20405,12 +20144,12 @@ const utils$1 = {
findKey,
global: _global,
isContextDefined,
+ ALPHABET,
+ generateString,
isSpecCompliantForm,
toJSONObject,
isAsyncFn,
- isThenable,
- setImmediate: _setImmediate,
- asap
+ isThenable
};
/**
@@ -20438,13 +20177,10 @@ function AxiosError(message, code, config, request, response) {
code && (this.code = code);
config && (this.config = config);
request && (this.request = request);
- if (response) {
- this.response = response;
- this.status = response.status ? response.status : null;
- }
+ response && (this.response = response);
}
-utils$1.inherits(AxiosError, Error, {
+utils.inherits(AxiosError, Error, {
toJSON: function toJSON() {
return {
// Standard
@@ -20459,9 +20195,9 @@ utils$1.inherits(AxiosError, Error, {
columnNumber: this.columnNumber,
stack: this.stack,
// Axios
- config: utils$1.toJSONObject(this.config),
+ config: utils.toJSONObject(this.config),
code: this.code,
- status: this.status
+ status: this.response && this.response.status ? this.response.status : null
};
}
});
@@ -20494,7 +20230,7 @@ Object.defineProperty(prototype$1, 'isAxiosError', {value: true});
AxiosError.from = (error, code, config, request, response, customProps) => {
const axiosError = Object.create(prototype$1);
- utils$1.toFlatObject(error, axiosError, function filter(obj) {
+ utils.toFlatObject(error, axiosError, function filter(obj) {
return obj !== Error.prototype;
}, prop => {
return prop !== 'isAxiosError';
@@ -20519,7 +20255,7 @@ AxiosError.from = (error, code, config, request, response, customProps) => {
* @returns {boolean}
*/
function isVisitable(thing) {
- return utils$1.isPlainObject(thing) || utils$1.isArray(thing);
+ return utils.isPlainObject(thing) || utils.isArray(thing);
}
/**
@@ -20530,7 +20266,7 @@ function isVisitable(thing) {
* @returns {string} the key without the brackets.
*/
function removeBrackets(key) {
- return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key;
+ return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;
}
/**
@@ -20559,10 +20295,10 @@ function renderKey(path, key, dots) {
* @returns {boolean}
*/
function isFlatArray(arr) {
- return utils$1.isArray(arr) && !arr.some(isVisitable);
+ return utils.isArray(arr) && !arr.some(isVisitable);
}
-const predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) {
+const predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {
return /^is[A-Z]/.test(prop);
});
@@ -20590,7 +20326,7 @@ const predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop)
* @returns
*/
function toFormData(obj, formData, options) {
- if (!utils$1.isObject(obj)) {
+ if (!utils.isObject(obj)) {
throw new TypeError('target must be an object');
}
@@ -20598,13 +20334,13 @@ function toFormData(obj, formData, options) {
formData = formData || new (FormData__default["default"] || FormData)();
// eslint-disable-next-line no-param-reassign
- options = utils$1.toFlatObject(options, {
+ options = utils.toFlatObject(options, {
metaTokens: true,
dots: false,
indexes: false
}, false, function defined(option, source) {
// eslint-disable-next-line no-eq-null,eqeqeq
- return !utils$1.isUndefined(source[option]);
+ return !utils.isUndefined(source[option]);
});
const metaTokens = options.metaTokens;
@@ -20613,24 +20349,24 @@ function toFormData(obj, formData, options) {
const dots = options.dots;
const indexes = options.indexes;
const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;
- const useBlob = _Blob && utils$1.isSpecCompliantForm(formData);
+ const useBlob = _Blob && utils.isSpecCompliantForm(formData);
- if (!utils$1.isFunction(visitor)) {
+ if (!utils.isFunction(visitor)) {
throw new TypeError('visitor must be a function');
}
function convertValue(value) {
if (value === null) return '';
- if (utils$1.isDate(value)) {
+ if (utils.isDate(value)) {
return value.toISOString();
}
- if (!useBlob && utils$1.isBlob(value)) {
+ if (!useBlob && utils.isBlob(value)) {
throw new AxiosError('Blob is not supported. Use a Buffer instead.');
}
- if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) {
+ if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {
return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);
}
@@ -20651,20 +20387,20 @@ function toFormData(obj, formData, options) {
let arr = value;
if (value && !path && typeof value === 'object') {
- if (utils$1.endsWith(key, '{}')) {
+ if (utils.endsWith(key, '{}')) {
// eslint-disable-next-line no-param-reassign
key = metaTokens ? key : key.slice(0, -2);
// eslint-disable-next-line no-param-reassign
value = JSON.stringify(value);
} else if (
- (utils$1.isArray(value) && isFlatArray(value)) ||
- ((utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))
+ (utils.isArray(value) && isFlatArray(value)) ||
+ ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))
)) {
// eslint-disable-next-line no-param-reassign
key = removeBrackets(key);
arr.forEach(function each(el, index) {
- !(utils$1.isUndefined(el) || el === null) && formData.append(
+ !(utils.isUndefined(el) || el === null) && formData.append(
// eslint-disable-next-line no-nested-ternary
indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),
convertValue(el)
@@ -20692,7 +20428,7 @@ function toFormData(obj, formData, options) {
});
function build(value, path) {
- if (utils$1.isUndefined(value)) return;
+ if (utils.isUndefined(value)) return;
if (stack.indexOf(value) !== -1) {
throw Error('Circular reference detected in ' + path.join('.'));
@@ -20700,9 +20436,9 @@ function toFormData(obj, formData, options) {
stack.push(value);
- utils$1.forEach(value, function each(el, key) {
- const result = !(utils$1.isUndefined(el) || el === null) && visitor.call(
- formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers
+ utils.forEach(value, function each(el, key) {
+ const result = !(utils.isUndefined(el) || el === null) && visitor.call(
+ formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers
);
if (result === true) {
@@ -20713,7 +20449,7 @@ function toFormData(obj, formData, options) {
stack.pop();
}
- if (!utils$1.isObject(obj)) {
+ if (!utils.isObject(obj)) {
throw new TypeError('data must be an object');
}
@@ -20798,7 +20534,7 @@ function encode(val) {
*
* @param {string} url The base of the url (e.g., http://www.google.com)
* @param {object} [params] The params to be appended
- * @param {?(object|Function)} options
+ * @param {?object} options
*
* @returns {string} The formatted url
*/
@@ -20810,12 +20546,6 @@ function buildURL(url, params, options) {
const _encode = options && options.encode || encode;
- if (utils$1.isFunction(options)) {
- options = {
- serialize: options
- };
- }
-
const serializeFn = options && options.serialize;
let serializedParams;
@@ -20823,7 +20553,7 @@ function buildURL(url, params, options) {
if (serializeFn) {
serializedParams = serializeFn(params, options);
} else {
- serializedParams = utils$1.isURLSearchParams(params) ?
+ serializedParams = utils.isURLSearchParams(params) ?
params.toString() :
new AxiosURLSearchParams(params, options).toString(_encode);
}
@@ -20898,7 +20628,7 @@ class InterceptorManager {
* @returns {void}
*/
forEach(fn) {
- utils$1.forEach(this.handlers, function forEachHandler(h) {
+ utils.forEach(this.handlers, function forEachHandler(h) {
if (h !== null) {
fn(h);
}
@@ -20916,103 +20646,20 @@ const transitionalDefaults = {
const URLSearchParams = url__default["default"].URLSearchParams;
-const ALPHA = 'abcdefghijklmnopqrstuvwxyz';
-
-const DIGIT = '0123456789';
-
-const ALPHABET = {
- DIGIT,
- ALPHA,
- ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT
-};
-
-const generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {
- let str = '';
- const {length} = alphabet;
- const randomValues = new Uint32Array(size);
- crypto__default["default"].randomFillSync(randomValues);
- for (let i = 0; i < size; i++) {
- str += alphabet[randomValues[i] % length];
- }
-
- return str;
-};
-
-
-const platform$1 = {
+const platform = {
isNode: true,
classes: {
URLSearchParams,
FormData: FormData__default["default"],
Blob: typeof Blob !== 'undefined' && Blob || null
},
- ALPHABET,
- generateString,
protocols: [ 'http', 'https', 'file', 'data' ]
};
-const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';
-
-const _navigator = typeof navigator === 'object' && navigator || undefined;
-
-/**
- * Determine if we're running in a standard browser environment
- *
- * This allows axios to run in a web worker, and react-native.
- * Both environments support XMLHttpRequest, but not fully standard globals.
- *
- * web workers:
- * typeof window -> undefined
- * typeof document -> undefined
- *
- * react-native:
- * navigator.product -> 'ReactNative'
- * nativescript
- * navigator.product -> 'NativeScript' or 'NS'
- *
- * @returns {boolean}
- */
-const hasStandardBrowserEnv = hasBrowserEnv &&
- (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);
-
-/**
- * Determine if we're running in a standard browser webWorker environment
- *
- * Although the `isStandardBrowserEnv` method indicates that
- * `allows axios to run in a web worker`, the WebWorker will still be
- * filtered out due to its judgment standard
- * `typeof window !== 'undefined' && typeof document !== 'undefined'`.
- * This leads to a problem when axios post `FormData` in webWorker
- */
-const hasStandardBrowserWebWorkerEnv = (() => {
- return (
- typeof WorkerGlobalScope !== 'undefined' &&
- // eslint-disable-next-line no-undef
- self instanceof WorkerGlobalScope &&
- typeof self.importScripts === 'function'
- );
-})();
-
-const origin = hasBrowserEnv && window.location.href || 'http://localhost';
-
-const utils = /*#__PURE__*/Object.freeze({
- __proto__: null,
- hasBrowserEnv: hasBrowserEnv,
- hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv,
- hasStandardBrowserEnv: hasStandardBrowserEnv,
- navigator: _navigator,
- origin: origin
-});
-
-const platform = {
- ...utils,
- ...platform$1
-};
-
function toURLEncodedForm(data, options) {
return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({
visitor: function(value, key, path, helpers) {
- if (platform.isNode && utils$1.isBuffer(value)) {
+ if (utils.isBuffer(value)) {
this.append(key, value.toString('base64'));
return false;
}
@@ -21034,7 +20681,7 @@ function parsePropPath(name) {
// foo.x.y.z
// foo-x-y-z
// foo x y z
- return utils$1.matchAll(/\w+|\[(\w*)]/g, name).map(match => {
+ return utils.matchAll(/\w+|\[(\w*)]/g, name).map(match => {
return match[0] === '[]' ? '' : match[1] || match[0];
});
}
@@ -21069,15 +20716,12 @@ function arrayToObject(arr) {
function formDataToJSON(formData) {
function buildPath(path, value, target, index) {
let name = path[index++];
-
- if (name === '__proto__') return true;
-
const isNumericKey = Number.isFinite(+name);
const isLast = index >= path.length;
- name = !name && utils$1.isArray(target) ? target.length : name;
+ name = !name && utils.isArray(target) ? target.length : name;
if (isLast) {
- if (utils$1.hasOwnProp(target, name)) {
+ if (utils.hasOwnProp(target, name)) {
target[name] = [target[name], value];
} else {
target[name] = value;
@@ -21086,23 +20730,23 @@ function formDataToJSON(formData) {
return !isNumericKey;
}
- if (!target[name] || !utils$1.isObject(target[name])) {
+ if (!target[name] || !utils.isObject(target[name])) {
target[name] = [];
}
const result = buildPath(path, value, target[name], index);
- if (result && utils$1.isArray(target[name])) {
+ if (result && utils.isArray(target[name])) {
target[name] = arrayToObject(target[name]);
}
return !isNumericKey;
}
- if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) {
+ if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {
const obj = {};
- utils$1.forEachEntry(formData, (name, value) => {
+ utils.forEachEntry(formData, (name, value) => {
buildPath(parsePropPath(name), value, obj, 0);
});
@@ -21123,10 +20767,10 @@ function formDataToJSON(formData) {
* @returns {string} A stringified version of the rawValue.
*/
function stringifySafely(rawValue, parser, encoder) {
- if (utils$1.isString(rawValue)) {
+ if (utils.isString(rawValue)) {
try {
(parser || JSON.parse)(rawValue);
- return utils$1.trim(rawValue);
+ return utils.trim(rawValue);
} catch (e) {
if (e.name !== 'SyntaxError') {
throw e;
@@ -21141,36 +20785,38 @@ const defaults = {
transitional: transitionalDefaults,
- adapter: ['xhr', 'http', 'fetch'],
+ adapter: ['xhr', 'http'],
transformRequest: [function transformRequest(data, headers) {
const contentType = headers.getContentType() || '';
const hasJSONContentType = contentType.indexOf('application/json') > -1;
- const isObjectPayload = utils$1.isObject(data);
+ const isObjectPayload = utils.isObject(data);
- if (isObjectPayload && utils$1.isHTMLForm(data)) {
+ if (isObjectPayload && utils.isHTMLForm(data)) {
data = new FormData(data);
}
- const isFormData = utils$1.isFormData(data);
+ const isFormData = utils.isFormData(data);
if (isFormData) {
+ if (!hasJSONContentType) {
+ return data;
+ }
return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;
}
- if (utils$1.isArrayBuffer(data) ||
- utils$1.isBuffer(data) ||
- utils$1.isStream(data) ||
- utils$1.isFile(data) ||
- utils$1.isBlob(data) ||
- utils$1.isReadableStream(data)
+ if (utils.isArrayBuffer(data) ||
+ utils.isBuffer(data) ||
+ utils.isStream(data) ||
+ utils.isFile(data) ||
+ utils.isBlob(data)
) {
return data;
}
- if (utils$1.isArrayBufferView(data)) {
+ if (utils.isArrayBufferView(data)) {
return data.buffer;
}
- if (utils$1.isURLSearchParams(data)) {
+ if (utils.isURLSearchParams(data)) {
headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);
return data.toString();
}
@@ -21182,7 +20828,7 @@ const defaults = {
return toURLEncodedForm(data, this.formSerializer).toString();
}
- if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {
+ if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {
const _FormData = this.env && this.env.FormData;
return toFormData(
@@ -21206,11 +20852,7 @@ const defaults = {
const forcedJSONParsing = transitional && transitional.forcedJSONParsing;
const JSONRequested = this.responseType === 'json';
- if (utils$1.isResponse(data) || utils$1.isReadableStream(data)) {
- return data;
- }
-
- if (data && utils$1.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {
+ if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {
const silentJSONParsing = transitional && transitional.silentJSONParsing;
const strictJSONParsing = !silentJSONParsing && JSONRequested;
@@ -21258,7 +20900,7 @@ const defaults = {
}
};
-utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {
+utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {
defaults.headers[method] = {};
});
@@ -21266,7 +20908,7 @@ const defaults$1 = defaults;
// RawAxiosHeaders whose duplicates are ignored by node
// c.f. https://nodejs.org/api/http.html#http_message_headers
-const ignoreDuplicateOf = utils$1.toObjectSet([
+const ignoreDuplicateOf = utils.toObjectSet([
'age', 'authorization', 'content-length', 'content-type', 'etag',
'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',
'last-modified', 'location', 'max-forwards', 'proxy-authorization',
@@ -21327,7 +20969,7 @@ function normalizeValue(value) {
return value;
}
- return utils$1.isArray(value) ? value.map(normalizeValue) : String(value);
+ return utils.isArray(value) ? value.map(normalizeValue) : String(value);
}
function parseTokens(str) {
@@ -21345,7 +20987,7 @@ function parseTokens(str) {
const isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());
function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {
- if (utils$1.isFunction(filter)) {
+ if (utils.isFunction(filter)) {
return filter.call(this, value, header);
}
@@ -21353,13 +20995,13 @@ function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {
value = header;
}
- if (!utils$1.isString(value)) return;
+ if (!utils.isString(value)) return;
- if (utils$1.isString(filter)) {
+ if (utils.isString(filter)) {
return value.indexOf(filter) !== -1;
}
- if (utils$1.isRegExp(filter)) {
+ if (utils.isRegExp(filter)) {
return filter.test(value);
}
}
@@ -21372,7 +21014,7 @@ function formatHeader(header) {
}
function buildAccessors(obj, header) {
- const accessorName = utils$1.toCamelCase(' ' + header);
+ const accessorName = utils.toCamelCase(' ' + header);
['get', 'set', 'has'].forEach(methodName => {
Object.defineProperty(obj, methodName + accessorName, {
@@ -21399,7 +21041,7 @@ class AxiosHeaders {
throw new Error('header name must be a non-empty string');
}
- const key = utils$1.findKey(self, lHeader);
+ const key = utils.findKey(self, lHeader);
if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {
self[key || _header] = normalizeValue(_value);
@@ -21407,16 +21049,12 @@ class AxiosHeaders {
}
const setHeaders = (headers, _rewrite) =>
- utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));
+ utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));
- if (utils$1.isPlainObject(header) || header instanceof this.constructor) {
+ if (utils.isPlainObject(header) || header instanceof this.constructor) {
setHeaders(header, valueOrRewrite);
- } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {
+ } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {
setHeaders(parseHeaders(header), valueOrRewrite);
- } else if (utils$1.isHeaders(header)) {
- for (const [key, value] of header.entries()) {
- setHeader(value, key, rewrite);
- }
} else {
header != null && setHeader(valueOrRewrite, header, rewrite);
}
@@ -21428,7 +21066,7 @@ class AxiosHeaders {
header = normalizeHeader(header);
if (header) {
- const key = utils$1.findKey(this, header);
+ const key = utils.findKey(this, header);
if (key) {
const value = this[key];
@@ -21441,11 +21079,11 @@ class AxiosHeaders {
return parseTokens(value);
}
- if (utils$1.isFunction(parser)) {
+ if (utils.isFunction(parser)) {
return parser.call(this, value, key);
}
- if (utils$1.isRegExp(parser)) {
+ if (utils.isRegExp(parser)) {
return parser.exec(value);
}
@@ -21458,7 +21096,7 @@ class AxiosHeaders {
header = normalizeHeader(header);
if (header) {
- const key = utils$1.findKey(this, header);
+ const key = utils.findKey(this, header);
return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));
}
@@ -21474,7 +21112,7 @@ class AxiosHeaders {
_header = normalizeHeader(_header);
if (_header) {
- const key = utils$1.findKey(self, _header);
+ const key = utils.findKey(self, _header);
if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {
delete self[key];
@@ -21484,7 +21122,7 @@ class AxiosHeaders {
}
}
- if (utils$1.isArray(header)) {
+ if (utils.isArray(header)) {
header.forEach(deleteHeader);
} else {
deleteHeader(header);
@@ -21513,8 +21151,8 @@ class AxiosHeaders {
const self = this;
const headers = {};
- utils$1.forEach(this, (value, header) => {
- const key = utils$1.findKey(headers, header);
+ utils.forEach(this, (value, header) => {
+ const key = utils.findKey(headers, header);
if (key) {
self[key] = normalizeValue(value);
@@ -21543,8 +21181,8 @@ class AxiosHeaders {
toJSON(asStrings) {
const obj = Object.create(null);
- utils$1.forEach(this, (value, header) => {
- value != null && value !== false && (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value);
+ utils.forEach(this, (value, header) => {
+ value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);
});
return obj;
@@ -21591,7 +21229,7 @@ class AxiosHeaders {
}
}
- utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);
+ utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);
return this;
}
@@ -21600,7 +21238,7 @@ class AxiosHeaders {
AxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);
// reserved names hotfix
-utils$1.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {
+utils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {
let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`
return {
get: () => value,
@@ -21610,7 +21248,7 @@ utils$1.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {
}
});
-utils$1.freezeMethods(AxiosHeaders);
+utils.freezeMethods(AxiosHeaders);
const AxiosHeaders$1 = AxiosHeaders;
@@ -21628,7 +21266,7 @@ function transformData(fns, response) {
const headers = AxiosHeaders$1.from(context.headers);
let data = context.data;
- utils$1.forEach(fns, function transform(fn) {
+ utils.forEach(fns, function transform(fn) {
data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);
});
@@ -21656,7 +21294,7 @@ function CanceledError(message, config, request) {
this.name = 'CanceledError';
}
-utils$1.inherits(CanceledError, AxiosError, {
+utils.inherits(CanceledError, AxiosError, {
__CANCEL__: true
});
@@ -21708,7 +21346,7 @@ function isAbsoluteURL(url) {
*/
function combineURLs(baseURL, relativeURL) {
return relativeURL
- ? baseURL.replace(/\/?\/$/, '') + '/' + relativeURL.replace(/^\/+/, '')
+ ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '')
: baseURL;
}
@@ -21722,15 +21360,14 @@ function combineURLs(baseURL, relativeURL) {
*
* @returns {string} The combined full path
*/
-function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {
- let isRelativeUrl = !isAbsoluteURL(requestedURL);
- if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {
+function buildFullPath(baseURL, requestedURL) {
+ if (baseURL && !isAbsoluteURL(requestedURL)) {
return combineURLs(baseURL, requestedURL);
}
return requestedURL;
}
-const VERSION = "1.8.4";
+const VERSION = "1.6.0";
function parseProtocol(url) {
const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url);
@@ -21785,11 +21422,93 @@ function fromDataURI(uri, asBlob, options) {
throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT);
}
+/**
+ * Throttle decorator
+ * @param {Function} fn
+ * @param {Number} freq
+ * @return {Function}
+ */
+function throttle(fn, freq) {
+ let timestamp = 0;
+ const threshold = 1000 / freq;
+ let timer = null;
+ return function throttled(force, args) {
+ const now = Date.now();
+ if (force || now - timestamp > threshold) {
+ if (timer) {
+ clearTimeout(timer);
+ timer = null;
+ }
+ timestamp = now;
+ return fn.apply(null, args);
+ }
+ if (!timer) {
+ timer = setTimeout(() => {
+ timer = null;
+ timestamp = Date.now();
+ return fn.apply(null, args);
+ }, threshold - (now - timestamp));
+ }
+ };
+}
+
+/**
+ * Calculate data maxRate
+ * @param {Number} [samplesCount= 10]
+ * @param {Number} [min= 1000]
+ * @returns {Function}
+ */
+function speedometer(samplesCount, min) {
+ samplesCount = samplesCount || 10;
+ const bytes = new Array(samplesCount);
+ const timestamps = new Array(samplesCount);
+ let head = 0;
+ let tail = 0;
+ let firstSampleTS;
+
+ min = min !== undefined ? min : 1000;
+
+ return function push(chunkLength) {
+ const now = Date.now();
+
+ const startedAt = timestamps[tail];
+
+ if (!firstSampleTS) {
+ firstSampleTS = now;
+ }
+
+ bytes[head] = chunkLength;
+ timestamps[head] = now;
+
+ let i = tail;
+ let bytesCount = 0;
+
+ while (i !== head) {
+ bytesCount += bytes[i++];
+ i = i % samplesCount;
+ }
+
+ head = (head + 1) % samplesCount;
+
+ if (head === tail) {
+ tail = (tail + 1) % samplesCount;
+ }
+
+ if (now - firstSampleTS < min) {
+ return;
+ }
+
+ const passed = startedAt && now - startedAt;
+
+ return passed ? Math.round(bytesCount * 1000 / passed) : undefined;
+ };
+}
+
const kInternals = Symbol('internals');
class AxiosTransformStream extends stream__default["default"].Transform{
constructor(options) {
- options = utils$1.toFlatObject(options, {
+ options = utils.toFlatObject(options, {
maxRate: 0,
chunkSize: 64 * 1024,
minChunkSize: 100,
@@ -21797,15 +21516,19 @@ class AxiosTransformStream extends stream__default["default"].Transform{
ticksRate: 2,
samplesCount: 15
}, null, (prop, source) => {
- return !utils$1.isUndefined(source[prop]);
+ return !utils.isUndefined(source[prop]);
});
super({
readableHighWaterMark: options.chunkSize
});
+ const self = this;
+
const internals = this[kInternals] = {
+ length: options.length,
timeWindow: options.timeWindow,
+ ticksRate: options.ticksRate,
chunkSize: options.chunkSize,
maxRate: options.maxRate,
minChunkSize: options.minChunkSize,
@@ -21817,6 +21540,8 @@ class AxiosTransformStream extends stream__default["default"].Transform{
onReadCallback: null
};
+ const _speedometer = speedometer(internals.ticksRate * options.samplesCount, internals.timeWindow);
+
this.on('newListener', event => {
if (event === 'progress') {
if (!internals.isCaptured) {
@@ -21824,6 +21549,38 @@ class AxiosTransformStream extends stream__default["default"].Transform{
}
}
});
+
+ let bytesNotified = 0;
+
+ internals.updateProgress = throttle(function throttledHandler() {
+ const totalBytes = internals.length;
+ const bytesTransferred = internals.bytesSeen;
+ const progressBytes = bytesTransferred - bytesNotified;
+ if (!progressBytes || self.destroyed) return;
+
+ const rate = _speedometer(progressBytes);
+
+ bytesNotified = bytesTransferred;
+
+ process.nextTick(() => {
+ self.emit('progress', {
+ 'loaded': bytesTransferred,
+ 'total': totalBytes,
+ 'progress': totalBytes ? (bytesTransferred / totalBytes) : undefined,
+ 'bytes': progressBytes,
+ 'rate': rate ? rate : undefined,
+ 'estimated': rate && totalBytes && bytesTransferred <= totalBytes ?
+ (totalBytes - bytesTransferred) / rate : undefined
+ });
+ });
+ }, internals.ticksRate);
+
+ const onFinish = () => {
+ internals.updateProgress(true);
+ };
+
+ this.once('end', onFinish);
+ this.once('error', onFinish);
}
_read(size) {
@@ -21837,6 +21594,7 @@ class AxiosTransformStream extends stream__default["default"].Transform{
}
_transform(chunk, encoding, callback) {
+ const self = this;
const internals = this[kInternals];
const maxRate = internals.maxRate;
@@ -21848,14 +21606,16 @@ class AxiosTransformStream extends stream__default["default"].Transform{
const bytesThreshold = (maxRate / divider);
const minChunkSize = internals.minChunkSize !== false ? Math.max(internals.minChunkSize, bytesThreshold * 0.01) : 0;
- const pushChunk = (_chunk, _callback) => {
+ function pushChunk(_chunk, _callback) {
const bytes = Buffer.byteLength(_chunk);
internals.bytesSeen += bytes;
internals.bytes += bytes;
- internals.isCaptured && this.emit('progress', internals.bytesSeen);
+ if (internals.isCaptured) {
+ internals.updateProgress();
+ }
- if (this.push(_chunk)) {
+ if (self.push(_chunk)) {
process.nextTick(_callback);
} else {
internals.onReadCallback = () => {
@@ -21863,7 +21623,7 @@ class AxiosTransformStream extends stream__default["default"].Transform{
process.nextTick(_callback);
};
}
- };
+ }
const transformChunk = (_chunk, _callback) => {
const chunkSize = Buffer.byteLength(_chunk);
@@ -21920,6 +21680,11 @@ class AxiosTransformStream extends stream__default["default"].Transform{
}
});
}
+
+ setLength(length) {
+ this[kInternals].length = +length;
+ return this;
+ }
}
const AxiosTransformStream$1 = AxiosTransformStream;
@@ -21940,9 +21705,9 @@ const readBlob = async function* (blob) {
const readBlob$1 = readBlob;
-const BOUNDARY_ALPHABET = platform.ALPHABET.ALPHA_DIGIT + '-_';
+const BOUNDARY_ALPHABET = utils.ALPHABET.ALPHA_DIGIT + '-_';
-const textEncoder = typeof TextEncoder === 'function' ? new TextEncoder() : new util__default["default"].TextEncoder();
+const textEncoder = new util.TextEncoder();
const CRLF = '\r\n';
const CRLF_BYTES = textEncoder.encode(CRLF);
@@ -21951,7 +21716,7 @@ const CRLF_BYTES_COUNT = 2;
class FormDataPart {
constructor(name, value) {
const {escapeName} = this.constructor;
- const isStringValue = utils$1.isString(value);
+ const isStringValue = utils.isString(value);
let headers = `Content-Disposition: form-data; name="${escapeName(name)}"${
!isStringValue && value.name ? `; filename="${escapeName(value.name)}"` : ''
@@ -21978,7 +21743,7 @@ class FormDataPart {
const {value} = this;
- if(utils$1.isTypedArray(value)) {
+ if(utils.isTypedArray(value)) {
yield value;
} else {
yield* readBlob$1(value);
@@ -22000,10 +21765,10 @@ const formDataToStream = (form, headersHandler, options) => {
const {
tag = 'form-data-boundary',
size = 25,
- boundary = tag + '-' + platform.generateString(size, BOUNDARY_ALPHABET)
+ boundary = tag + '-' + utils.generateString(size, BOUNDARY_ALPHABET)
} = options || {};
- if(!utils$1.isFormData(form)) {
+ if(!utils.isFormData(form)) {
throw TypeError('FormData instance required');
}
@@ -22023,7 +21788,7 @@ const formDataToStream = (form, headersHandler, options) => {
contentLength += boundaryBytes.byteLength * parts.length;
- contentLength = utils$1.toFiniteNumber(contentLength);
+ contentLength = utils.toFiniteNumber(contentLength);
const computedHeaders = {
'Content-Type': `multipart/form-data; boundary=${boundary}`
@@ -22073,7 +21838,7 @@ class ZlibHeaderTransformStream extends stream__default["default"].Transform {
const ZlibHeaderTransformStream$1 = ZlibHeaderTransformStream;
const callbackify = (fn, reducer) => {
- return utils$1.isAsyncFn(fn) ? function (...args) {
+ return utils.isAsyncFn(fn) ? function (...args) {
const cb = args.pop();
fn.apply(this, args).then((value) => {
try {
@@ -22087,142 +21852,6 @@ const callbackify = (fn, reducer) => {
const callbackify$1 = callbackify;
-/**
- * Calculate data maxRate
- * @param {Number} [samplesCount= 10]
- * @param {Number} [min= 1000]
- * @returns {Function}
- */
-function speedometer(samplesCount, min) {
- samplesCount = samplesCount || 10;
- const bytes = new Array(samplesCount);
- const timestamps = new Array(samplesCount);
- let head = 0;
- let tail = 0;
- let firstSampleTS;
-
- min = min !== undefined ? min : 1000;
-
- return function push(chunkLength) {
- const now = Date.now();
-
- const startedAt = timestamps[tail];
-
- if (!firstSampleTS) {
- firstSampleTS = now;
- }
-
- bytes[head] = chunkLength;
- timestamps[head] = now;
-
- let i = tail;
- let bytesCount = 0;
-
- while (i !== head) {
- bytesCount += bytes[i++];
- i = i % samplesCount;
- }
-
- head = (head + 1) % samplesCount;
-
- if (head === tail) {
- tail = (tail + 1) % samplesCount;
- }
-
- if (now - firstSampleTS < min) {
- return;
- }
-
- const passed = startedAt && now - startedAt;
-
- return passed ? Math.round(bytesCount * 1000 / passed) : undefined;
- };
-}
-
-/**
- * Throttle decorator
- * @param {Function} fn
- * @param {Number} freq
- * @return {Function}
- */
-function throttle(fn, freq) {
- let timestamp = 0;
- let threshold = 1000 / freq;
- let lastArgs;
- let timer;
-
- const invoke = (args, now = Date.now()) => {
- timestamp = now;
- lastArgs = null;
- if (timer) {
- clearTimeout(timer);
- timer = null;
- }
- fn.apply(null, args);
- };
-
- const throttled = (...args) => {
- const now = Date.now();
- const passed = now - timestamp;
- if ( passed >= threshold) {
- invoke(args, now);
- } else {
- lastArgs = args;
- if (!timer) {
- timer = setTimeout(() => {
- timer = null;
- invoke(lastArgs);
- }, threshold - passed);
- }
- }
- };
-
- const flush = () => lastArgs && invoke(lastArgs);
-
- return [throttled, flush];
-}
-
-const progressEventReducer = (listener, isDownloadStream, freq = 3) => {
- let bytesNotified = 0;
- const _speedometer = speedometer(50, 250);
-
- return throttle(e => {
- const loaded = e.loaded;
- const total = e.lengthComputable ? e.total : undefined;
- const progressBytes = loaded - bytesNotified;
- const rate = _speedometer(progressBytes);
- const inRange = loaded <= total;
-
- bytesNotified = loaded;
-
- const data = {
- loaded,
- total,
- progress: total ? (loaded / total) : undefined,
- bytes: progressBytes,
- rate: rate ? rate : undefined,
- estimated: rate && total && inRange ? (total - loaded) / rate : undefined,
- event: e,
- lengthComputable: total != null,
- [isDownloadStream ? 'download' : 'upload']: true
- };
-
- listener(data);
- }, freq);
-};
-
-const progressEventDecorator = (total, throttled) => {
- const lengthComputable = total != null;
-
- return [(loaded) => throttled[0]({
- lengthComputable,
- total,
- loaded
- }), throttled[1]];
-};
-
-const asyncDecorator = (fn) => (...args) => utils$1.asap(() => fn(...args));
-
const zlibOptions = {
flush: zlib__default["default"].constants.Z_SYNC_FLUSH,
finishFlush: zlib__default["default"].constants.Z_SYNC_FLUSH
@@ -22233,7 +21862,7 @@ const brotliOptions = {
finishFlush: zlib__default["default"].constants.BROTLI_OPERATION_FLUSH
};
-const isBrotliSupported = utils$1.isFunction(zlib__default["default"].createBrotliDecompress);
+const isBrotliSupported = utils.isFunction(zlib__default["default"].createBrotliDecompress);
const {http: httpFollow, https: httpsFollow} = followRedirects__default["default"];
@@ -22243,14 +21872,6 @@ const supportedProtocols = platform.protocols.map(protocol => {
return protocol + ':';
});
-const flushOnFinish = (stream, [throttled, flush]) => {
- stream
- .on('end', flush)
- .on('error', flush);
-
- return throttled;
-};
-
/**
* If the proxy or config beforeRedirects functions are defined, call them with the options
* object.
@@ -22259,12 +21880,12 @@ const flushOnFinish = (stream, [throttled, flush]) => {
*
* @returns {Object}
*/
-function dispatchBeforeRedirect(options, responseDetails) {
+function dispatchBeforeRedirect(options) {
if (options.beforeRedirects.proxy) {
options.beforeRedirects.proxy(options);
}
if (options.beforeRedirects.config) {
- options.beforeRedirects.config(options, responseDetails);
+ options.beforeRedirects.config(options);
}
}
@@ -22280,7 +21901,7 @@ function dispatchBeforeRedirect(options, responseDetails) {
function setProxy(options, configProxy, location) {
let proxy = configProxy;
if (!proxy && proxy !== false) {
- const proxyUrl = proxyFromEnv__default["default"].getProxyForUrl(location);
+ const proxyUrl = proxyFromEnv.getProxyForUrl(location);
if (proxyUrl) {
proxy = new URL(proxyUrl);
}
@@ -22321,7 +21942,7 @@ function setProxy(options, configProxy, location) {
};
}
-const isHttpAdapterSupported = typeof process !== 'undefined' && utils$1.kindOf(process) === 'process';
+const isHttpAdapterSupported = typeof process !== 'undefined' && utils.kindOf(process) === 'process';
// temporary hotfix
@@ -22351,7 +21972,7 @@ const wrapAsync = (asyncExecutor) => {
};
const resolveFamily = ({address, family}) => {
- if (!utils$1.isString(address)) {
+ if (!utils.isString(address)) {
throw TypeError('address must be a string');
}
return ({
@@ -22360,7 +21981,7 @@ const resolveFamily = ({address, family}) => {
});
};
-const buildAddressEntry = (address, family) => resolveFamily(utils$1.isObject(address) ? address : {address, family});
+const buildAddressEntry = (address, family) => resolveFamily(utils.isObject(address) ? address : {address, family});
/*eslint consistent-return:0*/
const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
@@ -22373,15 +21994,11 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
let req;
if (lookup) {
- const _lookup = callbackify$1(lookup, (value) => utils$1.isArray(value) ? value : [value]);
+ const _lookup = callbackify$1(lookup, (value) => utils.isArray(value) ? value : [value]);
// hotfix to support opt.all option which is required for node 20.x
lookup = (hostname, opt, cb) => {
_lookup(hostname, opt, (err, arg0, arg1) => {
- if (err) {
- return cb(err);
- }
-
- const addresses = utils$1.isArray(arg0) ? arg0.map(addr => buildAddressEntry(addr)) : [buildAddressEntry(arg0, arg1)];
+ const addresses = utils.isArray(arg0) ? arg0.map(addr => buildAddressEntry(addr)) : [buildAddressEntry(arg0, arg1)];
opt.all ? cb(err, addresses) : cb(err, addresses[0].address, addresses[0].family);
});
@@ -22389,7 +22006,7 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
}
// temporary internal emitter until the AxiosRequest class will be implemented
- const emitter = new events.EventEmitter();
+ const emitter = new EventEmitter__default["default"]();
const onFinished = () => {
if (config.cancelToken) {
@@ -22425,8 +22042,8 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
}
// Parse url
- const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);
- const parsed = new URL(fullPath, platform.hasBrowserEnv ? platform.origin : undefined);
+ const fullPath = buildFullPath(config.baseURL, config.url);
+ const parsed = new URL(fullPath, 'http://localhost');
const protocol = parsed.protocol || supportedProtocols[0];
if (protocol === 'data:') {
@@ -22453,7 +22070,7 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
convertedData = convertedData.toString(responseEncoding);
if (!responseEncoding || responseEncoding === 'utf8') {
- convertedData = utils$1.stripBOM(convertedData);
+ convertedData = utils.stripBOM(convertedData);
}
} else if (responseType === 'stream') {
convertedData = stream__default["default"].Readable.from(convertedData);
@@ -22484,13 +22101,14 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
// Only set header if it hasn't been set in config
headers.set('User-Agent', 'axios/' + VERSION, false);
- const {onUploadProgress, onDownloadProgress} = config;
+ const onDownloadProgress = config.onDownloadProgress;
+ const onUploadProgress = config.onUploadProgress;
const maxRate = config.maxRate;
let maxUploadRate = undefined;
let maxDownloadRate = undefined;
// support for spec compliant FormData objects
- if (utils$1.isSpecCompliantForm(data)) {
+ if (utils.isSpecCompliantForm(data)) {
const userBoundary = headers.getContentType(/boundary=([-_\w\d]{10,70})/i);
data = formDataToStream$1(data, (formHeaders) => {
@@ -22500,7 +22118,7 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
boundary: userBoundary && userBoundary[1] || undefined
});
// support for https://www.npmjs.com/package/form-data api
- } else if (utils$1.isFormData(data) && utils$1.isFunction(data.getHeaders)) {
+ } else if (utils.isFormData(data) && utils.isFunction(data.getHeaders)) {
headers.set(data.getHeaders());
if (!headers.hasContentLength()) {
@@ -22511,14 +22129,14 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
} catch (e) {
}
}
- } else if (utils$1.isBlob(data) || utils$1.isFile(data)) {
+ } else if (utils.isBlob(data)) {
data.size && headers.setContentType(data.type || 'application/octet-stream');
headers.setContentLength(data.size || 0);
data = stream__default["default"].Readable.from(readBlob$1(data));
- } else if (data && !utils$1.isStream(data)) {
- if (Buffer.isBuffer(data)) ; else if (utils$1.isArrayBuffer(data)) {
+ } else if (data && !utils.isStream(data)) {
+ if (Buffer.isBuffer(data)) ; else if (utils.isArrayBuffer(data)) {
data = Buffer.from(new Uint8Array(data));
- } else if (utils$1.isString(data)) {
+ } else if (utils.isString(data)) {
data = Buffer.from(data, 'utf-8');
} else {
return reject(new AxiosError(
@@ -22540,9 +22158,9 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
}
}
- const contentLength = utils$1.toFiniteNumber(headers.getContentLength());
+ const contentLength = utils.toFiniteNumber(headers.getContentLength());
- if (utils$1.isArray(maxRate)) {
+ if (utils.isArray(maxRate)) {
maxUploadRate = maxRate[0];
maxDownloadRate = maxRate[1];
} else {
@@ -22550,21 +22168,20 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
}
if (data && (onUploadProgress || maxUploadRate)) {
- if (!utils$1.isStream(data)) {
+ if (!utils.isStream(data)) {
data = stream__default["default"].Readable.from(data, {objectMode: false});
}
data = stream__default["default"].pipeline([data, new AxiosTransformStream$1({
- maxRate: utils$1.toFiniteNumber(maxUploadRate)
- })], utils$1.noop);
+ length: contentLength,
+ maxRate: utils.toFiniteNumber(maxUploadRate)
+ })], utils.noop);
- onUploadProgress && data.on('progress', flushOnFinish(
- data,
- progressEventDecorator(
- contentLength,
- progressEventReducer(asyncDecorator(onUploadProgress), false, 3)
- )
- ));
+ onUploadProgress && data.on('progress', progress => {
+ onUploadProgress(Object.assign(progress, {
+ upload: true
+ }));
+ });
}
// HTTP basic authentication
@@ -22617,12 +22234,12 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
};
// cacheable-lookup integration hotfix
- !utils$1.isUndefined(lookup) && (options.lookup = lookup);
+ !utils.isUndefined(lookup) && (options.lookup = lookup);
if (config.socketPath) {
options.socketPath = config.socketPath;
} else {
- options.hostname = parsed.hostname.startsWith("[") ? parsed.hostname.slice(1, -1) : parsed.hostname;
+ options.hostname = parsed.hostname;
options.port = parsed.port;
setProxy(options, config.proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);
}
@@ -22663,18 +22280,17 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
const responseLength = +res.headers['content-length'];
- if (onDownloadProgress || maxDownloadRate) {
+ if (onDownloadProgress) {
const transformStream = new AxiosTransformStream$1({
- maxRate: utils$1.toFiniteNumber(maxDownloadRate)
+ length: utils.toFiniteNumber(responseLength),
+ maxRate: utils.toFiniteNumber(maxDownloadRate)
});
- onDownloadProgress && transformStream.on('progress', flushOnFinish(
- transformStream,
- progressEventDecorator(
- responseLength,
- progressEventReducer(asyncDecorator(onDownloadProgress), true, 3)
- )
- ));
+ onDownloadProgress && transformStream.on('progress', progress => {
+ onDownloadProgress(Object.assign(progress, {
+ download: true
+ }));
+ });
streams.push(transformStream);
}
@@ -22722,7 +22338,7 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
}
}
- responseStream = streams.length > 1 ? stream__default["default"].pipeline(streams, utils$1.noop) : streams[0];
+ responseStream = streams.length > 1 ? stream__default["default"].pipeline(streams, utils.noop) : streams[0];
const offListeners = stream__default["default"].finished(responseStream, () => {
offListeners();
@@ -22764,7 +22380,7 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
}
const err = new AxiosError(
- 'stream has been aborted',
+ 'maxContentLength size of ' + config.maxContentLength + ' exceeded',
AxiosError.ERR_BAD_RESPONSE,
config,
lastRequest
@@ -22784,7 +22400,7 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
if (responseType !== 'arraybuffer') {
responseData = responseData.toString(responseEncoding);
if (!responseEncoding || responseEncoding === 'utf8') {
- responseData = utils$1.stripBOM(responseData);
+ responseData = utils.stripBOM(responseData);
}
}
response.data = responseData;
@@ -22861,7 +22477,7 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
// Send the request
- if (utils$1.isStream(data)) {
+ if (utils.isStream(data)) {
let ended = false;
let errored = false;
@@ -22887,235 +22503,192 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
});
};
-const isURLSameOrigin = platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {
- url = new URL(url, platform.origin);
+const cookies = platform.isStandardBrowserEnv ?
- return (
- origin.protocol === url.protocol &&
- origin.host === url.host &&
- (isMSIE || origin.port === url.port)
- );
-})(
- new URL(platform.origin),
- platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)
-) : () => true;
+// Standard browser envs support document.cookie
+ (function standardBrowserEnv() {
+ return {
+ write: function write(name, value, expires, path, domain, secure) {
+ const cookie = [];
+ cookie.push(name + '=' + encodeURIComponent(value));
-const cookies = platform.hasStandardBrowserEnv ?
+ if (utils.isNumber(expires)) {
+ cookie.push('expires=' + new Date(expires).toGMTString());
+ }
- // Standard browser envs support document.cookie
- {
- write(name, value, expires, path, domain, secure) {
- const cookie = [name + '=' + encodeURIComponent(value)];
+ if (utils.isString(path)) {
+ cookie.push('path=' + path);
+ }
- utils$1.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());
+ if (utils.isString(domain)) {
+ cookie.push('domain=' + domain);
+ }
- utils$1.isString(path) && cookie.push('path=' + path);
+ if (secure === true) {
+ cookie.push('secure');
+ }
- utils$1.isString(domain) && cookie.push('domain=' + domain);
+ document.cookie = cookie.join('; ');
+ },
- secure === true && cookie.push('secure');
+ read: function read(name) {
+ const match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
+ return (match ? decodeURIComponent(match[3]) : null);
+ },
- document.cookie = cookie.join('; ');
- },
-
- read(name) {
- const match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
- return (match ? decodeURIComponent(match[3]) : null);
- },
-
- remove(name) {
- this.write(name, '', Date.now() - 86400000);
- }
- }
-
- :
-
- // Non-standard browser env (web workers, react-native) lack needed support.
- {
- write() {},
- read() {
- return null;
- },
- remove() {}
- };
-
-const headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? { ...thing } : thing;
-
-/**
- * Config-specific merge-function which creates a new config-object
- * by merging two configuration objects together.
- *
- * @param {Object} config1
- * @param {Object} config2
- *
- * @returns {Object} New object resulting from merging config2 to config1
- */
-function mergeConfig(config1, config2) {
- // eslint-disable-next-line no-param-reassign
- config2 = config2 || {};
- const config = {};
-
- function getMergedValue(target, source, prop, caseless) {
- if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {
- return utils$1.merge.call({caseless}, target, source);
- } else if (utils$1.isPlainObject(source)) {
- return utils$1.merge({}, source);
- } else if (utils$1.isArray(source)) {
- return source.slice();
- }
- return source;
- }
-
- // eslint-disable-next-line consistent-return
- function mergeDeepProperties(a, b, prop , caseless) {
- if (!utils$1.isUndefined(b)) {
- return getMergedValue(a, b, prop , caseless);
- } else if (!utils$1.isUndefined(a)) {
- return getMergedValue(undefined, a, prop , caseless);
- }
- }
-
- // eslint-disable-next-line consistent-return
- function valueFromConfig2(a, b) {
- if (!utils$1.isUndefined(b)) {
- return getMergedValue(undefined, b);
- }
- }
-
- // eslint-disable-next-line consistent-return
- function defaultToConfig2(a, b) {
- if (!utils$1.isUndefined(b)) {
- return getMergedValue(undefined, b);
- } else if (!utils$1.isUndefined(a)) {
- return getMergedValue(undefined, a);
- }
- }
-
- // eslint-disable-next-line consistent-return
- function mergeDirectKeys(a, b, prop) {
- if (prop in config2) {
- return getMergedValue(a, b);
- } else if (prop in config1) {
- return getMergedValue(undefined, a);
- }
- }
-
- const mergeMap = {
- url: valueFromConfig2,
- method: valueFromConfig2,
- data: valueFromConfig2,
- baseURL: defaultToConfig2,
- transformRequest: defaultToConfig2,
- transformResponse: defaultToConfig2,
- paramsSerializer: defaultToConfig2,
- timeout: defaultToConfig2,
- timeoutMessage: defaultToConfig2,
- withCredentials: defaultToConfig2,
- withXSRFToken: defaultToConfig2,
- adapter: defaultToConfig2,
- responseType: defaultToConfig2,
- xsrfCookieName: defaultToConfig2,
- xsrfHeaderName: defaultToConfig2,
- onUploadProgress: defaultToConfig2,
- onDownloadProgress: defaultToConfig2,
- decompress: defaultToConfig2,
- maxContentLength: defaultToConfig2,
- maxBodyLength: defaultToConfig2,
- beforeRedirect: defaultToConfig2,
- transport: defaultToConfig2,
- httpAgent: defaultToConfig2,
- httpsAgent: defaultToConfig2,
- cancelToken: defaultToConfig2,
- socketPath: defaultToConfig2,
- responseEncoding: defaultToConfig2,
- validateStatus: mergeDirectKeys,
- headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)
- };
-
- utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {
- const merge = mergeMap[prop] || mergeDeepProperties;
- const configValue = merge(config1[prop], config2[prop], prop);
- (utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);
- });
-
- return config;
-}
-
-const resolveConfig = (config) => {
- const newConfig = mergeConfig({}, config);
-
- let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;
-
- newConfig.headers = headers = AxiosHeaders$1.from(headers);
-
- newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);
-
- // HTTP basic authentication
- if (auth) {
- headers.set('Authorization', 'Basic ' +
- btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))
- );
- }
-
- let contentType;
-
- if (utils$1.isFormData(data)) {
- if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {
- headers.setContentType(undefined); // Let the browser set it
- } else if ((contentType = headers.getContentType()) !== false) {
- // fix semicolon duplication issue for ReactNative FormData implementation
- const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];
- headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));
- }
- }
-
- // Add xsrf header
- // This is only done if running in a standard browser environment.
- // Specifically not if we're in a web worker, or react-native.
-
- if (platform.hasStandardBrowserEnv) {
- withXSRFToken && utils$1.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));
-
- if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {
- // Add xsrf header
- const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);
-
- if (xsrfValue) {
- headers.set(xsrfHeaderName, xsrfValue);
+ remove: function remove(name) {
+ this.write(name, '', Date.now() - 86400000);
}
- }
- }
+ };
+ })() :
- return newConfig;
-};
+// Non standard browser env (web workers, react-native) lack needed support.
+ (function nonStandardBrowserEnv() {
+ return {
+ write: function write() {},
+ read: function read() { return null; },
+ remove: function remove() {}
+ };
+ })();
+
+const isURLSameOrigin = platform.isStandardBrowserEnv ?
+
+// Standard browser envs have full support of the APIs needed to test
+// whether the request URL is of the same origin as current location.
+ (function standardBrowserEnv() {
+ const msie = /(msie|trident)/i.test(navigator.userAgent);
+ const urlParsingNode = document.createElement('a');
+ let originURL;
+
+ /**
+ * Parse a URL to discover it's components
+ *
+ * @param {String} url The URL to be parsed
+ * @returns {Object}
+ */
+ function resolveURL(url) {
+ let href = url;
+
+ if (msie) {
+ // IE needs attribute set twice to normalize properties
+ urlParsingNode.setAttribute('href', href);
+ href = urlParsingNode.href;
+ }
+
+ urlParsingNode.setAttribute('href', href);
+
+ // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils
+ return {
+ href: urlParsingNode.href,
+ protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',
+ host: urlParsingNode.host,
+ search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '',
+ hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',
+ hostname: urlParsingNode.hostname,
+ port: urlParsingNode.port,
+ pathname: (urlParsingNode.pathname.charAt(0) === '/') ?
+ urlParsingNode.pathname :
+ '/' + urlParsingNode.pathname
+ };
+ }
+
+ originURL = resolveURL(window.location.href);
+
+ /**
+ * Determine if a URL shares the same origin as the current location
+ *
+ * @param {String} requestURL The URL to test
+ * @returns {boolean} True if URL shares the same origin, otherwise false
+ */
+ return function isURLSameOrigin(requestURL) {
+ const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;
+ return (parsed.protocol === originURL.protocol &&
+ parsed.host === originURL.host);
+ };
+ })() :
+
+ // Non standard browser envs (web workers, react-native) lack needed support.
+ (function nonStandardBrowserEnv() {
+ return function isURLSameOrigin() {
+ return true;
+ };
+ })();
+
+function progressEventReducer(listener, isDownloadStream) {
+ let bytesNotified = 0;
+ const _speedometer = speedometer(50, 250);
+
+ return e => {
+ const loaded = e.loaded;
+ const total = e.lengthComputable ? e.total : undefined;
+ const progressBytes = loaded - bytesNotified;
+ const rate = _speedometer(progressBytes);
+ const inRange = loaded <= total;
+
+ bytesNotified = loaded;
+
+ const data = {
+ loaded,
+ total,
+ progress: total ? (loaded / total) : undefined,
+ bytes: progressBytes,
+ rate: rate ? rate : undefined,
+ estimated: rate && total && inRange ? (total - loaded) / rate : undefined,
+ event: e
+ };
+
+ data[isDownloadStream ? 'download' : 'upload'] = true;
+
+ listener(data);
+ };
+}
const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';
const xhrAdapter = isXHRAdapterSupported && function (config) {
return new Promise(function dispatchXhrRequest(resolve, reject) {
- const _config = resolveConfig(config);
- let requestData = _config.data;
- const requestHeaders = AxiosHeaders$1.from(_config.headers).normalize();
- let {responseType, onUploadProgress, onDownloadProgress} = _config;
+ let requestData = config.data;
+ const requestHeaders = AxiosHeaders$1.from(config.headers).normalize();
+ const responseType = config.responseType;
let onCanceled;
- let uploadThrottled, downloadThrottled;
- let flushUpload, flushDownload;
-
function done() {
- flushUpload && flushUpload(); // flush events
- flushDownload && flushDownload(); // flush events
+ if (config.cancelToken) {
+ config.cancelToken.unsubscribe(onCanceled);
+ }
- _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);
+ if (config.signal) {
+ config.signal.removeEventListener('abort', onCanceled);
+ }
+ }
- _config.signal && _config.signal.removeEventListener('abort', onCanceled);
+ let contentType;
+
+ if (utils.isFormData(requestData)) {
+ if (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv) {
+ requestHeaders.setContentType(false); // Let the browser set it
+ } else if(!requestHeaders.getContentType(/^\s*multipart\/form-data/)){
+ requestHeaders.setContentType('multipart/form-data'); // mobile/desktop app frameworks
+ } else if(utils.isString(contentType = requestHeaders.getContentType())){
+ // fix semicolon duplication issue for ReactNative FormData implementation
+ requestHeaders.setContentType(contentType.replace(/^\s*(multipart\/form-data);+/, '$1'));
+ }
}
let request = new XMLHttpRequest();
- request.open(_config.method.toUpperCase(), _config.url, true);
+ // HTTP basic authentication
+ if (config.auth) {
+ const username = config.auth.username || '';
+ const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';
+ requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));
+ }
+
+ const fullPath = buildFullPath(config.baseURL, config.url);
+
+ request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);
// Set the request timeout in MS
- request.timeout = _config.timeout;
+ request.timeout = config.timeout;
function onloadend() {
if (!request) {
@@ -23195,10 +22768,10 @@ const xhrAdapter = isXHRAdapterSupported && function (config) {
// Handle timeout
request.ontimeout = function handleTimeout() {
- let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';
- const transitional = _config.transitional || transitionalDefaults;
- if (_config.timeoutErrorMessage) {
- timeoutErrorMessage = _config.timeoutErrorMessage;
+ let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';
+ const transitional = config.transitional || transitionalDefaults;
+ if (config.timeoutErrorMessage) {
+ timeoutErrorMessage = config.timeoutErrorMessage;
}
reject(new AxiosError(
timeoutErrorMessage,
@@ -23210,42 +22783,50 @@ const xhrAdapter = isXHRAdapterSupported && function (config) {
request = null;
};
+ // Add xsrf header
+ // This is only done if running in a standard browser environment.
+ // Specifically not if we're in a web worker, or react-native.
+ if (platform.isStandardBrowserEnv) {
+ // Add xsrf header
+ // regarding CVE-2023-45857 config.withCredentials condition was removed temporarily
+ const xsrfValue = isURLSameOrigin(fullPath) && config.xsrfCookieName && cookies.read(config.xsrfCookieName);
+
+ if (xsrfValue) {
+ requestHeaders.set(config.xsrfHeaderName, xsrfValue);
+ }
+ }
+
// Remove Content-Type if data is undefined
requestData === undefined && requestHeaders.setContentType(null);
// Add headers to the request
if ('setRequestHeader' in request) {
- utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {
+ utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {
request.setRequestHeader(key, val);
});
}
// Add withCredentials to request if needed
- if (!utils$1.isUndefined(_config.withCredentials)) {
- request.withCredentials = !!_config.withCredentials;
+ if (!utils.isUndefined(config.withCredentials)) {
+ request.withCredentials = !!config.withCredentials;
}
// Add responseType to request if needed
if (responseType && responseType !== 'json') {
- request.responseType = _config.responseType;
+ request.responseType = config.responseType;
}
// Handle progress if needed
- if (onDownloadProgress) {
- ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));
- request.addEventListener('progress', downloadThrottled);
+ if (typeof config.onDownloadProgress === 'function') {
+ request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));
}
// Not all browsers support upload events
- if (onUploadProgress && request.upload) {
- ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));
-
- request.upload.addEventListener('progress', uploadThrottled);
-
- request.upload.addEventListener('loadend', flushUpload);
+ if (typeof config.onUploadProgress === 'function' && request.upload) {
+ request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));
}
- if (_config.cancelToken || _config.signal) {
+ if (config.cancelToken || config.signal) {
// Handle cancellation
// eslint-disable-next-line func-names
onCanceled = cancel => {
@@ -23257,13 +22838,13 @@ const xhrAdapter = isXHRAdapterSupported && function (config) {
request = null;
};
- _config.cancelToken && _config.cancelToken.subscribe(onCanceled);
- if (_config.signal) {
- _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);
+ config.cancelToken && config.cancelToken.subscribe(onCanceled);
+ if (config.signal) {
+ config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);
}
}
- const protocol = parseProtocol(_config.url);
+ const protocol = parseProtocol(fullPath);
if (protocol && platform.protocols.indexOf(protocol) === -1) {
reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));
@@ -23276,363 +22857,12 @@ const xhrAdapter = isXHRAdapterSupported && function (config) {
});
};
-const composeSignals = (signals, timeout) => {
- const {length} = (signals = signals ? signals.filter(Boolean) : []);
-
- if (timeout || length) {
- let controller = new AbortController();
-
- let aborted;
-
- const onabort = function (reason) {
- if (!aborted) {
- aborted = true;
- unsubscribe();
- const err = reason instanceof Error ? reason : this.reason;
- controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));
- }
- };
-
- let timer = timeout && setTimeout(() => {
- timer = null;
- onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT));
- }, timeout);
-
- const unsubscribe = () => {
- if (signals) {
- timer && clearTimeout(timer);
- timer = null;
- signals.forEach(signal => {
- signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);
- });
- signals = null;
- }
- };
-
- signals.forEach((signal) => signal.addEventListener('abort', onabort));
-
- const {signal} = controller;
-
- signal.unsubscribe = () => utils$1.asap(unsubscribe);
-
- return signal;
- }
-};
-
-const composeSignals$1 = composeSignals;
-
-const streamChunk = function* (chunk, chunkSize) {
- let len = chunk.byteLength;
-
- if (!chunkSize || len < chunkSize) {
- yield chunk;
- return;
- }
-
- let pos = 0;
- let end;
-
- while (pos < len) {
- end = pos + chunkSize;
- yield chunk.slice(pos, end);
- pos = end;
- }
-};
-
-const readBytes = async function* (iterable, chunkSize) {
- for await (const chunk of readStream(iterable)) {
- yield* streamChunk(chunk, chunkSize);
- }
-};
-
-const readStream = async function* (stream) {
- if (stream[Symbol.asyncIterator]) {
- yield* stream;
- return;
- }
-
- const reader = stream.getReader();
- try {
- for (;;) {
- const {done, value} = await reader.read();
- if (done) {
- break;
- }
- yield value;
- }
- } finally {
- await reader.cancel();
- }
-};
-
-const trackStream = (stream, chunkSize, onProgress, onFinish) => {
- const iterator = readBytes(stream, chunkSize);
-
- let bytes = 0;
- let done;
- let _onFinish = (e) => {
- if (!done) {
- done = true;
- onFinish && onFinish(e);
- }
- };
-
- return new ReadableStream({
- async pull(controller) {
- try {
- const {done, value} = await iterator.next();
-
- if (done) {
- _onFinish();
- controller.close();
- return;
- }
-
- let len = value.byteLength;
- if (onProgress) {
- let loadedBytes = bytes += len;
- onProgress(loadedBytes);
- }
- controller.enqueue(new Uint8Array(value));
- } catch (err) {
- _onFinish(err);
- throw err;
- }
- },
- cancel(reason) {
- _onFinish(reason);
- return iterator.return();
- }
- }, {
- highWaterMark: 2
- })
-};
-
-const isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';
-const isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';
-
-// used only inside the fetch adapter
-const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?
- ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :
- async (str) => new Uint8Array(await new Response(str).arrayBuffer())
-);
-
-const test = (fn, ...args) => {
- try {
- return !!fn(...args);
- } catch (e) {
- return false
- }
-};
-
-const supportsRequestStream = isReadableStreamSupported && test(() => {
- let duplexAccessed = false;
-
- const hasContentType = new Request(platform.origin, {
- body: new ReadableStream(),
- method: 'POST',
- get duplex() {
- duplexAccessed = true;
- return 'half';
- },
- }).headers.has('Content-Type');
-
- return duplexAccessed && !hasContentType;
-});
-
-const DEFAULT_CHUNK_SIZE = 64 * 1024;
-
-const supportsResponseStream = isReadableStreamSupported &&
- test(() => utils$1.isReadableStream(new Response('').body));
-
-
-const resolvers = {
- stream: supportsResponseStream && ((res) => res.body)
-};
-
-isFetchSupported && (((res) => {
- ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {
- !resolvers[type] && (resolvers[type] = utils$1.isFunction(res[type]) ? (res) => res[type]() :
- (_, config) => {
- throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);
- });
- });
-})(new Response));
-
-const getBodyLength = async (body) => {
- if (body == null) {
- return 0;
- }
-
- if(utils$1.isBlob(body)) {
- return body.size;
- }
-
- if(utils$1.isSpecCompliantForm(body)) {
- const _request = new Request(platform.origin, {
- method: 'POST',
- body,
- });
- return (await _request.arrayBuffer()).byteLength;
- }
-
- if(utils$1.isArrayBufferView(body) || utils$1.isArrayBuffer(body)) {
- return body.byteLength;
- }
-
- if(utils$1.isURLSearchParams(body)) {
- body = body + '';
- }
-
- if(utils$1.isString(body)) {
- return (await encodeText(body)).byteLength;
- }
-};
-
-const resolveBodyLength = async (headers, body) => {
- const length = utils$1.toFiniteNumber(headers.getContentLength());
-
- return length == null ? getBodyLength(body) : length;
-};
-
-const fetchAdapter = isFetchSupported && (async (config) => {
- let {
- url,
- method,
- data,
- signal,
- cancelToken,
- timeout,
- onDownloadProgress,
- onUploadProgress,
- responseType,
- headers,
- withCredentials = 'same-origin',
- fetchOptions
- } = resolveConfig(config);
-
- responseType = responseType ? (responseType + '').toLowerCase() : 'text';
-
- let composedSignal = composeSignals$1([signal, cancelToken && cancelToken.toAbortSignal()], timeout);
-
- let request;
-
- const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {
- composedSignal.unsubscribe();
- });
-
- let requestContentLength;
-
- try {
- if (
- onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&
- (requestContentLength = await resolveBodyLength(headers, data)) !== 0
- ) {
- let _request = new Request(url, {
- method: 'POST',
- body: data,
- duplex: "half"
- });
-
- let contentTypeHeader;
-
- if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {
- headers.setContentType(contentTypeHeader);
- }
-
- if (_request.body) {
- const [onProgress, flush] = progressEventDecorator(
- requestContentLength,
- progressEventReducer(asyncDecorator(onUploadProgress))
- );
-
- data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);
- }
- }
-
- if (!utils$1.isString(withCredentials)) {
- withCredentials = withCredentials ? 'include' : 'omit';
- }
-
- // Cloudflare Workers throws when credentials are defined
- // see https://github.com/cloudflare/workerd/issues/902
- const isCredentialsSupported = "credentials" in Request.prototype;
- request = new Request(url, {
- ...fetchOptions,
- signal: composedSignal,
- method: method.toUpperCase(),
- headers: headers.normalize().toJSON(),
- body: data,
- duplex: "half",
- credentials: isCredentialsSupported ? withCredentials : undefined
- });
-
- let response = await fetch(request);
-
- const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');
-
- if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {
- const options = {};
-
- ['status', 'statusText', 'headers'].forEach(prop => {
- options[prop] = response[prop];
- });
-
- const responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length'));
-
- const [onProgress, flush] = onDownloadProgress && progressEventDecorator(
- responseContentLength,
- progressEventReducer(asyncDecorator(onDownloadProgress), true)
- ) || [];
-
- response = new Response(
- trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {
- flush && flush();
- unsubscribe && unsubscribe();
- }),
- options
- );
- }
-
- responseType = responseType || 'text';
-
- let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config);
-
- !isStreamResponse && unsubscribe && unsubscribe();
-
- return await new Promise((resolve, reject) => {
- settle(resolve, reject, {
- data: responseData,
- headers: AxiosHeaders$1.from(response.headers),
- status: response.status,
- statusText: response.statusText,
- config,
- request
- });
- })
- } catch (err) {
- unsubscribe && unsubscribe();
-
- if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {
- throw Object.assign(
- new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),
- {
- cause: err.cause || err
- }
- )
- }
-
- throw AxiosError.from(err, err && err.code, config, request);
- }
-});
-
const knownAdapters = {
http: httpAdapter,
- xhr: xhrAdapter,
- fetch: fetchAdapter
+ xhr: xhrAdapter
};
-utils$1.forEach(knownAdapters, (fn, value) => {
+utils.forEach(knownAdapters, (fn, value) => {
if (fn) {
try {
Object.defineProperty(fn, 'name', {value});
@@ -23645,11 +22875,11 @@ utils$1.forEach(knownAdapters, (fn, value) => {
const renderReason = (reason) => `- ${reason}`;
-const isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false;
+const isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;
const adapters = {
getAdapter: (adapters) => {
- adapters = utils$1.isArray(adapters) ? adapters : [adapters];
+ adapters = utils.isArray(adapters) ? adapters : [adapters];
const {length} = adapters;
let nameOrAdapter;
@@ -23773,6 +23003,107 @@ function dispatchRequest(config) {
});
}
+const headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? thing.toJSON() : thing;
+
+/**
+ * Config-specific merge-function which creates a new config-object
+ * by merging two configuration objects together.
+ *
+ * @param {Object} config1
+ * @param {Object} config2
+ *
+ * @returns {Object} New object resulting from merging config2 to config1
+ */
+function mergeConfig(config1, config2) {
+ // eslint-disable-next-line no-param-reassign
+ config2 = config2 || {};
+ const config = {};
+
+ function getMergedValue(target, source, caseless) {
+ if (utils.isPlainObject(target) && utils.isPlainObject(source)) {
+ return utils.merge.call({caseless}, target, source);
+ } else if (utils.isPlainObject(source)) {
+ return utils.merge({}, source);
+ } else if (utils.isArray(source)) {
+ return source.slice();
+ }
+ return source;
+ }
+
+ // eslint-disable-next-line consistent-return
+ function mergeDeepProperties(a, b, caseless) {
+ if (!utils.isUndefined(b)) {
+ return getMergedValue(a, b, caseless);
+ } else if (!utils.isUndefined(a)) {
+ return getMergedValue(undefined, a, caseless);
+ }
+ }
+
+ // eslint-disable-next-line consistent-return
+ function valueFromConfig2(a, b) {
+ if (!utils.isUndefined(b)) {
+ return getMergedValue(undefined, b);
+ }
+ }
+
+ // eslint-disable-next-line consistent-return
+ function defaultToConfig2(a, b) {
+ if (!utils.isUndefined(b)) {
+ return getMergedValue(undefined, b);
+ } else if (!utils.isUndefined(a)) {
+ return getMergedValue(undefined, a);
+ }
+ }
+
+ // eslint-disable-next-line consistent-return
+ function mergeDirectKeys(a, b, prop) {
+ if (prop in config2) {
+ return getMergedValue(a, b);
+ } else if (prop in config1) {
+ return getMergedValue(undefined, a);
+ }
+ }
+
+ const mergeMap = {
+ url: valueFromConfig2,
+ method: valueFromConfig2,
+ data: valueFromConfig2,
+ baseURL: defaultToConfig2,
+ transformRequest: defaultToConfig2,
+ transformResponse: defaultToConfig2,
+ paramsSerializer: defaultToConfig2,
+ timeout: defaultToConfig2,
+ timeoutMessage: defaultToConfig2,
+ withCredentials: defaultToConfig2,
+ adapter: defaultToConfig2,
+ responseType: defaultToConfig2,
+ xsrfCookieName: defaultToConfig2,
+ xsrfHeaderName: defaultToConfig2,
+ onUploadProgress: defaultToConfig2,
+ onDownloadProgress: defaultToConfig2,
+ decompress: defaultToConfig2,
+ maxContentLength: defaultToConfig2,
+ maxBodyLength: defaultToConfig2,
+ beforeRedirect: defaultToConfig2,
+ transport: defaultToConfig2,
+ httpAgent: defaultToConfig2,
+ httpsAgent: defaultToConfig2,
+ cancelToken: defaultToConfig2,
+ socketPath: defaultToConfig2,
+ responseEncoding: defaultToConfig2,
+ validateStatus: mergeDirectKeys,
+ headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)
+ };
+
+ utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {
+ const merge = mergeMap[prop] || mergeDeepProperties;
+ const configValue = merge(config1[prop], config2[prop], prop);
+ (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);
+ });
+
+ return config;
+}
+
const validators$1 = {};
// eslint-disable-next-line func-names
@@ -23822,14 +23153,6 @@ validators$1.transitional = function transitional(validator, version, message) {
};
};
-validators$1.spelling = function spelling(correctSpelling) {
- return (value, opt) => {
- // eslint-disable-next-line no-console
- console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);
- return true;
- }
-};
-
/**
* Assert object's properties type
*
@@ -23894,34 +23217,7 @@ class Axios {
*
* @returns {Promise} The Promise to be fulfilled
*/
- async request(configOrUrl, config) {
- try {
- return await this._request(configOrUrl, config);
- } catch (err) {
- if (err instanceof Error) {
- let dummy = {};
-
- Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());
-
- // slice off the Error: ... line
- const stack = dummy.stack ? dummy.stack.replace(/^.+\n/, '') : '';
- try {
- if (!err.stack) {
- err.stack = stack;
- // match without the 2 top stack lines
- } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\n.+\n/, ''))) {
- err.stack += '\n' + stack;
- }
- } catch (e) {
- // ignore the case where "stack" is an un-writable property
- }
- }
-
- throw err;
- }
- }
-
- _request(configOrUrl, config) {
+ request(configOrUrl, config) {
/*eslint no-param-reassign:0*/
// Allow for axios('example/url'[, config]) a la fetch API
if (typeof configOrUrl === 'string') {
@@ -23944,7 +23240,7 @@ class Axios {
}
if (paramsSerializer != null) {
- if (utils$1.isFunction(paramsSerializer)) {
+ if (utils.isFunction(paramsSerializer)) {
config.paramsSerializer = {
serialize: paramsSerializer
};
@@ -23956,28 +23252,16 @@ class Axios {
}
}
- // Set config.allowAbsoluteUrls
- if (config.allowAbsoluteUrls !== undefined) ; else if (this.defaults.allowAbsoluteUrls !== undefined) {
- config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;
- } else {
- config.allowAbsoluteUrls = true;
- }
-
- validator.assertOptions(config, {
- baseUrl: validators.spelling('baseURL'),
- withXsrfToken: validators.spelling('withXSRFToken')
- }, true);
-
// Set config.method
config.method = (config.method || this.defaults.method || 'get').toLowerCase();
// Flatten headers
- let contextHeaders = headers && utils$1.merge(
+ let contextHeaders = headers && utils.merge(
headers.common,
headers[config.method]
);
- headers && utils$1.forEach(
+ headers && utils.forEach(
['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],
(method) => {
delete headers[method];
@@ -24058,13 +23342,13 @@ class Axios {
getUri(config) {
config = mergeConfig(this.defaults, config);
- const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);
+ const fullPath = buildFullPath(config.baseURL, config.url);
return buildURL(fullPath, config.params, config.paramsSerializer);
}
}
// Provide aliases for supported request methods
-utils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {
+utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {
/*eslint func-names:0*/
Axios.prototype[method] = function(url, config) {
return this.request(mergeConfig(config || {}, {
@@ -24075,7 +23359,7 @@ utils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoDa
};
});
-utils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
+utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
/*eslint func-names:0*/
function generateHTTPMethod(isForm) {
@@ -24198,20 +23482,6 @@ class CancelToken {
}
}
- toAbortSignal() {
- const controller = new AbortController();
-
- const abort = (err) => {
- controller.abort(err);
- };
-
- this.subscribe(abort);
-
- controller.signal.unsubscribe = () => this.unsubscribe(abort);
-
- return controller.signal;
- }
-
/**
* Returns an object that contains a new `CancelToken` and a function that, when called,
* cancels the `CancelToken`.
@@ -24265,7 +23535,7 @@ function spread(callback) {
* @returns {boolean} True if the payload is an error thrown by Axios, otherwise false
*/
function isAxiosError(payload) {
- return utils$1.isObject(payload) && (payload.isAxiosError === true);
+ return utils.isObject(payload) && (payload.isAxiosError === true);
}
const HttpStatusCode = {
@@ -24352,10 +23622,10 @@ function createInstance(defaultConfig) {
const instance = bind(Axios$1.prototype.request, context);
// Copy axios.prototype to instance
- utils$1.extend(instance, Axios$1.prototype, context, {allOwnKeys: true});
+ utils.extend(instance, Axios$1.prototype, context, {allOwnKeys: true});
// Copy context to instance
- utils$1.extend(instance, context, null, {allOwnKeys: true});
+ utils.extend(instance, context, null, {allOwnKeys: true});
// Factory for creating new instances
instance.create = function create(instanceConfig) {
@@ -24399,7 +23669,7 @@ axios.mergeConfig = mergeConfig;
axios.AxiosHeaders = AxiosHeaders$1;
-axios.formToJSON = thing => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing);
+axios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);
axios.getAdapter = adapters.getAdapter;
@@ -24417,7 +23687,7 @@ module.exports = axios;
/***/ ((module) => {
"use strict";
-module.exports = JSON.parse('{"name":"@kie/git-backporting","version":"4.8.5","description":"Git backporting is a tool to execute automatic pull request git backporting.","author":"","license":"MIT","private":false,"main":"./dist/gha/index.js","bin":{"git-backporting":"./dist/cli/index.js"},"files":["dist/cli/index.js"],"publishConfig":{"access":"public"},"scripts":{"prepare":"husky install","clean":"rm -rf ./build ./dist","compile":"tsc -p tsconfig.json && tsc-alias -p tsconfig.json","package":"npm run package:cli && npm run package:gha","package:cli":"ncc build ./build/src/bin/cli.js -o dist/cli","package:gha":"ncc build ./build/src/bin/gha.js -o dist/gha","build":"npm run clean && npm run compile && npm run package","test":"jest --silent","test:report":"npm test -- --coverage --testResultsProcessor=jest-sonar-reporter","lint":"eslint . --ext .ts","lint:fix":"npm run lint -- --fix","ts-node":"ts-node","postversion":"npm run build && git add dist && rm -rf build","release":"release-it","release:branch":"git checkout -b release/$(release-it --release-version) main","release:prepare":"release-it --no-npm.publish --no-github.release --no-git.push --no-git.tag --no-git.requireUpstream","release:prepare:all":"npm run release:branch && npm run release:prepare"},"repository":{"type":"git","url":"git+https://github.com/kiegroup/git-backporting.git"},"keywords":["backporting","pull-requests","merge-requests","github-action","cherry-pick"],"bugs":{"url":"https://github.com/kiegroup/git-backporting/issues"},"homepage":"https://github.com/kiegroup/git-backporting#readme","devDependencies":{"@commitlint/cli":"^17.4.0","@commitlint/config-conventional":"^17.4.0","@gitbeaker/rest":"^39.1.0","@kie/mock-github":"^1.1.0","@octokit/webhooks-types":"^6.8.0","@release-it/conventional-changelog":"^10.0.0","@types/fs-extra":"^9.0.13","@types/jest":"^29.2.4","@types/node":"^18.11.17","@typescript-eslint/eslint-plugin":"^5.47.0","@typescript-eslint/parser":"^5.47.0","@vercel/ncc":"^0.36.0","eslint":"^8.30.0","husky":"^8.0.2","jest":"^29.0.0","jest-sonar-reporter":"^2.0.0","release-it":"^18.1.2","semver":"^7.3.8","ts-jest":"^29.0.0","ts-node":"^10.8.1","tsc-alias":"^1.8.2","tsconfig-paths":"^4.1.0","typescript":"^4.9.3"},"dependencies":{"@actions/core":"^1.10.0","@octokit/rest":"^18.12.0","axios":"^1.4.0","commander":"^9.3.0","fs-extra":"^11.1.0","https":"^1.0.0","simple-git":"^3.15.1"}}');
+module.exports = JSON.parse('{"name":"@kie/git-backporting","version":"4.5.1","description":"Git backporting is a tool to execute automatic pull request git backporting.","author":"","license":"MIT","private":false,"main":"./dist/gha/index.js","bin":{"git-backporting":"./dist/cli/index.js"},"files":["dist/cli/index.js"],"publishConfig":{"access":"public"},"scripts":{"prepare":"husky install","clean":"rm -rf ./build ./dist","compile":"tsc -p tsconfig.json && tsc-alias -p tsconfig.json","package":"npm run package:cli && npm run package:gha","package:cli":"ncc build ./build/src/bin/cli.js -o dist/cli","package:gha":"ncc build ./build/src/bin/gha.js -o dist/gha","build":"npm run clean && npm run compile && npm run package","test":"jest --silent","test:report":"npm test -- --coverage --testResultsProcessor=jest-sonar-reporter","lint":"eslint . --ext .ts","lint:fix":"npm run lint -- --fix","ts-node":"ts-node","postversion":"npm run build && git add dist && rm -rf build","release":"release-it","release:branch":"git checkout -b release/$(release-it --release-version) main","release:prepare":"release-it --no-npm.publish --no-github.release --no-git.push --no-git.tag --no-git.requireUpstream","release:prepare:all":"npm run release:branch && npm run release:prepare"},"repository":{"type":"git","url":"git+https://github.com/kiegroup/git-backporting.git"},"keywords":["backporting","pull-requests","merge-requests","github-action","cherry-pick"],"bugs":{"url":"https://github.com/kiegroup/git-backporting/issues"},"homepage":"https://github.com/kiegroup/git-backporting#readme","devDependencies":{"@commitlint/cli":"^17.4.0","@commitlint/config-conventional":"^17.4.0","@gitbeaker/rest":"^39.1.0","@kie/mock-github":"^1.1.0","@octokit/webhooks-types":"^6.8.0","@release-it/conventional-changelog":"^7.0.0","@types/fs-extra":"^9.0.13","@types/jest":"^29.2.4","@types/node":"^18.11.17","@typescript-eslint/eslint-plugin":"^5.47.0","@typescript-eslint/parser":"^5.47.0","@vercel/ncc":"^0.36.0","eslint":"^8.30.0","husky":"^8.0.2","jest":"^29.0.0","jest-sonar-reporter":"^2.0.0","release-it":"^16.1.3","semver":"^7.3.8","ts-jest":"^29.0.0","ts-node":"^10.8.1","tsc-alias":"^1.8.2","tsconfig-paths":"^4.1.0","typescript":"^4.9.3"},"dependencies":{"@actions/core":"^1.10.0","@octokit/rest":"^18.12.0","axios":"^1.4.0","commander":"^9.3.0","fs-extra":"^11.1.0","https":"^1.0.0","simple-git":"^3.15.1"}}');
/***/ }),
diff --git a/dist/gha/index.js b/dist/gha/index.js
index b477378..529a401 100755
--- a/dist/gha/index.js
+++ b/dist/gha/index.js
@@ -39,21 +39,16 @@ class ArgsParser {
}
parse() {
const args = this.readArgs();
- if (!args.pullRequest) {
- throw new Error("Missing option: pull request must be provided");
- }
// validate and fill with defaults
- if ((!args.targetBranch || args.targetBranch.trim().length == 0) && !args.targetBranchPattern) {
- throw new Error("Missing option: target branch(es) or target regular expression must be provided");
+ if (!args.pullRequest || !args.targetBranch || args.targetBranch.trim().length == 0) {
+ throw new Error("Missing option: pull request and target branches must be provided");
}
return {
pullRequest: args.pullRequest,
targetBranch: args.targetBranch,
- targetBranchPattern: args.targetBranchPattern,
dryRun: this.getOrDefault(args.dryRun, false),
auth: this.getOrDefault(args.auth),
folder: this.getOrDefault(args.folder),
- gitClient: this.getOrDefault(args.gitClient),
gitUser: this.getOrDefault(args.gitUser),
gitEmail: this.getOrDefault(args.gitEmail),
title: this.getOrDefault(args.title),
@@ -66,12 +61,9 @@ class ArgsParser {
labels: this.getOrDefault(args.labels, []),
inheritLabels: this.getOrDefault(args.inheritLabels, false),
squash: this.getOrDefault(args.squash, true),
- autoNoSquash: this.getOrDefault(args.autoNoSquash, false),
strategy: this.getOrDefault(args.strategy),
strategyOption: this.getOrDefault(args.strategyOption),
- cherryPickOptions: this.getOrDefault(args.cherryPickOptions),
- comments: this.getOrDefault(args.comments),
- enableErrorNotification: this.getOrDefault(args.enableErrorNotification, false),
+ comments: this.getOrDefault(args.comments)
};
}
}
@@ -109,7 +101,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
return result;
};
Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.getAsBooleanOrUndefined = exports.getAsSemicolonSeparatedList = exports.getAsCommaSeparatedList = exports.getAsCleanedCommaSeparatedList = exports.getOrUndefined = exports.readConfigFile = exports.parseArgs = void 0;
+exports.getAsBooleanOrDefault = exports.getAsSemicolonSeparatedList = exports.getAsCommaSeparatedList = exports.getAsCleanedCommaSeparatedList = exports.getOrUndefined = exports.readConfigFile = exports.parseArgs = void 0;
const fs = __importStar(__nccwpck_require__(7147));
/**
* Parse the input configuation string as json object and
@@ -160,11 +152,11 @@ function getAsSemicolonSeparatedList(value) {
return trimmed !== "" ? trimmed.split(";").map(v => v.trim()) : undefined;
}
exports.getAsSemicolonSeparatedList = getAsSemicolonSeparatedList;
-function getAsBooleanOrUndefined(value) {
+function getAsBooleanOrDefault(value) {
const trimmed = value.trim();
return trimmed !== "" ? trimmed.toLowerCase() === "true" : undefined;
}
-exports.getAsBooleanOrUndefined = getAsBooleanOrUndefined;
+exports.getAsBooleanOrDefault = getAsBooleanOrDefault;
/***/ }),
@@ -190,13 +182,11 @@ class GHAArgsParser extends args_parser_1.default {
}
else {
args = {
- dryRun: (0, args_utils_1.getAsBooleanOrUndefined)((0, core_1.getInput)("dry-run")),
+ dryRun: (0, args_utils_1.getAsBooleanOrDefault)((0, core_1.getInput)("dry-run")),
auth: (0, args_utils_1.getOrUndefined)((0, core_1.getInput)("auth")),
pullRequest: (0, core_1.getInput)("pull-request"),
- targetBranch: (0, args_utils_1.getOrUndefined)((0, core_1.getInput)("target-branch")),
- targetBranchPattern: (0, args_utils_1.getOrUndefined)((0, core_1.getInput)("target-branch-pattern")),
+ targetBranch: (0, core_1.getInput)("target-branch"),
folder: (0, args_utils_1.getOrUndefined)((0, core_1.getInput)("folder")),
- gitClient: (0, args_utils_1.getOrUndefined)((0, core_1.getInput)("git-client")),
gitUser: (0, args_utils_1.getOrUndefined)((0, core_1.getInput)("git-user")),
gitEmail: (0, args_utils_1.getOrUndefined)((0, core_1.getInput)("git-email")),
title: (0, args_utils_1.getOrUndefined)((0, core_1.getInput)("title")),
@@ -205,16 +195,13 @@ class GHAArgsParser extends args_parser_1.default {
bpBranchName: (0, args_utils_1.getOrUndefined)((0, core_1.getInput)("bp-branch-name")),
reviewers: (0, args_utils_1.getAsCleanedCommaSeparatedList)((0, core_1.getInput)("reviewers")),
assignees: (0, args_utils_1.getAsCleanedCommaSeparatedList)((0, core_1.getInput)("assignees")),
- inheritReviewers: !(0, args_utils_1.getAsBooleanOrUndefined)((0, core_1.getInput)("no-inherit-reviewers")),
+ inheritReviewers: !(0, args_utils_1.getAsBooleanOrDefault)((0, core_1.getInput)("no-inherit-reviewers")),
labels: (0, args_utils_1.getAsCommaSeparatedList)((0, core_1.getInput)("labels")),
- inheritLabels: (0, args_utils_1.getAsBooleanOrUndefined)((0, core_1.getInput)("inherit-labels")),
- squash: !(0, args_utils_1.getAsBooleanOrUndefined)((0, core_1.getInput)("no-squash")),
- autoNoSquash: (0, args_utils_1.getAsBooleanOrUndefined)((0, core_1.getInput)("auto-no-squash")),
+ inheritLabels: (0, args_utils_1.getAsBooleanOrDefault)((0, core_1.getInput)("inherit-labels")),
+ squash: !(0, args_utils_1.getAsBooleanOrDefault)((0, core_1.getInput)("no-squash")),
strategy: (0, args_utils_1.getOrUndefined)((0, core_1.getInput)("strategy")),
strategyOption: (0, args_utils_1.getOrUndefined)((0, core_1.getInput)("strategy-option")),
- cherryPickOptions: (0, args_utils_1.getOrUndefined)((0, core_1.getInput)("cherry-pick-options")),
comments: (0, args_utils_1.getAsSemicolonSeparatedList)((0, core_1.getInput)("comments")),
- enableErrorNotification: (0, args_utils_1.getAsBooleanOrUndefined)((0, core_1.getInput)("enable-err-notification")),
};
}
return args;
@@ -268,9 +255,7 @@ exports["default"] = ConfigsParser;
"use strict";
Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.AuthTokenId = exports.MESSAGE_TARGET_BRANCH_PLACEHOLDER = exports.MESSAGE_ERROR_PLACEHOLDER = void 0;
-exports.MESSAGE_ERROR_PLACEHOLDER = "{{error}}";
-exports.MESSAGE_TARGET_BRANCH_PLACEHOLDER = "{{target-branch}}";
+exports.AuthTokenId = void 0;
var AuthTokenId;
(function (AuthTokenId) {
// github specific token
@@ -297,7 +282,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
Object.defineProperty(exports, "__esModule", ({ value: true }));
const args_utils_1 = __nccwpck_require__(8048);
const configs_parser_1 = __importDefault(__nccwpck_require__(5799));
-const configs_types_1 = __nccwpck_require__(4753);
const git_client_factory_1 = __importDefault(__nccwpck_require__(8550));
class PullRequestConfigsParser extends configs_parser_1.default {
constructor() {
@@ -306,9 +290,6 @@ class PullRequestConfigsParser extends configs_parser_1.default {
}
async parse(args) {
let pr;
- if (args.autoNoSquash) {
- args.squash = undefined;
- }
try {
pr = await this.gitClient.getPullRequestFromUrl(args.pullRequest, args.squash);
}
@@ -317,18 +298,7 @@ class PullRequestConfigsParser extends configs_parser_1.default {
throw error;
}
const folder = args.folder ?? this.getDefaultFolder();
- let targetBranches = [];
- if (args.targetBranchPattern) {
- // parse labels to extract target branch(es)
- targetBranches = this.getTargetBranchesFromLabels(args.targetBranchPattern, pr.labels);
- if (targetBranches.length === 0) {
- throw new Error(`Unable to extract target branches with regular expression "${args.targetBranchPattern}"`);
- }
- }
- else {
- // target branch must be provided if targetRegExp is missing
- targetBranches = [...new Set((0, args_utils_1.getAsCommaSeparatedList)(args.targetBranch))];
- }
+ const targetBranches = [...new Set((0, args_utils_1.getAsCommaSeparatedList)(args.targetBranch))];
const bpBranchNames = [...new Set(args.bpBranchName ? ((0, args_utils_1.getAsCleanedCommaSeparatedList)(args.bpBranchName) ?? []) : [])];
if (bpBranchNames.length > 1 && bpBranchNames.length != targetBranches.length) {
throw new Error(`The number of backport branch names, if provided, must match the number of target branches or just one, provided ${bpBranchNames.length} branch names instead`);
@@ -339,48 +309,17 @@ class PullRequestConfigsParser extends configs_parser_1.default {
folder: `${folder.startsWith("/") ? "" : process.cwd() + "/"}${args.folder ?? this.getDefaultFolder()}`,
mergeStrategy: args.strategy,
mergeStrategyOption: args.strategyOption,
- cherryPickOptions: args.cherryPickOptions,
originalPullRequest: pr,
backportPullRequests: this.generateBackportPullRequestsData(pr, args, targetBranches, bpBranchNames),
git: {
user: args.gitUser ?? this.gitClient.getDefaultGitUser(),
email: args.gitEmail ?? this.gitClient.getDefaultGitEmail(),
- },
- errorNotification: {
- enabled: args.enableErrorNotification ?? false,
- message: this.getDefaultErrorComment(),
- },
+ }
};
}
getDefaultFolder() {
return "bp";
}
- getDefaultErrorComment() {
- // TODO: fetch from arg or set default with placeholder {{error}}
- return `The backport to \`${configs_types_1.MESSAGE_TARGET_BRANCH_PLACEHOLDER}\` failed. Check the latest run for more details.`;
- }
- /**
- * Parse the provided labels and return a list of target branches
- * obtained by applying the provided pattern as regular expression extractor
- * @param pattern reg exp pattern to extract target branch from label name
- * @param labels list of labels to check
- * @returns list of target branches
- */
- getTargetBranchesFromLabels(pattern, labels) {
- this.logger.debug(`Extracting branches from [${labels}] using ${pattern}`);
- const regExp = new RegExp(pattern);
- const branches = [];
- for (const l of labels) {
- const result = regExp.exec(l);
- if (result?.groups) {
- const { target } = result.groups;
- if (target) {
- branches.push(target);
- }
- }
- }
- return [...new Set(branches)];
- }
/**
* Create a backport pull request starting from the target branch and
* the original pr to be backported
@@ -506,13 +445,6 @@ class GitCLIService {
return;
}
this.logger.info(`Folder ${to} already exist. Won't clone`);
- // ensure the working tree is properly reset - no stale changes
- // from previous (failed) backport
- const ongoingCherryPick = await this.anyConflict(to);
- if (ongoingCherryPick) {
- this.logger.warn("Found previously failed cherry-pick, aborting it");
- await this.git(to).raw(["cherry-pick", "--abort"]);
- }
// checkout to the proper branch
this.logger.info(`Checking out branch ${branch}`);
await this.git(to).checkout(branch);
@@ -551,14 +483,9 @@ class GitCLIService {
* @param cwd repository in which the sha should be cherry picked to
* @param sha commit sha
*/
- async cherryPick(cwd, sha, strategy = "recursive", strategyOption = "theirs", cherryPickOptions) {
+ async cherryPick(cwd, sha, strategy = "recursive", strategyOption = "theirs") {
this.logger.info(`Cherry picking ${sha}`);
- let options = ["cherry-pick", "-m", "1", `--strategy=${strategy}`, `--strategy-option=${strategyOption}`];
- if (cherryPickOptions !== undefined) {
- options = options.concat(cherryPickOptions.split(" "));
- }
- options.push(sha);
- this.logger.debug(`Cherry picking command git ${options}`);
+ const options = ["cherry-pick", "-m", "1", `--strategy=${strategy}`, `--strategy-option=${strategyOption}`, sha];
try {
await this.git(cwd).raw(options);
}
@@ -570,20 +497,6 @@ class GitCLIService {
throw error;
}
}
- /**
- * Check whether there are some conflicts in the current working directory
- * which means there is an ongoing cherry-pick that did not complete successfully
- * @param cwd repository in which the check should be performed
- * @return true if there is some conflict, false otherwise
- */
- async anyConflict(cwd) {
- const status = await this.git(cwd).status();
- if (status.conflicted.length > 0) {
- this.logger.debug(`Found conflicts in branch ${status.current}`);
- return true;
- }
- return false;
- }
/**
* Push a branch to a remote
* @param cwd repository in which the push should be performed
@@ -667,16 +580,12 @@ GitClientFactory.logger = logger_service_factory_1.default.getLogger();
/***/ }),
/***/ 9080:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
"use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
-};
Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.getEnv = exports.getGitTokenFromEnv = exports.inferSquash = exports.inferGitApiUrl = exports.inferGitClient = void 0;
-const logger_service_factory_1 = __importDefault(__nccwpck_require__(8936));
+exports.getEnv = exports.getGitTokenFromEnv = exports.inferGitApiUrl = exports.inferGitClient = void 0;
const git_types_1 = __nccwpck_require__(750);
const configs_types_1 = __nccwpck_require__(4753);
const PUBLIC_GITHUB_URL = "https://github.com";
@@ -716,30 +625,6 @@ const inferGitApiUrl = (prUrl, apiVersion = "v4") => {
return `${baseUrl}/api/${apiVersion}`;
};
exports.inferGitApiUrl = inferGitApiUrl;
-/**
- * Infer the value of the squash option
- * @param open true if the pull/merge request is still open
- * @param squash_commit undefined or null if the pull/merge request was merged, the sha of the squashed commit if it was squashed
- * @returns true if a single commit must be cherry-picked, false if all merged commits must be cherry-picked
- */
-const inferSquash = (open, squash_commit) => {
- const logger = logger_service_factory_1.default.getLogger();
- if (open) {
- logger.debug("cherry-pick all commits because they have not been merged (or squashed) in the base branch yet");
- return false;
- }
- else {
- if (squash_commit) {
- logger.debug(`cherry-pick the squashed commit ${squash_commit}`);
- return true;
- }
- else {
- logger.debug("cherry-pick the merged commit(s)");
- return false;
- }
- }
-};
-exports.inferSquash = inferSquash;
/**
* Retrieve the git token from env variable, the default is taken from GIT_TOKEN env.
* All specific git env variable have precedence and override the default one.
@@ -815,7 +700,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", ({ value: true }));
-const git_util_1 = __nccwpck_require__(9080);
const git_types_1 = __nccwpck_require__(750);
const github_mapper_1 = __importDefault(__nccwpck_require__(5764));
const octokit_factory_1 = __importDefault(__nccwpck_require__(4257));
@@ -838,28 +722,13 @@ class GitHubClient {
getDefaultGitEmail() {
return "noreply@github.com";
}
- async getPullRequest(owner, repo, prNumber, squash) {
+ async getPullRequest(owner, repo, prNumber, squash = true) {
this.logger.debug(`Fetching pull request ${owner}/${repo}/${prNumber}`);
const { data } = await this.octokit.rest.pulls.get({
owner: owner,
repo: repo,
pull_number: prNumber,
});
- if (squash === undefined) {
- let commit_sha = undefined;
- const open = data.state == "open";
- if (!open) {
- const commit = await this.octokit.rest.git.getCommit({
- owner: owner,
- repo: repo,
- commit_sha: data.merge_commit_sha,
- });
- if (commit.data.parents.length === 1) {
- commit_sha = data.merge_commit_sha;
- }
- }
- squash = (0, git_util_1.inferSquash)(open, commit_sha);
- }
const commits = [];
if (!squash) {
// fetch all commits
@@ -870,11 +739,6 @@ class GitHubClient {
pull_number: prNumber,
});
commits.push(...data.map(c => c.sha));
- if (this.isForCodeberg) {
- // For some reason, even though Codeberg advertises API compatibility
- // with GitHub, it returns commits in reversed order.
- commits.reverse();
- }
}
catch (error) {
throw new Error(`Failed to retrieve commits for pull request n. ${prNumber}`);
@@ -882,7 +746,7 @@ class GitHubClient {
}
return this.mapper.mapPullRequest(data, commits);
}
- async getPullRequestFromUrl(prUrl, squash) {
+ async getPullRequestFromUrl(prUrl, squash = true) {
const { owner, project, id } = this.extractPullRequestData(prUrl);
return this.getPullRequest(owner, project, id, squash);
}
@@ -939,26 +803,6 @@ class GitHubClient {
await Promise.all(promises);
return data.html_url;
}
- async createPullRequestComment(prUrl, comment) {
- let commentUrl = undefined;
- try {
- const { owner, project, id } = this.extractPullRequestData(prUrl);
- const { data } = await this.octokit.issues.createComment({
- owner: owner,
- repo: project,
- issue_number: id,
- body: comment
- });
- if (!data) {
- throw new Error("Pull request comment creation failed");
- }
- commentUrl = data.url;
- }
- catch (error) {
- this.logger.error(`Error creating comment on pull request ${prUrl}: ${error}`);
- }
- return commentUrl;
- }
// UTILS
/**
* Extract repository owner and project from the pull request url
@@ -1006,8 +850,8 @@ class GitHubMapper {
state: this.mapGitState(pr.state),
merged: pr.merged ?? false,
mergedBy: pr.merged_by?.login,
- reviewers: pr.requested_reviewers?.filter(r => r && "login" in r).map((r => r?.login)) ?? [],
- assignees: pr.assignees?.filter(r => r && "login" in r).map(r => r.login) ?? [],
+ reviewers: pr.requested_reviewers?.filter(r => "login" in r).map((r => r?.login)) ?? [],
+ assignees: pr.assignees?.filter(r => "login" in r).map(r => r.login) ?? [],
labels: pr.labels?.map(l => l.name) ?? [],
sourceRepo: await this.mapSourceRepo(pr),
targetRepo: await this.mapTargetRepo(pr),
@@ -1081,7 +925,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", ({ value: true }));
-const git_util_1 = __nccwpck_require__(9080);
const git_types_1 = __nccwpck_require__(750);
const logger_service_factory_1 = __importDefault(__nccwpck_require__(8936));
const gitlab_mapper_1 = __importDefault(__nccwpck_require__(2675));
@@ -1114,14 +957,9 @@ class GitLabClient {
}
// READ
// example: /api/v4/projects/%2Fbackporting-example/merge_requests/1
- async getPullRequest(namespace, repo, mrNumber, squash) {
+ async getPullRequest(namespace, repo, mrNumber, squash = true) {
const projectId = this.getProjectId(namespace, repo);
- const url = `/projects/${projectId}/merge_requests/${mrNumber}`;
- this.logger.debug(`Fetching pull request ${url}`);
- const { data } = await this.client.get(`${url}`);
- if (squash === undefined) {
- squash = (0, git_util_1.inferSquash)(data.state === "opened", data.squash_commit_sha);
- }
+ const { data } = await this.client.get(`/projects/${projectId}/merge_requests/${mrNumber}`);
const commits = [];
if (!squash) {
// fetch all commits
@@ -1136,7 +974,7 @@ class GitLabClient {
}
return this.mapper.mapPullRequest(data, commits);
}
- getPullRequestFromUrl(mrUrl, squash) {
+ getPullRequestFromUrl(mrUrl, squash = true) {
const { namespace, project, id } = this.extractMergeRequestData(mrUrl);
return this.getPullRequest(namespace, project, id, squash);
}
@@ -1202,25 +1040,6 @@ class GitLabClient {
await Promise.all(promises);
return mr.web_url;
}
- // https://docs.gitlab.com/ee/api/notes.html#create-new-issue-note
- async createPullRequestComment(mrUrl, comment) {
- const commentUrl = undefined;
- try {
- const { namespace, project, id } = this.extractMergeRequestData(mrUrl);
- const projectId = this.getProjectId(namespace, project);
- const { data } = await this.client.post(`/projects/${projectId}/merge_requests/${id}/notes`, {
- body: comment,
- });
- if (!data) {
- throw new Error("Merge request comment creation failed");
- }
- }
- catch (error) {
- this.logger.error(`Error creating comment on merge request ${mrUrl}: ${error}`);
- }
- return commentUrl;
- }
- // UTILS
/**
* Retrieve a gitlab user given its username
* @param username
@@ -1368,9 +1187,6 @@ class ConsoleLoggerService {
setContext(newContext) {
this.context = newContext;
}
- getContext() {
- return this.context;
- }
clearContext() {
this.context = undefined;
}
@@ -1447,39 +1263,6 @@ class Logger {
exports["default"] = Logger;
-/***/ }),
-
-/***/ 9632:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.injectTargetBranch = exports.injectError = void 0;
-const configs_types_1 = __nccwpck_require__(4753);
-/**
- * Inject the error message in the provided `message`.
- * This is injected in place of the MESSAGE_ERROR_PLACEHOLDER placeholder
- * @param message string that needs to be updated
- * @param errMsg the error message that needs to be injected
- */
-const injectError = (message, errMsg) => {
- return message.replace(configs_types_1.MESSAGE_ERROR_PLACEHOLDER, errMsg);
-};
-exports.injectError = injectError;
-/**
- * Inject the target branch into the provided `message`.
- * This is injected in place of the MESSAGE_TARGET_BRANCH_PLACEHOLDER placeholder
- * @param message string that needs to be updated
- * @param targetBranch the target branch to inject
- * @returns
- */
-const injectTargetBranch = (message, targetBranch) => {
- return message.replace(configs_types_1.MESSAGE_TARGET_BRANCH_PLACEHOLDER, targetBranch);
-};
-exports.injectTargetBranch = injectTargetBranch;
-
-
/***/ }),
/***/ 8810:
@@ -1497,7 +1280,6 @@ const git_client_factory_1 = __importDefault(__nccwpck_require__(8550));
const git_types_1 = __nccwpck_require__(750);
const logger_service_factory_1 = __importDefault(__nccwpck_require__(8936));
const git_util_1 = __nccwpck_require__(9080);
-const runner_util_1 = __nccwpck_require__(9632);
/**
* Main runner implementation, it implements the core logic flow
*/
@@ -1531,13 +1313,7 @@ class Runner {
this.logger.warn("Dry run enabled");
}
// 2. init git service
- let gitClientType;
- if (args.gitClient === undefined) {
- gitClientType = (0, git_util_1.inferGitClient)(args.pullRequest);
- }
- else {
- gitClientType = args.gitClient;
- }
+ const gitClientType = (0, git_util_1.inferGitClient)(args.pullRequest);
// the api version is ignored in case of github
const apiUrl = (0, git_util_1.inferGitApiUrl)(args.pullRequest, gitClientType === git_types_1.GitClientType.CODEBERG ? "v1" : undefined);
const token = this.fetchToken(args, gitClientType);
@@ -1562,12 +1338,6 @@ class Runner {
}
catch (error) {
this.logger.error(`Something went wrong backporting to ${pr.base}: ${error}`);
- if (!configs.dryRun && configs.errorNotification.enabled && configs.errorNotification.message.length > 0) {
- // notify the failure as comment in the original pull request
- let comment = (0, runner_util_1.injectError)(configs.errorNotification.message, error);
- comment = (0, runner_util_1.injectTargetBranch)(comment, pr.base);
- await gitApi.createPullRequestComment(configs.originalPullRequest.url, comment);
- }
failures.push(error);
}
}
@@ -1613,7 +1383,7 @@ class Runner {
// 7. apply all changes to the new branch
this.logger.debug("Cherry picking commits..");
for (const sha of originalPR.commits) {
- await git.gitCli.cherryPick(configs.folder, sha, configs.mergeStrategy, configs.mergeStrategyOption, configs.cherryPickOptions);
+ await git.gitCli.cherryPick(configs.folder, sha, configs.mergeStrategy, configs.mergeStrategyOption);
}
if (!configs.dryRun) {
// 8. push the new branch to origin
@@ -7843,7 +7613,6 @@ var preservedUrlFields = [
"protocol",
"query",
"search",
- "hash",
];
// Create handlers that pass events from native requests
@@ -8277,7 +8046,7 @@ RedirectableRequest.prototype._processResponse = function (response) {
redirectUrl.protocol !== "https:" ||
redirectUrl.host !== currentHost &&
!isSubdomain(redirectUrl.host, currentHost)) {
- removeMatchingHeaders(/^(?:(?:proxy-)?authorization|cookie)$/i, this._options.headers);
+ removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers);
}
// Evaluate the beforeRedirect callback
@@ -19044,11 +18813,10 @@ module.exports = require("zlib");
/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
"use strict";
-/*! Axios v1.8.4 Copyright (c) 2025 Matt Zabriskie and contributors */
+// Axios v1.6.0 Copyright (c) 2023 Matt Zabriskie and contributors
const FormData$1 = __nccwpck_require__(4334);
-const crypto = __nccwpck_require__(6113);
const url = __nccwpck_require__(7310);
const proxyFromEnv = __nccwpck_require__(3329);
const http = __nccwpck_require__(3685);
@@ -19057,20 +18825,19 @@ const util = __nccwpck_require__(3837);
const followRedirects = __nccwpck_require__(7707);
const zlib = __nccwpck_require__(9796);
const stream = __nccwpck_require__(2781);
-const events = __nccwpck_require__(2361);
+const EventEmitter = __nccwpck_require__(2361);
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
const FormData__default = /*#__PURE__*/_interopDefaultLegacy(FormData$1);
-const crypto__default = /*#__PURE__*/_interopDefaultLegacy(crypto);
const url__default = /*#__PURE__*/_interopDefaultLegacy(url);
-const proxyFromEnv__default = /*#__PURE__*/_interopDefaultLegacy(proxyFromEnv);
const http__default = /*#__PURE__*/_interopDefaultLegacy(http);
const https__default = /*#__PURE__*/_interopDefaultLegacy(https);
const util__default = /*#__PURE__*/_interopDefaultLegacy(util);
const followRedirects__default = /*#__PURE__*/_interopDefaultLegacy(followRedirects);
const zlib__default = /*#__PURE__*/_interopDefaultLegacy(zlib);
const stream__default = /*#__PURE__*/_interopDefaultLegacy(stream);
+const EventEmitter__default = /*#__PURE__*/_interopDefaultLegacy(EventEmitter);
function bind(fn, thisArg) {
return function wrap() {
@@ -19285,8 +19052,6 @@ const isFormData = (thing) => {
*/
const isURLSearchParams = kindOfTest('URLSearchParams');
-const [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);
-
/**
* Trim excess whitespace off the beginning and end of a string
*
@@ -19675,7 +19440,28 @@ const toObjectSet = (arrayOrString, delimiter) => {
const noop = () => {};
const toFiniteNumber = (value, defaultValue) => {
- return value != null && Number.isFinite(value = +value) ? value : defaultValue;
+ value = +value;
+ return Number.isFinite(value) ? value : defaultValue;
+};
+
+const ALPHA = 'abcdefghijklmnopqrstuvwxyz';
+
+const DIGIT = '0123456789';
+
+const ALPHABET = {
+ DIGIT,
+ ALPHA,
+ ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT
+};
+
+const generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {
+ let str = '';
+ const {length} = alphabet;
+ while (size--) {
+ str += alphabet[Math.random() * length|0];
+ }
+
+ return str;
};
/**
@@ -19725,37 +19511,7 @@ const isAsyncFn = kindOfTest('AsyncFunction');
const isThenable = (thing) =>
thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);
-// original code
-// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34
-
-const _setImmediate = ((setImmediateSupported, postMessageSupported) => {
- if (setImmediateSupported) {
- return setImmediate;
- }
-
- return postMessageSupported ? ((token, callbacks) => {
- _global.addEventListener("message", ({source, data}) => {
- if (source === _global && data === token) {
- callbacks.length && callbacks.shift()();
- }
- }, false);
-
- return (cb) => {
- callbacks.push(cb);
- _global.postMessage(token, "*");
- }
- })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);
-})(
- typeof setImmediate === 'function',
- isFunction(_global.postMessage)
-);
-
-const asap = typeof queueMicrotask !== 'undefined' ?
- queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);
-
-// *********************
-
-const utils$1 = {
+const utils = {
isArray,
isArrayBuffer,
isBuffer,
@@ -19766,10 +19522,6 @@ const utils$1 = {
isBoolean,
isObject,
isPlainObject,
- isReadableStream,
- isRequest,
- isResponse,
- isHeaders,
isUndefined,
isDate,
isFile,
@@ -19805,12 +19557,12 @@ const utils$1 = {
findKey,
global: _global,
isContextDefined,
+ ALPHABET,
+ generateString,
isSpecCompliantForm,
toJSONObject,
isAsyncFn,
- isThenable,
- setImmediate: _setImmediate,
- asap
+ isThenable
};
/**
@@ -19838,13 +19590,10 @@ function AxiosError(message, code, config, request, response) {
code && (this.code = code);
config && (this.config = config);
request && (this.request = request);
- if (response) {
- this.response = response;
- this.status = response.status ? response.status : null;
- }
+ response && (this.response = response);
}
-utils$1.inherits(AxiosError, Error, {
+utils.inherits(AxiosError, Error, {
toJSON: function toJSON() {
return {
// Standard
@@ -19859,9 +19608,9 @@ utils$1.inherits(AxiosError, Error, {
columnNumber: this.columnNumber,
stack: this.stack,
// Axios
- config: utils$1.toJSONObject(this.config),
+ config: utils.toJSONObject(this.config),
code: this.code,
- status: this.status
+ status: this.response && this.response.status ? this.response.status : null
};
}
});
@@ -19894,7 +19643,7 @@ Object.defineProperty(prototype$1, 'isAxiosError', {value: true});
AxiosError.from = (error, code, config, request, response, customProps) => {
const axiosError = Object.create(prototype$1);
- utils$1.toFlatObject(error, axiosError, function filter(obj) {
+ utils.toFlatObject(error, axiosError, function filter(obj) {
return obj !== Error.prototype;
}, prop => {
return prop !== 'isAxiosError';
@@ -19919,7 +19668,7 @@ AxiosError.from = (error, code, config, request, response, customProps) => {
* @returns {boolean}
*/
function isVisitable(thing) {
- return utils$1.isPlainObject(thing) || utils$1.isArray(thing);
+ return utils.isPlainObject(thing) || utils.isArray(thing);
}
/**
@@ -19930,7 +19679,7 @@ function isVisitable(thing) {
* @returns {string} the key without the brackets.
*/
function removeBrackets(key) {
- return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key;
+ return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;
}
/**
@@ -19959,10 +19708,10 @@ function renderKey(path, key, dots) {
* @returns {boolean}
*/
function isFlatArray(arr) {
- return utils$1.isArray(arr) && !arr.some(isVisitable);
+ return utils.isArray(arr) && !arr.some(isVisitable);
}
-const predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) {
+const predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {
return /^is[A-Z]/.test(prop);
});
@@ -19990,7 +19739,7 @@ const predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop)
* @returns
*/
function toFormData(obj, formData, options) {
- if (!utils$1.isObject(obj)) {
+ if (!utils.isObject(obj)) {
throw new TypeError('target must be an object');
}
@@ -19998,13 +19747,13 @@ function toFormData(obj, formData, options) {
formData = formData || new (FormData__default["default"] || FormData)();
// eslint-disable-next-line no-param-reassign
- options = utils$1.toFlatObject(options, {
+ options = utils.toFlatObject(options, {
metaTokens: true,
dots: false,
indexes: false
}, false, function defined(option, source) {
// eslint-disable-next-line no-eq-null,eqeqeq
- return !utils$1.isUndefined(source[option]);
+ return !utils.isUndefined(source[option]);
});
const metaTokens = options.metaTokens;
@@ -20013,24 +19762,24 @@ function toFormData(obj, formData, options) {
const dots = options.dots;
const indexes = options.indexes;
const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;
- const useBlob = _Blob && utils$1.isSpecCompliantForm(formData);
+ const useBlob = _Blob && utils.isSpecCompliantForm(formData);
- if (!utils$1.isFunction(visitor)) {
+ if (!utils.isFunction(visitor)) {
throw new TypeError('visitor must be a function');
}
function convertValue(value) {
if (value === null) return '';
- if (utils$1.isDate(value)) {
+ if (utils.isDate(value)) {
return value.toISOString();
}
- if (!useBlob && utils$1.isBlob(value)) {
+ if (!useBlob && utils.isBlob(value)) {
throw new AxiosError('Blob is not supported. Use a Buffer instead.');
}
- if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) {
+ if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {
return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);
}
@@ -20051,20 +19800,20 @@ function toFormData(obj, formData, options) {
let arr = value;
if (value && !path && typeof value === 'object') {
- if (utils$1.endsWith(key, '{}')) {
+ if (utils.endsWith(key, '{}')) {
// eslint-disable-next-line no-param-reassign
key = metaTokens ? key : key.slice(0, -2);
// eslint-disable-next-line no-param-reassign
value = JSON.stringify(value);
} else if (
- (utils$1.isArray(value) && isFlatArray(value)) ||
- ((utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))
+ (utils.isArray(value) && isFlatArray(value)) ||
+ ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))
)) {
// eslint-disable-next-line no-param-reassign
key = removeBrackets(key);
arr.forEach(function each(el, index) {
- !(utils$1.isUndefined(el) || el === null) && formData.append(
+ !(utils.isUndefined(el) || el === null) && formData.append(
// eslint-disable-next-line no-nested-ternary
indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),
convertValue(el)
@@ -20092,7 +19841,7 @@ function toFormData(obj, formData, options) {
});
function build(value, path) {
- if (utils$1.isUndefined(value)) return;
+ if (utils.isUndefined(value)) return;
if (stack.indexOf(value) !== -1) {
throw Error('Circular reference detected in ' + path.join('.'));
@@ -20100,9 +19849,9 @@ function toFormData(obj, formData, options) {
stack.push(value);
- utils$1.forEach(value, function each(el, key) {
- const result = !(utils$1.isUndefined(el) || el === null) && visitor.call(
- formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers
+ utils.forEach(value, function each(el, key) {
+ const result = !(utils.isUndefined(el) || el === null) && visitor.call(
+ formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers
);
if (result === true) {
@@ -20113,7 +19862,7 @@ function toFormData(obj, formData, options) {
stack.pop();
}
- if (!utils$1.isObject(obj)) {
+ if (!utils.isObject(obj)) {
throw new TypeError('data must be an object');
}
@@ -20198,7 +19947,7 @@ function encode(val) {
*
* @param {string} url The base of the url (e.g., http://www.google.com)
* @param {object} [params] The params to be appended
- * @param {?(object|Function)} options
+ * @param {?object} options
*
* @returns {string} The formatted url
*/
@@ -20210,12 +19959,6 @@ function buildURL(url, params, options) {
const _encode = options && options.encode || encode;
- if (utils$1.isFunction(options)) {
- options = {
- serialize: options
- };
- }
-
const serializeFn = options && options.serialize;
let serializedParams;
@@ -20223,7 +19966,7 @@ function buildURL(url, params, options) {
if (serializeFn) {
serializedParams = serializeFn(params, options);
} else {
- serializedParams = utils$1.isURLSearchParams(params) ?
+ serializedParams = utils.isURLSearchParams(params) ?
params.toString() :
new AxiosURLSearchParams(params, options).toString(_encode);
}
@@ -20298,7 +20041,7 @@ class InterceptorManager {
* @returns {void}
*/
forEach(fn) {
- utils$1.forEach(this.handlers, function forEachHandler(h) {
+ utils.forEach(this.handlers, function forEachHandler(h) {
if (h !== null) {
fn(h);
}
@@ -20316,103 +20059,20 @@ const transitionalDefaults = {
const URLSearchParams = url__default["default"].URLSearchParams;
-const ALPHA = 'abcdefghijklmnopqrstuvwxyz';
-
-const DIGIT = '0123456789';
-
-const ALPHABET = {
- DIGIT,
- ALPHA,
- ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT
-};
-
-const generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {
- let str = '';
- const {length} = alphabet;
- const randomValues = new Uint32Array(size);
- crypto__default["default"].randomFillSync(randomValues);
- for (let i = 0; i < size; i++) {
- str += alphabet[randomValues[i] % length];
- }
-
- return str;
-};
-
-
-const platform$1 = {
+const platform = {
isNode: true,
classes: {
URLSearchParams,
FormData: FormData__default["default"],
Blob: typeof Blob !== 'undefined' && Blob || null
},
- ALPHABET,
- generateString,
protocols: [ 'http', 'https', 'file', 'data' ]
};
-const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';
-
-const _navigator = typeof navigator === 'object' && navigator || undefined;
-
-/**
- * Determine if we're running in a standard browser environment
- *
- * This allows axios to run in a web worker, and react-native.
- * Both environments support XMLHttpRequest, but not fully standard globals.
- *
- * web workers:
- * typeof window -> undefined
- * typeof document -> undefined
- *
- * react-native:
- * navigator.product -> 'ReactNative'
- * nativescript
- * navigator.product -> 'NativeScript' or 'NS'
- *
- * @returns {boolean}
- */
-const hasStandardBrowserEnv = hasBrowserEnv &&
- (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);
-
-/**
- * Determine if we're running in a standard browser webWorker environment
- *
- * Although the `isStandardBrowserEnv` method indicates that
- * `allows axios to run in a web worker`, the WebWorker will still be
- * filtered out due to its judgment standard
- * `typeof window !== 'undefined' && typeof document !== 'undefined'`.
- * This leads to a problem when axios post `FormData` in webWorker
- */
-const hasStandardBrowserWebWorkerEnv = (() => {
- return (
- typeof WorkerGlobalScope !== 'undefined' &&
- // eslint-disable-next-line no-undef
- self instanceof WorkerGlobalScope &&
- typeof self.importScripts === 'function'
- );
-})();
-
-const origin = hasBrowserEnv && window.location.href || 'http://localhost';
-
-const utils = /*#__PURE__*/Object.freeze({
- __proto__: null,
- hasBrowserEnv: hasBrowserEnv,
- hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv,
- hasStandardBrowserEnv: hasStandardBrowserEnv,
- navigator: _navigator,
- origin: origin
-});
-
-const platform = {
- ...utils,
- ...platform$1
-};
-
function toURLEncodedForm(data, options) {
return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({
visitor: function(value, key, path, helpers) {
- if (platform.isNode && utils$1.isBuffer(value)) {
+ if (utils.isBuffer(value)) {
this.append(key, value.toString('base64'));
return false;
}
@@ -20434,7 +20094,7 @@ function parsePropPath(name) {
// foo.x.y.z
// foo-x-y-z
// foo x y z
- return utils$1.matchAll(/\w+|\[(\w*)]/g, name).map(match => {
+ return utils.matchAll(/\w+|\[(\w*)]/g, name).map(match => {
return match[0] === '[]' ? '' : match[1] || match[0];
});
}
@@ -20469,15 +20129,12 @@ function arrayToObject(arr) {
function formDataToJSON(formData) {
function buildPath(path, value, target, index) {
let name = path[index++];
-
- if (name === '__proto__') return true;
-
const isNumericKey = Number.isFinite(+name);
const isLast = index >= path.length;
- name = !name && utils$1.isArray(target) ? target.length : name;
+ name = !name && utils.isArray(target) ? target.length : name;
if (isLast) {
- if (utils$1.hasOwnProp(target, name)) {
+ if (utils.hasOwnProp(target, name)) {
target[name] = [target[name], value];
} else {
target[name] = value;
@@ -20486,23 +20143,23 @@ function formDataToJSON(formData) {
return !isNumericKey;
}
- if (!target[name] || !utils$1.isObject(target[name])) {
+ if (!target[name] || !utils.isObject(target[name])) {
target[name] = [];
}
const result = buildPath(path, value, target[name], index);
- if (result && utils$1.isArray(target[name])) {
+ if (result && utils.isArray(target[name])) {
target[name] = arrayToObject(target[name]);
}
return !isNumericKey;
}
- if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) {
+ if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {
const obj = {};
- utils$1.forEachEntry(formData, (name, value) => {
+ utils.forEachEntry(formData, (name, value) => {
buildPath(parsePropPath(name), value, obj, 0);
});
@@ -20523,10 +20180,10 @@ function formDataToJSON(formData) {
* @returns {string} A stringified version of the rawValue.
*/
function stringifySafely(rawValue, parser, encoder) {
- if (utils$1.isString(rawValue)) {
+ if (utils.isString(rawValue)) {
try {
(parser || JSON.parse)(rawValue);
- return utils$1.trim(rawValue);
+ return utils.trim(rawValue);
} catch (e) {
if (e.name !== 'SyntaxError') {
throw e;
@@ -20541,36 +20198,38 @@ const defaults = {
transitional: transitionalDefaults,
- adapter: ['xhr', 'http', 'fetch'],
+ adapter: ['xhr', 'http'],
transformRequest: [function transformRequest(data, headers) {
const contentType = headers.getContentType() || '';
const hasJSONContentType = contentType.indexOf('application/json') > -1;
- const isObjectPayload = utils$1.isObject(data);
+ const isObjectPayload = utils.isObject(data);
- if (isObjectPayload && utils$1.isHTMLForm(data)) {
+ if (isObjectPayload && utils.isHTMLForm(data)) {
data = new FormData(data);
}
- const isFormData = utils$1.isFormData(data);
+ const isFormData = utils.isFormData(data);
if (isFormData) {
+ if (!hasJSONContentType) {
+ return data;
+ }
return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;
}
- if (utils$1.isArrayBuffer(data) ||
- utils$1.isBuffer(data) ||
- utils$1.isStream(data) ||
- utils$1.isFile(data) ||
- utils$1.isBlob(data) ||
- utils$1.isReadableStream(data)
+ if (utils.isArrayBuffer(data) ||
+ utils.isBuffer(data) ||
+ utils.isStream(data) ||
+ utils.isFile(data) ||
+ utils.isBlob(data)
) {
return data;
}
- if (utils$1.isArrayBufferView(data)) {
+ if (utils.isArrayBufferView(data)) {
return data.buffer;
}
- if (utils$1.isURLSearchParams(data)) {
+ if (utils.isURLSearchParams(data)) {
headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);
return data.toString();
}
@@ -20582,7 +20241,7 @@ const defaults = {
return toURLEncodedForm(data, this.formSerializer).toString();
}
- if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {
+ if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {
const _FormData = this.env && this.env.FormData;
return toFormData(
@@ -20606,11 +20265,7 @@ const defaults = {
const forcedJSONParsing = transitional && transitional.forcedJSONParsing;
const JSONRequested = this.responseType === 'json';
- if (utils$1.isResponse(data) || utils$1.isReadableStream(data)) {
- return data;
- }
-
- if (data && utils$1.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {
+ if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {
const silentJSONParsing = transitional && transitional.silentJSONParsing;
const strictJSONParsing = !silentJSONParsing && JSONRequested;
@@ -20658,7 +20313,7 @@ const defaults = {
}
};
-utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {
+utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {
defaults.headers[method] = {};
});
@@ -20666,7 +20321,7 @@ const defaults$1 = defaults;
// RawAxiosHeaders whose duplicates are ignored by node
// c.f. https://nodejs.org/api/http.html#http_message_headers
-const ignoreDuplicateOf = utils$1.toObjectSet([
+const ignoreDuplicateOf = utils.toObjectSet([
'age', 'authorization', 'content-length', 'content-type', 'etag',
'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',
'last-modified', 'location', 'max-forwards', 'proxy-authorization',
@@ -20727,7 +20382,7 @@ function normalizeValue(value) {
return value;
}
- return utils$1.isArray(value) ? value.map(normalizeValue) : String(value);
+ return utils.isArray(value) ? value.map(normalizeValue) : String(value);
}
function parseTokens(str) {
@@ -20745,7 +20400,7 @@ function parseTokens(str) {
const isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());
function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {
- if (utils$1.isFunction(filter)) {
+ if (utils.isFunction(filter)) {
return filter.call(this, value, header);
}
@@ -20753,13 +20408,13 @@ function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {
value = header;
}
- if (!utils$1.isString(value)) return;
+ if (!utils.isString(value)) return;
- if (utils$1.isString(filter)) {
+ if (utils.isString(filter)) {
return value.indexOf(filter) !== -1;
}
- if (utils$1.isRegExp(filter)) {
+ if (utils.isRegExp(filter)) {
return filter.test(value);
}
}
@@ -20772,7 +20427,7 @@ function formatHeader(header) {
}
function buildAccessors(obj, header) {
- const accessorName = utils$1.toCamelCase(' ' + header);
+ const accessorName = utils.toCamelCase(' ' + header);
['get', 'set', 'has'].forEach(methodName => {
Object.defineProperty(obj, methodName + accessorName, {
@@ -20799,7 +20454,7 @@ class AxiosHeaders {
throw new Error('header name must be a non-empty string');
}
- const key = utils$1.findKey(self, lHeader);
+ const key = utils.findKey(self, lHeader);
if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {
self[key || _header] = normalizeValue(_value);
@@ -20807,16 +20462,12 @@ class AxiosHeaders {
}
const setHeaders = (headers, _rewrite) =>
- utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));
+ utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));
- if (utils$1.isPlainObject(header) || header instanceof this.constructor) {
+ if (utils.isPlainObject(header) || header instanceof this.constructor) {
setHeaders(header, valueOrRewrite);
- } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {
+ } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {
setHeaders(parseHeaders(header), valueOrRewrite);
- } else if (utils$1.isHeaders(header)) {
- for (const [key, value] of header.entries()) {
- setHeader(value, key, rewrite);
- }
} else {
header != null && setHeader(valueOrRewrite, header, rewrite);
}
@@ -20828,7 +20479,7 @@ class AxiosHeaders {
header = normalizeHeader(header);
if (header) {
- const key = utils$1.findKey(this, header);
+ const key = utils.findKey(this, header);
if (key) {
const value = this[key];
@@ -20841,11 +20492,11 @@ class AxiosHeaders {
return parseTokens(value);
}
- if (utils$1.isFunction(parser)) {
+ if (utils.isFunction(parser)) {
return parser.call(this, value, key);
}
- if (utils$1.isRegExp(parser)) {
+ if (utils.isRegExp(parser)) {
return parser.exec(value);
}
@@ -20858,7 +20509,7 @@ class AxiosHeaders {
header = normalizeHeader(header);
if (header) {
- const key = utils$1.findKey(this, header);
+ const key = utils.findKey(this, header);
return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));
}
@@ -20874,7 +20525,7 @@ class AxiosHeaders {
_header = normalizeHeader(_header);
if (_header) {
- const key = utils$1.findKey(self, _header);
+ const key = utils.findKey(self, _header);
if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {
delete self[key];
@@ -20884,7 +20535,7 @@ class AxiosHeaders {
}
}
- if (utils$1.isArray(header)) {
+ if (utils.isArray(header)) {
header.forEach(deleteHeader);
} else {
deleteHeader(header);
@@ -20913,8 +20564,8 @@ class AxiosHeaders {
const self = this;
const headers = {};
- utils$1.forEach(this, (value, header) => {
- const key = utils$1.findKey(headers, header);
+ utils.forEach(this, (value, header) => {
+ const key = utils.findKey(headers, header);
if (key) {
self[key] = normalizeValue(value);
@@ -20943,8 +20594,8 @@ class AxiosHeaders {
toJSON(asStrings) {
const obj = Object.create(null);
- utils$1.forEach(this, (value, header) => {
- value != null && value !== false && (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value);
+ utils.forEach(this, (value, header) => {
+ value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);
});
return obj;
@@ -20991,7 +20642,7 @@ class AxiosHeaders {
}
}
- utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);
+ utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);
return this;
}
@@ -21000,7 +20651,7 @@ class AxiosHeaders {
AxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);
// reserved names hotfix
-utils$1.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {
+utils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {
let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`
return {
get: () => value,
@@ -21010,7 +20661,7 @@ utils$1.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {
}
});
-utils$1.freezeMethods(AxiosHeaders);
+utils.freezeMethods(AxiosHeaders);
const AxiosHeaders$1 = AxiosHeaders;
@@ -21028,7 +20679,7 @@ function transformData(fns, response) {
const headers = AxiosHeaders$1.from(context.headers);
let data = context.data;
- utils$1.forEach(fns, function transform(fn) {
+ utils.forEach(fns, function transform(fn) {
data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);
});
@@ -21056,7 +20707,7 @@ function CanceledError(message, config, request) {
this.name = 'CanceledError';
}
-utils$1.inherits(CanceledError, AxiosError, {
+utils.inherits(CanceledError, AxiosError, {
__CANCEL__: true
});
@@ -21108,7 +20759,7 @@ function isAbsoluteURL(url) {
*/
function combineURLs(baseURL, relativeURL) {
return relativeURL
- ? baseURL.replace(/\/?\/$/, '') + '/' + relativeURL.replace(/^\/+/, '')
+ ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '')
: baseURL;
}
@@ -21122,15 +20773,14 @@ function combineURLs(baseURL, relativeURL) {
*
* @returns {string} The combined full path
*/
-function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {
- let isRelativeUrl = !isAbsoluteURL(requestedURL);
- if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {
+function buildFullPath(baseURL, requestedURL) {
+ if (baseURL && !isAbsoluteURL(requestedURL)) {
return combineURLs(baseURL, requestedURL);
}
return requestedURL;
}
-const VERSION = "1.8.4";
+const VERSION = "1.6.0";
function parseProtocol(url) {
const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url);
@@ -21185,11 +20835,93 @@ function fromDataURI(uri, asBlob, options) {
throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT);
}
+/**
+ * Throttle decorator
+ * @param {Function} fn
+ * @param {Number} freq
+ * @return {Function}
+ */
+function throttle(fn, freq) {
+ let timestamp = 0;
+ const threshold = 1000 / freq;
+ let timer = null;
+ return function throttled(force, args) {
+ const now = Date.now();
+ if (force || now - timestamp > threshold) {
+ if (timer) {
+ clearTimeout(timer);
+ timer = null;
+ }
+ timestamp = now;
+ return fn.apply(null, args);
+ }
+ if (!timer) {
+ timer = setTimeout(() => {
+ timer = null;
+ timestamp = Date.now();
+ return fn.apply(null, args);
+ }, threshold - (now - timestamp));
+ }
+ };
+}
+
+/**
+ * Calculate data maxRate
+ * @param {Number} [samplesCount= 10]
+ * @param {Number} [min= 1000]
+ * @returns {Function}
+ */
+function speedometer(samplesCount, min) {
+ samplesCount = samplesCount || 10;
+ const bytes = new Array(samplesCount);
+ const timestamps = new Array(samplesCount);
+ let head = 0;
+ let tail = 0;
+ let firstSampleTS;
+
+ min = min !== undefined ? min : 1000;
+
+ return function push(chunkLength) {
+ const now = Date.now();
+
+ const startedAt = timestamps[tail];
+
+ if (!firstSampleTS) {
+ firstSampleTS = now;
+ }
+
+ bytes[head] = chunkLength;
+ timestamps[head] = now;
+
+ let i = tail;
+ let bytesCount = 0;
+
+ while (i !== head) {
+ bytesCount += bytes[i++];
+ i = i % samplesCount;
+ }
+
+ head = (head + 1) % samplesCount;
+
+ if (head === tail) {
+ tail = (tail + 1) % samplesCount;
+ }
+
+ if (now - firstSampleTS < min) {
+ return;
+ }
+
+ const passed = startedAt && now - startedAt;
+
+ return passed ? Math.round(bytesCount * 1000 / passed) : undefined;
+ };
+}
+
const kInternals = Symbol('internals');
class AxiosTransformStream extends stream__default["default"].Transform{
constructor(options) {
- options = utils$1.toFlatObject(options, {
+ options = utils.toFlatObject(options, {
maxRate: 0,
chunkSize: 64 * 1024,
minChunkSize: 100,
@@ -21197,15 +20929,19 @@ class AxiosTransformStream extends stream__default["default"].Transform{
ticksRate: 2,
samplesCount: 15
}, null, (prop, source) => {
- return !utils$1.isUndefined(source[prop]);
+ return !utils.isUndefined(source[prop]);
});
super({
readableHighWaterMark: options.chunkSize
});
+ const self = this;
+
const internals = this[kInternals] = {
+ length: options.length,
timeWindow: options.timeWindow,
+ ticksRate: options.ticksRate,
chunkSize: options.chunkSize,
maxRate: options.maxRate,
minChunkSize: options.minChunkSize,
@@ -21217,6 +20953,8 @@ class AxiosTransformStream extends stream__default["default"].Transform{
onReadCallback: null
};
+ const _speedometer = speedometer(internals.ticksRate * options.samplesCount, internals.timeWindow);
+
this.on('newListener', event => {
if (event === 'progress') {
if (!internals.isCaptured) {
@@ -21224,6 +20962,38 @@ class AxiosTransformStream extends stream__default["default"].Transform{
}
}
});
+
+ let bytesNotified = 0;
+
+ internals.updateProgress = throttle(function throttledHandler() {
+ const totalBytes = internals.length;
+ const bytesTransferred = internals.bytesSeen;
+ const progressBytes = bytesTransferred - bytesNotified;
+ if (!progressBytes || self.destroyed) return;
+
+ const rate = _speedometer(progressBytes);
+
+ bytesNotified = bytesTransferred;
+
+ process.nextTick(() => {
+ self.emit('progress', {
+ 'loaded': bytesTransferred,
+ 'total': totalBytes,
+ 'progress': totalBytes ? (bytesTransferred / totalBytes) : undefined,
+ 'bytes': progressBytes,
+ 'rate': rate ? rate : undefined,
+ 'estimated': rate && totalBytes && bytesTransferred <= totalBytes ?
+ (totalBytes - bytesTransferred) / rate : undefined
+ });
+ });
+ }, internals.ticksRate);
+
+ const onFinish = () => {
+ internals.updateProgress(true);
+ };
+
+ this.once('end', onFinish);
+ this.once('error', onFinish);
}
_read(size) {
@@ -21237,6 +21007,7 @@ class AxiosTransformStream extends stream__default["default"].Transform{
}
_transform(chunk, encoding, callback) {
+ const self = this;
const internals = this[kInternals];
const maxRate = internals.maxRate;
@@ -21248,14 +21019,16 @@ class AxiosTransformStream extends stream__default["default"].Transform{
const bytesThreshold = (maxRate / divider);
const minChunkSize = internals.minChunkSize !== false ? Math.max(internals.minChunkSize, bytesThreshold * 0.01) : 0;
- const pushChunk = (_chunk, _callback) => {
+ function pushChunk(_chunk, _callback) {
const bytes = Buffer.byteLength(_chunk);
internals.bytesSeen += bytes;
internals.bytes += bytes;
- internals.isCaptured && this.emit('progress', internals.bytesSeen);
+ if (internals.isCaptured) {
+ internals.updateProgress();
+ }
- if (this.push(_chunk)) {
+ if (self.push(_chunk)) {
process.nextTick(_callback);
} else {
internals.onReadCallback = () => {
@@ -21263,7 +21036,7 @@ class AxiosTransformStream extends stream__default["default"].Transform{
process.nextTick(_callback);
};
}
- };
+ }
const transformChunk = (_chunk, _callback) => {
const chunkSize = Buffer.byteLength(_chunk);
@@ -21320,6 +21093,11 @@ class AxiosTransformStream extends stream__default["default"].Transform{
}
});
}
+
+ setLength(length) {
+ this[kInternals].length = +length;
+ return this;
+ }
}
const AxiosTransformStream$1 = AxiosTransformStream;
@@ -21340,9 +21118,9 @@ const readBlob = async function* (blob) {
const readBlob$1 = readBlob;
-const BOUNDARY_ALPHABET = platform.ALPHABET.ALPHA_DIGIT + '-_';
+const BOUNDARY_ALPHABET = utils.ALPHABET.ALPHA_DIGIT + '-_';
-const textEncoder = typeof TextEncoder === 'function' ? new TextEncoder() : new util__default["default"].TextEncoder();
+const textEncoder = new util.TextEncoder();
const CRLF = '\r\n';
const CRLF_BYTES = textEncoder.encode(CRLF);
@@ -21351,7 +21129,7 @@ const CRLF_BYTES_COUNT = 2;
class FormDataPart {
constructor(name, value) {
const {escapeName} = this.constructor;
- const isStringValue = utils$1.isString(value);
+ const isStringValue = utils.isString(value);
let headers = `Content-Disposition: form-data; name="${escapeName(name)}"${
!isStringValue && value.name ? `; filename="${escapeName(value.name)}"` : ''
@@ -21378,7 +21156,7 @@ class FormDataPart {
const {value} = this;
- if(utils$1.isTypedArray(value)) {
+ if(utils.isTypedArray(value)) {
yield value;
} else {
yield* readBlob$1(value);
@@ -21400,10 +21178,10 @@ const formDataToStream = (form, headersHandler, options) => {
const {
tag = 'form-data-boundary',
size = 25,
- boundary = tag + '-' + platform.generateString(size, BOUNDARY_ALPHABET)
+ boundary = tag + '-' + utils.generateString(size, BOUNDARY_ALPHABET)
} = options || {};
- if(!utils$1.isFormData(form)) {
+ if(!utils.isFormData(form)) {
throw TypeError('FormData instance required');
}
@@ -21423,7 +21201,7 @@ const formDataToStream = (form, headersHandler, options) => {
contentLength += boundaryBytes.byteLength * parts.length;
- contentLength = utils$1.toFiniteNumber(contentLength);
+ contentLength = utils.toFiniteNumber(contentLength);
const computedHeaders = {
'Content-Type': `multipart/form-data; boundary=${boundary}`
@@ -21473,7 +21251,7 @@ class ZlibHeaderTransformStream extends stream__default["default"].Transform {
const ZlibHeaderTransformStream$1 = ZlibHeaderTransformStream;
const callbackify = (fn, reducer) => {
- return utils$1.isAsyncFn(fn) ? function (...args) {
+ return utils.isAsyncFn(fn) ? function (...args) {
const cb = args.pop();
fn.apply(this, args).then((value) => {
try {
@@ -21487,142 +21265,6 @@ const callbackify = (fn, reducer) => {
const callbackify$1 = callbackify;
-/**
- * Calculate data maxRate
- * @param {Number} [samplesCount= 10]
- * @param {Number} [min= 1000]
- * @returns {Function}
- */
-function speedometer(samplesCount, min) {
- samplesCount = samplesCount || 10;
- const bytes = new Array(samplesCount);
- const timestamps = new Array(samplesCount);
- let head = 0;
- let tail = 0;
- let firstSampleTS;
-
- min = min !== undefined ? min : 1000;
-
- return function push(chunkLength) {
- const now = Date.now();
-
- const startedAt = timestamps[tail];
-
- if (!firstSampleTS) {
- firstSampleTS = now;
- }
-
- bytes[head] = chunkLength;
- timestamps[head] = now;
-
- let i = tail;
- let bytesCount = 0;
-
- while (i !== head) {
- bytesCount += bytes[i++];
- i = i % samplesCount;
- }
-
- head = (head + 1) % samplesCount;
-
- if (head === tail) {
- tail = (tail + 1) % samplesCount;
- }
-
- if (now - firstSampleTS < min) {
- return;
- }
-
- const passed = startedAt && now - startedAt;
-
- return passed ? Math.round(bytesCount * 1000 / passed) : undefined;
- };
-}
-
-/**
- * Throttle decorator
- * @param {Function} fn
- * @param {Number} freq
- * @return {Function}
- */
-function throttle(fn, freq) {
- let timestamp = 0;
- let threshold = 1000 / freq;
- let lastArgs;
- let timer;
-
- const invoke = (args, now = Date.now()) => {
- timestamp = now;
- lastArgs = null;
- if (timer) {
- clearTimeout(timer);
- timer = null;
- }
- fn.apply(null, args);
- };
-
- const throttled = (...args) => {
- const now = Date.now();
- const passed = now - timestamp;
- if ( passed >= threshold) {
- invoke(args, now);
- } else {
- lastArgs = args;
- if (!timer) {
- timer = setTimeout(() => {
- timer = null;
- invoke(lastArgs);
- }, threshold - passed);
- }
- }
- };
-
- const flush = () => lastArgs && invoke(lastArgs);
-
- return [throttled, flush];
-}
-
-const progressEventReducer = (listener, isDownloadStream, freq = 3) => {
- let bytesNotified = 0;
- const _speedometer = speedometer(50, 250);
-
- return throttle(e => {
- const loaded = e.loaded;
- const total = e.lengthComputable ? e.total : undefined;
- const progressBytes = loaded - bytesNotified;
- const rate = _speedometer(progressBytes);
- const inRange = loaded <= total;
-
- bytesNotified = loaded;
-
- const data = {
- loaded,
- total,
- progress: total ? (loaded / total) : undefined,
- bytes: progressBytes,
- rate: rate ? rate : undefined,
- estimated: rate && total && inRange ? (total - loaded) / rate : undefined,
- event: e,
- lengthComputable: total != null,
- [isDownloadStream ? 'download' : 'upload']: true
- };
-
- listener(data);
- }, freq);
-};
-
-const progressEventDecorator = (total, throttled) => {
- const lengthComputable = total != null;
-
- return [(loaded) => throttled[0]({
- lengthComputable,
- total,
- loaded
- }), throttled[1]];
-};
-
-const asyncDecorator = (fn) => (...args) => utils$1.asap(() => fn(...args));
-
const zlibOptions = {
flush: zlib__default["default"].constants.Z_SYNC_FLUSH,
finishFlush: zlib__default["default"].constants.Z_SYNC_FLUSH
@@ -21633,7 +21275,7 @@ const brotliOptions = {
finishFlush: zlib__default["default"].constants.BROTLI_OPERATION_FLUSH
};
-const isBrotliSupported = utils$1.isFunction(zlib__default["default"].createBrotliDecompress);
+const isBrotliSupported = utils.isFunction(zlib__default["default"].createBrotliDecompress);
const {http: httpFollow, https: httpsFollow} = followRedirects__default["default"];
@@ -21643,14 +21285,6 @@ const supportedProtocols = platform.protocols.map(protocol => {
return protocol + ':';
});
-const flushOnFinish = (stream, [throttled, flush]) => {
- stream
- .on('end', flush)
- .on('error', flush);
-
- return throttled;
-};
-
/**
* If the proxy or config beforeRedirects functions are defined, call them with the options
* object.
@@ -21659,12 +21293,12 @@ const flushOnFinish = (stream, [throttled, flush]) => {
*
* @returns {Object}
*/
-function dispatchBeforeRedirect(options, responseDetails) {
+function dispatchBeforeRedirect(options) {
if (options.beforeRedirects.proxy) {
options.beforeRedirects.proxy(options);
}
if (options.beforeRedirects.config) {
- options.beforeRedirects.config(options, responseDetails);
+ options.beforeRedirects.config(options);
}
}
@@ -21680,7 +21314,7 @@ function dispatchBeforeRedirect(options, responseDetails) {
function setProxy(options, configProxy, location) {
let proxy = configProxy;
if (!proxy && proxy !== false) {
- const proxyUrl = proxyFromEnv__default["default"].getProxyForUrl(location);
+ const proxyUrl = proxyFromEnv.getProxyForUrl(location);
if (proxyUrl) {
proxy = new URL(proxyUrl);
}
@@ -21721,7 +21355,7 @@ function setProxy(options, configProxy, location) {
};
}
-const isHttpAdapterSupported = typeof process !== 'undefined' && utils$1.kindOf(process) === 'process';
+const isHttpAdapterSupported = typeof process !== 'undefined' && utils.kindOf(process) === 'process';
// temporary hotfix
@@ -21751,7 +21385,7 @@ const wrapAsync = (asyncExecutor) => {
};
const resolveFamily = ({address, family}) => {
- if (!utils$1.isString(address)) {
+ if (!utils.isString(address)) {
throw TypeError('address must be a string');
}
return ({
@@ -21760,7 +21394,7 @@ const resolveFamily = ({address, family}) => {
});
};
-const buildAddressEntry = (address, family) => resolveFamily(utils$1.isObject(address) ? address : {address, family});
+const buildAddressEntry = (address, family) => resolveFamily(utils.isObject(address) ? address : {address, family});
/*eslint consistent-return:0*/
const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
@@ -21773,15 +21407,11 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
let req;
if (lookup) {
- const _lookup = callbackify$1(lookup, (value) => utils$1.isArray(value) ? value : [value]);
+ const _lookup = callbackify$1(lookup, (value) => utils.isArray(value) ? value : [value]);
// hotfix to support opt.all option which is required for node 20.x
lookup = (hostname, opt, cb) => {
_lookup(hostname, opt, (err, arg0, arg1) => {
- if (err) {
- return cb(err);
- }
-
- const addresses = utils$1.isArray(arg0) ? arg0.map(addr => buildAddressEntry(addr)) : [buildAddressEntry(arg0, arg1)];
+ const addresses = utils.isArray(arg0) ? arg0.map(addr => buildAddressEntry(addr)) : [buildAddressEntry(arg0, arg1)];
opt.all ? cb(err, addresses) : cb(err, addresses[0].address, addresses[0].family);
});
@@ -21789,7 +21419,7 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
}
// temporary internal emitter until the AxiosRequest class will be implemented
- const emitter = new events.EventEmitter();
+ const emitter = new EventEmitter__default["default"]();
const onFinished = () => {
if (config.cancelToken) {
@@ -21825,8 +21455,8 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
}
// Parse url
- const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);
- const parsed = new URL(fullPath, platform.hasBrowserEnv ? platform.origin : undefined);
+ const fullPath = buildFullPath(config.baseURL, config.url);
+ const parsed = new URL(fullPath, 'http://localhost');
const protocol = parsed.protocol || supportedProtocols[0];
if (protocol === 'data:') {
@@ -21853,7 +21483,7 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
convertedData = convertedData.toString(responseEncoding);
if (!responseEncoding || responseEncoding === 'utf8') {
- convertedData = utils$1.stripBOM(convertedData);
+ convertedData = utils.stripBOM(convertedData);
}
} else if (responseType === 'stream') {
convertedData = stream__default["default"].Readable.from(convertedData);
@@ -21884,13 +21514,14 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
// Only set header if it hasn't been set in config
headers.set('User-Agent', 'axios/' + VERSION, false);
- const {onUploadProgress, onDownloadProgress} = config;
+ const onDownloadProgress = config.onDownloadProgress;
+ const onUploadProgress = config.onUploadProgress;
const maxRate = config.maxRate;
let maxUploadRate = undefined;
let maxDownloadRate = undefined;
// support for spec compliant FormData objects
- if (utils$1.isSpecCompliantForm(data)) {
+ if (utils.isSpecCompliantForm(data)) {
const userBoundary = headers.getContentType(/boundary=([-_\w\d]{10,70})/i);
data = formDataToStream$1(data, (formHeaders) => {
@@ -21900,7 +21531,7 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
boundary: userBoundary && userBoundary[1] || undefined
});
// support for https://www.npmjs.com/package/form-data api
- } else if (utils$1.isFormData(data) && utils$1.isFunction(data.getHeaders)) {
+ } else if (utils.isFormData(data) && utils.isFunction(data.getHeaders)) {
headers.set(data.getHeaders());
if (!headers.hasContentLength()) {
@@ -21911,14 +21542,14 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
} catch (e) {
}
}
- } else if (utils$1.isBlob(data) || utils$1.isFile(data)) {
+ } else if (utils.isBlob(data)) {
data.size && headers.setContentType(data.type || 'application/octet-stream');
headers.setContentLength(data.size || 0);
data = stream__default["default"].Readable.from(readBlob$1(data));
- } else if (data && !utils$1.isStream(data)) {
- if (Buffer.isBuffer(data)) ; else if (utils$1.isArrayBuffer(data)) {
+ } else if (data && !utils.isStream(data)) {
+ if (Buffer.isBuffer(data)) ; else if (utils.isArrayBuffer(data)) {
data = Buffer.from(new Uint8Array(data));
- } else if (utils$1.isString(data)) {
+ } else if (utils.isString(data)) {
data = Buffer.from(data, 'utf-8');
} else {
return reject(new AxiosError(
@@ -21940,9 +21571,9 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
}
}
- const contentLength = utils$1.toFiniteNumber(headers.getContentLength());
+ const contentLength = utils.toFiniteNumber(headers.getContentLength());
- if (utils$1.isArray(maxRate)) {
+ if (utils.isArray(maxRate)) {
maxUploadRate = maxRate[0];
maxDownloadRate = maxRate[1];
} else {
@@ -21950,21 +21581,20 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
}
if (data && (onUploadProgress || maxUploadRate)) {
- if (!utils$1.isStream(data)) {
+ if (!utils.isStream(data)) {
data = stream__default["default"].Readable.from(data, {objectMode: false});
}
data = stream__default["default"].pipeline([data, new AxiosTransformStream$1({
- maxRate: utils$1.toFiniteNumber(maxUploadRate)
- })], utils$1.noop);
+ length: contentLength,
+ maxRate: utils.toFiniteNumber(maxUploadRate)
+ })], utils.noop);
- onUploadProgress && data.on('progress', flushOnFinish(
- data,
- progressEventDecorator(
- contentLength,
- progressEventReducer(asyncDecorator(onUploadProgress), false, 3)
- )
- ));
+ onUploadProgress && data.on('progress', progress => {
+ onUploadProgress(Object.assign(progress, {
+ upload: true
+ }));
+ });
}
// HTTP basic authentication
@@ -22017,12 +21647,12 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
};
// cacheable-lookup integration hotfix
- !utils$1.isUndefined(lookup) && (options.lookup = lookup);
+ !utils.isUndefined(lookup) && (options.lookup = lookup);
if (config.socketPath) {
options.socketPath = config.socketPath;
} else {
- options.hostname = parsed.hostname.startsWith("[") ? parsed.hostname.slice(1, -1) : parsed.hostname;
+ options.hostname = parsed.hostname;
options.port = parsed.port;
setProxy(options, config.proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);
}
@@ -22063,18 +21693,17 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
const responseLength = +res.headers['content-length'];
- if (onDownloadProgress || maxDownloadRate) {
+ if (onDownloadProgress) {
const transformStream = new AxiosTransformStream$1({
- maxRate: utils$1.toFiniteNumber(maxDownloadRate)
+ length: utils.toFiniteNumber(responseLength),
+ maxRate: utils.toFiniteNumber(maxDownloadRate)
});
- onDownloadProgress && transformStream.on('progress', flushOnFinish(
- transformStream,
- progressEventDecorator(
- responseLength,
- progressEventReducer(asyncDecorator(onDownloadProgress), true, 3)
- )
- ));
+ onDownloadProgress && transformStream.on('progress', progress => {
+ onDownloadProgress(Object.assign(progress, {
+ download: true
+ }));
+ });
streams.push(transformStream);
}
@@ -22122,7 +21751,7 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
}
}
- responseStream = streams.length > 1 ? stream__default["default"].pipeline(streams, utils$1.noop) : streams[0];
+ responseStream = streams.length > 1 ? stream__default["default"].pipeline(streams, utils.noop) : streams[0];
const offListeners = stream__default["default"].finished(responseStream, () => {
offListeners();
@@ -22164,7 +21793,7 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
}
const err = new AxiosError(
- 'stream has been aborted',
+ 'maxContentLength size of ' + config.maxContentLength + ' exceeded',
AxiosError.ERR_BAD_RESPONSE,
config,
lastRequest
@@ -22184,7 +21813,7 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
if (responseType !== 'arraybuffer') {
responseData = responseData.toString(responseEncoding);
if (!responseEncoding || responseEncoding === 'utf8') {
- responseData = utils$1.stripBOM(responseData);
+ responseData = utils.stripBOM(responseData);
}
}
response.data = responseData;
@@ -22261,7 +21890,7 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
// Send the request
- if (utils$1.isStream(data)) {
+ if (utils.isStream(data)) {
let ended = false;
let errored = false;
@@ -22287,235 +21916,192 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
});
};
-const isURLSameOrigin = platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {
- url = new URL(url, platform.origin);
+const cookies = platform.isStandardBrowserEnv ?
- return (
- origin.protocol === url.protocol &&
- origin.host === url.host &&
- (isMSIE || origin.port === url.port)
- );
-})(
- new URL(platform.origin),
- platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)
-) : () => true;
+// Standard browser envs support document.cookie
+ (function standardBrowserEnv() {
+ return {
+ write: function write(name, value, expires, path, domain, secure) {
+ const cookie = [];
+ cookie.push(name + '=' + encodeURIComponent(value));
-const cookies = platform.hasStandardBrowserEnv ?
+ if (utils.isNumber(expires)) {
+ cookie.push('expires=' + new Date(expires).toGMTString());
+ }
- // Standard browser envs support document.cookie
- {
- write(name, value, expires, path, domain, secure) {
- const cookie = [name + '=' + encodeURIComponent(value)];
+ if (utils.isString(path)) {
+ cookie.push('path=' + path);
+ }
- utils$1.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());
+ if (utils.isString(domain)) {
+ cookie.push('domain=' + domain);
+ }
- utils$1.isString(path) && cookie.push('path=' + path);
+ if (secure === true) {
+ cookie.push('secure');
+ }
- utils$1.isString(domain) && cookie.push('domain=' + domain);
+ document.cookie = cookie.join('; ');
+ },
- secure === true && cookie.push('secure');
+ read: function read(name) {
+ const match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
+ return (match ? decodeURIComponent(match[3]) : null);
+ },
- document.cookie = cookie.join('; ');
- },
-
- read(name) {
- const match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
- return (match ? decodeURIComponent(match[3]) : null);
- },
-
- remove(name) {
- this.write(name, '', Date.now() - 86400000);
- }
- }
-
- :
-
- // Non-standard browser env (web workers, react-native) lack needed support.
- {
- write() {},
- read() {
- return null;
- },
- remove() {}
- };
-
-const headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? { ...thing } : thing;
-
-/**
- * Config-specific merge-function which creates a new config-object
- * by merging two configuration objects together.
- *
- * @param {Object} config1
- * @param {Object} config2
- *
- * @returns {Object} New object resulting from merging config2 to config1
- */
-function mergeConfig(config1, config2) {
- // eslint-disable-next-line no-param-reassign
- config2 = config2 || {};
- const config = {};
-
- function getMergedValue(target, source, prop, caseless) {
- if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {
- return utils$1.merge.call({caseless}, target, source);
- } else if (utils$1.isPlainObject(source)) {
- return utils$1.merge({}, source);
- } else if (utils$1.isArray(source)) {
- return source.slice();
- }
- return source;
- }
-
- // eslint-disable-next-line consistent-return
- function mergeDeepProperties(a, b, prop , caseless) {
- if (!utils$1.isUndefined(b)) {
- return getMergedValue(a, b, prop , caseless);
- } else if (!utils$1.isUndefined(a)) {
- return getMergedValue(undefined, a, prop , caseless);
- }
- }
-
- // eslint-disable-next-line consistent-return
- function valueFromConfig2(a, b) {
- if (!utils$1.isUndefined(b)) {
- return getMergedValue(undefined, b);
- }
- }
-
- // eslint-disable-next-line consistent-return
- function defaultToConfig2(a, b) {
- if (!utils$1.isUndefined(b)) {
- return getMergedValue(undefined, b);
- } else if (!utils$1.isUndefined(a)) {
- return getMergedValue(undefined, a);
- }
- }
-
- // eslint-disable-next-line consistent-return
- function mergeDirectKeys(a, b, prop) {
- if (prop in config2) {
- return getMergedValue(a, b);
- } else if (prop in config1) {
- return getMergedValue(undefined, a);
- }
- }
-
- const mergeMap = {
- url: valueFromConfig2,
- method: valueFromConfig2,
- data: valueFromConfig2,
- baseURL: defaultToConfig2,
- transformRequest: defaultToConfig2,
- transformResponse: defaultToConfig2,
- paramsSerializer: defaultToConfig2,
- timeout: defaultToConfig2,
- timeoutMessage: defaultToConfig2,
- withCredentials: defaultToConfig2,
- withXSRFToken: defaultToConfig2,
- adapter: defaultToConfig2,
- responseType: defaultToConfig2,
- xsrfCookieName: defaultToConfig2,
- xsrfHeaderName: defaultToConfig2,
- onUploadProgress: defaultToConfig2,
- onDownloadProgress: defaultToConfig2,
- decompress: defaultToConfig2,
- maxContentLength: defaultToConfig2,
- maxBodyLength: defaultToConfig2,
- beforeRedirect: defaultToConfig2,
- transport: defaultToConfig2,
- httpAgent: defaultToConfig2,
- httpsAgent: defaultToConfig2,
- cancelToken: defaultToConfig2,
- socketPath: defaultToConfig2,
- responseEncoding: defaultToConfig2,
- validateStatus: mergeDirectKeys,
- headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)
- };
-
- utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {
- const merge = mergeMap[prop] || mergeDeepProperties;
- const configValue = merge(config1[prop], config2[prop], prop);
- (utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);
- });
-
- return config;
-}
-
-const resolveConfig = (config) => {
- const newConfig = mergeConfig({}, config);
-
- let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;
-
- newConfig.headers = headers = AxiosHeaders$1.from(headers);
-
- newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);
-
- // HTTP basic authentication
- if (auth) {
- headers.set('Authorization', 'Basic ' +
- btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))
- );
- }
-
- let contentType;
-
- if (utils$1.isFormData(data)) {
- if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {
- headers.setContentType(undefined); // Let the browser set it
- } else if ((contentType = headers.getContentType()) !== false) {
- // fix semicolon duplication issue for ReactNative FormData implementation
- const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];
- headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));
- }
- }
-
- // Add xsrf header
- // This is only done if running in a standard browser environment.
- // Specifically not if we're in a web worker, or react-native.
-
- if (platform.hasStandardBrowserEnv) {
- withXSRFToken && utils$1.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));
-
- if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {
- // Add xsrf header
- const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);
-
- if (xsrfValue) {
- headers.set(xsrfHeaderName, xsrfValue);
+ remove: function remove(name) {
+ this.write(name, '', Date.now() - 86400000);
}
- }
- }
+ };
+ })() :
- return newConfig;
-};
+// Non standard browser env (web workers, react-native) lack needed support.
+ (function nonStandardBrowserEnv() {
+ return {
+ write: function write() {},
+ read: function read() { return null; },
+ remove: function remove() {}
+ };
+ })();
+
+const isURLSameOrigin = platform.isStandardBrowserEnv ?
+
+// Standard browser envs have full support of the APIs needed to test
+// whether the request URL is of the same origin as current location.
+ (function standardBrowserEnv() {
+ const msie = /(msie|trident)/i.test(navigator.userAgent);
+ const urlParsingNode = document.createElement('a');
+ let originURL;
+
+ /**
+ * Parse a URL to discover it's components
+ *
+ * @param {String} url The URL to be parsed
+ * @returns {Object}
+ */
+ function resolveURL(url) {
+ let href = url;
+
+ if (msie) {
+ // IE needs attribute set twice to normalize properties
+ urlParsingNode.setAttribute('href', href);
+ href = urlParsingNode.href;
+ }
+
+ urlParsingNode.setAttribute('href', href);
+
+ // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils
+ return {
+ href: urlParsingNode.href,
+ protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',
+ host: urlParsingNode.host,
+ search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '',
+ hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',
+ hostname: urlParsingNode.hostname,
+ port: urlParsingNode.port,
+ pathname: (urlParsingNode.pathname.charAt(0) === '/') ?
+ urlParsingNode.pathname :
+ '/' + urlParsingNode.pathname
+ };
+ }
+
+ originURL = resolveURL(window.location.href);
+
+ /**
+ * Determine if a URL shares the same origin as the current location
+ *
+ * @param {String} requestURL The URL to test
+ * @returns {boolean} True if URL shares the same origin, otherwise false
+ */
+ return function isURLSameOrigin(requestURL) {
+ const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;
+ return (parsed.protocol === originURL.protocol &&
+ parsed.host === originURL.host);
+ };
+ })() :
+
+ // Non standard browser envs (web workers, react-native) lack needed support.
+ (function nonStandardBrowserEnv() {
+ return function isURLSameOrigin() {
+ return true;
+ };
+ })();
+
+function progressEventReducer(listener, isDownloadStream) {
+ let bytesNotified = 0;
+ const _speedometer = speedometer(50, 250);
+
+ return e => {
+ const loaded = e.loaded;
+ const total = e.lengthComputable ? e.total : undefined;
+ const progressBytes = loaded - bytesNotified;
+ const rate = _speedometer(progressBytes);
+ const inRange = loaded <= total;
+
+ bytesNotified = loaded;
+
+ const data = {
+ loaded,
+ total,
+ progress: total ? (loaded / total) : undefined,
+ bytes: progressBytes,
+ rate: rate ? rate : undefined,
+ estimated: rate && total && inRange ? (total - loaded) / rate : undefined,
+ event: e
+ };
+
+ data[isDownloadStream ? 'download' : 'upload'] = true;
+
+ listener(data);
+ };
+}
const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';
const xhrAdapter = isXHRAdapterSupported && function (config) {
return new Promise(function dispatchXhrRequest(resolve, reject) {
- const _config = resolveConfig(config);
- let requestData = _config.data;
- const requestHeaders = AxiosHeaders$1.from(_config.headers).normalize();
- let {responseType, onUploadProgress, onDownloadProgress} = _config;
+ let requestData = config.data;
+ const requestHeaders = AxiosHeaders$1.from(config.headers).normalize();
+ const responseType = config.responseType;
let onCanceled;
- let uploadThrottled, downloadThrottled;
- let flushUpload, flushDownload;
-
function done() {
- flushUpload && flushUpload(); // flush events
- flushDownload && flushDownload(); // flush events
+ if (config.cancelToken) {
+ config.cancelToken.unsubscribe(onCanceled);
+ }
- _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);
+ if (config.signal) {
+ config.signal.removeEventListener('abort', onCanceled);
+ }
+ }
- _config.signal && _config.signal.removeEventListener('abort', onCanceled);
+ let contentType;
+
+ if (utils.isFormData(requestData)) {
+ if (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv) {
+ requestHeaders.setContentType(false); // Let the browser set it
+ } else if(!requestHeaders.getContentType(/^\s*multipart\/form-data/)){
+ requestHeaders.setContentType('multipart/form-data'); // mobile/desktop app frameworks
+ } else if(utils.isString(contentType = requestHeaders.getContentType())){
+ // fix semicolon duplication issue for ReactNative FormData implementation
+ requestHeaders.setContentType(contentType.replace(/^\s*(multipart\/form-data);+/, '$1'));
+ }
}
let request = new XMLHttpRequest();
- request.open(_config.method.toUpperCase(), _config.url, true);
+ // HTTP basic authentication
+ if (config.auth) {
+ const username = config.auth.username || '';
+ const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';
+ requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));
+ }
+
+ const fullPath = buildFullPath(config.baseURL, config.url);
+
+ request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);
// Set the request timeout in MS
- request.timeout = _config.timeout;
+ request.timeout = config.timeout;
function onloadend() {
if (!request) {
@@ -22595,10 +22181,10 @@ const xhrAdapter = isXHRAdapterSupported && function (config) {
// Handle timeout
request.ontimeout = function handleTimeout() {
- let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';
- const transitional = _config.transitional || transitionalDefaults;
- if (_config.timeoutErrorMessage) {
- timeoutErrorMessage = _config.timeoutErrorMessage;
+ let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';
+ const transitional = config.transitional || transitionalDefaults;
+ if (config.timeoutErrorMessage) {
+ timeoutErrorMessage = config.timeoutErrorMessage;
}
reject(new AxiosError(
timeoutErrorMessage,
@@ -22610,42 +22196,50 @@ const xhrAdapter = isXHRAdapterSupported && function (config) {
request = null;
};
+ // Add xsrf header
+ // This is only done if running in a standard browser environment.
+ // Specifically not if we're in a web worker, or react-native.
+ if (platform.isStandardBrowserEnv) {
+ // Add xsrf header
+ // regarding CVE-2023-45857 config.withCredentials condition was removed temporarily
+ const xsrfValue = isURLSameOrigin(fullPath) && config.xsrfCookieName && cookies.read(config.xsrfCookieName);
+
+ if (xsrfValue) {
+ requestHeaders.set(config.xsrfHeaderName, xsrfValue);
+ }
+ }
+
// Remove Content-Type if data is undefined
requestData === undefined && requestHeaders.setContentType(null);
// Add headers to the request
if ('setRequestHeader' in request) {
- utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {
+ utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {
request.setRequestHeader(key, val);
});
}
// Add withCredentials to request if needed
- if (!utils$1.isUndefined(_config.withCredentials)) {
- request.withCredentials = !!_config.withCredentials;
+ if (!utils.isUndefined(config.withCredentials)) {
+ request.withCredentials = !!config.withCredentials;
}
// Add responseType to request if needed
if (responseType && responseType !== 'json') {
- request.responseType = _config.responseType;
+ request.responseType = config.responseType;
}
// Handle progress if needed
- if (onDownloadProgress) {
- ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));
- request.addEventListener('progress', downloadThrottled);
+ if (typeof config.onDownloadProgress === 'function') {
+ request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));
}
// Not all browsers support upload events
- if (onUploadProgress && request.upload) {
- ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));
-
- request.upload.addEventListener('progress', uploadThrottled);
-
- request.upload.addEventListener('loadend', flushUpload);
+ if (typeof config.onUploadProgress === 'function' && request.upload) {
+ request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));
}
- if (_config.cancelToken || _config.signal) {
+ if (config.cancelToken || config.signal) {
// Handle cancellation
// eslint-disable-next-line func-names
onCanceled = cancel => {
@@ -22657,13 +22251,13 @@ const xhrAdapter = isXHRAdapterSupported && function (config) {
request = null;
};
- _config.cancelToken && _config.cancelToken.subscribe(onCanceled);
- if (_config.signal) {
- _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);
+ config.cancelToken && config.cancelToken.subscribe(onCanceled);
+ if (config.signal) {
+ config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);
}
}
- const protocol = parseProtocol(_config.url);
+ const protocol = parseProtocol(fullPath);
if (protocol && platform.protocols.indexOf(protocol) === -1) {
reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));
@@ -22676,363 +22270,12 @@ const xhrAdapter = isXHRAdapterSupported && function (config) {
});
};
-const composeSignals = (signals, timeout) => {
- const {length} = (signals = signals ? signals.filter(Boolean) : []);
-
- if (timeout || length) {
- let controller = new AbortController();
-
- let aborted;
-
- const onabort = function (reason) {
- if (!aborted) {
- aborted = true;
- unsubscribe();
- const err = reason instanceof Error ? reason : this.reason;
- controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));
- }
- };
-
- let timer = timeout && setTimeout(() => {
- timer = null;
- onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT));
- }, timeout);
-
- const unsubscribe = () => {
- if (signals) {
- timer && clearTimeout(timer);
- timer = null;
- signals.forEach(signal => {
- signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);
- });
- signals = null;
- }
- };
-
- signals.forEach((signal) => signal.addEventListener('abort', onabort));
-
- const {signal} = controller;
-
- signal.unsubscribe = () => utils$1.asap(unsubscribe);
-
- return signal;
- }
-};
-
-const composeSignals$1 = composeSignals;
-
-const streamChunk = function* (chunk, chunkSize) {
- let len = chunk.byteLength;
-
- if (!chunkSize || len < chunkSize) {
- yield chunk;
- return;
- }
-
- let pos = 0;
- let end;
-
- while (pos < len) {
- end = pos + chunkSize;
- yield chunk.slice(pos, end);
- pos = end;
- }
-};
-
-const readBytes = async function* (iterable, chunkSize) {
- for await (const chunk of readStream(iterable)) {
- yield* streamChunk(chunk, chunkSize);
- }
-};
-
-const readStream = async function* (stream) {
- if (stream[Symbol.asyncIterator]) {
- yield* stream;
- return;
- }
-
- const reader = stream.getReader();
- try {
- for (;;) {
- const {done, value} = await reader.read();
- if (done) {
- break;
- }
- yield value;
- }
- } finally {
- await reader.cancel();
- }
-};
-
-const trackStream = (stream, chunkSize, onProgress, onFinish) => {
- const iterator = readBytes(stream, chunkSize);
-
- let bytes = 0;
- let done;
- let _onFinish = (e) => {
- if (!done) {
- done = true;
- onFinish && onFinish(e);
- }
- };
-
- return new ReadableStream({
- async pull(controller) {
- try {
- const {done, value} = await iterator.next();
-
- if (done) {
- _onFinish();
- controller.close();
- return;
- }
-
- let len = value.byteLength;
- if (onProgress) {
- let loadedBytes = bytes += len;
- onProgress(loadedBytes);
- }
- controller.enqueue(new Uint8Array(value));
- } catch (err) {
- _onFinish(err);
- throw err;
- }
- },
- cancel(reason) {
- _onFinish(reason);
- return iterator.return();
- }
- }, {
- highWaterMark: 2
- })
-};
-
-const isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';
-const isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';
-
-// used only inside the fetch adapter
-const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?
- ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :
- async (str) => new Uint8Array(await new Response(str).arrayBuffer())
-);
-
-const test = (fn, ...args) => {
- try {
- return !!fn(...args);
- } catch (e) {
- return false
- }
-};
-
-const supportsRequestStream = isReadableStreamSupported && test(() => {
- let duplexAccessed = false;
-
- const hasContentType = new Request(platform.origin, {
- body: new ReadableStream(),
- method: 'POST',
- get duplex() {
- duplexAccessed = true;
- return 'half';
- },
- }).headers.has('Content-Type');
-
- return duplexAccessed && !hasContentType;
-});
-
-const DEFAULT_CHUNK_SIZE = 64 * 1024;
-
-const supportsResponseStream = isReadableStreamSupported &&
- test(() => utils$1.isReadableStream(new Response('').body));
-
-
-const resolvers = {
- stream: supportsResponseStream && ((res) => res.body)
-};
-
-isFetchSupported && (((res) => {
- ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {
- !resolvers[type] && (resolvers[type] = utils$1.isFunction(res[type]) ? (res) => res[type]() :
- (_, config) => {
- throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);
- });
- });
-})(new Response));
-
-const getBodyLength = async (body) => {
- if (body == null) {
- return 0;
- }
-
- if(utils$1.isBlob(body)) {
- return body.size;
- }
-
- if(utils$1.isSpecCompliantForm(body)) {
- const _request = new Request(platform.origin, {
- method: 'POST',
- body,
- });
- return (await _request.arrayBuffer()).byteLength;
- }
-
- if(utils$1.isArrayBufferView(body) || utils$1.isArrayBuffer(body)) {
- return body.byteLength;
- }
-
- if(utils$1.isURLSearchParams(body)) {
- body = body + '';
- }
-
- if(utils$1.isString(body)) {
- return (await encodeText(body)).byteLength;
- }
-};
-
-const resolveBodyLength = async (headers, body) => {
- const length = utils$1.toFiniteNumber(headers.getContentLength());
-
- return length == null ? getBodyLength(body) : length;
-};
-
-const fetchAdapter = isFetchSupported && (async (config) => {
- let {
- url,
- method,
- data,
- signal,
- cancelToken,
- timeout,
- onDownloadProgress,
- onUploadProgress,
- responseType,
- headers,
- withCredentials = 'same-origin',
- fetchOptions
- } = resolveConfig(config);
-
- responseType = responseType ? (responseType + '').toLowerCase() : 'text';
-
- let composedSignal = composeSignals$1([signal, cancelToken && cancelToken.toAbortSignal()], timeout);
-
- let request;
-
- const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {
- composedSignal.unsubscribe();
- });
-
- let requestContentLength;
-
- try {
- if (
- onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&
- (requestContentLength = await resolveBodyLength(headers, data)) !== 0
- ) {
- let _request = new Request(url, {
- method: 'POST',
- body: data,
- duplex: "half"
- });
-
- let contentTypeHeader;
-
- if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {
- headers.setContentType(contentTypeHeader);
- }
-
- if (_request.body) {
- const [onProgress, flush] = progressEventDecorator(
- requestContentLength,
- progressEventReducer(asyncDecorator(onUploadProgress))
- );
-
- data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);
- }
- }
-
- if (!utils$1.isString(withCredentials)) {
- withCredentials = withCredentials ? 'include' : 'omit';
- }
-
- // Cloudflare Workers throws when credentials are defined
- // see https://github.com/cloudflare/workerd/issues/902
- const isCredentialsSupported = "credentials" in Request.prototype;
- request = new Request(url, {
- ...fetchOptions,
- signal: composedSignal,
- method: method.toUpperCase(),
- headers: headers.normalize().toJSON(),
- body: data,
- duplex: "half",
- credentials: isCredentialsSupported ? withCredentials : undefined
- });
-
- let response = await fetch(request);
-
- const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');
-
- if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {
- const options = {};
-
- ['status', 'statusText', 'headers'].forEach(prop => {
- options[prop] = response[prop];
- });
-
- const responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length'));
-
- const [onProgress, flush] = onDownloadProgress && progressEventDecorator(
- responseContentLength,
- progressEventReducer(asyncDecorator(onDownloadProgress), true)
- ) || [];
-
- response = new Response(
- trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {
- flush && flush();
- unsubscribe && unsubscribe();
- }),
- options
- );
- }
-
- responseType = responseType || 'text';
-
- let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config);
-
- !isStreamResponse && unsubscribe && unsubscribe();
-
- return await new Promise((resolve, reject) => {
- settle(resolve, reject, {
- data: responseData,
- headers: AxiosHeaders$1.from(response.headers),
- status: response.status,
- statusText: response.statusText,
- config,
- request
- });
- })
- } catch (err) {
- unsubscribe && unsubscribe();
-
- if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {
- throw Object.assign(
- new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),
- {
- cause: err.cause || err
- }
- )
- }
-
- throw AxiosError.from(err, err && err.code, config, request);
- }
-});
-
const knownAdapters = {
http: httpAdapter,
- xhr: xhrAdapter,
- fetch: fetchAdapter
+ xhr: xhrAdapter
};
-utils$1.forEach(knownAdapters, (fn, value) => {
+utils.forEach(knownAdapters, (fn, value) => {
if (fn) {
try {
Object.defineProperty(fn, 'name', {value});
@@ -23045,11 +22288,11 @@ utils$1.forEach(knownAdapters, (fn, value) => {
const renderReason = (reason) => `- ${reason}`;
-const isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false;
+const isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;
const adapters = {
getAdapter: (adapters) => {
- adapters = utils$1.isArray(adapters) ? adapters : [adapters];
+ adapters = utils.isArray(adapters) ? adapters : [adapters];
const {length} = adapters;
let nameOrAdapter;
@@ -23173,6 +22416,107 @@ function dispatchRequest(config) {
});
}
+const headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? thing.toJSON() : thing;
+
+/**
+ * Config-specific merge-function which creates a new config-object
+ * by merging two configuration objects together.
+ *
+ * @param {Object} config1
+ * @param {Object} config2
+ *
+ * @returns {Object} New object resulting from merging config2 to config1
+ */
+function mergeConfig(config1, config2) {
+ // eslint-disable-next-line no-param-reassign
+ config2 = config2 || {};
+ const config = {};
+
+ function getMergedValue(target, source, caseless) {
+ if (utils.isPlainObject(target) && utils.isPlainObject(source)) {
+ return utils.merge.call({caseless}, target, source);
+ } else if (utils.isPlainObject(source)) {
+ return utils.merge({}, source);
+ } else if (utils.isArray(source)) {
+ return source.slice();
+ }
+ return source;
+ }
+
+ // eslint-disable-next-line consistent-return
+ function mergeDeepProperties(a, b, caseless) {
+ if (!utils.isUndefined(b)) {
+ return getMergedValue(a, b, caseless);
+ } else if (!utils.isUndefined(a)) {
+ return getMergedValue(undefined, a, caseless);
+ }
+ }
+
+ // eslint-disable-next-line consistent-return
+ function valueFromConfig2(a, b) {
+ if (!utils.isUndefined(b)) {
+ return getMergedValue(undefined, b);
+ }
+ }
+
+ // eslint-disable-next-line consistent-return
+ function defaultToConfig2(a, b) {
+ if (!utils.isUndefined(b)) {
+ return getMergedValue(undefined, b);
+ } else if (!utils.isUndefined(a)) {
+ return getMergedValue(undefined, a);
+ }
+ }
+
+ // eslint-disable-next-line consistent-return
+ function mergeDirectKeys(a, b, prop) {
+ if (prop in config2) {
+ return getMergedValue(a, b);
+ } else if (prop in config1) {
+ return getMergedValue(undefined, a);
+ }
+ }
+
+ const mergeMap = {
+ url: valueFromConfig2,
+ method: valueFromConfig2,
+ data: valueFromConfig2,
+ baseURL: defaultToConfig2,
+ transformRequest: defaultToConfig2,
+ transformResponse: defaultToConfig2,
+ paramsSerializer: defaultToConfig2,
+ timeout: defaultToConfig2,
+ timeoutMessage: defaultToConfig2,
+ withCredentials: defaultToConfig2,
+ adapter: defaultToConfig2,
+ responseType: defaultToConfig2,
+ xsrfCookieName: defaultToConfig2,
+ xsrfHeaderName: defaultToConfig2,
+ onUploadProgress: defaultToConfig2,
+ onDownloadProgress: defaultToConfig2,
+ decompress: defaultToConfig2,
+ maxContentLength: defaultToConfig2,
+ maxBodyLength: defaultToConfig2,
+ beforeRedirect: defaultToConfig2,
+ transport: defaultToConfig2,
+ httpAgent: defaultToConfig2,
+ httpsAgent: defaultToConfig2,
+ cancelToken: defaultToConfig2,
+ socketPath: defaultToConfig2,
+ responseEncoding: defaultToConfig2,
+ validateStatus: mergeDirectKeys,
+ headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)
+ };
+
+ utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {
+ const merge = mergeMap[prop] || mergeDeepProperties;
+ const configValue = merge(config1[prop], config2[prop], prop);
+ (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);
+ });
+
+ return config;
+}
+
const validators$1 = {};
// eslint-disable-next-line func-names
@@ -23222,14 +22566,6 @@ validators$1.transitional = function transitional(validator, version, message) {
};
};
-validators$1.spelling = function spelling(correctSpelling) {
- return (value, opt) => {
- // eslint-disable-next-line no-console
- console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);
- return true;
- }
-};
-
/**
* Assert object's properties type
*
@@ -23294,34 +22630,7 @@ class Axios {
*
* @returns {Promise} The Promise to be fulfilled
*/
- async request(configOrUrl, config) {
- try {
- return await this._request(configOrUrl, config);
- } catch (err) {
- if (err instanceof Error) {
- let dummy = {};
-
- Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());
-
- // slice off the Error: ... line
- const stack = dummy.stack ? dummy.stack.replace(/^.+\n/, '') : '';
- try {
- if (!err.stack) {
- err.stack = stack;
- // match without the 2 top stack lines
- } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\n.+\n/, ''))) {
- err.stack += '\n' + stack;
- }
- } catch (e) {
- // ignore the case where "stack" is an un-writable property
- }
- }
-
- throw err;
- }
- }
-
- _request(configOrUrl, config) {
+ request(configOrUrl, config) {
/*eslint no-param-reassign:0*/
// Allow for axios('example/url'[, config]) a la fetch API
if (typeof configOrUrl === 'string') {
@@ -23344,7 +22653,7 @@ class Axios {
}
if (paramsSerializer != null) {
- if (utils$1.isFunction(paramsSerializer)) {
+ if (utils.isFunction(paramsSerializer)) {
config.paramsSerializer = {
serialize: paramsSerializer
};
@@ -23356,28 +22665,16 @@ class Axios {
}
}
- // Set config.allowAbsoluteUrls
- if (config.allowAbsoluteUrls !== undefined) ; else if (this.defaults.allowAbsoluteUrls !== undefined) {
- config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;
- } else {
- config.allowAbsoluteUrls = true;
- }
-
- validator.assertOptions(config, {
- baseUrl: validators.spelling('baseURL'),
- withXsrfToken: validators.spelling('withXSRFToken')
- }, true);
-
// Set config.method
config.method = (config.method || this.defaults.method || 'get').toLowerCase();
// Flatten headers
- let contextHeaders = headers && utils$1.merge(
+ let contextHeaders = headers && utils.merge(
headers.common,
headers[config.method]
);
- headers && utils$1.forEach(
+ headers && utils.forEach(
['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],
(method) => {
delete headers[method];
@@ -23458,13 +22755,13 @@ class Axios {
getUri(config) {
config = mergeConfig(this.defaults, config);
- const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);
+ const fullPath = buildFullPath(config.baseURL, config.url);
return buildURL(fullPath, config.params, config.paramsSerializer);
}
}
// Provide aliases for supported request methods
-utils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {
+utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {
/*eslint func-names:0*/
Axios.prototype[method] = function(url, config) {
return this.request(mergeConfig(config || {}, {
@@ -23475,7 +22772,7 @@ utils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoDa
};
});
-utils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
+utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
/*eslint func-names:0*/
function generateHTTPMethod(isForm) {
@@ -23598,20 +22895,6 @@ class CancelToken {
}
}
- toAbortSignal() {
- const controller = new AbortController();
-
- const abort = (err) => {
- controller.abort(err);
- };
-
- this.subscribe(abort);
-
- controller.signal.unsubscribe = () => this.unsubscribe(abort);
-
- return controller.signal;
- }
-
/**
* Returns an object that contains a new `CancelToken` and a function that, when called,
* cancels the `CancelToken`.
@@ -23665,7 +22948,7 @@ function spread(callback) {
* @returns {boolean} True if the payload is an error thrown by Axios, otherwise false
*/
function isAxiosError(payload) {
- return utils$1.isObject(payload) && (payload.isAxiosError === true);
+ return utils.isObject(payload) && (payload.isAxiosError === true);
}
const HttpStatusCode = {
@@ -23752,10 +23035,10 @@ function createInstance(defaultConfig) {
const instance = bind(Axios$1.prototype.request, context);
// Copy axios.prototype to instance
- utils$1.extend(instance, Axios$1.prototype, context, {allOwnKeys: true});
+ utils.extend(instance, Axios$1.prototype, context, {allOwnKeys: true});
// Copy context to instance
- utils$1.extend(instance, context, null, {allOwnKeys: true});
+ utils.extend(instance, context, null, {allOwnKeys: true});
// Factory for creating new instances
instance.create = function create(instanceConfig) {
@@ -23799,7 +23082,7 @@ axios.mergeConfig = mergeConfig;
axios.AxiosHeaders = AxiosHeaders$1;
-axios.formToJSON = thing => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing);
+axios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);
axios.getAdapter = adapters.getAdapter;
diff --git a/examples/on-pr-merge/automated-workflow.yaml b/examples/on-pr-merge/automated-workflow.yaml
index 751bbb5..191a21f 100644
--- a/examples/on-pr-merge/automated-workflow.yaml
+++ b/examples/on-pr-merge/automated-workflow.yaml
@@ -35,7 +35,7 @@ jobs:
fail-fast: true
steps:
- name: Checkout
- uses: actions/checkout@v4
+ uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Backporting
diff --git a/mise.toml b/mise.toml
deleted file mode 100644
index 126f680..0000000
--- a/mise.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-[tools]
-node = "20"
diff --git a/package-lock.json b/package-lock.json
index 6ff2d33..962d63b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "@kie/git-backporting",
- "version": "4.8.5",
+ "version": "4.5.1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@kie/git-backporting",
- "version": "4.8.5",
+ "version": "4.5.1",
"license": "MIT",
"dependencies": {
"@actions/core": "^1.10.0",
@@ -26,7 +26,7 @@
"@gitbeaker/rest": "^39.1.0",
"@kie/mock-github": "^1.1.0",
"@octokit/webhooks-types": "^6.8.0",
- "@release-it/conventional-changelog": "^10.0.0",
+ "@release-it/conventional-changelog": "^7.0.0",
"@types/fs-extra": "^9.0.13",
"@types/jest": "^29.2.4",
"@types/node": "^18.11.17",
@@ -37,7 +37,7 @@
"husky": "^8.0.2",
"jest": "^29.0.0",
"jest-sonar-reporter": "^2.0.0",
- "release-it": "^19.0.2",
+ "release-it": "^16.1.3",
"semver": "^7.3.8",
"ts-jest": "^29.0.0",
"ts-node": "^10.8.1",
@@ -86,19 +86,89 @@
}
},
"node_modules/@babel/code-frame": {
- "version": "7.26.2",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
- "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
+ "version": "7.22.13",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
+ "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
"dev": true,
"dependencies": {
- "@babel/helper-validator-identifier": "^7.25.9",
- "js-tokens": "^4.0.0",
- "picocolors": "^1.0.0"
+ "@babel/highlight": "^7.22.13",
+ "chalk": "^2.4.2"
},
"engines": {
"node": ">=6.9.0"
}
},
+ "node_modules/@babel/code-frame/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
+ },
+ "node_modules/@babel/code-frame/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/@babel/compat-data": {
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.5.tgz",
@@ -310,18 +380,18 @@
}
},
"node_modules/@babel/helper-string-parser": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
- "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
+ "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
- "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
"dev": true,
"engines": {
"node": ">=6.9.0"
@@ -337,26 +407,109 @@
}
},
"node_modules/@babel/helpers": {
- "version": "7.27.0",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz",
- "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz",
+ "integrity": "sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==",
"dev": true,
"dependencies": {
- "@babel/template": "^7.27.0",
- "@babel/types": "^7.27.0"
+ "@babel/template": "^7.22.5",
+ "@babel/traverse": "^7.22.5",
+ "@babel/types": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
}
},
- "node_modules/@babel/parser": {
- "version": "7.27.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz",
- "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==",
+ "node_modules/@babel/highlight": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
+ "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
"dev": true,
"dependencies": {
- "@babel/types": "^7.27.0"
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "chalk": "^2.4.2",
+ "js-tokens": "^4.0.0"
},
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
+ },
+ "node_modules/@babel/highlight/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
+ "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==",
+ "dev": true,
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -542,14 +695,14 @@
}
},
"node_modules/@babel/template": {
- "version": "7.27.0",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz",
- "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==",
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
+ "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
"dev": true,
"dependencies": {
- "@babel/code-frame": "^7.26.2",
- "@babel/parser": "^7.27.0",
- "@babel/types": "^7.27.0"
+ "@babel/code-frame": "^7.22.13",
+ "@babel/parser": "^7.22.15",
+ "@babel/types": "^7.22.15"
},
"engines": {
"node": ">=6.9.0"
@@ -586,13 +739,14 @@
}
},
"node_modules/@babel/types": {
- "version": "7.27.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz",
- "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz",
+ "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==",
"dev": true,
"dependencies": {
- "@babel/helper-string-parser": "^7.25.9",
- "@babel/helper-validator-identifier": "^7.25.9"
+ "@babel/helper-string-parser": "^7.22.5",
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "to-fast-properties": "^2.0.0"
},
"engines": {
"node": ">=6.9.0"
@@ -973,6 +1127,21 @@
"node": ">=18.0.0"
}
},
+ "node_modules/@gitbeaker/core/node_modules/qs": {
+ "version": "6.11.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz",
+ "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==",
+ "dev": true,
+ "dependencies": {
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/@gitbeaker/requester-utils": {
"version": "39.1.0",
"resolved": "https://registry.npmjs.org/@gitbeaker/requester-utils/-/requester-utils-39.1.0.tgz",
@@ -986,6 +1155,21 @@
"node": ">=18.0.0"
}
},
+ "node_modules/@gitbeaker/requester-utils/node_modules/qs": {
+ "version": "6.11.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz",
+ "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==",
+ "dev": true,
+ "dependencies": {
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/@gitbeaker/rest": {
"version": "39.1.0",
"resolved": "https://registry.npmjs.org/@gitbeaker/rest/-/rest-39.1.0.tgz",
@@ -1037,356 +1221,15 @@
"resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-5.0.0.tgz",
"integrity": "sha512-e5+YUKENATs1JgYHMzTr2MW/NDcXGfYFAuOQU8gJgF/kEh4EqKgfGrfLI67bMD4tbhZVlkigz/9YYwWcbOFthg==",
"dev": true,
- "license": "Apache-2.0",
"engines": {
"node": ">=10.13.0"
}
},
- "node_modules/@inquirer/checkbox": {
- "version": "4.1.6",
- "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.1.6.tgz",
- "integrity": "sha512-62u896rWCtKKE43soodq5e/QcRsA22I+7/4Ov7LESWnKRO6BVo2A1DFLDmXL9e28TB0CfHc3YtkbPm7iwajqkg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@inquirer/core": "^10.1.11",
- "@inquirer/figures": "^1.0.11",
- "@inquirer/type": "^3.0.6",
- "ansi-escapes": "^4.3.2",
- "yoctocolors-cjs": "^2.1.2"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@types/node": ">=18"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- }
- }
- },
- "node_modules/@inquirer/confirm": {
- "version": "5.1.10",
- "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.10.tgz",
- "integrity": "sha512-FxbQ9giWxUWKUk2O5XZ6PduVnH2CZ/fmMKMBkH71MHJvWr7WL5AHKevhzF1L5uYWB2P548o1RzVxrNd3dpmk6g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@inquirer/core": "^10.1.11",
- "@inquirer/type": "^3.0.6"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@types/node": ">=18"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- }
- }
- },
- "node_modules/@inquirer/core": {
- "version": "10.1.11",
- "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.1.11.tgz",
- "integrity": "sha512-BXwI/MCqdtAhzNQlBEFE7CEflhPkl/BqvAuV/aK6lW3DClIfYVDWPP/kXuXHtBWC7/EEbNqd/1BGq2BGBBnuxw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@inquirer/figures": "^1.0.11",
- "@inquirer/type": "^3.0.6",
- "ansi-escapes": "^4.3.2",
- "cli-width": "^4.1.0",
- "mute-stream": "^2.0.0",
- "signal-exit": "^4.1.0",
- "wrap-ansi": "^6.2.0",
- "yoctocolors-cjs": "^2.1.2"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@types/node": ">=18"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- }
- }
- },
- "node_modules/@inquirer/core/node_modules/signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@inquirer/core/node_modules/wrap-ansi": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
- "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@inquirer/editor": {
- "version": "4.2.11",
- "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.11.tgz",
- "integrity": "sha512-YoZr0lBnnLFPpfPSNsQ8IZyKxU47zPyVi9NLjCWtna52//M/xuL0PGPAxHxxYhdOhnvY2oBafoM+BI5w/JK7jw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@inquirer/core": "^10.1.11",
- "@inquirer/type": "^3.0.6",
- "external-editor": "^3.1.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@types/node": ">=18"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- }
- }
- },
- "node_modules/@inquirer/expand": {
- "version": "4.0.13",
- "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.13.tgz",
- "integrity": "sha512-HgYNWuZLHX6q5y4hqKhwyytqAghmx35xikOGY3TcgNiElqXGPas24+UzNPOwGUZa5Dn32y25xJqVeUcGlTv+QQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@inquirer/core": "^10.1.11",
- "@inquirer/type": "^3.0.6",
- "yoctocolors-cjs": "^2.1.2"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@types/node": ">=18"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- }
- }
- },
- "node_modules/@inquirer/figures": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.11.tgz",
- "integrity": "sha512-eOg92lvrn/aRUqbxRyvpEWnrvRuTYRifixHkYVpJiygTgVSBIHDqLh0SrMQXkafvULg3ck11V7xvR+zcgvpHFw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@inquirer/input": {
- "version": "4.1.10",
- "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.1.10.tgz",
- "integrity": "sha512-kV3BVne3wJ+j6reYQUZi/UN9NZGZLxgc/tfyjeK3mrx1QI7RXPxGp21IUTv+iVHcbP4ytZALF8vCHoxyNSC6qg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@inquirer/core": "^10.1.11",
- "@inquirer/type": "^3.0.6"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@types/node": ">=18"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- }
- }
- },
- "node_modules/@inquirer/number": {
- "version": "3.0.13",
- "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.13.tgz",
- "integrity": "sha512-IrLezcg/GWKS8zpKDvnJ/YTflNJdG0qSFlUM/zNFsdi4UKW/CO+gaJpbMgQ20Q58vNKDJbEzC6IebdkprwL6ew==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@inquirer/core": "^10.1.11",
- "@inquirer/type": "^3.0.6"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@types/node": ">=18"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- }
- }
- },
- "node_modules/@inquirer/password": {
- "version": "4.0.13",
- "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.13.tgz",
- "integrity": "sha512-NN0S/SmdhakqOTJhDwOpeBEEr8VdcYsjmZHDb0rblSh2FcbXQOr+2IApP7JG4WE3sxIdKytDn4ed3XYwtHxmJQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@inquirer/core": "^10.1.11",
- "@inquirer/type": "^3.0.6",
- "ansi-escapes": "^4.3.2"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@types/node": ">=18"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- }
- }
- },
- "node_modules/@inquirer/prompts": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.5.1.tgz",
- "integrity": "sha512-5AOrZPf2/GxZ+SDRZ5WFplCA2TAQgK3OYrXCYmJL5NaTu4ECcoWFlfUZuw7Es++6Njv7iu/8vpYJhuzxUH76Vg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@inquirer/checkbox": "^4.1.6",
- "@inquirer/confirm": "^5.1.10",
- "@inquirer/editor": "^4.2.11",
- "@inquirer/expand": "^4.0.13",
- "@inquirer/input": "^4.1.10",
- "@inquirer/number": "^3.0.13",
- "@inquirer/password": "^4.0.13",
- "@inquirer/rawlist": "^4.1.1",
- "@inquirer/search": "^3.0.13",
- "@inquirer/select": "^4.2.1"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@types/node": ">=18"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- }
- }
- },
- "node_modules/@inquirer/rawlist": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.1.tgz",
- "integrity": "sha512-VBUC0jPN2oaOq8+krwpo/mf3n/UryDUkKog3zi+oIi8/e5hykvdntgHUB9nhDM78RubiyR1ldIOfm5ue+2DeaQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@inquirer/core": "^10.1.11",
- "@inquirer/type": "^3.0.6",
- "yoctocolors-cjs": "^2.1.2"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@types/node": ">=18"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- }
- }
- },
- "node_modules/@inquirer/search": {
- "version": "3.0.13",
- "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.0.13.tgz",
- "integrity": "sha512-9g89d2c5Izok/Gw/U7KPC3f9kfe5rA1AJ24xxNZG0st+vWekSk7tB9oE+dJv5JXd0ZSijomvW0KPMoBd8qbN4g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@inquirer/core": "^10.1.11",
- "@inquirer/figures": "^1.0.11",
- "@inquirer/type": "^3.0.6",
- "yoctocolors-cjs": "^2.1.2"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@types/node": ">=18"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- }
- }
- },
- "node_modules/@inquirer/select": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.2.1.tgz",
- "integrity": "sha512-gt1Kd5XZm+/ddemcT3m23IP8aD8rC9drRckWoP/1f7OL46Yy2FGi8DSmNjEjQKtPl6SV96Kmjbl6p713KXJ/Jg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@inquirer/core": "^10.1.11",
- "@inquirer/figures": "^1.0.11",
- "@inquirer/type": "^3.0.6",
- "ansi-escapes": "^4.3.2",
- "yoctocolors-cjs": "^2.1.2"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@types/node": ">=18"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- }
- }
- },
- "node_modules/@inquirer/type": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.6.tgz",
- "integrity": "sha512-/mKVCtVpyBu3IDarv0G+59KC4stsD5mDsGpYh+GKs1NZT88Jh52+cuoA1AtLk2Q0r/quNl+1cSUyLRHBFeD0XA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@types/node": ">=18"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- }
- }
+ "node_modules/@iarna/toml": {
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz",
+ "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==",
+ "dev": true
},
"node_modules/@istanbuljs/load-nyc-config": {
"version": "1.1.0",
@@ -1900,99 +1743,77 @@
"node": ">= 8"
}
},
- "node_modules/@nodeutils/defaults-deep": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@nodeutils/defaults-deep/-/defaults-deep-1.1.0.tgz",
- "integrity": "sha512-gG44cwQovaOFdSR02jR9IhVRpnDP64VN6JdjYJTfNz4J4fWn7TQnmrf22nSjRqlwlxPcW8PL/L3KbJg3tdwvpg==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "lodash": "^4.15.0"
- }
- },
"node_modules/@octokit/auth-token": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-5.1.2.tgz",
- "integrity": "sha512-JcQDsBdg49Yky2w2ld20IHAlwr8d/d8N6NiOXbtuoPCqzbsiJgF633mVUw3x4mo0H5ypataQIX7SFu3yy44Mpw==",
- "license": "MIT",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.2.tgz",
+ "integrity": "sha512-pq7CwIMV1kmzkFTimdwjAINCXKTajZErLB4wMLYapR2nuB/Jpr66+05wOTZMSCBXP6n4DdDWT2W19Bm17vU69Q==",
+ "dependencies": {
+ "@octokit/types": "^8.0.0"
+ },
"engines": {
- "node": ">= 18"
+ "node": ">= 14"
}
},
"node_modules/@octokit/core": {
- "version": "6.1.5",
- "resolved": "https://registry.npmjs.org/@octokit/core/-/core-6.1.5.tgz",
- "integrity": "sha512-vvmsN0r7rguA+FySiCsbaTTobSftpIDIpPW81trAmsv9TGxg3YCujAxRYp/Uy8xmDgYCzzgulG62H7KYUFmeIg==",
- "license": "MIT",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.4.tgz",
+ "integrity": "sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==",
"dependencies": {
- "@octokit/auth-token": "^5.0.0",
- "@octokit/graphql": "^8.2.2",
- "@octokit/request": "^9.2.3",
- "@octokit/request-error": "^6.1.8",
- "@octokit/types": "^14.0.0",
- "before-after-hook": "^3.0.2",
- "universal-user-agent": "^7.0.0"
+ "@octokit/auth-token": "^3.0.0",
+ "@octokit/graphql": "^5.0.0",
+ "@octokit/request": "^6.0.0",
+ "@octokit/request-error": "^3.0.0",
+ "@octokit/types": "^9.0.0",
+ "before-after-hook": "^2.2.0",
+ "universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">= 18"
+ "node": ">= 14"
}
},
- "node_modules/@octokit/core/node_modules/before-after-hook": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-3.0.2.tgz",
- "integrity": "sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==",
- "license": "Apache-2.0"
+ "node_modules/@octokit/core/node_modules/@octokit/openapi-types": {
+ "version": "18.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz",
+ "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw=="
},
- "node_modules/@octokit/core/node_modules/universal-user-agent": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz",
- "integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==",
- "license": "ISC"
+ "node_modules/@octokit/core/node_modules/@octokit/types": {
+ "version": "9.3.2",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz",
+ "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==",
+ "dependencies": {
+ "@octokit/openapi-types": "^18.0.0"
+ }
},
"node_modules/@octokit/endpoint": {
- "version": "10.1.4",
- "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.4.tgz",
- "integrity": "sha512-OlYOlZIsfEVZm5HCSR8aSg02T2lbUWOsCQoPKfTXJwDzcHQBrVBGdGXb89dv2Kw2ToZaRtudp8O3ZIYoaOjKlA==",
- "license": "MIT",
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.3.tgz",
+ "integrity": "sha512-57gRlb28bwTsdNXq+O3JTQ7ERmBTuik9+LelgcLIVfYwf235VHbN9QNo4kXExtp/h8T423cR5iJThKtFYxC7Lw==",
"dependencies": {
- "@octokit/types": "^14.0.0",
- "universal-user-agent": "^7.0.2"
+ "@octokit/types": "^8.0.0",
+ "is-plain-object": "^5.0.0",
+ "universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">= 18"
+ "node": ">= 14"
}
},
- "node_modules/@octokit/endpoint/node_modules/universal-user-agent": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz",
- "integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==",
- "license": "ISC"
- },
"node_modules/@octokit/graphql": {
- "version": "8.2.2",
- "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.2.2.tgz",
- "integrity": "sha512-Yi8hcoqsrXGdt0yObxbebHXFOiUA+2v3n53epuOg1QUgOB6c4XzvisBNVXJSl8RYA5KrDuSL2yq9Qmqe5N0ryA==",
- "license": "MIT",
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.4.tgz",
+ "integrity": "sha512-amO1M5QUQgYQo09aStR/XO7KAl13xpigcy/kI8/N1PnZYSS69fgte+xA4+c2DISKqUZfsh0wwjc2FaCt99L41A==",
"dependencies": {
- "@octokit/request": "^9.2.3",
- "@octokit/types": "^14.0.0",
- "universal-user-agent": "^7.0.0"
+ "@octokit/request": "^6.0.0",
+ "@octokit/types": "^8.0.0",
+ "universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">= 18"
+ "node": ">= 14"
}
},
- "node_modules/@octokit/graphql/node_modules/universal-user-agent": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz",
- "integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==",
- "license": "ISC"
- },
"node_modules/@octokit/openapi-types": {
- "version": "25.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-25.0.0.tgz",
- "integrity": "sha512-FZvktFu7HfOIJf2BScLKIEYjDsw6RKc7rBJCdvCTfKsVnx2GEB/Nbzjr29DUdb7vQhlzS/j8qDzdditP0OC6aw==",
- "license": "MIT"
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-14.0.0.tgz",
+ "integrity": "sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw=="
},
"node_modules/@octokit/openapi-types-ghec": {
"version": "14.0.0",
@@ -2058,39 +1879,34 @@
}
},
"node_modules/@octokit/request": {
- "version": "9.2.3",
- "resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.2.3.tgz",
- "integrity": "sha512-Ma+pZU8PXLOEYzsWf0cn/gY+ME57Wq8f49WTXA8FMHp2Ps9djKw//xYJ1je8Hm0pR2lU9FUGeJRWOtxq6olt4w==",
- "license": "MIT",
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.2.tgz",
+ "integrity": "sha512-6VDqgj0HMc2FUX2awIs+sM6OwLgwHvAi4KCK3mT2H2IKRt6oH9d0fej5LluF5mck1lRR/rFWN0YIDSYXYSylbw==",
"dependencies": {
- "@octokit/endpoint": "^10.1.4",
- "@octokit/request-error": "^6.1.8",
- "@octokit/types": "^14.0.0",
- "fast-content-type-parse": "^2.0.0",
- "universal-user-agent": "^7.0.2"
+ "@octokit/endpoint": "^7.0.0",
+ "@octokit/request-error": "^3.0.0",
+ "@octokit/types": "^8.0.0",
+ "is-plain-object": "^5.0.0",
+ "node-fetch": "^2.6.7",
+ "universal-user-agent": "^6.0.0"
},
"engines": {
- "node": ">= 18"
+ "node": ">= 14"
}
},
"node_modules/@octokit/request-error": {
- "version": "6.1.8",
- "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.8.tgz",
- "integrity": "sha512-WEi/R0Jmq+IJKydWlKDmryPcmdYSVjL3ekaiEL1L9eo1sUnqMJ+grqmC9cjk7CA7+b2/T397tO5d8YLOH3qYpQ==",
- "license": "MIT",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.2.tgz",
+ "integrity": "sha512-WMNOFYrSaX8zXWoJg9u/pKgWPo94JXilMLb2VManNOby9EZxrQaBe/QSC4a1TzpAlpxofg2X/jMnCyZgL6y7eg==",
"dependencies": {
- "@octokit/types": "^14.0.0"
+ "@octokit/types": "^8.0.0",
+ "deprecation": "^2.0.0",
+ "once": "^1.4.0"
},
"engines": {
- "node": ">= 18"
+ "node": ">= 14"
}
},
- "node_modules/@octokit/request/node_modules/universal-user-agent": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz",
- "integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==",
- "license": "ISC"
- },
"node_modules/@octokit/rest": {
"version": "18.12.0",
"resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz",
@@ -2180,13 +1996,18 @@
"@octokit/openapi-types": "^12.11.0"
}
},
+ "node_modules/@octokit/tsconfig": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@octokit/tsconfig/-/tsconfig-1.0.2.tgz",
+ "integrity": "sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA==",
+ "dev": true
+ },
"node_modules/@octokit/types": {
- "version": "14.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-14.0.0.tgz",
- "integrity": "sha512-VVmZP0lEhbo2O1pdq63gZFiGCKkm8PPp8AUOijlwPO6hojEVjspA0MWKP7E4hbvGxzFKNqKr6p0IYtOH/Wf/zA==",
- "license": "MIT",
+ "version": "8.2.1",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-8.2.1.tgz",
+ "integrity": "sha512-8oWMUji8be66q2B9PmEIUyQm00VPDPun07umUWSaCwxmeaquFBro4Hcc3ruVoDo3zkQyZBlRvhIMEYS3pBhanw==",
"dependencies": {
- "@octokit/openapi-types": "^25.0.0"
+ "@octokit/openapi-types": "^14.0.0"
}
},
"node_modules/@octokit/webhooks-types": {
@@ -2195,38 +2016,47 @@
"integrity": "sha512-Yq46asTPdEyrroCSBLRvcwNBsztiDHHvJ3+//2PhVbLSKp6kkj7NkjA3fyrpCrdlANj8REZSfus60v96EmlxCA==",
"dev": true
},
- "node_modules/@phun-ky/typeof": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@phun-ky/typeof/-/typeof-1.2.8.tgz",
- "integrity": "sha512-7J6ca1tK0duM2BgVB+CuFMh3idlIVASOP2QvOCbNWDc6JnvjtKa9nufPoJQQ4xrwBonwgT1TIhRRcEtzdVgWsA==",
+ "node_modules/@pnpm/network.ca-file": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz",
+ "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==",
"dev": true,
- "license": "MIT",
- "engines": {
- "node": "^20.9.0 || >=22.0.0",
- "npm": ">=10.8.2"
+ "dependencies": {
+ "graceful-fs": "4.2.10"
},
- "funding": {
- "url": "https://github.com/phun-ky/typeof?sponsor=1"
+ "engines": {
+ "node": ">=12.22.0"
+ }
+ },
+ "node_modules/@pnpm/npm-conf": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-1.0.5.tgz",
+ "integrity": "sha512-hD8ml183638O3R6/Txrh0L8VzGOrFXgRtRDG4qQC4tONdZ5Z1M+tlUUDUvrjYdmK6G+JTBTeaCLMna11cXzi8A==",
+ "dev": true,
+ "dependencies": {
+ "@pnpm/network.ca-file": "^1.0.1",
+ "config-chain": "^1.1.11"
+ },
+ "engines": {
+ "node": ">=12"
}
},
"node_modules/@release-it/conventional-changelog": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/@release-it/conventional-changelog/-/conventional-changelog-10.0.1.tgz",
- "integrity": "sha512-Qp+eyMGCPyq5xiWoNK91cWVIR/6HD1QAUNeG6pV2G4kxotWl81k/KDQqDNvrNVmr9+zDp53jI7pVVYQp6mi4zA==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/@release-it/conventional-changelog/-/conventional-changelog-7.0.2.tgz",
+ "integrity": "sha512-rsUKWNnU39xivgC2IanjRkEOPsTu2X2jgJGpNHF+mndpOUr1WAROmIaix1o3ne2zseT+GLyZII2NC8FgYaM7xA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"concat-stream": "^2.0.0",
- "conventional-changelog": "^6.0.0",
- "conventional-recommended-bump": "^10.0.0",
- "git-semver-tags": "^8.0.0",
- "semver": "^7.6.3"
+ "conventional-changelog": "^5.1.0",
+ "conventional-recommended-bump": "^8.0.0",
+ "semver": "^7.5.4"
},
"engines": {
- "node": "^20.9.0 || >=22.0.0"
+ "node": ">=16"
},
"peerDependencies": {
- "release-it": "^18.0.0 || ^19.0.0"
+ "release-it": "^16.0.0"
}
},
"node_modules/@sinclair/typebox": {
@@ -2235,6 +2065,18 @@
"integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==",
"dev": true
},
+ "node_modules/@sindresorhus/is": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz",
+ "integrity": "sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw==",
+ "dev": true,
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/is?sponsor=1"
+ }
+ },
"node_modules/@sinonjs/commons": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz",
@@ -2253,12 +2095,23 @@
"@sinonjs/commons": "^3.0.0"
}
},
+ "node_modules/@szmarczak/http-timer": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz",
+ "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==",
+ "dev": true,
+ "dependencies": {
+ "defer-to-connect": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=14.16"
+ }
+ },
"node_modules/@tootallnate/quickjs-emscripten": {
"version": "0.23.0",
"resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz",
"integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/@tsconfig/node10": {
"version": "1.0.9",
@@ -2343,6 +2196,12 @@
"@types/node": "*"
}
},
+ "node_modules/@types/http-cache-semantics": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz",
+ "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==",
+ "dev": true
+ },
"node_modules/@types/istanbul-lib-coverage": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
@@ -2396,18 +2255,10 @@
"dev": true
},
"node_modules/@types/normalize-package-data": {
- "version": "2.4.4",
- "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
- "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/parse-path": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/@types/parse-path/-/parse-path-7.0.3.tgz",
- "integrity": "sha512-LriObC2+KYZD3FzCrgWGv/qufdUy4eXrxcLgQMfYXgPbLIecKIsVBaQgUPmxSSLcjmYbDTQbMgr6qr6l/eb7Bg==",
- "dev": true,
- "license": "MIT"
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
+ "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
+ "dev": true
},
"node_modules/@types/prettier": {
"version": "2.7.3",
@@ -2416,11 +2267,10 @@
"dev": true
},
"node_modules/@types/semver": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.0.tgz",
- "integrity": "sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==",
- "dev": true,
- "license": "MIT"
+ "version": "7.3.13",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz",
+ "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==",
+ "dev": true
},
"node_modules/@types/stack-utils": {
"version": "2.0.1",
@@ -2686,15 +2536,16 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz",
"integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/agent-base": {
- "version": "7.1.3",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz",
- "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
+ "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
"dev": true,
- "license": "MIT",
+ "dependencies": {
+ "debug": "^4.3.4"
+ },
"engines": {
"node": ">= 14"
}
@@ -2715,6 +2566,15 @@
"url": "https://github.com/sponsors/epoberezkin"
}
},
+ "node_modules/ansi-align": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
+ "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^4.1.0"
+ }
+ },
"node_modules/ansi-escapes": {
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
@@ -2812,6 +2672,25 @@
"node": ">=8"
}
},
+ "node_modules/array.prototype.map": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.5.tgz",
+ "integrity": "sha512-gfaKntvwqYIuC7mLLyv2wzZIJqrRhn5PZ9EfFejSx6a78sV7iDsGpG9P+3oUPtm1Rerqm6nrKS4FYuTIvWfo3g==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-array-method-boxes-properly": "^1.0.0",
+ "is-string": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/arrify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
@@ -2826,7 +2705,6 @@
"resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz",
"integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"tslib": "^2.0.1"
},
@@ -2835,18 +2713,16 @@
}
},
"node_modules/ast-types/node_modules/tslib": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
- "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
- "dev": true,
- "license": "0BSD"
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz",
+ "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==",
+ "dev": true
},
"node_modules/async-retry": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz",
"integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"retry": "0.13.1"
}
@@ -2856,12 +2732,24 @@
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
},
+ "node_modules/available-typed-arrays": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
+ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/axios": {
- "version": "1.8.4",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.4.tgz",
- "integrity": "sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.0.tgz",
+ "integrity": "sha512-EZ1DYihju9pwVB+jg67ogm+Tmqc6JmhamRN6I4Zt8DfZu5lbcQGw3ozH9lFejSJgs/ibaef3A9PMXPLeefFGJg==",
"dependencies": {
- "follow-redirects": "^1.15.6",
+ "follow-redirects": "^1.15.0",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
@@ -2963,12 +2851,31 @@
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true
},
- "node_modules/basic-ftp": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz",
- "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==",
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/basic-ftp": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.3.tgz",
+ "integrity": "sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=10.0.0"
}
@@ -2978,6 +2885,15 @@
"resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz",
"integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ=="
},
+ "node_modules/big-integer": {
+ "version": "1.6.51",
+ "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz",
+ "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
"node_modules/binary-extensions": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
@@ -2987,22 +2903,33 @@
"node": ">=8"
}
},
+ "node_modules/bl": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz",
+ "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==",
+ "dev": true,
+ "dependencies": {
+ "buffer": "^6.0.3",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
"node_modules/body-parser": {
- "version": "1.20.3",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
- "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
+ "version": "1.20.1",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
+ "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
"dev": true,
"dependencies": {
"bytes": "3.1.2",
- "content-type": "~1.0.5",
+ "content-type": "~1.0.4",
"debug": "2.6.9",
"depd": "2.0.0",
"destroy": "1.2.0",
"http-errors": "2.0.0",
"iconv-lite": "0.4.24",
"on-finished": "2.4.1",
- "qs": "6.13.0",
- "raw-body": "2.5.2",
+ "qs": "6.11.0",
+ "raw-body": "2.5.1",
"type-is": "~1.6.18",
"unpipe": "1.0.0"
},
@@ -3026,6 +2953,155 @@
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"dev": true
},
+ "node_modules/boxen": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.0.1.tgz",
+ "integrity": "sha512-8k2eH6SRAK00NDl1iX5q17RJ8rfl53TajdYxE3ssMLehbg487dEVgsad4pIsZb/QqBgYWIl6JOauMTLGX2Kpkw==",
+ "dev": true,
+ "dependencies": {
+ "ansi-align": "^3.0.1",
+ "camelcase": "^7.0.0",
+ "chalk": "^5.0.1",
+ "cli-boxes": "^3.0.0",
+ "string-width": "^5.1.2",
+ "type-fest": "^2.13.0",
+ "widest-line": "^4.0.1",
+ "wrap-ansi": "^8.0.1"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/boxen/node_modules/ansi-regex": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/boxen/node_modules/ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/boxen/node_modules/camelcase": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz",
+ "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==",
+ "dev": true,
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/boxen/node_modules/chalk": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz",
+ "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/boxen/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true
+ },
+ "node_modules/boxen/node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dev": true,
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/boxen/node_modules/strip-ansi": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz",
+ "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/boxen/node_modules/type-fest": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
+ "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
+ "dev": true,
+ "engines": {
+ "node": ">=12.20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/boxen/node_modules/wrap-ansi": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.0.1.tgz",
+ "integrity": "sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/bplist-parser": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz",
+ "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==",
+ "dev": true,
+ "dependencies": {
+ "big-integer": "^1.6.44"
+ },
+ "engines": {
+ "node": ">= 5.10.0"
+ }
+ },
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -3037,12 +3113,12 @@
}
},
"node_modules/braces": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
- "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true,
"dependencies": {
- "fill-range": "^7.1.1"
+ "fill-range": "^7.0.1"
},
"engines": {
"node": ">=8"
@@ -3101,6 +3177,30 @@
"node-int64": "^0.4.0"
}
},
+ "node_modules/buffer": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
+ }
+ },
"node_modules/buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
@@ -3108,16 +3208,15 @@
"dev": true
},
"node_modules/bundle-name": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz",
- "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz",
+ "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "run-applescript": "^7.0.0"
+ "run-applescript": "^5.0.0"
},
"engines": {
- "node": ">=18"
+ "node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -3132,89 +3231,41 @@
"node": ">= 0.8"
}
},
- "node_modules/c12": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/c12/-/c12-3.0.3.tgz",
- "integrity": "sha512-uC3MacKBb0Z15o5QWCHvHWj5Zv34pGQj9P+iXKSpTuSGFS0KKhUWf4t9AJ+gWjYOdmWCPEGpEzm8sS0iqbpo1w==",
+ "node_modules/cacheable-lookup": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz",
+ "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==",
"dev": true,
- "license": "MIT",
- "dependencies": {
- "chokidar": "^4.0.3",
- "confbox": "^0.2.2",
- "defu": "^6.1.4",
- "dotenv": "^16.4.7",
- "exsolve": "^1.0.4",
- "giget": "^2.0.0",
- "jiti": "^2.4.2",
- "ohash": "^2.0.11",
- "pathe": "^2.0.3",
- "perfect-debounce": "^1.0.0",
- "pkg-types": "^2.1.0",
- "rc9": "^2.1.2"
- },
- "peerDependencies": {
- "magicast": "^0.3.5"
- },
- "peerDependenciesMeta": {
- "magicast": {
- "optional": true
- }
+ "engines": {
+ "node": ">=14.16"
}
},
- "node_modules/c12/node_modules/chokidar": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
- "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
+ "node_modules/cacheable-request": {
+ "version": "10.2.12",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz",
+ "integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "readdirp": "^4.0.1"
+ "@types/http-cache-semantics": "^4.0.1",
+ "get-stream": "^6.0.1",
+ "http-cache-semantics": "^4.1.1",
+ "keyv": "^4.5.2",
+ "mimic-response": "^4.0.0",
+ "normalize-url": "^8.0.0",
+ "responselike": "^3.0.0"
},
"engines": {
- "node": ">= 14.16.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
+ "node": ">=14.16"
}
},
- "node_modules/c12/node_modules/readdirp": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
- "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 14.18.0"
- },
- "funding": {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/call-bind-apply-helpers": {
+ "node_modules/call-bind": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
- "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
"dev": true,
"dependencies": {
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/call-bound": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
- "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
- "dev": true,
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.2",
- "get-intrinsic": "^1.3.0"
- },
- "engines": {
- "node": ">= 0.4"
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -3304,8 +3355,7 @@
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
"integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/chokidar": {
"version": "3.5.3",
@@ -3355,44 +3405,41 @@
"node": ">=8"
}
},
- "node_modules/citty": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz",
- "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "consola": "^3.2.3"
- }
- },
"node_modules/cjs-module-lexer": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz",
"integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==",
"dev": true
},
- "node_modules/cli-cursor": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz",
- "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==",
+ "node_modules/cli-boxes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz",
+ "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==",
"dev": true,
- "license": "MIT",
- "dependencies": {
- "restore-cursor": "^5.0.0"
- },
"engines": {
- "node": ">=18"
+ "node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/cli-spinners": {
- "version": "2.9.2",
- "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz",
- "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==",
+ "node_modules/cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dev": true,
+ "dependencies": {
+ "restore-cursor": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cli-spinners": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz",
+ "integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=6"
},
@@ -3401,11 +3448,10 @@
}
},
"node_modules/cli-width": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz",
- "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.0.0.tgz",
+ "integrity": "sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw==",
"dev": true,
- "license": "ISC",
"engines": {
"node": ">= 12"
}
@@ -3424,6 +3470,15 @@
"node": ">=12"
}
},
+ "node_modules/clone": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+ "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
"node_modules/co": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
@@ -3501,7 +3556,6 @@
"engines": [
"node >= 6.0"
],
- "license": "MIT",
"dependencies": {
"buffer-from": "^1.0.0",
"inherits": "^2.0.3",
@@ -3509,21 +3563,60 @@
"typedarray": "^0.0.6"
}
},
- "node_modules/confbox": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz",
- "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==",
+ "node_modules/config-chain": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz",
+ "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==",
"dev": true,
- "license": "MIT"
+ "dependencies": {
+ "ini": "^1.3.4",
+ "proto-list": "~1.2.1"
+ }
},
- "node_modules/consola": {
- "version": "3.4.2",
- "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz",
- "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==",
+ "node_modules/configstore": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz",
+ "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==",
"dev": true,
- "license": "MIT",
+ "dependencies": {
+ "dot-prop": "^6.0.1",
+ "graceful-fs": "^4.2.6",
+ "unique-string": "^3.0.0",
+ "write-file-atomic": "^3.0.3",
+ "xdg-basedir": "^5.0.1"
+ },
"engines": {
- "node": "^14.18.0 || >=16.10.0"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/yeoman/configstore?sponsor=1"
+ }
+ },
+ "node_modules/configstore/node_modules/dot-prop": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz",
+ "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==",
+ "dev": true,
+ "dependencies": {
+ "is-obj": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/configstore/node_modules/write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "dev": true,
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
}
},
"node_modules/content-disposition": {
@@ -3539,35 +3632,34 @@
}
},
"node_modules/content-type": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
- "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
"dev": true,
"engines": {
"node": ">= 0.6"
}
},
"node_modules/conventional-changelog": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-6.0.0.tgz",
- "integrity": "sha512-tuUH8H/19VjtD9Ig7l6TQRh+Z0Yt0NZ6w/cCkkyzUbGQTnUEmKfGtkC9gGfVgCfOL1Rzno5NgNF4KY8vR+Jo3w==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-5.1.0.tgz",
+ "integrity": "sha512-aWyE/P39wGYRPllcCEZDxTVEmhyLzTc9XA6z6rVfkuCD2UBnhV/sgSOKbQrEG5z9mEZJjnopjgQooTKxEg8mAg==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "conventional-changelog-angular": "^8.0.0",
- "conventional-changelog-atom": "^5.0.0",
- "conventional-changelog-codemirror": "^5.0.0",
- "conventional-changelog-conventionalcommits": "^8.0.0",
- "conventional-changelog-core": "^8.0.0",
- "conventional-changelog-ember": "^5.0.0",
- "conventional-changelog-eslint": "^6.0.0",
- "conventional-changelog-express": "^5.0.0",
- "conventional-changelog-jquery": "^6.0.0",
- "conventional-changelog-jshint": "^5.0.0",
- "conventional-changelog-preset-loader": "^5.0.0"
+ "conventional-changelog-angular": "^7.0.0",
+ "conventional-changelog-atom": "^4.0.0",
+ "conventional-changelog-codemirror": "^4.0.0",
+ "conventional-changelog-conventionalcommits": "^7.0.2",
+ "conventional-changelog-core": "^7.0.0",
+ "conventional-changelog-ember": "^4.0.0",
+ "conventional-changelog-eslint": "^5.0.0",
+ "conventional-changelog-express": "^4.0.0",
+ "conventional-changelog-jquery": "^5.0.0",
+ "conventional-changelog-jshint": "^4.0.0",
+ "conventional-changelog-preset-loader": "^4.1.0"
},
"engines": {
- "node": ">=18"
+ "node": ">=16"
}
},
"node_modules/conventional-changelog-angular": {
@@ -3584,23 +3676,21 @@
}
},
"node_modules/conventional-changelog-atom": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-5.0.0.tgz",
- "integrity": "sha512-WfzCaAvSCFPkznnLgLnfacRAzjgqjLUjvf3MftfsJzQdDICqkOOpcMtdJF3wTerxSpv2IAAjX8doM3Vozqle3g==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-4.0.0.tgz",
+ "integrity": "sha512-q2YtiN7rnT1TGwPTwjjBSIPIzDJCRE+XAUahWxnh+buKK99Kks4WLMHoexw38GXx9OUxAsrp44f9qXe5VEMYhw==",
"dev": true,
- "license": "ISC",
"engines": {
- "node": ">=18"
+ "node": ">=16"
}
},
"node_modules/conventional-changelog-codemirror": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-5.0.0.tgz",
- "integrity": "sha512-8gsBDI5Y3vrKUCxN6Ue8xr6occZ5nsDEc4C7jO/EovFGozx8uttCAyfhRrvoUAWi2WMm3OmYs+0mPJU7kQdYWQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-4.0.0.tgz",
+ "integrity": "sha512-hQSojc/5imn1GJK3A75m9hEZZhc3urojA5gMpnar4JHmgLnuM3CUIARPpEk86glEKr3c54Po3WV/vCaO/U8g3Q==",
"dev": true,
- "license": "ISC",
"engines": {
- "node": ">=18"
+ "node": ">=16"
}
},
"node_modules/conventional-changelog-conventionalcommits": {
@@ -3618,92 +3708,94 @@
}
},
"node_modules/conventional-changelog-core": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-8.0.0.tgz",
- "integrity": "sha512-EATUx5y9xewpEe10UEGNpbSHRC6cVZgO+hXQjofMqpy+gFIrcGvH3Fl6yk2VFKh7m+ffenup2N7SZJYpyD9evw==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-7.0.0.tgz",
+ "integrity": "sha512-UYgaB1F/COt7VFjlYKVE/9tTzfU3VUq47r6iWf6lM5T7TlOxr0thI63ojQueRLIpVbrtHK4Ffw+yQGduw2Bhdg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@hutson/parse-repository-url": "^5.0.0",
"add-stream": "^1.0.0",
- "conventional-changelog-writer": "^8.0.0",
- "conventional-commits-parser": "^6.0.0",
- "git-raw-commits": "^5.0.0",
- "git-semver-tags": "^8.0.0",
+ "conventional-changelog-writer": "^7.0.0",
+ "conventional-commits-parser": "^5.0.0",
+ "git-raw-commits": "^4.0.0",
+ "git-semver-tags": "^7.0.0",
"hosted-git-info": "^7.0.0",
"normalize-package-data": "^6.0.0",
- "read-package-up": "^11.0.0",
- "read-pkg": "^9.0.0"
+ "read-pkg": "^8.0.0",
+ "read-pkg-up": "^10.0.0"
},
"engines": {
- "node": ">=18"
- }
- },
- "node_modules/conventional-changelog-core/node_modules/@conventional-changelog/git-client": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@conventional-changelog/git-client/-/git-client-1.0.1.tgz",
- "integrity": "sha512-PJEqBwAleffCMETaVm/fUgHldzBE35JFk3/9LL6NUA5EXa3qednu+UT6M7E5iBu3zIQZCULYIiZ90fBYHt6xUw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/semver": "^7.5.5",
- "semver": "^7.5.2"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "conventional-commits-filter": "^5.0.0",
- "conventional-commits-parser": "^6.0.0"
- },
- "peerDependenciesMeta": {
- "conventional-commits-filter": {
- "optional": true
- },
- "conventional-commits-parser": {
- "optional": true
- }
+ "node": ">=16"
}
},
"node_modules/conventional-changelog-core/node_modules/conventional-commits-parser": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.1.0.tgz",
- "integrity": "sha512-5nxDo7TwKB5InYBl4ZC//1g9GRwB/F3TXOGR9hgUjMGfvSP4Vu5NkpNro2+1+TIEy1vwxApl5ircECr2ri5JIw==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz",
+ "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "meow": "^13.0.0"
+ "is-text-path": "^2.0.0",
+ "JSONStream": "^1.3.5",
+ "meow": "^12.0.1",
+ "split2": "^4.0.0"
},
"bin": {
- "conventional-commits-parser": "dist/cli/index.js"
+ "conventional-commits-parser": "cli.mjs"
},
"engines": {
- "node": ">=18"
+ "node": ">=16"
+ }
+ },
+ "node_modules/conventional-changelog-core/node_modules/dargs": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/dargs/-/dargs-8.1.0.tgz",
+ "integrity": "sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/conventional-changelog-core/node_modules/find-up": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz",
+ "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^7.1.0",
+ "path-exists": "^5.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/conventional-changelog-core/node_modules/git-raw-commits": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-5.0.0.tgz",
- "integrity": "sha512-I2ZXrXeOc0KrCvC7swqtIFXFN+rbjnC7b2T943tvemIOVNl+XP8YnA9UVwqFhzzLClnSA60KR/qEjLpXzs73Qg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-4.0.0.tgz",
+ "integrity": "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@conventional-changelog/git-client": "^1.0.0",
- "meow": "^13.0.0"
+ "dargs": "^8.0.0",
+ "meow": "^12.0.1",
+ "split2": "^4.0.0"
},
"bin": {
- "git-raw-commits": "src/cli.js"
+ "git-raw-commits": "cli.mjs"
},
"engines": {
- "node": ">=18"
+ "node": ">=16"
}
},
"node_modules/conventional-changelog-core/node_modules/hosted-git-info": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz",
- "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz",
+ "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==",
"dev": true,
- "license": "ISC",
"dependencies": {
"lru-cache": "^10.0.1"
},
@@ -3711,34 +3803,80 @@
"node": "^16.14.0 || >=18.0.0"
}
},
- "node_modules/conventional-changelog-core/node_modules/lru-cache": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "node_modules/conventional-changelog-core/node_modules/is-text-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz",
+ "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==",
"dev": true,
- "license": "ISC"
+ "dependencies": {
+ "text-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/conventional-changelog-core/node_modules/json-parse-even-better-errors": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz",
+ "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==",
+ "dev": true,
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/conventional-changelog-core/node_modules/lines-and-columns": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz",
+ "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==",
+ "dev": true,
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ }
+ },
+ "node_modules/conventional-changelog-core/node_modules/locate-path": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz",
+ "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^6.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/conventional-changelog-core/node_modules/lru-cache": {
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz",
+ "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==",
+ "dev": true,
+ "engines": {
+ "node": "14 || >=16.14"
+ }
},
"node_modules/conventional-changelog-core/node_modules/meow": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz",
- "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==",
+ "version": "12.1.1",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz",
+ "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==",
"dev": true,
- "license": "MIT",
"engines": {
- "node": ">=18"
+ "node": ">=16.10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/conventional-changelog-core/node_modules/normalize-package-data": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz",
- "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz",
+ "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==",
"dev": true,
- "license": "BSD-2-Clause",
"dependencies": {
"hosted-git-info": "^7.0.0",
+ "is-core-module": "^2.8.1",
"semver": "^7.3.5",
"validate-npm-package-license": "^3.0.4"
},
@@ -3746,50 +3884,48 @@
"node": "^16.14.0 || >=18.0.0"
}
},
+ "node_modules/conventional-changelog-core/node_modules/p-limit": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
+ "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
+ "dev": true,
+ "dependencies": {
+ "yocto-queue": "^1.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/conventional-changelog-core/node_modules/p-locate": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz",
+ "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^4.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/conventional-changelog-core/node_modules/parse-json": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.3.0.tgz",
- "integrity": "sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.1.1.tgz",
+ "integrity": "sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.26.2",
- "index-to-position": "^1.1.0",
- "type-fest": "^4.39.1"
+ "@babel/code-frame": "^7.21.4",
+ "error-ex": "^1.3.2",
+ "json-parse-even-better-errors": "^3.0.0",
+ "lines-and-columns": "^2.0.3",
+ "type-fest": "^3.8.0"
},
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/conventional-changelog-core/node_modules/read-pkg": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz",
- "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/normalize-package-data": "^2.4.3",
- "normalize-package-data": "^6.0.0",
- "parse-json": "^8.0.0",
- "type-fest": "^4.6.0",
- "unicorn-magic": "^0.1.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/conventional-changelog-core/node_modules/type-fest": {
- "version": "4.39.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.39.1.tgz",
- "integrity": "sha512-uW9qzd66uyHYxwyVBYiwS4Oi0qZyUqwjU+Oevr6ZogYiXt99EOYtwvzMSLw1c3lYo2HzJsep/NB23iEVEgjG/w==",
- "dev": true,
- "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=16"
},
@@ -3797,135 +3933,236 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/conventional-changelog-ember": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-5.0.0.tgz",
- "integrity": "sha512-RPflVfm5s4cSO33GH/Ey26oxhiC67akcxSKL8CLRT3kQX2W3dbE19sSOM56iFqUJYEwv9mD9r6k79weWe1urfg==",
+ "node_modules/conventional-changelog-core/node_modules/parse-json/node_modules/type-fest": {
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz",
+ "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
"dev": true,
- "license": "ISC",
"engines": {
- "node": ">=18"
- }
- },
- "node_modules/conventional-changelog-eslint": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-6.0.0.tgz",
- "integrity": "sha512-eiUyULWjzq+ybPjXwU6NNRflApDWlPEQEHvI8UAItYW/h22RKkMnOAtfCZxMmrcMO1OKUWtcf2MxKYMWe9zJuw==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/conventional-changelog-express": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-5.0.0.tgz",
- "integrity": "sha512-D8Q6WctPkQpvr2HNCCmwU5GkX22BVHM0r4EW8vN0230TSyS/d6VQJDAxGb84lbg0dFjpO22MwmsikKL++Oo/oQ==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/conventional-changelog-jquery": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-6.0.0.tgz",
- "integrity": "sha512-2kxmVakyehgyrho2ZHBi90v4AHswkGzHuTaoH40bmeNqUt20yEkDOSpw8HlPBfvEQBwGtbE+5HpRwzj6ac2UfA==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/conventional-changelog-jshint": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-5.0.0.tgz",
- "integrity": "sha512-gGNphSb/opc76n2eWaO6ma4/Wqu3tpa2w7i9WYqI6Cs2fncDSI2/ihOfMvXveeTTeld0oFvwMVNV+IYQIk3F3g==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "compare-func": "^2.0.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/conventional-changelog-preset-loader": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-5.0.0.tgz",
- "integrity": "sha512-SetDSntXLk8Jh1NOAl1Gu5uLiCNSYenB5tm0YVeZKePRIgDW9lQImromTwLa3c/Gae298tsgOM+/CYT9XAl0NA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/conventional-changelog-writer": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-8.0.1.tgz",
- "integrity": "sha512-hlqcy3xHred2gyYg/zXSMXraY2mjAYYo0msUCpK+BGyaVJMFCKWVXPIHiaacGO2GGp13kvHWXFhYmxT4QQqW3Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "conventional-commits-filter": "^5.0.0",
- "handlebars": "^4.7.7",
- "meow": "^13.0.0",
- "semver": "^7.5.2"
- },
- "bin": {
- "conventional-changelog-writer": "dist/cli/index.js"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/conventional-changelog-writer/node_modules/meow": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz",
- "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
+ "node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/conventional-changelog/node_modules/conventional-changelog-angular": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-8.0.0.tgz",
- "integrity": "sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==",
+ "node_modules/conventional-changelog-core/node_modules/path-exists": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
+ "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==",
+ "dev": true,
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ }
+ },
+ "node_modules/conventional-changelog-core/node_modules/read-pkg": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.1.0.tgz",
+ "integrity": "sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/normalize-package-data": "^2.4.1",
+ "normalize-package-data": "^6.0.0",
+ "parse-json": "^7.0.0",
+ "type-fest": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/conventional-changelog-core/node_modules/read-pkg-up": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-10.1.0.tgz",
+ "integrity": "sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==",
+ "dev": true,
+ "dependencies": {
+ "find-up": "^6.3.0",
+ "read-pkg": "^8.1.0",
+ "type-fest": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/conventional-changelog-core/node_modules/split2": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
+ "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 10.x"
+ }
+ },
+ "node_modules/conventional-changelog-core/node_modules/text-extensions": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz",
+ "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/conventional-changelog-core/node_modules/type-fest": {
+ "version": "4.10.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.10.2.tgz",
+ "integrity": "sha512-anpAG63wSpdEbLwOqH8L84urkL6PiVIov3EMmgIhhThevh9aiMQov+6Btx0wldNcvm4wV+e2/Rt1QdDwKHFbHw==",
+ "dev": true,
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/conventional-changelog-core/node_modules/yocto-queue": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz",
+ "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==",
+ "dev": true,
+ "engines": {
+ "node": ">=12.20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/conventional-changelog-ember": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-4.0.0.tgz",
+ "integrity": "sha512-D0IMhwcJUg1Y8FSry6XAplEJcljkHVlvAZddhhsdbL1rbsqRsMfGx/PIkPYq0ru5aDgn+OxhQ5N5yR7P9mfsvA==",
+ "dev": true,
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/conventional-changelog-eslint": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-5.0.0.tgz",
+ "integrity": "sha512-6JtLWqAQIeJLn/OzUlYmzd9fKeNSWmQVim9kql+v4GrZwLx807kAJl3IJVc3jTYfVKWLxhC3BGUxYiuVEcVjgA==",
+ "dev": true,
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/conventional-changelog-express": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-4.0.0.tgz",
+ "integrity": "sha512-yWyy5c7raP9v7aTvPAWzqrztACNO9+FEI1FSYh7UP7YT1AkWgv5UspUeB5v3Ibv4/o60zj2o9GF2tqKQ99lIsw==",
+ "dev": true,
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/conventional-changelog-jquery": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-5.0.0.tgz",
+ "integrity": "sha512-slLjlXLRNa/icMI3+uGLQbtrgEny3RgITeCxevJB+p05ExiTgHACP5p3XiMKzjBn80n+Rzr83XMYfRInEtCPPw==",
+ "dev": true,
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/conventional-changelog-jshint": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-4.0.0.tgz",
+ "integrity": "sha512-LyXq1bbl0yG0Ai1SbLxIk8ZxUOe3AjnlwE6sVRQmMgetBk+4gY9EO3d00zlEt8Y8gwsITytDnPORl8al7InTjg==",
"dev": true,
- "license": "ISC",
"dependencies": {
"compare-func": "^2.0.0"
},
"engines": {
- "node": ">=18"
+ "node": ">=16"
+ }
+ },
+ "node_modules/conventional-changelog-preset-loader": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-4.1.0.tgz",
+ "integrity": "sha512-HozQjJicZTuRhCRTq4rZbefaiCzRM2pr6u2NL3XhrmQm4RMnDXfESU6JKu/pnKwx5xtdkYfNCsbhN5exhiKGJA==",
+ "dev": true,
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/conventional-changelog-writer": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-7.0.1.tgz",
+ "integrity": "sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==",
+ "dev": true,
+ "dependencies": {
+ "conventional-commits-filter": "^4.0.0",
+ "handlebars": "^4.7.7",
+ "json-stringify-safe": "^5.0.1",
+ "meow": "^12.0.1",
+ "semver": "^7.5.2",
+ "split2": "^4.0.0"
+ },
+ "bin": {
+ "conventional-changelog-writer": "cli.mjs"
+ },
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/conventional-changelog-writer/node_modules/meow": {
+ "version": "12.1.1",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz",
+ "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==",
+ "dev": true,
+ "engines": {
+ "node": ">=16.10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/conventional-changelog-writer/node_modules/split2": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
+ "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 10.x"
+ }
+ },
+ "node_modules/conventional-changelog/node_modules/conventional-changelog-angular": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz",
+ "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==",
+ "dev": true,
+ "dependencies": {
+ "compare-func": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=16"
}
},
"node_modules/conventional-changelog/node_modules/conventional-changelog-conventionalcommits": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-8.0.0.tgz",
- "integrity": "sha512-eOvlTO6OcySPyyyk8pKz2dP4jjElYunj9hn9/s0OB+gapTO8zwS9UQWrZ1pmF2hFs3vw1xhonOLGcGjy/zgsuA==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-7.0.2.tgz",
+ "integrity": "sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==",
"dev": true,
- "license": "ISC",
"dependencies": {
"compare-func": "^2.0.0"
},
"engines": {
- "node": ">=18"
+ "node": ">=16"
}
},
"node_modules/conventional-commits-filter": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-5.0.0.tgz",
- "integrity": "sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-4.0.0.tgz",
+ "integrity": "sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==",
"dev": true,
- "license": "MIT",
"engines": {
- "node": ">=18"
+ "node": ">=16"
}
},
"node_modules/conventional-commits-parser": {
@@ -3949,75 +4186,129 @@
}
},
"node_modules/conventional-recommended-bump": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-10.0.0.tgz",
- "integrity": "sha512-RK/fUnc2btot0oEVtrj3p2doImDSs7iiz/bftFCDzels0Qs1mxLghp+DFHMaOC0qiCI6sWzlTDyBFSYuot6pRA==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-8.0.0.tgz",
+ "integrity": "sha512-yvGN+VMy00WIe/pJufpmN+I4B2cM/WFK+CFCmDcjyVLyQR6J1KT2iecmA4NQ58gQAiNkvStEjcZp/W9h1JDM1A==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@conventional-changelog/git-client": "^1.0.0",
- "conventional-changelog-preset-loader": "^5.0.0",
- "conventional-commits-filter": "^5.0.0",
- "conventional-commits-parser": "^6.0.0",
- "meow": "^13.0.0"
+ "concat-stream": "^2.0.0",
+ "conventional-changelog-preset-loader": "^4.0.0",
+ "conventional-commits-filter": "^4.0.0",
+ "conventional-commits-parser": "^5.0.0",
+ "git-raw-commits": "^4.0.0",
+ "git-semver-tags": "^6.0.0",
+ "meow": "^12.0.1"
},
"bin": {
- "conventional-recommended-bump": "dist/cli/index.js"
+ "conventional-recommended-bump": "cli.mjs"
},
"engines": {
- "node": ">=18"
- }
- },
- "node_modules/conventional-recommended-bump/node_modules/@conventional-changelog/git-client": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@conventional-changelog/git-client/-/git-client-1.0.1.tgz",
- "integrity": "sha512-PJEqBwAleffCMETaVm/fUgHldzBE35JFk3/9LL6NUA5EXa3qednu+UT6M7E5iBu3zIQZCULYIiZ90fBYHt6xUw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/semver": "^7.5.5",
- "semver": "^7.5.2"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "conventional-commits-filter": "^5.0.0",
- "conventional-commits-parser": "^6.0.0"
- },
- "peerDependenciesMeta": {
- "conventional-commits-filter": {
- "optional": true
- },
- "conventional-commits-parser": {
- "optional": true
- }
+ "node": ">=16"
}
},
"node_modules/conventional-recommended-bump/node_modules/conventional-commits-parser": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.1.0.tgz",
- "integrity": "sha512-5nxDo7TwKB5InYBl4ZC//1g9GRwB/F3TXOGR9hgUjMGfvSP4Vu5NkpNro2+1+TIEy1vwxApl5ircECr2ri5JIw==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz",
+ "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "meow": "^13.0.0"
+ "is-text-path": "^2.0.0",
+ "JSONStream": "^1.3.5",
+ "meow": "^12.0.1",
+ "split2": "^4.0.0"
},
"bin": {
- "conventional-commits-parser": "dist/cli/index.js"
+ "conventional-commits-parser": "cli.mjs"
},
"engines": {
- "node": ">=18"
+ "node": ">=16"
+ }
+ },
+ "node_modules/conventional-recommended-bump/node_modules/dargs": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/dargs/-/dargs-8.1.0.tgz",
+ "integrity": "sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/conventional-recommended-bump/node_modules/git-raw-commits": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-4.0.0.tgz",
+ "integrity": "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==",
+ "dev": true,
+ "dependencies": {
+ "dargs": "^8.0.0",
+ "meow": "^12.0.1",
+ "split2": "^4.0.0"
+ },
+ "bin": {
+ "git-raw-commits": "cli.mjs"
+ },
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/conventional-recommended-bump/node_modules/git-semver-tags": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-6.0.0.tgz",
+ "integrity": "sha512-v5BL6psuUy+Ftuo99141XlOIDoJtKw5+YyDANS7fknSP0iT4cVIanc3toDsH4K+VpIWc19l2/xkwQmXMfloeUA==",
+ "dev": true,
+ "dependencies": {
+ "meow": "^12.0.1",
+ "semver": "^7.5.2"
+ },
+ "bin": {
+ "git-semver-tags": "cli.mjs"
+ },
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/conventional-recommended-bump/node_modules/is-text-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz",
+ "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==",
+ "dev": true,
+ "dependencies": {
+ "text-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
"node_modules/conventional-recommended-bump/node_modules/meow": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz",
- "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==",
+ "version": "12.1.1",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz",
+ "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==",
"dev": true,
- "license": "MIT",
"engines": {
- "node": ">=18"
+ "node": ">=16.10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/conventional-recommended-bump/node_modules/split2": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
+ "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 10.x"
+ }
+ },
+ "node_modules/conventional-recommended-bump/node_modules/text-extensions": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz",
+ "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -4030,9 +4321,9 @@
"dev": true
},
"node_modules/cookie": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
- "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
+ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
"dev": true,
"engines": {
"node": ">= 0.6"
@@ -4085,9 +4376,9 @@
"dev": true
},
"node_modules/cross-spawn": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
- "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
"dev": true,
"dependencies": {
"path-key": "^3.1.0",
@@ -4098,6 +4389,33 @@
"node": ">= 8"
}
},
+ "node_modules/crypto-random-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz",
+ "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/crypto-random-string/node_modules/type-fest": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
+ "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/dargs": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz",
@@ -4108,11 +4426,10 @@
}
},
"node_modules/data-uri-to-buffer": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz",
- "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-5.0.1.tgz",
+ "integrity": "sha512-a9l6T1qqDogvvnw0nKlfZzqsyikEBZBClF39V3TFoKhDtGBqHu2HkuomJc02j5zft8zrUaXEuoicLeW54RkzPg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 14"
}
@@ -4167,12 +4484,48 @@
"node": ">=0.10.0"
}
},
+ "node_modules/decompress-response": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
+ "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
+ "dev": true,
+ "dependencies": {
+ "mimic-response": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/decompress-response/node_modules/mimic-response": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
+ "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/dedent": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
"integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==",
"dev": true
},
+ "node_modules/deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
"node_modules/deep-is": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
@@ -4189,41 +4542,32 @@
}
},
"node_modules/default-browser": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz",
- "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz",
+ "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "bundle-name": "^4.1.0",
- "default-browser-id": "^5.0.0"
+ "bundle-name": "^3.0.0",
+ "default-browser-id": "^3.0.0",
+ "execa": "^7.1.1",
+ "titleize": "^3.0.0"
},
"engines": {
- "node": ">=18"
+ "node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/default-browser-id": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz",
- "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/define-lazy-prop": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
- "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
+ "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz",
+ "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==",
"dev": true,
- "license": "MIT",
+ "dependencies": {
+ "bplist-parser": "^0.2.0",
+ "untildify": "^4.0.0"
+ },
"engines": {
"node": ">=12"
},
@@ -4231,19 +4575,170 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/defu": {
- "version": "6.1.4",
- "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz",
- "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==",
+ "node_modules/default-browser/node_modules/execa": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz",
+ "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==",
"dev": true,
- "license": "MIT"
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.1",
+ "human-signals": "^4.3.0",
+ "is-stream": "^3.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^5.1.0",
+ "onetime": "^6.0.0",
+ "signal-exit": "^3.0.7",
+ "strip-final-newline": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.18.0 || ^16.14.0 || >=18.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/default-browser/node_modules/human-signals": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
+ "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=14.18.0"
+ }
+ },
+ "node_modules/default-browser/node_modules/is-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
+ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/default-browser/node_modules/mimic-fn": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
+ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/default-browser/node_modules/npm-run-path": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz",
+ "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^4.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/default-browser/node_modules/onetime": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
+ "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
+ "dev": true,
+ "dependencies": {
+ "mimic-fn": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/default-browser/node_modules/path-key": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/default-browser/node_modules/strip-final-newline": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
+ "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/defaults": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
+ "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
+ "dev": true,
+ "dependencies": {
+ "clone": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/defer-to-connect": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
+ "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/define-lazy-prop": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
+ "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/define-properties": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
+ "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
+ "dev": true,
+ "dependencies": {
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
"node_modules/degenerator": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz",
"integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ast-types": "^0.13.4",
"escodegen": "^2.1.0",
@@ -4275,13 +4770,6 @@
"resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
"integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ=="
},
- "node_modules/destr": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz",
- "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/destroy": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
@@ -4355,32 +4843,11 @@
"node": ">=8"
}
},
- "node_modules/dotenv": {
- "version": "16.5.0",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz",
- "integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://dotenvx.com"
- }
- },
- "node_modules/dunder-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
- "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
- "dev": true,
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.1",
- "es-errors": "^1.3.0",
- "gopd": "^1.2.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
+ "node_modules/eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+ "dev": true
},
"node_modules/ee-first": {
"version": "1.1.1",
@@ -4413,9 +4880,9 @@
"dev": true
},
"node_modules/encodeurl": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
- "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
"dev": true,
"engines": {
"node": ">= 0.8"
@@ -4430,34 +4897,105 @@
"is-arrayish": "^0.2.1"
}
},
- "node_modules/es-define-property": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
- "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-errors": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
- "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-object-atoms": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
- "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
+ "node_modules/es-abstract": {
+ "version": "1.21.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.0.tgz",
+ "integrity": "sha512-GUGtW7eXQay0c+PRq0sGIKSdaBorfVqsCMhGHo4elP7YVqZu9nCZS4UkK4gv71gOWNMra/PaSKD3ao1oWExO0g==",
"dev": true,
"dependencies": {
- "es-errors": "^1.3.0"
+ "call-bind": "^1.0.2",
+ "es-set-tostringtag": "^2.0.0",
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "function.prototype.name": "^1.1.5",
+ "get-intrinsic": "^1.1.3",
+ "get-symbol-description": "^1.0.0",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
+ "has": "^1.0.3",
+ "has-property-descriptors": "^1.0.0",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.4",
+ "is-array-buffer": "^3.0.0",
+ "is-callable": "^1.2.7",
+ "is-negative-zero": "^2.0.2",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "is-string": "^1.0.7",
+ "is-typed-array": "^1.1.10",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.12.2",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.4.3",
+ "safe-regex-test": "^1.0.0",
+ "string.prototype.trimend": "^1.0.6",
+ "string.prototype.trimstart": "^1.0.6",
+ "typed-array-length": "^1.0.4",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.9"
},
"engines": {
"node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/es-array-method-boxes-properly": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz",
+ "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==",
+ "dev": true
+ },
+ "node_modules/es-get-iterator": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz",
+ "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.0",
+ "has-symbols": "^1.0.1",
+ "is-arguments": "^1.1.0",
+ "is-map": "^2.0.2",
+ "is-set": "^2.0.2",
+ "is-string": "^1.0.5",
+ "isarray": "^2.0.5"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/es-set-tostringtag": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.0.tgz",
+ "integrity": "sha512-vZVAIWss0FcR/+a08s6e2/GjGjjYBCZJXDrOnj6l5kJCKhQvJs4cnVqUxkVepIhqHbKHm3uwOvPb8lRcqA3DSg==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.1.3",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dev": true,
+ "dependencies": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/escalade": {
@@ -4469,6 +5007,18 @@
"node": ">=6"
}
},
+ "node_modules/escape-goat": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz",
+ "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
@@ -4492,7 +5042,6 @@
"resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz",
"integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==",
"dev": true,
- "license": "BSD-2-Clause",
"dependencies": {
"esprima": "^4.0.1",
"estraverse": "^5.2.0",
@@ -4514,7 +5063,6 @@
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
"integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
"dev": true,
- "license": "BSD-2-Clause",
"engines": {
"node": ">=4.0"
}
@@ -4758,19 +5306,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/eta": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/eta/-/eta-3.5.0.tgz",
- "integrity": "sha512-e3x3FBvGzeCIHhF+zhK8FZA2vC5uFn6b4HJjegUbIWrDb4mJ7JjTGMJY9VGIbRVpmSwHopNiaJibhjIr+HfLug==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.0.0"
- },
- "funding": {
- "url": "https://github.com/eta-dev/eta?sponsor=1"
- }
- },
"node_modules/etag": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
@@ -4829,37 +5364,37 @@
}
},
"node_modules/express": {
- "version": "4.21.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
- "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
+ "version": "4.18.2",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
+ "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
"dev": true,
"dependencies": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
- "body-parser": "1.20.3",
+ "body-parser": "1.20.1",
"content-disposition": "0.5.4",
"content-type": "~1.0.4",
- "cookie": "0.7.1",
+ "cookie": "0.5.0",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "2.0.0",
- "encodeurl": "~2.0.0",
+ "encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
- "finalhandler": "1.3.1",
+ "finalhandler": "1.2.0",
"fresh": "0.5.2",
"http-errors": "2.0.0",
- "merge-descriptors": "1.0.3",
+ "merge-descriptors": "1.0.1",
"methods": "~1.1.2",
"on-finished": "2.4.1",
"parseurl": "~1.3.3",
- "path-to-regexp": "0.1.12",
+ "path-to-regexp": "0.1.7",
"proxy-addr": "~2.0.7",
- "qs": "6.13.0",
+ "qs": "6.11.0",
"range-parser": "~1.2.1",
"safe-buffer": "5.2.1",
- "send": "0.19.0",
- "serve-static": "1.16.2",
+ "send": "0.18.0",
+ "serve-static": "1.15.0",
"setprototypeof": "1.2.0",
"statuses": "2.0.1",
"type-is": "~1.6.18",
@@ -4868,10 +5403,6 @@
},
"engines": {
"node": ">= 0.10.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/express"
}
},
"node_modules/express/node_modules/debug": {
@@ -4889,19 +5420,11 @@
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"dev": true
},
- "node_modules/exsolve": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.5.tgz",
- "integrity": "sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/external-editor": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
"integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
"dev": true,
- "license": "MIT",
"dependencies": {
"chardet": "^0.7.0",
"iconv-lite": "^0.4.24",
@@ -4911,22 +5434,6 @@
"node": ">=4"
}
},
- "node_modules/fast-content-type-parse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-2.0.1.tgz",
- "integrity": "sha512-nGqtvLrj5w0naR6tDPfB4cUmYCqouzyQiz6C5y/LtcDllJdrcc6WaWW6iXyIIOErTa/XRybj28aasdn4LkVk6Q==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/fastify"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/fastify"
- }
- ],
- "license": "MIT"
- },
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -4934,17 +5441,16 @@
"dev": true
},
"node_modules/fast-glob": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
- "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz",
+ "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
"glob-parent": "^5.1.2",
"merge2": "^1.3.0",
- "micromatch": "^4.0.8"
+ "micromatch": "^4.0.4"
},
"engines": {
"node": ">=8.6.0"
@@ -4992,6 +5498,57 @@
"bser": "2.1.1"
}
},
+ "node_modules/fetch-blob": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
+ "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/jimmywarting"
+ },
+ {
+ "type": "paypal",
+ "url": "https://paypal.me/jimmywarting"
+ }
+ ],
+ "dependencies": {
+ "node-domexception": "^1.0.0",
+ "web-streams-polyfill": "^3.0.3"
+ },
+ "engines": {
+ "node": "^12.20 || >= 14.13"
+ }
+ },
+ "node_modules/figures": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz",
+ "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==",
+ "dev": true,
+ "dependencies": {
+ "escape-string-regexp": "^5.0.0",
+ "is-unicode-supported": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/figures/node_modules/escape-string-regexp": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+ "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/file-entry-cache": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
@@ -5005,9 +5562,9 @@
}
},
"node_modules/fill-range": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
- "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true,
"dependencies": {
"to-regex-range": "^5.0.1"
@@ -5017,13 +5574,13 @@
}
},
"node_modules/finalhandler": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
- "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
+ "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
"dev": true,
"dependencies": {
"debug": "2.6.9",
- "encodeurl": "~2.0.0",
+ "encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"on-finished": "2.4.1",
"parseurl": "~1.3.3",
@@ -5065,19 +5622,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/find-up-simple": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.1.tgz",
- "integrity": "sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/flat-cache": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
@@ -5098,9 +5642,9 @@
"dev": true
},
"node_modules/follow-redirects": {
- "version": "1.15.6",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
- "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
+ "version": "1.15.4",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz",
+ "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==",
"funding": [
{
"type": "individual",
@@ -5116,6 +5660,15 @@
}
}
},
+ "node_modules/for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "dev": true,
+ "dependencies": {
+ "is-callable": "^1.1.3"
+ }
+ },
"node_modules/form-data": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
@@ -5129,6 +5682,27 @@
"node": ">= 6"
}
},
+ "node_modules/form-data-encoder": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz",
+ "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 14.17"
+ }
+ },
+ "node_modules/formdata-polyfill": {
+ "version": "4.0.10",
+ "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
+ "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
+ "dev": true,
+ "dependencies": {
+ "fetch-blob": "^3.1.2"
+ },
+ "engines": {
+ "node": ">=12.20.0"
+ }
+ },
"node_modules/forwarded": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
@@ -5181,9 +5755,33 @@
}
},
"node_modules/function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "node_modules/function.prototype.name": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
+ "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.0",
+ "functions-have-names": "^1.2.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
"dev": true,
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -5207,38 +5805,15 @@
"node": "6.* || 8.* || >= 10.*"
}
},
- "node_modules/get-east-asian-width": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz",
- "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/get-intrinsic": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
- "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
+ "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
"dev": true,
"dependencies": {
- "call-bind-apply-helpers": "^1.0.2",
- "es-define-property": "^1.0.1",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.1.1",
- "function-bind": "^1.1.2",
- "get-proto": "^1.0.1",
- "gopd": "^1.2.0",
- "has-symbols": "^1.1.0",
- "hasown": "^2.0.2",
- "math-intrinsics": "^1.1.0"
- },
- "engines": {
- "node": ">= 0.4"
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.3"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -5253,19 +5828,6 @@
"node": ">=8.0.0"
}
},
- "node_modules/get-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
- "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
- "dev": true,
- "dependencies": {
- "dunder-proto": "^1.0.1",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
"node_modules/get-stream": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
@@ -5278,37 +5840,67 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/get-uri": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.4.tgz",
- "integrity": "sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==",
+ "node_modules/get-symbol-description": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
+ "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-uri": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.1.tgz",
+ "integrity": "sha512-7ZqONUVqaabogsYNWlYj0t3YZaL6dhuEueZXGF+/YVmf6dHmaFg8/6psJKqhx9QykIDKzpGcy2cn4oV4YC7V/Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"basic-ftp": "^5.0.2",
- "data-uri-to-buffer": "^6.0.2",
- "debug": "^4.3.4"
+ "data-uri-to-buffer": "^5.0.1",
+ "debug": "^4.3.4",
+ "fs-extra": "^8.1.0"
},
"engines": {
"node": ">= 14"
}
},
- "node_modules/giget": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/giget/-/giget-2.0.0.tgz",
- "integrity": "sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==",
+ "node_modules/get-uri/node_modules/fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "citty": "^0.1.6",
- "consola": "^3.4.0",
- "defu": "^6.1.4",
- "node-fetch-native": "^1.6.6",
- "nypm": "^0.6.0",
- "pathe": "^2.0.3"
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
},
- "bin": {
- "giget": "dist/cli.mjs"
+ "engines": {
+ "node": ">=6 <7 || >=8"
+ }
+ },
+ "node_modules/get-uri/node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "dev": true,
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/get-uri/node_modules/universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4.0.0"
}
},
"node_modules/git-raw-commits": {
@@ -5331,98 +5923,50 @@
}
},
"node_modules/git-semver-tags": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-8.0.0.tgz",
- "integrity": "sha512-N7YRIklvPH3wYWAR2vysaqGLPRcpwQ0GKdlqTiVN5w1UmCdaeY3K8s6DMKRCh54DDdzyt/OAB6C8jgVtb7Y2Fg==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-7.0.1.tgz",
+ "integrity": "sha512-NY0ZHjJzyyNXHTDZmj+GG7PyuAKtMsyWSwh07CR2hOZFa+/yoTsXci/nF2obzL8UDhakFNkD9gNdt/Ed+cxh2Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@conventional-changelog/git-client": "^1.0.0",
- "meow": "^13.0.0"
- },
- "bin": {
- "git-semver-tags": "src/cli.js"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/git-semver-tags/node_modules/@conventional-changelog/git-client": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@conventional-changelog/git-client/-/git-client-1.0.1.tgz",
- "integrity": "sha512-PJEqBwAleffCMETaVm/fUgHldzBE35JFk3/9LL6NUA5EXa3qednu+UT6M7E5iBu3zIQZCULYIiZ90fBYHt6xUw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/semver": "^7.5.5",
+ "meow": "^12.0.1",
"semver": "^7.5.2"
},
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "conventional-commits-filter": "^5.0.0",
- "conventional-commits-parser": "^6.0.0"
- },
- "peerDependenciesMeta": {
- "conventional-commits-filter": {
- "optional": true
- },
- "conventional-commits-parser": {
- "optional": true
- }
- }
- },
- "node_modules/git-semver-tags/node_modules/conventional-commits-parser": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.1.0.tgz",
- "integrity": "sha512-5nxDo7TwKB5InYBl4ZC//1g9GRwB/F3TXOGR9hgUjMGfvSP4Vu5NkpNro2+1+TIEy1vwxApl5ircECr2ri5JIw==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "peer": true,
- "dependencies": {
- "meow": "^13.0.0"
- },
"bin": {
- "conventional-commits-parser": "dist/cli/index.js"
+ "git-semver-tags": "cli.mjs"
},
"engines": {
- "node": ">=18"
+ "node": ">=16"
}
},
"node_modules/git-semver-tags/node_modules/meow": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz",
- "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==",
+ "version": "12.1.1",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz",
+ "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==",
"dev": true,
- "license": "MIT",
"engines": {
- "node": ">=18"
+ "node": ">=16.10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/git-up": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/git-up/-/git-up-8.1.1.tgz",
- "integrity": "sha512-FDenSF3fVqBYSaJoYy1KSc2wosx0gCvKP+c+PRBht7cAaiCeQlBtfBDX9vgnNOHmdePlSFITVcn4pFfcgNvx3g==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz",
+ "integrity": "sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"is-ssh": "^1.4.0",
- "parse-url": "^9.2.0"
+ "parse-url": "^8.1.0"
}
},
"node_modules/git-url-parse": {
- "version": "16.1.0",
- "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-16.1.0.tgz",
- "integrity": "sha512-cPLz4HuK86wClEW7iDdeAKcCVlWXmrLpb2L+G9goW0Z1dtpNS6BXXSOckUTlJT/LDQViE1QZKstNORzHsLnobw==",
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-13.1.0.tgz",
+ "integrity": "sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "git-up": "^8.1.0"
+ "git-up": "^7.0.0"
}
},
"node_modules/glob": {
@@ -5484,6 +6028,21 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/globalthis": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
+ "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
+ "dev": true,
+ "dependencies": {
+ "define-properties": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/globby": {
"version": "11.1.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
@@ -5505,22 +6064,46 @@
}
},
"node_modules/gopd": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
- "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
"dev": true,
- "engines": {
- "node": ">= 0.4"
+ "dependencies": {
+ "get-intrinsic": "^1.1.3"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/got": {
+ "version": "12.6.1",
+ "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz",
+ "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==",
+ "dev": true,
+ "dependencies": {
+ "@sindresorhus/is": "^5.2.0",
+ "@szmarczak/http-timer": "^5.0.1",
+ "cacheable-lookup": "^7.0.0",
+ "cacheable-request": "^10.2.8",
+ "decompress-response": "^6.0.0",
+ "form-data-encoder": "^2.1.2",
+ "get-stream": "^6.0.1",
+ "http2-wrapper": "^2.1.10",
+ "lowercase-keys": "^3.0.0",
+ "p-cancelable": "^3.0.0",
+ "responselike": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/got?sponsor=1"
+ }
+ },
"node_modules/graceful-fs": {
- "version": "4.2.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
- "license": "ISC"
+ "version": "4.2.10",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
},
"node_modules/grapheme-splitter": {
"version": "1.0.4",
@@ -5533,7 +6116,6 @@
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
"integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"minimist": "^1.2.5",
"neo-async": "^2.6.2",
@@ -5571,6 +6153,15 @@
"node": ">= 0.4.0"
}
},
+ "node_modules/has-bigints": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -5580,10 +6171,22 @@
"node": ">=8"
}
},
- "node_modules/has-symbols": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
- "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
+ "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.1.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
+ "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
"dev": true,
"engines": {
"node": ">= 0.4"
@@ -5592,16 +6195,43 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/hasown": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "node_modules/has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-tostringtag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
+ "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
"dev": true,
"dependencies": {
- "function-bind": "^1.1.2"
+ "has-symbols": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-yarn": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz",
+ "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/hosted-git-info": {
@@ -5622,6 +6252,12 @@
"integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
"dev": true
},
+ "node_modules/http-cache-semantics": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
+ "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==",
+ "dev": true
+ },
"node_modules/http-errors": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
@@ -5639,11 +6275,10 @@
}
},
"node_modules/http-proxy-agent": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
- "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz",
+ "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"agent-base": "^7.1.0",
"debug": "^4.3.4"
@@ -5652,19 +6287,43 @@
"node": ">= 14"
}
},
+ "node_modules/http2-wrapper": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz",
+ "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==",
+ "dev": true,
+ "dependencies": {
+ "quick-lru": "^5.1.1",
+ "resolve-alpn": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=10.19.0"
+ }
+ },
+ "node_modules/http2-wrapper/node_modules/quick-lru": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
+ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/https": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz",
"integrity": "sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg=="
},
"node_modules/https-proxy-agent": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
- "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.1.tgz",
+ "integrity": "sha512-Eun8zV0kcYS1g19r78osiQLEFIRspRUDd9tIfBCTBPBeMieF/EsJNL8VI3xOIdYRDEkjQnqOYPsZ2DsWsVsFwQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "agent-base": "^7.1.2",
+ "agent-base": "^7.0.2",
"debug": "4"
},
"engines": {
@@ -5707,6 +6366,26 @@
"node": ">=0.10.0"
}
},
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
"node_modules/ignore": {
"version": "5.2.4",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
@@ -5732,6 +6411,15 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/import-lazy": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz",
+ "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/import-local": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
@@ -5769,19 +6457,6 @@
"node": ">=8"
}
},
- "node_modules/index-to-position": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-1.1.0.tgz",
- "integrity": "sha512-XPdx9Dq4t9Qk1mTMbWONJqU7boCoumEH7fRET37HX5+khDUl3J2W6PdALxhILYlIYx2amlwYcRPp28p0tSiojg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -5805,52 +6480,212 @@
"dev": true
},
"node_modules/inquirer": {
- "version": "12.6.0",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-12.6.0.tgz",
- "integrity": "sha512-3zmmccQd/8o65nPOZJZ+2wqt76Ghw3+LaMrmc6JE/IzcvQhJ1st+QLCOo/iLS85/tILU0myG31a2TAZX0ysAvg==",
+ "version": "9.2.8",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.8.tgz",
+ "integrity": "sha512-SJ0fVfgIzZL1AD6WvFhivlh5/3hN6WeAvpvPrpPXH/8MOcQHeXhinmSm5CDJNRC2Q+sLh9YJ5k8F8/5APMXSfw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@inquirer/core": "^10.1.10",
- "@inquirer/prompts": "^7.5.0",
- "@inquirer/type": "^3.0.6",
"ansi-escapes": "^4.3.2",
- "mute-stream": "^2.0.0",
+ "chalk": "^5.3.0",
+ "cli-cursor": "^3.1.0",
+ "cli-width": "^4.0.0",
+ "external-editor": "^3.0.3",
+ "figures": "^5.0.0",
+ "lodash": "^4.17.21",
+ "mute-stream": "1.0.0",
+ "ora": "^5.4.1",
"run-async": "^3.0.0",
- "rxjs": "^7.8.2"
+ "rxjs": "^7.8.1",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1",
+ "through": "^2.3.6",
+ "wrap-ansi": "^6.0.1"
},
"engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@types/node": ">=18"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- }
+ "node": ">=14.18.0"
}
},
- "node_modules/ip-address": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz",
- "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==",
+ "node_modules/inquirer/node_modules/bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "jsbn": "1.1.0",
- "sprintf-js": "^1.1.3"
- },
- "engines": {
- "node": ">= 12"
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
}
},
- "node_modules/ip-address/node_modules/sprintf-js": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
- "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
+ "node_modules/inquirer/node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
"dev": true,
- "license": "BSD-3-Clause"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "node_modules/inquirer/node_modules/chalk": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
+ "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
+ "dev": true,
+ "engines": {
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/inquirer/node_modules/is-interactive": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
+ "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/inquirer/node_modules/is-unicode-supported": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/inquirer/node_modules/log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/inquirer/node_modules/log-symbols/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/inquirer/node_modules/ora": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
+ "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
+ "dev": true,
+ "dependencies": {
+ "bl": "^4.1.0",
+ "chalk": "^4.1.0",
+ "cli-cursor": "^3.1.0",
+ "cli-spinners": "^2.5.0",
+ "is-interactive": "^1.0.0",
+ "is-unicode-supported": "^0.1.0",
+ "log-symbols": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "wcwidth": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/inquirer/node_modules/ora/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/inquirer/node_modules/wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/internal-slot": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz",
+ "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.1.3",
+ "has": "^1.0.3",
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/interpret": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
+ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/ip": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz",
+ "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==",
+ "dev": true
},
"node_modules/ipaddr.js": {
"version": "1.9.1",
@@ -5861,12 +6696,53 @@
"node": ">= 0.10"
}
},
+ "node_modules/is-arguments": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
+ "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-array-buffer": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.0.tgz",
+ "integrity": "sha512-TI2hnvT6dPUnn/jARFCJBKL1eeabAfLnKZ2lmW5Uh317s1Ii2IMroL1yMciEk/G+OETykVzlsH6x/L4q/avhgw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
"integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
"dev": true
},
+ "node_modules/is-bigint": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "dev": true,
+ "dependencies": {
+ "has-bigints": "^1.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-binary-path": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
@@ -5879,6 +6755,46 @@
"node": ">=8"
}
},
+ "node_modules/is-boolean-object": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
+ "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-ci": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz",
+ "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==",
+ "dev": true,
+ "dependencies": {
+ "ci-info": "^3.2.0"
+ },
+ "bin": {
+ "is-ci": "bin.js"
+ }
+ },
"node_modules/is-core-module": {
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
@@ -5891,12 +6807,26 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-date-object": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
+ "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "dev": true,
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-docker": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
"integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
"dev": true,
- "license": "MIT",
"bin": {
"is-docker": "cli.js"
},
@@ -5951,7 +6881,6 @@
"resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
"integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"is-docker": "^3.0.0"
},
@@ -5965,12 +6894,51 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/is-installed-globally": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz",
+ "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==",
+ "dev": true,
+ "dependencies": {
+ "global-dirs": "^3.0.0",
+ "is-path-inside": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-installed-globally/node_modules/global-dirs": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz",
+ "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==",
+ "dev": true,
+ "dependencies": {
+ "ini": "2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-installed-globally/node_modules/ini": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
+ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/is-interactive": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz",
"integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -5978,6 +6946,39 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/is-map": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
+ "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-negative-zero": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
+ "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-npm": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz",
+ "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==",
+ "dev": true,
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
@@ -5987,6 +6988,21 @@
"node": ">=0.12.0"
}
},
+ "node_modules/is-number-object": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+ "dev": true,
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-obj": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
@@ -6022,12 +7038,48 @@
"node": ">=0.10.0"
}
},
- "node_modules/is-ssh": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.1.tgz",
- "integrity": "sha512-JNeu1wQsHjyHgn9NcWTaXq6zWSR6hqE0++zhfZlkFBbScNkyvxCdeV8sRkSBaeLKxmbpR21brail63ACNxJ0Tg==",
+ "node_modules/is-regex": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-set": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz",
+ "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-shared-array-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-ssh": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz",
+ "integrity": "sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"protocols": "^2.0.1"
}
@@ -6044,6 +7096,36 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "dev": true,
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-symbol": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
+ "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+ "dev": true,
+ "dependencies": {
+ "has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-text-path": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz",
@@ -6056,35 +7138,97 @@
"node": ">=0.10.0"
}
},
- "node_modules/is-unicode-supported": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz",
- "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==",
+ "node_modules/is-typed-array": {
+ "version": "1.1.10",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz",
+ "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==",
"dev": true,
- "license": "MIT",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0"
+ },
"engines": {
- "node": ">=18"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
+ "dev": true
+ },
+ "node_modules/is-unicode-supported": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz",
+ "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/is-wsl": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz",
- "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==",
+ "node_modules/is-weakref": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
+ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "is-inside-container": "^1.0.0"
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "dev": true,
+ "dependencies": {
+ "is-docker": "^2.0.0"
},
"engines": {
- "node": ">=16"
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-wsl/node_modules/is-docker": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
+ "dev": true,
+ "bin": {
+ "is-docker": "cli.js"
+ },
+ "engines": {
+ "node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/is-yarn-global": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz",
+ "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "dev": true
+ },
"node_modules/isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
@@ -6092,11 +7236,10 @@
"dev": true
},
"node_modules/issue-parser": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-7.0.1.tgz",
- "integrity": "sha512-3YZcUUR2Wt1WsapF+S/WiA2WmlW0cWAoPccMqne7AxEBhCdFeTPjfv/Axb8V2gyCgY3nRw+ksZ3xSUX+R47iAg==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-6.0.0.tgz",
+ "integrity": "sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"lodash.capitalize": "^4.2.1",
"lodash.escaperegexp": "^4.1.2",
@@ -6105,7 +7248,7 @@
"lodash.uniqby": "^4.7.0"
},
"engines": {
- "node": "^18.17 || >=20.6.1"
+ "node": ">=10.13"
}
},
"node_modules/istanbul-lib-coverage": {
@@ -6183,6 +7326,28 @@
"node": ">=8"
}
},
+ "node_modules/iterate-iterator": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.2.tgz",
+ "integrity": "sha512-t91HubM4ZDQ70M9wqp+pcNpu8OyJ9UAtXntT/Bcsvp5tZMnz9vRa+IunKXeI8AnfZMTv0jNuVEmGeLSMjVvfPw==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/iterate-value": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz",
+ "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==",
+ "dev": true,
+ "dependencies": {
+ "es-get-iterator": "^1.0.2",
+ "iterate-iterator": "^1.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/jest": {
"version": "29.5.0",
"resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz",
@@ -6753,16 +7918,6 @@
"url": "https://github.com/chalk/supports-color?sponsor=1"
}
},
- "node_modules/jiti": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz",
- "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "jiti": "lib/jiti-cli.mjs"
- }
- },
"node_modules/js-sdsl": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz",
@@ -6791,13 +7946,6 @@
"js-yaml": "bin/js-yaml.js"
}
},
- "node_modules/jsbn": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz",
- "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/jsesc": {
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
@@ -6810,6 +7958,12 @@
"node": ">=4"
}
},
+ "node_modules/json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true
+ },
"node_modules/json-parse-even-better-errors": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
@@ -6882,6 +8036,15 @@
"node": "*"
}
},
+ "node_modules/keyv": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz",
+ "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==",
+ "dev": true,
+ "dependencies": {
+ "json-buffer": "3.0.1"
+ }
+ },
"node_modules/kind-of": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
@@ -6900,6 +8063,21 @@
"node": ">=6"
}
},
+ "node_modules/latest-version": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz",
+ "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==",
+ "dev": true,
+ "dependencies": {
+ "package-json": "^8.1.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/leven": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
@@ -6959,23 +8137,13 @@
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz",
"integrity": "sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/lodash.escaperegexp": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz",
"integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/lodash.get": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
- "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
- "deprecated": "This package is deprecated. Use the optional chaining (?.) operator instead.",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/lodash.isfunction": {
"version": "3.0.9",
@@ -6993,8 +8161,7 @@
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
"integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/lodash.kebabcase": {
"version": "4.1.1",
@@ -7042,8 +8209,7 @@
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz",
"integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/lodash.upperfirst": {
"version": "4.3.1",
@@ -7052,28 +8218,26 @@
"dev": true
},
"node_modules/log-symbols": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz",
- "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz",
+ "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "chalk": "^5.3.0",
- "is-unicode-supported": "^1.3.0"
+ "chalk": "^5.0.0",
+ "is-unicode-supported": "^1.1.0"
},
"engines": {
- "node": ">=18"
+ "node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/log-symbols/node_modules/chalk": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz",
- "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
+ "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
"dev": true,
- "license": "MIT",
"engines": {
"node": "^12.17.0 || ^14.13 || >=16.0.0"
},
@@ -7081,14 +8245,13 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/log-symbols/node_modules/is-unicode-supported": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz",
- "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==",
+ "node_modules/lowercase-keys": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz",
+ "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==",
"dev": true,
- "license": "MIT",
"engines": {
- "node": ">=12"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -7107,11 +8270,10 @@
}
},
"node_modules/macos-release": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-3.3.0.tgz",
- "integrity": "sha512-tPJQ1HeyiU2vRruNGhZ+VleWuMQRro8iFtJxYgnS4NQe+EukKF6aGiIT+7flZhISAt2iaXBCfFGvAyif7/f8nQ==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-3.2.0.tgz",
+ "integrity": "sha512-fSErXALFNsnowREYZ49XCdOHF8wOPWuFOGQrAhP7x5J/BqQv+B02cNsTykGpDgRVx43EKg++6ANmTaGTtW+hUA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
@@ -7170,15 +8332,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/math-intrinsics": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
- "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- }
- },
"node_modules/media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
@@ -7235,13 +8388,10 @@
}
},
"node_modules/merge-descriptors": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
- "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==",
+ "dev": true
},
"node_modules/merge-stream": {
"version": "2.0.0",
@@ -7268,12 +8418,12 @@
}
},
"node_modules/micromatch": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
- "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
"dev": true,
"dependencies": {
- "braces": "^3.0.3",
+ "braces": "^3.0.2",
"picomatch": "^2.3.1"
},
"engines": {
@@ -7320,14 +8470,13 @@
"node": ">=6"
}
},
- "node_modules/mimic-function": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz",
- "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==",
+ "node_modules/mimic-response": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz",
+ "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==",
"dev": true,
- "license": "MIT",
"engines": {
- "node": ">=18"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -7383,13 +8532,12 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/mute-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz",
- "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz",
+ "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==",
"dev": true,
- "license": "ISC",
"engines": {
- "node": "^18.17.0 || >=20.5.0"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
"node_modules/mylas": {
@@ -7430,15 +8578,13 @@
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/netmask": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz",
"integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 0.4.0"
}
@@ -7448,7 +8594,6 @@
"resolved": "https://registry.npmjs.org/new-github-release-url/-/new-github-release-url-2.0.0.tgz",
"integrity": "sha512-NHDDGYudnvRutt/VhKFlX26IotXe1w0cmkDm6JGquh5bz/bDTw0LufSmH/GxTjEdpHEO+bVKFTwdrcGa/9XlKQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"type-fest": "^2.5.1"
},
@@ -7464,7 +8609,6 @@
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
"integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
"dev": true,
- "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=12.20"
},
@@ -7487,6 +8631,25 @@
"node": ">= 10.13"
}
},
+ "node_modules/node-domexception": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
+ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/jimmywarting"
+ },
+ {
+ "type": "github",
+ "url": "https://paypal.me/jimmywarting"
+ }
+ ],
+ "engines": {
+ "node": ">=10.5.0"
+ }
+ },
"node_modules/node-fetch": {
"version": "2.6.7",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
@@ -7506,13 +8669,6 @@
}
}
},
- "node_modules/node-fetch-native": {
- "version": "1.6.6",
- "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.6.tgz",
- "integrity": "sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/node-int64": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
@@ -7549,6 +8705,18 @@
"node": ">=0.10.0"
}
},
+ "node_modules/normalize-url": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz",
+ "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==",
+ "dev": true,
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/npm-run-path": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
@@ -7561,38 +8729,35 @@
"node": ">=8"
}
},
- "node_modules/nypm": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.6.0.tgz",
- "integrity": "sha512-mn8wBFV9G9+UFHIrq+pZ2r2zL4aPau/by3kJb3cM7+5tQHMt6HGQB8FDIeKFYp8o0D2pnH6nVsO88N4AmUxIWg==",
+ "node_modules/object-inspect": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
+ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
"dev": true,
- "license": "MIT",
- "dependencies": {
- "citty": "^0.1.6",
- "consola": "^3.4.0",
- "pathe": "^2.0.3",
- "pkg-types": "^2.0.0",
- "tinyexec": "^0.3.2"
- },
- "bin": {
- "nypm": "dist/cli.mjs"
- },
- "engines": {
- "node": "^14.16.0 || >=16.10.0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/nypm/node_modules/tinyexec": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz",
- "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==",
+ "node_modules/object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
"dev": true,
- "license": "MIT"
+ "engines": {
+ "node": ">= 0.4"
+ }
},
- "node_modules/object-inspect": {
- "version": "1.13.4",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
- "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
+ "node_modules/object.assign": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
+ "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
"dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "has-symbols": "^1.0.3",
+ "object-keys": "^1.1.1"
+ },
"engines": {
"node": ">= 0.4"
},
@@ -7600,13 +8765,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ohash": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz",
- "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/on-finished": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
@@ -7643,19 +8801,18 @@
}
},
"node_modules/open": {
- "version": "10.1.2",
- "resolved": "https://registry.npmjs.org/open/-/open-10.1.2.tgz",
- "integrity": "sha512-cxN6aIDPz6rm8hbebcP7vrQNhvRcveZoJU72Y7vskh4oIm+BZwBECnx5nTmrlres1Qapvx27Qo1Auukpf8PKXw==",
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz",
+ "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "default-browser": "^5.2.1",
+ "default-browser": "^4.0.0",
"define-lazy-prop": "^3.0.0",
"is-inside-container": "^1.0.0",
- "is-wsl": "^3.1.0"
+ "is-wsl": "^2.2.0"
},
"engines": {
- "node": ">=18"
+ "node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -7679,35 +8836,33 @@
}
},
"node_modules/ora": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/ora/-/ora-8.2.0.tgz",
- "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==",
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-6.3.1.tgz",
+ "integrity": "sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "chalk": "^5.3.0",
- "cli-cursor": "^5.0.0",
- "cli-spinners": "^2.9.2",
+ "chalk": "^5.0.0",
+ "cli-cursor": "^4.0.0",
+ "cli-spinners": "^2.6.1",
"is-interactive": "^2.0.0",
- "is-unicode-supported": "^2.0.0",
- "log-symbols": "^6.0.0",
- "stdin-discarder": "^0.2.2",
- "string-width": "^7.2.0",
- "strip-ansi": "^7.1.0"
+ "is-unicode-supported": "^1.1.0",
+ "log-symbols": "^5.1.0",
+ "stdin-discarder": "^0.1.0",
+ "strip-ansi": "^7.0.1",
+ "wcwidth": "^1.0.1"
},
"engines": {
- "node": ">=18"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/ora/node_modules/ansi-regex": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
- "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -7716,11 +8871,10 @@
}
},
"node_modules/ora/node_modules/chalk": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz",
- "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
+ "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
"dev": true,
- "license": "MIT",
"engines": {
"node": "^12.17.0 || ^14.13 || >=16.0.0"
},
@@ -7728,26 +8882,32 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/ora/node_modules/emoji-regex": {
- "version": "10.4.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz",
- "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==",
+ "node_modules/ora/node_modules/cli-cursor": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz",
+ "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==",
"dev": true,
- "license": "MIT"
- },
- "node_modules/ora/node_modules/string-width": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
- "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==",
- "dev": true,
- "license": "MIT",
"dependencies": {
- "emoji-regex": "^10.3.0",
- "get-east-asian-width": "^1.0.0",
- "strip-ansi": "^7.1.0"
+ "restore-cursor": "^4.0.0"
},
"engines": {
- "node": ">=18"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ora/node_modules/restore-cursor": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz",
+ "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==",
+ "dev": true,
+ "dependencies": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -7758,7 +8918,6 @@
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
"integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ansi-regex": "^6.0.1"
},
@@ -7770,17 +8929,16 @@
}
},
"node_modules/os-name": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/os-name/-/os-name-6.0.0.tgz",
- "integrity": "sha512-bv608E0UX86atYi2GMGjDe0vF/X1TJjemNS8oEW6z22YW1Rc3QykSYoGfkQbX0zZX9H0ZB6CQP/3GTf1I5hURg==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/os-name/-/os-name-5.1.0.tgz",
+ "integrity": "sha512-YEIoAnM6zFmzw3PQ201gCVCIWbXNyKObGlVvpAVvraAeOHnlYVKFssbA/riRX5R40WA6kKrZ7Dr7dWzO3nKSeQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "macos-release": "^3.2.0",
- "windows-release": "^6.0.0"
+ "macos-release": "^3.1.0",
+ "windows-release": "^5.0.1"
},
"engines": {
- "node": ">=18"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -7791,11 +8949,19 @@
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
"integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
+ "node_modules/p-cancelable": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz",
+ "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12.20"
+ }
+ },
"node_modules/p-limit": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
@@ -7836,20 +9002,19 @@
}
},
"node_modules/pac-proxy-agent": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz",
- "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.0.tgz",
+ "integrity": "sha512-t4tRAMx0uphnZrio0S0Jw9zg3oDbz1zVhQ/Vy18FjLfP1XOLNUEjaVxYCYRI6NS+BsMBXKIzV6cTLOkO9AtywA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@tootallnate/quickjs-emscripten": "^0.23.0",
- "agent-base": "^7.1.2",
+ "agent-base": "^7.0.2",
"debug": "^4.3.4",
"get-uri": "^6.0.1",
"http-proxy-agent": "^7.0.0",
- "https-proxy-agent": "^7.0.6",
- "pac-resolver": "^7.0.1",
- "socks-proxy-agent": "^8.0.5"
+ "https-proxy-agent": "^7.0.0",
+ "pac-resolver": "^7.0.0",
+ "socks-proxy-agent": "^8.0.1"
},
"engines": {
"node": ">= 14"
@@ -7860,7 +9025,6 @@
"resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz",
"integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"degenerator": "^5.0.0",
"netmask": "^2.0.2"
@@ -7869,6 +9033,24 @@
"node": ">= 14"
}
},
+ "node_modules/package-json": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.0.tgz",
+ "integrity": "sha512-hySwcV8RAWeAfPsXb9/HGSPn8lwDnv6fabH+obUZKX169QknRkRhPxd1yMubpKDskLFATkl3jHpNtVtDPFA0Wg==",
+ "dev": true,
+ "dependencies": {
+ "got": "^12.1.0",
+ "registry-auth-token": "^5.0.1",
+ "registry-url": "^6.0.0",
+ "semver": "^7.3.7"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -7900,27 +9082,21 @@
}
},
"node_modules/parse-path": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.1.0.tgz",
- "integrity": "sha512-EuCycjZtfPcjWk7KTksnJ5xPMvWGA/6i4zrLYhRG0hGvC3GPU/jGUj3Cy+ZR0v30duV3e23R95T1lE2+lsndSw==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.0.0.tgz",
+ "integrity": "sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==",
"dev": true,
- "license": "MIT",
"dependencies": {
"protocols": "^2.0.0"
}
},
"node_modules/parse-url": {
- "version": "9.2.0",
- "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-9.2.0.tgz",
- "integrity": "sha512-bCgsFI+GeGWPAvAiUv63ZorMeif3/U0zaXABGJbOWt5OH2KCaPHF6S+0ok4aqM9RuIPGyZdx9tR9l13PsW4AYQ==",
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-8.1.0.tgz",
+ "integrity": "sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@types/parse-path": "^7.0.0",
"parse-path": "^7.0.0"
- },
- "engines": {
- "node": ">=14.13.0"
}
},
"node_modules/parseurl": {
@@ -7966,9 +9142,9 @@
"dev": true
},
"node_modules/path-to-regexp": {
- "version": "0.1.12",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
- "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==",
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==",
"dev": true
},
"node_modules/path-type": {
@@ -7980,20 +9156,6 @@
"node": ">=8"
}
},
- "node_modules/pathe": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
- "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/perfect-debounce": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz",
- "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
@@ -8085,18 +9247,6 @@
"node": ">=8"
}
},
- "node_modules/pkg-types": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.1.0.tgz",
- "integrity": "sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "confbox": "^0.2.1",
- "exsolve": "^1.0.1",
- "pathe": "^2.0.3"
- }
- },
"node_modules/plimit-lit": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/plimit-lit/-/plimit-lit-1.5.0.tgz",
@@ -8141,6 +9291,26 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
+ "node_modules/promise.allsettled": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.6.tgz",
+ "integrity": "sha512-22wJUOD3zswWFqgwjNHa1965LvqTX87WPu/lreY2KSd7SVcERfuZ4GfUaOnJNnvtoIv2yXT/W00YIGMetXtFXg==",
+ "dev": true,
+ "dependencies": {
+ "array.prototype.map": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "get-intrinsic": "^1.1.3",
+ "iterate-value": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/prompts": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
@@ -8163,12 +9333,17 @@
"node": ">= 8"
}
},
+ "node_modules/proto-list": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
+ "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==",
+ "dev": true
+ },
"node_modules/protocols": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.2.tgz",
- "integrity": "sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==",
- "dev": true,
- "license": "MIT"
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz",
+ "integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==",
+ "dev": true
},
"node_modules/proxy-addr": {
"version": "2.0.7",
@@ -8184,20 +9359,19 @@
}
},
"node_modules/proxy-agent": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz",
- "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==",
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.0.tgz",
+ "integrity": "sha512-0LdR757eTj/JfuU7TL2YCuAZnxWXu3tkJbg4Oq3geW/qFNT/32T0sp2HnZ9O0lMR4q3vwAt0+xCA8SR0WAD0og==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "agent-base": "^7.1.2",
+ "agent-base": "^7.0.2",
"debug": "^4.3.4",
- "http-proxy-agent": "^7.0.1",
- "https-proxy-agent": "^7.0.6",
+ "http-proxy-agent": "^7.0.0",
+ "https-proxy-agent": "^7.0.0",
"lru-cache": "^7.14.1",
- "pac-proxy-agent": "^7.1.0",
+ "pac-proxy-agent": "^7.0.0",
"proxy-from-env": "^1.1.0",
- "socks-proxy-agent": "^8.0.5"
+ "socks-proxy-agent": "^8.0.1"
},
"engines": {
"node": ">= 14"
@@ -8208,7 +9382,6 @@
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
"integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
"dev": true,
- "license": "ISC",
"engines": {
"node": ">=12"
}
@@ -8227,6 +9400,21 @@
"node": ">=6"
}
},
+ "node_modules/pupa": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz",
+ "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==",
+ "dev": true,
+ "dependencies": {
+ "escape-goat": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12.20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/pure-rand": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.2.tgz",
@@ -8254,12 +9442,12 @@
}
},
"node_modules/qs": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
- "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
+ "version": "6.11.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
+ "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
"dev": true,
"dependencies": {
- "side-channel": "^1.0.6"
+ "side-channel": "^1.0.4"
},
"engines": {
"node": ">=0.6"
@@ -8313,9 +9501,9 @@
}
},
"node_modules/raw-body": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
- "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
+ "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
"dev": true,
"dependencies": {
"bytes": "3.1.2",
@@ -8327,15 +9515,28 @@
"node": ">= 0.8"
}
},
- "node_modules/rc9": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/rc9/-/rc9-2.1.2.tgz",
- "integrity": "sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==",
+ "node_modules/rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "defu": "^6.1.4",
- "destr": "^2.0.3"
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "bin": {
+ "rc": "cli.js"
+ }
+ },
+ "node_modules/rc/node_modules/strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
}
},
"node_modules/react-is": {
@@ -8344,110 +9545,6 @@
"integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==",
"dev": true
},
- "node_modules/read-package-up": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/read-package-up/-/read-package-up-11.0.0.tgz",
- "integrity": "sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "find-up-simple": "^1.0.0",
- "read-pkg": "^9.0.0",
- "type-fest": "^4.6.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/read-package-up/node_modules/hosted-git-info": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz",
- "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "lru-cache": "^10.0.1"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/read-package-up/node_modules/lru-cache": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/read-package-up/node_modules/normalize-package-data": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz",
- "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "hosted-git-info": "^7.0.0",
- "semver": "^7.3.5",
- "validate-npm-package-license": "^3.0.4"
- },
- "engines": {
- "node": "^16.14.0 || >=18.0.0"
- }
- },
- "node_modules/read-package-up/node_modules/parse-json": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.3.0.tgz",
- "integrity": "sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.26.2",
- "index-to-position": "^1.1.0",
- "type-fest": "^4.39.1"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/read-package-up/node_modules/read-pkg": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz",
- "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/normalize-package-data": "^2.4.3",
- "normalize-package-data": "^6.0.0",
- "parse-json": "^8.0.0",
- "type-fest": "^4.6.0",
- "unicorn-magic": "^0.1.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/read-package-up/node_modules/type-fest": {
- "version": "4.39.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.39.1.tgz",
- "integrity": "sha512-uW9qzd66uyHYxwyVBYiwS4Oi0qZyUqwjU+Oevr6ZogYiXt99EOYtwvzMSLw1c3lYo2HzJsep/NB23iEVEgjG/w==",
- "dev": true,
- "license": "(MIT OR CC0-1.0)",
- "engines": {
- "node": ">=16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/read-pkg": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
@@ -8603,6 +9700,18 @@
"node": ">=8.10.0"
}
},
+ "node_modules/rechoir": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+ "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==",
+ "dev": true,
+ "dependencies": {
+ "resolve": "^1.1.6"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
"node_modules/redent": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
@@ -8616,6 +9725,23 @@
"node": ">=8"
}
},
+ "node_modules/regexp.prototype.flags": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
+ "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "functions-have-names": "^1.2.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/regexpp": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
@@ -8628,171 +9754,362 @@
"url": "https://github.com/sponsors/mysticatea"
}
},
- "node_modules/release-it": {
- "version": "19.0.2",
- "resolved": "https://registry.npmjs.org/release-it/-/release-it-19.0.2.tgz",
- "integrity": "sha512-tGRCcKeXNOMrK9Qe+ZIgQiMlQgjV8PLxZjTq1XGlCk5u1qPgx+Pps0i8HIt667FDt0wLjFtvn5o9ItpitKnVUA==",
+ "node_modules/registry-auth-token": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.1.tgz",
+ "integrity": "sha512-UfxVOj8seK1yaIOiieV4FIP01vfBDLsY0H9sQzi9EbbUdJiuuBjJgLa1DpImXMNPnVkBD4eVxTEXcrZA6kfpJA==",
"dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/webpro"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/webpro"
- }
- ],
- "license": "MIT",
"dependencies": {
- "@nodeutils/defaults-deep": "1.1.0",
- "@octokit/rest": "21.1.1",
- "@phun-ky/typeof": "1.2.8",
+ "@pnpm/npm-conf": "^1.0.4"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/registry-url": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz",
+ "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==",
+ "dev": true,
+ "dependencies": {
+ "rc": "1.2.8"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/release-it": {
+ "version": "16.1.3",
+ "resolved": "https://registry.npmjs.org/release-it/-/release-it-16.1.3.tgz",
+ "integrity": "sha512-NoK3gxOcAtnmp9tz9pbq+IgMFTaPly/B8FWzKObOAGDl5BAC5BDcbWqr3lXyjlLqI+vd/NtO6tQIduIlpNLALg==",
+ "dev": true,
+ "dependencies": {
+ "@iarna/toml": "2.2.5",
+ "@octokit/rest": "19.0.13",
"async-retry": "1.3.3",
- "c12": "3.0.3",
- "ci-info": "^4.2.0",
- "eta": "3.5.0",
- "git-url-parse": "16.1.0",
- "inquirer": "12.6.0",
- "issue-parser": "7.0.1",
- "lodash.get": "4.4.2",
- "lodash.merge": "4.6.2",
- "mime-types": "3.0.1",
+ "chalk": "5.3.0",
+ "cosmiconfig": "8.2.0",
+ "execa": "7.1.1",
+ "git-url-parse": "13.1.0",
+ "globby": "13.2.2",
+ "got": "13.0.0",
+ "inquirer": "9.2.8",
+ "is-ci": "3.0.1",
+ "issue-parser": "6.0.0",
+ "lodash": "4.17.21",
+ "mime-types": "2.1.35",
"new-github-release-url": "2.0.0",
- "open": "10.1.2",
- "ora": "8.2.0",
- "os-name": "6.0.0",
- "proxy-agent": "6.5.0",
- "semver": "7.7.1",
- "tinyexec": "1.0.1",
- "tinyglobby": "0.2.13",
- "undici": "6.21.2",
+ "node-fetch": "3.3.1",
+ "open": "9.1.0",
+ "ora": "6.3.1",
+ "os-name": "5.1.0",
+ "promise.allsettled": "1.0.6",
+ "proxy-agent": "6.3.0",
+ "semver": "7.5.4",
+ "shelljs": "0.8.5",
+ "update-notifier": "6.0.2",
"url-join": "5.0.0",
- "wildcard-match": "5.1.4",
+ "wildcard-match": "5.1.2",
"yargs-parser": "21.1.1"
},
"bin": {
"release-it": "bin/release-it.js"
},
"engines": {
- "node": "^20.12.0 || >=22.0.0"
+ "node": ">=16"
}
},
"node_modules/release-it/node_modules/@octokit/openapi-types": {
- "version": "24.2.0",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
- "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
- "dev": true,
- "license": "MIT"
+ "version": "18.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz",
+ "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==",
+ "dev": true
},
"node_modules/release-it/node_modules/@octokit/plugin-paginate-rest": {
- "version": "11.6.0",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.6.0.tgz",
- "integrity": "sha512-n5KPteiF7pWKgBIBJSk8qzoZWcUkza2O6A0za97pMGVrGfPdltxrfmfF5GucHYvHGZD8BdaZmmHGz5cX/3gdpw==",
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz",
+ "integrity": "sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@octokit/types": "^13.10.0"
+ "@octokit/tsconfig": "^1.0.2",
+ "@octokit/types": "^9.2.3"
},
"engines": {
- "node": ">= 18"
+ "node": ">= 14"
},
"peerDependencies": {
- "@octokit/core": ">=6"
- }
- },
- "node_modules/release-it/node_modules/@octokit/plugin-request-log": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-5.3.1.tgz",
- "integrity": "sha512-n/lNeCtq+9ofhC15xzmJCNKP2BWTv8Ih2TTy+jatNCCq/gQP/V7rK3fjIfuz0pDWDALO/o/4QY4hyOF6TQQFUw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 18"
- },
- "peerDependencies": {
- "@octokit/core": ">=6"
+ "@octokit/core": ">=4"
}
},
"node_modules/release-it/node_modules/@octokit/plugin-rest-endpoint-methods": {
- "version": "13.5.0",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.5.0.tgz",
- "integrity": "sha512-9Pas60Iv9ejO3WlAX3maE1+38c5nqbJXV5GrncEfkndIpZrJ/WPMRd2xYDcPPEt5yzpxcjw9fWNoPhsSGzqKqw==",
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.2.3.tgz",
+ "integrity": "sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@octokit/types": "^13.10.0"
+ "@octokit/types": "^10.0.0"
},
"engines": {
- "node": ">= 18"
+ "node": ">= 14"
},
"peerDependencies": {
- "@octokit/core": ">=6"
+ "@octokit/core": ">=3"
+ }
+ },
+ "node_modules/release-it/node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-10.0.0.tgz",
+ "integrity": "sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==",
+ "dev": true,
+ "dependencies": {
+ "@octokit/openapi-types": "^18.0.0"
}
},
"node_modules/release-it/node_modules/@octokit/rest": {
- "version": "21.1.1",
- "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-21.1.1.tgz",
- "integrity": "sha512-sTQV7va0IUVZcntzy1q3QqPm/r8rWtDCqpRAmb8eXXnKkjoQEtFe3Nt5GTVsHft+R6jJoHeSiVLcgcvhtue/rg==",
+ "version": "19.0.13",
+ "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.13.tgz",
+ "integrity": "sha512-/EzVox5V9gYGdbAI+ovYj3nXQT1TtTHRT+0eZPcuC05UFSWO3mdO9UY1C0i2eLF9Un1ONJkAk+IEtYGAC+TahA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@octokit/core": "^6.1.4",
- "@octokit/plugin-paginate-rest": "^11.4.2",
- "@octokit/plugin-request-log": "^5.3.1",
- "@octokit/plugin-rest-endpoint-methods": "^13.3.0"
+ "@octokit/core": "^4.2.1",
+ "@octokit/plugin-paginate-rest": "^6.1.2",
+ "@octokit/plugin-request-log": "^1.0.4",
+ "@octokit/plugin-rest-endpoint-methods": "^7.1.2"
},
"engines": {
- "node": ">= 18"
+ "node": ">= 14"
}
},
"node_modules/release-it/node_modules/@octokit/types": {
- "version": "13.10.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
- "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
+ "version": "9.3.2",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz",
+ "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@octokit/openapi-types": "^24.2.0"
+ "@octokit/openapi-types": "^18.0.0"
}
},
- "node_modules/release-it/node_modules/ci-info": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.2.0.tgz",
- "integrity": "sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==",
+ "node_modules/release-it/node_modules/chalk": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
+ "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
"dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/sibiraj-s"
- }
- ],
- "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/release-it/node_modules/mime-db": {
- "version": "1.54.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
- "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
+ "node_modules/release-it/node_modules/data-uri-to-buffer": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz",
+ "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==",
"dev": true,
- "license": "MIT",
"engines": {
- "node": ">= 0.6"
+ "node": ">= 12"
}
},
- "node_modules/release-it/node_modules/mime-types": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz",
- "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==",
+ "node_modules/release-it/node_modules/execa": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz",
+ "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "mime-db": "^1.54.0"
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.1",
+ "human-signals": "^4.3.0",
+ "is-stream": "^3.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^5.1.0",
+ "onetime": "^6.0.0",
+ "signal-exit": "^3.0.7",
+ "strip-final-newline": "^3.0.0"
},
"engines": {
- "node": ">= 0.6"
+ "node": "^14.18.0 || ^16.14.0 || >=18.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/release-it/node_modules/globby": {
+ "version": "13.2.2",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz",
+ "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==",
+ "dev": true,
+ "dependencies": {
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.3.0",
+ "ignore": "^5.2.4",
+ "merge2": "^1.4.1",
+ "slash": "^4.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/release-it/node_modules/got": {
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-13.0.0.tgz",
+ "integrity": "sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==",
+ "dev": true,
+ "dependencies": {
+ "@sindresorhus/is": "^5.2.0",
+ "@szmarczak/http-timer": "^5.0.1",
+ "cacheable-lookup": "^7.0.0",
+ "cacheable-request": "^10.2.8",
+ "decompress-response": "^6.0.0",
+ "form-data-encoder": "^2.1.2",
+ "get-stream": "^6.0.1",
+ "http2-wrapper": "^2.1.10",
+ "lowercase-keys": "^3.0.0",
+ "p-cancelable": "^3.0.0",
+ "responselike": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/got?sponsor=1"
+ }
+ },
+ "node_modules/release-it/node_modules/human-signals": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
+ "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=14.18.0"
+ }
+ },
+ "node_modules/release-it/node_modules/is-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
+ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/release-it/node_modules/mimic-fn": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
+ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/release-it/node_modules/node-fetch": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz",
+ "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==",
+ "dev": true,
+ "dependencies": {
+ "data-uri-to-buffer": "^4.0.0",
+ "fetch-blob": "^3.1.4",
+ "formdata-polyfill": "^4.0.10"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/node-fetch"
+ }
+ },
+ "node_modules/release-it/node_modules/npm-run-path": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz",
+ "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^4.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/release-it/node_modules/onetime": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
+ "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
+ "dev": true,
+ "dependencies": {
+ "mimic-fn": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/release-it/node_modules/path-key": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/release-it/node_modules/semver": {
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/release-it/node_modules/slash": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
+ "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/release-it/node_modules/strip-final-newline": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
+ "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/require-directory": {
@@ -8830,6 +10147,12 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/resolve-alpn": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
+ "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==",
+ "dev": true
+ },
"node_modules/resolve-cwd": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
@@ -8881,50 +10204,32 @@
"node": ">=10"
}
},
+ "node_modules/responselike": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz",
+ "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==",
+ "dev": true,
+ "dependencies": {
+ "lowercase-keys": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/restore-cursor": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz",
- "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "onetime": "^7.0.0",
- "signal-exit": "^4.1.0"
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
},
"engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/restore-cursor/node_modules/onetime": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz",
- "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "mimic-function": "^5.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/restore-cursor/node_modules/signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "node": ">=8"
}
},
"node_modules/retry": {
@@ -8932,7 +10237,6 @@
"resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
"integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 4"
}
@@ -8963,13 +10267,15 @@
}
},
"node_modules/run-applescript": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz",
- "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz",
+ "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==",
"dev": true,
- "license": "MIT",
+ "dependencies": {
+ "execa": "^5.0.0"
+ },
"engines": {
- "node": ">=18"
+ "node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -8980,7 +10286,6 @@
"resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz",
"integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.12.0"
}
@@ -9009,21 +10314,19 @@
}
},
"node_modules/rxjs": {
- "version": "7.8.2",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz",
- "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==",
+ "version": "7.8.1",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
"dev": true,
- "license": "Apache-2.0",
"dependencies": {
"tslib": "^2.1.0"
}
},
"node_modules/rxjs/node_modules/tslib": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
- "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
- "dev": true,
- "license": "0BSD"
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz",
+ "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==",
+ "dev": true
},
"node_modules/safe-buffer": {
"version": "5.2.1",
@@ -9045,6 +10348,20 @@
}
]
},
+ "node_modules/safe-regex-test": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
+ "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.3",
+ "is-regex": "^1.1.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
@@ -9052,11 +10369,13 @@
"dev": true
},
"node_modules/semver": {
- "version": "7.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
- "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
"dev": true,
- "license": "ISC",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
"bin": {
"semver": "bin/semver.js"
},
@@ -9064,10 +10383,25 @@
"node": ">=10"
}
},
+ "node_modules/semver-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz",
+ "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==",
+ "dev": true,
+ "dependencies": {
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/send": {
- "version": "0.19.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
- "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
+ "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
"dev": true,
"dependencies": {
"debug": "2.6.9",
@@ -9103,15 +10437,6 @@
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"dev": true
},
- "node_modules/send/node_modules/encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/send/node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
@@ -9119,15 +10444,15 @@
"dev": true
},
"node_modules/serve-static": {
- "version": "1.16.2",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
- "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
+ "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
"dev": true,
"dependencies": {
- "encodeurl": "~2.0.0",
+ "encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"parseurl": "~1.3.3",
- "send": "0.19.0"
+ "send": "0.18.0"
},
"engines": {
"node": ">= 0.8.0"
@@ -9160,73 +10485,32 @@
"node": ">=8"
}
},
+ "node_modules/shelljs": {
+ "version": "0.8.5",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz",
+ "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.0.0",
+ "interpret": "^1.0.0",
+ "rechoir": "^0.6.2"
+ },
+ "bin": {
+ "shjs": "bin/shjs"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/side-channel": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
- "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
"dev": true,
"dependencies": {
- "es-errors": "^1.3.0",
- "object-inspect": "^1.13.3",
- "side-channel-list": "^1.0.0",
- "side-channel-map": "^1.0.1",
- "side-channel-weakmap": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/side-channel-list": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
- "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
- "dev": true,
- "dependencies": {
- "es-errors": "^1.3.0",
- "object-inspect": "^1.13.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/side-channel-map": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
- "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
- "dev": true,
- "dependencies": {
- "call-bound": "^1.0.2",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.5",
- "object-inspect": "^1.13.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/side-channel-weakmap": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
- "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
- "dev": true,
- "dependencies": {
- "call-bound": "^1.0.2",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.5",
- "object-inspect": "^1.13.3",
- "side-channel-map": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -9272,37 +10556,34 @@
"resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
"integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 6.0.0",
"npm": ">= 3.0.0"
}
},
"node_modules/socks": {
- "version": "2.8.4",
- "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.4.tgz",
- "integrity": "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==",
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz",
+ "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "ip-address": "^9.0.5",
+ "ip": "^2.0.0",
"smart-buffer": "^4.2.0"
},
"engines": {
- "node": ">= 10.0.0",
+ "node": ">= 10.13.0",
"npm": ">= 3.0.0"
}
},
"node_modules/socks-proxy-agent": {
- "version": "8.0.5",
- "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz",
- "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==",
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.1.tgz",
+ "integrity": "sha512-59EjPbbgg8U3x62hhKOFVAmySQUcfRQ4C7Q/D5sEHnZTQRrQlNKINks44DMR1gwXp0p4LaVIeccX2KHTTcHVqQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "agent-base": "^7.1.2",
+ "agent-base": "^7.0.1",
"debug": "^4.3.4",
- "socks": "^2.8.3"
+ "socks": "^2.7.1"
},
"engines": {
"node": ">= 14"
@@ -9405,13 +10686,15 @@
}
},
"node_modules/stdin-discarder": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz",
- "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==",
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.1.0.tgz",
+ "integrity": "sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==",
"dev": true,
- "license": "MIT",
+ "dependencies": {
+ "bl": "^5.0.0"
+ },
"engines": {
- "node": ">=18"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -9453,6 +10736,34 @@
"node": ">=8"
}
},
+ "node_modules/string.prototype.trimend": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
+ "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimstart": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz",
+ "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
@@ -9575,56 +10886,16 @@
"readable-stream": "3"
}
},
- "node_modules/tinyexec": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.1.tgz",
- "integrity": "sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==",
+ "node_modules/titleize": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz",
+ "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==",
"dev": true,
- "license": "MIT"
- },
- "node_modules/tinyglobby": {
- "version": "0.2.13",
- "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz",
- "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fdir": "^6.4.4",
- "picomatch": "^4.0.2"
- },
- "engines": {
- "node": ">=12.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/SuperchupuDev"
- }
- },
- "node_modules/tinyglobby/node_modules/fdir": {
- "version": "6.4.4",
- "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz",
- "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==",
- "dev": true,
- "license": "MIT",
- "peerDependencies": {
- "picomatch": "^3 || ^4"
- },
- "peerDependenciesMeta": {
- "picomatch": {
- "optional": true
- }
- }
- },
- "node_modules/tinyglobby/node_modules/picomatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
- "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
- "dev": true,
- "license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/tmp": {
@@ -9632,7 +10903,6 @@
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
"integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"os-tmpdir": "~1.0.2"
},
@@ -9646,6 +10916,15 @@
"integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
"dev": true
},
+ "node_modules/to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -9891,12 +11170,34 @@
"node": ">= 0.6"
}
},
+ "node_modules/typed-array-length": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
+ "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "is-typed-array": "^1.1.9"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
+ "dev": true
+ },
+ "node_modules/typedarray-to-buffer": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
+ "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
"dev": true,
- "license": "MIT"
+ "dependencies": {
+ "is-typedarray": "^1.0.0"
+ }
},
"node_modules/typescript": {
"version": "4.9.4",
@@ -9912,11 +11213,10 @@
}
},
"node_modules/uglify-js": {
- "version": "3.19.3",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz",
- "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==",
+ "version": "3.17.4",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
+ "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
"dev": true,
- "license": "BSD-2-Clause",
"optional": true,
"bin": {
"uglifyjs": "bin/uglifyjs"
@@ -9925,24 +11225,31 @@
"node": ">=0.8.0"
}
},
- "node_modules/undici": {
- "version": "6.21.2",
- "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.2.tgz",
- "integrity": "sha512-uROZWze0R0itiAKVPsYhFov9LxrPMHLMEQFszeI2gCN6bnIIZ8twzBCJcN2LJrBBLfrP0t1FW0g+JmKVl8Vk1g==",
+ "node_modules/unbox-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
"dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18.17"
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
+ "which-boxed-primitive": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/unicorn-magic": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz",
- "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==",
+ "node_modules/unique-string": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz",
+ "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==",
"dev": true,
- "license": "MIT",
+ "dependencies": {
+ "crypto-random-string": "^4.0.0"
+ },
"engines": {
- "node": ">=18"
+ "node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -9970,6 +11277,15 @@
"node": ">= 0.8"
}
},
+ "node_modules/untildify": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz",
+ "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/update-browserslist-db": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
@@ -10000,6 +11316,46 @@
"browserslist": ">= 4.21.0"
}
},
+ "node_modules/update-notifier": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz",
+ "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==",
+ "dev": true,
+ "dependencies": {
+ "boxen": "^7.0.0",
+ "chalk": "^5.0.1",
+ "configstore": "^6.0.0",
+ "has-yarn": "^3.0.0",
+ "import-lazy": "^4.0.0",
+ "is-ci": "^3.0.1",
+ "is-installed-globally": "^0.4.0",
+ "is-npm": "^6.0.0",
+ "is-yarn-global": "^0.4.0",
+ "latest-version": "^7.0.0",
+ "pupa": "^3.1.0",
+ "semver": "^7.3.7",
+ "semver-diff": "^4.0.0",
+ "xdg-basedir": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/yeoman/update-notifier?sponsor=1"
+ }
+ },
+ "node_modules/update-notifier/node_modules/chalk": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz",
+ "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
"node_modules/uri-js": {
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
@@ -10014,7 +11370,6 @@
"resolved": "https://registry.npmjs.org/url-join/-/url-join-5.0.0.tgz",
"integrity": "sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
}
@@ -10096,6 +11451,24 @@
"makeerror": "1.0.12"
}
},
+ "node_modules/wcwidth": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
+ "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
+ "dev": true,
+ "dependencies": {
+ "defaults": "^1.0.3"
+ }
+ },
+ "node_modules/web-streams-polyfill": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz",
+ "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8"
+ }
+ },
"node_modules/webidl-conversions": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
@@ -10125,110 +11498,120 @@
"node": ">= 8"
}
},
- "node_modules/wildcard-match": {
- "version": "5.1.4",
- "resolved": "https://registry.npmjs.org/wildcard-match/-/wildcard-match-5.1.4.tgz",
- "integrity": "sha512-wldeCaczs8XXq7hj+5d/F38JE2r7EXgb6WQDM84RVwxy81T/sxB5e9+uZLK9Q9oNz1mlvjut+QtvgaOQFPVq/g==",
+ "node_modules/which-boxed-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
+ "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
"dev": true,
- "license": "ISC"
+ "dependencies": {
+ "is-bigint": "^1.0.1",
+ "is-boolean-object": "^1.1.0",
+ "is-number-object": "^1.0.4",
+ "is-string": "^1.0.5",
+ "is-symbol": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-typed-array": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz",
+ "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==",
+ "dev": true,
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0",
+ "is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/widest-line": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz",
+ "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/widest-line/node_modules/ansi-regex": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/widest-line/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true
+ },
+ "node_modules/widest-line/node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dev": true,
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/widest-line/node_modules/strip-ansi": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz",
+ "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wildcard-match": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/wildcard-match/-/wildcard-match-5.1.2.tgz",
+ "integrity": "sha512-qNXwI591Z88c8bWxp+yjV60Ch4F8Riawe3iGxbzquhy8Xs9m+0+SLFBGb/0yCTIDElawtaImC37fYZ+dr32KqQ==",
+ "dev": true
},
"node_modules/windows-release": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-6.0.1.tgz",
- "integrity": "sha512-MS3BzG8QK33dAyqwxfYJCJ03arkwKaddUOvvnnlFdXLudflsQF6I8yAxrLBeQk4yO8wjdH/+ax0YzxJEDrOftg==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-5.1.1.tgz",
+ "integrity": "sha512-NMD00arvqcq2nwqc5Q6KtrSRHK+fVD31erE5FEMahAw5PmVCgD7MUXodq3pdZSUkqA9Cda2iWx6s1XYwiJWRmw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "execa": "^8.0.1"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/windows-release/node_modules/execa": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz",
- "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^8.0.1",
- "human-signals": "^5.0.0",
- "is-stream": "^3.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^5.1.0",
- "onetime": "^6.0.0",
- "signal-exit": "^4.1.0",
- "strip-final-newline": "^3.0.0"
- },
- "engines": {
- "node": ">=16.17"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/execa?sponsor=1"
- }
- },
- "node_modules/windows-release/node_modules/get-stream": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz",
- "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/windows-release/node_modules/human-signals": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz",
- "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=16.17.0"
- }
- },
- "node_modules/windows-release/node_modules/is-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/windows-release/node_modules/mimic-fn": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
- "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/windows-release/node_modules/npm-run-path": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz",
- "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "path-key": "^4.0.0"
+ "execa": "^5.1.1"
},
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
@@ -10237,67 +11620,11 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/windows-release/node_modules/onetime": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
- "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "mimic-fn": "^4.0.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/windows-release/node_modules/path-key": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
- "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/windows-release/node_modules/signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/windows-release/node_modules/strip-final-newline": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
- "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/wordwrap": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
"integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
- "dev": true,
- "license": "MIT"
+ "dev": true
},
"node_modules/wrap-ansi": {
"version": "7.0.0",
@@ -10340,6 +11667,18 @@
"integrity": "sha512-UmFXIPU+9Eg3E9m/728Bii0lAIuoc+6nbrNUKaRPJOFp91ih44qqGlWtxMB6kXFrRD6po+86ksHM5XHCfk6iPw==",
"dev": true
},
+ "node_modules/xdg-basedir": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz",
+ "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/xml": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz",
@@ -10408,19 +11747,6 @@
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
- },
- "node_modules/yoctocolors-cjs": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz",
- "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
}
},
"dependencies": {
@@ -10458,14 +11784,71 @@
}
},
"@babel/code-frame": {
- "version": "7.26.2",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
- "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
+ "version": "7.22.13",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
+ "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
"dev": true,
"requires": {
- "@babel/helper-validator-identifier": "^7.25.9",
- "js-tokens": "^4.0.0",
- "picocolors": "^1.0.0"
+ "@babel/highlight": "^7.22.13",
+ "chalk": "^2.4.2"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
}
},
"@babel/compat-data": {
@@ -10634,15 +12017,15 @@
}
},
"@babel/helper-string-parser": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
- "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
+ "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
"dev": true
},
"@babel/helper-validator-identifier": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
- "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
"dev": true
},
"@babel/helper-validator-option": {
@@ -10652,23 +12035,90 @@
"dev": true
},
"@babel/helpers": {
- "version": "7.27.0",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz",
- "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==",
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz",
+ "integrity": "sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==",
"dev": true,
"requires": {
- "@babel/template": "^7.27.0",
- "@babel/types": "^7.27.0"
+ "@babel/template": "^7.22.5",
+ "@babel/traverse": "^7.22.5",
+ "@babel/types": "^7.22.5"
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
+ "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "chalk": "^2.4.2",
+ "js-tokens": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
}
},
"@babel/parser": {
- "version": "7.27.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz",
- "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.27.0"
- }
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
+ "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==",
+ "dev": true
},
"@babel/plugin-syntax-async-generators": {
"version": "7.8.4",
@@ -10797,14 +12247,14 @@
}
},
"@babel/template": {
- "version": "7.27.0",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz",
- "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==",
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
+ "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.26.2",
- "@babel/parser": "^7.27.0",
- "@babel/types": "^7.27.0"
+ "@babel/code-frame": "^7.22.13",
+ "@babel/parser": "^7.22.15",
+ "@babel/types": "^7.22.15"
}
},
"@babel/traverse": {
@@ -10834,13 +12284,14 @@
}
},
"@babel/types": {
- "version": "7.27.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz",
- "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz",
+ "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==",
"dev": true,
"requires": {
- "@babel/helper-string-parser": "^7.25.9",
- "@babel/helper-validator-identifier": "^7.25.9"
+ "@babel/helper-string-parser": "^7.22.5",
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "to-fast-properties": "^2.0.0"
}
},
"@bcoe/v8-coverage": {
@@ -11143,6 +12594,17 @@
"@gitbeaker/requester-utils": "^39.1.0",
"qs": "^6.11.1",
"xcase": "^2.0.1"
+ },
+ "dependencies": {
+ "qs": {
+ "version": "6.11.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz",
+ "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==",
+ "dev": true,
+ "requires": {
+ "side-channel": "^1.0.4"
+ }
+ }
}
},
"@gitbeaker/requester-utils": {
@@ -11153,6 +12615,17 @@
"requires": {
"qs": "^6.11.1",
"xcase": "^2.0.1"
+ },
+ "dependencies": {
+ "qs": {
+ "version": "6.11.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz",
+ "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==",
+ "dev": true,
+ "requires": {
+ "side-channel": "^1.0.4"
+ }
+ }
}
},
"@gitbeaker/rest": {
@@ -11194,184 +12667,12 @@
"integrity": "sha512-e5+YUKENATs1JgYHMzTr2MW/NDcXGfYFAuOQU8gJgF/kEh4EqKgfGrfLI67bMD4tbhZVlkigz/9YYwWcbOFthg==",
"dev": true
},
- "@inquirer/checkbox": {
- "version": "4.1.6",
- "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.1.6.tgz",
- "integrity": "sha512-62u896rWCtKKE43soodq5e/QcRsA22I+7/4Ov7LESWnKRO6BVo2A1DFLDmXL9e28TB0CfHc3YtkbPm7iwajqkg==",
- "dev": true,
- "requires": {
- "@inquirer/core": "^10.1.11",
- "@inquirer/figures": "^1.0.11",
- "@inquirer/type": "^3.0.6",
- "ansi-escapes": "^4.3.2",
- "yoctocolors-cjs": "^2.1.2"
- }
- },
- "@inquirer/confirm": {
- "version": "5.1.10",
- "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.10.tgz",
- "integrity": "sha512-FxbQ9giWxUWKUk2O5XZ6PduVnH2CZ/fmMKMBkH71MHJvWr7WL5AHKevhzF1L5uYWB2P548o1RzVxrNd3dpmk6g==",
- "dev": true,
- "requires": {
- "@inquirer/core": "^10.1.11",
- "@inquirer/type": "^3.0.6"
- }
- },
- "@inquirer/core": {
- "version": "10.1.11",
- "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.1.11.tgz",
- "integrity": "sha512-BXwI/MCqdtAhzNQlBEFE7CEflhPkl/BqvAuV/aK6lW3DClIfYVDWPP/kXuXHtBWC7/EEbNqd/1BGq2BGBBnuxw==",
- "dev": true,
- "requires": {
- "@inquirer/figures": "^1.0.11",
- "@inquirer/type": "^3.0.6",
- "ansi-escapes": "^4.3.2",
- "cli-width": "^4.1.0",
- "mute-stream": "^2.0.0",
- "signal-exit": "^4.1.0",
- "wrap-ansi": "^6.2.0",
- "yoctocolors-cjs": "^2.1.2"
- },
- "dependencies": {
- "signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "dev": true
- },
- "wrap-ansi": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
- "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- }
- }
- }
- },
- "@inquirer/editor": {
- "version": "4.2.11",
- "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.11.tgz",
- "integrity": "sha512-YoZr0lBnnLFPpfPSNsQ8IZyKxU47zPyVi9NLjCWtna52//M/xuL0PGPAxHxxYhdOhnvY2oBafoM+BI5w/JK7jw==",
- "dev": true,
- "requires": {
- "@inquirer/core": "^10.1.11",
- "@inquirer/type": "^3.0.6",
- "external-editor": "^3.1.0"
- }
- },
- "@inquirer/expand": {
- "version": "4.0.13",
- "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.13.tgz",
- "integrity": "sha512-HgYNWuZLHX6q5y4hqKhwyytqAghmx35xikOGY3TcgNiElqXGPas24+UzNPOwGUZa5Dn32y25xJqVeUcGlTv+QQ==",
- "dev": true,
- "requires": {
- "@inquirer/core": "^10.1.11",
- "@inquirer/type": "^3.0.6",
- "yoctocolors-cjs": "^2.1.2"
- }
- },
- "@inquirer/figures": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.11.tgz",
- "integrity": "sha512-eOg92lvrn/aRUqbxRyvpEWnrvRuTYRifixHkYVpJiygTgVSBIHDqLh0SrMQXkafvULg3ck11V7xvR+zcgvpHFw==",
+ "@iarna/toml": {
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz",
+ "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==",
"dev": true
},
- "@inquirer/input": {
- "version": "4.1.10",
- "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.1.10.tgz",
- "integrity": "sha512-kV3BVne3wJ+j6reYQUZi/UN9NZGZLxgc/tfyjeK3mrx1QI7RXPxGp21IUTv+iVHcbP4ytZALF8vCHoxyNSC6qg==",
- "dev": true,
- "requires": {
- "@inquirer/core": "^10.1.11",
- "@inquirer/type": "^3.0.6"
- }
- },
- "@inquirer/number": {
- "version": "3.0.13",
- "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.13.tgz",
- "integrity": "sha512-IrLezcg/GWKS8zpKDvnJ/YTflNJdG0qSFlUM/zNFsdi4UKW/CO+gaJpbMgQ20Q58vNKDJbEzC6IebdkprwL6ew==",
- "dev": true,
- "requires": {
- "@inquirer/core": "^10.1.11",
- "@inquirer/type": "^3.0.6"
- }
- },
- "@inquirer/password": {
- "version": "4.0.13",
- "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.13.tgz",
- "integrity": "sha512-NN0S/SmdhakqOTJhDwOpeBEEr8VdcYsjmZHDb0rblSh2FcbXQOr+2IApP7JG4WE3sxIdKytDn4ed3XYwtHxmJQ==",
- "dev": true,
- "requires": {
- "@inquirer/core": "^10.1.11",
- "@inquirer/type": "^3.0.6",
- "ansi-escapes": "^4.3.2"
- }
- },
- "@inquirer/prompts": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.5.1.tgz",
- "integrity": "sha512-5AOrZPf2/GxZ+SDRZ5WFplCA2TAQgK3OYrXCYmJL5NaTu4ECcoWFlfUZuw7Es++6Njv7iu/8vpYJhuzxUH76Vg==",
- "dev": true,
- "requires": {
- "@inquirer/checkbox": "^4.1.6",
- "@inquirer/confirm": "^5.1.10",
- "@inquirer/editor": "^4.2.11",
- "@inquirer/expand": "^4.0.13",
- "@inquirer/input": "^4.1.10",
- "@inquirer/number": "^3.0.13",
- "@inquirer/password": "^4.0.13",
- "@inquirer/rawlist": "^4.1.1",
- "@inquirer/search": "^3.0.13",
- "@inquirer/select": "^4.2.1"
- }
- },
- "@inquirer/rawlist": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.1.tgz",
- "integrity": "sha512-VBUC0jPN2oaOq8+krwpo/mf3n/UryDUkKog3zi+oIi8/e5hykvdntgHUB9nhDM78RubiyR1ldIOfm5ue+2DeaQ==",
- "dev": true,
- "requires": {
- "@inquirer/core": "^10.1.11",
- "@inquirer/type": "^3.0.6",
- "yoctocolors-cjs": "^2.1.2"
- }
- },
- "@inquirer/search": {
- "version": "3.0.13",
- "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.0.13.tgz",
- "integrity": "sha512-9g89d2c5Izok/Gw/U7KPC3f9kfe5rA1AJ24xxNZG0st+vWekSk7tB9oE+dJv5JXd0ZSijomvW0KPMoBd8qbN4g==",
- "dev": true,
- "requires": {
- "@inquirer/core": "^10.1.11",
- "@inquirer/figures": "^1.0.11",
- "@inquirer/type": "^3.0.6",
- "yoctocolors-cjs": "^2.1.2"
- }
- },
- "@inquirer/select": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.2.1.tgz",
- "integrity": "sha512-gt1Kd5XZm+/ddemcT3m23IP8aD8rC9drRckWoP/1f7OL46Yy2FGi8DSmNjEjQKtPl6SV96Kmjbl6p713KXJ/Jg==",
- "dev": true,
- "requires": {
- "@inquirer/core": "^10.1.11",
- "@inquirer/figures": "^1.0.11",
- "@inquirer/type": "^3.0.6",
- "ansi-escapes": "^4.3.2",
- "yoctocolors-cjs": "^2.1.2"
- }
- },
- "@inquirer/type": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.6.tgz",
- "integrity": "sha512-/mKVCtVpyBu3IDarv0G+59KC4stsD5mDsGpYh+GKs1NZT88Jh52+cuoA1AtLk2Q0r/quNl+1cSUyLRHBFeD0XA==",
- "dev": true,
- "requires": {}
- },
"@istanbuljs/load-nyc-config": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
@@ -11782,83 +13083,67 @@
"fastq": "^1.6.0"
}
},
- "@nodeutils/defaults-deep": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@nodeutils/defaults-deep/-/defaults-deep-1.1.0.tgz",
- "integrity": "sha512-gG44cwQovaOFdSR02jR9IhVRpnDP64VN6JdjYJTfNz4J4fWn7TQnmrf22nSjRqlwlxPcW8PL/L3KbJg3tdwvpg==",
- "dev": true,
+ "@octokit/auth-token": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.2.tgz",
+ "integrity": "sha512-pq7CwIMV1kmzkFTimdwjAINCXKTajZErLB4wMLYapR2nuB/Jpr66+05wOTZMSCBXP6n4DdDWT2W19Bm17vU69Q==",
"requires": {
- "lodash": "^4.15.0"
+ "@octokit/types": "^8.0.0"
}
},
- "@octokit/auth-token": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-5.1.2.tgz",
- "integrity": "sha512-JcQDsBdg49Yky2w2ld20IHAlwr8d/d8N6NiOXbtuoPCqzbsiJgF633mVUw3x4mo0H5ypataQIX7SFu3yy44Mpw=="
- },
"@octokit/core": {
- "version": "6.1.5",
- "resolved": "https://registry.npmjs.org/@octokit/core/-/core-6.1.5.tgz",
- "integrity": "sha512-vvmsN0r7rguA+FySiCsbaTTobSftpIDIpPW81trAmsv9TGxg3YCujAxRYp/Uy8xmDgYCzzgulG62H7KYUFmeIg==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.4.tgz",
+ "integrity": "sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==",
"requires": {
- "@octokit/auth-token": "^5.0.0",
- "@octokit/graphql": "^8.2.2",
- "@octokit/request": "^9.2.3",
- "@octokit/request-error": "^6.1.8",
- "@octokit/types": "^14.0.0",
- "before-after-hook": "^3.0.2",
- "universal-user-agent": "^7.0.0"
+ "@octokit/auth-token": "^3.0.0",
+ "@octokit/graphql": "^5.0.0",
+ "@octokit/request": "^6.0.0",
+ "@octokit/request-error": "^3.0.0",
+ "@octokit/types": "^9.0.0",
+ "before-after-hook": "^2.2.0",
+ "universal-user-agent": "^6.0.0"
},
"dependencies": {
- "before-after-hook": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-3.0.2.tgz",
- "integrity": "sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A=="
+ "@octokit/openapi-types": {
+ "version": "18.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz",
+ "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw=="
},
- "universal-user-agent": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz",
- "integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q=="
+ "@octokit/types": {
+ "version": "9.3.2",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz",
+ "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==",
+ "requires": {
+ "@octokit/openapi-types": "^18.0.0"
+ }
}
}
},
"@octokit/endpoint": {
- "version": "10.1.4",
- "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.4.tgz",
- "integrity": "sha512-OlYOlZIsfEVZm5HCSR8aSg02T2lbUWOsCQoPKfTXJwDzcHQBrVBGdGXb89dv2Kw2ToZaRtudp8O3ZIYoaOjKlA==",
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.3.tgz",
+ "integrity": "sha512-57gRlb28bwTsdNXq+O3JTQ7ERmBTuik9+LelgcLIVfYwf235VHbN9QNo4kXExtp/h8T423cR5iJThKtFYxC7Lw==",
"requires": {
- "@octokit/types": "^14.0.0",
- "universal-user-agent": "^7.0.2"
- },
- "dependencies": {
- "universal-user-agent": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz",
- "integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q=="
- }
+ "@octokit/types": "^8.0.0",
+ "is-plain-object": "^5.0.0",
+ "universal-user-agent": "^6.0.0"
}
},
"@octokit/graphql": {
- "version": "8.2.2",
- "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.2.2.tgz",
- "integrity": "sha512-Yi8hcoqsrXGdt0yObxbebHXFOiUA+2v3n53epuOg1QUgOB6c4XzvisBNVXJSl8RYA5KrDuSL2yq9Qmqe5N0ryA==",
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.4.tgz",
+ "integrity": "sha512-amO1M5QUQgYQo09aStR/XO7KAl13xpigcy/kI8/N1PnZYSS69fgte+xA4+c2DISKqUZfsh0wwjc2FaCt99L41A==",
"requires": {
- "@octokit/request": "^9.2.3",
- "@octokit/types": "^14.0.0",
- "universal-user-agent": "^7.0.0"
- },
- "dependencies": {
- "universal-user-agent": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz",
- "integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q=="
- }
+ "@octokit/request": "^6.0.0",
+ "@octokit/types": "^8.0.0",
+ "universal-user-agent": "^6.0.0"
}
},
"@octokit/openapi-types": {
- "version": "25.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-25.0.0.tgz",
- "integrity": "sha512-FZvktFu7HfOIJf2BScLKIEYjDsw6RKc7rBJCdvCTfKsVnx2GEB/Nbzjr29DUdb7vQhlzS/j8qDzdditP0OC6aw=="
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-14.0.0.tgz",
+ "integrity": "sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw=="
},
"@octokit/openapi-types-ghec": {
"version": "14.0.0",
@@ -11920,30 +13205,26 @@
}
},
"@octokit/request": {
- "version": "9.2.3",
- "resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.2.3.tgz",
- "integrity": "sha512-Ma+pZU8PXLOEYzsWf0cn/gY+ME57Wq8f49WTXA8FMHp2Ps9djKw//xYJ1je8Hm0pR2lU9FUGeJRWOtxq6olt4w==",
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.2.tgz",
+ "integrity": "sha512-6VDqgj0HMc2FUX2awIs+sM6OwLgwHvAi4KCK3mT2H2IKRt6oH9d0fej5LluF5mck1lRR/rFWN0YIDSYXYSylbw==",
"requires": {
- "@octokit/endpoint": "^10.1.4",
- "@octokit/request-error": "^6.1.8",
- "@octokit/types": "^14.0.0",
- "fast-content-type-parse": "^2.0.0",
- "universal-user-agent": "^7.0.2"
- },
- "dependencies": {
- "universal-user-agent": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz",
- "integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q=="
- }
+ "@octokit/endpoint": "^7.0.0",
+ "@octokit/request-error": "^3.0.0",
+ "@octokit/types": "^8.0.0",
+ "is-plain-object": "^5.0.0",
+ "node-fetch": "^2.6.7",
+ "universal-user-agent": "^6.0.0"
}
},
"@octokit/request-error": {
- "version": "6.1.8",
- "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.8.tgz",
- "integrity": "sha512-WEi/R0Jmq+IJKydWlKDmryPcmdYSVjL3ekaiEL1L9eo1sUnqMJ+grqmC9cjk7CA7+b2/T397tO5d8YLOH3qYpQ==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.2.tgz",
+ "integrity": "sha512-WMNOFYrSaX8zXWoJg9u/pKgWPo94JXilMLb2VManNOby9EZxrQaBe/QSC4a1TzpAlpxofg2X/jMnCyZgL6y7eg==",
"requires": {
- "@octokit/types": "^14.0.0"
+ "@octokit/types": "^8.0.0",
+ "deprecation": "^2.0.0",
+ "once": "^1.4.0"
}
},
"@octokit/rest": {
@@ -12037,12 +13318,18 @@
}
}
},
+ "@octokit/tsconfig": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@octokit/tsconfig/-/tsconfig-1.0.2.tgz",
+ "integrity": "sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA==",
+ "dev": true
+ },
"@octokit/types": {
- "version": "14.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-14.0.0.tgz",
- "integrity": "sha512-VVmZP0lEhbo2O1pdq63gZFiGCKkm8PPp8AUOijlwPO6hojEVjspA0MWKP7E4hbvGxzFKNqKr6p0IYtOH/Wf/zA==",
+ "version": "8.2.1",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-8.2.1.tgz",
+ "integrity": "sha512-8oWMUji8be66q2B9PmEIUyQm00VPDPun07umUWSaCwxmeaquFBro4Hcc3ruVoDo3zkQyZBlRvhIMEYS3pBhanw==",
"requires": {
- "@octokit/openapi-types": "^25.0.0"
+ "@octokit/openapi-types": "^14.0.0"
}
},
"@octokit/webhooks-types": {
@@ -12051,23 +13338,35 @@
"integrity": "sha512-Yq46asTPdEyrroCSBLRvcwNBsztiDHHvJ3+//2PhVbLSKp6kkj7NkjA3fyrpCrdlANj8REZSfus60v96EmlxCA==",
"dev": true
},
- "@phun-ky/typeof": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@phun-ky/typeof/-/typeof-1.2.8.tgz",
- "integrity": "sha512-7J6ca1tK0duM2BgVB+CuFMh3idlIVASOP2QvOCbNWDc6JnvjtKa9nufPoJQQ4xrwBonwgT1TIhRRcEtzdVgWsA==",
- "dev": true
+ "@pnpm/network.ca-file": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz",
+ "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.2.10"
+ }
+ },
+ "@pnpm/npm-conf": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-1.0.5.tgz",
+ "integrity": "sha512-hD8ml183638O3R6/Txrh0L8VzGOrFXgRtRDG4qQC4tONdZ5Z1M+tlUUDUvrjYdmK6G+JTBTeaCLMna11cXzi8A==",
+ "dev": true,
+ "requires": {
+ "@pnpm/network.ca-file": "^1.0.1",
+ "config-chain": "^1.1.11"
+ }
},
"@release-it/conventional-changelog": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/@release-it/conventional-changelog/-/conventional-changelog-10.0.1.tgz",
- "integrity": "sha512-Qp+eyMGCPyq5xiWoNK91cWVIR/6HD1QAUNeG6pV2G4kxotWl81k/KDQqDNvrNVmr9+zDp53jI7pVVYQp6mi4zA==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/@release-it/conventional-changelog/-/conventional-changelog-7.0.2.tgz",
+ "integrity": "sha512-rsUKWNnU39xivgC2IanjRkEOPsTu2X2jgJGpNHF+mndpOUr1WAROmIaix1o3ne2zseT+GLyZII2NC8FgYaM7xA==",
"dev": true,
"requires": {
"concat-stream": "^2.0.0",
- "conventional-changelog": "^6.0.0",
- "conventional-recommended-bump": "^10.0.0",
- "git-semver-tags": "^8.0.0",
- "semver": "^7.6.3"
+ "conventional-changelog": "^5.1.0",
+ "conventional-recommended-bump": "^8.0.0",
+ "semver": "^7.5.4"
}
},
"@sinclair/typebox": {
@@ -12076,6 +13375,12 @@
"integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==",
"dev": true
},
+ "@sindresorhus/is": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz",
+ "integrity": "sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw==",
+ "dev": true
+ },
"@sinonjs/commons": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz",
@@ -12094,6 +13399,15 @@
"@sinonjs/commons": "^3.0.0"
}
},
+ "@szmarczak/http-timer": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz",
+ "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==",
+ "dev": true,
+ "requires": {
+ "defer-to-connect": "^2.0.1"
+ }
+ },
"@tootallnate/quickjs-emscripten": {
"version": "0.23.0",
"resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz",
@@ -12183,6 +13497,12 @@
"@types/node": "*"
}
},
+ "@types/http-cache-semantics": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz",
+ "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==",
+ "dev": true
+ },
"@types/istanbul-lib-coverage": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
@@ -12236,15 +13556,9 @@
"dev": true
},
"@types/normalize-package-data": {
- "version": "2.4.4",
- "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
- "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
- "dev": true
- },
- "@types/parse-path": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/@types/parse-path/-/parse-path-7.0.3.tgz",
- "integrity": "sha512-LriObC2+KYZD3FzCrgWGv/qufdUy4eXrxcLgQMfYXgPbLIecKIsVBaQgUPmxSSLcjmYbDTQbMgr6qr6l/eb7Bg==",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
+ "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
"dev": true
},
"@types/prettier": {
@@ -12254,9 +13568,9 @@
"dev": true
},
"@types/semver": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.0.tgz",
- "integrity": "sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==",
+ "version": "7.3.13",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz",
+ "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==",
"dev": true
},
"@types/stack-utils": {
@@ -12420,10 +13734,13 @@
"dev": true
},
"agent-base": {
- "version": "7.1.3",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz",
- "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==",
- "dev": true
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
+ "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.3.4"
+ }
},
"ajv": {
"version": "8.11.2",
@@ -12437,6 +13754,15 @@
"uri-js": "^4.2.2"
}
},
+ "ansi-align": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
+ "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
+ "dev": true,
+ "requires": {
+ "string-width": "^4.1.0"
+ }
+ },
"ansi-escapes": {
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
@@ -12509,6 +13835,19 @@
"integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
"dev": true
},
+ "array.prototype.map": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.5.tgz",
+ "integrity": "sha512-gfaKntvwqYIuC7mLLyv2wzZIJqrRhn5PZ9EfFejSx6a78sV7iDsGpG9P+3oUPtm1Rerqm6nrKS4FYuTIvWfo3g==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-array-method-boxes-properly": "^1.0.0",
+ "is-string": "^1.0.7"
+ }
+ },
"arrify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
@@ -12525,9 +13864,9 @@
},
"dependencies": {
"tslib": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
- "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz",
+ "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==",
"dev": true
}
}
@@ -12546,12 +13885,18 @@
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
},
+ "available-typed-arrays": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
+ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
+ "dev": true
+ },
"axios": {
- "version": "1.8.4",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.4.tgz",
- "integrity": "sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.0.tgz",
+ "integrity": "sha512-EZ1DYihju9pwVB+jg67ogm+Tmqc6JmhamRN6I4Zt8DfZu5lbcQGw3ozH9lFejSJgs/ibaef3A9PMXPLeefFGJg==",
"requires": {
- "follow-redirects": "^1.15.6",
+ "follow-redirects": "^1.15.0",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
@@ -12632,10 +13977,16 @@
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true
},
+ "base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "dev": true
+ },
"basic-ftp": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz",
- "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==",
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.3.tgz",
+ "integrity": "sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g==",
"dev": true
},
"before-after-hook": {
@@ -12643,28 +13994,45 @@
"resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz",
"integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ=="
},
+ "big-integer": {
+ "version": "1.6.51",
+ "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz",
+ "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==",
+ "dev": true
+ },
"binary-extensions": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
"dev": true
},
+ "bl": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz",
+ "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==",
+ "dev": true,
+ "requires": {
+ "buffer": "^6.0.3",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
"body-parser": {
- "version": "1.20.3",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
- "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
+ "version": "1.20.1",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
+ "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
"dev": true,
"requires": {
"bytes": "3.1.2",
- "content-type": "~1.0.5",
+ "content-type": "~1.0.4",
"debug": "2.6.9",
"depd": "2.0.0",
"destroy": "1.2.0",
"http-errors": "2.0.0",
"iconv-lite": "0.4.24",
"on-finished": "2.4.1",
- "qs": "6.13.0",
- "raw-body": "2.5.2",
+ "qs": "6.11.0",
+ "raw-body": "2.5.1",
"type-is": "~1.6.18",
"unpipe": "1.0.0"
},
@@ -12686,6 +14054,100 @@
}
}
},
+ "boxen": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.0.1.tgz",
+ "integrity": "sha512-8k2eH6SRAK00NDl1iX5q17RJ8rfl53TajdYxE3ssMLehbg487dEVgsad4pIsZb/QqBgYWIl6JOauMTLGX2Kpkw==",
+ "dev": true,
+ "requires": {
+ "ansi-align": "^3.0.1",
+ "camelcase": "^7.0.0",
+ "chalk": "^5.0.1",
+ "cli-boxes": "^3.0.0",
+ "string-width": "^5.1.2",
+ "type-fest": "^2.13.0",
+ "widest-line": "^4.0.1",
+ "wrap-ansi": "^8.0.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz",
+ "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz",
+ "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dev": true,
+ "requires": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz",
+ "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^6.0.1"
+ }
+ },
+ "type-fest": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
+ "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.0.1.tgz",
+ "integrity": "sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ }
+ }
+ }
+ },
+ "bplist-parser": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz",
+ "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==",
+ "dev": true,
+ "requires": {
+ "big-integer": "^1.6.44"
+ }
+ },
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -12697,12 +14159,12 @@
}
},
"braces": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
- "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true,
"requires": {
- "fill-range": "^7.1.1"
+ "fill-range": "^7.0.1"
}
},
"browserslist": {
@@ -12735,6 +14197,16 @@
"node-int64": "^0.4.0"
}
},
+ "buffer": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+ "dev": true,
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
+ }
+ },
"buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
@@ -12742,12 +14214,12 @@
"dev": true
},
"bundle-name": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz",
- "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz",
+ "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==",
"dev": true,
"requires": {
- "run-applescript": "^7.0.0"
+ "run-applescript": "^5.0.0"
}
},
"bytes": {
@@ -12756,61 +14228,35 @@
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
"dev": true
},
- "c12": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/c12/-/c12-3.0.3.tgz",
- "integrity": "sha512-uC3MacKBb0Z15o5QWCHvHWj5Zv34pGQj9P+iXKSpTuSGFS0KKhUWf4t9AJ+gWjYOdmWCPEGpEzm8sS0iqbpo1w==",
+ "cacheable-lookup": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz",
+ "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==",
+ "dev": true
+ },
+ "cacheable-request": {
+ "version": "10.2.12",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz",
+ "integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==",
"dev": true,
"requires": {
- "chokidar": "^4.0.3",
- "confbox": "^0.2.2",
- "defu": "^6.1.4",
- "dotenv": "^16.4.7",
- "exsolve": "^1.0.4",
- "giget": "^2.0.0",
- "jiti": "^2.4.2",
- "ohash": "^2.0.11",
- "pathe": "^2.0.3",
- "perfect-debounce": "^1.0.0",
- "pkg-types": "^2.1.0",
- "rc9": "^2.1.2"
- },
- "dependencies": {
- "chokidar": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
- "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
- "dev": true,
- "requires": {
- "readdirp": "^4.0.1"
- }
- },
- "readdirp": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
- "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
- "dev": true
- }
+ "@types/http-cache-semantics": "^4.0.1",
+ "get-stream": "^6.0.1",
+ "http-cache-semantics": "^4.1.1",
+ "keyv": "^4.5.2",
+ "mimic-response": "^4.0.0",
+ "normalize-url": "^8.0.0",
+ "responselike": "^3.0.0"
}
},
- "call-bind-apply-helpers": {
+ "call-bind": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
- "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
"dev": true,
"requires": {
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2"
- }
- },
- "call-bound": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
- "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
- "dev": true,
- "requires": {
- "call-bind-apply-helpers": "^1.0.2",
- "get-intrinsic": "^1.3.0"
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
}
},
"callsites": {
@@ -12897,40 +14343,37 @@
"integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==",
"dev": true
},
- "citty": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz",
- "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==",
- "dev": true,
- "requires": {
- "consola": "^3.2.3"
- }
- },
"cjs-module-lexer": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz",
"integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==",
"dev": true
},
+ "cli-boxes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz",
+ "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==",
+ "dev": true
+ },
"cli-cursor": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz",
- "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
"dev": true,
"requires": {
- "restore-cursor": "^5.0.0"
+ "restore-cursor": "^3.1.0"
}
},
"cli-spinners": {
- "version": "2.9.2",
- "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz",
- "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==",
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz",
+ "integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==",
"dev": true
},
"cli-width": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz",
- "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.0.0.tgz",
+ "integrity": "sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw==",
"dev": true
},
"cliui": {
@@ -12944,6 +14387,12 @@
"wrap-ansi": "^7.0.0"
}
},
+ "clone": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+ "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
+ "dev": true
+ },
"co": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
@@ -13012,17 +14461,51 @@
"typedarray": "^0.0.6"
}
},
- "confbox": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz",
- "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==",
- "dev": true
+ "config-chain": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz",
+ "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==",
+ "dev": true,
+ "requires": {
+ "ini": "^1.3.4",
+ "proto-list": "~1.2.1"
+ }
},
- "consola": {
- "version": "3.4.2",
- "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz",
- "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==",
- "dev": true
+ "configstore": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz",
+ "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==",
+ "dev": true,
+ "requires": {
+ "dot-prop": "^6.0.1",
+ "graceful-fs": "^4.2.6",
+ "unique-string": "^3.0.0",
+ "write-file-atomic": "^3.0.3",
+ "xdg-basedir": "^5.0.1"
+ },
+ "dependencies": {
+ "dot-prop": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz",
+ "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==",
+ "dev": true,
+ "requires": {
+ "is-obj": "^2.0.0"
+ }
+ },
+ "write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "dev": true,
+ "requires": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
+ }
+ }
+ }
},
"content-disposition": {
"version": "0.5.4",
@@ -13034,43 +14517,43 @@
}
},
"content-type": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
- "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
"dev": true
},
"conventional-changelog": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-6.0.0.tgz",
- "integrity": "sha512-tuUH8H/19VjtD9Ig7l6TQRh+Z0Yt0NZ6w/cCkkyzUbGQTnUEmKfGtkC9gGfVgCfOL1Rzno5NgNF4KY8vR+Jo3w==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-5.1.0.tgz",
+ "integrity": "sha512-aWyE/P39wGYRPllcCEZDxTVEmhyLzTc9XA6z6rVfkuCD2UBnhV/sgSOKbQrEG5z9mEZJjnopjgQooTKxEg8mAg==",
"dev": true,
"requires": {
- "conventional-changelog-angular": "^8.0.0",
- "conventional-changelog-atom": "^5.0.0",
- "conventional-changelog-codemirror": "^5.0.0",
- "conventional-changelog-conventionalcommits": "^8.0.0",
- "conventional-changelog-core": "^8.0.0",
- "conventional-changelog-ember": "^5.0.0",
- "conventional-changelog-eslint": "^6.0.0",
- "conventional-changelog-express": "^5.0.0",
- "conventional-changelog-jquery": "^6.0.0",
- "conventional-changelog-jshint": "^5.0.0",
- "conventional-changelog-preset-loader": "^5.0.0"
+ "conventional-changelog-angular": "^7.0.0",
+ "conventional-changelog-atom": "^4.0.0",
+ "conventional-changelog-codemirror": "^4.0.0",
+ "conventional-changelog-conventionalcommits": "^7.0.2",
+ "conventional-changelog-core": "^7.0.0",
+ "conventional-changelog-ember": "^4.0.0",
+ "conventional-changelog-eslint": "^5.0.0",
+ "conventional-changelog-express": "^4.0.0",
+ "conventional-changelog-jquery": "^5.0.0",
+ "conventional-changelog-jshint": "^4.0.0",
+ "conventional-changelog-preset-loader": "^4.1.0"
},
"dependencies": {
"conventional-changelog-angular": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-8.0.0.tgz",
- "integrity": "sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz",
+ "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==",
"dev": true,
"requires": {
"compare-func": "^2.0.0"
}
},
"conventional-changelog-conventionalcommits": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-8.0.0.tgz",
- "integrity": "sha512-eOvlTO6OcySPyyyk8pKz2dP4jjElYunj9hn9/s0OB+gapTO8zwS9UQWrZ1pmF2hFs3vw1xhonOLGcGjy/zgsuA==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-7.0.2.tgz",
+ "integrity": "sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==",
"dev": true,
"requires": {
"compare-func": "^2.0.0"
@@ -13089,15 +14572,15 @@
}
},
"conventional-changelog-atom": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-5.0.0.tgz",
- "integrity": "sha512-WfzCaAvSCFPkznnLgLnfacRAzjgqjLUjvf3MftfsJzQdDICqkOOpcMtdJF3wTerxSpv2IAAjX8doM3Vozqle3g==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-4.0.0.tgz",
+ "integrity": "sha512-q2YtiN7rnT1TGwPTwjjBSIPIzDJCRE+XAUahWxnh+buKK99Kks4WLMHoexw38GXx9OUxAsrp44f9qXe5VEMYhw==",
"dev": true
},
"conventional-changelog-codemirror": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-5.0.0.tgz",
- "integrity": "sha512-8gsBDI5Y3vrKUCxN6Ue8xr6occZ5nsDEc4C7jO/EovFGozx8uttCAyfhRrvoUAWi2WMm3OmYs+0mPJU7kQdYWQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-4.0.0.tgz",
+ "integrity": "sha512-hQSojc/5imn1GJK3A75m9hEZZhc3urojA5gMpnar4JHmgLnuM3CUIARPpEk86glEKr3c54Po3WV/vCaO/U8g3Q==",
"dev": true
},
"conventional-changelog-conventionalcommits": {
@@ -13112,179 +14595,290 @@
}
},
"conventional-changelog-core": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-8.0.0.tgz",
- "integrity": "sha512-EATUx5y9xewpEe10UEGNpbSHRC6cVZgO+hXQjofMqpy+gFIrcGvH3Fl6yk2VFKh7m+ffenup2N7SZJYpyD9evw==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-7.0.0.tgz",
+ "integrity": "sha512-UYgaB1F/COt7VFjlYKVE/9tTzfU3VUq47r6iWf6lM5T7TlOxr0thI63ojQueRLIpVbrtHK4Ffw+yQGduw2Bhdg==",
"dev": true,
"requires": {
"@hutson/parse-repository-url": "^5.0.0",
"add-stream": "^1.0.0",
- "conventional-changelog-writer": "^8.0.0",
- "conventional-commits-parser": "^6.0.0",
- "git-raw-commits": "^5.0.0",
- "git-semver-tags": "^8.0.0",
+ "conventional-changelog-writer": "^7.0.0",
+ "conventional-commits-parser": "^5.0.0",
+ "git-raw-commits": "^4.0.0",
+ "git-semver-tags": "^7.0.0",
"hosted-git-info": "^7.0.0",
"normalize-package-data": "^6.0.0",
- "read-package-up": "^11.0.0",
- "read-pkg": "^9.0.0"
+ "read-pkg": "^8.0.0",
+ "read-pkg-up": "^10.0.0"
},
"dependencies": {
- "@conventional-changelog/git-client": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@conventional-changelog/git-client/-/git-client-1.0.1.tgz",
- "integrity": "sha512-PJEqBwAleffCMETaVm/fUgHldzBE35JFk3/9LL6NUA5EXa3qednu+UT6M7E5iBu3zIQZCULYIiZ90fBYHt6xUw==",
+ "conventional-commits-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz",
+ "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==",
"dev": true,
"requires": {
- "@types/semver": "^7.5.5",
- "semver": "^7.5.2"
+ "is-text-path": "^2.0.0",
+ "JSONStream": "^1.3.5",
+ "meow": "^12.0.1",
+ "split2": "^4.0.0"
}
},
- "conventional-commits-parser": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.1.0.tgz",
- "integrity": "sha512-5nxDo7TwKB5InYBl4ZC//1g9GRwB/F3TXOGR9hgUjMGfvSP4Vu5NkpNro2+1+TIEy1vwxApl5ircECr2ri5JIw==",
+ "dargs": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/dargs/-/dargs-8.1.0.tgz",
+ "integrity": "sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==",
+ "dev": true
+ },
+ "find-up": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz",
+ "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==",
"dev": true,
"requires": {
- "meow": "^13.0.0"
+ "locate-path": "^7.1.0",
+ "path-exists": "^5.0.0"
}
},
"git-raw-commits": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-5.0.0.tgz",
- "integrity": "sha512-I2ZXrXeOc0KrCvC7swqtIFXFN+rbjnC7b2T943tvemIOVNl+XP8YnA9UVwqFhzzLClnSA60KR/qEjLpXzs73Qg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-4.0.0.tgz",
+ "integrity": "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==",
"dev": true,
"requires": {
- "@conventional-changelog/git-client": "^1.0.0",
- "meow": "^13.0.0"
+ "dargs": "^8.0.0",
+ "meow": "^12.0.1",
+ "split2": "^4.0.0"
}
},
"hosted-git-info": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz",
- "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz",
+ "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==",
"dev": true,
"requires": {
"lru-cache": "^10.0.1"
}
},
+ "is-text-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz",
+ "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==",
+ "dev": true,
+ "requires": {
+ "text-extensions": "^2.0.0"
+ }
+ },
+ "json-parse-even-better-errors": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz",
+ "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==",
+ "dev": true
+ },
+ "lines-and-columns": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz",
+ "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==",
+ "dev": true
+ },
+ "locate-path": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz",
+ "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^6.0.0"
+ }
+ },
"lru-cache": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz",
+ "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==",
"dev": true
},
"meow": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz",
- "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==",
+ "version": "12.1.1",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz",
+ "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==",
"dev": true
},
"normalize-package-data": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz",
- "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz",
+ "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==",
"dev": true,
"requires": {
"hosted-git-info": "^7.0.0",
+ "is-core-module": "^2.8.1",
"semver": "^7.3.5",
"validate-npm-package-license": "^3.0.4"
}
},
- "parse-json": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.3.0.tgz",
- "integrity": "sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==",
+ "p-limit": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
+ "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.26.2",
- "index-to-position": "^1.1.0",
- "type-fest": "^4.39.1"
+ "yocto-queue": "^1.0.0"
}
},
+ "p-locate": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz",
+ "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^4.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.1.1.tgz",
+ "integrity": "sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.21.4",
+ "error-ex": "^1.3.2",
+ "json-parse-even-better-errors": "^3.0.0",
+ "lines-and-columns": "^2.0.3",
+ "type-fest": "^3.8.0"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz",
+ "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
+ "dev": true
+ }
+ }
+ },
+ "path-exists": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
+ "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==",
+ "dev": true
+ },
"read-pkg": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz",
- "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==",
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.1.0.tgz",
+ "integrity": "sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==",
"dev": true,
"requires": {
- "@types/normalize-package-data": "^2.4.3",
+ "@types/normalize-package-data": "^2.4.1",
"normalize-package-data": "^6.0.0",
- "parse-json": "^8.0.0",
- "type-fest": "^4.6.0",
- "unicorn-magic": "^0.1.0"
+ "parse-json": "^7.0.0",
+ "type-fest": "^4.2.0"
}
},
+ "read-pkg-up": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-10.1.0.tgz",
+ "integrity": "sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==",
+ "dev": true,
+ "requires": {
+ "find-up": "^6.3.0",
+ "read-pkg": "^8.1.0",
+ "type-fest": "^4.2.0"
+ }
+ },
+ "split2": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
+ "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
+ "dev": true
+ },
+ "text-extensions": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz",
+ "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==",
+ "dev": true
+ },
"type-fest": {
- "version": "4.39.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.39.1.tgz",
- "integrity": "sha512-uW9qzd66uyHYxwyVBYiwS4Oi0qZyUqwjU+Oevr6ZogYiXt99EOYtwvzMSLw1c3lYo2HzJsep/NB23iEVEgjG/w==",
+ "version": "4.10.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.10.2.tgz",
+ "integrity": "sha512-anpAG63wSpdEbLwOqH8L84urkL6PiVIov3EMmgIhhThevh9aiMQov+6Btx0wldNcvm4wV+e2/Rt1QdDwKHFbHw==",
+ "dev": true
+ },
+ "yocto-queue": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz",
+ "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==",
"dev": true
}
}
},
"conventional-changelog-ember": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-5.0.0.tgz",
- "integrity": "sha512-RPflVfm5s4cSO33GH/Ey26oxhiC67akcxSKL8CLRT3kQX2W3dbE19sSOM56iFqUJYEwv9mD9r6k79weWe1urfg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-4.0.0.tgz",
+ "integrity": "sha512-D0IMhwcJUg1Y8FSry6XAplEJcljkHVlvAZddhhsdbL1rbsqRsMfGx/PIkPYq0ru5aDgn+OxhQ5N5yR7P9mfsvA==",
"dev": true
},
"conventional-changelog-eslint": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-6.0.0.tgz",
- "integrity": "sha512-eiUyULWjzq+ybPjXwU6NNRflApDWlPEQEHvI8UAItYW/h22RKkMnOAtfCZxMmrcMO1OKUWtcf2MxKYMWe9zJuw==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-5.0.0.tgz",
+ "integrity": "sha512-6JtLWqAQIeJLn/OzUlYmzd9fKeNSWmQVim9kql+v4GrZwLx807kAJl3IJVc3jTYfVKWLxhC3BGUxYiuVEcVjgA==",
"dev": true
},
"conventional-changelog-express": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-5.0.0.tgz",
- "integrity": "sha512-D8Q6WctPkQpvr2HNCCmwU5GkX22BVHM0r4EW8vN0230TSyS/d6VQJDAxGb84lbg0dFjpO22MwmsikKL++Oo/oQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-4.0.0.tgz",
+ "integrity": "sha512-yWyy5c7raP9v7aTvPAWzqrztACNO9+FEI1FSYh7UP7YT1AkWgv5UspUeB5v3Ibv4/o60zj2o9GF2tqKQ99lIsw==",
"dev": true
},
"conventional-changelog-jquery": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-6.0.0.tgz",
- "integrity": "sha512-2kxmVakyehgyrho2ZHBi90v4AHswkGzHuTaoH40bmeNqUt20yEkDOSpw8HlPBfvEQBwGtbE+5HpRwzj6ac2UfA==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-5.0.0.tgz",
+ "integrity": "sha512-slLjlXLRNa/icMI3+uGLQbtrgEny3RgITeCxevJB+p05ExiTgHACP5p3XiMKzjBn80n+Rzr83XMYfRInEtCPPw==",
"dev": true
},
"conventional-changelog-jshint": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-5.0.0.tgz",
- "integrity": "sha512-gGNphSb/opc76n2eWaO6ma4/Wqu3tpa2w7i9WYqI6Cs2fncDSI2/ihOfMvXveeTTeld0oFvwMVNV+IYQIk3F3g==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-4.0.0.tgz",
+ "integrity": "sha512-LyXq1bbl0yG0Ai1SbLxIk8ZxUOe3AjnlwE6sVRQmMgetBk+4gY9EO3d00zlEt8Y8gwsITytDnPORl8al7InTjg==",
"dev": true,
"requires": {
"compare-func": "^2.0.0"
}
},
"conventional-changelog-preset-loader": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-5.0.0.tgz",
- "integrity": "sha512-SetDSntXLk8Jh1NOAl1Gu5uLiCNSYenB5tm0YVeZKePRIgDW9lQImromTwLa3c/Gae298tsgOM+/CYT9XAl0NA==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-4.1.0.tgz",
+ "integrity": "sha512-HozQjJicZTuRhCRTq4rZbefaiCzRM2pr6u2NL3XhrmQm4RMnDXfESU6JKu/pnKwx5xtdkYfNCsbhN5exhiKGJA==",
"dev": true
},
"conventional-changelog-writer": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-8.0.1.tgz",
- "integrity": "sha512-hlqcy3xHred2gyYg/zXSMXraY2mjAYYo0msUCpK+BGyaVJMFCKWVXPIHiaacGO2GGp13kvHWXFhYmxT4QQqW3Q==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-7.0.1.tgz",
+ "integrity": "sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==",
"dev": true,
"requires": {
- "conventional-commits-filter": "^5.0.0",
+ "conventional-commits-filter": "^4.0.0",
"handlebars": "^4.7.7",
- "meow": "^13.0.0",
- "semver": "^7.5.2"
+ "json-stringify-safe": "^5.0.1",
+ "meow": "^12.0.1",
+ "semver": "^7.5.2",
+ "split2": "^4.0.0"
},
"dependencies": {
"meow": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz",
- "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==",
+ "version": "12.1.1",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz",
+ "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==",
+ "dev": true
+ },
+ "split2": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
+ "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
"dev": true
}
}
},
"conventional-commits-filter": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-5.0.0.tgz",
- "integrity": "sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-4.0.0.tgz",
+ "integrity": "sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==",
"dev": true
},
"conventional-commits-parser": {
@@ -13302,41 +14896,84 @@
}
},
"conventional-recommended-bump": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-10.0.0.tgz",
- "integrity": "sha512-RK/fUnc2btot0oEVtrj3p2doImDSs7iiz/bftFCDzels0Qs1mxLghp+DFHMaOC0qiCI6sWzlTDyBFSYuot6pRA==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-8.0.0.tgz",
+ "integrity": "sha512-yvGN+VMy00WIe/pJufpmN+I4B2cM/WFK+CFCmDcjyVLyQR6J1KT2iecmA4NQ58gQAiNkvStEjcZp/W9h1JDM1A==",
"dev": true,
"requires": {
- "@conventional-changelog/git-client": "^1.0.0",
- "conventional-changelog-preset-loader": "^5.0.0",
- "conventional-commits-filter": "^5.0.0",
- "conventional-commits-parser": "^6.0.0",
- "meow": "^13.0.0"
+ "concat-stream": "^2.0.0",
+ "conventional-changelog-preset-loader": "^4.0.0",
+ "conventional-commits-filter": "^4.0.0",
+ "conventional-commits-parser": "^5.0.0",
+ "git-raw-commits": "^4.0.0",
+ "git-semver-tags": "^6.0.0",
+ "meow": "^12.0.1"
},
"dependencies": {
- "@conventional-changelog/git-client": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@conventional-changelog/git-client/-/git-client-1.0.1.tgz",
- "integrity": "sha512-PJEqBwAleffCMETaVm/fUgHldzBE35JFk3/9LL6NUA5EXa3qednu+UT6M7E5iBu3zIQZCULYIiZ90fBYHt6xUw==",
+ "conventional-commits-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz",
+ "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==",
"dev": true,
"requires": {
- "@types/semver": "^7.5.5",
+ "is-text-path": "^2.0.0",
+ "JSONStream": "^1.3.5",
+ "meow": "^12.0.1",
+ "split2": "^4.0.0"
+ }
+ },
+ "dargs": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/dargs/-/dargs-8.1.0.tgz",
+ "integrity": "sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==",
+ "dev": true
+ },
+ "git-raw-commits": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-4.0.0.tgz",
+ "integrity": "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==",
+ "dev": true,
+ "requires": {
+ "dargs": "^8.0.0",
+ "meow": "^12.0.1",
+ "split2": "^4.0.0"
+ }
+ },
+ "git-semver-tags": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-6.0.0.tgz",
+ "integrity": "sha512-v5BL6psuUy+Ftuo99141XlOIDoJtKw5+YyDANS7fknSP0iT4cVIanc3toDsH4K+VpIWc19l2/xkwQmXMfloeUA==",
+ "dev": true,
+ "requires": {
+ "meow": "^12.0.1",
"semver": "^7.5.2"
}
},
- "conventional-commits-parser": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.1.0.tgz",
- "integrity": "sha512-5nxDo7TwKB5InYBl4ZC//1g9GRwB/F3TXOGR9hgUjMGfvSP4Vu5NkpNro2+1+TIEy1vwxApl5ircECr2ri5JIw==",
+ "is-text-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz",
+ "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==",
"dev": true,
"requires": {
- "meow": "^13.0.0"
+ "text-extensions": "^2.0.0"
}
},
"meow": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz",
- "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==",
+ "version": "12.1.1",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz",
+ "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==",
+ "dev": true
+ },
+ "split2": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
+ "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
+ "dev": true
+ },
+ "text-extensions": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz",
+ "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==",
"dev": true
}
}
@@ -13348,9 +14985,9 @@
"dev": true
},
"cookie": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
- "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
+ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
"dev": true
},
"cookie-signature": {
@@ -13385,9 +15022,9 @@
"dev": true
},
"cross-spawn": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
- "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
"dev": true,
"requires": {
"path-key": "^3.1.0",
@@ -13395,6 +15032,23 @@
"which": "^2.0.1"
}
},
+ "crypto-random-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz",
+ "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^1.0.1"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
+ "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
+ "dev": true
+ }
+ }
+ },
"dargs": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz",
@@ -13402,9 +15056,9 @@
"dev": true
},
"data-uri-to-buffer": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz",
- "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-5.0.1.tgz",
+ "integrity": "sha512-a9l6T1qqDogvvnw0nKlfZzqsyikEBZBClF39V3TFoKhDtGBqHu2HkuomJc02j5zft8zrUaXEuoicLeW54RkzPg==",
"dev": true
},
"debug": {
@@ -13439,12 +15093,35 @@
}
}
},
+ "decompress-response": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
+ "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
+ "dev": true,
+ "requires": {
+ "mimic-response": "^3.1.0"
+ },
+ "dependencies": {
+ "mimic-response": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
+ "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
+ "dev": true
+ }
+ }
+ },
"dedent": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
"integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==",
"dev": true
},
+ "deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "dev": true
+ },
"deep-is": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
@@ -13458,19 +15135,107 @@
"dev": true
},
"default-browser": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz",
- "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz",
+ "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==",
"dev": true,
"requires": {
- "bundle-name": "^4.1.0",
- "default-browser-id": "^5.0.0"
+ "bundle-name": "^3.0.0",
+ "default-browser-id": "^3.0.0",
+ "execa": "^7.1.1",
+ "titleize": "^3.0.0"
+ },
+ "dependencies": {
+ "execa": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz",
+ "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.1",
+ "human-signals": "^4.3.0",
+ "is-stream": "^3.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^5.1.0",
+ "onetime": "^6.0.0",
+ "signal-exit": "^3.0.7",
+ "strip-final-newline": "^3.0.0"
+ }
+ },
+ "human-signals": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
+ "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==",
+ "dev": true
+ },
+ "is-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
+ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
+ "dev": true
+ },
+ "mimic-fn": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
+ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
+ "dev": true
+ },
+ "npm-run-path": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz",
+ "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==",
+ "dev": true,
+ "requires": {
+ "path-key": "^4.0.0"
+ }
+ },
+ "onetime": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
+ "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^4.0.0"
+ }
+ },
+ "path-key": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
+ "dev": true
+ },
+ "strip-final-newline": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
+ "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
+ "dev": true
+ }
}
},
"default-browser-id": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz",
- "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz",
+ "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==",
+ "dev": true,
+ "requires": {
+ "bplist-parser": "^0.2.0",
+ "untildify": "^4.0.0"
+ }
+ },
+ "defaults": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
+ "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
+ "dev": true,
+ "requires": {
+ "clone": "^1.0.2"
+ }
+ },
+ "defer-to-connect": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
+ "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==",
"dev": true
},
"define-lazy-prop": {
@@ -13479,11 +15244,15 @@
"integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
"dev": true
},
- "defu": {
- "version": "6.1.4",
- "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz",
- "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==",
- "dev": true
+ "define-properties": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
+ "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
+ "dev": true,
+ "requires": {
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ }
},
"degenerator": {
"version": "5.0.1",
@@ -13512,12 +15281,6 @@
"resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
"integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ=="
},
- "destr": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz",
- "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==",
- "dev": true
- },
"destroy": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
@@ -13569,23 +15332,12 @@
"is-obj": "^2.0.0"
}
},
- "dotenv": {
- "version": "16.5.0",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz",
- "integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==",
+ "eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
"dev": true
},
- "dunder-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
- "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
- "dev": true,
- "requires": {
- "call-bind-apply-helpers": "^1.0.1",
- "es-errors": "^1.3.0",
- "gopd": "^1.2.0"
- }
- },
"ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
@@ -13611,9 +15363,9 @@
"dev": true
},
"encodeurl": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
- "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
"dev": true
},
"error-ex": {
@@ -13625,25 +15377,87 @@
"is-arrayish": "^0.2.1"
}
},
- "es-define-property": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
- "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
- "dev": true
- },
- "es-errors": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
- "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
- "dev": true
- },
- "es-object-atoms": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
- "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
+ "es-abstract": {
+ "version": "1.21.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.0.tgz",
+ "integrity": "sha512-GUGtW7eXQay0c+PRq0sGIKSdaBorfVqsCMhGHo4elP7YVqZu9nCZS4UkK4gv71gOWNMra/PaSKD3ao1oWExO0g==",
"dev": true,
"requires": {
- "es-errors": "^1.3.0"
+ "call-bind": "^1.0.2",
+ "es-set-tostringtag": "^2.0.0",
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "function.prototype.name": "^1.1.5",
+ "get-intrinsic": "^1.1.3",
+ "get-symbol-description": "^1.0.0",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
+ "has": "^1.0.3",
+ "has-property-descriptors": "^1.0.0",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.4",
+ "is-array-buffer": "^3.0.0",
+ "is-callable": "^1.2.7",
+ "is-negative-zero": "^2.0.2",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "is-string": "^1.0.7",
+ "is-typed-array": "^1.1.10",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.12.2",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.4.3",
+ "safe-regex-test": "^1.0.0",
+ "string.prototype.trimend": "^1.0.6",
+ "string.prototype.trimstart": "^1.0.6",
+ "typed-array-length": "^1.0.4",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.9"
+ }
+ },
+ "es-array-method-boxes-properly": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz",
+ "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==",
+ "dev": true
+ },
+ "es-get-iterator": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz",
+ "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.0",
+ "has-symbols": "^1.0.1",
+ "is-arguments": "^1.1.0",
+ "is-map": "^2.0.2",
+ "is-set": "^2.0.2",
+ "is-string": "^1.0.5",
+ "isarray": "^2.0.5"
+ }
+ },
+ "es-set-tostringtag": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.0.tgz",
+ "integrity": "sha512-vZVAIWss0FcR/+a08s6e2/GjGjjYBCZJXDrOnj6l5kJCKhQvJs4cnVqUxkVepIhqHbKHm3uwOvPb8lRcqA3DSg==",
+ "dev": true,
+ "requires": {
+ "get-intrinsic": "^1.1.3",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
}
},
"escalade": {
@@ -13652,6 +15466,12 @@
"integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
"dev": true
},
+ "escape-goat": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz",
+ "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==",
+ "dev": true
+ },
"escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
@@ -13863,12 +15683,6 @@
"integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
"dev": true
},
- "eta": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/eta/-/eta-3.5.0.tgz",
- "integrity": "sha512-e3x3FBvGzeCIHhF+zhK8FZA2vC5uFn6b4HJjegUbIWrDb4mJ7JjTGMJY9VGIbRVpmSwHopNiaJibhjIr+HfLug==",
- "dev": true
- },
"etag": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
@@ -13912,37 +15726,37 @@
}
},
"express": {
- "version": "4.21.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
- "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
+ "version": "4.18.2",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
+ "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
"dev": true,
"requires": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
- "body-parser": "1.20.3",
+ "body-parser": "1.20.1",
"content-disposition": "0.5.4",
"content-type": "~1.0.4",
- "cookie": "0.7.1",
+ "cookie": "0.5.0",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "2.0.0",
- "encodeurl": "~2.0.0",
+ "encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
- "finalhandler": "1.3.1",
+ "finalhandler": "1.2.0",
"fresh": "0.5.2",
"http-errors": "2.0.0",
- "merge-descriptors": "1.0.3",
+ "merge-descriptors": "1.0.1",
"methods": "~1.1.2",
"on-finished": "2.4.1",
"parseurl": "~1.3.3",
- "path-to-regexp": "0.1.12",
+ "path-to-regexp": "0.1.7",
"proxy-addr": "~2.0.7",
- "qs": "6.13.0",
+ "qs": "6.11.0",
"range-parser": "~1.2.1",
"safe-buffer": "5.2.1",
- "send": "0.19.0",
- "serve-static": "1.16.2",
+ "send": "0.18.0",
+ "serve-static": "1.15.0",
"setprototypeof": "1.2.0",
"statuses": "2.0.1",
"type-is": "~1.6.18",
@@ -13967,12 +15781,6 @@
}
}
},
- "exsolve": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.5.tgz",
- "integrity": "sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==",
- "dev": true
- },
"external-editor": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
@@ -13984,11 +15792,6 @@
"tmp": "^0.0.33"
}
},
- "fast-content-type-parse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-2.0.1.tgz",
- "integrity": "sha512-nGqtvLrj5w0naR6tDPfB4cUmYCqouzyQiz6C5y/LtcDllJdrcc6WaWW6iXyIIOErTa/XRybj28aasdn4LkVk6Q=="
- },
"fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -13996,16 +15799,16 @@
"dev": true
},
"fast-glob": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
- "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz",
+ "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==",
"dev": true,
"requires": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
"glob-parent": "^5.1.2",
"merge2": "^1.3.0",
- "micromatch": "^4.0.8"
+ "micromatch": "^4.0.4"
},
"dependencies": {
"glob-parent": {
@@ -14049,6 +15852,34 @@
"bser": "2.1.1"
}
},
+ "fetch-blob": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
+ "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
+ "dev": true,
+ "requires": {
+ "node-domexception": "^1.0.0",
+ "web-streams-polyfill": "^3.0.3"
+ }
+ },
+ "figures": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz",
+ "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^5.0.0",
+ "is-unicode-supported": "^1.2.0"
+ },
+ "dependencies": {
+ "escape-string-regexp": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+ "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
+ "dev": true
+ }
+ }
+ },
"file-entry-cache": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
@@ -14059,22 +15890,22 @@
}
},
"fill-range": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
- "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true,
"requires": {
"to-regex-range": "^5.0.1"
}
},
"finalhandler": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
- "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
+ "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
"dev": true,
"requires": {
"debug": "2.6.9",
- "encodeurl": "~2.0.0",
+ "encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"on-finished": "2.4.1",
"parseurl": "~1.3.3",
@@ -14109,12 +15940,6 @@
"path-exists": "^4.0.0"
}
},
- "find-up-simple": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.1.tgz",
- "integrity": "sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==",
- "dev": true
- },
"flat-cache": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
@@ -14132,9 +15957,18 @@
"dev": true
},
"follow-redirects": {
- "version": "1.15.6",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
- "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA=="
+ "version": "1.15.4",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz",
+ "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw=="
+ },
+ "for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.3"
+ }
},
"form-data": {
"version": "4.0.0",
@@ -14146,6 +15980,21 @@
"mime-types": "^2.1.12"
}
},
+ "form-data-encoder": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz",
+ "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==",
+ "dev": true
+ },
+ "formdata-polyfill": {
+ "version": "4.0.10",
+ "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
+ "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
+ "dev": true,
+ "requires": {
+ "fetch-blob": "^3.1.2"
+ }
+ },
"forwarded": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
@@ -14182,9 +16031,27 @@
"optional": true
},
"function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "function.prototype.name": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
+ "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.0",
+ "functions-have-names": "^1.2.2"
+ }
+ },
+ "functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
"dev": true
},
"gensync": {
@@ -14199,28 +16066,15 @@
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"dev": true
},
- "get-east-asian-width": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz",
- "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==",
- "dev": true
- },
"get-intrinsic": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
- "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
+ "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
"dev": true,
"requires": {
- "call-bind-apply-helpers": "^1.0.2",
- "es-define-property": "^1.0.1",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.1.1",
- "function-bind": "^1.1.2",
- "get-proto": "^1.0.1",
- "gopd": "^1.2.0",
- "has-symbols": "^1.1.0",
- "hasown": "^2.0.2",
- "math-intrinsics": "^1.1.0"
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.3"
}
},
"get-package-type": {
@@ -14229,45 +16083,60 @@
"integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
"dev": true
},
- "get-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
- "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
- "dev": true,
- "requires": {
- "dunder-proto": "^1.0.1",
- "es-object-atoms": "^1.0.0"
- }
- },
"get-stream": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
"integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
"dev": true
},
+ "get-symbol-description": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
+ "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
+ }
+ },
"get-uri": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.4.tgz",
- "integrity": "sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.1.tgz",
+ "integrity": "sha512-7ZqONUVqaabogsYNWlYj0t3YZaL6dhuEueZXGF+/YVmf6dHmaFg8/6psJKqhx9QykIDKzpGcy2cn4oV4YC7V/Q==",
"dev": true,
"requires": {
"basic-ftp": "^5.0.2",
- "data-uri-to-buffer": "^6.0.2",
- "debug": "^4.3.4"
- }
- },
- "giget": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/giget/-/giget-2.0.0.tgz",
- "integrity": "sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==",
- "dev": true,
- "requires": {
- "citty": "^0.1.6",
- "consola": "^3.4.0",
- "defu": "^6.1.4",
- "node-fetch-native": "^1.6.6",
- "nypm": "^0.6.0",
- "pathe": "^2.0.3"
+ "data-uri-to-buffer": "^5.0.1",
+ "debug": "^4.3.4",
+ "fs-extra": "^8.1.0"
+ },
+ "dependencies": {
+ "fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true
+ }
}
},
"git-raw-commits": {
@@ -14284,61 +16153,40 @@
}
},
"git-semver-tags": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-8.0.0.tgz",
- "integrity": "sha512-N7YRIklvPH3wYWAR2vysaqGLPRcpwQ0GKdlqTiVN5w1UmCdaeY3K8s6DMKRCh54DDdzyt/OAB6C8jgVtb7Y2Fg==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-7.0.1.tgz",
+ "integrity": "sha512-NY0ZHjJzyyNXHTDZmj+GG7PyuAKtMsyWSwh07CR2hOZFa+/yoTsXci/nF2obzL8UDhakFNkD9gNdt/Ed+cxh2Q==",
"dev": true,
"requires": {
- "@conventional-changelog/git-client": "^1.0.0",
- "meow": "^13.0.0"
+ "meow": "^12.0.1",
+ "semver": "^7.5.2"
},
"dependencies": {
- "@conventional-changelog/git-client": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@conventional-changelog/git-client/-/git-client-1.0.1.tgz",
- "integrity": "sha512-PJEqBwAleffCMETaVm/fUgHldzBE35JFk3/9LL6NUA5EXa3qednu+UT6M7E5iBu3zIQZCULYIiZ90fBYHt6xUw==",
- "dev": true,
- "requires": {
- "@types/semver": "^7.5.5",
- "semver": "^7.5.2"
- }
- },
- "conventional-commits-parser": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.1.0.tgz",
- "integrity": "sha512-5nxDo7TwKB5InYBl4ZC//1g9GRwB/F3TXOGR9hgUjMGfvSP4Vu5NkpNro2+1+TIEy1vwxApl5ircECr2ri5JIw==",
- "dev": true,
- "optional": true,
- "peer": true,
- "requires": {
- "meow": "^13.0.0"
- }
- },
"meow": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz",
- "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==",
+ "version": "12.1.1",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz",
+ "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==",
"dev": true
}
}
},
"git-up": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/git-up/-/git-up-8.1.1.tgz",
- "integrity": "sha512-FDenSF3fVqBYSaJoYy1KSc2wosx0gCvKP+c+PRBht7cAaiCeQlBtfBDX9vgnNOHmdePlSFITVcn4pFfcgNvx3g==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz",
+ "integrity": "sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==",
"dev": true,
"requires": {
"is-ssh": "^1.4.0",
- "parse-url": "^9.2.0"
+ "parse-url": "^8.1.0"
}
},
"git-url-parse": {
- "version": "16.1.0",
- "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-16.1.0.tgz",
- "integrity": "sha512-cPLz4HuK86wClEW7iDdeAKcCVlWXmrLpb2L+G9goW0Z1dtpNS6BXXSOckUTlJT/LDQViE1QZKstNORzHsLnobw==",
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-13.1.0.tgz",
+ "integrity": "sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA==",
"dev": true,
"requires": {
- "git-up": "^8.1.0"
+ "git-up": "^7.0.0"
}
},
"glob": {
@@ -14382,6 +16230,15 @@
"type-fest": "^0.20.2"
}
},
+ "globalthis": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
+ "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3"
+ }
+ },
"globby": {
"version": "11.1.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
@@ -14397,15 +16254,37 @@
}
},
"gopd": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
- "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
- "dev": true
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "dev": true,
+ "requires": {
+ "get-intrinsic": "^1.1.3"
+ }
+ },
+ "got": {
+ "version": "12.6.1",
+ "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz",
+ "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==",
+ "dev": true,
+ "requires": {
+ "@sindresorhus/is": "^5.2.0",
+ "@szmarczak/http-timer": "^5.0.1",
+ "cacheable-lookup": "^7.0.0",
+ "cacheable-request": "^10.2.8",
+ "decompress-response": "^6.0.0",
+ "form-data-encoder": "^2.1.2",
+ "get-stream": "^6.0.1",
+ "http2-wrapper": "^2.1.10",
+ "lowercase-keys": "^3.0.0",
+ "p-cancelable": "^3.0.0",
+ "responselike": "^3.0.0"
+ }
},
"graceful-fs": {
- "version": "4.2.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
+ "version": "4.2.10",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
},
"grapheme-splitter": {
"version": "1.0.4",
@@ -14441,27 +16320,54 @@
"function-bind": "^1.1.1"
}
},
+ "has-bigints": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
+ "dev": true
+ },
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
},
- "has-symbols": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
- "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
- "dev": true
- },
- "hasown": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "has-property-descriptors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
+ "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
"dev": true,
"requires": {
- "function-bind": "^1.1.2"
+ "get-intrinsic": "^1.1.1"
}
},
+ "has-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
+ "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+ "dev": true
+ },
+ "has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "dev": true
+ },
+ "has-tostringtag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
+ "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.2"
+ }
+ },
+ "has-yarn": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz",
+ "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==",
+ "dev": true
+ },
"hosted-git-info": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
@@ -14477,6 +16383,12 @@
"integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
"dev": true
},
+ "http-cache-semantics": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
+ "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==",
+ "dev": true
+ },
"http-errors": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
@@ -14491,27 +16403,45 @@
}
},
"http-proxy-agent": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
- "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz",
+ "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==",
"dev": true,
"requires": {
"agent-base": "^7.1.0",
"debug": "^4.3.4"
}
},
+ "http2-wrapper": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz",
+ "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==",
+ "dev": true,
+ "requires": {
+ "quick-lru": "^5.1.1",
+ "resolve-alpn": "^1.2.0"
+ },
+ "dependencies": {
+ "quick-lru": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
+ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
+ "dev": true
+ }
+ }
+ },
"https": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz",
"integrity": "sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg=="
},
"https-proxy-agent": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
- "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.1.tgz",
+ "integrity": "sha512-Eun8zV0kcYS1g19r78osiQLEFIRspRUDd9tIfBCTBPBeMieF/EsJNL8VI3xOIdYRDEkjQnqOYPsZ2DsWsVsFwQ==",
"dev": true,
"requires": {
- "agent-base": "^7.1.2",
+ "agent-base": "^7.0.2",
"debug": "4"
}
},
@@ -14536,6 +16466,12 @@
"safer-buffer": ">= 2.1.2 < 3"
}
},
+ "ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "dev": true
+ },
"ignore": {
"version": "5.2.4",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
@@ -14552,6 +16488,12 @@
"resolve-from": "^4.0.0"
}
},
+ "import-lazy": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz",
+ "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==",
+ "dev": true
+ },
"import-local": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
@@ -14574,12 +16516,6 @@
"integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
"dev": true
},
- "index-to-position": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-1.1.0.tgz",
- "integrity": "sha512-XPdx9Dq4t9Qk1mTMbWONJqU7boCoumEH7fRET37HX5+khDUl3J2W6PdALxhILYlIYx2amlwYcRPp28p0tSiojg==",
- "dev": true
- },
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -14603,50 +16539,195 @@
"dev": true
},
"inquirer": {
- "version": "12.6.0",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-12.6.0.tgz",
- "integrity": "sha512-3zmmccQd/8o65nPOZJZ+2wqt76Ghw3+LaMrmc6JE/IzcvQhJ1st+QLCOo/iLS85/tILU0myG31a2TAZX0ysAvg==",
+ "version": "9.2.8",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.8.tgz",
+ "integrity": "sha512-SJ0fVfgIzZL1AD6WvFhivlh5/3hN6WeAvpvPrpPXH/8MOcQHeXhinmSm5CDJNRC2Q+sLh9YJ5k8F8/5APMXSfw==",
"dev": true,
"requires": {
- "@inquirer/core": "^10.1.10",
- "@inquirer/prompts": "^7.5.0",
- "@inquirer/type": "^3.0.6",
"ansi-escapes": "^4.3.2",
- "mute-stream": "^2.0.0",
+ "chalk": "^5.3.0",
+ "cli-cursor": "^3.1.0",
+ "cli-width": "^4.0.0",
+ "external-editor": "^3.0.3",
+ "figures": "^5.0.0",
+ "lodash": "^4.17.21",
+ "mute-stream": "1.0.0",
+ "ora": "^5.4.1",
"run-async": "^3.0.0",
- "rxjs": "^7.8.2"
- }
- },
- "ip-address": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz",
- "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==",
- "dev": true,
- "requires": {
- "jsbn": "1.1.0",
- "sprintf-js": "^1.1.3"
+ "rxjs": "^7.8.1",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1",
+ "through": "^2.3.6",
+ "wrap-ansi": "^6.0.1"
},
"dependencies": {
- "sprintf-js": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
- "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
+ "bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "dev": true,
+ "requires": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "dev": true,
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "chalk": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
+ "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
"dev": true
+ },
+ "is-interactive": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
+ "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
+ "dev": true
+ },
+ "is-unicode-supported": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+ "dev": true
+ },
+ "log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ }
+ }
+ },
+ "ora": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
+ "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
+ "dev": true,
+ "requires": {
+ "bl": "^4.1.0",
+ "chalk": "^4.1.0",
+ "cli-cursor": "^3.1.0",
+ "cli-spinners": "^2.5.0",
+ "is-interactive": "^1.0.0",
+ "is-unicode-supported": "^0.1.0",
+ "log-symbols": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "wcwidth": "^1.0.1"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ }
+ }
+ },
+ "wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
}
}
},
+ "internal-slot": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz",
+ "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==",
+ "dev": true,
+ "requires": {
+ "get-intrinsic": "^1.1.3",
+ "has": "^1.0.3",
+ "side-channel": "^1.0.4"
+ }
+ },
+ "interpret": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
+ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
+ "dev": true
+ },
+ "ip": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz",
+ "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==",
+ "dev": true
+ },
"ipaddr.js": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
"integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
"dev": true
},
+ "is-arguments": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
+ "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-array-buffer": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.0.tgz",
+ "integrity": "sha512-TI2hnvT6dPUnn/jARFCJBKL1eeabAfLnKZ2lmW5Uh317s1Ii2IMroL1yMciEk/G+OETykVzlsH6x/L4q/avhgw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.3"
+ }
+ },
"is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
"integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
"dev": true
},
+ "is-bigint": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "dev": true,
+ "requires": {
+ "has-bigints": "^1.0.1"
+ }
+ },
"is-binary-path": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
@@ -14656,6 +16737,31 @@
"binary-extensions": "^2.0.0"
}
},
+ "is-boolean-object": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
+ "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "dev": true
+ },
+ "is-ci": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz",
+ "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==",
+ "dev": true,
+ "requires": {
+ "ci-info": "^3.2.0"
+ }
+ },
"is-core-module": {
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
@@ -14665,6 +16771,15 @@
"has": "^1.0.3"
}
},
+ "is-date-object": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
+ "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "dev": true,
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
"is-docker": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
@@ -14707,18 +16822,72 @@
"is-docker": "^3.0.0"
}
},
+ "is-installed-globally": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz",
+ "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==",
+ "dev": true,
+ "requires": {
+ "global-dirs": "^3.0.0",
+ "is-path-inside": "^3.0.2"
+ },
+ "dependencies": {
+ "global-dirs": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz",
+ "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==",
+ "dev": true,
+ "requires": {
+ "ini": "2.0.0"
+ }
+ },
+ "ini": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
+ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
+ "dev": true
+ }
+ }
+ },
"is-interactive": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz",
"integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==",
"dev": true
},
+ "is-map": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
+ "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==",
+ "dev": true
+ },
+ "is-negative-zero": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
+ "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
+ "dev": true
+ },
+ "is-npm": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz",
+ "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==",
+ "dev": true
+ },
"is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true
},
+ "is-number-object": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+ "dev": true,
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
"is-obj": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
@@ -14742,10 +16911,35 @@
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q=="
},
+ "is-regex": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-set": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz",
+ "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==",
+ "dev": true
+ },
+ "is-shared-array-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2"
+ }
+ },
"is-ssh": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.1.tgz",
- "integrity": "sha512-JNeu1wQsHjyHgn9NcWTaXq6zWSR6hqE0++zhfZlkFBbScNkyvxCdeV8sRkSBaeLKxmbpR21brail63ACNxJ0Tg==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz",
+ "integrity": "sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==",
"dev": true,
"requires": {
"protocols": "^2.0.1"
@@ -14757,6 +16951,24 @@
"integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
"dev": true
},
+ "is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "dev": true,
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-symbol": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
+ "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.2"
+ }
+ },
"is-text-path": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz",
@@ -14766,21 +16978,69 @@
"text-extensions": "^1.0.0"
}
},
- "is-unicode-supported": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz",
- "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==",
- "dev": true
- },
- "is-wsl": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz",
- "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==",
+ "is-typed-array": {
+ "version": "1.1.10",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz",
+ "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==",
"dev": true,
"requires": {
- "is-inside-container": "^1.0.0"
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0"
}
},
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
+ "dev": true
+ },
+ "is-unicode-supported": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz",
+ "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==",
+ "dev": true
+ },
+ "is-weakref": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
+ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2"
+ }
+ },
+ "is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "dev": true,
+ "requires": {
+ "is-docker": "^2.0.0"
+ },
+ "dependencies": {
+ "is-docker": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
+ "dev": true
+ }
+ }
+ },
+ "is-yarn-global": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz",
+ "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==",
+ "dev": true
+ },
+ "isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "dev": true
+ },
"isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
@@ -14788,9 +17048,9 @@
"dev": true
},
"issue-parser": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-7.0.1.tgz",
- "integrity": "sha512-3YZcUUR2Wt1WsapF+S/WiA2WmlW0cWAoPccMqne7AxEBhCdFeTPjfv/Axb8V2gyCgY3nRw+ksZ3xSUX+R47iAg==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-6.0.0.tgz",
+ "integrity": "sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==",
"dev": true,
"requires": {
"lodash.capitalize": "^4.2.1",
@@ -14859,6 +17119,22 @@
"istanbul-lib-report": "^3.0.0"
}
},
+ "iterate-iterator": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.2.tgz",
+ "integrity": "sha512-t91HubM4ZDQ70M9wqp+pcNpu8OyJ9UAtXntT/Bcsvp5tZMnz9vRa+IunKXeI8AnfZMTv0jNuVEmGeLSMjVvfPw==",
+ "dev": true
+ },
+ "iterate-value": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz",
+ "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==",
+ "dev": true,
+ "requires": {
+ "es-get-iterator": "^1.0.2",
+ "iterate-iterator": "^1.0.1"
+ }
+ },
"jest": {
"version": "29.5.0",
"resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz",
@@ -15297,12 +17573,6 @@
}
}
},
- "jiti": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz",
- "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==",
- "dev": true
- },
"js-sdsl": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz",
@@ -15324,18 +17594,18 @@
"argparse": "^2.0.1"
}
},
- "jsbn": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz",
- "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==",
- "dev": true
- },
"jsesc": {
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
"integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
"dev": true
},
+ "json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true
+ },
"json-parse-even-better-errors": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
@@ -15391,6 +17661,15 @@
"through": ">=2.2.7 <3"
}
},
+ "keyv": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz",
+ "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==",
+ "dev": true,
+ "requires": {
+ "json-buffer": "3.0.1"
+ }
+ },
"kind-of": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
@@ -15403,6 +17682,15 @@
"integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
"dev": true
},
+ "latest-version": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz",
+ "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==",
+ "dev": true,
+ "requires": {
+ "package-json": "^8.1.0"
+ }
+ },
"leven": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
@@ -15458,12 +17746,6 @@
"integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==",
"dev": true
},
- "lodash.get": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
- "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
- "dev": true
- },
"lodash.isfunction": {
"version": "3.0.9",
"resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz",
@@ -15537,29 +17819,29 @@
"dev": true
},
"log-symbols": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz",
- "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz",
+ "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==",
"dev": true,
"requires": {
- "chalk": "^5.3.0",
- "is-unicode-supported": "^1.3.0"
+ "chalk": "^5.0.0",
+ "is-unicode-supported": "^1.1.0"
},
"dependencies": {
"chalk": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz",
- "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==",
- "dev": true
- },
- "is-unicode-supported": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz",
- "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
+ "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
"dev": true
}
}
},
+ "lowercase-keys": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz",
+ "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==",
+ "dev": true
+ },
"lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
@@ -15570,9 +17852,9 @@
}
},
"macos-release": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-3.3.0.tgz",
- "integrity": "sha512-tPJQ1HeyiU2vRruNGhZ+VleWuMQRro8iFtJxYgnS4NQe+EukKF6aGiIT+7flZhISAt2iaXBCfFGvAyif7/f8nQ==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-3.2.0.tgz",
+ "integrity": "sha512-fSErXALFNsnowREYZ49XCdOHF8wOPWuFOGQrAhP7x5J/BqQv+B02cNsTykGpDgRVx43EKg++6ANmTaGTtW+hUA==",
"dev": true
},
"make-dir": {
@@ -15613,12 +17895,6 @@
"integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==",
"dev": true
},
- "math-intrinsics": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
- "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
- "dev": true
- },
"media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
@@ -15659,9 +17935,9 @@
}
},
"merge-descriptors": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
- "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==",
"dev": true
},
"merge-stream": {
@@ -15683,12 +17959,12 @@
"dev": true
},
"micromatch": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
- "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
"dev": true,
"requires": {
- "braces": "^3.0.3",
+ "braces": "^3.0.2",
"picomatch": "^2.3.1"
}
},
@@ -15717,10 +17993,10 @@
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
"dev": true
},
- "mimic-function": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz",
- "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==",
+ "mimic-response": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz",
+ "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==",
"dev": true
},
"min-indent": {
@@ -15761,9 +18037,9 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"mute-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz",
- "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz",
+ "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==",
"dev": true
},
"mylas": {
@@ -15831,6 +18107,12 @@
"propagate": "^2.0.0"
}
},
+ "node-domexception": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
+ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
+ "dev": true
+ },
"node-fetch": {
"version": "2.6.7",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
@@ -15839,12 +18121,6 @@
"whatwg-url": "^5.0.0"
}
},
- "node-fetch-native": {
- "version": "1.6.6",
- "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.6.tgz",
- "integrity": "sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==",
- "dev": true
- },
"node-int64": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
@@ -15875,6 +18151,12 @@
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true
},
+ "normalize-url": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz",
+ "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==",
+ "dev": true
+ },
"npm-run-path": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
@@ -15884,39 +18166,30 @@
"path-key": "^3.0.0"
}
},
- "nypm": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.6.0.tgz",
- "integrity": "sha512-mn8wBFV9G9+UFHIrq+pZ2r2zL4aPau/by3kJb3cM7+5tQHMt6HGQB8FDIeKFYp8o0D2pnH6nVsO88N4AmUxIWg==",
+ "object-inspect": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
+ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
+ "dev": true
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
+ },
+ "object.assign": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
+ "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
"dev": true,
"requires": {
- "citty": "^0.1.6",
- "consola": "^3.4.0",
- "pathe": "^2.0.3",
- "pkg-types": "^2.0.0",
- "tinyexec": "^0.3.2"
- },
- "dependencies": {
- "tinyexec": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz",
- "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==",
- "dev": true
- }
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "has-symbols": "^1.0.3",
+ "object-keys": "^1.1.1"
}
},
- "object-inspect": {
- "version": "1.13.4",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
- "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
- "dev": true
- },
- "ohash": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz",
- "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==",
- "dev": true
- },
"on-finished": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
@@ -15944,15 +18217,15 @@
}
},
"open": {
- "version": "10.1.2",
- "resolved": "https://registry.npmjs.org/open/-/open-10.1.2.tgz",
- "integrity": "sha512-cxN6aIDPz6rm8hbebcP7vrQNhvRcveZoJU72Y7vskh4oIm+BZwBECnx5nTmrlres1Qapvx27Qo1Auukpf8PKXw==",
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz",
+ "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==",
"dev": true,
"requires": {
- "default-browser": "^5.2.1",
+ "default-browser": "^4.0.0",
"define-lazy-prop": "^3.0.0",
"is-inside-container": "^1.0.0",
- "is-wsl": "^3.1.0"
+ "is-wsl": "^2.2.0"
}
},
"optionator": {
@@ -15970,49 +18243,51 @@
}
},
"ora": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/ora/-/ora-8.2.0.tgz",
- "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==",
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-6.3.1.tgz",
+ "integrity": "sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==",
"dev": true,
"requires": {
- "chalk": "^5.3.0",
- "cli-cursor": "^5.0.0",
- "cli-spinners": "^2.9.2",
+ "chalk": "^5.0.0",
+ "cli-cursor": "^4.0.0",
+ "cli-spinners": "^2.6.1",
"is-interactive": "^2.0.0",
- "is-unicode-supported": "^2.0.0",
- "log-symbols": "^6.0.0",
- "stdin-discarder": "^0.2.2",
- "string-width": "^7.2.0",
- "strip-ansi": "^7.1.0"
+ "is-unicode-supported": "^1.1.0",
+ "log-symbols": "^5.1.0",
+ "stdin-discarder": "^0.1.0",
+ "strip-ansi": "^7.0.1",
+ "wcwidth": "^1.0.1"
},
"dependencies": {
"ansi-regex": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
- "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
"dev": true
},
"chalk": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz",
- "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
+ "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
"dev": true
},
- "emoji-regex": {
- "version": "10.4.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz",
- "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==",
- "dev": true
- },
- "string-width": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
- "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==",
+ "cli-cursor": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz",
+ "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==",
"dev": true,
"requires": {
- "emoji-regex": "^10.3.0",
- "get-east-asian-width": "^1.0.0",
- "strip-ansi": "^7.1.0"
+ "restore-cursor": "^4.0.0"
+ }
+ },
+ "restore-cursor": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz",
+ "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==",
+ "dev": true,
+ "requires": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
}
},
"strip-ansi": {
@@ -16027,13 +18302,13 @@
}
},
"os-name": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/os-name/-/os-name-6.0.0.tgz",
- "integrity": "sha512-bv608E0UX86atYi2GMGjDe0vF/X1TJjemNS8oEW6z22YW1Rc3QykSYoGfkQbX0zZX9H0ZB6CQP/3GTf1I5hURg==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/os-name/-/os-name-5.1.0.tgz",
+ "integrity": "sha512-YEIoAnM6zFmzw3PQ201gCVCIWbXNyKObGlVvpAVvraAeOHnlYVKFssbA/riRX5R40WA6kKrZ7Dr7dWzO3nKSeQ==",
"dev": true,
"requires": {
- "macos-release": "^3.2.0",
- "windows-release": "^6.0.0"
+ "macos-release": "^3.1.0",
+ "windows-release": "^5.0.1"
}
},
"os-tmpdir": {
@@ -16042,6 +18317,12 @@
"integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
"dev": true
},
+ "p-cancelable": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz",
+ "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==",
+ "dev": true
+ },
"p-limit": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
@@ -16067,19 +18348,19 @@
"dev": true
},
"pac-proxy-agent": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz",
- "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.0.tgz",
+ "integrity": "sha512-t4tRAMx0uphnZrio0S0Jw9zg3oDbz1zVhQ/Vy18FjLfP1XOLNUEjaVxYCYRI6NS+BsMBXKIzV6cTLOkO9AtywA==",
"dev": true,
"requires": {
"@tootallnate/quickjs-emscripten": "^0.23.0",
- "agent-base": "^7.1.2",
+ "agent-base": "^7.0.2",
"debug": "^4.3.4",
"get-uri": "^6.0.1",
"http-proxy-agent": "^7.0.0",
- "https-proxy-agent": "^7.0.6",
- "pac-resolver": "^7.0.1",
- "socks-proxy-agent": "^8.0.5"
+ "https-proxy-agent": "^7.0.0",
+ "pac-resolver": "^7.0.0",
+ "socks-proxy-agent": "^8.0.1"
}
},
"pac-resolver": {
@@ -16092,6 +18373,18 @@
"netmask": "^2.0.2"
}
},
+ "package-json": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.0.tgz",
+ "integrity": "sha512-hySwcV8RAWeAfPsXb9/HGSPn8lwDnv6fabH+obUZKX169QknRkRhPxd1yMubpKDskLFATkl3jHpNtVtDPFA0Wg==",
+ "dev": true,
+ "requires": {
+ "got": "^12.1.0",
+ "registry-auth-token": "^5.0.1",
+ "registry-url": "^6.0.0",
+ "semver": "^7.3.7"
+ }
+ },
"parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -16114,21 +18407,20 @@
}
},
"parse-path": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.1.0.tgz",
- "integrity": "sha512-EuCycjZtfPcjWk7KTksnJ5xPMvWGA/6i4zrLYhRG0hGvC3GPU/jGUj3Cy+ZR0v30duV3e23R95T1lE2+lsndSw==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.0.0.tgz",
+ "integrity": "sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==",
"dev": true,
"requires": {
"protocols": "^2.0.0"
}
},
"parse-url": {
- "version": "9.2.0",
- "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-9.2.0.tgz",
- "integrity": "sha512-bCgsFI+GeGWPAvAiUv63ZorMeif3/U0zaXABGJbOWt5OH2KCaPHF6S+0ok4aqM9RuIPGyZdx9tR9l13PsW4AYQ==",
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-8.1.0.tgz",
+ "integrity": "sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==",
"dev": true,
"requires": {
- "@types/parse-path": "^7.0.0",
"parse-path": "^7.0.0"
}
},
@@ -16163,9 +18455,9 @@
"dev": true
},
"path-to-regexp": {
- "version": "0.1.12",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
- "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==",
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==",
"dev": true
},
"path-type": {
@@ -16174,18 +18466,6 @@
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
"dev": true
},
- "pathe": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
- "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
- "dev": true
- },
- "perfect-debounce": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz",
- "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==",
- "dev": true
- },
"picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
@@ -16252,17 +18532,6 @@
}
}
},
- "pkg-types": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.1.0.tgz",
- "integrity": "sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==",
- "dev": true,
- "requires": {
- "confbox": "^0.2.1",
- "exsolve": "^1.0.1",
- "pathe": "^2.0.3"
- }
- },
"plimit-lit": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/plimit-lit/-/plimit-lit-1.5.0.tgz",
@@ -16297,6 +18566,20 @@
}
}
},
+ "promise.allsettled": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.6.tgz",
+ "integrity": "sha512-22wJUOD3zswWFqgwjNHa1965LvqTX87WPu/lreY2KSd7SVcERfuZ4GfUaOnJNnvtoIv2yXT/W00YIGMetXtFXg==",
+ "dev": true,
+ "requires": {
+ "array.prototype.map": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "get-intrinsic": "^1.1.3",
+ "iterate-value": "^1.0.2"
+ }
+ },
"prompts": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
@@ -16313,10 +18596,16 @@
"integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==",
"dev": true
},
+ "proto-list": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
+ "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==",
+ "dev": true
+ },
"protocols": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.2.tgz",
- "integrity": "sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz",
+ "integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==",
"dev": true
},
"proxy-addr": {
@@ -16330,19 +18619,19 @@
}
},
"proxy-agent": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz",
- "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==",
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.0.tgz",
+ "integrity": "sha512-0LdR757eTj/JfuU7TL2YCuAZnxWXu3tkJbg4Oq3geW/qFNT/32T0sp2HnZ9O0lMR4q3vwAt0+xCA8SR0WAD0og==",
"dev": true,
"requires": {
- "agent-base": "^7.1.2",
+ "agent-base": "^7.0.2",
"debug": "^4.3.4",
- "http-proxy-agent": "^7.0.1",
- "https-proxy-agent": "^7.0.6",
+ "http-proxy-agent": "^7.0.0",
+ "https-proxy-agent": "^7.0.0",
"lru-cache": "^7.14.1",
- "pac-proxy-agent": "^7.1.0",
+ "pac-proxy-agent": "^7.0.0",
"proxy-from-env": "^1.1.0",
- "socks-proxy-agent": "^8.0.5"
+ "socks-proxy-agent": "^8.0.1"
},
"dependencies": {
"lru-cache": {
@@ -16364,6 +18653,15 @@
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
"dev": true
},
+ "pupa": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz",
+ "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==",
+ "dev": true,
+ "requires": {
+ "escape-goat": "^4.0.0"
+ }
+ },
"pure-rand": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.2.tgz",
@@ -16377,12 +18675,12 @@
"dev": true
},
"qs": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
- "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
+ "version": "6.11.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
+ "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
"dev": true,
"requires": {
- "side-channel": "^1.0.6"
+ "side-channel": "^1.0.4"
}
},
"queue-lit": {
@@ -16410,9 +18708,9 @@
"dev": true
},
"raw-body": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
- "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
+ "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
"dev": true,
"requires": {
"bytes": "3.1.2",
@@ -16421,14 +18719,24 @@
"unpipe": "1.0.0"
}
},
- "rc9": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/rc9/-/rc9-2.1.2.tgz",
- "integrity": "sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==",
+ "rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
"dev": true,
"requires": {
- "defu": "^6.1.4",
- "destr": "^2.0.3"
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "dependencies": {
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
+ "dev": true
+ }
}
},
"react-is": {
@@ -16437,75 +18745,6 @@
"integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==",
"dev": true
},
- "read-package-up": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/read-package-up/-/read-package-up-11.0.0.tgz",
- "integrity": "sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==",
- "dev": true,
- "requires": {
- "find-up-simple": "^1.0.0",
- "read-pkg": "^9.0.0",
- "type-fest": "^4.6.0"
- },
- "dependencies": {
- "hosted-git-info": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz",
- "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==",
- "dev": true,
- "requires": {
- "lru-cache": "^10.0.1"
- }
- },
- "lru-cache": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
- "dev": true
- },
- "normalize-package-data": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz",
- "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==",
- "dev": true,
- "requires": {
- "hosted-git-info": "^7.0.0",
- "semver": "^7.3.5",
- "validate-npm-package-license": "^3.0.4"
- }
- },
- "parse-json": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.3.0.tgz",
- "integrity": "sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.26.2",
- "index-to-position": "^1.1.0",
- "type-fest": "^4.39.1"
- }
- },
- "read-pkg": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz",
- "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==",
- "dev": true,
- "requires": {
- "@types/normalize-package-data": "^2.4.3",
- "normalize-package-data": "^6.0.0",
- "parse-json": "^8.0.0",
- "type-fest": "^4.6.0",
- "unicorn-magic": "^0.1.0"
- }
- },
- "type-fest": {
- "version": "4.39.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.39.1.tgz",
- "integrity": "sha512-uW9qzd66uyHYxwyVBYiwS4Oi0qZyUqwjU+Oevr6ZogYiXt99EOYtwvzMSLw1c3lYo2HzJsep/NB23iEVEgjG/w==",
- "dev": true
- }
- }
- },
"read-pkg": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
@@ -16626,6 +18865,15 @@
"picomatch": "^2.2.1"
}
},
+ "rechoir": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+ "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==",
+ "dev": true,
+ "requires": {
+ "resolve": "^1.1.6"
+ }
+ },
"redent": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
@@ -16636,117 +18884,267 @@
"strip-indent": "^3.0.0"
}
},
+ "regexp.prototype.flags": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
+ "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "functions-have-names": "^1.2.2"
+ }
+ },
"regexpp": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
"integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
"dev": true
},
- "release-it": {
- "version": "19.0.2",
- "resolved": "https://registry.npmjs.org/release-it/-/release-it-19.0.2.tgz",
- "integrity": "sha512-tGRCcKeXNOMrK9Qe+ZIgQiMlQgjV8PLxZjTq1XGlCk5u1qPgx+Pps0i8HIt667FDt0wLjFtvn5o9ItpitKnVUA==",
+ "registry-auth-token": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.1.tgz",
+ "integrity": "sha512-UfxVOj8seK1yaIOiieV4FIP01vfBDLsY0H9sQzi9EbbUdJiuuBjJgLa1DpImXMNPnVkBD4eVxTEXcrZA6kfpJA==",
"dev": true,
"requires": {
- "@nodeutils/defaults-deep": "1.1.0",
- "@octokit/rest": "21.1.1",
- "@phun-ky/typeof": "1.2.8",
+ "@pnpm/npm-conf": "^1.0.4"
+ }
+ },
+ "registry-url": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz",
+ "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==",
+ "dev": true,
+ "requires": {
+ "rc": "1.2.8"
+ }
+ },
+ "release-it": {
+ "version": "16.1.3",
+ "resolved": "https://registry.npmjs.org/release-it/-/release-it-16.1.3.tgz",
+ "integrity": "sha512-NoK3gxOcAtnmp9tz9pbq+IgMFTaPly/B8FWzKObOAGDl5BAC5BDcbWqr3lXyjlLqI+vd/NtO6tQIduIlpNLALg==",
+ "dev": true,
+ "requires": {
+ "@iarna/toml": "2.2.5",
+ "@octokit/rest": "19.0.13",
"async-retry": "1.3.3",
- "c12": "3.0.3",
- "ci-info": "^4.2.0",
- "eta": "3.5.0",
- "git-url-parse": "16.1.0",
- "inquirer": "12.6.0",
- "issue-parser": "7.0.1",
- "lodash.get": "4.4.2",
- "lodash.merge": "4.6.2",
- "mime-types": "3.0.1",
+ "chalk": "5.3.0",
+ "cosmiconfig": "8.2.0",
+ "execa": "7.1.1",
+ "git-url-parse": "13.1.0",
+ "globby": "13.2.2",
+ "got": "13.0.0",
+ "inquirer": "9.2.8",
+ "is-ci": "3.0.1",
+ "issue-parser": "6.0.0",
+ "lodash": "4.17.21",
+ "mime-types": "2.1.35",
"new-github-release-url": "2.0.0",
- "open": "10.1.2",
- "ora": "8.2.0",
- "os-name": "6.0.0",
- "proxy-agent": "6.5.0",
- "semver": "7.7.1",
- "tinyexec": "1.0.1",
- "tinyglobby": "0.2.13",
- "undici": "6.21.2",
+ "node-fetch": "3.3.1",
+ "open": "9.1.0",
+ "ora": "6.3.1",
+ "os-name": "5.1.0",
+ "promise.allsettled": "1.0.6",
+ "proxy-agent": "6.3.0",
+ "semver": "7.5.4",
+ "shelljs": "0.8.5",
+ "update-notifier": "6.0.2",
"url-join": "5.0.0",
- "wildcard-match": "5.1.4",
+ "wildcard-match": "5.1.2",
"yargs-parser": "21.1.1"
},
"dependencies": {
"@octokit/openapi-types": {
- "version": "24.2.0",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz",
- "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==",
+ "version": "18.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz",
+ "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==",
"dev": true
},
"@octokit/plugin-paginate-rest": {
- "version": "11.6.0",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.6.0.tgz",
- "integrity": "sha512-n5KPteiF7pWKgBIBJSk8qzoZWcUkza2O6A0za97pMGVrGfPdltxrfmfF5GucHYvHGZD8BdaZmmHGz5cX/3gdpw==",
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz",
+ "integrity": "sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==",
"dev": true,
"requires": {
- "@octokit/types": "^13.10.0"
+ "@octokit/tsconfig": "^1.0.2",
+ "@octokit/types": "^9.2.3"
}
},
- "@octokit/plugin-request-log": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-5.3.1.tgz",
- "integrity": "sha512-n/lNeCtq+9ofhC15xzmJCNKP2BWTv8Ih2TTy+jatNCCq/gQP/V7rK3fjIfuz0pDWDALO/o/4QY4hyOF6TQQFUw==",
- "dev": true,
- "requires": {}
- },
"@octokit/plugin-rest-endpoint-methods": {
- "version": "13.5.0",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.5.0.tgz",
- "integrity": "sha512-9Pas60Iv9ejO3WlAX3maE1+38c5nqbJXV5GrncEfkndIpZrJ/WPMRd2xYDcPPEt5yzpxcjw9fWNoPhsSGzqKqw==",
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.2.3.tgz",
+ "integrity": "sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA==",
"dev": true,
"requires": {
- "@octokit/types": "^13.10.0"
+ "@octokit/types": "^10.0.0"
+ },
+ "dependencies": {
+ "@octokit/types": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-10.0.0.tgz",
+ "integrity": "sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==",
+ "dev": true,
+ "requires": {
+ "@octokit/openapi-types": "^18.0.0"
+ }
+ }
}
},
"@octokit/rest": {
- "version": "21.1.1",
- "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-21.1.1.tgz",
- "integrity": "sha512-sTQV7va0IUVZcntzy1q3QqPm/r8rWtDCqpRAmb8eXXnKkjoQEtFe3Nt5GTVsHft+R6jJoHeSiVLcgcvhtue/rg==",
+ "version": "19.0.13",
+ "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.13.tgz",
+ "integrity": "sha512-/EzVox5V9gYGdbAI+ovYj3nXQT1TtTHRT+0eZPcuC05UFSWO3mdO9UY1C0i2eLF9Un1ONJkAk+IEtYGAC+TahA==",
"dev": true,
"requires": {
- "@octokit/core": "^6.1.4",
- "@octokit/plugin-paginate-rest": "^11.4.2",
- "@octokit/plugin-request-log": "^5.3.1",
- "@octokit/plugin-rest-endpoint-methods": "^13.3.0"
+ "@octokit/core": "^4.2.1",
+ "@octokit/plugin-paginate-rest": "^6.1.2",
+ "@octokit/plugin-request-log": "^1.0.4",
+ "@octokit/plugin-rest-endpoint-methods": "^7.1.2"
}
},
"@octokit/types": {
- "version": "13.10.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz",
- "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==",
+ "version": "9.3.2",
+ "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz",
+ "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==",
"dev": true,
"requires": {
- "@octokit/openapi-types": "^24.2.0"
+ "@octokit/openapi-types": "^18.0.0"
}
},
- "ci-info": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.2.0.tgz",
- "integrity": "sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==",
+ "chalk": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
+ "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
"dev": true
},
- "mime-db": {
- "version": "1.54.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
- "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
+ "data-uri-to-buffer": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz",
+ "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==",
"dev": true
},
- "mime-types": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz",
- "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==",
+ "execa": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz",
+ "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==",
"dev": true,
"requires": {
- "mime-db": "^1.54.0"
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.1",
+ "human-signals": "^4.3.0",
+ "is-stream": "^3.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^5.1.0",
+ "onetime": "^6.0.0",
+ "signal-exit": "^3.0.7",
+ "strip-final-newline": "^3.0.0"
}
+ },
+ "globby": {
+ "version": "13.2.2",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz",
+ "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==",
+ "dev": true,
+ "requires": {
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.3.0",
+ "ignore": "^5.2.4",
+ "merge2": "^1.4.1",
+ "slash": "^4.0.0"
+ }
+ },
+ "got": {
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-13.0.0.tgz",
+ "integrity": "sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==",
+ "dev": true,
+ "requires": {
+ "@sindresorhus/is": "^5.2.0",
+ "@szmarczak/http-timer": "^5.0.1",
+ "cacheable-lookup": "^7.0.0",
+ "cacheable-request": "^10.2.8",
+ "decompress-response": "^6.0.0",
+ "form-data-encoder": "^2.1.2",
+ "get-stream": "^6.0.1",
+ "http2-wrapper": "^2.1.10",
+ "lowercase-keys": "^3.0.0",
+ "p-cancelable": "^3.0.0",
+ "responselike": "^3.0.0"
+ }
+ },
+ "human-signals": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
+ "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==",
+ "dev": true
+ },
+ "is-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
+ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
+ "dev": true
+ },
+ "mimic-fn": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
+ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
+ "dev": true
+ },
+ "node-fetch": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz",
+ "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==",
+ "dev": true,
+ "requires": {
+ "data-uri-to-buffer": "^4.0.0",
+ "fetch-blob": "^3.1.4",
+ "formdata-polyfill": "^4.0.10"
+ }
+ },
+ "npm-run-path": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz",
+ "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==",
+ "dev": true,
+ "requires": {
+ "path-key": "^4.0.0"
+ }
+ },
+ "onetime": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
+ "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^4.0.0"
+ }
+ },
+ "path-key": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
+ "dev": true
+ },
+ "semver": {
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "slash": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
+ "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==",
+ "dev": true
+ },
+ "strip-final-newline": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
+ "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
+ "dev": true
}
}
},
@@ -16773,6 +19171,12 @@
"supports-preserve-symlinks-flag": "^1.0.0"
}
},
+ "resolve-alpn": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
+ "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==",
+ "dev": true
+ },
"resolve-cwd": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
@@ -16811,31 +19215,23 @@
"integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==",
"dev": true
},
- "restore-cursor": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz",
- "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==",
+ "responselike": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz",
+ "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==",
"dev": true,
"requires": {
- "onetime": "^7.0.0",
- "signal-exit": "^4.1.0"
- },
- "dependencies": {
- "onetime": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz",
- "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==",
- "dev": true,
- "requires": {
- "mimic-function": "^5.0.0"
- }
- },
- "signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "dev": true
- }
+ "lowercase-keys": "^3.0.0"
+ }
+ },
+ "restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dev": true,
+ "requires": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
}
},
"retry": {
@@ -16860,10 +19256,13 @@
}
},
"run-applescript": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz",
- "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==",
- "dev": true
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz",
+ "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==",
+ "dev": true,
+ "requires": {
+ "execa": "^5.0.0"
+ }
},
"run-async": {
"version": "3.0.0",
@@ -16881,18 +19280,18 @@
}
},
"rxjs": {
- "version": "7.8.2",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz",
- "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==",
+ "version": "7.8.1",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
"dev": true,
"requires": {
"tslib": "^2.1.0"
},
"dependencies": {
"tslib": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
- "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz",
+ "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==",
"dev": true
}
}
@@ -16903,6 +19302,17 @@
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"dev": true
},
+ "safe-regex-test": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
+ "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.3",
+ "is-regex": "^1.1.4"
+ }
+ },
"safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
@@ -16910,15 +19320,27 @@
"dev": true
},
"semver": {
- "version": "7.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
- "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
- "dev": true
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "semver-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz",
+ "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==",
+ "dev": true,
+ "requires": {
+ "semver": "^7.3.5"
+ }
},
"send": {
- "version": "0.19.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
- "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
+ "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
"dev": true,
"requires": {
"debug": "2.6.9",
@@ -16953,12 +19375,6 @@
}
}
},
- "encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
- "dev": true
- },
"ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
@@ -16968,15 +19384,15 @@
}
},
"serve-static": {
- "version": "1.16.2",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
- "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
+ "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
"dev": true,
"requires": {
- "encodeurl": "~2.0.0",
+ "encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"parseurl": "~1.3.3",
- "send": "0.19.0"
+ "send": "0.18.0"
}
},
"setprototypeof": {
@@ -17000,52 +19416,26 @@
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"dev": true
},
+ "shelljs": {
+ "version": "0.8.5",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz",
+ "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.0.0",
+ "interpret": "^1.0.0",
+ "rechoir": "^0.6.2"
+ }
+ },
"side-channel": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
- "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
"dev": true,
"requires": {
- "es-errors": "^1.3.0",
- "object-inspect": "^1.13.3",
- "side-channel-list": "^1.0.0",
- "side-channel-map": "^1.0.1",
- "side-channel-weakmap": "^1.0.2"
- }
- },
- "side-channel-list": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
- "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
- "dev": true,
- "requires": {
- "es-errors": "^1.3.0",
- "object-inspect": "^1.13.3"
- }
- },
- "side-channel-map": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
- "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
- "dev": true,
- "requires": {
- "call-bound": "^1.0.2",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.5",
- "object-inspect": "^1.13.3"
- }
- },
- "side-channel-weakmap": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
- "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
- "dev": true,
- "requires": {
- "call-bound": "^1.0.2",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.5",
- "object-inspect": "^1.13.3",
- "side-channel-map": "^1.0.1"
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
}
},
"signal-exit": {
@@ -17083,24 +19473,24 @@
"dev": true
},
"socks": {
- "version": "2.8.4",
- "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.4.tgz",
- "integrity": "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==",
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz",
+ "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==",
"dev": true,
"requires": {
- "ip-address": "^9.0.5",
+ "ip": "^2.0.0",
"smart-buffer": "^4.2.0"
}
},
"socks-proxy-agent": {
- "version": "8.0.5",
- "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz",
- "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==",
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.1.tgz",
+ "integrity": "sha512-59EjPbbgg8U3x62hhKOFVAmySQUcfRQ4C7Q/D5sEHnZTQRrQlNKINks44DMR1gwXp0p4LaVIeccX2KHTTcHVqQ==",
"dev": true,
"requires": {
- "agent-base": "^7.1.2",
+ "agent-base": "^7.0.1",
"debug": "^4.3.4",
- "socks": "^2.8.3"
+ "socks": "^2.7.1"
}
},
"source-map": {
@@ -17190,10 +19580,13 @@
"dev": true
},
"stdin-discarder": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz",
- "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==",
- "dev": true
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.1.0.tgz",
+ "integrity": "sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==",
+ "dev": true,
+ "requires": {
+ "bl": "^5.0.0"
+ }
},
"string_decoder": {
"version": "1.3.0",
@@ -17225,6 +19618,28 @@
"strip-ansi": "^6.0.1"
}
},
+ "string.prototype.trimend": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
+ "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ }
+ },
+ "string.prototype.trimstart": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz",
+ "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ }
+ },
"strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
@@ -17314,37 +19729,12 @@
"readable-stream": "3"
}
},
- "tinyexec": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.1.tgz",
- "integrity": "sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==",
+ "titleize": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz",
+ "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==",
"dev": true
},
- "tinyglobby": {
- "version": "0.2.13",
- "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz",
- "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==",
- "dev": true,
- "requires": {
- "fdir": "^6.4.4",
- "picomatch": "^4.0.2"
- },
- "dependencies": {
- "fdir": {
- "version": "6.4.4",
- "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz",
- "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==",
- "dev": true,
- "requires": {}
- },
- "picomatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
- "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
- "dev": true
- }
- }
- },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
@@ -17360,6 +19750,12 @@
"integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
"dev": true
},
+ "to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
+ "dev": true
+ },
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -17513,12 +19909,32 @@
"mime-types": "~2.1.24"
}
},
+ "typed-array-length": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
+ "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "is-typed-array": "^1.1.9"
+ }
+ },
"typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
"dev": true
},
+ "typedarray-to-buffer": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
+ "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
+ "dev": true,
+ "requires": {
+ "is-typedarray": "^1.0.0"
+ }
+ },
"typescript": {
"version": "4.9.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz",
@@ -17526,23 +19942,32 @@
"dev": true
},
"uglify-js": {
- "version": "3.19.3",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz",
- "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==",
+ "version": "3.17.4",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
+ "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
"dev": true,
"optional": true
},
- "undici": {
- "version": "6.21.2",
- "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.2.tgz",
- "integrity": "sha512-uROZWze0R0itiAKVPsYhFov9LxrPMHLMEQFszeI2gCN6bnIIZ8twzBCJcN2LJrBBLfrP0t1FW0g+JmKVl8Vk1g==",
- "dev": true
+ "unbox-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
+ "which-boxed-primitive": "^1.0.2"
+ }
},
- "unicorn-magic": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz",
- "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==",
- "dev": true
+ "unique-string": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz",
+ "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==",
+ "dev": true,
+ "requires": {
+ "crypto-random-string": "^4.0.0"
+ }
},
"universal-user-agent": {
"version": "6.0.0",
@@ -17560,6 +19985,12 @@
"integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
"dev": true
},
+ "untildify": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz",
+ "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
+ "dev": true
+ },
"update-browserslist-db": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
@@ -17570,6 +20001,36 @@
"picocolors": "^1.0.0"
}
},
+ "update-notifier": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz",
+ "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==",
+ "dev": true,
+ "requires": {
+ "boxen": "^7.0.0",
+ "chalk": "^5.0.1",
+ "configstore": "^6.0.0",
+ "has-yarn": "^3.0.0",
+ "import-lazy": "^4.0.0",
+ "is-ci": "^3.0.1",
+ "is-installed-globally": "^0.4.0",
+ "is-npm": "^6.0.0",
+ "is-yarn-global": "^0.4.0",
+ "latest-version": "^7.0.0",
+ "pupa": "^3.1.0",
+ "semver": "^7.3.7",
+ "semver-diff": "^4.0.0",
+ "xdg-basedir": "^5.1.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz",
+ "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==",
+ "dev": true
+ }
+ }
+ },
"uri-js": {
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
@@ -17652,6 +20113,21 @@
"makeerror": "1.0.12"
}
},
+ "wcwidth": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
+ "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
+ "dev": true,
+ "requires": {
+ "defaults": "^1.0.3"
+ }
+ },
+ "web-streams-polyfill": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz",
+ "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==",
+ "dev": true
+ },
"webidl-conversions": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
@@ -17675,98 +20151,89 @@
"isexe": "^2.0.0"
}
},
+ "which-boxed-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
+ "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+ "dev": true,
+ "requires": {
+ "is-bigint": "^1.0.1",
+ "is-boolean-object": "^1.1.0",
+ "is-number-object": "^1.0.4",
+ "is-string": "^1.0.5",
+ "is-symbol": "^1.0.3"
+ }
+ },
+ "which-typed-array": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz",
+ "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==",
+ "dev": true,
+ "requires": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0",
+ "is-typed-array": "^1.1.10"
+ }
+ },
+ "widest-line": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz",
+ "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==",
+ "dev": true,
+ "requires": {
+ "string-width": "^5.0.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dev": true,
+ "requires": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz",
+ "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^6.0.1"
+ }
+ }
+ }
+ },
"wildcard-match": {
- "version": "5.1.4",
- "resolved": "https://registry.npmjs.org/wildcard-match/-/wildcard-match-5.1.4.tgz",
- "integrity": "sha512-wldeCaczs8XXq7hj+5d/F38JE2r7EXgb6WQDM84RVwxy81T/sxB5e9+uZLK9Q9oNz1mlvjut+QtvgaOQFPVq/g==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/wildcard-match/-/wildcard-match-5.1.2.tgz",
+ "integrity": "sha512-qNXwI591Z88c8bWxp+yjV60Ch4F8Riawe3iGxbzquhy8Xs9m+0+SLFBGb/0yCTIDElawtaImC37fYZ+dr32KqQ==",
"dev": true
},
"windows-release": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-6.0.1.tgz",
- "integrity": "sha512-MS3BzG8QK33dAyqwxfYJCJ03arkwKaddUOvvnnlFdXLudflsQF6I8yAxrLBeQk4yO8wjdH/+ax0YzxJEDrOftg==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-5.1.1.tgz",
+ "integrity": "sha512-NMD00arvqcq2nwqc5Q6KtrSRHK+fVD31erE5FEMahAw5PmVCgD7MUXodq3pdZSUkqA9Cda2iWx6s1XYwiJWRmw==",
"dev": true,
"requires": {
- "execa": "^8.0.1"
- },
- "dependencies": {
- "execa": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz",
- "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
- "dev": true,
- "requires": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^8.0.1",
- "human-signals": "^5.0.0",
- "is-stream": "^3.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^5.1.0",
- "onetime": "^6.0.0",
- "signal-exit": "^4.1.0",
- "strip-final-newline": "^3.0.0"
- }
- },
- "get-stream": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz",
- "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
- "dev": true
- },
- "human-signals": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz",
- "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
- "dev": true
- },
- "is-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
- "dev": true
- },
- "mimic-fn": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
- "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
- "dev": true
- },
- "npm-run-path": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz",
- "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
- "dev": true,
- "requires": {
- "path-key": "^4.0.0"
- }
- },
- "onetime": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
- "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
- "dev": true,
- "requires": {
- "mimic-fn": "^4.0.0"
- }
- },
- "path-key": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
- "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
- "dev": true
- },
- "signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "dev": true
- },
- "strip-final-newline": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
- "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
- "dev": true
- }
+ "execa": "^5.1.1"
}
},
"wordwrap": {
@@ -17807,6 +20274,12 @@
"integrity": "sha512-UmFXIPU+9Eg3E9m/728Bii0lAIuoc+6nbrNUKaRPJOFp91ih44qqGlWtxMB6kXFrRD6po+86ksHM5XHCfk6iPw==",
"dev": true
},
+ "xdg-basedir": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz",
+ "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==",
+ "dev": true
+ },
"xml": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz",
@@ -17857,12 +20330,6 @@
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
"dev": true
- },
- "yoctocolors-cjs": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz",
- "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==",
- "dev": true
}
}
}
diff --git a/package.json b/package.json
index ddaaf60..75dc8ea 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@kie/git-backporting",
- "version": "4.8.5",
+ "version": "4.5.1",
"description": "Git backporting is a tool to execute automatic pull request git backporting.",
"author": "",
"license": "MIT",
@@ -55,7 +55,7 @@
"@gitbeaker/rest": "^39.1.0",
"@kie/mock-github": "^1.1.0",
"@octokit/webhooks-types": "^6.8.0",
- "@release-it/conventional-changelog": "^10.0.0",
+ "@release-it/conventional-changelog": "^7.0.0",
"@types/fs-extra": "^9.0.13",
"@types/jest": "^29.2.4",
"@types/node": "^18.11.17",
@@ -66,7 +66,7 @@
"husky": "^8.0.2",
"jest": "^29.0.0",
"jest-sonar-reporter": "^2.0.0",
- "release-it": "^19.0.2",
+ "release-it": "^16.1.3",
"semver": "^7.3.8",
"ts-jest": "^29.0.0",
"ts-node": "^10.8.1",
diff --git a/src/service/args/args-parser.ts b/src/service/args/args-parser.ts
index 344b3ec..1c8cb51 100644
--- a/src/service/args/args-parser.ts
+++ b/src/service/args/args-parser.ts
@@ -16,22 +16,17 @@ export default abstract class ArgsParser {
public parse(): Args {
const args = this.readArgs();
- if (!args.pullRequest) {
- throw new Error("Missing option: pull request must be provided");
- }
// validate and fill with defaults
- if ((!args.targetBranch || args.targetBranch.trim().length == 0) && !args.targetBranchPattern) {
- throw new Error("Missing option: target branch(es) or target regular expression must be provided");
+ if (!args.pullRequest || !args.targetBranch || args.targetBranch.trim().length == 0) {
+ throw new Error("Missing option: pull request and target branches must be provided");
}
return {
pullRequest: args.pullRequest,
targetBranch: args.targetBranch,
- targetBranchPattern: args.targetBranchPattern,
dryRun: this.getOrDefault(args.dryRun, false),
auth: this.getOrDefault(args.auth),
folder: this.getOrDefault(args.folder),
- gitClient: this.getOrDefault(args.gitClient),
gitUser: this.getOrDefault(args.gitUser),
gitEmail: this.getOrDefault(args.gitEmail),
title: this.getOrDefault(args.title),
@@ -44,12 +39,9 @@ export default abstract class ArgsParser {
labels: this.getOrDefault(args.labels, []),
inheritLabels: this.getOrDefault(args.inheritLabels, false),
squash: this.getOrDefault(args.squash, true),
- autoNoSquash: this.getOrDefault(args.autoNoSquash, false),
strategy: this.getOrDefault(args.strategy),
strategyOption: this.getOrDefault(args.strategyOption),
- cherryPickOptions: this.getOrDefault(args.cherryPickOptions),
- comments: this.getOrDefault(args.comments),
- enableErrorNotification: this.getOrDefault(args.enableErrorNotification, false),
+ comments: this.getOrDefault(args.comments)
};
}
}
\ No newline at end of file
diff --git a/src/service/args/args-utils.ts b/src/service/args/args-utils.ts
index d270a14..9f6165c 100644
--- a/src/service/args/args-utils.ts
+++ b/src/service/args/args-utils.ts
@@ -50,7 +50,7 @@ export function getAsSemicolonSeparatedList(value: string): string[] | undefined
return trimmed !== "" ? trimmed.split(";").map(v => v.trim()) : undefined;
}
-export function getAsBooleanOrUndefined(value: string): boolean | undefined {
+export function getAsBooleanOrDefault(value: string): boolean | undefined {
const trimmed = value.trim();
return trimmed !== "" ? trimmed.toLowerCase() === "true" : undefined;
}
\ No newline at end of file
diff --git a/src/service/args/args.types.ts b/src/service/args/args.types.ts
index 78d56f1..1a38562 100644
--- a/src/service/args/args.types.ts
+++ b/src/service/args/args.types.ts
@@ -3,13 +3,11 @@
*/
export interface Args {
// NOTE: keep targetBranch as singular and of type string for backward compatibilities
- targetBranch?: string, // comma separated list of branches on the target repo where the change should be backported to
- targetBranchPattern?: string, // regular expression to extract target branch(es) from pull request labels
+ targetBranch: string, // comma separated list of branches on the target repo where the change should be backported to
pullRequest: string, // url of the pull request to backport
dryRun?: boolean, // if enabled do not push anything remotely
auth?: string, // git service auth, like github token
folder?: string, // local folder where the repositories should be cloned
- gitClient?: string, // git client
gitUser?: string, // local git user, default 'GitHub'
gitEmail?: string, // local git email, default 'noreply@github.com'
title?: string, // backport pr title, default original pr title prefixed by target branch
@@ -22,11 +20,8 @@ export interface Args {
inheritReviewers?: boolean, // if true and reviewers == [] then inherit reviewers from original pr
labels?: string[], // backport pr labels
inheritLabels?: boolean, // if true inherit labels from original pr
- squash?: boolean,
- autoNoSquash?: boolean,
+ squash?: boolean, // if false use squashed/merged commit otherwise backport all commits as part of the pr
strategy?: string, // cherry-pick merge strategy
strategyOption?: string, // cherry-pick merge strategy option
- cherryPickOptions?: string, // additional cherry-pick options
comments?: string[], // additional comments to be posted
- enableErrorNotification?: boolean, // enable the error notification on original pull request
}
\ No newline at end of file
diff --git a/src/service/args/cli/cli-args-parser.ts b/src/service/args/cli/cli-args-parser.ts
index d7728ae..c8ebc92 100644
--- a/src/service/args/cli/cli-args-parser.ts
+++ b/src/service/args/cli/cli-args-parser.ts
@@ -11,11 +11,9 @@ export default class CLIArgsParser extends ArgsParser {
.version(version)
.description(description)
.option("-tb, --target-branch ", "comma separated list of branches where changes must be backported to")
- .option("-tbp, --target-branch-pattern ", "regular expression pattern to extract target branch(es) from pr labels, the branches will be extracted from the pattern's required `target` named capturing group")
.option("-pr, --pull-request ", "pull request url, e.g., https://github.com/kiegroup/git-backporting/pull/1")
.option("-d, --dry-run", "if enabled the tool does not create any pull request nor push anything remotely")
.option("-a, --auth ", "git authentication string, if not provided fallback by looking for existing env variables like GITHUB_TOKEN")
- .option("--git-client ", "git client type, if not set it is infered from --pull-request")
.option("-gu, --git-user ", "local git user name, default is 'GitHub'")
.option("-ge, --git-email ", "local git user email, default is 'noreply@github.com'")
.option("-f, --folder ", "local folder where the repo will be checked out, e.g., /tmp/folder")
@@ -28,13 +26,10 @@ export default class CLIArgsParser extends ArgsParser {
.option("--no-inherit-reviewers", "if provided and reviewers option is empty then inherit them from original pull request")
.option("--labels ", "comma separated list of labels to be assigned to the backported pull request", getAsCommaSeparatedList)
.option("--inherit-labels", "if true the backported pull request will inherit labels from the original one")
- .option("--no-squash", "backport all commits found in the pull request. The default behavior is to only backport the first commit that was merged in the base branch")
- .option("--auto-no-squash", "if the pull request was merged or is open, backport all commits. If the pull request commits were squashed, backport the squashed commit.")
+ .option("--no-squash", "if provided the tool will backport all commits as part of the pull request")
.option("--strategy ", "cherry-pick merge strategy, default to 'recursive'", undefined)
.option("--strategy-option ", "cherry-pick merge strategy option, default to 'theirs'")
- .option("--cherry-pick-options ", "additional cherry-pick options")
.option("--comments ", "semicolon separated list of additional comments to be posted to the backported pull request", getAsSemicolonSeparatedList)
- .option("--enable-err-notification", "if true, enable the error notification as comment on the original pull request")
.option("-cf, --config-file ", "configuration file containing all valid options, the json must match Args interface");
}
@@ -53,9 +48,7 @@ export default class CLIArgsParser extends ArgsParser {
auth: opts.auth,
pullRequest: opts.pullRequest,
targetBranch: opts.targetBranch,
- targetBranchPattern: opts.targetBranchPattern,
folder: opts.folder,
- gitClient: opts.gitClient,
gitUser: opts.gitUser,
gitEmail: opts.gitEmail,
title: opts.title,
@@ -68,12 +61,9 @@ export default class CLIArgsParser extends ArgsParser {
labels: opts.labels,
inheritLabels: opts.inheritLabels,
squash: opts.squash,
- autoNoSquash: opts.autoNoSquash,
strategy: opts.strategy,
strategyOption: opts.strategyOption,
- cherryPickOptions: opts.cherryPickOptions,
comments: opts.comments,
- enableErrorNotification: opts.enableErrNotification,
};
}
diff --git a/src/service/args/gha/gha-args-parser.ts b/src/service/args/gha/gha-args-parser.ts
index 2bb516f..29580ab 100644
--- a/src/service/args/gha/gha-args-parser.ts
+++ b/src/service/args/gha/gha-args-parser.ts
@@ -1,7 +1,7 @@
import ArgsParser from "@bp/service/args/args-parser";
import { Args } from "@bp/service/args/args.types";
import { getInput } from "@actions/core";
-import { getAsBooleanOrUndefined, getAsCleanedCommaSeparatedList, getAsCommaSeparatedList, getAsSemicolonSeparatedList, getOrUndefined, readConfigFile } from "@bp/service/args/args-utils";
+import { getAsBooleanOrDefault, getAsCleanedCommaSeparatedList, getAsCommaSeparatedList, getAsSemicolonSeparatedList, getOrUndefined, readConfigFile } from "@bp/service/args/args-utils";
export default class GHAArgsParser extends ArgsParser {
@@ -13,13 +13,11 @@ export default class GHAArgsParser extends ArgsParser {
args = readConfigFile(configFile);
} else {
args = {
- dryRun: getAsBooleanOrUndefined(getInput("dry-run")),
+ dryRun: getAsBooleanOrDefault(getInput("dry-run")),
auth: getOrUndefined(getInput("auth")),
pullRequest: getInput("pull-request"),
- targetBranch: getOrUndefined(getInput("target-branch")),
- targetBranchPattern: getOrUndefined(getInput("target-branch-pattern")),
+ targetBranch: getInput("target-branch"),
folder: getOrUndefined(getInput("folder")),
- gitClient: getOrUndefined(getInput("git-client")),
gitUser: getOrUndefined(getInput("git-user")),
gitEmail: getOrUndefined(getInput("git-email")),
title: getOrUndefined(getInput("title")),
@@ -28,16 +26,13 @@ export default class GHAArgsParser extends ArgsParser {
bpBranchName: getOrUndefined(getInput("bp-branch-name")),
reviewers: getAsCleanedCommaSeparatedList(getInput("reviewers")),
assignees: getAsCleanedCommaSeparatedList(getInput("assignees")),
- inheritReviewers: !getAsBooleanOrUndefined(getInput("no-inherit-reviewers")),
+ inheritReviewers: !getAsBooleanOrDefault(getInput("no-inherit-reviewers")),
labels: getAsCommaSeparatedList(getInput("labels")),
- inheritLabels: getAsBooleanOrUndefined(getInput("inherit-labels")),
- squash: !getAsBooleanOrUndefined(getInput("no-squash")),
- autoNoSquash: getAsBooleanOrUndefined(getInput("auto-no-squash")),
+ inheritLabels: getAsBooleanOrDefault(getInput("inherit-labels")),
+ squash: !getAsBooleanOrDefault(getInput("no-squash")),
strategy: getOrUndefined(getInput("strategy")),
strategyOption: getOrUndefined(getInput("strategy-option")),
- cherryPickOptions: getOrUndefined(getInput("cherry-pick-options")),
comments: getAsSemicolonSeparatedList(getInput("comments")),
- enableErrorNotification: getAsBooleanOrUndefined(getInput("enable-err-notification")),
};
}
diff --git a/src/service/configs/configs.types.ts b/src/service/configs/configs.types.ts
index 85dd1f9..b7ed0e8 100644
--- a/src/service/configs/configs.types.ts
+++ b/src/service/configs/configs.types.ts
@@ -2,19 +2,11 @@
import { BackportPullRequest, GitPullRequest } from "@bp/service/git/git.types";
-export const MESSAGE_ERROR_PLACEHOLDER = "{{error}}";
-export const MESSAGE_TARGET_BRANCH_PLACEHOLDER = "{{target-branch}}";
-
export interface LocalGit {
user: string, // local git user
email: string, // local git email
}
-export interface ErrorNotification {
- enabled: boolean, // if the error notification is enabled
- message: string, // notification message, placeholder {{error}} will be replaced with actual error
-}
-
/**
* Internal configuration object
*/
@@ -25,10 +17,8 @@ export interface Configs {
folder: string,
mergeStrategy?: string, // cherry-pick merge strategy
mergeStrategyOption?: string, // cherry-pick merge strategy option
- cherryPickOptions?: string, // additional cherry-pick options
originalPullRequest: GitPullRequest,
backportPullRequests: BackportPullRequest[],
- errorNotification: ErrorNotification,
}
export enum AuthTokenId {
diff --git a/src/service/configs/pullrequest/pr-configs-parser.ts b/src/service/configs/pullrequest/pr-configs-parser.ts
index cb483bd..cca2c8d 100644
--- a/src/service/configs/pullrequest/pr-configs-parser.ts
+++ b/src/service/configs/pullrequest/pr-configs-parser.ts
@@ -1,7 +1,7 @@
import { getAsCleanedCommaSeparatedList, getAsCommaSeparatedList } from "@bp/service/args/args-utils";
import { Args } from "@bp/service/args/args.types";
import ConfigsParser from "@bp/service/configs/configs-parser";
-import { Configs, MESSAGE_TARGET_BRANCH_PLACEHOLDER } from "@bp/service/configs/configs.types";
+import { Configs } from "@bp/service/configs/configs.types";
import GitClient from "@bp/service/git/git-client";
import GitClientFactory from "@bp/service/git/git-client-factory";
import { BackportPullRequest, GitPullRequest } from "@bp/service/git/git.types";
@@ -16,12 +16,9 @@ export default class PullRequestConfigsParser extends ConfigsParser {
}
public async parse(args: Args): Promise {
- let pr: GitPullRequest;
- if (args.autoNoSquash) {
- args.squash = undefined;
- }
+ let pr: GitPullRequest;
try {
- pr = await this.gitClient.getPullRequestFromUrl(args.pullRequest, args.squash);
+ pr = await this.gitClient.getPullRequestFromUrl(args.pullRequest, args.squash!);
} catch(error) {
this.logger.error("Something went wrong retrieving pull request");
throw error;
@@ -29,17 +26,7 @@ export default class PullRequestConfigsParser extends ConfigsParser {
const folder: string = args.folder ?? this.getDefaultFolder();
- let targetBranches: string[] = [];
- if (args.targetBranchPattern) {
- // parse labels to extract target branch(es)
- targetBranches = this.getTargetBranchesFromLabels(args.targetBranchPattern, pr.labels);
- if (targetBranches.length === 0) {
- throw new Error(`Unable to extract target branches with regular expression "${args.targetBranchPattern}"`);
- }
- } else {
- // target branch must be provided if targetRegExp is missing
- targetBranches = [...new Set(getAsCommaSeparatedList(args.targetBranch!)!)];
- }
+ const targetBranches: string[] = [...new Set(getAsCommaSeparatedList(args.targetBranch)!)];
const bpBranchNames: string[] = [...new Set(args.bpBranchName ? (getAsCleanedCommaSeparatedList(args.bpBranchName) ?? []) : [])];
if (bpBranchNames.length > 1 && bpBranchNames.length != targetBranches.length) {
@@ -52,17 +39,12 @@ export default class PullRequestConfigsParser extends ConfigsParser {
folder: `${folder.startsWith("/") ? "" : process.cwd() + "/"}${args.folder ?? this.getDefaultFolder()}`,
mergeStrategy: args.strategy,
mergeStrategyOption: args.strategyOption,
- cherryPickOptions: args.cherryPickOptions,
originalPullRequest: pr,
backportPullRequests: this.generateBackportPullRequestsData(pr, args, targetBranches, bpBranchNames),
git: {
user: args.gitUser ?? this.gitClient.getDefaultGitUser(),
email: args.gitEmail ?? this.gitClient.getDefaultGitEmail(),
- },
- errorNotification: {
- enabled: args.enableErrorNotification ?? false,
- message: this.getDefaultErrorComment(),
- },
+ }
};
}
@@ -70,38 +52,6 @@ export default class PullRequestConfigsParser extends ConfigsParser {
return "bp";
}
- private getDefaultErrorComment(): string {
- // TODO: fetch from arg or set default with placeholder {{error}}
- return `The backport to \`${MESSAGE_TARGET_BRANCH_PLACEHOLDER}\` failed. Check the latest run for more details.`;
- }
-
- /**
- * Parse the provided labels and return a list of target branches
- * obtained by applying the provided pattern as regular expression extractor
- * @param pattern reg exp pattern to extract target branch from label name
- * @param labels list of labels to check
- * @returns list of target branches
- */
- private getTargetBranchesFromLabels(pattern: string, labels: string[]): string[] {
- this.logger.debug(`Extracting branches from [${labels}] using ${pattern}`);
- const regExp = new RegExp(pattern);
-
- const branches: string[] = [];
- for (const l of labels) {
- const result = regExp.exec(l);
-
- if (result?.groups) {
- const { target } = result.groups;
- if (target){
- branches.push(target);
- }
- }
- }
-
-
- return [...new Set(branches)];
- }
-
/**
* Create a backport pull request starting from the target branch and
* the original pr to be backported
diff --git a/src/service/git/git-cli.ts b/src/service/git/git-cli.ts
index d7fc7e6..5eb7678 100644
--- a/src/service/git/git-cli.ts
+++ b/src/service/git/git-cli.ts
@@ -68,15 +68,6 @@ export default class GitCLIService {
}
this.logger.info(`Folder ${to} already exist. Won't clone`);
-
- // ensure the working tree is properly reset - no stale changes
- // from previous (failed) backport
- const ongoingCherryPick = await this.anyConflict(to);
- if (ongoingCherryPick) {
- this.logger.warn("Found previously failed cherry-pick, aborting it");
- await this.git(to).raw(["cherry-pick", "--abort"]);
- }
-
// checkout to the proper branch
this.logger.info(`Checking out branch ${branch}`);
await this.git(to).checkout(branch);
@@ -119,15 +110,10 @@ export default class GitCLIService {
* @param cwd repository in which the sha should be cherry picked to
* @param sha commit sha
*/
- async cherryPick(cwd: string, sha: string, strategy = "recursive", strategyOption = "theirs", cherryPickOptions: string | undefined): Promise {
+ async cherryPick(cwd: string, sha: string, strategy = "recursive", strategyOption = "theirs"): Promise {
this.logger.info(`Cherry picking ${sha}`);
- let options = ["cherry-pick", "-m", "1", `--strategy=${strategy}`, `--strategy-option=${strategyOption}`];
- if (cherryPickOptions !== undefined) {
- options = options.concat(cherryPickOptions.split(" "));
- }
- options.push(sha);
- this.logger.debug(`Cherry picking command git ${options}`);
+ const options = ["cherry-pick", "-m", "1", `--strategy=${strategy}`, `--strategy-option=${strategyOption}`, sha];
try {
await this.git(cwd).raw(options);
} catch(error) {
@@ -140,21 +126,6 @@ export default class GitCLIService {
}
}
- /**
- * Check whether there are some conflicts in the current working directory
- * which means there is an ongoing cherry-pick that did not complete successfully
- * @param cwd repository in which the check should be performed
- * @return true if there is some conflict, false otherwise
- */
- async anyConflict(cwd: string): Promise {
- const status = await this.git(cwd).status();
- if (status.conflicted.length > 0) {
- this.logger.debug(`Found conflicts in branch ${status.current}`);
- return true;
- }
- return false;
- }
-
/**
* Push a branch to a remote
* @param cwd repository in which the push should be performed
diff --git a/src/service/git/git-client.ts b/src/service/git/git-client.ts
index 93190d9..c9d0f10 100644
--- a/src/service/git/git-client.ts
+++ b/src/service/git/git-client.ts
@@ -25,7 +25,7 @@ import { BackportPullRequest, GitClientType, GitPullRequest } from "@bp/service/
* @param squash if true keep just one single commit, otherwise get the full list
* @returns {Promise}
*/
- getPullRequest(owner: string, repo: string, prNumber: number, squash: boolean | undefined): Promise;
+ getPullRequest(owner: string, repo: string, prNumber: number, squash: boolean): Promise;
/**
* Get a pull request object from the underneath git service
@@ -33,7 +33,7 @@ import { BackportPullRequest, GitClientType, GitPullRequest } from "@bp/service/
* @param squash if true keep just one single commit, otherwise get the full list
* @returns {Promise}
*/
- getPullRequestFromUrl(prUrl: string, squash: boolean | undefined): Promise;
+ getPullRequestFromUrl(prUrl: string, squash: boolean): Promise;
// WRITE
@@ -44,11 +44,4 @@ import { BackportPullRequest, GitClientType, GitPullRequest } from "@bp/service/
*/
createPullRequest(backport: BackportPullRequest): Promise;
- /**
- * Create a new comment on the provided pull request
- * @param prUrl pull request's URL
- * @param comment comment body
- */
- createPullRequestComment(prUrl: string, comment: string): Promise;
-
}
\ No newline at end of file
diff --git a/src/service/git/git-util.ts b/src/service/git/git-util.ts
index 4e649b5..67d32ff 100644
--- a/src/service/git/git-util.ts
+++ b/src/service/git/git-util.ts
@@ -1,4 +1,3 @@
-import LoggerServiceFactory from "@bp/service/logger/logger-service-factory";
import { GitClientType } from "@bp/service/git/git.types";
import { AuthTokenId } from "@bp/service/configs/configs.types";
@@ -42,29 +41,6 @@ export const inferGitApiUrl = (prUrl: string, apiVersion = "v4"): string => {
return `${baseUrl}/api/${apiVersion}`;
};
-/**
- * Infer the value of the squash option
- * @param open true if the pull/merge request is still open
- * @param squash_commit undefined or null if the pull/merge request was merged, the sha of the squashed commit if it was squashed
- * @returns true if a single commit must be cherry-picked, false if all merged commits must be cherry-picked
- */
-export const inferSquash = (open: boolean, squash_commit: string | undefined | null): boolean => {
- const logger = LoggerServiceFactory.getLogger();
-
- if (open) {
- logger.debug("cherry-pick all commits because they have not been merged (or squashed) in the base branch yet");
- return false;
- } else {
- if (squash_commit) {
- logger.debug(`cherry-pick the squashed commit ${squash_commit}`);
- return true;
- } else {
- logger.debug("cherry-pick the merged commit(s)");
- return false;
- }
- }
-};
-
/**
* Retrieve the git token from env variable, the default is taken from GIT_TOKEN env.
* All specific git env variable have precedence and override the default one.
diff --git a/src/service/git/git.types.ts b/src/service/git/git.types.ts
index 868440c..696b29d 100644
--- a/src/service/git/git.types.ts
+++ b/src/service/git/git.types.ts
@@ -1,7 +1,7 @@
export interface GitPullRequest {
number?: number,
author: string,
- url: string,
+ url?: string,
htmlUrl?: string,
state?: GitRepoState,
merged?: boolean,
diff --git a/src/service/git/github/github-client.ts b/src/service/git/github/github-client.ts
index 9802ef5..40f1831 100644
--- a/src/service/git/github/github-client.ts
+++ b/src/service/git/github/github-client.ts
@@ -1,5 +1,4 @@
import GitClient from "@bp/service/git/git-client";
-import { inferSquash } from "@bp/service/git/git-util";
import { BackportPullRequest, GitClientType, GitPullRequest } from "@bp/service/git/git.types";
import GitHubMapper from "@bp/service/git/github/github-mapper";
import OctokitFactory from "@bp/service/git/github/octokit-factory";
@@ -38,7 +37,7 @@ export default class GitHubClient implements GitClient {
return "noreply@github.com";
}
- async getPullRequest(owner: string, repo: string, prNumber: number, squash: boolean | undefined): Promise {
+ async getPullRequest(owner: string, repo: string, prNumber: number, squash = true): Promise {
this.logger.debug(`Fetching pull request ${owner}/${repo}/${prNumber}`);
const { data } = await this.octokit.rest.pulls.get({
owner: owner,
@@ -46,22 +45,6 @@ export default class GitHubClient implements GitClient {
pull_number: prNumber,
});
- if (squash === undefined) {
- let commit_sha: string | undefined = undefined;
- const open: boolean = data.state == "open";
- if (!open) {
- const commit = await this.octokit.rest.git.getCommit({
- owner: owner,
- repo: repo,
- commit_sha: (data.merge_commit_sha as string),
- });
- if (commit.data.parents.length === 1) {
- commit_sha = (data.merge_commit_sha as string);
- }
- }
- squash = inferSquash(open, commit_sha);
- }
-
const commits: string[] = [];
if (!squash) {
// fetch all commits
@@ -73,11 +56,6 @@ export default class GitHubClient implements GitClient {
});
commits.push(...data.map(c => c.sha));
- if (this.isForCodeberg) {
- // For some reason, even though Codeberg advertises API compatibility
- // with GitHub, it returns commits in reversed order.
- commits.reverse();
- }
} catch(error) {
throw new Error(`Failed to retrieve commits for pull request n. ${prNumber}`);
}
@@ -86,7 +64,7 @@ export default class GitHubClient implements GitClient {
return this.mapper.mapPullRequest(data as PullRequest, commits);
}
- async getPullRequestFromUrl(prUrl: string, squash: boolean | undefined): Promise {
+ async getPullRequestFromUrl(prUrl: string, squash = true): Promise {
const { owner, project, id } = this.extractPullRequestData(prUrl);
return this.getPullRequest(owner, project, id, squash);
}
@@ -163,29 +141,6 @@ export default class GitHubClient implements GitClient {
return data.html_url;
}
- async createPullRequestComment(prUrl: string, comment: string): Promise {
- let commentUrl: string | undefined = undefined;
- try {
- const { owner, project, id } = this.extractPullRequestData(prUrl);
- const { data } = await this.octokit.issues.createComment({
- owner: owner,
- repo: project,
- issue_number: id,
- body: comment
- });
-
- if (!data) {
- throw new Error("Pull request comment creation failed");
- }
-
- commentUrl = data.url;
- } catch (error) {
- this.logger.error(`Error creating comment on pull request ${prUrl}: ${error}`);
- }
-
- return commentUrl;
- }
-
// UTILS
/**
diff --git a/src/service/git/github/github-mapper.ts b/src/service/git/github/github-mapper.ts
index f501b5d..3ae0ca4 100644
--- a/src/service/git/github/github-mapper.ts
+++ b/src/service/git/github/github-mapper.ts
@@ -24,8 +24,8 @@ export default class GitHubMapper implements GitResponseMapper r && "login" in r).map((r => (r as User)?.login)) ?? [],
- assignees: pr.assignees?.filter(r => r && "login" in r).map(r => r.login) ?? [],
+ reviewers: pr.requested_reviewers?.filter(r => "login" in r).map((r => (r as User)?.login)) ?? [],
+ assignees: pr.assignees?.filter(r => "login" in r).map(r => r.login) ?? [],
labels: pr.labels?.map(l => l.name) ?? [],
sourceRepo: await this.mapSourceRepo(pr),
targetRepo: await this.mapTargetRepo(pr),
diff --git a/src/service/git/gitlab/gitlab-client.ts b/src/service/git/gitlab/gitlab-client.ts
index 6d17ccf..c874b70 100644
--- a/src/service/git/gitlab/gitlab-client.ts
+++ b/src/service/git/gitlab/gitlab-client.ts
@@ -1,6 +1,5 @@
import LoggerService from "@bp/service/logger/logger-service";
import GitClient from "@bp/service/git/git-client";
-import { inferSquash } from "@bp/service/git/git-util";
import { GitPullRequest, BackportPullRequest, GitClientType } from "@bp/service/git/git.types";
import LoggerServiceFactory from "@bp/service/logger/logger-service-factory";
import { CommitSchema, MergeRequestSchema, UserSchema } from "@gitbeaker/rest";
@@ -46,15 +45,9 @@ export default class GitLabClient implements GitClient {
// READ
// example: /api/v4/projects/%2Fbackporting-example/merge_requests/1
- async getPullRequest(namespace: string, repo: string, mrNumber: number, squash: boolean | undefined): Promise {
+ async getPullRequest(namespace: string, repo: string, mrNumber: number, squash = true): Promise {
const projectId = this.getProjectId(namespace, repo);
- const url = `/projects/${projectId}/merge_requests/${mrNumber}`;
- this.logger.debug(`Fetching pull request ${url}`);
- const { data } = await this.client.get(`${url}`);
-
- if (squash === undefined) {
- squash = inferSquash(data.state === "opened", data.squash_commit_sha);
- }
+ const { data } = await this.client.get(`/projects/${projectId}/merge_requests/${mrNumber}`);
const commits: string[] = [];
if (!squash) {
@@ -72,7 +65,7 @@ export default class GitLabClient implements GitClient {
return this.mapper.mapPullRequest(data as MergeRequestSchema, commits);
}
- getPullRequestFromUrl(mrUrl: string, squash: boolean | undefined): Promise {
+ getPullRequestFromUrl(mrUrl: string, squash = true): Promise {
const { namespace, project, id } = this.extractMergeRequestData(mrUrl);
return this.getPullRequest(namespace, project, id, squash);
}
@@ -164,29 +157,6 @@ export default class GitLabClient implements GitClient {
return mr.web_url;
}
- // https://docs.gitlab.com/ee/api/notes.html#create-new-issue-note
- async createPullRequestComment(mrUrl: string, comment: string): Promise {
- const commentUrl: string | undefined = undefined;
- try{
- const { namespace, project, id } = this.extractMergeRequestData(mrUrl);
- const projectId = this.getProjectId(namespace, project);
-
- const { data } = await this.client.post(`/projects/${projectId}/merge_requests/${id}/notes`, {
- body: comment,
- });
-
- if (!data) {
- throw new Error("Merge request comment creation failed");
- }
- } catch(error) {
- this.logger.error(`Error creating comment on merge request ${mrUrl}: ${error}`);
- }
-
- return commentUrl;
- }
-
- // UTILS
-
/**
* Retrieve a gitlab user given its username
* @param username
diff --git a/src/service/logger/console-logger-service.ts b/src/service/logger/console-logger-service.ts
index 6de8020..4a3088e 100644
--- a/src/service/logger/console-logger-service.ts
+++ b/src/service/logger/console-logger-service.ts
@@ -16,10 +16,6 @@ export default class ConsoleLoggerService implements LoggerService {
this.context = newContext;
}
- getContext(): string | undefined {
- return this.context;
- }
-
clearContext() {
this.context = undefined;
}
diff --git a/src/service/logger/logger-service.ts b/src/service/logger/logger-service.ts
index 477da94..0488ac6 100644
--- a/src/service/logger/logger-service.ts
+++ b/src/service/logger/logger-service.ts
@@ -5,8 +5,6 @@ export default interface LoggerService {
setContext(newContext: string): void;
- getContext(): string | undefined;
-
clearContext(): void;
trace(message: string): void;
diff --git a/src/service/runner/runner-util.ts b/src/service/runner/runner-util.ts
deleted file mode 100644
index 2d5bd2a..0000000
--- a/src/service/runner/runner-util.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import { MESSAGE_ERROR_PLACEHOLDER, MESSAGE_TARGET_BRANCH_PLACEHOLDER } from "@bp/service/configs/configs.types";
-
-/**
- * Inject the error message in the provided `message`.
- * This is injected in place of the MESSAGE_ERROR_PLACEHOLDER placeholder
- * @param message string that needs to be updated
- * @param errMsg the error message that needs to be injected
- */
-export const injectError = (message: string, errMsg: string): string => {
- return message.replace(MESSAGE_ERROR_PLACEHOLDER, errMsg);
-};
-
-/**
- * Inject the target branch into the provided `message`.
- * This is injected in place of the MESSAGE_TARGET_BRANCH_PLACEHOLDER placeholder
- * @param message string that needs to be updated
- * @param targetBranch the target branch to inject
- * @returns
- */
-export const injectTargetBranch = (message: string, targetBranch: string): string => {
- return message.replace(MESSAGE_TARGET_BRANCH_PLACEHOLDER, targetBranch);
-};
\ No newline at end of file
diff --git a/src/service/runner/runner.ts b/src/service/runner/runner.ts
index 4df541d..1e48193 100644
--- a/src/service/runner/runner.ts
+++ b/src/service/runner/runner.ts
@@ -9,7 +9,6 @@ import { BackportPullRequest, GitClientType, GitPullRequest } from "@bp/service/
import LoggerService from "@bp/service/logger/logger-service";
import LoggerServiceFactory from "@bp/service/logger/logger-service-factory";
import { inferGitClient, inferGitApiUrl, getGitTokenFromEnv } from "@bp/service/git/git-util";
-import { injectError, injectTargetBranch } from "./runner-util";
interface Git {
gitClientType: GitClientType;
@@ -61,12 +60,7 @@ export default class Runner {
}
// 2. init git service
- let gitClientType: GitClientType;
- if (args.gitClient === undefined) {
- gitClientType = inferGitClient(args.pullRequest);
- } else {
- gitClientType = args.gitClient as GitClientType;
- }
+ const gitClientType: GitClientType = inferGitClient(args.pullRequest);
// the api version is ignored in case of github
const apiUrl = inferGitApiUrl(args.pullRequest, gitClientType === GitClientType.CODEBERG ? "v1" : undefined);
const token = this.fetchToken(args, gitClientType);
@@ -93,12 +87,6 @@ export default class Runner {
});
} catch(error) {
this.logger.error(`Something went wrong backporting to ${pr.base}: ${error}`);
- if (!configs.dryRun && configs.errorNotification.enabled && configs.errorNotification.message.length > 0) {
- // notify the failure as comment in the original pull request
- let comment = injectError(configs.errorNotification.message, error as string);
- comment = injectTargetBranch(comment, pr.base);
- await gitApi.createPullRequestComment(configs.originalPullRequest.url, comment);
- }
failures.push(error as string);
}
}
@@ -140,20 +128,21 @@ export default class Runner {
// 5. create new branch from target one and checkout
this.logger.debug("Creating local branch..");
+
await git.gitCli.createLocalBranch(configs.folder, backportPR.head);
// 6. fetch pull request remote if source owner != target owner or pull request still open
if (configs.originalPullRequest.sourceRepo.owner !== configs.originalPullRequest.targetRepo.owner ||
configs.originalPullRequest.state === "open") {
- this.logger.debug("Fetching pull request remote..");
+ this.logger.debug("Fetching pull request remote..");
const prefix = git.gitClientType === GitClientType.GITLAB ? "merge-requests" : "pull" ; // default is for gitlab
await git.gitCli.fetch(configs.folder, `${prefix}/${configs.originalPullRequest.number}/head:pr/${configs.originalPullRequest.number}`);
}
// 7. apply all changes to the new branch
this.logger.debug("Cherry picking commits..");
- for (const sha of originalPR.commits) {
- await git.gitCli.cherryPick(configs.folder, sha, configs.mergeStrategy, configs.mergeStrategyOption, configs.cherryPickOptions);
+ for (const sha of originalPR.commits!) {
+ await git.gitCli.cherryPick(configs.folder, sha, configs.mergeStrategy, configs.mergeStrategyOption);
}
if (!configs.dryRun) {
@@ -171,4 +160,4 @@ export default class Runner {
this.logger.clearContext();
}
-}
+}
\ No newline at end of file
diff --git a/test/service/args/cli/cli-args-parser.test.ts b/test/service/args/cli/cli-args-parser.test.ts
index 31d4c15..bf82586 100644
--- a/test/service/args/cli/cli-args-parser.test.ts
+++ b/test/service/args/cli/cli-args-parser.test.ts
@@ -15,7 +15,6 @@ const RANDOM_CONFIG_FILE_CONTENT = {
"targetBranch": "target-branch-name",
"pullRequest": "https://github.com/user/repo/pull/123",
"folder": "/path/to/local/folder",
- "gitClient": "codeberg",
"gitUser": "YourGitUser",
"gitEmail": "your-email@example.com",
"title": "Backport: Original PR Title",
@@ -63,7 +62,6 @@ describe("cli args parser", () => {
const args: Args = parser.parse();
expect(args.dryRun).toEqual(false);
expect(args.auth).toEqual(undefined);
- expect(args.gitClient).toEqual(undefined);
expect(args.gitUser).toEqual(undefined);
expect(args.gitEmail).toEqual(undefined);
expect(args.folder).toEqual(undefined);
@@ -79,11 +77,8 @@ describe("cli args parser", () => {
expect(args.labels).toEqual([]);
expect(args.inheritLabels).toEqual(false);
expect(args.squash).toEqual(true);
- expect(args.autoNoSquash).toEqual(false);
expect(args.strategy).toEqual(undefined);
expect(args.strategyOption).toEqual(undefined);
- expect(args.cherryPickOptions).toEqual(undefined);
- expect(args.enableErrorNotification).toEqual(false);
});
test("with config file [default, short]", () => {
@@ -95,7 +90,6 @@ describe("cli args parser", () => {
const args: Args = parser.parse();
expect(args.dryRun).toEqual(false);
expect(args.auth).toEqual(undefined);
- expect(args.gitClient).toEqual(undefined);
expect(args.gitUser).toEqual(undefined);
expect(args.gitEmail).toEqual(undefined);
expect(args.folder).toEqual(undefined);
@@ -111,11 +105,8 @@ describe("cli args parser", () => {
expect(args.labels).toEqual([]);
expect(args.inheritLabels).toEqual(false);
expect(args.squash).toEqual(true);
- expect(args.autoNoSquash).toEqual(false);
expect(args.strategy).toEqual(undefined);
expect(args.strategyOption).toEqual(undefined);
- expect(args.cherryPickOptions).toEqual(undefined);
- expect(args.enableErrorNotification).toEqual(false);
});
test("valid execution [default, long]", () => {
@@ -129,7 +120,6 @@ describe("cli args parser", () => {
const args: Args = parser.parse();
expect(args.dryRun).toEqual(false);
expect(args.auth).toEqual(undefined);
- expect(args.gitClient).toEqual(undefined);
expect(args.gitUser).toEqual(undefined);
expect(args.gitEmail).toEqual(undefined);
expect(args.folder).toEqual(undefined);
@@ -147,7 +137,6 @@ describe("cli args parser", () => {
expect(args.squash).toEqual(true);
expect(args.strategy).toEqual(undefined);
expect(args.strategyOption).toEqual(undefined);
- expect(args.cherryPickOptions).toEqual(undefined);
});
test("with config file [default, long]", () => {
@@ -159,7 +148,6 @@ describe("cli args parser", () => {
const args: Args = parser.parse();
expect(args.dryRun).toEqual(false);
expect(args.auth).toEqual(undefined);
- expect(args.gitClient).toEqual(undefined);
expect(args.gitUser).toEqual(undefined);
expect(args.gitEmail).toEqual(undefined);
expect(args.folder).toEqual(undefined);
@@ -177,7 +165,6 @@ describe("cli args parser", () => {
expect(args.squash).toEqual(true);
expect(args.strategy).toEqual(undefined);
expect(args.strategyOption).toEqual(undefined);
- expect(args.cherryPickOptions).toEqual(undefined);
});
test("valid execution [override, short]", () => {
@@ -198,7 +185,6 @@ describe("cli args parser", () => {
const args: Args = parser.parse();
expect(args.dryRun).toEqual(true);
expect(args.auth).toEqual("bearer-token");
- expect(args.gitClient).toEqual(undefined);
expect(args.gitUser).toEqual("Me");
expect(args.gitEmail).toEqual("me@email.com");
expect(args.folder).toEqual(undefined);
@@ -216,7 +202,6 @@ describe("cli args parser", () => {
expect(args.squash).toEqual(true);
expect(args.strategy).toEqual(undefined);
expect(args.strategyOption).toEqual(undefined);
- expect(args.cherryPickOptions).toEqual(undefined);
});
test("valid execution [override, long]", () => {
@@ -228,8 +213,6 @@ describe("cli args parser", () => {
"target",
"--pull-request",
"https://localhost/whatever/pulls/1",
- "--git-client",
- "codeberg",
"--git-user",
"Me",
"--git-email",
@@ -255,7 +238,6 @@ describe("cli args parser", () => {
const args: Args = parser.parse();
expect(args.dryRun).toEqual(true);
expect(args.auth).toEqual("bearer-token");
- expect(args.gitClient).toEqual("codeberg");
expect(args.gitUser).toEqual("Me");
expect(args.gitEmail).toEqual("me@email.com");
expect(args.folder).toEqual(undefined);
@@ -273,7 +255,6 @@ describe("cli args parser", () => {
expect(args.squash).toEqual(true);
expect(args.strategy).toEqual(undefined);
expect(args.strategyOption).toEqual(undefined);
- expect(args.cherryPickOptions).toEqual(undefined);
});
test("override using config file", () => {
@@ -285,7 +266,6 @@ describe("cli args parser", () => {
const args: Args = parser.parse();
expect(args.dryRun).toEqual(true);
expect(args.auth).toEqual("your-git-service-auth-token");
- expect(args.gitClient).toEqual("codeberg");
expect(args.gitUser).toEqual("YourGitUser");
expect(args.gitEmail).toEqual("your-email@example.com");
expect(args.folder).toEqual("/path/to/local/folder");
@@ -303,7 +283,6 @@ describe("cli args parser", () => {
expect(args.squash).toEqual(true);
expect(args.strategy).toEqual(undefined);
expect(args.strategyOption).toEqual(undefined);
- expect(args.cherryPickOptions).toEqual(undefined);
});
test("ignore custom option when config file is set", () => {
@@ -317,8 +296,6 @@ describe("cli args parser", () => {
"target",
"--pull-request",
"https://localhost/whatever/pulls/1",
- "--git-client",
- "github",
"--git-user",
"Me",
"--git-email",
@@ -344,7 +321,6 @@ describe("cli args parser", () => {
const args: Args = parser.parse();
expect(args.dryRun).toEqual(true);
expect(args.auth).toEqual("your-git-service-auth-token");
- expect(args.gitClient).toEqual("codeberg");
expect(args.gitUser).toEqual("YourGitUser");
expect(args.gitEmail).toEqual("your-email@example.com");
expect(args.folder).toEqual("/path/to/local/folder");
@@ -362,7 +338,6 @@ describe("cli args parser", () => {
expect(args.squash).toEqual(true);
expect(args.strategy).toEqual(undefined);
expect(args.strategyOption).toEqual(undefined);
- expect(args.cherryPickOptions).toEqual(undefined);
});
test("override squash to false", () => {
@@ -377,7 +352,6 @@ describe("cli args parser", () => {
const args: Args = parser.parse();
expect(args.dryRun).toEqual(false);
expect(args.auth).toEqual(undefined);
- expect(args.gitClient).toEqual(undefined);
expect(args.gitUser).toEqual(undefined);
expect(args.gitEmail).toEqual(undefined);
expect(args.folder).toEqual(undefined);
@@ -395,7 +369,7 @@ describe("cli args parser", () => {
expect(args.squash).toEqual(false);
});
- test("override cherry pick strategies and options", () => {
+ test("override cherry pick strategies", () => {
addProcessArgs([
"--target-branch",
"target",
@@ -405,14 +379,11 @@ describe("cli args parser", () => {
"ort",
"--strategy-option",
"ours",
- "--cherry-pick-options",
- "--allow-empty -x",
]);
const args: Args = parser.parse();
expect(args.dryRun).toEqual(false);
expect(args.auth).toEqual(undefined);
- expect(args.gitClient).toEqual(undefined);
expect(args.gitUser).toEqual(undefined);
expect(args.gitEmail).toEqual(undefined);
expect(args.folder).toEqual(undefined);
@@ -430,7 +401,6 @@ describe("cli args parser", () => {
expect(args.squash).toEqual(true);
expect(args.strategy).toEqual("ort");
expect(args.strategyOption).toEqual("ours");
- expect(args.cherryPickOptions).toEqual("--allow-empty -x");
});
test("additional pr comments", () => {
@@ -446,7 +416,6 @@ describe("cli args parser", () => {
const args: Args = parser.parse();
expect(args.dryRun).toEqual(false);
expect(args.auth).toEqual(undefined);
- expect(args.gitClient).toEqual(undefined);
expect(args.gitUser).toEqual(undefined);
expect(args.gitEmail).toEqual(undefined);
expect(args.folder).toEqual(undefined);
@@ -476,7 +445,6 @@ describe("cli args parser", () => {
const args: Args = parser.parse();
expect(args.dryRun).toEqual(false);
expect(args.auth).toEqual(undefined);
- expect(args.gitClient).toEqual(undefined);
expect(args.gitUser).toEqual(undefined);
expect(args.gitEmail).toEqual(undefined);
expect(args.folder).toEqual(undefined);
@@ -494,7 +462,6 @@ describe("cli args parser", () => {
expect(args.squash).toEqual(true);
expect(args.strategy).toEqual(undefined);
expect(args.strategyOption).toEqual(undefined);
- expect(args.cherryPickOptions).toEqual(undefined);
});
test("invalid execution with empty target branch", () => {
@@ -505,7 +472,7 @@ describe("cli args parser", () => {
"https://localhost/whatever/pulls/1"
]);
- expect(() => parser.parse()).toThrowError("Missing option: target branch(es) or target regular expression must be provided");
+ expect(() => parser.parse()).toThrowError("Missing option: pull request and target branches must be provided");
});
test("invalid execution with missing mandatory target branch", () => {
@@ -514,28 +481,15 @@ describe("cli args parser", () => {
"https://localhost/whatever/pulls/1"
]);
- expect(() => parser.parse()).toThrowError("Missing option: target branch(es) or target regular expression must be provided");
+ expect(() => parser.parse()).toThrowError("Missing option: pull request and target branches must be provided");
});
- test("invalid execution with missing mandatory pull request", () => {
+ test("invalid execution with missin mandatory pull request", () => {
addProcessArgs([
"-tb",
"target",
]);
- expect(() => parser.parse()).toThrowError("Missing option: pull request must be provided");
- });
-
- test("enable error notification flag", () => {
- addProcessArgs([
- "-tb",
- "target, old",
- "-pr",
- "https://localhost/whatever/pulls/1",
- "--enable-err-notification",
- ]);
-
- const args: Args = parser.parse();
- expect(args.enableErrorNotification).toEqual(true);
+ expect(() => parser.parse()).toThrowError("Missing option: pull request and target branches must be provided");
});
});
\ No newline at end of file
diff --git a/test/service/args/gha/gha-args-parser.test.ts b/test/service/args/gha/gha-args-parser.test.ts
index 9039a55..20642d9 100644
--- a/test/service/args/gha/gha-args-parser.test.ts
+++ b/test/service/args/gha/gha-args-parser.test.ts
@@ -72,7 +72,6 @@ describe("gha args parser", () => {
expect(args.squash).toEqual(true);
expect(args.strategy).toEqual(undefined);
expect(args.strategyOption).toEqual(undefined);
- expect(args.cherryPickOptions).toEqual(undefined);
});
test("valid execution [override]", () => {
@@ -114,7 +113,6 @@ describe("gha args parser", () => {
expect(args.squash).toEqual(true);
expect(args.strategy).toEqual(undefined);
expect(args.strategyOption).toEqual(undefined);
- expect(args.cherryPickOptions).toEqual(undefined);
});
test("using config file", () => {
@@ -142,7 +140,6 @@ describe("gha args parser", () => {
expect(args.squash).toEqual(true);
expect(args.strategy).toEqual(undefined);
expect(args.strategyOption).toEqual(undefined);
- expect(args.cherryPickOptions).toEqual(undefined);
});
test("ignore custom options when using config file", () => {
@@ -185,7 +182,6 @@ describe("gha args parser", () => {
expect(args.squash).toEqual(true);
expect(args.strategy).toEqual(undefined);
expect(args.strategyOption).toEqual(undefined);
- expect(args.cherryPickOptions).toEqual(undefined);
});
test("override squash to false", () => {
@@ -239,7 +235,6 @@ describe("gha args parser", () => {
expect(args.squash).toEqual(true);
expect(args.strategy).toEqual("ort");
expect(args.strategyOption).toEqual("ours");
- expect(args.cherryPickOptions).toEqual(undefined);
});
test("additional pr comments", () => {
@@ -292,16 +287,16 @@ describe("gha args parser", () => {
expect(args.squash).toEqual(true);
expect(args.strategy).toEqual(undefined);
expect(args.strategyOption).toEqual(undefined);
- expect(args.cherryPickOptions).toEqual(undefined);
});
+
test("invalid execution with empty target branch", () => {
spyGetInput({
"target-branch": " ",
"pull-request": "https://localhost/whatever/pulls/1"
});
- expect(() => parser.parse()).toThrowError("Missing option: target branch(es) or target regular expression must be provided");
+ expect(() => parser.parse()).toThrowError("Missing option: pull request and target branches must be provided");
});
test("invalid execution with missing mandatory target branch", () => {
@@ -309,7 +304,7 @@ describe("gha args parser", () => {
"pull-request": "https://localhost/whatever/pulls/1"
});
- expect(() => parser.parse()).toThrowError("Missing option: target branch(es) or target regular expression must be provided");
+ expect(() => parser.parse()).toThrowError("Missing option: pull request and target branches must be provided");
});
test("invalid execution with missin mandatory pull request", () => {
@@ -317,17 +312,6 @@ describe("gha args parser", () => {
"target-branch": "target,old",
});
- expect(() => parser.parse()).toThrowError("Missing option: pull request must be provided");
- });
-
- test("enable error notification flag", () => {
- spyGetInput({
- "target-branch": "target,old",
- "pull-request": "https://localhost/whatever/pulls/1",
- "enable-err-notification": "true"
- });
-
- const args: Args = parser.parse();
- expect(args.enableErrorNotification).toEqual(true);
+ expect(() => parser.parse()).toThrowError("Missing option: pull request and target branches must be provided");
});
});
\ No newline at end of file
diff --git a/test/service/configs/pullrequest/github-pr-configs-parser-multiple.test.ts b/test/service/configs/pullrequest/github-pr-configs-parser-multiple.test.ts
index 138a1b0..eab1bfa 100644
--- a/test/service/configs/pullrequest/github-pr-configs-parser-multiple.test.ts
+++ b/test/service/configs/pullrequest/github-pr-configs-parser-multiple.test.ts
@@ -57,7 +57,7 @@ describe("github pull request config parser", () => {
const configs: Configs = await configParser.parseAndValidate(args);
expect(GitHubClient.prototype.getPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.getPullRequest).toBeCalledWith("owner", "reponame", 2368, undefined);
+ expect(GitHubClient.prototype.getPullRequest).toBeCalledWith("owner", "reponame", 2368, true);
expect(GitHubMapper.prototype.mapPullRequest).toBeCalledTimes(1);
expect(GitHubMapper.prototype.mapPullRequest).toBeCalledWith(expect.anything(), []);
@@ -129,7 +129,7 @@ describe("github pull request config parser", () => {
const configs: Configs = await configParser.parseAndValidate(args);
expect(GitHubClient.prototype.getPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.getPullRequest).toBeCalledWith("owner", "reponame", 2368, undefined);
+ expect(GitHubClient.prototype.getPullRequest).toBeCalledWith("owner", "reponame", 2368, true);
expect(GitHubMapper.prototype.mapPullRequest).toBeCalledTimes(1);
expect(GitHubMapper.prototype.mapPullRequest).toBeCalledWith(expect.anything(), []);
@@ -202,7 +202,7 @@ describe("github pull request config parser", () => {
const configs: Configs = await configParser.parseAndValidate(args);
expect(GitHubClient.prototype.getPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.getPullRequest).toBeCalledWith("owner", "reponame", 2368, undefined);
+ expect(GitHubClient.prototype.getPullRequest).toBeCalledWith("owner", "reponame", 2368, true);
expect(GitHubMapper.prototype.mapPullRequest).toBeCalledTimes(1);
expect(GitHubMapper.prototype.mapPullRequest).toBeCalledWith(expect.anything(), []);
@@ -275,7 +275,7 @@ describe("github pull request config parser", () => {
const configs: Configs = await configParser.parseAndValidate(args);
expect(GitHubClient.prototype.getPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.getPullRequest).toBeCalledWith("owner", "reponame", 2368, undefined);
+ expect(GitHubClient.prototype.getPullRequest).toBeCalledWith("owner", "reponame", 2368, true);
expect(GitHubMapper.prototype.mapPullRequest).toBeCalledTimes(1);
expect(GitHubMapper.prototype.mapPullRequest).toBeCalledWith(expect.anything(), []);
@@ -353,78 +353,7 @@ describe("github pull request config parser", () => {
dryRun: false,
auth: "",
pullRequest: multipleCommitsPRUrl,
- targetBranch: "v4, v5, v6",
- gitUser: "GitHub",
- gitEmail: "noreply@github.com",
- reviewers: [],
- assignees: [],
- inheritReviewers: true,
- squash: false,
- };
-
- const configs: Configs = await configParser.parseAndValidate(args);
-
- expect(GitHubClient.prototype.getPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.getPullRequest).toBeCalledWith("owner", "reponame", 8632, false);
- expect(GitHubMapper.prototype.mapPullRequest).toBeCalledTimes(1);
- expect(GitHubMapper.prototype.mapPullRequest).toBeCalledWith(expect.anything(), ["0404fb922ab75c3a8aecad5c97d9af388df04695", "11da4e38aa3e577ffde6d546f1c52e53b04d3151"]);
-
- expect(configs.dryRun).toEqual(false);
- expect(configs.git).toEqual({
- user: "GitHub",
- email: "noreply@github.com"
- });
- expect(configs.auth).toEqual("");
- expect(configs.folder).toEqual(process.cwd() + "/bp");
- expect(configs.backportPullRequests.length).toEqual(3);
- expect(configs.backportPullRequests).toEqual(
- expect.arrayContaining([
- {
- owner: "owner",
- repo: "reponame",
- head: "bp-v4-0404fb9-11da4e3",
- base: "v4",
- title: "[v4] PR Title",
- body: "**Backport:** https://github.com/owner/reponame/pull/8632\r\n\r\nPlease review and merge",
- reviewers: ["gh-user", "that-s-a-user"],
- assignees: [],
- labels: [],
- comments: [],
- },
- {
- owner: "owner",
- repo: "reponame",
- head: "bp-v5-0404fb9-11da4e3",
- base: "v5",
- title: "[v5] PR Title",
- body: "**Backport:** https://github.com/owner/reponame/pull/8632\r\n\r\nPlease review and merge",
- reviewers: ["gh-user", "that-s-a-user"],
- assignees: [],
- labels: [],
- comments: [],
- },
- {
- owner: "owner",
- repo: "reponame",
- head: "bp-v6-0404fb9-11da4e3",
- base: "v6",
- title: "[v6] PR Title",
- body: "**Backport:** https://github.com/owner/reponame/pull/8632\r\n\r\nPlease review and merge",
- reviewers: ["gh-user", "that-s-a-user"],
- assignees: [],
- labels: [],
- comments: [],
- },
- ])
- );
- });
-
- test("multiple extracted branches and multiple commits", async () => {
- const args: Args = {
- dryRun: false,
- auth: "",
- pullRequest: multipleCommitsPRUrl,
- targetBranchPattern: "^backport (?([^ ]+))$",
+ targetBranch: "v1, v2, v3",
gitUser: "GitHub",
gitEmail: "noreply@github.com",
reviewers: [],
diff --git a/test/service/configs/pullrequest/github-pr-configs-parser.test.ts b/test/service/configs/pullrequest/github-pr-configs-parser.test.ts
index 369695e..f392cc7 100644
--- a/test/service/configs/pullrequest/github-pr-configs-parser.test.ts
+++ b/test/service/configs/pullrequest/github-pr-configs-parser.test.ts
@@ -89,7 +89,7 @@ describe("github pull request config parser", () => {
const configs: Configs = await configParser.parseAndValidate(args);
expect(GitHubClient.prototype.getPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.getPullRequest).toBeCalledWith("owner", "reponame", 2368, undefined);
+ expect(GitHubClient.prototype.getPullRequest).toBeCalledWith("owner", "reponame", 2368, true);
expect(GitHubMapper.prototype.mapPullRequest).toBeCalledTimes(1);
expect(GitHubMapper.prototype.mapPullRequest).toBeCalledWith(expect.anything(), []);
@@ -112,7 +112,7 @@ describe("github pull request config parser", () => {
body: "Please review and merge",
reviewers: ["requested-gh-user", "gh-user"],
assignees: [],
- labels: ["backport prod"],
+ labels: ["original-label"],
targetRepo: {
owner: "owner",
project: "reponame",
@@ -139,10 +139,6 @@ describe("github pull request config parser", () => {
labels: [],
comments: [],
});
- expect(configs.errorNotification).toEqual({
- enabled: false,
- message: "The backport to `{{target-branch}}` failed. Check the latest run for more details."
- });
});
test("override folder", async () => {
@@ -186,9 +182,9 @@ describe("github pull request config parser", () => {
const configs: Configs = await configParser.parseAndValidate(args);
expect(GitHubClient.prototype.getPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.getPullRequest).toBeCalledWith("owner", "reponame", 4444, undefined);
+ expect(GitHubClient.prototype.getPullRequest).toBeCalledWith("owner", "reponame", 4444, true);
expect(GitHubMapper.prototype.mapPullRequest).toBeCalledTimes(1);
- expect(GitHubMapper.prototype.mapPullRequest).toBeCalledWith(expect.anything(), ["0404fb922ab75c3a8aecad5c97d9af388df04695", "11da4e38aa3e577ffde6d546f1c52e53b04d3151"]);
+ expect(GitHubMapper.prototype.mapPullRequest).toBeCalledWith(expect.anything(), []);
expect(configs.dryRun).toEqual(true);
expect(configs.auth).toEqual("whatever");
@@ -221,7 +217,8 @@ describe("github pull request config parser", () => {
},
bpBranchName: undefined,
nCommits: 2,
- commits: ["0404fb922ab75c3a8aecad5c97d9af388df04695", "11da4e38aa3e577ffde6d546f1c52e53b04d3151"],
+ // taken from head.sha
+ commits: ["91748965051fae1330ad58d15cf694e103267c87"]
});
});
@@ -261,7 +258,7 @@ describe("github pull request config parser", () => {
const configs: Configs = await configParser.parseAndValidate(args);
expect(GitHubClient.prototype.getPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.getPullRequest).toBeCalledWith("owner", "reponame", 2368, undefined);
+ expect(GitHubClient.prototype.getPullRequest).toBeCalledWith("owner", "reponame", 2368, true);
expect(GitHubMapper.prototype.mapPullRequest).toBeCalledTimes(1);
expect(GitHubMapper.prototype.mapPullRequest).toBeCalledWith(expect.anything(), []);
@@ -284,7 +281,7 @@ describe("github pull request config parser", () => {
body: "Please review and merge",
reviewers: ["requested-gh-user", "gh-user"],
assignees: [],
- labels: ["backport prod"],
+ labels: ["original-label"],
targetRepo: {
owner: "owner",
project: "reponame",
@@ -334,7 +331,7 @@ describe("github pull request config parser", () => {
const configs: Configs = await configParser.parseAndValidate(args);
expect(GitHubClient.prototype.getPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.getPullRequest).toBeCalledWith("owner", "reponame", 2368, undefined);
+ expect(GitHubClient.prototype.getPullRequest).toBeCalledWith("owner", "reponame", 2368, true);
expect(GitHubMapper.prototype.mapPullRequest).toBeCalledTimes(1);
expect(GitHubMapper.prototype.mapPullRequest).toBeCalledWith(expect.anything(), []);
@@ -375,7 +372,7 @@ describe("github pull request config parser", () => {
const configs: Configs = await configParser.parseAndValidate(args);
expect(GitHubClient.prototype.getPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.getPullRequest).toBeCalledWith("owner", "reponame", 2368, undefined);
+ expect(GitHubClient.prototype.getPullRequest).toBeCalledWith("owner", "reponame", 2368, true);
expect(GitHubMapper.prototype.mapPullRequest).toBeCalledTimes(1);
expect(GitHubMapper.prototype.mapPullRequest).toBeCalledWith(expect.anything(), []);
@@ -398,7 +395,7 @@ describe("github pull request config parser", () => {
body: "Please review and merge",
reviewers: ["requested-gh-user", "gh-user"],
assignees: [],
- labels: ["backport prod"],
+ labels: ["original-label"],
targetRepo: {
owner: "owner",
project: "reponame",
@@ -447,7 +444,7 @@ describe("github pull request config parser", () => {
const configs: Configs = await configParser.parseAndValidate(args);
expect(GitHubClient.prototype.getPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.getPullRequest).toBeCalledWith("owner", "reponame", 2368, undefined);
+ expect(GitHubClient.prototype.getPullRequest).toBeCalledWith("owner", "reponame", 2368, true);
expect(GitHubMapper.prototype.mapPullRequest).toBeCalledTimes(1);
expect(GitHubMapper.prototype.mapPullRequest).toBeCalledWith(expect.anything(), []);
@@ -470,7 +467,7 @@ describe("github pull request config parser", () => {
body: "Please review and merge",
reviewers: ["requested-gh-user", "gh-user"],
assignees: [],
- labels: ["backport prod"],
+ labels: ["original-label"],
targetRepo: {
owner: "owner",
project: "reponame",
@@ -514,14 +511,14 @@ describe("github pull request config parser", () => {
reviewers: [],
assignees: ["user3", "user4"],
inheritReviewers: false,
- labels: ["custom-label", "backport prod"], // also include the one inherited
+ labels: ["custom-label", "original-label"], // also include the one inherited
inheritLabels: true,
};
const configs: Configs = await configParser.parseAndValidate(args);
expect(GitHubClient.prototype.getPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.getPullRequest).toBeCalledWith("owner", "reponame", 2368, undefined);
+ expect(GitHubClient.prototype.getPullRequest).toBeCalledWith("owner", "reponame", 2368, true);
expect(GitHubMapper.prototype.mapPullRequest).toBeCalledTimes(1);
expect(GitHubMapper.prototype.mapPullRequest).toBeCalledWith(expect.anything(), []);
@@ -544,7 +541,7 @@ describe("github pull request config parser", () => {
body: "Please review and merge",
reviewers: ["requested-gh-user", "gh-user"],
assignees: [],
- labels: ["backport prod"],
+ labels: ["original-label"],
targetRepo: {
owner: "owner",
project: "reponame",
@@ -569,7 +566,7 @@ describe("github pull request config parser", () => {
body: "New Body Prefix -New Body",
reviewers: [],
assignees: ["user3", "user4"],
- labels: ["custom-label", "backport prod"],
+ labels: ["custom-label", "original-label"],
comments: [],
});
});
@@ -607,7 +604,7 @@ describe("github pull request config parser", () => {
body: "Please review and merge",
reviewers: ["requested-gh-user", "gh-user"],
assignees: [],
- labels: ["backport prod"],
+ labels: ["original-label"],
targetRepo: {
owner: "owner",
project: "reponame",
@@ -669,7 +666,7 @@ describe("github pull request config parser", () => {
body: "Please review and merge",
reviewers: ["requested-gh-user", "gh-user"],
assignees: [],
- labels: ["backport prod"],
+ labels: ["original-label"],
targetRepo: {
owner: "owner",
project: "reponame",
@@ -694,7 +691,7 @@ describe("github pull request config parser", () => {
body: "New Body Prefix -New Body",
reviewers: ["user1", "user2"],
assignees: ["user3", "user4"],
- labels: ["cherry-pick :cherries:", "backport prod"],
+ labels: ["cherry-pick :cherries:", "original-label"],
comments: [],
});
});
@@ -739,11 +736,7 @@ describe("github pull request config parser", () => {
body: "Please review and merge",
reviewers: ["requested-gh-user", "gh-user"],
assignees: [],
- labels: [
- "backport v1",
- "backport v2",
- "backport v3",
- ],
+ labels: [],
targetRepo: {
owner: "owner",
project: "reponame",
@@ -794,7 +787,7 @@ describe("github pull request config parser", () => {
const configs: Configs = await configParser.parseAndValidate(args);
expect(GitHubClient.prototype.getPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.getPullRequest).toBeCalledWith("owner", "reponame", 2368, undefined);
+ expect(GitHubClient.prototype.getPullRequest).toBeCalledWith("owner", "reponame", 2368, true);
expect(GitHubMapper.prototype.mapPullRequest).toBeCalledTimes(1);
expect(GitHubMapper.prototype.mapPullRequest).toBeCalledWith(expect.anything(), []);
@@ -817,7 +810,7 @@ describe("github pull request config parser", () => {
body: "Please review and merge",
reviewers: ["requested-gh-user", "gh-user"],
assignees: [],
- labels: ["backport prod"],
+ labels: ["original-label"],
targetRepo: {
owner: "owner",
project: "reponame",
@@ -846,123 +839,4 @@ describe("github pull request config parser", () => {
comments: ["First comment", "Second comment"],
});
});
-
- test("no extracted target branches from pr labels due to wrong group name", async () => {
- const args: Args = {
- dryRun: false,
- auth: "",
- pullRequest: mergedPRUrl,
- targetBranchPattern: "^backport (?([^ ]+))$",
- gitUser: "Me",
- gitEmail: "me@email.com",
- title: "New Title",
- body: "New Body",
- bodyPrefix: "New Body Prefix -",
- reviewers: [],
- assignees: ["user3", "user4"],
- inheritReviewers: false,
- labels: [],
- inheritLabels: false,
- comments: ["First comment", "Second comment"],
- };
-
- await expect(() => configParser.parseAndValidate(args)).rejects.toThrow("Unable to extract target branches with regular expression");
- });
-
- test("extract target branches from pr labels", async () => {
- const args: Args = {
- dryRun: false,
- auth: "",
- pullRequest: mergedPRUrl,
- targetBranchPattern: "^backport (?([^ ]+))$",
- gitUser: "Me",
- gitEmail: "me@email.com",
- title: "New Title",
- body: "New Body",
- bodyPrefix: "New Body Prefix -",
- reviewers: [],
- assignees: ["user3", "user4"],
- inheritReviewers: false,
- labels: [],
- inheritLabels: false,
- comments: ["First comment", "Second comment"],
- };
-
- const configs: Configs = await configParser.parseAndValidate(args);
-
- expect(GitHubClient.prototype.getPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.getPullRequest).toBeCalledWith("owner", "reponame", 2368, undefined);
- expect(GitHubMapper.prototype.mapPullRequest).toBeCalledTimes(1);
- expect(GitHubMapper.prototype.mapPullRequest).toBeCalledWith(expect.anything(), []);
-
- expect(configs.dryRun).toEqual(false);
- expect(configs.git).toEqual({
- user: "Me",
- email: "me@email.com"
- });
- expect(configs.auth).toEqual("");
- expect(configs.folder).toEqual(process.cwd() + "/bp");
- expect(configs.originalPullRequest).toEqual({
- number: 2368,
- author: "gh-user",
- url: "https://api.github.com/repos/owner/reponame/pulls/2368",
- htmlUrl: "https://github.com/owner/reponame/pull/2368",
- state: "closed",
- merged: true,
- mergedBy: "that-s-a-user",
- title: "PR Title",
- body: "Please review and merge",
- reviewers: ["requested-gh-user", "gh-user"],
- assignees: [],
- labels: ["backport prod"],
- targetRepo: {
- owner: "owner",
- project: "reponame",
- cloneUrl: "https://github.com/owner/reponame.git"
- },
- sourceRepo: {
- owner: "fork",
- project: "reponame",
- cloneUrl: "https://github.com/fork/reponame.git"
- },
- bpBranchName: undefined,
- nCommits: 2,
- commits: ["28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc"],
- });
- expect(configs.backportPullRequests.length).toEqual(1);
- expect(configs.backportPullRequests[0]).toEqual({
- owner: "owner",
- repo: "reponame",
- head: "bp-prod-28f63db",
- base: "prod",
- title: "New Title",
- body: "New Body Prefix -New Body",
- reviewers: [],
- assignees: ["user3", "user4"],
- labels: [],
- comments: ["First comment", "Second comment"],
- });
- });
-
- test("enable error notification message", async () => {
- const args: Args = {
- dryRun: false,
- auth: "",
- pullRequest: mergedPRUrl,
- targetBranch: "prod",
- enableErrorNotification: true,
- };
-
- const configs: Configs = await configParser.parseAndValidate(args);
-
- expect(GitHubClient.prototype.getPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.getPullRequest).toBeCalledWith("owner", "reponame", 2368, undefined);
- expect(GitHubMapper.prototype.mapPullRequest).toBeCalledTimes(1);
- expect(GitHubMapper.prototype.mapPullRequest).toBeCalledWith(expect.anything(), []);
-
- expect(configs.errorNotification).toEqual({
- "enabled": true,
- "message": "The backport to `{{target-branch}}` failed. Check the latest run for more details."
- });
- });
});
\ No newline at end of file
diff --git a/test/service/configs/pullrequest/gitlab-pr-configs-parser-multiple.test.ts b/test/service/configs/pullrequest/gitlab-pr-configs-parser-multiple.test.ts
index 140c343..deff8de 100644
--- a/test/service/configs/pullrequest/gitlab-pr-configs-parser-multiple.test.ts
+++ b/test/service/configs/pullrequest/gitlab-pr-configs-parser-multiple.test.ts
@@ -51,7 +51,6 @@ describe("gitlab merge request config parser", () => {
labels: [],
inheritLabels: false,
comments: [],
- squash: true,
};
const configs: Configs = await configParser.parseAndValidate(args);
@@ -124,7 +123,6 @@ describe("gitlab merge request config parser", () => {
labels: [],
inheritLabels: false,
comments: [],
- squash: true,
};
const configs: Configs = await configParser.parseAndValidate(args);
@@ -197,8 +195,7 @@ describe("gitlab merge request config parser", () => {
labels: [],
inheritLabels: false,
comments: [],
- bpBranchName: "custom-branch",
- squash: true,
+ bpBranchName: "custom-branch"
};
const configs: Configs = await configParser.parseAndValidate(args);
@@ -271,8 +268,7 @@ describe("gitlab merge request config parser", () => {
labels: [],
inheritLabels: false,
comments: [],
- bpBranchName: "custom1, custom2, custom3",
- squash: true,
+ bpBranchName: "custom1, custom2, custom3"
};
const configs: Configs = await configParser.parseAndValidate(args);
diff --git a/test/service/configs/pullrequest/gitlab-pr-configs-parser.test.ts b/test/service/configs/pullrequest/gitlab-pr-configs-parser.test.ts
index bbaaf98..981cb25 100644
--- a/test/service/configs/pullrequest/gitlab-pr-configs-parser.test.ts
+++ b/test/service/configs/pullrequest/gitlab-pr-configs-parser.test.ts
@@ -88,7 +88,6 @@ describe("gitlab merge request config parser", () => {
reviewers: [],
assignees: [],
inheritReviewers: true,
- squash: true,
};
const configs: Configs = await configParser.parseAndValidate(args);
@@ -117,7 +116,7 @@ describe("gitlab merge request config parser", () => {
body: "This is the body",
reviewers: ["superuser1", "superuser2"],
assignees: ["superuser"],
- labels: ["backport-prod"],
+ labels: ["gitlab-original-label"],
targetRepo: {
owner: "superuser",
project: "backporting-example",
@@ -144,10 +143,6 @@ describe("gitlab merge request config parser", () => {
labels: [],
comments: [],
});
- expect(configs.errorNotification).toEqual({
- "enabled": false,
- "message": "The backport to `{{target-branch}}` failed. Check the latest run for more details."
- });
});
@@ -163,7 +158,6 @@ describe("gitlab merge request config parser", () => {
reviewers: [],
assignees: [],
inheritReviewers: true,
- squash: true,
};
const configs: Configs = await configParser.parseAndValidate(args);
@@ -193,7 +187,6 @@ describe("gitlab merge request config parser", () => {
reviewers: [],
assignees: [],
inheritReviewers: true,
- squash: true,
};
const configs: Configs = await configParser.parseAndValidate(args);
@@ -250,7 +243,6 @@ describe("gitlab merge request config parser", () => {
reviewers: [],
assignees: [],
inheritReviewers: true,
- squash: true,
};
await expect(() => configParser.parseAndValidate(args)).rejects.toThrow("Provided pull request is closed and not merged");
@@ -270,7 +262,6 @@ describe("gitlab merge request config parser", () => {
reviewers: [],
assignees: [],
inheritReviewers: true,
- squash: true,
};
const configs: Configs = await configParser.parseAndValidate(args);
@@ -299,7 +290,7 @@ describe("gitlab merge request config parser", () => {
body: "This is the body",
reviewers: ["superuser1", "superuser2"],
assignees: ["superuser"],
- labels: ["backport-prod"],
+ labels: ["gitlab-original-label"],
targetRepo: {
owner: "superuser",
project: "backporting-example",
@@ -342,7 +333,6 @@ describe("gitlab merge request config parser", () => {
reviewers: ["user1", "user2"],
assignees: ["user3", "user4"],
inheritReviewers: true, // not taken into account
- squash: true,
};
const configs: Configs = await configParser.parseAndValidate(args);
@@ -371,7 +361,7 @@ describe("gitlab merge request config parser", () => {
body: "This is the body",
reviewers: ["superuser1", "superuser2"],
assignees: ["superuser"],
- labels: ["backport-prod"],
+ labels: ["gitlab-original-label"],
targetRepo: {
owner: "superuser",
project: "backporting-example",
@@ -414,7 +404,6 @@ describe("gitlab merge request config parser", () => {
reviewers: [],
assignees: ["user3", "user4"],
inheritReviewers: false,
- squash: true,
};
const configs: Configs = await configParser.parseAndValidate(args);
@@ -443,7 +432,7 @@ describe("gitlab merge request config parser", () => {
body: "This is the body",
reviewers: ["superuser1", "superuser2"],
assignees: ["superuser"],
- labels: ["backport-prod"],
+ labels: ["gitlab-original-label"],
targetRepo: {
owner: "superuser",
project: "backporting-example",
@@ -486,9 +475,8 @@ describe("gitlab merge request config parser", () => {
reviewers: [],
assignees: ["user3", "user4"],
inheritReviewers: false,
- labels: ["custom-label", "backport-prod"], // also include the one inherited
+ labels: ["custom-label", "gitlab-original-label"], // also include the one inherited
inheritLabels: true,
- squash: true,
};
const configs: Configs = await configParser.parseAndValidate(args);
@@ -517,7 +505,7 @@ describe("gitlab merge request config parser", () => {
body: "This is the body",
reviewers: ["superuser1", "superuser2"],
assignees: ["superuser"],
- labels: ["backport-prod"],
+ labels: ["gitlab-original-label"],
targetRepo: {
owner: "superuser",
project: "backporting-example",
@@ -541,7 +529,7 @@ describe("gitlab merge request config parser", () => {
body: "New Body Prefix -New Body",
reviewers: [],
assignees: ["user3", "user4"],
- labels: ["custom-label", "backport-prod"],
+ labels: ["custom-label", "gitlab-original-label"],
comments: [],
});
});
@@ -578,7 +566,7 @@ describe("gitlab merge request config parser", () => {
body: "This is the body",
reviewers: ["superuser1", "superuser2"],
assignees: ["superuser"],
- labels: ["backport-prod"],
+ labels: ["gitlab-original-label"],
targetRepo: {
owner: "superuser",
project: "backporting-example",
@@ -639,7 +627,7 @@ describe("gitlab merge request config parser", () => {
body: "This is the body",
reviewers: ["superuser1", "superuser2"],
assignees: ["superuser"],
- labels: ["backport-prod"],
+ labels: ["gitlab-original-label"],
targetRepo: {
owner: "superuser",
project: "backporting-example",
@@ -663,7 +651,7 @@ describe("gitlab merge request config parser", () => {
body: "New Body Prefix -New Body",
reviewers: [],
assignees: ["user3", "user4"],
- labels: ["cherry-pick :cherries:", "backport-prod"],
+ labels: ["cherry-pick :cherries:", "gitlab-original-label"],
comments: [],
});
});
@@ -754,7 +742,6 @@ describe("gitlab merge request config parser", () => {
labels: [],
inheritLabels: false,
comments: ["First comment", "Second comment"],
- squash: true,
};
const configs: Configs = await configParser.parseAndValidate(args);
@@ -783,7 +770,7 @@ describe("gitlab merge request config parser", () => {
body: "This is the body",
reviewers: ["superuser1", "superuser2"],
assignees: ["superuser"],
- labels: ["backport-prod"],
+ labels: ["gitlab-original-label"],
targetRepo: {
owner: "superuser",
project: "backporting-example",
@@ -811,101 +798,4 @@ describe("gitlab merge request config parser", () => {
comments: ["First comment", "Second comment"],
});
});
-
- test("extract target branches from pr labels", async () => {
- const args: Args = {
- dryRun: false,
- auth: "",
- pullRequest: mergedPRUrl,
- targetBranchPattern: "^backport-(?([^ ]+))$",
- gitUser: "Me",
- gitEmail: "me@email.com",
- title: "New Title",
- body: "New Body",
- bodyPrefix: "New Body Prefix -",
- reviewers: [],
- assignees: ["user3", "user4"],
- inheritReviewers: false,
- labels: [],
- inheritLabels: false,
- comments: ["First comment", "Second comment"],
- squash: true,
- };
-
- const configs: Configs = await configParser.parseAndValidate(args);
-
- expect(GitLabClient.prototype.getPullRequest).toBeCalledTimes(1);
- expect(GitLabClient.prototype.getPullRequest).toBeCalledWith("superuser", "backporting-example", 1, true);
- expect(GitLabMapper.prototype.mapPullRequest).toBeCalledTimes(1);
- expect(GitLabMapper.prototype.mapPullRequest).toBeCalledWith(expect.anything(), []);
-
- expect(configs.dryRun).toEqual(false);
- expect(configs.git).toEqual({
- user: "Me",
- email: "me@email.com"
- });
- expect(configs.auth).toEqual("");
- expect(configs.folder).toEqual(process.cwd() + "/bp");
- expect(configs.originalPullRequest).toEqual({
- number: 1,
- author: "superuser",
- url: "https://my.gitlab.host.com/superuser/backporting-example/-/merge_requests/1",
- htmlUrl: "https://my.gitlab.host.com/superuser/backporting-example/-/merge_requests/1",
- state: "merged",
- merged: true,
- mergedBy: "superuser",
- title: "Update test.txt",
- body: "This is the body",
- reviewers: ["superuser1", "superuser2"],
- assignees: ["superuser"],
- labels: ["backport-prod"],
- targetRepo: {
- owner: "superuser",
- project: "backporting-example",
- cloneUrl: "https://my.gitlab.host.com/superuser/backporting-example.git"
- },
- sourceRepo: {
- owner: "superuser",
- project: "backporting-example",
- cloneUrl: "https://my.gitlab.host.com/superuser/backporting-example.git"
- },
- nCommits: 1,
- commits: ["ebb1eca696c42fd067658bd9b5267709f78ef38e"]
- });
- expect(configs.backportPullRequests.length).toEqual(1);
- expect(configs.backportPullRequests[0]).toEqual({
- owner: "superuser",
- repo: "backporting-example",
- head: "bp-prod-ebb1eca",
- base: "prod",
- title: "New Title",
- body: "New Body Prefix -New Body",
- reviewers: [],
- assignees: ["user3", "user4"],
- labels: [],
- comments: ["First comment", "Second comment"],
- });
- });
-
- test("enable error notification message", async () => {
- const args: Args = {
- dryRun: false,
- auth: "",
- pullRequest: mergedPRUrl,
- targetBranch: "prod",
- enableErrorNotification: true,
- };
-
- const configs: Configs = await configParser.parseAndValidate(args);
-
- expect(GitLabClient.prototype.getPullRequest).toBeCalledTimes(1);
- expect(GitLabClient.prototype.getPullRequest).toBeCalledWith("superuser", "backporting-example", 1, undefined);
- expect(GitLabMapper.prototype.mapPullRequest).toBeCalledTimes(1);
- expect(GitLabMapper.prototype.mapPullRequest).toBeCalledWith(expect.anything(), []);
-
- expect(configs.errorNotification).toEqual({
- "enabled": true,
- "message": "The backport to `{{target-branch}}` failed. Check the latest run for more details.",
- });
- });
});
\ No newline at end of file
diff --git a/test/service/git/git-util.test.ts b/test/service/git/git-util.test.ts
index 9a90936..5e202e6 100644
--- a/test/service/git/git-util.test.ts
+++ b/test/service/git/git-util.test.ts
@@ -1,4 +1,4 @@
-import { inferGitApiUrl, inferGitClient, inferSquash } from "@bp/service/git/git-util";
+import { inferGitApiUrl, inferGitClient } from "@bp/service/git/git-util";
import { GitClientType } from "@bp/service/git/git.types";
describe("check git utilities", () => {
@@ -54,11 +54,4 @@ describe("check git utilities", () => {
test("check infer codeberg client", ()=> {
expect(inferGitClient("https://codeberg.org/lampajr/backporting-example/pulls/1")).toStrictEqual(GitClientType.CODEBERG);
});
-
- test("check inferSquash", ()=> {
- expect(inferSquash(true, undefined)).toStrictEqual(false);
- expect(inferSquash(false, "SHA")).toStrictEqual(true);
- expect(inferSquash(false, undefined)).toStrictEqual(false);
- expect(inferSquash(false, null)).toStrictEqual(false);
- });
-});
+});
\ No newline at end of file
diff --git a/test/service/git/github/github-client.test.ts b/test/service/git/github/github-client.test.ts
index 35a4d5c..97fc996 100644
--- a/test/service/git/github/github-client.test.ts
+++ b/test/service/git/github/github-client.test.ts
@@ -22,7 +22,7 @@ describe("github service", () => {
});
test("get pull request: success", async () => {
- const res: GitPullRequest = await gitClient.getPullRequest(TARGET_OWNER, REPO, MERGED_PR_FIXTURE.number, true);
+ const res: GitPullRequest = await gitClient.getPullRequest(TARGET_OWNER, REPO, MERGED_PR_FIXTURE.number);
expect(res.sourceRepo).toEqual({
owner: "fork",
project: "reponame",
diff --git a/test/service/git/gitlab/gitlab-client.test.ts b/test/service/git/gitlab/gitlab-client.test.ts
index 38deda1..b33ab9e 100644
--- a/test/service/git/gitlab/gitlab-client.test.ts
+++ b/test/service/git/gitlab/gitlab-client.test.ts
@@ -31,7 +31,7 @@ describe("github service", () => {
});
test("get merged pull request", async () => {
- const res: GitPullRequest = await gitClient.getPullRequest("superuser", "backporting-example", 1, true);
+ const res: GitPullRequest = await gitClient.getPullRequest("superuser", "backporting-example", 1);
// check content
expect(res.sourceRepo).toEqual({
@@ -56,7 +56,7 @@ describe("github service", () => {
});
test("get open pull request", async () => {
- const res: GitPullRequest = await gitClient.getPullRequest("superuser", "backporting-example", 2, true);
+ const res: GitPullRequest = await gitClient.getPullRequest("superuser", "backporting-example", 2);
expect(res.sourceRepo).toEqual({
owner: "superuser",
project: "backporting-example",
@@ -325,7 +325,7 @@ describe("github service", () => {
});
test("get pull request for nested namespaces", async () => {
- const res: GitPullRequest = await gitClient.getPullRequestFromUrl("https://my.gitlab.host.com/mysuperorg/6/mysuperproduct/mysuperunit/backporting-example/-/merge_requests/4", true);
+ const res: GitPullRequest = await gitClient.getPullRequestFromUrl("https://my.gitlab.host.com/mysuperorg/6/mysuperproduct/mysuperunit/backporting-example/-/merge_requests/4");
// check content
expect(res.sourceRepo).toEqual({
diff --git a/test/service/runner/cli-codeberg-runner.test.ts b/test/service/runner/cli-codeberg-runner.test.ts
deleted file mode 100644
index 653dea5..0000000
--- a/test/service/runner/cli-codeberg-runner.test.ts
+++ /dev/null
@@ -1,1376 +0,0 @@
-import ArgsParser from "@bp/service/args/args-parser";
-import Runner from "@bp/service/runner/runner";
-import GitCLIService from "@bp/service/git/git-cli";
-import GitHubClient from "@bp/service/git/github/github-client";
-import CLIArgsParser from "@bp/service/args/cli/cli-args-parser";
-import { addProcessArgs, createTestFile, removeTestFile, resetEnvTokens, resetProcessArgs } from "../../support/utils";
-import { mockCodebergClient } from "../../support/mock/git-client-mock-support";
-import GitClientFactory from "@bp/service/git/git-client-factory";
-import { BackportPullRequest, GitClientType } from "@bp/service/git/git.types";
-import { AuthTokenId } from "@bp/service/configs/configs.types";
-
-const GITHUB_MERGED_PR_W_OVERRIDES_CONFIG_FILE_CONTENT_PATHNAME = "./cli-codeberg-runner-pr-merged-with-overrides.json";
-const GITHUB_MERGED_PR_W_OVERRIDES_CONFIG_FILE_CONTENT = {
- "dryRun": false,
- "auth": "my-auth-token",
- "pullRequest": "https://codeberg.org/owner/reponame/pulls/2368",
- "targetBranch": "target",
- "gitUser": "Me",
- "gitEmail": "me@email.com",
- "title": "New Title",
- "body": "New Body",
- "bodyPrefix": "New Body Prefix - ",
- "bpBranchName": "bp_branch_name",
- "reviewers": [],
- "assignees": ["user3", "user4"],
- "inheritReviewers": false,
- "labels": ["cli github cherry pick :cherries:"],
- "inheritLabels": true,
-};
-
-jest.mock("@bp/service/git/git-cli");
-jest.spyOn(GitHubClient.prototype, "createPullRequest");
-jest.spyOn(GitHubClient.prototype, "createPullRequestComment");
-jest.spyOn(GitClientFactory, "getOrCreate");
-
-let parser: ArgsParser;
-let runner: Runner;
-
-beforeAll(() => {
- // create a temporary file
- createTestFile(GITHUB_MERGED_PR_W_OVERRIDES_CONFIG_FILE_CONTENT_PATHNAME, JSON.stringify(GITHUB_MERGED_PR_W_OVERRIDES_CONFIG_FILE_CONTENT));
-});
-
-afterAll(() => {
- // clean up all temporary files
- removeTestFile(GITHUB_MERGED_PR_W_OVERRIDES_CONFIG_FILE_CONTENT_PATHNAME);
-});
-
-beforeEach(() => {
- // reset process.env variables
- resetProcessArgs();
-
- // reset git env tokens
- resetEnvTokens();
-
- // mock octokit
- mockCodebergClient();
-
- // create CLI arguments parser
- parser = new CLIArgsParser();
-
- // create runner
- runner = new Runner(parser);
-});
-
-describe("cli runner", () => {
-
- test("with dry run", async () => {
- addProcessArgs([
- "-d",
- "-tb",
- "target",
- "-pr",
- "https://codeberg.org/owner/reponame/pulls/2368"
- ]);
-
- await runner.execute();
-
- const cwd = process.cwd() + "/bp";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.CODEBERG, undefined, "https://codeberg.org/api/v1");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(1);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "target");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "bp-target-28f63db");
-
- expect(GitCLIService.prototype.fetch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(0);
- expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(0);
- expect(GitHubClient.prototype.createPullRequestComment).toBeCalledTimes(0);
- });
-
- test("overriding author", async () => {
- addProcessArgs([
- "-d",
- "-tb",
- "target",
- "-pr",
- "https://codeberg.org/owner/reponame/pulls/2368"
- ]);
-
- await runner.execute();
-
- const cwd = process.cwd() + "/bp";
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(1);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "target");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "bp-target-28f63db");
-
- expect(GitCLIService.prototype.fetch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(0);
- expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(0);
- });
-
- test("with relative folder", async () => {
- addProcessArgs([
- "-d",
- "-tb",
- "target",
- "-pr",
- "https://codeberg.org/owner/reponame/pulls/2368",
- "-f",
- "folder"
- ]);
-
- await runner.execute();
-
- const cwd = process.cwd() + "/folder";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.CODEBERG, undefined, "https://codeberg.org/api/v1");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(1);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "target");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "bp-target-28f63db");
-
- expect(GitCLIService.prototype.fetch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
-
- expect(GitCLIService.prototype.addRemote).toBeCalledTimes(0);
- expect(GitCLIService.prototype.addRemote).toBeCalledTimes(0);
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(0);
- expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(0);
- });
-
- test("with absolute folder", async () => {
- addProcessArgs([
- "-d",
- "-tb",
- "target",
- "-pr",
- "https://codeberg.org/owner/reponame/pulls/2368",
- "-f",
- "/tmp/folder"
- ]);
-
- await runner.execute();
-
- const cwd = "/tmp/folder";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.CODEBERG, undefined, "https://codeberg.org/api/v1");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(1);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "target");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "bp-target-28f63db");
-
- expect(GitCLIService.prototype.fetch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(0);
- expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(0);
- });
-
- test("without dry run", async () => {
- addProcessArgs([
- "-tb",
- "target",
- "-pr",
- "https://codeberg.org/owner/reponame/pulls/2368"
- ]);
-
- await runner.execute();
-
- const cwd = process.cwd() + "/bp";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.CODEBERG, undefined, "https://codeberg.org/api/v1");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(1);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "target");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "bp-target-28f63db");
-
- expect(GitCLIService.prototype.fetch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(1);
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-28f63db");
-
- expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "bp-target-28f63db",
- base: "target",
- title: "[target] PR Title",
- body: "**Backport:** https://codeberg.org/owner/reponame/pulls/2368\r\n\r\nPlease review and merge",
- reviewers: ["gh-user", "that-s-a-user"],
- assignees: [],
- labels: [],
- comments: [],
- }
- );
- expect(GitHubClient.prototype.createPullRequest).toReturnTimes(1);
- });
-
- test("same owner", async () => {
- addProcessArgs([
- "-tb",
- "target",
- "-pr",
- "https://codeberg.org/owner/reponame/pulls/8632"
- ]);
-
- await runner.execute();
-
- const cwd = process.cwd() + "/bp";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.CODEBERG, undefined, "https://codeberg.org/api/v1");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(1);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "target");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "bp-target-28f63db");
-
- expect(GitCLIService.prototype.fetch).toBeCalledTimes(0);
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(1);
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-28f63db");
-
- expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "bp-target-28f63db",
- base: "target",
- title: "[target] PR Title",
- body: "**Backport:** https://codeberg.org/owner/reponame/pulls/8632\r\n\r\nPlease review and merge",
- reviewers: ["gh-user", "that-s-a-user"],
- assignees: [],
- labels: [],
- comments: [],
- }
- );
- expect(GitHubClient.prototype.createPullRequest).toReturnTimes(1);
- expect(GitHubClient.prototype.createPullRequestComment).toBeCalledTimes(0);
- });
-
- test("closed and not merged pull request", async () => {
- addProcessArgs([
- "-tb",
- "target",
- "-pr",
- "https://codeberg.org/owner/reponame/pulls/6666"
- ]);
-
- await expect(() => runner.execute()).rejects.toThrow("Provided pull request is closed and not merged");
- });
-
- test("open pull request simple", async () => {
- addProcessArgs([
- "-tb",
- "target",
- "-pr",
- "https://codeberg.org/owner/reponame/pulls/4444"
- ]);
-
- await runner.execute();
-
- const cwd = process.cwd() + "/bp";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.CODEBERG, undefined, "https://codeberg.org/api/v1");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(1);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "target");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "bp-target-9174896");
-
- expect(GitCLIService.prototype.fetch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/4444/head:pr/4444");
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "91748965051fae1330ad58d15cf694e103267c87", undefined, undefined, undefined);
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(1);
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-9174896");
-
- expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "bp-target-9174896",
- base: "target",
- title: "[target] PR Title",
- body: "**Backport:** https://codeberg.org/owner/reponame/pulls/4444\r\n\r\nPlease review and merge",
- reviewers: ["gh-user"],
- assignees: [],
- labels: [],
- comments: [],
- }
- );
- expect(GitHubClient.prototype.createPullRequest).toReturnTimes(1);
- });
-
- test("open pull request with --auto-no-squash", async () => {
- addProcessArgs([
- "-tb",
- "target",
- "-pr",
- "https://codeberg.org/owner/reponame/pulls/4444",
- "--auto-no-squash",
- ]);
-
- await runner.execute();
-
- const cwd = process.cwd() + "/bp";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.CODEBERG, undefined, "https://codeberg.org/api/v1");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(1);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "target");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "bp-target-11da4e3-0404fb9");
-
- expect(GitCLIService.prototype.fetch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/4444/head:pr/4444");
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(2);
- expect(GitCLIService.prototype.cherryPick).toHaveBeenLastCalledWith(cwd, "0404fb922ab75c3a8aecad5c97d9af388df04695", undefined, undefined, undefined);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "11da4e38aa3e577ffde6d546f1c52e53b04d3151", undefined, undefined, undefined);
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(1);
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-11da4e3-0404fb9");
-
- expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "bp-target-11da4e3-0404fb9",
- base: "target",
- title: "[target] PR Title",
- body: "**Backport:** https://codeberg.org/owner/reponame/pulls/4444\r\n\r\nPlease review and merge",
- reviewers: ["gh-user"],
- assignees: [],
- labels: [],
- comments: [],
- }
- );
- expect(GitHubClient.prototype.createPullRequest).toReturnTimes(1);
- });
-
- test("override backporting pr data", async () => {
- addProcessArgs([
- "-tb",
- "target",
- "-pr",
- "https://codeberg.org/owner/reponame/pulls/2368",
- "--title",
- "New Title",
- "--body",
- "New Body",
- "--body-prefix",
- "New Body Prefix\\r\\n\\r\\n",
- "--bp-branch-name",
- "bp_branch_name",
- "--reviewers",
- "user1,user2",
- "--assignees",
- "user3,user4",
- ]);
-
- await runner.execute();
-
- const cwd = process.cwd() + "/bp";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.CODEBERG, undefined, "https://codeberg.org/api/v1");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(1);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "target");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "bp_branch_name");
-
- expect(GitCLIService.prototype.fetch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(1);
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp_branch_name");
-
- expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "bp_branch_name",
- base: "target",
- title: "New Title",
- body: "New Body Prefix\r\n\r\nNew Body",
- reviewers: ["user1", "user2"],
- assignees: ["user3", "user4"],
- labels: [],
- comments: [],
- }
- );
- expect(GitHubClient.prototype.createPullRequest).toReturnTimes(1);
- });
-
- test("set empty reviewers", async () => {
- addProcessArgs([
- "-tb",
- "target",
- "-pr",
- "https://codeberg.org/owner/reponame/pulls/2368",
- "--title",
- "New Title",
- "--body",
- "New Body",
- "--body-prefix",
- "New Body Prefix - ",
- "--bp-branch-name",
- "bp_branch_name",
- "--no-inherit-reviewers",
- "--assignees",
- "user3,user4",
- ]);
-
- await runner.execute();
-
- const cwd = process.cwd() + "/bp";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.CODEBERG, undefined, "https://codeberg.org/api/v1");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(1);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "target");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "bp_branch_name");
-
- expect(GitCLIService.prototype.fetch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(1);
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp_branch_name");
-
- expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "bp_branch_name",
- base: "target",
- title: "New Title",
- body: "New Body Prefix - New Body",
- reviewers: [],
- assignees: ["user3", "user4"],
- labels: [],
- comments: [],
- }
- );
- expect(GitHubClient.prototype.createPullRequest).toReturnTimes(1);
- });
-
- test("set custom labels with inheritance", async () => {
- addProcessArgs([
- "-tb",
- "target",
- "-pr",
- "https://codeberg.org/owner/reponame/pulls/2368",
- "--labels",
- "cherry-pick :cherries:, backport prod",
- "--inherit-labels",
- ]);
-
- await runner.execute();
-
- const cwd = process.cwd() + "/bp";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.CODEBERG, undefined, "https://codeberg.org/api/v1");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(1);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "target");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "bp-target-28f63db");
-
- expect(GitCLIService.prototype.fetch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(1);
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-28f63db");
-
- expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "bp-target-28f63db",
- base: "target",
- title: "[target] PR Title",
- body: "**Backport:** https://codeberg.org/owner/reponame/pulls/2368\r\n\r\nPlease review and merge",
- reviewers: ["gh-user", "that-s-a-user"],
- assignees: [],
- labels: ["cherry-pick :cherries:", "backport prod"],
- comments: [],
- }
- );
- expect(GitHubClient.prototype.createPullRequest).toReturnTimes(1);
- });
-
- test("set custom labels without inheritance", async () => {
- addProcessArgs([
- "-tb",
- "target",
- "-pr",
- "https://codeberg.org/owner/reponame/pulls/2368",
- "--labels",
- "first-label, second-label ",
- ]);
-
- await runner.execute();
-
- const cwd = process.cwd() + "/bp";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.CODEBERG, undefined, "https://codeberg.org/api/v1");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(1);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "target");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "bp-target-28f63db");
-
- expect(GitCLIService.prototype.fetch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(1);
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-28f63db");
-
- expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "bp-target-28f63db",
- base: "target",
- title: "[target] PR Title",
- body: "**Backport:** https://codeberg.org/owner/reponame/pulls/2368\r\n\r\nPlease review and merge",
- reviewers: ["gh-user", "that-s-a-user"],
- assignees: [],
- labels: ["first-label", "second-label"],
- comments: [],
- }
- );
- expect(GitHubClient.prototype.createPullRequest).toReturnTimes(1);
- });
-
- test("using config file with overrides", async () => {
- addProcessArgs([
- "--config-file",
- GITHUB_MERGED_PR_W_OVERRIDES_CONFIG_FILE_CONTENT_PATHNAME,
- ]);
-
- await runner.execute();
-
- const cwd = process.cwd() + "/bp";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.CODEBERG, "my-auth-token", "https://codeberg.org/api/v1");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(1);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "target");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "bp_branch_name");
-
- expect(GitCLIService.prototype.fetch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(1);
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp_branch_name");
-
- expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "bp_branch_name",
- base: "target",
- title: "New Title",
- body: "New Body Prefix - New Body",
- reviewers: [],
- assignees: ["user3", "user4"],
- labels: ["cli github cherry pick :cherries:", "backport prod"],
- comments: [],
- }
- );
- expect(GitHubClient.prototype.createPullRequest).toReturnTimes(1);
- });
-
- // to check: https://codeberg.org/kiegroup/git-backporting/issues/52
- test("using codeberg api url instead of html one", async () => {
- addProcessArgs([
- "-tb",
- "target",
- "-pr",
- "https://codeberg.org/api/v1/repos/owner/reponame/pulls/2368"
- ]);
-
- await runner.execute();
-
- const cwd = process.cwd() + "/bp";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.CODEBERG, undefined, "https://codeberg.org/api/v1");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(1);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "target");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "bp-target-28f63db");
-
- expect(GitCLIService.prototype.fetch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(1);
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-28f63db");
-
- expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "bp-target-28f63db",
- base: "target",
- title: "[target] PR Title",
- body: "**Backport:** https://codeberg.org/owner/reponame/pulls/2368\r\n\r\nPlease review and merge",
- reviewers: ["gh-user", "that-s-a-user"],
- assignees: [],
- labels: [],
- comments: [],
- }
- );
- expect(GitHubClient.prototype.createPullRequest).toReturnTimes(1);
- });
-
- test("multiple commits pr", async () => {
- addProcessArgs([
- "-tb",
- "target",
- "-pr",
- "https://codeberg.org/owner/reponame/pulls/8632",
- "--no-squash",
- ]);
-
- await runner.execute();
-
- const cwd = process.cwd() + "/bp";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.CODEBERG, undefined, "https://codeberg.org/api/v1");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(1);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "target");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "bp-target-11da4e3-0404fb9");
-
- expect(GitCLIService.prototype.fetch).toBeCalledTimes(0);
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(2);
- expect(GitCLIService.prototype.cherryPick).toHaveBeenLastCalledWith(cwd, "0404fb922ab75c3a8aecad5c97d9af388df04695", undefined, undefined, undefined);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "11da4e38aa3e577ffde6d546f1c52e53b04d3151", undefined, undefined, undefined);
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(1);
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-11da4e3-0404fb9");
-
- expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "bp-target-11da4e3-0404fb9",
- base: "target",
- title: "[target] PR Title",
- body: "**Backport:** https://codeberg.org/owner/reponame/pulls/8632\r\n\r\nPlease review and merge",
- reviewers: ["gh-user", "that-s-a-user"],
- assignees: [],
- labels: [],
- comments: [],
- }
- );
- expect(GitHubClient.prototype.createPullRequest).toReturnTimes(1);
- });
-
- test("too long bp branch name", async () => {
- // 260 chars
- const tooLongBranchName = "too-long-branch-name".repeat(13);
-
- addProcessArgs([
- "-tb",
- "target",
- "-pr",
- "https://codeberg.org/owner/reponame/pulls/2368",
- "--bp-branch-name",
- tooLongBranchName,
- ]);
-
- await runner.execute();
-
- const cwd = process.cwd() + "/bp";
-
- const truncatedBranch = tooLongBranchName.slice(0, 250);
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.CODEBERG, undefined, "https://codeberg.org/api/v1");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(1);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "target");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, truncatedBranch);
-
- expect(GitCLIService.prototype.fetch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(1);
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, truncatedBranch);
-
- expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: truncatedBranch,
- base: "target",
- title: "[target] PR Title",
- body: "**Backport:** https://codeberg.org/owner/reponame/pulls/2368\r\n\r\nPlease review and merge",
- reviewers: ["gh-user", "that-s-a-user"],
- assignees: [],
- labels: [],
- comments: [],
- }
- );
- expect(GitHubClient.prototype.createPullRequest).toReturnTimes(1);
- });
-
- test("multiple commits pr with different strategy", async () => {
- addProcessArgs([
- "-tb",
- "target",
- "-pr",
- "https://codeberg.org/owner/reponame/pulls/8632",
- "--no-squash",
- "--strategy",
- "ort",
- "--strategy-option",
- "find-renames",
- ]);
-
- await runner.execute();
-
- const cwd = process.cwd() + "/bp";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.CODEBERG, undefined, "https://codeberg.org/api/v1");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(1);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "target");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "bp-target-11da4e3-0404fb9");
-
- expect(GitCLIService.prototype.fetch).toBeCalledTimes(0);
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(2);
- expect(GitCLIService.prototype.cherryPick).toHaveBeenLastCalledWith(cwd, "0404fb922ab75c3a8aecad5c97d9af388df04695", "ort", "find-renames", undefined);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "11da4e38aa3e577ffde6d546f1c52e53b04d3151", "ort", "find-renames", undefined);
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(1);
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-11da4e3-0404fb9");
-
- expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "bp-target-11da4e3-0404fb9",
- base: "target",
- title: "[target] PR Title",
- body: "**Backport:** https://codeberg.org/owner/reponame/pulls/8632\r\n\r\nPlease review and merge",
- reviewers: ["gh-user", "that-s-a-user"],
- assignees: [],
- labels: [],
- comments: [],
- }
- );
- expect(GitHubClient.prototype.createPullRequest).toReturnTimes(1);
- });
-
- test("additional pr comments", async () => {
- addProcessArgs([
- "-tb",
- "target",
- "-pr",
- "https://codeberg.org/owner/reponame/pulls/8632",
- "--comments",
- "first comment; second comment",
- "--body",
- "New body"
- ]);
-
- await runner.execute();
-
- const cwd = process.cwd() + "/bp";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.CODEBERG, undefined, "https://codeberg.org/api/v1");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(1);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "target");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "bp-target-28f63db");
-
- expect(GitCLIService.prototype.fetch).toBeCalledTimes(0);
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(1);
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-28f63db");
-
- expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "bp-target-28f63db",
- base: "target",
- title: "[target] PR Title",
- body: "**Backport:** https://codeberg.org/owner/reponame/pulls/8632\r\n\r\nNew body",
- reviewers: ["gh-user", "that-s-a-user"],
- assignees: [],
- labels: [],
- comments: ["first comment", "second comment"],
- }
- );
- expect(GitHubClient.prototype.createPullRequest).toReturnTimes(1);
- });
-
- test("with multiple target branches", async () => {
- addProcessArgs([
- "-tb",
- "v1, v2, v3",
- "-pr",
- "https://codeberg.org/owner/reponame/pulls/2368",
- "-f",
- "/tmp/folder"
- ]);
-
- await runner.execute();
-
- const cwd = "/tmp/folder";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.CODEBERG, undefined, "https://codeberg.org/api/v1");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(3);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "v1");
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "v2");
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "v3");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(3);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "bp-v1-28f63db");
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "bp-v2-28f63db");
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "bp-v3-28f63db");
-
- expect(GitCLIService.prototype.fetch).toBeCalledTimes(3);
- expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(3);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(3);
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-v1-28f63db");
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-v2-28f63db");
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-v3-28f63db");
-
- expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(3);
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "bp-v1-28f63db",
- base: "v1",
- title: "[v1] PR Title",
- body: "**Backport:** https://codeberg.org/owner/reponame/pulls/2368\r\n\r\nPlease review and merge",
- reviewers: ["gh-user", "that-s-a-user"],
- assignees: [],
- labels: [],
- comments: [],
- });
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "bp-v2-28f63db",
- base: "v2",
- title: "[v2] PR Title",
- body: "**Backport:** https://codeberg.org/owner/reponame/pulls/2368\r\n\r\nPlease review and merge",
- reviewers: ["gh-user", "that-s-a-user"],
- assignees: [],
- labels: [],
- comments: [],
- });
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "bp-v3-28f63db",
- base: "v3",
- title: "[v3] PR Title",
- body: "**Backport:** https://codeberg.org/owner/reponame/pulls/2368\r\n\r\nPlease review and merge",
- reviewers: ["gh-user", "that-s-a-user"],
- assignees: [],
- labels: [],
- comments: [],
- });
- expect(GitHubClient.prototype.createPullRequest).toReturnTimes(3);
- });
-
- test("with multiple target branches and multiple bp names", async () => {
- addProcessArgs([
- "-tb",
- "v1, v2, v3",
- "-pr",
- "https://codeberg.org/owner/reponame/pulls/2368",
- "-f",
- "/tmp/folder",
- "--bp-branch-name",
- "custom1, custom1, custom2, custom3",
- ]);
-
- await runner.execute();
-
- const cwd = "/tmp/folder";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.CODEBERG, undefined, "https://codeberg.org/api/v1");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(3);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "v1");
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "v2");
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "v3");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(3);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "custom1");
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "custom2");
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "custom3");
-
- expect(GitCLIService.prototype.fetch).toBeCalledTimes(3);
- expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(3);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(3);
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "custom1");
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "custom2");
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "custom3");
-
- expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(3);
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "custom1",
- base: "v1",
- title: "[v1] PR Title",
- body: "**Backport:** https://codeberg.org/owner/reponame/pulls/2368\r\n\r\nPlease review and merge",
- reviewers: ["gh-user", "that-s-a-user"],
- assignees: [],
- labels: [],
- comments: [],
- });
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "custom2",
- base: "v2",
- title: "[v2] PR Title",
- body: "**Backport:** https://codeberg.org/owner/reponame/pulls/2368\r\n\r\nPlease review and merge",
- reviewers: ["gh-user", "that-s-a-user"],
- assignees: [],
- labels: [],
- comments: [],
- });
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "custom3",
- base: "v3",
- title: "[v3] PR Title",
- body: "**Backport:** https://codeberg.org/owner/reponame/pulls/2368\r\n\r\nPlease review and merge",
- reviewers: ["gh-user", "that-s-a-user"],
- assignees: [],
- labels: [],
- comments: [],
- });
- expect(GitHubClient.prototype.createPullRequest).toReturnTimes(3);
- });
-
- test("with multiple target branches and one failure", async () => {
- jest.spyOn(GitHubClient.prototype, "createPullRequest").mockImplementation((_backport: BackportPullRequest) => {
-
- throw new Error("Mocked error");
- });
-
- addProcessArgs([
- "-tb",
- "v1, v2, v3",
- "-pr",
- "https://codeberg.org/owner/reponame/pulls/2368",
- "-f",
- "/tmp/folder",
- "--bp-branch-name",
- "custom-failure-head",
- ]);
-
- await expect(() => runner.execute()).rejects.toThrowError("Failure occurred during one of the backports: [Error: Mocked error ; Error: Mocked error ; Error: Mocked error]");
-
- const cwd = "/tmp/folder";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.CODEBERG, undefined, "https://codeberg.org/api/v1");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(3);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "v1");
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "v2");
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "v3");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(3);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "custom-failure-head-v1");
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "custom-failure-head-v2");
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "custom-failure-head-v3");
-
- expect(GitCLIService.prototype.fetch).toBeCalledTimes(3);
- expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(3);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(3);
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "custom-failure-head-v1");
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "custom-failure-head-v2");
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "custom-failure-head-v3");
-
- expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(3);
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "custom-failure-head-v1",
- base: "v1",
- title: "[v1] PR Title",
- body: "**Backport:** https://codeberg.org/owner/reponame/pulls/2368\r\n\r\nPlease review and merge",
- reviewers: ["gh-user", "that-s-a-user"],
- assignees: [],
- labels: [],
- comments: [],
- });
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "custom-failure-head-v2",
- base: "v2",
- title: "[v2] PR Title",
- body: "**Backport:** https://codeberg.org/owner/reponame/pulls/2368\r\n\r\nPlease review and merge",
- reviewers: ["gh-user", "that-s-a-user"],
- assignees: [],
- labels: [],
- comments: [],
- });
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "custom-failure-head-v3",
- base: "v3",
- title: "[v3] PR Title",
- body: "**Backport:** https://codeberg.org/owner/reponame/pulls/2368\r\n\r\nPlease review and merge",
- reviewers: ["gh-user", "that-s-a-user"],
- assignees: [],
- labels: [],
- comments: [],
- });
- expect(GitHubClient.prototype.createPullRequest).toThrowError();
- expect(GitHubClient.prototype.createPullRequestComment).toBeCalledTimes(0);
- });
-
- test("auth using CODEBERG_TOKEN takes precedence over GIT_TOKEN env variable", async () => {
- process.env[AuthTokenId.GIT_TOKEN] = "mygittoken";
- process.env[AuthTokenId.CODEBERG_TOKEN] = "mycodebergtoken";
- addProcessArgs([
- "-tb",
- "target",
- "-pr",
- "https://codeberg.org/owner/reponame/pulls/8632"
- ]);
-
- await runner.execute();
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.CODEBERG, "mycodebergtoken", "https://codeberg.org/api/v1");
-
- // Not interested in all subsequent calls, already tested in other test cases
- });
-
- test("auth arg takes precedence over CODEBERG_TOKEN", async () => {
- process.env[AuthTokenId.CODEBERG_TOKEN] = "mycodebergtoken";
- addProcessArgs([
- "-tb",
- "target",
- "-pr",
- "https://codeberg.org/owner/reponame/pulls/8632",
- "-a",
- "mytoken"
- ]);
-
- await runner.execute();
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.CODEBERG, "mytoken", "https://codeberg.org/api/v1");
-
- // Not interested in all subsequent calls, already tested in other test cases
- });
-
- test("ignore env variables related to other git platforms", async () => {
- process.env[AuthTokenId.GITLAB_TOKEN] = "mygitlabtoken";
- process.env[AuthTokenId.GITHUB_TOKEN] = "mygithubtoken";
- addProcessArgs([
- "-tb",
- "target",
- "-pr",
- "https://codeberg.org/owner/reponame/pulls/8632"
- ]);
-
- await runner.execute();
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.CODEBERG, undefined, "https://codeberg.org/api/v1");
-
- // Not interested in all subsequent calls, already tested in other test cases
- });
-
- test("extract target branch from label", async () => {
- addProcessArgs([
- "--target-branch-pattern",
- "^backport (?([^ ]+))$",
- "-pr",
- "https://codeberg.org/owner/reponame/pulls/2368"
- ]);
-
- await runner.execute();
-
- const cwd = process.cwd() + "/bp";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.CODEBERG, undefined, "https://codeberg.org/api/v1");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(1);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "prod");
- });
-
- test("with multiple target branches, one failure and error notification enabled", async () => {
- jest.spyOn(GitHubClient.prototype, "createPullRequest").mockImplementation((backport: BackportPullRequest) => {
- throw new Error(`Mocked error: ${backport.base}`);
- });
-
- addProcessArgs([
- "-tb",
- "v1, v2, v3",
- "-pr",
- "https://codeberg.org/owner/reponame/pulls/2368",
- "-f",
- "/tmp/folder",
- "--bp-branch-name",
- "custom-failure-head",
- "--enable-err-notification",
- ]);
-
- await expect(() => runner.execute()).rejects.toThrowError("Failure occurred during one of the backports: [Error: Mocked error: v1 ; Error: Mocked error: v2 ; Error: Mocked error: v3]");
-
- const cwd = "/tmp/folder";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.CODEBERG, undefined, "https://codeberg.org/api/v1");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(3);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "v1");
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "v2");
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "v3");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(3);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "custom-failure-head-v1");
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "custom-failure-head-v2");
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "custom-failure-head-v3");
-
- expect(GitCLIService.prototype.fetch).toBeCalledTimes(3);
- expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(3);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(3);
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "custom-failure-head-v1");
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "custom-failure-head-v2");
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "custom-failure-head-v3");
-
- expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(3);
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "custom-failure-head-v1",
- base: "v1",
- title: "[v1] PR Title",
- body: "**Backport:** https://codeberg.org/owner/reponame/pulls/2368\r\n\r\nPlease review and merge",
- reviewers: ["gh-user", "that-s-a-user"],
- assignees: [],
- labels: [],
- comments: [],
- });
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "custom-failure-head-v2",
- base: "v2",
- title: "[v2] PR Title",
- body: "**Backport:** https://codeberg.org/owner/reponame/pulls/2368\r\n\r\nPlease review and merge",
- reviewers: ["gh-user", "that-s-a-user"],
- assignees: [],
- labels: [],
- comments: [],
- });
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "custom-failure-head-v3",
- base: "v3",
- title: "[v3] PR Title",
- body: "**Backport:** https://codeberg.org/owner/reponame/pulls/2368\r\n\r\nPlease review and merge",
- reviewers: ["gh-user", "that-s-a-user"],
- assignees: [],
- labels: [],
- comments: [],
- });
- expect(GitHubClient.prototype.createPullRequest).toThrowError();
- expect(GitHubClient.prototype.createPullRequestComment).toBeCalledTimes(3);
- expect(GitHubClient.prototype.createPullRequestComment).toBeCalledWith("https://codeberg.org/api/v1/repos/owner/reponame/pulls/2368", "The backport to `v1` failed. Check the latest run for more details.");
- expect(GitHubClient.prototype.createPullRequestComment).toBeCalledWith("https://codeberg.org/api/v1/repos/owner/reponame/pulls/2368", "The backport to `v2` failed. Check the latest run for more details.");
- expect(GitHubClient.prototype.createPullRequestComment).toBeCalledWith("https://codeberg.org/api/v1/repos/owner/reponame/pulls/2368", "The backport to `v3` failed. Check the latest run for more details.");
- });
-
- test("with some failures and dry run enabled", async () => {
- jest.spyOn(GitCLIService.prototype, "cherryPick").mockImplementation((cwd: string, sha: string) => {
- throw new Error(`Forced error: ${sha}`);
- });
-
- addProcessArgs([
- "-tb",
- "v1, v2, v3",
- "-pr",
- "https://codeberg.org/owner/reponame/pulls/2368",
- "-f",
- "/tmp/folder",
- "--bp-branch-name",
- "custom-failure-head",
- "--enable-err-notification",
- "--dry-run",
- ]);
-
- await expect(() => runner.execute()).rejects.toThrowError("Failure occurred during one of the backports: [Error: Forced error: 28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc ; Error: Forced error: 28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc ; Error: Forced error: 28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc]");
-
- const cwd = "/tmp/folder";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.CODEBERG, undefined, "https://codeberg.org/api/v1");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(3);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "v1");
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "v2");
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://codeberg.org/owner/reponame.git", cwd, "v3");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(3);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "custom-failure-head-v1");
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "custom-failure-head-v2");
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "custom-failure-head-v3");
-
- expect(GitCLIService.prototype.fetch).toBeCalledTimes(3);
- expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(3);
- expect(GitCLIService.prototype.cherryPick).toThrowError();
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(0);
-
- expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(0);
- expect(GitHubClient.prototype.createPullRequestComment).toBeCalledTimes(0);
- });
-});
diff --git a/test/service/runner/cli-github-runner.test.ts b/test/service/runner/cli-github-runner.test.ts
index 53a4505..7d747b4 100644
--- a/test/service/runner/cli-github-runner.test.ts
+++ b/test/service/runner/cli-github-runner.test.ts
@@ -30,7 +30,6 @@ const GITHUB_MERGED_PR_W_OVERRIDES_CONFIG_FILE_CONTENT = {
jest.mock("@bp/service/git/git-cli");
jest.spyOn(GitHubClient.prototype, "createPullRequest");
-jest.spyOn(GitHubClient.prototype, "createPullRequestComment");
jest.spyOn(GitClientFactory, "getOrCreate");
let parser: ArgsParser;
@@ -91,11 +90,10 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(0);
expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(0);
- expect(GitHubClient.prototype.createPullRequestComment).toBeCalledTimes(0);
});
test("overriding author", async () => {
@@ -121,7 +119,7 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(0);
expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(0);
@@ -155,7 +153,7 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
expect(GitCLIService.prototype.addRemote).toBeCalledTimes(0);
expect(GitCLIService.prototype.addRemote).toBeCalledTimes(0);
@@ -192,7 +190,7 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(0);
expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(0);
@@ -223,7 +221,7 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-28f63db");
@@ -269,7 +267,7 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledTimes(0);
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-28f63db");
@@ -289,7 +287,6 @@ describe("cli runner", () => {
}
);
expect(GitHubClient.prototype.createPullRequest).toReturnTimes(1);
- expect(GitHubClient.prototype.createPullRequestComment).toBeCalledTimes(0);
});
test("closed and not merged pull request", async () => {
@@ -303,7 +300,7 @@ describe("cli runner", () => {
await expect(() => runner.execute()).rejects.toThrow("Provided pull request is closed and not merged");
});
- test("open pull request simple", async () => {
+ test("open pull request", async () => {
addProcessArgs([
"-tb",
"target",
@@ -328,7 +325,7 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/4444/head:pr/4444");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "91748965051fae1330ad58d15cf694e103267c87", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "91748965051fae1330ad58d15cf694e103267c87", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-9174896");
@@ -350,55 +347,6 @@ describe("cli runner", () => {
expect(GitHubClient.prototype.createPullRequest).toReturnTimes(1);
});
- test("open pull request with --auto-no-squash", async () => {
- addProcessArgs([
- "-tb",
- "target",
- "-pr",
- "https://github.com/owner/reponame/pull/4444",
- "--auto-no-squash",
- ]);
-
- await runner.execute();
-
- const cwd = process.cwd() + "/bp";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.GITHUB, undefined, "https://api.github.com");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(1);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://github.com/owner/reponame.git", cwd, "target");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "bp-target-0404fb9-11da4e3");
-
- expect(GitCLIService.prototype.fetch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/4444/head:pr/4444");
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(2);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "0404fb922ab75c3a8aecad5c97d9af388df04695", undefined, undefined, undefined);
- expect(GitCLIService.prototype.cherryPick).toHaveBeenLastCalledWith(cwd, "11da4e38aa3e577ffde6d546f1c52e53b04d3151", undefined, undefined, undefined);
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(1);
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-0404fb9-11da4e3");
-
- expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "bp-target-0404fb9-11da4e3",
- base: "target",
- title: "[target] PR Title",
- body: "**Backport:** https://github.com/owner/reponame/pull/4444\r\n\r\nPlease review and merge",
- reviewers: ["gh-user"],
- assignees: [],
- labels: [],
- comments: [],
- }
- );
- expect(GitHubClient.prototype.createPullRequest).toReturnTimes(1);
- });
-
test("override backporting pr data", async () => {
addProcessArgs([
"-tb",
@@ -436,7 +384,7 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp_branch_name");
@@ -494,7 +442,7 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp_branch_name");
@@ -523,7 +471,7 @@ describe("cli runner", () => {
"-pr",
"https://github.com/owner/reponame/pull/2368",
"--labels",
- "cherry-pick :cherries:, backport prod",
+ "cherry-pick :cherries:, original-label",
"--inherit-labels",
]);
@@ -544,7 +492,7 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-28f63db");
@@ -559,7 +507,7 @@ describe("cli runner", () => {
body: "**Backport:** https://github.com/owner/reponame/pull/2368\r\n\r\nPlease review and merge",
reviewers: ["gh-user", "that-s-a-user"],
assignees: [],
- labels: ["cherry-pick :cherries:", "backport prod"],
+ labels: ["cherry-pick :cherries:", "original-label"],
comments: [],
}
);
@@ -593,7 +541,7 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-28f63db");
@@ -638,7 +586,7 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp_branch_name");
@@ -653,7 +601,7 @@ describe("cli runner", () => {
body: "New Body Prefix - New Body",
reviewers: [],
assignees: ["user3", "user4"],
- labels: ["cli github cherry pick :cherries:", "backport prod"],
+ labels: ["cli github cherry pick :cherries:", "original-label"],
comments: [],
}
);
@@ -686,7 +634,7 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-28f63db");
@@ -733,8 +681,8 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledTimes(0);
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(2);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "0404fb922ab75c3a8aecad5c97d9af388df04695", undefined, undefined, undefined);
- expect(GitCLIService.prototype.cherryPick).toHaveBeenLastCalledWith(cwd, "11da4e38aa3e577ffde6d546f1c52e53b04d3151", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "0404fb922ab75c3a8aecad5c97d9af388df04695", undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "11da4e38aa3e577ffde6d546f1c52e53b04d3151", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-0404fb9-11da4e3");
@@ -788,7 +736,7 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, truncatedBranch);
@@ -839,8 +787,8 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledTimes(0);
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(2);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "0404fb922ab75c3a8aecad5c97d9af388df04695", "ort", "find-renames", undefined);
- expect(GitCLIService.prototype.cherryPick).toHaveBeenLastCalledWith(cwd, "11da4e38aa3e577ffde6d546f1c52e53b04d3151", "ort", "find-renames", undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "0404fb922ab75c3a8aecad5c97d9af388df04695", "ort", "find-renames");
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "11da4e38aa3e577ffde6d546f1c52e53b04d3151", "ort", "find-renames");
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-0404fb9-11da4e3");
@@ -890,7 +838,7 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledTimes(0);
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-28f63db");
@@ -943,9 +891,9 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(3);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(3);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-v1-28f63db");
@@ -1025,9 +973,9 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(3);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(3);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "custom1");
@@ -1112,9 +1060,9 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(3);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(3);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "custom-failure-head-v1");
@@ -1159,7 +1107,6 @@ describe("cli runner", () => {
comments: [],
});
expect(GitHubClient.prototype.createPullRequest).toThrowError();
- expect(GitHubClient.prototype.createPullRequestComment).toBeCalledTimes(0);
});
test("auth using GITHUB_TOKEN takes precedence over GIT_TOKEN env variable", async () => {
@@ -1216,161 +1163,4 @@ describe("cli runner", () => {
// Not interested in all subsequent calls, already tested in other test cases
});
-
- test("extract target branch from label", async () => {
- addProcessArgs([
- "--target-branch-pattern",
- "^backport (?([^ ]+))$",
- "-pr",
- "https://github.com/owner/reponame/pull/2368"
- ]);
-
- await runner.execute();
-
- const cwd = process.cwd() + "/bp";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.GITHUB, undefined, "https://api.github.com");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(1);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://github.com/owner/reponame.git", cwd, "prod");
- });
-
- test("with multiple target branches, one failure and error notification enabled", async () => {
- jest.spyOn(GitHubClient.prototype, "createPullRequest").mockImplementation((backport: BackportPullRequest) => {
- throw new Error(`Mocked error: ${backport.base}`);
- });
-
- addProcessArgs([
- "-tb",
- "v1, v2, v3",
- "-pr",
- "https://github.com/owner/reponame/pull/2368",
- "-f",
- "/tmp/folder",
- "--bp-branch-name",
- "custom-failure-head",
- "--enable-err-notification",
- ]);
-
- await expect(() => runner.execute()).rejects.toThrowError("Failure occurred during one of the backports: [Error: Mocked error: v1 ; Error: Mocked error: v2 ; Error: Mocked error: v3]");
-
- const cwd = "/tmp/folder";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.GITHUB, undefined, "https://api.github.com");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(3);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://github.com/owner/reponame.git", cwd, "v1");
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://github.com/owner/reponame.git", cwd, "v2");
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://github.com/owner/reponame.git", cwd, "v3");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(3);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "custom-failure-head-v1");
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "custom-failure-head-v2");
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "custom-failure-head-v3");
-
- expect(GitCLIService.prototype.fetch).toBeCalledTimes(3);
- expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(3);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(3);
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "custom-failure-head-v1");
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "custom-failure-head-v2");
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "custom-failure-head-v3");
-
- expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(3);
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "custom-failure-head-v1",
- base: "v1",
- title: "[v1] PR Title",
- body: "**Backport:** https://github.com/owner/reponame/pull/2368\r\n\r\nPlease review and merge",
- reviewers: ["gh-user", "that-s-a-user"],
- assignees: [],
- labels: [],
- comments: [],
- });
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "custom-failure-head-v2",
- base: "v2",
- title: "[v2] PR Title",
- body: "**Backport:** https://github.com/owner/reponame/pull/2368\r\n\r\nPlease review and merge",
- reviewers: ["gh-user", "that-s-a-user"],
- assignees: [],
- labels: [],
- comments: [],
- });
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "custom-failure-head-v3",
- base: "v3",
- title: "[v3] PR Title",
- body: "**Backport:** https://github.com/owner/reponame/pull/2368\r\n\r\nPlease review and merge",
- reviewers: ["gh-user", "that-s-a-user"],
- assignees: [],
- labels: [],
- comments: [],
- });
- expect(GitHubClient.prototype.createPullRequest).toThrowError();
- expect(GitHubClient.prototype.createPullRequestComment).toBeCalledTimes(3);
- expect(GitHubClient.prototype.createPullRequestComment).toBeCalledWith("https://api.github.com/repos/owner/reponame/pulls/2368", "The backport to `v1` failed. Check the latest run for more details.");
- expect(GitHubClient.prototype.createPullRequestComment).toBeCalledWith("https://api.github.com/repos/owner/reponame/pulls/2368", "The backport to `v2` failed. Check the latest run for more details.");
- expect(GitHubClient.prototype.createPullRequestComment).toBeCalledWith("https://api.github.com/repos/owner/reponame/pulls/2368", "The backport to `v3` failed. Check the latest run for more details.");
- });
-
- test("with some failures and dry run enabled", async () => {
- jest.spyOn(GitCLIService.prototype, "cherryPick").mockImplementation((cwd: string, sha: string) => {
- throw new Error(`Forced error: ${sha}`);
- });
-
- addProcessArgs([
- "-tb",
- "v1, v2, v3",
- "-pr",
- "https://github.com/owner/reponame/pull/2368",
- "-f",
- "/tmp/folder",
- "--bp-branch-name",
- "custom-failure-head",
- "--enable-err-notification",
- "--dry-run",
- ]);
-
- await expect(() => runner.execute()).rejects.toThrowError("Failure occurred during one of the backports: [Error: Forced error: 28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc ; Error: Forced error: 28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc ; Error: Forced error: 28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc]");
-
- const cwd = "/tmp/folder";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.GITHUB, undefined, "https://api.github.com");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(3);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://github.com/owner/reponame.git", cwd, "v1");
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://github.com/owner/reponame.git", cwd, "v2");
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://github.com/owner/reponame.git", cwd, "v3");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(3);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "custom-failure-head-v1");
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "custom-failure-head-v2");
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "custom-failure-head-v3");
-
- expect(GitCLIService.prototype.fetch).toBeCalledTimes(3);
- expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(3);
- expect(GitCLIService.prototype.cherryPick).toThrowError();
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(0);
-
- expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(0);
- expect(GitHubClient.prototype.createPullRequestComment).toBeCalledTimes(0);
- });
-});
+});
\ No newline at end of file
diff --git a/test/service/runner/cli-gitlab-runner.test.ts b/test/service/runner/cli-gitlab-runner.test.ts
index e066fe8..b5e985a 100644
--- a/test/service/runner/cli-gitlab-runner.test.ts
+++ b/test/service/runner/cli-gitlab-runner.test.ts
@@ -44,7 +44,6 @@ jest.mock("axios", () => {
jest.mock("@bp/service/git/git-cli");
jest.spyOn(GitLabClient.prototype, "createPullRequest");
-jest.spyOn(GitLabClient.prototype, "createPullRequestComment");
jest.spyOn(GitClientFactory, "getOrCreate");
@@ -102,11 +101,10 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "merge-requests/2/head:pr/2");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "9e15674ebd48e05c6e428a1fa31dbb60a778d644", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "9e15674ebd48e05c6e428a1fa31dbb60a778d644", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(0);
expect(GitLabClient.prototype.createPullRequest).toBeCalledTimes(0);
- expect(GitLabClient.prototype.createPullRequestComment).toBeCalledTimes(0);
});
test("dry run with relative folder", async () => {
@@ -137,7 +135,7 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "merge-requests/2/head:pr/2");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "9e15674ebd48e05c6e428a1fa31dbb60a778d644", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "9e15674ebd48e05c6e428a1fa31dbb60a778d644", undefined, undefined);
expect(GitCLIService.prototype.addRemote).toBeCalledTimes(0);
expect(GitCLIService.prototype.addRemote).toBeCalledTimes(0);
@@ -171,7 +169,7 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "merge-requests/2/head:pr/2");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "9e15674ebd48e05c6e428a1fa31dbb60a778d644", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "9e15674ebd48e05c6e428a1fa31dbb60a778d644", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-9e15674");
@@ -201,7 +199,6 @@ describe("cli runner", () => {
]);
await expect(() => runner.execute()).rejects.toThrow("Provided pull request is closed and not merged");
- expect(GitLabClient.prototype.createPullRequestComment).toBeCalledTimes(0);
});
test("merged pull request", async () => {
@@ -230,7 +227,7 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledTimes(0);
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "ebb1eca696c42fd067658bd9b5267709f78ef38e", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "ebb1eca696c42fd067658bd9b5267709f78ef38e", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-ebb1eca");
@@ -249,7 +246,6 @@ describe("cli runner", () => {
comments: [],
}
);
- expect(GitLabClient.prototype.createPullRequestComment).toBeCalledTimes(0);
});
@@ -290,7 +286,7 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "merge-requests/2/head:pr/2");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "9e15674ebd48e05c6e428a1fa31dbb60a778d644", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "9e15674ebd48e05c6e428a1fa31dbb60a778d644", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp_branch_name");
@@ -347,7 +343,7 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "merge-requests/2/head:pr/2");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "9e15674ebd48e05c6e428a1fa31dbb60a778d644", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "9e15674ebd48e05c6e428a1fa31dbb60a778d644", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp_branch_name");
@@ -397,7 +393,7 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledTimes(0);
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "ebb1eca696c42fd067658bd9b5267709f78ef38e", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "ebb1eca696c42fd067658bd9b5267709f78ef38e", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-ebb1eca");
@@ -412,7 +408,7 @@ describe("cli runner", () => {
body: expect.stringContaining("**Backport:** https://my.gitlab.host.com/superuser/backporting-example/-/merge_requests/1"),
reviewers: ["superuser"],
assignees: [],
- labels: ["cherry-pick :cherries:", "another-label", "backport-prod"],
+ labels: ["cherry-pick :cherries:", "another-label", "gitlab-original-label"],
comments: [],
}
);
@@ -446,7 +442,7 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledTimes(0);
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "ebb1eca696c42fd067658bd9b5267709f78ef38e", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "ebb1eca696c42fd067658bd9b5267709f78ef38e", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-ebb1eca");
@@ -491,7 +487,7 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledTimes(0);
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "ebb1eca696c42fd067658bd9b5267709f78ef38e", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "ebb1eca696c42fd067658bd9b5267709f78ef38e", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-prod-ebb1eca");
@@ -506,7 +502,7 @@ describe("cli runner", () => {
body: expect.stringContaining("**This is a backport:** https://my.gitlab.host.com/superuser/backporting-example/-/merge_requests/1"),
reviewers: [],
assignees: ["user3", "user4"],
- labels: ["cli gitlab cherry pick :cherries:", "backport-prod"],
+ labels: ["cli gitlab cherry pick :cherries:", "gitlab-original-label"],
comments: [],
}
);
@@ -535,7 +531,7 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "bp-target-e4dd336");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "e4dd336a4a20f394df6665994df382fb1d193a11", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "e4dd336a4a20f394df6665994df382fb1d193a11", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-e4dd336");
@@ -582,8 +578,8 @@ describe("cli runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "merge-requests/2/head:pr/2");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(2);
- expect(GitCLIService.prototype.cherryPick).toHaveBeenNthCalledWith(1, cwd, "e4dd336a4a20f394df6665994df382fb1d193a11", undefined, undefined, undefined);
- expect(GitCLIService.prototype.cherryPick).toHaveBeenNthCalledWith(2, cwd, "974519f65c9e0ed65277cd71026657a09fca05e7", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "e4dd336a4a20f394df6665994df382fb1d193a11", undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "974519f65c9e0ed65277cd71026657a09fca05e7", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-e4dd336-974519f");
@@ -604,50 +600,6 @@ describe("cli runner", () => {
);
});
- test("merged MR with --auto-no-squash", async () => {
- addProcessArgs([
- "-tb",
- "target",
- "-pr",
- "https://my.gitlab.host.com/superuser/backporting-example/-/merge_requests/5",
- "--auto-no-squash",
- ]);
-
- await runner.execute();
-
- const cwd = process.cwd() + "/bp";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.GITLAB, undefined, "https://my.gitlab.host.com/api/v4");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(1);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://my.gitlab.host.com/superuser/backporting-example.git", cwd, "target");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "bp-target-e4dd336");
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "e4dd336a4a20f394df6665994df382fb1d193a11", undefined, undefined, undefined);
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(1);
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-e4dd336");
-
- expect(GitLabClient.prototype.createPullRequest).toBeCalledTimes(1);
- expect(GitLabClient.prototype.createPullRequest).toBeCalledWith({
- owner: "superuser",
- repo: "backporting-example",
- head: "bp-target-e4dd336",
- base: "target",
- title: "[target] Update test.txt",
- body: expect.stringContaining("**Backport:** https://my.gitlab.host.com/superuser/backporting-example/-/merge_requests/5"),
- reviewers: ["superuser"],
- assignees: [],
- labels: [],
- comments: [],
- }
- );
- });
-
test("auth using GITLAB_TOKEN takes precedence over GIT_TOKEN env variable", async () => {
process.env[AuthTokenId.GIT_TOKEN] = "mygittoken";
process.env[AuthTokenId.GITLAB_TOKEN] = "mygitlabtoken";
diff --git a/test/service/runner/gha-github-runner.test.ts b/test/service/runner/gha-github-runner.test.ts
index 5461b33..7976a9d 100644
--- a/test/service/runner/gha-github-runner.test.ts
+++ b/test/service/runner/gha-github-runner.test.ts
@@ -30,7 +30,6 @@ const GITHUB_MERGED_PR_W_OVERRIDES_CONFIG_FILE_CONTENT = {
jest.mock("@bp/service/git/git-cli");
jest.spyOn(GitHubClient.prototype, "createPullRequest");
-jest.spyOn(GitHubClient.prototype, "createPullRequestComment");
jest.spyOn(GitClientFactory, "getOrCreate");
let parser: ArgsParser;
@@ -84,11 +83,10 @@ describe("gha runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(0);
expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(0);
- expect(GitHubClient.prototype.createPullRequestComment).toBeCalledTimes(0);
});
test("without dry run", async () => {
@@ -114,7 +112,7 @@ describe("gha runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-28f63db");
@@ -168,7 +166,7 @@ describe("gha runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/4444/head:pr/4444");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "91748965051fae1330ad58d15cf694e103267c87", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "91748965051fae1330ad58d15cf694e103267c87", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-9174896");
@@ -219,7 +217,7 @@ describe("gha runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp_branch_name");
@@ -271,7 +269,7 @@ describe("gha runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp_branch_name");
@@ -318,7 +316,7 @@ describe("gha runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-28f63db");
@@ -333,7 +331,7 @@ describe("gha runner", () => {
body: "**Backport:** https://github.com/owner/reponame/pull/2368\r\n\r\nPlease review and merge",
reviewers: ["gh-user", "that-s-a-user"],
assignees: [],
- labels: ["cherry-pick :cherries:", "another-label", "backport prod"],
+ labels: ["cherry-pick :cherries:", "another-label", "original-label"],
comments: [],
}
);
@@ -365,7 +363,7 @@ describe("gha runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-28f63db");
@@ -409,7 +407,7 @@ describe("gha runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp_branch_name");
@@ -424,7 +422,7 @@ describe("gha runner", () => {
body: "New Body Prefix - New Body",
reviewers: [],
assignees: ["user3", "user4"],
- labels: ["gha github cherry pick :cherries:", "backport prod"],
+ labels: ["gha github cherry pick :cherries:", "original-label"],
comments: [],
}
);
@@ -455,7 +453,7 @@ describe("gha runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-28f63db");
@@ -500,8 +498,8 @@ describe("gha runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledTimes(0);
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(2);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "0404fb922ab75c3a8aecad5c97d9af388df04695", undefined, undefined, undefined);
- expect(GitCLIService.prototype.cherryPick).toHaveBeenLastCalledWith(cwd, "11da4e38aa3e577ffde6d546f1c52e53b04d3151", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "0404fb922ab75c3a8aecad5c97d9af388df04695", undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "11da4e38aa3e577ffde6d546f1c52e53b04d3151", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-0404fb9-11da4e3");
@@ -548,53 +546,7 @@ describe("gha runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", "ort", "ours", undefined);
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(1);
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-28f63db");
-
- expect(GitHubClient.prototype.createPullRequest).toBeCalledTimes(1);
- expect(GitHubClient.prototype.createPullRequest).toBeCalledWith({
- owner: "owner",
- repo: "reponame",
- head: "bp-target-28f63db",
- base: "target",
- title: "[target] PR Title",
- body: "**Backport:** https://github.com/owner/reponame/pull/2368\r\n\r\nPlease review and merge",
- reviewers: ["gh-user", "that-s-a-user"],
- assignees: [],
- labels: [],
- comments: [],
- }
- );
- expect(GitHubClient.prototype.createPullRequest).toReturnTimes(1);
- });
-
- test("using github api url and additional cherry-pick options", async () => {
- spyGetInput({
- "target-branch": "target",
- "pull-request": "https://api.github.com/repos/owner/reponame/pulls/2368",
- "cherry-pick-options": "-x --allow-empty",
- });
-
- await runner.execute();
-
- const cwd = process.cwd() + "/bp";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.GITHUB, undefined, "https://api.github.com");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(1);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://github.com/owner/reponame.git", cwd, "target");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "bp-target-28f63db");
-
- expect(GitCLIService.prototype.fetch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, "-x --allow-empty");
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", "ort", "ours");
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-28f63db");
@@ -640,7 +592,7 @@ describe("gha runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-28f63db");
@@ -690,9 +642,9 @@ describe("gha runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(3);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(3);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-v1-28f63db");
@@ -768,9 +720,9 @@ describe("gha runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "pull/2368/head:pr/2368");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(3);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(3);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "custom-v1");
@@ -816,23 +768,4 @@ describe("gha runner", () => {
});
expect(GitHubClient.prototype.createPullRequest).toReturnTimes(3);
});
-
- test("explicitly set git client", async () => {
- spyGetInput({
- "target-branch": "target",
- "pull-request": "https://api.github.com/repos/owner/reponame/pulls/2368",
- "git-client": "codeberg",
- });
-
- await runner.execute();
-
- const cwd = process.cwd() + "/bp";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.CODEBERG, undefined, "https://api.github.com");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(1);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://github.com/owner/reponame.git", cwd, "target");
- });
-
});
\ No newline at end of file
diff --git a/test/service/runner/gha-gitlab-runner.test.ts b/test/service/runner/gha-gitlab-runner.test.ts
index f0f41f6..5212da8 100644
--- a/test/service/runner/gha-gitlab-runner.test.ts
+++ b/test/service/runner/gha-gitlab-runner.test.ts
@@ -43,7 +43,6 @@ jest.mock("axios", () => {
jest.mock("@bp/service/git/git-cli");
jest.spyOn(GitLabClient.prototype, "createPullRequest");
-jest.spyOn(GitLabClient.prototype, "createPullRequestComment");
jest.spyOn(GitClientFactory, "getOrCreate");
let parser: ArgsParser;
@@ -95,11 +94,10 @@ describe("gha runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "merge-requests/2/head:pr/2");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "9e15674ebd48e05c6e428a1fa31dbb60a778d644", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "9e15674ebd48e05c6e428a1fa31dbb60a778d644", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(0);
expect(GitLabClient.prototype.createPullRequest).toBeCalledTimes(0);
- expect(GitLabClient.prototype.createPullRequestComment).toBeCalledTimes(0);
});
test("without dry run", async () => {
@@ -125,7 +123,7 @@ describe("gha runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "merge-requests/2/head:pr/2");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "9e15674ebd48e05c6e428a1fa31dbb60a778d644", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "9e15674ebd48e05c6e428a1fa31dbb60a778d644", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-9e15674");
@@ -177,7 +175,7 @@ describe("gha runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledTimes(0);
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "ebb1eca696c42fd067658bd9b5267709f78ef38e", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "ebb1eca696c42fd067658bd9b5267709f78ef38e", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-ebb1eca");
@@ -227,7 +225,7 @@ describe("gha runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "merge-requests/2/head:pr/2");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "9e15674ebd48e05c6e428a1fa31dbb60a778d644", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "9e15674ebd48e05c6e428a1fa31dbb60a778d644", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp_branch_name");
@@ -278,7 +276,7 @@ describe("gha runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "merge-requests/2/head:pr/2");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "9e15674ebd48e05c6e428a1fa31dbb60a778d644", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "9e15674ebd48e05c6e428a1fa31dbb60a778d644", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp_branch_name");
@@ -323,7 +321,7 @@ describe("gha runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledTimes(0);
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "ebb1eca696c42fd067658bd9b5267709f78ef38e", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "ebb1eca696c42fd067658bd9b5267709f78ef38e", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-ebb1eca");
@@ -338,7 +336,7 @@ describe("gha runner", () => {
body: expect.stringContaining("**Backport:** https://my.gitlab.host.com/superuser/backporting-example/-/merge_requests/1"),
reviewers: ["superuser"],
assignees: [],
- labels: ["cherry-pick :cherries:", "another-label", "backport-prod"],
+ labels: ["cherry-pick :cherries:", "another-label", "gitlab-original-label"],
comments: [],
}
);
@@ -367,7 +365,7 @@ describe("gha runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledTimes(0);
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "ebb1eca696c42fd067658bd9b5267709f78ef38e", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "ebb1eca696c42fd067658bd9b5267709f78ef38e", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-ebb1eca");
@@ -411,7 +409,7 @@ describe("gha runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledTimes(0);
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "ebb1eca696c42fd067658bd9b5267709f78ef38e", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "ebb1eca696c42fd067658bd9b5267709f78ef38e", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-prod-ebb1eca");
@@ -426,7 +424,7 @@ describe("gha runner", () => {
body: expect.stringContaining("**This is a backport:** https://my.gitlab.host.com/superuser/backporting-example/-/merge_requests/1"),
reviewers: [],
assignees: ["user3", "user4"],
- labels: ["gha gitlab cherry pick :cherries:", "backport-prod"],
+ labels: ["gha gitlab cherry pick :cherries:", "gitlab-original-label"],
comments: [],
}
);
@@ -453,7 +451,7 @@ describe("gha runner", () => {
expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "bp-target-e4dd336");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "e4dd336a4a20f394df6665994df382fb1d193a11", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "e4dd336a4a20f394df6665994df382fb1d193a11", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-e4dd336");
@@ -498,8 +496,8 @@ describe("gha runner", () => {
expect(GitCLIService.prototype.fetch).toBeCalledWith(cwd, "merge-requests/2/head:pr/2");
expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(2);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "e4dd336a4a20f394df6665994df382fb1d193a11", undefined, undefined, undefined);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "974519f65c9e0ed65277cd71026657a09fca05e7", undefined, undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "e4dd336a4a20f394df6665994df382fb1d193a11", undefined, undefined);
+ expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "974519f65c9e0ed65277cd71026657a09fca05e7", undefined, undefined);
expect(GitCLIService.prototype.push).toBeCalledTimes(1);
expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-e4dd336-974519f");
@@ -519,46 +517,4 @@ describe("gha runner", () => {
}
);
});
-
- test("merged MR with auto-no-squash", async () => {
- spyGetInput({
- "target-branch": "target",
- "pull-request": "https://my.gitlab.host.com/superuser/backporting-example/-/merge_requests/5",
- "auto-no-squash": "true",
- });
-
- await runner.execute();
-
- const cwd = process.cwd() + "/bp";
-
- expect(GitClientFactory.getOrCreate).toBeCalledTimes(1);
- expect(GitClientFactory.getOrCreate).toBeCalledWith(GitClientType.GITLAB, undefined, "https://my.gitlab.host.com/api/v4");
-
- expect(GitCLIService.prototype.clone).toBeCalledTimes(1);
- expect(GitCLIService.prototype.clone).toBeCalledWith("https://my.gitlab.host.com/superuser/backporting-example.git", cwd, "target");
-
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledTimes(1);
- expect(GitCLIService.prototype.createLocalBranch).toBeCalledWith(cwd, "bp-target-e4dd336");
-
- expect(GitCLIService.prototype.cherryPick).toBeCalledTimes(1);
- expect(GitCLIService.prototype.cherryPick).toBeCalledWith(cwd, "e4dd336a4a20f394df6665994df382fb1d193a11", undefined, undefined, undefined);
-
- expect(GitCLIService.prototype.push).toBeCalledTimes(1);
- expect(GitCLIService.prototype.push).toBeCalledWith(cwd, "bp-target-e4dd336");
-
- expect(GitLabClient.prototype.createPullRequest).toBeCalledTimes(1);
- expect(GitLabClient.prototype.createPullRequest).toBeCalledWith({
- owner: "superuser",
- repo: "backporting-example",
- head: "bp-target-e4dd336",
- base: "target",
- title: "[target] Update test.txt",
- body: expect.stringContaining("**Backport:** https://my.gitlab.host.com/superuser/backporting-example/-/merge_requests/5"),
- reviewers: ["superuser"],
- assignees: [],
- labels: [],
- comments: [],
- }
- );
- });
});
\ No newline at end of file
diff --git a/test/service/runner/runner-util.test.ts b/test/service/runner/runner-util.test.ts
deleted file mode 100644
index 7f7d982..0000000
--- a/test/service/runner/runner-util.test.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { injectError, injectTargetBranch } from "@bp/service/runner/runner-util";
-
-describe("check runner utilities", () => {
- test("properly inject error message", () => {
- expect(injectError("Original message: {{error}}", "to inject")).toStrictEqual("Original message: to inject");
- });
-
- test("missing error placeholder in the original message", () => {
- expect(injectError("Original message: {{wrong}}", "to inject")).toStrictEqual("Original message: {{wrong}}");
- });
-
- test("properly inject target branch into message", () => {
- expect(injectTargetBranch("Original message: {{target-branch}}", "to inject")).toStrictEqual("Original message: to inject");
- });
-
- test("missing target branch placeholder in the original message", () => {
- expect(injectTargetBranch("Original message: {{wrong}}", "to inject")).toStrictEqual("Original message: {{wrong}}");
- });
-});
\ No newline at end of file
diff --git a/test/support/mock/codeberg-data.ts b/test/support/mock/codeberg-data.ts
deleted file mode 100644
index 1781aef..0000000
--- a/test/support/mock/codeberg-data.ts
+++ /dev/null
@@ -1,2004 +0,0 @@
-export const CB_TARGET_OWNER = "owner";
-export const CB_SOURCE_OWNER = "fork";
-export const CB_REPO = "reponame";
-export const CB_NOT_FOUND_PR_NUMBER = 1;
-export const CB_NEW_PR_URL = "new_pr_url";
-export const CB_NEW_PR_NUMBER = 9999;
-
-export const CB_MERGED_PR_FIXTURE = {
- "url": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/2368",
- "id": 1137188271,
- "node_id": "PR_kwDOABTq6s5DyB2v",
- "html_url": "https://codeberg.org/owner/reponame/pulls/2368",
- "diff_url": "https://codeberg.org/owner/reponame/pulls/2368.diff",
- "patch_url": "https://codeberg.org/owner/reponame/pulls/2368.patch",
- "issue_url": "https://codeberg.org/api/v1/repos/owner/reponame/issues/2368",
- "number": 2368,
- "state": "closed",
- "locked": false,
- "title": "PR Title",
- "user": {
- "login": "gh-user",
- "id": 11995863,
- "node_id": "MDQ6VXNlcjExOTk1ODYz",
- "avatar_url": "https://avatars.codebergusercontent.com/u/11995863?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/gh-user",
- "html_url": "https://codeberg.org/gh-user",
- "followers_url": "https://codeberg.org/api/v1/users/gh-user/followers",
- "following_url": "https://codeberg.org/api/v1/users/gh-user/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/gh-user/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/gh-user/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/gh-user/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/gh-user/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/gh-user/repos",
- "events_url": "https://codeberg.org/api/v1/users/gh-user/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/gh-user/received_events",
- "type": "User",
- "site_admin": false
- },
- "body": "Please review and merge",
- "created_at": "2022-11-28T08:43:09Z",
- "updated_at": "2022-11-28T10:11:53Z",
- "closed_at": "2022-11-28T10:11:52Z",
- "merged_at": "2022-11-28T10:11:52Z",
- "merge_commit_sha": "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc",
- "assignee": null,
- "assignees": [
-
- ],
- "requested_reviewers": [
- {
- "login": "requested-gh-user",
- "id": 1422582,
- "node_id": "MDQ6VXNlcjE0MjI1ODI=",
- "avatar_url": "https://avatars.codebergusercontent.com/u/1422582?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/requested-gh-user",
- "html_url": "https://codeberg.org/requested-gh-user",
- "followers_url": "https://codeberg.org/api/v1/users/requested-gh-user/followers",
- "following_url": "https://codeberg.org/api/v1/users/requested-gh-user/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/requested-gh-user/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/requested-gh-user/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/requested-gh-user/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/requested-gh-user/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/requested-gh-user/repos",
- "events_url": "https://codeberg.org/api/v1/users/requested-gh-user/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/requested-gh-user/received_events",
- "type": "User",
- "site_admin": false
- },
- {
- "login": "gh-user",
- "id": 1422582,
- "node_id": "MDQ6VXNlcjE0MjI1ODI=",
- "avatar_url": "https://avatars.codebergusercontent.com/u/1422582?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/gh-user",
- "html_url": "https://codeberg.org/gh-user",
- "followers_url": "https://codeberg.org/api/v1/users/gh-user/followers",
- "following_url": "https://codeberg.org/api/v1/users/gh-user/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/gh-user/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/gh-user/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/gh-user/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/gh-user/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/gh-user/repos",
- "events_url": "https://codeberg.org/api/v1/users/gh-user/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/gh-user/received_events",
- "type": "User",
- "site_admin": false
- },
- // Sometimes Codeberg returns null as part of requested_reviewers.
- null,
- ],
- "requested_teams": [
-
- ],
- "labels": [
- {
- "id": 4901021057,
- "node_id": "LA_kwDOImgs2354988AAAABJB-lgQ",
- "url": "https://codeberg.org/api/v1/repos/owner/reponame/labels/backport-prod",
- "name": "backport prod",
- "color": "AB975B",
- "default": false,
- "description": ""
- }
- ],
- "milestone": null,
- "draft": false,
- "commits_url": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/2368/commits",
- "review_comments_url": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/2368/comments",
- "review_comment_url": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/comments{/number}",
- "comments_url": "https://codeberg.org/api/v1/repos/owner/reponame/issues/2368/comments",
- "statuses_url": "https://codeberg.org/api/v1/repos/owner/reponame/statuses/91748965051fae1330ad58d15cf694e103267c87",
- "head": {
- "label": "kiegroup:bump-8.31.x-drools-8.31.0.Final",
- "ref": "bump-8.31.x-drools-8.31.0.Final",
- "sha": "91748965051fae1330ad58d15cf694e103267c87",
- "user": {
- "login": "kiegroup",
- "id": 517980,
- "node_id": "MDEyOk9yZ2FuaXphdGlvbjUxNzk4MA==",
- "avatar_url": "https://avatars.codebergusercontent.com/u/517980?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/kiegroup",
- "html_url": "https://codeberg.org/kiegroup",
- "followers_url": "https://codeberg.org/api/v1/users/kiegroup/followers",
- "following_url": "https://codeberg.org/api/v1/users/kiegroup/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/kiegroup/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/kiegroup/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/kiegroup/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/kiegroup/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/kiegroup/repos",
- "events_url": "https://codeberg.org/api/v1/users/kiegroup/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/kiegroup/received_events",
- "type": "Organization",
- "site_admin": false
- },
- "repo": {
- "id": 1370858,
- "node_id": "MDEwOlJlcG9zaXRvcnkxMzcwODU4",
- "name": "reponame",
- "full_name": "fork/reponame",
- "private": false,
- "owner": {
- "login": "kiegroup",
- "id": 517980,
- "node_id": "MDEyOk9yZ2FuaXphdGlvbjUxNzk4MA==",
- "avatar_url": "https://avatars.codebergusercontent.com/u/517980?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/kiegroup",
- "html_url": "https://codeberg.org/kiegroup",
- "followers_url": "https://codeberg.org/api/v1/users/kiegroup/followers",
- "following_url": "https://codeberg.org/api/v1/users/kiegroup/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/kiegroup/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/kiegroup/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/kiegroup/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/kiegroup/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/kiegroup/repos",
- "events_url": "https://codeberg.org/api/v1/users/kiegroup/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/kiegroup/received_events",
- "type": "Organization",
- "site_admin": false
- },
- "html_url": "https://codeberg.org/fork/reponame",
- "description": "AI constraint solver in Java to optimize the vehicle routing problem, employee rostering, task assignment, maintenance scheduling, conference scheduling and other planning problems.",
- "fork": false,
- "url": "https://codeberg.org/api/v1/repos/fork/reponame",
- "forks_url": "https://codeberg.org/api/v1/repos/fork/reponame/forks",
- "keys_url": "https://codeberg.org/api/v1/repos/fork/reponame/keys{/key_id}",
- "collaborators_url": "https://codeberg.org/api/v1/repos/fork/reponame/collaborators{/collaborator}",
- "teams_url": "https://codeberg.org/api/v1/repos/fork/reponame/teams",
- "hooks_url": "https://codeberg.org/api/v1/repos/fork/reponame/hooks",
- "issue_events_url": "https://codeberg.org/api/v1/repos/fork/reponame/issues/events{/number}",
- "events_url": "https://codeberg.org/api/v1/repos/fork/reponame/events",
- "assignees_url": "https://codeberg.org/api/v1/repos/fork/reponame/assignees{/user}",
- "branches_url": "https://codeberg.org/api/v1/repos/fork/reponame/branches{/branch}",
- "tags_url": "https://codeberg.org/api/v1/repos/fork/reponame/tags",
- "blobs_url": "https://codeberg.org/api/v1/repos/fork/reponame/git/blobs{/sha}",
- "git_tags_url": "https://codeberg.org/api/v1/repos/fork/reponame/git/tags{/sha}",
- "git_refs_url": "https://codeberg.org/api/v1/repos/fork/reponame/git/refs{/sha}",
- "trees_url": "https://codeberg.org/api/v1/repos/fork/reponame/git/trees{/sha}",
- "statuses_url": "https://codeberg.org/api/v1/repos/fork/reponame/statuses/{sha}",
- "languages_url": "https://codeberg.org/api/v1/repos/fork/reponame/languages",
- "stargazers_url": "https://codeberg.org/api/v1/repos/fork/reponame/stargazers",
- "contributors_url": "https://codeberg.org/api/v1/repos/fork/reponame/contributors",
- "subscribers_url": "https://codeberg.org/api/v1/repos/fork/reponame/subscribers",
- "subscription_url": "https://codeberg.org/api/v1/repos/fork/reponame/subscription",
- "commits_url": "https://codeberg.org/api/v1/repos/fork/reponame/commits{/sha}",
- "git_commits_url": "https://codeberg.org/api/v1/repos/fork/reponame/git/commits{/sha}",
- "comments_url": "https://codeberg.org/api/v1/repos/fork/reponame/comments{/number}",
- "issue_comment_url": "https://codeberg.org/api/v1/repos/fork/reponame/issues/comments{/number}",
- "contents_url": "https://codeberg.org/api/v1/repos/fork/reponame/contents/{+path}",
- "compare_url": "https://codeberg.org/api/v1/repos/fork/reponame/compare/{base}...{head}",
- "merges_url": "https://codeberg.org/api/v1/repos/fork/reponame/merges",
- "archive_url": "https://codeberg.org/api/v1/repos/fork/reponame/{archive_format}{/ref}",
- "downloads_url": "https://codeberg.org/api/v1/repos/fork/reponame/downloads",
- "issues_url": "https://codeberg.org/api/v1/repos/fork/reponame/issues{/number}",
- "pulls_url": "https://codeberg.org/api/v1/repos/fork/reponame/pulls{/number}",
- "milestones_url": "https://codeberg.org/api/v1/repos/fork/reponame/milestones{/number}",
- "notifications_url": "https://codeberg.org/api/v1/repos/fork/reponame/notifications{?since,all,participating}",
- "labels_url": "https://codeberg.org/api/v1/repos/fork/reponame/labels{/name}",
- "releases_url": "https://codeberg.org/api/v1/repos/fork/reponame/releases{/id}",
- "deployments_url": "https://codeberg.org/api/v1/repos/fork/reponame/deployments",
- "created_at": "2011-02-15T19:38:23Z",
- "updated_at": "2022-11-28T05:01:47Z",
- "pushed_at": "2022-11-28T10:50:51Z",
- "git_url": "git://codeberg.org/fork/reponame.git",
- "ssh_url": "git@codeberg.org:fork/reponame.git",
- "clone_url": "https://codeberg.org/fork/reponame.git",
- "svn_url": "https://codeberg.org/fork/reponame",
- "homepage": "https://www.reponame.org",
- "size": 238339,
- "stargazers_count": 2811,
- "watchers_count": 2811,
- "language": "Java",
- "has_issues": false,
- "has_projects": false,
- "has_downloads": true,
- "has_wiki": false,
- "has_pages": false,
- "has_discussions": false,
- "forks_count": 878,
- "mirror_url": null,
- "archived": false,
- "disabled": false,
- "open_issues_count": 30,
- "license": {
- "key": "apache-2.0",
- "name": "Apache License 2.0",
- "spdx_id": "Apache-2.0",
- "url": "https://codeberg.org/api/v1/licenses/apache-2.0",
- "node_id": "MDc6TGljZW5zZTI="
- },
- "allow_forking": true,
- "is_template": false,
- "web_commit_signoff_required": false,
- "topics": [
- "artificial-intelligence",
- "branch-and-bound",
- "constraint-programming",
- "constraint-satisfaction-problem",
- "constraint-solver",
- "constraints",
- "employee-rostering",
- "java",
- "local-search",
- "mathematical-optimization",
- "metaheuristics",
- "optimization",
- "rostering",
- "scheduling",
- "simulated-annealing",
- "solver",
- "tabu-search",
- "traveling-salesman",
- "traveling-salesman-problem",
- "vehicle-routing-problem"
- ],
- "visibility": "public",
- "forks": 878,
- "open_issues": 30,
- "watchers": 2811,
- "default_branch": "main"
- }
- },
- "base": {
- "label": "kiegroup:8.31.x",
- "ref": "8.31.x",
- "sha": "8cfc286765cb01c84a1d62c65519fa8032bfecbd",
- "user": {
- "login": "kiegroup",
- "id": 517980,
- "node_id": "MDEyOk9yZ2FuaXphdGlvbjUxNzk4MA==",
- "avatar_url": "https://avatars.codebergusercontent.com/u/517980?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/kiegroup",
- "html_url": "https://codeberg.org/kiegroup",
- "followers_url": "https://codeberg.org/api/v1/users/kiegroup/followers",
- "following_url": "https://codeberg.org/api/v1/users/kiegroup/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/kiegroup/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/kiegroup/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/kiegroup/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/kiegroup/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/kiegroup/repos",
- "events_url": "https://codeberg.org/api/v1/users/kiegroup/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/kiegroup/received_events",
- "type": "Organization",
- "site_admin": false
- },
- "repo": {
- "id": 1370858,
- "node_id": "MDEwOlJlcG9zaXRvcnkxMzcwODU4",
- "name": "reponame",
- "full_name": "owner/reponame",
- "private": false,
- "owner": {
- "login": "kiegroup",
- "id": 517980,
- "node_id": "MDEyOk9yZ2FuaXphdGlvbjUxNzk4MA==",
- "avatar_url": "https://avatars.codebergusercontent.com/u/517980?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/kiegroup",
- "html_url": "https://codeberg.org/kiegroup",
- "followers_url": "https://codeberg.org/api/v1/users/kiegroup/followers",
- "following_url": "https://codeberg.org/api/v1/users/kiegroup/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/kiegroup/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/kiegroup/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/kiegroup/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/kiegroup/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/kiegroup/repos",
- "events_url": "https://codeberg.org/api/v1/users/kiegroup/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/kiegroup/received_events",
- "type": "Organization",
- "site_admin": false
- },
- "html_url": "https://codeberg.org/owner/reponame",
- "description": "AI constraint solver in Java to optimize the vehicle routing problem, employee rostering, task assignment, maintenance scheduling, conference scheduling and other planning problems.",
- "fork": false,
- "url": "https://codeberg.org/api/v1/repos/owner/reponame",
- "forks_url": "https://codeberg.org/api/v1/repos/owner/reponame/forks",
- "keys_url": "https://codeberg.org/api/v1/repos/owner/reponame/keys{/key_id}",
- "collaborators_url": "https://codeberg.org/api/v1/repos/owner/reponame/collaborators{/collaborator}",
- "teams_url": "https://codeberg.org/api/v1/repos/owner/reponame/teams",
- "hooks_url": "https://codeberg.org/api/v1/repos/owner/reponame/hooks",
- "issue_events_url": "https://codeberg.org/api/v1/repos/owner/reponame/issues/events{/number}",
- "events_url": "https://codeberg.org/api/v1/repos/owner/reponame/events",
- "assignees_url": "https://codeberg.org/api/v1/repos/owner/reponame/assignees{/user}",
- "branches_url": "https://codeberg.org/api/v1/repos/owner/reponame/branches{/branch}",
- "tags_url": "https://codeberg.org/api/v1/repos/owner/reponame/tags",
- "blobs_url": "https://codeberg.org/api/v1/repos/owner/reponame/git/blobs{/sha}",
- "git_tags_url": "https://codeberg.org/api/v1/repos/owner/reponame/git/tags{/sha}",
- "git_refs_url": "https://codeberg.org/api/v1/repos/owner/reponame/git/refs{/sha}",
- "trees_url": "https://codeberg.org/api/v1/repos/owner/reponame/git/trees{/sha}",
- "statuses_url": "https://codeberg.org/api/v1/repos/owner/reponame/statuses/{sha}",
- "languages_url": "https://codeberg.org/api/v1/repos/owner/reponame/languages",
- "stargazers_url": "https://codeberg.org/api/v1/repos/owner/reponame/stargazers",
- "contributors_url": "https://codeberg.org/api/v1/repos/owner/reponame/contributors",
- "subscribers_url": "https://codeberg.org/api/v1/repos/owner/reponame/subscribers",
- "subscription_url": "https://codeberg.org/api/v1/repos/owner/reponame/subscription",
- "commits_url": "https://codeberg.org/api/v1/repos/owner/reponame/commits{/sha}",
- "git_commits_url": "https://codeberg.org/api/v1/repos/owner/reponame/git/commits{/sha}",
- "comments_url": "https://codeberg.org/api/v1/repos/owner/reponame/comments{/number}",
- "issue_comment_url": "https://codeberg.org/api/v1/repos/owner/reponame/issues/comments{/number}",
- "contents_url": "https://codeberg.org/api/v1/repos/owner/reponame/contents/{+path}",
- "compare_url": "https://codeberg.org/api/v1/repos/owner/reponame/compare/{base}...{head}",
- "merges_url": "https://codeberg.org/api/v1/repos/owner/reponame/merges",
- "archive_url": "https://codeberg.org/api/v1/repos/owner/reponame/{archive_format}{/ref}",
- "downloads_url": "https://codeberg.org/api/v1/repos/owner/reponame/downloads",
- "issues_url": "https://codeberg.org/api/v1/repos/owner/reponame/issues{/number}",
- "pulls_url": "https://codeberg.org/api/v1/repos/owner/reponame/pulls{/number}",
- "milestones_url": "https://codeberg.org/api/v1/repos/owner/reponame/milestones{/number}",
- "notifications_url": "https://codeberg.org/api/v1/repos/owner/reponame/notifications{?since,all,participating}",
- "labels_url": "https://codeberg.org/api/v1/repos/owner/reponame/labels{/name}",
- "releases_url": "https://codeberg.org/api/v1/repos/owner/reponame/releases{/id}",
- "deployments_url": "https://codeberg.org/api/v1/repos/owner/reponame/deployments",
- "created_at": "2011-02-15T19:38:23Z",
- "updated_at": "2022-11-28T05:01:47Z",
- "pushed_at": "2022-11-28T10:50:51Z",
- "git_url": "git://codeberg.org/owner/reponame.git",
- "ssh_url": "git@codeberg.org:owner/reponame.git",
- "clone_url": "https://codeberg.org/owner/reponame.git",
- "svn_url": "https://codeberg.org/owner/reponame",
- "homepage": "https://www.reponame.org",
- "size": 238339,
- "stargazers_count": 2811,
- "watchers_count": 2811,
- "language": "Java",
- "has_issues": false,
- "has_projects": false,
- "has_downloads": true,
- "has_wiki": false,
- "has_pages": false,
- "has_discussions": false,
- "forks_count": 878,
- "mirror_url": null,
- "archived": false,
- "disabled": false,
- "open_issues_count": 30,
- "license": {
- "key": "apache-2.0",
- "name": "Apache License 2.0",
- "spdx_id": "Apache-2.0",
- "url": "https://codeberg.org/api/v1/licenses/apache-2.0",
- "node_id": "MDc6TGljZW5zZTI="
- },
- "allow_forking": true,
- "is_template": false,
- "web_commit_signoff_required": false,
- "topics": [
- "artificial-intelligence",
- "branch-and-bound",
- "constraint-programming",
- "constraint-satisfaction-problem",
- "constraint-solver",
- "constraints",
- "employee-rostering",
- "java",
- "local-search",
- "mathematical-optimization",
- "metaheuristics",
- "optimization",
- "rostering",
- "scheduling",
- "simulated-annealing",
- "solver",
- "tabu-search",
- "traveling-salesman",
- "traveling-salesman-problem",
- "vehicle-routing-problem"
- ],
- "visibility": "public",
- "forks": 878,
- "open_issues": 30,
- "watchers": 2811,
- "default_branch": "main"
- }
- },
- "_links": {
- "self": {
- "href": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/2368"
- },
- "html": {
- "href": "https://codeberg.org/owner/reponame/pulls/2368"
- },
- "issue": {
- "href": "https://codeberg.org/api/v1/repos/owner/reponame/issues/2368"
- },
- "comments": {
- "href": "https://codeberg.org/api/v1/repos/owner/reponame/issues/2368/comments"
- },
- "review_comments": {
- "href": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/2368/comments"
- },
- "review_comment": {
- "href": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/comments{/number}"
- },
- "commits": {
- "href": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/2368/commits"
- },
- "statuses": {
- "href": "https://codeberg.org/api/v1/repos/owner/reponame/statuses/91748965051fae1330ad58d15cf694e103267c87"
- }
- },
- "author_association": "CONTRIBUTOR",
- "auto_merge": null,
- "active_lock_reason": null,
- "merged": true,
- "mergeable": null,
- "rebaseable": null,
- "mergeable_state": "unknown",
- "merged_by": {
- "login": "that-s-a-user",
- "id": 17157711,
- "node_id": "MDQ6VXNlcjE3MTU3NzEx",
- "avatar_url": "https://avatars.codebergusercontent.com/u/17157711?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/that-s-a-user",
- "html_url": "https://codeberg.org/that-s-a-user",
- "followers_url": "https://codeberg.org/api/v1/users/that-s-a-user/followers",
- "following_url": "https://codeberg.org/api/v1/users/that-s-a-user/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/that-s-a-user/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/that-s-a-user/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/that-s-a-user/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/that-s-a-user/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/that-s-a-user/repos",
- "events_url": "https://codeberg.org/api/v1/users/that-s-a-user/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/that-s-a-user/received_events",
- "type": "User",
- "site_admin": false
- },
- "comments": 0,
- "review_comments": 0,
- "maintainer_can_modify": false,
- "commits": 2,
- "additions": 2,
- "deletions": 2,
- "changed_files": 2
-};
-
-export const CB_OPEN_PR_FIXTURE = {
- "url": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/4444",
- "id": 1137188271,
- "node_id": "PR_kwDOABTq6s5DyB2v",
- "html_url": "https://codeberg.org/owner/reponame/pulls/4444",
- "diff_url": "https://codeberg.org/owner/reponame/pulls/4444.diff",
- "patch_url": "https://codeberg.org/owner/reponame/pulls/4444.patch",
- "issue_url": "https://codeberg.org/api/v1/repos/owner/reponame/issues/4444",
- "number": 4444,
- "state": "open",
- "locked": false,
- "title": "PR Title",
- "user": {
- "login": "gh-user",
- "id": 11995863,
- "node_id": "MDQ6VXNlcjExOTk1ODYz",
- "avatar_url": "https://avatars.codebergusercontent.com/u/11995863?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/gh-user",
- "html_url": "https://codeberg.org/gh-user",
- "followers_url": "https://codeberg.org/api/v1/users/gh-user/followers",
- "following_url": "https://codeberg.org/api/v1/users/gh-user/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/gh-user/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/gh-user/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/gh-user/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/gh-user/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/gh-user/repos",
- "events_url": "https://codeberg.org/api/v1/users/gh-user/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/gh-user/received_events",
- "type": "User",
- "site_admin": false
- },
- "body": "Please review and merge",
- "created_at": "2022-11-28T08:43:09Z",
- "updated_at": "2022-11-28T10:11:53Z",
- "closed_at": "2022-11-28T10:11:52Z",
- "merged_at": "2022-11-28T10:11:52Z",
- "merge_commit_sha": "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc",
- "assignee": null,
- "assignees": [
-
- ],
- "requested_reviewers": [
- {
- "login": "gh-user",
- "id": 1422582,
- "node_id": "MDQ6VXNlcjE0MjI1ODI=",
- "avatar_url": "https://avatars.codebergusercontent.com/u/1422582?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/gh-user",
- "html_url": "https://codeberg.org/gh-user",
- "followers_url": "https://codeberg.org/api/v1/users/gh-user/followers",
- "following_url": "https://codeberg.org/api/v1/users/gh-user/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/gh-user/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/gh-user/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/gh-user/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/gh-user/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/gh-user/repos",
- "events_url": "https://codeberg.org/api/v1/users/gh-user/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/gh-user/received_events",
- "type": "User",
- "site_admin": false
- }
- ],
- "requested_teams": [
-
- ],
- "labels": [
-
- ],
- "milestone": null,
- "draft": false,
- "commits_url": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/4444/commits",
- "review_comments_url": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/4444/comments",
- "review_comment_url": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/comments{/number}",
- "comments_url": "https://codeberg.org/api/v1/repos/owner/reponame/issues/4444/comments",
- "statuses_url": "https://codeberg.org/api/v1/repos/owner/reponame/statuses/91748965051fae1330ad58d15cf694e103267c87",
- "head": {
- "label": "kiegroup:bump-8.31.x-drools-8.31.0.Final",
- "ref": "bump-8.31.x-drools-8.31.0.Final",
- "sha": "91748965051fae1330ad58d15cf694e103267c87",
- "user": {
- "login": "kiegroup",
- "id": 517980,
- "node_id": "MDEyOk9yZ2FuaXphdGlvbjUxNzk4MA==",
- "avatar_url": "https://avatars.codebergusercontent.com/u/517980?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/kiegroup",
- "html_url": "https://codeberg.org/kiegroup",
- "followers_url": "https://codeberg.org/api/v1/users/kiegroup/followers",
- "following_url": "https://codeberg.org/api/v1/users/kiegroup/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/kiegroup/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/kiegroup/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/kiegroup/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/kiegroup/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/kiegroup/repos",
- "events_url": "https://codeberg.org/api/v1/users/kiegroup/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/kiegroup/received_events",
- "type": "Organization",
- "site_admin": false
- },
- "repo": {
- "id": 1370858,
- "node_id": "MDEwOlJlcG9zaXRvcnkxMzcwODU4",
- "name": "reponame",
- "full_name": "fork/reponame",
- "private": false,
- "owner": {
- "login": "kiegroup",
- "id": 517980,
- "node_id": "MDEyOk9yZ2FuaXphdGlvbjUxNzk4MA==",
- "avatar_url": "https://avatars.codebergusercontent.com/u/517980?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/kiegroup",
- "html_url": "https://codeberg.org/kiegroup",
- "followers_url": "https://codeberg.org/api/v1/users/kiegroup/followers",
- "following_url": "https://codeberg.org/api/v1/users/kiegroup/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/kiegroup/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/kiegroup/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/kiegroup/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/kiegroup/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/kiegroup/repos",
- "events_url": "https://codeberg.org/api/v1/users/kiegroup/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/kiegroup/received_events",
- "type": "Organization",
- "site_admin": false
- },
- "html_url": "https://codeberg.org/fork/reponame",
- "description": "AI constraint solver in Java to optimize the vehicle routing problem, employee rostering, task assignment, maintenance scheduling, conference scheduling and other planning problems.",
- "fork": false,
- "url": "https://codeberg.org/api/v1/repos/fork/reponame",
- "forks_url": "https://codeberg.org/api/v1/repos/fork/reponame/forks",
- "keys_url": "https://codeberg.org/api/v1/repos/fork/reponame/keys{/key_id}",
- "collaborators_url": "https://codeberg.org/api/v1/repos/fork/reponame/collaborators{/collaborator}",
- "teams_url": "https://codeberg.org/api/v1/repos/fork/reponame/teams",
- "hooks_url": "https://codeberg.org/api/v1/repos/fork/reponame/hooks",
- "issue_events_url": "https://codeberg.org/api/v1/repos/fork/reponame/issues/events{/number}",
- "events_url": "https://codeberg.org/api/v1/repos/fork/reponame/events",
- "assignees_url": "https://codeberg.org/api/v1/repos/fork/reponame/assignees{/user}",
- "branches_url": "https://codeberg.org/api/v1/repos/fork/reponame/branches{/branch}",
- "tags_url": "https://codeberg.org/api/v1/repos/fork/reponame/tags",
- "blobs_url": "https://codeberg.org/api/v1/repos/fork/reponame/git/blobs{/sha}",
- "git_tags_url": "https://codeberg.org/api/v1/repos/fork/reponame/git/tags{/sha}",
- "git_refs_url": "https://codeberg.org/api/v1/repos/fork/reponame/git/refs{/sha}",
- "trees_url": "https://codeberg.org/api/v1/repos/fork/reponame/git/trees{/sha}",
- "statuses_url": "https://codeberg.org/api/v1/repos/fork/reponame/statuses/{sha}",
- "languages_url": "https://codeberg.org/api/v1/repos/fork/reponame/languages",
- "stargazers_url": "https://codeberg.org/api/v1/repos/fork/reponame/stargazers",
- "contributors_url": "https://codeberg.org/api/v1/repos/fork/reponame/contributors",
- "subscribers_url": "https://codeberg.org/api/v1/repos/fork/reponame/subscribers",
- "subscription_url": "https://codeberg.org/api/v1/repos/fork/reponame/subscription",
- "commits_url": "https://codeberg.org/api/v1/repos/fork/reponame/commits{/sha}",
- "git_commits_url": "https://codeberg.org/api/v1/repos/fork/reponame/git/commits{/sha}",
- "comments_url": "https://codeberg.org/api/v1/repos/fork/reponame/comments{/number}",
- "issue_comment_url": "https://codeberg.org/api/v1/repos/fork/reponame/issues/comments{/number}",
- "contents_url": "https://codeberg.org/api/v1/repos/fork/reponame/contents/{+path}",
- "compare_url": "https://codeberg.org/api/v1/repos/fork/reponame/compare/{base}...{head}",
- "merges_url": "https://codeberg.org/api/v1/repos/fork/reponame/merges",
- "archive_url": "https://codeberg.org/api/v1/repos/fork/reponame/{archive_format}{/ref}",
- "downloads_url": "https://codeberg.org/api/v1/repos/fork/reponame/downloads",
- "issues_url": "https://codeberg.org/api/v1/repos/fork/reponame/issues{/number}",
- "pulls_url": "https://codeberg.org/api/v1/repos/fork/reponame/pulls{/number}",
- "milestones_url": "https://codeberg.org/api/v1/repos/fork/reponame/milestones{/number}",
- "notifications_url": "https://codeberg.org/api/v1/repos/fork/reponame/notifications{?since,all,participating}",
- "labels_url": "https://codeberg.org/api/v1/repos/fork/reponame/labels{/name}",
- "releases_url": "https://codeberg.org/api/v1/repos/fork/reponame/releases{/id}",
- "deployments_url": "https://codeberg.org/api/v1/repos/fork/reponame/deployments",
- "created_at": "2011-02-15T19:38:23Z",
- "updated_at": "2022-11-28T05:01:47Z",
- "pushed_at": "2022-11-28T10:50:51Z",
- "git_url": "git://codeberg.org/fork/reponame.git",
- "ssh_url": "git@codeberg.org:fork/reponame.git",
- "clone_url": "https://codeberg.org/fork/reponame.git",
- "svn_url": "https://codeberg.org/fork/reponame",
- "homepage": "https://www.reponame.org",
- "size": 238339,
- "stargazers_count": 2811,
- "watchers_count": 2811,
- "language": "Java",
- "has_issues": false,
- "has_projects": false,
- "has_downloads": true,
- "has_wiki": false,
- "has_pages": false,
- "has_discussions": false,
- "forks_count": 878,
- "mirror_url": null,
- "archived": false,
- "disabled": false,
- "open_issues_count": 30,
- "license": {
- "key": "apache-2.0",
- "name": "Apache License 2.0",
- "spdx_id": "Apache-2.0",
- "url": "https://codeberg.org/api/v1/licenses/apache-2.0",
- "node_id": "MDc6TGljZW5zZTI="
- },
- "allow_forking": true,
- "is_template": false,
- "web_commit_signoff_required": false,
- "topics": [
- "artificial-intelligence",
- "branch-and-bound",
- "constraint-programming",
- "constraint-satisfaction-problem",
- "constraint-solver",
- "constraints",
- "employee-rostering",
- "java",
- "local-search",
- "mathematical-optimization",
- "metaheuristics",
- "optimization",
- "rostering",
- "scheduling",
- "simulated-annealing",
- "solver",
- "tabu-search",
- "traveling-salesman",
- "traveling-salesman-problem",
- "vehicle-routing-problem"
- ],
- "visibility": "public",
- "forks": 878,
- "open_issues": 30,
- "watchers": 2811,
- "default_branch": "main"
- }
- },
- "base": {
- "label": "kiegroup:8.31.x",
- "ref": "8.31.x",
- "sha": "8cfc286765cb01c84a1d62c65519fa8032bfecbd",
- "user": {
- "login": "kiegroup",
- "id": 517980,
- "node_id": "MDEyOk9yZ2FuaXphdGlvbjUxNzk4MA==",
- "avatar_url": "https://avatars.codebergusercontent.com/u/517980?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/kiegroup",
- "html_url": "https://codeberg.org/kiegroup",
- "followers_url": "https://codeberg.org/api/v1/users/kiegroup/followers",
- "following_url": "https://codeberg.org/api/v1/users/kiegroup/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/kiegroup/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/kiegroup/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/kiegroup/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/kiegroup/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/kiegroup/repos",
- "events_url": "https://codeberg.org/api/v1/users/kiegroup/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/kiegroup/received_events",
- "type": "Organization",
- "site_admin": false
- },
- "repo": {
- "id": 1370858,
- "node_id": "MDEwOlJlcG9zaXRvcnkxMzcwODU4",
- "name": "reponame",
- "full_name": "owner/reponame",
- "private": false,
- "owner": {
- "login": "kiegroup",
- "id": 517980,
- "node_id": "MDEyOk9yZ2FuaXphdGlvbjUxNzk4MA==",
- "avatar_url": "https://avatars.codebergusercontent.com/u/517980?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/kiegroup",
- "html_url": "https://codeberg.org/kiegroup",
- "followers_url": "https://codeberg.org/api/v1/users/kiegroup/followers",
- "following_url": "https://codeberg.org/api/v1/users/kiegroup/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/kiegroup/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/kiegroup/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/kiegroup/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/kiegroup/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/kiegroup/repos",
- "events_url": "https://codeberg.org/api/v1/users/kiegroup/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/kiegroup/received_events",
- "type": "Organization",
- "site_admin": false
- },
- "html_url": "https://codeberg.org/owner/reponame",
- "description": "AI constraint solver in Java to optimize the vehicle routing problem, employee rostering, task assignment, maintenance scheduling, conference scheduling and other planning problems.",
- "fork": false,
- "url": "https://codeberg.org/api/v1/repos/owner/reponame",
- "forks_url": "https://codeberg.org/api/v1/repos/owner/reponame/forks",
- "keys_url": "https://codeberg.org/api/v1/repos/owner/reponame/keys{/key_id}",
- "collaborators_url": "https://codeberg.org/api/v1/repos/owner/reponame/collaborators{/collaborator}",
- "teams_url": "https://codeberg.org/api/v1/repos/owner/reponame/teams",
- "hooks_url": "https://codeberg.org/api/v1/repos/owner/reponame/hooks",
- "issue_events_url": "https://codeberg.org/api/v1/repos/owner/reponame/issues/events{/number}",
- "events_url": "https://codeberg.org/api/v1/repos/owner/reponame/events",
- "assignees_url": "https://codeberg.org/api/v1/repos/owner/reponame/assignees{/user}",
- "branches_url": "https://codeberg.org/api/v1/repos/owner/reponame/branches{/branch}",
- "tags_url": "https://codeberg.org/api/v1/repos/owner/reponame/tags",
- "blobs_url": "https://codeberg.org/api/v1/repos/owner/reponame/git/blobs{/sha}",
- "git_tags_url": "https://codeberg.org/api/v1/repos/owner/reponame/git/tags{/sha}",
- "git_refs_url": "https://codeberg.org/api/v1/repos/owner/reponame/git/refs{/sha}",
- "trees_url": "https://codeberg.org/api/v1/repos/owner/reponame/git/trees{/sha}",
- "statuses_url": "https://codeberg.org/api/v1/repos/owner/reponame/statuses/{sha}",
- "languages_url": "https://codeberg.org/api/v1/repos/owner/reponame/languages",
- "stargazers_url": "https://codeberg.org/api/v1/repos/owner/reponame/stargazers",
- "contributors_url": "https://codeberg.org/api/v1/repos/owner/reponame/contributors",
- "subscribers_url": "https://codeberg.org/api/v1/repos/owner/reponame/subscribers",
- "subscription_url": "https://codeberg.org/api/v1/repos/owner/reponame/subscription",
- "commits_url": "https://codeberg.org/api/v1/repos/owner/reponame/commits{/sha}",
- "git_commits_url": "https://codeberg.org/api/v1/repos/owner/reponame/git/commits{/sha}",
- "comments_url": "https://codeberg.org/api/v1/repos/owner/reponame/comments{/number}",
- "issue_comment_url": "https://codeberg.org/api/v1/repos/owner/reponame/issues/comments{/number}",
- "contents_url": "https://codeberg.org/api/v1/repos/owner/reponame/contents/{+path}",
- "compare_url": "https://codeberg.org/api/v1/repos/owner/reponame/compare/{base}...{head}",
- "merges_url": "https://codeberg.org/api/v1/repos/owner/reponame/merges",
- "archive_url": "https://codeberg.org/api/v1/repos/owner/reponame/{archive_format}{/ref}",
- "downloads_url": "https://codeberg.org/api/v1/repos/owner/reponame/downloads",
- "issues_url": "https://codeberg.org/api/v1/repos/owner/reponame/issues{/number}",
- "pulls_url": "https://codeberg.org/api/v1/repos/owner/reponame/pulls{/number}",
- "milestones_url": "https://codeberg.org/api/v1/repos/owner/reponame/milestones{/number}",
- "notifications_url": "https://codeberg.org/api/v1/repos/owner/reponame/notifications{?since,all,participating}",
- "labels_url": "https://codeberg.org/api/v1/repos/owner/reponame/labels{/name}",
- "releases_url": "https://codeberg.org/api/v1/repos/owner/reponame/releases{/id}",
- "deployments_url": "https://codeberg.org/api/v1/repos/owner/reponame/deployments",
- "created_at": "2011-02-15T19:38:23Z",
- "updated_at": "2022-11-28T05:01:47Z",
- "pushed_at": "2022-11-28T10:50:51Z",
- "git_url": "git://codeberg.org/owner/reponame.git",
- "ssh_url": "git@codeberg.org:owner/reponame.git",
- "clone_url": "https://codeberg.org/owner/reponame.git",
- "svn_url": "https://codeberg.org/owner/reponame",
- "homepage": "https://www.reponame.org",
- "size": 238339,
- "stargazers_count": 2811,
- "watchers_count": 2811,
- "language": "Java",
- "has_issues": false,
- "has_projects": false,
- "has_downloads": true,
- "has_wiki": false,
- "has_pages": false,
- "has_discussions": false,
- "forks_count": 878,
- "mirror_url": null,
- "archived": false,
- "disabled": false,
- "open_issues_count": 30,
- "license": {
- "key": "apache-2.0",
- "name": "Apache License 2.0",
- "spdx_id": "Apache-2.0",
- "url": "https://codeberg.org/api/v1/licenses/apache-2.0",
- "node_id": "MDc6TGljZW5zZTI="
- },
- "allow_forking": true,
- "is_template": false,
- "web_commit_signoff_required": false,
- "topics": [
- "artificial-intelligence",
- "branch-and-bound",
- "constraint-programming",
- "constraint-satisfaction-problem",
- "constraint-solver",
- "constraints",
- "employee-rostering",
- "java",
- "local-search",
- "mathematical-optimization",
- "metaheuristics",
- "optimization",
- "rostering",
- "scheduling",
- "simulated-annealing",
- "solver",
- "tabu-search",
- "traveling-salesman",
- "traveling-salesman-problem",
- "vehicle-routing-problem"
- ],
- "visibility": "public",
- "forks": 878,
- "open_issues": 30,
- "watchers": 2811,
- "default_branch": "main"
- }
- },
- "_links": {
- "self": {
- "href": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/4444"
- },
- "html": {
- "href": "https://codeberg.org/owner/reponame/pulls/4444"
- },
- "issue": {
- "href": "https://codeberg.org/api/v1/repos/owner/reponame/issues/4444"
- },
- "comments": {
- "href": "https://codeberg.org/api/v1/repos/owner/reponame/issues/4444/comments"
- },
- "review_comments": {
- "href": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/4444/comments"
- },
- "review_comment": {
- "href": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/comments{/number}"
- },
- "commits": {
- "href": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/4444/commits"
- },
- "statuses": {
- "href": "https://codeberg.org/api/v1/repos/owner/reponame/statuses/91748965051fae1330ad58d15cf694e103267c87"
- }
- },
- "author_association": "CONTRIBUTOR",
- "auto_merge": null,
- "active_lock_reason": null,
- "merged": null,
- "mergeable": null,
- "rebaseable": null,
- "mergeable_state": "unknown",
- "merged_by": {},
- "comments": 0,
- "review_comments": 0,
- "maintainer_can_modify": false,
- "commits": 2,
- "additions": 2,
- "deletions": 2,
- "changed_files": 2
-};
-
-export const CB_NOT_MERGED_PR_FIXTURE = {
- "url": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/6666",
- "id": 1137188271,
- "node_id": "PR_kwDOABTq6s5DyB2v",
- "html_url": "https://codeberg.org/owner/reponame/pulls/6666",
- "diff_url": "https://codeberg.org/owner/reponame/pulls/6666.diff",
- "patch_url": "https://codeberg.org/owner/reponame/pulls/6666.patch",
- "issue_url": "https://codeberg.org/api/v1/repos/owner/reponame/issues/6666",
- "number": 6666,
- "state": "closed",
- "locked": false,
- "title": "PR Title",
- "user": {
- "login": "gh-user",
- "id": 11995863,
- "node_id": "MDQ6VXNlcjExOTk1ODYz",
- "avatar_url": "https://avatars.codebergusercontent.com/u/11995863?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/gh-user",
- "html_url": "https://codeberg.org/gh-user",
- "followers_url": "https://codeberg.org/api/v1/users/gh-user/followers",
- "following_url": "https://codeberg.org/api/v1/users/gh-user/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/gh-user/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/gh-user/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/gh-user/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/gh-user/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/gh-user/repos",
- "events_url": "https://codeberg.org/api/v1/users/gh-user/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/gh-user/received_events",
- "type": "User",
- "site_admin": false
- },
- "body": "Please review and merge",
- "created_at": "2022-11-28T08:43:09Z",
- "updated_at": "2022-11-28T10:11:53Z",
- "closed_at": "2022-11-28T10:11:52Z",
- "merged_at": "2022-11-28T10:11:52Z",
- "merge_commit_sha": "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc",
- "assignee": null,
- "assignees": [
-
- ],
- "requested_reviewers": [
- {
- "login": "gh-user",
- "id": 1422582,
- "node_id": "MDQ6VXNlcjE0MjI1ODI=",
- "avatar_url": "https://avatars.codebergusercontent.com/u/1422582?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/gh-user",
- "html_url": "https://codeberg.org/gh-user",
- "followers_url": "https://codeberg.org/api/v1/users/gh-user/followers",
- "following_url": "https://codeberg.org/api/v1/users/gh-user/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/gh-user/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/gh-user/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/gh-user/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/gh-user/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/gh-user/repos",
- "events_url": "https://codeberg.org/api/v1/users/gh-user/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/gh-user/received_events",
- "type": "User",
- "site_admin": false
- }
- ],
- "requested_teams": [
-
- ],
- "labels": [
-
- ],
- "milestone": null,
- "draft": false,
- "commits_url": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/6666/commits",
- "review_comments_url": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/6666/comments",
- "review_comment_url": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/comments{/number}",
- "comments_url": "https://codeberg.org/api/v1/repos/owner/reponame/issues/6666/comments",
- "statuses_url": "https://codeberg.org/api/v1/repos/owner/reponame/statuses/91748965051fae1330ad58d15cf694e103267c87",
- "head": {
- "label": "kiegroup:bump-8.31.x-drools-8.31.0.Final",
- "ref": "bump-8.31.x-drools-8.31.0.Final",
- "sha": "91748965051fae1330ad58d15cf694e103267c87",
- "user": {
- "login": "kiegroup",
- "id": 517980,
- "node_id": "MDEyOk9yZ2FuaXphdGlvbjUxNzk4MA==",
- "avatar_url": "https://avatars.codebergusercontent.com/u/517980?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/kiegroup",
- "html_url": "https://codeberg.org/kiegroup",
- "followers_url": "https://codeberg.org/api/v1/users/kiegroup/followers",
- "following_url": "https://codeberg.org/api/v1/users/kiegroup/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/kiegroup/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/kiegroup/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/kiegroup/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/kiegroup/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/kiegroup/repos",
- "events_url": "https://codeberg.org/api/v1/users/kiegroup/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/kiegroup/received_events",
- "type": "Organization",
- "site_admin": false
- },
- "repo": {
- "id": 1370858,
- "node_id": "MDEwOlJlcG9zaXRvcnkxMzcwODU4",
- "name": "reponame",
- "full_name": "fork/reponame",
- "private": false,
- "owner": {
- "login": "kiegroup",
- "id": 517980,
- "node_id": "MDEyOk9yZ2FuaXphdGlvbjUxNzk4MA==",
- "avatar_url": "https://avatars.codebergusercontent.com/u/517980?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/kiegroup",
- "html_url": "https://codeberg.org/kiegroup",
- "followers_url": "https://codeberg.org/api/v1/users/kiegroup/followers",
- "following_url": "https://codeberg.org/api/v1/users/kiegroup/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/kiegroup/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/kiegroup/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/kiegroup/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/kiegroup/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/kiegroup/repos",
- "events_url": "https://codeberg.org/api/v1/users/kiegroup/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/kiegroup/received_events",
- "type": "Organization",
- "site_admin": false
- },
- "html_url": "https://codeberg.org/fork/reponame",
- "description": "AI constraint solver in Java to optimize the vehicle routing problem, employee rostering, task assignment, maintenance scheduling, conference scheduling and other planning problems.",
- "fork": false,
- "url": "https://codeberg.org/api/v1/repos/fork/reponame",
- "forks_url": "https://codeberg.org/api/v1/repos/fork/reponame/forks",
- "keys_url": "https://codeberg.org/api/v1/repos/fork/reponame/keys{/key_id}",
- "collaborators_url": "https://codeberg.org/api/v1/repos/fork/reponame/collaborators{/collaborator}",
- "teams_url": "https://codeberg.org/api/v1/repos/fork/reponame/teams",
- "hooks_url": "https://codeberg.org/api/v1/repos/fork/reponame/hooks",
- "issue_events_url": "https://codeberg.org/api/v1/repos/fork/reponame/issues/events{/number}",
- "events_url": "https://codeberg.org/api/v1/repos/fork/reponame/events",
- "assignees_url": "https://codeberg.org/api/v1/repos/fork/reponame/assignees{/user}",
- "branches_url": "https://codeberg.org/api/v1/repos/fork/reponame/branches{/branch}",
- "tags_url": "https://codeberg.org/api/v1/repos/fork/reponame/tags",
- "blobs_url": "https://codeberg.org/api/v1/repos/fork/reponame/git/blobs{/sha}",
- "git_tags_url": "https://codeberg.org/api/v1/repos/fork/reponame/git/tags{/sha}",
- "git_refs_url": "https://codeberg.org/api/v1/repos/fork/reponame/git/refs{/sha}",
- "trees_url": "https://codeberg.org/api/v1/repos/fork/reponame/git/trees{/sha}",
- "statuses_url": "https://codeberg.org/api/v1/repos/fork/reponame/statuses/{sha}",
- "languages_url": "https://codeberg.org/api/v1/repos/fork/reponame/languages",
- "stargazers_url": "https://codeberg.org/api/v1/repos/fork/reponame/stargazers",
- "contributors_url": "https://codeberg.org/api/v1/repos/fork/reponame/contributors",
- "subscribers_url": "https://codeberg.org/api/v1/repos/fork/reponame/subscribers",
- "subscription_url": "https://codeberg.org/api/v1/repos/fork/reponame/subscription",
- "commits_url": "https://codeberg.org/api/v1/repos/fork/reponame/commits{/sha}",
- "git_commits_url": "https://codeberg.org/api/v1/repos/fork/reponame/git/commits{/sha}",
- "comments_url": "https://codeberg.org/api/v1/repos/fork/reponame/comments{/number}",
- "issue_comment_url": "https://codeberg.org/api/v1/repos/fork/reponame/issues/comments{/number}",
- "contents_url": "https://codeberg.org/api/v1/repos/fork/reponame/contents/{+path}",
- "compare_url": "https://codeberg.org/api/v1/repos/fork/reponame/compare/{base}...{head}",
- "merges_url": "https://codeberg.org/api/v1/repos/fork/reponame/merges",
- "archive_url": "https://codeberg.org/api/v1/repos/fork/reponame/{archive_format}{/ref}",
- "downloads_url": "https://codeberg.org/api/v1/repos/fork/reponame/downloads",
- "issues_url": "https://codeberg.org/api/v1/repos/fork/reponame/issues{/number}",
- "pulls_url": "https://codeberg.org/api/v1/repos/fork/reponame/pulls{/number}",
- "milestones_url": "https://codeberg.org/api/v1/repos/fork/reponame/milestones{/number}",
- "notifications_url": "https://codeberg.org/api/v1/repos/fork/reponame/notifications{?since,all,participating}",
- "labels_url": "https://codeberg.org/api/v1/repos/fork/reponame/labels{/name}",
- "releases_url": "https://codeberg.org/api/v1/repos/fork/reponame/releases{/id}",
- "deployments_url": "https://codeberg.org/api/v1/repos/fork/reponame/deployments",
- "created_at": "2011-02-15T19:38:23Z",
- "updated_at": "2022-11-28T05:01:47Z",
- "pushed_at": "2022-11-28T10:50:51Z",
- "git_url": "git://codeberg.org/fork/reponame.git",
- "ssh_url": "git@codeberg.org:fork/reponame.git",
- "clone_url": "https://codeberg.org/fork/reponame.git",
- "svn_url": "https://codeberg.org/fork/reponame",
- "homepage": "https://www.reponame.org",
- "size": 238339,
- "stargazers_count": 2811,
- "watchers_count": 2811,
- "language": "Java",
- "has_issues": false,
- "has_projects": false,
- "has_downloads": true,
- "has_wiki": false,
- "has_pages": false,
- "has_discussions": false,
- "forks_count": 878,
- "mirror_url": null,
- "archived": false,
- "disabled": false,
- "open_issues_count": 30,
- "license": {
- "key": "apache-2.0",
- "name": "Apache License 2.0",
- "spdx_id": "Apache-2.0",
- "url": "https://codeberg.org/api/v1/licenses/apache-2.0",
- "node_id": "MDc6TGljZW5zZTI="
- },
- "allow_forking": true,
- "is_template": false,
- "web_commit_signoff_required": false,
- "topics": [
- "artificial-intelligence",
- "branch-and-bound",
- "constraint-programming",
- "constraint-satisfaction-problem",
- "constraint-solver",
- "constraints",
- "employee-rostering",
- "java",
- "local-search",
- "mathematical-optimization",
- "metaheuristics",
- "optimization",
- "rostering",
- "scheduling",
- "simulated-annealing",
- "solver",
- "tabu-search",
- "traveling-salesman",
- "traveling-salesman-problem",
- "vehicle-routing-problem"
- ],
- "visibility": "public",
- "forks": 878,
- "open_issues": 30,
- "watchers": 2811,
- "default_branch": "main"
- }
- },
- "base": {
- "label": "kiegroup:8.31.x",
- "ref": "8.31.x",
- "sha": "8cfc286765cb01c84a1d62c65519fa8032bfecbd",
- "user": {
- "login": "kiegroup",
- "id": 517980,
- "node_id": "MDEyOk9yZ2FuaXphdGlvbjUxNzk4MA==",
- "avatar_url": "https://avatars.codebergusercontent.com/u/517980?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/kiegroup",
- "html_url": "https://codeberg.org/kiegroup",
- "followers_url": "https://codeberg.org/api/v1/users/kiegroup/followers",
- "following_url": "https://codeberg.org/api/v1/users/kiegroup/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/kiegroup/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/kiegroup/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/kiegroup/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/kiegroup/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/kiegroup/repos",
- "events_url": "https://codeberg.org/api/v1/users/kiegroup/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/kiegroup/received_events",
- "type": "Organization",
- "site_admin": false
- },
- "repo": {
- "id": 1370858,
- "node_id": "MDEwOlJlcG9zaXRvcnkxMzcwODU4",
- "name": "reponame",
- "full_name": "owner/reponame",
- "private": false,
- "owner": {
- "login": "kiegroup",
- "id": 517980,
- "node_id": "MDEyOk9yZ2FuaXphdGlvbjUxNzk4MA==",
- "avatar_url": "https://avatars.codebergusercontent.com/u/517980?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/kiegroup",
- "html_url": "https://codeberg.org/kiegroup",
- "followers_url": "https://codeberg.org/api/v1/users/kiegroup/followers",
- "following_url": "https://codeberg.org/api/v1/users/kiegroup/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/kiegroup/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/kiegroup/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/kiegroup/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/kiegroup/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/kiegroup/repos",
- "events_url": "https://codeberg.org/api/v1/users/kiegroup/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/kiegroup/received_events",
- "type": "Organization",
- "site_admin": false
- },
- "html_url": "https://codeberg.org/owner/reponame",
- "description": "AI constraint solver in Java to optimize the vehicle routing problem, employee rostering, task assignment, maintenance scheduling, conference scheduling and other planning problems.",
- "fork": false,
- "url": "https://codeberg.org/api/v1/repos/owner/reponame",
- "forks_url": "https://codeberg.org/api/v1/repos/owner/reponame/forks",
- "keys_url": "https://codeberg.org/api/v1/repos/owner/reponame/keys{/key_id}",
- "collaborators_url": "https://codeberg.org/api/v1/repos/owner/reponame/collaborators{/collaborator}",
- "teams_url": "https://codeberg.org/api/v1/repos/owner/reponame/teams",
- "hooks_url": "https://codeberg.org/api/v1/repos/owner/reponame/hooks",
- "issue_events_url": "https://codeberg.org/api/v1/repos/owner/reponame/issues/events{/number}",
- "events_url": "https://codeberg.org/api/v1/repos/owner/reponame/events",
- "assignees_url": "https://codeberg.org/api/v1/repos/owner/reponame/assignees{/user}",
- "branches_url": "https://codeberg.org/api/v1/repos/owner/reponame/branches{/branch}",
- "tags_url": "https://codeberg.org/api/v1/repos/owner/reponame/tags",
- "blobs_url": "https://codeberg.org/api/v1/repos/owner/reponame/git/blobs{/sha}",
- "git_tags_url": "https://codeberg.org/api/v1/repos/owner/reponame/git/tags{/sha}",
- "git_refs_url": "https://codeberg.org/api/v1/repos/owner/reponame/git/refs{/sha}",
- "trees_url": "https://codeberg.org/api/v1/repos/owner/reponame/git/trees{/sha}",
- "statuses_url": "https://codeberg.org/api/v1/repos/owner/reponame/statuses/{sha}",
- "languages_url": "https://codeberg.org/api/v1/repos/owner/reponame/languages",
- "stargazers_url": "https://codeberg.org/api/v1/repos/owner/reponame/stargazers",
- "contributors_url": "https://codeberg.org/api/v1/repos/owner/reponame/contributors",
- "subscribers_url": "https://codeberg.org/api/v1/repos/owner/reponame/subscribers",
- "subscription_url": "https://codeberg.org/api/v1/repos/owner/reponame/subscription",
- "commits_url": "https://codeberg.org/api/v1/repos/owner/reponame/commits{/sha}",
- "git_commits_url": "https://codeberg.org/api/v1/repos/owner/reponame/git/commits{/sha}",
- "comments_url": "https://codeberg.org/api/v1/repos/owner/reponame/comments{/number}",
- "issue_comment_url": "https://codeberg.org/api/v1/repos/owner/reponame/issues/comments{/number}",
- "contents_url": "https://codeberg.org/api/v1/repos/owner/reponame/contents/{+path}",
- "compare_url": "https://codeberg.org/api/v1/repos/owner/reponame/compare/{base}...{head}",
- "merges_url": "https://codeberg.org/api/v1/repos/owner/reponame/merges",
- "archive_url": "https://codeberg.org/api/v1/repos/owner/reponame/{archive_format}{/ref}",
- "downloads_url": "https://codeberg.org/api/v1/repos/owner/reponame/downloads",
- "issues_url": "https://codeberg.org/api/v1/repos/owner/reponame/issues{/number}",
- "pulls_url": "https://codeberg.org/api/v1/repos/owner/reponame/pulls{/number}",
- "milestones_url": "https://codeberg.org/api/v1/repos/owner/reponame/milestones{/number}",
- "notifications_url": "https://codeberg.org/api/v1/repos/owner/reponame/notifications{?since,all,participating}",
- "labels_url": "https://codeberg.org/api/v1/repos/owner/reponame/labels{/name}",
- "releases_url": "https://codeberg.org/api/v1/repos/owner/reponame/releases{/id}",
- "deployments_url": "https://codeberg.org/api/v1/repos/owner/reponame/deployments",
- "created_at": "2011-02-15T19:38:23Z",
- "updated_at": "2022-11-28T05:01:47Z",
- "pushed_at": "2022-11-28T10:50:51Z",
- "git_url": "git://codeberg.org/owner/reponame.git",
- "ssh_url": "git@codeberg.org:owner/reponame.git",
- "clone_url": "https://codeberg.org/owner/reponame.git",
- "svn_url": "https://codeberg.org/owner/reponame",
- "homepage": "https://www.reponame.org",
- "size": 238339,
- "stargazers_count": 2811,
- "watchers_count": 2811,
- "language": "Java",
- "has_issues": false,
- "has_projects": false,
- "has_downloads": true,
- "has_wiki": false,
- "has_pages": false,
- "has_discussions": false,
- "forks_count": 878,
- "mirror_url": null,
- "archived": false,
- "disabled": false,
- "open_issues_count": 30,
- "license": {
- "key": "apache-2.0",
- "name": "Apache License 2.0",
- "spdx_id": "Apache-2.0",
- "url": "https://codeberg.org/api/v1/licenses/apache-2.0",
- "node_id": "MDc6TGljZW5zZTI="
- },
- "allow_forking": true,
- "is_template": false,
- "web_commit_signoff_required": false,
- "topics": [
- "artificial-intelligence",
- "branch-and-bound",
- "constraint-programming",
- "constraint-satisfaction-problem",
- "constraint-solver",
- "constraints",
- "employee-rostering",
- "java",
- "local-search",
- "mathematical-optimization",
- "metaheuristics",
- "optimization",
- "rostering",
- "scheduling",
- "simulated-annealing",
- "solver",
- "tabu-search",
- "traveling-salesman",
- "traveling-salesman-problem",
- "vehicle-routing-problem"
- ],
- "visibility": "public",
- "forks": 878,
- "open_issues": 30,
- "watchers": 2811,
- "default_branch": "main"
- }
- },
- "_links": {
- "self": {
- "href": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/6666"
- },
- "html": {
- "href": "https://codeberg.org/owner/reponame/pulls/6666"
- },
- "issue": {
- "href": "https://codeberg.org/api/v1/repos/owner/reponame/issues/6666"
- },
- "comments": {
- "href": "https://codeberg.org/api/v1/repos/owner/reponame/issues/6666/comments"
- },
- "review_comments": {
- "href": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/6666/comments"
- },
- "review_comment": {
- "href": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/comments{/number}"
- },
- "commits": {
- "href": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/6666/commits"
- },
- "statuses": {
- "href": "https://codeberg.org/api/v1/repos/owner/reponame/statuses/91748965051fae1330ad58d15cf694e103267c87"
- }
- },
- "author_association": "CONTRIBUTOR",
- "auto_merge": null,
- "active_lock_reason": null,
- "merged": null,
- "mergeable": null,
- "rebaseable": null,
- "mergeable_state": "unknown",
- "merged_by": {
- "login": "that-s-a-user",
- "id": 17157711,
- "node_id": "MDQ6VXNlcjE3MTU3NzEx",
- "avatar_url": "https://avatars.codebergusercontent.com/u/17157711?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/that-s-a-user",
- "html_url": "https://codeberg.org/that-s-a-user",
- "followers_url": "https://codeberg.org/api/v1/users/that-s-a-user/followers",
- "following_url": "https://codeberg.org/api/v1/users/that-s-a-user/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/that-s-a-user/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/that-s-a-user/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/that-s-a-user/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/that-s-a-user/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/that-s-a-user/repos",
- "events_url": "https://codeberg.org/api/v1/users/that-s-a-user/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/that-s-a-user/received_events",
- "type": "User",
- "site_admin": false
- },
- "comments": 0,
- "review_comments": 0,
- "maintainer_can_modify": false,
- "commits": 2,
- "additions": 2,
- "deletions": 2,
- "changed_files": 2
-};
-
-export const CB_MULT_COMMITS_PR_FIXTURE = {
- "url": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/8632",
- "id": 1137188271,
- "node_id": "PR_kwDOABTq6s5DyB2v",
- "html_url": "https://codeberg.org/owner/reponame/pulls/8632",
- "diff_url": "https://codeberg.org/owner/reponame/pulls/8632.diff",
- "patch_url": "https://codeberg.org/owner/reponame/pulls/8632.patch",
- "issue_url": "https://codeberg.org/api/v1/repos/owner/reponame/issues/8632",
- "number": 8632,
- "state": "closed",
- "locked": false,
- "title": "PR Title",
- "user": {
- "login": "gh-user",
- "id": 11995863,
- "node_id": "MDQ6VXNlcjExOTk1ODYz",
- "avatar_url": "https://avatars.codebergusercontent.com/u/11995863?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/gh-user",
- "html_url": "https://codeberg.org/gh-user",
- "followers_url": "https://codeberg.org/api/v1/users/gh-user/followers",
- "following_url": "https://codeberg.org/api/v1/users/gh-user/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/gh-user/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/gh-user/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/gh-user/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/gh-user/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/gh-user/repos",
- "events_url": "https://codeberg.org/api/v1/users/gh-user/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/gh-user/received_events",
- "type": "User",
- "site_admin": false
- },
- "body": "Please review and merge",
- "created_at": "2022-11-28T08:43:09Z",
- "updated_at": "2022-11-28T10:11:53Z",
- "closed_at": "2022-11-28T10:11:52Z",
- "merged_at": "2022-11-28T10:11:52Z",
- "merge_commit_sha": "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc",
- "assignee": null,
- "assignees": [
-
- ],
- "requested_reviewers": [
- {
- "login": "requested-gh-user",
- "id": 1422582,
- "node_id": "MDQ6VXNlcjE0MjI1ODI=",
- "avatar_url": "https://avatars.codebergusercontent.com/u/1422582?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/requested-gh-user",
- "html_url": "https://codeberg.org/requested-gh-user",
- "followers_url": "https://codeberg.org/api/v1/users/requested-gh-user/followers",
- "following_url": "https://codeberg.org/api/v1/users/requested-gh-user/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/requested-gh-user/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/requested-gh-user/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/requested-gh-user/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/requested-gh-user/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/requested-gh-user/repos",
- "events_url": "https://codeberg.org/api/v1/users/requested-gh-user/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/requested-gh-user/received_events",
- "type": "User",
- "site_admin": false
- },
- {
- "login": "gh-user",
- "id": 1422582,
- "node_id": "MDQ6VXNlcjE0MjI1ODI=",
- "avatar_url": "https://avatars.codebergusercontent.com/u/1422582?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/gh-user",
- "html_url": "https://codeberg.org/gh-user",
- "followers_url": "https://codeberg.org/api/v1/users/gh-user/followers",
- "following_url": "https://codeberg.org/api/v1/users/gh-user/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/gh-user/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/gh-user/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/gh-user/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/gh-user/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/gh-user/repos",
- "events_url": "https://codeberg.org/api/v1/users/gh-user/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/gh-user/received_events",
- "type": "User",
- "site_admin": false
- }
- ],
- "requested_teams": [
-
- ],
- "labels": [
- {
- "id": 4901021057,
- "node_id": "LA_kwDOImgs2354988AAAABJB-lgQ",
- "url": "https://codeberg.org/api/v1/repos/owner/reponame/labels/backport-v1",
- "name": "backport v1",
- "color": "AB975B",
- "default": false,
- "description": ""
- },
- {
- "id": 4901021057,
- "node_id": "LA_kwDOImgs2354988AAAABJB-lgQ",
- "url": "https://codeberg.org/api/v1/repos/owner/reponame/labels/backport-v2",
- "name": "backport v2",
- "color": "AB975B",
- "default": false,
- "description": ""
- },
- {
- "id": 4901021057,
- "node_id": "LA_kwDOImgs2354988AAAABJB-lgQ",
- "url": "https://codeberg.org/api/v1/repos/owner/reponame/labels/backport-v3",
- "name": "backport v3",
- "color": "AB975B",
- "default": false,
- "description": ""
- }
- ],
- "milestone": null,
- "draft": false,
- "commits_url": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/8632/commits",
- "review_comments_url": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/8632/comments",
- "review_comment_url": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/comments{/number}",
- "comments_url": "https://codeberg.org/api/v1/repos/owner/reponame/issues/8632/comments",
- "statuses_url": "https://codeberg.org/api/v1/repos/owner/reponame/statuses/91748965051fae1330ad58d15cf694e103267c87",
- "head": {
- "label": "kiegroup:bump-8.31.x-drools-8.31.0.Final",
- "ref": "bump-8.31.x-drools-8.31.0.Final",
- "sha": "91748965051fae1330ad58d15cf694e103267c87",
- "user": {
- "login": "kiegroup",
- "id": 517980,
- "node_id": "MDEyOk9yZ2FuaXphdGlvbjUxNzk4MA==",
- "avatar_url": "https://avatars.codebergusercontent.com/u/517980?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/kiegroup",
- "html_url": "https://codeberg.org/kiegroup",
- "followers_url": "https://codeberg.org/api/v1/users/kiegroup/followers",
- "following_url": "https://codeberg.org/api/v1/users/kiegroup/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/kiegroup/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/kiegroup/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/kiegroup/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/kiegroup/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/kiegroup/repos",
- "events_url": "https://codeberg.org/api/v1/users/kiegroup/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/kiegroup/received_events",
- "type": "Organization",
- "site_admin": false
- },
- "repo": {
- "id": 1370858,
- "node_id": "MDEwOlJlcG9zaXRvcnkxMzcwODU4",
- "name": "reponame",
- "full_name": "owner/reponame",
- "private": false,
- "owner": {
- "login": "kiegroup",
- "id": 517980,
- "node_id": "MDEyOk9yZ2FuaXphdGlvbjUxNzk4MA==",
- "avatar_url": "https://avatars.codebergusercontent.com/u/517980?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/kiegroup",
- "html_url": "https://codeberg.org/kiegroup",
- "followers_url": "https://codeberg.org/api/v1/users/kiegroup/followers",
- "following_url": "https://codeberg.org/api/v1/users/kiegroup/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/kiegroup/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/kiegroup/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/kiegroup/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/kiegroup/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/kiegroup/repos",
- "events_url": "https://codeberg.org/api/v1/users/kiegroup/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/kiegroup/received_events",
- "type": "Organization",
- "site_admin": false
- },
- "html_url": "https://codeberg.org/owner/reponame",
- "description": "AI constraint solver in Java to optimize the vehicle routing problem, employee rostering, task assignment, maintenance scheduling, conference scheduling and other planning problems.",
- "fork": false,
- "url": "https://codeberg.org/api/v1/repos/owner/reponame",
- "forks_url": "https://codeberg.org/api/v1/repos/owner/reponame/forks",
- "keys_url": "https://codeberg.org/api/v1/repos/owner/reponame/keys{/key_id}",
- "collaborators_url": "https://codeberg.org/api/v1/repos/owner/reponame/collaborators{/collaborator}",
- "teams_url": "https://codeberg.org/api/v1/repos/owner/reponame/teams",
- "hooks_url": "https://codeberg.org/api/v1/repos/owner/reponame/hooks",
- "issue_events_url": "https://codeberg.org/api/v1/repos/owner/reponame/issues/events{/number}",
- "events_url": "https://codeberg.org/api/v1/repos/owner/reponame/events",
- "assignees_url": "https://codeberg.org/api/v1/repos/owner/reponame/assignees{/user}",
- "branches_url": "https://codeberg.org/api/v1/repos/owner/reponame/branches{/branch}",
- "tags_url": "https://codeberg.org/api/v1/repos/owner/reponame/tags",
- "blobs_url": "https://codeberg.org/api/v1/repos/owner/reponame/git/blobs{/sha}",
- "git_tags_url": "https://codeberg.org/api/v1/repos/owner/reponame/git/tags{/sha}",
- "git_refs_url": "https://codeberg.org/api/v1/repos/owner/reponame/git/refs{/sha}",
- "trees_url": "https://codeberg.org/api/v1/repos/owner/reponame/git/trees{/sha}",
- "statuses_url": "https://codeberg.org/api/v1/repos/owner/reponame/statuses/{sha}",
- "languages_url": "https://codeberg.org/api/v1/repos/owner/reponame/languages",
- "stargazers_url": "https://codeberg.org/api/v1/repos/owner/reponame/stargazers",
- "contributors_url": "https://codeberg.org/api/v1/repos/owner/reponame/contributors",
- "subscribers_url": "https://codeberg.org/api/v1/repos/owner/reponame/subscribers",
- "subscription_url": "https://codeberg.org/api/v1/repos/owner/reponame/subscription",
- "commits_url": "https://codeberg.org/api/v1/repos/owner/reponame/commits{/sha}",
- "git_commits_url": "https://codeberg.org/api/v1/repos/owner/reponame/git/commits{/sha}",
- "comments_url": "https://codeberg.org/api/v1/repos/owner/reponame/comments{/number}",
- "issue_comment_url": "https://codeberg.org/api/v1/repos/owner/reponame/issues/comments{/number}",
- "contents_url": "https://codeberg.org/api/v1/repos/owner/reponame/contents/{+path}",
- "compare_url": "https://codeberg.org/api/v1/repos/owner/reponame/compare/{base}...{head}",
- "merges_url": "https://codeberg.org/api/v1/repos/owner/reponame/merges",
- "archive_url": "https://codeberg.org/api/v1/repos/owner/reponame/{archive_format}{/ref}",
- "downloads_url": "https://codeberg.org/api/v1/repos/owner/reponame/downloads",
- "issues_url": "https://codeberg.org/api/v1/repos/owner/reponame/issues{/number}",
- "pulls_url": "https://codeberg.org/api/v1/repos/owner/reponame/pulls{/number}",
- "milestones_url": "https://codeberg.org/api/v1/repos/owner/reponame/milestones{/number}",
- "notifications_url": "https://codeberg.org/api/v1/repos/owner/reponame/notifications{?since,all,participating}",
- "labels_url": "https://codeberg.org/api/v1/repos/owner/reponame/labels{/name}",
- "releases_url": "https://codeberg.org/api/v1/repos/owner/reponame/releases{/id}",
- "deployments_url": "https://codeberg.org/api/v1/repos/owner/reponame/deployments",
- "created_at": "2011-02-15T19:38:23Z",
- "updated_at": "2022-11-28T05:01:47Z",
- "pushed_at": "2022-11-28T10:50:51Z",
- "git_url": "git://codeberg.org/owner/reponame.git",
- "ssh_url": "git@codeberg.org:owner/reponame.git",
- "clone_url": "https://codeberg.org/owner/reponame.git",
- "svn_url": "https://codeberg.org/owner/reponame",
- "homepage": "https://www.reponame.org",
- "size": 238339,
- "stargazers_count": 2811,
- "watchers_count": 2811,
- "language": "Java",
- "has_issues": false,
- "has_projects": false,
- "has_downloads": true,
- "has_wiki": false,
- "has_pages": false,
- "has_discussions": false,
- "forks_count": 878,
- "mirror_url": null,
- "archived": false,
- "disabled": false,
- "open_issues_count": 30,
- "license": {
- "key": "apache-2.0",
- "name": "Apache License 2.0",
- "spdx_id": "Apache-2.0",
- "url": "https://codeberg.org/api/v1/licenses/apache-2.0",
- "node_id": "MDc6TGljZW5zZTI="
- },
- "allow_forking": true,
- "is_template": false,
- "web_commit_signoff_required": false,
- "topics": [
- "artificial-intelligence",
- "branch-and-bound",
- "constraint-programming",
- "constraint-satisfaction-problem",
- "constraint-solver",
- "constraints",
- "employee-rostering",
- "java",
- "local-search",
- "mathematical-optimization",
- "metaheuristics",
- "optimization",
- "rostering",
- "scheduling",
- "simulated-annealing",
- "solver",
- "tabu-search",
- "traveling-salesman",
- "traveling-salesman-problem",
- "vehicle-routing-problem"
- ],
- "visibility": "public",
- "forks": 878,
- "open_issues": 30,
- "watchers": 2811,
- "default_branch": "main"
- }
- },
- "base": {
- "label": "kiegroup:8.31.x",
- "ref": "8.31.x",
- "sha": "8cfc286765cb01c84a1d62c65519fa8032bfecbd",
- "user": {
- "login": "kiegroup",
- "id": 517980,
- "node_id": "MDEyOk9yZ2FuaXphdGlvbjUxNzk4MA==",
- "avatar_url": "https://avatars.codebergusercontent.com/u/517980?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/kiegroup",
- "html_url": "https://codeberg.org/kiegroup",
- "followers_url": "https://codeberg.org/api/v1/users/kiegroup/followers",
- "following_url": "https://codeberg.org/api/v1/users/kiegroup/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/kiegroup/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/kiegroup/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/kiegroup/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/kiegroup/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/kiegroup/repos",
- "events_url": "https://codeberg.org/api/v1/users/kiegroup/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/kiegroup/received_events",
- "type": "Organization",
- "site_admin": false
- },
- "repo": {
- "id": 1370858,
- "node_id": "MDEwOlJlcG9zaXRvcnkxMzcwODU4",
- "name": "reponame",
- "full_name": "owner/reponame",
- "private": false,
- "owner": {
- "login": "kiegroup",
- "id": 517980,
- "node_id": "MDEyOk9yZ2FuaXphdGlvbjUxNzk4MA==",
- "avatar_url": "https://avatars.codebergusercontent.com/u/517980?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/kiegroup",
- "html_url": "https://codeberg.org/kiegroup",
- "followers_url": "https://codeberg.org/api/v1/users/kiegroup/followers",
- "following_url": "https://codeberg.org/api/v1/users/kiegroup/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/kiegroup/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/kiegroup/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/kiegroup/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/kiegroup/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/kiegroup/repos",
- "events_url": "https://codeberg.org/api/v1/users/kiegroup/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/kiegroup/received_events",
- "type": "Organization",
- "site_admin": false
- },
- "html_url": "https://codeberg.org/owner/reponame",
- "description": "AI constraint solver in Java to optimize the vehicle routing problem, employee rostering, task assignment, maintenance scheduling, conference scheduling and other planning problems.",
- "fork": false,
- "url": "https://codeberg.org/api/v1/repos/owner/reponame",
- "forks_url": "https://codeberg.org/api/v1/repos/owner/reponame/forks",
- "keys_url": "https://codeberg.org/api/v1/repos/owner/reponame/keys{/key_id}",
- "collaborators_url": "https://codeberg.org/api/v1/repos/owner/reponame/collaborators{/collaborator}",
- "teams_url": "https://codeberg.org/api/v1/repos/owner/reponame/teams",
- "hooks_url": "https://codeberg.org/api/v1/repos/owner/reponame/hooks",
- "issue_events_url": "https://codeberg.org/api/v1/repos/owner/reponame/issues/events{/number}",
- "events_url": "https://codeberg.org/api/v1/repos/owner/reponame/events",
- "assignees_url": "https://codeberg.org/api/v1/repos/owner/reponame/assignees{/user}",
- "branches_url": "https://codeberg.org/api/v1/repos/owner/reponame/branches{/branch}",
- "tags_url": "https://codeberg.org/api/v1/repos/owner/reponame/tags",
- "blobs_url": "https://codeberg.org/api/v1/repos/owner/reponame/git/blobs{/sha}",
- "git_tags_url": "https://codeberg.org/api/v1/repos/owner/reponame/git/tags{/sha}",
- "git_refs_url": "https://codeberg.org/api/v1/repos/owner/reponame/git/refs{/sha}",
- "trees_url": "https://codeberg.org/api/v1/repos/owner/reponame/git/trees{/sha}",
- "statuses_url": "https://codeberg.org/api/v1/repos/owner/reponame/statuses/{sha}",
- "languages_url": "https://codeberg.org/api/v1/repos/owner/reponame/languages",
- "stargazers_url": "https://codeberg.org/api/v1/repos/owner/reponame/stargazers",
- "contributors_url": "https://codeberg.org/api/v1/repos/owner/reponame/contributors",
- "subscribers_url": "https://codeberg.org/api/v1/repos/owner/reponame/subscribers",
- "subscription_url": "https://codeberg.org/api/v1/repos/owner/reponame/subscription",
- "commits_url": "https://codeberg.org/api/v1/repos/owner/reponame/commits{/sha}",
- "git_commits_url": "https://codeberg.org/api/v1/repos/owner/reponame/git/commits{/sha}",
- "comments_url": "https://codeberg.org/api/v1/repos/owner/reponame/comments{/number}",
- "issue_comment_url": "https://codeberg.org/api/v1/repos/owner/reponame/issues/comments{/number}",
- "contents_url": "https://codeberg.org/api/v1/repos/owner/reponame/contents/{+path}",
- "compare_url": "https://codeberg.org/api/v1/repos/owner/reponame/compare/{base}...{head}",
- "merges_url": "https://codeberg.org/api/v1/repos/owner/reponame/merges",
- "archive_url": "https://codeberg.org/api/v1/repos/owner/reponame/{archive_format}{/ref}",
- "downloads_url": "https://codeberg.org/api/v1/repos/owner/reponame/downloads",
- "issues_url": "https://codeberg.org/api/v1/repos/owner/reponame/issues{/number}",
- "pulls_url": "https://codeberg.org/api/v1/repos/owner/reponame/pulls{/number}",
- "milestones_url": "https://codeberg.org/api/v1/repos/owner/reponame/milestones{/number}",
- "notifications_url": "https://codeberg.org/api/v1/repos/owner/reponame/notifications{?since,all,participating}",
- "labels_url": "https://codeberg.org/api/v1/repos/owner/reponame/labels{/name}",
- "releases_url": "https://codeberg.org/api/v1/repos/owner/reponame/releases{/id}",
- "deployments_url": "https://codeberg.org/api/v1/repos/owner/reponame/deployments",
- "created_at": "2011-02-15T19:38:23Z",
- "updated_at": "2022-11-28T05:01:47Z",
- "pushed_at": "2022-11-28T10:50:51Z",
- "git_url": "git://codeberg.org/owner/reponame.git",
- "ssh_url": "git@codeberg.org:owner/reponame.git",
- "clone_url": "https://codeberg.org/owner/reponame.git",
- "svn_url": "https://codeberg.org/owner/reponame",
- "homepage": "https://www.reponame.org",
- "size": 238339,
- "stargazers_count": 2811,
- "watchers_count": 2811,
- "language": "Java",
- "has_issues": false,
- "has_projects": false,
- "has_downloads": true,
- "has_wiki": false,
- "has_pages": false,
- "has_discussions": false,
- "forks_count": 878,
- "mirror_url": null,
- "archived": false,
- "disabled": false,
- "open_issues_count": 30,
- "license": {
- "key": "apache-2.0",
- "name": "Apache License 2.0",
- "spdx_id": "Apache-2.0",
- "url": "https://codeberg.org/api/v1/licenses/apache-2.0",
- "node_id": "MDc6TGljZW5zZTI="
- },
- "allow_forking": true,
- "is_template": false,
- "web_commit_signoff_required": false,
- "topics": [
- "artificial-intelligence",
- "branch-and-bound",
- "constraint-programming",
- "constraint-satisfaction-problem",
- "constraint-solver",
- "constraints",
- "employee-rostering",
- "java",
- "local-search",
- "mathematical-optimization",
- "metaheuristics",
- "optimization",
- "rostering",
- "scheduling",
- "simulated-annealing",
- "solver",
- "tabu-search",
- "traveling-salesman",
- "traveling-salesman-problem",
- "vehicle-routing-problem"
- ],
- "visibility": "public",
- "forks": 878,
- "open_issues": 30,
- "watchers": 2811,
- "default_branch": "main"
- }
- },
- "_links": {
- "self": {
- "href": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/8632"
- },
- "html": {
- "href": "https://codeberg.org/owner/reponame/pulls/8632"
- },
- "issue": {
- "href": "https://codeberg.org/api/v1/repos/owner/reponame/issues/8632"
- },
- "comments": {
- "href": "https://codeberg.org/api/v1/repos/owner/reponame/issues/8632/comments"
- },
- "review_comments": {
- "href": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/8632/comments"
- },
- "review_comment": {
- "href": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/comments{/number}"
- },
- "commits": {
- "href": "https://codeberg.org/api/v1/repos/owner/reponame/pulls/8632/commits"
- },
- "statuses": {
- "href": "https://codeberg.org/api/v1/repos/owner/reponame/statuses/91748965051fae1330ad58d15cf694e103267c87"
- }
- },
- "author_association": "CONTRIBUTOR",
- "auto_merge": null,
- "active_lock_reason": null,
- "merged": true,
- "mergeable": null,
- "rebaseable": null,
- "mergeable_state": "unknown",
- "merged_by": {
- "login": "that-s-a-user",
- "id": 17157711,
- "node_id": "MDQ6VXNlcjE3MTU3NzEx",
- "avatar_url": "https://avatars.codebergusercontent.com/u/17157711?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/that-s-a-user",
- "html_url": "https://codeberg.org/that-s-a-user",
- "followers_url": "https://codeberg.org/api/v1/users/that-s-a-user/followers",
- "following_url": "https://codeberg.org/api/v1/users/that-s-a-user/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/that-s-a-user/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/that-s-a-user/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/that-s-a-user/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/that-s-a-user/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/that-s-a-user/repos",
- "events_url": "https://codeberg.org/api/v1/users/that-s-a-user/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/that-s-a-user/received_events",
- "type": "User",
- "site_admin": false
- },
- "comments": 0,
- "review_comments": 0,
- "maintainer_can_modify": false,
- "commits": 2,
- "additions": 2,
- "deletions": 2,
- "changed_files": 2
-};
-
-export const CODEBERG_GET_COMMIT = {
- "parents": [
- {
- "sha": "SHA"
- }
- ]
-};
-
-export const CB_MULT_COMMITS_PR_COMMITS = [
- {
- "sha": "0404fb922ab75c3a8aecad5c97d9af388df04695",
- "node_id": "C_kwDOImgs99oAKDA0MDRmYjkyMmFiNzVjM2E4YWVjYWQ1Yzk3ZDlhZjM4OGRmMDQ2OTU",
- "commit": {
- "author": {
- "name": "owner",
- "email": "owner@email.com",
- "date": "2023-07-06T13:46:30Z"
- },
- "committer": {
- "name": "Codeberg",
- "email": "noreply@codeberg.org",
- "date": "2023-07-06T13:46:30Z"
- },
- "message": "Update file1.txt",
- "tree": {
- "sha": "50be1d7031b02a2ae609f432f2a1e0f818d827b2",
- "url": "https://codeberg.org/api/v1/repos/owner/reponame/git/trees/50be1d7031b02a2ae609f432f2a1e0f818d827b2"
- },
- "url": "https://codeberg.org/api/v1/repos/owner/reponame/git/commits/0404fb922ab75c3a8aecad5c97d9af388df04695",
- "comment_count": 0,
- "verification": {
- "verified": true,
- "reason": "valid",
- "signature": "-----BEGIN PGP SIGNATURE-----\n\nno-signature=\n=fivd\n-----END PGP SIGNATURE-----\n",
- "payload": "tree 50be1d7031b02a2ae609f432f2a1e0f818d827b2\nparent c85b8fcdb741814b3e90e6e5729455cf46ff26ea\nauthor Owner 1688651190 +0200\ncommitter Codeberg 1688651190 +0200\n\nUpdate file1.txt"
- }
- },
- "url": "https://codeberg.org/api/v1/repos/owner/reponame/commits/0404fb922ab75c3a8aecad5c97d9af388df04695",
- "html_url": "https://codeberg.org/owner/reponame/commit/0404fb922ab75c3a8aecad5c97d9af388df04695",
- "comments_url": "https://codeberg.org/api/v1/repos/owner/reponame/commits/0404fb922ab75c3a8aecad5c97d9af388df04695/comments",
- "author": {
- "login": "owner",
- "id": 26715795,
- "node_id": "MDQ6VXNlcjI2NzE1Nzk1",
- "avatar_url": "https://avatars.codebergusercontent.com/u/26715795?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/owner",
- "html_url": "https://codeberg.org/owner",
- "followers_url": "https://codeberg.org/api/v1/users/owner/followers",
- "following_url": "https://codeberg.org/api/v1/users/owner/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/owner/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/owner/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/owner/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/owner/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/owner/repos",
- "events_url": "https://codeberg.org/api/v1/users/owner/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/owner/received_events",
- "type": "User",
- "site_admin": false
- },
- "committer": {
- "login": "web-flow",
- "id": 19864447,
- "node_id": "MDQ6VXNlcjE5ODY0NDQ3",
- "avatar_url": "https://avatars.codebergusercontent.com/u/19864447?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/web-flow",
- "html_url": "https://codeberg.org/web-flow",
- "followers_url": "https://codeberg.org/api/v1/users/web-flow/followers",
- "following_url": "https://codeberg.org/api/v1/users/web-flow/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/web-flow/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/web-flow/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/web-flow/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/web-flow/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/web-flow/repos",
- "events_url": "https://codeberg.org/api/v1/users/web-flow/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/web-flow/received_events",
- "type": "User",
- "site_admin": false
- },
- "parents": [
- {
- "sha": "c85b8fcdb741814b3e90e6e5729455cf46ff26ea",
- "url": "https://codeberg.org/api/v1/repos/owner/reponame/commits/c85b8fcdb741814b3e90e6e5729455cf46ff26ea",
- "html_url": "https://codeberg.org/owner/reponame/commit/c85b8fcdb741814b3e90e6e5729455cf46ff26ea"
- }
- ]
- },
- {
- "sha": "11da4e38aa3e577ffde6d546f1c52e53b04d3151",
- "node_id": "C_kwDOImgs99oAKDExZGE0ZTM4YWEzZTU3N2ZmZGU2ZDU0NmYxYzUyZTUzYjA0ZDMxNTE",
- "commit": {
- "author": {
- "name": "Owner",
- "email": "owner@email.com",
- "date": "2023-07-10T13:23:44Z"
- },
- "committer": {
- "name": "Codeberg",
- "email": "noreply@codeberg.org",
- "date": "2023-07-10T13:23:44Z"
- },
- "message": "Update file2.txt",
- "tree": {
- "sha": "fdd16fb791eef26fd84c3bfa34fd89eb1f7a85be",
- "url": "https://codeberg.org/api/v1/repos/owner/reponame/git/trees/fdd16fb791eef26fd84c3bfa34fd89eb1f7a85be"
- },
- "url": "https://codeberg.org/api/v1/repos/owner/reponame/git/commits/11da4e38aa3e577ffde6d546f1c52e53b04d3151",
- "comment_count": 0,
- "verification": {
- "verified": true,
- "reason": "valid",
- "signature": "-----BEGIN PGP SIGNATURE-----\n\nno-signature\n=//hm\n-----END PGP SIGNATURE-----\n",
- "payload": "tree fdd16fb791eef26fd84c3bfa34fd89eb1f7a85be\nparent 0404fb922ab75c3a8aecad5c97d9af388df04695\nauthor Owner 1688995424 +0200\ncommitter Codeberg 1688995424 +0200\n\nUpdate file2.txt"
- }
- },
- "url": "https://codeberg.org/api/v1/repos/owner/reponame/commits/11da4e38aa3e577ffde6d546f1c52e53b04d3151",
- "html_url": "https://codeberg.org/owner/reponame/commit/11da4e38aa3e577ffde6d546f1c52e53b04d3151",
- "comments_url": "https://codeberg.org/api/v1/repos/owner/reponame/commits/11da4e38aa3e577ffde6d546f1c52e53b04d3151/comments",
- "author": {
- "login": "owner",
- "id": 26715795,
- "node_id": "MDQ6VXNlcjI2NzE1Nzk1",
- "avatar_url": "https://avatars.codebergusercontent.com/u/26715795?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/owner",
- "html_url": "https://codeberg.org/owner",
- "followers_url": "https://codeberg.org/api/v1/users/owner/followers",
- "following_url": "https://codeberg.org/api/v1/users/owner/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/owner/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/owner/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/owner/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/owner/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/owner/repos",
- "events_url": "https://codeberg.org/api/v1/users/owner/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/owner/received_events",
- "type": "User",
- "site_admin": false
- },
- "committer": {
- "login": "web-flow",
- "id": 19864447,
- "node_id": "MDQ6VXNlcjE5ODY0NDQ3",
- "avatar_url": "https://avatars.codebergusercontent.com/u/19864447?v=4",
- "gravatar_id": "",
- "url": "https://codeberg.org/api/v1/users/web-flow",
- "html_url": "https://codeberg.org/web-flow",
- "followers_url": "https://codeberg.org/api/v1/users/web-flow/followers",
- "following_url": "https://codeberg.org/api/v1/users/web-flow/following{/other_user}",
- "gists_url": "https://codeberg.org/api/v1/users/web-flow/gists{/gist_id}",
- "starred_url": "https://codeberg.org/api/v1/users/web-flow/starred{/owner}{/repo}",
- "subscriptions_url": "https://codeberg.org/api/v1/users/web-flow/subscriptions",
- "organizations_url": "https://codeberg.org/api/v1/users/web-flow/orgs",
- "repos_url": "https://codeberg.org/api/v1/users/web-flow/repos",
- "events_url": "https://codeberg.org/api/v1/users/web-flow/events{/privacy}",
- "received_events_url": "https://codeberg.org/api/v1/users/web-flow/received_events",
- "type": "User",
- "site_admin": false
- },
- "parents": [
- {
- "sha": "0404fb922ab75c3a8aecad5c97d9af388df04695",
- "url": "https://codeberg.org/api/v1/repos/owner/reponame/commits/0404fb922ab75c3a8aecad5c97d9af388df04695",
- "html_url": "https://codeberg.org/owner/reponame/commit/0404fb922ab75c3a8aecad5c97d9af388df04695"
- }
- ]
- }
-];
\ No newline at end of file
diff --git a/test/support/mock/git-client-mock-support.ts b/test/support/mock/git-client-mock-support.ts
index 1a38493..7dceabc 100644
--- a/test/support/mock/git-client-mock-support.ts
+++ b/test/support/mock/git-client-mock-support.ts
@@ -1,8 +1,7 @@
import LoggerServiceFactory from "@bp/service/logger/logger-service-factory";
import { Moctokit } from "@kie/mock-github";
-import { TARGET_OWNER, REPO, MERGED_PR_FIXTURE, OPEN_PR_FIXTURE, NOT_MERGED_PR_FIXTURE, NOT_FOUND_PR_NUMBER, MULT_COMMITS_PR_FIXTURE, MULT_COMMITS_PR_COMMITS, NEW_PR_URL, NEW_PR_NUMBER, GITHUB_GET_COMMIT } from "./github-data";
-import { CLOSED_NOT_MERGED_MR, MERGED_SQUASHED_MR, NESTED_NAMESPACE_MR, OPEN_MR, OPEN_PR_COMMITS, PROJECT_EXAMPLE, NESTED_PROJECT_EXAMPLE, SUPERUSER, MERGED_SQUASHED_MR_COMMITS, MERGED_NOT_SQUASHED_MR, MERGED_NOT_SQUASHED_MR_COMMITS } from "./gitlab-data";
-import { CB_TARGET_OWNER, CB_REPO, CB_MERGED_PR_FIXTURE, CB_OPEN_PR_FIXTURE, CB_NOT_MERGED_PR_FIXTURE, CB_NOT_FOUND_PR_NUMBER, CB_MULT_COMMITS_PR_FIXTURE, CB_MULT_COMMITS_PR_COMMITS, CB_NEW_PR_URL, CB_NEW_PR_NUMBER, CODEBERG_GET_COMMIT } from "./codeberg-data";
+import { TARGET_OWNER, REPO, MERGED_PR_FIXTURE, OPEN_PR_FIXTURE, NOT_MERGED_PR_FIXTURE, NOT_FOUND_PR_NUMBER, MULT_COMMITS_PR_FIXTURE, MULT_COMMITS_PR_COMMITS, NEW_PR_URL, NEW_PR_NUMBER } from "./github-data";
+import { CLOSED_NOT_MERGED_MR, MERGED_SQUASHED_MR, NESTED_NAMESPACE_MR, OPEN_MR, OPEN_PR_COMMITS, PROJECT_EXAMPLE, NESTED_PROJECT_EXAMPLE, SUPERUSER, MERGED_SQUASHED_MR_COMMITS } from "./gitlab-data";
// high number, for each test we are not expecting
// to send more than 3 reqs per api endpoint
@@ -25,8 +24,6 @@ export const getAxiosMocked = (url: string) => {
data = CLOSED_NOT_MERGED_MR;
} else if (url.endsWith("merge_requests/4")) {
data = NESTED_NAMESPACE_MR;
- } else if (url.endsWith("merge_requests/5")) {
- data = MERGED_NOT_SQUASHED_MR;
} else if (url.endsWith("projects/76316")) {
data = PROJECT_EXAMPLE;
} else if (url.endsWith("projects/1645")) {
@@ -37,8 +34,6 @@ export const getAxiosMocked = (url: string) => {
data = MERGED_SQUASHED_MR_COMMITS;
} else if (url.endsWith("merge_requests/2/commits")) {
data = OPEN_PR_COMMITS;
- } else if (url.endsWith("merge_requests/5/commits")) {
- data = MERGED_NOT_SQUASHED_MR_COMMITS;
}
return {
@@ -162,17 +157,6 @@ export const mockGitHubClient = (apiUrl = "https://api.github.com"): Moctokit =>
data: MULT_COMMITS_PR_COMMITS
});
- mock.rest.pulls
- .listCommits({
- owner: TARGET_OWNER,
- repo: REPO,
- pull_number: OPEN_PR_FIXTURE.number
- })
- .reply({
- status: 200,
- data: MULT_COMMITS_PR_COMMITS
- });
-
mock.rest.pulls
.create()
.reply({
@@ -216,17 +200,6 @@ export const mockGitHubClient = (apiUrl = "https://api.github.com"): Moctokit =>
data: {}
});
- mock.rest.git
- .getCommit({
- owner: TARGET_OWNER,
- repo: REPO,
- commit_sha: "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc",
- })
- .reply({
- status: 200,
- data: GITHUB_GET_COMMIT,
- });
-
// invalid requests
mock.rest.pulls
.get({
@@ -244,151 +217,3 @@ export const mockGitHubClient = (apiUrl = "https://api.github.com"): Moctokit =>
return mock;
};
-
-// CODEBERG - OCTOKIT
-
-export const mockCodebergClient = (apiUrl = "https://codeberg.org/api/v1"): Moctokit => {
- logger.debug("Setting up moctokit..");
-
- const mock = new Moctokit(apiUrl);
-
- // setup the mock requests here
-
- // valid requests
- mock.rest.pulls
- .get({
- owner: CB_TARGET_OWNER,
- repo: CB_REPO,
- pull_number: CB_MERGED_PR_FIXTURE.number
- })
- .reply({
- status: 200,
- data: CB_MERGED_PR_FIXTURE
- });
-
- mock.rest.pulls
- .get({
- owner: CB_TARGET_OWNER,
- repo: CB_REPO,
- pull_number: CB_MULT_COMMITS_PR_FIXTURE.number
- })
- .reply({
- status: 200,
- data: CB_MULT_COMMITS_PR_FIXTURE
- });
-
- mock.rest.pulls
- .get({
- owner: CB_TARGET_OWNER,
- repo: CB_REPO,
- pull_number: CB_OPEN_PR_FIXTURE.number
- })
- .reply({
- status: 200,
- data: CB_OPEN_PR_FIXTURE
- });
-
- mock.rest.pulls
- .get({
- owner: CB_TARGET_OWNER,
- repo: CB_REPO,
- pull_number: CB_NOT_MERGED_PR_FIXTURE.number
- })
- .reply({
- status: 200,
- data: CB_NOT_MERGED_PR_FIXTURE
- });
-
- mock.rest.pulls
- .listCommits({
- owner: CB_TARGET_OWNER,
- repo: CB_REPO,
- pull_number: CB_MULT_COMMITS_PR_FIXTURE.number
- })
- .reply({
- status: 200,
- data: CB_MULT_COMMITS_PR_COMMITS
- });
-
- mock.rest.pulls
- .listCommits({
- owner: CB_TARGET_OWNER,
- repo: CB_REPO,
- pull_number: CB_OPEN_PR_FIXTURE.number
- })
- .reply({
- status: 200,
- data: CB_MULT_COMMITS_PR_COMMITS
- });
-
- mock.rest.pulls
- .create()
- .reply({
- repeat: REPEAT,
- status: 201,
- data: {
- number: CB_NEW_PR_NUMBER,
- html_url: CB_NEW_PR_URL,
- }
- });
-
- mock.rest.pulls
- .requestReviewers()
- .reply({
- repeat: REPEAT,
- status: 201,
- data: CB_MERGED_PR_FIXTURE
- });
-
- mock.rest.issues
- .addAssignees()
- .reply({
- repeat: REPEAT,
- status: 201,
- data: {}
- });
-
- mock.rest.issues
- .addLabels()
- .reply({
- repeat: REPEAT,
- status: 200,
- data: {}
- });
-
- mock.rest.issues
- .createComment()
- .reply({
- repeat: REPEAT,
- status: 201,
- data: {}
- });
-
- mock.rest.git
- .getCommit({
- owner: CB_TARGET_OWNER,
- repo: CB_REPO,
- commit_sha: "28f63db774185f4ec4b57cd9aaeb12dbfb4c9ecc",
- })
- .reply({
- status: 200,
- data: CODEBERG_GET_COMMIT,
- });
-
- // invalid requests
- mock.rest.pulls
- .get({
- owner: CB_TARGET_OWNER,
- repo: CB_REPO,
- pull_number: CB_NOT_FOUND_PR_NUMBER
- })
- .reply({
- repeat: REPEAT,
- status: 404,
- data: {
- message: "Not found"
- }
- });
-
- return mock;
-};
diff --git a/test/support/mock/github-data.ts b/test/support/mock/github-data.ts
index 0b46741..8407834 100644
--- a/test/support/mock/github-data.ts
+++ b/test/support/mock/github-data.ts
@@ -96,8 +96,8 @@ export const MERGED_PR_FIXTURE = {
{
"id": 4901021057,
"node_id": "LA_kwDOImgs2354988AAAABJB-lgQ",
- "url": "https://api.github.com/repos/owner/reponame/labels/backport-prod",
- "name": "backport prod",
+ "url": "https://api.github.com/repos/owner/reponame/labels/original-label",
+ "name": "original-label",
"color": "AB975B",
"default": false,
"description": ""
@@ -1431,33 +1431,7 @@ export const MULT_COMMITS_PR_FIXTURE = {
],
"labels": [
- {
- "id": 4901021057,
- "node_id": "LA_kwDOImgs2354988AAAABJB-lgQ",
- "url": "https://api.github.com/repos/owner/reponame/labels/backport-v1",
- "name": "backport v1",
- "color": "AB975B",
- "default": false,
- "description": ""
- },
- {
- "id": 4901021057,
- "node_id": "LA_kwDOImgs2354988AAAABJB-lgQ",
- "url": "https://api.github.com/repos/owner/reponame/labels/backport-v2",
- "name": "backport v2",
- "color": "AB975B",
- "default": false,
- "description": ""
- },
- {
- "id": 4901021057,
- "node_id": "LA_kwDOImgs2354988AAAABJB-lgQ",
- "url": "https://api.github.com/repos/owner/reponame/labels/backport-v3",
- "name": "backport v3",
- "color": "AB975B",
- "default": false,
- "description": ""
- }
+
],
"milestone": null,
"draft": false,
@@ -1832,14 +1806,6 @@ export const MULT_COMMITS_PR_FIXTURE = {
"changed_files": 2
};
-export const GITHUB_GET_COMMIT = {
- "parents": [
- {
- "sha": "SHA"
- }
- ]
-};
-
export const MULT_COMMITS_PR_COMMITS = [
{
"sha": "0404fb922ab75c3a8aecad5c97d9af388df04695",
diff --git a/test/support/mock/gitlab-data.ts b/test/support/mock/gitlab-data.ts
index 7adcf52..3f32b81 100644
--- a/test/support/mock/gitlab-data.ts
+++ b/test/support/mock/gitlab-data.ts
@@ -401,7 +401,7 @@ export const MERGED_SQUASHED_MR = {
"source_project_id":76316,
"target_project_id":76316,
"labels":[
- "backport-prod"
+ "gitlab-original-label"
],
"draft":false,
"work_in_progress":false,
@@ -755,29 +755,6 @@ export const OPEN_PR_COMMITS = [
}
];
-export const MERGED_NOT_SQUASHED_MR_COMMITS = [
- {
- "id":"e4dd336a4a20f394df6665994df382fb1d193a11",
- "short_id":"e4dd336a",
- "created_at":"2023-06-29T09:59:10.000Z",
- "parent_ids":[
-
- ],
- "title":"Add new file",
- "message":"Add new file",
- "author_name":"Super User",
- "author_email":"superuser@email.com",
- "authored_date":"2023-06-29T09:59:10.000Z",
- "committer_name":"Super User",
- "committer_email":"superuser@email.com",
- "committed_date":"2023-06-29T09:59:10.000Z",
- "trailers":{
-
- },
- "web_url":"https://gitlab.com/superuser/backporting-example/-/commit/e4dd336a4a20f394df6665994df382fb1d193a11"
- },
-];
-
export const SUPERUSER = {
"id":14041,
"username":"superuser",
@@ -921,138 +898,3 @@ export const NESTED_NAMESPACE_MR = {
"can_merge":true
}
};
-
-export const MERGED_NOT_SQUASHED_MR = {
- "id":807106,
- "iid":1,
- "project_id":76316,
- "title":"Update test.txt",
- "description":"This is the body",
- "state":"merged",
- "created_at":"2023-06-28T14:32:40.943Z",
- "updated_at":"2023-06-28T14:37:12.108Z",
- "merged_by":{
- "id":14041,
- "username":"superuser",
- "name":"Super User",
- "state":"active",
- "avatar_url":"https://my.gitlab.host.com/uploads/-/system/user/avatar/14041/avatar.png",
- "web_url":"https://my.gitlab.host.com/superuser"
- },
- "merge_user":{
- "id":14041,
- "username":"superuser",
- "name":"Super User",
- "state":"active",
- "avatar_url":"https://my.gitlab.host.com/uploads/-/system/user/avatar/14041/avatar.png",
- "web_url":"https://my.gitlab.host.com/superuser"
- },
- "merged_at":"2023-06-28T14:37:11.667Z",
- "closed_by":null,
- "closed_at":null,
- "target_branch":"main",
- "source_branch":"feature",
- "user_notes_count":0,
- "upvotes":0,
- "downvotes":0,
- "author":{
- "id":14041,
- "username":"superuser",
- "name":"Super User",
- "state":"active",
- "avatar_url":"https://my.gitlab.host.com/uploads/-/system/user/avatar/14041/avatar.png",
- "web_url":"https://my.gitlab.host.com/superuser"
- },
- "assignees":[
- {
- "id":14041,
- "username":"superuser",
- "name":"Super User",
- "state":"active",
- "avatar_url":"https://my.gitlab.host.com/uploads/-/system/user/avatar/14041/avatar.png",
- "web_url":"https://my.gitlab.host.com/superuser"
- }
- ],
- "assignee":{
- "id":14041,
- "username":"superuser",
- "name":"Super User",
- "state":"active",
- "avatar_url":"https://my.gitlab.host.com/uploads/-/system/user/avatar/14041/avatar.png",
- "web_url":"https://my.gitlab.host.com/superuser"
- },
- "reviewers":[
- {
- "id":1404188,
- "username":"superuser1",
- "name":"Super User",
- "state":"active",
- "avatar_url":"https://my.gitlab.host.com/uploads/-/system/user/avatar/14041/avatar.png",
- "web_url":"https://my.gitlab.host.com/superuser"
- },
- {
- "id":1404199,
- "username":"superuser2",
- "name":"Super User",
- "state":"active",
- "avatar_url":"https://my.gitlab.host.com/uploads/-/system/user/avatar/14041/avatar.png",
- "web_url":"https://my.gitlab.host.com/superuser"
- }
- ],
- "source_project_id":76316,
- "target_project_id":76316,
- "labels":[
- "backport-prod"
- ],
- "draft":false,
- "work_in_progress":false,
- "milestone":null,
- "merge_when_pipeline_succeeds":false,
- "merge_status":"can_be_merged",
- "detailed_merge_status":"not_open",
- "sha":"9e15674ebd48e05c6e428a1fa31dbb60a778d644",
- "merge_commit_sha":"4d369c3e9a8d1d5b7e56c892a8ab2a7666583ac3",
- "squash_commit_sha":null,
- "discussion_locked":null,
- "should_remove_source_branch":true,
- "force_remove_source_branch":true,
- "reference":"!5",
- "references":{
- "short":"!5",
- "relative":"!5",
- "full":"superuser/backporting-example!5"
- },
- "web_url":"https://my.gitlab.host.com/superuser/backporting-example/-/merge_requests/5",
- "time_stats":{
- "time_estimate":0,
- "total_time_spent":0,
- "human_time_estimate":null,
- "human_total_time_spent":null
- },
- "squash":false,
- "squash_on_merge":false,
- "task_completion_status":{
- "count":0,
- "completed_count":0
- },
- "has_conflicts":false,
- "blocking_discussions_resolved":true,
- "approvals_before_merge":null,
- "subscribed":true,
- "changes_count":"1",
- "latest_build_started_at":null,
- "latest_build_finished_at":null,
- "first_deployed_to_production_at":null,
- "pipeline":null,
- "head_pipeline":null,
- "diff_refs":{
- "base_sha":"2c553a0c4c133a51806badce5fa4842b7253cb3b",
- "head_sha":"9e15674ebd48e05c6e428a1fa31dbb60a778d644",
- "start_sha":"2c553a0c4c133a51806badce5fa4842b7253cb3b"
- },
- "merge_error":null,
- "first_contribution":false,
- "user":{
- "can_merge":true
- }
-};
\ No newline at end of file