Files
Claude 18a633c2a0 feat(dingze): add shared artifact catalog, lifecycle and validators
The catalog defines the three-stage step order, unlock rules and
dependencies; the lifecycle module resolves status transitions and role
checks; validators implement the hard checks for the six-part table and
strategy house, path systems and the RACI matrix. Both the server plugin
and the Portal import the same module through @dingze/shared.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01MMDFmVTvRksi1ZT8aPGXoL
2026-10-09 13:51:24 +00:00

40 lines
1.1 KiB
TypeScript

import fs from "node:fs";
import { fileURLToPath } from "node:url";
import react from "@vitejs/plugin-react";
import { defineConfig } from "vitest/config";
const root = fileURLToPath(new URL(".", import.meta.url));
const registryRoot = fileURLToPath(new URL("./registry", import.meta.url));
const extensionsRoot = fs.existsSync(registryRoot)
? registryRoot
: fileURLToPath(new URL("./src/extensions", import.meta.url));
export default defineConfig({
plugins: [react()],
resolve: {
alias: {
"@dingze/shared": fileURLToPath(
new URL("./server-plugins/plugin-dingze/src/shared", import.meta.url)
),
"@/extensions": extensionsRoot,
"@": fileURLToPath(new URL("./src", import.meta.url)),
},
},
test: {
root,
environment: "jsdom",
setupFiles: ["./tests/setup/vitest.ts"],
include: [
"tests/logic/**/*.test.{ts,tsx}",
"tests/components/**/*.test.{ts,tsx}",
"registry/*/tests/**/*.test.{ts,tsx}",
],
coverage: {
provider: "v8",
reportsDirectory: "./coverage",
reporter: ["text", "html"],
},
},
});