├── .cargo └── config.toml ├── .github ├── dependabot.yml └── workflows │ └── CI.yml ├── .gitignore ├── .npmignore ├── .yarn ├── install-state.gz └── releases │ └── yarn-4.2.2.cjs ├── .yarnrc.yml ├── Cargo.lock ├── Cargo.toml ├── README.md ├── __test__ └── index.spec.mjs ├── build.rs ├── index.d.ts ├── index.js ├── npm ├── darwin-arm64 │ ├── README.md │ └── package.json ├── darwin-x64 │ ├── README.md │ └── package.json ├── linux-arm64-gnu │ ├── README.md │ └── package.json ├── linux-arm64-musl │ ├── README.md │ └── package.json ├── linux-x64-gnu │ ├── README.md │ └── package.json ├── linux-x64-musl │ ├── README.md │ └── package.json └── win32-x64-msvc │ ├── README.md │ └── package.json ├── package.json ├── rustfmt.toml ├── src └── lib.rs ├── test-with-sanctuary ├── .gitignore ├── README.md ├── index.ts ├── package.json ├── tsconfig.json └── yarn.lock └── yarn.lock /.cargo/config.toml: -------------------------------------------------------------------------------- 1 | [target.aarch64-unknown-linux-gnu] 2 | linker = "aarch64-linux-gnu-gcc" 3 | 4 | [target.aarch64-unknown-linux-musl] 5 | linker = "aarch64-linux-musl-gcc" 6 | rustflags = ["-C", "target-feature=-crt-static"] 7 | 8 | [target.aarch64-pc-windows-msvc] 9 | rustflags = ["-C", "target-feature=+crt-static"] 10 | 11 | [target.x86_64-pc-windows-msvc] 12 | rustflags = ["-C", "target-feature=+crt-static"] 13 | 14 | [target.i686-pc-windows-msvc] 15 | rustflags = ["-C", "target-feature=+crt-static"] -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # Please see the documentation for all configuration options: 2 | # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates 3 | 4 | version: 2 5 | updates: 6 | - package-ecosystem: "cargo" 7 | directory: "/" 8 | schedule: 9 | interval: "daily" 10 | allow: 11 | - dependency-name: "solang-parser" 12 | -------------------------------------------------------------------------------- /.github/workflows/CI.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | env: 3 | DEBUG: napi:* 4 | APP_NAME: solidity-analyzer 5 | MACOSX_DEPLOYMENT_TARGET: "10.13" 6 | permissions: 7 | contents: write 8 | id-token: write 9 | "on": 10 | push: 11 | branches: 12 | - main 13 | tags-ignore: 14 | - "**" 15 | paths-ignore: 16 | - "**/*.md" 17 | - LICENSE 18 | - "**/*.gitignore" 19 | - .editorconfig 20 | - docs/** 21 | pull_request: null 22 | jobs: 23 | build: 24 | strategy: 25 | fail-fast: false 26 | matrix: 27 | settings: 28 | - host: macos-latest 29 | target: x86_64-apple-darwin 30 | build: yarn build --target x86_64-apple-darwin 31 | - host: windows-latest 32 | build: yarn build --target x86_64-pc-windows-msvc 33 | target: x86_64-pc-windows-msvc 34 | - host: ubuntu-latest 35 | target: x86_64-unknown-linux-gnu 36 | docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian 37 | build: yarn build --target x86_64-unknown-linux-gnu 38 | - host: ubuntu-latest 39 | target: x86_64-unknown-linux-musl 40 | docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine 41 | build: yarn build --target x86_64-unknown-linux-musl 42 | - host: macos-latest 43 | target: aarch64-apple-darwin 44 | build: yarn build --target aarch64-apple-darwin 45 | - host: ubuntu-latest 46 | target: aarch64-unknown-linux-gnu 47 | docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64 48 | build: yarn build --target aarch64-unknown-linux-gnu 49 | - host: ubuntu-latest 50 | target: aarch64-unknown-linux-musl 51 | docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine 52 | build: |- 53 | set -e && 54 | rustup target add aarch64-unknown-linux-musl && 55 | yarn build --target aarch64-unknown-linux-musl 56 | name: stable - ${{ matrix.settings.target }} - node@20 57 | runs-on: ${{ matrix.settings.host }} 58 | steps: 59 | - uses: actions/checkout@v4 60 | - name: Setup node 61 | uses: actions/setup-node@v4 62 | if: ${{ !matrix.settings.docker }} 63 | with: 64 | node-version: 20 65 | cache: yarn 66 | - name: Install 67 | uses: dtolnay/rust-toolchain@stable 68 | if: ${{ !matrix.settings.docker }} 69 | with: 70 | toolchain: stable 71 | targets: ${{ matrix.settings.target }} 72 | - name: Cache cargo 73 | uses: actions/cache@v4 74 | with: 75 | path: | 76 | ~/.cargo/registry/index/ 77 | ~/.cargo/registry/cache/ 78 | ~/.cargo/git/db/ 79 | .cargo-cache 80 | target/ 81 | key: ${{ matrix.settings.target }}-cargo-${{ matrix.settings.host }} 82 | - uses: goto-bus-stop/setup-zig@v2 83 | if: ${{ matrix.settings.target == 'armv7-unknown-linux-gnueabihf' || matrix.settings.target == 'armv7-unknown-linux-musleabihf' }} 84 | with: 85 | version: 0.11.0 86 | - name: Setup toolchain 87 | run: ${{ matrix.settings.setup }} 88 | if: ${{ matrix.settings.setup }} 89 | shell: bash 90 | - name: Setup node x86 91 | if: matrix.settings.target == 'i686-pc-windows-msvc' 92 | run: yarn config set supportedArchitectures.cpu "ia32" 93 | shell: bash 94 | - name: Install dependencies 95 | run: yarn install 96 | - name: Setup node x86 97 | uses: actions/setup-node@v4 98 | if: matrix.settings.target == 'i686-pc-windows-msvc' 99 | with: 100 | node-version: 20 101 | cache: yarn 102 | architecture: x86 103 | - name: Build in docker 104 | uses: addnab/docker-run-action@v3 105 | if: ${{ matrix.settings.docker }} 106 | with: 107 | image: ${{ matrix.settings.docker }} 108 | options: "--user 0:0 -v ${{ github.workspace }}/.cargo-cache/git/db:/usr/local/cargo/git/db -v ${{ github.workspace }}/.cargo/registry/cache:/usr/local/cargo/registry/cache -v ${{ github.workspace }}/.cargo/registry/index:/usr/local/cargo/registry/index -v ${{ github.workspace }}:/build -w /build" 109 | run: ${{ matrix.settings.build }} 110 | - name: Build 111 | run: ${{ matrix.settings.build }} 112 | if: ${{ !matrix.settings.docker }} 113 | shell: bash 114 | - name: Upload artifact 115 | uses: actions/upload-artifact@v4 116 | with: 117 | name: bindings-${{ matrix.settings.target }} 118 | path: ${{ env.APP_NAME }}.*.node 119 | if-no-files-found: error 120 | test-macOS-windows-binding: 121 | name: Test bindings on ${{ matrix.settings.target }} - node@${{ matrix.node }} 122 | needs: 123 | - build 124 | strategy: 125 | fail-fast: false 126 | matrix: 127 | settings: 128 | - host: macos-latest 129 | target: x86_64-apple-darwin 130 | - host: windows-latest 131 | target: x86_64-pc-windows-msvc 132 | node: 133 | - "18" 134 | - "20" 135 | runs-on: ${{ matrix.settings.host }} 136 | steps: 137 | - uses: actions/checkout@v4 138 | - name: Setup node 139 | uses: actions/setup-node@v4 140 | with: 141 | node-version: ${{ matrix.node }} 142 | cache: yarn 143 | architecture: x64 144 | - name: Install dependencies 145 | run: yarn install 146 | - name: Download artifacts 147 | uses: actions/download-artifact@v4 148 | with: 149 | name: bindings-${{ matrix.settings.target }} 150 | path: . 151 | - name: List packages 152 | run: ls -R . 153 | shell: bash 154 | - name: Test bindings 155 | run: yarn test 156 | test-linux-x64-gnu-binding: 157 | name: Test bindings on Linux-x64-gnu - node@${{ matrix.node }} 158 | needs: 159 | - build 160 | strategy: 161 | fail-fast: false 162 | matrix: 163 | node: 164 | - "18" 165 | - "20" 166 | runs-on: ubuntu-latest 167 | steps: 168 | - uses: actions/checkout@v4 169 | - name: Setup node 170 | uses: actions/setup-node@v4 171 | with: 172 | node-version: ${{ matrix.node }} 173 | cache: yarn 174 | - name: Install dependencies 175 | run: yarn install 176 | - name: Download artifacts 177 | uses: actions/download-artifact@v4 178 | with: 179 | name: bindings-x86_64-unknown-linux-gnu 180 | path: . 181 | - name: List packages 182 | run: ls -R . 183 | shell: bash 184 | - name: Test bindings 185 | run: docker run --rm -v $(pwd):/build -w /build node:${{ matrix.node }}-slim yarn test 186 | test-linux-x64-musl-binding: 187 | name: Test bindings on x86_64-unknown-linux-musl - node@${{ matrix.node }} 188 | needs: 189 | - build 190 | strategy: 191 | fail-fast: false 192 | matrix: 193 | node: 194 | - "18" 195 | - "20" 196 | runs-on: ubuntu-latest 197 | steps: 198 | - uses: actions/checkout@v4 199 | - name: Setup node 200 | uses: actions/setup-node@v4 201 | with: 202 | node-version: ${{ matrix.node }} 203 | cache: yarn 204 | - name: Install dependencies 205 | run: | 206 | yarn config set supportedArchitectures.libc "musl" 207 | yarn install 208 | - name: Download artifacts 209 | uses: actions/download-artifact@v4 210 | with: 211 | name: bindings-x86_64-unknown-linux-musl 212 | path: . 213 | - name: List packages 214 | run: ls -R . 215 | shell: bash 216 | - name: Test bindings 217 | run: docker run --rm -v $(pwd):/build -w /build node:${{ matrix.node }}-alpine yarn test 218 | test-linux-aarch64-gnu-binding: 219 | name: Test bindings on aarch64-unknown-linux-gnu - node@${{ matrix.node }} 220 | needs: 221 | - build 222 | strategy: 223 | fail-fast: false 224 | matrix: 225 | node: 226 | - "18" 227 | - "20" 228 | runs-on: ubuntu-latest 229 | steps: 230 | - uses: actions/checkout@v4 231 | - name: Download artifacts 232 | uses: actions/download-artifact@v4 233 | with: 234 | name: bindings-aarch64-unknown-linux-gnu 235 | path: . 236 | - name: List packages 237 | run: ls -R . 238 | shell: bash 239 | - name: Install dependencies 240 | run: | 241 | yarn config set supportedArchitectures.cpu "arm64" 242 | yarn config set supportedArchitectures.libc "glibc" 243 | yarn install 244 | - name: Set up QEMU 245 | uses: docker/setup-qemu-action@v3 246 | with: 247 | platforms: arm64 248 | - run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes 249 | - name: Setup and run tests 250 | uses: addnab/docker-run-action@v3 251 | with: 252 | image: node:${{ matrix.node }}-slim 253 | options: "--platform linux/arm64 -v ${{ github.workspace }}:/build -w /build" 254 | run: | 255 | set -e 256 | yarn test 257 | ls -la 258 | test-linux-aarch64-musl-binding: 259 | name: Test bindings on aarch64-unknown-linux-musl - node@${{ matrix.node }} 260 | needs: 261 | - build 262 | runs-on: ubuntu-latest 263 | steps: 264 | - uses: actions/checkout@v4 265 | - name: Download artifacts 266 | uses: actions/download-artifact@v4 267 | with: 268 | name: bindings-aarch64-unknown-linux-musl 269 | path: . 270 | - name: List packages 271 | run: ls -R . 272 | shell: bash 273 | - name: Install dependencies 274 | run: | 275 | yarn config set supportedArchitectures.cpu "arm64" 276 | yarn config set supportedArchitectures.libc "musl" 277 | yarn install 278 | - name: Set up QEMU 279 | uses: docker/setup-qemu-action@v3 280 | with: 281 | platforms: arm64 282 | - run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes 283 | - name: Setup and run tests 284 | uses: addnab/docker-run-action@v3 285 | with: 286 | image: node:lts-alpine 287 | options: "--platform linux/arm64 -v ${{ github.workspace }}:/build -w /build" 288 | run: | 289 | set -e 290 | yarn test 291 | publish: 292 | name: Publish 293 | runs-on: ubuntu-latest 294 | needs: 295 | - test-macOS-windows-binding 296 | - test-linux-x64-gnu-binding 297 | - test-linux-x64-musl-binding 298 | - test-linux-aarch64-gnu-binding 299 | - test-linux-aarch64-musl-binding 300 | steps: 301 | - uses: actions/checkout@v4 302 | - name: Setup node 303 | uses: actions/setup-node@v4 304 | with: 305 | node-version: 20 306 | cache: yarn 307 | - name: Install dependencies 308 | run: yarn install 309 | - name: Download all artifacts 310 | uses: actions/download-artifact@v4 311 | with: 312 | path: artifacts 313 | - name: Move artifacts 314 | run: yarn artifacts 315 | - name: List packages 316 | run: ls -R ./npm 317 | shell: bash 318 | - name: Publish 319 | run: | 320 | npm config set provenance true 321 | if git log -1 --pretty=%B | grep "^[0-9]\+\.[0-9]\+\.[0-9]\+$"; 322 | then 323 | echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc 324 | npm publish --access public 325 | elif git log -1 --pretty=%B | grep "^[0-9]\+\.[0-9]\+\.[0-9]\+"; 326 | then 327 | echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc 328 | npm publish --tag next --access public 329 | else 330 | echo "Not a release, skipping publish" 331 | fi 332 | env: 333 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 334 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 335 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by https://www.toptal.com/developers/gitignore/api/node 2 | # Edit at https://www.toptal.com/developers/gitignore?templates=node 3 | 4 | ### Node ### 5 | # Logs 6 | logs 7 | *.log 8 | npm-debug.log* 9 | yarn-debug.log* 10 | yarn-error.log* 11 | lerna-debug.log* 12 | 13 | # Diagnostic reports (https://nodejs.org/api/report.html) 14 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 15 | 16 | # Runtime data 17 | pids 18 | *.pid 19 | *.seed 20 | *.pid.lock 21 | 22 | # Directory for instrumented libs generated by jscoverage/JSCover 23 | lib-cov 24 | 25 | # Coverage directory used by tools like istanbul 26 | coverage 27 | *.lcov 28 | 29 | # nyc test coverage 30 | .nyc_output 31 | 32 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 33 | .grunt 34 | 35 | # Bower dependency directory (https://bower.io/) 36 | bower_components 37 | 38 | # node-waf configuration 39 | .lock-wscript 40 | 41 | # Compiled binary addons (https://nodejs.org/api/addons.html) 42 | build/Release 43 | 44 | # Dependency directories 45 | node_modules/ 46 | jspm_packages/ 47 | 48 | # TypeScript v1 declaration files 49 | typings/ 50 | 51 | # TypeScript cache 52 | *.tsbuildinfo 53 | 54 | # Optional npm cache directory 55 | .npm 56 | 57 | # Optional eslint cache 58 | .eslintcache 59 | 60 | # Microbundle cache 61 | .rpt2_cache/ 62 | .rts2_cache_cjs/ 63 | .rts2_cache_es/ 64 | .rts2_cache_umd/ 65 | 66 | # Optional REPL history 67 | .node_repl_history 68 | 69 | # Output of 'npm pack' 70 | *.tgz 71 | 72 | # Yarn Integrity file 73 | .yarn-integrity 74 | 75 | # dotenv environment variables file 76 | .env 77 | .env.test 78 | 79 | # parcel-bundler cache (https://parceljs.org/) 80 | .cache 81 | 82 | # Next.js build output 83 | .next 84 | 85 | # Nuxt.js build / generate output 86 | .nuxt 87 | dist 88 | 89 | # Gatsby files 90 | .cache/ 91 | # Comment in the public line in if your project uses Gatsby and not Next.js 92 | # https://nextjs.org/blog/next-9-1#public-directory-support 93 | # public 94 | 95 | # vuepress build output 96 | .vuepress/dist 97 | 98 | # Serverless directories 99 | .serverless/ 100 | 101 | # FuseBox cache 102 | .fusebox/ 103 | 104 | # DynamoDB Local files 105 | .dynamodb/ 106 | 107 | # TernJS port file 108 | .tern-port 109 | 110 | # Stores VSCode versions used for testing VSCode extensions 111 | .vscode-test 112 | 113 | # End of https://www.toptal.com/developers/gitignore/api/node 114 | 115 | # Created by https://www.toptal.com/developers/gitignore/api/macos 116 | # Edit at https://www.toptal.com/developers/gitignore?templates=macos 117 | 118 | ### macOS ### 119 | # General 120 | .DS_Store 121 | .AppleDouble 122 | .LSOverride 123 | 124 | # Icon must end with two 125 | Icon 126 | 127 | 128 | # Thumbnails 129 | ._* 130 | 131 | # Files that might appear in the root of a volume 132 | .DocumentRevisions-V100 133 | .fseventsd 134 | .Spotlight-V100 135 | .TemporaryItems 136 | .Trashes 137 | .VolumeIcon.icns 138 | .com.apple.timemachine.donotpresent 139 | 140 | # Directories potentially created on remote AFP share 141 | .AppleDB 142 | .AppleDesktop 143 | Network Trash Folder 144 | Temporary Items 145 | .apdisk 146 | 147 | ### macOS Patch ### 148 | # iCloud generated files 149 | *.icloud 150 | 151 | # End of https://www.toptal.com/developers/gitignore/api/macos 152 | 153 | # Created by https://www.toptal.com/developers/gitignore/api/windows 154 | # Edit at https://www.toptal.com/developers/gitignore?templates=windows 155 | 156 | ### Windows ### 157 | # Windows thumbnail cache files 158 | Thumbs.db 159 | Thumbs.db:encryptable 160 | ehthumbs.db 161 | ehthumbs_vista.db 162 | 163 | # Dump file 164 | *.stackdump 165 | 166 | # Folder config file 167 | [Dd]esktop.ini 168 | 169 | # Recycle Bin used on file shares 170 | $RECYCLE.BIN/ 171 | 172 | # Windows Installer files 173 | *.cab 174 | *.msi 175 | *.msix 176 | *.msm 177 | *.msp 178 | 179 | # Windows shortcuts 180 | *.lnk 181 | 182 | # End of https://www.toptal.com/developers/gitignore/api/windows 183 | 184 | #Added by cargo 185 | 186 | /target 187 | 188 | *.node 189 | 190 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | target 2 | Cargo.lock 3 | .cargo 4 | .github 5 | npm 6 | .eslintrc 7 | .prettierignore 8 | rustfmt.toml 9 | yarn.lock 10 | *.node 11 | .yarn 12 | __test__ 13 | renovate.json 14 | -------------------------------------------------------------------------------- /.yarn/install-state.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NomicFoundation/solidity-analyzer/5e80defc5bad93257a26c2877d948ced94d8b217/.yarn/install-state.gz -------------------------------------------------------------------------------- /.yarnrc.yml: -------------------------------------------------------------------------------- 1 | nodeLinker: node-modules 2 | 3 | yarnPath: .yarn/releases/yarn-4.2.2.cjs 4 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "aho-corasick" 7 | version = "0.7.18" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" 10 | dependencies = [ 11 | "memchr", 12 | ] 13 | 14 | [[package]] 15 | name = "ascii-canvas" 16 | version = "3.0.0" 17 | source = "registry+https://github.com/rust-lang/crates.io-index" 18 | checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" 19 | dependencies = [ 20 | "term", 21 | ] 22 | 23 | [[package]] 24 | name = "atty" 25 | version = "0.2.14" 26 | source = "registry+https://github.com/rust-lang/crates.io-index" 27 | checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" 28 | dependencies = [ 29 | "hermit-abi", 30 | "libc", 31 | "winapi", 32 | ] 33 | 34 | [[package]] 35 | name = "autocfg" 36 | version = "1.1.0" 37 | source = "registry+https://github.com/rust-lang/crates.io-index" 38 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 39 | 40 | [[package]] 41 | name = "bit-set" 42 | version = "0.5.2" 43 | source = "registry+https://github.com/rust-lang/crates.io-index" 44 | checksum = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de" 45 | dependencies = [ 46 | "bit-vec", 47 | ] 48 | 49 | [[package]] 50 | name = "bit-vec" 51 | version = "0.6.3" 52 | source = "registry+https://github.com/rust-lang/crates.io-index" 53 | checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" 54 | 55 | [[package]] 56 | name = "bitflags" 57 | version = "1.3.2" 58 | source = "registry+https://github.com/rust-lang/crates.io-index" 59 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 60 | 61 | [[package]] 62 | name = "bitflags" 63 | version = "2.5.0" 64 | source = "registry+https://github.com/rust-lang/crates.io-index" 65 | checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" 66 | 67 | [[package]] 68 | name = "cfg-if" 69 | version = "1.0.0" 70 | source = "registry+https://github.com/rust-lang/crates.io-index" 71 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 72 | 73 | [[package]] 74 | name = "convert_case" 75 | version = "0.6.0" 76 | source = "registry+https://github.com/rust-lang/crates.io-index" 77 | checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" 78 | dependencies = [ 79 | "unicode-segmentation", 80 | ] 81 | 82 | [[package]] 83 | name = "crunchy" 84 | version = "0.2.2" 85 | source = "registry+https://github.com/rust-lang/crates.io-index" 86 | checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" 87 | 88 | [[package]] 89 | name = "ctor" 90 | version = "0.2.8" 91 | source = "registry+https://github.com/rust-lang/crates.io-index" 92 | checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f" 93 | dependencies = [ 94 | "quote", 95 | "syn 2.0.66", 96 | ] 97 | 98 | [[package]] 99 | name = "diff" 100 | version = "0.1.12" 101 | source = "registry+https://github.com/rust-lang/crates.io-index" 102 | checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499" 103 | 104 | [[package]] 105 | name = "dirs-next" 106 | version = "2.0.0" 107 | source = "registry+https://github.com/rust-lang/crates.io-index" 108 | checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" 109 | dependencies = [ 110 | "cfg-if", 111 | "dirs-sys-next", 112 | ] 113 | 114 | [[package]] 115 | name = "dirs-sys-next" 116 | version = "0.1.2" 117 | source = "registry+https://github.com/rust-lang/crates.io-index" 118 | checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" 119 | dependencies = [ 120 | "libc", 121 | "redox_users", 122 | "winapi", 123 | ] 124 | 125 | [[package]] 126 | name = "either" 127 | version = "1.6.1" 128 | source = "registry+https://github.com/rust-lang/crates.io-index" 129 | checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" 130 | 131 | [[package]] 132 | name = "ena" 133 | version = "0.14.0" 134 | source = "registry+https://github.com/rust-lang/crates.io-index" 135 | checksum = "d7402b94a93c24e742487327a7cd839dc9d36fec9de9fb25b09f2dae459f36c3" 136 | dependencies = [ 137 | "log", 138 | ] 139 | 140 | [[package]] 141 | name = "fixedbitset" 142 | version = "0.4.1" 143 | source = "registry+https://github.com/rust-lang/crates.io-index" 144 | checksum = "279fb028e20b3c4c320317955b77c5e0c9701f05a1d309905d6fc702cdc5053e" 145 | 146 | [[package]] 147 | name = "getrandom" 148 | version = "0.2.6" 149 | source = "registry+https://github.com/rust-lang/crates.io-index" 150 | checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad" 151 | dependencies = [ 152 | "cfg-if", 153 | "libc", 154 | "wasi", 155 | ] 156 | 157 | [[package]] 158 | name = "hashbrown" 159 | version = "0.11.2" 160 | source = "registry+https://github.com/rust-lang/crates.io-index" 161 | checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" 162 | 163 | [[package]] 164 | name = "hermit-abi" 165 | version = "0.1.19" 166 | source = "registry+https://github.com/rust-lang/crates.io-index" 167 | checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" 168 | dependencies = [ 169 | "libc", 170 | ] 171 | 172 | [[package]] 173 | name = "indexmap" 174 | version = "1.8.2" 175 | source = "registry+https://github.com/rust-lang/crates.io-index" 176 | checksum = "e6012d540c5baa3589337a98ce73408de9b5a25ec9fc2c6fd6be8f0d39e0ca5a" 177 | dependencies = [ 178 | "autocfg", 179 | "hashbrown", 180 | ] 181 | 182 | [[package]] 183 | name = "itertools" 184 | version = "0.10.3" 185 | source = "registry+https://github.com/rust-lang/crates.io-index" 186 | checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3" 187 | dependencies = [ 188 | "either", 189 | ] 190 | 191 | [[package]] 192 | name = "lalrpop" 193 | version = "0.19.8" 194 | source = "registry+https://github.com/rust-lang/crates.io-index" 195 | checksum = "b30455341b0e18f276fa64540aff54deafb54c589de6aca68659c63dd2d5d823" 196 | dependencies = [ 197 | "ascii-canvas", 198 | "atty", 199 | "bit-set", 200 | "diff", 201 | "ena", 202 | "itertools", 203 | "lalrpop-util", 204 | "petgraph", 205 | "pico-args", 206 | "regex", 207 | "regex-syntax", 208 | "string_cache", 209 | "term", 210 | "tiny-keccak", 211 | "unicode-xid", 212 | ] 213 | 214 | [[package]] 215 | name = "lalrpop-util" 216 | version = "0.19.8" 217 | source = "registry+https://github.com/rust-lang/crates.io-index" 218 | checksum = "bcf796c978e9b4d983414f4caedc9273aa33ee214c5b887bd55fde84c85d2dc4" 219 | dependencies = [ 220 | "regex", 221 | ] 222 | 223 | [[package]] 224 | name = "libc" 225 | version = "0.2.126" 226 | source = "registry+https://github.com/rust-lang/crates.io-index" 227 | checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" 228 | 229 | [[package]] 230 | name = "libloading" 231 | version = "0.8.3" 232 | source = "registry+https://github.com/rust-lang/crates.io-index" 233 | checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" 234 | dependencies = [ 235 | "cfg-if", 236 | "windows-targets", 237 | ] 238 | 239 | [[package]] 240 | name = "lock_api" 241 | version = "0.4.7" 242 | source = "registry+https://github.com/rust-lang/crates.io-index" 243 | checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" 244 | dependencies = [ 245 | "autocfg", 246 | "scopeguard", 247 | ] 248 | 249 | [[package]] 250 | name = "log" 251 | version = "0.4.17" 252 | source = "registry+https://github.com/rust-lang/crates.io-index" 253 | checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" 254 | dependencies = [ 255 | "cfg-if", 256 | ] 257 | 258 | [[package]] 259 | name = "memchr" 260 | version = "2.5.0" 261 | source = "registry+https://github.com/rust-lang/crates.io-index" 262 | checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" 263 | 264 | [[package]] 265 | name = "napi" 266 | version = "2.16.6" 267 | source = "registry+https://github.com/rust-lang/crates.io-index" 268 | checksum = "dfc300228808a0e6aea5a58115c82889240bcf8dab16fc25ad675b33e454b368" 269 | dependencies = [ 270 | "bitflags 2.5.0", 271 | "ctor", 272 | "napi-derive", 273 | "napi-sys", 274 | "once_cell", 275 | ] 276 | 277 | [[package]] 278 | name = "napi-build" 279 | version = "2.1.3" 280 | source = "registry+https://github.com/rust-lang/crates.io-index" 281 | checksum = "e1c0f5d67ee408a4685b61f5ab7e58605c8ae3f2b4189f0127d804ff13d5560a" 282 | 283 | [[package]] 284 | name = "napi-derive" 285 | version = "2.16.5" 286 | source = "registry+https://github.com/rust-lang/crates.io-index" 287 | checksum = "e0e034ddf6155192cf83f267ede763fe6c164dfa9971585436b16173718d94c4" 288 | dependencies = [ 289 | "cfg-if", 290 | "convert_case", 291 | "napi-derive-backend", 292 | "proc-macro2", 293 | "quote", 294 | "syn 2.0.66", 295 | ] 296 | 297 | [[package]] 298 | name = "napi-derive-backend" 299 | version = "1.0.67" 300 | source = "registry+https://github.com/rust-lang/crates.io-index" 301 | checksum = "bff2c00437f3b3266391eb5e6aa25d0029187daf5caf05b8e3271468fb5ae73e" 302 | dependencies = [ 303 | "convert_case", 304 | "once_cell", 305 | "proc-macro2", 306 | "quote", 307 | "regex", 308 | "semver", 309 | "syn 2.0.66", 310 | ] 311 | 312 | [[package]] 313 | name = "napi-sys" 314 | version = "2.4.0" 315 | source = "registry+https://github.com/rust-lang/crates.io-index" 316 | checksum = "427802e8ec3a734331fec1035594a210ce1ff4dc5bc1950530920ab717964ea3" 317 | dependencies = [ 318 | "libloading", 319 | ] 320 | 321 | [[package]] 322 | name = "new_debug_unreachable" 323 | version = "1.0.4" 324 | source = "registry+https://github.com/rust-lang/crates.io-index" 325 | checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" 326 | 327 | [[package]] 328 | name = "nomicfoundation_solidity-analyzer" 329 | version = "0.0.0" 330 | dependencies = [ 331 | "napi", 332 | "napi-build", 333 | "napi-derive", 334 | "solang-parser", 335 | ] 336 | 337 | [[package]] 338 | name = "once_cell" 339 | version = "1.19.0" 340 | source = "registry+https://github.com/rust-lang/crates.io-index" 341 | checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" 342 | 343 | [[package]] 344 | name = "parking_lot" 345 | version = "0.12.1" 346 | source = "registry+https://github.com/rust-lang/crates.io-index" 347 | checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" 348 | dependencies = [ 349 | "lock_api", 350 | "parking_lot_core", 351 | ] 352 | 353 | [[package]] 354 | name = "parking_lot_core" 355 | version = "0.9.3" 356 | source = "registry+https://github.com/rust-lang/crates.io-index" 357 | checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" 358 | dependencies = [ 359 | "cfg-if", 360 | "libc", 361 | "redox_syscall", 362 | "smallvec", 363 | "windows-sys", 364 | ] 365 | 366 | [[package]] 367 | name = "petgraph" 368 | version = "0.6.2" 369 | source = "registry+https://github.com/rust-lang/crates.io-index" 370 | checksum = "e6d5014253a1331579ce62aa67443b4a658c5e7dd03d4bc6d302b94474888143" 371 | dependencies = [ 372 | "fixedbitset", 373 | "indexmap", 374 | ] 375 | 376 | [[package]] 377 | name = "phf" 378 | version = "0.10.1" 379 | source = "registry+https://github.com/rust-lang/crates.io-index" 380 | checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" 381 | dependencies = [ 382 | "phf_macros", 383 | "phf_shared", 384 | "proc-macro-hack", 385 | ] 386 | 387 | [[package]] 388 | name = "phf_generator" 389 | version = "0.10.0" 390 | source = "registry+https://github.com/rust-lang/crates.io-index" 391 | checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" 392 | dependencies = [ 393 | "phf_shared", 394 | "rand", 395 | ] 396 | 397 | [[package]] 398 | name = "phf_macros" 399 | version = "0.10.0" 400 | source = "registry+https://github.com/rust-lang/crates.io-index" 401 | checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" 402 | dependencies = [ 403 | "phf_generator", 404 | "phf_shared", 405 | "proc-macro-hack", 406 | "proc-macro2", 407 | "quote", 408 | "syn 1.0.95", 409 | ] 410 | 411 | [[package]] 412 | name = "phf_shared" 413 | version = "0.10.0" 414 | source = "registry+https://github.com/rust-lang/crates.io-index" 415 | checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" 416 | dependencies = [ 417 | "siphasher", 418 | ] 419 | 420 | [[package]] 421 | name = "pico-args" 422 | version = "0.4.2" 423 | source = "registry+https://github.com/rust-lang/crates.io-index" 424 | checksum = "db8bcd96cb740d03149cbad5518db9fd87126a10ab519c011893b1754134c468" 425 | 426 | [[package]] 427 | name = "ppv-lite86" 428 | version = "0.2.16" 429 | source = "registry+https://github.com/rust-lang/crates.io-index" 430 | checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" 431 | 432 | [[package]] 433 | name = "precomputed-hash" 434 | version = "0.1.1" 435 | source = "registry+https://github.com/rust-lang/crates.io-index" 436 | checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" 437 | 438 | [[package]] 439 | name = "proc-macro-hack" 440 | version = "0.5.19" 441 | source = "registry+https://github.com/rust-lang/crates.io-index" 442 | checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" 443 | 444 | [[package]] 445 | name = "proc-macro2" 446 | version = "1.0.85" 447 | source = "registry+https://github.com/rust-lang/crates.io-index" 448 | checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" 449 | dependencies = [ 450 | "unicode-ident", 451 | ] 452 | 453 | [[package]] 454 | name = "quote" 455 | version = "1.0.36" 456 | source = "registry+https://github.com/rust-lang/crates.io-index" 457 | checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" 458 | dependencies = [ 459 | "proc-macro2", 460 | ] 461 | 462 | [[package]] 463 | name = "rand" 464 | version = "0.8.5" 465 | source = "registry+https://github.com/rust-lang/crates.io-index" 466 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 467 | dependencies = [ 468 | "libc", 469 | "rand_chacha", 470 | "rand_core", 471 | ] 472 | 473 | [[package]] 474 | name = "rand_chacha" 475 | version = "0.3.1" 476 | source = "registry+https://github.com/rust-lang/crates.io-index" 477 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 478 | dependencies = [ 479 | "ppv-lite86", 480 | "rand_core", 481 | ] 482 | 483 | [[package]] 484 | name = "rand_core" 485 | version = "0.6.3" 486 | source = "registry+https://github.com/rust-lang/crates.io-index" 487 | checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" 488 | dependencies = [ 489 | "getrandom", 490 | ] 491 | 492 | [[package]] 493 | name = "redox_syscall" 494 | version = "0.2.13" 495 | source = "registry+https://github.com/rust-lang/crates.io-index" 496 | checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" 497 | dependencies = [ 498 | "bitflags 1.3.2", 499 | ] 500 | 501 | [[package]] 502 | name = "redox_users" 503 | version = "0.4.3" 504 | source = "registry+https://github.com/rust-lang/crates.io-index" 505 | checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" 506 | dependencies = [ 507 | "getrandom", 508 | "redox_syscall", 509 | "thiserror", 510 | ] 511 | 512 | [[package]] 513 | name = "regex" 514 | version = "1.5.6" 515 | source = "registry+https://github.com/rust-lang/crates.io-index" 516 | checksum = "d83f127d94bdbcda4c8cc2e50f6f84f4b611f69c902699ca385a39c3a75f9ff1" 517 | dependencies = [ 518 | "aho-corasick", 519 | "memchr", 520 | "regex-syntax", 521 | ] 522 | 523 | [[package]] 524 | name = "regex-syntax" 525 | version = "0.6.26" 526 | source = "registry+https://github.com/rust-lang/crates.io-index" 527 | checksum = "49b3de9ec5dc0a3417da371aab17d729997c15010e7fd24ff707773a33bddb64" 528 | 529 | [[package]] 530 | name = "rustversion" 531 | version = "1.0.6" 532 | source = "registry+https://github.com/rust-lang/crates.io-index" 533 | checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f" 534 | 535 | [[package]] 536 | name = "scopeguard" 537 | version = "1.1.0" 538 | source = "registry+https://github.com/rust-lang/crates.io-index" 539 | checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" 540 | 541 | [[package]] 542 | name = "semver" 543 | version = "1.0.23" 544 | source = "registry+https://github.com/rust-lang/crates.io-index" 545 | checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" 546 | 547 | [[package]] 548 | name = "siphasher" 549 | version = "0.3.10" 550 | source = "registry+https://github.com/rust-lang/crates.io-index" 551 | checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" 552 | 553 | [[package]] 554 | name = "smallvec" 555 | version = "1.8.0" 556 | source = "registry+https://github.com/rust-lang/crates.io-index" 557 | checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" 558 | 559 | [[package]] 560 | name = "solang-parser" 561 | version = "0.1.13" 562 | source = "registry+https://github.com/rust-lang/crates.io-index" 563 | checksum = "395b6e1ec5af117bd08f963c7cd80f8efd4eed51c5a332aed42b13e3f9bc860b" 564 | dependencies = [ 565 | "itertools", 566 | "lalrpop", 567 | "lalrpop-util", 568 | "phf", 569 | "unicode-xid", 570 | ] 571 | 572 | [[package]] 573 | name = "string_cache" 574 | version = "0.8.4" 575 | source = "registry+https://github.com/rust-lang/crates.io-index" 576 | checksum = "213494b7a2b503146286049378ce02b482200519accc31872ee8be91fa820a08" 577 | dependencies = [ 578 | "new_debug_unreachable", 579 | "once_cell", 580 | "parking_lot", 581 | "phf_shared", 582 | "precomputed-hash", 583 | ] 584 | 585 | [[package]] 586 | name = "syn" 587 | version = "1.0.95" 588 | source = "registry+https://github.com/rust-lang/crates.io-index" 589 | checksum = "fbaf6116ab8924f39d52792136fb74fd60a80194cf1b1c6ffa6453eef1c3f942" 590 | dependencies = [ 591 | "proc-macro2", 592 | "quote", 593 | "unicode-ident", 594 | ] 595 | 596 | [[package]] 597 | name = "syn" 598 | version = "2.0.66" 599 | source = "registry+https://github.com/rust-lang/crates.io-index" 600 | checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" 601 | dependencies = [ 602 | "proc-macro2", 603 | "quote", 604 | "unicode-ident", 605 | ] 606 | 607 | [[package]] 608 | name = "term" 609 | version = "0.7.0" 610 | source = "registry+https://github.com/rust-lang/crates.io-index" 611 | checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" 612 | dependencies = [ 613 | "dirs-next", 614 | "rustversion", 615 | "winapi", 616 | ] 617 | 618 | [[package]] 619 | name = "thiserror" 620 | version = "1.0.31" 621 | source = "registry+https://github.com/rust-lang/crates.io-index" 622 | checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a" 623 | dependencies = [ 624 | "thiserror-impl", 625 | ] 626 | 627 | [[package]] 628 | name = "thiserror-impl" 629 | version = "1.0.31" 630 | source = "registry+https://github.com/rust-lang/crates.io-index" 631 | checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a" 632 | dependencies = [ 633 | "proc-macro2", 634 | "quote", 635 | "syn 1.0.95", 636 | ] 637 | 638 | [[package]] 639 | name = "tiny-keccak" 640 | version = "2.0.2" 641 | source = "registry+https://github.com/rust-lang/crates.io-index" 642 | checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" 643 | dependencies = [ 644 | "crunchy", 645 | ] 646 | 647 | [[package]] 648 | name = "unicode-ident" 649 | version = "1.0.0" 650 | source = "registry+https://github.com/rust-lang/crates.io-index" 651 | checksum = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee" 652 | 653 | [[package]] 654 | name = "unicode-segmentation" 655 | version = "1.10.1" 656 | source = "registry+https://github.com/rust-lang/crates.io-index" 657 | checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" 658 | 659 | [[package]] 660 | name = "unicode-xid" 661 | version = "0.2.3" 662 | source = "registry+https://github.com/rust-lang/crates.io-index" 663 | checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04" 664 | 665 | [[package]] 666 | name = "wasi" 667 | version = "0.10.2+wasi-snapshot-preview1" 668 | source = "registry+https://github.com/rust-lang/crates.io-index" 669 | checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" 670 | 671 | [[package]] 672 | name = "winapi" 673 | version = "0.3.9" 674 | source = "registry+https://github.com/rust-lang/crates.io-index" 675 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 676 | dependencies = [ 677 | "winapi-i686-pc-windows-gnu", 678 | "winapi-x86_64-pc-windows-gnu", 679 | ] 680 | 681 | [[package]] 682 | name = "winapi-i686-pc-windows-gnu" 683 | version = "0.4.0" 684 | source = "registry+https://github.com/rust-lang/crates.io-index" 685 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 686 | 687 | [[package]] 688 | name = "winapi-x86_64-pc-windows-gnu" 689 | version = "0.4.0" 690 | source = "registry+https://github.com/rust-lang/crates.io-index" 691 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 692 | 693 | [[package]] 694 | name = "windows-sys" 695 | version = "0.36.1" 696 | source = "registry+https://github.com/rust-lang/crates.io-index" 697 | checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" 698 | dependencies = [ 699 | "windows_aarch64_msvc 0.36.1", 700 | "windows_i686_gnu 0.36.1", 701 | "windows_i686_msvc 0.36.1", 702 | "windows_x86_64_gnu 0.36.1", 703 | "windows_x86_64_msvc 0.36.1", 704 | ] 705 | 706 | [[package]] 707 | name = "windows-targets" 708 | version = "0.52.5" 709 | source = "registry+https://github.com/rust-lang/crates.io-index" 710 | checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" 711 | dependencies = [ 712 | "windows_aarch64_gnullvm", 713 | "windows_aarch64_msvc 0.52.5", 714 | "windows_i686_gnu 0.52.5", 715 | "windows_i686_gnullvm", 716 | "windows_i686_msvc 0.52.5", 717 | "windows_x86_64_gnu 0.52.5", 718 | "windows_x86_64_gnullvm", 719 | "windows_x86_64_msvc 0.52.5", 720 | ] 721 | 722 | [[package]] 723 | name = "windows_aarch64_gnullvm" 724 | version = "0.52.5" 725 | source = "registry+https://github.com/rust-lang/crates.io-index" 726 | checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" 727 | 728 | [[package]] 729 | name = "windows_aarch64_msvc" 730 | version = "0.36.1" 731 | source = "registry+https://github.com/rust-lang/crates.io-index" 732 | checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" 733 | 734 | [[package]] 735 | name = "windows_aarch64_msvc" 736 | version = "0.52.5" 737 | source = "registry+https://github.com/rust-lang/crates.io-index" 738 | checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" 739 | 740 | [[package]] 741 | name = "windows_i686_gnu" 742 | version = "0.36.1" 743 | source = "registry+https://github.com/rust-lang/crates.io-index" 744 | checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" 745 | 746 | [[package]] 747 | name = "windows_i686_gnu" 748 | version = "0.52.5" 749 | source = "registry+https://github.com/rust-lang/crates.io-index" 750 | checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" 751 | 752 | [[package]] 753 | name = "windows_i686_gnullvm" 754 | version = "0.52.5" 755 | source = "registry+https://github.com/rust-lang/crates.io-index" 756 | checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" 757 | 758 | [[package]] 759 | name = "windows_i686_msvc" 760 | version = "0.36.1" 761 | source = "registry+https://github.com/rust-lang/crates.io-index" 762 | checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" 763 | 764 | [[package]] 765 | name = "windows_i686_msvc" 766 | version = "0.52.5" 767 | source = "registry+https://github.com/rust-lang/crates.io-index" 768 | checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" 769 | 770 | [[package]] 771 | name = "windows_x86_64_gnu" 772 | version = "0.36.1" 773 | source = "registry+https://github.com/rust-lang/crates.io-index" 774 | checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" 775 | 776 | [[package]] 777 | name = "windows_x86_64_gnu" 778 | version = "0.52.5" 779 | source = "registry+https://github.com/rust-lang/crates.io-index" 780 | checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" 781 | 782 | [[package]] 783 | name = "windows_x86_64_gnullvm" 784 | version = "0.52.5" 785 | source = "registry+https://github.com/rust-lang/crates.io-index" 786 | checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" 787 | 788 | [[package]] 789 | name = "windows_x86_64_msvc" 790 | version = "0.36.1" 791 | source = "registry+https://github.com/rust-lang/crates.io-index" 792 | checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" 793 | 794 | [[package]] 795 | name = "windows_x86_64_msvc" 796 | version = "0.52.5" 797 | source = "registry+https://github.com/rust-lang/crates.io-index" 798 | checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" 799 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | edition = "2021" 3 | name = "nomicfoundation_solidity-analyzer" 4 | version = "0.0.0" 5 | 6 | [lib] 7 | crate-type = ["cdylib"] 8 | 9 | [dependencies] 10 | solang-parser = "=0.1.13" 11 | # Default enable napi4 feature, see https://nodejs.org/api/n-api.html#node-api-version-matrix 12 | napi = { version = "=2.16.6", default-features = false, features = ["napi4"] } 13 | napi-derive = "=2.16.5" 14 | 15 | [build-dependencies] 16 | napi-build = "=2.1.3" 17 | 18 | [profile.release] 19 | lto = true 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # `@nomicfoundation/solidity-analyzer` 2 | 3 | `@nomicfoundation/solidity-analyzer` is an N-API library built in Rust, which exposes a single function, which takes the contents of a Solidity source file and returns its imports and version pragmas. 4 | 5 | ## Installation 6 | 7 | ```bash 8 | npm install @nomicfoundation/solidity-analyzer 9 | ``` 10 | 11 | ## API 12 | 13 | ```ts 14 | export interface AnalysisResult { 15 | versionPragmas: Array; 16 | imports: Array; 17 | } 18 | 19 | export function analyze(input: string): AnalysisResult; 20 | ``` 21 | 22 | ## Example 23 | 24 | ```ts 25 | analyze(` 26 | pragma solidity ^0.8.0; 27 | 28 | import "./file.sol"; 29 | `); 30 | 31 | // { versionPragmas: [ '^0.8.0' ], imports: [ './file.sol' ] } 32 | ``` 33 | 34 | ## Goals 35 | 36 | This library has two different goals: 37 | 38 | 1. Being fast 39 | 2. Being error-tolerant 40 | 41 | Both are achieved by not parsing the Solidity source but just tokenizing it instead. This allows us to create a simple state machine that only recognizes imports and pragmas, ignoring everything else, and recovering from malformed tokens or expressions. 42 | 43 | ## Browser support 44 | 45 | This library doesn't work in a browser. 46 | 47 | ## Testing 48 | 49 | This project has some JavaScript unit tests in `__test__`, and it's also tested using the entire [`smart-contract-sanctuary`](https://github.com/tintinweb/smart-contract-sanctuary). 50 | 51 | You can find the scripts to test with the sanctuary in `test-with-sanctuary/`. 52 | 53 | ## Regenerating `index.js` and `index.d.ts` 54 | 55 | These files have to be committed because of our current Github Actions, yet, they are autogenerated. 56 | 57 | You can run `cargo clean`, `yarn clean`, and `yarn build` to recreate them. 58 | -------------------------------------------------------------------------------- /__test__/index.spec.mjs: -------------------------------------------------------------------------------- 1 | import test from "ava"; 2 | 3 | import { analyze } from "../index.js"; 4 | 5 | test("returns well-formed version pragmas", (t) => { 6 | t.deepEqual( 7 | analyze(`pragma solidity 1.2.3; 8 | 9 | pragma solidity ^4.5.6 >1; 10 | `), 11 | { 12 | versionPragmas: ["1.2.3", "^4.5.6 >1"], 13 | imports: [], 14 | } 15 | ); 16 | }); 17 | 18 | test("returns well-formed imports", (t) => { 19 | t.deepEqual( 20 | analyze(`import "bare.sol"; 21 | 22 | import * as withStar from "star.sol"; 23 | 24 | import "as.sol" as something; 25 | 26 | import {} from "empty-braces.sol"; 27 | 28 | import {,,} from "empty-braces2.sol"; 29 | 30 | import {something} from "symbol.sol"; 31 | 32 | import {something as somethingElse} from "aliased.sol"; 33 | 34 | import {something as somethingElse, other,,other2} from "multiple.sol"; 35 | `), 36 | { 37 | versionPragmas: [], 38 | imports: [ 39 | "bare.sol", 40 | "star.sol", 41 | "as.sol", 42 | "empty-braces.sol", 43 | "empty-braces2.sol", 44 | "symbol.sol", 45 | "aliased.sol", 46 | "multiple.sol", 47 | ], 48 | } 49 | ); 50 | }); 51 | 52 | test("ignores other statements and comments", (t) => { 53 | t.deepEqual( 54 | analyze(`//comment 55 | pragma solidity 1.2.3; 56 | library Asd {} 57 | 58 | import "asd.sol"; 59 | 60 | contract C{ 61 | function f() {} 62 | } 63 | 64 | pragma solidity ^4.5.6 >1; 65 | `), 66 | { 67 | versionPragmas: ["1.2.3", "^4.5.6 >1"], 68 | imports: ["asd.sol"], 69 | } 70 | ); 71 | }); 72 | 73 | test.todo("recovers from malformed pragma statements"); 74 | 75 | test.todo("recovers from malformed import statements"); 76 | -------------------------------------------------------------------------------- /build.rs: -------------------------------------------------------------------------------- 1 | extern crate napi_build; 2 | 3 | fn main() { 4 | napi_build::setup(); 5 | } 6 | -------------------------------------------------------------------------------- /index.d.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable */ 2 | /* eslint-disable */ 3 | 4 | /* auto-generated by NAPI-RS */ 5 | 6 | export interface AnalysisResult { 7 | versionPragmas: Array; 8 | imports: Array; 9 | } 10 | export function analyze(input: string): AnalysisResult; 11 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | /* tslint:disable */ 2 | /* eslint-disable */ 3 | /* prettier-ignore */ 4 | 5 | /* auto-generated by NAPI-RS */ 6 | 7 | const { existsSync, readFileSync } = require('fs') 8 | const { join } = require("path"); 9 | 10 | const { platform, arch } = process; 11 | 12 | let nativeBinding = null; 13 | let localFileExisted = false; 14 | let loadError = null; 15 | 16 | function isMusl() { 17 | // For Node 10 18 | if (!process.report || typeof process.report.getReport !== "function") { 19 | try { 20 | const lddPath = require("child_process") 21 | .execSync("which ldd") 22 | .toString() 23 | .trim(); 24 | return readFileSync(lddPath, "utf8").includes("musl"); 25 | } catch (e) { 26 | return true; 27 | } 28 | } else { 29 | const { glibcVersionRuntime } = process.report.getReport().header; 30 | return !glibcVersionRuntime; 31 | } 32 | } 33 | 34 | switch (platform) { 35 | case "android": 36 | switch (arch) { 37 | case "arm64": 38 | localFileExisted = existsSync( 39 | join(__dirname, "solidity-analyzer.android-arm64.node") 40 | ); 41 | try { 42 | if (localFileExisted) { 43 | nativeBinding = require("./solidity-analyzer.android-arm64.node"); 44 | } else { 45 | nativeBinding = require("@nomicfoundation/solidity-analyzer-android-arm64"); 46 | } 47 | } catch (e) { 48 | loadError = e; 49 | } 50 | break; 51 | case "arm": 52 | localFileExisted = existsSync( 53 | join(__dirname, "solidity-analyzer.android-arm-eabi.node") 54 | ); 55 | try { 56 | if (localFileExisted) { 57 | nativeBinding = require("./solidity-analyzer.android-arm-eabi.node"); 58 | } else { 59 | nativeBinding = require("@nomicfoundation/solidity-analyzer-android-arm-eabi"); 60 | } 61 | } catch (e) { 62 | loadError = e; 63 | } 64 | break; 65 | default: 66 | throw new Error(`Unsupported architecture on Android ${arch}`); 67 | } 68 | break; 69 | case "win32": 70 | switch (arch) { 71 | case "x64": 72 | localFileExisted = existsSync( 73 | join(__dirname, "solidity-analyzer.win32-x64-msvc.node") 74 | ); 75 | try { 76 | if (localFileExisted) { 77 | nativeBinding = require("./solidity-analyzer.win32-x64-msvc.node"); 78 | } else { 79 | nativeBinding = require("@nomicfoundation/solidity-analyzer-win32-x64-msvc"); 80 | } 81 | } catch (e) { 82 | loadError = e; 83 | } 84 | break; 85 | case "ia32": 86 | localFileExisted = existsSync( 87 | join(__dirname, "solidity-analyzer.win32-ia32-msvc.node") 88 | ); 89 | try { 90 | if (localFileExisted) { 91 | nativeBinding = require("./solidity-analyzer.win32-ia32-msvc.node"); 92 | } else { 93 | nativeBinding = require("@nomicfoundation/solidity-analyzer-win32-ia32-msvc"); 94 | } 95 | } catch (e) { 96 | loadError = e; 97 | } 98 | break; 99 | case "arm64": 100 | localFileExisted = existsSync( 101 | join(__dirname, "solidity-analyzer.win32-arm64-msvc.node") 102 | ); 103 | try { 104 | if (localFileExisted) { 105 | nativeBinding = require("./solidity-analyzer.win32-arm64-msvc.node"); 106 | } else { 107 | nativeBinding = require("@nomicfoundation/solidity-analyzer-win32-arm64-msvc"); 108 | } 109 | } catch (e) { 110 | loadError = e; 111 | } 112 | break; 113 | default: 114 | throw new Error(`Unsupported architecture on Windows: ${arch}`); 115 | } 116 | break; 117 | case "darwin": 118 | localFileExisted = existsSync( 119 | join(__dirname, "solidity-analyzer.darwin-universal.node") 120 | ); 121 | try { 122 | if (localFileExisted) { 123 | nativeBinding = require("./solidity-analyzer.darwin-universal.node"); 124 | } else { 125 | nativeBinding = require("@nomicfoundation/solidity-analyzer-darwin-universal"); 126 | } 127 | break; 128 | } catch {} 129 | switch (arch) { 130 | case "x64": 131 | localFileExisted = existsSync( 132 | join(__dirname, "solidity-analyzer.darwin-x64.node") 133 | ); 134 | try { 135 | if (localFileExisted) { 136 | nativeBinding = require("./solidity-analyzer.darwin-x64.node"); 137 | } else { 138 | nativeBinding = require("@nomicfoundation/solidity-analyzer-darwin-x64"); 139 | } 140 | } catch (e) { 141 | loadError = e; 142 | } 143 | break; 144 | case "arm64": 145 | localFileExisted = existsSync( 146 | join(__dirname, "solidity-analyzer.darwin-arm64.node") 147 | ); 148 | try { 149 | if (localFileExisted) { 150 | nativeBinding = require("./solidity-analyzer.darwin-arm64.node"); 151 | } else { 152 | nativeBinding = require("@nomicfoundation/solidity-analyzer-darwin-arm64"); 153 | } 154 | } catch (e) { 155 | loadError = e; 156 | } 157 | break; 158 | default: 159 | throw new Error(`Unsupported architecture on macOS: ${arch}`); 160 | } 161 | break; 162 | case "freebsd": 163 | if (arch !== "x64") { 164 | throw new Error(`Unsupported architecture on FreeBSD: ${arch}`); 165 | } 166 | localFileExisted = existsSync( 167 | join(__dirname, "solidity-analyzer.freebsd-x64.node") 168 | ); 169 | try { 170 | if (localFileExisted) { 171 | nativeBinding = require("./solidity-analyzer.freebsd-x64.node"); 172 | } else { 173 | nativeBinding = require("@nomicfoundation/solidity-analyzer-freebsd-x64"); 174 | } 175 | } catch (e) { 176 | loadError = e; 177 | } 178 | break; 179 | case "linux": 180 | switch (arch) { 181 | case "x64": 182 | if (isMusl()) { 183 | localFileExisted = existsSync( 184 | join(__dirname, "solidity-analyzer.linux-x64-musl.node") 185 | ); 186 | try { 187 | if (localFileExisted) { 188 | nativeBinding = require("./solidity-analyzer.linux-x64-musl.node"); 189 | } else { 190 | nativeBinding = require("@nomicfoundation/solidity-analyzer-linux-x64-musl"); 191 | } 192 | } catch (e) { 193 | loadError = e; 194 | } 195 | } else { 196 | localFileExisted = existsSync( 197 | join(__dirname, "solidity-analyzer.linux-x64-gnu.node") 198 | ); 199 | try { 200 | if (localFileExisted) { 201 | nativeBinding = require("./solidity-analyzer.linux-x64-gnu.node"); 202 | } else { 203 | nativeBinding = require("@nomicfoundation/solidity-analyzer-linux-x64-gnu"); 204 | } 205 | } catch (e) { 206 | loadError = e; 207 | } 208 | } 209 | break; 210 | case "arm64": 211 | if (isMusl()) { 212 | localFileExisted = existsSync( 213 | join(__dirname, "solidity-analyzer.linux-arm64-musl.node") 214 | ); 215 | try { 216 | if (localFileExisted) { 217 | nativeBinding = require("./solidity-analyzer.linux-arm64-musl.node"); 218 | } else { 219 | nativeBinding = require("@nomicfoundation/solidity-analyzer-linux-arm64-musl"); 220 | } 221 | } catch (e) { 222 | loadError = e; 223 | } 224 | } else { 225 | localFileExisted = existsSync( 226 | join(__dirname, "solidity-analyzer.linux-arm64-gnu.node") 227 | ); 228 | try { 229 | if (localFileExisted) { 230 | nativeBinding = require("./solidity-analyzer.linux-arm64-gnu.node"); 231 | } else { 232 | nativeBinding = require("@nomicfoundation/solidity-analyzer-linux-arm64-gnu"); 233 | } 234 | } catch (e) { 235 | loadError = e; 236 | } 237 | } 238 | break; 239 | case "arm": 240 | if (isMusl()) { 241 | localFileExisted = existsSync( 242 | join(__dirname, "solidity-analyzer.linux-arm-musleabihf.node") 243 | ); 244 | try { 245 | if (localFileExisted) { 246 | nativeBinding = require("./solidity-analyzer.linux-arm-musleabihf.node"); 247 | } else { 248 | nativeBinding = require("@nomicfoundation/solidity-analyzer-linux-arm-musleabihf"); 249 | } 250 | } catch (e) { 251 | loadError = e; 252 | } 253 | } else { 254 | localFileExisted = existsSync( 255 | join(__dirname, "solidity-analyzer.linux-arm-gnueabihf.node") 256 | ); 257 | try { 258 | if (localFileExisted) { 259 | nativeBinding = require("./solidity-analyzer.linux-arm-gnueabihf.node"); 260 | } else { 261 | nativeBinding = require("@nomicfoundation/solidity-analyzer-linux-arm-gnueabihf"); 262 | } 263 | } catch (e) { 264 | loadError = e; 265 | } 266 | } 267 | break; 268 | case "riscv64": 269 | if (isMusl()) { 270 | localFileExisted = existsSync( 271 | join(__dirname, "solidity-analyzer.linux-riscv64-musl.node") 272 | ); 273 | try { 274 | if (localFileExisted) { 275 | nativeBinding = require("./solidity-analyzer.linux-riscv64-musl.node"); 276 | } else { 277 | nativeBinding = require("@nomicfoundation/solidity-analyzer-linux-riscv64-musl"); 278 | } 279 | } catch (e) { 280 | loadError = e; 281 | } 282 | } else { 283 | localFileExisted = existsSync( 284 | join(__dirname, "solidity-analyzer.linux-riscv64-gnu.node") 285 | ); 286 | try { 287 | if (localFileExisted) { 288 | nativeBinding = require("./solidity-analyzer.linux-riscv64-gnu.node"); 289 | } else { 290 | nativeBinding = require("@nomicfoundation/solidity-analyzer-linux-riscv64-gnu"); 291 | } 292 | } catch (e) { 293 | loadError = e; 294 | } 295 | } 296 | break; 297 | case "s390x": 298 | localFileExisted = existsSync( 299 | join(__dirname, "solidity-analyzer.linux-s390x-gnu.node") 300 | ); 301 | try { 302 | if (localFileExisted) { 303 | nativeBinding = require("./solidity-analyzer.linux-s390x-gnu.node"); 304 | } else { 305 | nativeBinding = require("@nomicfoundation/solidity-analyzer-linux-s390x-gnu"); 306 | } 307 | } catch (e) { 308 | loadError = e; 309 | } 310 | break; 311 | default: 312 | throw new Error(`Unsupported architecture on Linux: ${arch}`); 313 | } 314 | break; 315 | default: 316 | throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`); 317 | } 318 | 319 | if (!nativeBinding) { 320 | if (loadError) { 321 | throw loadError; 322 | } 323 | throw new Error(`Failed to load native binding`); 324 | } 325 | 326 | const { analyze } = nativeBinding; 327 | 328 | module.exports.analyze = analyze; 329 | -------------------------------------------------------------------------------- /npm/darwin-arm64/README.md: -------------------------------------------------------------------------------- 1 | # `@nomicfoundation/solidity-analyzer-darwin-arm64` 2 | 3 | This is the **aarch64-apple-darwin** binary for `@nomicfoundation/solidity-analyzer` 4 | -------------------------------------------------------------------------------- /npm/darwin-arm64/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@nomicfoundation/solidity-analyzer-darwin-arm64", 3 | "version": "0.1.1", 4 | "main": "solidity-analyzer.darwin-arm64.node", 5 | "files": [ 6 | "solidity-analyzer.darwin-arm64.node" 7 | ], 8 | "license": "MIT", 9 | "engines": { 10 | "node": ">= 12" 11 | }, 12 | "repository": "github:NomicFoundation/solidity-analyzer" 13 | } -------------------------------------------------------------------------------- /npm/darwin-x64/README.md: -------------------------------------------------------------------------------- 1 | # `@nomicfoundation/solidity-analyzer-darwin-x64` 2 | 3 | This is the **x86_64-apple-darwin** binary for `@nomicfoundation/solidity-analyzer` 4 | -------------------------------------------------------------------------------- /npm/darwin-x64/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@nomicfoundation/solidity-analyzer-darwin-x64", 3 | "version": "0.1.1", 4 | "main": "solidity-analyzer.darwin-x64.node", 5 | "files": [ 6 | "solidity-analyzer.darwin-x64.node" 7 | ], 8 | "license": "MIT", 9 | "engines": { 10 | "node": ">= 12" 11 | }, 12 | "repository": "github:NomicFoundation/solidity-analyzer" 13 | } -------------------------------------------------------------------------------- /npm/linux-arm64-gnu/README.md: -------------------------------------------------------------------------------- 1 | # `@nomicfoundation/solidity-analyzer-linux-arm64-gnu` 2 | 3 | This is the **aarch64-unknown-linux-gnu** binary for `@nomicfoundation/solidity-analyzer` 4 | -------------------------------------------------------------------------------- /npm/linux-arm64-gnu/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@nomicfoundation/solidity-analyzer-linux-arm64-gnu", 3 | "version": "0.1.1", 4 | "main": "solidity-analyzer.linux-arm64-gnu.node", 5 | "files": [ 6 | "solidity-analyzer.linux-arm64-gnu.node" 7 | ], 8 | "license": "MIT", 9 | "engines": { 10 | "node": ">= 12" 11 | }, 12 | "repository": "github:NomicFoundation/solidity-analyzer" 13 | } -------------------------------------------------------------------------------- /npm/linux-arm64-musl/README.md: -------------------------------------------------------------------------------- 1 | # `@nomicfoundation/solidity-analyzer-linux-arm64-musl` 2 | 3 | This is the **aarch64-unknown-linux-musl** binary for `@nomicfoundation/solidity-analyzer` 4 | -------------------------------------------------------------------------------- /npm/linux-arm64-musl/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@nomicfoundation/solidity-analyzer-linux-arm64-musl", 3 | "version": "0.1.1", 4 | "main": "solidity-analyzer.linux-arm64-musl.node", 5 | "files": [ 6 | "solidity-analyzer.linux-arm64-musl.node" 7 | ], 8 | "license": "MIT", 9 | "engines": { 10 | "node": ">= 12" 11 | }, 12 | "repository": "github:NomicFoundation/solidity-analyzer" 13 | } -------------------------------------------------------------------------------- /npm/linux-x64-gnu/README.md: -------------------------------------------------------------------------------- 1 | # `@nomicfoundation/solidity-analyzer-linux-x64-gnu` 2 | 3 | This is the **x86_64-unknown-linux-gnu** binary for `@nomicfoundation/solidity-analyzer` 4 | -------------------------------------------------------------------------------- /npm/linux-x64-gnu/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@nomicfoundation/solidity-analyzer-linux-x64-gnu", 3 | "version": "0.1.1", 4 | "main": "solidity-analyzer.linux-x64-gnu.node", 5 | "files": [ 6 | "solidity-analyzer.linux-x64-gnu.node" 7 | ], 8 | "license": "MIT", 9 | "engines": { 10 | "node": ">= 12" 11 | }, 12 | "repository": "github:NomicFoundation/solidity-analyzer" 13 | } -------------------------------------------------------------------------------- /npm/linux-x64-musl/README.md: -------------------------------------------------------------------------------- 1 | # `@nomicfoundation/solidity-analyzer-linux-x64-musl` 2 | 3 | This is the **x86_64-unknown-linux-musl** binary for `@nomicfoundation/solidity-analyzer` 4 | -------------------------------------------------------------------------------- /npm/linux-x64-musl/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@nomicfoundation/solidity-analyzer-linux-x64-musl", 3 | "version": "0.1.1", 4 | "main": "solidity-analyzer.linux-x64-musl.node", 5 | "files": [ 6 | "solidity-analyzer.linux-x64-musl.node" 7 | ], 8 | "license": "MIT", 9 | "engines": { 10 | "node": ">= 12" 11 | }, 12 | "repository": "github:NomicFoundation/solidity-analyzer" 13 | } -------------------------------------------------------------------------------- /npm/win32-x64-msvc/README.md: -------------------------------------------------------------------------------- 1 | # `@nomicfoundation/solidity-analyzer-win32-x64-msvc` 2 | 3 | This is the **x86_64-pc-windows-msvc** binary for `@nomicfoundation/solidity-analyzer` 4 | -------------------------------------------------------------------------------- /npm/win32-x64-msvc/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@nomicfoundation/solidity-analyzer-win32-x64-msvc", 3 | "version": "0.1.1", 4 | "main": "solidity-analyzer.win32-x64-msvc.node", 5 | "files": [ 6 | "solidity-analyzer.win32-x64-msvc.node" 7 | ], 8 | "license": "MIT", 9 | "engines": { 10 | "node": ">= 12" 11 | }, 12 | "repository": "github:NomicFoundation/solidity-analyzer" 13 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@nomicfoundation/solidity-analyzer", 3 | "version": "0.1.2", 4 | "repository": "github:NomicFoundation/solidity-analyzer", 5 | "main": "index.js", 6 | "types": "index.d.ts", 7 | "files": [ 8 | "index.js", 9 | "index.d.ts", 10 | "Cargo.toml", 11 | "Cargo.lock", 12 | "build.rs", 13 | "src/**/*.rs" 14 | ], 15 | "napi": { 16 | "name": "solidity-analyzer", 17 | "triples": { 18 | "defaults": false, 19 | "additional": [ 20 | "aarch64-apple-darwin", 21 | "x86_64-apple-darwin", 22 | "aarch64-unknown-linux-gnu", 23 | "aarch64-unknown-linux-musl", 24 | "x86_64-unknown-linux-gnu", 25 | "x86_64-unknown-linux-musl", 26 | "x86_64-pc-windows-msvc" 27 | ] 28 | } 29 | }, 30 | "license": "MIT", 31 | "devDependencies": { 32 | "@napi-rs/cli": "2.18.3", 33 | "ava": "5.1.1", 34 | "prettier": "2.6.2" 35 | }, 36 | "ava": { 37 | "timeout": "3m" 38 | }, 39 | "engines": { 40 | "node": ">= 12" 41 | }, 42 | "scripts": { 43 | "artifacts": "napi artifacts", 44 | "build": "napi build --platform --release", 45 | "build:debug": "napi build --platform", 46 | "prepublishOnly": "napi prepublish -t npm", 47 | "test": "ava", 48 | "universal": "napi universal", 49 | "version": "napi version", 50 | "clean": "rm -rf index.js index.d.ts *.node target", 51 | "prettier": "prettier --write *.md *.json *.js *.d.ts __test__/*.mjs" 52 | }, 53 | "packageManager": "yarn@4.2.2" 54 | } 55 | -------------------------------------------------------------------------------- /rustfmt.toml: -------------------------------------------------------------------------------- 1 | tab_spaces = 2 2 | edition = "2021" 3 | -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- 1 | #![deny(clippy::all)] 2 | 3 | #[macro_use] 4 | extern crate napi_derive; 5 | 6 | use napi::Error; 7 | use solang_parser::lexer::{Lexer, Token}; 8 | use std::result::Result; 9 | 10 | enum State { 11 | TopLevel, 12 | IgnoringStatement, 13 | CurlyBracesOpened(usize), 14 | PragmaFound, 15 | PragmaSolidityFound, 16 | ImportFound, 17 | ImportStarFound, 18 | ImportStarAsFound, 19 | ImportStarAsIdentifierFound, 20 | ImportStarAsIdentifierFromFound, 21 | ImportCurlyBracesOpened(usize), 22 | ImportSimbolAliasesFound, 23 | ImportSimbolAliasesFromFound, 24 | } 25 | 26 | #[napi(object)] 27 | pub struct AnalysisResult { 28 | pub version_pragmas: Vec, 29 | pub imports: Vec, 30 | } 31 | 32 | #[napi] 33 | pub fn analyze(input: String) -> Result { 34 | let mut comments = Vec::new(); 35 | let lexer = Lexer::new(&input, 0, &mut comments); 36 | 37 | let mut version_pragmas = Vec::new(); 38 | let mut imports = Vec::new(); 39 | 40 | let mut state = State::TopLevel; 41 | 42 | for item in lexer { 43 | if item.is_err() { 44 | continue; 45 | } 46 | 47 | let (_, token, _) = item.unwrap(); 48 | 49 | match state { 50 | State::TopLevel => match token { 51 | Token::Pragma => { 52 | state = State::PragmaFound; 53 | } 54 | Token::Import => { 55 | state = State::ImportFound; 56 | } 57 | Token::OpenCurlyBrace => { 58 | state = State::CurlyBracesOpened(1); 59 | } 60 | Token::Semicolon => { 61 | state = State::TopLevel; 62 | } 63 | Token::DocComment(_, _) => { 64 | // Do nothing 65 | } 66 | _ => { 67 | state = State::IgnoringStatement; 68 | } 69 | }, 70 | State::IgnoringStatement => match token { 71 | Token::OpenCurlyBrace => { 72 | state = State::CurlyBracesOpened(1); 73 | } 74 | Token::Semicolon => { 75 | state = State::TopLevel; 76 | } 77 | _ => {} 78 | }, 79 | State::CurlyBracesOpened(braces) => match token { 80 | Token::OpenCurlyBrace => { 81 | state = State::CurlyBracesOpened(braces + 1); 82 | } 83 | Token::CloseCurlyBrace => { 84 | if braces == 1 { 85 | state = State::TopLevel; 86 | } else { 87 | state = State::CurlyBracesOpened(braces - 1); 88 | } 89 | } 90 | _ => {} 91 | }, 92 | State::PragmaFound => match token { 93 | Token::Identifier(id) => { 94 | if id == "solidity" { 95 | state = State::PragmaSolidityFound; 96 | } else { 97 | state = State::IgnoringStatement; 98 | } 99 | } 100 | Token::OpenCurlyBrace => { 101 | state = State::CurlyBracesOpened(1); 102 | } 103 | Token::Semicolon => { 104 | state = State::TopLevel; 105 | } 106 | _ => { 107 | state = State::IgnoringStatement; 108 | } 109 | }, 110 | State::PragmaSolidityFound => match token { 111 | Token::StringLiteral(literal) => { 112 | version_pragmas.push(literal.replace(['\r', '\n'], "")); 113 | state = State::IgnoringStatement; 114 | } 115 | Token::OpenCurlyBrace => { 116 | state = State::CurlyBracesOpened(1); 117 | } 118 | Token::Semicolon => { 119 | state = State::TopLevel; 120 | } 121 | _ => { 122 | state = State::IgnoringStatement; 123 | } 124 | }, 125 | State::ImportFound => match token { 126 | Token::StringLiteral(literal) => { 127 | imports.push(literal.to_string()); 128 | state = State::IgnoringStatement; 129 | } 130 | Token::Mul => { 131 | state = State::ImportStarFound; 132 | } 133 | Token::OpenCurlyBrace => { 134 | state = State::ImportCurlyBracesOpened(1); 135 | } 136 | Token::Semicolon => { 137 | state = State::TopLevel; 138 | } 139 | _ => { 140 | state = State::IgnoringStatement; 141 | } 142 | }, 143 | State::ImportStarFound => match token { 144 | Token::As => { 145 | state = State::ImportStarAsFound; 146 | } 147 | Token::OpenCurlyBrace => { 148 | state = State::CurlyBracesOpened(1); 149 | } 150 | Token::Semicolon => { 151 | state = State::TopLevel; 152 | } 153 | _ => { 154 | state = State::IgnoringStatement; 155 | } 156 | }, 157 | State::ImportStarAsFound => match token { 158 | Token::Identifier(_) => { 159 | state = State::ImportStarAsIdentifierFound; 160 | } 161 | Token::OpenCurlyBrace => { 162 | state = State::CurlyBracesOpened(1); 163 | } 164 | Token::Semicolon => { 165 | state = State::TopLevel; 166 | } 167 | _ => { 168 | state = State::IgnoringStatement; 169 | } 170 | }, 171 | State::ImportStarAsIdentifierFound => match token { 172 | Token::Identifier("from") => { 173 | state = State::ImportStarAsIdentifierFromFound; 174 | } 175 | Token::OpenCurlyBrace => { 176 | state = State::CurlyBracesOpened(1); 177 | } 178 | Token::Semicolon => { 179 | state = State::TopLevel; 180 | } 181 | _ => { 182 | state = State::IgnoringStatement; 183 | } 184 | }, 185 | State::ImportStarAsIdentifierFromFound => match token { 186 | Token::StringLiteral(literal) => { 187 | imports.push(literal.to_string()); 188 | state = State::IgnoringStatement; 189 | } 190 | Token::OpenCurlyBrace => { 191 | state = State::CurlyBracesOpened(1); 192 | } 193 | Token::Semicolon => { 194 | state = State::TopLevel; 195 | } 196 | _ => { 197 | state = State::IgnoringStatement; 198 | } 199 | }, 200 | State::ImportCurlyBracesOpened(braces) => match token { 201 | Token::OpenCurlyBrace => { 202 | state = State::CurlyBracesOpened(braces + 1); 203 | } 204 | Token::CloseCurlyBrace => { 205 | if braces == 1 { 206 | state = State::ImportSimbolAliasesFound; 207 | } else { 208 | state = State::CurlyBracesOpened(braces - 1); 209 | } 210 | } 211 | Token::Semicolon => { 212 | state = State::TopLevel; 213 | } 214 | _ => {} 215 | }, 216 | State::ImportSimbolAliasesFound => match token { 217 | Token::Identifier("from") => { 218 | state = State::ImportSimbolAliasesFromFound; 219 | } 220 | Token::OpenCurlyBrace => { 221 | state = State::CurlyBracesOpened(1); 222 | } 223 | Token::Semicolon => { 224 | state = State::TopLevel; 225 | } 226 | _ => { 227 | state = State::IgnoringStatement; 228 | } 229 | }, 230 | State::ImportSimbolAliasesFromFound => match token { 231 | Token::StringLiteral(literal) => { 232 | imports.push(literal.to_string()); 233 | state = State::IgnoringStatement; 234 | } 235 | Token::OpenCurlyBrace => { 236 | state = State::CurlyBracesOpened(1); 237 | } 238 | Token::Semicolon => { 239 | state = State::TopLevel; 240 | } 241 | _ => { 242 | state = State::IgnoringStatement; 243 | } 244 | }, 245 | } 246 | } 247 | 248 | let res = AnalysisResult { 249 | version_pragmas, 250 | imports, 251 | }; 252 | 253 | Ok(res) 254 | } 255 | -------------------------------------------------------------------------------- /test-with-sanctuary/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | *.txt -------------------------------------------------------------------------------- /test-with-sanctuary/README.md: -------------------------------------------------------------------------------- 1 | # Test project 2 | 3 | This is a project to test the `solidity-analyzer` using every file of the [`smart-contract-sanctuary`](https://github.com/tintinweb/smart-contract-sanctuary). 4 | 5 | It extracts the imports and version pragmas using both `@nomicfoundation/solidity-analyzer` and `@solidity-parser/parser`, and compares the results. 6 | 7 | ## Installation 8 | 9 | First, install this npm module: 10 | 11 | ```bash 12 | yarn install 13 | ``` 14 | 15 | Then, build `@nomicfoundation/solidity-analyzer` running this at the root of the repository: 16 | 17 | ```bash 18 | yarn build 19 | ``` 20 | 21 | Finally, clone the `smart-contract-sanctuary`. 22 | 23 | ## Running the test 24 | 25 | The test takes hours to complete, so it's recommended to run multiple workers. 26 | 27 | You can run each of them with 28 | 29 | ```bash 30 | yarn ts-node index.ts 31 | ``` 32 | 33 | For example, you can run 4 workers with 34 | 35 | ```bash 36 | yarn ts-node index.ts ../../../smart-contract-sanctuary 4 0 > errors.0.txt & 37 | yarn ts-node index.ts ../../../smart-contract-sanctuary 4 1 > errors.1.txt & 38 | yarn ts-node index.ts ../../../smart-contract-sanctuary 4 2 > errors.2.txt & 39 | yarn ts-node index.ts ../../../smart-contract-sanctuary 4 3 > errors.3.txt & 40 | ``` 41 | -------------------------------------------------------------------------------- /test-with-sanctuary/index.ts: -------------------------------------------------------------------------------- 1 | import { parse, visit } from "@solidity-parser/parser"; 2 | import { isEqual } from "lodash"; 3 | import { analyze, AnalysisResult } from ".."; 4 | import fs from "fs"; 5 | import path from "path"; 6 | import { 7 | ImportDirective, 8 | PragmaDirective, 9 | } from "@solidity-parser/parser/dist/src/ast-types"; 10 | import chalk from "chalk"; 11 | chalk.level = 3; 12 | 13 | const COLORS = [ 14 | "#1BE7FF", 15 | "#6EEB83", 16 | "#A9F54F", 17 | "#E4FF1A", 18 | "#FFB800", 19 | "#FF880A", 20 | "#FF700F", 21 | "#FF5714", 22 | ] as const; 23 | 24 | function analyzeWithJsParser(content: string): AnalysisResult { 25 | const ast = parse(content, { tolerant: true, range: true }); 26 | 27 | const imports: string[] = []; 28 | const versionPragmas: string[] = []; 29 | 30 | visit(ast, { 31 | ImportDirective: (node: ImportDirective) => imports.push(node.path), 32 | PragmaDirective: (node: PragmaDirective) => { 33 | if (node.name === "solidity") { 34 | const range = content.substring(node.range![0], node.range![1]); 35 | const match = range.match(/pragma\s+solidity\s+(.*)/); 36 | if (match) { 37 | versionPragmas.push( 38 | match[1].trimEnd().replace("\r", "").replace("\n", "") 39 | ); 40 | } else { 41 | versionPragmas.push(node.value); 42 | } 43 | } 44 | }, 45 | }); 46 | 47 | return { versionPragmas, imports }; 48 | } 49 | 50 | function analyzeWithRusParser(content: string): AnalysisResult { 51 | return analyze(content); 52 | } 53 | 54 | function test(path: string) { 55 | const content = fs.readFileSync(path, "utf-8"); 56 | 57 | let withJs; 58 | try { 59 | withJs = analyzeWithJsParser(content); 60 | } catch (e) { 61 | console.log("Skipping", path); 62 | console.error("Failed to parse with the Js parser", path); 63 | return; 64 | } 65 | 66 | const withRust = analyzeWithRusParser(content); 67 | 68 | if (!isEqual(withJs, withRust)) { 69 | console.log(path); 70 | console.error(`Differences found in ${path} 71 | 72 | With Js: ${JSON.stringify(withJs)} 73 | 74 | With Rust: ${JSON.stringify(withRust)} 75 | `); 76 | } 77 | } 78 | 79 | function* getAllSolFiles(dirPath: string): Generator { 80 | const dirFiles = fs.readdirSync(dirPath); 81 | 82 | for (const file of dirFiles) { 83 | let filePath = path.join(dirPath, file); 84 | if (fs.statSync(filePath).isDirectory()) { 85 | yield* getAllSolFiles(filePath); 86 | } else { 87 | if (filePath.endsWith(".sol")) { 88 | yield filePath; 89 | } 90 | } 91 | } 92 | } 93 | 94 | if (process.argv.length !== 5) { 95 | console.error("Invalid arguments"); 96 | console.error( 97 | "Use: yarn ts-node index.ts " 98 | ); 99 | process.exit(1); 100 | } 101 | 102 | let i = 0; 103 | const dir = fs.realpathSync(process.argv[2]); 104 | const totalWorkers = parseInt(process.argv[3], 10); 105 | const workerId = parseInt(process.argv[4], 10); 106 | 107 | let latestTime = new Date(); 108 | 109 | for (const file of getAllSolFiles(dir)) { 110 | i++; 111 | 112 | if (i % totalWorkers != workerId) { 113 | continue; 114 | } 115 | 116 | try { 117 | test(file); 118 | } catch (e) { 119 | if (file.toLowerCase().includes("vyper")) { 120 | continue; 121 | } 122 | 123 | console.error(`Failed to ${file}`); 124 | throw e; 125 | } 126 | 127 | if (i % 100 === 0) { 128 | let now = new Date(); 129 | 130 | let diff = now.getTime() - latestTime.getTime(); 131 | const filesPerSec = (1000 / diff) * 100; 132 | latestTime = now; 133 | 134 | console.error( 135 | chalk.hex(COLORS[workerId])( 136 | `[Worker ${workerId}] (${filesPerSec 137 | .toFixed(2) 138 | .padStart(5, "0")} files/sec)` 139 | ) 140 | ); 141 | } 142 | } 143 | 144 | console.error(chalk.hex(COLORS[workerId])(`[Worker ${workerId}] Finished`)); 145 | -------------------------------------------------------------------------------- /test-with-sanctuary/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test-with-sanctuary", 3 | "version": "0.0.1", 4 | "license": "MIT", 5 | "private": true, 6 | "devDependencies": { 7 | "@solidity-parser/parser": "^0.14.1", 8 | "@types/lodash": "^4.14.182", 9 | "@types/node": "^17.0.36", 10 | "chalk": "^4.0.0", 11 | "lodash": "^4.17.21", 12 | "ts-node": "^10.8.0", 13 | "typescript": "^4.7.2" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /test-with-sanctuary/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2020", 4 | "module": "commonjs", 5 | "esModuleInterop": true, 6 | "forceConsistentCasingInFileNames": true, 7 | "strict": true, 8 | "skipLibCheck": true 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /test-with-sanctuary/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@cspotcode/source-map-support@^0.8.0": 6 | version "0.8.1" 7 | resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" 8 | integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== 9 | dependencies: 10 | "@jridgewell/trace-mapping" "0.3.9" 11 | 12 | "@jridgewell/resolve-uri@^3.0.3": 13 | version "3.0.7" 14 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz#30cd49820a962aff48c8fffc5cd760151fca61fe" 15 | integrity sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA== 16 | 17 | "@jridgewell/sourcemap-codec@^1.4.10": 18 | version "1.4.13" 19 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz#b6461fb0c2964356c469e115f504c95ad97ab88c" 20 | integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w== 21 | 22 | "@jridgewell/trace-mapping@0.3.9": 23 | version "0.3.9" 24 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" 25 | integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== 26 | dependencies: 27 | "@jridgewell/resolve-uri" "^3.0.3" 28 | "@jridgewell/sourcemap-codec" "^1.4.10" 29 | 30 | "@solidity-parser/parser@^0.14.1": 31 | version "0.14.1" 32 | resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.14.1.tgz#179afb29f4e295a77cc141151f26b3848abc3c46" 33 | integrity sha512-eLjj2L6AuQjBB6s/ibwCAc0DwrR5Ge+ys+wgWo+bviU7fV2nTMQhU63CGaDKXg9iTmMxwhkyoggdIR7ZGRfMgw== 34 | dependencies: 35 | antlr4ts "^0.5.0-alpha.4" 36 | 37 | "@tsconfig/node10@^1.0.7": 38 | version "1.0.8" 39 | resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" 40 | integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg== 41 | 42 | "@tsconfig/node12@^1.0.7": 43 | version "1.0.9" 44 | resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.9.tgz#62c1f6dee2ebd9aead80dc3afa56810e58e1a04c" 45 | integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw== 46 | 47 | "@tsconfig/node14@^1.0.0": 48 | version "1.0.1" 49 | resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.1.tgz#95f2d167ffb9b8d2068b0b235302fafd4df711f2" 50 | integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg== 51 | 52 | "@tsconfig/node16@^1.0.2": 53 | version "1.0.2" 54 | resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" 55 | integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== 56 | 57 | "@types/lodash@^4.14.182": 58 | version "4.14.182" 59 | resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.182.tgz#05301a4d5e62963227eaafe0ce04dd77c54ea5c2" 60 | integrity sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q== 61 | 62 | "@types/node@^17.0.36": 63 | version "17.0.36" 64 | resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.36.tgz#c0d5f2fe76b47b63e0e0efc3d2049a9970d68794" 65 | integrity sha512-V3orv+ggDsWVHP99K3JlwtH20R7J4IhI1Kksgc+64q5VxgfRkQG8Ws3MFm/FZOKDYGy9feGFlZ70/HpCNe9QaA== 66 | 67 | acorn-walk@^8.1.1: 68 | version "8.2.0" 69 | resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" 70 | integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== 71 | 72 | acorn@^8.4.1: 73 | version "8.7.1" 74 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" 75 | integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== 76 | 77 | ansi-styles@^4.1.0: 78 | version "4.3.0" 79 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 80 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 81 | dependencies: 82 | color-convert "^2.0.1" 83 | 84 | antlr4ts@^0.5.0-alpha.4: 85 | version "0.5.0-alpha.4" 86 | resolved "https://registry.yarnpkg.com/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz#71702865a87478ed0b40c0709f422cf14d51652a" 87 | integrity sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ== 88 | 89 | arg@^4.1.0: 90 | version "4.1.3" 91 | resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" 92 | integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== 93 | 94 | chalk@^4.0.0: 95 | version "4.1.2" 96 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 97 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 98 | dependencies: 99 | ansi-styles "^4.1.0" 100 | supports-color "^7.1.0" 101 | 102 | color-convert@^2.0.1: 103 | version "2.0.1" 104 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 105 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 106 | dependencies: 107 | color-name "~1.1.4" 108 | 109 | color-name@~1.1.4: 110 | version "1.1.4" 111 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 112 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 113 | 114 | create-require@^1.1.0: 115 | version "1.1.1" 116 | resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" 117 | integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== 118 | 119 | diff@^4.0.1: 120 | version "4.0.2" 121 | resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" 122 | integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== 123 | 124 | has-flag@^4.0.0: 125 | version "4.0.0" 126 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 127 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 128 | 129 | lodash@^4.17.21: 130 | version "4.17.21" 131 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 132 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 133 | 134 | make-error@^1.1.1: 135 | version "1.3.6" 136 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" 137 | integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== 138 | 139 | supports-color@^7.1.0: 140 | version "7.2.0" 141 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 142 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 143 | dependencies: 144 | has-flag "^4.0.0" 145 | 146 | ts-node@^10.8.0: 147 | version "10.8.0" 148 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.8.0.tgz#3ceb5ac3e67ae8025c1950626aafbdecb55d82ce" 149 | integrity sha512-/fNd5Qh+zTt8Vt1KbYZjRHCE9sI5i7nqfD/dzBBRDeVXZXS6kToW6R7tTU6Nd4XavFs0mAVCg29Q//ML7WsZYA== 150 | dependencies: 151 | "@cspotcode/source-map-support" "^0.8.0" 152 | "@tsconfig/node10" "^1.0.7" 153 | "@tsconfig/node12" "^1.0.7" 154 | "@tsconfig/node14" "^1.0.0" 155 | "@tsconfig/node16" "^1.0.2" 156 | acorn "^8.4.1" 157 | acorn-walk "^8.1.1" 158 | arg "^4.1.0" 159 | create-require "^1.1.0" 160 | diff "^4.0.1" 161 | make-error "^1.1.1" 162 | v8-compile-cache-lib "^3.0.1" 163 | yn "3.1.1" 164 | 165 | typescript@^4.7.2: 166 | version "4.7.2" 167 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.2.tgz#1f9aa2ceb9af87cca227813b4310fff0b51593c4" 168 | integrity sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A== 169 | 170 | v8-compile-cache-lib@^3.0.1: 171 | version "3.0.1" 172 | resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" 173 | integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== 174 | 175 | yn@3.1.1: 176 | version "3.1.1" 177 | resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" 178 | integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== 179 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # This file is generated by running "yarn install" inside your project. 2 | # Manual changes might be lost - proceed with caution! 3 | 4 | __metadata: 5 | version: 8 6 | cacheKey: 10c0 7 | 8 | "@isaacs/cliui@npm:^8.0.2": 9 | version: 8.0.2 10 | resolution: "@isaacs/cliui@npm:8.0.2" 11 | dependencies: 12 | string-width: "npm:^5.1.2" 13 | string-width-cjs: "npm:string-width@^4.2.0" 14 | strip-ansi: "npm:^7.0.1" 15 | strip-ansi-cjs: "npm:strip-ansi@^6.0.1" 16 | wrap-ansi: "npm:^8.1.0" 17 | wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" 18 | checksum: 10c0/b1bf42535d49f11dc137f18d5e4e63a28c5569de438a221c369483731e9dac9fb797af554e8bf02b6192d1e5eba6e6402cf93900c3d0ac86391d00d04876789e 19 | languageName: node 20 | linkType: hard 21 | 22 | "@napi-rs/cli@npm:2.18.3": 23 | version: 2.18.3 24 | resolution: "@napi-rs/cli@npm:2.18.3" 25 | bin: 26 | napi: scripts/index.js 27 | checksum: 10c0/4d91fe84551a3775cbf93f6340c8b6a87dc653248f90c459fb996ea689ff52ba698a7620ad08713b3b97baf0a675fe2d4cac83a9e842e56cdfbf204c7f5f01d5 28 | languageName: node 29 | linkType: hard 30 | 31 | "@nodelib/fs.scandir@npm:2.1.5": 32 | version: 2.1.5 33 | resolution: "@nodelib/fs.scandir@npm:2.1.5" 34 | dependencies: 35 | "@nodelib/fs.stat": "npm:2.0.5" 36 | run-parallel: "npm:^1.1.9" 37 | checksum: 10c0/732c3b6d1b1e967440e65f284bd06e5821fedf10a1bea9ed2bb75956ea1f30e08c44d3def9d6a230666574edbaf136f8cfd319c14fd1f87c66e6a44449afb2eb 38 | languageName: node 39 | linkType: hard 40 | 41 | "@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": 42 | version: 2.0.5 43 | resolution: "@nodelib/fs.stat@npm:2.0.5" 44 | checksum: 10c0/88dafe5e3e29a388b07264680dc996c17f4bda48d163a9d4f5c1112979f0ce8ec72aa7116122c350b4e7976bc5566dc3ddb579be1ceaacc727872eb4ed93926d 45 | languageName: node 46 | linkType: hard 47 | 48 | "@nodelib/fs.walk@npm:^1.2.3": 49 | version: 1.2.8 50 | resolution: "@nodelib/fs.walk@npm:1.2.8" 51 | dependencies: 52 | "@nodelib/fs.scandir": "npm:2.1.5" 53 | fastq: "npm:^1.6.0" 54 | checksum: 10c0/db9de047c3bb9b51f9335a7bb46f4fcfb6829fb628318c12115fbaf7d369bfce71c15b103d1fc3b464812d936220ee9bc1c8f762d032c9f6be9acc99249095b1 55 | languageName: node 56 | linkType: hard 57 | 58 | "@nomicfoundation/solidity-analyzer@workspace:.": 59 | version: 0.0.0-use.local 60 | resolution: "@nomicfoundation/solidity-analyzer@workspace:." 61 | dependencies: 62 | "@napi-rs/cli": "npm:2.18.3" 63 | ava: "npm:5.1.1" 64 | prettier: "npm:2.6.2" 65 | languageName: unknown 66 | linkType: soft 67 | 68 | "@npmcli/agent@npm:^2.0.0": 69 | version: 2.2.2 70 | resolution: "@npmcli/agent@npm:2.2.2" 71 | dependencies: 72 | agent-base: "npm:^7.1.0" 73 | http-proxy-agent: "npm:^7.0.0" 74 | https-proxy-agent: "npm:^7.0.1" 75 | lru-cache: "npm:^10.0.1" 76 | socks-proxy-agent: "npm:^8.0.3" 77 | checksum: 10c0/325e0db7b287d4154ecd164c0815c08007abfb07653cc57bceded17bb7fd240998a3cbdbe87d700e30bef494885eccc725ab73b668020811d56623d145b524ae 78 | languageName: node 79 | linkType: hard 80 | 81 | "@npmcli/fs@npm:^3.1.0": 82 | version: 3.1.1 83 | resolution: "@npmcli/fs@npm:3.1.1" 84 | dependencies: 85 | semver: "npm:^7.3.5" 86 | checksum: 10c0/c37a5b4842bfdece3d14dfdb054f73fe15ed2d3da61b34ff76629fb5b1731647c49166fd2a8bf8b56fcfa51200382385ea8909a3cbecdad612310c114d3f6c99 87 | languageName: node 88 | linkType: hard 89 | 90 | "@pkgjs/parseargs@npm:^0.11.0": 91 | version: 0.11.0 92 | resolution: "@pkgjs/parseargs@npm:0.11.0" 93 | checksum: 10c0/5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd 94 | languageName: node 95 | linkType: hard 96 | 97 | "abbrev@npm:^2.0.0": 98 | version: 2.0.0 99 | resolution: "abbrev@npm:2.0.0" 100 | checksum: 10c0/f742a5a107473946f426c691c08daba61a1d15942616f300b5d32fd735be88fef5cba24201757b6c407fd564555fb48c751cfa33519b2605c8a7aadd22baf372 101 | languageName: node 102 | linkType: hard 103 | 104 | "acorn-walk@npm:^8.2.0": 105 | version: 8.2.0 106 | resolution: "acorn-walk@npm:8.2.0" 107 | checksum: 10c0/dbe92f5b2452c93e960c5594e666dd1fae141b965ff2cb4a1e1d0381e3e4db4274c5ce4ffa3d681a86ca2a8d4e29d5efc0670a08e23fd2800051ea387df56ca2 108 | languageName: node 109 | linkType: hard 110 | 111 | "acorn@npm:^8.8.1": 112 | version: 8.8.2 113 | resolution: "acorn@npm:8.8.2" 114 | bin: 115 | acorn: bin/acorn 116 | checksum: 10c0/b5c54e736af5ed753911c6752fafd02d0a74cf4d55be606bd81fe71faba4f986dc090952329931ac2aba165803fd0005c59eeef08f9c6c689e8dc420031f3df0 117 | languageName: node 118 | linkType: hard 119 | 120 | "agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1": 121 | version: 7.1.1 122 | resolution: "agent-base@npm:7.1.1" 123 | dependencies: 124 | debug: "npm:^4.3.4" 125 | checksum: 10c0/e59ce7bed9c63bf071a30cc471f2933862044c97fd9958967bfe22521d7a0f601ce4ed5a8c011799d0c726ca70312142ae193bbebb60f576b52be19d4a363b50 126 | languageName: node 127 | linkType: hard 128 | 129 | "aggregate-error@npm:^3.0.0": 130 | version: 3.1.0 131 | resolution: "aggregate-error@npm:3.1.0" 132 | dependencies: 133 | clean-stack: "npm:^2.0.0" 134 | indent-string: "npm:^4.0.0" 135 | checksum: 10c0/a42f67faa79e3e6687a4923050e7c9807db3848a037076f791d10e092677d65c1d2d863b7848560699f40fc0502c19f40963fb1cd1fb3d338a7423df8e45e039 136 | languageName: node 137 | linkType: hard 138 | 139 | "aggregate-error@npm:^4.0.0": 140 | version: 4.0.1 141 | resolution: "aggregate-error@npm:4.0.1" 142 | dependencies: 143 | clean-stack: "npm:^4.0.0" 144 | indent-string: "npm:^5.0.0" 145 | checksum: 10c0/75fd739f5c4c60a667cce35ccaf0edf135e147ef0be9a029cab75de14ac9421779b15339d562e58d25b233ea0ef2bbd4c916f149fdbcb73c2b9a62209e611343 146 | languageName: node 147 | linkType: hard 148 | 149 | "ansi-regex@npm:^5.0.1": 150 | version: 5.0.1 151 | resolution: "ansi-regex@npm:5.0.1" 152 | checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737 153 | languageName: node 154 | linkType: hard 155 | 156 | "ansi-regex@npm:^6.0.1": 157 | version: 6.0.1 158 | resolution: "ansi-regex@npm:6.0.1" 159 | checksum: 10c0/cbe16dbd2c6b2735d1df7976a7070dd277326434f0212f43abf6d87674095d247968209babdaad31bb00882fa68807256ba9be340eec2f1004de14ca75f52a08 160 | languageName: node 161 | linkType: hard 162 | 163 | "ansi-styles@npm:^4.0.0": 164 | version: 4.3.0 165 | resolution: "ansi-styles@npm:4.3.0" 166 | dependencies: 167 | color-convert: "npm:^2.0.1" 168 | checksum: 10c0/895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041 169 | languageName: node 170 | linkType: hard 171 | 172 | "ansi-styles@npm:^6.0.0, ansi-styles@npm:^6.1.0, ansi-styles@npm:^6.2.1": 173 | version: 6.2.1 174 | resolution: "ansi-styles@npm:6.2.1" 175 | checksum: 10c0/5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c 176 | languageName: node 177 | linkType: hard 178 | 179 | "anymatch@npm:~3.1.2": 180 | version: 3.1.3 181 | resolution: "anymatch@npm:3.1.3" 182 | dependencies: 183 | normalize-path: "npm:^3.0.0" 184 | picomatch: "npm:^2.0.4" 185 | checksum: 10c0/57b06ae984bc32a0d22592c87384cd88fe4511b1dd7581497831c56d41939c8a001b28e7b853e1450f2bf61992dfcaa8ae2d0d161a0a90c4fb631ef07098fbac 186 | languageName: node 187 | linkType: hard 188 | 189 | "argparse@npm:^1.0.7": 190 | version: 1.0.10 191 | resolution: "argparse@npm:1.0.10" 192 | dependencies: 193 | sprintf-js: "npm:~1.0.2" 194 | checksum: 10c0/b2972c5c23c63df66bca144dbc65d180efa74f25f8fd9b7d9a0a6c88ae839db32df3d54770dcb6460cf840d232b60695d1a6b1053f599d84e73f7437087712de 195 | languageName: node 196 | linkType: hard 197 | 198 | "array-find-index@npm:^1.0.1": 199 | version: 1.0.2 200 | resolution: "array-find-index@npm:1.0.2" 201 | checksum: 10c0/86b9485c74ddd324feab807e10a6de3f9c1683856267236fac4bb4d4667ada6463e106db3f6c540ae6b720e0442b590ec701d13676df4c6af30ebf4da09b4f57 202 | languageName: node 203 | linkType: hard 204 | 205 | "arrgv@npm:^1.0.2": 206 | version: 1.0.2 207 | resolution: "arrgv@npm:1.0.2" 208 | checksum: 10c0/7e6e782e6b749923ac7cbc4048ef6fe0844c4a59bfc8932fcd4c44566ba25eed46501f94dd7cf3c7297da88f3f599ca056bfb77d0c2484aebc92f04239f69124 209 | languageName: node 210 | linkType: hard 211 | 212 | "arrify@npm:^3.0.0": 213 | version: 3.0.0 214 | resolution: "arrify@npm:3.0.0" 215 | checksum: 10c0/2e26601b8486f29780f1f70f7ac05a226755814c2a3ab42e196748f650af1dc310cd575a11dd4b9841c70fd7460b2dd2b8fe6fb7a3375878e2660706efafa58e 216 | languageName: node 217 | linkType: hard 218 | 219 | "ava@npm:5.1.1": 220 | version: 5.1.1 221 | resolution: "ava@npm:5.1.1" 222 | dependencies: 223 | acorn: "npm:^8.8.1" 224 | acorn-walk: "npm:^8.2.0" 225 | ansi-styles: "npm:^6.2.1" 226 | arrgv: "npm:^1.0.2" 227 | arrify: "npm:^3.0.0" 228 | callsites: "npm:^4.0.0" 229 | cbor: "npm:^8.1.0" 230 | chalk: "npm:^5.2.0" 231 | chokidar: "npm:^3.5.3" 232 | chunkd: "npm:^2.0.1" 233 | ci-info: "npm:^3.7.1" 234 | ci-parallel-vars: "npm:^1.0.1" 235 | clean-yaml-object: "npm:^0.1.0" 236 | cli-truncate: "npm:^3.1.0" 237 | code-excerpt: "npm:^4.0.0" 238 | common-path-prefix: "npm:^3.0.0" 239 | concordance: "npm:^5.0.4" 240 | currently-unhandled: "npm:^0.4.1" 241 | debug: "npm:^4.3.4" 242 | del: "npm:^7.0.0" 243 | emittery: "npm:^1.0.1" 244 | figures: "npm:^5.0.0" 245 | globby: "npm:^13.1.3" 246 | ignore-by-default: "npm:^2.1.0" 247 | indent-string: "npm:^5.0.0" 248 | is-error: "npm:^2.2.2" 249 | is-plain-object: "npm:^5.0.0" 250 | is-promise: "npm:^4.0.0" 251 | matcher: "npm:^5.0.0" 252 | mem: "npm:^9.0.2" 253 | ms: "npm:^2.1.3" 254 | p-event: "npm:^5.0.1" 255 | p-map: "npm:^5.5.0" 256 | picomatch: "npm:^2.3.1" 257 | pkg-conf: "npm:^4.0.0" 258 | plur: "npm:^5.1.0" 259 | pretty-ms: "npm:^8.0.0" 260 | resolve-cwd: "npm:^3.0.0" 261 | slash: "npm:^3.0.0" 262 | stack-utils: "npm:^2.0.6" 263 | strip-ansi: "npm:^7.0.1" 264 | supertap: "npm:^3.0.1" 265 | temp-dir: "npm:^3.0.0" 266 | write-file-atomic: "npm:^5.0.0" 267 | yargs: "npm:^17.6.2" 268 | peerDependencies: 269 | "@ava/typescript": "*" 270 | peerDependenciesMeta: 271 | "@ava/typescript": 272 | optional: true 273 | bin: 274 | ava: entrypoints/cli.mjs 275 | checksum: 10c0/a8f832109ed3b359f3a00b9b68742f1efa846cbcf3f8f58208616d7cc50f4676608b92596dfd1fd4baad3bb0f70e60b79564c26cfb1ae8238f2040093d72a82d 276 | languageName: node 277 | linkType: hard 278 | 279 | "balanced-match@npm:^1.0.0": 280 | version: 1.0.2 281 | resolution: "balanced-match@npm:1.0.2" 282 | checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee 283 | languageName: node 284 | linkType: hard 285 | 286 | "binary-extensions@npm:^2.0.0": 287 | version: 2.2.0 288 | resolution: "binary-extensions@npm:2.2.0" 289 | checksum: 10c0/d73d8b897238a2d3ffa5f59c0241870043aa7471335e89ea5e1ff48edb7c2d0bb471517a3e4c5c3f4c043615caa2717b5f80a5e61e07503d51dc85cb848e665d 290 | languageName: node 291 | linkType: hard 292 | 293 | "blueimp-md5@npm:^2.10.0": 294 | version: 2.19.0 295 | resolution: "blueimp-md5@npm:2.19.0" 296 | checksum: 10c0/85d04343537dd99a288c62450341dcce7380d3454c81f8e5a971ddd80307d6f9ef51b5b92ad7d48aaaa92fd6d3a1f6b2f4fada068faae646887f7bfabc17a346 297 | languageName: node 298 | linkType: hard 299 | 300 | "brace-expansion@npm:^1.1.7": 301 | version: 1.1.11 302 | resolution: "brace-expansion@npm:1.1.11" 303 | dependencies: 304 | balanced-match: "npm:^1.0.0" 305 | concat-map: "npm:0.0.1" 306 | checksum: 10c0/695a56cd058096a7cb71fb09d9d6a7070113c7be516699ed361317aca2ec169f618e28b8af352e02ab4233fb54eb0168460a40dc320bab0034b36ab59aaad668 307 | languageName: node 308 | linkType: hard 309 | 310 | "brace-expansion@npm:^2.0.1": 311 | version: 2.0.1 312 | resolution: "brace-expansion@npm:2.0.1" 313 | dependencies: 314 | balanced-match: "npm:^1.0.0" 315 | checksum: 10c0/b358f2fe060e2d7a87aa015979ecea07f3c37d4018f8d6deb5bd4c229ad3a0384fe6029bb76cd8be63c81e516ee52d1a0673edbe2023d53a5191732ae3c3e49f 316 | languageName: node 317 | linkType: hard 318 | 319 | "braces@npm:^3.0.2, braces@npm:~3.0.2": 320 | version: 3.0.2 321 | resolution: "braces@npm:3.0.2" 322 | dependencies: 323 | fill-range: "npm:^7.0.1" 324 | checksum: 10c0/321b4d675791479293264019156ca322163f02dc06e3c4cab33bb15cd43d80b51efef69b0930cfde3acd63d126ebca24cd0544fa6f261e093a0fb41ab9dda381 325 | languageName: node 326 | linkType: hard 327 | 328 | "cacache@npm:^18.0.0": 329 | version: 18.0.3 330 | resolution: "cacache@npm:18.0.3" 331 | dependencies: 332 | "@npmcli/fs": "npm:^3.1.0" 333 | fs-minipass: "npm:^3.0.0" 334 | glob: "npm:^10.2.2" 335 | lru-cache: "npm:^10.0.1" 336 | minipass: "npm:^7.0.3" 337 | minipass-collect: "npm:^2.0.1" 338 | minipass-flush: "npm:^1.0.5" 339 | minipass-pipeline: "npm:^1.2.4" 340 | p-map: "npm:^4.0.0" 341 | ssri: "npm:^10.0.0" 342 | tar: "npm:^6.1.11" 343 | unique-filename: "npm:^3.0.0" 344 | checksum: 10c0/dfda92840bb371fb66b88c087c61a74544363b37a265023223a99965b16a16bbb87661fe4948718d79df6e0cc04e85e62784fbcf1832b2a5e54ff4c46fbb45b7 345 | languageName: node 346 | linkType: hard 347 | 348 | "callsites@npm:^4.0.0": 349 | version: 4.0.0 350 | resolution: "callsites@npm:4.0.0" 351 | checksum: 10c0/21b67da9e44a882c6d3d2a2a6d4e24e4f15f484310180196cd38a1a1366920ffbf75a800330e96d07d8fa09a93601457bafccb86daf2dd77fe2050cf3783a244 352 | languageName: node 353 | linkType: hard 354 | 355 | "cbor@npm:^8.1.0": 356 | version: 8.1.0 357 | resolution: "cbor@npm:8.1.0" 358 | dependencies: 359 | nofilter: "npm:^3.1.0" 360 | checksum: 10c0/a836e2e7ea0efb1b9c4e5a4be906c57113d730cc42293a34072e0164ed110bb8ac035dc7dca2e3ebb641bd4b37e00fdbbf09c951aa864b3d4888a6ed8c6243f7 361 | languageName: node 362 | linkType: hard 363 | 364 | "chalk@npm:^5.2.0": 365 | version: 5.2.0 366 | resolution: "chalk@npm:5.2.0" 367 | checksum: 10c0/8a519b35c239f96e041b7f1ed8fdd79d3ca2332a8366cb957378b8a1b8a4cdfb740d19628e8bf74654d4c0917aa10cf39c20752e177a1304eac29a1168a740e9 368 | languageName: node 369 | linkType: hard 370 | 371 | "chokidar@npm:^3.5.3": 372 | version: 3.5.3 373 | resolution: "chokidar@npm:3.5.3" 374 | dependencies: 375 | anymatch: "npm:~3.1.2" 376 | braces: "npm:~3.0.2" 377 | fsevents: "npm:~2.3.2" 378 | glob-parent: "npm:~5.1.2" 379 | is-binary-path: "npm:~2.1.0" 380 | is-glob: "npm:~4.0.1" 381 | normalize-path: "npm:~3.0.0" 382 | readdirp: "npm:~3.6.0" 383 | dependenciesMeta: 384 | fsevents: 385 | optional: true 386 | checksum: 10c0/1076953093e0707c882a92c66c0f56ba6187831aa51bb4de878c1fec59ae611a3bf02898f190efec8e77a086b8df61c2b2a3ea324642a0558bdf8ee6c5dc9ca1 387 | languageName: node 388 | linkType: hard 389 | 390 | "chownr@npm:^2.0.0": 391 | version: 2.0.0 392 | resolution: "chownr@npm:2.0.0" 393 | checksum: 10c0/594754e1303672171cc04e50f6c398ae16128eb134a88f801bf5354fd96f205320f23536a045d9abd8b51024a149696e51231565891d4efdab8846021ecf88e6 394 | languageName: node 395 | linkType: hard 396 | 397 | "chunkd@npm:^2.0.1": 398 | version: 2.0.1 399 | resolution: "chunkd@npm:2.0.1" 400 | checksum: 10c0/4e0c5aac6048ecedfa4cd0a5f6c4f010c70a7b7645aeca7bfeb47cb0733c3463054f0ced3f2667b2e0e67edd75d68a8e05481b01115ba3f8a952a93026254504 401 | languageName: node 402 | linkType: hard 403 | 404 | "ci-info@npm:^3.7.1": 405 | version: 3.8.0 406 | resolution: "ci-info@npm:3.8.0" 407 | checksum: 10c0/0d3052193b58356372b34ab40d2668c3e62f1006d5ca33726d1d3c423853b19a85508eadde7f5908496fb41448f465263bf61c1ee58b7832cb6a924537e3863a 408 | languageName: node 409 | linkType: hard 410 | 411 | "ci-parallel-vars@npm:^1.0.1": 412 | version: 1.0.1 413 | resolution: "ci-parallel-vars@npm:1.0.1" 414 | checksum: 10c0/80952f699cbbc146092b077b4f3e28d085620eb4e6be37f069b4dbb3db0ee70e8eec3beef4ebe70ff60631e9fc743b9d0869678489f167442cac08b260e5ac08 415 | languageName: node 416 | linkType: hard 417 | 418 | "clean-stack@npm:^2.0.0": 419 | version: 2.2.0 420 | resolution: "clean-stack@npm:2.2.0" 421 | checksum: 10c0/1f90262d5f6230a17e27d0c190b09d47ebe7efdd76a03b5a1127863f7b3c9aec4c3e6c8bb3a7bbf81d553d56a1fd35728f5a8ef4c63f867ac8d690109742a8c1 422 | languageName: node 423 | linkType: hard 424 | 425 | "clean-stack@npm:^4.0.0": 426 | version: 4.2.0 427 | resolution: "clean-stack@npm:4.2.0" 428 | dependencies: 429 | escape-string-regexp: "npm:5.0.0" 430 | checksum: 10c0/2bdf981a0fef0a23c14255df693b30eb9ae27eedf212470d8c400a0c0b6fb82fbf1ff8c5216ccd5721e3670b700389c886b1dce5070776dc9fbcc040957758c0 431 | languageName: node 432 | linkType: hard 433 | 434 | "clean-yaml-object@npm:^0.1.0": 435 | version: 0.1.0 436 | resolution: "clean-yaml-object@npm:0.1.0" 437 | checksum: 10c0/a6505310590038afb9f0adc7f17a4c66787719c94d23f8491267ea4d9c405cdd378bd576ae1926169b6d997d4c59a8b86516bf4d16ba228280cf615598c58e05 438 | languageName: node 439 | linkType: hard 440 | 441 | "cli-truncate@npm:^3.1.0": 442 | version: 3.1.0 443 | resolution: "cli-truncate@npm:3.1.0" 444 | dependencies: 445 | slice-ansi: "npm:^5.0.0" 446 | string-width: "npm:^5.0.0" 447 | checksum: 10c0/a19088878409ec0e5dc2659a5166929629d93cfba6d68afc9cde2282fd4c751af5b555bf197047e31c87c574396348d011b7aa806fec29c4139ea4f7f00b324c 448 | languageName: node 449 | linkType: hard 450 | 451 | "cliui@npm:^8.0.1": 452 | version: 8.0.1 453 | resolution: "cliui@npm:8.0.1" 454 | dependencies: 455 | string-width: "npm:^4.2.0" 456 | strip-ansi: "npm:^6.0.1" 457 | wrap-ansi: "npm:^7.0.0" 458 | checksum: 10c0/4bda0f09c340cbb6dfdc1ed508b3ca080f12992c18d68c6be4d9cf51756033d5266e61ec57529e610dacbf4da1c634423b0c1b11037709cc6b09045cbd815df5 459 | languageName: node 460 | linkType: hard 461 | 462 | "code-excerpt@npm:^4.0.0": 463 | version: 4.0.0 464 | resolution: "code-excerpt@npm:4.0.0" 465 | dependencies: 466 | convert-to-spaces: "npm:^2.0.1" 467 | checksum: 10c0/b6c5a06e039cecd2ab6a0e10ee0831de8362107d1f298ca3558b5f9004cb8e0260b02dd6c07f57b9a0e346c76864d2873311ee1989809fdeb05bd5fbbadde773 468 | languageName: node 469 | linkType: hard 470 | 471 | "color-convert@npm:^2.0.1": 472 | version: 2.0.1 473 | resolution: "color-convert@npm:2.0.1" 474 | dependencies: 475 | color-name: "npm:~1.1.4" 476 | checksum: 10c0/37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7 477 | languageName: node 478 | linkType: hard 479 | 480 | "color-name@npm:~1.1.4": 481 | version: 1.1.4 482 | resolution: "color-name@npm:1.1.4" 483 | checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95 484 | languageName: node 485 | linkType: hard 486 | 487 | "common-path-prefix@npm:^3.0.0": 488 | version: 3.0.0 489 | resolution: "common-path-prefix@npm:3.0.0" 490 | checksum: 10c0/c4a74294e1b1570f4a8ab435285d185a03976c323caa16359053e749db4fde44e3e6586c29cd051100335e11895767cbbd27ea389108e327d62f38daf4548fdb 491 | languageName: node 492 | linkType: hard 493 | 494 | "concat-map@npm:0.0.1": 495 | version: 0.0.1 496 | resolution: "concat-map@npm:0.0.1" 497 | checksum: 10c0/c996b1cfdf95b6c90fee4dae37e332c8b6eb7d106430c17d538034c0ad9a1630cb194d2ab37293b1bdd4d779494beee7786d586a50bd9376fd6f7bcc2bd4c98f 498 | languageName: node 499 | linkType: hard 500 | 501 | "concordance@npm:^5.0.4": 502 | version: 5.0.4 503 | resolution: "concordance@npm:5.0.4" 504 | dependencies: 505 | date-time: "npm:^3.1.0" 506 | esutils: "npm:^2.0.3" 507 | fast-diff: "npm:^1.2.0" 508 | js-string-escape: "npm:^1.0.1" 509 | lodash: "npm:^4.17.15" 510 | md5-hex: "npm:^3.0.1" 511 | semver: "npm:^7.3.2" 512 | well-known-symbols: "npm:^2.0.0" 513 | checksum: 10c0/59b440f330df3a7c9aa148ba588b3e99aed86acab225b4f01ffcea34ace4cf11f817e31153254e8f38ed48508998dad40b9106951a743c334d751f7ab21afb8a 514 | languageName: node 515 | linkType: hard 516 | 517 | "convert-to-spaces@npm:^2.0.1": 518 | version: 2.0.1 519 | resolution: "convert-to-spaces@npm:2.0.1" 520 | checksum: 10c0/d90aa0e3b6a27f9d5265a8d32def3c5c855b3e823a9db1f26d772f8146d6b91020a2fdfd905ce8048a73fad3aaf836fef8188c67602c374405e2ae8396c4ac46 521 | languageName: node 522 | linkType: hard 523 | 524 | "cross-spawn@npm:^7.0.0": 525 | version: 7.0.3 526 | resolution: "cross-spawn@npm:7.0.3" 527 | dependencies: 528 | path-key: "npm:^3.1.0" 529 | shebang-command: "npm:^2.0.0" 530 | which: "npm:^2.0.1" 531 | checksum: 10c0/5738c312387081c98d69c98e105b6327b069197f864a60593245d64c8089c8a0a744e16349281210d56835bb9274130d825a78b2ad6853ca13cfbeffc0c31750 532 | languageName: node 533 | linkType: hard 534 | 535 | "currently-unhandled@npm:^0.4.1": 536 | version: 0.4.1 537 | resolution: "currently-unhandled@npm:0.4.1" 538 | dependencies: 539 | array-find-index: "npm:^1.0.1" 540 | checksum: 10c0/32d197689ec32f035910202c1abb0dc6424dce01d7b51779c685119b380d98535c110ffff67a262fc7e367612a7dfd30d3d3055f9a6634b5a9dd1302de7ef11c 541 | languageName: node 542 | linkType: hard 543 | 544 | "date-time@npm:^3.1.0": 545 | version: 3.1.0 546 | resolution: "date-time@npm:3.1.0" 547 | dependencies: 548 | time-zone: "npm:^1.0.0" 549 | checksum: 10c0/aa3e2e930d74b0b9e90f69de7a16d3376e30f21f1f4ce9a2311d8fec32d760e776efea752dafad0ce188187265235229013036202be053fc2d7979813bfb6ded 550 | languageName: node 551 | linkType: hard 552 | 553 | "debug@npm:4": 554 | version: 4.3.5 555 | resolution: "debug@npm:4.3.5" 556 | dependencies: 557 | ms: "npm:2.1.2" 558 | peerDependenciesMeta: 559 | supports-color: 560 | optional: true 561 | checksum: 10c0/082c375a2bdc4f4469c99f325ff458adad62a3fc2c482d59923c260cb08152f34e2659f72b3767db8bb2f21ca81a60a42d1019605a412132d7b9f59363a005cc 562 | languageName: node 563 | linkType: hard 564 | 565 | "debug@npm:^4.3.4": 566 | version: 4.3.4 567 | resolution: "debug@npm:4.3.4" 568 | dependencies: 569 | ms: "npm:2.1.2" 570 | peerDependenciesMeta: 571 | supports-color: 572 | optional: true 573 | checksum: 10c0/cedbec45298dd5c501d01b92b119cd3faebe5438c3917ff11ae1bff86a6c722930ac9c8659792824013168ba6db7c4668225d845c633fbdafbbf902a6389f736 574 | languageName: node 575 | linkType: hard 576 | 577 | "del@npm:^7.0.0": 578 | version: 7.0.0 579 | resolution: "del@npm:7.0.0" 580 | dependencies: 581 | globby: "npm:^13.1.2" 582 | graceful-fs: "npm:^4.2.10" 583 | is-glob: "npm:^4.0.3" 584 | is-path-cwd: "npm:^3.0.0" 585 | is-path-inside: "npm:^4.0.0" 586 | p-map: "npm:^5.5.0" 587 | rimraf: "npm:^3.0.2" 588 | slash: "npm:^4.0.0" 589 | checksum: 10c0/935290369925453f469d3187f6d311d99dde8ea5066009d4103495691f290ad5bdc3be0eefdce5032d67f48d228ad2f54322f7a15c2f48aecd416e2141c58b2d 590 | languageName: node 591 | linkType: hard 592 | 593 | "dir-glob@npm:^3.0.1": 594 | version: 3.0.1 595 | resolution: "dir-glob@npm:3.0.1" 596 | dependencies: 597 | path-type: "npm:^4.0.0" 598 | checksum: 10c0/dcac00920a4d503e38bb64001acb19df4efc14536ada475725e12f52c16777afdee4db827f55f13a908ee7efc0cb282e2e3dbaeeb98c0993dd93d1802d3bf00c 599 | languageName: node 600 | linkType: hard 601 | 602 | "eastasianwidth@npm:^0.2.0": 603 | version: 0.2.0 604 | resolution: "eastasianwidth@npm:0.2.0" 605 | checksum: 10c0/26f364ebcdb6395f95124fda411f63137a4bfb5d3a06453f7f23dfe52502905bd84e0488172e0f9ec295fdc45f05c23d5d91baf16bd26f0fe9acd777a188dc39 606 | languageName: node 607 | linkType: hard 608 | 609 | "emittery@npm:^1.0.1": 610 | version: 1.0.1 611 | resolution: "emittery@npm:1.0.1" 612 | checksum: 10c0/2587f2f42bb5e004ba1cde61352d2151f4dd4f29eb79ad36f82e200da2faec9742d7bfca1492a024d60396e001e4b07d9b2b9c43be33547ff751ba8ff87c42ce 613 | languageName: node 614 | linkType: hard 615 | 616 | "emoji-regex@npm:^8.0.0": 617 | version: 8.0.0 618 | resolution: "emoji-regex@npm:8.0.0" 619 | checksum: 10c0/b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010 620 | languageName: node 621 | linkType: hard 622 | 623 | "emoji-regex@npm:^9.2.2": 624 | version: 9.2.2 625 | resolution: "emoji-regex@npm:9.2.2" 626 | checksum: 10c0/af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639 627 | languageName: node 628 | linkType: hard 629 | 630 | "encoding@npm:^0.1.13": 631 | version: 0.1.13 632 | resolution: "encoding@npm:0.1.13" 633 | dependencies: 634 | iconv-lite: "npm:^0.6.2" 635 | checksum: 10c0/36d938712ff00fe1f4bac88b43bcffb5930c1efa57bbcdca9d67e1d9d6c57cfb1200fb01efe0f3109b2ce99b231f90779532814a81370a1bd3274a0f58585039 636 | languageName: node 637 | linkType: hard 638 | 639 | "env-paths@npm:^2.2.0": 640 | version: 2.2.1 641 | resolution: "env-paths@npm:2.2.1" 642 | checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4 643 | languageName: node 644 | linkType: hard 645 | 646 | "err-code@npm:^2.0.2": 647 | version: 2.0.3 648 | resolution: "err-code@npm:2.0.3" 649 | checksum: 10c0/b642f7b4dd4a376e954947550a3065a9ece6733ab8e51ad80db727aaae0817c2e99b02a97a3d6cecc648a97848305e728289cf312d09af395403a90c9d4d8a66 650 | languageName: node 651 | linkType: hard 652 | 653 | "escalade@npm:^3.1.1": 654 | version: 3.1.1 655 | resolution: "escalade@npm:3.1.1" 656 | checksum: 10c0/afd02e6ca91ffa813e1108b5e7756566173d6bc0d1eb951cb44d6b21702ec17c1cf116cfe75d4a2b02e05acb0b808a7a9387d0d1ca5cf9c04ad03a8445c3e46d 657 | languageName: node 658 | linkType: hard 659 | 660 | "escape-string-regexp@npm:5.0.0, escape-string-regexp@npm:^5.0.0": 661 | version: 5.0.0 662 | resolution: "escape-string-regexp@npm:5.0.0" 663 | checksum: 10c0/6366f474c6f37a802800a435232395e04e9885919873e382b157ab7e8f0feb8fed71497f84a6f6a81a49aab41815522f5839112bd38026d203aea0c91622df95 664 | languageName: node 665 | linkType: hard 666 | 667 | "escape-string-regexp@npm:^2.0.0": 668 | version: 2.0.0 669 | resolution: "escape-string-regexp@npm:2.0.0" 670 | checksum: 10c0/2530479fe8db57eace5e8646c9c2a9c80fa279614986d16dcc6bcaceb63ae77f05a851ba6c43756d816c61d7f4534baf56e3c705e3e0d884818a46808811c507 671 | languageName: node 672 | linkType: hard 673 | 674 | "esprima@npm:^4.0.0": 675 | version: 4.0.1 676 | resolution: "esprima@npm:4.0.1" 677 | bin: 678 | esparse: ./bin/esparse.js 679 | esvalidate: ./bin/esvalidate.js 680 | checksum: 10c0/ad4bab9ead0808cf56501750fd9d3fb276f6b105f987707d059005d57e182d18a7c9ec7f3a01794ebddcca676773e42ca48a32d67a250c9d35e009ca613caba3 681 | languageName: node 682 | linkType: hard 683 | 684 | "esutils@npm:^2.0.3": 685 | version: 2.0.3 686 | resolution: "esutils@npm:2.0.3" 687 | checksum: 10c0/9a2fe69a41bfdade834ba7c42de4723c97ec776e40656919c62cbd13607c45e127a003f05f724a1ea55e5029a4cf2de444b13009f2af71271e42d93a637137c7 688 | languageName: node 689 | linkType: hard 690 | 691 | "exponential-backoff@npm:^3.1.1": 692 | version: 3.1.1 693 | resolution: "exponential-backoff@npm:3.1.1" 694 | checksum: 10c0/160456d2d647e6019640bd07111634d8c353038d9fa40176afb7cd49b0548bdae83b56d05e907c2cce2300b81cae35d800ef92fefb9d0208e190fa3b7d6bb579 695 | languageName: node 696 | linkType: hard 697 | 698 | "fast-diff@npm:^1.2.0": 699 | version: 1.2.0 700 | resolution: "fast-diff@npm:1.2.0" 701 | checksum: 10c0/2fbcb23957fb0bc920832a94ba627b860400f9cce45e1594e931dabf62e858369a58c6c2603e2ecc4f7679580f710b5b5b6e698a355a9a9bfcfd93c06c7c4350 702 | languageName: node 703 | linkType: hard 704 | 705 | "fast-glob@npm:^3.2.11": 706 | version: 3.2.12 707 | resolution: "fast-glob@npm:3.2.12" 708 | dependencies: 709 | "@nodelib/fs.stat": "npm:^2.0.2" 710 | "@nodelib/fs.walk": "npm:^1.2.3" 711 | glob-parent: "npm:^5.1.2" 712 | merge2: "npm:^1.3.0" 713 | micromatch: "npm:^4.0.4" 714 | checksum: 10c0/08604fb8ef6442ce74068bef3c3104382bb1f5ab28cf75e4ee904662778b60ad620e1405e692b7edea598ef445f5d387827a965ba034e1892bf54b1dfde97f26 715 | languageName: node 716 | linkType: hard 717 | 718 | "fastq@npm:^1.6.0": 719 | version: 1.15.0 720 | resolution: "fastq@npm:1.15.0" 721 | dependencies: 722 | reusify: "npm:^1.0.4" 723 | checksum: 10c0/5ce4f83afa5f88c9379e67906b4d31bc7694a30826d6cc8d0f0473c966929017fda65c2174b0ec89f064ede6ace6c67f8a4fe04cef42119b6a55b0d465554c24 724 | languageName: node 725 | linkType: hard 726 | 727 | "figures@npm:^5.0.0": 728 | version: 5.0.0 729 | resolution: "figures@npm:5.0.0" 730 | dependencies: 731 | escape-string-regexp: "npm:^5.0.0" 732 | is-unicode-supported: "npm:^1.2.0" 733 | checksum: 10c0/ce0f17d4ea8b0fc429c5207c343534a2f5284ecfb22aa08607da7dc84ed9e1cf754f5b97760e8dcb98d3c9d1a1e4d3d578fe3b5b99c426f05d0f06c7ba618e16 734 | languageName: node 735 | linkType: hard 736 | 737 | "fill-range@npm:^7.0.1": 738 | version: 7.0.1 739 | resolution: "fill-range@npm:7.0.1" 740 | dependencies: 741 | to-regex-range: "npm:^5.0.1" 742 | checksum: 10c0/7cdad7d426ffbaadf45aeb5d15ec675bbd77f7597ad5399e3d2766987ed20bda24d5fac64b3ee79d93276f5865608bb22344a26b9b1ae6c4d00bd94bf611623f 743 | languageName: node 744 | linkType: hard 745 | 746 | "find-up@npm:^6.0.0": 747 | version: 6.3.0 748 | resolution: "find-up@npm:6.3.0" 749 | dependencies: 750 | locate-path: "npm:^7.1.0" 751 | path-exists: "npm:^5.0.0" 752 | checksum: 10c0/07e0314362d316b2b13f7f11ea4692d5191e718ca3f7264110127520f3347996349bf9e16805abae3e196805814bc66ef4bff2b8904dc4a6476085fc9b0eba07 753 | languageName: node 754 | linkType: hard 755 | 756 | "foreground-child@npm:^3.1.0": 757 | version: 3.1.1 758 | resolution: "foreground-child@npm:3.1.1" 759 | dependencies: 760 | cross-spawn: "npm:^7.0.0" 761 | signal-exit: "npm:^4.0.1" 762 | checksum: 10c0/9700a0285628abaeb37007c9a4d92bd49f67210f09067638774338e146c8e9c825c5c877f072b2f75f41dc6a2d0be8664f79ffc03f6576649f54a84fb9b47de0 763 | languageName: node 764 | linkType: hard 765 | 766 | "fs-minipass@npm:^2.0.0": 767 | version: 2.1.0 768 | resolution: "fs-minipass@npm:2.1.0" 769 | dependencies: 770 | minipass: "npm:^3.0.0" 771 | checksum: 10c0/703d16522b8282d7299337539c3ed6edddd1afe82435e4f5b76e34a79cd74e488a8a0e26a636afc2440e1a23b03878e2122e3a2cfe375a5cf63c37d92b86a004 772 | languageName: node 773 | linkType: hard 774 | 775 | "fs-minipass@npm:^3.0.0": 776 | version: 3.0.3 777 | resolution: "fs-minipass@npm:3.0.3" 778 | dependencies: 779 | minipass: "npm:^7.0.3" 780 | checksum: 10c0/63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94 781 | languageName: node 782 | linkType: hard 783 | 784 | "fs.realpath@npm:^1.0.0": 785 | version: 1.0.0 786 | resolution: "fs.realpath@npm:1.0.0" 787 | checksum: 10c0/444cf1291d997165dfd4c0d58b69f0e4782bfd9149fd72faa4fe299e68e0e93d6db941660b37dd29153bf7186672ececa3b50b7e7249477b03fdf850f287c948 788 | languageName: node 789 | linkType: hard 790 | 791 | "fsevents@npm:~2.3.2": 792 | version: 2.3.2 793 | resolution: "fsevents@npm:2.3.2" 794 | dependencies: 795 | node-gyp: "npm:latest" 796 | checksum: 10c0/be78a3efa3e181cda3cf7a4637cb527bcebb0bd0ea0440105a3bb45b86f9245b307dc10a2507e8f4498a7d4ec349d1910f4d73e4d4495b16103106e07eee735b 797 | conditions: os=darwin 798 | languageName: node 799 | linkType: hard 800 | 801 | "fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin": 802 | version: 2.3.2 803 | resolution: "fsevents@patch:fsevents@npm%3A2.3.2#optional!builtin::version=2.3.2&hash=df0bf1" 804 | dependencies: 805 | node-gyp: "npm:latest" 806 | conditions: os=darwin 807 | languageName: node 808 | linkType: hard 809 | 810 | "get-caller-file@npm:^2.0.5": 811 | version: 2.0.5 812 | resolution: "get-caller-file@npm:2.0.5" 813 | checksum: 10c0/c6c7b60271931fa752aeb92f2b47e355eac1af3a2673f47c9589e8f8a41adc74d45551c1bc57b5e66a80609f10ffb72b6f575e4370d61cc3f7f3aaff01757cde 814 | languageName: node 815 | linkType: hard 816 | 817 | "glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": 818 | version: 5.1.2 819 | resolution: "glob-parent@npm:5.1.2" 820 | dependencies: 821 | is-glob: "npm:^4.0.1" 822 | checksum: 10c0/cab87638e2112bee3f839ef5f6e0765057163d39c66be8ec1602f3823da4692297ad4e972de876ea17c44d652978638d2fd583c6713d0eb6591706825020c9ee 823 | languageName: node 824 | linkType: hard 825 | 826 | "glob@npm:^10.2.2, glob@npm:^10.3.10": 827 | version: 10.4.1 828 | resolution: "glob@npm:10.4.1" 829 | dependencies: 830 | foreground-child: "npm:^3.1.0" 831 | jackspeak: "npm:^3.1.2" 832 | minimatch: "npm:^9.0.4" 833 | minipass: "npm:^7.1.2" 834 | path-scurry: "npm:^1.11.1" 835 | bin: 836 | glob: dist/esm/bin.mjs 837 | checksum: 10c0/77f2900ed98b9cc2a0e1901ee5e476d664dae3cd0f1b662b8bfd4ccf00d0edc31a11595807706a274ca10e1e251411bbf2e8e976c82bed0d879a9b89343ed379 838 | languageName: node 839 | linkType: hard 840 | 841 | "glob@npm:^7.1.3": 842 | version: 7.2.3 843 | resolution: "glob@npm:7.2.3" 844 | dependencies: 845 | fs.realpath: "npm:^1.0.0" 846 | inflight: "npm:^1.0.4" 847 | inherits: "npm:2" 848 | minimatch: "npm:^3.1.1" 849 | once: "npm:^1.3.0" 850 | path-is-absolute: "npm:^1.0.0" 851 | checksum: 10c0/65676153e2b0c9095100fe7f25a778bf45608eeb32c6048cf307f579649bcc30353277b3b898a3792602c65764e5baa4f643714dfbdfd64ea271d210c7a425fe 852 | languageName: node 853 | linkType: hard 854 | 855 | "globby@npm:^13.1.2, globby@npm:^13.1.3": 856 | version: 13.1.3 857 | resolution: "globby@npm:13.1.3" 858 | dependencies: 859 | dir-glob: "npm:^3.0.1" 860 | fast-glob: "npm:^3.2.11" 861 | ignore: "npm:^5.2.0" 862 | merge2: "npm:^1.4.1" 863 | slash: "npm:^4.0.0" 864 | checksum: 10c0/34199932fad67ae6a4cca764eaad8e7678efabd4321f553bfb8a52046e03f8e8e2f9c14216a6734b692b7c26c4da1b1cfe9ce23733d28d1777d73f4bf34b09c7 865 | languageName: node 866 | linkType: hard 867 | 868 | "graceful-fs@npm:^4.2.10": 869 | version: 4.2.10 870 | resolution: "graceful-fs@npm:4.2.10" 871 | checksum: 10c0/4223a833e38e1d0d2aea630c2433cfb94ddc07dfc11d511dbd6be1d16688c5be848acc31f9a5d0d0ddbfb56d2ee5a6ae0278aceeb0ca6a13f27e06b9956fb952 872 | languageName: node 873 | linkType: hard 874 | 875 | "graceful-fs@npm:^4.2.6": 876 | version: 4.2.11 877 | resolution: "graceful-fs@npm:4.2.11" 878 | checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 879 | languageName: node 880 | linkType: hard 881 | 882 | "http-cache-semantics@npm:^4.1.1": 883 | version: 4.1.1 884 | resolution: "http-cache-semantics@npm:4.1.1" 885 | checksum: 10c0/ce1319b8a382eb3cbb4a37c19f6bfe14e5bb5be3d09079e885e8c513ab2d3cd9214902f8a31c9dc4e37022633ceabfc2d697405deeaf1b8f3552bb4ed996fdfc 886 | languageName: node 887 | linkType: hard 888 | 889 | "http-proxy-agent@npm:^7.0.0": 890 | version: 7.0.2 891 | resolution: "http-proxy-agent@npm:7.0.2" 892 | dependencies: 893 | agent-base: "npm:^7.1.0" 894 | debug: "npm:^4.3.4" 895 | checksum: 10c0/4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921 896 | languageName: node 897 | linkType: hard 898 | 899 | "https-proxy-agent@npm:^7.0.1": 900 | version: 7.0.4 901 | resolution: "https-proxy-agent@npm:7.0.4" 902 | dependencies: 903 | agent-base: "npm:^7.0.2" 904 | debug: "npm:4" 905 | checksum: 10c0/bc4f7c38da32a5fc622450b6cb49a24ff596f9bd48dcedb52d2da3fa1c1a80e100fb506bd59b326c012f21c863c69b275c23de1a01d0b84db396822fdf25e52b 906 | languageName: node 907 | linkType: hard 908 | 909 | "iconv-lite@npm:^0.6.2": 910 | version: 0.6.3 911 | resolution: "iconv-lite@npm:0.6.3" 912 | dependencies: 913 | safer-buffer: "npm:>= 2.1.2 < 3.0.0" 914 | checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1 915 | languageName: node 916 | linkType: hard 917 | 918 | "ignore-by-default@npm:^2.1.0": 919 | version: 2.1.0 920 | resolution: "ignore-by-default@npm:2.1.0" 921 | checksum: 10c0/3a6040dac25ed9da39dee73bf1634fdd1e15b0eb7cf52a6bdec81c310565782d8811c104ce40acb3d690d61c5fc38a91c78e6baee830a8a2232424dbc6b66981 922 | languageName: node 923 | linkType: hard 924 | 925 | "ignore@npm:^5.2.0": 926 | version: 5.2.4 927 | resolution: "ignore@npm:5.2.4" 928 | checksum: 10c0/7c7cd90edd9fea6e037f9b9da4b01bf0a86b198ce78345f9bbd983929d68ff14830be31111edc5d70c264921f4962404d75b7262b4d9cc3bc12381eccbd03096 929 | languageName: node 930 | linkType: hard 931 | 932 | "imurmurhash@npm:^0.1.4": 933 | version: 0.1.4 934 | resolution: "imurmurhash@npm:0.1.4" 935 | checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6 936 | languageName: node 937 | linkType: hard 938 | 939 | "indent-string@npm:^4.0.0": 940 | version: 4.0.0 941 | resolution: "indent-string@npm:4.0.0" 942 | checksum: 10c0/1e1904ddb0cb3d6cce7cd09e27a90184908b7a5d5c21b92e232c93579d314f0b83c246ffb035493d0504b1e9147ba2c9b21df0030f48673fba0496ecd698161f 943 | languageName: node 944 | linkType: hard 945 | 946 | "indent-string@npm:^5.0.0": 947 | version: 5.0.0 948 | resolution: "indent-string@npm:5.0.0" 949 | checksum: 10c0/8ee77b57d92e71745e133f6f444d6fa3ed503ad0e1bcd7e80c8da08b42375c07117128d670589725ed07b1978065803fa86318c309ba45415b7fe13e7f170220 950 | languageName: node 951 | linkType: hard 952 | 953 | "inflight@npm:^1.0.4": 954 | version: 1.0.6 955 | resolution: "inflight@npm:1.0.6" 956 | dependencies: 957 | once: "npm:^1.3.0" 958 | wrappy: "npm:1" 959 | checksum: 10c0/7faca22584600a9dc5b9fca2cd5feb7135ac8c935449837b315676b4c90aa4f391ec4f42240178244b5a34e8bede1948627fda392ca3191522fc46b34e985ab2 960 | languageName: node 961 | linkType: hard 962 | 963 | "inherits@npm:2": 964 | version: 2.0.4 965 | resolution: "inherits@npm:2.0.4" 966 | checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 967 | languageName: node 968 | linkType: hard 969 | 970 | "ip-address@npm:^9.0.5": 971 | version: 9.0.5 972 | resolution: "ip-address@npm:9.0.5" 973 | dependencies: 974 | jsbn: "npm:1.1.0" 975 | sprintf-js: "npm:^1.1.3" 976 | checksum: 10c0/331cd07fafcb3b24100613e4b53e1a2b4feab11e671e655d46dc09ee233da5011284d09ca40c4ecbdfe1d0004f462958675c224a804259f2f78d2465a87824bc 977 | languageName: node 978 | linkType: hard 979 | 980 | "irregular-plurals@npm:^3.3.0": 981 | version: 3.4.1 982 | resolution: "irregular-plurals@npm:3.4.1" 983 | checksum: 10c0/31453b984275e66d56135abe16ded28b2974f783769f96442a1a061ebe54d369c5ae6c0da2bdfa9f0c393058292676f3a1db6e58e57528d25bfeffbe346b0640 984 | languageName: node 985 | linkType: hard 986 | 987 | "is-binary-path@npm:~2.1.0": 988 | version: 2.1.0 989 | resolution: "is-binary-path@npm:2.1.0" 990 | dependencies: 991 | binary-extensions: "npm:^2.0.0" 992 | checksum: 10c0/a16eaee59ae2b315ba36fad5c5dcaf8e49c3e27318f8ab8fa3cdb8772bf559c8d1ba750a589c2ccb096113bb64497084361a25960899cb6172a6925ab6123d38 993 | languageName: node 994 | linkType: hard 995 | 996 | "is-error@npm:^2.2.2": 997 | version: 2.2.2 998 | resolution: "is-error@npm:2.2.2" 999 | checksum: 10c0/475d3463968bf16e94485555d7cb7a879ed68685e08d365a3370972e626054f1846ebbb3934403091e06682445568601fe919e41646096e5007952d0c1f4fd9b 1000 | languageName: node 1001 | linkType: hard 1002 | 1003 | "is-extglob@npm:^2.1.1": 1004 | version: 2.1.1 1005 | resolution: "is-extglob@npm:2.1.1" 1006 | checksum: 10c0/5487da35691fbc339700bbb2730430b07777a3c21b9ebaecb3072512dfd7b4ba78ac2381a87e8d78d20ea08affb3f1971b4af629173a6bf435ff8a4c47747912 1007 | languageName: node 1008 | linkType: hard 1009 | 1010 | "is-fullwidth-code-point@npm:^3.0.0": 1011 | version: 3.0.0 1012 | resolution: "is-fullwidth-code-point@npm:3.0.0" 1013 | checksum: 10c0/bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc 1014 | languageName: node 1015 | linkType: hard 1016 | 1017 | "is-fullwidth-code-point@npm:^4.0.0": 1018 | version: 4.0.0 1019 | resolution: "is-fullwidth-code-point@npm:4.0.0" 1020 | checksum: 10c0/df2a717e813567db0f659c306d61f2f804d480752526886954a2a3e2246c7745fd07a52b5fecf2b68caf0a6c79dcdace6166fdf29cc76ed9975cc334f0a018b8 1021 | languageName: node 1022 | linkType: hard 1023 | 1024 | "is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": 1025 | version: 4.0.3 1026 | resolution: "is-glob@npm:4.0.3" 1027 | dependencies: 1028 | is-extglob: "npm:^2.1.1" 1029 | checksum: 10c0/17fb4014e22be3bbecea9b2e3a76e9e34ff645466be702f1693e8f1ee1adac84710d0be0bd9f967d6354036fd51ab7c2741d954d6e91dae6bb69714de92c197a 1030 | languageName: node 1031 | linkType: hard 1032 | 1033 | "is-lambda@npm:^1.0.1": 1034 | version: 1.0.1 1035 | resolution: "is-lambda@npm:1.0.1" 1036 | checksum: 10c0/85fee098ae62ba6f1e24cf22678805473c7afd0fb3978a3aa260e354cb7bcb3a5806cf0a98403188465efedec41ab4348e8e4e79305d409601323855b3839d4d 1037 | languageName: node 1038 | linkType: hard 1039 | 1040 | "is-number@npm:^7.0.0": 1041 | version: 7.0.0 1042 | resolution: "is-number@npm:7.0.0" 1043 | checksum: 10c0/b4686d0d3053146095ccd45346461bc8e53b80aeb7671cc52a4de02dbbf7dc0d1d2a986e2fe4ae206984b4d34ef37e8b795ebc4f4295c978373e6575e295d811 1044 | languageName: node 1045 | linkType: hard 1046 | 1047 | "is-path-cwd@npm:^3.0.0": 1048 | version: 3.0.0 1049 | resolution: "is-path-cwd@npm:3.0.0" 1050 | checksum: 10c0/8135b789c74e137501ca33b11a846c32d160c517037c0ce390004a98335e010b9712792d97c73d9e98a5ecbcfd03589a81e95c72e1c05014a69fead963a02753 1051 | languageName: node 1052 | linkType: hard 1053 | 1054 | "is-path-inside@npm:^4.0.0": 1055 | version: 4.0.0 1056 | resolution: "is-path-inside@npm:4.0.0" 1057 | checksum: 10c0/51188d7e2b1d907a9a5f7c18d99a90b60870b951ed87cf97595d9aaa429d4c010652c3350bcbf31182e7f4b0eab9a1860b43e16729b13cb1a44baaa6cdb64c46 1058 | languageName: node 1059 | linkType: hard 1060 | 1061 | "is-plain-object@npm:^5.0.0": 1062 | version: 5.0.0 1063 | resolution: "is-plain-object@npm:5.0.0" 1064 | checksum: 10c0/893e42bad832aae3511c71fd61c0bf61aa3a6d853061c62a307261842727d0d25f761ce9379f7ba7226d6179db2a3157efa918e7fe26360f3bf0842d9f28942c 1065 | languageName: node 1066 | linkType: hard 1067 | 1068 | "is-promise@npm:^4.0.0": 1069 | version: 4.0.0 1070 | resolution: "is-promise@npm:4.0.0" 1071 | checksum: 10c0/ebd5c672d73db781ab33ccb155fb9969d6028e37414d609b115cc534654c91ccd061821d5b987eefaa97cf4c62f0b909bb2f04db88306de26e91bfe8ddc01503 1072 | languageName: node 1073 | linkType: hard 1074 | 1075 | "is-unicode-supported@npm:^1.2.0": 1076 | version: 1.3.0 1077 | resolution: "is-unicode-supported@npm:1.3.0" 1078 | checksum: 10c0/b8674ea95d869f6faabddc6a484767207058b91aea0250803cbf1221345cb0c56f466d4ecea375dc77f6633d248d33c47bd296fb8f4cdba0b4edba8917e83d8a 1079 | languageName: node 1080 | linkType: hard 1081 | 1082 | "isexe@npm:^2.0.0": 1083 | version: 2.0.0 1084 | resolution: "isexe@npm:2.0.0" 1085 | checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d 1086 | languageName: node 1087 | linkType: hard 1088 | 1089 | "isexe@npm:^3.1.1": 1090 | version: 3.1.1 1091 | resolution: "isexe@npm:3.1.1" 1092 | checksum: 10c0/9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7 1093 | languageName: node 1094 | linkType: hard 1095 | 1096 | "jackspeak@npm:^3.1.2": 1097 | version: 3.4.0 1098 | resolution: "jackspeak@npm:3.4.0" 1099 | dependencies: 1100 | "@isaacs/cliui": "npm:^8.0.2" 1101 | "@pkgjs/parseargs": "npm:^0.11.0" 1102 | dependenciesMeta: 1103 | "@pkgjs/parseargs": 1104 | optional: true 1105 | checksum: 10c0/7e42d1ea411b4d57d43ea8a6afbca9224382804359cb72626d0fc45bb8db1de5ad0248283c3db45fe73e77210750d4fcc7c2b4fe5d24fda94aaa24d658295c5f 1106 | languageName: node 1107 | linkType: hard 1108 | 1109 | "js-string-escape@npm:^1.0.1": 1110 | version: 1.0.1 1111 | resolution: "js-string-escape@npm:1.0.1" 1112 | checksum: 10c0/2c33b9ff1ba6b84681c51ca0997e7d5a1639813c95d5b61cb7ad47e55cc28fa4a0b1935c3d218710d8e6bcee5d0cd8c44755231e3a4e45fc604534d9595a3628 1113 | languageName: node 1114 | linkType: hard 1115 | 1116 | "js-yaml@npm:^3.14.1": 1117 | version: 3.14.1 1118 | resolution: "js-yaml@npm:3.14.1" 1119 | dependencies: 1120 | argparse: "npm:^1.0.7" 1121 | esprima: "npm:^4.0.0" 1122 | bin: 1123 | js-yaml: bin/js-yaml.js 1124 | checksum: 10c0/6746baaaeac312c4db8e75fa22331d9a04cccb7792d126ed8ce6a0bbcfef0cedaddd0c5098fade53db067c09fe00aa1c957674b4765610a8b06a5a189e46433b 1125 | languageName: node 1126 | linkType: hard 1127 | 1128 | "jsbn@npm:1.1.0": 1129 | version: 1.1.0 1130 | resolution: "jsbn@npm:1.1.0" 1131 | checksum: 10c0/4f907fb78d7b712e11dea8c165fe0921f81a657d3443dde75359ed52eb2b5d33ce6773d97985a089f09a65edd80b11cb75c767b57ba47391fee4c969f7215c96 1132 | languageName: node 1133 | linkType: hard 1134 | 1135 | "load-json-file@npm:^7.0.0": 1136 | version: 7.0.1 1137 | resolution: "load-json-file@npm:7.0.1" 1138 | checksum: 10c0/7117459608a0b6329c7f78e6e1f541b3162dd901c29dd5af721fec8b270177d2e3d7999c971f344fff04daac368d052732e2c7146014bc84d15e0b636975e19a 1139 | languageName: node 1140 | linkType: hard 1141 | 1142 | "locate-path@npm:^7.1.0": 1143 | version: 7.2.0 1144 | resolution: "locate-path@npm:7.2.0" 1145 | dependencies: 1146 | p-locate: "npm:^6.0.0" 1147 | checksum: 10c0/139e8a7fe11cfbd7f20db03923cacfa5db9e14fa14887ea121345597472b4a63c1a42a8a5187defeeff6acf98fd568da7382aa39682d38f0af27433953a97751 1148 | languageName: node 1149 | linkType: hard 1150 | 1151 | "lodash@npm:^4.17.15": 1152 | version: 4.17.21 1153 | resolution: "lodash@npm:4.17.21" 1154 | checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c 1155 | languageName: node 1156 | linkType: hard 1157 | 1158 | "lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": 1159 | version: 10.2.2 1160 | resolution: "lru-cache@npm:10.2.2" 1161 | checksum: 10c0/402d31094335851220d0b00985084288136136992979d0e015f0f1697e15d1c86052d7d53ae86b614e5b058425606efffc6969a31a091085d7a2b80a8a1e26d6 1162 | languageName: node 1163 | linkType: hard 1164 | 1165 | "lru-cache@npm:^6.0.0": 1166 | version: 6.0.0 1167 | resolution: "lru-cache@npm:6.0.0" 1168 | dependencies: 1169 | yallist: "npm:^4.0.0" 1170 | checksum: 10c0/cb53e582785c48187d7a188d3379c181b5ca2a9c78d2bce3e7dee36f32761d1c42983da3fe12b55cb74e1779fa94cdc2e5367c028a9b35317184ede0c07a30a9 1171 | languageName: node 1172 | linkType: hard 1173 | 1174 | "make-fetch-happen@npm:^13.0.0": 1175 | version: 13.0.1 1176 | resolution: "make-fetch-happen@npm:13.0.1" 1177 | dependencies: 1178 | "@npmcli/agent": "npm:^2.0.0" 1179 | cacache: "npm:^18.0.0" 1180 | http-cache-semantics: "npm:^4.1.1" 1181 | is-lambda: "npm:^1.0.1" 1182 | minipass: "npm:^7.0.2" 1183 | minipass-fetch: "npm:^3.0.0" 1184 | minipass-flush: "npm:^1.0.5" 1185 | minipass-pipeline: "npm:^1.2.4" 1186 | negotiator: "npm:^0.6.3" 1187 | proc-log: "npm:^4.2.0" 1188 | promise-retry: "npm:^2.0.1" 1189 | ssri: "npm:^10.0.0" 1190 | checksum: 10c0/df5f4dbb6d98153b751bccf4dc4cc500de85a96a9331db9805596c46aa9f99d9555983954e6c1266d9f981ae37a9e4647f42b9a4bb5466f867f4012e582c9e7e 1191 | languageName: node 1192 | linkType: hard 1193 | 1194 | "map-age-cleaner@npm:^0.1.3": 1195 | version: 0.1.3 1196 | resolution: "map-age-cleaner@npm:0.1.3" 1197 | dependencies: 1198 | p-defer: "npm:^1.0.0" 1199 | checksum: 10c0/7495236c7b0950956c144fd8b4bc6399d4e78072a8840a4232fe1c4faccbb5eb5d842e5c0a56a60afc36d723f315c1c672325ca03c1b328650f7fcc478f385fd 1200 | languageName: node 1201 | linkType: hard 1202 | 1203 | "matcher@npm:^5.0.0": 1204 | version: 5.0.0 1205 | resolution: "matcher@npm:5.0.0" 1206 | dependencies: 1207 | escape-string-regexp: "npm:^5.0.0" 1208 | checksum: 10c0/eda5471fc9d5b7264d63c81727824adc3585ddb5cfdc5fce5a9b7c86f946ff181610735d330b1c37a84811df872d1290bf4e9401d2be2a414204343701144b18 1209 | languageName: node 1210 | linkType: hard 1211 | 1212 | "md5-hex@npm:^3.0.1": 1213 | version: 3.0.1 1214 | resolution: "md5-hex@npm:3.0.1" 1215 | dependencies: 1216 | blueimp-md5: "npm:^2.10.0" 1217 | checksum: 10c0/ee2b4d8da16b527b3a3fe4d7a96720f43afd07b46a82d49421208b5a126235fb75cfb30b80d4029514772c8844273f940bddfbf4155c787f968f3be4060d01e4 1218 | languageName: node 1219 | linkType: hard 1220 | 1221 | "mem@npm:^9.0.2": 1222 | version: 9.0.2 1223 | resolution: "mem@npm:9.0.2" 1224 | dependencies: 1225 | map-age-cleaner: "npm:^0.1.3" 1226 | mimic-fn: "npm:^4.0.0" 1227 | checksum: 10c0/c2c56141399e520d8f0e50186bb7e4b49300b33984dc919682f3f13e53dec0e6608fbd327d5ae99494f45061a3a05a8ee04ccba6dcf795c3c215b5aa906eb41f 1228 | languageName: node 1229 | linkType: hard 1230 | 1231 | "merge2@npm:^1.3.0, merge2@npm:^1.4.1": 1232 | version: 1.4.1 1233 | resolution: "merge2@npm:1.4.1" 1234 | checksum: 10c0/254a8a4605b58f450308fc474c82ac9a094848081bf4c06778200207820e5193726dc563a0d2c16468810516a5c97d9d3ea0ca6585d23c58ccfff2403e8dbbeb 1235 | languageName: node 1236 | linkType: hard 1237 | 1238 | "micromatch@npm:^4.0.4": 1239 | version: 4.0.5 1240 | resolution: "micromatch@npm:4.0.5" 1241 | dependencies: 1242 | braces: "npm:^3.0.2" 1243 | picomatch: "npm:^2.3.1" 1244 | checksum: 10c0/3d6505b20f9fa804af5d8c596cb1c5e475b9b0cd05f652c5b56141cf941bd72adaeb7a436fda344235cef93a7f29b7472efc779fcdb83b478eab0867b95cdeff 1245 | languageName: node 1246 | linkType: hard 1247 | 1248 | "mimic-fn@npm:^4.0.0": 1249 | version: 4.0.0 1250 | resolution: "mimic-fn@npm:4.0.0" 1251 | checksum: 10c0/de9cc32be9996fd941e512248338e43407f63f6d497abe8441fa33447d922e927de54d4cc3c1a3c6d652857acd770389d5a3823f311a744132760ce2be15ccbf 1252 | languageName: node 1253 | linkType: hard 1254 | 1255 | "minimatch@npm:^3.1.1": 1256 | version: 3.1.2 1257 | resolution: "minimatch@npm:3.1.2" 1258 | dependencies: 1259 | brace-expansion: "npm:^1.1.7" 1260 | checksum: 10c0/0262810a8fc2e72cca45d6fd86bd349eee435eb95ac6aa45c9ea2180e7ee875ef44c32b55b5973ceabe95ea12682f6e3725cbb63d7a2d1da3ae1163c8b210311 1261 | languageName: node 1262 | linkType: hard 1263 | 1264 | "minimatch@npm:^9.0.4": 1265 | version: 9.0.4 1266 | resolution: "minimatch@npm:9.0.4" 1267 | dependencies: 1268 | brace-expansion: "npm:^2.0.1" 1269 | checksum: 10c0/2c16f21f50e64922864e560ff97c587d15fd491f65d92a677a344e970fe62aafdbeafe648965fa96d33c061b4d0eabfe0213466203dd793367e7f28658cf6414 1270 | languageName: node 1271 | linkType: hard 1272 | 1273 | "minipass-collect@npm:^2.0.1": 1274 | version: 2.0.1 1275 | resolution: "minipass-collect@npm:2.0.1" 1276 | dependencies: 1277 | minipass: "npm:^7.0.3" 1278 | checksum: 10c0/5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e 1279 | languageName: node 1280 | linkType: hard 1281 | 1282 | "minipass-fetch@npm:^3.0.0": 1283 | version: 3.0.5 1284 | resolution: "minipass-fetch@npm:3.0.5" 1285 | dependencies: 1286 | encoding: "npm:^0.1.13" 1287 | minipass: "npm:^7.0.3" 1288 | minipass-sized: "npm:^1.0.3" 1289 | minizlib: "npm:^2.1.2" 1290 | dependenciesMeta: 1291 | encoding: 1292 | optional: true 1293 | checksum: 10c0/9d702d57f556274286fdd97e406fc38a2f5c8d15e158b498d7393b1105974b21249289ec571fa2b51e038a4872bfc82710111cf75fae98c662f3d6f95e72152b 1294 | languageName: node 1295 | linkType: hard 1296 | 1297 | "minipass-flush@npm:^1.0.5": 1298 | version: 1.0.5 1299 | resolution: "minipass-flush@npm:1.0.5" 1300 | dependencies: 1301 | minipass: "npm:^3.0.0" 1302 | checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd 1303 | languageName: node 1304 | linkType: hard 1305 | 1306 | "minipass-pipeline@npm:^1.2.4": 1307 | version: 1.2.4 1308 | resolution: "minipass-pipeline@npm:1.2.4" 1309 | dependencies: 1310 | minipass: "npm:^3.0.0" 1311 | checksum: 10c0/cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2 1312 | languageName: node 1313 | linkType: hard 1314 | 1315 | "minipass-sized@npm:^1.0.3": 1316 | version: 1.0.3 1317 | resolution: "minipass-sized@npm:1.0.3" 1318 | dependencies: 1319 | minipass: "npm:^3.0.0" 1320 | checksum: 10c0/298f124753efdc745cfe0f2bdfdd81ba25b9f4e753ca4a2066eb17c821f25d48acea607dfc997633ee5bf7b6dfffb4eee4f2051eb168663f0b99fad2fa4829cb 1321 | languageName: node 1322 | linkType: hard 1323 | 1324 | "minipass@npm:^3.0.0": 1325 | version: 3.3.6 1326 | resolution: "minipass@npm:3.3.6" 1327 | dependencies: 1328 | yallist: "npm:^4.0.0" 1329 | checksum: 10c0/a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c 1330 | languageName: node 1331 | linkType: hard 1332 | 1333 | "minipass@npm:^5.0.0": 1334 | version: 5.0.0 1335 | resolution: "minipass@npm:5.0.0" 1336 | checksum: 10c0/a91d8043f691796a8ac88df039da19933ef0f633e3d7f0d35dcd5373af49131cf2399bfc355f41515dc495e3990369c3858cd319e5c2722b4753c90bf3152462 1337 | languageName: node 1338 | linkType: hard 1339 | 1340 | "minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.1.2": 1341 | version: 7.1.2 1342 | resolution: "minipass@npm:7.1.2" 1343 | checksum: 10c0/b0fd20bb9fb56e5fa9a8bfac539e8915ae07430a619e4b86ff71f5fc757ef3924b23b2c4230393af1eda647ed3d75739e4e0acb250a6b1eb277cf7f8fe449557 1344 | languageName: node 1345 | linkType: hard 1346 | 1347 | "minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": 1348 | version: 2.1.2 1349 | resolution: "minizlib@npm:2.1.2" 1350 | dependencies: 1351 | minipass: "npm:^3.0.0" 1352 | yallist: "npm:^4.0.0" 1353 | checksum: 10c0/64fae024e1a7d0346a1102bb670085b17b7f95bf6cfdf5b128772ec8faf9ea211464ea4add406a3a6384a7d87a0cd1a96263692134323477b4fb43659a6cab78 1354 | languageName: node 1355 | linkType: hard 1356 | 1357 | "mkdirp@npm:^1.0.3": 1358 | version: 1.0.4 1359 | resolution: "mkdirp@npm:1.0.4" 1360 | bin: 1361 | mkdirp: bin/cmd.js 1362 | checksum: 10c0/46ea0f3ffa8bc6a5bc0c7081ffc3907777f0ed6516888d40a518c5111f8366d97d2678911ad1a6882bf592fa9de6c784fea32e1687bb94e1f4944170af48a5cf 1363 | languageName: node 1364 | linkType: hard 1365 | 1366 | "ms@npm:2.1.2": 1367 | version: 2.1.2 1368 | resolution: "ms@npm:2.1.2" 1369 | checksum: 10c0/a437714e2f90dbf881b5191d35a6db792efbca5badf112f87b9e1c712aace4b4b9b742dd6537f3edf90fd6f684de897cec230abde57e87883766712ddda297cc 1370 | languageName: node 1371 | linkType: hard 1372 | 1373 | "ms@npm:^2.1.3": 1374 | version: 2.1.3 1375 | resolution: "ms@npm:2.1.3" 1376 | checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 1377 | languageName: node 1378 | linkType: hard 1379 | 1380 | "negotiator@npm:^0.6.3": 1381 | version: 0.6.3 1382 | resolution: "negotiator@npm:0.6.3" 1383 | checksum: 10c0/3ec9fd413e7bf071c937ae60d572bc67155262068ed522cf4b3be5edbe6ddf67d095ec03a3a14ebf8fc8e95f8e1d61be4869db0dbb0de696f6b837358bd43fc2 1384 | languageName: node 1385 | linkType: hard 1386 | 1387 | "node-gyp@npm:latest": 1388 | version: 10.1.0 1389 | resolution: "node-gyp@npm:10.1.0" 1390 | dependencies: 1391 | env-paths: "npm:^2.2.0" 1392 | exponential-backoff: "npm:^3.1.1" 1393 | glob: "npm:^10.3.10" 1394 | graceful-fs: "npm:^4.2.6" 1395 | make-fetch-happen: "npm:^13.0.0" 1396 | nopt: "npm:^7.0.0" 1397 | proc-log: "npm:^3.0.0" 1398 | semver: "npm:^7.3.5" 1399 | tar: "npm:^6.1.2" 1400 | which: "npm:^4.0.0" 1401 | bin: 1402 | node-gyp: bin/node-gyp.js 1403 | checksum: 10c0/9cc821111ca244a01fb7f054db7523ab0a0cd837f665267eb962eb87695d71fb1e681f9e21464cc2fd7c05530dc4c81b810bca1a88f7d7186909b74477491a3c 1404 | languageName: node 1405 | linkType: hard 1406 | 1407 | "nofilter@npm:^3.1.0": 1408 | version: 3.1.0 1409 | resolution: "nofilter@npm:3.1.0" 1410 | checksum: 10c0/92459f3864a067b347032263f0b536223cbfc98153913b5dce350cb39c8470bc1813366e41993f22c33cc6400c0f392aa324a4b51e24c22040635c1cdb046499 1411 | languageName: node 1412 | linkType: hard 1413 | 1414 | "nopt@npm:^7.0.0": 1415 | version: 7.2.1 1416 | resolution: "nopt@npm:7.2.1" 1417 | dependencies: 1418 | abbrev: "npm:^2.0.0" 1419 | bin: 1420 | nopt: bin/nopt.js 1421 | checksum: 10c0/a069c7c736767121242037a22a788863accfa932ab285a1eb569eb8cd534b09d17206f68c37f096ae785647435e0c5a5a0a67b42ec743e481a455e5ae6a6df81 1422 | languageName: node 1423 | linkType: hard 1424 | 1425 | "normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": 1426 | version: 3.0.0 1427 | resolution: "normalize-path@npm:3.0.0" 1428 | checksum: 10c0/e008c8142bcc335b5e38cf0d63cfd39d6cf2d97480af9abdbe9a439221fd4d749763bab492a8ee708ce7a194bb00c9da6d0a115018672310850489137b3da046 1429 | languageName: node 1430 | linkType: hard 1431 | 1432 | "once@npm:^1.3.0": 1433 | version: 1.4.0 1434 | resolution: "once@npm:1.4.0" 1435 | dependencies: 1436 | wrappy: "npm:1" 1437 | checksum: 10c0/5d48aca287dfefabd756621c5dfce5c91a549a93e9fdb7b8246bc4c4790aa2ec17b34a260530474635147aeb631a2dcc8b32c613df0675f96041cbb8244517d0 1438 | languageName: node 1439 | linkType: hard 1440 | 1441 | "p-defer@npm:^1.0.0": 1442 | version: 1.0.0 1443 | resolution: "p-defer@npm:1.0.0" 1444 | checksum: 10c0/ed603c3790e74b061ac2cb07eb6e65802cf58dce0fbee646c113a7b71edb711101329ad38f99e462bd2e343a74f6e9366b496a35f1d766c187084d3109900487 1445 | languageName: node 1446 | linkType: hard 1447 | 1448 | "p-event@npm:^5.0.1": 1449 | version: 5.0.1 1450 | resolution: "p-event@npm:5.0.1" 1451 | dependencies: 1452 | p-timeout: "npm:^5.0.2" 1453 | checksum: 10c0/2317171489537f316661fa863f3bb711b2ceb89182937238422cec10223cbb958c432d6c26a238446a622d788187bdd295b1d8ecedbe2e467e045930d60202b0 1454 | languageName: node 1455 | linkType: hard 1456 | 1457 | "p-limit@npm:^4.0.0": 1458 | version: 4.0.0 1459 | resolution: "p-limit@npm:4.0.0" 1460 | dependencies: 1461 | yocto-queue: "npm:^1.0.0" 1462 | checksum: 10c0/a56af34a77f8df2ff61ddfb29431044557fcbcb7642d5a3233143ebba805fc7306ac1d448de724352861cb99de934bc9ab74f0d16fe6a5460bdbdf938de875ad 1463 | languageName: node 1464 | linkType: hard 1465 | 1466 | "p-locate@npm:^6.0.0": 1467 | version: 6.0.0 1468 | resolution: "p-locate@npm:6.0.0" 1469 | dependencies: 1470 | p-limit: "npm:^4.0.0" 1471 | checksum: 10c0/d72fa2f41adce59c198270aa4d3c832536c87a1806e0f69dffb7c1a7ca998fb053915ca833d90f166a8c082d3859eabfed95f01698a3214c20df6bb8de046312 1472 | languageName: node 1473 | linkType: hard 1474 | 1475 | "p-map@npm:^4.0.0": 1476 | version: 4.0.0 1477 | resolution: "p-map@npm:4.0.0" 1478 | dependencies: 1479 | aggregate-error: "npm:^3.0.0" 1480 | checksum: 10c0/592c05bd6262c466ce269ff172bb8de7c6975afca9b50c975135b974e9bdaafbfe80e61aaaf5be6d1200ba08b30ead04b88cfa7e25ff1e3b93ab28c9f62a2c75 1481 | languageName: node 1482 | linkType: hard 1483 | 1484 | "p-map@npm:^5.5.0": 1485 | version: 5.5.0 1486 | resolution: "p-map@npm:5.5.0" 1487 | dependencies: 1488 | aggregate-error: "npm:^4.0.0" 1489 | checksum: 10c0/410bce846b1e3db6bb2ccab6248372ecf4e635fc2b31331c8f56478e73fec9e146e8b4547585e635703160a3d252a6a65b8f855834aebc2c3408eb5789630cc4 1490 | languageName: node 1491 | linkType: hard 1492 | 1493 | "p-timeout@npm:^5.0.2": 1494 | version: 5.1.0 1495 | resolution: "p-timeout@npm:5.1.0" 1496 | checksum: 10c0/1b026cf9d5878c64bec4341ca9cda8ec6b8b3aea8a57885ca0fe2b35753a20d767fb6f9d3aa41e1252f42bc95432c05ea33b6b18f271fb10bfb0789591850a41 1497 | languageName: node 1498 | linkType: hard 1499 | 1500 | "parse-ms@npm:^3.0.0": 1501 | version: 3.0.0 1502 | resolution: "parse-ms@npm:3.0.0" 1503 | checksum: 10c0/056b4a32a9d3749f3f4cfffefb45c45540491deaa8e1d8ad43c2ddde7ba04edd076bd1b298f521238bb5fb084a9b2c4a2ebb78aefa651afbc4c2b0af4232fc54 1504 | languageName: node 1505 | linkType: hard 1506 | 1507 | "path-exists@npm:^5.0.0": 1508 | version: 5.0.0 1509 | resolution: "path-exists@npm:5.0.0" 1510 | checksum: 10c0/b170f3060b31604cde93eefdb7392b89d832dfbc1bed717c9718cbe0f230c1669b7e75f87e19901da2250b84d092989a0f9e44d2ef41deb09aa3ad28e691a40a 1511 | languageName: node 1512 | linkType: hard 1513 | 1514 | "path-is-absolute@npm:^1.0.0": 1515 | version: 1.0.1 1516 | resolution: "path-is-absolute@npm:1.0.1" 1517 | checksum: 10c0/127da03c82172a2a50099cddbf02510c1791fc2cc5f7713ddb613a56838db1e8168b121a920079d052e0936c23005562059756d653b7c544c53185efe53be078 1518 | languageName: node 1519 | linkType: hard 1520 | 1521 | "path-key@npm:^3.1.0": 1522 | version: 3.1.1 1523 | resolution: "path-key@npm:3.1.1" 1524 | checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c 1525 | languageName: node 1526 | linkType: hard 1527 | 1528 | "path-scurry@npm:^1.11.1": 1529 | version: 1.11.1 1530 | resolution: "path-scurry@npm:1.11.1" 1531 | dependencies: 1532 | lru-cache: "npm:^10.2.0" 1533 | minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" 1534 | checksum: 10c0/32a13711a2a505616ae1cc1b5076801e453e7aae6ac40ab55b388bb91b9d0547a52f5aaceff710ea400205f18691120d4431e520afbe4266b836fadede15872d 1535 | languageName: node 1536 | linkType: hard 1537 | 1538 | "path-type@npm:^4.0.0": 1539 | version: 4.0.0 1540 | resolution: "path-type@npm:4.0.0" 1541 | checksum: 10c0/666f6973f332f27581371efaf303fd6c272cc43c2057b37aa99e3643158c7e4b2626549555d88626e99ea9e046f82f32e41bbde5f1508547e9a11b149b52387c 1542 | languageName: node 1543 | linkType: hard 1544 | 1545 | "picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1": 1546 | version: 2.3.1 1547 | resolution: "picomatch@npm:2.3.1" 1548 | checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be 1549 | languageName: node 1550 | linkType: hard 1551 | 1552 | "pkg-conf@npm:^4.0.0": 1553 | version: 4.0.0 1554 | resolution: "pkg-conf@npm:4.0.0" 1555 | dependencies: 1556 | find-up: "npm:^6.0.0" 1557 | load-json-file: "npm:^7.0.0" 1558 | checksum: 10c0/27d027609f27228edcde121f6f707b4ba1f5488e95e98f2e58652ae4e99792081bd1de67d591f4a0f05b02c0b66d745591d49f82041cbc8d41e2238ef5d73eb4 1559 | languageName: node 1560 | linkType: hard 1561 | 1562 | "plur@npm:^5.1.0": 1563 | version: 5.1.0 1564 | resolution: "plur@npm:5.1.0" 1565 | dependencies: 1566 | irregular-plurals: "npm:^3.3.0" 1567 | checksum: 10c0/26bb622b8545fcfd47bbf56fbcca66c08693708a232e403fa3589e00003c56c14231ac57c7588ca5db83ef4be1f61383402c4ea954000768f779f8aef6eb6da8 1568 | languageName: node 1569 | linkType: hard 1570 | 1571 | "prettier@npm:2.6.2": 1572 | version: 2.6.2 1573 | resolution: "prettier@npm:2.6.2" 1574 | bin: 1575 | prettier: bin-prettier.js 1576 | checksum: 10c0/4a2717d0aca6b5b5c24570854fdf119c4184ff7422a1aa283364bdfe5394ecff4f6ac375663840dc2680ea09b1d5370329b83ac06579588db6f8bc71620e1267 1577 | languageName: node 1578 | linkType: hard 1579 | 1580 | "pretty-ms@npm:^8.0.0": 1581 | version: 8.0.0 1582 | resolution: "pretty-ms@npm:8.0.0" 1583 | dependencies: 1584 | parse-ms: "npm:^3.0.0" 1585 | checksum: 10c0/e960d633ecca45445cf5c6dffc0f5e4bef6744c92449ab0e8c6c704800675ab71e181c5e02ece5265e02137a33e313d3f3e355fbf8ea30b4b5b23de423329f8d 1586 | languageName: node 1587 | linkType: hard 1588 | 1589 | "proc-log@npm:^3.0.0": 1590 | version: 3.0.0 1591 | resolution: "proc-log@npm:3.0.0" 1592 | checksum: 10c0/f66430e4ff947dbb996058f6fd22de2c66612ae1a89b097744e17fb18a4e8e7a86db99eda52ccf15e53f00b63f4ec0b0911581ff2aac0355b625c8eac509b0dc 1593 | languageName: node 1594 | linkType: hard 1595 | 1596 | "proc-log@npm:^4.2.0": 1597 | version: 4.2.0 1598 | resolution: "proc-log@npm:4.2.0" 1599 | checksum: 10c0/17db4757c2a5c44c1e545170e6c70a26f7de58feb985091fb1763f5081cab3d01b181fb2dd240c9f4a4255a1d9227d163d5771b7e69c9e49a561692db865efb9 1600 | languageName: node 1601 | linkType: hard 1602 | 1603 | "promise-retry@npm:^2.0.1": 1604 | version: 2.0.1 1605 | resolution: "promise-retry@npm:2.0.1" 1606 | dependencies: 1607 | err-code: "npm:^2.0.2" 1608 | retry: "npm:^0.12.0" 1609 | checksum: 10c0/9c7045a1a2928094b5b9b15336dcd2a7b1c052f674550df63cc3f36cd44028e5080448175b6f6ca32b642de81150f5e7b1a98b728f15cb069f2dd60ac2616b96 1610 | languageName: node 1611 | linkType: hard 1612 | 1613 | "queue-microtask@npm:^1.2.2": 1614 | version: 1.2.3 1615 | resolution: "queue-microtask@npm:1.2.3" 1616 | checksum: 10c0/900a93d3cdae3acd7d16f642c29a642aea32c2026446151f0778c62ac089d4b8e6c986811076e1ae180a694cedf077d453a11b58ff0a865629a4f82ab558e102 1617 | languageName: node 1618 | linkType: hard 1619 | 1620 | "readdirp@npm:~3.6.0": 1621 | version: 3.6.0 1622 | resolution: "readdirp@npm:3.6.0" 1623 | dependencies: 1624 | picomatch: "npm:^2.2.1" 1625 | checksum: 10c0/6fa848cf63d1b82ab4e985f4cf72bd55b7dcfd8e0a376905804e48c3634b7e749170940ba77b32804d5fe93b3cc521aa95a8d7e7d725f830da6d93f3669ce66b 1626 | languageName: node 1627 | linkType: hard 1628 | 1629 | "require-directory@npm:^2.1.1": 1630 | version: 2.1.1 1631 | resolution: "require-directory@npm:2.1.1" 1632 | checksum: 10c0/83aa76a7bc1531f68d92c75a2ca2f54f1b01463cb566cf3fbc787d0de8be30c9dbc211d1d46be3497dac5785fe296f2dd11d531945ac29730643357978966e99 1633 | languageName: node 1634 | linkType: hard 1635 | 1636 | "resolve-cwd@npm:^3.0.0": 1637 | version: 3.0.0 1638 | resolution: "resolve-cwd@npm:3.0.0" 1639 | dependencies: 1640 | resolve-from: "npm:^5.0.0" 1641 | checksum: 10c0/e608a3ebd15356264653c32d7ecbc8fd702f94c6703ea4ac2fb81d9c359180cba0ae2e6b71faa446631ed6145454d5a56b227efc33a2d40638ac13f8beb20ee4 1642 | languageName: node 1643 | linkType: hard 1644 | 1645 | "resolve-from@npm:^5.0.0": 1646 | version: 5.0.0 1647 | resolution: "resolve-from@npm:5.0.0" 1648 | checksum: 10c0/b21cb7f1fb746de8107b9febab60095187781137fd803e6a59a76d421444b1531b641bba5857f5dc011974d8a5c635d61cec49e6bd3b7fc20e01f0fafc4efbf2 1649 | languageName: node 1650 | linkType: hard 1651 | 1652 | "retry@npm:^0.12.0": 1653 | version: 0.12.0 1654 | resolution: "retry@npm:0.12.0" 1655 | checksum: 10c0/59933e8501727ba13ad73ef4a04d5280b3717fd650408460c987392efe9d7be2040778ed8ebe933c5cbd63da3dcc37919c141ef8af0a54a6e4fca5a2af177bfe 1656 | languageName: node 1657 | linkType: hard 1658 | 1659 | "reusify@npm:^1.0.4": 1660 | version: 1.0.4 1661 | resolution: "reusify@npm:1.0.4" 1662 | checksum: 10c0/c19ef26e4e188f408922c46f7ff480d38e8dfc55d448310dfb518736b23ed2c4f547fb64a6ed5bdba92cd7e7ddc889d36ff78f794816d5e71498d645ef476107 1663 | languageName: node 1664 | linkType: hard 1665 | 1666 | "rimraf@npm:^3.0.2": 1667 | version: 3.0.2 1668 | resolution: "rimraf@npm:3.0.2" 1669 | dependencies: 1670 | glob: "npm:^7.1.3" 1671 | bin: 1672 | rimraf: bin.js 1673 | checksum: 10c0/9cb7757acb489bd83757ba1a274ab545eafd75598a9d817e0c3f8b164238dd90eba50d6b848bd4dcc5f3040912e882dc7ba71653e35af660d77b25c381d402e8 1674 | languageName: node 1675 | linkType: hard 1676 | 1677 | "run-parallel@npm:^1.1.9": 1678 | version: 1.2.0 1679 | resolution: "run-parallel@npm:1.2.0" 1680 | dependencies: 1681 | queue-microtask: "npm:^1.2.2" 1682 | checksum: 10c0/200b5ab25b5b8b7113f9901bfe3afc347e19bb7475b267d55ad0eb86a62a46d77510cb0f232507c9e5d497ebda569a08a9867d0d14f57a82ad5564d991588b39 1683 | languageName: node 1684 | linkType: hard 1685 | 1686 | "safer-buffer@npm:>= 2.1.2 < 3.0.0": 1687 | version: 2.1.2 1688 | resolution: "safer-buffer@npm:2.1.2" 1689 | checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 1690 | languageName: node 1691 | linkType: hard 1692 | 1693 | "semver@npm:^7.3.2": 1694 | version: 7.3.8 1695 | resolution: "semver@npm:7.3.8" 1696 | dependencies: 1697 | lru-cache: "npm:^6.0.0" 1698 | bin: 1699 | semver: bin/semver.js 1700 | checksum: 10c0/7e581d679530db31757301c2117721577a2bb36a301a443aac833b8efad372cda58e7f2a464fe4412ae1041cc1f63a6c1fe0ced8c57ce5aca1e0b57bb0d627b9 1701 | languageName: node 1702 | linkType: hard 1703 | 1704 | "semver@npm:^7.3.5": 1705 | version: 7.6.2 1706 | resolution: "semver@npm:7.6.2" 1707 | bin: 1708 | semver: bin/semver.js 1709 | checksum: 10c0/97d3441e97ace8be4b1976433d1c32658f6afaff09f143e52c593bae7eef33de19e3e369c88bd985ce1042c6f441c80c6803078d1de2a9988080b66684cbb30c 1710 | languageName: node 1711 | linkType: hard 1712 | 1713 | "serialize-error@npm:^7.0.1": 1714 | version: 7.0.1 1715 | resolution: "serialize-error@npm:7.0.1" 1716 | dependencies: 1717 | type-fest: "npm:^0.13.1" 1718 | checksum: 10c0/7982937d578cd901276c8ab3e2c6ed8a4c174137730f1fb0402d005af209a0e84d04acc874e317c936724c7b5b26c7a96ff7e4b8d11a469f4924a4b0ea814c05 1719 | languageName: node 1720 | linkType: hard 1721 | 1722 | "shebang-command@npm:^2.0.0": 1723 | version: 2.0.0 1724 | resolution: "shebang-command@npm:2.0.0" 1725 | dependencies: 1726 | shebang-regex: "npm:^3.0.0" 1727 | checksum: 10c0/a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e 1728 | languageName: node 1729 | linkType: hard 1730 | 1731 | "shebang-regex@npm:^3.0.0": 1732 | version: 3.0.0 1733 | resolution: "shebang-regex@npm:3.0.0" 1734 | checksum: 10c0/1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690 1735 | languageName: node 1736 | linkType: hard 1737 | 1738 | "signal-exit@npm:^3.0.7": 1739 | version: 3.0.7 1740 | resolution: "signal-exit@npm:3.0.7" 1741 | checksum: 10c0/25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912 1742 | languageName: node 1743 | linkType: hard 1744 | 1745 | "signal-exit@npm:^4.0.1": 1746 | version: 4.1.0 1747 | resolution: "signal-exit@npm:4.1.0" 1748 | checksum: 10c0/41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83 1749 | languageName: node 1750 | linkType: hard 1751 | 1752 | "slash@npm:^3.0.0": 1753 | version: 3.0.0 1754 | resolution: "slash@npm:3.0.0" 1755 | checksum: 10c0/e18488c6a42bdfd4ac5be85b2ced3ccd0224773baae6ad42cfbb9ec74fc07f9fa8396bd35ee638084ead7a2a0818eb5e7151111544d4731ce843019dab4be47b 1756 | languageName: node 1757 | linkType: hard 1758 | 1759 | "slash@npm:^4.0.0": 1760 | version: 4.0.0 1761 | resolution: "slash@npm:4.0.0" 1762 | checksum: 10c0/b522ca75d80d107fd30d29df0549a7b2537c83c4c4ecd12cd7d4ea6c8aaca2ab17ada002e7a1d78a9d736a0261509f26ea5b489082ee443a3a810586ef8eff18 1763 | languageName: node 1764 | linkType: hard 1765 | 1766 | "slice-ansi@npm:^5.0.0": 1767 | version: 5.0.0 1768 | resolution: "slice-ansi@npm:5.0.0" 1769 | dependencies: 1770 | ansi-styles: "npm:^6.0.0" 1771 | is-fullwidth-code-point: "npm:^4.0.0" 1772 | checksum: 10c0/2d4d40b2a9d5cf4e8caae3f698fe24ae31a4d778701724f578e984dcb485ec8c49f0c04dab59c401821e80fcdfe89cace9c66693b0244e40ec485d72e543914f 1773 | languageName: node 1774 | linkType: hard 1775 | 1776 | "smart-buffer@npm:^4.2.0": 1777 | version: 4.2.0 1778 | resolution: "smart-buffer@npm:4.2.0" 1779 | checksum: 10c0/a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539 1780 | languageName: node 1781 | linkType: hard 1782 | 1783 | "socks-proxy-agent@npm:^8.0.3": 1784 | version: 8.0.3 1785 | resolution: "socks-proxy-agent@npm:8.0.3" 1786 | dependencies: 1787 | agent-base: "npm:^7.1.1" 1788 | debug: "npm:^4.3.4" 1789 | socks: "npm:^2.7.1" 1790 | checksum: 10c0/4950529affd8ccd6951575e21c1b7be8531b24d924aa4df3ee32df506af34b618c4e50d261f4cc603f1bfd8d426915b7d629966c8ce45b05fb5ad8c8b9a6459d 1791 | languageName: node 1792 | linkType: hard 1793 | 1794 | "socks@npm:^2.7.1": 1795 | version: 2.8.3 1796 | resolution: "socks@npm:2.8.3" 1797 | dependencies: 1798 | ip-address: "npm:^9.0.5" 1799 | smart-buffer: "npm:^4.2.0" 1800 | checksum: 10c0/d54a52bf9325165770b674a67241143a3d8b4e4c8884560c4e0e078aace2a728dffc7f70150660f51b85797c4e1a3b82f9b7aa25e0a0ceae1a243365da5c51a7 1801 | languageName: node 1802 | linkType: hard 1803 | 1804 | "sprintf-js@npm:^1.1.3": 1805 | version: 1.1.3 1806 | resolution: "sprintf-js@npm:1.1.3" 1807 | checksum: 10c0/09270dc4f30d479e666aee820eacd9e464215cdff53848b443964202bf4051490538e5dd1b42e1a65cf7296916ca17640aebf63dae9812749c7542ee5f288dec 1808 | languageName: node 1809 | linkType: hard 1810 | 1811 | "sprintf-js@npm:~1.0.2": 1812 | version: 1.0.3 1813 | resolution: "sprintf-js@npm:1.0.3" 1814 | checksum: 10c0/ecadcfe4c771890140da5023d43e190b7566d9cf8b2d238600f31bec0fc653f328da4450eb04bd59a431771a8e9cc0e118f0aa3974b683a4981b4e07abc2a5bb 1815 | languageName: node 1816 | linkType: hard 1817 | 1818 | "ssri@npm:^10.0.0": 1819 | version: 10.0.6 1820 | resolution: "ssri@npm:10.0.6" 1821 | dependencies: 1822 | minipass: "npm:^7.0.3" 1823 | checksum: 10c0/e5a1e23a4057a86a97971465418f22ea89bd439ac36ade88812dd920e4e61873e8abd6a9b72a03a67ef50faa00a2daf1ab745c5a15b46d03e0544a0296354227 1824 | languageName: node 1825 | linkType: hard 1826 | 1827 | "stack-utils@npm:^2.0.6": 1828 | version: 2.0.6 1829 | resolution: "stack-utils@npm:2.0.6" 1830 | dependencies: 1831 | escape-string-regexp: "npm:^2.0.0" 1832 | checksum: 10c0/651c9f87667e077584bbe848acaecc6049bc71979f1e9a46c7b920cad4431c388df0f51b8ad7cfd6eed3db97a2878d0fc8b3122979439ea8bac29c61c95eec8a 1833 | languageName: node 1834 | linkType: hard 1835 | 1836 | "string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": 1837 | version: 4.2.3 1838 | resolution: "string-width@npm:4.2.3" 1839 | dependencies: 1840 | emoji-regex: "npm:^8.0.0" 1841 | is-fullwidth-code-point: "npm:^3.0.0" 1842 | strip-ansi: "npm:^6.0.1" 1843 | checksum: 10c0/1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b 1844 | languageName: node 1845 | linkType: hard 1846 | 1847 | "string-width@npm:^5.0.0, string-width@npm:^5.0.1, string-width@npm:^5.1.2": 1848 | version: 5.1.2 1849 | resolution: "string-width@npm:5.1.2" 1850 | dependencies: 1851 | eastasianwidth: "npm:^0.2.0" 1852 | emoji-regex: "npm:^9.2.2" 1853 | strip-ansi: "npm:^7.0.1" 1854 | checksum: 10c0/ab9c4264443d35b8b923cbdd513a089a60de339216d3b0ed3be3ba57d6880e1a192b70ae17225f764d7adbf5994e9bb8df253a944736c15a0240eff553c678ca 1855 | languageName: node 1856 | linkType: hard 1857 | 1858 | "strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": 1859 | version: 6.0.1 1860 | resolution: "strip-ansi@npm:6.0.1" 1861 | dependencies: 1862 | ansi-regex: "npm:^5.0.1" 1863 | checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952 1864 | languageName: node 1865 | linkType: hard 1866 | 1867 | "strip-ansi@npm:^7.0.1": 1868 | version: 7.0.1 1869 | resolution: "strip-ansi@npm:7.0.1" 1870 | dependencies: 1871 | ansi-regex: "npm:^6.0.1" 1872 | checksum: 10c0/a94805f54caefae6cf4870ee6acfe50cff69d90a37994bf02c096042d9939ee211e1568f34b9fa5efa03c7d7fea79cb3ac8a4e517ceb848284ae300da06ca7e9 1873 | languageName: node 1874 | linkType: hard 1875 | 1876 | "supertap@npm:^3.0.1": 1877 | version: 3.0.1 1878 | resolution: "supertap@npm:3.0.1" 1879 | dependencies: 1880 | indent-string: "npm:^5.0.0" 1881 | js-yaml: "npm:^3.14.1" 1882 | serialize-error: "npm:^7.0.1" 1883 | strip-ansi: "npm:^7.0.1" 1884 | checksum: 10c0/8164674f2e280cab875f0fef5bb36c15553c13e29697ff92f4e0d6bc62149f0303a89eee47535413ed145ea72e14a24d065bab233059d48a499ec5ebb4566b0f 1885 | languageName: node 1886 | linkType: hard 1887 | 1888 | "tar@npm:^6.1.11, tar@npm:^6.1.2": 1889 | version: 6.2.1 1890 | resolution: "tar@npm:6.2.1" 1891 | dependencies: 1892 | chownr: "npm:^2.0.0" 1893 | fs-minipass: "npm:^2.0.0" 1894 | minipass: "npm:^5.0.0" 1895 | minizlib: "npm:^2.1.1" 1896 | mkdirp: "npm:^1.0.3" 1897 | yallist: "npm:^4.0.0" 1898 | checksum: 10c0/a5eca3eb50bc11552d453488344e6507156b9193efd7635e98e867fab275d527af53d8866e2370cd09dfe74378a18111622ace35af6a608e5223a7d27fe99537 1899 | languageName: node 1900 | linkType: hard 1901 | 1902 | "temp-dir@npm:^3.0.0": 1903 | version: 3.0.0 1904 | resolution: "temp-dir@npm:3.0.0" 1905 | checksum: 10c0/a86978a400984cd5f315b77ebf3fe53bb58c61f192278cafcb1f3fb32d584a21dc8e08b93171d7874b7cc972234d3455c467306cc1bfc4524b622e5ad3bfd671 1906 | languageName: node 1907 | linkType: hard 1908 | 1909 | "time-zone@npm:^1.0.0": 1910 | version: 1.0.0 1911 | resolution: "time-zone@npm:1.0.0" 1912 | checksum: 10c0/d00ebd885039109011b6e2423ebbf225160927333c2ade6d833e9cc4676db20759f1f3855fafde00d1bd668c243a6aa68938ce71fe58aab0d514e820d59c1d81 1913 | languageName: node 1914 | linkType: hard 1915 | 1916 | "to-regex-range@npm:^5.0.1": 1917 | version: 5.0.1 1918 | resolution: "to-regex-range@npm:5.0.1" 1919 | dependencies: 1920 | is-number: "npm:^7.0.0" 1921 | checksum: 10c0/487988b0a19c654ff3e1961b87f471702e708fa8a8dd02a298ef16da7206692e8552a0250e8b3e8759270f62e9d8314616f6da274734d3b558b1fc7b7724e892 1922 | languageName: node 1923 | linkType: hard 1924 | 1925 | "type-fest@npm:^0.13.1": 1926 | version: 0.13.1 1927 | resolution: "type-fest@npm:0.13.1" 1928 | checksum: 10c0/0c0fa07ae53d4e776cf4dac30d25ad799443e9eef9226f9fddbb69242db86b08584084a99885cfa5a9dfe4c063ebdc9aa7b69da348e735baede8d43f1aeae93b 1929 | languageName: node 1930 | linkType: hard 1931 | 1932 | "unique-filename@npm:^3.0.0": 1933 | version: 3.0.0 1934 | resolution: "unique-filename@npm:3.0.0" 1935 | dependencies: 1936 | unique-slug: "npm:^4.0.0" 1937 | checksum: 10c0/6363e40b2fa758eb5ec5e21b3c7fb83e5da8dcfbd866cc0c199d5534c42f03b9ea9ab069769cc388e1d7ab93b4eeef28ef506ab5f18d910ef29617715101884f 1938 | languageName: node 1939 | linkType: hard 1940 | 1941 | "unique-slug@npm:^4.0.0": 1942 | version: 4.0.0 1943 | resolution: "unique-slug@npm:4.0.0" 1944 | dependencies: 1945 | imurmurhash: "npm:^0.1.4" 1946 | checksum: 10c0/cb811d9d54eb5821b81b18205750be84cb015c20a4a44280794e915f5a0a70223ce39066781a354e872df3572e8155c228f43ff0cce94c7cbf4da2cc7cbdd635 1947 | languageName: node 1948 | linkType: hard 1949 | 1950 | "well-known-symbols@npm:^2.0.0": 1951 | version: 2.0.0 1952 | resolution: "well-known-symbols@npm:2.0.0" 1953 | checksum: 10c0/cb6c12e98877e8952ec28d13ae6f4fdb54ae1cb49b16a728720276dadd76c930e6cb0e174af3a4620054dd2752546f842540122920c6e31410208abd4958ee6b 1954 | languageName: node 1955 | linkType: hard 1956 | 1957 | "which@npm:^2.0.1": 1958 | version: 2.0.2 1959 | resolution: "which@npm:2.0.2" 1960 | dependencies: 1961 | isexe: "npm:^2.0.0" 1962 | bin: 1963 | node-which: ./bin/node-which 1964 | checksum: 10c0/66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f 1965 | languageName: node 1966 | linkType: hard 1967 | 1968 | "which@npm:^4.0.0": 1969 | version: 4.0.0 1970 | resolution: "which@npm:4.0.0" 1971 | dependencies: 1972 | isexe: "npm:^3.1.1" 1973 | bin: 1974 | node-which: bin/which.js 1975 | checksum: 10c0/449fa5c44ed120ccecfe18c433296a4978a7583bf2391c50abce13f76878d2476defde04d0f79db8165bdf432853c1f8389d0485ca6e8ebce3bbcded513d5e6a 1976 | languageName: node 1977 | linkType: hard 1978 | 1979 | "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": 1980 | version: 7.0.0 1981 | resolution: "wrap-ansi@npm:7.0.0" 1982 | dependencies: 1983 | ansi-styles: "npm:^4.0.0" 1984 | string-width: "npm:^4.1.0" 1985 | strip-ansi: "npm:^6.0.0" 1986 | checksum: 10c0/d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da 1987 | languageName: node 1988 | linkType: hard 1989 | 1990 | "wrap-ansi@npm:^8.1.0": 1991 | version: 8.1.0 1992 | resolution: "wrap-ansi@npm:8.1.0" 1993 | dependencies: 1994 | ansi-styles: "npm:^6.1.0" 1995 | string-width: "npm:^5.0.1" 1996 | strip-ansi: "npm:^7.0.1" 1997 | checksum: 10c0/138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60 1998 | languageName: node 1999 | linkType: hard 2000 | 2001 | "wrappy@npm:1": 2002 | version: 1.0.2 2003 | resolution: "wrappy@npm:1.0.2" 2004 | checksum: 10c0/56fece1a4018c6a6c8e28fbc88c87e0fbf4ea8fd64fc6c63b18f4acc4bd13e0ad2515189786dd2c30d3eec9663d70f4ecf699330002f8ccb547e4a18231fc9f0 2005 | languageName: node 2006 | linkType: hard 2007 | 2008 | "write-file-atomic@npm:^5.0.0": 2009 | version: 5.0.0 2010 | resolution: "write-file-atomic@npm:5.0.0" 2011 | dependencies: 2012 | imurmurhash: "npm:^0.1.4" 2013 | signal-exit: "npm:^3.0.7" 2014 | checksum: 10c0/f44c8bc3578c07a68f696f32b57be241ebfd65628dbd15f2b1a943252ad0ed4f0fc05847bb9b0f0fe9cdbdf0943e7012bf7b3fd3d8bb9b0b424f150747e1bf16 2015 | languageName: node 2016 | linkType: hard 2017 | 2018 | "y18n@npm:^5.0.5": 2019 | version: 5.0.8 2020 | resolution: "y18n@npm:5.0.8" 2021 | checksum: 10c0/4df2842c36e468590c3691c894bc9cdbac41f520566e76e24f59401ba7d8b4811eb1e34524d57e54bc6d864bcb66baab7ffd9ca42bf1eda596618f9162b91249 2022 | languageName: node 2023 | linkType: hard 2024 | 2025 | "yallist@npm:^4.0.0": 2026 | version: 4.0.0 2027 | resolution: "yallist@npm:4.0.0" 2028 | checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a 2029 | languageName: node 2030 | linkType: hard 2031 | 2032 | "yargs-parser@npm:^21.1.1": 2033 | version: 21.1.1 2034 | resolution: "yargs-parser@npm:21.1.1" 2035 | checksum: 10c0/f84b5e48169479d2f402239c59f084cfd1c3acc197a05c59b98bab067452e6b3ea46d4dd8ba2985ba7b3d32a343d77df0debd6b343e5dae3da2aab2cdf5886b2 2036 | languageName: node 2037 | linkType: hard 2038 | 2039 | "yargs@npm:^17.6.2": 2040 | version: 17.7.1 2041 | resolution: "yargs@npm:17.7.1" 2042 | dependencies: 2043 | cliui: "npm:^8.0.1" 2044 | escalade: "npm:^3.1.1" 2045 | get-caller-file: "npm:^2.0.5" 2046 | require-directory: "npm:^2.1.1" 2047 | string-width: "npm:^4.2.3" 2048 | y18n: "npm:^5.0.5" 2049 | yargs-parser: "npm:^21.1.1" 2050 | checksum: 10c0/0ed3b7694d94da777f3591f1d786d947ed2e59b897da0a0c30e541109ae087979ac26b4ec39557f5e9c4592f19806447963fb132049b9806a1d416bcdd24d2b4 2051 | languageName: node 2052 | linkType: hard 2053 | 2054 | "yocto-queue@npm:^1.0.0": 2055 | version: 1.0.0 2056 | resolution: "yocto-queue@npm:1.0.0" 2057 | checksum: 10c0/856117aa15cf5103d2a2fb173f0ab4acb12b4b4d0ed3ab249fdbbf612e55d1cadfd27a6110940e24746fb0a78cf640b522cc8bca76f30a3b00b66e90cf82abe0 2058 | languageName: node 2059 | linkType: hard 2060 | --------------------------------------------------------------------------------