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

Configure Feed

Select the types of activity you want to include in your feed.

Initial Commit

+4506
+8
.changeset/README.md
··· 1 + # Changesets 2 + 3 + Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works 4 + with multi-package repos, or single-package repos to help you version and publish your code. You can 5 + find the full documentation for it [in our repository](https://github.com/changesets/changesets) 6 + 7 + We have a quick list of common questions to get you started engaging with this project in 8 + [our documentation](https://github.com/changesets/changesets/blob/master/docs/common-questions.md)
+16
.changeset/config.json
··· 1 + { 2 + "$schema": "https://unpkg.com/@changesets/config@0.3.0/schema.json", 3 + "changelog": "../scripts/changelog.js", 4 + "commit": false, 5 + "access": "public", 6 + "baseBranch": "main", 7 + "updateInternalDependencies": "minor", 8 + "snapshot": { 9 + "prereleaseTemplate": "{tag}-{commit}", 10 + "useCalculatedVersion": true 11 + }, 12 + "___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": { 13 + "onlyUpdatePeerDependentsWhenOutOfRange": true, 14 + "updateInternalDependents": "out-of-range" 15 + } 16 + }
+1
.gitattributes
··· 1 + * text=auto
+42
.github/workflows/ci.yml
··· 1 + name: CI 2 + 3 + on: 4 + pull_request: 5 + pull_request_review: 6 + types: [submitted, edited] 7 + branches: changeset-release/main 8 + push: 9 + branches: 10 + - main 11 + 12 + jobs: 13 + check: 14 + name: Checks 15 + runs-on: ubuntu-latest 16 + timeout-minutes: 10 17 + steps: 18 + - name: Checkout Repo 19 + uses: actions/checkout@v4 20 + with: 21 + fetch-depth: 0 22 + 23 + - name: Setup pnpm 24 + uses: pnpm/action-setup@v3 25 + with: 26 + version: 9 27 + run_install: false 28 + 29 + - name: Setup Node 30 + uses: actions/setup-node@v4 31 + with: 32 + node-version: ${{ matrix.node_version }} 33 + cache: 'pnpm' 34 + 35 + - name: Install Dependencies 36 + run: pnpm install --frozen-lockfile --prefer-offline 37 + 38 + - name: Type checks 39 + run: pnpm run check 40 + 41 + - name: Build 42 + run: pnpm run build
+60
.github/workflows/release.yml
··· 1 + name: Release 2 + on: 3 + push: 4 + branches: 5 + - main 6 + 7 + jobs: 8 + release: 9 + name: Release 10 + runs-on: ubuntu-20.04 11 + timeout-minutes: 20 12 + permissions: 13 + contents: write 14 + id-token: write 15 + issues: write 16 + repository-projects: write 17 + deployments: write 18 + packages: write 19 + pull-requests: write 20 + steps: 21 + - name: Checkout Repo 22 + uses: actions/checkout@v4 23 + with: 24 + fetch-depth: 0 25 + 26 + - name: Setup pnpm 27 + uses: pnpm/action-setup@v3 28 + with: 29 + version: 9 30 + run_install: false 31 + 32 + - name: Setup Node 33 + uses: actions/setup-node@v4 34 + with: 35 + node-version: 22 36 + cache: 'pnpm' 37 + 38 + - name: Install Dependencies 39 + run: pnpm install --frozen-lockfile --prefer-offline 40 + 41 + - name: PR or Publish 42 + id: changesets 43 + uses: changesets/action@v1.4.5 44 + with: 45 + version: pnpm changeset:version 46 + publish: pnpm changeset:publish 47 + env: 48 + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 49 + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 50 + 51 + - name: Publish Prerelease 52 + if: steps.changesets.outputs.published != 'true' 53 + env: 54 + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 55 + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 56 + run: | 57 + npm config set "//registry.npmjs.org/:_authToken" "$NPM_TOKEN" 58 + git reset --hard origin/main 59 + pnpm changeset version --no-git-tag --snapshot canary 60 + pnpm changeset publish --no-git-tag --snapshot canary --tag canary
+3
.gitignore
··· 1 + /subprocess 2 + node_modules 3 + dist
+5
CHANGELOG.md
··· 1 + # lan-network 2 + 3 + ## 0.1.0 4 + 5 + Initial Release.
+24
LICENSE.md
··· 1 + MIT License 2 + 3 + Copyright (c) Phil Pluckthun, 4 + Copyright (c) 2016 - 2020 Node Fetch Team, 5 + Copyright (c) Remix Software Inc. 2020-2021, 6 + Copyright (c) Shopify Inc. 2022-2024 7 + 8 + Permission is hereby granted, free of charge, to any person obtaining a copy 9 + of this software and associated documentation files (the "Software"), to deal 10 + in the Software without restriction, including without limitation the rights 11 + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 + copies of the Software, and to permit persons to whom the Software is 13 + furnished to do so, subject to the following conditions: 14 + 15 + The above copyright notice and this permission notice shall be included in all 16 + copies or substantial portions of the Software. 17 + 18 + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 24 + SOFTWARE.
+22
README.md
··· 1 + # lan-network 2 + 3 + **Best-effort discovery of the machine's default gateway and local network IPv4 address exclusively with UDP sockets.** 4 + 5 + This utility attempts to determine the interface and IPv4 address of a machine 6 + on the local network. It'll attempt to determine the default gateway and 7 + return the corresponding network interface assignment, both when the network 8 + is online and offline. 9 + 10 + The LAN Network it attempts to pick is the one that the machine uses to connect 11 + to the internet. Determining it is useful to pick the machine's IP address that 12 + is generally used to connect to it from other devices on the network. 13 + 14 + `lanNetwork()` makes three separate attempts to guess the local network: 15 + 16 + 1. Create a socket to a publicly routed IP, and return the assignment matching the socket's local address 17 + 2. Broadcast DHCP discovery packets on all routable network assignments and listen for replies 18 + 3. Highest priority assignment 19 + 20 + `lanNetworkSync()` does the same synchronously by spawning a child process 21 + and blocking until a result is determined. Using this method is generally 22 + not recommended.
+76
package.json
··· 1 + { 2 + "name": "lan-network", 3 + "version": "0.1.0", 4 + "description": "Best-effort discovery of the machine's default gateway and local network IP exclusively with UDP sockets.", 5 + "author": "Phil Pluckthun <phil@kitten.sh>", 6 + "source": "./src/index.ts", 7 + "main": "./dist/lan-network", 8 + "types": "./dist/lan-network.d.ts", 9 + "files": [ 10 + "LICENSE.md", 11 + "README.md", 12 + "CHANGELOG.md", 13 + "dist/" 14 + ], 15 + "scripts": { 16 + "build": "rollup -c ./scripts/rollup.config.mjs", 17 + "postbuild": "tsc --noEmit ./dist/lan-network.d.ts", 18 + "check": "tsc --noEmit", 19 + "clean": "rimraf dist node_modules/.cache", 20 + "prepublishOnly": "run-s clean build check", 21 + "prepare": "node ./scripts/prepare.js || true", 22 + "changeset:version": "changeset version && pnpm install --lockfile-only", 23 + "changeset:publish": "changeset publish" 24 + }, 25 + "exports": { 26 + ".": { 27 + "types": "./dist/lan-network.d.ts", 28 + "require": "./dist/lan-network.js", 29 + "source": "./src/index.ts" 30 + }, 31 + "./subprocess": { 32 + "types": "./dist/lan-network-subprocess.d.ts", 33 + "require": "./dist/lan-network-subprocess.js", 34 + "source": "./src/subprocess.ts" 35 + }, 36 + "./package.json": "./package.json" 37 + }, 38 + "prettier": { 39 + "singleQuote": true, 40 + "arrowParens": "avoid", 41 + "trailingComma": "es5" 42 + }, 43 + "lint-staged": { 44 + "*.{js,ts,json,md}": "prettier --write" 45 + }, 46 + "keywords": [], 47 + "license": "MIT", 48 + "repository": "https://github.com/kitten/lan-network", 49 + "bugs": { 50 + "url": "https://github.com/kitten/lan-network/issues" 51 + }, 52 + "devDependencies": { 53 + "@babel/plugin-transform-block-scoping": "^7.25.9", 54 + "@babel/plugin-transform-typescript": "^7.26.7", 55 + "@changesets/cli": "^2.27.1", 56 + "@changesets/get-github-info": "^0.6.0", 57 + "@rollup/plugin-babel": "^6.0.4", 58 + "@rollup/plugin-commonjs": "^28.0.2", 59 + "@rollup/plugin-node-resolve": "^16.0.0", 60 + "@rollup/plugin-terser": "^0.4.4", 61 + "@types/node": "^22.12.0", 62 + "dotenv": "^16.4.7", 63 + "lint-staged": "^15.4.3", 64 + "npm-run-all": "^4.1.5", 65 + "prettier": "^3.4.2", 66 + "rimraf": "^6.0.1", 67 + "rollup": "^4.32.1", 68 + "rollup-plugin-cjs-check": "^1.0.3", 69 + "rollup-plugin-dts": "^6.1.1", 70 + "typescript": "^5.7.3" 71 + }, 72 + "publishConfig": { 73 + "access": "public", 74 + "provenance": true 75 + } 76 + }
+3502
pnpm-lock.yaml
··· 1 + lockfileVersion: '9.0' 2 + 3 + settings: 4 + autoInstallPeers: true 5 + excludeLinksFromLockfile: false 6 + 7 + importers: 8 + 9 + .: 10 + devDependencies: 11 + '@babel/plugin-transform-block-scoping': 12 + specifier: ^7.25.9 13 + version: 7.25.9(@babel/core@7.26.7) 14 + '@babel/plugin-transform-typescript': 15 + specifier: ^7.26.7 16 + version: 7.26.7(@babel/core@7.26.7) 17 + '@changesets/cli': 18 + specifier: ^2.27.1 19 + version: 2.27.12 20 + '@changesets/get-github-info': 21 + specifier: ^0.6.0 22 + version: 0.6.0 23 + '@rollup/plugin-babel': 24 + specifier: ^6.0.4 25 + version: 6.0.4(@babel/core@7.26.7)(rollup@4.32.1) 26 + '@rollup/plugin-commonjs': 27 + specifier: ^28.0.2 28 + version: 28.0.2(rollup@4.32.1) 29 + '@rollup/plugin-node-resolve': 30 + specifier: ^16.0.0 31 + version: 16.0.0(rollup@4.32.1) 32 + '@rollup/plugin-terser': 33 + specifier: ^0.4.4 34 + version: 0.4.4(rollup@4.32.1) 35 + '@types/node': 36 + specifier: ^22.12.0 37 + version: 22.12.0 38 + dotenv: 39 + specifier: ^16.4.7 40 + version: 16.4.7 41 + lint-staged: 42 + specifier: ^15.4.3 43 + version: 15.4.3 44 + npm-run-all: 45 + specifier: ^4.1.5 46 + version: 4.1.5 47 + prettier: 48 + specifier: ^3.4.2 49 + version: 3.4.2 50 + rimraf: 51 + specifier: ^6.0.1 52 + version: 6.0.1 53 + rollup: 54 + specifier: ^4.32.1 55 + version: 4.32.1 56 + rollup-plugin-cjs-check: 57 + specifier: ^1.0.3 58 + version: 1.0.3(rollup@4.32.1) 59 + rollup-plugin-dts: 60 + specifier: ^6.1.1 61 + version: 6.1.1(rollup@4.32.1)(typescript@5.7.3) 62 + typescript: 63 + specifier: ^5.7.3 64 + version: 5.7.3 65 + 66 + packages: 67 + 68 + '@ampproject/remapping@2.3.0': 69 + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} 70 + engines: {node: '>=6.0.0'} 71 + 72 + '@babel/code-frame@7.26.2': 73 + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} 74 + engines: {node: '>=6.9.0'} 75 + 76 + '@babel/compat-data@7.26.5': 77 + resolution: {integrity: sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==} 78 + engines: {node: '>=6.9.0'} 79 + 80 + '@babel/core@7.26.7': 81 + resolution: {integrity: sha512-SRijHmF0PSPgLIBYlWnG0hyeJLwXE2CgpsXaMOrtt2yp9/86ALw6oUlj9KYuZ0JN07T4eBMVIW4li/9S1j2BGA==} 82 + engines: {node: '>=6.9.0'} 83 + 84 + '@babel/generator@7.26.5': 85 + resolution: {integrity: sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==} 86 + engines: {node: '>=6.9.0'} 87 + 88 + '@babel/helper-annotate-as-pure@7.25.9': 89 + resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} 90 + engines: {node: '>=6.9.0'} 91 + 92 + '@babel/helper-compilation-targets@7.26.5': 93 + resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} 94 + engines: {node: '>=6.9.0'} 95 + 96 + '@babel/helper-create-class-features-plugin@7.25.9': 97 + resolution: {integrity: sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==} 98 + engines: {node: '>=6.9.0'} 99 + peerDependencies: 100 + '@babel/core': ^7.0.0 101 + 102 + '@babel/helper-member-expression-to-functions@7.25.9': 103 + resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} 104 + engines: {node: '>=6.9.0'} 105 + 106 + '@babel/helper-module-imports@7.25.9': 107 + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} 108 + engines: {node: '>=6.9.0'} 109 + 110 + '@babel/helper-module-transforms@7.26.0': 111 + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} 112 + engines: {node: '>=6.9.0'} 113 + peerDependencies: 114 + '@babel/core': ^7.0.0 115 + 116 + '@babel/helper-optimise-call-expression@7.25.9': 117 + resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} 118 + engines: {node: '>=6.9.0'} 119 + 120 + '@babel/helper-plugin-utils@7.26.5': 121 + resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} 122 + engines: {node: '>=6.9.0'} 123 + 124 + '@babel/helper-replace-supers@7.26.5': 125 + resolution: {integrity: sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==} 126 + engines: {node: '>=6.9.0'} 127 + peerDependencies: 128 + '@babel/core': ^7.0.0 129 + 130 + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': 131 + resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} 132 + engines: {node: '>=6.9.0'} 133 + 134 + '@babel/helper-string-parser@7.25.9': 135 + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} 136 + engines: {node: '>=6.9.0'} 137 + 138 + '@babel/helper-validator-identifier@7.25.9': 139 + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} 140 + engines: {node: '>=6.9.0'} 141 + 142 + '@babel/helper-validator-option@7.25.9': 143 + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} 144 + engines: {node: '>=6.9.0'} 145 + 146 + '@babel/helpers@7.26.7': 147 + resolution: {integrity: sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==} 148 + engines: {node: '>=6.9.0'} 149 + 150 + '@babel/parser@7.26.7': 151 + resolution: {integrity: sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==} 152 + engines: {node: '>=6.0.0'} 153 + hasBin: true 154 + 155 + '@babel/plugin-syntax-typescript@7.25.9': 156 + resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} 157 + engines: {node: '>=6.9.0'} 158 + peerDependencies: 159 + '@babel/core': ^7.0.0-0 160 + 161 + '@babel/plugin-transform-block-scoping@7.25.9': 162 + resolution: {integrity: sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==} 163 + engines: {node: '>=6.9.0'} 164 + peerDependencies: 165 + '@babel/core': ^7.0.0-0 166 + 167 + '@babel/plugin-transform-typescript@7.26.7': 168 + resolution: {integrity: sha512-5cJurntg+AT+cgelGP9Bt788DKiAw9gIMSMU2NJrLAilnj0m8WZWUNZPSLOmadYsujHutpgElO+50foX+ib/Wg==} 169 + engines: {node: '>=6.9.0'} 170 + peerDependencies: 171 + '@babel/core': ^7.0.0-0 172 + 173 + '@babel/runtime@7.26.7': 174 + resolution: {integrity: sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==} 175 + engines: {node: '>=6.9.0'} 176 + 177 + '@babel/template@7.25.9': 178 + resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} 179 + engines: {node: '>=6.9.0'} 180 + 181 + '@babel/traverse@7.26.7': 182 + resolution: {integrity: sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA==} 183 + engines: {node: '>=6.9.0'} 184 + 185 + '@babel/types@7.26.7': 186 + resolution: {integrity: sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==} 187 + engines: {node: '>=6.9.0'} 188 + 189 + '@changesets/apply-release-plan@7.0.8': 190 + resolution: {integrity: sha512-qjMUj4DYQ1Z6qHawsn7S71SujrExJ+nceyKKyI9iB+M5p9lCL55afuEd6uLBPRpLGWQwkwvWegDHtwHJb1UjpA==} 191 + 192 + '@changesets/assemble-release-plan@6.0.5': 193 + resolution: {integrity: sha512-IgvBWLNKZd6k4t72MBTBK3nkygi0j3t3zdC1zrfusYo0KpdsvnDjrMM9vPnTCLCMlfNs55jRL4gIMybxa64FCQ==} 194 + 195 + '@changesets/changelog-git@0.2.0': 196 + resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} 197 + 198 + '@changesets/cli@2.27.12': 199 + resolution: {integrity: sha512-9o3fOfHYOvBnyEn0mcahB7wzaA3P4bGJf8PNqGit5PKaMEFdsRixik+txkrJWd2VX+O6wRFXpxQL8j/1ANKE9g==} 200 + hasBin: true 201 + 202 + '@changesets/config@3.0.5': 203 + resolution: {integrity: sha512-QyXLSSd10GquX7hY0Mt4yQFMEeqnO5z/XLpbIr4PAkNNoQNKwDyiSrx4yd749WddusH1v3OSiA0NRAYmH/APpQ==} 204 + 205 + '@changesets/errors@0.2.0': 206 + resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} 207 + 208 + '@changesets/get-dependents-graph@2.1.2': 209 + resolution: {integrity: sha512-sgcHRkiBY9i4zWYBwlVyAjEM9sAzs4wYVwJUdnbDLnVG3QwAaia1Mk5P8M7kraTOZN+vBET7n8KyB0YXCbFRLQ==} 210 + 211 + '@changesets/get-github-info@0.6.0': 212 + resolution: {integrity: sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==} 213 + 214 + '@changesets/get-release-plan@4.0.6': 215 + resolution: {integrity: sha512-FHRwBkY7Eili04Y5YMOZb0ezQzKikTka4wL753vfUA5COSebt7KThqiuCN9BewE4/qFGgF/5t3AuzXx1/UAY4w==} 216 + 217 + '@changesets/get-version-range-type@0.4.0': 218 + resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} 219 + 220 + '@changesets/git@3.0.2': 221 + resolution: {integrity: sha512-r1/Kju9Y8OxRRdvna+nxpQIsMsRQn9dhhAZt94FLDeu0Hij2hnOozW8iqnHBgvu+KdnJppCveQwK4odwfw/aWQ==} 222 + 223 + '@changesets/logger@0.1.1': 224 + resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} 225 + 226 + '@changesets/parse@0.4.0': 227 + resolution: {integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==} 228 + 229 + '@changesets/pre@2.0.1': 230 + resolution: {integrity: sha512-vvBJ/If4jKM4tPz9JdY2kGOgWmCowUYOi5Ycv8dyLnEE8FgpYYUo1mgJZxcdtGGP3aG8rAQulGLyyXGSLkIMTQ==} 231 + 232 + '@changesets/read@0.6.2': 233 + resolution: {integrity: sha512-wjfQpJvryY3zD61p8jR87mJdyx2FIhEcdXhKUqkja87toMrP/3jtg/Yg29upN+N4Ckf525/uvV7a4tzBlpk6gg==} 234 + 235 + '@changesets/should-skip-package@0.1.1': 236 + resolution: {integrity: sha512-H9LjLbF6mMHLtJIc/eHR9Na+MifJ3VxtgP/Y+XLn4BF7tDTEN1HNYtH6QMcjP1uxp9sjaFYmW8xqloaCi/ckTg==} 237 + 238 + '@changesets/types@4.1.0': 239 + resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} 240 + 241 + '@changesets/types@6.0.0': 242 + resolution: {integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==} 243 + 244 + '@changesets/write@0.3.2': 245 + resolution: {integrity: sha512-kDxDrPNpUgsjDbWBvUo27PzKX4gqeKOlhibaOXDJA6kuBisGqNHv/HwGJrAu8U/dSf8ZEFIeHIPtvSlZI1kULw==} 246 + 247 + '@isaacs/cliui@8.0.2': 248 + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 249 + engines: {node: '>=12'} 250 + 251 + '@jridgewell/gen-mapping@0.3.8': 252 + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} 253 + engines: {node: '>=6.0.0'} 254 + 255 + '@jridgewell/resolve-uri@3.1.2': 256 + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 257 + engines: {node: '>=6.0.0'} 258 + 259 + '@jridgewell/set-array@1.2.1': 260 + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 261 + engines: {node: '>=6.0.0'} 262 + 263 + '@jridgewell/source-map@0.3.6': 264 + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} 265 + 266 + '@jridgewell/sourcemap-codec@1.5.0': 267 + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 268 + 269 + '@jridgewell/trace-mapping@0.3.25': 270 + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 271 + 272 + '@manypkg/find-root@1.1.0': 273 + resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} 274 + 275 + '@manypkg/get-packages@1.1.3': 276 + resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} 277 + 278 + '@nodelib/fs.scandir@2.1.5': 279 + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 280 + engines: {node: '>= 8'} 281 + 282 + '@nodelib/fs.stat@2.0.5': 283 + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 284 + engines: {node: '>= 8'} 285 + 286 + '@nodelib/fs.walk@1.2.8': 287 + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 288 + engines: {node: '>= 8'} 289 + 290 + '@rollup/plugin-babel@6.0.4': 291 + resolution: {integrity: sha512-YF7Y52kFdFT/xVSuVdjkV5ZdX/3YtmX0QulG+x0taQOtJdHYzVU61aSSkAgVJ7NOv6qPkIYiJSgSWWN/DM5sGw==} 292 + engines: {node: '>=14.0.0'} 293 + peerDependencies: 294 + '@babel/core': ^7.0.0 295 + '@types/babel__core': ^7.1.9 296 + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 297 + peerDependenciesMeta: 298 + '@types/babel__core': 299 + optional: true 300 + rollup: 301 + optional: true 302 + 303 + '@rollup/plugin-commonjs@28.0.2': 304 + resolution: {integrity: sha512-BEFI2EDqzl+vA1rl97IDRZ61AIwGH093d9nz8+dThxJNH8oSoB7MjWvPCX3dkaK1/RCJ/1v/R1XB15FuSs0fQw==} 305 + engines: {node: '>=16.0.0 || 14 >= 14.17'} 306 + peerDependencies: 307 + rollup: ^2.68.0||^3.0.0||^4.0.0 308 + peerDependenciesMeta: 309 + rollup: 310 + optional: true 311 + 312 + '@rollup/plugin-node-resolve@16.0.0': 313 + resolution: {integrity: sha512-0FPvAeVUT/zdWoO0jnb/V5BlBsUSNfkIOtFHzMO4H9MOklrmQFY6FduVHKucNb/aTFxvnGhj4MNj/T1oNdDfNg==} 314 + engines: {node: '>=14.0.0'} 315 + peerDependencies: 316 + rollup: ^2.78.0||^3.0.0||^4.0.0 317 + peerDependenciesMeta: 318 + rollup: 319 + optional: true 320 + 321 + '@rollup/plugin-terser@0.4.4': 322 + resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} 323 + engines: {node: '>=14.0.0'} 324 + peerDependencies: 325 + rollup: ^2.0.0||^3.0.0||^4.0.0 326 + peerDependenciesMeta: 327 + rollup: 328 + optional: true 329 + 330 + '@rollup/pluginutils@5.1.4': 331 + resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} 332 + engines: {node: '>=14.0.0'} 333 + peerDependencies: 334 + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 335 + peerDependenciesMeta: 336 + rollup: 337 + optional: true 338 + 339 + '@rollup/rollup-android-arm-eabi@4.32.1': 340 + resolution: {integrity: sha512-/pqA4DmqyCm8u5YIDzIdlLcEmuvxb0v8fZdFhVMszSpDTgbQKdw3/mB3eMUHIbubtJ6F9j+LtmyCnHTEqIHyzA==} 341 + cpu: [arm] 342 + os: [android] 343 + 344 + '@rollup/rollup-android-arm64@4.32.1': 345 + resolution: {integrity: sha512-If3PDskT77q7zgqVqYuj7WG3WC08G1kwXGVFi9Jr8nY6eHucREHkfpX79c0ACAjLj3QIWKPJR7w4i+f5EdLH5Q==} 346 + cpu: [arm64] 347 + os: [android] 348 + 349 + '@rollup/rollup-darwin-arm64@4.32.1': 350 + resolution: {integrity: sha512-zCpKHioQ9KgZToFp5Wvz6zaWbMzYQ2LJHQ+QixDKq52KKrF65ueu6Af4hLlLWHjX1Wf/0G5kSJM9PySW9IrvHA==} 351 + cpu: [arm64] 352 + os: [darwin] 353 + 354 + '@rollup/rollup-darwin-x64@4.32.1': 355 + resolution: {integrity: sha512-sFvF+t2+TyUo/ZQqUcifrJIgznx58oFZbdHS9TvHq3xhPVL9nOp+yZ6LKrO9GWTP+6DbFtoyLDbjTpR62Mbr3Q==} 356 + cpu: [x64] 357 + os: [darwin] 358 + 359 + '@rollup/rollup-freebsd-arm64@4.32.1': 360 + resolution: {integrity: sha512-NbOa+7InvMWRcY9RG+B6kKIMD/FsnQPH0MWUvDlQB1iXnF/UcKSudCXZtv4lW+C276g3w5AxPbfry5rSYvyeYA==} 361 + cpu: [arm64] 362 + os: [freebsd] 363 + 364 + '@rollup/rollup-freebsd-x64@4.32.1': 365 + resolution: {integrity: sha512-JRBRmwvHPXR881j2xjry8HZ86wIPK2CcDw0EXchE1UgU0ubWp9nvlT7cZYKc6bkypBt745b4bglf3+xJ7hXWWw==} 366 + cpu: [x64] 367 + os: [freebsd] 368 + 369 + '@rollup/rollup-linux-arm-gnueabihf@4.32.1': 370 + resolution: {integrity: sha512-PKvszb+9o/vVdUzCCjL0sKHukEQV39tD3fepXxYrHE3sTKrRdCydI7uldRLbjLmDA3TFDmh418XH19NOsDRH8g==} 371 + cpu: [arm] 372 + os: [linux] 373 + 374 + '@rollup/rollup-linux-arm-musleabihf@4.32.1': 375 + resolution: {integrity: sha512-9WHEMV6Y89eL606ReYowXuGF1Yb2vwfKWKdD1A5h+OYnPZSJvxbEjxTRKPgi7tkP2DSnW0YLab1ooy+i/FQp/Q==} 376 + cpu: [arm] 377 + os: [linux] 378 + 379 + '@rollup/rollup-linux-arm64-gnu@4.32.1': 380 + resolution: {integrity: sha512-tZWc9iEt5fGJ1CL2LRPw8OttkCBDs+D8D3oEM8mH8S1ICZCtFJhD7DZ3XMGM8kpqHvhGUTvNUYVDnmkj4BDXnw==} 381 + cpu: [arm64] 382 + os: [linux] 383 + 384 + '@rollup/rollup-linux-arm64-musl@4.32.1': 385 + resolution: {integrity: sha512-FTYc2YoTWUsBz5GTTgGkRYYJ5NGJIi/rCY4oK/I8aKowx1ToXeoVVbIE4LGAjsauvlhjfl0MYacxClLld1VrOw==} 386 + cpu: [arm64] 387 + os: [linux] 388 + 389 + '@rollup/rollup-linux-loongarch64-gnu@4.32.1': 390 + resolution: {integrity: sha512-F51qLdOtpS6P1zJVRzYM0v6MrBNypyPEN1GfMiz0gPu9jN8ScGaEFIZQwteSsGKg799oR5EaP7+B2jHgL+d+Kw==} 391 + cpu: [loong64] 392 + os: [linux] 393 + 394 + '@rollup/rollup-linux-powerpc64le-gnu@4.32.1': 395 + resolution: {integrity: sha512-wO0WkfSppfX4YFm5KhdCCpnpGbtgQNj/tgvYzrVYFKDpven8w2N6Gg5nB6w+wAMO3AIfSTWeTjfVe+uZ23zAlg==} 396 + cpu: [ppc64] 397 + os: [linux] 398 + 399 + '@rollup/rollup-linux-riscv64-gnu@4.32.1': 400 + resolution: {integrity: sha512-iWswS9cIXfJO1MFYtI/4jjlrGb/V58oMu4dYJIKnR5UIwbkzR0PJ09O0PDZT0oJ3LYWXBSWahNf/Mjo6i1E5/g==} 401 + cpu: [riscv64] 402 + os: [linux] 403 + 404 + '@rollup/rollup-linux-s390x-gnu@4.32.1': 405 + resolution: {integrity: sha512-RKt8NI9tebzmEthMnfVgG3i/XeECkMPS+ibVZjZ6mNekpbbUmkNWuIN2yHsb/mBPyZke4nlI4YqIdFPgKuoyQQ==} 406 + cpu: [s390x] 407 + os: [linux] 408 + 409 + '@rollup/rollup-linux-x64-gnu@4.32.1': 410 + resolution: {integrity: sha512-WQFLZ9c42ECqEjwg/GHHsouij3pzLXkFdz0UxHa/0OM12LzvX7DzedlY0SIEly2v18YZLRhCRoHZDxbBSWoGYg==} 411 + cpu: [x64] 412 + os: [linux] 413 + 414 + '@rollup/rollup-linux-x64-musl@4.32.1': 415 + resolution: {integrity: sha512-BLoiyHDOWoS3uccNSADMza6V6vCNiphi94tQlVIL5de+r6r/CCQuNnerf+1g2mnk2b6edp5dk0nhdZ7aEjOBsA==} 416 + cpu: [x64] 417 + os: [linux] 418 + 419 + '@rollup/rollup-win32-arm64-msvc@4.32.1': 420 + resolution: {integrity: sha512-w2l3UnlgYTNNU+Z6wOR8YdaioqfEnwPjIsJ66KxKAf0p+AuL2FHeTX6qvM+p/Ue3XPBVNyVSfCrfZiQh7vZHLQ==} 421 + cpu: [arm64] 422 + os: [win32] 423 + 424 + '@rollup/rollup-win32-ia32-msvc@4.32.1': 425 + resolution: {integrity: sha512-Am9H+TGLomPGkBnaPWie4F3x+yQ2rr4Bk2jpwy+iV+Gel9jLAu/KqT8k3X4jxFPW6Zf8OMnehyutsd+eHoq1WQ==} 426 + cpu: [ia32] 427 + os: [win32] 428 + 429 + '@rollup/rollup-win32-x64-msvc@4.32.1': 430 + resolution: {integrity: sha512-ar80GhdZb4DgmW3myIS9nRFYcpJRSME8iqWgzH2i44u+IdrzmiXVxeFnExQ5v4JYUSpg94bWjevMG8JHf1Da5Q==} 431 + cpu: [x64] 432 + os: [win32] 433 + 434 + '@types/estree@1.0.6': 435 + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} 436 + 437 + '@types/node@12.20.55': 438 + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} 439 + 440 + '@types/node@22.12.0': 441 + resolution: {integrity: sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==} 442 + 443 + '@types/resolve@1.20.2': 444 + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} 445 + 446 + acorn@8.14.0: 447 + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} 448 + engines: {node: '>=0.4.0'} 449 + hasBin: true 450 + 451 + ansi-colors@4.1.3: 452 + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} 453 + engines: {node: '>=6'} 454 + 455 + ansi-escapes@7.0.0: 456 + resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} 457 + engines: {node: '>=18'} 458 + 459 + ansi-regex@5.0.1: 460 + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 461 + engines: {node: '>=8'} 462 + 463 + ansi-regex@6.1.0: 464 + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} 465 + engines: {node: '>=12'} 466 + 467 + ansi-styles@3.2.1: 468 + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 469 + engines: {node: '>=4'} 470 + 471 + ansi-styles@4.3.0: 472 + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 473 + engines: {node: '>=8'} 474 + 475 + ansi-styles@6.2.1: 476 + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 477 + engines: {node: '>=12'} 478 + 479 + argparse@1.0.10: 480 + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} 481 + 482 + array-buffer-byte-length@1.0.2: 483 + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} 484 + engines: {node: '>= 0.4'} 485 + 486 + array-union@2.1.0: 487 + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 488 + engines: {node: '>=8'} 489 + 490 + arraybuffer.prototype.slice@1.0.4: 491 + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} 492 + engines: {node: '>= 0.4'} 493 + 494 + async-function@1.0.0: 495 + resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} 496 + engines: {node: '>= 0.4'} 497 + 498 + available-typed-arrays@1.0.7: 499 + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} 500 + engines: {node: '>= 0.4'} 501 + 502 + balanced-match@1.0.2: 503 + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 504 + 505 + better-path-resolve@1.0.0: 506 + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} 507 + engines: {node: '>=4'} 508 + 509 + brace-expansion@1.1.11: 510 + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 511 + 512 + brace-expansion@2.0.1: 513 + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 514 + 515 + braces@3.0.3: 516 + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 517 + engines: {node: '>=8'} 518 + 519 + browserslist@4.24.4: 520 + resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} 521 + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 522 + hasBin: true 523 + 524 + buffer-from@1.1.2: 525 + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 526 + 527 + call-bind-apply-helpers@1.0.1: 528 + resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} 529 + engines: {node: '>= 0.4'} 530 + 531 + call-bind@1.0.8: 532 + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} 533 + engines: {node: '>= 0.4'} 534 + 535 + call-bound@1.0.3: 536 + resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} 537 + engines: {node: '>= 0.4'} 538 + 539 + caniuse-lite@1.0.30001696: 540 + resolution: {integrity: sha512-pDCPkvzfa39ehJtJ+OwGT/2yvT2SbjfHhiIW2LWOAcMQ7BzwxT/XuyUp4OTOd0XFWA6BKw0JalnBHgSi5DGJBQ==} 541 + 542 + chalk@2.4.2: 543 + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 544 + engines: {node: '>=4'} 545 + 546 + chalk@5.4.1: 547 + resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} 548 + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 549 + 550 + chardet@0.7.0: 551 + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} 552 + 553 + ci-info@3.9.0: 554 + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} 555 + engines: {node: '>=8'} 556 + 557 + cjs-module-lexer@1.4.2: 558 + resolution: {integrity: sha512-7gdnIlr/WqvlQaX6yMvhHbiEVZ07qCV22rb/brgyFGKgo76ckIsrtDp4w2NIOitmKDNgiUm+pfVSE4VMwnkXwQ==} 559 + 560 + cli-cursor@5.0.0: 561 + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} 562 + engines: {node: '>=18'} 563 + 564 + cli-truncate@4.0.0: 565 + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} 566 + engines: {node: '>=18'} 567 + 568 + color-convert@1.9.3: 569 + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 570 + 571 + color-convert@2.0.1: 572 + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 573 + engines: {node: '>=7.0.0'} 574 + 575 + color-name@1.1.3: 576 + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 577 + 578 + color-name@1.1.4: 579 + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 580 + 581 + colorette@2.0.20: 582 + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} 583 + 584 + commander@13.1.0: 585 + resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} 586 + engines: {node: '>=18'} 587 + 588 + commander@2.20.3: 589 + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} 590 + 591 + commondir@1.0.1: 592 + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} 593 + 594 + concat-map@0.0.1: 595 + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 596 + 597 + convert-source-map@2.0.0: 598 + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 599 + 600 + cross-spawn@6.0.6: 601 + resolution: {integrity: sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==} 602 + engines: {node: '>=4.8'} 603 + 604 + cross-spawn@7.0.6: 605 + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 606 + engines: {node: '>= 8'} 607 + 608 + data-view-buffer@1.0.2: 609 + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} 610 + engines: {node: '>= 0.4'} 611 + 612 + data-view-byte-length@1.0.2: 613 + resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} 614 + engines: {node: '>= 0.4'} 615 + 616 + data-view-byte-offset@1.0.1: 617 + resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} 618 + engines: {node: '>= 0.4'} 619 + 620 + dataloader@1.4.0: 621 + resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} 622 + 623 + debug@4.4.0: 624 + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} 625 + engines: {node: '>=6.0'} 626 + peerDependencies: 627 + supports-color: '*' 628 + peerDependenciesMeta: 629 + supports-color: 630 + optional: true 631 + 632 + deepmerge@4.3.1: 633 + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} 634 + engines: {node: '>=0.10.0'} 635 + 636 + define-data-property@1.1.4: 637 + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} 638 + engines: {node: '>= 0.4'} 639 + 640 + define-properties@1.2.1: 641 + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} 642 + engines: {node: '>= 0.4'} 643 + 644 + detect-indent@6.1.0: 645 + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} 646 + engines: {node: '>=8'} 647 + 648 + dir-glob@3.0.1: 649 + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 650 + engines: {node: '>=8'} 651 + 652 + dotenv@16.4.7: 653 + resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} 654 + engines: {node: '>=12'} 655 + 656 + dunder-proto@1.0.1: 657 + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} 658 + engines: {node: '>= 0.4'} 659 + 660 + eastasianwidth@0.2.0: 661 + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 662 + 663 + electron-to-chromium@1.5.90: 664 + resolution: {integrity: sha512-C3PN4aydfW91Natdyd449Kw+BzhLmof6tzy5W1pFC5SpQxVXT+oyiyOG9AgYYSN9OdA/ik3YkCrpwqI8ug5Tug==} 665 + 666 + emoji-regex@10.4.0: 667 + resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} 668 + 669 + emoji-regex@8.0.0: 670 + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 671 + 672 + emoji-regex@9.2.2: 673 + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 674 + 675 + enquirer@2.4.1: 676 + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} 677 + engines: {node: '>=8.6'} 678 + 679 + environment@1.1.0: 680 + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} 681 + engines: {node: '>=18'} 682 + 683 + error-ex@1.3.2: 684 + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 685 + 686 + es-abstract@1.23.9: 687 + resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} 688 + engines: {node: '>= 0.4'} 689 + 690 + es-define-property@1.0.1: 691 + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} 692 + engines: {node: '>= 0.4'} 693 + 694 + es-errors@1.3.0: 695 + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 696 + engines: {node: '>= 0.4'} 697 + 698 + es-object-atoms@1.1.1: 699 + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} 700 + engines: {node: '>= 0.4'} 701 + 702 + es-set-tostringtag@2.1.0: 703 + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} 704 + engines: {node: '>= 0.4'} 705 + 706 + es-to-primitive@1.3.0: 707 + resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} 708 + engines: {node: '>= 0.4'} 709 + 710 + escalade@3.2.0: 711 + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 712 + engines: {node: '>=6'} 713 + 714 + escape-string-regexp@1.0.5: 715 + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 716 + engines: {node: '>=0.8.0'} 717 + 718 + esprima@4.0.1: 719 + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 720 + engines: {node: '>=4'} 721 + hasBin: true 722 + 723 + estree-walker@2.0.2: 724 + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 725 + 726 + eventemitter3@5.0.1: 727 + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} 728 + 729 + execa@8.0.1: 730 + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} 731 + engines: {node: '>=16.17'} 732 + 733 + extendable-error@0.1.7: 734 + resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} 735 + 736 + external-editor@3.1.0: 737 + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} 738 + engines: {node: '>=4'} 739 + 740 + fast-glob@3.3.3: 741 + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} 742 + engines: {node: '>=8.6.0'} 743 + 744 + fastq@1.19.0: 745 + resolution: {integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==} 746 + 747 + fdir@6.4.3: 748 + resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} 749 + peerDependencies: 750 + picomatch: ^3 || ^4 751 + peerDependenciesMeta: 752 + picomatch: 753 + optional: true 754 + 755 + fill-range@7.1.1: 756 + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 757 + engines: {node: '>=8'} 758 + 759 + find-up@4.1.0: 760 + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 761 + engines: {node: '>=8'} 762 + 763 + for-each@0.3.4: 764 + resolution: {integrity: sha512-kKaIINnFpzW6ffJNDjjyjrk21BkDx38c0xa/klsT8VzLCaMEefv4ZTacrcVR4DmgTeBra++jMDAfS/tS799YDw==} 765 + engines: {node: '>= 0.4'} 766 + 767 + foreground-child@3.3.0: 768 + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} 769 + engines: {node: '>=14'} 770 + 771 + fs-extra@7.0.1: 772 + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} 773 + engines: {node: '>=6 <7 || >=8'} 774 + 775 + fs-extra@8.1.0: 776 + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} 777 + engines: {node: '>=6 <7 || >=8'} 778 + 779 + fsevents@2.3.3: 780 + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 781 + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 782 + os: [darwin] 783 + 784 + function-bind@1.1.2: 785 + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 786 + 787 + function.prototype.name@1.1.8: 788 + resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} 789 + engines: {node: '>= 0.4'} 790 + 791 + functions-have-names@1.2.3: 792 + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 793 + 794 + gensync@1.0.0-beta.2: 795 + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 796 + engines: {node: '>=6.9.0'} 797 + 798 + get-east-asian-width@1.3.0: 799 + resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} 800 + engines: {node: '>=18'} 801 + 802 + get-intrinsic@1.2.7: 803 + resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} 804 + engines: {node: '>= 0.4'} 805 + 806 + get-proto@1.0.1: 807 + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} 808 + engines: {node: '>= 0.4'} 809 + 810 + get-stream@8.0.1: 811 + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} 812 + engines: {node: '>=16'} 813 + 814 + get-symbol-description@1.1.0: 815 + resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} 816 + engines: {node: '>= 0.4'} 817 + 818 + glob-parent@5.1.2: 819 + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 820 + engines: {node: '>= 6'} 821 + 822 + glob@11.0.1: 823 + resolution: {integrity: sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==} 824 + engines: {node: 20 || >=22} 825 + hasBin: true 826 + 827 + globals@11.12.0: 828 + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 829 + engines: {node: '>=4'} 830 + 831 + globalthis@1.0.4: 832 + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} 833 + engines: {node: '>= 0.4'} 834 + 835 + globby@11.1.0: 836 + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 837 + engines: {node: '>=10'} 838 + 839 + gopd@1.2.0: 840 + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} 841 + engines: {node: '>= 0.4'} 842 + 843 + graceful-fs@4.2.11: 844 + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 845 + 846 + has-bigints@1.1.0: 847 + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} 848 + engines: {node: '>= 0.4'} 849 + 850 + has-flag@3.0.0: 851 + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 852 + engines: {node: '>=4'} 853 + 854 + has-property-descriptors@1.0.2: 855 + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} 856 + 857 + has-proto@1.2.0: 858 + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} 859 + engines: {node: '>= 0.4'} 860 + 861 + has-symbols@1.1.0: 862 + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} 863 + engines: {node: '>= 0.4'} 864 + 865 + has-tostringtag@1.0.2: 866 + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} 867 + engines: {node: '>= 0.4'} 868 + 869 + hasown@2.0.2: 870 + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 871 + engines: {node: '>= 0.4'} 872 + 873 + hosted-git-info@2.8.9: 874 + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} 875 + 876 + human-id@1.0.2: 877 + resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} 878 + 879 + human-signals@5.0.0: 880 + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} 881 + engines: {node: '>=16.17.0'} 882 + 883 + iconv-lite@0.4.24: 884 + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} 885 + engines: {node: '>=0.10.0'} 886 + 887 + ignore@5.3.2: 888 + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 889 + engines: {node: '>= 4'} 890 + 891 + internal-slot@1.1.0: 892 + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} 893 + engines: {node: '>= 0.4'} 894 + 895 + is-array-buffer@3.0.5: 896 + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} 897 + engines: {node: '>= 0.4'} 898 + 899 + is-arrayish@0.2.1: 900 + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} 901 + 902 + is-async-function@2.1.1: 903 + resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} 904 + engines: {node: '>= 0.4'} 905 + 906 + is-bigint@1.1.0: 907 + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} 908 + engines: {node: '>= 0.4'} 909 + 910 + is-boolean-object@1.2.1: 911 + resolution: {integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==} 912 + engines: {node: '>= 0.4'} 913 + 914 + is-callable@1.2.7: 915 + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 916 + engines: {node: '>= 0.4'} 917 + 918 + is-core-module@2.16.1: 919 + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} 920 + engines: {node: '>= 0.4'} 921 + 922 + is-data-view@1.0.2: 923 + resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} 924 + engines: {node: '>= 0.4'} 925 + 926 + is-date-object@1.1.0: 927 + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} 928 + engines: {node: '>= 0.4'} 929 + 930 + is-extglob@2.1.1: 931 + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 932 + engines: {node: '>=0.10.0'} 933 + 934 + is-finalizationregistry@1.1.1: 935 + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} 936 + engines: {node: '>= 0.4'} 937 + 938 + is-fullwidth-code-point@3.0.0: 939 + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 940 + engines: {node: '>=8'} 941 + 942 + is-fullwidth-code-point@4.0.0: 943 + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} 944 + engines: {node: '>=12'} 945 + 946 + is-fullwidth-code-point@5.0.0: 947 + resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} 948 + engines: {node: '>=18'} 949 + 950 + is-generator-function@1.1.0: 951 + resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} 952 + engines: {node: '>= 0.4'} 953 + 954 + is-glob@4.0.3: 955 + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 956 + engines: {node: '>=0.10.0'} 957 + 958 + is-map@2.0.3: 959 + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} 960 + engines: {node: '>= 0.4'} 961 + 962 + is-module@1.0.0: 963 + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} 964 + 965 + is-number-object@1.1.1: 966 + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} 967 + engines: {node: '>= 0.4'} 968 + 969 + is-number@7.0.0: 970 + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 971 + engines: {node: '>=0.12.0'} 972 + 973 + is-reference@1.2.1: 974 + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} 975 + 976 + is-regex@1.2.1: 977 + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} 978 + engines: {node: '>= 0.4'} 979 + 980 + is-set@2.0.3: 981 + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} 982 + engines: {node: '>= 0.4'} 983 + 984 + is-shared-array-buffer@1.0.4: 985 + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} 986 + engines: {node: '>= 0.4'} 987 + 988 + is-stream@3.0.0: 989 + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} 990 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 991 + 992 + is-string@1.1.1: 993 + resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} 994 + engines: {node: '>= 0.4'} 995 + 996 + is-subdir@1.2.0: 997 + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} 998 + engines: {node: '>=4'} 999 + 1000 + is-symbol@1.1.1: 1001 + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} 1002 + engines: {node: '>= 0.4'} 1003 + 1004 + is-typed-array@1.1.15: 1005 + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} 1006 + engines: {node: '>= 0.4'} 1007 + 1008 + is-weakmap@2.0.2: 1009 + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} 1010 + engines: {node: '>= 0.4'} 1011 + 1012 + is-weakref@1.1.0: 1013 + resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==} 1014 + engines: {node: '>= 0.4'} 1015 + 1016 + is-weakset@2.0.4: 1017 + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} 1018 + engines: {node: '>= 0.4'} 1019 + 1020 + is-windows@1.0.2: 1021 + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} 1022 + engines: {node: '>=0.10.0'} 1023 + 1024 + isarray@2.0.5: 1025 + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} 1026 + 1027 + isexe@2.0.0: 1028 + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1029 + 1030 + jackspeak@4.0.2: 1031 + resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==} 1032 + engines: {node: 20 || >=22} 1033 + 1034 + js-tokens@4.0.0: 1035 + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1036 + 1037 + js-yaml@3.14.1: 1038 + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} 1039 + hasBin: true 1040 + 1041 + jsesc@3.1.0: 1042 + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} 1043 + engines: {node: '>=6'} 1044 + hasBin: true 1045 + 1046 + json-parse-better-errors@1.0.2: 1047 + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} 1048 + 1049 + json5@2.2.3: 1050 + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 1051 + engines: {node: '>=6'} 1052 + hasBin: true 1053 + 1054 + jsonfile@4.0.0: 1055 + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} 1056 + 1057 + lilconfig@3.1.3: 1058 + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} 1059 + engines: {node: '>=14'} 1060 + 1061 + lint-staged@15.4.3: 1062 + resolution: {integrity: sha512-FoH1vOeouNh1pw+90S+cnuoFwRfUD9ijY2GKy5h7HS3OR7JVir2N2xrsa0+Twc1B7cW72L+88geG5cW4wIhn7g==} 1063 + engines: {node: '>=18.12.0'} 1064 + hasBin: true 1065 + 1066 + listr2@8.2.5: 1067 + resolution: {integrity: sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==} 1068 + engines: {node: '>=18.0.0'} 1069 + 1070 + load-json-file@4.0.0: 1071 + resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} 1072 + engines: {node: '>=4'} 1073 + 1074 + locate-path@5.0.0: 1075 + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 1076 + engines: {node: '>=8'} 1077 + 1078 + lodash.startcase@4.4.0: 1079 + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} 1080 + 1081 + log-update@6.1.0: 1082 + resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} 1083 + engines: {node: '>=18'} 1084 + 1085 + lru-cache@11.0.2: 1086 + resolution: {integrity: sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==} 1087 + engines: {node: 20 || >=22} 1088 + 1089 + lru-cache@5.1.1: 1090 + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 1091 + 1092 + magic-string@0.30.17: 1093 + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} 1094 + 1095 + math-intrinsics@1.1.0: 1096 + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} 1097 + engines: {node: '>= 0.4'} 1098 + 1099 + memorystream@0.3.1: 1100 + resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} 1101 + engines: {node: '>= 0.10.0'} 1102 + 1103 + merge-stream@2.0.0: 1104 + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 1105 + 1106 + merge2@1.4.1: 1107 + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1108 + engines: {node: '>= 8'} 1109 + 1110 + micromatch@4.0.8: 1111 + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 1112 + engines: {node: '>=8.6'} 1113 + 1114 + mimic-fn@4.0.0: 1115 + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} 1116 + engines: {node: '>=12'} 1117 + 1118 + mimic-function@5.0.1: 1119 + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} 1120 + engines: {node: '>=18'} 1121 + 1122 + minimatch@10.0.1: 1123 + resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} 1124 + engines: {node: 20 || >=22} 1125 + 1126 + minimatch@3.1.2: 1127 + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1128 + 1129 + minipass@7.1.2: 1130 + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 1131 + engines: {node: '>=16 || 14 >=14.17'} 1132 + 1133 + mri@1.2.0: 1134 + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 1135 + engines: {node: '>=4'} 1136 + 1137 + ms@2.1.3: 1138 + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1139 + 1140 + nice-try@1.0.5: 1141 + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} 1142 + 1143 + node-fetch@2.7.0: 1144 + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} 1145 + engines: {node: 4.x || >=6.0.0} 1146 + peerDependencies: 1147 + encoding: ^0.1.0 1148 + peerDependenciesMeta: 1149 + encoding: 1150 + optional: true 1151 + 1152 + node-releases@2.0.19: 1153 + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} 1154 + 1155 + normalize-package-data@2.5.0: 1156 + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} 1157 + 1158 + npm-run-all@4.1.5: 1159 + resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==} 1160 + engines: {node: '>= 4'} 1161 + hasBin: true 1162 + 1163 + npm-run-path@5.3.0: 1164 + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} 1165 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1166 + 1167 + object-inspect@1.13.3: 1168 + resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} 1169 + engines: {node: '>= 0.4'} 1170 + 1171 + object-keys@1.1.1: 1172 + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 1173 + engines: {node: '>= 0.4'} 1174 + 1175 + object.assign@4.1.7: 1176 + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} 1177 + engines: {node: '>= 0.4'} 1178 + 1179 + onetime@6.0.0: 1180 + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} 1181 + engines: {node: '>=12'} 1182 + 1183 + onetime@7.0.0: 1184 + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} 1185 + engines: {node: '>=18'} 1186 + 1187 + os-tmpdir@1.0.2: 1188 + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} 1189 + engines: {node: '>=0.10.0'} 1190 + 1191 + outdent@0.5.0: 1192 + resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} 1193 + 1194 + own-keys@1.0.1: 1195 + resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} 1196 + engines: {node: '>= 0.4'} 1197 + 1198 + p-filter@2.1.0: 1199 + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} 1200 + engines: {node: '>=8'} 1201 + 1202 + p-limit@2.3.0: 1203 + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 1204 + engines: {node: '>=6'} 1205 + 1206 + p-locate@4.1.0: 1207 + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 1208 + engines: {node: '>=8'} 1209 + 1210 + p-map@2.1.0: 1211 + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} 1212 + engines: {node: '>=6'} 1213 + 1214 + p-try@2.2.0: 1215 + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 1216 + engines: {node: '>=6'} 1217 + 1218 + package-json-from-dist@1.0.1: 1219 + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} 1220 + 1221 + package-manager-detector@0.2.9: 1222 + resolution: {integrity: sha512-+vYvA/Y31l8Zk8dwxHhL3JfTuHPm6tlxM2A3GeQyl7ovYnSp1+mzAxClxaOr0qO1TtPxbQxetI7v5XqKLJZk7Q==} 1223 + 1224 + parse-json@4.0.0: 1225 + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} 1226 + engines: {node: '>=4'} 1227 + 1228 + path-exists@4.0.0: 1229 + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1230 + engines: {node: '>=8'} 1231 + 1232 + path-key@2.0.1: 1233 + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} 1234 + engines: {node: '>=4'} 1235 + 1236 + path-key@3.1.1: 1237 + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1238 + engines: {node: '>=8'} 1239 + 1240 + path-key@4.0.0: 1241 + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} 1242 + engines: {node: '>=12'} 1243 + 1244 + path-parse@1.0.7: 1245 + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1246 + 1247 + path-scurry@2.0.0: 1248 + resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} 1249 + engines: {node: 20 || >=22} 1250 + 1251 + path-type@3.0.0: 1252 + resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} 1253 + engines: {node: '>=4'} 1254 + 1255 + path-type@4.0.0: 1256 + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1257 + engines: {node: '>=8'} 1258 + 1259 + picocolors@1.1.1: 1260 + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1261 + 1262 + picomatch@2.3.1: 1263 + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1264 + engines: {node: '>=8.6'} 1265 + 1266 + picomatch@4.0.2: 1267 + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} 1268 + engines: {node: '>=12'} 1269 + 1270 + pidtree@0.3.1: 1271 + resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} 1272 + engines: {node: '>=0.10'} 1273 + hasBin: true 1274 + 1275 + pidtree@0.6.0: 1276 + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} 1277 + engines: {node: '>=0.10'} 1278 + hasBin: true 1279 + 1280 + pify@3.0.0: 1281 + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} 1282 + engines: {node: '>=4'} 1283 + 1284 + pify@4.0.1: 1285 + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} 1286 + engines: {node: '>=6'} 1287 + 1288 + possible-typed-array-names@1.0.0: 1289 + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} 1290 + engines: {node: '>= 0.4'} 1291 + 1292 + prettier@2.8.8: 1293 + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} 1294 + engines: {node: '>=10.13.0'} 1295 + hasBin: true 1296 + 1297 + prettier@3.4.2: 1298 + resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==} 1299 + engines: {node: '>=14'} 1300 + hasBin: true 1301 + 1302 + queue-microtask@1.2.3: 1303 + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1304 + 1305 + randombytes@2.1.0: 1306 + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} 1307 + 1308 + read-pkg@3.0.0: 1309 + resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} 1310 + engines: {node: '>=4'} 1311 + 1312 + read-yaml-file@1.1.0: 1313 + resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} 1314 + engines: {node: '>=6'} 1315 + 1316 + reflect.getprototypeof@1.0.10: 1317 + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} 1318 + engines: {node: '>= 0.4'} 1319 + 1320 + regenerator-runtime@0.14.1: 1321 + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} 1322 + 1323 + regexp.prototype.flags@1.5.4: 1324 + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} 1325 + engines: {node: '>= 0.4'} 1326 + 1327 + resolve-from@5.0.0: 1328 + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 1329 + engines: {node: '>=8'} 1330 + 1331 + resolve@1.22.10: 1332 + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} 1333 + engines: {node: '>= 0.4'} 1334 + hasBin: true 1335 + 1336 + restore-cursor@5.1.0: 1337 + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} 1338 + engines: {node: '>=18'} 1339 + 1340 + reusify@1.0.4: 1341 + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1342 + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1343 + 1344 + rfdc@1.4.1: 1345 + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} 1346 + 1347 + rimraf@6.0.1: 1348 + resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} 1349 + engines: {node: 20 || >=22} 1350 + hasBin: true 1351 + 1352 + rollup-plugin-cjs-check@1.0.3: 1353 + resolution: {integrity: sha512-l8Gn8fm0YsAUuCVPmJ9CjwX5D98xyjc7iBlKfik5RGgXrV35nBwKCb+xbsK2oMrWMIRdLWsfyVUBM153e2zvYg==} 1354 + engines: {node: '>=14.0.0'} 1355 + peerDependencies: 1356 + rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 1357 + 1358 + rollup-plugin-dts@6.1.1: 1359 + resolution: {integrity: sha512-aSHRcJ6KG2IHIioYlvAOcEq6U99sVtqDDKVhnwt70rW6tsz3tv5OSjEiWcgzfsHdLyGXZ/3b/7b/+Za3Y6r1XA==} 1360 + engines: {node: '>=16'} 1361 + peerDependencies: 1362 + rollup: ^3.29.4 || ^4 1363 + typescript: ^4.5 || ^5.0 1364 + 1365 + rollup@4.32.1: 1366 + resolution: {integrity: sha512-z+aeEsOeEa3mEbS1Tjl6sAZ8NE3+AalQz1RJGj81M+fizusbdDMoEJwdJNHfaB40Scr4qNu+welOfes7maKonA==} 1367 + engines: {node: '>=18.0.0', npm: '>=8.0.0'} 1368 + hasBin: true 1369 + 1370 + run-parallel@1.2.0: 1371 + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1372 + 1373 + safe-array-concat@1.1.3: 1374 + resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} 1375 + engines: {node: '>=0.4'} 1376 + 1377 + safe-buffer@5.2.1: 1378 + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 1379 + 1380 + safe-push-apply@1.0.0: 1381 + resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} 1382 + engines: {node: '>= 0.4'} 1383 + 1384 + safe-regex-test@1.1.0: 1385 + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} 1386 + engines: {node: '>= 0.4'} 1387 + 1388 + safer-buffer@2.1.2: 1389 + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 1390 + 1391 + semver@5.7.2: 1392 + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} 1393 + hasBin: true 1394 + 1395 + semver@6.3.1: 1396 + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 1397 + hasBin: true 1398 + 1399 + semver@7.7.0: 1400 + resolution: {integrity: sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==} 1401 + engines: {node: '>=10'} 1402 + hasBin: true 1403 + 1404 + serialize-javascript@6.0.2: 1405 + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} 1406 + 1407 + set-function-length@1.2.2: 1408 + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} 1409 + engines: {node: '>= 0.4'} 1410 + 1411 + set-function-name@2.0.2: 1412 + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} 1413 + engines: {node: '>= 0.4'} 1414 + 1415 + set-proto@1.0.0: 1416 + resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} 1417 + engines: {node: '>= 0.4'} 1418 + 1419 + shebang-command@1.2.0: 1420 + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} 1421 + engines: {node: '>=0.10.0'} 1422 + 1423 + shebang-command@2.0.0: 1424 + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1425 + engines: {node: '>=8'} 1426 + 1427 + shebang-regex@1.0.0: 1428 + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} 1429 + engines: {node: '>=0.10.0'} 1430 + 1431 + shebang-regex@3.0.0: 1432 + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1433 + engines: {node: '>=8'} 1434 + 1435 + shell-quote@1.8.2: 1436 + resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==} 1437 + engines: {node: '>= 0.4'} 1438 + 1439 + side-channel-list@1.0.0: 1440 + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} 1441 + engines: {node: '>= 0.4'} 1442 + 1443 + side-channel-map@1.0.1: 1444 + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} 1445 + engines: {node: '>= 0.4'} 1446 + 1447 + side-channel-weakmap@1.0.2: 1448 + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} 1449 + engines: {node: '>= 0.4'} 1450 + 1451 + side-channel@1.1.0: 1452 + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} 1453 + engines: {node: '>= 0.4'} 1454 + 1455 + signal-exit@4.1.0: 1456 + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1457 + engines: {node: '>=14'} 1458 + 1459 + slash@3.0.0: 1460 + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1461 + engines: {node: '>=8'} 1462 + 1463 + slice-ansi@5.0.0: 1464 + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} 1465 + engines: {node: '>=12'} 1466 + 1467 + slice-ansi@7.1.0: 1468 + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} 1469 + engines: {node: '>=18'} 1470 + 1471 + smob@1.5.0: 1472 + resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} 1473 + 1474 + source-map-support@0.5.21: 1475 + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 1476 + 1477 + source-map@0.6.1: 1478 + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1479 + engines: {node: '>=0.10.0'} 1480 + 1481 + spawndamnit@3.0.1: 1482 + resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} 1483 + 1484 + spdx-correct@3.2.0: 1485 + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} 1486 + 1487 + spdx-exceptions@2.5.0: 1488 + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} 1489 + 1490 + spdx-expression-parse@3.0.1: 1491 + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} 1492 + 1493 + spdx-license-ids@3.0.21: 1494 + resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==} 1495 + 1496 + sprintf-js@1.0.3: 1497 + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} 1498 + 1499 + string-argv@0.3.2: 1500 + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} 1501 + engines: {node: '>=0.6.19'} 1502 + 1503 + string-width@4.2.3: 1504 + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1505 + engines: {node: '>=8'} 1506 + 1507 + string-width@5.1.2: 1508 + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 1509 + engines: {node: '>=12'} 1510 + 1511 + string-width@7.2.0: 1512 + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} 1513 + engines: {node: '>=18'} 1514 + 1515 + string.prototype.padend@3.1.6: 1516 + resolution: {integrity: sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==} 1517 + engines: {node: '>= 0.4'} 1518 + 1519 + string.prototype.trim@1.2.10: 1520 + resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} 1521 + engines: {node: '>= 0.4'} 1522 + 1523 + string.prototype.trimend@1.0.9: 1524 + resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} 1525 + engines: {node: '>= 0.4'} 1526 + 1527 + string.prototype.trimstart@1.0.8: 1528 + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} 1529 + engines: {node: '>= 0.4'} 1530 + 1531 + strip-ansi@6.0.1: 1532 + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1533 + engines: {node: '>=8'} 1534 + 1535 + strip-ansi@7.1.0: 1536 + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 1537 + engines: {node: '>=12'} 1538 + 1539 + strip-bom@3.0.0: 1540 + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 1541 + engines: {node: '>=4'} 1542 + 1543 + strip-final-newline@3.0.0: 1544 + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} 1545 + engines: {node: '>=12'} 1546 + 1547 + supports-color@5.5.0: 1548 + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 1549 + engines: {node: '>=4'} 1550 + 1551 + supports-preserve-symlinks-flag@1.0.0: 1552 + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1553 + engines: {node: '>= 0.4'} 1554 + 1555 + term-size@2.2.1: 1556 + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} 1557 + engines: {node: '>=8'} 1558 + 1559 + terser@5.37.0: 1560 + resolution: {integrity: sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==} 1561 + engines: {node: '>=10'} 1562 + hasBin: true 1563 + 1564 + tmp@0.0.33: 1565 + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} 1566 + engines: {node: '>=0.6.0'} 1567 + 1568 + to-regex-range@5.0.1: 1569 + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1570 + engines: {node: '>=8.0'} 1571 + 1572 + tr46@0.0.3: 1573 + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} 1574 + 1575 + typed-array-buffer@1.0.3: 1576 + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} 1577 + engines: {node: '>= 0.4'} 1578 + 1579 + typed-array-byte-length@1.0.3: 1580 + resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} 1581 + engines: {node: '>= 0.4'} 1582 + 1583 + typed-array-byte-offset@1.0.4: 1584 + resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} 1585 + engines: {node: '>= 0.4'} 1586 + 1587 + typed-array-length@1.0.7: 1588 + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} 1589 + engines: {node: '>= 0.4'} 1590 + 1591 + typescript@5.7.3: 1592 + resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} 1593 + engines: {node: '>=14.17'} 1594 + hasBin: true 1595 + 1596 + unbox-primitive@1.1.0: 1597 + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} 1598 + engines: {node: '>= 0.4'} 1599 + 1600 + undici-types@6.20.0: 1601 + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} 1602 + 1603 + universalify@0.1.2: 1604 + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} 1605 + engines: {node: '>= 4.0.0'} 1606 + 1607 + update-browserslist-db@1.1.2: 1608 + resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==} 1609 + hasBin: true 1610 + peerDependencies: 1611 + browserslist: '>= 4.21.0' 1612 + 1613 + validate-npm-package-license@3.0.4: 1614 + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} 1615 + 1616 + webidl-conversions@3.0.1: 1617 + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} 1618 + 1619 + whatwg-url@5.0.0: 1620 + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} 1621 + 1622 + which-boxed-primitive@1.1.1: 1623 + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} 1624 + engines: {node: '>= 0.4'} 1625 + 1626 + which-builtin-type@1.2.1: 1627 + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} 1628 + engines: {node: '>= 0.4'} 1629 + 1630 + which-collection@1.0.2: 1631 + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} 1632 + engines: {node: '>= 0.4'} 1633 + 1634 + which-typed-array@1.1.18: 1635 + resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} 1636 + engines: {node: '>= 0.4'} 1637 + 1638 + which@1.3.1: 1639 + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} 1640 + hasBin: true 1641 + 1642 + which@2.0.2: 1643 + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1644 + engines: {node: '>= 8'} 1645 + hasBin: true 1646 + 1647 + wrap-ansi@7.0.0: 1648 + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1649 + engines: {node: '>=10'} 1650 + 1651 + wrap-ansi@8.1.0: 1652 + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 1653 + engines: {node: '>=12'} 1654 + 1655 + wrap-ansi@9.0.0: 1656 + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} 1657 + engines: {node: '>=18'} 1658 + 1659 + yallist@3.1.1: 1660 + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 1661 + 1662 + yaml@2.7.0: 1663 + resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} 1664 + engines: {node: '>= 14'} 1665 + hasBin: true 1666 + 1667 + snapshots: 1668 + 1669 + '@ampproject/remapping@2.3.0': 1670 + dependencies: 1671 + '@jridgewell/gen-mapping': 0.3.8 1672 + '@jridgewell/trace-mapping': 0.3.25 1673 + 1674 + '@babel/code-frame@7.26.2': 1675 + dependencies: 1676 + '@babel/helper-validator-identifier': 7.25.9 1677 + js-tokens: 4.0.0 1678 + picocolors: 1.1.1 1679 + 1680 + '@babel/compat-data@7.26.5': {} 1681 + 1682 + '@babel/core@7.26.7': 1683 + dependencies: 1684 + '@ampproject/remapping': 2.3.0 1685 + '@babel/code-frame': 7.26.2 1686 + '@babel/generator': 7.26.5 1687 + '@babel/helper-compilation-targets': 7.26.5 1688 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.7) 1689 + '@babel/helpers': 7.26.7 1690 + '@babel/parser': 7.26.7 1691 + '@babel/template': 7.25.9 1692 + '@babel/traverse': 7.26.7 1693 + '@babel/types': 7.26.7 1694 + convert-source-map: 2.0.0 1695 + debug: 4.4.0 1696 + gensync: 1.0.0-beta.2 1697 + json5: 2.2.3 1698 + semver: 6.3.1 1699 + transitivePeerDependencies: 1700 + - supports-color 1701 + 1702 + '@babel/generator@7.26.5': 1703 + dependencies: 1704 + '@babel/parser': 7.26.7 1705 + '@babel/types': 7.26.7 1706 + '@jridgewell/gen-mapping': 0.3.8 1707 + '@jridgewell/trace-mapping': 0.3.25 1708 + jsesc: 3.1.0 1709 + 1710 + '@babel/helper-annotate-as-pure@7.25.9': 1711 + dependencies: 1712 + '@babel/types': 7.26.7 1713 + 1714 + '@babel/helper-compilation-targets@7.26.5': 1715 + dependencies: 1716 + '@babel/compat-data': 7.26.5 1717 + '@babel/helper-validator-option': 7.25.9 1718 + browserslist: 4.24.4 1719 + lru-cache: 5.1.1 1720 + semver: 6.3.1 1721 + 1722 + '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.7)': 1723 + dependencies: 1724 + '@babel/core': 7.26.7 1725 + '@babel/helper-annotate-as-pure': 7.25.9 1726 + '@babel/helper-member-expression-to-functions': 7.25.9 1727 + '@babel/helper-optimise-call-expression': 7.25.9 1728 + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.7) 1729 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 1730 + '@babel/traverse': 7.26.7 1731 + semver: 6.3.1 1732 + transitivePeerDependencies: 1733 + - supports-color 1734 + 1735 + '@babel/helper-member-expression-to-functions@7.25.9': 1736 + dependencies: 1737 + '@babel/traverse': 7.26.7 1738 + '@babel/types': 7.26.7 1739 + transitivePeerDependencies: 1740 + - supports-color 1741 + 1742 + '@babel/helper-module-imports@7.25.9': 1743 + dependencies: 1744 + '@babel/traverse': 7.26.7 1745 + '@babel/types': 7.26.7 1746 + transitivePeerDependencies: 1747 + - supports-color 1748 + 1749 + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.7)': 1750 + dependencies: 1751 + '@babel/core': 7.26.7 1752 + '@babel/helper-module-imports': 7.25.9 1753 + '@babel/helper-validator-identifier': 7.25.9 1754 + '@babel/traverse': 7.26.7 1755 + transitivePeerDependencies: 1756 + - supports-color 1757 + 1758 + '@babel/helper-optimise-call-expression@7.25.9': 1759 + dependencies: 1760 + '@babel/types': 7.26.7 1761 + 1762 + '@babel/helper-plugin-utils@7.26.5': {} 1763 + 1764 + '@babel/helper-replace-supers@7.26.5(@babel/core@7.26.7)': 1765 + dependencies: 1766 + '@babel/core': 7.26.7 1767 + '@babel/helper-member-expression-to-functions': 7.25.9 1768 + '@babel/helper-optimise-call-expression': 7.25.9 1769 + '@babel/traverse': 7.26.7 1770 + transitivePeerDependencies: 1771 + - supports-color 1772 + 1773 + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': 1774 + dependencies: 1775 + '@babel/traverse': 7.26.7 1776 + '@babel/types': 7.26.7 1777 + transitivePeerDependencies: 1778 + - supports-color 1779 + 1780 + '@babel/helper-string-parser@7.25.9': {} 1781 + 1782 + '@babel/helper-validator-identifier@7.25.9': {} 1783 + 1784 + '@babel/helper-validator-option@7.25.9': {} 1785 + 1786 + '@babel/helpers@7.26.7': 1787 + dependencies: 1788 + '@babel/template': 7.25.9 1789 + '@babel/types': 7.26.7 1790 + 1791 + '@babel/parser@7.26.7': 1792 + dependencies: 1793 + '@babel/types': 7.26.7 1794 + 1795 + '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.7)': 1796 + dependencies: 1797 + '@babel/core': 7.26.7 1798 + '@babel/helper-plugin-utils': 7.26.5 1799 + 1800 + '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.7)': 1801 + dependencies: 1802 + '@babel/core': 7.26.7 1803 + '@babel/helper-plugin-utils': 7.26.5 1804 + 1805 + '@babel/plugin-transform-typescript@7.26.7(@babel/core@7.26.7)': 1806 + dependencies: 1807 + '@babel/core': 7.26.7 1808 + '@babel/helper-annotate-as-pure': 7.25.9 1809 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.7) 1810 + '@babel/helper-plugin-utils': 7.26.5 1811 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 1812 + '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.7) 1813 + transitivePeerDependencies: 1814 + - supports-color 1815 + 1816 + '@babel/runtime@7.26.7': 1817 + dependencies: 1818 + regenerator-runtime: 0.14.1 1819 + 1820 + '@babel/template@7.25.9': 1821 + dependencies: 1822 + '@babel/code-frame': 7.26.2 1823 + '@babel/parser': 7.26.7 1824 + '@babel/types': 7.26.7 1825 + 1826 + '@babel/traverse@7.26.7': 1827 + dependencies: 1828 + '@babel/code-frame': 7.26.2 1829 + '@babel/generator': 7.26.5 1830 + '@babel/parser': 7.26.7 1831 + '@babel/template': 7.25.9 1832 + '@babel/types': 7.26.7 1833 + debug: 4.4.0 1834 + globals: 11.12.0 1835 + transitivePeerDependencies: 1836 + - supports-color 1837 + 1838 + '@babel/types@7.26.7': 1839 + dependencies: 1840 + '@babel/helper-string-parser': 7.25.9 1841 + '@babel/helper-validator-identifier': 7.25.9 1842 + 1843 + '@changesets/apply-release-plan@7.0.8': 1844 + dependencies: 1845 + '@changesets/config': 3.0.5 1846 + '@changesets/get-version-range-type': 0.4.0 1847 + '@changesets/git': 3.0.2 1848 + '@changesets/should-skip-package': 0.1.1 1849 + '@changesets/types': 6.0.0 1850 + '@manypkg/get-packages': 1.1.3 1851 + detect-indent: 6.1.0 1852 + fs-extra: 7.0.1 1853 + lodash.startcase: 4.4.0 1854 + outdent: 0.5.0 1855 + prettier: 2.8.8 1856 + resolve-from: 5.0.0 1857 + semver: 7.7.0 1858 + 1859 + '@changesets/assemble-release-plan@6.0.5': 1860 + dependencies: 1861 + '@changesets/errors': 0.2.0 1862 + '@changesets/get-dependents-graph': 2.1.2 1863 + '@changesets/should-skip-package': 0.1.1 1864 + '@changesets/types': 6.0.0 1865 + '@manypkg/get-packages': 1.1.3 1866 + semver: 7.7.0 1867 + 1868 + '@changesets/changelog-git@0.2.0': 1869 + dependencies: 1870 + '@changesets/types': 6.0.0 1871 + 1872 + '@changesets/cli@2.27.12': 1873 + dependencies: 1874 + '@changesets/apply-release-plan': 7.0.8 1875 + '@changesets/assemble-release-plan': 6.0.5 1876 + '@changesets/changelog-git': 0.2.0 1877 + '@changesets/config': 3.0.5 1878 + '@changesets/errors': 0.2.0 1879 + '@changesets/get-dependents-graph': 2.1.2 1880 + '@changesets/get-release-plan': 4.0.6 1881 + '@changesets/git': 3.0.2 1882 + '@changesets/logger': 0.1.1 1883 + '@changesets/pre': 2.0.1 1884 + '@changesets/read': 0.6.2 1885 + '@changesets/should-skip-package': 0.1.1 1886 + '@changesets/types': 6.0.0 1887 + '@changesets/write': 0.3.2 1888 + '@manypkg/get-packages': 1.1.3 1889 + ansi-colors: 4.1.3 1890 + ci-info: 3.9.0 1891 + enquirer: 2.4.1 1892 + external-editor: 3.1.0 1893 + fs-extra: 7.0.1 1894 + mri: 1.2.0 1895 + p-limit: 2.3.0 1896 + package-manager-detector: 0.2.9 1897 + picocolors: 1.1.1 1898 + resolve-from: 5.0.0 1899 + semver: 7.7.0 1900 + spawndamnit: 3.0.1 1901 + term-size: 2.2.1 1902 + 1903 + '@changesets/config@3.0.5': 1904 + dependencies: 1905 + '@changesets/errors': 0.2.0 1906 + '@changesets/get-dependents-graph': 2.1.2 1907 + '@changesets/logger': 0.1.1 1908 + '@changesets/types': 6.0.0 1909 + '@manypkg/get-packages': 1.1.3 1910 + fs-extra: 7.0.1 1911 + micromatch: 4.0.8 1912 + 1913 + '@changesets/errors@0.2.0': 1914 + dependencies: 1915 + extendable-error: 0.1.7 1916 + 1917 + '@changesets/get-dependents-graph@2.1.2': 1918 + dependencies: 1919 + '@changesets/types': 6.0.0 1920 + '@manypkg/get-packages': 1.1.3 1921 + picocolors: 1.1.1 1922 + semver: 7.7.0 1923 + 1924 + '@changesets/get-github-info@0.6.0': 1925 + dependencies: 1926 + dataloader: 1.4.0 1927 + node-fetch: 2.7.0 1928 + transitivePeerDependencies: 1929 + - encoding 1930 + 1931 + '@changesets/get-release-plan@4.0.6': 1932 + dependencies: 1933 + '@changesets/assemble-release-plan': 6.0.5 1934 + '@changesets/config': 3.0.5 1935 + '@changesets/pre': 2.0.1 1936 + '@changesets/read': 0.6.2 1937 + '@changesets/types': 6.0.0 1938 + '@manypkg/get-packages': 1.1.3 1939 + 1940 + '@changesets/get-version-range-type@0.4.0': {} 1941 + 1942 + '@changesets/git@3.0.2': 1943 + dependencies: 1944 + '@changesets/errors': 0.2.0 1945 + '@manypkg/get-packages': 1.1.3 1946 + is-subdir: 1.2.0 1947 + micromatch: 4.0.8 1948 + spawndamnit: 3.0.1 1949 + 1950 + '@changesets/logger@0.1.1': 1951 + dependencies: 1952 + picocolors: 1.1.1 1953 + 1954 + '@changesets/parse@0.4.0': 1955 + dependencies: 1956 + '@changesets/types': 6.0.0 1957 + js-yaml: 3.14.1 1958 + 1959 + '@changesets/pre@2.0.1': 1960 + dependencies: 1961 + '@changesets/errors': 0.2.0 1962 + '@changesets/types': 6.0.0 1963 + '@manypkg/get-packages': 1.1.3 1964 + fs-extra: 7.0.1 1965 + 1966 + '@changesets/read@0.6.2': 1967 + dependencies: 1968 + '@changesets/git': 3.0.2 1969 + '@changesets/logger': 0.1.1 1970 + '@changesets/parse': 0.4.0 1971 + '@changesets/types': 6.0.0 1972 + fs-extra: 7.0.1 1973 + p-filter: 2.1.0 1974 + picocolors: 1.1.1 1975 + 1976 + '@changesets/should-skip-package@0.1.1': 1977 + dependencies: 1978 + '@changesets/types': 6.0.0 1979 + '@manypkg/get-packages': 1.1.3 1980 + 1981 + '@changesets/types@4.1.0': {} 1982 + 1983 + '@changesets/types@6.0.0': {} 1984 + 1985 + '@changesets/write@0.3.2': 1986 + dependencies: 1987 + '@changesets/types': 6.0.0 1988 + fs-extra: 7.0.1 1989 + human-id: 1.0.2 1990 + prettier: 2.8.8 1991 + 1992 + '@isaacs/cliui@8.0.2': 1993 + dependencies: 1994 + string-width: 5.1.2 1995 + string-width-cjs: string-width@4.2.3 1996 + strip-ansi: 7.1.0 1997 + strip-ansi-cjs: strip-ansi@6.0.1 1998 + wrap-ansi: 8.1.0 1999 + wrap-ansi-cjs: wrap-ansi@7.0.0 2000 + 2001 + '@jridgewell/gen-mapping@0.3.8': 2002 + dependencies: 2003 + '@jridgewell/set-array': 1.2.1 2004 + '@jridgewell/sourcemap-codec': 1.5.0 2005 + '@jridgewell/trace-mapping': 0.3.25 2006 + 2007 + '@jridgewell/resolve-uri@3.1.2': {} 2008 + 2009 + '@jridgewell/set-array@1.2.1': {} 2010 + 2011 + '@jridgewell/source-map@0.3.6': 2012 + dependencies: 2013 + '@jridgewell/gen-mapping': 0.3.8 2014 + '@jridgewell/trace-mapping': 0.3.25 2015 + 2016 + '@jridgewell/sourcemap-codec@1.5.0': {} 2017 + 2018 + '@jridgewell/trace-mapping@0.3.25': 2019 + dependencies: 2020 + '@jridgewell/resolve-uri': 3.1.2 2021 + '@jridgewell/sourcemap-codec': 1.5.0 2022 + 2023 + '@manypkg/find-root@1.1.0': 2024 + dependencies: 2025 + '@babel/runtime': 7.26.7 2026 + '@types/node': 12.20.55 2027 + find-up: 4.1.0 2028 + fs-extra: 8.1.0 2029 + 2030 + '@manypkg/get-packages@1.1.3': 2031 + dependencies: 2032 + '@babel/runtime': 7.26.7 2033 + '@changesets/types': 4.1.0 2034 + '@manypkg/find-root': 1.1.0 2035 + fs-extra: 8.1.0 2036 + globby: 11.1.0 2037 + read-yaml-file: 1.1.0 2038 + 2039 + '@nodelib/fs.scandir@2.1.5': 2040 + dependencies: 2041 + '@nodelib/fs.stat': 2.0.5 2042 + run-parallel: 1.2.0 2043 + 2044 + '@nodelib/fs.stat@2.0.5': {} 2045 + 2046 + '@nodelib/fs.walk@1.2.8': 2047 + dependencies: 2048 + '@nodelib/fs.scandir': 2.1.5 2049 + fastq: 1.19.0 2050 + 2051 + '@rollup/plugin-babel@6.0.4(@babel/core@7.26.7)(rollup@4.32.1)': 2052 + dependencies: 2053 + '@babel/core': 7.26.7 2054 + '@babel/helper-module-imports': 7.25.9 2055 + '@rollup/pluginutils': 5.1.4(rollup@4.32.1) 2056 + optionalDependencies: 2057 + rollup: 4.32.1 2058 + transitivePeerDependencies: 2059 + - supports-color 2060 + 2061 + '@rollup/plugin-commonjs@28.0.2(rollup@4.32.1)': 2062 + dependencies: 2063 + '@rollup/pluginutils': 5.1.4(rollup@4.32.1) 2064 + commondir: 1.0.1 2065 + estree-walker: 2.0.2 2066 + fdir: 6.4.3(picomatch@4.0.2) 2067 + is-reference: 1.2.1 2068 + magic-string: 0.30.17 2069 + picomatch: 4.0.2 2070 + optionalDependencies: 2071 + rollup: 4.32.1 2072 + 2073 + '@rollup/plugin-node-resolve@16.0.0(rollup@4.32.1)': 2074 + dependencies: 2075 + '@rollup/pluginutils': 5.1.4(rollup@4.32.1) 2076 + '@types/resolve': 1.20.2 2077 + deepmerge: 4.3.1 2078 + is-module: 1.0.0 2079 + resolve: 1.22.10 2080 + optionalDependencies: 2081 + rollup: 4.32.1 2082 + 2083 + '@rollup/plugin-terser@0.4.4(rollup@4.32.1)': 2084 + dependencies: 2085 + serialize-javascript: 6.0.2 2086 + smob: 1.5.0 2087 + terser: 5.37.0 2088 + optionalDependencies: 2089 + rollup: 4.32.1 2090 + 2091 + '@rollup/pluginutils@5.1.4(rollup@4.32.1)': 2092 + dependencies: 2093 + '@types/estree': 1.0.6 2094 + estree-walker: 2.0.2 2095 + picomatch: 4.0.2 2096 + optionalDependencies: 2097 + rollup: 4.32.1 2098 + 2099 + '@rollup/rollup-android-arm-eabi@4.32.1': 2100 + optional: true 2101 + 2102 + '@rollup/rollup-android-arm64@4.32.1': 2103 + optional: true 2104 + 2105 + '@rollup/rollup-darwin-arm64@4.32.1': 2106 + optional: true 2107 + 2108 + '@rollup/rollup-darwin-x64@4.32.1': 2109 + optional: true 2110 + 2111 + '@rollup/rollup-freebsd-arm64@4.32.1': 2112 + optional: true 2113 + 2114 + '@rollup/rollup-freebsd-x64@4.32.1': 2115 + optional: true 2116 + 2117 + '@rollup/rollup-linux-arm-gnueabihf@4.32.1': 2118 + optional: true 2119 + 2120 + '@rollup/rollup-linux-arm-musleabihf@4.32.1': 2121 + optional: true 2122 + 2123 + '@rollup/rollup-linux-arm64-gnu@4.32.1': 2124 + optional: true 2125 + 2126 + '@rollup/rollup-linux-arm64-musl@4.32.1': 2127 + optional: true 2128 + 2129 + '@rollup/rollup-linux-loongarch64-gnu@4.32.1': 2130 + optional: true 2131 + 2132 + '@rollup/rollup-linux-powerpc64le-gnu@4.32.1': 2133 + optional: true 2134 + 2135 + '@rollup/rollup-linux-riscv64-gnu@4.32.1': 2136 + optional: true 2137 + 2138 + '@rollup/rollup-linux-s390x-gnu@4.32.1': 2139 + optional: true 2140 + 2141 + '@rollup/rollup-linux-x64-gnu@4.32.1': 2142 + optional: true 2143 + 2144 + '@rollup/rollup-linux-x64-musl@4.32.1': 2145 + optional: true 2146 + 2147 + '@rollup/rollup-win32-arm64-msvc@4.32.1': 2148 + optional: true 2149 + 2150 + '@rollup/rollup-win32-ia32-msvc@4.32.1': 2151 + optional: true 2152 + 2153 + '@rollup/rollup-win32-x64-msvc@4.32.1': 2154 + optional: true 2155 + 2156 + '@types/estree@1.0.6': {} 2157 + 2158 + '@types/node@12.20.55': {} 2159 + 2160 + '@types/node@22.12.0': 2161 + dependencies: 2162 + undici-types: 6.20.0 2163 + 2164 + '@types/resolve@1.20.2': {} 2165 + 2166 + acorn@8.14.0: {} 2167 + 2168 + ansi-colors@4.1.3: {} 2169 + 2170 + ansi-escapes@7.0.0: 2171 + dependencies: 2172 + environment: 1.1.0 2173 + 2174 + ansi-regex@5.0.1: {} 2175 + 2176 + ansi-regex@6.1.0: {} 2177 + 2178 + ansi-styles@3.2.1: 2179 + dependencies: 2180 + color-convert: 1.9.3 2181 + 2182 + ansi-styles@4.3.0: 2183 + dependencies: 2184 + color-convert: 2.0.1 2185 + 2186 + ansi-styles@6.2.1: {} 2187 + 2188 + argparse@1.0.10: 2189 + dependencies: 2190 + sprintf-js: 1.0.3 2191 + 2192 + array-buffer-byte-length@1.0.2: 2193 + dependencies: 2194 + call-bound: 1.0.3 2195 + is-array-buffer: 3.0.5 2196 + 2197 + array-union@2.1.0: {} 2198 + 2199 + arraybuffer.prototype.slice@1.0.4: 2200 + dependencies: 2201 + array-buffer-byte-length: 1.0.2 2202 + call-bind: 1.0.8 2203 + define-properties: 1.2.1 2204 + es-abstract: 1.23.9 2205 + es-errors: 1.3.0 2206 + get-intrinsic: 1.2.7 2207 + is-array-buffer: 3.0.5 2208 + 2209 + async-function@1.0.0: {} 2210 + 2211 + available-typed-arrays@1.0.7: 2212 + dependencies: 2213 + possible-typed-array-names: 1.0.0 2214 + 2215 + balanced-match@1.0.2: {} 2216 + 2217 + better-path-resolve@1.0.0: 2218 + dependencies: 2219 + is-windows: 1.0.2 2220 + 2221 + brace-expansion@1.1.11: 2222 + dependencies: 2223 + balanced-match: 1.0.2 2224 + concat-map: 0.0.1 2225 + 2226 + brace-expansion@2.0.1: 2227 + dependencies: 2228 + balanced-match: 1.0.2 2229 + 2230 + braces@3.0.3: 2231 + dependencies: 2232 + fill-range: 7.1.1 2233 + 2234 + browserslist@4.24.4: 2235 + dependencies: 2236 + caniuse-lite: 1.0.30001696 2237 + electron-to-chromium: 1.5.90 2238 + node-releases: 2.0.19 2239 + update-browserslist-db: 1.1.2(browserslist@4.24.4) 2240 + 2241 + buffer-from@1.1.2: {} 2242 + 2243 + call-bind-apply-helpers@1.0.1: 2244 + dependencies: 2245 + es-errors: 1.3.0 2246 + function-bind: 1.1.2 2247 + 2248 + call-bind@1.0.8: 2249 + dependencies: 2250 + call-bind-apply-helpers: 1.0.1 2251 + es-define-property: 1.0.1 2252 + get-intrinsic: 1.2.7 2253 + set-function-length: 1.2.2 2254 + 2255 + call-bound@1.0.3: 2256 + dependencies: 2257 + call-bind-apply-helpers: 1.0.1 2258 + get-intrinsic: 1.2.7 2259 + 2260 + caniuse-lite@1.0.30001696: {} 2261 + 2262 + chalk@2.4.2: 2263 + dependencies: 2264 + ansi-styles: 3.2.1 2265 + escape-string-regexp: 1.0.5 2266 + supports-color: 5.5.0 2267 + 2268 + chalk@5.4.1: {} 2269 + 2270 + chardet@0.7.0: {} 2271 + 2272 + ci-info@3.9.0: {} 2273 + 2274 + cjs-module-lexer@1.4.2: {} 2275 + 2276 + cli-cursor@5.0.0: 2277 + dependencies: 2278 + restore-cursor: 5.1.0 2279 + 2280 + cli-truncate@4.0.0: 2281 + dependencies: 2282 + slice-ansi: 5.0.0 2283 + string-width: 7.2.0 2284 + 2285 + color-convert@1.9.3: 2286 + dependencies: 2287 + color-name: 1.1.3 2288 + 2289 + color-convert@2.0.1: 2290 + dependencies: 2291 + color-name: 1.1.4 2292 + 2293 + color-name@1.1.3: {} 2294 + 2295 + color-name@1.1.4: {} 2296 + 2297 + colorette@2.0.20: {} 2298 + 2299 + commander@13.1.0: {} 2300 + 2301 + commander@2.20.3: {} 2302 + 2303 + commondir@1.0.1: {} 2304 + 2305 + concat-map@0.0.1: {} 2306 + 2307 + convert-source-map@2.0.0: {} 2308 + 2309 + cross-spawn@6.0.6: 2310 + dependencies: 2311 + nice-try: 1.0.5 2312 + path-key: 2.0.1 2313 + semver: 5.7.2 2314 + shebang-command: 1.2.0 2315 + which: 1.3.1 2316 + 2317 + cross-spawn@7.0.6: 2318 + dependencies: 2319 + path-key: 3.1.1 2320 + shebang-command: 2.0.0 2321 + which: 2.0.2 2322 + 2323 + data-view-buffer@1.0.2: 2324 + dependencies: 2325 + call-bound: 1.0.3 2326 + es-errors: 1.3.0 2327 + is-data-view: 1.0.2 2328 + 2329 + data-view-byte-length@1.0.2: 2330 + dependencies: 2331 + call-bound: 1.0.3 2332 + es-errors: 1.3.0 2333 + is-data-view: 1.0.2 2334 + 2335 + data-view-byte-offset@1.0.1: 2336 + dependencies: 2337 + call-bound: 1.0.3 2338 + es-errors: 1.3.0 2339 + is-data-view: 1.0.2 2340 + 2341 + dataloader@1.4.0: {} 2342 + 2343 + debug@4.4.0: 2344 + dependencies: 2345 + ms: 2.1.3 2346 + 2347 + deepmerge@4.3.1: {} 2348 + 2349 + define-data-property@1.1.4: 2350 + dependencies: 2351 + es-define-property: 1.0.1 2352 + es-errors: 1.3.0 2353 + gopd: 1.2.0 2354 + 2355 + define-properties@1.2.1: 2356 + dependencies: 2357 + define-data-property: 1.1.4 2358 + has-property-descriptors: 1.0.2 2359 + object-keys: 1.1.1 2360 + 2361 + detect-indent@6.1.0: {} 2362 + 2363 + dir-glob@3.0.1: 2364 + dependencies: 2365 + path-type: 4.0.0 2366 + 2367 + dotenv@16.4.7: {} 2368 + 2369 + dunder-proto@1.0.1: 2370 + dependencies: 2371 + call-bind-apply-helpers: 1.0.1 2372 + es-errors: 1.3.0 2373 + gopd: 1.2.0 2374 + 2375 + eastasianwidth@0.2.0: {} 2376 + 2377 + electron-to-chromium@1.5.90: {} 2378 + 2379 + emoji-regex@10.4.0: {} 2380 + 2381 + emoji-regex@8.0.0: {} 2382 + 2383 + emoji-regex@9.2.2: {} 2384 + 2385 + enquirer@2.4.1: 2386 + dependencies: 2387 + ansi-colors: 4.1.3 2388 + strip-ansi: 6.0.1 2389 + 2390 + environment@1.1.0: {} 2391 + 2392 + error-ex@1.3.2: 2393 + dependencies: 2394 + is-arrayish: 0.2.1 2395 + 2396 + es-abstract@1.23.9: 2397 + dependencies: 2398 + array-buffer-byte-length: 1.0.2 2399 + arraybuffer.prototype.slice: 1.0.4 2400 + available-typed-arrays: 1.0.7 2401 + call-bind: 1.0.8 2402 + call-bound: 1.0.3 2403 + data-view-buffer: 1.0.2 2404 + data-view-byte-length: 1.0.2 2405 + data-view-byte-offset: 1.0.1 2406 + es-define-property: 1.0.1 2407 + es-errors: 1.3.0 2408 + es-object-atoms: 1.1.1 2409 + es-set-tostringtag: 2.1.0 2410 + es-to-primitive: 1.3.0 2411 + function.prototype.name: 1.1.8 2412 + get-intrinsic: 1.2.7 2413 + get-proto: 1.0.1 2414 + get-symbol-description: 1.1.0 2415 + globalthis: 1.0.4 2416 + gopd: 1.2.0 2417 + has-property-descriptors: 1.0.2 2418 + has-proto: 1.2.0 2419 + has-symbols: 1.1.0 2420 + hasown: 2.0.2 2421 + internal-slot: 1.1.0 2422 + is-array-buffer: 3.0.5 2423 + is-callable: 1.2.7 2424 + is-data-view: 1.0.2 2425 + is-regex: 1.2.1 2426 + is-shared-array-buffer: 1.0.4 2427 + is-string: 1.1.1 2428 + is-typed-array: 1.1.15 2429 + is-weakref: 1.1.0 2430 + math-intrinsics: 1.1.0 2431 + object-inspect: 1.13.3 2432 + object-keys: 1.1.1 2433 + object.assign: 4.1.7 2434 + own-keys: 1.0.1 2435 + regexp.prototype.flags: 1.5.4 2436 + safe-array-concat: 1.1.3 2437 + safe-push-apply: 1.0.0 2438 + safe-regex-test: 1.1.0 2439 + set-proto: 1.0.0 2440 + string.prototype.trim: 1.2.10 2441 + string.prototype.trimend: 1.0.9 2442 + string.prototype.trimstart: 1.0.8 2443 + typed-array-buffer: 1.0.3 2444 + typed-array-byte-length: 1.0.3 2445 + typed-array-byte-offset: 1.0.4 2446 + typed-array-length: 1.0.7 2447 + unbox-primitive: 1.1.0 2448 + which-typed-array: 1.1.18 2449 + 2450 + es-define-property@1.0.1: {} 2451 + 2452 + es-errors@1.3.0: {} 2453 + 2454 + es-object-atoms@1.1.1: 2455 + dependencies: 2456 + es-errors: 1.3.0 2457 + 2458 + es-set-tostringtag@2.1.0: 2459 + dependencies: 2460 + es-errors: 1.3.0 2461 + get-intrinsic: 1.2.7 2462 + has-tostringtag: 1.0.2 2463 + hasown: 2.0.2 2464 + 2465 + es-to-primitive@1.3.0: 2466 + dependencies: 2467 + is-callable: 1.2.7 2468 + is-date-object: 1.1.0 2469 + is-symbol: 1.1.1 2470 + 2471 + escalade@3.2.0: {} 2472 + 2473 + escape-string-regexp@1.0.5: {} 2474 + 2475 + esprima@4.0.1: {} 2476 + 2477 + estree-walker@2.0.2: {} 2478 + 2479 + eventemitter3@5.0.1: {} 2480 + 2481 + execa@8.0.1: 2482 + dependencies: 2483 + cross-spawn: 7.0.6 2484 + get-stream: 8.0.1 2485 + human-signals: 5.0.0 2486 + is-stream: 3.0.0 2487 + merge-stream: 2.0.0 2488 + npm-run-path: 5.3.0 2489 + onetime: 6.0.0 2490 + signal-exit: 4.1.0 2491 + strip-final-newline: 3.0.0 2492 + 2493 + extendable-error@0.1.7: {} 2494 + 2495 + external-editor@3.1.0: 2496 + dependencies: 2497 + chardet: 0.7.0 2498 + iconv-lite: 0.4.24 2499 + tmp: 0.0.33 2500 + 2501 + fast-glob@3.3.3: 2502 + dependencies: 2503 + '@nodelib/fs.stat': 2.0.5 2504 + '@nodelib/fs.walk': 1.2.8 2505 + glob-parent: 5.1.2 2506 + merge2: 1.4.1 2507 + micromatch: 4.0.8 2508 + 2509 + fastq@1.19.0: 2510 + dependencies: 2511 + reusify: 1.0.4 2512 + 2513 + fdir@6.4.3(picomatch@4.0.2): 2514 + optionalDependencies: 2515 + picomatch: 4.0.2 2516 + 2517 + fill-range@7.1.1: 2518 + dependencies: 2519 + to-regex-range: 5.0.1 2520 + 2521 + find-up@4.1.0: 2522 + dependencies: 2523 + locate-path: 5.0.0 2524 + path-exists: 4.0.0 2525 + 2526 + for-each@0.3.4: 2527 + dependencies: 2528 + is-callable: 1.2.7 2529 + 2530 + foreground-child@3.3.0: 2531 + dependencies: 2532 + cross-spawn: 7.0.6 2533 + signal-exit: 4.1.0 2534 + 2535 + fs-extra@7.0.1: 2536 + dependencies: 2537 + graceful-fs: 4.2.11 2538 + jsonfile: 4.0.0 2539 + universalify: 0.1.2 2540 + 2541 + fs-extra@8.1.0: 2542 + dependencies: 2543 + graceful-fs: 4.2.11 2544 + jsonfile: 4.0.0 2545 + universalify: 0.1.2 2546 + 2547 + fsevents@2.3.3: 2548 + optional: true 2549 + 2550 + function-bind@1.1.2: {} 2551 + 2552 + function.prototype.name@1.1.8: 2553 + dependencies: 2554 + call-bind: 1.0.8 2555 + call-bound: 1.0.3 2556 + define-properties: 1.2.1 2557 + functions-have-names: 1.2.3 2558 + hasown: 2.0.2 2559 + is-callable: 1.2.7 2560 + 2561 + functions-have-names@1.2.3: {} 2562 + 2563 + gensync@1.0.0-beta.2: {} 2564 + 2565 + get-east-asian-width@1.3.0: {} 2566 + 2567 + get-intrinsic@1.2.7: 2568 + dependencies: 2569 + call-bind-apply-helpers: 1.0.1 2570 + es-define-property: 1.0.1 2571 + es-errors: 1.3.0 2572 + es-object-atoms: 1.1.1 2573 + function-bind: 1.1.2 2574 + get-proto: 1.0.1 2575 + gopd: 1.2.0 2576 + has-symbols: 1.1.0 2577 + hasown: 2.0.2 2578 + math-intrinsics: 1.1.0 2579 + 2580 + get-proto@1.0.1: 2581 + dependencies: 2582 + dunder-proto: 1.0.1 2583 + es-object-atoms: 1.1.1 2584 + 2585 + get-stream@8.0.1: {} 2586 + 2587 + get-symbol-description@1.1.0: 2588 + dependencies: 2589 + call-bound: 1.0.3 2590 + es-errors: 1.3.0 2591 + get-intrinsic: 1.2.7 2592 + 2593 + glob-parent@5.1.2: 2594 + dependencies: 2595 + is-glob: 4.0.3 2596 + 2597 + glob@11.0.1: 2598 + dependencies: 2599 + foreground-child: 3.3.0 2600 + jackspeak: 4.0.2 2601 + minimatch: 10.0.1 2602 + minipass: 7.1.2 2603 + package-json-from-dist: 1.0.1 2604 + path-scurry: 2.0.0 2605 + 2606 + globals@11.12.0: {} 2607 + 2608 + globalthis@1.0.4: 2609 + dependencies: 2610 + define-properties: 1.2.1 2611 + gopd: 1.2.0 2612 + 2613 + globby@11.1.0: 2614 + dependencies: 2615 + array-union: 2.1.0 2616 + dir-glob: 3.0.1 2617 + fast-glob: 3.3.3 2618 + ignore: 5.3.2 2619 + merge2: 1.4.1 2620 + slash: 3.0.0 2621 + 2622 + gopd@1.2.0: {} 2623 + 2624 + graceful-fs@4.2.11: {} 2625 + 2626 + has-bigints@1.1.0: {} 2627 + 2628 + has-flag@3.0.0: {} 2629 + 2630 + has-property-descriptors@1.0.2: 2631 + dependencies: 2632 + es-define-property: 1.0.1 2633 + 2634 + has-proto@1.2.0: 2635 + dependencies: 2636 + dunder-proto: 1.0.1 2637 + 2638 + has-symbols@1.1.0: {} 2639 + 2640 + has-tostringtag@1.0.2: 2641 + dependencies: 2642 + has-symbols: 1.1.0 2643 + 2644 + hasown@2.0.2: 2645 + dependencies: 2646 + function-bind: 1.1.2 2647 + 2648 + hosted-git-info@2.8.9: {} 2649 + 2650 + human-id@1.0.2: {} 2651 + 2652 + human-signals@5.0.0: {} 2653 + 2654 + iconv-lite@0.4.24: 2655 + dependencies: 2656 + safer-buffer: 2.1.2 2657 + 2658 + ignore@5.3.2: {} 2659 + 2660 + internal-slot@1.1.0: 2661 + dependencies: 2662 + es-errors: 1.3.0 2663 + hasown: 2.0.2 2664 + side-channel: 1.1.0 2665 + 2666 + is-array-buffer@3.0.5: 2667 + dependencies: 2668 + call-bind: 1.0.8 2669 + call-bound: 1.0.3 2670 + get-intrinsic: 1.2.7 2671 + 2672 + is-arrayish@0.2.1: {} 2673 + 2674 + is-async-function@2.1.1: 2675 + dependencies: 2676 + async-function: 1.0.0 2677 + call-bound: 1.0.3 2678 + get-proto: 1.0.1 2679 + has-tostringtag: 1.0.2 2680 + safe-regex-test: 1.1.0 2681 + 2682 + is-bigint@1.1.0: 2683 + dependencies: 2684 + has-bigints: 1.1.0 2685 + 2686 + is-boolean-object@1.2.1: 2687 + dependencies: 2688 + call-bound: 1.0.3 2689 + has-tostringtag: 1.0.2 2690 + 2691 + is-callable@1.2.7: {} 2692 + 2693 + is-core-module@2.16.1: 2694 + dependencies: 2695 + hasown: 2.0.2 2696 + 2697 + is-data-view@1.0.2: 2698 + dependencies: 2699 + call-bound: 1.0.3 2700 + get-intrinsic: 1.2.7 2701 + is-typed-array: 1.1.15 2702 + 2703 + is-date-object@1.1.0: 2704 + dependencies: 2705 + call-bound: 1.0.3 2706 + has-tostringtag: 1.0.2 2707 + 2708 + is-extglob@2.1.1: {} 2709 + 2710 + is-finalizationregistry@1.1.1: 2711 + dependencies: 2712 + call-bound: 1.0.3 2713 + 2714 + is-fullwidth-code-point@3.0.0: {} 2715 + 2716 + is-fullwidth-code-point@4.0.0: {} 2717 + 2718 + is-fullwidth-code-point@5.0.0: 2719 + dependencies: 2720 + get-east-asian-width: 1.3.0 2721 + 2722 + is-generator-function@1.1.0: 2723 + dependencies: 2724 + call-bound: 1.0.3 2725 + get-proto: 1.0.1 2726 + has-tostringtag: 1.0.2 2727 + safe-regex-test: 1.1.0 2728 + 2729 + is-glob@4.0.3: 2730 + dependencies: 2731 + is-extglob: 2.1.1 2732 + 2733 + is-map@2.0.3: {} 2734 + 2735 + is-module@1.0.0: {} 2736 + 2737 + is-number-object@1.1.1: 2738 + dependencies: 2739 + call-bound: 1.0.3 2740 + has-tostringtag: 1.0.2 2741 + 2742 + is-number@7.0.0: {} 2743 + 2744 + is-reference@1.2.1: 2745 + dependencies: 2746 + '@types/estree': 1.0.6 2747 + 2748 + is-regex@1.2.1: 2749 + dependencies: 2750 + call-bound: 1.0.3 2751 + gopd: 1.2.0 2752 + has-tostringtag: 1.0.2 2753 + hasown: 2.0.2 2754 + 2755 + is-set@2.0.3: {} 2756 + 2757 + is-shared-array-buffer@1.0.4: 2758 + dependencies: 2759 + call-bound: 1.0.3 2760 + 2761 + is-stream@3.0.0: {} 2762 + 2763 + is-string@1.1.1: 2764 + dependencies: 2765 + call-bound: 1.0.3 2766 + has-tostringtag: 1.0.2 2767 + 2768 + is-subdir@1.2.0: 2769 + dependencies: 2770 + better-path-resolve: 1.0.0 2771 + 2772 + is-symbol@1.1.1: 2773 + dependencies: 2774 + call-bound: 1.0.3 2775 + has-symbols: 1.1.0 2776 + safe-regex-test: 1.1.0 2777 + 2778 + is-typed-array@1.1.15: 2779 + dependencies: 2780 + which-typed-array: 1.1.18 2781 + 2782 + is-weakmap@2.0.2: {} 2783 + 2784 + is-weakref@1.1.0: 2785 + dependencies: 2786 + call-bound: 1.0.3 2787 + 2788 + is-weakset@2.0.4: 2789 + dependencies: 2790 + call-bound: 1.0.3 2791 + get-intrinsic: 1.2.7 2792 + 2793 + is-windows@1.0.2: {} 2794 + 2795 + isarray@2.0.5: {} 2796 + 2797 + isexe@2.0.0: {} 2798 + 2799 + jackspeak@4.0.2: 2800 + dependencies: 2801 + '@isaacs/cliui': 8.0.2 2802 + 2803 + js-tokens@4.0.0: {} 2804 + 2805 + js-yaml@3.14.1: 2806 + dependencies: 2807 + argparse: 1.0.10 2808 + esprima: 4.0.1 2809 + 2810 + jsesc@3.1.0: {} 2811 + 2812 + json-parse-better-errors@1.0.2: {} 2813 + 2814 + json5@2.2.3: {} 2815 + 2816 + jsonfile@4.0.0: 2817 + optionalDependencies: 2818 + graceful-fs: 4.2.11 2819 + 2820 + lilconfig@3.1.3: {} 2821 + 2822 + lint-staged@15.4.3: 2823 + dependencies: 2824 + chalk: 5.4.1 2825 + commander: 13.1.0 2826 + debug: 4.4.0 2827 + execa: 8.0.1 2828 + lilconfig: 3.1.3 2829 + listr2: 8.2.5 2830 + micromatch: 4.0.8 2831 + pidtree: 0.6.0 2832 + string-argv: 0.3.2 2833 + yaml: 2.7.0 2834 + transitivePeerDependencies: 2835 + - supports-color 2836 + 2837 + listr2@8.2.5: 2838 + dependencies: 2839 + cli-truncate: 4.0.0 2840 + colorette: 2.0.20 2841 + eventemitter3: 5.0.1 2842 + log-update: 6.1.0 2843 + rfdc: 1.4.1 2844 + wrap-ansi: 9.0.0 2845 + 2846 + load-json-file@4.0.0: 2847 + dependencies: 2848 + graceful-fs: 4.2.11 2849 + parse-json: 4.0.0 2850 + pify: 3.0.0 2851 + strip-bom: 3.0.0 2852 + 2853 + locate-path@5.0.0: 2854 + dependencies: 2855 + p-locate: 4.1.0 2856 + 2857 + lodash.startcase@4.4.0: {} 2858 + 2859 + log-update@6.1.0: 2860 + dependencies: 2861 + ansi-escapes: 7.0.0 2862 + cli-cursor: 5.0.0 2863 + slice-ansi: 7.1.0 2864 + strip-ansi: 7.1.0 2865 + wrap-ansi: 9.0.0 2866 + 2867 + lru-cache@11.0.2: {} 2868 + 2869 + lru-cache@5.1.1: 2870 + dependencies: 2871 + yallist: 3.1.1 2872 + 2873 + magic-string@0.30.17: 2874 + dependencies: 2875 + '@jridgewell/sourcemap-codec': 1.5.0 2876 + 2877 + math-intrinsics@1.1.0: {} 2878 + 2879 + memorystream@0.3.1: {} 2880 + 2881 + merge-stream@2.0.0: {} 2882 + 2883 + merge2@1.4.1: {} 2884 + 2885 + micromatch@4.0.8: 2886 + dependencies: 2887 + braces: 3.0.3 2888 + picomatch: 2.3.1 2889 + 2890 + mimic-fn@4.0.0: {} 2891 + 2892 + mimic-function@5.0.1: {} 2893 + 2894 + minimatch@10.0.1: 2895 + dependencies: 2896 + brace-expansion: 2.0.1 2897 + 2898 + minimatch@3.1.2: 2899 + dependencies: 2900 + brace-expansion: 1.1.11 2901 + 2902 + minipass@7.1.2: {} 2903 + 2904 + mri@1.2.0: {} 2905 + 2906 + ms@2.1.3: {} 2907 + 2908 + nice-try@1.0.5: {} 2909 + 2910 + node-fetch@2.7.0: 2911 + dependencies: 2912 + whatwg-url: 5.0.0 2913 + 2914 + node-releases@2.0.19: {} 2915 + 2916 + normalize-package-data@2.5.0: 2917 + dependencies: 2918 + hosted-git-info: 2.8.9 2919 + resolve: 1.22.10 2920 + semver: 5.7.2 2921 + validate-npm-package-license: 3.0.4 2922 + 2923 + npm-run-all@4.1.5: 2924 + dependencies: 2925 + ansi-styles: 3.2.1 2926 + chalk: 2.4.2 2927 + cross-spawn: 6.0.6 2928 + memorystream: 0.3.1 2929 + minimatch: 3.1.2 2930 + pidtree: 0.3.1 2931 + read-pkg: 3.0.0 2932 + shell-quote: 1.8.2 2933 + string.prototype.padend: 3.1.6 2934 + 2935 + npm-run-path@5.3.0: 2936 + dependencies: 2937 + path-key: 4.0.0 2938 + 2939 + object-inspect@1.13.3: {} 2940 + 2941 + object-keys@1.1.1: {} 2942 + 2943 + object.assign@4.1.7: 2944 + dependencies: 2945 + call-bind: 1.0.8 2946 + call-bound: 1.0.3 2947 + define-properties: 1.2.1 2948 + es-object-atoms: 1.1.1 2949 + has-symbols: 1.1.0 2950 + object-keys: 1.1.1 2951 + 2952 + onetime@6.0.0: 2953 + dependencies: 2954 + mimic-fn: 4.0.0 2955 + 2956 + onetime@7.0.0: 2957 + dependencies: 2958 + mimic-function: 5.0.1 2959 + 2960 + os-tmpdir@1.0.2: {} 2961 + 2962 + outdent@0.5.0: {} 2963 + 2964 + own-keys@1.0.1: 2965 + dependencies: 2966 + get-intrinsic: 1.2.7 2967 + object-keys: 1.1.1 2968 + safe-push-apply: 1.0.0 2969 + 2970 + p-filter@2.1.0: 2971 + dependencies: 2972 + p-map: 2.1.0 2973 + 2974 + p-limit@2.3.0: 2975 + dependencies: 2976 + p-try: 2.2.0 2977 + 2978 + p-locate@4.1.0: 2979 + dependencies: 2980 + p-limit: 2.3.0 2981 + 2982 + p-map@2.1.0: {} 2983 + 2984 + p-try@2.2.0: {} 2985 + 2986 + package-json-from-dist@1.0.1: {} 2987 + 2988 + package-manager-detector@0.2.9: {} 2989 + 2990 + parse-json@4.0.0: 2991 + dependencies: 2992 + error-ex: 1.3.2 2993 + json-parse-better-errors: 1.0.2 2994 + 2995 + path-exists@4.0.0: {} 2996 + 2997 + path-key@2.0.1: {} 2998 + 2999 + path-key@3.1.1: {} 3000 + 3001 + path-key@4.0.0: {} 3002 + 3003 + path-parse@1.0.7: {} 3004 + 3005 + path-scurry@2.0.0: 3006 + dependencies: 3007 + lru-cache: 11.0.2 3008 + minipass: 7.1.2 3009 + 3010 + path-type@3.0.0: 3011 + dependencies: 3012 + pify: 3.0.0 3013 + 3014 + path-type@4.0.0: {} 3015 + 3016 + picocolors@1.1.1: {} 3017 + 3018 + picomatch@2.3.1: {} 3019 + 3020 + picomatch@4.0.2: {} 3021 + 3022 + pidtree@0.3.1: {} 3023 + 3024 + pidtree@0.6.0: {} 3025 + 3026 + pify@3.0.0: {} 3027 + 3028 + pify@4.0.1: {} 3029 + 3030 + possible-typed-array-names@1.0.0: {} 3031 + 3032 + prettier@2.8.8: {} 3033 + 3034 + prettier@3.4.2: {} 3035 + 3036 + queue-microtask@1.2.3: {} 3037 + 3038 + randombytes@2.1.0: 3039 + dependencies: 3040 + safe-buffer: 5.2.1 3041 + 3042 + read-pkg@3.0.0: 3043 + dependencies: 3044 + load-json-file: 4.0.0 3045 + normalize-package-data: 2.5.0 3046 + path-type: 3.0.0 3047 + 3048 + read-yaml-file@1.1.0: 3049 + dependencies: 3050 + graceful-fs: 4.2.11 3051 + js-yaml: 3.14.1 3052 + pify: 4.0.1 3053 + strip-bom: 3.0.0 3054 + 3055 + reflect.getprototypeof@1.0.10: 3056 + dependencies: 3057 + call-bind: 1.0.8 3058 + define-properties: 1.2.1 3059 + es-abstract: 1.23.9 3060 + es-errors: 1.3.0 3061 + es-object-atoms: 1.1.1 3062 + get-intrinsic: 1.2.7 3063 + get-proto: 1.0.1 3064 + which-builtin-type: 1.2.1 3065 + 3066 + regenerator-runtime@0.14.1: {} 3067 + 3068 + regexp.prototype.flags@1.5.4: 3069 + dependencies: 3070 + call-bind: 1.0.8 3071 + define-properties: 1.2.1 3072 + es-errors: 1.3.0 3073 + get-proto: 1.0.1 3074 + gopd: 1.2.0 3075 + set-function-name: 2.0.2 3076 + 3077 + resolve-from@5.0.0: {} 3078 + 3079 + resolve@1.22.10: 3080 + dependencies: 3081 + is-core-module: 2.16.1 3082 + path-parse: 1.0.7 3083 + supports-preserve-symlinks-flag: 1.0.0 3084 + 3085 + restore-cursor@5.1.0: 3086 + dependencies: 3087 + onetime: 7.0.0 3088 + signal-exit: 4.1.0 3089 + 3090 + reusify@1.0.4: {} 3091 + 3092 + rfdc@1.4.1: {} 3093 + 3094 + rimraf@6.0.1: 3095 + dependencies: 3096 + glob: 11.0.1 3097 + package-json-from-dist: 1.0.1 3098 + 3099 + rollup-plugin-cjs-check@1.0.3(rollup@4.32.1): 3100 + dependencies: 3101 + '@rollup/pluginutils': 5.1.4(rollup@4.32.1) 3102 + cjs-module-lexer: 1.4.2 3103 + rollup: 4.32.1 3104 + 3105 + rollup-plugin-dts@6.1.1(rollup@4.32.1)(typescript@5.7.3): 3106 + dependencies: 3107 + magic-string: 0.30.17 3108 + rollup: 4.32.1 3109 + typescript: 5.7.3 3110 + optionalDependencies: 3111 + '@babel/code-frame': 7.26.2 3112 + 3113 + rollup@4.32.1: 3114 + dependencies: 3115 + '@types/estree': 1.0.6 3116 + optionalDependencies: 3117 + '@rollup/rollup-android-arm-eabi': 4.32.1 3118 + '@rollup/rollup-android-arm64': 4.32.1 3119 + '@rollup/rollup-darwin-arm64': 4.32.1 3120 + '@rollup/rollup-darwin-x64': 4.32.1 3121 + '@rollup/rollup-freebsd-arm64': 4.32.1 3122 + '@rollup/rollup-freebsd-x64': 4.32.1 3123 + '@rollup/rollup-linux-arm-gnueabihf': 4.32.1 3124 + '@rollup/rollup-linux-arm-musleabihf': 4.32.1 3125 + '@rollup/rollup-linux-arm64-gnu': 4.32.1 3126 + '@rollup/rollup-linux-arm64-musl': 4.32.1 3127 + '@rollup/rollup-linux-loongarch64-gnu': 4.32.1 3128 + '@rollup/rollup-linux-powerpc64le-gnu': 4.32.1 3129 + '@rollup/rollup-linux-riscv64-gnu': 4.32.1 3130 + '@rollup/rollup-linux-s390x-gnu': 4.32.1 3131 + '@rollup/rollup-linux-x64-gnu': 4.32.1 3132 + '@rollup/rollup-linux-x64-musl': 4.32.1 3133 + '@rollup/rollup-win32-arm64-msvc': 4.32.1 3134 + '@rollup/rollup-win32-ia32-msvc': 4.32.1 3135 + '@rollup/rollup-win32-x64-msvc': 4.32.1 3136 + fsevents: 2.3.3 3137 + 3138 + run-parallel@1.2.0: 3139 + dependencies: 3140 + queue-microtask: 1.2.3 3141 + 3142 + safe-array-concat@1.1.3: 3143 + dependencies: 3144 + call-bind: 1.0.8 3145 + call-bound: 1.0.3 3146 + get-intrinsic: 1.2.7 3147 + has-symbols: 1.1.0 3148 + isarray: 2.0.5 3149 + 3150 + safe-buffer@5.2.1: {} 3151 + 3152 + safe-push-apply@1.0.0: 3153 + dependencies: 3154 + es-errors: 1.3.0 3155 + isarray: 2.0.5 3156 + 3157 + safe-regex-test@1.1.0: 3158 + dependencies: 3159 + call-bound: 1.0.3 3160 + es-errors: 1.3.0 3161 + is-regex: 1.2.1 3162 + 3163 + safer-buffer@2.1.2: {} 3164 + 3165 + semver@5.7.2: {} 3166 + 3167 + semver@6.3.1: {} 3168 + 3169 + semver@7.7.0: {} 3170 + 3171 + serialize-javascript@6.0.2: 3172 + dependencies: 3173 + randombytes: 2.1.0 3174 + 3175 + set-function-length@1.2.2: 3176 + dependencies: 3177 + define-data-property: 1.1.4 3178 + es-errors: 1.3.0 3179 + function-bind: 1.1.2 3180 + get-intrinsic: 1.2.7 3181 + gopd: 1.2.0 3182 + has-property-descriptors: 1.0.2 3183 + 3184 + set-function-name@2.0.2: 3185 + dependencies: 3186 + define-data-property: 1.1.4 3187 + es-errors: 1.3.0 3188 + functions-have-names: 1.2.3 3189 + has-property-descriptors: 1.0.2 3190 + 3191 + set-proto@1.0.0: 3192 + dependencies: 3193 + dunder-proto: 1.0.1 3194 + es-errors: 1.3.0 3195 + es-object-atoms: 1.1.1 3196 + 3197 + shebang-command@1.2.0: 3198 + dependencies: 3199 + shebang-regex: 1.0.0 3200 + 3201 + shebang-command@2.0.0: 3202 + dependencies: 3203 + shebang-regex: 3.0.0 3204 + 3205 + shebang-regex@1.0.0: {} 3206 + 3207 + shebang-regex@3.0.0: {} 3208 + 3209 + shell-quote@1.8.2: {} 3210 + 3211 + side-channel-list@1.0.0: 3212 + dependencies: 3213 + es-errors: 1.3.0 3214 + object-inspect: 1.13.3 3215 + 3216 + side-channel-map@1.0.1: 3217 + dependencies: 3218 + call-bound: 1.0.3 3219 + es-errors: 1.3.0 3220 + get-intrinsic: 1.2.7 3221 + object-inspect: 1.13.3 3222 + 3223 + side-channel-weakmap@1.0.2: 3224 + dependencies: 3225 + call-bound: 1.0.3 3226 + es-errors: 1.3.0 3227 + get-intrinsic: 1.2.7 3228 + object-inspect: 1.13.3 3229 + side-channel-map: 1.0.1 3230 + 3231 + side-channel@1.1.0: 3232 + dependencies: 3233 + es-errors: 1.3.0 3234 + object-inspect: 1.13.3 3235 + side-channel-list: 1.0.0 3236 + side-channel-map: 1.0.1 3237 + side-channel-weakmap: 1.0.2 3238 + 3239 + signal-exit@4.1.0: {} 3240 + 3241 + slash@3.0.0: {} 3242 + 3243 + slice-ansi@5.0.0: 3244 + dependencies: 3245 + ansi-styles: 6.2.1 3246 + is-fullwidth-code-point: 4.0.0 3247 + 3248 + slice-ansi@7.1.0: 3249 + dependencies: 3250 + ansi-styles: 6.2.1 3251 + is-fullwidth-code-point: 5.0.0 3252 + 3253 + smob@1.5.0: {} 3254 + 3255 + source-map-support@0.5.21: 3256 + dependencies: 3257 + buffer-from: 1.1.2 3258 + source-map: 0.6.1 3259 + 3260 + source-map@0.6.1: {} 3261 + 3262 + spawndamnit@3.0.1: 3263 + dependencies: 3264 + cross-spawn: 7.0.6 3265 + signal-exit: 4.1.0 3266 + 3267 + spdx-correct@3.2.0: 3268 + dependencies: 3269 + spdx-expression-parse: 3.0.1 3270 + spdx-license-ids: 3.0.21 3271 + 3272 + spdx-exceptions@2.5.0: {} 3273 + 3274 + spdx-expression-parse@3.0.1: 3275 + dependencies: 3276 + spdx-exceptions: 2.5.0 3277 + spdx-license-ids: 3.0.21 3278 + 3279 + spdx-license-ids@3.0.21: {} 3280 + 3281 + sprintf-js@1.0.3: {} 3282 + 3283 + string-argv@0.3.2: {} 3284 + 3285 + string-width@4.2.3: 3286 + dependencies: 3287 + emoji-regex: 8.0.0 3288 + is-fullwidth-code-point: 3.0.0 3289 + strip-ansi: 6.0.1 3290 + 3291 + string-width@5.1.2: 3292 + dependencies: 3293 + eastasianwidth: 0.2.0 3294 + emoji-regex: 9.2.2 3295 + strip-ansi: 7.1.0 3296 + 3297 + string-width@7.2.0: 3298 + dependencies: 3299 + emoji-regex: 10.4.0 3300 + get-east-asian-width: 1.3.0 3301 + strip-ansi: 7.1.0 3302 + 3303 + string.prototype.padend@3.1.6: 3304 + dependencies: 3305 + call-bind: 1.0.8 3306 + define-properties: 1.2.1 3307 + es-abstract: 1.23.9 3308 + es-object-atoms: 1.1.1 3309 + 3310 + string.prototype.trim@1.2.10: 3311 + dependencies: 3312 + call-bind: 1.0.8 3313 + call-bound: 1.0.3 3314 + define-data-property: 1.1.4 3315 + define-properties: 1.2.1 3316 + es-abstract: 1.23.9 3317 + es-object-atoms: 1.1.1 3318 + has-property-descriptors: 1.0.2 3319 + 3320 + string.prototype.trimend@1.0.9: 3321 + dependencies: 3322 + call-bind: 1.0.8 3323 + call-bound: 1.0.3 3324 + define-properties: 1.2.1 3325 + es-object-atoms: 1.1.1 3326 + 3327 + string.prototype.trimstart@1.0.8: 3328 + dependencies: 3329 + call-bind: 1.0.8 3330 + define-properties: 1.2.1 3331 + es-object-atoms: 1.1.1 3332 + 3333 + strip-ansi@6.0.1: 3334 + dependencies: 3335 + ansi-regex: 5.0.1 3336 + 3337 + strip-ansi@7.1.0: 3338 + dependencies: 3339 + ansi-regex: 6.1.0 3340 + 3341 + strip-bom@3.0.0: {} 3342 + 3343 + strip-final-newline@3.0.0: {} 3344 + 3345 + supports-color@5.5.0: 3346 + dependencies: 3347 + has-flag: 3.0.0 3348 + 3349 + supports-preserve-symlinks-flag@1.0.0: {} 3350 + 3351 + term-size@2.2.1: {} 3352 + 3353 + terser@5.37.0: 3354 + dependencies: 3355 + '@jridgewell/source-map': 0.3.6 3356 + acorn: 8.14.0 3357 + commander: 2.20.3 3358 + source-map-support: 0.5.21 3359 + 3360 + tmp@0.0.33: 3361 + dependencies: 3362 + os-tmpdir: 1.0.2 3363 + 3364 + to-regex-range@5.0.1: 3365 + dependencies: 3366 + is-number: 7.0.0 3367 + 3368 + tr46@0.0.3: {} 3369 + 3370 + typed-array-buffer@1.0.3: 3371 + dependencies: 3372 + call-bound: 1.0.3 3373 + es-errors: 1.3.0 3374 + is-typed-array: 1.1.15 3375 + 3376 + typed-array-byte-length@1.0.3: 3377 + dependencies: 3378 + call-bind: 1.0.8 3379 + for-each: 0.3.4 3380 + gopd: 1.2.0 3381 + has-proto: 1.2.0 3382 + is-typed-array: 1.1.15 3383 + 3384 + typed-array-byte-offset@1.0.4: 3385 + dependencies: 3386 + available-typed-arrays: 1.0.7 3387 + call-bind: 1.0.8 3388 + for-each: 0.3.4 3389 + gopd: 1.2.0 3390 + has-proto: 1.2.0 3391 + is-typed-array: 1.1.15 3392 + reflect.getprototypeof: 1.0.10 3393 + 3394 + typed-array-length@1.0.7: 3395 + dependencies: 3396 + call-bind: 1.0.8 3397 + for-each: 0.3.4 3398 + gopd: 1.2.0 3399 + is-typed-array: 1.1.15 3400 + possible-typed-array-names: 1.0.0 3401 + reflect.getprototypeof: 1.0.10 3402 + 3403 + typescript@5.7.3: {} 3404 + 3405 + unbox-primitive@1.1.0: 3406 + dependencies: 3407 + call-bound: 1.0.3 3408 + has-bigints: 1.1.0 3409 + has-symbols: 1.1.0 3410 + which-boxed-primitive: 1.1.1 3411 + 3412 + undici-types@6.20.0: {} 3413 + 3414 + universalify@0.1.2: {} 3415 + 3416 + update-browserslist-db@1.1.2(browserslist@4.24.4): 3417 + dependencies: 3418 + browserslist: 4.24.4 3419 + escalade: 3.2.0 3420 + picocolors: 1.1.1 3421 + 3422 + validate-npm-package-license@3.0.4: 3423 + dependencies: 3424 + spdx-correct: 3.2.0 3425 + spdx-expression-parse: 3.0.1 3426 + 3427 + webidl-conversions@3.0.1: {} 3428 + 3429 + whatwg-url@5.0.0: 3430 + dependencies: 3431 + tr46: 0.0.3 3432 + webidl-conversions: 3.0.1 3433 + 3434 + which-boxed-primitive@1.1.1: 3435 + dependencies: 3436 + is-bigint: 1.1.0 3437 + is-boolean-object: 1.2.1 3438 + is-number-object: 1.1.1 3439 + is-string: 1.1.1 3440 + is-symbol: 1.1.1 3441 + 3442 + which-builtin-type@1.2.1: 3443 + dependencies: 3444 + call-bound: 1.0.3 3445 + function.prototype.name: 1.1.8 3446 + has-tostringtag: 1.0.2 3447 + is-async-function: 2.1.1 3448 + is-date-object: 1.1.0 3449 + is-finalizationregistry: 1.1.1 3450 + is-generator-function: 1.1.0 3451 + is-regex: 1.2.1 3452 + is-weakref: 1.1.0 3453 + isarray: 2.0.5 3454 + which-boxed-primitive: 1.1.1 3455 + which-collection: 1.0.2 3456 + which-typed-array: 1.1.18 3457 + 3458 + which-collection@1.0.2: 3459 + dependencies: 3460 + is-map: 2.0.3 3461 + is-set: 2.0.3 3462 + is-weakmap: 2.0.2 3463 + is-weakset: 2.0.4 3464 + 3465 + which-typed-array@1.1.18: 3466 + dependencies: 3467 + available-typed-arrays: 1.0.7 3468 + call-bind: 1.0.8 3469 + call-bound: 1.0.3 3470 + for-each: 0.3.4 3471 + gopd: 1.2.0 3472 + has-tostringtag: 1.0.2 3473 + 3474 + which@1.3.1: 3475 + dependencies: 3476 + isexe: 2.0.0 3477 + 3478 + which@2.0.2: 3479 + dependencies: 3480 + isexe: 2.0.0 3481 + 3482 + wrap-ansi@7.0.0: 3483 + dependencies: 3484 + ansi-styles: 4.3.0 3485 + string-width: 4.2.3 3486 + strip-ansi: 6.0.1 3487 + 3488 + wrap-ansi@8.1.0: 3489 + dependencies: 3490 + ansi-styles: 6.2.1 3491 + string-width: 5.1.2 3492 + strip-ansi: 7.1.0 3493 + 3494 + wrap-ansi@9.0.0: 3495 + dependencies: 3496 + ansi-styles: 6.2.1 3497 + string-width: 7.2.0 3498 + strip-ansi: 7.1.0 3499 + 3500 + yallist@3.1.1: {} 3501 + 3502 + yaml@2.7.0: {}
+125
scripts/changelog.js
··· 1 + const { config } = require('dotenv'); 2 + const { getInfo } = require('@changesets/get-github-info'); 3 + 4 + config(); 5 + 6 + const REPO = 'kitten/lan-network'; 7 + const SEE_LINE = /^See:\s*(.*)/i; 8 + const TRAILING_CHAR = /[.;:]$/g; 9 + const listFormatter = new Intl.ListFormat('en-US'); 10 + 11 + const getSummaryLines = cs => { 12 + let lines = cs.summary.trim().split(/\r?\n/); 13 + if (!lines.some(line => /```/.test(line))) { 14 + lines = lines.map(l => l.trim()).filter(Boolean); 15 + const size = lines.length; 16 + if (size > 0) { 17 + lines[size - 1] = lines[size - 1].replace(TRAILING_CHAR, ''); 18 + } 19 + } 20 + return lines; 21 + }; 22 + 23 + /** Creates a "(See X)" string from a template */ 24 + const templateSeeRef = links => { 25 + const humanReadableLinks = links.filter(Boolean).map(link => { 26 + if (typeof link === 'string') return link; 27 + return link.pull || link.commit; 28 + }); 29 + 30 + const size = humanReadableLinks.length; 31 + if (size === 0) return ''; 32 + 33 + const str = listFormatter.format(humanReadableLinks); 34 + return `(See ${str})`; 35 + }; 36 + 37 + const changelogFunctions = { 38 + getDependencyReleaseLine: async (changesets, dependenciesUpdated) => { 39 + if (dependenciesUpdated.length === 0) return ''; 40 + 41 + const dependenciesLinks = await Promise.all( 42 + changesets.map(async cs => { 43 + if (!cs.commit) return undefined; 44 + 45 + const lines = getSummaryLines(cs); 46 + const prLine = lines.find(line => SEE_LINE.test(line)); 47 + if (prLine) { 48 + const match = prLine.match(SEE_LINE); 49 + return (match && match[1].trim()) || undefined; 50 + } 51 + 52 + const { links } = await getInfo({ 53 + repo: REPO, 54 + commit: cs.commit, 55 + }); 56 + 57 + return links; 58 + }) 59 + ); 60 + 61 + let changesetLink = '- Updated dependencies'; 62 + 63 + const seeRef = templateSeeRef(dependenciesLinks); 64 + if (seeRef) changesetLink += ` ${seeRef}`; 65 + 66 + const detailsLinks = dependenciesUpdated.map(dep => { 67 + return ` - ${dep.name}@${dep.newVersion}`; 68 + }); 69 + 70 + return [changesetLink, ...detailsLinks].join('\n'); 71 + }, 72 + getReleaseLine: async (changeset, type) => { 73 + let pull, commit, user; 74 + 75 + const lines = getSummaryLines(changeset); 76 + const prLineIndex = lines.findIndex(line => SEE_LINE.test(line)); 77 + if (prLineIndex > -1) { 78 + const match = lines[prLineIndex].match(SEE_LINE); 79 + pull = (match && match[1].trim()) || undefined; 80 + lines.splice(prLineIndex, 1); 81 + } 82 + 83 + const [firstLine, ...futureLines] = lines; 84 + 85 + if (changeset.commit && !pull) { 86 + const { links } = await getInfo({ 87 + repo: REPO, 88 + commit: changeset.commit, 89 + }); 90 + 91 + pull = links.pull || undefined; 92 + commit = links.commit || undefined; 93 + user = links.user || undefined; 94 + } 95 + 96 + let annotation = ''; 97 + if (type === 'patch' && /^\s*fix/i.test(firstLine)) { 98 + annotation = '⚠️ '; 99 + } 100 + 101 + let str = `- ${annotation}${firstLine}`; 102 + if (futureLines.length > 0) { 103 + str += `\n${futureLines.map(l => ` ${l}`).join('\n')}`; 104 + } 105 + 106 + const endsWithParagraph = /(?<=(?:[!;?.]|```) *)$/g; 107 + if (user && !endsWithParagraph) { 108 + str += `, by ${user}`; 109 + } else { 110 + str += `\nSubmitted by ${user}`; 111 + } 112 + 113 + if (pull || commit) { 114 + const seeRef = templateSeeRef([pull || commit]); 115 + if (seeRef) str += ` ${seeRef}`; 116 + } 117 + 118 + return str; 119 + }, 120 + }; 121 + 122 + module.exports = { 123 + ...changelogFunctions, 124 + default: changelogFunctions, 125 + };
+12
scripts/prepare.js
··· 1 + const path = require('path'); 2 + const fs = require('fs'); 3 + 4 + const precommit = path.resolve(__dirname, '../.git/hooks/pre-commit'); 5 + 6 + const hook = ` 7 + #!/bin/sh 8 + pnpm exec lint-staged --quiet --relative 9 + `.trim(); 10 + 11 + fs.writeFileSync(precommit, hook); 12 + fs.chmodSync(precommit, '755');
+283
scripts/rollup.config.mjs
··· 1 + import fs from 'node:fs/promises'; 2 + import path from 'node:path/posix'; 3 + import { fileURLToPath } from 'node:url'; 4 + import { readFileSync } from 'node:fs'; 5 + import { createRequire, isBuiltin } from 'node:module'; 6 + 7 + import * as prettier from 'prettier'; 8 + import commonjs from '@rollup/plugin-commonjs'; 9 + import resolve from '@rollup/plugin-node-resolve'; 10 + import babel from '@rollup/plugin-babel'; 11 + import terser from '@rollup/plugin-terser'; 12 + import cjsCheck from 'rollup-plugin-cjs-check'; 13 + import dts from 'rollup-plugin-dts'; 14 + 15 + const __dirname = path.dirname(fileURLToPath(import.meta.url)); 16 + 17 + const normalize = name => [] 18 + .concat(name) 19 + .join(' ') 20 + .replace(/[@\s/.]+/g, ' ') 21 + .trim() 22 + .replace(/\s+/, '-') 23 + .toLowerCase(); 24 + 25 + const extension = name => { 26 + if (/\.d.ts$/.test(name)) { 27 + return '.d.ts'; 28 + } else { 29 + return path.extname(name); 30 + } 31 + }; 32 + 33 + const meta = JSON.parse(readFileSync('package.json')); 34 + const name = normalize(meta.name); 35 + 36 + const externalModules = [ 37 + ...Object.keys(meta.dependencies || {}), 38 + ...Object.keys(meta.peerDependencies || {}), 39 + ]; 40 + 41 + const moduleRe = /^(?!node:|[.{1,2}\/])(@[\w.-]+\/)?[\w.-]+/; 42 + const externalRe = new RegExp(`^(${externalModules.join('|')})($|/)`); 43 + 44 + const exports = {}; 45 + for (const key in meta.exports) { 46 + const entry = meta.exports[key]; 47 + if (typeof entry === 'object' && !!entry.source) { 48 + const entryPath = normalize(key); 49 + const entryName = normalize([name, entryPath]); 50 + exports[entryName] = { 51 + path: entryPath, 52 + ...entry, 53 + }; 54 + } 55 + } 56 + 57 + const externals = new Set(); 58 + 59 + const commonConfig = { 60 + input: Object.entries(exports).reduce((input, [exportName, entry]) => { 61 + input[exportName] = entry.source; 62 + return input; 63 + }, {}), 64 + onwarn: () => {}, 65 + external(id) { 66 + const isExternal = isBuiltin(id) || (externalModules.length && externalRe.test(id)); 67 + if (!isExternal && moduleRe.test(id)) 68 + externals.add(id); 69 + return isExternal; 70 + }, 71 + treeshake: { 72 + unknownGlobalSideEffects: false, 73 + tryCatchDeoptimization: false, 74 + moduleSideEffects: false, 75 + }, 76 + }; 77 + 78 + const commonPlugins = [ 79 + resolve({ 80 + extensions: ['.mjs', '.js', '.ts'], 81 + mainFields: ['module', 'jsnext', 'main'], 82 + preferBuiltins: false, 83 + browser: true, 84 + }), 85 + 86 + commonjs({ 87 + ignoreGlobal: true, 88 + include: /\/node_modules\//, 89 + }), 90 + ]; 91 + 92 + const commonOutput = { 93 + dir: './', 94 + exports: 'auto', 95 + sourcemap: true, 96 + sourcemapExcludeSources: false, 97 + hoistTransitiveImports: false, 98 + indent: false, 99 + freeze: false, 100 + strict: false, 101 + generatedCode: { 102 + preset: 'es5', 103 + reservedNamesAsProps: false, 104 + objectShorthand: false, 105 + constBindings: false, 106 + }, 107 + }; 108 + 109 + const outputPlugins = [ 110 + { 111 + name: 'outputPackageJsons', 112 + async writeBundle() { 113 + for (const key in exports) { 114 + const entry = exports[key]; 115 + if (entry.path) { 116 + const output = path.relative(entry.path, process.cwd()); 117 + const json = JSON.stringify({ 118 + name: key, 119 + private: true, 120 + version: '0.0.0', 121 + main: path.join(output, entry.require), 122 + types: path.join(output, entry.types), 123 + source: path.join(output, entry.source), 124 + exports: { 125 + '.': { 126 + types: path.join(output, entry.types), 127 + require: path.join(output, entry.require), 128 + source: path.join(output, entry.source), 129 + }, 130 + }, 131 + }, null, 2); 132 + 133 + await fs.mkdir(entry.path, { recursive: true }); 134 + await fs.writeFile(path.join(entry.path, 'package.json'), json); 135 + } 136 + } 137 + }, 138 + }, 139 + 140 + { 141 + name: 'outputBundledLicenses', 142 + async writeBundle() { 143 + const require = createRequire(import.meta.url); 144 + const rootLicense = path.join(__dirname, '../LICENSE.md'); 145 + const outputLicense = path.resolve('LICENSE.md'); 146 + if (rootLicense === outputLicense) return; 147 + const licenses = new Map(); 148 + for (const packageName of [...externals].sort()) { 149 + let license; 150 + let metaPath; 151 + let meta; 152 + try { 153 + metaPath = require.resolve(path.join(packageName, '/package.json')); 154 + meta = require(metaPath); 155 + } catch (_error) { 156 + continue; 157 + } 158 + const packagePath = path.dirname(metaPath); 159 + let licenseName = (await fs.readdir(packagePath).catch(() => [])) 160 + .find((name) => /^licen[sc]e/i.test(name)); 161 + if (!licenseName) { 162 + const match = /^SEE LICENSE IN (.*)/i.exec(meta.license || ''); 163 + licenseName = match ? match[1] : meta.license; 164 + } 165 + try { 166 + license = await fs.readFile(path.join(packagePath, licenseName), 'utf8'); 167 + } catch (_error) { 168 + license = meta.author 169 + ? `${licenseName}, Copyright (c) ${meta.author.name || meta.author}` 170 + : `${licenseName}, See license at: ${meta.repository.url || meta.repository}`; 171 + } 172 + licenses.set(packageName, license); 173 + } 174 + let output = (await fs.readFile(rootLicense, 'utf8')).trim(); 175 + for (const [packageName, licenseText] of licenses) 176 + output += `\n\n## ${packageName}\n\n${licenseText.trim()}`; 177 + await fs.writeFile(outputLicense, output); 178 + }, 179 + }, 180 + 181 + cjsCheck(), 182 + 183 + terser({ 184 + warnings: true, 185 + ecma: 2015, 186 + keep_fnames: true, 187 + ie8: false, 188 + compress: { 189 + pure_getters: true, 190 + toplevel: true, 191 + booleans_as_integers: false, 192 + keep_fnames: true, 193 + keep_fargs: true, 194 + if_return: false, 195 + ie8: false, 196 + sequences: false, 197 + loops: false, 198 + conditionals: false, 199 + join_vars: false, 200 + }, 201 + mangle: { 202 + module: true, 203 + keep_fnames: true, 204 + }, 205 + output: { 206 + beautify: true, 207 + braces: true, 208 + indent_level: 2, 209 + }, 210 + }), 211 + ]; 212 + 213 + export default [ 214 + { 215 + ...commonConfig, 216 + plugins: [ 217 + ...commonPlugins, 218 + babel({ 219 + babelrc: false, 220 + babelHelpers: 'bundled', 221 + extensions: ['mjs', 'js', 'jsx', 'ts', 'tsx'], 222 + exclude: 'node_modules/**', 223 + presets: [], 224 + plugins: [ 225 + '@babel/plugin-transform-typescript', 226 + '@babel/plugin-transform-block-scoping', 227 + ], 228 + }), 229 + ], 230 + output: { 231 + ...commonOutput, 232 + format: 'cjs', 233 + esModule: true, 234 + externalLiveBindings: true, 235 + chunkFileNames(chunk) { 236 + return `dist/chunks/[name]-chunk${extension(chunk.name) || '.js'}`; 237 + }, 238 + entryFileNames(chunk) { 239 + return chunk.isEntry 240 + ? path.normalize(exports[chunk.name].require) 241 + : `dist/[name].js`; 242 + }, 243 + plugins: outputPlugins, 244 + }, 245 + }, 246 + 247 + { 248 + ...commonConfig, 249 + plugins: [ 250 + ...commonPlugins, 251 + dts(), 252 + ], 253 + output: { 254 + ...commonOutput, 255 + sourcemap: false, 256 + format: 'dts', 257 + chunkFileNames(chunk) { 258 + return `dist/chunks/[name]-chunk${extension(chunk.name) || '.d.ts'}`; 259 + }, 260 + entryFileNames(chunk) { 261 + return chunk.isEntry 262 + ? path.normalize(exports[chunk.name].types) 263 + : `dist/[name].d.ts`; 264 + }, 265 + plugins: [ 266 + { 267 + renderChunk(code, chunk) { 268 + if (chunk.fileName.endsWith('d.ts')) { 269 + return prettier.format(code, { 270 + filepath: chunk.fileName, 271 + parser: 'typescript', 272 + singleQuote: true, 273 + tabWidth: 2, 274 + printWidth: 100, 275 + trailingComma: 'es5', 276 + }); 277 + } 278 + }, 279 + }, 280 + ], 281 + }, 282 + }, 283 + ];
+87
src/dhcp.ts
··· 1 + import { randomBytes } from 'node:crypto'; 2 + import { createSocket } from 'node:dgram'; 3 + import { parseIpStr, toIpStr, parseMacStr } from './network'; 4 + import type { NetworkAssignment } from './types'; 5 + 6 + class DHCPTimeoutError extends TypeError { 7 + code = 'ETIMEDOUT'; 8 + } 9 + 10 + const computeBroadcastAddress = (assignment: NetworkAssignment) => { 11 + const address = parseIpStr(assignment.address); 12 + const netmask = parseIpStr(assignment.netmask); 13 + return toIpStr(address | ~netmask); 14 + }; 15 + 16 + const dhcpDiscoverPacket = (macStr: string) => { 17 + const MAC_ADDRESS = new Uint8Array(16); 18 + MAC_ADDRESS.set(parseMacStr(macStr)); 19 + const packet = new Uint8Array(244); 20 + const XID = randomBytes(4); 21 + packet[0] = 1; // op = request 22 + packet[1] = 1; // hw_type = ethernet 23 + packet[2] = 6; // hw_len = ethernet 24 + packet[3] = 0; // hops = 0 25 + packet.set(XID, 4); 26 + // elapsed = 0 seconds [2 bytes] 27 + packet[10] = 0x80; // flags = broadcast discovery [2 bytes] 28 + // client IP = null [4 bytes] 29 + // own IP = null [4 bytes] 30 + // server IP = null [4 bytes] 31 + // gateway IP = null [4 bytes] 32 + packet.set(MAC_ADDRESS, 28); 33 + // sname = null [64 bytes] 34 + // boot file = null [128 bytes] 35 + packet.set([0x63, 0x82, 0x53, 0x63], 236); // Magic cookie 36 + packet.set([0x35, 0x01, 0x01, 0xff], 240); // Trailer 37 + return packet; 38 + }; 39 + 40 + const DHCP_TIMEOUT = 250; 41 + const DHCP_CLIENT_PORT = 68; 42 + const DHCP_SERVER_PORT = 67; 43 + 44 + export const dhcpDiscover = ( 45 + assignment: NetworkAssignment 46 + ): Promise<string> => { 47 + return new Promise((resolve, reject) => { 48 + const broadcastAddress = computeBroadcastAddress(assignment); 49 + const packet = dhcpDiscoverPacket(assignment.mac); 50 + const timeout = setTimeout(() => { 51 + reject( 52 + new DHCPTimeoutError( 53 + `Received no reply to DHCPDISCOVER in ${DHCP_TIMEOUT}ms` 54 + ) 55 + ); 56 + }, DHCP_TIMEOUT); 57 + const socket = createSocket( 58 + { type: 'udp4', reuseAddr: true }, 59 + (_msg, rinfo) => { 60 + clearTimeout(timeout); 61 + resolve(rinfo.address); 62 + socket.close(); 63 + socket.unref(); 64 + } 65 + ); 66 + socket.on('error', error => { 67 + clearTimeout(timeout); 68 + reject(error); 69 + socket.close(); 70 + socket.unref(); 71 + }); 72 + socket.bind(DHCP_CLIENT_PORT, () => { 73 + socket.setBroadcast(true); 74 + socket.setSendBufferSize(packet.length); 75 + socket.send( 76 + packet, 77 + 0, 78 + packet.length, 79 + DHCP_SERVER_PORT, 80 + broadcastAddress, 81 + error => { 82 + if (error) reject(error); 83 + } 84 + ); 85 + }); 86 + }); 87 + };
+89
src/index.ts
··· 1 + import { spawnSync } from 'child_process'; 2 + import { dhcpDiscover } from './dhcp'; 3 + import { probeDefaultRoute } from './route'; 4 + import { interfaceAssignments, matchAssignment } from './network'; 5 + import type { GatewayAssignment } from './types'; 6 + 7 + const DEFAULT_ASSIGNMENT: GatewayAssignment = { 8 + iname: 'lo0', 9 + address: '127.0.0.1', 10 + netmask: '255.0.0.0', 11 + family: 'IPv4', 12 + mac: '00:00:00:00:00:00', 13 + internal: true, 14 + cidr: '127.0.0.1/8', 15 + gateway: null, 16 + }; 17 + 18 + export async function lanNetwork(): Promise<GatewayAssignment> { 19 + // Get IPv4 network assignments, sorted by: 20 + // - external first 21 + // - LAN-reserved IP range priority 22 + // - address value 23 + const assignments = interfaceAssignments(); 24 + if (!assignments.length) { 25 + // If we have no assignments (which shouldn't ever happen, we make up a loopback interface) 26 + return DEFAULT_ASSIGNMENT; 27 + } 28 + 29 + let assignment: GatewayAssignment | null; 30 + 31 + // First, we attempt to probe the default route to a publicly routed IP 32 + // This will generally fail if there's no route, e.g. if the network is offline 33 + try { 34 + const defaultRoute = await probeDefaultRoute(); 35 + // If this route matches a known assignment, return it without a gateway 36 + if ((assignment = matchAssignment(assignments, defaultRoute))) { 37 + return assignment; 38 + } 39 + } catch { 40 + // Ignore errors, since we have a fallback method 41 + } 42 + 43 + // Second, attempt to discover a gateway's DHCP network 44 + // Because without a gateway we won't get a reply, we do this in parallel 45 + const discoveries = await Promise.allSettled( 46 + assignments.map(assignment => { 47 + // For each assignment, we send a DHCPDISCOVER packet to its network mask 48 + return dhcpDiscover(assignment); 49 + }) 50 + ); 51 + for (const discovery of discoveries) { 52 + // The first discovered gateway is returned, if it matches an assignment 53 + if (discovery.status === 'fulfilled' && discovery.value) { 54 + const dhcpRoute = discovery.value; 55 + if ((assignment = matchAssignment(assignments, dhcpRoute))) { 56 + return assignment; 57 + } 58 + } 59 + } 60 + 61 + // As a fallback, we choose the first assignment, since they're ordered by likely candidates 62 + // This may return 127.0.0.1, typically as a last resort 63 + return { ...assignments[0], gateway: null }; 64 + } 65 + 66 + export function lanNetworkSync(): GatewayAssignment { 67 + const subprocessPath = require.resolve('lan-network/subprocess'); 68 + const { error, status, stdout } = spawnSync( 69 + process.execPath, 70 + [subprocessPath], 71 + { 72 + shell: false, 73 + timeout: 500, 74 + encoding: 'utf8', 75 + windowsVerbatimArguments: false, 76 + windowsHide: true, 77 + } 78 + ); 79 + if (status || error) { 80 + return DEFAULT_ASSIGNMENT; 81 + } else if (!status && typeof stdout === 'string') { 82 + const json = JSON.parse(stdout.trim()) as GatewayAssignment; 83 + return typeof json === 'object' && json && 'address' in json 84 + ? json 85 + : DEFAULT_ASSIGNMENT; 86 + } else { 87 + return DEFAULT_ASSIGNMENT; 88 + } 89 + }
+74
src/network.ts
··· 1 + import { networkInterfaces } from 'node:os'; 2 + import type { GatewayAssignment, NetworkAssignment } from './types'; 3 + 4 + export const parseMacStr = (macStr: string): number[] => 5 + macStr 6 + .split(':') 7 + .slice(0, 16) 8 + .map(seq => parseInt(seq, 16)); 9 + 10 + export const parseIpStr = (ipStr: string): number => { 11 + const addr = ipStr 12 + .split('.') 13 + .slice(0, 4) 14 + .map(seq => parseInt(seq, 10)); 15 + return addr[3] | (addr[2] << 8) | (addr[1] << 16) | (addr[0] << 24); 16 + }; 17 + 18 + export const toIpStr = (addr: number): string => { 19 + const MASK = (1 << 8) - 1; 20 + let ipStr = ''; 21 + ipStr += `${((addr >>> 24) & MASK).toString(10)}.`; 22 + ipStr += `${((addr >>> 16) & MASK).toString(10)}.`; 23 + ipStr += `${((addr >>> 8) & MASK).toString(10)}.`; 24 + ipStr += (addr & MASK).toString(10); 25 + return ipStr; 26 + }; 27 + 28 + const getSubnetPriority = (addr: string): number => { 29 + if (addr.startsWith('192.')) return 5; 30 + else if (addr.startsWith('172.')) return 4; 31 + else if (addr.startsWith('10.')) return 3; 32 + else if (addr.startsWith('100.')) return 2; 33 + else if (addr.startsWith('127.')) return 1; 34 + else return 0; 35 + }; 36 + 37 + export const interfaceAssignments = (): NetworkAssignment[] => { 38 + const candidates: NetworkAssignment[] = []; 39 + const interfaces = networkInterfaces(); 40 + for (const iname in interfaces) { 41 + const assignments = interfaces[iname]; 42 + if (!assignments) continue; 43 + for (const assignment of assignments) { 44 + if (assignment.family !== 'IPv4') continue; 45 + candidates.push({ ...assignment, iname }); 46 + } 47 + } 48 + return candidates.sort((a, b) => { 49 + const priorityA = getSubnetPriority(a.address); 50 + const priorityB = getSubnetPriority(b.address); 51 + // Prioritise external interfaces, then sort by priority, 52 + // when priority is equal, sort by raw IP values 53 + const sortBy = 54 + +a.internal - +b.internal || 55 + priorityB - priorityA || 56 + parseIpStr(b.address) - parseIpStr(a.address); 57 + return sortBy; 58 + }); 59 + }; 60 + 61 + export const matchAssignment = ( 62 + candidates: NetworkAssignment[], 63 + addr: string 64 + ): GatewayAssignment | null => { 65 + const rawAddr = parseIpStr(addr); 66 + for (const candidate of candidates) { 67 + const candidateAddr = parseIpStr(candidate.address); 68 + if (rawAddr === candidateAddr) return { ...candidate, gateway: null }; 69 + const mask = parseIpStr(candidate.netmask); 70 + if ((rawAddr & mask) === (candidateAddr & mask)) 71 + return { ...candidate, gateway: addr }; 72 + } 73 + return null; 74 + };
+30
src/route.ts
··· 1 + import { createSocket } from 'dgram'; 2 + 3 + const NOOP_PORT = 65535; 4 + const NOOP_IP = '255.255.255.255'; 5 + const NO_ROUTE_IP = '0.0.0.0'; 6 + 7 + class DefaultRouteError extends TypeError { 8 + code = 'ECONNABORT'; 9 + } 10 + 11 + export const probeDefaultRoute = (): Promise<string> => { 12 + return new Promise((resolve, reject) => { 13 + const socket = createSocket({ type: 'udp4', reuseAddr: true }); 14 + socket.on('error', error => { 15 + reject(error); 16 + socket.close(); 17 + socket.unref(); 18 + }); 19 + socket.connect(NOOP_PORT, NOOP_IP, () => { 20 + const address = socket.address(); 21 + if (address && 'address' in address && address.address !== NO_ROUTE_IP) { 22 + resolve(address.address); 23 + } else { 24 + reject(new DefaultRouteError('No route to host')); 25 + } 26 + socket.close(); 27 + socket.unref(); 28 + }); 29 + }); 30 + };
+9
src/subprocess.ts
··· 1 + import { lanNetwork } from './index'; 2 + 3 + async function output() { 4 + const assignment = await lanNetwork(); 5 + process.stdout.write(JSON.stringify(assignment)); 6 + process.exit(0); 7 + } 8 + 9 + output();
+13
src/types.ts
··· 1 + export interface NetworkAssignment { 2 + iname: string; 3 + address: string; 4 + netmask: string; 5 + mac: string; 6 + internal: boolean; 7 + cidr: string | null; 8 + family: 'IPv4'; 9 + } 10 + 11 + export interface GatewayAssignment extends NetworkAssignment { 12 + gateway: string | null; 13 + }
+25
tsconfig.json
··· 1 + { 2 + "compilerOptions": { 3 + "types": ["@types/node"], 4 + "baseUrl": "./", 5 + "rootDir": ".", 6 + "forceConsistentCasingInFileNames": true, 7 + "importsNotUsedAsValues": "remove", 8 + "noEmit": true, 9 + "esModuleInterop": true, 10 + "noUnusedLocals": true, 11 + "allowJs": true, 12 + "lib": ["es2016"], 13 + "jsx": "react-jsx", 14 + "module": "es2022", 15 + "moduleResolution": "node", 16 + "resolveJsonModule": true, 17 + "target": "esnext", 18 + "strict": true, 19 + "noImplicitAny": false, 20 + "noUnusedParameters": true, 21 + "skipLibCheck": true, 22 + "isolatedModules": true 23 + }, 24 + "include": ["src", "packages"] 25 + }