Mirror: Best-effort discovery of the machine's local network using just Node.js dgram sockets

Initial Commit

kitten.sh 9cfe5656

+8
.changeset/README.md
···
+
# Changesets
+
+
Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
+
with multi-package repos, or single-package repos to help you version and publish your code. You can
+
find the full documentation for it [in our repository](https://github.com/changesets/changesets)
+
+
We have a quick list of common questions to get you started engaging with this project in
+
[our documentation](https://github.com/changesets/changesets/blob/master/docs/common-questions.md)
+16
.changeset/config.json
···
+
{
+
"$schema": "https://unpkg.com/@changesets/config@0.3.0/schema.json",
+
"changelog": "../scripts/changelog.js",
+
"commit": false,
+
"access": "public",
+
"baseBranch": "main",
+
"updateInternalDependencies": "minor",
+
"snapshot": {
+
"prereleaseTemplate": "{tag}-{commit}",
+
"useCalculatedVersion": true
+
},
+
"___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": {
+
"onlyUpdatePeerDependentsWhenOutOfRange": true,
+
"updateInternalDependents": "out-of-range"
+
}
+
}
+1
.gitattributes
···
+
* text=auto
+42
.github/workflows/ci.yml
···
+
name: CI
+
+
on:
+
pull_request:
+
pull_request_review:
+
types: [submitted, edited]
+
branches: changeset-release/main
+
push:
+
branches:
+
- main
+
+
jobs:
+
check:
+
name: Checks
+
runs-on: ubuntu-latest
+
timeout-minutes: 10
+
steps:
+
- name: Checkout Repo
+
uses: actions/checkout@v4
+
with:
+
fetch-depth: 0
+
+
- name: Setup pnpm
+
uses: pnpm/action-setup@v3
+
with:
+
version: 9
+
run_install: false
+
+
- name: Setup Node
+
uses: actions/setup-node@v4
+
with:
+
node-version: ${{ matrix.node_version }}
+
cache: 'pnpm'
+
+
- name: Install Dependencies
+
run: pnpm install --frozen-lockfile --prefer-offline
+
+
- name: Type checks
+
run: pnpm run check
+
+
- name: Build
+
run: pnpm run build
+60
.github/workflows/release.yml
···
+
name: Release
+
on:
+
push:
+
branches:
+
- main
+
+
jobs:
+
release:
+
name: Release
+
runs-on: ubuntu-20.04
+
timeout-minutes: 20
+
permissions:
+
contents: write
+
id-token: write
+
issues: write
+
repository-projects: write
+
deployments: write
+
packages: write
+
pull-requests: write
+
steps:
+
- name: Checkout Repo
+
uses: actions/checkout@v4
+
with:
+
fetch-depth: 0
+
+
- name: Setup pnpm
+
uses: pnpm/action-setup@v3
+
with:
+
version: 9
+
run_install: false
+
+
- name: Setup Node
+
uses: actions/setup-node@v4
+
with:
+
node-version: 22
+
cache: 'pnpm'
+
+
- name: Install Dependencies
+
run: pnpm install --frozen-lockfile --prefer-offline
+
+
- name: PR or Publish
+
id: changesets
+
uses: changesets/action@v1.4.5
+
with:
+
version: pnpm changeset:version
+
publish: pnpm changeset:publish
+
env:
+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+
- name: Publish Prerelease
+
if: steps.changesets.outputs.published != 'true'
+
env:
+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
run: |
+
npm config set "//registry.npmjs.org/:_authToken" "$NPM_TOKEN"
+
git reset --hard origin/main
+
pnpm changeset version --no-git-tag --snapshot canary
+
pnpm changeset publish --no-git-tag --snapshot canary --tag canary
+3
.gitignore
···
+
/subprocess
+
node_modules
+
dist
+5
CHANGELOG.md
···
+
# lan-network
+
+
## 0.1.0
+
+
Initial Release.
+24
LICENSE.md
···
+
MIT License
+
+
Copyright (c) Phil Pluckthun,
+
Copyright (c) 2016 - 2020 Node Fetch Team,
+
Copyright (c) Remix Software Inc. 2020-2021,
+
Copyright (c) Shopify Inc. 2022-2024
+
+
Permission is hereby granted, free of charge, to any person obtaining a copy
+
of this software and associated documentation files (the "Software"), to deal
+
in the Software without restriction, including without limitation the rights
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+
copies of the Software, and to permit persons to whom the Software is
+
furnished to do so, subject to the following conditions:
+
+
The above copyright notice and this permission notice shall be included in all
+
copies or substantial portions of the Software.
+
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+
SOFTWARE.
+22
README.md
···
+
# lan-network
+
+
**Best-effort discovery of the machine's default gateway and local network IPv4 address exclusively with UDP sockets.**
+
+
This utility attempts to determine the interface and IPv4 address of a machine
+
on the local network. It'll attempt to determine the default gateway and
+
return the corresponding network interface assignment, both when the network
+
is online and offline.
+
+
The LAN Network it attempts to pick is the one that the machine uses to connect
+
to the internet. Determining it is useful to pick the machine's IP address that
+
is generally used to connect to it from other devices on the network.
+
+
`lanNetwork()` makes three separate attempts to guess the local network:
+
+
1. Create a socket to a publicly routed IP, and return the assignment matching the socket's local address
+
2. Broadcast DHCP discovery packets on all routable network assignments and listen for replies
+
3. Highest priority assignment
+
+
`lanNetworkSync()` does the same synchronously by spawning a child process
+
and blocking until a result is determined. Using this method is generally
+
not recommended.
+76
package.json
···
+
{
+
"name": "lan-network",
+
"version": "0.1.0",
+
"description": "Best-effort discovery of the machine's default gateway and local network IP exclusively with UDP sockets.",
+
"author": "Phil Pluckthun <phil@kitten.sh>",
+
"source": "./src/index.ts",
+
"main": "./dist/lan-network",
+
"types": "./dist/lan-network.d.ts",
+
"files": [
+
"LICENSE.md",
+
"README.md",
+
"CHANGELOG.md",
+
"dist/"
+
],
+
"scripts": {
+
"build": "rollup -c ./scripts/rollup.config.mjs",
+
"postbuild": "tsc --noEmit ./dist/lan-network.d.ts",
+
"check": "tsc --noEmit",
+
"clean": "rimraf dist node_modules/.cache",
+
"prepublishOnly": "run-s clean build check",
+
"prepare": "node ./scripts/prepare.js || true",
+
"changeset:version": "changeset version && pnpm install --lockfile-only",
+
"changeset:publish": "changeset publish"
+
},
+
"exports": {
+
".": {
+
"types": "./dist/lan-network.d.ts",
+
"require": "./dist/lan-network.js",
+
"source": "./src/index.ts"
+
},
+
"./subprocess": {
+
"types": "./dist/lan-network-subprocess.d.ts",
+
"require": "./dist/lan-network-subprocess.js",
+
"source": "./src/subprocess.ts"
+
},
+
"./package.json": "./package.json"
+
},
+
"prettier": {
+
"singleQuote": true,
+
"arrowParens": "avoid",
+
"trailingComma": "es5"
+
},
+
"lint-staged": {
+
"*.{js,ts,json,md}": "prettier --write"
+
},
+
"keywords": [],
+
"license": "MIT",
+
"repository": "https://github.com/kitten/lan-network",
+
"bugs": {
+
"url": "https://github.com/kitten/lan-network/issues"
+
},
+
"devDependencies": {
+
"@babel/plugin-transform-block-scoping": "^7.25.9",
+
"@babel/plugin-transform-typescript": "^7.26.7",
+
"@changesets/cli": "^2.27.1",
+
"@changesets/get-github-info": "^0.6.0",
+
"@rollup/plugin-babel": "^6.0.4",
+
"@rollup/plugin-commonjs": "^28.0.2",
+
"@rollup/plugin-node-resolve": "^16.0.0",
+
"@rollup/plugin-terser": "^0.4.4",
+
"@types/node": "^22.12.0",
+
"dotenv": "^16.4.7",
+
"lint-staged": "^15.4.3",
+
"npm-run-all": "^4.1.5",
+
"prettier": "^3.4.2",
+
"rimraf": "^6.0.1",
+
"rollup": "^4.32.1",
+
"rollup-plugin-cjs-check": "^1.0.3",
+
"rollup-plugin-dts": "^6.1.1",
+
"typescript": "^5.7.3"
+
},
+
"publishConfig": {
+
"access": "public",
+
"provenance": true
+
}
+
}
+3502
pnpm-lock.yaml
···
+
lockfileVersion: '9.0'
+
+
settings:
+
autoInstallPeers: true
+
excludeLinksFromLockfile: false
+
+
importers:
+
+
.:
+
devDependencies:
+
'@babel/plugin-transform-block-scoping':
+
specifier: ^7.25.9
+
version: 7.25.9(@babel/core@7.26.7)
+
'@babel/plugin-transform-typescript':
+
specifier: ^7.26.7
+
version: 7.26.7(@babel/core@7.26.7)
+
'@changesets/cli':
+
specifier: ^2.27.1
+
version: 2.27.12
+
'@changesets/get-github-info':
+
specifier: ^0.6.0
+
version: 0.6.0
+
'@rollup/plugin-babel':
+
specifier: ^6.0.4
+
version: 6.0.4(@babel/core@7.26.7)(rollup@4.32.1)
+
'@rollup/plugin-commonjs':
+
specifier: ^28.0.2
+
version: 28.0.2(rollup@4.32.1)
+
'@rollup/plugin-node-resolve':
+
specifier: ^16.0.0
+
version: 16.0.0(rollup@4.32.1)
+
'@rollup/plugin-terser':
+
specifier: ^0.4.4
+
version: 0.4.4(rollup@4.32.1)
+
'@types/node':
+
specifier: ^22.12.0
+
version: 22.12.0
+
dotenv:
+
specifier: ^16.4.7
+
version: 16.4.7
+
lint-staged:
+
specifier: ^15.4.3
+
version: 15.4.3
+
npm-run-all:
+
specifier: ^4.1.5
+
version: 4.1.5
+
prettier:
+
specifier: ^3.4.2
+
version: 3.4.2
+
rimraf:
+
specifier: ^6.0.1
+
version: 6.0.1
+
rollup:
+
specifier: ^4.32.1
+
version: 4.32.1
+
rollup-plugin-cjs-check:
+
specifier: ^1.0.3
+
version: 1.0.3(rollup@4.32.1)
+
rollup-plugin-dts:
+
specifier: ^6.1.1
+
version: 6.1.1(rollup@4.32.1)(typescript@5.7.3)
+
typescript:
+
specifier: ^5.7.3
+
version: 5.7.3
+
+
packages:
+
+
'@ampproject/remapping@2.3.0':
+
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
+
engines: {node: '>=6.0.0'}
+
+
'@babel/code-frame@7.26.2':
+
resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
+
engines: {node: '>=6.9.0'}
+
+
'@babel/compat-data@7.26.5':
+
resolution: {integrity: sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==}
+
engines: {node: '>=6.9.0'}
+
+
'@babel/core@7.26.7':
+
resolution: {integrity: sha512-SRijHmF0PSPgLIBYlWnG0hyeJLwXE2CgpsXaMOrtt2yp9/86ALw6oUlj9KYuZ0JN07T4eBMVIW4li/9S1j2BGA==}
+
engines: {node: '>=6.9.0'}
+
+
'@babel/generator@7.26.5':
+
resolution: {integrity: sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==}
+
engines: {node: '>=6.9.0'}
+
+
'@babel/helper-annotate-as-pure@7.25.9':
+
resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==}
+
engines: {node: '>=6.9.0'}
+
+
'@babel/helper-compilation-targets@7.26.5':
+
resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==}
+
engines: {node: '>=6.9.0'}
+
+
'@babel/helper-create-class-features-plugin@7.25.9':
+
resolution: {integrity: sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==}
+
engines: {node: '>=6.9.0'}
+
peerDependencies:
+
'@babel/core': ^7.0.0
+
+
'@babel/helper-member-expression-to-functions@7.25.9':
+
resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==}
+
engines: {node: '>=6.9.0'}
+
+
'@babel/helper-module-imports@7.25.9':
+
resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==}
+
engines: {node: '>=6.9.0'}
+
+
'@babel/helper-module-transforms@7.26.0':
+
resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==}
+
engines: {node: '>=6.9.0'}
+
peerDependencies:
+
'@babel/core': ^7.0.0
+
+
'@babel/helper-optimise-call-expression@7.25.9':
+
resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==}
+
engines: {node: '>=6.9.0'}
+
+
'@babel/helper-plugin-utils@7.26.5':
+
resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==}
+
engines: {node: '>=6.9.0'}
+
+
'@babel/helper-replace-supers@7.26.5':
+
resolution: {integrity: sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==}
+
engines: {node: '>=6.9.0'}
+
peerDependencies:
+
'@babel/core': ^7.0.0
+
+
'@babel/helper-skip-transparent-expression-wrappers@7.25.9':
+
resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==}
+
engines: {node: '>=6.9.0'}
+
+
'@babel/helper-string-parser@7.25.9':
+
resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
+
engines: {node: '>=6.9.0'}
+
+
'@babel/helper-validator-identifier@7.25.9':
+
resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
+
engines: {node: '>=6.9.0'}
+
+
'@babel/helper-validator-option@7.25.9':
+
resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==}
+
engines: {node: '>=6.9.0'}
+
+
'@babel/helpers@7.26.7':
+
resolution: {integrity: sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==}
+
engines: {node: '>=6.9.0'}
+
+
'@babel/parser@7.26.7':
+
resolution: {integrity: sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==}
+
engines: {node: '>=6.0.0'}
+
hasBin: true
+
+
'@babel/plugin-syntax-typescript@7.25.9':
+
resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==}
+
engines: {node: '>=6.9.0'}
+
peerDependencies:
+
'@babel/core': ^7.0.0-0
+
+
'@babel/plugin-transform-block-scoping@7.25.9':
+
resolution: {integrity: sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==}
+
engines: {node: '>=6.9.0'}
+
peerDependencies:
+
'@babel/core': ^7.0.0-0
+
+
'@babel/plugin-transform-typescript@7.26.7':
+
resolution: {integrity: sha512-5cJurntg+AT+cgelGP9Bt788DKiAw9gIMSMU2NJrLAilnj0m8WZWUNZPSLOmadYsujHutpgElO+50foX+ib/Wg==}
+
engines: {node: '>=6.9.0'}
+
peerDependencies:
+
'@babel/core': ^7.0.0-0
+
+
'@babel/runtime@7.26.7':
+
resolution: {integrity: sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==}
+
engines: {node: '>=6.9.0'}
+
+
'@babel/template@7.25.9':
+
resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==}
+
engines: {node: '>=6.9.0'}
+
+
'@babel/traverse@7.26.7':
+
resolution: {integrity: sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA==}
+
engines: {node: '>=6.9.0'}
+
+
'@babel/types@7.26.7':
+
resolution: {integrity: sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==}
+
engines: {node: '>=6.9.0'}
+
+
'@changesets/apply-release-plan@7.0.8':
+
resolution: {integrity: sha512-qjMUj4DYQ1Z6qHawsn7S71SujrExJ+nceyKKyI9iB+M5p9lCL55afuEd6uLBPRpLGWQwkwvWegDHtwHJb1UjpA==}
+
+
'@changesets/assemble-release-plan@6.0.5':
+
resolution: {integrity: sha512-IgvBWLNKZd6k4t72MBTBK3nkygi0j3t3zdC1zrfusYo0KpdsvnDjrMM9vPnTCLCMlfNs55jRL4gIMybxa64FCQ==}
+
+
'@changesets/changelog-git@0.2.0':
+
resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==}
+
+
'@changesets/cli@2.27.12':
+
resolution: {integrity: sha512-9o3fOfHYOvBnyEn0mcahB7wzaA3P4bGJf8PNqGit5PKaMEFdsRixik+txkrJWd2VX+O6wRFXpxQL8j/1ANKE9g==}
+
hasBin: true
+
+
'@changesets/config@3.0.5':
+
resolution: {integrity: sha512-QyXLSSd10GquX7hY0Mt4yQFMEeqnO5z/XLpbIr4PAkNNoQNKwDyiSrx4yd749WddusH1v3OSiA0NRAYmH/APpQ==}
+
+
'@changesets/errors@0.2.0':
+
resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==}
+
+
'@changesets/get-dependents-graph@2.1.2':
+
resolution: {integrity: sha512-sgcHRkiBY9i4zWYBwlVyAjEM9sAzs4wYVwJUdnbDLnVG3QwAaia1Mk5P8M7kraTOZN+vBET7n8KyB0YXCbFRLQ==}
+
+
'@changesets/get-github-info@0.6.0':
+
resolution: {integrity: sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==}
+
+
'@changesets/get-release-plan@4.0.6':
+
resolution: {integrity: sha512-FHRwBkY7Eili04Y5YMOZb0ezQzKikTka4wL753vfUA5COSebt7KThqiuCN9BewE4/qFGgF/5t3AuzXx1/UAY4w==}
+
+
'@changesets/get-version-range-type@0.4.0':
+
resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==}
+
+
'@changesets/git@3.0.2':
+
resolution: {integrity: sha512-r1/Kju9Y8OxRRdvna+nxpQIsMsRQn9dhhAZt94FLDeu0Hij2hnOozW8iqnHBgvu+KdnJppCveQwK4odwfw/aWQ==}
+
+
'@changesets/logger@0.1.1':
+
resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==}
+
+
'@changesets/parse@0.4.0':
+
resolution: {integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==}
+
+
'@changesets/pre@2.0.1':
+
resolution: {integrity: sha512-vvBJ/If4jKM4tPz9JdY2kGOgWmCowUYOi5Ycv8dyLnEE8FgpYYUo1mgJZxcdtGGP3aG8rAQulGLyyXGSLkIMTQ==}
+
+
'@changesets/read@0.6.2':
+
resolution: {integrity: sha512-wjfQpJvryY3zD61p8jR87mJdyx2FIhEcdXhKUqkja87toMrP/3jtg/Yg29upN+N4Ckf525/uvV7a4tzBlpk6gg==}
+
+
'@changesets/should-skip-package@0.1.1':
+
resolution: {integrity: sha512-H9LjLbF6mMHLtJIc/eHR9Na+MifJ3VxtgP/Y+XLn4BF7tDTEN1HNYtH6QMcjP1uxp9sjaFYmW8xqloaCi/ckTg==}
+
+
'@changesets/types@4.1.0':
+
resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==}
+
+
'@changesets/types@6.0.0':
+
resolution: {integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==}
+
+
'@changesets/write@0.3.2':
+
resolution: {integrity: sha512-kDxDrPNpUgsjDbWBvUo27PzKX4gqeKOlhibaOXDJA6kuBisGqNHv/HwGJrAu8U/dSf8ZEFIeHIPtvSlZI1kULw==}
+
+
'@isaacs/cliui@8.0.2':
+
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
+
engines: {node: '>=12'}
+
+
'@jridgewell/gen-mapping@0.3.8':
+
resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
+
engines: {node: '>=6.0.0'}
+
+
'@jridgewell/resolve-uri@3.1.2':
+
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
+
engines: {node: '>=6.0.0'}
+
+
'@jridgewell/set-array@1.2.1':
+
resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
+
engines: {node: '>=6.0.0'}
+
+
'@jridgewell/source-map@0.3.6':
+
resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==}
+
+
'@jridgewell/sourcemap-codec@1.5.0':
+
resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
+
+
'@jridgewell/trace-mapping@0.3.25':
+
resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
+
+
'@manypkg/find-root@1.1.0':
+
resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==}
+
+
'@manypkg/get-packages@1.1.3':
+
resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==}
+
+
'@nodelib/fs.scandir@2.1.5':
+
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
+
engines: {node: '>= 8'}
+
+
'@nodelib/fs.stat@2.0.5':
+
resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
+
engines: {node: '>= 8'}
+
+
'@nodelib/fs.walk@1.2.8':
+
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
+
engines: {node: '>= 8'}
+
+
'@rollup/plugin-babel@6.0.4':
+
resolution: {integrity: sha512-YF7Y52kFdFT/xVSuVdjkV5ZdX/3YtmX0QulG+x0taQOtJdHYzVU61aSSkAgVJ7NOv6qPkIYiJSgSWWN/DM5sGw==}
+
engines: {node: '>=14.0.0'}
+
peerDependencies:
+
'@babel/core': ^7.0.0
+
'@types/babel__core': ^7.1.9
+
rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+
peerDependenciesMeta:
+
'@types/babel__core':
+
optional: true
+
rollup:
+
optional: true
+
+
'@rollup/plugin-commonjs@28.0.2':
+
resolution: {integrity: sha512-BEFI2EDqzl+vA1rl97IDRZ61AIwGH093d9nz8+dThxJNH8oSoB7MjWvPCX3dkaK1/RCJ/1v/R1XB15FuSs0fQw==}
+
engines: {node: '>=16.0.0 || 14 >= 14.17'}
+
peerDependencies:
+
rollup: ^2.68.0||^3.0.0||^4.0.0
+
peerDependenciesMeta:
+
rollup:
+
optional: true
+
+
'@rollup/plugin-node-resolve@16.0.0':
+
resolution: {integrity: sha512-0FPvAeVUT/zdWoO0jnb/V5BlBsUSNfkIOtFHzMO4H9MOklrmQFY6FduVHKucNb/aTFxvnGhj4MNj/T1oNdDfNg==}
+
engines: {node: '>=14.0.0'}
+
peerDependencies:
+
rollup: ^2.78.0||^3.0.0||^4.0.0
+
peerDependenciesMeta:
+
rollup:
+
optional: true
+
+
'@rollup/plugin-terser@0.4.4':
+
resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==}
+
engines: {node: '>=14.0.0'}
+
peerDependencies:
+
rollup: ^2.0.0||^3.0.0||^4.0.0
+
peerDependenciesMeta:
+
rollup:
+
optional: true
+
+
'@rollup/pluginutils@5.1.4':
+
resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==}
+
engines: {node: '>=14.0.0'}
+
peerDependencies:
+
rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+
peerDependenciesMeta:
+
rollup:
+
optional: true
+
+
'@rollup/rollup-android-arm-eabi@4.32.1':
+
resolution: {integrity: sha512-/pqA4DmqyCm8u5YIDzIdlLcEmuvxb0v8fZdFhVMszSpDTgbQKdw3/mB3eMUHIbubtJ6F9j+LtmyCnHTEqIHyzA==}
+
cpu: [arm]
+
os: [android]
+
+
'@rollup/rollup-android-arm64@4.32.1':
+
resolution: {integrity: sha512-If3PDskT77q7zgqVqYuj7WG3WC08G1kwXGVFi9Jr8nY6eHucREHkfpX79c0ACAjLj3QIWKPJR7w4i+f5EdLH5Q==}
+
cpu: [arm64]
+
os: [android]
+
+
'@rollup/rollup-darwin-arm64@4.32.1':
+
resolution: {integrity: sha512-zCpKHioQ9KgZToFp5Wvz6zaWbMzYQ2LJHQ+QixDKq52KKrF65ueu6Af4hLlLWHjX1Wf/0G5kSJM9PySW9IrvHA==}
+
cpu: [arm64]
+
os: [darwin]
+
+
'@rollup/rollup-darwin-x64@4.32.1':
+
resolution: {integrity: sha512-sFvF+t2+TyUo/ZQqUcifrJIgznx58oFZbdHS9TvHq3xhPVL9nOp+yZ6LKrO9GWTP+6DbFtoyLDbjTpR62Mbr3Q==}
+
cpu: [x64]
+
os: [darwin]
+
+
'@rollup/rollup-freebsd-arm64@4.32.1':
+
resolution: {integrity: sha512-NbOa+7InvMWRcY9RG+B6kKIMD/FsnQPH0MWUvDlQB1iXnF/UcKSudCXZtv4lW+C276g3w5AxPbfry5rSYvyeYA==}
+
cpu: [arm64]
+
os: [freebsd]
+
+
'@rollup/rollup-freebsd-x64@4.32.1':
+
resolution: {integrity: sha512-JRBRmwvHPXR881j2xjry8HZ86wIPK2CcDw0EXchE1UgU0ubWp9nvlT7cZYKc6bkypBt745b4bglf3+xJ7hXWWw==}
+
cpu: [x64]
+
os: [freebsd]
+
+
'@rollup/rollup-linux-arm-gnueabihf@4.32.1':
+
resolution: {integrity: sha512-PKvszb+9o/vVdUzCCjL0sKHukEQV39tD3fepXxYrHE3sTKrRdCydI7uldRLbjLmDA3TFDmh418XH19NOsDRH8g==}
+
cpu: [arm]
+
os: [linux]
+
+
'@rollup/rollup-linux-arm-musleabihf@4.32.1':
+
resolution: {integrity: sha512-9WHEMV6Y89eL606ReYowXuGF1Yb2vwfKWKdD1A5h+OYnPZSJvxbEjxTRKPgi7tkP2DSnW0YLab1ooy+i/FQp/Q==}
+
cpu: [arm]
+
os: [linux]
+
+
'@rollup/rollup-linux-arm64-gnu@4.32.1':
+
resolution: {integrity: sha512-tZWc9iEt5fGJ1CL2LRPw8OttkCBDs+D8D3oEM8mH8S1ICZCtFJhD7DZ3XMGM8kpqHvhGUTvNUYVDnmkj4BDXnw==}
+
cpu: [arm64]
+
os: [linux]
+
+
'@rollup/rollup-linux-arm64-musl@4.32.1':
+
resolution: {integrity: sha512-FTYc2YoTWUsBz5GTTgGkRYYJ5NGJIi/rCY4oK/I8aKowx1ToXeoVVbIE4LGAjsauvlhjfl0MYacxClLld1VrOw==}
+
cpu: [arm64]
+
os: [linux]
+
+
'@rollup/rollup-linux-loongarch64-gnu@4.32.1':
+
resolution: {integrity: sha512-F51qLdOtpS6P1zJVRzYM0v6MrBNypyPEN1GfMiz0gPu9jN8ScGaEFIZQwteSsGKg799oR5EaP7+B2jHgL+d+Kw==}
+
cpu: [loong64]
+
os: [linux]
+
+
'@rollup/rollup-linux-powerpc64le-gnu@4.32.1':
+
resolution: {integrity: sha512-wO0WkfSppfX4YFm5KhdCCpnpGbtgQNj/tgvYzrVYFKDpven8w2N6Gg5nB6w+wAMO3AIfSTWeTjfVe+uZ23zAlg==}
+
cpu: [ppc64]
+
os: [linux]
+
+
'@rollup/rollup-linux-riscv64-gnu@4.32.1':
+
resolution: {integrity: sha512-iWswS9cIXfJO1MFYtI/4jjlrGb/V58oMu4dYJIKnR5UIwbkzR0PJ09O0PDZT0oJ3LYWXBSWahNf/Mjo6i1E5/g==}
+
cpu: [riscv64]
+
os: [linux]
+
+
'@rollup/rollup-linux-s390x-gnu@4.32.1':
+
resolution: {integrity: sha512-RKt8NI9tebzmEthMnfVgG3i/XeECkMPS+ibVZjZ6mNekpbbUmkNWuIN2yHsb/mBPyZke4nlI4YqIdFPgKuoyQQ==}
+
cpu: [s390x]
+
os: [linux]
+
+
'@rollup/rollup-linux-x64-gnu@4.32.1':
+
resolution: {integrity: sha512-WQFLZ9c42ECqEjwg/GHHsouij3pzLXkFdz0UxHa/0OM12LzvX7DzedlY0SIEly2v18YZLRhCRoHZDxbBSWoGYg==}
+
cpu: [x64]
+
os: [linux]
+
+
'@rollup/rollup-linux-x64-musl@4.32.1':
+
resolution: {integrity: sha512-BLoiyHDOWoS3uccNSADMza6V6vCNiphi94tQlVIL5de+r6r/CCQuNnerf+1g2mnk2b6edp5dk0nhdZ7aEjOBsA==}
+
cpu: [x64]
+
os: [linux]
+
+
'@rollup/rollup-win32-arm64-msvc@4.32.1':
+
resolution: {integrity: sha512-w2l3UnlgYTNNU+Z6wOR8YdaioqfEnwPjIsJ66KxKAf0p+AuL2FHeTX6qvM+p/Ue3XPBVNyVSfCrfZiQh7vZHLQ==}
+
cpu: [arm64]
+
os: [win32]
+
+
'@rollup/rollup-win32-ia32-msvc@4.32.1':
+
resolution: {integrity: sha512-Am9H+TGLomPGkBnaPWie4F3x+yQ2rr4Bk2jpwy+iV+Gel9jLAu/KqT8k3X4jxFPW6Zf8OMnehyutsd+eHoq1WQ==}
+
cpu: [ia32]
+
os: [win32]
+
+
'@rollup/rollup-win32-x64-msvc@4.32.1':
+
resolution: {integrity: sha512-ar80GhdZb4DgmW3myIS9nRFYcpJRSME8iqWgzH2i44u+IdrzmiXVxeFnExQ5v4JYUSpg94bWjevMG8JHf1Da5Q==}
+
cpu: [x64]
+
os: [win32]
+
+
'@types/estree@1.0.6':
+
resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
+
+
'@types/node@12.20.55':
+
resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
+
+
'@types/node@22.12.0':
+
resolution: {integrity: sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==}
+
+
'@types/resolve@1.20.2':
+
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
+
+
acorn@8.14.0:
+
resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==}
+
engines: {node: '>=0.4.0'}
+
hasBin: true
+
+
ansi-colors@4.1.3:
+
resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
+
engines: {node: '>=6'}
+
+
ansi-escapes@7.0.0:
+
resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==}
+
engines: {node: '>=18'}
+
+
ansi-regex@5.0.1:
+
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+
engines: {node: '>=8'}
+
+
ansi-regex@6.1.0:
+
resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==}
+
engines: {node: '>=12'}
+
+
ansi-styles@3.2.1:
+
resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
+
engines: {node: '>=4'}
+
+
ansi-styles@4.3.0:
+
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+
engines: {node: '>=8'}
+
+
ansi-styles@6.2.1:
+
resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
+
engines: {node: '>=12'}
+
+
argparse@1.0.10:
+
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
+
+
array-buffer-byte-length@1.0.2:
+
resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==}
+
engines: {node: '>= 0.4'}
+
+
array-union@2.1.0:
+
resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
+
engines: {node: '>=8'}
+
+
arraybuffer.prototype.slice@1.0.4:
+
resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==}
+
engines: {node: '>= 0.4'}
+
+
async-function@1.0.0:
+
resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==}
+
engines: {node: '>= 0.4'}
+
+
available-typed-arrays@1.0.7:
+
resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
+
engines: {node: '>= 0.4'}
+
+
balanced-match@1.0.2:
+
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+
+
better-path-resolve@1.0.0:
+
resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==}
+
engines: {node: '>=4'}
+
+
brace-expansion@1.1.11:
+
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+
+
brace-expansion@2.0.1:
+
resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
+
+
braces@3.0.3:
+
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
+
engines: {node: '>=8'}
+
+
browserslist@4.24.4:
+
resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==}
+
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+
hasBin: true
+
+
buffer-from@1.1.2:
+
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+
+
call-bind-apply-helpers@1.0.1:
+
resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==}
+
engines: {node: '>= 0.4'}
+
+
call-bind@1.0.8:
+
resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==}
+
engines: {node: '>= 0.4'}
+
+
call-bound@1.0.3:
+
resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==}
+
engines: {node: '>= 0.4'}
+
+
caniuse-lite@1.0.30001696:
+
resolution: {integrity: sha512-pDCPkvzfa39ehJtJ+OwGT/2yvT2SbjfHhiIW2LWOAcMQ7BzwxT/XuyUp4OTOd0XFWA6BKw0JalnBHgSi5DGJBQ==}
+
+
chalk@2.4.2:
+
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
+
engines: {node: '>=4'}
+
+
chalk@5.4.1:
+
resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==}
+
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
+
chardet@0.7.0:
+
resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
+
+
ci-info@3.9.0:
+
resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
+
engines: {node: '>=8'}
+
+
cjs-module-lexer@1.4.2:
+
resolution: {integrity: sha512-7gdnIlr/WqvlQaX6yMvhHbiEVZ07qCV22rb/brgyFGKgo76ckIsrtDp4w2NIOitmKDNgiUm+pfVSE4VMwnkXwQ==}
+
+
cli-cursor@5.0.0:
+
resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==}
+
engines: {node: '>=18'}
+
+
cli-truncate@4.0.0:
+
resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==}
+
engines: {node: '>=18'}
+
+
color-convert@1.9.3:
+
resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
+
+
color-convert@2.0.1:
+
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+
engines: {node: '>=7.0.0'}
+
+
color-name@1.1.3:
+
resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
+
+
color-name@1.1.4:
+
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+
+
colorette@2.0.20:
+
resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
+
+
commander@13.1.0:
+
resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==}
+
engines: {node: '>=18'}
+
+
commander@2.20.3:
+
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+
+
commondir@1.0.1:
+
resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
+
+
concat-map@0.0.1:
+
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+
+
convert-source-map@2.0.0:
+
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
+
+
cross-spawn@6.0.6:
+
resolution: {integrity: sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==}
+
engines: {node: '>=4.8'}
+
+
cross-spawn@7.0.6:
+
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
+
engines: {node: '>= 8'}
+
+
data-view-buffer@1.0.2:
+
resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==}
+
engines: {node: '>= 0.4'}
+
+
data-view-byte-length@1.0.2:
+
resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==}
+
engines: {node: '>= 0.4'}
+
+
data-view-byte-offset@1.0.1:
+
resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==}
+
engines: {node: '>= 0.4'}
+
+
dataloader@1.4.0:
+
resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==}
+
+
debug@4.4.0:
+
resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
+
engines: {node: '>=6.0'}
+
peerDependencies:
+
supports-color: '*'
+
peerDependenciesMeta:
+
supports-color:
+
optional: true
+
+
deepmerge@4.3.1:
+
resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
+
engines: {node: '>=0.10.0'}
+
+
define-data-property@1.1.4:
+
resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
+
engines: {node: '>= 0.4'}
+
+
define-properties@1.2.1:
+
resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
+
engines: {node: '>= 0.4'}
+
+
detect-indent@6.1.0:
+
resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
+
engines: {node: '>=8'}
+
+
dir-glob@3.0.1:
+
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
+
engines: {node: '>=8'}
+
+
dotenv@16.4.7:
+
resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==}
+
engines: {node: '>=12'}
+
+
dunder-proto@1.0.1:
+
resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
+
engines: {node: '>= 0.4'}
+
+
eastasianwidth@0.2.0:
+
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+
+
electron-to-chromium@1.5.90:
+
resolution: {integrity: sha512-C3PN4aydfW91Natdyd449Kw+BzhLmof6tzy5W1pFC5SpQxVXT+oyiyOG9AgYYSN9OdA/ik3YkCrpwqI8ug5Tug==}
+
+
emoji-regex@10.4.0:
+
resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==}
+
+
emoji-regex@8.0.0:
+
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+
+
emoji-regex@9.2.2:
+
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+
+
enquirer@2.4.1:
+
resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==}
+
engines: {node: '>=8.6'}
+
+
environment@1.1.0:
+
resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==}
+
engines: {node: '>=18'}
+
+
error-ex@1.3.2:
+
resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
+
+
es-abstract@1.23.9:
+
resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==}
+
engines: {node: '>= 0.4'}
+
+
es-define-property@1.0.1:
+
resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
+
engines: {node: '>= 0.4'}
+
+
es-errors@1.3.0:
+
resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
+
engines: {node: '>= 0.4'}
+
+
es-object-atoms@1.1.1:
+
resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
+
engines: {node: '>= 0.4'}
+
+
es-set-tostringtag@2.1.0:
+
resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
+
engines: {node: '>= 0.4'}
+
+
es-to-primitive@1.3.0:
+
resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
+
engines: {node: '>= 0.4'}
+
+
escalade@3.2.0:
+
resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
+
engines: {node: '>=6'}
+
+
escape-string-regexp@1.0.5:
+
resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
+
engines: {node: '>=0.8.0'}
+
+
esprima@4.0.1:
+
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
+
engines: {node: '>=4'}
+
hasBin: true
+
+
estree-walker@2.0.2:
+
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+
+
eventemitter3@5.0.1:
+
resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
+
+
execa@8.0.1:
+
resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
+
engines: {node: '>=16.17'}
+
+
extendable-error@0.1.7:
+
resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==}
+
+
external-editor@3.1.0:
+
resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
+
engines: {node: '>=4'}
+
+
fast-glob@3.3.3:
+
resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
+
engines: {node: '>=8.6.0'}
+
+
fastq@1.19.0:
+
resolution: {integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==}
+
+
fdir@6.4.3:
+
resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==}
+
peerDependencies:
+
picomatch: ^3 || ^4
+
peerDependenciesMeta:
+
picomatch:
+
optional: true
+
+
fill-range@7.1.1:
+
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
+
engines: {node: '>=8'}
+
+
find-up@4.1.0:
+
resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
+
engines: {node: '>=8'}
+
+
for-each@0.3.4:
+
resolution: {integrity: sha512-kKaIINnFpzW6ffJNDjjyjrk21BkDx38c0xa/klsT8VzLCaMEefv4ZTacrcVR4DmgTeBra++jMDAfS/tS799YDw==}
+
engines: {node: '>= 0.4'}
+
+
foreground-child@3.3.0:
+
resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==}
+
engines: {node: '>=14'}
+
+
fs-extra@7.0.1:
+
resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==}
+
engines: {node: '>=6 <7 || >=8'}
+
+
fs-extra@8.1.0:
+
resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==}
+
engines: {node: '>=6 <7 || >=8'}
+
+
fsevents@2.3.3:
+
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+
os: [darwin]
+
+
function-bind@1.1.2:
+
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+
+
function.prototype.name@1.1.8:
+
resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==}
+
engines: {node: '>= 0.4'}
+
+
functions-have-names@1.2.3:
+
resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
+
+
gensync@1.0.0-beta.2:
+
resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
+
engines: {node: '>=6.9.0'}
+
+
get-east-asian-width@1.3.0:
+
resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==}
+
engines: {node: '>=18'}
+
+
get-intrinsic@1.2.7:
+
resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==}
+
engines: {node: '>= 0.4'}
+
+
get-proto@1.0.1:
+
resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
+
engines: {node: '>= 0.4'}
+
+
get-stream@8.0.1:
+
resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
+
engines: {node: '>=16'}
+
+
get-symbol-description@1.1.0:
+
resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
+
engines: {node: '>= 0.4'}
+
+
glob-parent@5.1.2:
+
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+
engines: {node: '>= 6'}
+
+
glob@11.0.1:
+
resolution: {integrity: sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==}
+
engines: {node: 20 || >=22}
+
hasBin: true
+
+
globals@11.12.0:
+
resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
+
engines: {node: '>=4'}
+
+
globalthis@1.0.4:
+
resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
+
engines: {node: '>= 0.4'}
+
+
globby@11.1.0:
+
resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
+
engines: {node: '>=10'}
+
+
gopd@1.2.0:
+
resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
+
engines: {node: '>= 0.4'}
+
+
graceful-fs@4.2.11:
+
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+
+
has-bigints@1.1.0:
+
resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==}
+
engines: {node: '>= 0.4'}
+
+
has-flag@3.0.0:
+
resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
+
engines: {node: '>=4'}
+
+
has-property-descriptors@1.0.2:
+
resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
+
+
has-proto@1.2.0:
+
resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==}
+
engines: {node: '>= 0.4'}
+
+
has-symbols@1.1.0:
+
resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
+
engines: {node: '>= 0.4'}
+
+
has-tostringtag@1.0.2:
+
resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
+
engines: {node: '>= 0.4'}
+
+
hasown@2.0.2:
+
resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
+
engines: {node: '>= 0.4'}
+
+
hosted-git-info@2.8.9:
+
resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
+
+
human-id@1.0.2:
+
resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==}
+
+
human-signals@5.0.0:
+
resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==}
+
engines: {node: '>=16.17.0'}
+
+
iconv-lite@0.4.24:
+
resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
+
engines: {node: '>=0.10.0'}
+
+
ignore@5.3.2:
+
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
+
engines: {node: '>= 4'}
+
+
internal-slot@1.1.0:
+
resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==}
+
engines: {node: '>= 0.4'}
+
+
is-array-buffer@3.0.5:
+
resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==}
+
engines: {node: '>= 0.4'}
+
+
is-arrayish@0.2.1:
+
resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
+
+
is-async-function@2.1.1:
+
resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==}
+
engines: {node: '>= 0.4'}
+
+
is-bigint@1.1.0:
+
resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==}
+
engines: {node: '>= 0.4'}
+
+
is-boolean-object@1.2.1:
+
resolution: {integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==}
+
engines: {node: '>= 0.4'}
+
+
is-callable@1.2.7:
+
resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
+
engines: {node: '>= 0.4'}
+
+
is-core-module@2.16.1:
+
resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
+
engines: {node: '>= 0.4'}
+
+
is-data-view@1.0.2:
+
resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==}
+
engines: {node: '>= 0.4'}
+
+
is-date-object@1.1.0:
+
resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==}
+
engines: {node: '>= 0.4'}
+
+
is-extglob@2.1.1:
+
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+
engines: {node: '>=0.10.0'}
+
+
is-finalizationregistry@1.1.1:
+
resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==}
+
engines: {node: '>= 0.4'}
+
+
is-fullwidth-code-point@3.0.0:
+
resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
+
engines: {node: '>=8'}
+
+
is-fullwidth-code-point@4.0.0:
+
resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==}
+
engines: {node: '>=12'}
+
+
is-fullwidth-code-point@5.0.0:
+
resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==}
+
engines: {node: '>=18'}
+
+
is-generator-function@1.1.0:
+
resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==}
+
engines: {node: '>= 0.4'}
+
+
is-glob@4.0.3:
+
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+
engines: {node: '>=0.10.0'}
+
+
is-map@2.0.3:
+
resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
+
engines: {node: '>= 0.4'}
+
+
is-module@1.0.0:
+
resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
+
+
is-number-object@1.1.1:
+
resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==}
+
engines: {node: '>= 0.4'}
+
+
is-number@7.0.0:
+
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+
engines: {node: '>=0.12.0'}
+
+
is-reference@1.2.1:
+
resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==}
+
+
is-regex@1.2.1:
+
resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
+
engines: {node: '>= 0.4'}
+
+
is-set@2.0.3:
+
resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
+
engines: {node: '>= 0.4'}
+
+
is-shared-array-buffer@1.0.4:
+
resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==}
+
engines: {node: '>= 0.4'}
+
+
is-stream@3.0.0:
+
resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
+
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+
is-string@1.1.1:
+
resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==}
+
engines: {node: '>= 0.4'}
+
+
is-subdir@1.2.0:
+
resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==}
+
engines: {node: '>=4'}
+
+
is-symbol@1.1.1:
+
resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==}
+
engines: {node: '>= 0.4'}
+
+
is-typed-array@1.1.15:
+
resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==}
+
engines: {node: '>= 0.4'}
+
+
is-weakmap@2.0.2:
+
resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
+
engines: {node: '>= 0.4'}
+
+
is-weakref@1.1.0:
+
resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==}
+
engines: {node: '>= 0.4'}
+
+
is-weakset@2.0.4:
+
resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==}
+
engines: {node: '>= 0.4'}
+
+
is-windows@1.0.2:
+
resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
+
engines: {node: '>=0.10.0'}
+
+
isarray@2.0.5:
+
resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
+
+
isexe@2.0.0:
+
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+
+
jackspeak@4.0.2:
+
resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==}
+
engines: {node: 20 || >=22}
+
+
js-tokens@4.0.0:
+
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+
+
js-yaml@3.14.1:
+
resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
+
hasBin: true
+
+
jsesc@3.1.0:
+
resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
+
engines: {node: '>=6'}
+
hasBin: true
+
+
json-parse-better-errors@1.0.2:
+
resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==}
+
+
json5@2.2.3:
+
resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
+
engines: {node: '>=6'}
+
hasBin: true
+
+
jsonfile@4.0.0:
+
resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==}
+
+
lilconfig@3.1.3:
+
resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==}
+
engines: {node: '>=14'}
+
+
lint-staged@15.4.3:
+
resolution: {integrity: sha512-FoH1vOeouNh1pw+90S+cnuoFwRfUD9ijY2GKy5h7HS3OR7JVir2N2xrsa0+Twc1B7cW72L+88geG5cW4wIhn7g==}
+
engines: {node: '>=18.12.0'}
+
hasBin: true
+
+
listr2@8.2.5:
+
resolution: {integrity: sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==}
+
engines: {node: '>=18.0.0'}
+
+
load-json-file@4.0.0:
+
resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==}
+
engines: {node: '>=4'}
+
+
locate-path@5.0.0:
+
resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
+
engines: {node: '>=8'}
+
+
lodash.startcase@4.4.0:
+
resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==}
+
+
log-update@6.1.0:
+
resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==}
+
engines: {node: '>=18'}
+
+
lru-cache@11.0.2:
+
resolution: {integrity: sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==}
+
engines: {node: 20 || >=22}
+
+
lru-cache@5.1.1:
+
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
+
+
magic-string@0.30.17:
+
resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
+
+
math-intrinsics@1.1.0:
+
resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
+
engines: {node: '>= 0.4'}
+
+
memorystream@0.3.1:
+
resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==}
+
engines: {node: '>= 0.10.0'}
+
+
merge-stream@2.0.0:
+
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
+
+
merge2@1.4.1:
+
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+
engines: {node: '>= 8'}
+
+
micromatch@4.0.8:
+
resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
+
engines: {node: '>=8.6'}
+
+
mimic-fn@4.0.0:
+
resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
+
engines: {node: '>=12'}
+
+
mimic-function@5.0.1:
+
resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==}
+
engines: {node: '>=18'}
+
+
minimatch@10.0.1:
+
resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==}
+
engines: {node: 20 || >=22}
+
+
minimatch@3.1.2:
+
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+
+
minipass@7.1.2:
+
resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
+
engines: {node: '>=16 || 14 >=14.17'}
+
+
mri@1.2.0:
+
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
+
engines: {node: '>=4'}
+
+
ms@2.1.3:
+
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+
+
nice-try@1.0.5:
+
resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==}
+
+
node-fetch@2.7.0:
+
resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
+
engines: {node: 4.x || >=6.0.0}
+
peerDependencies:
+
encoding: ^0.1.0
+
peerDependenciesMeta:
+
encoding:
+
optional: true
+
+
node-releases@2.0.19:
+
resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
+
+
normalize-package-data@2.5.0:
+
resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
+
+
npm-run-all@4.1.5:
+
resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==}
+
engines: {node: '>= 4'}
+
hasBin: true
+
+
npm-run-path@5.3.0:
+
resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==}
+
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+
object-inspect@1.13.3:
+
resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==}
+
engines: {node: '>= 0.4'}
+
+
object-keys@1.1.1:
+
resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
+
engines: {node: '>= 0.4'}
+
+
object.assign@4.1.7:
+
resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==}
+
engines: {node: '>= 0.4'}
+
+
onetime@6.0.0:
+
resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
+
engines: {node: '>=12'}
+
+
onetime@7.0.0:
+
resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==}
+
engines: {node: '>=18'}
+
+
os-tmpdir@1.0.2:
+
resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
+
engines: {node: '>=0.10.0'}
+
+
outdent@0.5.0:
+
resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==}
+
+
own-keys@1.0.1:
+
resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==}
+
engines: {node: '>= 0.4'}
+
+
p-filter@2.1.0:
+
resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==}
+
engines: {node: '>=8'}
+
+
p-limit@2.3.0:
+
resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
+
engines: {node: '>=6'}
+
+
p-locate@4.1.0:
+
resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
+
engines: {node: '>=8'}
+
+
p-map@2.1.0:
+
resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==}
+
engines: {node: '>=6'}
+
+
p-try@2.2.0:
+
resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
+
engines: {node: '>=6'}
+
+
package-json-from-dist@1.0.1:
+
resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
+
+
package-manager-detector@0.2.9:
+
resolution: {integrity: sha512-+vYvA/Y31l8Zk8dwxHhL3JfTuHPm6tlxM2A3GeQyl7ovYnSp1+mzAxClxaOr0qO1TtPxbQxetI7v5XqKLJZk7Q==}
+
+
parse-json@4.0.0:
+
resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==}
+
engines: {node: '>=4'}
+
+
path-exists@4.0.0:
+
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
+
engines: {node: '>=8'}
+
+
path-key@2.0.1:
+
resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==}
+
engines: {node: '>=4'}
+
+
path-key@3.1.1:
+
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
+
engines: {node: '>=8'}
+
+
path-key@4.0.0:
+
resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
+
engines: {node: '>=12'}
+
+
path-parse@1.0.7:
+
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+
+
path-scurry@2.0.0:
+
resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==}
+
engines: {node: 20 || >=22}
+
+
path-type@3.0.0:
+
resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==}
+
engines: {node: '>=4'}
+
+
path-type@4.0.0:
+
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
+
engines: {node: '>=8'}
+
+
picocolors@1.1.1:
+
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
+
+
picomatch@2.3.1:
+
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
+
engines: {node: '>=8.6'}
+
+
picomatch@4.0.2:
+
resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
+
engines: {node: '>=12'}
+
+
pidtree@0.3.1:
+
resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==}
+
engines: {node: '>=0.10'}
+
hasBin: true
+
+
pidtree@0.6.0:
+
resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==}
+
engines: {node: '>=0.10'}
+
hasBin: true
+
+
pify@3.0.0:
+
resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==}
+
engines: {node: '>=4'}
+
+
pify@4.0.1:
+
resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
+
engines: {node: '>=6'}
+
+
possible-typed-array-names@1.0.0:
+
resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
+
engines: {node: '>= 0.4'}
+
+
prettier@2.8.8:
+
resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
+
engines: {node: '>=10.13.0'}
+
hasBin: true
+
+
prettier@3.4.2:
+
resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==}
+
engines: {node: '>=14'}
+
hasBin: true
+
+
queue-microtask@1.2.3:
+
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+
+
randombytes@2.1.0:
+
resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
+
+
read-pkg@3.0.0:
+
resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==}
+
engines: {node: '>=4'}
+
+
read-yaml-file@1.1.0:
+
resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==}
+
engines: {node: '>=6'}
+
+
reflect.getprototypeof@1.0.10:
+
resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
+
engines: {node: '>= 0.4'}
+
+
regenerator-runtime@0.14.1:
+
resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
+
+
regexp.prototype.flags@1.5.4:
+
resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
+
engines: {node: '>= 0.4'}
+
+
resolve-from@5.0.0:
+
resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
+
engines: {node: '>=8'}
+
+
resolve@1.22.10:
+
resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==}
+
engines: {node: '>= 0.4'}
+
hasBin: true
+
+
restore-cursor@5.1.0:
+
resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==}
+
engines: {node: '>=18'}
+
+
reusify@1.0.4:
+
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
+
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+
+
rfdc@1.4.1:
+
resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==}
+
+
rimraf@6.0.1:
+
resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==}
+
engines: {node: 20 || >=22}
+
hasBin: true
+
+
rollup-plugin-cjs-check@1.0.3:
+
resolution: {integrity: sha512-l8Gn8fm0YsAUuCVPmJ9CjwX5D98xyjc7iBlKfik5RGgXrV35nBwKCb+xbsK2oMrWMIRdLWsfyVUBM153e2zvYg==}
+
engines: {node: '>=14.0.0'}
+
peerDependencies:
+
rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0
+
+
rollup-plugin-dts@6.1.1:
+
resolution: {integrity: sha512-aSHRcJ6KG2IHIioYlvAOcEq6U99sVtqDDKVhnwt70rW6tsz3tv5OSjEiWcgzfsHdLyGXZ/3b/7b/+Za3Y6r1XA==}
+
engines: {node: '>=16'}
+
peerDependencies:
+
rollup: ^3.29.4 || ^4
+
typescript: ^4.5 || ^5.0
+
+
rollup@4.32.1:
+
resolution: {integrity: sha512-z+aeEsOeEa3mEbS1Tjl6sAZ8NE3+AalQz1RJGj81M+fizusbdDMoEJwdJNHfaB40Scr4qNu+welOfes7maKonA==}
+
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
+
hasBin: true
+
+
run-parallel@1.2.0:
+
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+
+
safe-array-concat@1.1.3:
+
resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==}
+
engines: {node: '>=0.4'}
+
+
safe-buffer@5.2.1:
+
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+
+
safe-push-apply@1.0.0:
+
resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==}
+
engines: {node: '>= 0.4'}
+
+
safe-regex-test@1.1.0:
+
resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
+
engines: {node: '>= 0.4'}
+
+
safer-buffer@2.1.2:
+
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
+
+
semver@5.7.2:
+
resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
+
hasBin: true
+
+
semver@6.3.1:
+
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
+
hasBin: true
+
+
semver@7.7.0:
+
resolution: {integrity: sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==}
+
engines: {node: '>=10'}
+
hasBin: true
+
+
serialize-javascript@6.0.2:
+
resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
+
+
set-function-length@1.2.2:
+
resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
+
engines: {node: '>= 0.4'}
+
+
set-function-name@2.0.2:
+
resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
+
engines: {node: '>= 0.4'}
+
+
set-proto@1.0.0:
+
resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==}
+
engines: {node: '>= 0.4'}
+
+
shebang-command@1.2.0:
+
resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==}
+
engines: {node: '>=0.10.0'}
+
+
shebang-command@2.0.0:
+
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+
engines: {node: '>=8'}
+
+
shebang-regex@1.0.0:
+
resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==}
+
engines: {node: '>=0.10.0'}
+
+
shebang-regex@3.0.0:
+
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+
engines: {node: '>=8'}
+
+
shell-quote@1.8.2:
+
resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==}
+
engines: {node: '>= 0.4'}
+
+
side-channel-list@1.0.0:
+
resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
+
engines: {node: '>= 0.4'}
+
+
side-channel-map@1.0.1:
+
resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
+
engines: {node: '>= 0.4'}
+
+
side-channel-weakmap@1.0.2:
+
resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
+
engines: {node: '>= 0.4'}
+
+
side-channel@1.1.0:
+
resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
+
engines: {node: '>= 0.4'}
+
+
signal-exit@4.1.0:
+
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
+
engines: {node: '>=14'}
+
+
slash@3.0.0:
+
resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
+
engines: {node: '>=8'}
+
+
slice-ansi@5.0.0:
+
resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==}
+
engines: {node: '>=12'}
+
+
slice-ansi@7.1.0:
+
resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==}
+
engines: {node: '>=18'}
+
+
smob@1.5.0:
+
resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==}
+
+
source-map-support@0.5.21:
+
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
+
+
source-map@0.6.1:
+
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
+
engines: {node: '>=0.10.0'}
+
+
spawndamnit@3.0.1:
+
resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==}
+
+
spdx-correct@3.2.0:
+
resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
+
+
spdx-exceptions@2.5.0:
+
resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
+
+
spdx-expression-parse@3.0.1:
+
resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
+
+
spdx-license-ids@3.0.21:
+
resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==}
+
+
sprintf-js@1.0.3:
+
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
+
+
string-argv@0.3.2:
+
resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==}
+
engines: {node: '>=0.6.19'}
+
+
string-width@4.2.3:
+
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
+
engines: {node: '>=8'}
+
+
string-width@5.1.2:
+
resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
+
engines: {node: '>=12'}
+
+
string-width@7.2.0:
+
resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==}
+
engines: {node: '>=18'}
+
+
string.prototype.padend@3.1.6:
+
resolution: {integrity: sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==}
+
engines: {node: '>= 0.4'}
+
+
string.prototype.trim@1.2.10:
+
resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==}
+
engines: {node: '>= 0.4'}
+
+
string.prototype.trimend@1.0.9:
+
resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==}
+
engines: {node: '>= 0.4'}
+
+
string.prototype.trimstart@1.0.8:
+
resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
+
engines: {node: '>= 0.4'}
+
+
strip-ansi@6.0.1:
+
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+
engines: {node: '>=8'}
+
+
strip-ansi@7.1.0:
+
resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
+
engines: {node: '>=12'}
+
+
strip-bom@3.0.0:
+
resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
+
engines: {node: '>=4'}
+
+
strip-final-newline@3.0.0:
+
resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
+
engines: {node: '>=12'}
+
+
supports-color@5.5.0:
+
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
+
engines: {node: '>=4'}
+
+
supports-preserve-symlinks-flag@1.0.0:
+
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+
engines: {node: '>= 0.4'}
+
+
term-size@2.2.1:
+
resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==}
+
engines: {node: '>=8'}
+
+
terser@5.37.0:
+
resolution: {integrity: sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==}
+
engines: {node: '>=10'}
+
hasBin: true
+
+
tmp@0.0.33:
+
resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
+
engines: {node: '>=0.6.0'}
+
+
to-regex-range@5.0.1:
+
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+
engines: {node: '>=8.0'}
+
+
tr46@0.0.3:
+
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
+
+
typed-array-buffer@1.0.3:
+
resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==}
+
engines: {node: '>= 0.4'}
+
+
typed-array-byte-length@1.0.3:
+
resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==}
+
engines: {node: '>= 0.4'}
+
+
typed-array-byte-offset@1.0.4:
+
resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==}
+
engines: {node: '>= 0.4'}
+
+
typed-array-length@1.0.7:
+
resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
+
engines: {node: '>= 0.4'}
+
+
typescript@5.7.3:
+
resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==}
+
engines: {node: '>=14.17'}
+
hasBin: true
+
+
unbox-primitive@1.1.0:
+
resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
+
engines: {node: '>= 0.4'}
+
+
undici-types@6.20.0:
+
resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==}
+
+
universalify@0.1.2:
+
resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
+
engines: {node: '>= 4.0.0'}
+
+
update-browserslist-db@1.1.2:
+
resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==}
+
hasBin: true
+
peerDependencies:
+
browserslist: '>= 4.21.0'
+
+
validate-npm-package-license@3.0.4:
+
resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
+
+
webidl-conversions@3.0.1:
+
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
+
+
whatwg-url@5.0.0:
+
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
+
+
which-boxed-primitive@1.1.1:
+
resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==}
+
engines: {node: '>= 0.4'}
+
+
which-builtin-type@1.2.1:
+
resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==}
+
engines: {node: '>= 0.4'}
+
+
which-collection@1.0.2:
+
resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
+
engines: {node: '>= 0.4'}
+
+
which-typed-array@1.1.18:
+
resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==}
+
engines: {node: '>= 0.4'}
+
+
which@1.3.1:
+
resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
+
hasBin: true
+
+
which@2.0.2:
+
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+
engines: {node: '>= 8'}
+
hasBin: true
+
+
wrap-ansi@7.0.0:
+
resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
+
engines: {node: '>=10'}
+
+
wrap-ansi@8.1.0:
+
resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
+
engines: {node: '>=12'}
+
+
wrap-ansi@9.0.0:
+
resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==}
+
engines: {node: '>=18'}
+
+
yallist@3.1.1:
+
resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
+
+
yaml@2.7.0:
+
resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==}
+
engines: {node: '>= 14'}
+
hasBin: true
+
+
snapshots:
+
+
'@ampproject/remapping@2.3.0':
+
dependencies:
+
'@jridgewell/gen-mapping': 0.3.8
+
'@jridgewell/trace-mapping': 0.3.25
+
+
'@babel/code-frame@7.26.2':
+
dependencies:
+
'@babel/helper-validator-identifier': 7.25.9
+
js-tokens: 4.0.0
+
picocolors: 1.1.1
+
+
'@babel/compat-data@7.26.5': {}
+
+
'@babel/core@7.26.7':
+
dependencies:
+
'@ampproject/remapping': 2.3.0
+
'@babel/code-frame': 7.26.2
+
'@babel/generator': 7.26.5
+
'@babel/helper-compilation-targets': 7.26.5
+
'@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.7)
+
'@babel/helpers': 7.26.7
+
'@babel/parser': 7.26.7
+
'@babel/template': 7.25.9
+
'@babel/traverse': 7.26.7
+
'@babel/types': 7.26.7
+
convert-source-map: 2.0.0
+
debug: 4.4.0
+
gensync: 1.0.0-beta.2
+
json5: 2.2.3
+
semver: 6.3.1
+
transitivePeerDependencies:
+
- supports-color
+
+
'@babel/generator@7.26.5':
+
dependencies:
+
'@babel/parser': 7.26.7
+
'@babel/types': 7.26.7
+
'@jridgewell/gen-mapping': 0.3.8
+
'@jridgewell/trace-mapping': 0.3.25
+
jsesc: 3.1.0
+
+
'@babel/helper-annotate-as-pure@7.25.9':
+
dependencies:
+
'@babel/types': 7.26.7
+
+
'@babel/helper-compilation-targets@7.26.5':
+
dependencies:
+
'@babel/compat-data': 7.26.5
+
'@babel/helper-validator-option': 7.25.9
+
browserslist: 4.24.4
+
lru-cache: 5.1.1
+
semver: 6.3.1
+
+
'@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.7)':
+
dependencies:
+
'@babel/core': 7.26.7
+
'@babel/helper-annotate-as-pure': 7.25.9
+
'@babel/helper-member-expression-to-functions': 7.25.9
+
'@babel/helper-optimise-call-expression': 7.25.9
+
'@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.7)
+
'@babel/helper-skip-transparent-expression-wrappers': 7.25.9
+
'@babel/traverse': 7.26.7
+
semver: 6.3.1
+
transitivePeerDependencies:
+
- supports-color
+
+
'@babel/helper-member-expression-to-functions@7.25.9':
+
dependencies:
+
'@babel/traverse': 7.26.7
+
'@babel/types': 7.26.7
+
transitivePeerDependencies:
+
- supports-color
+
+
'@babel/helper-module-imports@7.25.9':
+
dependencies:
+
'@babel/traverse': 7.26.7
+
'@babel/types': 7.26.7
+
transitivePeerDependencies:
+
- supports-color
+
+
'@babel/helper-module-transforms@7.26.0(@babel/core@7.26.7)':
+
dependencies:
+
'@babel/core': 7.26.7
+
'@babel/helper-module-imports': 7.25.9
+
'@babel/helper-validator-identifier': 7.25.9
+
'@babel/traverse': 7.26.7
+
transitivePeerDependencies:
+
- supports-color
+
+
'@babel/helper-optimise-call-expression@7.25.9':
+
dependencies:
+
'@babel/types': 7.26.7
+
+
'@babel/helper-plugin-utils@7.26.5': {}
+
+
'@babel/helper-replace-supers@7.26.5(@babel/core@7.26.7)':
+
dependencies:
+
'@babel/core': 7.26.7
+
'@babel/helper-member-expression-to-functions': 7.25.9
+
'@babel/helper-optimise-call-expression': 7.25.9
+
'@babel/traverse': 7.26.7
+
transitivePeerDependencies:
+
- supports-color
+
+
'@babel/helper-skip-transparent-expression-wrappers@7.25.9':
+
dependencies:
+
'@babel/traverse': 7.26.7
+
'@babel/types': 7.26.7
+
transitivePeerDependencies:
+
- supports-color
+
+
'@babel/helper-string-parser@7.25.9': {}
+
+
'@babel/helper-validator-identifier@7.25.9': {}
+
+
'@babel/helper-validator-option@7.25.9': {}
+
+
'@babel/helpers@7.26.7':
+
dependencies:
+
'@babel/template': 7.25.9
+
'@babel/types': 7.26.7
+
+
'@babel/parser@7.26.7':
+
dependencies:
+
'@babel/types': 7.26.7
+
+
'@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.7)':
+
dependencies:
+
'@babel/core': 7.26.7
+
'@babel/helper-plugin-utils': 7.26.5
+
+
'@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.7)':
+
dependencies:
+
'@babel/core': 7.26.7
+
'@babel/helper-plugin-utils': 7.26.5
+
+
'@babel/plugin-transform-typescript@7.26.7(@babel/core@7.26.7)':
+
dependencies:
+
'@babel/core': 7.26.7
+
'@babel/helper-annotate-as-pure': 7.25.9
+
'@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.7)
+
'@babel/helper-plugin-utils': 7.26.5
+
'@babel/helper-skip-transparent-expression-wrappers': 7.25.9
+
'@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.7)
+
transitivePeerDependencies:
+
- supports-color
+
+
'@babel/runtime@7.26.7':
+
dependencies:
+
regenerator-runtime: 0.14.1
+
+
'@babel/template@7.25.9':
+
dependencies:
+
'@babel/code-frame': 7.26.2
+
'@babel/parser': 7.26.7
+
'@babel/types': 7.26.7
+
+
'@babel/traverse@7.26.7':
+
dependencies:
+
'@babel/code-frame': 7.26.2
+
'@babel/generator': 7.26.5
+
'@babel/parser': 7.26.7
+
'@babel/template': 7.25.9
+
'@babel/types': 7.26.7
+
debug: 4.4.0
+
globals: 11.12.0
+
transitivePeerDependencies:
+
- supports-color
+
+
'@babel/types@7.26.7':
+
dependencies:
+
'@babel/helper-string-parser': 7.25.9
+
'@babel/helper-validator-identifier': 7.25.9
+
+
'@changesets/apply-release-plan@7.0.8':
+
dependencies:
+
'@changesets/config': 3.0.5
+
'@changesets/get-version-range-type': 0.4.0
+
'@changesets/git': 3.0.2
+
'@changesets/should-skip-package': 0.1.1
+
'@changesets/types': 6.0.0
+
'@manypkg/get-packages': 1.1.3
+
detect-indent: 6.1.0
+
fs-extra: 7.0.1
+
lodash.startcase: 4.4.0
+
outdent: 0.5.0
+
prettier: 2.8.8
+
resolve-from: 5.0.0
+
semver: 7.7.0
+
+
'@changesets/assemble-release-plan@6.0.5':
+
dependencies:
+
'@changesets/errors': 0.2.0
+
'@changesets/get-dependents-graph': 2.1.2
+
'@changesets/should-skip-package': 0.1.1
+
'@changesets/types': 6.0.0
+
'@manypkg/get-packages': 1.1.3
+
semver: 7.7.0
+
+
'@changesets/changelog-git@0.2.0':
+
dependencies:
+
'@changesets/types': 6.0.0
+
+
'@changesets/cli@2.27.12':
+
dependencies:
+
'@changesets/apply-release-plan': 7.0.8
+
'@changesets/assemble-release-plan': 6.0.5
+
'@changesets/changelog-git': 0.2.0
+
'@changesets/config': 3.0.5
+
'@changesets/errors': 0.2.0
+
'@changesets/get-dependents-graph': 2.1.2
+
'@changesets/get-release-plan': 4.0.6
+
'@changesets/git': 3.0.2
+
'@changesets/logger': 0.1.1
+
'@changesets/pre': 2.0.1
+
'@changesets/read': 0.6.2
+
'@changesets/should-skip-package': 0.1.1
+
'@changesets/types': 6.0.0
+
'@changesets/write': 0.3.2
+
'@manypkg/get-packages': 1.1.3
+
ansi-colors: 4.1.3
+
ci-info: 3.9.0
+
enquirer: 2.4.1
+
external-editor: 3.1.0
+
fs-extra: 7.0.1
+
mri: 1.2.0
+
p-limit: 2.3.0
+
package-manager-detector: 0.2.9
+
picocolors: 1.1.1
+
resolve-from: 5.0.0
+
semver: 7.7.0
+
spawndamnit: 3.0.1
+
term-size: 2.2.1
+
+
'@changesets/config@3.0.5':
+
dependencies:
+
'@changesets/errors': 0.2.0
+
'@changesets/get-dependents-graph': 2.1.2
+
'@changesets/logger': 0.1.1
+
'@changesets/types': 6.0.0
+
'@manypkg/get-packages': 1.1.3
+
fs-extra: 7.0.1
+
micromatch: 4.0.8
+
+
'@changesets/errors@0.2.0':
+
dependencies:
+
extendable-error: 0.1.7
+
+
'@changesets/get-dependents-graph@2.1.2':
+
dependencies:
+
'@changesets/types': 6.0.0
+
'@manypkg/get-packages': 1.1.3
+
picocolors: 1.1.1
+
semver: 7.7.0
+
+
'@changesets/get-github-info@0.6.0':
+
dependencies:
+
dataloader: 1.4.0
+
node-fetch: 2.7.0
+
transitivePeerDependencies:
+
- encoding
+
+
'@changesets/get-release-plan@4.0.6':
+
dependencies:
+
'@changesets/assemble-release-plan': 6.0.5
+
'@changesets/config': 3.0.5
+
'@changesets/pre': 2.0.1
+
'@changesets/read': 0.6.2
+
'@changesets/types': 6.0.0
+
'@manypkg/get-packages': 1.1.3
+
+
'@changesets/get-version-range-type@0.4.0': {}
+
+
'@changesets/git@3.0.2':
+
dependencies:
+
'@changesets/errors': 0.2.0
+
'@manypkg/get-packages': 1.1.3
+
is-subdir: 1.2.0
+
micromatch: 4.0.8
+
spawndamnit: 3.0.1
+
+
'@changesets/logger@0.1.1':
+
dependencies:
+
picocolors: 1.1.1
+
+
'@changesets/parse@0.4.0':
+
dependencies:
+
'@changesets/types': 6.0.0
+
js-yaml: 3.14.1
+
+
'@changesets/pre@2.0.1':
+
dependencies:
+
'@changesets/errors': 0.2.0
+
'@changesets/types': 6.0.0
+
'@manypkg/get-packages': 1.1.3
+
fs-extra: 7.0.1
+
+
'@changesets/read@0.6.2':
+
dependencies:
+
'@changesets/git': 3.0.2
+
'@changesets/logger': 0.1.1
+
'@changesets/parse': 0.4.0
+
'@changesets/types': 6.0.0
+
fs-extra: 7.0.1
+
p-filter: 2.1.0
+
picocolors: 1.1.1
+
+
'@changesets/should-skip-package@0.1.1':
+
dependencies:
+
'@changesets/types': 6.0.0
+
'@manypkg/get-packages': 1.1.3
+
+
'@changesets/types@4.1.0': {}
+
+
'@changesets/types@6.0.0': {}
+
+
'@changesets/write@0.3.2':
+
dependencies:
+
'@changesets/types': 6.0.0
+
fs-extra: 7.0.1
+
human-id: 1.0.2
+
prettier: 2.8.8
+
+
'@isaacs/cliui@8.0.2':
+
dependencies:
+
string-width: 5.1.2
+
string-width-cjs: string-width@4.2.3
+
strip-ansi: 7.1.0
+
strip-ansi-cjs: strip-ansi@6.0.1
+
wrap-ansi: 8.1.0
+
wrap-ansi-cjs: wrap-ansi@7.0.0
+
+
'@jridgewell/gen-mapping@0.3.8':
+
dependencies:
+
'@jridgewell/set-array': 1.2.1
+
'@jridgewell/sourcemap-codec': 1.5.0
+
'@jridgewell/trace-mapping': 0.3.25
+
+
'@jridgewell/resolve-uri@3.1.2': {}
+
+
'@jridgewell/set-array@1.2.1': {}
+
+
'@jridgewell/source-map@0.3.6':
+
dependencies:
+
'@jridgewell/gen-mapping': 0.3.8
+
'@jridgewell/trace-mapping': 0.3.25
+
+
'@jridgewell/sourcemap-codec@1.5.0': {}
+
+
'@jridgewell/trace-mapping@0.3.25':
+
dependencies:
+
'@jridgewell/resolve-uri': 3.1.2
+
'@jridgewell/sourcemap-codec': 1.5.0
+
+
'@manypkg/find-root@1.1.0':
+
dependencies:
+
'@babel/runtime': 7.26.7
+
'@types/node': 12.20.55
+
find-up: 4.1.0
+
fs-extra: 8.1.0
+
+
'@manypkg/get-packages@1.1.3':
+
dependencies:
+
'@babel/runtime': 7.26.7
+
'@changesets/types': 4.1.0
+
'@manypkg/find-root': 1.1.0
+
fs-extra: 8.1.0
+
globby: 11.1.0
+
read-yaml-file: 1.1.0
+
+
'@nodelib/fs.scandir@2.1.5':
+
dependencies:
+
'@nodelib/fs.stat': 2.0.5
+
run-parallel: 1.2.0
+
+
'@nodelib/fs.stat@2.0.5': {}
+
+
'@nodelib/fs.walk@1.2.8':
+
dependencies:
+
'@nodelib/fs.scandir': 2.1.5
+
fastq: 1.19.0
+
+
'@rollup/plugin-babel@6.0.4(@babel/core@7.26.7)(rollup@4.32.1)':
+
dependencies:
+
'@babel/core': 7.26.7
+
'@babel/helper-module-imports': 7.25.9
+
'@rollup/pluginutils': 5.1.4(rollup@4.32.1)
+
optionalDependencies:
+
rollup: 4.32.1
+
transitivePeerDependencies:
+
- supports-color
+
+
'@rollup/plugin-commonjs@28.0.2(rollup@4.32.1)':
+
dependencies:
+
'@rollup/pluginutils': 5.1.4(rollup@4.32.1)
+
commondir: 1.0.1
+
estree-walker: 2.0.2
+
fdir: 6.4.3(picomatch@4.0.2)
+
is-reference: 1.2.1
+
magic-string: 0.30.17
+
picomatch: 4.0.2
+
optionalDependencies:
+
rollup: 4.32.1
+
+
'@rollup/plugin-node-resolve@16.0.0(rollup@4.32.1)':
+
dependencies:
+
'@rollup/pluginutils': 5.1.4(rollup@4.32.1)
+
'@types/resolve': 1.20.2
+
deepmerge: 4.3.1
+
is-module: 1.0.0
+
resolve: 1.22.10
+
optionalDependencies:
+
rollup: 4.32.1
+
+
'@rollup/plugin-terser@0.4.4(rollup@4.32.1)':
+
dependencies:
+
serialize-javascript: 6.0.2
+
smob: 1.5.0
+
terser: 5.37.0
+
optionalDependencies:
+
rollup: 4.32.1
+
+
'@rollup/pluginutils@5.1.4(rollup@4.32.1)':
+
dependencies:
+
'@types/estree': 1.0.6
+
estree-walker: 2.0.2
+
picomatch: 4.0.2
+
optionalDependencies:
+
rollup: 4.32.1
+
+
'@rollup/rollup-android-arm-eabi@4.32.1':
+
optional: true
+
+
'@rollup/rollup-android-arm64@4.32.1':
+
optional: true
+
+
'@rollup/rollup-darwin-arm64@4.32.1':
+
optional: true
+
+
'@rollup/rollup-darwin-x64@4.32.1':
+
optional: true
+
+
'@rollup/rollup-freebsd-arm64@4.32.1':
+
optional: true
+
+
'@rollup/rollup-freebsd-x64@4.32.1':
+
optional: true
+
+
'@rollup/rollup-linux-arm-gnueabihf@4.32.1':
+
optional: true
+
+
'@rollup/rollup-linux-arm-musleabihf@4.32.1':
+
optional: true
+
+
'@rollup/rollup-linux-arm64-gnu@4.32.1':
+
optional: true
+
+
'@rollup/rollup-linux-arm64-musl@4.32.1':
+
optional: true
+
+
'@rollup/rollup-linux-loongarch64-gnu@4.32.1':
+
optional: true
+
+
'@rollup/rollup-linux-powerpc64le-gnu@4.32.1':
+
optional: true
+
+
'@rollup/rollup-linux-riscv64-gnu@4.32.1':
+
optional: true
+
+
'@rollup/rollup-linux-s390x-gnu@4.32.1':
+
optional: true
+
+
'@rollup/rollup-linux-x64-gnu@4.32.1':
+
optional: true
+
+
'@rollup/rollup-linux-x64-musl@4.32.1':
+
optional: true
+
+
'@rollup/rollup-win32-arm64-msvc@4.32.1':
+
optional: true
+
+
'@rollup/rollup-win32-ia32-msvc@4.32.1':
+
optional: true
+
+
'@rollup/rollup-win32-x64-msvc@4.32.1':
+
optional: true
+
+
'@types/estree@1.0.6': {}
+
+
'@types/node@12.20.55': {}
+
+
'@types/node@22.12.0':
+
dependencies:
+
undici-types: 6.20.0
+
+
'@types/resolve@1.20.2': {}
+
+
acorn@8.14.0: {}
+
+
ansi-colors@4.1.3: {}
+
+
ansi-escapes@7.0.0:
+
dependencies:
+
environment: 1.1.0
+
+
ansi-regex@5.0.1: {}
+
+
ansi-regex@6.1.0: {}
+
+
ansi-styles@3.2.1:
+
dependencies:
+
color-convert: 1.9.3
+
+
ansi-styles@4.3.0:
+
dependencies:
+
color-convert: 2.0.1
+
+
ansi-styles@6.2.1: {}
+
+
argparse@1.0.10:
+
dependencies:
+
sprintf-js: 1.0.3
+
+
array-buffer-byte-length@1.0.2:
+
dependencies:
+
call-bound: 1.0.3
+
is-array-buffer: 3.0.5
+
+
array-union@2.1.0: {}
+
+
arraybuffer.prototype.slice@1.0.4:
+
dependencies:
+
array-buffer-byte-length: 1.0.2
+
call-bind: 1.0.8
+
define-properties: 1.2.1
+
es-abstract: 1.23.9
+
es-errors: 1.3.0
+
get-intrinsic: 1.2.7
+
is-array-buffer: 3.0.5
+
+
async-function@1.0.0: {}
+
+
available-typed-arrays@1.0.7:
+
dependencies:
+
possible-typed-array-names: 1.0.0
+
+
balanced-match@1.0.2: {}
+
+
better-path-resolve@1.0.0:
+
dependencies:
+
is-windows: 1.0.2
+
+
brace-expansion@1.1.11:
+
dependencies:
+
balanced-match: 1.0.2
+
concat-map: 0.0.1
+
+
brace-expansion@2.0.1:
+
dependencies:
+
balanced-match: 1.0.2
+
+
braces@3.0.3:
+
dependencies:
+
fill-range: 7.1.1
+
+
browserslist@4.24.4:
+
dependencies:
+
caniuse-lite: 1.0.30001696
+
electron-to-chromium: 1.5.90
+
node-releases: 2.0.19
+
update-browserslist-db: 1.1.2(browserslist@4.24.4)
+
+
buffer-from@1.1.2: {}
+
+
call-bind-apply-helpers@1.0.1:
+
dependencies:
+
es-errors: 1.3.0
+
function-bind: 1.1.2
+
+
call-bind@1.0.8:
+
dependencies:
+
call-bind-apply-helpers: 1.0.1
+
es-define-property: 1.0.1
+
get-intrinsic: 1.2.7
+
set-function-length: 1.2.2
+
+
call-bound@1.0.3:
+
dependencies:
+
call-bind-apply-helpers: 1.0.1
+
get-intrinsic: 1.2.7
+
+
caniuse-lite@1.0.30001696: {}
+
+
chalk@2.4.2:
+
dependencies:
+
ansi-styles: 3.2.1
+
escape-string-regexp: 1.0.5
+
supports-color: 5.5.0
+
+
chalk@5.4.1: {}
+
+
chardet@0.7.0: {}
+
+
ci-info@3.9.0: {}
+
+
cjs-module-lexer@1.4.2: {}
+
+
cli-cursor@5.0.0:
+
dependencies:
+
restore-cursor: 5.1.0
+
+
cli-truncate@4.0.0:
+
dependencies:
+
slice-ansi: 5.0.0
+
string-width: 7.2.0
+
+
color-convert@1.9.3:
+
dependencies:
+
color-name: 1.1.3
+
+
color-convert@2.0.1:
+
dependencies:
+
color-name: 1.1.4
+
+
color-name@1.1.3: {}
+
+
color-name@1.1.4: {}
+
+
colorette@2.0.20: {}
+
+
commander@13.1.0: {}
+
+
commander@2.20.3: {}
+
+
commondir@1.0.1: {}
+
+
concat-map@0.0.1: {}
+
+
convert-source-map@2.0.0: {}
+
+
cross-spawn@6.0.6:
+
dependencies:
+
nice-try: 1.0.5
+
path-key: 2.0.1
+
semver: 5.7.2
+
shebang-command: 1.2.0
+
which: 1.3.1
+
+
cross-spawn@7.0.6:
+
dependencies:
+
path-key: 3.1.1
+
shebang-command: 2.0.0
+
which: 2.0.2
+
+
data-view-buffer@1.0.2:
+
dependencies:
+
call-bound: 1.0.3
+
es-errors: 1.3.0
+
is-data-view: 1.0.2
+
+
data-view-byte-length@1.0.2:
+
dependencies:
+
call-bound: 1.0.3
+
es-errors: 1.3.0
+
is-data-view: 1.0.2
+
+
data-view-byte-offset@1.0.1:
+
dependencies:
+
call-bound: 1.0.3
+
es-errors: 1.3.0
+
is-data-view: 1.0.2
+
+
dataloader@1.4.0: {}
+
+
debug@4.4.0:
+
dependencies:
+
ms: 2.1.3
+
+
deepmerge@4.3.1: {}
+
+
define-data-property@1.1.4:
+
dependencies:
+
es-define-property: 1.0.1
+
es-errors: 1.3.0
+
gopd: 1.2.0
+
+
define-properties@1.2.1:
+
dependencies:
+
define-data-property: 1.1.4
+
has-property-descriptors: 1.0.2
+
object-keys: 1.1.1
+
+
detect-indent@6.1.0: {}
+
+
dir-glob@3.0.1:
+
dependencies:
+
path-type: 4.0.0
+
+
dotenv@16.4.7: {}
+
+
dunder-proto@1.0.1:
+
dependencies:
+
call-bind-apply-helpers: 1.0.1
+
es-errors: 1.3.0
+
gopd: 1.2.0
+
+
eastasianwidth@0.2.0: {}
+
+
electron-to-chromium@1.5.90: {}
+
+
emoji-regex@10.4.0: {}
+
+
emoji-regex@8.0.0: {}
+
+
emoji-regex@9.2.2: {}
+
+
enquirer@2.4.1:
+
dependencies:
+
ansi-colors: 4.1.3
+
strip-ansi: 6.0.1
+
+
environment@1.1.0: {}
+
+
error-ex@1.3.2:
+
dependencies:
+
is-arrayish: 0.2.1
+
+
es-abstract@1.23.9:
+
dependencies:
+
array-buffer-byte-length: 1.0.2
+
arraybuffer.prototype.slice: 1.0.4
+
available-typed-arrays: 1.0.7
+
call-bind: 1.0.8
+
call-bound: 1.0.3
+
data-view-buffer: 1.0.2
+
data-view-byte-length: 1.0.2
+
data-view-byte-offset: 1.0.1
+
es-define-property: 1.0.1
+
es-errors: 1.3.0
+
es-object-atoms: 1.1.1
+
es-set-tostringtag: 2.1.0
+
es-to-primitive: 1.3.0
+
function.prototype.name: 1.1.8
+
get-intrinsic: 1.2.7
+
get-proto: 1.0.1
+
get-symbol-description: 1.1.0
+
globalthis: 1.0.4
+
gopd: 1.2.0
+
has-property-descriptors: 1.0.2
+
has-proto: 1.2.0
+
has-symbols: 1.1.0
+
hasown: 2.0.2
+
internal-slot: 1.1.0
+
is-array-buffer: 3.0.5
+
is-callable: 1.2.7
+
is-data-view: 1.0.2
+
is-regex: 1.2.1
+
is-shared-array-buffer: 1.0.4
+
is-string: 1.1.1
+
is-typed-array: 1.1.15
+
is-weakref: 1.1.0
+
math-intrinsics: 1.1.0
+
object-inspect: 1.13.3
+
object-keys: 1.1.1
+
object.assign: 4.1.7
+
own-keys: 1.0.1
+
regexp.prototype.flags: 1.5.4
+
safe-array-concat: 1.1.3
+
safe-push-apply: 1.0.0
+
safe-regex-test: 1.1.0
+
set-proto: 1.0.0
+
string.prototype.trim: 1.2.10
+
string.prototype.trimend: 1.0.9
+
string.prototype.trimstart: 1.0.8
+
typed-array-buffer: 1.0.3
+
typed-array-byte-length: 1.0.3
+
typed-array-byte-offset: 1.0.4
+
typed-array-length: 1.0.7
+
unbox-primitive: 1.1.0
+
which-typed-array: 1.1.18
+
+
es-define-property@1.0.1: {}
+
+
es-errors@1.3.0: {}
+
+
es-object-atoms@1.1.1:
+
dependencies:
+
es-errors: 1.3.0
+
+
es-set-tostringtag@2.1.0:
+
dependencies:
+
es-errors: 1.3.0
+
get-intrinsic: 1.2.7
+
has-tostringtag: 1.0.2
+
hasown: 2.0.2
+
+
es-to-primitive@1.3.0:
+
dependencies:
+
is-callable: 1.2.7
+
is-date-object: 1.1.0
+
is-symbol: 1.1.1
+
+
escalade@3.2.0: {}
+
+
escape-string-regexp@1.0.5: {}
+
+
esprima@4.0.1: {}
+
+
estree-walker@2.0.2: {}
+
+
eventemitter3@5.0.1: {}
+
+
execa@8.0.1:
+
dependencies:
+
cross-spawn: 7.0.6
+
get-stream: 8.0.1
+
human-signals: 5.0.0
+
is-stream: 3.0.0
+
merge-stream: 2.0.0
+
npm-run-path: 5.3.0
+
onetime: 6.0.0
+
signal-exit: 4.1.0
+
strip-final-newline: 3.0.0
+
+
extendable-error@0.1.7: {}
+
+
external-editor@3.1.0:
+
dependencies:
+
chardet: 0.7.0
+
iconv-lite: 0.4.24
+
tmp: 0.0.33
+
+
fast-glob@3.3.3:
+
dependencies:
+
'@nodelib/fs.stat': 2.0.5
+
'@nodelib/fs.walk': 1.2.8
+
glob-parent: 5.1.2
+
merge2: 1.4.1
+
micromatch: 4.0.8
+
+
fastq@1.19.0:
+
dependencies:
+
reusify: 1.0.4
+
+
fdir@6.4.3(picomatch@4.0.2):
+
optionalDependencies:
+
picomatch: 4.0.2
+
+
fill-range@7.1.1:
+
dependencies:
+
to-regex-range: 5.0.1
+
+
find-up@4.1.0:
+
dependencies:
+
locate-path: 5.0.0
+
path-exists: 4.0.0
+
+
for-each@0.3.4:
+
dependencies:
+
is-callable: 1.2.7
+
+
foreground-child@3.3.0:
+
dependencies:
+
cross-spawn: 7.0.6
+
signal-exit: 4.1.0
+
+
fs-extra@7.0.1:
+
dependencies:
+
graceful-fs: 4.2.11
+
jsonfile: 4.0.0
+
universalify: 0.1.2
+
+
fs-extra@8.1.0:
+
dependencies:
+
graceful-fs: 4.2.11
+
jsonfile: 4.0.0
+
universalify: 0.1.2
+
+
fsevents@2.3.3:
+
optional: true
+
+
function-bind@1.1.2: {}
+
+
function.prototype.name@1.1.8:
+
dependencies:
+
call-bind: 1.0.8
+
call-bound: 1.0.3
+
define-properties: 1.2.1
+
functions-have-names: 1.2.3
+
hasown: 2.0.2
+
is-callable: 1.2.7
+
+
functions-have-names@1.2.3: {}
+
+
gensync@1.0.0-beta.2: {}
+
+
get-east-asian-width@1.3.0: {}
+
+
get-intrinsic@1.2.7:
+
dependencies:
+
call-bind-apply-helpers: 1.0.1
+
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
+
+
get-proto@1.0.1:
+
dependencies:
+
dunder-proto: 1.0.1
+
es-object-atoms: 1.1.1
+
+
get-stream@8.0.1: {}
+
+
get-symbol-description@1.1.0:
+
dependencies:
+
call-bound: 1.0.3
+
es-errors: 1.3.0
+
get-intrinsic: 1.2.7
+
+
glob-parent@5.1.2:
+
dependencies:
+
is-glob: 4.0.3
+
+
glob@11.0.1:
+
dependencies:
+
foreground-child: 3.3.0
+
jackspeak: 4.0.2
+
minimatch: 10.0.1
+
minipass: 7.1.2
+
package-json-from-dist: 1.0.1
+
path-scurry: 2.0.0
+
+
globals@11.12.0: {}
+
+
globalthis@1.0.4:
+
dependencies:
+
define-properties: 1.2.1
+
gopd: 1.2.0
+
+
globby@11.1.0:
+
dependencies:
+
array-union: 2.1.0
+
dir-glob: 3.0.1
+
fast-glob: 3.3.3
+
ignore: 5.3.2
+
merge2: 1.4.1
+
slash: 3.0.0
+
+
gopd@1.2.0: {}
+
+
graceful-fs@4.2.11: {}
+
+
has-bigints@1.1.0: {}
+
+
has-flag@3.0.0: {}
+
+
has-property-descriptors@1.0.2:
+
dependencies:
+
es-define-property: 1.0.1
+
+
has-proto@1.2.0:
+
dependencies:
+
dunder-proto: 1.0.1
+
+
has-symbols@1.1.0: {}
+
+
has-tostringtag@1.0.2:
+
dependencies:
+
has-symbols: 1.1.0
+
+
hasown@2.0.2:
+
dependencies:
+
function-bind: 1.1.2
+
+
hosted-git-info@2.8.9: {}
+
+
human-id@1.0.2: {}
+
+
human-signals@5.0.0: {}
+
+
iconv-lite@0.4.24:
+
dependencies:
+
safer-buffer: 2.1.2
+
+
ignore@5.3.2: {}
+
+
internal-slot@1.1.0:
+
dependencies:
+
es-errors: 1.3.0
+
hasown: 2.0.2
+
side-channel: 1.1.0
+
+
is-array-buffer@3.0.5:
+
dependencies:
+
call-bind: 1.0.8
+
call-bound: 1.0.3
+
get-intrinsic: 1.2.7
+
+
is-arrayish@0.2.1: {}
+
+
is-async-function@2.1.1:
+
dependencies:
+
async-function: 1.0.0
+
call-bound: 1.0.3
+
get-proto: 1.0.1
+
has-tostringtag: 1.0.2
+
safe-regex-test: 1.1.0
+
+
is-bigint@1.1.0:
+
dependencies:
+
has-bigints: 1.1.0
+
+
is-boolean-object@1.2.1:
+
dependencies:
+
call-bound: 1.0.3
+
has-tostringtag: 1.0.2
+
+
is-callable@1.2.7: {}
+
+
is-core-module@2.16.1:
+
dependencies:
+
hasown: 2.0.2
+
+
is-data-view@1.0.2:
+
dependencies:
+
call-bound: 1.0.3
+
get-intrinsic: 1.2.7
+
is-typed-array: 1.1.15
+
+
is-date-object@1.1.0:
+
dependencies:
+
call-bound: 1.0.3
+
has-tostringtag: 1.0.2
+
+
is-extglob@2.1.1: {}
+
+
is-finalizationregistry@1.1.1:
+
dependencies:
+
call-bound: 1.0.3
+
+
is-fullwidth-code-point@3.0.0: {}
+
+
is-fullwidth-code-point@4.0.0: {}
+
+
is-fullwidth-code-point@5.0.0:
+
dependencies:
+
get-east-asian-width: 1.3.0
+
+
is-generator-function@1.1.0:
+
dependencies:
+
call-bound: 1.0.3
+
get-proto: 1.0.1
+
has-tostringtag: 1.0.2
+
safe-regex-test: 1.1.0
+
+
is-glob@4.0.3:
+
dependencies:
+
is-extglob: 2.1.1
+
+
is-map@2.0.3: {}
+
+
is-module@1.0.0: {}
+
+
is-number-object@1.1.1:
+
dependencies:
+
call-bound: 1.0.3
+
has-tostringtag: 1.0.2
+
+
is-number@7.0.0: {}
+
+
is-reference@1.2.1:
+
dependencies:
+
'@types/estree': 1.0.6
+
+
is-regex@1.2.1:
+
dependencies:
+
call-bound: 1.0.3
+
gopd: 1.2.0
+
has-tostringtag: 1.0.2
+
hasown: 2.0.2
+
+
is-set@2.0.3: {}
+
+
is-shared-array-buffer@1.0.4:
+
dependencies:
+
call-bound: 1.0.3
+
+
is-stream@3.0.0: {}
+
+
is-string@1.1.1:
+
dependencies:
+
call-bound: 1.0.3
+
has-tostringtag: 1.0.2
+
+
is-subdir@1.2.0:
+
dependencies:
+
better-path-resolve: 1.0.0
+
+
is-symbol@1.1.1:
+
dependencies:
+
call-bound: 1.0.3
+
has-symbols: 1.1.0
+
safe-regex-test: 1.1.0
+
+
is-typed-array@1.1.15:
+
dependencies:
+
which-typed-array: 1.1.18
+
+
is-weakmap@2.0.2: {}
+
+
is-weakref@1.1.0:
+
dependencies:
+
call-bound: 1.0.3
+
+
is-weakset@2.0.4:
+
dependencies:
+
call-bound: 1.0.3
+
get-intrinsic: 1.2.7
+
+
is-windows@1.0.2: {}
+
+
isarray@2.0.5: {}
+
+
isexe@2.0.0: {}
+
+
jackspeak@4.0.2:
+
dependencies:
+
'@isaacs/cliui': 8.0.2
+
+
js-tokens@4.0.0: {}
+
+
js-yaml@3.14.1:
+
dependencies:
+
argparse: 1.0.10
+
esprima: 4.0.1
+
+
jsesc@3.1.0: {}
+
+
json-parse-better-errors@1.0.2: {}
+
+
json5@2.2.3: {}
+
+
jsonfile@4.0.0:
+
optionalDependencies:
+
graceful-fs: 4.2.11
+
+
lilconfig@3.1.3: {}
+
+
lint-staged@15.4.3:
+
dependencies:
+
chalk: 5.4.1
+
commander: 13.1.0
+
debug: 4.4.0
+
execa: 8.0.1
+
lilconfig: 3.1.3
+
listr2: 8.2.5
+
micromatch: 4.0.8
+
pidtree: 0.6.0
+
string-argv: 0.3.2
+
yaml: 2.7.0
+
transitivePeerDependencies:
+
- supports-color
+
+
listr2@8.2.5:
+
dependencies:
+
cli-truncate: 4.0.0
+
colorette: 2.0.20
+
eventemitter3: 5.0.1
+
log-update: 6.1.0
+
rfdc: 1.4.1
+
wrap-ansi: 9.0.0
+
+
load-json-file@4.0.0:
+
dependencies:
+
graceful-fs: 4.2.11
+
parse-json: 4.0.0
+
pify: 3.0.0
+
strip-bom: 3.0.0
+
+
locate-path@5.0.0:
+
dependencies:
+
p-locate: 4.1.0
+
+
lodash.startcase@4.4.0: {}
+
+
log-update@6.1.0:
+
dependencies:
+
ansi-escapes: 7.0.0
+
cli-cursor: 5.0.0
+
slice-ansi: 7.1.0
+
strip-ansi: 7.1.0
+
wrap-ansi: 9.0.0
+
+
lru-cache@11.0.2: {}
+
+
lru-cache@5.1.1:
+
dependencies:
+
yallist: 3.1.1
+
+
magic-string@0.30.17:
+
dependencies:
+
'@jridgewell/sourcemap-codec': 1.5.0
+
+
math-intrinsics@1.1.0: {}
+
+
memorystream@0.3.1: {}
+
+
merge-stream@2.0.0: {}
+
+
merge2@1.4.1: {}
+
+
micromatch@4.0.8:
+
dependencies:
+
braces: 3.0.3
+
picomatch: 2.3.1
+
+
mimic-fn@4.0.0: {}
+
+
mimic-function@5.0.1: {}
+
+
minimatch@10.0.1:
+
dependencies:
+
brace-expansion: 2.0.1
+
+
minimatch@3.1.2:
+
dependencies:
+
brace-expansion: 1.1.11
+
+
minipass@7.1.2: {}
+
+
mri@1.2.0: {}
+
+
ms@2.1.3: {}
+
+
nice-try@1.0.5: {}
+
+
node-fetch@2.7.0:
+
dependencies:
+
whatwg-url: 5.0.0
+
+
node-releases@2.0.19: {}
+
+
normalize-package-data@2.5.0:
+
dependencies:
+
hosted-git-info: 2.8.9
+
resolve: 1.22.10
+
semver: 5.7.2
+
validate-npm-package-license: 3.0.4
+
+
npm-run-all@4.1.5:
+
dependencies:
+
ansi-styles: 3.2.1
+
chalk: 2.4.2
+
cross-spawn: 6.0.6
+
memorystream: 0.3.1
+
minimatch: 3.1.2
+
pidtree: 0.3.1
+
read-pkg: 3.0.0
+
shell-quote: 1.8.2
+
string.prototype.padend: 3.1.6
+
+
npm-run-path@5.3.0:
+
dependencies:
+
path-key: 4.0.0
+
+
object-inspect@1.13.3: {}
+
+
object-keys@1.1.1: {}
+
+
object.assign@4.1.7:
+
dependencies:
+
call-bind: 1.0.8
+
call-bound: 1.0.3
+
define-properties: 1.2.1
+
es-object-atoms: 1.1.1
+
has-symbols: 1.1.0
+
object-keys: 1.1.1
+
+
onetime@6.0.0:
+
dependencies:
+
mimic-fn: 4.0.0
+
+
onetime@7.0.0:
+
dependencies:
+
mimic-function: 5.0.1
+
+
os-tmpdir@1.0.2: {}
+
+
outdent@0.5.0: {}
+
+
own-keys@1.0.1:
+
dependencies:
+
get-intrinsic: 1.2.7
+
object-keys: 1.1.1
+
safe-push-apply: 1.0.0
+
+
p-filter@2.1.0:
+
dependencies:
+
p-map: 2.1.0
+
+
p-limit@2.3.0:
+
dependencies:
+
p-try: 2.2.0
+
+
p-locate@4.1.0:
+
dependencies:
+
p-limit: 2.3.0
+
+
p-map@2.1.0: {}
+
+
p-try@2.2.0: {}
+
+
package-json-from-dist@1.0.1: {}
+
+
package-manager-detector@0.2.9: {}
+
+
parse-json@4.0.0:
+
dependencies:
+
error-ex: 1.3.2
+
json-parse-better-errors: 1.0.2
+
+
path-exists@4.0.0: {}
+
+
path-key@2.0.1: {}
+
+
path-key@3.1.1: {}
+
+
path-key@4.0.0: {}
+
+
path-parse@1.0.7: {}
+
+
path-scurry@2.0.0:
+
dependencies:
+
lru-cache: 11.0.2
+
minipass: 7.1.2
+
+
path-type@3.0.0:
+
dependencies:
+
pify: 3.0.0
+
+
path-type@4.0.0: {}
+
+
picocolors@1.1.1: {}
+
+
picomatch@2.3.1: {}
+
+
picomatch@4.0.2: {}
+
+
pidtree@0.3.1: {}
+
+
pidtree@0.6.0: {}
+
+
pify@3.0.0: {}
+
+
pify@4.0.1: {}
+
+
possible-typed-array-names@1.0.0: {}
+
+
prettier@2.8.8: {}
+
+
prettier@3.4.2: {}
+
+
queue-microtask@1.2.3: {}
+
+
randombytes@2.1.0:
+
dependencies:
+
safe-buffer: 5.2.1
+
+
read-pkg@3.0.0:
+
dependencies:
+
load-json-file: 4.0.0
+
normalize-package-data: 2.5.0
+
path-type: 3.0.0
+
+
read-yaml-file@1.1.0:
+
dependencies:
+
graceful-fs: 4.2.11
+
js-yaml: 3.14.1
+
pify: 4.0.1
+
strip-bom: 3.0.0
+
+
reflect.getprototypeof@1.0.10:
+
dependencies:
+
call-bind: 1.0.8
+
define-properties: 1.2.1
+
es-abstract: 1.23.9
+
es-errors: 1.3.0
+
es-object-atoms: 1.1.1
+
get-intrinsic: 1.2.7
+
get-proto: 1.0.1
+
which-builtin-type: 1.2.1
+
+
regenerator-runtime@0.14.1: {}
+
+
regexp.prototype.flags@1.5.4:
+
dependencies:
+
call-bind: 1.0.8
+
define-properties: 1.2.1
+
es-errors: 1.3.0
+
get-proto: 1.0.1
+
gopd: 1.2.0
+
set-function-name: 2.0.2
+
+
resolve-from@5.0.0: {}
+
+
resolve@1.22.10:
+
dependencies:
+
is-core-module: 2.16.1
+
path-parse: 1.0.7
+
supports-preserve-symlinks-flag: 1.0.0
+
+
restore-cursor@5.1.0:
+
dependencies:
+
onetime: 7.0.0
+
signal-exit: 4.1.0
+
+
reusify@1.0.4: {}
+
+
rfdc@1.4.1: {}
+
+
rimraf@6.0.1:
+
dependencies:
+
glob: 11.0.1
+
package-json-from-dist: 1.0.1
+
+
rollup-plugin-cjs-check@1.0.3(rollup@4.32.1):
+
dependencies:
+
'@rollup/pluginutils': 5.1.4(rollup@4.32.1)
+
cjs-module-lexer: 1.4.2
+
rollup: 4.32.1
+
+
rollup-plugin-dts@6.1.1(rollup@4.32.1)(typescript@5.7.3):
+
dependencies:
+
magic-string: 0.30.17
+
rollup: 4.32.1
+
typescript: 5.7.3
+
optionalDependencies:
+
'@babel/code-frame': 7.26.2
+
+
rollup@4.32.1:
+
dependencies:
+
'@types/estree': 1.0.6
+
optionalDependencies:
+
'@rollup/rollup-android-arm-eabi': 4.32.1
+
'@rollup/rollup-android-arm64': 4.32.1
+
'@rollup/rollup-darwin-arm64': 4.32.1
+
'@rollup/rollup-darwin-x64': 4.32.1
+
'@rollup/rollup-freebsd-arm64': 4.32.1
+
'@rollup/rollup-freebsd-x64': 4.32.1
+
'@rollup/rollup-linux-arm-gnueabihf': 4.32.1
+
'@rollup/rollup-linux-arm-musleabihf': 4.32.1
+
'@rollup/rollup-linux-arm64-gnu': 4.32.1
+
'@rollup/rollup-linux-arm64-musl': 4.32.1
+
'@rollup/rollup-linux-loongarch64-gnu': 4.32.1
+
'@rollup/rollup-linux-powerpc64le-gnu': 4.32.1
+
'@rollup/rollup-linux-riscv64-gnu': 4.32.1
+
'@rollup/rollup-linux-s390x-gnu': 4.32.1
+
'@rollup/rollup-linux-x64-gnu': 4.32.1
+
'@rollup/rollup-linux-x64-musl': 4.32.1
+
'@rollup/rollup-win32-arm64-msvc': 4.32.1
+
'@rollup/rollup-win32-ia32-msvc': 4.32.1
+
'@rollup/rollup-win32-x64-msvc': 4.32.1
+
fsevents: 2.3.3
+
+
run-parallel@1.2.0:
+
dependencies:
+
queue-microtask: 1.2.3
+
+
safe-array-concat@1.1.3:
+
dependencies:
+
call-bind: 1.0.8
+
call-bound: 1.0.3
+
get-intrinsic: 1.2.7
+
has-symbols: 1.1.0
+
isarray: 2.0.5
+
+
safe-buffer@5.2.1: {}
+
+
safe-push-apply@1.0.0:
+
dependencies:
+
es-errors: 1.3.0
+
isarray: 2.0.5
+
+
safe-regex-test@1.1.0:
+
dependencies:
+
call-bound: 1.0.3
+
es-errors: 1.3.0
+
is-regex: 1.2.1
+
+
safer-buffer@2.1.2: {}
+
+
semver@5.7.2: {}
+
+
semver@6.3.1: {}
+
+
semver@7.7.0: {}
+
+
serialize-javascript@6.0.2:
+
dependencies:
+
randombytes: 2.1.0
+
+
set-function-length@1.2.2:
+
dependencies:
+
define-data-property: 1.1.4
+
es-errors: 1.3.0
+
function-bind: 1.1.2
+
get-intrinsic: 1.2.7
+
gopd: 1.2.0
+
has-property-descriptors: 1.0.2
+
+
set-function-name@2.0.2:
+
dependencies:
+
define-data-property: 1.1.4
+
es-errors: 1.3.0
+
functions-have-names: 1.2.3
+
has-property-descriptors: 1.0.2
+
+
set-proto@1.0.0:
+
dependencies:
+
dunder-proto: 1.0.1
+
es-errors: 1.3.0
+
es-object-atoms: 1.1.1
+
+
shebang-command@1.2.0:
+
dependencies:
+
shebang-regex: 1.0.0
+
+
shebang-command@2.0.0:
+
dependencies:
+
shebang-regex: 3.0.0
+
+
shebang-regex@1.0.0: {}
+
+
shebang-regex@3.0.0: {}
+
+
shell-quote@1.8.2: {}
+
+
side-channel-list@1.0.0:
+
dependencies:
+
es-errors: 1.3.0
+
object-inspect: 1.13.3
+
+
side-channel-map@1.0.1:
+
dependencies:
+
call-bound: 1.0.3
+
es-errors: 1.3.0
+
get-intrinsic: 1.2.7
+
object-inspect: 1.13.3
+
+
side-channel-weakmap@1.0.2:
+
dependencies:
+
call-bound: 1.0.3
+
es-errors: 1.3.0
+
get-intrinsic: 1.2.7
+
object-inspect: 1.13.3
+
side-channel-map: 1.0.1
+
+
side-channel@1.1.0:
+
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
+
+
signal-exit@4.1.0: {}
+
+
slash@3.0.0: {}
+
+
slice-ansi@5.0.0:
+
dependencies:
+
ansi-styles: 6.2.1
+
is-fullwidth-code-point: 4.0.0
+
+
slice-ansi@7.1.0:
+
dependencies:
+
ansi-styles: 6.2.1
+
is-fullwidth-code-point: 5.0.0
+
+
smob@1.5.0: {}
+
+
source-map-support@0.5.21:
+
dependencies:
+
buffer-from: 1.1.2
+
source-map: 0.6.1
+
+
source-map@0.6.1: {}
+
+
spawndamnit@3.0.1:
+
dependencies:
+
cross-spawn: 7.0.6
+
signal-exit: 4.1.0
+
+
spdx-correct@3.2.0:
+
dependencies:
+
spdx-expression-parse: 3.0.1
+
spdx-license-ids: 3.0.21
+
+
spdx-exceptions@2.5.0: {}
+
+
spdx-expression-parse@3.0.1:
+
dependencies:
+
spdx-exceptions: 2.5.0
+
spdx-license-ids: 3.0.21
+
+
spdx-license-ids@3.0.21: {}
+
+
sprintf-js@1.0.3: {}
+
+
string-argv@0.3.2: {}
+
+
string-width@4.2.3:
+
dependencies:
+
emoji-regex: 8.0.0
+
is-fullwidth-code-point: 3.0.0
+
strip-ansi: 6.0.1
+
+
string-width@5.1.2:
+
dependencies:
+
eastasianwidth: 0.2.0
+
emoji-regex: 9.2.2
+
strip-ansi: 7.1.0
+
+
string-width@7.2.0:
+
dependencies:
+
emoji-regex: 10.4.0
+
get-east-asian-width: 1.3.0
+
strip-ansi: 7.1.0
+
+
string.prototype.padend@3.1.6:
+
dependencies:
+
call-bind: 1.0.8
+
define-properties: 1.2.1
+
es-abstract: 1.23.9
+
es-object-atoms: 1.1.1
+
+
string.prototype.trim@1.2.10:
+
dependencies:
+
call-bind: 1.0.8
+
call-bound: 1.0.3
+
define-data-property: 1.1.4
+
define-properties: 1.2.1
+
es-abstract: 1.23.9
+
es-object-atoms: 1.1.1
+
has-property-descriptors: 1.0.2
+
+
string.prototype.trimend@1.0.9:
+
dependencies:
+
call-bind: 1.0.8
+
call-bound: 1.0.3
+
define-properties: 1.2.1
+
es-object-atoms: 1.1.1
+
+
string.prototype.trimstart@1.0.8:
+
dependencies:
+
call-bind: 1.0.8
+
define-properties: 1.2.1
+
es-object-atoms: 1.1.1
+
+
strip-ansi@6.0.1:
+
dependencies:
+
ansi-regex: 5.0.1
+
+
strip-ansi@7.1.0:
+
dependencies:
+
ansi-regex: 6.1.0
+
+
strip-bom@3.0.0: {}
+
+
strip-final-newline@3.0.0: {}
+
+
supports-color@5.5.0:
+
dependencies:
+
has-flag: 3.0.0
+
+
supports-preserve-symlinks-flag@1.0.0: {}
+
+
term-size@2.2.1: {}
+
+
terser@5.37.0:
+
dependencies:
+
'@jridgewell/source-map': 0.3.6
+
acorn: 8.14.0
+
commander: 2.20.3
+
source-map-support: 0.5.21
+
+
tmp@0.0.33:
+
dependencies:
+
os-tmpdir: 1.0.2
+
+
to-regex-range@5.0.1:
+
dependencies:
+
is-number: 7.0.0
+
+
tr46@0.0.3: {}
+
+
typed-array-buffer@1.0.3:
+
dependencies:
+
call-bound: 1.0.3
+
es-errors: 1.3.0
+
is-typed-array: 1.1.15
+
+
typed-array-byte-length@1.0.3:
+
dependencies:
+
call-bind: 1.0.8
+
for-each: 0.3.4
+
gopd: 1.2.0
+
has-proto: 1.2.0
+
is-typed-array: 1.1.15
+
+
typed-array-byte-offset@1.0.4:
+
dependencies:
+
available-typed-arrays: 1.0.7
+
call-bind: 1.0.8
+
for-each: 0.3.4
+
gopd: 1.2.0
+
has-proto: 1.2.0
+
is-typed-array: 1.1.15
+
reflect.getprototypeof: 1.0.10
+
+
typed-array-length@1.0.7:
+
dependencies:
+
call-bind: 1.0.8
+
for-each: 0.3.4
+
gopd: 1.2.0
+
is-typed-array: 1.1.15
+
possible-typed-array-names: 1.0.0
+
reflect.getprototypeof: 1.0.10
+
+
typescript@5.7.3: {}
+
+
unbox-primitive@1.1.0:
+
dependencies:
+
call-bound: 1.0.3
+
has-bigints: 1.1.0
+
has-symbols: 1.1.0
+
which-boxed-primitive: 1.1.1
+
+
undici-types@6.20.0: {}
+
+
universalify@0.1.2: {}
+
+
update-browserslist-db@1.1.2(browserslist@4.24.4):
+
dependencies:
+
browserslist: 4.24.4
+
escalade: 3.2.0
+
picocolors: 1.1.1
+
+
validate-npm-package-license@3.0.4:
+
dependencies:
+
spdx-correct: 3.2.0
+
spdx-expression-parse: 3.0.1
+
+
webidl-conversions@3.0.1: {}
+
+
whatwg-url@5.0.0:
+
dependencies:
+
tr46: 0.0.3
+
webidl-conversions: 3.0.1
+
+
which-boxed-primitive@1.1.1:
+
dependencies:
+
is-bigint: 1.1.0
+
is-boolean-object: 1.2.1
+
is-number-object: 1.1.1
+
is-string: 1.1.1
+
is-symbol: 1.1.1
+
+
which-builtin-type@1.2.1:
+
dependencies:
+
call-bound: 1.0.3
+
function.prototype.name: 1.1.8
+
has-tostringtag: 1.0.2
+
is-async-function: 2.1.1
+
is-date-object: 1.1.0
+
is-finalizationregistry: 1.1.1
+
is-generator-function: 1.1.0
+
is-regex: 1.2.1
+
is-weakref: 1.1.0
+
isarray: 2.0.5
+
which-boxed-primitive: 1.1.1
+
which-collection: 1.0.2
+
which-typed-array: 1.1.18
+
+
which-collection@1.0.2:
+
dependencies:
+
is-map: 2.0.3
+
is-set: 2.0.3
+
is-weakmap: 2.0.2
+
is-weakset: 2.0.4
+
+
which-typed-array@1.1.18:
+
dependencies:
+
available-typed-arrays: 1.0.7
+
call-bind: 1.0.8
+
call-bound: 1.0.3
+
for-each: 0.3.4
+
gopd: 1.2.0
+
has-tostringtag: 1.0.2
+
+
which@1.3.1:
+
dependencies:
+
isexe: 2.0.0
+
+
which@2.0.2:
+
dependencies:
+
isexe: 2.0.0
+
+
wrap-ansi@7.0.0:
+
dependencies:
+
ansi-styles: 4.3.0
+
string-width: 4.2.3
+
strip-ansi: 6.0.1
+
+
wrap-ansi@8.1.0:
+
dependencies:
+
ansi-styles: 6.2.1
+
string-width: 5.1.2
+
strip-ansi: 7.1.0
+
+
wrap-ansi@9.0.0:
+
dependencies:
+
ansi-styles: 6.2.1
+
string-width: 7.2.0
+
strip-ansi: 7.1.0
+
+
yallist@3.1.1: {}
+
+
yaml@2.7.0: {}
+125
scripts/changelog.js
···
+
const { config } = require('dotenv');
+
const { getInfo } = require('@changesets/get-github-info');
+
+
config();
+
+
const REPO = 'kitten/lan-network';
+
const SEE_LINE = /^See:\s*(.*)/i;
+
const TRAILING_CHAR = /[.;:]$/g;
+
const listFormatter = new Intl.ListFormat('en-US');
+
+
const getSummaryLines = cs => {
+
let lines = cs.summary.trim().split(/\r?\n/);
+
if (!lines.some(line => /```/.test(line))) {
+
lines = lines.map(l => l.trim()).filter(Boolean);
+
const size = lines.length;
+
if (size > 0) {
+
lines[size - 1] = lines[size - 1].replace(TRAILING_CHAR, '');
+
}
+
}
+
return lines;
+
};
+
+
/** Creates a "(See X)" string from a template */
+
const templateSeeRef = links => {
+
const humanReadableLinks = links.filter(Boolean).map(link => {
+
if (typeof link === 'string') return link;
+
return link.pull || link.commit;
+
});
+
+
const size = humanReadableLinks.length;
+
if (size === 0) return '';
+
+
const str = listFormatter.format(humanReadableLinks);
+
return `(See ${str})`;
+
};
+
+
const changelogFunctions = {
+
getDependencyReleaseLine: async (changesets, dependenciesUpdated) => {
+
if (dependenciesUpdated.length === 0) return '';
+
+
const dependenciesLinks = await Promise.all(
+
changesets.map(async cs => {
+
if (!cs.commit) return undefined;
+
+
const lines = getSummaryLines(cs);
+
const prLine = lines.find(line => SEE_LINE.test(line));
+
if (prLine) {
+
const match = prLine.match(SEE_LINE);
+
return (match && match[1].trim()) || undefined;
+
}
+
+
const { links } = await getInfo({
+
repo: REPO,
+
commit: cs.commit,
+
});
+
+
return links;
+
})
+
);
+
+
let changesetLink = '- Updated dependencies';
+
+
const seeRef = templateSeeRef(dependenciesLinks);
+
if (seeRef) changesetLink += ` ${seeRef}`;
+
+
const detailsLinks = dependenciesUpdated.map(dep => {
+
return ` - ${dep.name}@${dep.newVersion}`;
+
});
+
+
return [changesetLink, ...detailsLinks].join('\n');
+
},
+
getReleaseLine: async (changeset, type) => {
+
let pull, commit, user;
+
+
const lines = getSummaryLines(changeset);
+
const prLineIndex = lines.findIndex(line => SEE_LINE.test(line));
+
if (prLineIndex > -1) {
+
const match = lines[prLineIndex].match(SEE_LINE);
+
pull = (match && match[1].trim()) || undefined;
+
lines.splice(prLineIndex, 1);
+
}
+
+
const [firstLine, ...futureLines] = lines;
+
+
if (changeset.commit && !pull) {
+
const { links } = await getInfo({
+
repo: REPO,
+
commit: changeset.commit,
+
});
+
+
pull = links.pull || undefined;
+
commit = links.commit || undefined;
+
user = links.user || undefined;
+
}
+
+
let annotation = '';
+
if (type === 'patch' && /^\s*fix/i.test(firstLine)) {
+
annotation = '⚠️ ';
+
}
+
+
let str = `- ${annotation}${firstLine}`;
+
if (futureLines.length > 0) {
+
str += `\n${futureLines.map(l => ` ${l}`).join('\n')}`;
+
}
+
+
const endsWithParagraph = /(?<=(?:[!;?.]|```) *)$/g;
+
if (user && !endsWithParagraph) {
+
str += `, by ${user}`;
+
} else {
+
str += `\nSubmitted by ${user}`;
+
}
+
+
if (pull || commit) {
+
const seeRef = templateSeeRef([pull || commit]);
+
if (seeRef) str += ` ${seeRef}`;
+
}
+
+
return str;
+
},
+
};
+
+
module.exports = {
+
...changelogFunctions,
+
default: changelogFunctions,
+
};
+12
scripts/prepare.js
···
+
const path = require('path');
+
const fs = require('fs');
+
+
const precommit = path.resolve(__dirname, '../.git/hooks/pre-commit');
+
+
const hook = `
+
#!/bin/sh
+
pnpm exec lint-staged --quiet --relative
+
`.trim();
+
+
fs.writeFileSync(precommit, hook);
+
fs.chmodSync(precommit, '755');
+283
scripts/rollup.config.mjs
···
+
import fs from 'node:fs/promises';
+
import path from 'node:path/posix';
+
import { fileURLToPath } from 'node:url';
+
import { readFileSync } from 'node:fs';
+
import { createRequire, isBuiltin } from 'node:module';
+
+
import * as prettier from 'prettier';
+
import commonjs from '@rollup/plugin-commonjs';
+
import resolve from '@rollup/plugin-node-resolve';
+
import babel from '@rollup/plugin-babel';
+
import terser from '@rollup/plugin-terser';
+
import cjsCheck from 'rollup-plugin-cjs-check';
+
import dts from 'rollup-plugin-dts';
+
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
+
+
const normalize = name => []
+
.concat(name)
+
.join(' ')
+
.replace(/[@\s/.]+/g, ' ')
+
.trim()
+
.replace(/\s+/, '-')
+
.toLowerCase();
+
+
const extension = name => {
+
if (/\.d.ts$/.test(name)) {
+
return '.d.ts';
+
} else {
+
return path.extname(name);
+
}
+
};
+
+
const meta = JSON.parse(readFileSync('package.json'));
+
const name = normalize(meta.name);
+
+
const externalModules = [
+
...Object.keys(meta.dependencies || {}),
+
...Object.keys(meta.peerDependencies || {}),
+
];
+
+
const moduleRe = /^(?!node:|[.{1,2}\/])(@[\w.-]+\/)?[\w.-]+/;
+
const externalRe = new RegExp(`^(${externalModules.join('|')})($|/)`);
+
+
const exports = {};
+
for (const key in meta.exports) {
+
const entry = meta.exports[key];
+
if (typeof entry === 'object' && !!entry.source) {
+
const entryPath = normalize(key);
+
const entryName = normalize([name, entryPath]);
+
exports[entryName] = {
+
path: entryPath,
+
...entry,
+
};
+
}
+
}
+
+
const externals = new Set();
+
+
const commonConfig = {
+
input: Object.entries(exports).reduce((input, [exportName, entry]) => {
+
input[exportName] = entry.source;
+
return input;
+
}, {}),
+
onwarn: () => {},
+
external(id) {
+
const isExternal = isBuiltin(id) || (externalModules.length && externalRe.test(id));
+
if (!isExternal && moduleRe.test(id))
+
externals.add(id);
+
return isExternal;
+
},
+
treeshake: {
+
unknownGlobalSideEffects: false,
+
tryCatchDeoptimization: false,
+
moduleSideEffects: false,
+
},
+
};
+
+
const commonPlugins = [
+
resolve({
+
extensions: ['.mjs', '.js', '.ts'],
+
mainFields: ['module', 'jsnext', 'main'],
+
preferBuiltins: false,
+
browser: true,
+
}),
+
+
commonjs({
+
ignoreGlobal: true,
+
include: /\/node_modules\//,
+
}),
+
];
+
+
const commonOutput = {
+
dir: './',
+
exports: 'auto',
+
sourcemap: true,
+
sourcemapExcludeSources: false,
+
hoistTransitiveImports: false,
+
indent: false,
+
freeze: false,
+
strict: false,
+
generatedCode: {
+
preset: 'es5',
+
reservedNamesAsProps: false,
+
objectShorthand: false,
+
constBindings: false,
+
},
+
};
+
+
const outputPlugins = [
+
{
+
name: 'outputPackageJsons',
+
async writeBundle() {
+
for (const key in exports) {
+
const entry = exports[key];
+
if (entry.path) {
+
const output = path.relative(entry.path, process.cwd());
+
const json = JSON.stringify({
+
name: key,
+
private: true,
+
version: '0.0.0',
+
main: path.join(output, entry.require),
+
types: path.join(output, entry.types),
+
source: path.join(output, entry.source),
+
exports: {
+
'.': {
+
types: path.join(output, entry.types),
+
require: path.join(output, entry.require),
+
source: path.join(output, entry.source),
+
},
+
},
+
}, null, 2);
+
+
await fs.mkdir(entry.path, { recursive: true });
+
await fs.writeFile(path.join(entry.path, 'package.json'), json);
+
}
+
}
+
},
+
},
+
+
{
+
name: 'outputBundledLicenses',
+
async writeBundle() {
+
const require = createRequire(import.meta.url);
+
const rootLicense = path.join(__dirname, '../LICENSE.md');
+
const outputLicense = path.resolve('LICENSE.md');
+
if (rootLicense === outputLicense) return;
+
const licenses = new Map();
+
for (const packageName of [...externals].sort()) {
+
let license;
+
let metaPath;
+
let meta;
+
try {
+
metaPath = require.resolve(path.join(packageName, '/package.json'));
+
meta = require(metaPath);
+
} catch (_error) {
+
continue;
+
}
+
const packagePath = path.dirname(metaPath);
+
let licenseName = (await fs.readdir(packagePath).catch(() => []))
+
.find((name) => /^licen[sc]e/i.test(name));
+
if (!licenseName) {
+
const match = /^SEE LICENSE IN (.*)/i.exec(meta.license || '');
+
licenseName = match ? match[1] : meta.license;
+
}
+
try {
+
license = await fs.readFile(path.join(packagePath, licenseName), 'utf8');
+
} catch (_error) {
+
license = meta.author
+
? `${licenseName}, Copyright (c) ${meta.author.name || meta.author}`
+
: `${licenseName}, See license at: ${meta.repository.url || meta.repository}`;
+
}
+
licenses.set(packageName, license);
+
}
+
let output = (await fs.readFile(rootLicense, 'utf8')).trim();
+
for (const [packageName, licenseText] of licenses)
+
output += `\n\n## ${packageName}\n\n${licenseText.trim()}`;
+
await fs.writeFile(outputLicense, output);
+
},
+
},
+
+
cjsCheck(),
+
+
terser({
+
warnings: true,
+
ecma: 2015,
+
keep_fnames: true,
+
ie8: false,
+
compress: {
+
pure_getters: true,
+
toplevel: true,
+
booleans_as_integers: false,
+
keep_fnames: true,
+
keep_fargs: true,
+
if_return: false,
+
ie8: false,
+
sequences: false,
+
loops: false,
+
conditionals: false,
+
join_vars: false,
+
},
+
mangle: {
+
module: true,
+
keep_fnames: true,
+
},
+
output: {
+
beautify: true,
+
braces: true,
+
indent_level: 2,
+
},
+
}),
+
];
+
+
export default [
+
{
+
...commonConfig,
+
plugins: [
+
...commonPlugins,
+
babel({
+
babelrc: false,
+
babelHelpers: 'bundled',
+
extensions: ['mjs', 'js', 'jsx', 'ts', 'tsx'],
+
exclude: 'node_modules/**',
+
presets: [],
+
plugins: [
+
'@babel/plugin-transform-typescript',
+
'@babel/plugin-transform-block-scoping',
+
],
+
}),
+
],
+
output: {
+
...commonOutput,
+
format: 'cjs',
+
esModule: true,
+
externalLiveBindings: true,
+
chunkFileNames(chunk) {
+
return `dist/chunks/[name]-chunk${extension(chunk.name) || '.js'}`;
+
},
+
entryFileNames(chunk) {
+
return chunk.isEntry
+
? path.normalize(exports[chunk.name].require)
+
: `dist/[name].js`;
+
},
+
plugins: outputPlugins,
+
},
+
},
+
+
{
+
...commonConfig,
+
plugins: [
+
...commonPlugins,
+
dts(),
+
],
+
output: {
+
...commonOutput,
+
sourcemap: false,
+
format: 'dts',
+
chunkFileNames(chunk) {
+
return `dist/chunks/[name]-chunk${extension(chunk.name) || '.d.ts'}`;
+
},
+
entryFileNames(chunk) {
+
return chunk.isEntry
+
? path.normalize(exports[chunk.name].types)
+
: `dist/[name].d.ts`;
+
},
+
plugins: [
+
{
+
renderChunk(code, chunk) {
+
if (chunk.fileName.endsWith('d.ts')) {
+
return prettier.format(code, {
+
filepath: chunk.fileName,
+
parser: 'typescript',
+
singleQuote: true,
+
tabWidth: 2,
+
printWidth: 100,
+
trailingComma: 'es5',
+
});
+
}
+
},
+
},
+
],
+
},
+
},
+
];
+87
src/dhcp.ts
···
+
import { randomBytes } from 'node:crypto';
+
import { createSocket } from 'node:dgram';
+
import { parseIpStr, toIpStr, parseMacStr } from './network';
+
import type { NetworkAssignment } from './types';
+
+
class DHCPTimeoutError extends TypeError {
+
code = 'ETIMEDOUT';
+
}
+
+
const computeBroadcastAddress = (assignment: NetworkAssignment) => {
+
const address = parseIpStr(assignment.address);
+
const netmask = parseIpStr(assignment.netmask);
+
return toIpStr(address | ~netmask);
+
};
+
+
const dhcpDiscoverPacket = (macStr: string) => {
+
const MAC_ADDRESS = new Uint8Array(16);
+
MAC_ADDRESS.set(parseMacStr(macStr));
+
const packet = new Uint8Array(244);
+
const XID = randomBytes(4);
+
packet[0] = 1; // op = request
+
packet[1] = 1; // hw_type = ethernet
+
packet[2] = 6; // hw_len = ethernet
+
packet[3] = 0; // hops = 0
+
packet.set(XID, 4);
+
// elapsed = 0 seconds [2 bytes]
+
packet[10] = 0x80; // flags = broadcast discovery [2 bytes]
+
// client IP = null [4 bytes]
+
// own IP = null [4 bytes]
+
// server IP = null [4 bytes]
+
// gateway IP = null [4 bytes]
+
packet.set(MAC_ADDRESS, 28);
+
// sname = null [64 bytes]
+
// boot file = null [128 bytes]
+
packet.set([0x63, 0x82, 0x53, 0x63], 236); // Magic cookie
+
packet.set([0x35, 0x01, 0x01, 0xff], 240); // Trailer
+
return packet;
+
};
+
+
const DHCP_TIMEOUT = 250;
+
const DHCP_CLIENT_PORT = 68;
+
const DHCP_SERVER_PORT = 67;
+
+
export const dhcpDiscover = (
+
assignment: NetworkAssignment
+
): Promise<string> => {
+
return new Promise((resolve, reject) => {
+
const broadcastAddress = computeBroadcastAddress(assignment);
+
const packet = dhcpDiscoverPacket(assignment.mac);
+
const timeout = setTimeout(() => {
+
reject(
+
new DHCPTimeoutError(
+
`Received no reply to DHCPDISCOVER in ${DHCP_TIMEOUT}ms`
+
)
+
);
+
}, DHCP_TIMEOUT);
+
const socket = createSocket(
+
{ type: 'udp4', reuseAddr: true },
+
(_msg, rinfo) => {
+
clearTimeout(timeout);
+
resolve(rinfo.address);
+
socket.close();
+
socket.unref();
+
}
+
);
+
socket.on('error', error => {
+
clearTimeout(timeout);
+
reject(error);
+
socket.close();
+
socket.unref();
+
});
+
socket.bind(DHCP_CLIENT_PORT, () => {
+
socket.setBroadcast(true);
+
socket.setSendBufferSize(packet.length);
+
socket.send(
+
packet,
+
0,
+
packet.length,
+
DHCP_SERVER_PORT,
+
broadcastAddress,
+
error => {
+
if (error) reject(error);
+
}
+
);
+
});
+
});
+
};
+89
src/index.ts
···
+
import { spawnSync } from 'child_process';
+
import { dhcpDiscover } from './dhcp';
+
import { probeDefaultRoute } from './route';
+
import { interfaceAssignments, matchAssignment } from './network';
+
import type { GatewayAssignment } from './types';
+
+
const DEFAULT_ASSIGNMENT: GatewayAssignment = {
+
iname: 'lo0',
+
address: '127.0.0.1',
+
netmask: '255.0.0.0',
+
family: 'IPv4',
+
mac: '00:00:00:00:00:00',
+
internal: true,
+
cidr: '127.0.0.1/8',
+
gateway: null,
+
};
+
+
export async function lanNetwork(): Promise<GatewayAssignment> {
+
// Get IPv4 network assignments, sorted by:
+
// - external first
+
// - LAN-reserved IP range priority
+
// - address value
+
const assignments = interfaceAssignments();
+
if (!assignments.length) {
+
// If we have no assignments (which shouldn't ever happen, we make up a loopback interface)
+
return DEFAULT_ASSIGNMENT;
+
}
+
+
let assignment: GatewayAssignment | null;
+
+
// First, we attempt to probe the default route to a publicly routed IP
+
// This will generally fail if there's no route, e.g. if the network is offline
+
try {
+
const defaultRoute = await probeDefaultRoute();
+
// If this route matches a known assignment, return it without a gateway
+
if ((assignment = matchAssignment(assignments, defaultRoute))) {
+
return assignment;
+
}
+
} catch {
+
// Ignore errors, since we have a fallback method
+
}
+
+
// Second, attempt to discover a gateway's DHCP network
+
// Because without a gateway we won't get a reply, we do this in parallel
+
const discoveries = await Promise.allSettled(
+
assignments.map(assignment => {
+
// For each assignment, we send a DHCPDISCOVER packet to its network mask
+
return dhcpDiscover(assignment);
+
})
+
);
+
for (const discovery of discoveries) {
+
// The first discovered gateway is returned, if it matches an assignment
+
if (discovery.status === 'fulfilled' && discovery.value) {
+
const dhcpRoute = discovery.value;
+
if ((assignment = matchAssignment(assignments, dhcpRoute))) {
+
return assignment;
+
}
+
}
+
}
+
+
// As a fallback, we choose the first assignment, since they're ordered by likely candidates
+
// This may return 127.0.0.1, typically as a last resort
+
return { ...assignments[0], gateway: null };
+
}
+
+
export function lanNetworkSync(): GatewayAssignment {
+
const subprocessPath = require.resolve('lan-network/subprocess');
+
const { error, status, stdout } = spawnSync(
+
process.execPath,
+
[subprocessPath],
+
{
+
shell: false,
+
timeout: 500,
+
encoding: 'utf8',
+
windowsVerbatimArguments: false,
+
windowsHide: true,
+
}
+
);
+
if (status || error) {
+
return DEFAULT_ASSIGNMENT;
+
} else if (!status && typeof stdout === 'string') {
+
const json = JSON.parse(stdout.trim()) as GatewayAssignment;
+
return typeof json === 'object' && json && 'address' in json
+
? json
+
: DEFAULT_ASSIGNMENT;
+
} else {
+
return DEFAULT_ASSIGNMENT;
+
}
+
}
+74
src/network.ts
···
+
import { networkInterfaces } from 'node:os';
+
import type { GatewayAssignment, NetworkAssignment } from './types';
+
+
export const parseMacStr = (macStr: string): number[] =>
+
macStr
+
.split(':')
+
.slice(0, 16)
+
.map(seq => parseInt(seq, 16));
+
+
export const parseIpStr = (ipStr: string): number => {
+
const addr = ipStr
+
.split('.')
+
.slice(0, 4)
+
.map(seq => parseInt(seq, 10));
+
return addr[3] | (addr[2] << 8) | (addr[1] << 16) | (addr[0] << 24);
+
};
+
+
export const toIpStr = (addr: number): string => {
+
const MASK = (1 << 8) - 1;
+
let ipStr = '';
+
ipStr += `${((addr >>> 24) & MASK).toString(10)}.`;
+
ipStr += `${((addr >>> 16) & MASK).toString(10)}.`;
+
ipStr += `${((addr >>> 8) & MASK).toString(10)}.`;
+
ipStr += (addr & MASK).toString(10);
+
return ipStr;
+
};
+
+
const getSubnetPriority = (addr: string): number => {
+
if (addr.startsWith('192.')) return 5;
+
else if (addr.startsWith('172.')) return 4;
+
else if (addr.startsWith('10.')) return 3;
+
else if (addr.startsWith('100.')) return 2;
+
else if (addr.startsWith('127.')) return 1;
+
else return 0;
+
};
+
+
export const interfaceAssignments = (): NetworkAssignment[] => {
+
const candidates: NetworkAssignment[] = [];
+
const interfaces = networkInterfaces();
+
for (const iname in interfaces) {
+
const assignments = interfaces[iname];
+
if (!assignments) continue;
+
for (const assignment of assignments) {
+
if (assignment.family !== 'IPv4') continue;
+
candidates.push({ ...assignment, iname });
+
}
+
}
+
return candidates.sort((a, b) => {
+
const priorityA = getSubnetPriority(a.address);
+
const priorityB = getSubnetPriority(b.address);
+
// Prioritise external interfaces, then sort by priority,
+
// when priority is equal, sort by raw IP values
+
const sortBy =
+
+a.internal - +b.internal ||
+
priorityB - priorityA ||
+
parseIpStr(b.address) - parseIpStr(a.address);
+
return sortBy;
+
});
+
};
+
+
export const matchAssignment = (
+
candidates: NetworkAssignment[],
+
addr: string
+
): GatewayAssignment | null => {
+
const rawAddr = parseIpStr(addr);
+
for (const candidate of candidates) {
+
const candidateAddr = parseIpStr(candidate.address);
+
if (rawAddr === candidateAddr) return { ...candidate, gateway: null };
+
const mask = parseIpStr(candidate.netmask);
+
if ((rawAddr & mask) === (candidateAddr & mask))
+
return { ...candidate, gateway: addr };
+
}
+
return null;
+
};
+30
src/route.ts
···
+
import { createSocket } from 'dgram';
+
+
const NOOP_PORT = 65535;
+
const NOOP_IP = '255.255.255.255';
+
const NO_ROUTE_IP = '0.0.0.0';
+
+
class DefaultRouteError extends TypeError {
+
code = 'ECONNABORT';
+
}
+
+
export const probeDefaultRoute = (): Promise<string> => {
+
return new Promise((resolve, reject) => {
+
const socket = createSocket({ type: 'udp4', reuseAddr: true });
+
socket.on('error', error => {
+
reject(error);
+
socket.close();
+
socket.unref();
+
});
+
socket.connect(NOOP_PORT, NOOP_IP, () => {
+
const address = socket.address();
+
if (address && 'address' in address && address.address !== NO_ROUTE_IP) {
+
resolve(address.address);
+
} else {
+
reject(new DefaultRouteError('No route to host'));
+
}
+
socket.close();
+
socket.unref();
+
});
+
});
+
};
+9
src/subprocess.ts
···
+
import { lanNetwork } from './index';
+
+
async function output() {
+
const assignment = await lanNetwork();
+
process.stdout.write(JSON.stringify(assignment));
+
process.exit(0);
+
}
+
+
output();
+13
src/types.ts
···
+
export interface NetworkAssignment {
+
iname: string;
+
address: string;
+
netmask: string;
+
mac: string;
+
internal: boolean;
+
cidr: string | null;
+
family: 'IPv4';
+
}
+
+
export interface GatewayAssignment extends NetworkAssignment {
+
gateway: string | null;
+
}
+25
tsconfig.json
···
+
{
+
"compilerOptions": {
+
"types": ["@types/node"],
+
"baseUrl": "./",
+
"rootDir": ".",
+
"forceConsistentCasingInFileNames": true,
+
"importsNotUsedAsValues": "remove",
+
"noEmit": true,
+
"esModuleInterop": true,
+
"noUnusedLocals": true,
+
"allowJs": true,
+
"lib": ["es2016"],
+
"jsx": "react-jsx",
+
"module": "es2022",
+
"moduleResolution": "node",
+
"resolveJsonModule": true,
+
"target": "esnext",
+
"strict": true,
+
"noImplicitAny": false,
+
"noUnusedParameters": true,
+
"skipLibCheck": true,
+
"isolatedModules": true
+
},
+
"include": ["src", "packages"]
+
}