ai-spector 0.9.21 → 0.9.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/contracts/bootstrap/config/prototype-screen-map.json +25 -0
- package/contracts/bootstrap/config/prototype.config.json +17 -0
- package/contracts/bootstrap/config/review-queue-pending.json +4 -0
- package/contracts/bootstrap/config/review-queue-registry.json +4 -0
- package/contracts/bootstrap/config/review.config.json +5 -0
- package/contracts/bootstrap/docs/ENTITY_REGISTRY_MIGRATION.md +192 -0
- package/contracts/bootstrap/docs/MIGRATION.md +463 -0
- package/contracts/bootstrap/docs/README.md +48 -0
- package/contracts/bootstrap/docs/adapters/README.md +32 -0
- package/contracts/bootstrap/docs/guides/COMMENTS_ENTITY_MIGRATION.md +195 -0
- package/contracts/bootstrap/docs/guides/DOCOPS_MANUAL_FALLBACK.md +177 -0
- package/contracts/bootstrap/docs/guides/PROJECT_LAYOUT.md +84 -0
- package/contracts/bootstrap/docs/modules/comments.md +77 -0
- package/contracts/bootstrap/docs/modules/generate.md +25 -0
- package/contracts/bootstrap/docs/modules/graph.md +31 -0
- package/contracts/bootstrap/docs/modules/prototype.md +26 -0
- package/contracts/bootstrap/docs/modules/review.md +25 -0
- package/contracts/bootstrap/docs/modules/translate.md +26 -0
- package/contracts/bootstrap/scripts/migrate-entity-registry.sh +55 -0
- package/contracts/bootstrap/templates/basic-design/db-design-template.md +177 -0
- package/contracts/bootstrap/templates/basic-design/detail-api-template.md +278 -0
- package/contracts/bootstrap/templates/basic-design/detail-screen-template.md +281 -0
- package/contracts/bootstrap/templates/basic-design/list-api-template.md +130 -0
- package/contracts/bootstrap/templates/basic-design/list-screen-template.md +242 -0
- package/contracts/bootstrap/templates/detail-design/common/architecture-overview-template.md +302 -0
- package/contracts/bootstrap/templates/detail-design/common/deployment-infrastructure-template.md +461 -0
- package/contracts/bootstrap/templates/detail-design/common/error-handling-patterns-template.md +460 -0
- package/contracts/bootstrap/templates/detail-design/common/integration-patterns-template.md +410 -0
- package/contracts/bootstrap/templates/detail-design/common/performance-standards-template.md +406 -0
- package/contracts/bootstrap/templates/detail-design/common/security-patterns-template.md +395 -0
- package/contracts/bootstrap/templates/detail-design/feature-detail-design-template.md +773 -0
- package/contracts/bootstrap/templates/detail-design/feature-list-template.md +39 -0
- package/contracts/bootstrap/templates/srs/1-introduction.md +58 -0
- package/contracts/bootstrap/templates/srs/2-overall-description.md +91 -0
- package/contracts/bootstrap/templates/srs/3-use-case-detail-template.md +142 -0
- package/contracts/bootstrap/templates/srs/3-use-cases.md +53 -0
- package/contracts/bootstrap/templates/srs/4-system-feature-detail-template.md +131 -0
- package/contracts/bootstrap/templates/srs/4-system-features-list-template.md +39 -0
- package/contracts/bootstrap/templates/srs/5-data-requirements.md +59 -0
- package/contracts/bootstrap/templates/srs/6-external-interfaces.md +56 -0
- package/contracts/bootstrap/templates/srs/7-quality-attributes.md +74 -0
- package/contracts/bootstrap/templates/srs/8-internationalization.md +36 -0
- package/contracts/bootstrap/templates/srs/9-other-requirements.md +46 -0
- package/contracts/examples/full-docops.config.json +54 -0
- package/contracts/examples/migrate-lifecycle.json +18 -0
- package/contracts/examples/minimal-comment-thread/comment-root.json +10 -0
- package/contracts/examples/minimal-comment-thread/meta_data.json +22 -0
- package/contracts/examples/minimal-docops.config.json +33 -0
- package/contracts/examples/minimal-lifecycle.json +17 -0
- package/contracts/examples/minimal-prototype.config.json +18 -0
- package/contracts/examples/minimal-screen-map.json +25 -0
- package/contracts/examples/registry/minimal-document.entity.json +15 -0
- package/contracts/examples/registry/minimal-manifest.json +7 -0
- package/contracts/examples/registry/minimal-screen.entity.json +11 -0
- package/contracts/examples/review/minimal-pending.json +14 -0
- package/contracts/examples/review/minimal-registry.json +31 -0
- package/contracts/examples/review/minimal-review.config.json +7 -0
- package/contracts/schemas/comments/comment_body.schema.json +19 -0
- package/contracts/schemas/comments/meta_data.schema.json +59 -0
- package/contracts/schemas/docops.config.schema.json +97 -0
- package/contracts/schemas/lifecycle.schema.json +43 -0
- package/contracts/schemas/prototype/config.schema.json +56 -0
- package/contracts/schemas/prototype/screen-map.schema.json +51 -0
- package/contracts/schemas/registry/document.entity.schema.json +38 -0
- package/contracts/schemas/registry/manifest.schema.json +18 -0
- package/contracts/schemas/registry/screen.entity.schema.json +28 -0
- package/contracts/schemas/review/registry.schema.json +72 -0
- package/contracts/schemas/review/review.config.schema.json +42 -0
- package/dist/cli.js +26 -1
- package/dist/cli.js.map +1 -1
- package/dist/core/docops/bootstrap.d.ts +4 -1
- package/dist/core/docops/bootstrap.d.ts.map +1 -1
- package/dist/core/docops/bootstrap.js +16 -9
- package/dist/core/docops/bootstrap.js.map +1 -1
- package/dist/core/docops/guide.d.ts +78 -0
- package/dist/core/docops/guide.d.ts.map +1 -0
- package/dist/core/docops/guide.js +554 -0
- package/dist/core/docops/guide.js.map +1 -0
- package/dist/core/docops/migrate.d.ts.map +1 -1
- package/dist/core/docops/migrate.js +40 -6
- package/dist/core/docops/migrate.js.map +1 -1
- package/dist/core/graph/doc-extract.d.ts.map +1 -1
- package/dist/core/graph/doc-extract.js +12 -0
- package/dist/core/graph/doc-extract.js.map +1 -1
- package/dist/core/graph/impact.d.ts.map +1 -1
- package/dist/core/graph/impact.js +2 -1
- package/dist/core/graph/impact.js.map +1 -1
- package/dist/core/graph/link-testcases.d.ts +14 -0
- package/dist/core/graph/link-testcases.d.ts.map +1 -0
- package/dist/core/graph/link-testcases.js +46 -0
- package/dist/core/graph/link-testcases.js.map +1 -0
- package/dist/core/operations/docops.d.ts +8 -0
- package/dist/core/operations/docops.d.ts.map +1 -1
- package/dist/core/operations/docops.js +40 -0
- package/dist/core/operations/docops.js.map +1 -1
- package/dist/core/operations/index.d.ts.map +1 -1
- package/dist/core/operations/index.js +25 -0
- package/dist/core/operations/index.js.map +1 -1
- package/dist/core/operations/task-gates.d.ts +8 -1
- package/dist/core/operations/task-gates.d.ts.map +1 -1
- package/dist/core/operations/task-gates.js +14 -0
- package/dist/core/operations/task-gates.js.map +1 -1
- package/dist/core/operations/task.d.ts +2 -0
- package/dist/core/operations/task.d.ts.map +1 -1
- package/dist/core/operations/task.js +40 -2
- package/dist/core/operations/task.js.map +1 -1
- package/dist/core/sync/audit.d.ts.map +1 -1
- package/dist/core/sync/audit.js +14 -6
- package/dist/core/sync/audit.js.map +1 -1
- package/dist/core/sync/baseline.d.ts.map +1 -1
- package/dist/core/sync/baseline.js +5 -2
- package/dist/core/sync/baseline.js.map +1 -1
- package/dist/core/sync/constants.d.ts.map +1 -1
- package/dist/core/sync/constants.js +2 -1
- package/dist/core/sync/constants.js.map +1 -1
- package/dist/core/sync/gaps.d.ts.map +1 -1
- package/dist/core/sync/gaps.js +23 -2
- package/dist/core/sync/gaps.js.map +1 -1
- package/dist/core/sync/git-diff.d.ts +1 -0
- package/dist/core/sync/git-diff.d.ts.map +1 -1
- package/dist/core/sync/git-diff.js +14 -0
- package/dist/core/sync/git-diff.js.map +1 -1
- package/dist/core/sync/repo-context.d.ts +23 -0
- package/dist/core/sync/repo-context.d.ts.map +1 -0
- package/dist/core/sync/repo-context.js +28 -0
- package/dist/core/sync/repo-context.js.map +1 -0
- package/dist/core/sync/snapshot.d.ts.map +1 -1
- package/dist/core/sync/snapshot.js +24 -18
- package/dist/core/sync/snapshot.js.map +1 -1
- package/dist/core/sync/types.d.ts +7 -2
- package/dist/core/sync/types.d.ts.map +1 -1
- package/dist/core/upgrade/checklist.json +2 -2
- package/dist/interfaces/mcp/schemas.d.ts +2 -0
- package/dist/interfaces/mcp/schemas.d.ts.map +1 -1
- package/dist/interfaces/mcp/schemas.js +4 -0
- package/dist/interfaces/mcp/schemas.js.map +1 -1
- package/dist/interfaces/mcp/server.js +0 -0
- package/dist/types.d.ts +2 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -1
- package/scaffold/claude/.claude/skills/_skill-router.md +11 -8
- package/scaffold/claude/.claude/skills/ai-spector/references/cli-failures.md +3 -3
- package/scaffold/claude/.claude/skills/ai-spector/references/docops-migrate.md +112 -0
- package/scaffold/claude/.claude/skills/ai-spector/references/help.md +1 -1
- package/scaffold/claude/.claude/skills/ai-spector/references/runbook.md +49 -26
- package/scaffold/claude/.claude/skills/ai-spector/skill.md +3 -2
- package/scaffold/cursor/skills/_skill-router.md +11 -8
- package/scaffold/cursor/skills/ai-spector/SKILL.md +3 -2
- package/scaffold/cursor/skills/ai-spector/references/cli-failures.md +3 -3
- package/scaffold/cursor/skills/ai-spector/references/docops-migrate.md +112 -0
- package/scaffold/cursor/skills/ai-spector/references/help.md +1 -1
- package/scaffold/cursor/skills/ai-spector/references/runbook.md +49 -26
- package/schemas/rules.impact.json +3 -2
- package/schemas/schema.graph.json +4 -2
- package/dist/commands/analyze.d.ts +0 -12
- package/dist/commands/analyze.d.ts.map +0 -1
- package/dist/commands/analyze.js +0 -53
- package/dist/commands/analyze.js.map +0 -1
- package/dist/commands/bootstrap.d.ts +0 -4
- package/dist/commands/bootstrap.d.ts.map +0 -1
- package/dist/commands/bootstrap.js +0 -58
- package/dist/commands/bootstrap.js.map +0 -1
- package/dist/commands/comments.d.ts +0 -44
- package/dist/commands/comments.d.ts.map +0 -1
- package/dist/commands/comments.js +0 -79
- package/dist/commands/comments.js.map +0 -1
- package/dist/commands/graph-impact.d.ts +0 -28
- package/dist/commands/graph-impact.d.ts.map +0 -1
- package/dist/commands/graph-impact.js +0 -174
- package/dist/commands/graph-impact.js.map +0 -1
- package/dist/commands/graph-merge.d.ts +0 -32
- package/dist/commands/graph-merge.d.ts.map +0 -1
- package/dist/commands/graph-merge.js +0 -101
- package/dist/commands/graph-merge.js.map +0 -1
- package/dist/commands/graph-query.d.ts +0 -10
- package/dist/commands/graph-query.d.ts.map +0 -1
- package/dist/commands/graph-query.js +0 -24
- package/dist/commands/graph-query.js.map +0 -1
- package/dist/commands/graph-report.d.ts +0 -9
- package/dist/commands/graph-report.d.ts.map +0 -1
- package/dist/commands/graph-report.js +0 -10
- package/dist/commands/graph-report.js.map +0 -1
- package/dist/commands/graph-visualize.d.ts +0 -17
- package/dist/commands/graph-visualize.d.ts.map +0 -1
- package/dist/commands/graph-visualize.js +0 -44
- package/dist/commands/graph-visualize.js.map +0 -1
- package/dist/commands/hooks-constants.d.ts +0 -2
- package/dist/commands/hooks-constants.d.ts.map +0 -1
- package/dist/commands/hooks-constants.js +0 -2
- package/dist/commands/hooks-constants.js.map +0 -1
- package/dist/commands/hooks.d.ts +0 -28
- package/dist/commands/hooks.d.ts.map +0 -1
- package/dist/commands/hooks.js +0 -187
- package/dist/commands/hooks.js.map +0 -1
- package/dist/commands/index.d.ts +0 -22
- package/dist/commands/index.d.ts.map +0 -1
- package/dist/commands/index.js +0 -472
- package/dist/commands/index.js.map +0 -1
- package/dist/commands/init.d.ts +0 -19
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js +0 -210
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/lang-queue.d.ts +0 -28
- package/dist/commands/lang-queue.d.ts.map +0 -1
- package/dist/commands/lang-queue.js +0 -49
- package/dist/commands/lang-queue.js.map +0 -1
- package/dist/commands/lang.d.ts +0 -16
- package/dist/commands/lang.d.ts.map +0 -1
- package/dist/commands/lang.js +0 -69
- package/dist/commands/lang.js.map +0 -1
- package/dist/commands/prototype.d.ts +0 -66
- package/dist/commands/prototype.d.ts.map +0 -1
- package/dist/commands/prototype.js +0 -370
- package/dist/commands/prototype.js.map +0 -1
- package/dist/commands/setup.d.ts +0 -26
- package/dist/commands/setup.d.ts.map +0 -1
- package/dist/commands/setup.js +0 -259
- package/dist/commands/setup.js.map +0 -1
- package/dist/commands/sync-cursor.d.ts +0 -10
- package/dist/commands/sync-cursor.d.ts.map +0 -1
- package/dist/commands/sync-cursor.js +0 -18
- package/dist/commands/sync-cursor.js.map +0 -1
- package/dist/commands/template-regen.d.ts +0 -24
- package/dist/commands/template-regen.d.ts.map +0 -1
- package/dist/commands/template-regen.js +0 -240
- package/dist/commands/template-regen.js.map +0 -1
- package/dist/commands/template.d.ts +0 -3
- package/dist/commands/template.d.ts.map +0 -1
- package/dist/commands/template.js +0 -1285
- package/dist/commands/template.js.map +0 -1
- package/dist/commands/validate.d.ts +0 -10
- package/dist/commands/validate.d.ts.map +0 -1
- package/dist/commands/validate.js +0 -89
- package/dist/commands/validate.js.map +0 -1
- package/dist/comments/anchor.d.ts +0 -16
- package/dist/comments/anchor.d.ts.map +0 -1
- package/dist/comments/anchor.js +0 -59
- package/dist/comments/anchor.js.map +0 -1
- package/dist/comments/inbox.d.ts +0 -82
- package/dist/comments/inbox.d.ts.map +0 -1
- package/dist/comments/inbox.js +0 -179
- package/dist/comments/inbox.js.map +0 -1
- package/dist/comments/paths.d.ts +0 -12
- package/dist/comments/paths.d.ts.map +0 -1
- package/dist/comments/paths.js +0 -54
- package/dist/comments/paths.js.map +0 -1
- package/dist/comments/plan.d.ts +0 -20
- package/dist/comments/plan.d.ts.map +0 -1
- package/dist/comments/plan.js +0 -62
- package/dist/comments/plan.js.map +0 -1
- package/dist/comments/storage.d.ts +0 -30
- package/dist/comments/storage.d.ts.map +0 -1
- package/dist/comments/storage.js +0 -272
- package/dist/comments/storage.js.map +0 -1
- package/dist/comments/types.d.ts +0 -54
- package/dist/comments/types.d.ts.map +0 -1
- package/dist/comments/types.js +0 -2
- package/dist/comments/types.js.map +0 -1
- package/dist/config/load.d.ts +0 -47
- package/dist/config/load.d.ts.map +0 -1
- package/dist/config/load.js +0 -148
- package/dist/config/load.js.map +0 -1
- package/dist/config/types.d.ts +0 -56
- package/dist/config/types.d.ts.map +0 -1
- package/dist/config/types.js +0 -2
- package/dist/config/types.js.map +0 -1
- package/dist/core/adopt/apply.d.ts +0 -15
- package/dist/core/adopt/apply.d.ts.map +0 -1
- package/dist/core/adopt/apply.js +0 -127
- package/dist/core/adopt/apply.js.map +0 -1
- package/dist/core/adopt/bootstrap.d.ts +0 -16
- package/dist/core/adopt/bootstrap.d.ts.map +0 -1
- package/dist/core/adopt/bootstrap.js +0 -195
- package/dist/core/adopt/bootstrap.js.map +0 -1
- package/dist/core/adopt/classify.d.ts +0 -22
- package/dist/core/adopt/classify.d.ts.map +0 -1
- package/dist/core/adopt/classify.js +0 -295
- package/dist/core/adopt/classify.js.map +0 -1
- package/dist/core/adopt/paths.d.ts +0 -10
- package/dist/core/adopt/paths.d.ts.map +0 -1
- package/dist/core/adopt/paths.js +0 -16
- package/dist/core/adopt/paths.js.map +0 -1
- package/dist/core/adopt/plan.d.ts +0 -10
- package/dist/core/adopt/plan.d.ts.map +0 -1
- package/dist/core/adopt/plan.js +0 -269
- package/dist/core/adopt/plan.js.map +0 -1
- package/dist/core/adopt/scan.d.ts +0 -5
- package/dist/core/adopt/scan.d.ts.map +0 -1
- package/dist/core/adopt/scan.js +0 -169
- package/dist/core/adopt/scan.js.map +0 -1
- package/dist/core/adopt/setup.d.ts +0 -7
- package/dist/core/adopt/setup.d.ts.map +0 -1
- package/dist/core/adopt/setup.js +0 -64
- package/dist/core/adopt/setup.js.map +0 -1
- package/dist/core/adopt/tasks.d.ts +0 -9
- package/dist/core/adopt/tasks.d.ts.map +0 -1
- package/dist/core/adopt/tasks.js +0 -153
- package/dist/core/adopt/tasks.js.map +0 -1
- package/dist/core/adopt/types.d.ts +0 -75
- package/dist/core/adopt/types.d.ts.map +0 -1
- package/dist/core/adopt/types.js +0 -2
- package/dist/core/adopt/types.js.map +0 -1
- package/dist/core/adopt/validate.d.ts +0 -20
- package/dist/core/adopt/validate.d.ts.map +0 -1
- package/dist/core/adopt/validate.js +0 -129
- package/dist/core/adopt/validate.js.map +0 -1
- package/dist/core/docops/dual-write.d.ts +0 -12
- package/dist/core/docops/dual-write.d.ts.map +0 -1
- package/dist/core/docops/dual-write.js +0 -44
- package/dist/core/docops/dual-write.js.map +0 -1
- package/dist/core/engine/local-adapter.d.ts +0 -3
- package/dist/core/engine/local-adapter.d.ts.map +0 -1
- package/dist/core/engine/local-adapter.js +0 -18
- package/dist/core/engine/local-adapter.js.map +0 -1
- package/dist/core/graph/rules/default-impact.json +0 -24
- package/dist/core/operations/adopt-gates.d.ts +0 -19
- package/dist/core/operations/adopt-gates.d.ts.map +0 -1
- package/dist/core/operations/adopt-gates.js +0 -71
- package/dist/core/operations/adopt-gates.js.map +0 -1
- package/dist/core/operations/adopt-plan.d.ts +0 -15
- package/dist/core/operations/adopt-plan.d.ts.map +0 -1
- package/dist/core/operations/adopt-plan.js +0 -24
- package/dist/core/operations/adopt-plan.js.map +0 -1
- package/dist/core/operations/adopt.d.ts +0 -11
- package/dist/core/operations/adopt.d.ts.map +0 -1
- package/dist/core/operations/adopt.js +0 -150
- package/dist/core/operations/adopt.js.map +0 -1
- package/dist/core/operations/analyze.d.ts +0 -12
- package/dist/core/operations/analyze.d.ts.map +0 -1
- package/dist/core/operations/analyze.js +0 -53
- package/dist/core/operations/analyze.js.map +0 -1
- package/dist/core/prototype/spa-route-fallbacks.d.ts +0 -21
- package/dist/core/prototype/spa-route-fallbacks.d.ts.map +0 -1
- package/dist/core/prototype/spa-route-fallbacks.js +0 -93
- package/dist/core/prototype/spa-route-fallbacks.js.map +0 -1
- package/dist/graph/InMemoryGraph.d.ts +0 -2
- package/dist/graph/InMemoryGraph.d.ts.map +0 -1
- package/dist/graph/InMemoryGraph.js +0 -2
- package/dist/graph/InMemoryGraph.js.map +0 -1
- package/dist/graph/bundles.d.ts +0 -32
- package/dist/graph/bundles.d.ts.map +0 -1
- package/dist/graph/bundles.js +0 -109
- package/dist/graph/bundles.js.map +0 -1
- package/dist/graph/defaults.d.ts +0 -23
- package/dist/graph/defaults.d.ts.map +0 -1
- package/dist/graph/defaults.js +0 -25
- package/dist/graph/defaults.js.map +0 -1
- package/dist/graph/detail-sections.d.ts +0 -28
- package/dist/graph/detail-sections.d.ts.map +0 -1
- package/dist/graph/detail-sections.js +0 -220
- package/dist/graph/detail-sections.js.map +0 -1
- package/dist/graph/doc-extract.d.ts +0 -84
- package/dist/graph/doc-extract.d.ts.map +0 -1
- package/dist/graph/doc-extract.js +0 -821
- package/dist/graph/doc-extract.js.map +0 -1
- package/dist/graph/impact.d.ts +0 -5
- package/dist/graph/impact.d.ts.map +0 -1
- package/dist/graph/impact.js +0 -7
- package/dist/graph/impact.js.map +0 -1
- package/dist/graph/knowledge.d.ts +0 -11
- package/dist/graph/knowledge.d.ts.map +0 -1
- package/dist/graph/knowledge.js +0 -62
- package/dist/graph/knowledge.js.map +0 -1
- package/dist/graph/layer-audit.d.ts +0 -5
- package/dist/graph/layer-audit.d.ts.map +0 -1
- package/dist/graph/layer-audit.js +0 -29
- package/dist/graph/layer-audit.js.map +0 -1
- package/dist/graph/load.d.ts +0 -4
- package/dist/graph/load.d.ts.map +0 -1
- package/dist/graph/load.js +0 -12
- package/dist/graph/load.js.map +0 -1
- package/dist/graph/loadGraph.d.ts +0 -3
- package/dist/graph/loadGraph.d.ts.map +0 -1
- package/dist/graph/loadGraph.js +0 -7
- package/dist/graph/loadGraph.js.map +0 -1
- package/dist/graph/merge.d.ts +0 -27
- package/dist/graph/merge.d.ts.map +0 -1
- package/dist/graph/merge.js +0 -239
- package/dist/graph/merge.js.map +0 -1
- package/dist/graph/path-target-edges.d.ts +0 -2
- package/dist/graph/path-target-edges.d.ts.map +0 -1
- package/dist/graph/path-target-edges.js +0 -2
- package/dist/graph/path-target-edges.js.map +0 -1
- package/dist/graph/provenance.d.ts +0 -19
- package/dist/graph/provenance.d.ts.map +0 -1
- package/dist/graph/provenance.js +0 -199
- package/dist/graph/provenance.js.map +0 -1
- package/dist/graph/query.d.ts +0 -3
- package/dist/graph/query.d.ts.map +0 -1
- package/dist/graph/query.js +0 -2
- package/dist/graph/query.js.map +0 -1
- package/dist/graph/resolve.d.ts +0 -15
- package/dist/graph/resolve.d.ts.map +0 -1
- package/dist/graph/resolve.js +0 -117
- package/dist/graph/resolve.js.map +0 -1
- package/dist/graph/source-refs.d.ts +0 -2
- package/dist/graph/source-refs.d.ts.map +0 -1
- package/dist/graph/source-refs.js +0 -30
- package/dist/graph/source-refs.js.map +0 -1
- package/dist/graph/translation.d.ts +0 -14
- package/dist/graph/translation.d.ts.map +0 -1
- package/dist/graph/translation.js +0 -65
- package/dist/graph/translation.js.map +0 -1
- package/dist/index/doc-semantics.d.ts +0 -14
- package/dist/index/doc-semantics.d.ts.map +0 -1
- package/dist/index/doc-semantics.js +0 -101
- package/dist/index/doc-semantics.js.map +0 -1
- package/dist/index/docs-build.d.ts +0 -40
- package/dist/index/docs-build.d.ts.map +0 -1
- package/dist/index/docs-build.js +0 -136
- package/dist/index/docs-build.js.map +0 -1
- package/dist/index/docs-config.d.ts +0 -19
- package/dist/index/docs-config.d.ts.map +0 -1
- package/dist/index/docs-config.js +0 -5
- package/dist/index/docs-config.js.map +0 -1
- package/dist/interfaces/cli/format/adopt.d.ts +0 -23
- package/dist/interfaces/cli/format/adopt.d.ts.map +0 -1
- package/dist/interfaces/cli/format/adopt.js +0 -89
- package/dist/interfaces/cli/format/adopt.js.map +0 -1
- package/dist/interfaces/mcp/tools/adopt.d.ts +0 -22
- package/dist/interfaces/mcp/tools/adopt.d.ts.map +0 -1
- package/dist/interfaces/mcp/tools/adopt.js +0 -55
- package/dist/interfaces/mcp/tools/adopt.js.map +0 -1
- package/dist/lang/diff.d.ts +0 -12
- package/dist/lang/diff.d.ts.map +0 -1
- package/dist/lang/diff.js +0 -71
- package/dist/lang/diff.js.map +0 -1
- package/dist/lang/paths.d.ts +0 -16
- package/dist/lang/paths.d.ts.map +0 -1
- package/dist/lang/paths.js +0 -32
- package/dist/lang/paths.js.map +0 -1
- package/dist/lang/queue-layout.d.ts +0 -11
- package/dist/lang/queue-layout.d.ts.map +0 -1
- package/dist/lang/queue-layout.js +0 -56
- package/dist/lang/queue-layout.js.map +0 -1
- package/dist/lang/queue-store.d.ts +0 -23
- package/dist/lang/queue-store.d.ts.map +0 -1
- package/dist/lang/queue-store.js +0 -285
- package/dist/lang/queue-store.js.map +0 -1
- package/dist/lang/queue-types.d.ts +0 -122
- package/dist/lang/queue-types.d.ts.map +0 -1
- package/dist/lang/queue-types.js +0 -2
- package/dist/lang/queue-types.js.map +0 -1
- package/dist/lang/queue.d.ts +0 -17
- package/dist/lang/queue.d.ts.map +0 -1
- package/dist/lang/queue.js +0 -362
- package/dist/lang/queue.js.map +0 -1
- package/dist/lang/sections.d.ts +0 -26
- package/dist/lang/sections.d.ts.map +0 -1
- package/dist/lang/sections.js +0 -85
- package/dist/lang/sections.js.map +0 -1
- package/dist/markdown/parse.d.ts +0 -25
- package/dist/markdown/parse.d.ts.map +0 -1
- package/dist/markdown/parse.js +0 -100
- package/dist/markdown/parse.js.map +0 -1
- package/dist/prototype/build-base-path.d.ts +0 -11
- package/dist/prototype/build-base-path.d.ts.map +0 -1
- package/dist/prototype/build-base-path.js +0 -84
- package/dist/prototype/build-base-path.js.map +0 -1
- package/dist/prototype/build-manifest.d.ts +0 -21
- package/dist/prototype/build-manifest.d.ts.map +0 -1
- package/dist/prototype/build-manifest.js +0 -171
- package/dist/prototype/build-manifest.js.map +0 -1
- package/dist/prototype/config.d.ts +0 -21
- package/dist/prototype/config.d.ts.map +0 -1
- package/dist/prototype/config.js +0 -131
- package/dist/prototype/config.js.map +0 -1
- package/dist/prototype/deploy-path.d.ts +0 -9
- package/dist/prototype/deploy-path.d.ts.map +0 -1
- package/dist/prototype/deploy-path.js +0 -21
- package/dist/prototype/deploy-path.js.map +0 -1
- package/dist/prototype/htpasswd.d.ts +0 -8
- package/dist/prototype/htpasswd.d.ts.map +0 -1
- package/dist/prototype/htpasswd.js +0 -36
- package/dist/prototype/htpasswd.js.map +0 -1
- package/dist/prototype/nginx-config.d.ts +0 -16
- package/dist/prototype/nginx-config.d.ts.map +0 -1
- package/dist/prototype/nginx-config.js +0 -39
- package/dist/prototype/nginx-config.js.map +0 -1
- package/dist/prototype/parse-screen-index.d.ts +0 -10
- package/dist/prototype/parse-screen-index.d.ts.map +0 -1
- package/dist/prototype/parse-screen-index.js +0 -109
- package/dist/prototype/parse-screen-index.js.map +0 -1
- package/dist/prototype/preview-uri.d.ts +0 -8
- package/dist/prototype/preview-uri.d.ts.map +0 -1
- package/dist/prototype/preview-uri.js +0 -35
- package/dist/prototype/preview-uri.js.map +0 -1
- package/dist/prototype/relative-assets.d.ts +0 -9
- package/dist/prototype/relative-assets.d.ts.map +0 -1
- package/dist/prototype/relative-assets.js +0 -23
- package/dist/prototype/relative-assets.js.map +0 -1
- package/dist/prototype/resolve-default-screen.d.ts +0 -17
- package/dist/prototype/resolve-default-screen.d.ts.map +0 -1
- package/dist/prototype/resolve-default-screen.js +0 -31
- package/dist/prototype/resolve-default-screen.js.map +0 -1
- package/dist/prototype/rewrite-build-assets.d.ts +0 -8
- package/dist/prototype/rewrite-build-assets.d.ts.map +0 -1
- package/dist/prototype/rewrite-build-assets.js +0 -40
- package/dist/prototype/rewrite-build-assets.js.map +0 -1
- package/dist/prototype/route-defaults.d.ts +0 -43
- package/dist/prototype/route-defaults.d.ts.map +0 -1
- package/dist/prototype/route-defaults.js +0 -50
- package/dist/prototype/route-defaults.js.map +0 -1
- package/dist/prototype/screen-doc-paths.d.ts +0 -15
- package/dist/prototype/screen-doc-paths.d.ts.map +0 -1
- package/dist/prototype/screen-doc-paths.js +0 -38
- package/dist/prototype/screen-doc-paths.js.map +0 -1
- package/dist/prototype/spa-route-fallbacks.d.ts +0 -21
- package/dist/prototype/spa-route-fallbacks.d.ts.map +0 -1
- package/dist/prototype/spa-route-fallbacks.js +0 -93
- package/dist/prototype/spa-route-fallbacks.js.map +0 -1
- package/dist/prototype/theme-preview.d.ts +0 -17
- package/dist/prototype/theme-preview.d.ts.map +0 -1
- package/dist/prototype/theme-preview.js +0 -73
- package/dist/prototype/theme-preview.js.map +0 -1
- package/dist/prototype/themes.d.ts +0 -6
- package/dist/prototype/themes.d.ts.map +0 -1
- package/dist/prototype/themes.js +0 -55
- package/dist/prototype/themes.js.map +0 -1
- package/dist/prototype/types.d.ts +0 -160
- package/dist/prototype/types.d.ts.map +0 -1
- package/dist/prototype/types.js +0 -2
- package/dist/prototype/types.js.map +0 -1
- package/dist/prototype/validate.d.ts +0 -16
- package/dist/prototype/validate.d.ts.map +0 -1
- package/dist/prototype/validate.js +0 -149
- package/dist/prototype/validate.js.map +0 -1
- package/dist/registry/build.d.ts +0 -5
- package/dist/registry/build.d.ts.map +0 -1
- package/dist/registry/build.js +0 -71
- package/dist/registry/build.js.map +0 -1
- package/dist/registry/slug.d.ts +0 -4
- package/dist/registry/slug.d.ts.map +0 -1
- package/dist/registry/slug.js +0 -16
- package/dist/registry/slug.js.map +0 -1
- package/dist/registry/structure-patch.d.ts +0 -6
- package/dist/registry/structure-patch.d.ts.map +0 -1
- package/dist/registry/structure-patch.js +0 -49
- package/dist/registry/structure-patch.js.map +0 -1
- package/dist/template/scan.d.ts +0 -21
- package/dist/template/scan.d.ts.map +0 -1
- package/dist/template/scan.js +0 -84
- package/dist/template/scan.js.map +0 -1
- package/dist/template/validate.d.ts +0 -10
- package/dist/template/validate.d.ts.map +0 -1
- package/dist/template/validate.js +0 -64
- package/dist/template/validate.js.map +0 -1
- package/dist/util/fs.d.ts +0 -6
- package/dist/util/fs.d.ts.map +0 -1
- package/dist/util/fs.js +0 -24
- package/dist/util/fs.js.map +0 -1
- package/dist/util/git-diff.d.ts +0 -16
- package/dist/util/git-diff.d.ts.map +0 -1
- package/dist/util/git-diff.js +0 -93
- package/dist/util/git-diff.js.map +0 -1
- package/dist/util/gitignore.d.ts +0 -9
- package/dist/util/gitignore.d.ts.map +0 -1
- package/dist/util/gitignore.js +0 -44
- package/dist/util/gitignore.js.map +0 -1
- package/dist/util/open-browser.d.ts +0 -3
- package/dist/util/open-browser.d.ts.map +0 -1
- package/dist/util/open-browser.js +0 -24
- package/dist/util/open-browser.js.map +0 -1
- package/dist/util/paths.d.ts +0 -16
- package/dist/util/paths.d.ts.map +0 -1
- package/dist/util/paths.js +0 -19
- package/dist/util/paths.js.map +0 -1
- package/dist/util/prompt.d.ts +0 -14
- package/dist/util/prompt.d.ts.map +0 -1
- package/dist/util/prompt.js +0 -65
- package/dist/util/prompt.js.map +0 -1
- package/dist/visualize/html.d.ts +0 -13
- package/dist/visualize/html.d.ts.map +0 -1
- package/dist/visualize/html.js +0 -766
- package/dist/visualize/html.js.map +0 -1
- package/dist/visualize/stats.d.ts +0 -8
- package/dist/visualize/stats.d.ts.map +0 -1
- package/dist/visualize/stats.js +0 -9
- package/dist/visualize/stats.js.map +0 -1
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { PrototypeConfig, ScreenIndexRow } from "./types.js";
|
|
2
|
-
export declare function extractScreenIndexSection(markdown: string, sectionHeading: string): string;
|
|
3
|
-
export interface ParseScreenIndexOptions {
|
|
4
|
-
projectRoot: string;
|
|
5
|
-
config: PrototypeConfig;
|
|
6
|
-
listMarkdown: string;
|
|
7
|
-
}
|
|
8
|
-
/** Parse Screen Index table from list-screens markdown. */
|
|
9
|
-
export declare function parseScreenIndexFromList(opts: ParseScreenIndexOptions): ScreenIndexRow[];
|
|
10
|
-
//# sourceMappingURL=parse-screen-index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse-screen-index.d.ts","sourceRoot":"","sources":["../../src/prototype/parse-screen-index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAwBlE,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,GACrB,MAAM,CAsBR;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,2DAA2D;AAC3D,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,uBAAuB,GAC5B,cAAc,EAAE,CA+ElB"}
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import { join } from "node:path";
|
|
2
|
-
import { headingSlug } from "../registry/slug.js";
|
|
3
|
-
const PLACEHOLDER_RE = /^<[^>]+>$/;
|
|
4
|
-
function parseTableRow(line) {
|
|
5
|
-
const trimmed = line.trim();
|
|
6
|
-
if (!trimmed.startsWith("|")) {
|
|
7
|
-
return [];
|
|
8
|
-
}
|
|
9
|
-
return trimmed
|
|
10
|
-
.split("|")
|
|
11
|
-
.map((c) => c.trim())
|
|
12
|
-
.filter((_, i, arr) => i > 0 && i < arr.length - 1);
|
|
13
|
-
}
|
|
14
|
-
function isSeparatorRow(cells) {
|
|
15
|
-
return cells.every((c) => /^:?-{2,}:?$/.test(c.replace(/\s/g, "")));
|
|
16
|
-
}
|
|
17
|
-
function isPlaceholderRow(cells) {
|
|
18
|
-
const first = cells[0]?.trim() ?? "";
|
|
19
|
-
return !first || PLACEHOLDER_RE.test(first) || /^screen\s*\d+$/i.test(first);
|
|
20
|
-
}
|
|
21
|
-
export function extractScreenIndexSection(markdown, sectionHeading) {
|
|
22
|
-
const lines = markdown.split(/\r?\n/);
|
|
23
|
-
const target = sectionHeading.trim().toLowerCase();
|
|
24
|
-
let start = -1;
|
|
25
|
-
for (let i = 0; i < lines.length; i++) {
|
|
26
|
-
if (lines[i].trim().toLowerCase() === target) {
|
|
27
|
-
start = i + 1;
|
|
28
|
-
break;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
if (start < 0) {
|
|
32
|
-
throw new Error(`Section not found: ${sectionHeading}`);
|
|
33
|
-
}
|
|
34
|
-
const chunk = [];
|
|
35
|
-
for (let i = start; i < lines.length; i++) {
|
|
36
|
-
const line = lines[i];
|
|
37
|
-
if (/^##\s+/.test(line) && !line.trim().toLowerCase().startsWith("###")) {
|
|
38
|
-
break;
|
|
39
|
-
}
|
|
40
|
-
chunk.push(line);
|
|
41
|
-
}
|
|
42
|
-
return chunk.join("\n");
|
|
43
|
-
}
|
|
44
|
-
/** Parse Screen Index table from list-screens markdown. */
|
|
45
|
-
export function parseScreenIndexFromList(opts) {
|
|
46
|
-
const section = extractScreenIndexSection(opts.listMarkdown, opts.config.screenIndexSection);
|
|
47
|
-
const tableLines = section.split(/\r?\n/).filter((l) => l.trim().startsWith("|"));
|
|
48
|
-
if (tableLines.length < 2) {
|
|
49
|
-
return [];
|
|
50
|
-
}
|
|
51
|
-
const headerCells = parseTableRow(tableLines[0]);
|
|
52
|
-
const normalizedHeaders = headerCells.map((h) => h.toLowerCase().replace(/\s+/g, " "));
|
|
53
|
-
const hasScreenIdCol = normalizedHeaders[0] === "screen id";
|
|
54
|
-
// Optional "Spec file" column lets rows override the slug-derived screenDoc filename.
|
|
55
|
-
const specFileColIdx = normalizedHeaders.findIndex((h) => h === "spec file" || h === "screen doc" || h === "spec");
|
|
56
|
-
const rows = [];
|
|
57
|
-
for (let i = 1; i < tableLines.length; i++) {
|
|
58
|
-
const cells = parseTableRow(tableLines[i]);
|
|
59
|
-
if (cells.length === 0 || isSeparatorRow(cells) || isPlaceholderRow(cells)) {
|
|
60
|
-
continue;
|
|
61
|
-
}
|
|
62
|
-
let screenId;
|
|
63
|
-
let displayName;
|
|
64
|
-
let purpose;
|
|
65
|
-
let userRole;
|
|
66
|
-
let specFile;
|
|
67
|
-
if (hasScreenIdCol) {
|
|
68
|
-
screenId = cells[0].trim();
|
|
69
|
-
displayName = (cells[1] ?? cells[0]).trim();
|
|
70
|
-
userRole = cells[3]?.trim() || undefined;
|
|
71
|
-
purpose = cells[4]?.trim() || cells[3]?.trim() || undefined;
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
displayName = cells[0].trim();
|
|
75
|
-
screenId = headingSlug(displayName);
|
|
76
|
-
userRole = cells[2]?.trim() || undefined;
|
|
77
|
-
purpose = cells[3]?.trim() || undefined;
|
|
78
|
-
}
|
|
79
|
-
if (specFileColIdx >= 0) {
|
|
80
|
-
const raw = cells[specFileColIdx]?.trim();
|
|
81
|
-
if (raw && !PLACEHOLDER_RE.test(raw)) {
|
|
82
|
-
specFile = raw;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
if (!displayName || PLACEHOLDER_RE.test(displayName)) {
|
|
86
|
-
continue;
|
|
87
|
-
}
|
|
88
|
-
const slug = headingSlug(displayName);
|
|
89
|
-
const id = screenId && !PLACEHOLDER_RE.test(screenId) ? screenId : slug;
|
|
90
|
-
// Use explicit spec file if provided, otherwise derive from slug.
|
|
91
|
-
const docFilename = specFile ?? `${slug}.md`;
|
|
92
|
-
const screenDoc = join(opts.config.screenDetailDir, docFilename).replace(/\\/g, "/");
|
|
93
|
-
const prototypeStem = slug;
|
|
94
|
-
const prototypePath = join(opts.config.srcDir, `${prototypeStem}.html`).replace(/\\/g, "/");
|
|
95
|
-
rows.push({
|
|
96
|
-
screenId: id,
|
|
97
|
-
displayName,
|
|
98
|
-
purpose,
|
|
99
|
-
userRole,
|
|
100
|
-
slug,
|
|
101
|
-
screenDoc,
|
|
102
|
-
specFile,
|
|
103
|
-
prototypeStem,
|
|
104
|
-
prototypePath,
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
return rows;
|
|
108
|
-
}
|
|
109
|
-
//# sourceMappingURL=parse-screen-index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse-screen-index.js","sourceRoot":"","sources":["../../src/prototype/parse-screen-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Build a concrete preview URL from a route pattern and default param values.
|
|
3
|
-
* Used in screen-map.json so reviewers can open detail screens without manual URL editing.
|
|
4
|
-
*/
|
|
5
|
-
export declare function buildPreviewUri(routePattern: string, routeParams?: Record<string, string>, queryParams?: Record<string, string>): string;
|
|
6
|
-
/** True when the pattern still has unresolved dynamic segments (e.g. :id). */
|
|
7
|
-
export declare function routePatternHasUnresolvedParams(routePattern: string, routeParams?: Record<string, string>): boolean;
|
|
8
|
-
//# sourceMappingURL=preview-uri.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"preview-uri.d.ts","sourceRoot":"","sources":["../../src/prototype/preview-uri.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,MAAM,CAqBR;AAED,8EAA8E;AAC9E,wBAAgB,+BAA+B,CAC7C,YAAY,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,OAAO,CAST"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Build a concrete preview URL from a route pattern and default param values.
|
|
3
|
-
* Used in screen-map.json so reviewers can open detail screens without manual URL editing.
|
|
4
|
-
*/
|
|
5
|
-
export function buildPreviewUri(routePattern, routeParams, queryParams) {
|
|
6
|
-
let path = routePattern.trim() || "/";
|
|
7
|
-
if (!path.startsWith("/")) {
|
|
8
|
-
path = `/${path}`;
|
|
9
|
-
}
|
|
10
|
-
if (routeParams) {
|
|
11
|
-
for (const [key, value] of Object.entries(routeParams)) {
|
|
12
|
-
const encoded = encodeURIComponent(value);
|
|
13
|
-
path = path.replace(`:${key}`, encoded).replace(`[${key}]`, encoded);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
if (queryParams && Object.keys(queryParams).length > 0) {
|
|
17
|
-
const qs = new URLSearchParams(queryParams).toString();
|
|
18
|
-
if (qs) {
|
|
19
|
-
path += path.includes("?") ? `&${qs}` : `?${qs}`;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
return path;
|
|
23
|
-
}
|
|
24
|
-
/** True when the pattern still has unresolved dynamic segments (e.g. :id). */
|
|
25
|
-
export function routePatternHasUnresolvedParams(routePattern, routeParams) {
|
|
26
|
-
const paramNames = [...routePattern.matchAll(/:([A-Za-z0-9_]+)/g)].map((m) => m[1]);
|
|
27
|
-
if (paramNames.length === 0) {
|
|
28
|
-
return false;
|
|
29
|
-
}
|
|
30
|
-
if (!routeParams) {
|
|
31
|
-
return true;
|
|
32
|
-
}
|
|
33
|
-
return paramNames.some((name) => !routeParams[name]?.trim());
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=preview-uri.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"preview-uri.js","sourceRoot":"","sources":["../../src/prototype/preview-uri.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,YAAoB,EACpB,WAAoC,EACpC,WAAoC;IAEpC,IAAI,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC;IACtC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YACvD,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,EAAE,OAAO,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,IAAI,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvD,MAAM,EAAE,GAAG,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC;QACvD,IAAI,EAAE,EAAE,CAAC;YACP,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACnD,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,+BAA+B,CAC7C,YAAoB,EACpB,WAAoC;IAEpC,MAAM,UAAU,GAAG,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;IACrF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/D,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Detect and rewrite root-absolute local asset refs in HTML.
|
|
3
|
-
* Paths like `/assets/app.js` break when the prototype is served from a subdirectory;
|
|
4
|
-
* use `./assets/app.js` (relative to the current HTML file) instead.
|
|
5
|
-
*/
|
|
6
|
-
export declare function findAbsoluteLocalRefs(html: string): string[];
|
|
7
|
-
export declare function rewriteAbsoluteLocalRefs(html: string): string;
|
|
8
|
-
export declare function htmlHasAbsoluteLocalRefs(html: string): boolean;
|
|
9
|
-
//# sourceMappingURL=relative-assets.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"relative-assets.d.ts","sourceRoot":"","sources":["../../src/prototype/relative-assets.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAQ5D;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM7D;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE9D"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Detect and rewrite root-absolute local asset refs in HTML.
|
|
3
|
-
* Paths like `/assets/app.js` break when the prototype is served from a subdirectory;
|
|
4
|
-
* use `./assets/app.js` (relative to the current HTML file) instead.
|
|
5
|
-
*/
|
|
6
|
-
/** Matches src/href="/local/path" but not protocol-relative (//) or same-page anchors (#). */
|
|
7
|
-
const ABSOLUTE_LOCAL_REF_RE = /\b(src|href)\s*=\s*(["'])\/(?!\/|#)([^"']+)\2/gi;
|
|
8
|
-
export function findAbsoluteLocalRefs(html) {
|
|
9
|
-
const refs = [];
|
|
10
|
-
const re = new RegExp(ABSOLUTE_LOCAL_REF_RE.source, "gi");
|
|
11
|
-
let match;
|
|
12
|
-
while ((match = re.exec(html)) !== null) {
|
|
13
|
-
refs.push(`/${match[3]}`);
|
|
14
|
-
}
|
|
15
|
-
return refs;
|
|
16
|
-
}
|
|
17
|
-
export function rewriteAbsoluteLocalRefs(html) {
|
|
18
|
-
return html.replace(ABSOLUTE_LOCAL_REF_RE, (_full, attr, quote, path) => `${attr}=${quote}./${path}${quote}`);
|
|
19
|
-
}
|
|
20
|
-
export function htmlHasAbsoluteLocalRefs(html) {
|
|
21
|
-
return findAbsoluteLocalRefs(html).length > 0;
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=relative-assets.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"relative-assets.js","sourceRoot":"","sources":["../../src/prototype/relative-assets.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,8FAA8F;AAC9F,MAAM,qBAAqB,GACzB,iDAAiD,CAAC;AAEpD,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1D,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,OAAO,IAAI,CAAC,OAAO,CACjB,qBAAqB,EACrB,CAAC,KAAK,EAAE,IAAY,EAAE,KAAa,EAAE,IAAY,EAAE,EAAE,CACnD,GAAG,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,KAAK,EAAE,CACtC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { PrototypeScreenMapEntry } from "./types.js";
|
|
2
|
-
export interface ResolveDefaultScreenOptions {
|
|
3
|
-
/** CLI or persisted config override. */
|
|
4
|
-
explicit?: string;
|
|
5
|
-
/** Previous `screen-map.json` → `defaultScreenId`. */
|
|
6
|
-
previous?: string;
|
|
7
|
-
/** `prototype.config.json` → `defaultScreenId`. */
|
|
8
|
-
configDefault?: string;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Pick the default entry screen from the current manifest state.
|
|
12
|
-
* Prefers screens that already have HTML; falls back to the full index order.
|
|
13
|
-
*/
|
|
14
|
-
export declare function resolveDefaultScreenId(screens: PrototypeScreenMapEntry[], opts?: ResolveDefaultScreenOptions): string | undefined;
|
|
15
|
-
export declare function formatDefaultScreenChoices(screens: PrototypeScreenMapEntry[]): string;
|
|
16
|
-
export declare function assertDefaultScreenInPool(screenId: string, screens: PrototypeScreenMapEntry[]): void;
|
|
17
|
-
//# sourceMappingURL=resolve-default-screen.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-default-screen.d.ts","sourceRoot":"","sources":["../../src/prototype/resolve-default-screen.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,WAAW,2BAA2B;IAC1C,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,uBAAuB,EAAE,EAClC,IAAI,GAAE,2BAAgC,GACrC,MAAM,GAAG,SAAS,CAkBpB;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,uBAAuB,EAAE,GACjC,MAAM,CAIR;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,uBAAuB,EAAE,GACjC,IAAI,CASN"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pick the default entry screen from the current manifest state.
|
|
3
|
-
* Prefers screens that already have HTML; falls back to the full index order.
|
|
4
|
-
*/
|
|
5
|
-
export function resolveDefaultScreenId(screens, opts = {}) {
|
|
6
|
-
if (screens.length === 0) {
|
|
7
|
-
return undefined;
|
|
8
|
-
}
|
|
9
|
-
const withHtml = screens.filter((s) => s.htmlExists);
|
|
10
|
-
const pool = withHtml.length > 0 ? withHtml : screens;
|
|
11
|
-
const poolIds = new Set(pool.map((s) => s.screenId));
|
|
12
|
-
const pick = (id) => id?.trim() && poolIds.has(id.trim()) ? id.trim() : undefined;
|
|
13
|
-
return (pick(opts.explicit) ??
|
|
14
|
-
pick(opts.previous) ??
|
|
15
|
-
pick(opts.configDefault) ??
|
|
16
|
-
pool[0].screenId);
|
|
17
|
-
}
|
|
18
|
-
export function formatDefaultScreenChoices(screens) {
|
|
19
|
-
const withHtml = screens.filter((s) => s.htmlExists);
|
|
20
|
-
const pool = withHtml.length > 0 ? withHtml : screens;
|
|
21
|
-
return pool.map((s) => `${s.screenId} (${s.displayName})`).join(", ");
|
|
22
|
-
}
|
|
23
|
-
export function assertDefaultScreenInPool(screenId, screens) {
|
|
24
|
-
const withHtml = screens.filter((s) => s.htmlExists);
|
|
25
|
-
const pool = withHtml.length > 0 ? withHtml : screens;
|
|
26
|
-
const poolIds = new Set(pool.map((s) => s.screenId));
|
|
27
|
-
if (!poolIds.has(screenId.trim())) {
|
|
28
|
-
throw new Error(`Unknown or unavailable default screen "${screenId}". Choose one of: ${formatDefaultScreenChoices(screens)}`);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=resolve-default-screen.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-default-screen.js","sourceRoot":"","sources":["../../src/prototype/resolve-default-screen.ts"],"names":[],"mappings":"AAWA;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAkC,EAClC,OAAoC,EAAE;IAEtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IACtD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAErD,MAAM,IAAI,GAAG,CAAC,EAAW,EAAsB,EAAE,CAC/C,EAAE,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAE/D,OAAO,CACL,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;QACxB,IAAI,CAAC,CAAC,CAAE,CAAC,QAAQ,CAClB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,OAAkC;IAElC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IACtD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,QAAgB,EAChB,OAAkC;IAElC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IACtD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,0CAA0C,QAAQ,qBAAqB,0BAA0B,CAAC,OAAO,CAAC,EAAE,CAC7G,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export interface RewriteBuildAssetsResult {
|
|
2
|
-
filesScanned: number;
|
|
3
|
-
filesRewritten: number;
|
|
4
|
-
rewrittenPaths: string[];
|
|
5
|
-
}
|
|
6
|
-
/** Rewrite root-absolute asset refs in HTML under a build output directory. */
|
|
7
|
-
export declare function rewriteBuildAssetRefs(buildDestAbs: string): Promise<RewriteBuildAssetsResult>;
|
|
8
|
-
//# sourceMappingURL=rewrite-build-assets.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rewrite-build-assets.d.ts","sourceRoot":"","sources":["../../src/prototype/rewrite-build-assets.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAgBD,+EAA+E;AAC/E,wBAAsB,qBAAqB,CACzC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,wBAAwB,CAAC,CAsBnC"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { readdir, readFile, writeFile } from "node:fs/promises";
|
|
2
|
-
import { join } from "node:path";
|
|
3
|
-
import { rewriteAbsoluteLocalRefs, htmlHasAbsoluteLocalRefs } from "./relative-assets.js";
|
|
4
|
-
async function walkHtmlFiles(dir) {
|
|
5
|
-
const out = [];
|
|
6
|
-
const entries = await readdir(dir, { withFileTypes: true });
|
|
7
|
-
for (const entry of entries) {
|
|
8
|
-
const full = join(dir, entry.name);
|
|
9
|
-
if (entry.isDirectory()) {
|
|
10
|
-
out.push(...(await walkHtmlFiles(full)));
|
|
11
|
-
}
|
|
12
|
-
else if (entry.isFile() && entry.name.endsWith(".html")) {
|
|
13
|
-
out.push(full);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
return out;
|
|
17
|
-
}
|
|
18
|
-
/** Rewrite root-absolute asset refs in HTML under a build output directory. */
|
|
19
|
-
export async function rewriteBuildAssetRefs(buildDestAbs) {
|
|
20
|
-
const htmlFiles = await walkHtmlFiles(buildDestAbs);
|
|
21
|
-
const result = {
|
|
22
|
-
filesScanned: htmlFiles.length,
|
|
23
|
-
filesRewritten: 0,
|
|
24
|
-
rewrittenPaths: [],
|
|
25
|
-
};
|
|
26
|
-
for (const filePath of htmlFiles) {
|
|
27
|
-
const original = await readFile(filePath, "utf8");
|
|
28
|
-
if (!htmlHasAbsoluteLocalRefs(original)) {
|
|
29
|
-
continue;
|
|
30
|
-
}
|
|
31
|
-
const rewritten = rewriteAbsoluteLocalRefs(original);
|
|
32
|
-
if (rewritten !== original) {
|
|
33
|
-
await writeFile(filePath, rewritten, "utf8");
|
|
34
|
-
result.filesRewritten += 1;
|
|
35
|
-
result.rewrittenPaths.push(filePath);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return result;
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=rewrite-build-assets.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rewrite-build-assets.js","sourceRoot":"","sources":["../../src/prototype/rewrite-build-assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAQ1F,KAAK,UAAU,aAAa,CAAC,GAAW;IACtC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1D,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,YAAoB;IAEpB,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,CAAC;IACpD,MAAM,MAAM,GAA6B;QACvC,YAAY,EAAE,SAAS,CAAC,MAAM;QAC9B,cAAc,EAAE,CAAC;QACjB,cAAc,EAAE,EAAE;KACnB,CAAC;IAEF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC3B,MAAM,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YAC7C,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC;YAC3B,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import type { PrototypeScreenMapEntry } from "./types.js";
|
|
2
|
-
export interface PrototypeRouteDefaultsScreen {
|
|
3
|
-
/** Router path pattern; defaults to screen slug route `/<slug>`. */
|
|
4
|
-
routePattern?: string;
|
|
5
|
-
/** Default path-param values for preview / deep links (e.g. `{ "id": "demo-001" }`). */
|
|
6
|
-
routeParams?: Record<string, string>;
|
|
7
|
-
/** Default query-string values for preview (e.g. `{ "tab": "overview" }`). */
|
|
8
|
-
queryParams?: Record<string, string>;
|
|
9
|
-
/** When true, production would guard this route; prototype SPA should still allow direct access. */
|
|
10
|
-
requiresAuth?: boolean;
|
|
11
|
-
}
|
|
12
|
-
export interface PrototypeRouteDefaultsFile {
|
|
13
|
-
schemaVersion: 1;
|
|
14
|
-
/**
|
|
15
|
-
* When true (default for prototypes), SPA router guards must not redirect unauthenticated
|
|
16
|
-
* users away from deep-linked routes — reviewers open any screen-map previewUri directly.
|
|
17
|
-
*/
|
|
18
|
-
prototypeBypassAuth?: boolean;
|
|
19
|
-
screens: Record<string, PrototypeRouteDefaultsScreen>;
|
|
20
|
-
}
|
|
21
|
-
export declare function routeDefaultsPath(prototypeDir: string): string;
|
|
22
|
-
export declare function loadRouteDefaults(projectRoot: string, prototypeDir: string): Promise<PrototypeRouteDefaultsFile | undefined>;
|
|
23
|
-
export interface ApplyRouteDefaultsInput {
|
|
24
|
-
screenId: string;
|
|
25
|
-
slug: string;
|
|
26
|
-
buildMode: "static" | "spa";
|
|
27
|
-
baseUri: string;
|
|
28
|
-
fromFile?: PrototypeRouteDefaultsScreen;
|
|
29
|
-
fromPriorEntry?: Pick<PrototypeScreenMapEntry, "routePattern" | "routeParams" | "queryParams" | "requiresAuth" | "uri">;
|
|
30
|
-
}
|
|
31
|
-
export interface ApplyRouteDefaultsResult {
|
|
32
|
-
uri: string;
|
|
33
|
-
routePattern?: string;
|
|
34
|
-
routeParams?: Record<string, string>;
|
|
35
|
-
queryParams?: Record<string, string>;
|
|
36
|
-
previewUri?: string;
|
|
37
|
-
requiresAuth?: boolean;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Merge route defaults (file → prior screen-map) and compute previewUri for SPA screens.
|
|
41
|
-
*/
|
|
42
|
-
export declare function applyRouteDefaults(input: ApplyRouteDefaultsInput): ApplyRouteDefaultsResult;
|
|
43
|
-
//# sourceMappingURL=route-defaults.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"route-defaults.d.ts","sourceRoot":"","sources":["../../src/prototype/route-defaults.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAI1D,MAAM,WAAW,4BAA4B;IAC3C,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wFAAwF;IACxF,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,oGAAoG;IACpG,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,aAAa,EAAE,CAAC,CAAC;IACjB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;CACvD;AAID,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC,CAUjD;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,4BAA4B,CAAC;IACxC,cAAc,CAAC,EAAE,IAAI,CACnB,uBAAuB,EACvB,cAAc,GAAG,aAAa,GAAG,aAAa,GAAG,cAAc,GAAG,KAAK,CACxE,CAAC;CACH;AAED,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,wBAAwB,CA+B3F"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { join } from "node:path";
|
|
2
|
-
import { buildPreviewUri, routePatternHasUnresolvedParams } from "./preview-uri.js";
|
|
3
|
-
import { pathExists, readJson } from "../util/fs.js";
|
|
4
|
-
const ROUTE_DEFAULTS_FILE = "route-defaults.json";
|
|
5
|
-
export function routeDefaultsPath(prototypeDir) {
|
|
6
|
-
return join(prototypeDir, ROUTE_DEFAULTS_FILE);
|
|
7
|
-
}
|
|
8
|
-
export async function loadRouteDefaults(projectRoot, prototypeDir) {
|
|
9
|
-
const path = join(projectRoot, prototypeDir, ROUTE_DEFAULTS_FILE);
|
|
10
|
-
if (!(await pathExists(path))) {
|
|
11
|
-
return undefined;
|
|
12
|
-
}
|
|
13
|
-
const raw = await readJson(path);
|
|
14
|
-
if (raw.schemaVersion !== 1 || !raw.screens) {
|
|
15
|
-
return undefined;
|
|
16
|
-
}
|
|
17
|
-
return raw;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Merge route defaults (file → prior screen-map) and compute previewUri for SPA screens.
|
|
21
|
-
*/
|
|
22
|
-
export function applyRouteDefaults(input) {
|
|
23
|
-
const merged = {
|
|
24
|
-
routePattern: input.fromPriorEntry?.routePattern ?? input.fromPriorEntry?.uri,
|
|
25
|
-
routeParams: input.fromPriorEntry?.routeParams,
|
|
26
|
-
queryParams: input.fromPriorEntry?.queryParams,
|
|
27
|
-
requiresAuth: input.fromPriorEntry?.requiresAuth,
|
|
28
|
-
...input.fromFile,
|
|
29
|
-
};
|
|
30
|
-
if (input.buildMode !== "spa") {
|
|
31
|
-
return { uri: input.baseUri };
|
|
32
|
-
}
|
|
33
|
-
const routePattern = merged.routePattern?.trim() || input.fromPriorEntry?.uri || input.baseUri;
|
|
34
|
-
const routeParams = merged.routeParams;
|
|
35
|
-
const queryParams = merged.queryParams;
|
|
36
|
-
const requiresAuth = merged.requiresAuth;
|
|
37
|
-
const hasUnresolved = routePatternHasUnresolvedParams(routePattern, routeParams);
|
|
38
|
-
const previewUri = hasUnresolved
|
|
39
|
-
? undefined
|
|
40
|
-
: buildPreviewUri(routePattern, routeParams, queryParams);
|
|
41
|
-
return {
|
|
42
|
-
uri: routePattern,
|
|
43
|
-
...(routePattern !== input.baseUri ? { routePattern } : {}),
|
|
44
|
-
...(routeParams && Object.keys(routeParams).length > 0 ? { routeParams } : {}),
|
|
45
|
-
...(queryParams && Object.keys(queryParams).length > 0 ? { queryParams } : {}),
|
|
46
|
-
...(previewUri ? { previewUri } : {}),
|
|
47
|
-
...(requiresAuth !== undefined ? { requiresAuth } : {}),
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=route-defaults.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"route-defaults.js","sourceRoot":"","sources":["../../src/prototype/route-defaults.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export interface ScreenDocPathResult {
|
|
2
|
-
/** Language-neutral doc path without the `docs/` prefix or language segment. */
|
|
3
|
-
screenDocPath: string;
|
|
4
|
-
/** Per-language repo-relative paths when the project has multiple doc languages. */
|
|
5
|
-
screenDocs?: Record<string, string>;
|
|
6
|
-
}
|
|
7
|
-
/** Strip `docs/` and an optional configured language segment from a detail directory. */
|
|
8
|
-
export declare function toLangNeutralDocDir(detailDir: string, docLanguages: string[]): string;
|
|
9
|
-
/** Build logical path + per-language repo-relative paths for screen-map entries. */
|
|
10
|
-
export declare function buildScreenDocPaths(opts: {
|
|
11
|
-
screenDetailDir: string;
|
|
12
|
-
docFilename: string;
|
|
13
|
-
docLanguages: string[];
|
|
14
|
-
}): ScreenDocPathResult;
|
|
15
|
-
//# sourceMappingURL=screen-doc-paths.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"screen-doc-paths.d.ts","sourceRoot":"","sources":["../../src/prototype/screen-doc-paths.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,gFAAgF;IAChF,aAAa,EAAE,MAAM,CAAC;IACtB,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAMD,yFAAyF;AACzF,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAOrF;AAkBD,oFAAoF;AACpF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,GAAG,mBAAmB,CAetB"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { join } from "node:path";
|
|
2
|
-
function escapeRegExp(value) {
|
|
3
|
-
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
4
|
-
}
|
|
5
|
-
/** Strip `docs/` and an optional configured language segment from a detail directory. */
|
|
6
|
-
export function toLangNeutralDocDir(detailDir, docLanguages) {
|
|
7
|
-
let normalized = detailDir.replace(/\\/g, "/").replace(/\/$/, "").replace(/^docs\/?/, "");
|
|
8
|
-
if (docLanguages.length > 1) {
|
|
9
|
-
const escaped = docLanguages.map(escapeRegExp).join("|");
|
|
10
|
-
normalized = normalized.replace(new RegExp(`/(${escaped})(/|$)`), "$2").replace(/\/$/, "");
|
|
11
|
-
}
|
|
12
|
-
return normalized;
|
|
13
|
-
}
|
|
14
|
-
function fullPathForLanguage(logicalPath, lang, docLanguages) {
|
|
15
|
-
if (docLanguages.length <= 1) {
|
|
16
|
-
return `docs/${logicalPath}`.replace(/\\/g, "/");
|
|
17
|
-
}
|
|
18
|
-
const slash = logicalPath.indexOf("/");
|
|
19
|
-
const domain = slash >= 0 ? logicalPath.slice(0, slash) : logicalPath;
|
|
20
|
-
const rest = slash >= 0 ? logicalPath.slice(slash + 1) : "";
|
|
21
|
-
return rest
|
|
22
|
-
? `docs/${domain}/${lang}/${rest}`.replace(/\\/g, "/")
|
|
23
|
-
: `docs/${domain}/${lang}/${logicalPath}`.replace(/\\/g, "/");
|
|
24
|
-
}
|
|
25
|
-
/** Build logical path + per-language repo-relative paths for screen-map entries. */
|
|
26
|
-
export function buildScreenDocPaths(opts) {
|
|
27
|
-
const langNeutralDir = toLangNeutralDocDir(opts.screenDetailDir, opts.docLanguages);
|
|
28
|
-
const logicalPath = join(langNeutralDir, opts.docFilename).replace(/\\/g, "/");
|
|
29
|
-
if (opts.docLanguages.length > 1) {
|
|
30
|
-
const screenDocs = Object.fromEntries(opts.docLanguages.map((lang) => [
|
|
31
|
-
lang,
|
|
32
|
-
fullPathForLanguage(logicalPath, lang, opts.docLanguages),
|
|
33
|
-
]));
|
|
34
|
-
return { screenDocPath: logicalPath, screenDocs };
|
|
35
|
-
}
|
|
36
|
-
return { screenDocPath: logicalPath };
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=screen-doc-paths.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"screen-doc-paths.js","sourceRoot":"","sources":["../../src/prototype/screen-doc-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AASjC,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,mBAAmB,CAAC,SAAiB,EAAE,YAAsB;IAC3E,IAAI,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC1F,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzD,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,OAAO,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,mBAAmB,CAC1B,WAAmB,EACnB,IAAY,EACZ,YAAsB;IAEtB,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO,QAAQ,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IACtE,MAAM,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,OAAO,IAAI;QACT,CAAC,CAAC,QAAQ,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;QACtD,CAAC,CAAC,QAAQ,MAAM,IAAI,IAAI,IAAI,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAClE,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,mBAAmB,CAAC,IAInC;IACC,MAAM,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACpF,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAE/E,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CACnC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9B,IAAI;YACJ,mBAAmB,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC;SAC1D,CAAC,CACH,CAAC;QACF,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;IACpD,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;AACxC,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { PrototypeScreenMapEntry } from "./types.js";
|
|
2
|
-
/** All deploy-prefix paths that need an index.html copy (every URL segment). */
|
|
3
|
-
export declare function spaFallbackDeployPaths(deployBase: string, previewOrRoute: string): string[];
|
|
4
|
-
/** Relative base href so `./assets/…` resolves to the SPA build root, not the nested folder. */
|
|
5
|
-
export declare function baseHrefForRouteDepth(routeSegmentCount: number): string;
|
|
6
|
-
export declare function injectSpaFallbackBaseHref(html: string, baseHref: string): string;
|
|
7
|
-
/**
|
|
8
|
-
* Copy the SPA entry index.html into each screen route directory so zip/static hosts
|
|
9
|
-
* can serve deep links without nginx try_files (e.g. dist/trip/x/print/index.html).
|
|
10
|
-
*/
|
|
11
|
-
export declare function writeSpaRouteFallbacks(opts: {
|
|
12
|
-
projectRoot: string;
|
|
13
|
-
repoBuildDest: string;
|
|
14
|
-
prototypeDir: string;
|
|
15
|
-
deployBase: string;
|
|
16
|
-
screens: PrototypeScreenMapEntry[];
|
|
17
|
-
}): Promise<{
|
|
18
|
-
filesWritten: number;
|
|
19
|
-
paths: string[];
|
|
20
|
-
}>;
|
|
21
|
-
//# sourceMappingURL=spa-route-fallbacks.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spa-route-fallbacks.d.ts","sourceRoot":"","sources":["../../src/prototype/spa-route-fallbacks.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAI1D,gFAAgF;AAChF,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,GACrB,MAAM,EAAE,CAaV;AAuBD,gGAAgG;AAChG,wBAAgB,qBAAqB,CAAC,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAKvE;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAShF;AASD;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,uBAAuB,EAAE,CAAC;CACpC,GAAG,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA2CrD"}
|