diff --git a/.github/workflows/audit.yml b/.github/workflows/audit.yml new file mode 100644 index 000000000..bfbee52ac --- /dev/null +++ b/.github/workflows/audit.yml @@ -0,0 +1,40 @@ +name: Dependency Audit + +on: + pull_request: + workflow_dispatch: + +permissions: + contents: read + pull-requests: write + +jobs: + audit: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + + - name: Install pnpm + uses: pnpm/action-setup@v5 + + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + + - name: Install dependencies + # Frozen lockfile policy is enforced in .npmrc. + run: pnpm install + + - name: Audit pnpm dependencies (fail on moderate+) + uses: JamesRobertWiseman/pnpm-audit@v3 + with: + package_json_path: ./ + github_token: ${{ secrets.GITHUB_TOKEN }} + level: moderate + fails: true + single_comment: true diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 3d4b9e3ae..e0d684f27 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -6,7 +6,7 @@ on: pull_request: jobs: - run-ci: + coverage: runs-on: ubuntu-latest steps: @@ -18,15 +18,14 @@ jobs: with: node-version: 20 - - uses: pnpm/action-setup@v2 - with: - version: 9 + - uses: pnpm/action-setup@v5 - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 - name: Install dependencies - run: pnpm install --frozen-lockfile + # Frozen lockfile policy is enforced in .npmrc. + run: pnpm install - name: Build run: pnpm run build diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 0e6fbc6a6..fb6068984 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -6,7 +6,7 @@ on: pull_request: jobs: - run-ci: + lint: runs-on: ubuntu-latest steps: @@ -18,15 +18,14 @@ jobs: with: node-version: 20 - - uses: pnpm/action-setup@v2 - with: - version: 9 + - uses: pnpm/action-setup@v5 - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 - name: Install Node dependencies - run: pnpm install --frozen-lockfile + # Frozen lockfile policy is enforced in .npmrc. + run: pnpm install - name: Run lint check run: pnpm run lint:check diff --git a/.github/workflows/size.yml b/.github/workflows/size.yml index 0f8d78613..3d7e0e73a 100644 --- a/.github/workflows/size.yml +++ b/.github/workflows/size.yml @@ -6,7 +6,7 @@ on: pull_request: jobs: - run-ci: + size-check: runs-on: ubuntu-latest steps: @@ -18,15 +18,14 @@ jobs: with: node-version: 20 - - uses: pnpm/action-setup@v2 - with: - version: 9 + - uses: pnpm/action-setup@v5 - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 - name: Install dependencies - run: pnpm install --frozen-lockfile + # Frozen lockfile policy is enforced in .npmrc. + run: pnpm install # Build will fail if a contract is over the size limit - name: Contract Size diff --git a/.github/workflows/tests-crosschain.yml b/.github/workflows/tests-crosschain.yml index 04d33028f..2c26e5fe2 100644 --- a/.github/workflows/tests-crosschain.yml +++ b/.github/workflows/tests-crosschain.yml @@ -6,7 +6,7 @@ on: pull_request: jobs: - run-ci: + crosschain-tests: runs-on: ubuntu-latest steps: @@ -18,15 +18,14 @@ jobs: with: node-version: 20 - - uses: pnpm/action-setup@v2 - with: - version: 9 + - uses: pnpm/action-setup@v5 - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 - name: Install dependencies - run: pnpm install --frozen-lockfile + # Frozen lockfile policy is enforced in .npmrc. + run: pnpm install - name: Build run: pnpm run build diff --git a/.github/workflows/tests-fork.yml b/.github/workflows/tests-fork.yml index 00a6f2a1a..2aa2c9ab0 100644 --- a/.github/workflows/tests-fork.yml +++ b/.github/workflows/tests-fork.yml @@ -6,7 +6,7 @@ on: pull_request: jobs: - run-ci: + fork-tests: runs-on: ubuntu-latest steps: @@ -18,15 +18,14 @@ jobs: with: node-version: 20 - - uses: pnpm/action-setup@v2 - with: - version: 9 + - uses: pnpm/action-setup@v5 - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 - name: Install dependencies - run: pnpm install --frozen-lockfile + # Frozen lockfile policy is enforced in .npmrc. + run: pnpm install - name: Build run: pnpm run build diff --git a/.github/workflows/tests-proposals.yml b/.github/workflows/tests-proposals.yml index 3b11d722f..390f674e2 100644 --- a/.github/workflows/tests-proposals.yml +++ b/.github/workflows/tests-proposals.yml @@ -6,7 +6,7 @@ on: pull_request: jobs: - run-ci: + proposal-tests: runs-on: ubuntu-latest steps: @@ -18,15 +18,14 @@ jobs: with: node-version: 20 - - uses: pnpm/action-setup@v2 - with: - version: 9 + - uses: pnpm/action-setup@v5 - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 - name: Install dependencies - run: pnpm install --frozen-lockfile + # Frozen lockfile policy is enforced in .npmrc. + run: pnpm install - name: Build run: pnpm run build diff --git a/.github/workflows/tests-unit.yml b/.github/workflows/tests-unit.yml index caf440f72..a852fbecb 100644 --- a/.github/workflows/tests-unit.yml +++ b/.github/workflows/tests-unit.yml @@ -6,7 +6,7 @@ on: pull_request: jobs: - run-ci: + unit-tests: runs-on: ubuntu-latest steps: @@ -18,15 +18,14 @@ jobs: with: node-version: 20 - - uses: pnpm/action-setup@v2 - with: - version: 9 + - uses: pnpm/action-setup@v5 - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 - name: Install dependencies - run: pnpm install --frozen-lockfile + # Frozen lockfile policy is enforced in .npmrc. + run: pnpm install - name: Build run: pnpm run build diff --git a/.github/workflows/validate-emergency-config.yml b/.github/workflows/validate-emergency-config.yml index 0856a89a8..769a06d6b 100644 --- a/.github/workflows/validate-emergency-config.yml +++ b/.github/workflows/validate-emergency-config.yml @@ -35,15 +35,13 @@ jobs: node-version: 20 - name: Install pnpm - uses: pnpm/action-setup@v4 - with: - version: 9 - + uses: pnpm/action-setup@v5 - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 - name: Install dependencies - run: pnpm install --frozen-lockfile + # Frozen lockfile policy is enforced in .npmrc. + run: pnpm install - name: Run validation script run: node shell/validate-emergency-config.js diff --git a/.npmrc b/.npmrc index c42da845b..5f458cccc 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +1,3 @@ -engine-strict = true +engine-strict=true +prefer-frozen-lockfile=true +frozen-lockfile=true diff --git a/package.json b/package.json index 2bfd74e9d..2cede80f8 100644 --- a/package.json +++ b/package.json @@ -8,11 +8,14 @@ "type": "git", "url": "git+https://github.com/OlympusDAO/olympus-v3.git" }, + "packageManager": "pnpm@10.33.0", "engines": { "npm": "use-pnpm", - "yarn": "use-pnpm" + "yarn": "use-pnpm", + "pnpm": "10.33.0" }, "scripts": { + "preinstall": "npx only-allow pnpm", "postinstall": "./shell/postinstall.sh", "build": "forge build", "prettier": "prettier --no-error-on-unmatched-pattern --write 'src/**/*.sol' '**/*.html' '.*/**/*.{sh,json,yaml,yml,toml}' '**/*.{sh,json,yaml,yml,toml}'", @@ -45,6 +48,22 @@ "solhint": "^3.3.7", "solidity-code-metrics": "^0.0.25" }, + "pnpm": { + "overrides": { + "brace-expansion@>=2.0.0 <2.0.3": ">=2.0.3", + "cross-spawn@>=7.0.0 <7.0.5": ">=7.0.5", + "glob@>=11.0.0 <11.1.0": ">=11.1.0", + "js-yaml@>=4.0.0 <4.1.1": ">=4.1.1", + "lodash@<=4.17.23": ">=4.18.0", + "markdown-it@>=13.0.0 <14.1.1": ">=14.1.1", + "minimatch@>=10.0.0 <10.2.3": ">=10.2.3", + "minimatch@>=5.0.0 <5.1.8": ">=5.1.8", + "picomatch@<2.3.2": ">=2.3.2", + "solhint>ajv": "6.14.0", + "semver@>=7.0.0 <7.5.2": ">=7.5.2", + "smol-toml@<1.6.1": ">=1.6.1" + } + }, "prettier": { "tabWidth": 4, "singleQuote": false, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5f381b475..5934d8d16 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,20 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + brace-expansion@>=2.0.0 <2.0.3: '>=2.0.3' + cross-spawn@>=7.0.0 <7.0.5: '>=7.0.5' + glob@>=11.0.0 <11.1.0: '>=11.1.0' + js-yaml@>=4.0.0 <4.1.1: '>=4.1.1' + lodash@<=4.17.23: '>=4.18.0' + markdown-it@>=13.0.0 <14.1.1: '>=14.1.1' + minimatch@>=10.0.0 <10.2.3: '>=10.2.3' + minimatch@>=5.0.0 <5.1.8: '>=5.1.8' + picomatch@<2.3.2: '>=2.3.2' + solhint>ajv: 6.14.0 + semver@>=7.0.0 <7.5.2: '>=7.5.2' + smol-toml@<1.6.1: '>=1.6.1' + importers: .: @@ -50,10 +64,6 @@ packages: resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} engines: {node: '>=6.9.0'} - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - '@solidity-parser/parser@0.16.0': resolution: {integrity: sha512-ESipEcHyRHg4Np4SqBCfcXwyxxna1DgFVz69bgpLV8vzl/NP1DtcKsJ4dJZXWQhY/Z4J2LeKBiOkOVZn9ct33Q==} @@ -66,8 +76,8 @@ packages: '@taplo/lib@0.5.0': resolution: {integrity: sha512-+xIqpQXJco3T+VGaTTwmhxLa51qpkQxCjRwezjFZgr+l21ExlywJFcDfTrNmL6lG6tqb0h8GyJKO3UPGPtSCWg==} - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ajv@6.14.0: + resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} ajv@8.18.0: resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} @@ -76,10 +86,6 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.1.0: - resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} - engines: {node: '>=12'} - ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} @@ -88,10 +94,6 @@ packages: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - antlr4@4.13.2: resolution: {integrity: sha512-QiVbZhyy4xAZ17UPEuG3YTOt8ZaoeOR1CvEAqrEsDBsOqINslaB147i9xqljZqoyf5S+EUlGStaj+t22LT9MOg==} engines: {node: '>=16'} @@ -112,11 +114,13 @@ packages: async@3.2.6: resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + brace-expansion@5.0.5: + resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} + engines: {node: 18 || 20 || >=22} c3-linearization@0.3.0: resolution: {integrity: sha512-eQNsZQhFSJAhrNrITy2FpKh7EHS98q/pniDtQhndWqqsvayiPeqZ9T6I9V9PsHcm0nc+ZYJHKUvI/hh37I33HQ==} @@ -178,23 +182,13 @@ packages: resolution: {integrity: sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==} engines: {node: '>=14'} - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -222,10 +216,6 @@ packages: fast-uri@3.1.0: resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} - foreground-child@3.3.0: - resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} - engines: {node: '>=14'} - fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -237,10 +227,9 @@ packages: resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} engines: {node: '>=12'} - glob@11.0.0: - resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==} - engines: {node: 20 || >=22} - hasBin: true + glob@13.0.6: + resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} + engines: {node: 18 || 20 || >=22} glob@8.1.0: resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} @@ -297,18 +286,11 @@ packages: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - jackspeak@4.0.2: - resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==} - engines: {node: 20 || >=22} - js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true json-parse-even-better-errors@2.3.1: @@ -336,19 +318,15 @@ packages: lodash.truncate@4.4.2: resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + lodash@4.18.1: + resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} lru-cache@11.0.1: resolution: {integrity: sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==} engines: {node: 20 || >=22} - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - - markdown-it@14.1.0: - resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} + markdown-it@14.1.1: + resolution: {integrity: sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==} hasBin: true markdownlint-cli@0.42.0: @@ -367,19 +345,15 @@ packages: mdurl@2.0.0: resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} - minimatch@10.0.1: - resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} - engines: {node: 20 || >=22} - - minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} + engines: {node: 18 || 20 || >=22} minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} engines: {node: '>=16 || 14 >=14.17'} mvdan-sh@0.10.1: @@ -388,9 +362,6 @@ packages: once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -399,21 +370,17 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-scurry@2.0.0: - resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} - engines: {node: 20 || >=22} + path-scurry@2.0.2: + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + engines: {node: 18 || 20 || >=22} path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} + picomatch@4.0.4: + resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} + engines: {node: '>=12'} pluralize@8.0.0: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} @@ -457,8 +424,8 @@ packages: resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} engines: {node: '>=6'} - punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} readdirp@3.6.0: @@ -481,11 +448,6 @@ packages: resolution: {integrity: sha512-CcfE+mYiTcKEzg0IqS08+efdnH0oJ3zV0wSUFBNrMHMuxCtXvBCLzCJHatwuXDcu/RlhjTziTo/a1ruQik6/Yg==} hasBin: true - semver@7.5.0: - resolution: {integrity: sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==} - engines: {node: '>=10'} - hasBin: true - semver@7.7.2: resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} engines: {node: '>=10'} @@ -499,18 +461,6 @@ packages: resolution: {integrity: sha512-L4Kum9Lp8cWqcGKycZcXxR6spUoG4idDIUzAKjPiELnIZWxiFlZ5HFVzFxVxuWuGPsrraeL0JoGk0nFZ7AGFEQ==} engines: {node: '>=10'} - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - slice-ansi@4.0.0: resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} engines: {node: '>=10'} @@ -519,8 +469,8 @@ packages: resolution: {integrity: sha512-tnB+gi6TiFpt3qmCGfaV+78dfKwLiH5HRohkW+PnJYHNAcEdk408uxWG+F/3pu4w1eyCO2NC5CpZKuiyMac5GQ==} hasBin: true - smol-toml@1.3.0: - resolution: {integrity: sha512-tWpi2TsODPScmi48b/OQZGi2lgUmBCHy6SZrhi/FdnnHiU1GwebbCfuQuxsC3nHaLwtYeJGPrDZDIeodDOc4pA==} + smol-toml@1.6.1: + resolution: {integrity: sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==} engines: {node: '>= 18'} solhint@3.6.2: @@ -541,18 +491,10 @@ packages: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -597,19 +539,10 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -617,9 +550,6 @@ packages: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -642,15 +572,6 @@ snapshots: chalk: 2.4.2 js-tokens: 4.0.0 - '@isaacs/cliui@8.0.2': - dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 - '@solidity-parser/parser@0.16.0': dependencies: antlr4ts: 0.5.0-alpha.4 @@ -665,7 +586,7 @@ snapshots: dependencies: '@taplo/core': 0.2.0 - ajv@6.12.6: + ajv@6.14.0: dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 @@ -681,8 +602,6 @@ snapshots: ansi-regex@5.0.1: {} - ansi-regex@6.1.0: {} - ansi-styles@3.2.1: dependencies: color-convert: 1.9.3 @@ -691,8 +610,6 @@ snapshots: dependencies: color-convert: 2.0.1 - ansi-styles@6.2.1: {} - antlr4@4.13.2: {} antlr4ts@0.5.0-alpha.4: {} @@ -705,11 +622,11 @@ snapshots: async@3.2.6: {} - balanced-match@1.0.2: {} + balanced-match@4.0.4: {} - brace-expansion@2.0.1: + brace-expansion@5.0.5: dependencies: - balanced-match: 1.0.2 + balanced-match: 4.0.4 c3-linearization@0.3.0: {} @@ -761,24 +678,14 @@ snapshots: cosmiconfig@8.1.3: dependencies: import-fresh: 3.3.0 - js-yaml: 4.1.0 + js-yaml: 4.1.1 parse-json: 5.2.0 path-type: 4.0.0 - cross-spawn@7.0.3: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - deep-extend@0.6.0: {} - eastasianwidth@0.2.0: {} - emoji-regex@8.0.0: {} - emoji-regex@9.2.2: {} - entities@4.5.0: {} error-ex@1.3.2: @@ -797,32 +704,24 @@ snapshots: fast-uri@3.1.0: {} - foreground-child@3.3.0: - dependencies: - cross-spawn: 7.0.3 - signal-exit: 4.1.0 - fs.realpath@1.0.0: {} get-caller-file@2.0.5: {} get-stdin@9.0.0: {} - glob@11.0.0: + glob@13.0.6: dependencies: - foreground-child: 3.3.0 - jackspeak: 4.0.2 - minimatch: 10.0.1 - minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 2.0.0 + minimatch: 10.2.5 + minipass: 7.1.3 + path-scurry: 2.0.2 glob@8.1.0: dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 5.1.6 + minimatch: 10.2.5 once: 1.4.0 graphviz@0.0.9: @@ -862,15 +761,9 @@ snapshots: is-stream@2.0.1: {} - isexe@2.0.0: {} - - jackspeak@4.0.2: - dependencies: - '@isaacs/cliui': 8.0.2 - js-tokens@4.0.0: {} - js-yaml@4.1.0: + js-yaml@4.1.1: dependencies: argparse: 2.0.1 @@ -892,15 +785,11 @@ snapshots: lodash.truncate@4.4.2: {} - lodash@4.17.21: {} + lodash@4.18.1: {} lru-cache@11.0.1: {} - lru-cache@6.0.0: - dependencies: - yallist: 4.0.0 - - markdown-it@14.1.0: + markdown-it@14.1.1: dependencies: argparse: 2.0.1 entities: 4.5.0 @@ -913,36 +802,32 @@ snapshots: dependencies: commander: 12.1.0 get-stdin: 9.0.0 - glob: 11.0.0 + glob: 13.0.6 ignore: 6.0.2 - js-yaml: 4.1.0 + js-yaml: 4.1.1 jsonc-parser: 3.3.1 jsonpointer: 5.0.1 markdownlint: 0.35.0 - minimatch: 10.0.1 + minimatch: 10.2.5 run-con: 1.3.2 - smol-toml: 1.3.0 + smol-toml: 1.6.1 markdownlint-micromark@0.1.10: {} markdownlint@0.35.0: dependencies: - markdown-it: 14.1.0 + markdown-it: 14.1.1 markdownlint-micromark: 0.1.10 mdurl@2.0.0: {} - minimatch@10.0.1: + minimatch@10.2.5: dependencies: - brace-expansion: 2.0.1 - - minimatch@5.1.6: - dependencies: - brace-expansion: 2.0.1 + brace-expansion: 5.0.5 minimist@1.2.8: {} - minipass@7.1.2: {} + minipass@7.1.3: {} mvdan-sh@0.10.1: {} @@ -950,8 +835,6 @@ snapshots: dependencies: wrappy: 1.0.2 - package-json-from-dist@1.0.1: {} - parent-module@1.0.1: dependencies: callsites: 3.1.0 @@ -963,16 +846,14 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - path-key@3.1.1: {} - - path-scurry@2.0.0: + path-scurry@2.0.2: dependencies: lru-cache: 11.0.1 - minipass: 7.1.2 + minipass: 7.1.3 path-type@4.0.0: {} - picomatch@2.3.1: {} + picomatch@4.0.4: {} pluralize@8.0.0: {} @@ -986,7 +867,7 @@ snapshots: dependencies: '@solidity-parser/parser': 0.16.0 prettier: 3.3.3 - semver: 7.5.0 + semver: 7.7.2 solidity-comments-extractor: 0.0.7 prettier-plugin-sort-json@4.0.0(prettier@3.3.3): @@ -1005,11 +886,11 @@ snapshots: punycode.js@2.3.1: {} - punycode@2.3.0: {} + punycode@2.3.1: {} readdirp@3.6.0: dependencies: - picomatch: 2.3.1 + picomatch: 4.0.4 require-directory@2.1.1: {} @@ -1024,10 +905,6 @@ snapshots: minimist: 1.2.8 strip-json-comments: 3.1.1 - semver@7.5.0: - dependencies: - lru-cache: 6.0.0 - semver@7.7.2: {} sh-syntax@0.4.2: @@ -1038,14 +915,6 @@ snapshots: dependencies: hasha: 5.2.2 - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@3.0.0: {} - - signal-exit@4.1.0: {} - slice-ansi@4.0.0: dependencies: ansi-styles: 4.3.0 @@ -1059,12 +928,12 @@ snapshots: commander: 11.1.0 readdirp: 3.6.0 - smol-toml@1.3.0: {} + smol-toml@1.6.1: {} solhint@3.6.2: dependencies: '@solidity-parser/parser': 0.16.2 - ajv: 6.12.6 + ajv: 6.14.0 antlr4: 4.13.2 ast-parents: 0.0.1 chalk: 4.1.2 @@ -1073,8 +942,8 @@ snapshots: fast-diff: 1.2.0 glob: 8.1.0 ignore: 5.2.4 - js-yaml: 4.1.0 - lodash: 4.17.21 + js-yaml: 4.1.1 + lodash: 4.18.1 pluralize: 8.0.0 semver: 7.7.2 strip-ansi: 6.0.1 @@ -1105,20 +974,10 @@ snapshots: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - string-width@5.1.2: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 - strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 - strip-ansi@7.1.0: - dependencies: - ansi-regex: 6.1.0 - strip-json-comments@3.1.1: {} supports-color@5.5.0: @@ -1161,11 +1020,7 @@ snapshots: uri-js@4.4.1: dependencies: - punycode: 2.3.0 - - which@2.0.2: - dependencies: - isexe: 2.0.0 + punycode: 2.3.1 wrap-ansi@7.0.0: dependencies: @@ -1173,18 +1028,10 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 - wrap-ansi@8.1.0: - dependencies: - ansi-styles: 6.2.1 - string-width: 5.1.2 - strip-ansi: 7.1.0 - wrappy@1.0.2: {} y18n@5.0.8: {} - yallist@4.0.0: {} - yargs-parser@21.1.1: {} yargs@17.7.2: