{"_id":"@eco-ds/registry-doctor","_rev":"2-cdd6cc35ad9836932440e6f8286f68d5","name":"@eco-ds/registry-doctor","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@eco-ds/registry-doctor","version":"0.1.0","keywords":["dtn","design-system","registry","shadcn","diagnostics","experimental"],"license":"UNLICENSED","_id":"@eco-ds/registry-doctor@0.1.0","maintainers":[{"name":"stanxaf","email":"stanley.familleza@dtn.com"}],"bin":{"eco-ds-registry-doctor":"bin/registry-doctor.js"},"dist":{"shasum":"3b8937d04799f4a61c1681244d7af4dd1c7b8d3a","tarball":"https://registry.npmjs.org/@eco-ds/registry-doctor/-/registry-doctor-0.1.0.tgz","fileCount":3,"integrity":"sha512-EVC0TZrAAsJjpTboKv+OEZvTQ9Y4kgIG0HREh8FmSbhzbQUhkulQ5YYucbVmJVo/ZLj/nk/oeIyySUTA5lZm6A==","signatures":[{"sig":"MEQCID+IYug+X7x2p37IWqEGbKEV3406o6+Lor5FzNsRCTFbAiARg+lpO89gcNKQP2WS36nlmsM5mAJbr+3OcvOigRHA/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41724},"engines":{"node":">=18"},"gitHead":"237ba6460a2c2d855b5e2711aec99aac4da45557","_npmUser":{"name":"stanxaf","email":"stanley.familleza@dtn.com"},"_npmVersion":"11.7.0","description":"DTN Registry Readiness Checker — diagnoses whether a consuming project is correctly set up to use DTN Design System registry components (EXPERIMENTAL / DRAFT)","directories":{},"_nodeVersion":"25.4.0","publishConfig":{"access":"restricted","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/registry-doctor_0.1.0_1779368292189_0.0329351856636273","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@eco-ds/registry-doctor","version":"0.1.1","description":"DTN Registry Readiness Checker — diagnoses whether a consuming project is correctly set up to use DTN Design System registry components (EXPERIMENTAL / DRAFT)","keywords":["dtn","design-system","registry","shadcn","diagnostics","experimental"],"license":"UNLICENSED","engines":{"node":">=18"},"bin":{"eco-ds-registry-doctor":"bin/registry-doctor.js"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"gitHead":"237ba6460a2c2d855b5e2711aec99aac4da45557","_id":"@eco-ds/registry-doctor@0.1.1","_nodeVersion":"25.4.0","_npmVersion":"11.7.0","dist":{"integrity":"sha512-gYWGKzYsYkKMgkDs59V+XCb2JkaD0fIts4zeGPWsQ3edD8rq+gTLrMLozn72sfjR3ngC8QSDuCqvdCwhPVFtHQ==","shasum":"11754f99072a9208f17be64c313093f64e62af9c","tarball":"https://registry.npmjs.org/@eco-ds/registry-doctor/-/registry-doctor-0.1.1.tgz","fileCount":3,"unpackedSize":41691,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICEoVPh+OkfqeMfYeX11E2eEa/SqAqkU1lMdtCnojrR6AiEA6XOdt1U0sAQ2DXRZpsb2VlE5TusCjSJPKSe06Xlt6QA="}]},"_npmUser":{"name":"stanxaf","email":"stanley.familleza@dtn.com"},"directories":{},"maintainers":[{"name":"stanxaf","email":"stanley.familleza@dtn.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/registry-doctor_0.1.1_1779368855528_0.7076188827693501"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-21T12:58:12.073Z","modified":"2026-05-21T13:07:35.803Z","0.1.0":"2026-05-21T12:58:12.328Z","0.1.1":"2026-05-21T13:07:35.685Z"},"license":"UNLICENSED","keywords":["dtn","design-system","registry","shadcn","diagnostics","experimental"],"description":"DTN Registry Readiness Checker — diagnoses whether a consuming project is correctly set up to use DTN Design System registry components (EXPERIMENTAL / DRAFT)","maintainers":[{"name":"stanxaf","email":"stanley.familleza@dtn.com"}],"readme":"# @eco-ds/registry-doctor\n\n> **Status: EXPERIMENTAL / DRAFT**\n> This package is not yet published. It is read-only and will never modify your project.\n\nDiagnoses whether a consuming project is correctly set up to use [DTN Design System](https://eco-design-system-2.dtn.com) registry components.\n\nA component can compile and render but still not match the DTN registry preview if the theme, component file, font setup, Tailwind token mapping, or app shell is incomplete. This tool checks all of that.\n\n---\n\n## Usage\n\n### After publish (product teams)\n\n```bash\n# Check current directory\nnpx @eco-ds/registry-doctor\n\n# Check a specific component\nnpx @eco-ds/registry-doctor --component button\n\n# JSON output for CI\nnpx @eco-ds/registry-doctor --json\n```\n\n### Local development (maintainers, from repo root)\n\n```bash\nnode packages/registry-doctor/bin/registry-doctor.js \\\n  --project . \\\n  --registry-root ./public/r \\\n  --registry-json ./registry.json \\\n  --component button\n```\n\nOr via the npm script (forwards all args):\n\n```bash\nnpm run registry:doctor -- --project . --component button\nnpm run registry:doctor -- --project ../my-app --component brand-header --json\n```\n\n---\n\n## Options\n\n| Option | Default | Description |\n|--------|---------|-------------|\n| `--project <path>` | cwd | Target consuming project |\n| `--component <name>` | `button` | Component to check |\n| `--registry <url>` | `https://eco-design-system-2.dtn.com/r/registry.json` | Registry JSON URL |\n| `--registry-root <path>` | — | Local registry output root (e.g. `./public/r`). When provided, loads `registry.json` from this directory and skips remote fetch. |\n| `--registry-json <path>` | — | Local source `registry.json`. Skips remote fetch. |\n| `--live` | disabled | Extra reachability checks (pings registry URL) |\n| `--json` | disabled | Output structured JSON |\n| `--help`, `-h` | — | Show usage |\n\nWhen `--registry-root` and `--registry-json` are both omitted, the CLI fetches metadata from the deployed registry URL. This requires network access.\n\n---\n\n## What It Checks\n\n| # | Check | Severity | Description |\n|---|-------|----------|-------------|\n| 1 | `components-json` | FAIL | `components.json` exists and is valid |\n| 2 | `registry-mapping` | WARN | `@dtn` registry mapping configured |\n| 3 | `tailwind-installed` | FAIL | Tailwind CSS in dependencies (v4 preferred) |\n| 4 | `shadcn-setup` | WARN | shadcn/ui style configured |\n| 5 | `global-css` | FAIL | Global CSS file exists with Tailwind imports |\n| 6 | `theme-tokens` | FAIL/WARN | DTN theme tokens present in CSS |\n| 7 | `theme-inline` | WARN | `@theme inline` directive (Tailwind v4) |\n| 8 | `component-tokens` | WARN/SKIP | Component-specific CSS variables |\n| 9 | `component-match` | FAIL/WARN | Local component matches registry version |\n| 10 | `dependencies` | WARN | Required npm dependencies installed |\n| 11 | `font-setup` | WARN | Inter font loaded and bound to `--font-sans` |\n| 12 | `app-shell-css` | FAIL | Root layout imports global CSS |\n| 13 | `registry-reachable` | FAIL | Registry URL responds (requires `--live`) |\n| 14 | `component-collisions` | WARN/SKIP | Generic shadcn components that should be DTN |\n\n## Exit Codes\n\n| Code | Meaning |\n|------|---------|\n| `0` | All checks passed (warnings are acceptable) |\n| `1` | One or more checks failed, or registry metadata could not be loaded |\n\n---\n\n## Remote vs Local Mode\n\n**Remote mode** (default, no `--registry-root`):\n- Fetches `registry.json` and component JSON from the deployed registry URL\n- Requires network access\n- `--live` adds an extra explicit ping check on top of the required fetches\n\n**Local mode** (`--registry-root ./public/r`):\n- Loads `registry.json` from `<registry-root>/registry.json` automatically\n- Reads all packaged item JSON from local files\n- No network required\n- Combine with `--registry-json ./registry.json` to use the repo root source registry instead\n\n---\n\n## Publishing\n\nThis package is not yet published. When ready:\n\n1. Confirm the package name `@eco-ds/registry-doctor` is available on your npm registry\n2. Update `publishConfig.registry` in `package.json` if using a private registry\n3. Remove the `UNLICENSED` license and add the appropriate license\n4. Run `npm publish` from `packages/registry-doctor/`\n\nThe `publishConfig.access` is set to `\"public\"` for public npm.\n\n---\n\n## Notes\n\n- **Read-only**: never modifies the target project\n- **No external dependencies**: uses only Node.js built-ins\n- **CommonJS**: compatible with Node.js ≥ 18\n","readmeFilename":"README.md"}