Add repo hygiene gates: knip, publint, yarn constraints

knip (workspace-aware config) fails on unused files, exports, and
dependencies in our code — vendor/ excluded, duplicate default+named
exports allowed (intentional API shape). publint checks every
packages/* package.json for publishing correctness (scripts/
publint-all.ts). Yarn constraints (yarn.config.cjs) mechanize the
AGENTS.md package rules: everything private, dsh-* packages declare
cordis as matching peer+dev dependency, uniform 0.0.1 version, ESM.

yarn hygiene runs all three.
This commit is contained in:
Tianyi Cui
2026-06-11 15:04:50 +08:00
parent bfb034830f
commit 6796a3922d
5 changed files with 680 additions and 2 deletions
+15
View File
@@ -0,0 +1,15 @@
{
"$schema": "https://unpkg.com/knip@5/schema.json",
"exclude": ["duplicates"],
"ignoreWorkspaces": ["vendor/*"],
"workspaces": {
".": {
"entry": ["examples/echo-agent/src/*.ts"],
"project": ["scripts/**/*.ts", "examples/**/*.ts"]
},
"packages/*": {
"entry": ["tests/**/*.spec.ts"],
"project": ["src/**/*.ts", "tests/**/*.ts"]
}
}
}
+6
View File
@@ -18,14 +18,20 @@
"lint:fix": "eslint . --fix",
"test": "vitest run",
"test:coverage": "vitest run --coverage",
"knip": "knip",
"publint": "tsx scripts/publint-all.ts",
"hygiene": "yarn knip && yarn publint && yarn constraints",
"demo": "node --expose-internals --import tsx examples/echo-agent/start.ts"
},
"devDependencies": {
"@stylistic/eslint-plugin": "^5.10.0",
"@types/node": "^25.3.5",
"@vitest/coverage-v8": "^4.1.8",
"@yarnpkg/types": "^4.0.1",
"dumble": "^0.2.3",
"eslint": "^10.4.1",
"knip": "^6.16.1",
"publint": "^0.3.21",
"tsx": "^4.22.4",
"typescript": "^6.0.3",
"typescript-eslint": "^8.61.0",
+18
View File
@@ -0,0 +1,18 @@
import { execFileSync } from 'node:child_process'
import { resolve } from 'node:path'
// publint every publishable package (vendor/ is private upstream code and
// examples/ are not packages; both are out of scope).
const packages = [
'packages/llm',
'packages/session',
'packages/system-prompt',
'packages/tools',
'packages/agent',
'packages/agent-loop',
]
const root = resolve(import.meta.dirname, '..')
for (const path of packages) {
execFileSync('node_modules/.bin/publint', [path], { cwd: root, stdio: 'inherit' })
}
+53
View File
@@ -0,0 +1,53 @@
// Yarn constraints: mechanize the package rules from AGENTS.md.
// Run with `yarn constraints`; CI fails on violations.
//
// 1. Every package is private (nothing publishes from this repo yet).
// 2. Harness packages (@deepseek-ai/dsh-*) declare `cordis` as BOTH a
// peerDependency and a devDependency (upstream Cordis convention).
// 3. Harness packages are versioned 0.0.1 (bumped together, later via tooling).
// 4. Vendored packages keep their upstream versions — constraints don't touch
// them beyond privacy.
// 5. All packages are ESM (`"type": "module"`) — except vendored packages
// whose upstream isn't (schemastery ships dual cjs/mjs without type).
/** @type {import('@yarnpkg/types')} */
const { defineConfig } = require('@yarnpkg/types')
const VENDORED = new Set([
'cordis', 'cosmokit', 'schemastery',
'@cordisjs/plugin-loader', '@cordisjs/plugin-include', '@cordisjs/plugin-group',
'@cordisjs/plugin-timer', '@cordisjs/plugin-hmr', '@cordisjs/plugin-logger-console',
])
module.exports = defineConfig({
async constraints({ Yarn }) {
for (const workspace of Yarn.workspaces()) {
const name = workspace.manifest.name
// (1) everything stays private
workspace.set('private', true)
if (name?.startsWith('@deepseek-ai/dsh-') && name !== '@deepseek-ai/dsh-root') {
// (2) cordis as peer + dev
const peer = Yarn.dependency({ workspace, ident: 'cordis', type: 'peerDependencies' })
const dev = Yarn.dependency({ workspace, ident: 'cordis', type: 'devDependencies' })
if (!peer) workspace.error(`${name}: cordis must be a peerDependency`)
if (!dev) workspace.error(`${name}: cordis must also be a devDependency`)
if (peer && dev && peer.range !== dev.range) {
workspace.error(`${name}: cordis peer (${peer.range}) and dev (${dev.range}) ranges must match`)
}
// (3) uniform version
workspace.set('version', '0.0.1')
// (5) ESM
workspace.set('type', 'module')
}
if (name && VENDORED.has(name)) {
// (4) vendored: privacy only; versions/fields follow upstream
continue
}
}
},
})
+588 -2
View File
@@ -180,8 +180,11 @@ __metadata:
"@stylistic/eslint-plugin": "npm:^5.10.0"
"@types/node": "npm:^25.3.5"
"@vitest/coverage-v8": "npm:^4.1.8"
"@yarnpkg/types": "npm:^4.0.1"
dumble: "npm:^0.2.3"
eslint: "npm:^10.4.1"
knip: "npm:^6.16.1"
publint: "npm:^0.3.21"
tsx: "npm:^4.22.4"
typescript: "npm:^6.0.3"
typescript-eslint: "npm:^8.61.0"
@@ -617,13 +620,301 @@ __metadata:
languageName: node
linkType: hard
"@oxc-project/types@npm:=0.133.0":
"@oxc-parser/binding-android-arm-eabi@npm:0.133.0":
version: 0.133.0
resolution: "@oxc-parser/binding-android-arm-eabi@npm:0.133.0"
conditions: os=android & cpu=arm
languageName: node
linkType: hard
"@oxc-parser/binding-android-arm64@npm:0.133.0":
version: 0.133.0
resolution: "@oxc-parser/binding-android-arm64@npm:0.133.0"
conditions: os=android & cpu=arm64
languageName: node
linkType: hard
"@oxc-parser/binding-darwin-arm64@npm:0.133.0":
version: 0.133.0
resolution: "@oxc-parser/binding-darwin-arm64@npm:0.133.0"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
"@oxc-parser/binding-darwin-x64@npm:0.133.0":
version: 0.133.0
resolution: "@oxc-parser/binding-darwin-x64@npm:0.133.0"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
"@oxc-parser/binding-freebsd-x64@npm:0.133.0":
version: 0.133.0
resolution: "@oxc-parser/binding-freebsd-x64@npm:0.133.0"
conditions: os=freebsd & cpu=x64
languageName: node
linkType: hard
"@oxc-parser/binding-linux-arm-gnueabihf@npm:0.133.0":
version: 0.133.0
resolution: "@oxc-parser/binding-linux-arm-gnueabihf@npm:0.133.0"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
"@oxc-parser/binding-linux-arm-musleabihf@npm:0.133.0":
version: 0.133.0
resolution: "@oxc-parser/binding-linux-arm-musleabihf@npm:0.133.0"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
"@oxc-parser/binding-linux-arm64-gnu@npm:0.133.0":
version: 0.133.0
resolution: "@oxc-parser/binding-linux-arm64-gnu@npm:0.133.0"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard
"@oxc-parser/binding-linux-arm64-musl@npm:0.133.0":
version: 0.133.0
resolution: "@oxc-parser/binding-linux-arm64-musl@npm:0.133.0"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard
"@oxc-parser/binding-linux-ppc64-gnu@npm:0.133.0":
version: 0.133.0
resolution: "@oxc-parser/binding-linux-ppc64-gnu@npm:0.133.0"
conditions: os=linux & cpu=ppc64 & libc=glibc
languageName: node
linkType: hard
"@oxc-parser/binding-linux-riscv64-gnu@npm:0.133.0":
version: 0.133.0
resolution: "@oxc-parser/binding-linux-riscv64-gnu@npm:0.133.0"
conditions: os=linux & cpu=riscv64 & libc=glibc
languageName: node
linkType: hard
"@oxc-parser/binding-linux-riscv64-musl@npm:0.133.0":
version: 0.133.0
resolution: "@oxc-parser/binding-linux-riscv64-musl@npm:0.133.0"
conditions: os=linux & cpu=riscv64 & libc=musl
languageName: node
linkType: hard
"@oxc-parser/binding-linux-s390x-gnu@npm:0.133.0":
version: 0.133.0
resolution: "@oxc-parser/binding-linux-s390x-gnu@npm:0.133.0"
conditions: os=linux & cpu=s390x & libc=glibc
languageName: node
linkType: hard
"@oxc-parser/binding-linux-x64-gnu@npm:0.133.0":
version: 0.133.0
resolution: "@oxc-parser/binding-linux-x64-gnu@npm:0.133.0"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard
"@oxc-parser/binding-linux-x64-musl@npm:0.133.0":
version: 0.133.0
resolution: "@oxc-parser/binding-linux-x64-musl@npm:0.133.0"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard
"@oxc-parser/binding-openharmony-arm64@npm:0.133.0":
version: 0.133.0
resolution: "@oxc-parser/binding-openharmony-arm64@npm:0.133.0"
conditions: os=openharmony & cpu=arm64
languageName: node
linkType: hard
"@oxc-parser/binding-wasm32-wasi@npm:0.133.0":
version: 0.133.0
resolution: "@oxc-parser/binding-wasm32-wasi@npm:0.133.0"
dependencies:
"@emnapi/core": "npm:1.10.0"
"@emnapi/runtime": "npm:1.10.0"
"@napi-rs/wasm-runtime": "npm:^1.1.4"
conditions: cpu=wasm32
languageName: node
linkType: hard
"@oxc-parser/binding-win32-arm64-msvc@npm:0.133.0":
version: 0.133.0
resolution: "@oxc-parser/binding-win32-arm64-msvc@npm:0.133.0"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
"@oxc-parser/binding-win32-ia32-msvc@npm:0.133.0":
version: 0.133.0
resolution: "@oxc-parser/binding-win32-ia32-msvc@npm:0.133.0"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
"@oxc-parser/binding-win32-x64-msvc@npm:0.133.0":
version: 0.133.0
resolution: "@oxc-parser/binding-win32-x64-msvc@npm:0.133.0"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
"@oxc-project/types@npm:=0.133.0, @oxc-project/types@npm:^0.133.0":
version: 0.133.0
resolution: "@oxc-project/types@npm:0.133.0"
checksum: 10c0/70c57ba58644f7ec217b670c301801f4d06995f4ccdba6b2bd106ea3e5ee49d616573e6ef8d55530b87571a960696543687f3850e87ad173d3f88965c30cdd63
languageName: node
linkType: hard
"@oxc-resolver/binding-android-arm-eabi@npm:11.20.0":
version: 11.20.0
resolution: "@oxc-resolver/binding-android-arm-eabi@npm:11.20.0"
conditions: os=android & cpu=arm
languageName: node
linkType: hard
"@oxc-resolver/binding-android-arm64@npm:11.20.0":
version: 11.20.0
resolution: "@oxc-resolver/binding-android-arm64@npm:11.20.0"
conditions: os=android & cpu=arm64
languageName: node
linkType: hard
"@oxc-resolver/binding-darwin-arm64@npm:11.20.0":
version: 11.20.0
resolution: "@oxc-resolver/binding-darwin-arm64@npm:11.20.0"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
"@oxc-resolver/binding-darwin-x64@npm:11.20.0":
version: 11.20.0
resolution: "@oxc-resolver/binding-darwin-x64@npm:11.20.0"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
"@oxc-resolver/binding-freebsd-x64@npm:11.20.0":
version: 11.20.0
resolution: "@oxc-resolver/binding-freebsd-x64@npm:11.20.0"
conditions: os=freebsd & cpu=x64
languageName: node
linkType: hard
"@oxc-resolver/binding-linux-arm-gnueabihf@npm:11.20.0":
version: 11.20.0
resolution: "@oxc-resolver/binding-linux-arm-gnueabihf@npm:11.20.0"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
"@oxc-resolver/binding-linux-arm-musleabihf@npm:11.20.0":
version: 11.20.0
resolution: "@oxc-resolver/binding-linux-arm-musleabihf@npm:11.20.0"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
"@oxc-resolver/binding-linux-arm64-gnu@npm:11.20.0":
version: 11.20.0
resolution: "@oxc-resolver/binding-linux-arm64-gnu@npm:11.20.0"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard
"@oxc-resolver/binding-linux-arm64-musl@npm:11.20.0":
version: 11.20.0
resolution: "@oxc-resolver/binding-linux-arm64-musl@npm:11.20.0"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard
"@oxc-resolver/binding-linux-ppc64-gnu@npm:11.20.0":
version: 11.20.0
resolution: "@oxc-resolver/binding-linux-ppc64-gnu@npm:11.20.0"
conditions: os=linux & cpu=ppc64 & libc=glibc
languageName: node
linkType: hard
"@oxc-resolver/binding-linux-riscv64-gnu@npm:11.20.0":
version: 11.20.0
resolution: "@oxc-resolver/binding-linux-riscv64-gnu@npm:11.20.0"
conditions: os=linux & cpu=riscv64 & libc=glibc
languageName: node
linkType: hard
"@oxc-resolver/binding-linux-riscv64-musl@npm:11.20.0":
version: 11.20.0
resolution: "@oxc-resolver/binding-linux-riscv64-musl@npm:11.20.0"
conditions: os=linux & cpu=riscv64 & libc=musl
languageName: node
linkType: hard
"@oxc-resolver/binding-linux-s390x-gnu@npm:11.20.0":
version: 11.20.0
resolution: "@oxc-resolver/binding-linux-s390x-gnu@npm:11.20.0"
conditions: os=linux & cpu=s390x & libc=glibc
languageName: node
linkType: hard
"@oxc-resolver/binding-linux-x64-gnu@npm:11.20.0":
version: 11.20.0
resolution: "@oxc-resolver/binding-linux-x64-gnu@npm:11.20.0"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard
"@oxc-resolver/binding-linux-x64-musl@npm:11.20.0":
version: 11.20.0
resolution: "@oxc-resolver/binding-linux-x64-musl@npm:11.20.0"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard
"@oxc-resolver/binding-openharmony-arm64@npm:11.20.0":
version: 11.20.0
resolution: "@oxc-resolver/binding-openharmony-arm64@npm:11.20.0"
conditions: os=openharmony & cpu=arm64
languageName: node
linkType: hard
"@oxc-resolver/binding-wasm32-wasi@npm:11.20.0":
version: 11.20.0
resolution: "@oxc-resolver/binding-wasm32-wasi@npm:11.20.0"
dependencies:
"@emnapi/core": "npm:1.10.0"
"@emnapi/runtime": "npm:1.10.0"
"@napi-rs/wasm-runtime": "npm:^1.1.4"
conditions: cpu=wasm32
languageName: node
linkType: hard
"@oxc-resolver/binding-win32-arm64-msvc@npm:11.20.0":
version: 11.20.0
resolution: "@oxc-resolver/binding-win32-arm64-msvc@npm:11.20.0"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
"@oxc-resolver/binding-win32-x64-msvc@npm:11.20.0":
version: 11.20.0
resolution: "@oxc-resolver/binding-win32-x64-msvc@npm:11.20.0"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
"@publint/pack@npm:^0.1.4":
version: 0.1.4
resolution: "@publint/pack@npm:0.1.4"
checksum: 10c0/f70b2c8951b5d312ecfd40534e1dd1b0a4fe0fd207879a73c168e3f6979df6202b8b4d4f9a0ee9de6443f0bfb95ef47a0c27c7138c083d9224ef27c67adddefd
languageName: node
linkType: hard
"@rolldown/binding-android-arm64@npm:1.0.3":
version: 1.0.3
resolution: "@rolldown/binding-android-arm64@npm:1.0.3"
@@ -1081,6 +1372,15 @@ __metadata:
languageName: node
linkType: hard
"@yarnpkg/types@npm:^4.0.1":
version: 4.0.1
resolution: "@yarnpkg/types@npm:4.0.1"
dependencies:
tslib: "npm:^2.4.0"
checksum: 10c0/90226789475680ba599833571dd76c0718dd5b4c5022481263ef309d6a628f6246671cd6ca86e49c966ddefa7aca6ccef82240dc1476d2cea702ea5bee2a6b72
languageName: node
linkType: hard
"abbrev@npm:^4.0.0":
version: 4.0.0
resolution: "abbrev@npm:4.0.0"
@@ -1593,6 +1893,15 @@ __metadata:
languageName: node
linkType: hard
"fd-package-json@npm:^2.0.0":
version: 2.0.0
resolution: "fd-package-json@npm:2.0.0"
dependencies:
walk-up-path: "npm:^4.0.0"
checksum: 10c0/a0a48745257bc09c939486608dad9f2ced238f0c64266222cc881618ed4c8f6aa0ccfe45a1e6d4f9ce828509e8d617cec60e2a114851bebb1ff4886dc5ed5112
languageName: node
linkType: hard
"fdir@npm:^6.5.0":
version: 6.5.0
resolution: "fdir@npm:6.5.0"
@@ -1650,6 +1959,17 @@ __metadata:
languageName: node
linkType: hard
"formatly@npm:^0.3.0":
version: 0.3.0
resolution: "formatly@npm:0.3.0"
dependencies:
fd-package-json: "npm:^2.0.0"
bin:
formatly: bin/index.mjs
checksum: 10c0/ef9dbd3cdaee649e9604ea060d8d62d8131eb81117634336592ee2193fc7c98a3f1f1b5d09a045dbd36287ba88edf868ef179d39fbda2f34fbe2be70c42dd014
languageName: node
linkType: hard
"fsevents@npm:~2.3.3":
version: 2.3.3
resolution: "fsevents@npm:2.3.3"
@@ -1669,6 +1989,15 @@ __metadata:
languageName: node
linkType: hard
"get-tsconfig@npm:4.14.0":
version: 4.14.0
resolution: "get-tsconfig@npm:4.14.0"
dependencies:
resolve-pkg-maps: "npm:^1.0.0"
checksum: 10c0/abc2b9275468eb589079a0b7a95eb5107c14fdd0ca6dda1bff116fe774ea1f79975421dcb22a0c86b4f820fcc69a7655dddf9b6d6a8a2c06fcb59e19794c0724
languageName: node
linkType: hard
"glob-parent@npm:^5.1.2":
version: 5.1.2
resolution: "glob-parent@npm:5.1.2"
@@ -1815,6 +2144,15 @@ __metadata:
languageName: node
linkType: hard
"jiti@npm:^2.7.0":
version: 2.7.0
resolution: "jiti@npm:2.7.0"
bin:
jiti: lib/jiti-cli.mjs
checksum: 10c0/1b1e2310a490dce1aeea3da5f5dfe18273516c20ce48be2e98eb8ea452d5f3dcc8fd0cfd6d28b4052a24c5dbab6e3089b2d7e79f0bce7915b10d750929563c42
languageName: node
linkType: hard
"js-tokens@npm:^10.0.0":
version: 10.0.0
resolution: "js-tokens@npm:10.0.0"
@@ -1886,6 +2224,30 @@ __metadata:
languageName: node
linkType: hard
"knip@npm:^6.16.1":
version: 6.16.1
resolution: "knip@npm:6.16.1"
dependencies:
fdir: "npm:^6.5.0"
formatly: "npm:^0.3.0"
get-tsconfig: "npm:4.14.0"
jiti: "npm:^2.7.0"
oxc-parser: "npm:^0.133.0"
oxc-resolver: "npm:^11.20.0"
picomatch: "npm:^4.0.4"
smol-toml: "npm:^1.6.1"
strip-json-comments: "npm:5.0.3"
tinyglobby: "npm:^0.2.16"
unbash: "npm:^3.0.0"
yaml: "npm:^2.9.0"
zod: "npm:^4.1.11"
bin:
knip: bin/knip.js
knip-bun: bin/knip-bun.js
checksum: 10c0/b723ee43f2a5170d5330d3d6cbd54452620ca76e2bffc11d8c8615d5f42c3aa60e9f7763f768210c0b97babff046df668479cb7f4ca78e3e7a8312ef12530370
languageName: node
linkType: hard
"levn@npm:^0.4.1":
version: 0.4.1
resolution: "levn@npm:0.4.1"
@@ -2096,6 +2458,13 @@ __metadata:
languageName: node
linkType: hard
"mri@npm:^1.1.0":
version: 1.2.0
resolution: "mri@npm:1.2.0"
checksum: 10c0/a3d32379c2554cf7351db6237ddc18dc9e54e4214953f3da105b97dc3babe0deb3ffe99cf409b38ea47cc29f9430561ba6b53b24ab8f9ce97a4b50409e4a50e7
languageName: node
linkType: hard
"ms@npm:^2.1.3":
version: 2.1.3
resolution: "ms@npm:2.1.3"
@@ -2171,6 +2540,142 @@ __metadata:
languageName: node
linkType: hard
"oxc-parser@npm:^0.133.0":
version: 0.133.0
resolution: "oxc-parser@npm:0.133.0"
dependencies:
"@oxc-parser/binding-android-arm-eabi": "npm:0.133.0"
"@oxc-parser/binding-android-arm64": "npm:0.133.0"
"@oxc-parser/binding-darwin-arm64": "npm:0.133.0"
"@oxc-parser/binding-darwin-x64": "npm:0.133.0"
"@oxc-parser/binding-freebsd-x64": "npm:0.133.0"
"@oxc-parser/binding-linux-arm-gnueabihf": "npm:0.133.0"
"@oxc-parser/binding-linux-arm-musleabihf": "npm:0.133.0"
"@oxc-parser/binding-linux-arm64-gnu": "npm:0.133.0"
"@oxc-parser/binding-linux-arm64-musl": "npm:0.133.0"
"@oxc-parser/binding-linux-ppc64-gnu": "npm:0.133.0"
"@oxc-parser/binding-linux-riscv64-gnu": "npm:0.133.0"
"@oxc-parser/binding-linux-riscv64-musl": "npm:0.133.0"
"@oxc-parser/binding-linux-s390x-gnu": "npm:0.133.0"
"@oxc-parser/binding-linux-x64-gnu": "npm:0.133.0"
"@oxc-parser/binding-linux-x64-musl": "npm:0.133.0"
"@oxc-parser/binding-openharmony-arm64": "npm:0.133.0"
"@oxc-parser/binding-wasm32-wasi": "npm:0.133.0"
"@oxc-parser/binding-win32-arm64-msvc": "npm:0.133.0"
"@oxc-parser/binding-win32-ia32-msvc": "npm:0.133.0"
"@oxc-parser/binding-win32-x64-msvc": "npm:0.133.0"
"@oxc-project/types": "npm:^0.133.0"
dependenciesMeta:
"@oxc-parser/binding-android-arm-eabi":
optional: true
"@oxc-parser/binding-android-arm64":
optional: true
"@oxc-parser/binding-darwin-arm64":
optional: true
"@oxc-parser/binding-darwin-x64":
optional: true
"@oxc-parser/binding-freebsd-x64":
optional: true
"@oxc-parser/binding-linux-arm-gnueabihf":
optional: true
"@oxc-parser/binding-linux-arm-musleabihf":
optional: true
"@oxc-parser/binding-linux-arm64-gnu":
optional: true
"@oxc-parser/binding-linux-arm64-musl":
optional: true
"@oxc-parser/binding-linux-ppc64-gnu":
optional: true
"@oxc-parser/binding-linux-riscv64-gnu":
optional: true
"@oxc-parser/binding-linux-riscv64-musl":
optional: true
"@oxc-parser/binding-linux-s390x-gnu":
optional: true
"@oxc-parser/binding-linux-x64-gnu":
optional: true
"@oxc-parser/binding-linux-x64-musl":
optional: true
"@oxc-parser/binding-openharmony-arm64":
optional: true
"@oxc-parser/binding-wasm32-wasi":
optional: true
"@oxc-parser/binding-win32-arm64-msvc":
optional: true
"@oxc-parser/binding-win32-ia32-msvc":
optional: true
"@oxc-parser/binding-win32-x64-msvc":
optional: true
checksum: 10c0/62d4ce93d819d47d4a295744bb3966c66b658bb33f35f6ebc0650ba854d6b070e62baa6f933366f45dc65983a77be9527ed15cacc0f532a252f2e049623c4ce2
languageName: node
linkType: hard
"oxc-resolver@npm:^11.20.0":
version: 11.20.0
resolution: "oxc-resolver@npm:11.20.0"
dependencies:
"@oxc-resolver/binding-android-arm-eabi": "npm:11.20.0"
"@oxc-resolver/binding-android-arm64": "npm:11.20.0"
"@oxc-resolver/binding-darwin-arm64": "npm:11.20.0"
"@oxc-resolver/binding-darwin-x64": "npm:11.20.0"
"@oxc-resolver/binding-freebsd-x64": "npm:11.20.0"
"@oxc-resolver/binding-linux-arm-gnueabihf": "npm:11.20.0"
"@oxc-resolver/binding-linux-arm-musleabihf": "npm:11.20.0"
"@oxc-resolver/binding-linux-arm64-gnu": "npm:11.20.0"
"@oxc-resolver/binding-linux-arm64-musl": "npm:11.20.0"
"@oxc-resolver/binding-linux-ppc64-gnu": "npm:11.20.0"
"@oxc-resolver/binding-linux-riscv64-gnu": "npm:11.20.0"
"@oxc-resolver/binding-linux-riscv64-musl": "npm:11.20.0"
"@oxc-resolver/binding-linux-s390x-gnu": "npm:11.20.0"
"@oxc-resolver/binding-linux-x64-gnu": "npm:11.20.0"
"@oxc-resolver/binding-linux-x64-musl": "npm:11.20.0"
"@oxc-resolver/binding-openharmony-arm64": "npm:11.20.0"
"@oxc-resolver/binding-wasm32-wasi": "npm:11.20.0"
"@oxc-resolver/binding-win32-arm64-msvc": "npm:11.20.0"
"@oxc-resolver/binding-win32-x64-msvc": "npm:11.20.0"
dependenciesMeta:
"@oxc-resolver/binding-android-arm-eabi":
optional: true
"@oxc-resolver/binding-android-arm64":
optional: true
"@oxc-resolver/binding-darwin-arm64":
optional: true
"@oxc-resolver/binding-darwin-x64":
optional: true
"@oxc-resolver/binding-freebsd-x64":
optional: true
"@oxc-resolver/binding-linux-arm-gnueabihf":
optional: true
"@oxc-resolver/binding-linux-arm-musleabihf":
optional: true
"@oxc-resolver/binding-linux-arm64-gnu":
optional: true
"@oxc-resolver/binding-linux-arm64-musl":
optional: true
"@oxc-resolver/binding-linux-ppc64-gnu":
optional: true
"@oxc-resolver/binding-linux-riscv64-gnu":
optional: true
"@oxc-resolver/binding-linux-riscv64-musl":
optional: true
"@oxc-resolver/binding-linux-s390x-gnu":
optional: true
"@oxc-resolver/binding-linux-x64-gnu":
optional: true
"@oxc-resolver/binding-linux-x64-musl":
optional: true
"@oxc-resolver/binding-openharmony-arm64":
optional: true
"@oxc-resolver/binding-wasm32-wasi":
optional: true
"@oxc-resolver/binding-win32-arm64-msvc":
optional: true
"@oxc-resolver/binding-win32-x64-msvc":
optional: true
checksum: 10c0/4a0b0fae7a8b8a25d5173aaeb7348c53d5f60d5bb37a66c3177dcf416319d1f7065b625afa37b924a288dec5b401ba92b003cbce26b91e6631bd8690052c80de
languageName: node
linkType: hard
"p-limit@npm:^3.0.2":
version: 3.1.0
resolution: "p-limit@npm:3.1.0"
@@ -2189,6 +2694,13 @@ __metadata:
languageName: node
linkType: hard
"package-manager-detector@npm:^1.6.0":
version: 1.6.0
resolution: "package-manager-detector@npm:1.6.0"
checksum: 10c0/6419d0b840be64fd45bcdcb7a19f09b81b65456d5e7f7a3daac305a4c90643052122f6ac0308afe548ffee75e36148532a2002ea9d292754f1e385aa2e1ea03b
languageName: node
linkType: hard
"path-exists@npm:^4.0.0":
version: 4.0.0
resolution: "path-exists@npm:4.0.0"
@@ -2263,6 +2775,20 @@ __metadata:
languageName: node
linkType: hard
"publint@npm:^0.3.21":
version: 0.3.21
resolution: "publint@npm:0.3.21"
dependencies:
"@publint/pack": "npm:^0.1.4"
package-manager-detector: "npm:^1.6.0"
picocolors: "npm:^1.1.1"
sade: "npm:^1.8.1"
bin:
publint: src/cli.js
checksum: 10c0/46f54061b112f852523e8b1357c5b454633008056de86f6acbbabcb155a8ab758d3e575df9f82fa37b7ba4a25bde8e68f98866763929eaef8c6d96ff1f761cea
languageName: node
linkType: hard
"punycode@npm:^2.1.0":
version: 2.3.1
resolution: "punycode@npm:2.3.1"
@@ -2284,6 +2810,13 @@ __metadata:
languageName: node
linkType: hard
"resolve-pkg-maps@npm:^1.0.0":
version: 1.0.0
resolution: "resolve-pkg-maps@npm:1.0.0"
checksum: 10c0/fb8f7bbe2ca281a73b7ef423a1cbc786fb244bd7a95cbe5c3fba25b27d327150beca8ba02f622baea65919a57e061eb5005204daa5f93ed590d9b77463a567ab
languageName: node
linkType: hard
"reusify@npm:^1.0.4":
version: 1.1.0
resolution: "reusify@npm:1.1.0"
@@ -2358,6 +2891,15 @@ __metadata:
languageName: node
linkType: hard
"sade@npm:^1.8.1":
version: 1.8.1
resolution: "sade@npm:1.8.1"
dependencies:
mri: "npm:^1.1.0"
checksum: 10c0/da8a3a5d667ad5ce3bf6d4f054bbb9f711103e5df21003c5a5c1a8a77ce12b640ed4017dd423b13c2307ea7e645adee7c2ae3afe8051b9db16a6f6d3da3f90b1
languageName: node
linkType: hard
"schemastery@npm:^3.18.0, schemastery@workspace:vendor/schemastery":
version: 0.0.0-use.local
resolution: "schemastery@workspace:vendor/schemastery"
@@ -2406,6 +2948,13 @@ __metadata:
languageName: node
linkType: hard
"smol-toml@npm:^1.6.1":
version: 1.6.1
resolution: "smol-toml@npm:1.6.1"
checksum: 10c0/511a78722f99c7616fdb46af708de3d7e81434b5a3d58061166da73f28bfc6cae4f0cd04683f60515b9c490cd10152fce72287c960b337419c0299cc1f0f2a22
languageName: node
linkType: hard
"source-map-js@npm:^1.2.1":
version: 1.2.1
resolution: "source-map-js@npm:1.2.1"
@@ -2427,6 +2976,13 @@ __metadata:
languageName: node
linkType: hard
"strip-json-comments@npm:5.0.3":
version: 5.0.3
resolution: "strip-json-comments@npm:5.0.3"
checksum: 10c0/daaf20b29f69fb51112698f4a9a662490dbb78d5baf6127c75a0a83c2ac6c078a8c0f74b389ad5e0519d6fc359c4a57cb9971b1ae201aef62ce45a13247791e0
languageName: node
linkType: hard
"supports-color@npm:^7.1.0":
version: 7.2.0
resolution: "supports-color@npm:7.2.0"
@@ -2470,7 +3026,7 @@ __metadata:
languageName: node
linkType: hard
"tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.15, tinyglobby@npm:^0.2.17":
"tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.15, tinyglobby@npm:^0.2.16, tinyglobby@npm:^0.2.17":
version: 0.2.17
resolution: "tinyglobby@npm:0.2.17"
dependencies:
@@ -2596,6 +3152,13 @@ __metadata:
languageName: node
linkType: hard
"unbash@npm:^3.0.0":
version: 3.0.0
resolution: "unbash@npm:3.0.0"
checksum: 10c0/8d237237805c8d23a6a7ba9ba1dac612b79431f2458aaa7975c472eba9f429991e46417fd8cdb14c1ad88adffbc0b914d0556ad5978bc42bbd2fa9b0942a4f91
languageName: node
linkType: hard
"undici-types@npm:>=7.24.0 <7.24.7":
version: 7.24.6
resolution: "undici-types@npm:7.24.6"
@@ -2764,6 +3327,13 @@ __metadata:
languageName: node
linkType: hard
"walk-up-path@npm:^4.0.0":
version: 4.0.0
resolution: "walk-up-path@npm:4.0.0"
checksum: 10c0/fabe344f91387d1d41df230af962ef18bf703dd4178006d55cd6412caacd187b54440002d4d53a982d4f7f0455567dcffb6d3884533c8b2268928eca3ebd8a19
languageName: node
linkType: hard
"which@npm:^2.0.1":
version: 2.0.2
resolution: "which@npm:2.0.2"
@@ -2812,9 +3382,25 @@ __metadata:
languageName: node
linkType: hard
"yaml@npm:^2.9.0":
version: 2.9.0
resolution: "yaml@npm:2.9.0"
bin:
yaml: bin.mjs
checksum: 10c0/f340718df45e97a9551b9bf9dac61c80050bc464513b710debfb5067c380c8472e3b67809cffacb4ab5ffb5e66ef9310816c88b05f371cec60abfedd8c88e0a2
languageName: node
linkType: hard
"yocto-queue@npm:^0.1.0":
version: 0.1.0
resolution: "yocto-queue@npm:0.1.0"
checksum: 10c0/dceb44c28578b31641e13695d200d34ec4ab3966a5729814d5445b194933c096b7ced71494ce53a0e8820685d1d010df8b2422e5bf2cdea7e469d97ffbea306f
languageName: node
linkType: hard
"zod@npm:^4.1.11":
version: 4.4.3
resolution: "zod@npm:4.4.3"
checksum: 10c0/7ea31b558e88f9faf44f31dd185e2e1cbf51fed3081787fb96cc2534749b50c0acfc6da7f0922a7353ed092dd358c7d50c28ea96c94d04af64191bd33152eca3
languageName: node
linkType: hard