2026-06-11 15:04:50 +08:00
|
|
|
import { execFileSync } from 'node:child_process'
|
2026-07-04 00:54:31 +08:00
|
|
|
import { existsSync, readdirSync } from 'node:fs'
|
2026-06-11 15:04:50 +08:00
|
|
|
import { resolve } from 'node:path'
|
|
|
|
|
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
// publint every harness package. Packages live at packages/<group>/<pkg>
|
|
|
|
|
// (the group dirs — core/llm/bash/… — are pure containers); vendor/ is private
|
|
|
|
|
// upstream code and examples/ are not packages, both out of scope. Derived
|
|
|
|
|
// from the hierarchy so a new package needs no edit here.
|
2026-06-11 15:04:50 +08:00
|
|
|
const root = resolve(import.meta.dirname, '..')
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
const packagesRoot = resolve(root, 'packages')
|
|
|
|
|
|
|
|
|
|
const packages = readdirSync(packagesRoot, { withFileTypes: true })
|
|
|
|
|
.filter(group => group.isDirectory())
|
|
|
|
|
.flatMap(group =>
|
|
|
|
|
readdirSync(resolve(packagesRoot, group.name), { withFileTypes: true })
|
|
|
|
|
.filter(pkg => pkg.isDirectory())
|
2026-07-04 00:54:31 +08:00
|
|
|
.filter(pkg => existsSync(resolve(packagesRoot, group.name, pkg.name, 'package.json')))
|
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
|
|
|
.map(pkg => `packages/${group.name}/${pkg.name}`),
|
|
|
|
|
)
|
|
|
|
|
|
2026-06-11 15:04:50 +08:00
|
|
|
for (const path of packages) {
|
|
|
|
|
execFileSync('node_modules/.bin/publint', [path], { cwd: root, stdio: 'inherit' })
|
|
|
|
|
}
|