From 8041fb33b718c4326782782d4ee28756fa4eeecd Mon Sep 17 00:00:00 2001 From: Dmytro Zelenetskyi Date: Fri, 7 Aug 2026 21:54:38 +0200 Subject: [PATCH 1/4] Add zizmor integration --- .github/dependabot.yml | 8 +++ .github/workflows-examples/README.md | 6 +- .github/workflows-examples/codeql.yml | 6 +- .github/workflows-examples/dependabot.yml | 8 +++ .github/workflows-examples/release.yml | 6 +- .github/workflows-examples/scorecard.yml | 8 +-- .github/workflows-examples/zizmor.yml | 29 ++++++++ .github/workflows/codeql.yml | 6 +- .github/workflows/release.yml | 14 ++-- .github/workflows/scorecard.yml | 8 +-- .github/workflows/shared-codeql.yml | 6 +- .github/workflows/shared-release.yml | 4 +- .github/workflows/shared-scorecard.yml | 10 ++- .github/workflows/shared-zizmor.yml | 47 +++++++++++++ .github/workflows/zizmor.yml | 30 ++++++++ .gitignore | 1 + README.md | 7 +- internal/gha/src/workflows.test.ts | 86 +++++++++++++++++++++++ package.json | 1 + pnpm-workspace.yaml | 3 + 20 files changed, 261 insertions(+), 33 deletions(-) create mode 100644 .github/workflows-examples/zizmor.yml create mode 100644 .github/workflows/shared-zizmor.yml create mode 100644 .github/workflows/zizmor.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml index c4c8f62..35290cd 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -13,6 +13,12 @@ updates: - "/internal/*" schedule: interval: "weekly" + # Match pnpm's release-age policy for npm packages. + cooldown: + default-days: 1 # pnpm-workspace.yaml: minimumReleaseAge / 1440 + # Keep exemptions aligned with pnpm-workspace.yaml. + exclude: + - "@zemd/*" versioning-strategy: "increase" # the workspace pins exact versions (saveExact) open-pull-requests-limit: 10 groups: @@ -24,6 +30,8 @@ updates: directory: "/" schedule: interval: "weekly" + cooldown: + default-days: 7 open-pull-requests-limit: 10 groups: github-actions: diff --git a/.github/workflows-examples/README.md b/.github/workflows-examples/README.md index bceb3a8..0f499dc 100644 --- a/.github/workflows-examples/README.md +++ b/.github/workflows-examples/README.md @@ -8,6 +8,7 @@ Copy-paste callers for the reusable workflows published from this repository. | [`release.yml`](./release.yml) | `shared-release.yml` | Release pull request, npm publish, git tags, GitHub release | | [`codeql.yml`](./codeql.yml) | `shared-codeql.yml` | CodeQL analysis | | [`scorecard.yml`](./scorecard.yml) | `shared-scorecard.yml` | OpenSSF Scorecard | +| [`zizmor.yml`](./zizmor.yml) | `shared-zizmor.yml` | Blocking security lint for GitHub Actions and Dependabot | | [`dependabot.yml`](./dependabot.yml) | — | Keeps the pinned SHAs current | They assume a pnpm workspace with `lint-check`, `format-check`, `typecheck`, @@ -17,7 +18,7 @@ those can be renamed or disabled through workflow inputs — see the commented ## Install -1. Copy the four workflow files into `.github/workflows/` of the target +1. Copy the five workflow files into `.github/workflows/` of the target repository and `dependabot.yml` into `.github/`. 2. Replace the `__SHA__` placeholder with the commit of the release you want: @@ -72,6 +73,9 @@ For npm **trusted publishing**: the same `concurrency.group` on both sides with `cancel-in-progress: true`. - Permissions can only be narrowed by the called workflow, never widened, which is why each example declares them on the calling job. +- `shared-zizmor.yml` deliberately uses annotation output instead of SARIF so + any finding fails the job. Its weekly caller also catches advisories published + after an action was pinned; CodeQL remains the stateful code-scanning feed. - `shared-release.yml` checks out the explicit `shared-tooling-repository` and `shared-tooling-ref` into `.shared-ci/` to reach the bundled `gha.mjs` CLI. Keep the ref equal to the SHA that pins the reusable workflow. The checkout is diff --git a/.github/workflows-examples/codeql.yml b/.github/workflows-examples/codeql.yml index 9d67128..96d957c 100644 --- a/.github/workflows-examples/codeql.yml +++ b/.github/workflows-examples/codeql.yml @@ -22,8 +22,8 @@ jobs: name: CodeQL uses: zemd/js/.github/workflows/shared-codeql.yml@__SHA__ # v1 permissions: - contents: read - actions: read - security-events: write + contents: read # checkout the repository for analysis + actions: read # let CodeQL read workflow-run metadata + security-events: write # upload results to code scanning # with: # languages: '["actions", "javascript-typescript"]' diff --git a/.github/workflows-examples/dependabot.yml b/.github/workflows-examples/dependabot.yml index 08696f5..4a88ed5 100644 --- a/.github/workflows-examples/dependabot.yml +++ b/.github/workflows-examples/dependabot.yml @@ -6,6 +6,12 @@ updates: - "/packages/*" schedule: interval: "weekly" + # Match pnpm's release-age policy for npm packages. + cooldown: + default-days: 1 # pnpm-workspace.yaml: minimumReleaseAge / 1440 + # Keep exemptions aligned with pnpm-workspace.yaml. + exclude: + - "@zemd/*" versioning-strategy: "increase" # the workspace pins exact versions (saveExact) open-pull-requests-limit: 10 groups: @@ -20,6 +26,8 @@ updates: directory: "/" schedule: interval: "weekly" + cooldown: + default-days: 7 open-pull-requests-limit: 10 groups: github-actions: diff --git a/.github/workflows-examples/release.yml b/.github/workflows-examples/release.yml index 5e2b4b7..1b114d0 100644 --- a/.github/workflows-examples/release.yml +++ b/.github/workflows-examples/release.yml @@ -9,7 +9,11 @@ on: branches: - main -concurrency: ${{ github.workflow }}-${{ github.ref }} +# A release must finish once started; serialize runs without cancelling one that +# may already be publishing packages or moving tags. +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: false jobs: release: diff --git a/.github/workflows-examples/scorecard.yml b/.github/workflows-examples/scorecard.yml index 74f06eb..440b712 100644 --- a/.github/workflows-examples/scorecard.yml +++ b/.github/workflows-examples/scorecard.yml @@ -19,10 +19,10 @@ jobs: name: Scorecard uses: zemd/js/.github/workflows/shared-scorecard.yml@__SHA__ # v1 permissions: - contents: read - actions: read - security-events: write - id-token: write + contents: read # checkout the repository for analysis + actions: read # inspect workflow runs for dangerous patterns + security-events: write # upload results to code scanning + id-token: write # publish results to the OpenSSF API # with: # publish-results: true # artifact-retention-days: 5 diff --git a/.github/workflows-examples/zizmor.yml b/.github/workflows-examples/zizmor.yml new file mode 100644 index 0000000..41e7364 --- /dev/null +++ b/.github/workflows-examples/zizmor.yml @@ -0,0 +1,29 @@ +name: zizmor + +permissions: {} + +on: + push: + branches: + - main + pull_request: + branches: + - main + schedule: + # Re-check pinned actions when new advisories or stale-reference data lands. + - cron: "13 6 * * 1" + workflow_dispatch: + +concurrency: + group: zizmor-${{ github.ref }} + cancel-in-progress: true + +jobs: + zizmor: + name: zizmor + uses: zemd/js/.github/workflows/shared-zizmor.yml@__SHA__ # v1 + permissions: + contents: read # checkout and online audits + # with: + # audit-inputs: "." + # persona: regular diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 09bcc42..8125ea8 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -22,6 +22,6 @@ jobs: name: CodeQL uses: ./.github/workflows/shared-codeql.yml permissions: - contents: read - actions: read - security-events: write + contents: read # checkout the repository for analysis + actions: read # let CodeQL read workflow-run metadata + security-events: write # upload results to code scanning diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 01df9b1..30f65d0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -7,16 +7,20 @@ on: branches: - main -concurrency: ${{ github.workflow }}-${{ github.ref }} +# A release must finish once started; serialize runs without cancelling one that +# may already be publishing packages or moving tags. +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: false jobs: release: name: Release uses: ./.github/workflows/shared-release.yml permissions: - contents: write - pull-requests: write - id-token: write + contents: write # release branch, git tags and GitHub releases + pull-requests: write # open and refresh the release pull request + id-token: write # npm trusted publishing (OIDC) with: shared-tooling-repository: ${{ github.repository }} shared-tooling-ref: ${{ github.sha }} @@ -31,7 +35,7 @@ jobs: if: needs.release.outputs.pending == 'false' runs-on: ubuntu-latest permissions: - contents: write + contents: write # publish the shared workflow tags and GitHub release steps: - name: Checkout Repo diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 8541078..42aabbe 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -19,7 +19,7 @@ jobs: name: Scorecard uses: ./.github/workflows/shared-scorecard.yml permissions: - contents: read - actions: read - security-events: write - id-token: write + contents: read # checkout the repository for analysis + actions: read # inspect workflow runs for dangerous patterns + security-events: write # upload results to code scanning + id-token: write # publish results to the OpenSSF API diff --git a/.github/workflows/shared-codeql.yml b/.github/workflows/shared-codeql.yml index f89b117..6cc5dca 100644 --- a/.github/workflows/shared-codeql.yml +++ b/.github/workflows/shared-codeql.yml @@ -19,9 +19,9 @@ jobs: name: "Analyze: ${{ matrix.language }}" runs-on: ubuntu-latest permissions: - contents: read - actions: read - security-events: write + contents: read # checkout the caller repository for analysis + actions: read # let CodeQL read workflow-run metadata + security-events: write # upload results to code scanning strategy: fail-fast: false diff --git a/.github/workflows/shared-release.yml b/.github/workflows/shared-release.yml index d0e45f7..8845c37 100644 --- a/.github/workflows/shared-release.yml +++ b/.github/workflows/shared-release.yml @@ -73,8 +73,8 @@ jobs: name: Version runs-on: ubuntu-latest permissions: - contents: write - pull-requests: write + contents: write # create or update the release branch + pull-requests: write # open and refresh the release pull request outputs: pending: ${{ steps.version.outputs.pending }} steps: diff --git a/.github/workflows/shared-scorecard.yml b/.github/workflows/shared-scorecard.yml index df6efde..f760a0c 100644 --- a/.github/workflows/shared-scorecard.yml +++ b/.github/workflows/shared-scorecard.yml @@ -23,12 +23,10 @@ jobs: name: Scorecard analysis runs-on: ubuntu-latest permissions: - contents: read - # Read the workflow run history that the Dangerous-Workflow checks rely on. - actions: read - security-events: write - # Publish the result to the OpenSSF REST API. - id-token: write + contents: read # checkout the caller repository for analysis + actions: read # inspect workflow runs for dangerous patterns + security-events: write # upload results to code scanning + id-token: write # publish results to the OpenSSF REST API steps: - name: Checkout Repo diff --git a/.github/workflows/shared-zizmor.yml b/.github/workflows/shared-zizmor.yml new file mode 100644 index 0000000..f594f56 --- /dev/null +++ b/.github/workflows/shared-zizmor.yml @@ -0,0 +1,47 @@ +name: Shared zizmor + +# Blocking GitHub Actions security linting for workflows, custom actions and +# Dependabot configuration. Call it from a repository with: +# uses: zemd/js/.github/workflows/shared-zizmor.yml@ # v1 + +permissions: {} + +on: + workflow_call: + inputs: + audit-inputs: + description: Whitespace-separated repository paths for zizmor to audit. + type: string + default: "." + persona: + description: zizmor audit persona; regular is the recommended CI default. + type: string + default: "regular" + +jobs: + audit: + name: Audit GitHub Actions + runs-on: ubuntu-latest + timeout-minutes: 10 + permissions: + contents: read # checkout and online audits, including private callers + + steps: + - name: Checkout Repo + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + + # Plain/annotation output preserves zizmor's non-zero finding exit codes. + # SARIF mode always exits zero for findings and is therefore not a merge gate. + - name: Run zizmor + uses: zizmorcore/zizmor-action@3dc1ecc9bcb9e94e9b2c709687979e1298497054 # v0.6.2 + with: + inputs: ${{ inputs.audit-inputs }} + collect: default + online-audits: true + persona: ${{ inputs.persona }} + version: "1.29.0" + advanced-security: false + annotations: true + fail-on-no-inputs: true diff --git a/.github/workflows/zizmor.yml b/.github/workflows/zizmor.yml new file mode 100644 index 0000000..1b68ab9 --- /dev/null +++ b/.github/workflows/zizmor.yml @@ -0,0 +1,30 @@ +name: zizmor + +permissions: {} + +on: + push: + branches: + - main + pull_request: + branches: + - main + schedule: + # Re-check pinned actions when new advisories or stale-reference data lands. + - cron: "13 6 * * 1" + workflow_dispatch: + +concurrency: + group: zizmor-${{ github.ref }} + cancel-in-progress: true + +jobs: + zizmor: + name: zizmor + uses: ./.github/workflows/shared-zizmor.yml + permissions: + contents: read # checkout and online audits + with: + # This provider keeps its own workflow contract free of code smells as + # well as regular security findings. Consumers default to regular. + persona: pedantic diff --git a/.gitignore b/.gitignore index a53ab2c..6fdac82 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,4 @@ yarn-error.log* # release pnpm-publish-summary.json +.pnpm-store diff --git a/README.md b/README.md index 2cc38c4..6285b7a 100644 --- a/README.md +++ b/README.md @@ -58,8 +58,13 @@ All tasks are orchestrated by [Turborepo](https://turborepo.com) and run across | `pnpm format-check` | Verify formatting without writing changes | | `pnpm lint` | Run type-aware linting and auto-fix with `oxlint` | | `pnpm lint-check` | Run type-aware linting and fail on warnings | +| `pnpm lint-actions` | Audit GitHub Actions with `zizmor` | | `pnpm lint-publish` | Validate publishable package metadata (`publint`) | +`pnpm lint-actions` requires [`zizmor`](https://docs.zizmor.sh/installation/) +1.29.0, matching the exact version pinned by CI. Set `GH_TOKEN` (for example, +from `gh auth token`) to include online audits when running it locally. + To run a script for a single package, use the workspace filter: ```sh @@ -72,7 +77,7 @@ To report a vulnerability, follow [`SECURITY.md`](SECURITY.md). ## Contributing -Issues and pull requests are welcome. Before opening a PR, please make sure that `pnpm lint-check`, `pnpm format-check`, `pnpm typecheck`, and `pnpm test` all pass. +Issues and pull requests are welcome. Before opening a PR, please make sure that `pnpm lint-check`, `pnpm lint-actions`, `pnpm format-check`, `pnpm typecheck`, and `pnpm test` all pass. ## License diff --git a/internal/gha/src/workflows.test.ts b/internal/gha/src/workflows.test.ts index fccd44b..9e4b179 100644 --- a/internal/gha/src/workflows.test.ts +++ b/internal/gha/src/workflows.test.ts @@ -16,6 +16,28 @@ const yamlFiles = (directory: string): string[] => const read = (directory: string, file: string): string => readFileSync(directory + file, "utf8"); +const dependabotUpdater = (source: string, ecosystem: string): string => { + const marker = ` - package-ecosystem: "${ecosystem}"`; + const start = source.indexOf(marker); + if (start < 0) throw new Error(`Dependabot does not configure ${ecosystem}`); + + const end = source.indexOf("\n - package-ecosystem:", start + marker.length); + return source.slice(start, end < 0 ? source.length : end); +}; + +const yamlStringList = (source: string, key: string, indentation: number): string[] => { + const keyIndent = " ".repeat(indentation); + const itemIndent = " ".repeat(indentation + 2); + const match = source.match( + new RegExp(`^${keyIndent}${key}:\\n((?:^${itemIndent}- .+\\n?)*)`, "m"), + ); + + return (match?.[1] ?? "") + .split("\n") + .filter(Boolean) + .map((line) => line.slice(indentation + 4).replace(/^["']|["']$/g, "")); +}; + // `- uses: owner/repo/path@ref # comment` const USES = /^\s*(?:-\s+)?uses:\s*(\S+?)\s*(?:#\s*(\S+))?$/gm; @@ -62,6 +84,7 @@ test("callers delegate to the shared workflows", () => { ["ci.yml", "shared-ci.yml"], ["codeql.yml", "shared-codeql.yml"], ["scorecard.yml", "shared-scorecard.yml"], + ["zizmor.yml", "shared-zizmor.yml"], // npm trusted publishing validates the caller filename, so it is part of the contract. ["release.yml", "shared-release.yml"], ]; @@ -113,6 +136,69 @@ test("keeps OIDC with an npm token fallback for first publishes", () => { ); }); +test("zizmor is pinned and fails the workflow on every finding", () => { + const source = read(workflowsDir, "shared-zizmor.yml"); + const caller = read(workflowsDir, "zizmor.yml"); + const manifest = JSON.parse(readFileSync(`${root}package.json`, "utf8")) as { + scripts: Record; + }; + + expect(source).toContain( + "uses: zizmorcore/zizmor-action@3dc1ecc9bcb9e94e9b2c709687979e1298497054 # v0.6.2", + ); + expect(source).toMatch(/^ {10}version: "1\.29\.0"$/m); + expect(source).toMatch(/^ {10}collect: default$/m); + expect(source).toMatch(/^ {10}online-audits: true$/m); + expect(source).toMatch(/^ {10}advanced-security: false$/m); + expect(source).toMatch(/^ {10}annotations: true$/m); + expect(source).toMatch(/^ {10}fail-on-no-inputs: true$/m); + expect(source).not.toContain("security-events:"); + expect(caller).toMatch(/^ {6}persona: pedantic$/m); + expect(manifest.scripts["lint-actions"]).toBe( + "zizmor --strict-collection --collect=default --persona=pedantic .", + ); +}); + +test("Dependabot npm cooldowns match pnpm's release-age policy", () => { + const workspace = readFileSync(`${root}pnpm-workspace.yaml`, "utf8"); + const configuredMinimumReleaseAge = workspace.match(/^minimumReleaseAge: (\d+)$/m)?.[1]; + if (configuredMinimumReleaseAge === undefined) { + throw new Error("pnpm must explicitly configure minimumReleaseAge"); + } + + const minimumReleaseAgeMinutes = Number(configuredMinimumReleaseAge); + expect(minimumReleaseAgeMinutes % 1440).toBe(0); + expect(workspace).toMatch(/^minimumReleaseAgeStrict: true$/m); + + const cooldownDays = minimumReleaseAgeMinutes / 1440; + const exclusions = yamlStringList(workspace, "minimumReleaseAgeExclude", 0).filter((selector) => + selector.startsWith("@") ? selector.indexOf("@", 1) < 0 : !selector.includes("@"), + ); + expect(exclusions.length).toBeGreaterThan(0); + + for (const [directory, file] of [ + [`${root}.github/`, "dependabot.yml"], + [examplesDir, "dependabot.yml"], + ] as const) { + const npm = dependabotUpdater(read(directory, file), "npm"); + + expect(npm, `${file} must match pnpm's minimumReleaseAge`).toMatch( + new RegExp(`^ {6}default-days: ${cooldownDays}(?: |$)`, "m"), + ); + expect(yamlStringList(npm, "exclude", 6)).toStrictEqual(exclusions); + } +}); + +test("Dependabot keeps GitHub Actions behind a seven-day cooldown", () => { + for (const [directory, file] of [ + [`${root}.github/`, "dependabot.yml"], + [examplesDir, "dependabot.yml"], + ] as const) { + const githubActions = dependabotUpdater(read(directory, file), "github-actions"); + expect(githubActions).toMatch(/^ {6}default-days: 7$/m); + } +}); + test("examples pin the shared workflows through a replaceable placeholder", () => { const examples = yamlFiles(examplesDir); expect(examples.length).toBeGreaterThan(0); diff --git a/package.json b/package.json index 70cf101..b437f27 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "format-check": "oxfmt --check", "lint": "oxlint --type-aware --fix --ignore-pattern=.github/scripts", "lint-check": "oxlint --type-aware --deny-warnings --ignore-pattern=.github/scripts", + "lint-actions": "zizmor --strict-collection --collect=default --persona=pedantic .", "lint-publish": "pnpm -r --filter='!./internal/**' exec publint", "release-change": "pnpm change", "release-status": "pnpm change status", diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index cf1de03..3140b4b 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -17,6 +17,9 @@ catalog: vitest: 4.1.10 zod: 4.4.3 +# Seven days; keep aligned with Dependabot's npm cooldown. +minimumReleaseAge: 1440 +minimumReleaseAgeStrict: true minimumReleaseAgeExclude: - "@zemd/*" From 578add68b741c28fcb464b192e30d3e17222b9b6 Mon Sep 17 00:00:00 2001 From: Dmytro Zelenetskyi Date: Sat, 8 Aug 2026 17:43:42 +0200 Subject: [PATCH 2/4] Add changeset --- .changeset/gentle-grapes-sleep.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/gentle-grapes-sleep.md diff --git a/.changeset/gentle-grapes-sleep.md b/.changeset/gentle-grapes-sleep.md new file mode 100644 index 0000000..2526112 --- /dev/null +++ b/.changeset/gentle-grapes-sleep.md @@ -0,0 +1,5 @@ +--- +"@zemd/gha": patch +--- + +Add zizmor integration From 1ada8dd7527659f95254ab143bd39134e7b88654 Mon Sep 17 00:00:00 2001 From: Dmytro Zelenetskyi Date: Sat, 8 Aug 2026 17:55:04 +0200 Subject: [PATCH 3/4] Sync minimumReleaseAge with dependabot cooldown --- .github/dependabot.yml | 2 +- package.json | 6 +- packages/logtown-hono/package.json | 2 +- pnpm-lock.yaml | 606 ++++++++++++++--------------- pnpm-workspace.yaml | 2 +- 5 files changed, 306 insertions(+), 312 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 35290cd..b9386ce 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -15,7 +15,7 @@ updates: interval: "weekly" # Match pnpm's release-age policy for npm packages. cooldown: - default-days: 1 # pnpm-workspace.yaml: minimumReleaseAge / 1440 + default-days: 7 # pnpm-workspace.yaml: minimumReleaseAge / 1440 # Keep exemptions aligned with pnpm-workspace.yaml. exclude: - "@zemd/*" diff --git a/package.json b/package.json index b437f27..457cfab 100644 --- a/package.json +++ b/package.json @@ -26,10 +26,10 @@ }, "devDependencies": { "husky": "9.1.7", - "oxfmt": "0.62.0", - "oxlint": "1.77.0", + "oxfmt": "0.61.0", + "oxlint": "1.76.0", "oxlint-tsgolint": "7.0.2001", - "publint": "0.3.23", + "publint": "0.3.22", "turbo": "2.10.8" }, "packageManager": "pnpm@11.20.0+sha512.9a6f330a95b66446ea088faf1521405a8a01f07fde7124cc9958dfed52d4bb436737e65b08f85f37b46fcba375092558ac51262b816844b22f63406ed166bfee" diff --git a/packages/logtown-hono/package.json b/packages/logtown-hono/package.json index cd16523..f56b414 100644 --- a/packages/logtown-hono/package.json +++ b/packages/logtown-hono/package.json @@ -49,7 +49,7 @@ "devDependencies": { "@types/node": "catalog:", "@zemd/tsconfig": "workspace:*", - "hono": "4.13.0", + "hono": ">=4", "logtown": "workspace:*", "tsdown": "catalog:", "typescript": "catalog:" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8ebd641..cb65e69 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -33,17 +33,17 @@ importers: specifier: 9.1.7 version: 9.1.7 oxfmt: - specifier: 0.62.0 - version: 0.62.0 + specifier: 0.61.0 + version: 0.61.0 oxlint: - specifier: 1.77.0 - version: 1.77.0(oxlint-tsgolint@7.0.2001) + specifier: 1.76.0 + version: 1.76.0(oxlint-tsgolint@7.0.2001) oxlint-tsgolint: specifier: 7.0.2001 version: 7.0.2001 publint: - specifier: 0.3.23 - version: 0.3.23 + specifier: 0.3.22 + version: 0.3.22 turbo: specifier: 2.10.8 version: 2.10.8 @@ -74,7 +74,7 @@ importers: version: 28.0.0 tsdown: specifier: 'catalog:' - version: 0.22.14(publint@0.3.23)(typescript@7.0.2) + version: 0.22.14(publint@0.3.22)(typescript@7.0.2) typescript: specifier: 'catalog:' version: 7.0.2 @@ -96,7 +96,7 @@ importers: version: link:../../packages/tsconfig tsdown: specifier: 'catalog:' - version: 0.22.14(publint@0.3.23)(typescript@7.0.2) + version: 0.22.14(publint@0.3.22)(typescript@7.0.2) typescript: specifier: 'catalog:' version: 7.0.2 @@ -111,7 +111,7 @@ importers: version: link:../../packages/tsconfig tsdown: specifier: 'catalog:' - version: 0.22.14(publint@0.3.23)(typescript@7.0.2) + version: 0.22.14(publint@0.3.22)(typescript@7.0.2) typescript: specifier: 'catalog:' version: 7.0.2 @@ -136,7 +136,7 @@ importers: version: 4.9.0 tsdown: specifier: 'catalog:' - version: 0.22.14(publint@0.3.23)(typescript@7.0.2) + version: 0.22.14(publint@0.3.22)(typescript@7.0.2) typescript: specifier: 'catalog:' version: 7.0.2 @@ -154,7 +154,7 @@ importers: version: 4.9.0 tsdown: specifier: 'catalog:' - version: 0.22.14(publint@0.3.23)(typescript@7.0.2) + version: 0.22.14(publint@0.3.22)(typescript@7.0.2) typescript: specifier: 'catalog:' version: 7.0.2 @@ -179,7 +179,7 @@ importers: version: 4.9.0 tsdown: specifier: 'catalog:' - version: 0.22.14(publint@0.3.23)(typescript@7.0.2) + version: 0.22.14(publint@0.3.22)(typescript@7.0.2) typescript: specifier: 'catalog:' version: 7.0.2 @@ -196,14 +196,14 @@ importers: specifier: workspace:* version: link:../tsconfig hono: - specifier: 4.13.0 - version: 4.13.0 + specifier: '>=4' + version: 4.12.33 logtown: specifier: workspace:* version: link:../logtown tsdown: specifier: 'catalog:' - version: 0.22.14(publint@0.3.23)(typescript@7.0.2) + version: 0.22.14(publint@0.3.22)(typescript@7.0.2) typescript: specifier: 'catalog:' version: 7.0.2 @@ -222,7 +222,7 @@ importers: version: 4.9.0 tsdown: specifier: 'catalog:' - version: 0.22.14(publint@0.3.23)(typescript@7.0.2) + version: 0.22.14(publint@0.3.22)(typescript@7.0.2) typescript: specifier: 'catalog:' version: 7.0.2 @@ -261,7 +261,7 @@ importers: version: 1.62.1 tsdown: specifier: 'catalog:' - version: 0.22.14(publint@0.3.23)(typescript@7.0.2) + version: 0.22.14(publint@0.3.22)(typescript@7.0.2) typescript: specifier: 'catalog:' version: 7.0.2 @@ -303,8 +303,8 @@ packages: '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - '@napi-rs/wasm-runtime@1.2.1': - resolution: {integrity: sha512-KjZdi8Q1wh89gsVmghvbrMgWl6ZWmRmHV6wjB7/g4Zf0dyO+hH3neZUtuDNPO00qq5YE5RITVWvrIZKRaAmzGQ==} + '@napi-rs/wasm-runtime@1.2.2': + resolution: {integrity: sha512-JfB4kuJQjaoHuCTseIINHtHWeJnvgEcxjwA5t/Y00ZgaOO1Crz3fjT/p8kT28zA/Caz7oiUMn3d6H2yOVCVwuw==} engines: {node: ^20.19.0 || ^22.13.0 || >=23.5.0} peerDependencies: '@emnapi/core': ^1.7.1 || ^2.0.0-alpha.3 @@ -313,124 +313,124 @@ packages: '@oxc-project/types@0.142.0': resolution: {integrity: sha512-7W+2q5AKQVU36fkaryontrHn3YDt1RyUYXatw9i5H8ocYe2sPKSFB6eS8WNPeRKiN1qAWWZUPm7gwFzJGrccqQ==} - '@oxfmt/binding-android-arm-eabi@0.62.0': - resolution: {integrity: sha512-pdsv0C4gPjJ8H1+sd8u0BDx+yLACTL+rgeMIOL1ln4ihSnhw8CWXtYWgvcSkyTfgGBIzFKab+d8rx9Xl4en/Kw==} + '@oxfmt/binding-android-arm-eabi@0.61.0': + resolution: {integrity: sha512-BaS+1OVvg9sr+Xav0+KdWedQRcAzrdoEcwMZeqoc2F6ieC1s/t5eM35YQoRPQ7vAqkZ+p3tbQb1r9I9mrV5oGA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxfmt/binding-android-arm64@0.62.0': - resolution: {integrity: sha512-WC3YQ7uS/KtDrjmqwBviwFKe9qeoi+eXx8aX1z/ffG23Md75myjrJaQqTuJvdOLPoa4EYTjDWH0dHXfwulCVog==} + '@oxfmt/binding-android-arm64@0.61.0': + resolution: {integrity: sha512-of8atAV0M1egGcVOMbgZCvc10sFOP3ayQBNQV5h5G3fNq8gACdEswfFk9bzGrdbM23rtg0Coxi7np7oPLcueNw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxfmt/binding-darwin-arm64@0.62.0': - resolution: {integrity: sha512-GM8Yf3LjjaR1I8PD0SfeoIlwhsh9GvSF+cQ8sf624Yxnjsyumn95aFzYfKJVefblfDIiOAnZ7QVm2sa21Er/0Q==} + '@oxfmt/binding-darwin-arm64@0.61.0': + resolution: {integrity: sha512-7l8+5ov4BGwtAcmpzvEik/TG3bciwyw/S3e6j5GKH7pcQqcgCVxD3AuJeP6upto+SOTBKQ4wrrdbMt0gq8fHSQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxfmt/binding-darwin-x64@0.62.0': - resolution: {integrity: sha512-d5THp7F8bCxLqNogEXDORRsQD6dosf3EyFtnXfBer6v+8tGdcWIjoDX9WaXrrF/26zOmL8qHpPTKCEvpBDmZkQ==} + '@oxfmt/binding-darwin-x64@0.61.0': + resolution: {integrity: sha512-Fnz4dDDXBb7udk+DmwelNjxbD6yptyxwCqwCH2ebo4RVLxVsRfFsn/AHJC49KIltPrVokamGv4SSOsiV50DTxQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxfmt/binding-freebsd-x64@0.62.0': - resolution: {integrity: sha512-1DnrtXGZooOZ0fHgAXZUaDQzBVh1CM2MNW4oBXyQ2aWKvCHjyljvT9fgBkOM0fEOb96X5eqtcfJ0YUVt9jj66g==} + '@oxfmt/binding-freebsd-x64@0.61.0': + resolution: {integrity: sha512-mddOebKNCP+AucmzfNsk3jgbr681qAUvgMqi865GW5gWLJ/AnzXbvjQRrny0e++NAN8aphav/aRSrfFxNsNjpA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxfmt/binding-linux-arm-gnueabihf@0.62.0': - resolution: {integrity: sha512-4pQDHOYRH+Huqe0StIaWyvk2CVl/aTaqSrbZpA3/pLS2xH24ME7lBgYprhQF2fRkHBzhGGGKliwxFsDdHwx59g==} + '@oxfmt/binding-linux-arm-gnueabihf@0.61.0': + resolution: {integrity: sha512-svx59iYL+DbaZGZUIoice4W0CjRXGExnbz7Re+awIb60rVxBS2KrU7Hnlx+nZYanLGLpjneUEgo/VFEKkSZAyQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm-musleabihf@0.62.0': - resolution: {integrity: sha512-X0jAaZJFMCVKhB6YyWVTQ/wN2DLsBcZKSMqTS76bF6riT+XZdtg2FPEdjDvdVbunO9cG+tWiVaEs4Zs38lxYog==} + '@oxfmt/binding-linux-arm-musleabihf@0.61.0': + resolution: {integrity: sha512-BYK9MPJPCf6d+fLKMTruThmEyCtHzQ1zLcsrTlUVkmnoXIaHAbfpeLYQwX1tkjs7W11dyzoi6HFvKcdnvX1zNg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm64-gnu@0.62.0': - resolution: {integrity: sha512-682Z8T5s8T5ATArYtsejKvbIfd8LEAXyyDkKkoZVq8HND7Vx8TYLlrDjDSeYfodMeVwHOgkj13lJYR8cj6vUSg==} + '@oxfmt/binding-linux-arm64-gnu@0.61.0': + resolution: {integrity: sha512-QUaCNLq2/EC6G5ljOuFanl9Lgw6ZWp4co7rs4+KOMUzbGfA4Lq58FHRjjF9sVIG+93XSbo343MxFATrOU1qctA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-arm64-musl@0.62.0': - resolution: {integrity: sha512-lk25fAl7KWaLWVJcW0CHEXB7QlQZtx5eDkjpaGMK0hzXTjUe0Wmlu8IKuFHoviSOcEJedRTs4VE/506VqGxGew==} + '@oxfmt/binding-linux-arm64-musl@0.61.0': + resolution: {integrity: sha512-S6uvJ6MXnRXl+zTs0CARNDvkE+cymj0EVWEKKsyKnlLlqTyQJBjw5s4D2pSIOZc+S46cy4STefzcr/sm0VzVPA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxfmt/binding-linux-ppc64-gnu@0.62.0': - resolution: {integrity: sha512-SFyNqHQLwySceWNLhiSldx7wPXRAzP0L0WcW9GegP3uWrpZGJiZlQO85NbHAFPEfxR9PhZ9qSnZryEh7+v+4Gw==} + '@oxfmt/binding-linux-ppc64-gnu@0.61.0': + resolution: {integrity: sha512-6VDlRcytvZG6UlSIdAFKDLbppo9tvPxrWzle6vHldYFMeuDPQEfMKrkwezp7FaBq1wik9ra554ZZeRPsyIkFpg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-riscv64-gnu@0.62.0': - resolution: {integrity: sha512-KYj55C1ywJfHo6+aKDuEmUtVEdJALsC5GwayDGsI6FGz2GxFqNr/mA8nxVsNbJzm7sE5MRqTQ9ziImSzhYXysA==} + '@oxfmt/binding-linux-riscv64-gnu@0.61.0': + resolution: {integrity: sha512-KkBTYbzExpbmn15XjKPLu2fRV2PVlq+KWt+brad5rwIa03vdYoaDRWiS7raHII/dCTR6Ro4UpYUCH4t6lif4WQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-riscv64-musl@0.62.0': - resolution: {integrity: sha512-BhZDNo5GOU5nC378RhD0/XpvaEBHsH3HLgJp8YZX3A0InC7oivzA63HsRmiXFLtLSHAstEVrDf6fbC7Rs8Jh/A==} + '@oxfmt/binding-linux-riscv64-musl@0.61.0': + resolution: {integrity: sha512-69tzIq7sJLVB9dxYYtvMzcSSsnZHSO+U2U19O2RqDqgj6+Q4O7HjSXdaszbcgqzhsUwzSH7z5kWvk8nmf6BHTg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxfmt/binding-linux-s390x-gnu@0.62.0': - resolution: {integrity: sha512-UyAFmyHkgSgUJ/wOM4p3U8AC2yAFvRH5PNBs7TnK0fObTT/XSWcdr/lAzPSWaekHaZFaMeFZyk9n93Joq3J93A==} + '@oxfmt/binding-linux-s390x-gnu@0.61.0': + resolution: {integrity: sha512-Oqi/N0OvtOVXsPKAOOhKgGH3msRYF8BLJaNBbWiupRiKoKVyc8JRKPCfarkQJC+RgP9U8raUKLe+bNwd0HUMiA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-x64-gnu@0.62.0': - resolution: {integrity: sha512-1iYMP0leytWazFubD/WnINJuIrzRPuoL1aWEJdlGezEzDbTxcd29R4r8IUzP2oWeKst5V02uMJgR2NILlPlG6w==} + '@oxfmt/binding-linux-x64-gnu@0.61.0': + resolution: {integrity: sha512-3TKwv/ed4uwJSemAA8P9XcoqETpjQI4waquF9UilhA9Mn/dhr1PdUEXWlL74mtc6ZNfmKPA9+NEJm01nRF8CVA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-x64-musl@0.62.0': - resolution: {integrity: sha512-4rA/URtJSTVNVAQz6Q8wf7SaRvOXVy+TizriT9hs/Y1XhLR/R+92uWKRQG8yFWRAIEBbFHJ6WevQcl/G9SXEfw==} + '@oxfmt/binding-linux-x64-musl@0.61.0': + resolution: {integrity: sha512-uFso4u4nLkVSlMCpgjyvWV60Gt7GvDQHnk1mmRxHIkZTMB0ljpUKwCD9FYGgN9H97x2wYl0UwEjgRZaPIuhEhw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxfmt/binding-openharmony-arm64@0.62.0': - resolution: {integrity: sha512-mSZuFHU2ar1KLUjXpI2QBQcJ1VsOB3mOCgQXuXCpKs19dgh4u+OaovNfrWDfiJb+ihJ2+f7YFcaO9bS2dlTCXA==} + '@oxfmt/binding-openharmony-arm64@0.61.0': + resolution: {integrity: sha512-keGLkzeOvkMpNmPp4hffXWpfoSsY6e1K8++KXD4mSSfxdvM8q9QUDsYY689TB1k6Co832DZn1MnaaVx6cIBMWQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxfmt/binding-win32-arm64-msvc@0.62.0': - resolution: {integrity: sha512-OfwuhkcjDlqC4EgDojtiV9mzpLqeB9KqTOWPOjLEYBVdDCVSxqW3qzp/xcIxsbtI0UgGCnKvAqYKyY25kf5JZw==} + '@oxfmt/binding-win32-arm64-msvc@0.61.0': + resolution: {integrity: sha512-VzsAISkFxmNhJ5LBDEL9VuH6tJsVJMtqYit2LyIUf/HLnsCe4Pg9SMOjjVQzGWt0bnpyfJ94CrqTqcpNZzK+ug==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxfmt/binding-win32-ia32-msvc@0.62.0': - resolution: {integrity: sha512-P9uDDNFRzghO3X8QAzhkjKhK7JvtABsVn8UYtFX7uor12IAnwNt8nNIctvfWj1JkQU/kE+fmLRPiw7XlrIHsZw==} + '@oxfmt/binding-win32-ia32-msvc@0.61.0': + resolution: {integrity: sha512-xv4t7yzwJoYaLB6Zv28B3W+j7brEjsyv50rLTAQgmxJzddce9fAMCxed8dSAkbWES0zz2J29nYK5FaTuD2YBHg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxfmt/binding-win32-x64-msvc@0.62.0': - resolution: {integrity: sha512-dlI5SY7XYQCiCBafntWagCR6HcAJB/NpsLtdlPx8x08+Osz8Ok1HHz1GZuusegCe/VoJ6pAnF5a4pd5OZAq7qQ==} + '@oxfmt/binding-win32-x64-msvc@0.61.0': + resolution: {integrity: sha512-6EZXFkqOwxdDYjIn3TSNnPk3ST5E5GiYd4FiM6UF/mCL/LZSfr6D6UygTfW3R1PCQP2quCKpCEGRlij8E3VYbg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -465,124 +465,124 @@ packages: cpu: [x64] os: [win32] - '@oxlint/binding-android-arm-eabi@1.77.0': - resolution: {integrity: sha512-E06sKWS6PiI6HRxS1wyQg22HvApt01hI7fV+T3wUk3OSbaaP4a3hYGY/MIQDmASqCiRjBdpRQYkgMkqH82cWmQ==} + '@oxlint/binding-android-arm-eabi@1.76.0': + resolution: {integrity: sha512-ZHIE5Zt9AsPDcY4nOlofXt0YfneEeo+QrKMPcPzLf2Z6Q8VtV2W73d7SFJ920WUwyik783u/doKCs3KXdwG+7w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxlint/binding-android-arm64@1.77.0': - resolution: {integrity: sha512-NvsKz0KZxTp9cYWPLf+FXaSZwB3oO3peAjtukpOMBgse2vhQSoIIVqeO1yR0lEo/UcdZIDL18uq+kL0LzQ0ytA==} + '@oxlint/binding-android-arm64@1.76.0': + resolution: {integrity: sha512-shm/ngQilHK6bs+ElJWa4oHfNj5vL1Gl/iVEJldTQjpr0/67oSgr0KUpbmcnLig5Fo0v/l6j2567A7TOL89ONA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxlint/binding-darwin-arm64@1.77.0': - resolution: {integrity: sha512-bgjTn6nW4bQCFBvSvuHCpDD+sONvmpo4lGI4PxzMt1quBA+xYxhczk6RiCn3GZ9gY8uhaBbwhj9MdKGfu6T9DA==} + '@oxlint/binding-darwin-arm64@1.76.0': + resolution: {integrity: sha512-rvJmrAPKSQ9aWJ6wIS6CK2tJjwzfW0ApQH9qokq6sfDvmHwoyIHxHFMq7z7i7GiV6fdE6s8qvBqWKPTu8RmT6Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxlint/binding-darwin-x64@1.77.0': - resolution: {integrity: sha512-aotaIttH1R6j1Rwhx0M0htgeZyGtVQqYNTVEYMN/UcgHPquGA6kmk9OyuDc3a2GKUQBC+3C3GVQCcrRPMYqAFA==} + '@oxlint/binding-darwin-x64@1.76.0': + resolution: {integrity: sha512-U/zYdb7VYKGY6pA9Vd2rYl9O/HlCylcOlb5PGPvVLtg+oLGsk6H3XGKEMHKyqD3nmmtmlmwb/8SwU2vfSAtvMw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxlint/binding-freebsd-x64@1.77.0': - resolution: {integrity: sha512-nNx/wta7ksRAdYvq+l4AWjXkLxEXHALhENxjj2cYbQAIR4ybaA5L+hCbE63HOmft5czQ6ks+hb8vmEAnn7YGPg==} + '@oxlint/binding-freebsd-x64@1.76.0': + resolution: {integrity: sha512-WvKG9CAriuo0XNiFzpXjDngUZcRGFNpaK2kLyMUsnJlShxkT96u+BpJQ3KqdQwGOrvI14L6V8bAwXwAYNNY6Jg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxlint/binding-linux-arm-gnueabihf@1.77.0': - resolution: {integrity: sha512-tMLLjM7xXtzXisVCzkOTXNCy9bZVId2wteNwjohlFDR/jY6WagpEDA1c1wu4xRc20Hojaxj+V6DSR7gbKxijWA==} + '@oxlint/binding-linux-arm-gnueabihf@1.76.0': + resolution: {integrity: sha512-qJ5+RH99TqFRq3UCDxkW0zJJu9c+OAHFY72vGlxZLEpuO+MpKo3POgqb8sYipL9KYm8XY6ofb0HsOuvY6hQNqQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm-musleabihf@1.77.0': - resolution: {integrity: sha512-MiAFDFaqR0tmHTAyo0YDcZ5hyLREdYw/RQhc2R3cbT+8O3tB+zqPM2th9TTQ+Uo3jn/embS+DO+HyX9ztCPkOQ==} + '@oxlint/binding-linux-arm-musleabihf@1.76.0': + resolution: {integrity: sha512-PvPCVptkgVARsucgIqFQQcSmJ6xc6GtnVB5bRBekRahTc9eObMtjHfMjy5M+C2tHt5UCMttWM9RuSk/H9NqYeg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm64-gnu@1.77.0': - resolution: {integrity: sha512-/xqQ3B16i1T4cyt/9Mn+4CpzhUXoBXp7kVpIwzOXNFLj5JmK1bIjsbSnX296Gg8A/o7oDtKWikFgBx0SLwztkw==} + '@oxlint/binding-linux-arm64-gnu@1.76.0': + resolution: {integrity: sha512-3KeFDx8Bu4HPAXbuHZOr/oHvN+QT+JQhMw/NYPz7Z071xLSsG27Jfh9PIQVEY7hk1I+jr43ExqRIeJ6VKk2yLw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-arm64-musl@1.77.0': - resolution: {integrity: sha512-LSbwuRKiNCenPDcbARqAZ5RfBy7gmj7vOvfJRLeCDU3gFtSxWbhv/+VTlaUqzUhNj1gFLHB8h7ALnxa/Az6z6g==} + '@oxlint/binding-linux-arm64-musl@1.76.0': + resolution: {integrity: sha512-oPFkkKTgl0K/EIg9fQ8oA3IGcI05/Mq1en04iFa41mmNPT+6KEiByVazTOZZJiHMBBrbsns1YJ2e1Scqwzesjw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxlint/binding-linux-ppc64-gnu@1.77.0': - resolution: {integrity: sha512-QWdcH31mXEUe5Nq1s0CfCpceaKjIo9uZtwDjAuL681g1axf+5x8xrg/eXWaw//4NCxYZ4V4e5Hu5tvdR+pTBlg==} + '@oxlint/binding-linux-ppc64-gnu@1.76.0': + resolution: {integrity: sha512-gN7yZ0eqflA5Fhf1wvHxGUltIV3FsvmB1zhNMDEK9vSHhc7E6qg9CuPeBgPZab66Tjzq6w6kHAtNEvnTHf4cyw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-riscv64-gnu@1.77.0': - resolution: {integrity: sha512-GnOfYgJxbcElOiPZaDFDl406ONddwvOWk2jvAAAEjwAl4GofNoHF+/HHUIBYa6bFCArlcGPi0XjC4cU1pkgF/Q==} + '@oxlint/binding-linux-riscv64-gnu@1.76.0': + resolution: {integrity: sha512-S/HqMbn22mQrjtErUxEoS/a55u8kIeXvreIxiJu5G7Le3UecEd6SQZxrDIpuhtgaFnsY/nVra3ytP+pRljDilA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-riscv64-musl@1.77.0': - resolution: {integrity: sha512-AyEMTUCf0xY+hHF+IxqXFQIX0yQOIR8ykpY0lJNOw9xYqOzUX8dyZfRvlG0RfXwuQn2eonf/8NrMmDSZJjdqsA==} + '@oxlint/binding-linux-riscv64-musl@1.76.0': + resolution: {integrity: sha512-ZIga3097VJZolGZk6SrIAUokIGfRkxRlhiHDUznZptGBfwrhD7pNfD1rzEzsCwvk/1DX0A1bLz+liuNh5QKIVQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxlint/binding-linux-s390x-gnu@1.77.0': - resolution: {integrity: sha512-sPLzEcNvxd/oyVQ5oZo92CiHkFkpBeRop13E/P3TPY+hZfXHKCOWKI70TE2RYwMKFJDc20EMjH16L7NZICtKTw==} + '@oxlint/binding-linux-s390x-gnu@1.76.0': + resolution: {integrity: sha512-ZGiiA7pFzMJSyMWYZTVlPgbTsx+Vl8ihLGMIujPwaslUF7kIPPWAbVmAlTc+9lWDV+DCiB8Ikixu+lSHeOIIWQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxlint/binding-linux-x64-gnu@1.77.0': - resolution: {integrity: sha512-1Oh2ssH2L7lwyvkdSqaMUfsGfwU2Wfvew+obBUYjRVqhpBcUpwnsPSEr1IzVi9XqkuY10geiLsNKecqaZC34Dw==} + '@oxlint/binding-linux-x64-gnu@1.76.0': + resolution: {integrity: sha512-JLiy5WuvEBFTT6ErIFV35SLzi0R7Iri6MKU6dZbTxfIx8pndbbPs3Mj780nMipBFcPkti+okAPOJ9POKkHFEgg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-x64-musl@1.77.0': - resolution: {integrity: sha512-0j/2wRgNGO+Qj/M1uu/p57h/hFTTWWcfie0ufkbabeus2s5+/QqkCflnMOwLLN5m2GsNeWp4xdl4cPa4n7QCOQ==} + '@oxlint/binding-linux-x64-musl@1.76.0': + resolution: {integrity: sha512-z7lgKQtbo/I1NIe8G5NHLesxJDv0tRSUWTpXKb9Pm3E9nKFKfO4IOSDtFroKgXtOYb0jQbcdH+0wzTyMXVes+A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxlint/binding-openharmony-arm64@1.77.0': - resolution: {integrity: sha512-BJ/j54qS0usEnyDkLYURMj2iiD9h5Cyy+ppzeMSXBGRXaGRNWnj1Mw14NqWMR5E/PzdgB30OOCCzLzbRoduafw==} + '@oxlint/binding-openharmony-arm64@1.76.0': + resolution: {integrity: sha512-JOjKymIpb9QcYfEhZsN6h4V9Ivd474W38cNIBRv6bg2TbIvogbMTH0Mg6YWW9TiRDqfcX+/Hyfsbo5vcSE5guQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxlint/binding-win32-arm64-msvc@1.77.0': - resolution: {integrity: sha512-Yh8w+g2Lpx7StrvtYkoz9JJvXjB9wxgFChFNb85nrXm/wj/XTwGWS1hve9+900HL7llrntYB3YP+y32E3tRqzA==} + '@oxlint/binding-win32-arm64-msvc@1.76.0': + resolution: {integrity: sha512-pqDWZiwcmByWUEm1NFUBNiT6aentCcaoMWJv0HbXEmuYermJ4sg8ppVrshubYP2MZ6SHccJJcpr6x469PuDFIw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxlint/binding-win32-ia32-msvc@1.77.0': - resolution: {integrity: sha512-zja5b7+6a7UsRFgAQSrnax5vrzliEyNPLCjfXONu/vTWswaIVZGFajJZptaeRvPE4LghtFdAzVFlexTm7MVTGA==} + '@oxlint/binding-win32-ia32-msvc@1.76.0': + resolution: {integrity: sha512-Ba0O659kgMv6pwO3z9PdO+K3aMxQRaw9HnG+e6AtOfgwcKFvYilciQYBoUBmxfQvOCKZe1SwjMkuB542NkuDMQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxlint/binding-win32-x64-msvc@1.77.0': - resolution: {integrity: sha512-+teyvPDZ2RjUvo+SuCqS/UhaJl1QtdW5fWT5NJTV61V5MIuIS90Db9LixmtEGvXixyttiK62P96MSu3UlpviBw==} + '@oxlint/binding-win32-x64-msvc@1.76.0': + resolution: {integrity: sha512-5qcirPHO8nKfkoowEVWtpAoVTcYDy6g0UT0NGic450Qv8J2NrOqg4uQ8QppRP4MDTC7Xx47lbZnmadTH03CGGA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -787,8 +787,8 @@ packages: '@swc/counter@0.1.3': resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - '@swc/types@0.1.27': - resolution: {integrity: sha512-K6h3iUlqeM946U4sXFYeahefR1YBbXJvko+hv8WS8/0BNJ4OHiHRywMnQUJCqkR7Y9+hqQ1TvEpiKqUhz7NEFg==} + '@swc/types@0.1.28': + resolution: {integrity: sha512-V6Mnml8v09QALx6K0elJ7o9K/MkVDtW3t6L+7Ou/JcWtb3xwId2AH4FeOceySd2JaO87IMw4+6vSZxLm34LPbw==} '@testing-library/dom@10.4.1': resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==} @@ -1011,130 +1011,130 @@ packages: '@vitest/utils@4.1.10': resolution: {integrity: sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==} - '@yuku-codegen/binding-darwin-arm64@0.8.1': - resolution: {integrity: sha512-Ck0RmDBLc+R0dZpfTXmJFAvcuPf+npbJF1T/VhC9pPDGjNEOGwn4DwFcjhg//DfNIO+xgktsLSt5S4v0MFrToA==} + '@yuku-codegen/binding-darwin-arm64@0.8.2': + resolution: {integrity: sha512-jphw5TTa0heJQ23YGkiOHyenSpxFVV+w6pJGTfQANq2mfPmlsSsJsZ/ZTjxPu1VRlZLIPyuVH5TIB7wdpYg3AA==} cpu: [arm64] os: [darwin] - '@yuku-codegen/binding-darwin-x64@0.8.1': - resolution: {integrity: sha512-6BDLLWi8wHbCghgkajS+OeVJX2jLY9pY9HV/qH9daLP1XCyMSPssEiXjKyPiJq+St5b+zcPgMEBF8cgJDNhMMQ==} + '@yuku-codegen/binding-darwin-x64@0.8.2': + resolution: {integrity: sha512-sBvF/E8R4fnzTPN5/zYoJiIyX/TJHgjJs6QEEpUxWF6VA4NiEKR1CP2IWwZR7NMx0d2x/ZmfeOPC+BD3qXakBQ==} cpu: [x64] os: [darwin] - '@yuku-codegen/binding-freebsd-x64@0.8.1': - resolution: {integrity: sha512-Rd1PHfw2mxC8y00kWxYWDClnBC1NbSwPuq0zKLYPggE7mlOnV+eQ15futtaz/Q4BP+jOtEv9elxvP7by20h6Kw==} + '@yuku-codegen/binding-freebsd-x64@0.8.2': + resolution: {integrity: sha512-QZx/eDl84slDG6iNo7Dwn5wNbJiYYqfYW0gmLZ09U7UXr/HSHS/hc8mxw5IZAN+c7qe02NsZIlRQG2XfryE2lA==} cpu: [x64] os: [freebsd] - '@yuku-codegen/binding-linux-arm-gnu@0.8.1': - resolution: {integrity: sha512-/XGncN6jQ/CwXNgWwo+XnsUmILY1q1mbS1f38XnYOHw3DOKOISxVIAlD9IsmdrHLAUAncFlgFS3ky4OO9fvjyg==} + '@yuku-codegen/binding-linux-arm-gnu@0.8.2': + resolution: {integrity: sha512-ECjv/naK2fa5ukNicK6hNcdacs7po+bqlE6AlTgBLXF0mSalSm4SGGlcSShIrxpoWs5wlyuJG1IuRwZcFscefA==} cpu: [arm] os: [linux] libc: [glibc] - '@yuku-codegen/binding-linux-arm-musl@0.8.1': - resolution: {integrity: sha512-Rxut53qx3JbTkQ8+A6I8Lrplwz55HQVCjEsTsWF1uOpfgALdvuKSMPIE0gVqefEEcOSA9ASklbNacmXwiqnaMw==} + '@yuku-codegen/binding-linux-arm-musl@0.8.2': + resolution: {integrity: sha512-ZSUk8MHq1V+iMI2ATjOYzZ1cQOGxAkupwB7KJ4EYVQhkFscQQ5afOEODlIUcspiPbO44WsC3i0Gj5O+ruevgCg==} cpu: [arm] os: [linux] libc: [musl] - '@yuku-codegen/binding-linux-arm64-gnu@0.8.1': - resolution: {integrity: sha512-hBNkUPHX04BjB2oIIgIlYT2tog9x0rmBVkZep0f4LLYyFhdJfYM/s2pJ0c8ehQhhkQaJFokW4CxGhiVvVLlzWg==} + '@yuku-codegen/binding-linux-arm64-gnu@0.8.2': + resolution: {integrity: sha512-RZ3I2Kzg4sAm4zUGigtl5966T3otCmSVDMQGKc60GpI9JgTOLZ5EiaooUda+e6RZQrkluIG4YD+fTtKYIEHu+g==} cpu: [arm64] os: [linux] libc: [glibc] - '@yuku-codegen/binding-linux-arm64-musl@0.8.1': - resolution: {integrity: sha512-ePZZnmOxArA4jA3AWlJj3WdY5z1ahQSLwAYrv7mozkJVcrBz2wZgy8l9ukcHFpTxPyhxCAea4gBSZEqqsCYE3A==} + '@yuku-codegen/binding-linux-arm64-musl@0.8.2': + resolution: {integrity: sha512-xHa/054f50MKZl5S1FGQET3gCeXZN751yBuSDS3+3YwGxDNdoIvB3BksGse2wVyTz79kMSwG0NymeuorKAVehw==} cpu: [arm64] os: [linux] libc: [musl] - '@yuku-codegen/binding-linux-x64-gnu@0.8.1': - resolution: {integrity: sha512-LGAEXnQ4Xg/BtOuEirABwa9ByUTXFjealqXXAHVFb8EEmZu5QeHLtsdB2MA2IcYVAgW/QPkyqfnd80R4FltI2A==} + '@yuku-codegen/binding-linux-x64-gnu@0.8.2': + resolution: {integrity: sha512-nKLb7AU6A/pQk8gS/EEoRK7AarvczmIv7P2UyWTcp5eXGQ+qI/7tmKz67pgcY/2GjcATKlNA1OOCQ60sqWsMNQ==} cpu: [x64] os: [linux] libc: [glibc] - '@yuku-codegen/binding-linux-x64-musl@0.8.1': - resolution: {integrity: sha512-PPDMcQIKCNTOaLBBKh9SBM1EAPcsvnlShMAxq2D/twnSCSEUI9LfrR+G9J4P3o+46ZS4WN8mjZsj8p4PKOnKgw==} + '@yuku-codegen/binding-linux-x64-musl@0.8.2': + resolution: {integrity: sha512-TGUZYRhrO21ZyjP/MMma0qSzfWqo//aMc/DTiOk3MgD+H7wWTPun4FsEufheGYgHPptCke2yqiiJGaH+o/9D2w==} cpu: [x64] os: [linux] libc: [musl] - '@yuku-codegen/binding-win32-arm64@0.8.1': - resolution: {integrity: sha512-W8A1QpstKYhg4e56s13L4ByQprQ1OXY3QFoNPIh6+4v/DEgqfhJ9ApU++e7zHQCQrhYjyQC/uWtxUcRqpyL/7Q==} + '@yuku-codegen/binding-win32-arm64@0.8.2': + resolution: {integrity: sha512-q8c+d0BHUXAVk9hUuozD+VqoNYCl7cCmd3hKddjGUo5EmHK/iPro7bX0WJ0XeuJJewja4KTXg2Q2Ru3QOqd83g==} cpu: [arm64] os: [win32] - '@yuku-codegen/binding-win32-x64@0.8.1': - resolution: {integrity: sha512-zH7g7pLjfl3uZaNvYzd1PnCerU9fvhS16B7Z0z4Ai0S/oaGI53Y2xh8ylFDvDvmquEP7vay4O/zuLgvZeEsxVA==} + '@yuku-codegen/binding-win32-x64@0.8.2': + resolution: {integrity: sha512-rQLrBqyBYhK+ScykCedXv7E88ddrHH27GS85vyHpCx1SYxJD4HlGfDyCMP+qvuwkyNs7AIgcJ/xIAknrH+t/pg==} cpu: [x64] os: [win32] - '@yuku-parser/binding-darwin-arm64@0.8.1': - resolution: {integrity: sha512-iKQinrhsdxsGJ38msw4KaD7yotWw5N2nqMLeOPD+ttpZQKJc9nGL3VHMtISzCJ9Q09g0N3m91mYRFnIbXfhhig==} + '@yuku-parser/binding-darwin-arm64@0.8.2': + resolution: {integrity: sha512-kgbuuJAM2T99hnROb/N79pFBT/HrmEOWKFYN6+gmZWTaGG+JAYaCBKMGiOQA97tWkbGgRHMbAdn5AkKDcP4VnA==} cpu: [arm64] os: [darwin] - '@yuku-parser/binding-darwin-x64@0.8.1': - resolution: {integrity: sha512-k7zt2H3sWbYzwTGAK2TT6ma18w1XpwFAWgmBHiaMGHVe63aArrtO+55r6g7chXJ4joB6lb8SxYFyRQ974xfawQ==} + '@yuku-parser/binding-darwin-x64@0.8.2': + resolution: {integrity: sha512-b957p6PfpWdgziR//GB7em5ah557PcsRkTqXtRiG+mK6LA4yulnZWFoQJpjPcwbNyYCMXMVkuQOds7Qa9VKNIA==} cpu: [x64] os: [darwin] - '@yuku-parser/binding-freebsd-x64@0.8.1': - resolution: {integrity: sha512-tQjrlkE/vYEBXZ+pM59FerIVD4Zfs2OpRvN3e8oo12pTcAbwTTxteZKWaedfUsZr+gKO4tLLAaFaFIwa5fQJFw==} + '@yuku-parser/binding-freebsd-x64@0.8.2': + resolution: {integrity: sha512-kMYxxeSRaCpp0bjwUMuoZulf1/QxWBf4jhtdFJU4f8+USHL8Pzb1q0kg5NO1XNUkxlc9wAE4aieS5n/WHY8qjg==} cpu: [x64] os: [freebsd] - '@yuku-parser/binding-linux-arm-gnu@0.8.1': - resolution: {integrity: sha512-LZQgyer5d5i1f5oot+x6EhANXPD4FeCgz2CiSiWFSFBeG1U2m5jz65LD8gZwzy4CP4QVxQFyX9BazVRskTbwuQ==} + '@yuku-parser/binding-linux-arm-gnu@0.8.2': + resolution: {integrity: sha512-mC3u9kYB0ypXwXrT3Jf4g47HKJBbw+fltNp2zd5vUOXjOlx9RmDHhny00V0eHWkZ4xkpOwrolH5KhbA7KB3mIA==} cpu: [arm] os: [linux] libc: [glibc] - '@yuku-parser/binding-linux-arm-musl@0.8.1': - resolution: {integrity: sha512-69G1N4bPkygrus/ahtFxVdv9lzfvS65fuyMdDknn5BZU/gfFGBJyHeJ8UGgLPTyR3YptlJMuZhEkdgp6Qhfz2g==} + '@yuku-parser/binding-linux-arm-musl@0.8.2': + resolution: {integrity: sha512-g78kWFRpkLBQZVYilzA1a4kvlYBModKEn5wHqoo4GJVtPWlKl3EUa6E6oHWzlpy/a0YwwBKF9Z/I1GxNz64FJg==} cpu: [arm] os: [linux] libc: [musl] - '@yuku-parser/binding-linux-arm64-gnu@0.8.1': - resolution: {integrity: sha512-XL5+JpKCl1ghQTnZezy41NzmPdk4rZ6s0Z8qvGsgNPJ6yrSD7Ne8iz20SZZd/nW720qHiJy/ux62rwzZ+/clMg==} + '@yuku-parser/binding-linux-arm64-gnu@0.8.2': + resolution: {integrity: sha512-8nB5BhVz1lriSFi2H4zUERtpwKljVbGi2BKNT+QoHCspkFCaWEs0C7iEwT2vuY3xC8yBmh79+PEZ5VsQnOEKXA==} cpu: [arm64] os: [linux] libc: [glibc] - '@yuku-parser/binding-linux-arm64-musl@0.8.1': - resolution: {integrity: sha512-Rj290yfrWlrV4/+HrAuoeJXMHdoNubJWKdhg1QDa/mvqa8MUYFd4IHuVYjP/WdQzEgOAWGrLC48vcnge6U3jbg==} + '@yuku-parser/binding-linux-arm64-musl@0.8.2': + resolution: {integrity: sha512-WhW8rN3ZszHGenlEOLMygsNayiT/30Nnmr+xHT1lC9WzyVJ3dBQCkEXtOkg1o1Ne1XhvpHCpjvcCQcWazyv7tg==} cpu: [arm64] os: [linux] libc: [musl] - '@yuku-parser/binding-linux-x64-gnu@0.8.1': - resolution: {integrity: sha512-d3IDkhAxiUTVuGI6BKIMKUyLe7ZxMY5yLqyvvTqJD1WPnE0eJTsLeRFRBv7/HXsnAzDs0IgvoG5bjvUkHZ5kSg==} + '@yuku-parser/binding-linux-x64-gnu@0.8.2': + resolution: {integrity: sha512-Mwwr02Qz5ooJsca767PvYj7tL22+tpAlOPcVREK88tAIaM8DXtQQQq5tKZfWw4rdEEUpN4RkDLuCeENctmE23A==} cpu: [x64] os: [linux] libc: [glibc] - '@yuku-parser/binding-linux-x64-musl@0.8.1': - resolution: {integrity: sha512-Oyp+2gGYKK/AvN2ZoauRn1LGPdkjME5/TE/l4a9mT0JdNeiRTvno42383bt04MWnAZcYS4Hv7YsiFOXUBeLdpA==} + '@yuku-parser/binding-linux-x64-musl@0.8.2': + resolution: {integrity: sha512-j4leuc7pNI1MvNkqf0OiNjqrRUf51FvAL32JQNoW8C9Z/HxSdC7G8tagT6y90lRb7/P8ec08ZTbL9JfPr4T/cQ==} cpu: [x64] os: [linux] libc: [musl] - '@yuku-parser/binding-win32-arm64@0.8.1': - resolution: {integrity: sha512-H77lYgICWRZycGmLaojzg0aSs3Z3v8SZWkcEjl1Ql3s+Km2SyiQcZ7RGq++Wh5nJxpiDJGAzYDC74XqMNm2ZHg==} + '@yuku-parser/binding-win32-arm64@0.8.2': + resolution: {integrity: sha512-Y0MKfARGhQUc0BIcZnTeRWzGUF9o/OrzMhbkJ8lKsOPExXSx+J8+A+UPqlc1iVLA/KkDMZe1drkAShuYE7M2Gg==} cpu: [arm64] os: [win32] - '@yuku-parser/binding-win32-x64@0.8.1': - resolution: {integrity: sha512-ABniFzqYYn64NUEgmHTb6JxEzAlpmPu4cpMFjMBlR6cJXqL+vd7K1ae/yrt+NhUduHkJWJqG4lbHbV2yp9el3w==} + '@yuku-parser/binding-win32-x64@0.8.2': + resolution: {integrity: sha512-OdZowyOekNJca4uOKyNBY+BaDG0Pa0biE5bxyY4HwToK/Gs/UMZ54E1MZuPVPfq9kzEH4roOZQQN1ulBajwgjQ==} cpu: [x64] os: [win32] - '@yuku-toolchain/types@0.8.1': - resolution: {integrity: sha512-HcGEV3kOn9evBTm2ARYOFNKAI7sY9twQozCVd9EVdlsBlnKi0a2iv8xXxYVHFCBQpX3SvvPXBhk8lcK6NUTdNg==} + '@yuku-toolchain/types@0.8.2': + resolution: {integrity: sha512-ODYjxmbajkNCaONqd7dfIsH+h2ddRiI4YsSuQXy1Sg0ZSTvOETcNz5EiEIOqVSLnHDs1+r+b2yuS9eOw3ChguA==} ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} @@ -1260,8 +1260,8 @@ packages: resolution: {integrity: sha512-XSt8tMzbW9ymE7687xztkO1ckR7qJNQ3LywY9vlYGhGi3zXrGBHuUo2Cl1ztZaICW+1eAGdkLbj6iwVqDT33kg==} engines: {node: '>=20.0.0'} - hono@4.13.0: - resolution: {integrity: sha512-jhunvfHWxd7J5EFfSgH4xsYJzSe/lfqbUCxiyyeaQasUsXeEHXtzVid+7EOGByc5JnFa23SSFL3Y2RV/z1T+eQ==} + hono@4.12.33: + resolution: {integrity: sha512-+SwvkaiJtxsiPjhy9LivY/1m7UsNqCJetM1BrZl9A5DkQhlbHQDU730mMiDPWjnoCYOM8Chf3WrCJw27kNTPFQ==} engines: {node: '>=16.9.0'} hookable@6.1.1: @@ -1381,8 +1381,8 @@ packages: resolution: {integrity: sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==} engines: {node: '>=12.20.0'} - oxfmt@0.62.0: - resolution: {integrity: sha512-vxgGHTmnDU9j4CX7dDBLzxgmHxfda/yPcgJkGCMUSCwRmz+euo/V08xXLNgXTeqAB9Fhf3Pe2nO1RNKLCVgphQ==} + oxfmt@0.61.0: + resolution: {integrity: sha512-DxdHBEMYpcEnHoUHjjOigUqV2TYKsvxLwUPXnVYBjgFdqrcQ/91OtwubtZ2PUodCs3sStI8R5Qw3fKNGK4e8wQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -1398,8 +1398,8 @@ packages: resolution: {integrity: sha512-KjK/XLcXr1DSyonKhsuFqJRiuKqcyG9j3LJ8nkOsrLzGvodBPqzHOKauy10asLMDI0sUpvb+1sxlzff3udZvfg==} hasBin: true - oxlint@1.77.0: - resolution: {integrity: sha512-qnGh8XJHaQ0dprrDXNQZgS0FgjI6v+V3+X8DwmaV++5Aamy6jGKfDdQ1TUvhUxtmKFAbEf4/WeO5QZX+5WSngg==} + oxlint@1.76.0: + resolution: {integrity: sha512-6QoFioEU4fNdiUx/2Eo6TRd6NG7H7njnRCz8rhB66cZmMHDTqcm1Rjvl8Wry+ZTQMBAmyb4Mlf62Mk5X+eHSOw==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -1449,8 +1449,8 @@ packages: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - publint@0.3.23: - resolution: {integrity: sha512-5MQipUPcB7MWw84zLUkHrg/H/UBtk3LL+A0GngTTBSsiNJLQurMUaSIRG3edlOrRz4UFe0AOKK9TZdIWviV+jQ==} + publint@0.3.22: + resolution: {integrity: sha512-6Z/scsr5CA7APdwyF35EY88CqgDj1textWuY788DVTJYPCWVv/Wn9G6KmLnrVRnStgYcahqN4wCDLZGSbQJ69w==} engines: {node: '>=18'} hasBin: true @@ -1514,10 +1514,6 @@ packages: tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - tinyexec@1.2.4: - resolution: {integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==} - engines: {node: '>=18'} - tinyexec@1.3.0: resolution: {integrity: sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ==} engines: {node: '>=18'} @@ -1711,14 +1707,14 @@ packages: engines: {node: '>= 14.6'} hasBin: true - yuku-ast@0.8.1: - resolution: {integrity: sha512-+k1E2f08y0k1+vpdD1KUCzDh2JXvwirMa8YR2Jr7VCS4zAo3eT5A/HbJCqaVGd6idaPY0gwLM9C4seEY4h10Hw==} + yuku-ast@0.8.2: + resolution: {integrity: sha512-GIxDPIyxjAKmF7J2AwrMDt2oCn+PZ0i7e+CIrvt5Tf0LbBS+v/xdbaAF1sUwrbntDq4YqtF7l6OG0amg1qhxWA==} - yuku-codegen@0.8.1: - resolution: {integrity: sha512-/4Sbg9K9HpCe3PidmMbs9TzJ62gq3KmQY279TB0EGKdMoM8LfcmIg4E9wS2J/ylbFuQaWcYqf5dBKr8zubdlKA==} + yuku-codegen@0.8.2: + resolution: {integrity: sha512-gkogheUZ41wQv3NWOfE4rwKgqW9DhfX1Afw0gECsxTl7A0oN3LrTfjYP/Vx1sT9d4pqNroqpsCY38ba6zFit3Q==} - yuku-parser@0.8.1: - resolution: {integrity: sha512-YvUz2jdFMIq0QjN8LmI32ox+RBCn3l8VToAXVQ5QFfLTxSxmGZS6JP80ptePEju+CpeTdINLmUm7Ewodzh1QnQ==} + yuku-parser@0.8.2: + resolution: {integrity: sha512-VD94CjEoAwCRoJzO4S151dGMlR9l1ned1VLYjsUIPH/v9N/MIP8yZD8K/p3hYon3VfuuIfUNvl3E1Ujq+i4Blw==} zod@4.4.3: resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==} @@ -1757,7 +1753,7 @@ snapshots: '@jridgewell/sourcemap-codec@1.5.5': {} - '@napi-rs/wasm-runtime@1.2.1(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3)': + '@napi-rs/wasm-runtime@1.2.2(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3)': dependencies: '@emnapi/core': 2.0.0-alpha.3 '@emnapi/runtime': 2.0.0-alpha.3 @@ -1766,61 +1762,61 @@ snapshots: '@oxc-project/types@0.142.0': {} - '@oxfmt/binding-android-arm-eabi@0.62.0': + '@oxfmt/binding-android-arm-eabi@0.61.0': optional: true - '@oxfmt/binding-android-arm64@0.62.0': + '@oxfmt/binding-android-arm64@0.61.0': optional: true - '@oxfmt/binding-darwin-arm64@0.62.0': + '@oxfmt/binding-darwin-arm64@0.61.0': optional: true - '@oxfmt/binding-darwin-x64@0.62.0': + '@oxfmt/binding-darwin-x64@0.61.0': optional: true - '@oxfmt/binding-freebsd-x64@0.62.0': + '@oxfmt/binding-freebsd-x64@0.61.0': optional: true - '@oxfmt/binding-linux-arm-gnueabihf@0.62.0': + '@oxfmt/binding-linux-arm-gnueabihf@0.61.0': optional: true - '@oxfmt/binding-linux-arm-musleabihf@0.62.0': + '@oxfmt/binding-linux-arm-musleabihf@0.61.0': optional: true - '@oxfmt/binding-linux-arm64-gnu@0.62.0': + '@oxfmt/binding-linux-arm64-gnu@0.61.0': optional: true - '@oxfmt/binding-linux-arm64-musl@0.62.0': + '@oxfmt/binding-linux-arm64-musl@0.61.0': optional: true - '@oxfmt/binding-linux-ppc64-gnu@0.62.0': + '@oxfmt/binding-linux-ppc64-gnu@0.61.0': optional: true - '@oxfmt/binding-linux-riscv64-gnu@0.62.0': + '@oxfmt/binding-linux-riscv64-gnu@0.61.0': optional: true - '@oxfmt/binding-linux-riscv64-musl@0.62.0': + '@oxfmt/binding-linux-riscv64-musl@0.61.0': optional: true - '@oxfmt/binding-linux-s390x-gnu@0.62.0': + '@oxfmt/binding-linux-s390x-gnu@0.61.0': optional: true - '@oxfmt/binding-linux-x64-gnu@0.62.0': + '@oxfmt/binding-linux-x64-gnu@0.61.0': optional: true - '@oxfmt/binding-linux-x64-musl@0.62.0': + '@oxfmt/binding-linux-x64-musl@0.61.0': optional: true - '@oxfmt/binding-openharmony-arm64@0.62.0': + '@oxfmt/binding-openharmony-arm64@0.61.0': optional: true - '@oxfmt/binding-win32-arm64-msvc@0.62.0': + '@oxfmt/binding-win32-arm64-msvc@0.61.0': optional: true - '@oxfmt/binding-win32-ia32-msvc@0.62.0': + '@oxfmt/binding-win32-ia32-msvc@0.61.0': optional: true - '@oxfmt/binding-win32-x64-msvc@0.62.0': + '@oxfmt/binding-win32-x64-msvc@0.61.0': optional: true '@oxlint-tsgolint/darwin-arm64@7.0.2001': @@ -1841,61 +1837,61 @@ snapshots: '@oxlint-tsgolint/win32-x64@7.0.2001': optional: true - '@oxlint/binding-android-arm-eabi@1.77.0': + '@oxlint/binding-android-arm-eabi@1.76.0': optional: true - '@oxlint/binding-android-arm64@1.77.0': + '@oxlint/binding-android-arm64@1.76.0': optional: true - '@oxlint/binding-darwin-arm64@1.77.0': + '@oxlint/binding-darwin-arm64@1.76.0': optional: true - '@oxlint/binding-darwin-x64@1.77.0': + '@oxlint/binding-darwin-x64@1.76.0': optional: true - '@oxlint/binding-freebsd-x64@1.77.0': + '@oxlint/binding-freebsd-x64@1.76.0': optional: true - '@oxlint/binding-linux-arm-gnueabihf@1.77.0': + '@oxlint/binding-linux-arm-gnueabihf@1.76.0': optional: true - '@oxlint/binding-linux-arm-musleabihf@1.77.0': + '@oxlint/binding-linux-arm-musleabihf@1.76.0': optional: true - '@oxlint/binding-linux-arm64-gnu@1.77.0': + '@oxlint/binding-linux-arm64-gnu@1.76.0': optional: true - '@oxlint/binding-linux-arm64-musl@1.77.0': + '@oxlint/binding-linux-arm64-musl@1.76.0': optional: true - '@oxlint/binding-linux-ppc64-gnu@1.77.0': + '@oxlint/binding-linux-ppc64-gnu@1.76.0': optional: true - '@oxlint/binding-linux-riscv64-gnu@1.77.0': + '@oxlint/binding-linux-riscv64-gnu@1.76.0': optional: true - '@oxlint/binding-linux-riscv64-musl@1.77.0': + '@oxlint/binding-linux-riscv64-musl@1.76.0': optional: true - '@oxlint/binding-linux-s390x-gnu@1.77.0': + '@oxlint/binding-linux-s390x-gnu@1.76.0': optional: true - '@oxlint/binding-linux-x64-gnu@1.77.0': + '@oxlint/binding-linux-x64-gnu@1.76.0': optional: true - '@oxlint/binding-linux-x64-musl@1.77.0': + '@oxlint/binding-linux-x64-musl@1.76.0': optional: true - '@oxlint/binding-openharmony-arm64@1.77.0': + '@oxlint/binding-openharmony-arm64@1.76.0': optional: true - '@oxlint/binding-win32-arm64-msvc@1.77.0': + '@oxlint/binding-win32-arm64-msvc@1.76.0': optional: true - '@oxlint/binding-win32-ia32-msvc@1.77.0': + '@oxlint/binding-win32-ia32-msvc@1.76.0': optional: true - '@oxlint/binding-win32-x64-msvc@1.77.0': + '@oxlint/binding-win32-x64-msvc@1.76.0': optional: true '@polka/url@1.0.0-next.29': {} @@ -1948,7 +1944,7 @@ snapshots: dependencies: '@emnapi/core': 2.0.0-alpha.3 '@emnapi/runtime': 2.0.0-alpha.3 - '@napi-rs/wasm-runtime': 1.2.1(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3) + '@napi-rs/wasm-runtime': 1.2.2(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3) optional: true '@rolldown/binding-win32-arm64-msvc@1.2.1': @@ -2000,7 +1996,7 @@ snapshots: '@swc/core@1.15.47': dependencies: '@swc/counter': 0.1.3 - '@swc/types': 0.1.27 + '@swc/types': 0.1.28 optionalDependencies: '@swc/core-darwin-arm64': 1.15.47 '@swc/core-darwin-x64': 1.15.47 @@ -2017,7 +2013,7 @@ snapshots: '@swc/counter@0.1.3': {} - '@swc/types@0.1.27': + '@swc/types@0.1.28': dependencies: '@swc/counter': 0.1.3 @@ -2213,73 +2209,73 @@ snapshots: convert-source-map: 2.0.0 tinyrainbow: 3.1.1 - '@yuku-codegen/binding-darwin-arm64@0.8.1': + '@yuku-codegen/binding-darwin-arm64@0.8.2': optional: true - '@yuku-codegen/binding-darwin-x64@0.8.1': + '@yuku-codegen/binding-darwin-x64@0.8.2': optional: true - '@yuku-codegen/binding-freebsd-x64@0.8.1': + '@yuku-codegen/binding-freebsd-x64@0.8.2': optional: true - '@yuku-codegen/binding-linux-arm-gnu@0.8.1': + '@yuku-codegen/binding-linux-arm-gnu@0.8.2': optional: true - '@yuku-codegen/binding-linux-arm-musl@0.8.1': + '@yuku-codegen/binding-linux-arm-musl@0.8.2': optional: true - '@yuku-codegen/binding-linux-arm64-gnu@0.8.1': + '@yuku-codegen/binding-linux-arm64-gnu@0.8.2': optional: true - '@yuku-codegen/binding-linux-arm64-musl@0.8.1': + '@yuku-codegen/binding-linux-arm64-musl@0.8.2': optional: true - '@yuku-codegen/binding-linux-x64-gnu@0.8.1': + '@yuku-codegen/binding-linux-x64-gnu@0.8.2': optional: true - '@yuku-codegen/binding-linux-x64-musl@0.8.1': + '@yuku-codegen/binding-linux-x64-musl@0.8.2': optional: true - '@yuku-codegen/binding-win32-arm64@0.8.1': + '@yuku-codegen/binding-win32-arm64@0.8.2': optional: true - '@yuku-codegen/binding-win32-x64@0.8.1': + '@yuku-codegen/binding-win32-x64@0.8.2': optional: true - '@yuku-parser/binding-darwin-arm64@0.8.1': + '@yuku-parser/binding-darwin-arm64@0.8.2': optional: true - '@yuku-parser/binding-darwin-x64@0.8.1': + '@yuku-parser/binding-darwin-x64@0.8.2': optional: true - '@yuku-parser/binding-freebsd-x64@0.8.1': + '@yuku-parser/binding-freebsd-x64@0.8.2': optional: true - '@yuku-parser/binding-linux-arm-gnu@0.8.1': + '@yuku-parser/binding-linux-arm-gnu@0.8.2': optional: true - '@yuku-parser/binding-linux-arm-musl@0.8.1': + '@yuku-parser/binding-linux-arm-musl@0.8.2': optional: true - '@yuku-parser/binding-linux-arm64-gnu@0.8.1': + '@yuku-parser/binding-linux-arm64-gnu@0.8.2': optional: true - '@yuku-parser/binding-linux-arm64-musl@0.8.1': + '@yuku-parser/binding-linux-arm64-musl@0.8.2': optional: true - '@yuku-parser/binding-linux-x64-gnu@0.8.1': + '@yuku-parser/binding-linux-x64-gnu@0.8.2': optional: true - '@yuku-parser/binding-linux-x64-musl@0.8.1': + '@yuku-parser/binding-linux-x64-musl@0.8.2': optional: true - '@yuku-parser/binding-win32-arm64@0.8.1': + '@yuku-parser/binding-win32-arm64@0.8.2': optional: true - '@yuku-parser/binding-win32-x64@0.8.1': + '@yuku-parser/binding-win32-x64@0.8.2': optional: true - '@yuku-toolchain/types@0.8.1': {} + '@yuku-toolchain/types@0.8.2': {} ansi-regex@5.0.1: {} @@ -2368,7 +2364,7 @@ snapshots: - bufferutil - utf-8-validate - hono@4.13.0: {} + hono@4.12.33: {} hookable@6.1.1: {} @@ -2445,29 +2441,29 @@ snapshots: obug@2.1.4: {} - oxfmt@0.62.0: + oxfmt@0.61.0: dependencies: tinypool: 2.1.0 optionalDependencies: - '@oxfmt/binding-android-arm-eabi': 0.62.0 - '@oxfmt/binding-android-arm64': 0.62.0 - '@oxfmt/binding-darwin-arm64': 0.62.0 - '@oxfmt/binding-darwin-x64': 0.62.0 - '@oxfmt/binding-freebsd-x64': 0.62.0 - '@oxfmt/binding-linux-arm-gnueabihf': 0.62.0 - '@oxfmt/binding-linux-arm-musleabihf': 0.62.0 - '@oxfmt/binding-linux-arm64-gnu': 0.62.0 - '@oxfmt/binding-linux-arm64-musl': 0.62.0 - '@oxfmt/binding-linux-ppc64-gnu': 0.62.0 - '@oxfmt/binding-linux-riscv64-gnu': 0.62.0 - '@oxfmt/binding-linux-riscv64-musl': 0.62.0 - '@oxfmt/binding-linux-s390x-gnu': 0.62.0 - '@oxfmt/binding-linux-x64-gnu': 0.62.0 - '@oxfmt/binding-linux-x64-musl': 0.62.0 - '@oxfmt/binding-openharmony-arm64': 0.62.0 - '@oxfmt/binding-win32-arm64-msvc': 0.62.0 - '@oxfmt/binding-win32-ia32-msvc': 0.62.0 - '@oxfmt/binding-win32-x64-msvc': 0.62.0 + '@oxfmt/binding-android-arm-eabi': 0.61.0 + '@oxfmt/binding-android-arm64': 0.61.0 + '@oxfmt/binding-darwin-arm64': 0.61.0 + '@oxfmt/binding-darwin-x64': 0.61.0 + '@oxfmt/binding-freebsd-x64': 0.61.0 + '@oxfmt/binding-linux-arm-gnueabihf': 0.61.0 + '@oxfmt/binding-linux-arm-musleabihf': 0.61.0 + '@oxfmt/binding-linux-arm64-gnu': 0.61.0 + '@oxfmt/binding-linux-arm64-musl': 0.61.0 + '@oxfmt/binding-linux-ppc64-gnu': 0.61.0 + '@oxfmt/binding-linux-riscv64-gnu': 0.61.0 + '@oxfmt/binding-linux-riscv64-musl': 0.61.0 + '@oxfmt/binding-linux-s390x-gnu': 0.61.0 + '@oxfmt/binding-linux-x64-gnu': 0.61.0 + '@oxfmt/binding-linux-x64-musl': 0.61.0 + '@oxfmt/binding-openharmony-arm64': 0.61.0 + '@oxfmt/binding-win32-arm64-msvc': 0.61.0 + '@oxfmt/binding-win32-ia32-msvc': 0.61.0 + '@oxfmt/binding-win32-x64-msvc': 0.61.0 oxlint-tsgolint@7.0.2001: optionalDependencies: @@ -2478,27 +2474,27 @@ snapshots: '@oxlint-tsgolint/win32-arm64': 7.0.2001 '@oxlint-tsgolint/win32-x64': 7.0.2001 - oxlint@1.77.0(oxlint-tsgolint@7.0.2001): + oxlint@1.76.0(oxlint-tsgolint@7.0.2001): optionalDependencies: - '@oxlint/binding-android-arm-eabi': 1.77.0 - '@oxlint/binding-android-arm64': 1.77.0 - '@oxlint/binding-darwin-arm64': 1.77.0 - '@oxlint/binding-darwin-x64': 1.77.0 - '@oxlint/binding-freebsd-x64': 1.77.0 - '@oxlint/binding-linux-arm-gnueabihf': 1.77.0 - '@oxlint/binding-linux-arm-musleabihf': 1.77.0 - '@oxlint/binding-linux-arm64-gnu': 1.77.0 - '@oxlint/binding-linux-arm64-musl': 1.77.0 - '@oxlint/binding-linux-ppc64-gnu': 1.77.0 - '@oxlint/binding-linux-riscv64-gnu': 1.77.0 - '@oxlint/binding-linux-riscv64-musl': 1.77.0 - '@oxlint/binding-linux-s390x-gnu': 1.77.0 - '@oxlint/binding-linux-x64-gnu': 1.77.0 - '@oxlint/binding-linux-x64-musl': 1.77.0 - '@oxlint/binding-openharmony-arm64': 1.77.0 - '@oxlint/binding-win32-arm64-msvc': 1.77.0 - '@oxlint/binding-win32-ia32-msvc': 1.77.0 - '@oxlint/binding-win32-x64-msvc': 1.77.0 + '@oxlint/binding-android-arm-eabi': 1.76.0 + '@oxlint/binding-android-arm64': 1.76.0 + '@oxlint/binding-darwin-arm64': 1.76.0 + '@oxlint/binding-darwin-x64': 1.76.0 + '@oxlint/binding-freebsd-x64': 1.76.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.76.0 + '@oxlint/binding-linux-arm-musleabihf': 1.76.0 + '@oxlint/binding-linux-arm64-gnu': 1.76.0 + '@oxlint/binding-linux-arm64-musl': 1.76.0 + '@oxlint/binding-linux-ppc64-gnu': 1.76.0 + '@oxlint/binding-linux-riscv64-gnu': 1.76.0 + '@oxlint/binding-linux-riscv64-musl': 1.76.0 + '@oxlint/binding-linux-s390x-gnu': 1.76.0 + '@oxlint/binding-linux-x64-gnu': 1.76.0 + '@oxlint/binding-linux-x64-musl': 1.76.0 + '@oxlint/binding-openharmony-arm64': 1.76.0 + '@oxlint/binding-win32-arm64-msvc': 1.76.0 + '@oxlint/binding-win32-ia32-msvc': 1.76.0 + '@oxlint/binding-win32-x64-msvc': 1.76.0 oxlint-tsgolint: 7.0.2001 package-manager-detector@1.8.0: {} @@ -2533,7 +2529,7 @@ snapshots: ansi-styles: 5.2.0 react-is: 17.0.2 - publint@0.3.23: + publint@0.3.22: dependencies: '@publint/pack': 0.1.6 package-manager-detector: 1.8.0 @@ -2554,9 +2550,9 @@ snapshots: get-tsconfig: 5.0.0-beta.5 obug: 2.1.4 rolldown: 1.2.1 - yuku-ast: 0.8.1 - yuku-codegen: 0.8.1 - yuku-parser: 0.8.1 + yuku-ast: 0.8.2 + yuku-codegen: 0.8.2 + yuku-parser: 0.8.2 optionalDependencies: typescript: 7.0.2 transitivePeerDependencies: @@ -2603,8 +2599,6 @@ snapshots: tinybench@2.9.0: {} - tinyexec@1.2.4: {} - tinyexec@1.3.0: {} tinyglobby@0.2.17: @@ -2625,7 +2619,7 @@ snapshots: '@ts-morph/common': 0.29.0 code-block-writer: 13.0.3 - tsdown@0.22.14(publint@0.3.23)(typescript@7.0.2): + tsdown@0.22.14(publint@0.3.22)(typescript@7.0.2): dependencies: ansis: 4.3.1 cac: 7.0.0 @@ -2637,13 +2631,13 @@ snapshots: picomatch: 4.0.5 rolldown: 1.2.1 rolldown-plugin-dts: 0.27.14(rolldown@1.2.1)(typescript@7.0.2) - tinyexec: 1.2.4 + tinyexec: 1.3.0 tinyglobby: 0.2.17 tree-kill: 1.2.2 unconfig-core: 7.5.0 verkit: 0.3.1 optionalDependencies: - publint: 0.3.23 + publint: 0.3.22 typescript: 7.0.2 transitivePeerDependencies: - '@typescript/native-preview' @@ -2747,41 +2741,41 @@ snapshots: yaml@2.9.0: {} - yuku-ast@0.8.1: + yuku-ast@0.8.2: dependencies: - '@yuku-toolchain/types': 0.8.1 + '@yuku-toolchain/types': 0.8.2 - yuku-codegen@0.8.1: + yuku-codegen@0.8.2: dependencies: - '@yuku-toolchain/types': 0.8.1 + '@yuku-toolchain/types': 0.8.2 optionalDependencies: - '@yuku-codegen/binding-darwin-arm64': 0.8.1 - '@yuku-codegen/binding-darwin-x64': 0.8.1 - '@yuku-codegen/binding-freebsd-x64': 0.8.1 - '@yuku-codegen/binding-linux-arm-gnu': 0.8.1 - '@yuku-codegen/binding-linux-arm-musl': 0.8.1 - '@yuku-codegen/binding-linux-arm64-gnu': 0.8.1 - '@yuku-codegen/binding-linux-arm64-musl': 0.8.1 - '@yuku-codegen/binding-linux-x64-gnu': 0.8.1 - '@yuku-codegen/binding-linux-x64-musl': 0.8.1 - '@yuku-codegen/binding-win32-arm64': 0.8.1 - '@yuku-codegen/binding-win32-x64': 0.8.1 - - yuku-parser@0.8.1: + '@yuku-codegen/binding-darwin-arm64': 0.8.2 + '@yuku-codegen/binding-darwin-x64': 0.8.2 + '@yuku-codegen/binding-freebsd-x64': 0.8.2 + '@yuku-codegen/binding-linux-arm-gnu': 0.8.2 + '@yuku-codegen/binding-linux-arm-musl': 0.8.2 + '@yuku-codegen/binding-linux-arm64-gnu': 0.8.2 + '@yuku-codegen/binding-linux-arm64-musl': 0.8.2 + '@yuku-codegen/binding-linux-x64-gnu': 0.8.2 + '@yuku-codegen/binding-linux-x64-musl': 0.8.2 + '@yuku-codegen/binding-win32-arm64': 0.8.2 + '@yuku-codegen/binding-win32-x64': 0.8.2 + + yuku-parser@0.8.2: dependencies: - '@yuku-toolchain/types': 0.8.1 - yuku-ast: 0.8.1 + '@yuku-toolchain/types': 0.8.2 + yuku-ast: 0.8.2 optionalDependencies: - '@yuku-parser/binding-darwin-arm64': 0.8.1 - '@yuku-parser/binding-darwin-x64': 0.8.1 - '@yuku-parser/binding-freebsd-x64': 0.8.1 - '@yuku-parser/binding-linux-arm-gnu': 0.8.1 - '@yuku-parser/binding-linux-arm-musl': 0.8.1 - '@yuku-parser/binding-linux-arm64-gnu': 0.8.1 - '@yuku-parser/binding-linux-arm64-musl': 0.8.1 - '@yuku-parser/binding-linux-x64-gnu': 0.8.1 - '@yuku-parser/binding-linux-x64-musl': 0.8.1 - '@yuku-parser/binding-win32-arm64': 0.8.1 - '@yuku-parser/binding-win32-x64': 0.8.1 + '@yuku-parser/binding-darwin-arm64': 0.8.2 + '@yuku-parser/binding-darwin-x64': 0.8.2 + '@yuku-parser/binding-freebsd-x64': 0.8.2 + '@yuku-parser/binding-linux-arm-gnu': 0.8.2 + '@yuku-parser/binding-linux-arm-musl': 0.8.2 + '@yuku-parser/binding-linux-arm64-gnu': 0.8.2 + '@yuku-parser/binding-linux-arm64-musl': 0.8.2 + '@yuku-parser/binding-linux-x64-gnu': 0.8.2 + '@yuku-parser/binding-linux-x64-musl': 0.8.2 + '@yuku-parser/binding-win32-arm64': 0.8.2 + '@yuku-parser/binding-win32-x64': 0.8.2 zod@4.4.3: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 3140b4b..2839f2d 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -18,7 +18,7 @@ catalog: zod: 4.4.3 # Seven days; keep aligned with Dependabot's npm cooldown. -minimumReleaseAge: 1440 +minimumReleaseAge: 10080 minimumReleaseAgeStrict: true minimumReleaseAgeExclude: - "@zemd/*" From e7dd8a9c72705c06ef189c4680bb4822bfcbc5a3 Mon Sep 17 00:00:00 2001 From: Dmytro Zelenetskyi Date: Sat, 8 Aug 2026 17:56:24 +0200 Subject: [PATCH 4/4] Sync minimumReleaseAge with dependabot cooldown --- .github/workflows-examples/dependabot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows-examples/dependabot.yml b/.github/workflows-examples/dependabot.yml index 4a88ed5..945572c 100644 --- a/.github/workflows-examples/dependabot.yml +++ b/.github/workflows-examples/dependabot.yml @@ -8,7 +8,7 @@ updates: interval: "weekly" # Match pnpm's release-age policy for npm packages. cooldown: - default-days: 1 # pnpm-workspace.yaml: minimumReleaseAge / 1440 + default-days: 7 # pnpm-workspace.yaml: minimumReleaseAge / 1440 # Keep exemptions aligned with pnpm-workspace.yaml. exclude: - "@zemd/*"