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.
Files changed (579) hide show
  1. package/contracts/bootstrap/config/prototype-screen-map.json +25 -0
  2. package/contracts/bootstrap/config/prototype.config.json +17 -0
  3. package/contracts/bootstrap/config/review-queue-pending.json +4 -0
  4. package/contracts/bootstrap/config/review-queue-registry.json +4 -0
  5. package/contracts/bootstrap/config/review.config.json +5 -0
  6. package/contracts/bootstrap/docs/ENTITY_REGISTRY_MIGRATION.md +192 -0
  7. package/contracts/bootstrap/docs/MIGRATION.md +463 -0
  8. package/contracts/bootstrap/docs/README.md +48 -0
  9. package/contracts/bootstrap/docs/adapters/README.md +32 -0
  10. package/contracts/bootstrap/docs/guides/COMMENTS_ENTITY_MIGRATION.md +195 -0
  11. package/contracts/bootstrap/docs/guides/DOCOPS_MANUAL_FALLBACK.md +177 -0
  12. package/contracts/bootstrap/docs/guides/PROJECT_LAYOUT.md +84 -0
  13. package/contracts/bootstrap/docs/modules/comments.md +77 -0
  14. package/contracts/bootstrap/docs/modules/generate.md +25 -0
  15. package/contracts/bootstrap/docs/modules/graph.md +31 -0
  16. package/contracts/bootstrap/docs/modules/prototype.md +26 -0
  17. package/contracts/bootstrap/docs/modules/review.md +25 -0
  18. package/contracts/bootstrap/docs/modules/translate.md +26 -0
  19. package/contracts/bootstrap/scripts/migrate-entity-registry.sh +55 -0
  20. package/contracts/bootstrap/templates/basic-design/db-design-template.md +177 -0
  21. package/contracts/bootstrap/templates/basic-design/detail-api-template.md +278 -0
  22. package/contracts/bootstrap/templates/basic-design/detail-screen-template.md +281 -0
  23. package/contracts/bootstrap/templates/basic-design/list-api-template.md +130 -0
  24. package/contracts/bootstrap/templates/basic-design/list-screen-template.md +242 -0
  25. package/contracts/bootstrap/templates/detail-design/common/architecture-overview-template.md +302 -0
  26. package/contracts/bootstrap/templates/detail-design/common/deployment-infrastructure-template.md +461 -0
  27. package/contracts/bootstrap/templates/detail-design/common/error-handling-patterns-template.md +460 -0
  28. package/contracts/bootstrap/templates/detail-design/common/integration-patterns-template.md +410 -0
  29. package/contracts/bootstrap/templates/detail-design/common/performance-standards-template.md +406 -0
  30. package/contracts/bootstrap/templates/detail-design/common/security-patterns-template.md +395 -0
  31. package/contracts/bootstrap/templates/detail-design/feature-detail-design-template.md +773 -0
  32. package/contracts/bootstrap/templates/detail-design/feature-list-template.md +39 -0
  33. package/contracts/bootstrap/templates/srs/1-introduction.md +58 -0
  34. package/contracts/bootstrap/templates/srs/2-overall-description.md +91 -0
  35. package/contracts/bootstrap/templates/srs/3-use-case-detail-template.md +142 -0
  36. package/contracts/bootstrap/templates/srs/3-use-cases.md +53 -0
  37. package/contracts/bootstrap/templates/srs/4-system-feature-detail-template.md +131 -0
  38. package/contracts/bootstrap/templates/srs/4-system-features-list-template.md +39 -0
  39. package/contracts/bootstrap/templates/srs/5-data-requirements.md +59 -0
  40. package/contracts/bootstrap/templates/srs/6-external-interfaces.md +56 -0
  41. package/contracts/bootstrap/templates/srs/7-quality-attributes.md +74 -0
  42. package/contracts/bootstrap/templates/srs/8-internationalization.md +36 -0
  43. package/contracts/bootstrap/templates/srs/9-other-requirements.md +46 -0
  44. package/contracts/examples/full-docops.config.json +54 -0
  45. package/contracts/examples/migrate-lifecycle.json +18 -0
  46. package/contracts/examples/minimal-comment-thread/comment-root.json +10 -0
  47. package/contracts/examples/minimal-comment-thread/meta_data.json +22 -0
  48. package/contracts/examples/minimal-docops.config.json +33 -0
  49. package/contracts/examples/minimal-lifecycle.json +17 -0
  50. package/contracts/examples/minimal-prototype.config.json +18 -0
  51. package/contracts/examples/minimal-screen-map.json +25 -0
  52. package/contracts/examples/registry/minimal-document.entity.json +15 -0
  53. package/contracts/examples/registry/minimal-manifest.json +7 -0
  54. package/contracts/examples/registry/minimal-screen.entity.json +11 -0
  55. package/contracts/examples/review/minimal-pending.json +14 -0
  56. package/contracts/examples/review/minimal-registry.json +31 -0
  57. package/contracts/examples/review/minimal-review.config.json +7 -0
  58. package/contracts/schemas/comments/comment_body.schema.json +19 -0
  59. package/contracts/schemas/comments/meta_data.schema.json +59 -0
  60. package/contracts/schemas/docops.config.schema.json +97 -0
  61. package/contracts/schemas/lifecycle.schema.json +43 -0
  62. package/contracts/schemas/prototype/config.schema.json +56 -0
  63. package/contracts/schemas/prototype/screen-map.schema.json +51 -0
  64. package/contracts/schemas/registry/document.entity.schema.json +38 -0
  65. package/contracts/schemas/registry/manifest.schema.json +18 -0
  66. package/contracts/schemas/registry/screen.entity.schema.json +28 -0
  67. package/contracts/schemas/review/registry.schema.json +72 -0
  68. package/contracts/schemas/review/review.config.schema.json +42 -0
  69. package/dist/cli.js +26 -1
  70. package/dist/cli.js.map +1 -1
  71. package/dist/core/docops/bootstrap.d.ts +4 -1
  72. package/dist/core/docops/bootstrap.d.ts.map +1 -1
  73. package/dist/core/docops/bootstrap.js +16 -9
  74. package/dist/core/docops/bootstrap.js.map +1 -1
  75. package/dist/core/docops/guide.d.ts +78 -0
  76. package/dist/core/docops/guide.d.ts.map +1 -0
  77. package/dist/core/docops/guide.js +554 -0
  78. package/dist/core/docops/guide.js.map +1 -0
  79. package/dist/core/docops/migrate.d.ts.map +1 -1
  80. package/dist/core/docops/migrate.js +40 -6
  81. package/dist/core/docops/migrate.js.map +1 -1
  82. package/dist/core/graph/doc-extract.d.ts.map +1 -1
  83. package/dist/core/graph/doc-extract.js +12 -0
  84. package/dist/core/graph/doc-extract.js.map +1 -1
  85. package/dist/core/graph/impact.d.ts.map +1 -1
  86. package/dist/core/graph/impact.js +2 -1
  87. package/dist/core/graph/impact.js.map +1 -1
  88. package/dist/core/graph/link-testcases.d.ts +14 -0
  89. package/dist/core/graph/link-testcases.d.ts.map +1 -0
  90. package/dist/core/graph/link-testcases.js +46 -0
  91. package/dist/core/graph/link-testcases.js.map +1 -0
  92. package/dist/core/operations/docops.d.ts +8 -0
  93. package/dist/core/operations/docops.d.ts.map +1 -1
  94. package/dist/core/operations/docops.js +40 -0
  95. package/dist/core/operations/docops.js.map +1 -1
  96. package/dist/core/operations/index.d.ts.map +1 -1
  97. package/dist/core/operations/index.js +25 -0
  98. package/dist/core/operations/index.js.map +1 -1
  99. package/dist/core/operations/task-gates.d.ts +8 -1
  100. package/dist/core/operations/task-gates.d.ts.map +1 -1
  101. package/dist/core/operations/task-gates.js +14 -0
  102. package/dist/core/operations/task-gates.js.map +1 -1
  103. package/dist/core/operations/task.d.ts +2 -0
  104. package/dist/core/operations/task.d.ts.map +1 -1
  105. package/dist/core/operations/task.js +40 -2
  106. package/dist/core/operations/task.js.map +1 -1
  107. package/dist/core/sync/audit.d.ts.map +1 -1
  108. package/dist/core/sync/audit.js +14 -6
  109. package/dist/core/sync/audit.js.map +1 -1
  110. package/dist/core/sync/baseline.d.ts.map +1 -1
  111. package/dist/core/sync/baseline.js +5 -2
  112. package/dist/core/sync/baseline.js.map +1 -1
  113. package/dist/core/sync/constants.d.ts.map +1 -1
  114. package/dist/core/sync/constants.js +2 -1
  115. package/dist/core/sync/constants.js.map +1 -1
  116. package/dist/core/sync/gaps.d.ts.map +1 -1
  117. package/dist/core/sync/gaps.js +23 -2
  118. package/dist/core/sync/gaps.js.map +1 -1
  119. package/dist/core/sync/git-diff.d.ts +1 -0
  120. package/dist/core/sync/git-diff.d.ts.map +1 -1
  121. package/dist/core/sync/git-diff.js +14 -0
  122. package/dist/core/sync/git-diff.js.map +1 -1
  123. package/dist/core/sync/repo-context.d.ts +23 -0
  124. package/dist/core/sync/repo-context.d.ts.map +1 -0
  125. package/dist/core/sync/repo-context.js +28 -0
  126. package/dist/core/sync/repo-context.js.map +1 -0
  127. package/dist/core/sync/snapshot.d.ts.map +1 -1
  128. package/dist/core/sync/snapshot.js +24 -18
  129. package/dist/core/sync/snapshot.js.map +1 -1
  130. package/dist/core/sync/types.d.ts +7 -2
  131. package/dist/core/sync/types.d.ts.map +1 -1
  132. package/dist/core/upgrade/checklist.json +2 -2
  133. package/dist/interfaces/mcp/schemas.d.ts +2 -0
  134. package/dist/interfaces/mcp/schemas.d.ts.map +1 -1
  135. package/dist/interfaces/mcp/schemas.js +4 -0
  136. package/dist/interfaces/mcp/schemas.js.map +1 -1
  137. package/dist/interfaces/mcp/server.js +0 -0
  138. package/dist/types.d.ts +2 -2
  139. package/dist/types.d.ts.map +1 -1
  140. package/package.json +2 -1
  141. package/scaffold/claude/.claude/skills/_skill-router.md +11 -8
  142. package/scaffold/claude/.claude/skills/ai-spector/references/cli-failures.md +3 -3
  143. package/scaffold/claude/.claude/skills/ai-spector/references/docops-migrate.md +112 -0
  144. package/scaffold/claude/.claude/skills/ai-spector/references/help.md +1 -1
  145. package/scaffold/claude/.claude/skills/ai-spector/references/runbook.md +49 -26
  146. package/scaffold/claude/.claude/skills/ai-spector/skill.md +3 -2
  147. package/scaffold/cursor/skills/_skill-router.md +11 -8
  148. package/scaffold/cursor/skills/ai-spector/SKILL.md +3 -2
  149. package/scaffold/cursor/skills/ai-spector/references/cli-failures.md +3 -3
  150. package/scaffold/cursor/skills/ai-spector/references/docops-migrate.md +112 -0
  151. package/scaffold/cursor/skills/ai-spector/references/help.md +1 -1
  152. package/scaffold/cursor/skills/ai-spector/references/runbook.md +49 -26
  153. package/schemas/rules.impact.json +3 -2
  154. package/schemas/schema.graph.json +4 -2
  155. package/dist/commands/analyze.d.ts +0 -12
  156. package/dist/commands/analyze.d.ts.map +0 -1
  157. package/dist/commands/analyze.js +0 -53
  158. package/dist/commands/analyze.js.map +0 -1
  159. package/dist/commands/bootstrap.d.ts +0 -4
  160. package/dist/commands/bootstrap.d.ts.map +0 -1
  161. package/dist/commands/bootstrap.js +0 -58
  162. package/dist/commands/bootstrap.js.map +0 -1
  163. package/dist/commands/comments.d.ts +0 -44
  164. package/dist/commands/comments.d.ts.map +0 -1
  165. package/dist/commands/comments.js +0 -79
  166. package/dist/commands/comments.js.map +0 -1
  167. package/dist/commands/graph-impact.d.ts +0 -28
  168. package/dist/commands/graph-impact.d.ts.map +0 -1
  169. package/dist/commands/graph-impact.js +0 -174
  170. package/dist/commands/graph-impact.js.map +0 -1
  171. package/dist/commands/graph-merge.d.ts +0 -32
  172. package/dist/commands/graph-merge.d.ts.map +0 -1
  173. package/dist/commands/graph-merge.js +0 -101
  174. package/dist/commands/graph-merge.js.map +0 -1
  175. package/dist/commands/graph-query.d.ts +0 -10
  176. package/dist/commands/graph-query.d.ts.map +0 -1
  177. package/dist/commands/graph-query.js +0 -24
  178. package/dist/commands/graph-query.js.map +0 -1
  179. package/dist/commands/graph-report.d.ts +0 -9
  180. package/dist/commands/graph-report.d.ts.map +0 -1
  181. package/dist/commands/graph-report.js +0 -10
  182. package/dist/commands/graph-report.js.map +0 -1
  183. package/dist/commands/graph-visualize.d.ts +0 -17
  184. package/dist/commands/graph-visualize.d.ts.map +0 -1
  185. package/dist/commands/graph-visualize.js +0 -44
  186. package/dist/commands/graph-visualize.js.map +0 -1
  187. package/dist/commands/hooks-constants.d.ts +0 -2
  188. package/dist/commands/hooks-constants.d.ts.map +0 -1
  189. package/dist/commands/hooks-constants.js +0 -2
  190. package/dist/commands/hooks-constants.js.map +0 -1
  191. package/dist/commands/hooks.d.ts +0 -28
  192. package/dist/commands/hooks.d.ts.map +0 -1
  193. package/dist/commands/hooks.js +0 -187
  194. package/dist/commands/hooks.js.map +0 -1
  195. package/dist/commands/index.d.ts +0 -22
  196. package/dist/commands/index.d.ts.map +0 -1
  197. package/dist/commands/index.js +0 -472
  198. package/dist/commands/index.js.map +0 -1
  199. package/dist/commands/init.d.ts +0 -19
  200. package/dist/commands/init.d.ts.map +0 -1
  201. package/dist/commands/init.js +0 -210
  202. package/dist/commands/init.js.map +0 -1
  203. package/dist/commands/lang-queue.d.ts +0 -28
  204. package/dist/commands/lang-queue.d.ts.map +0 -1
  205. package/dist/commands/lang-queue.js +0 -49
  206. package/dist/commands/lang-queue.js.map +0 -1
  207. package/dist/commands/lang.d.ts +0 -16
  208. package/dist/commands/lang.d.ts.map +0 -1
  209. package/dist/commands/lang.js +0 -69
  210. package/dist/commands/lang.js.map +0 -1
  211. package/dist/commands/prototype.d.ts +0 -66
  212. package/dist/commands/prototype.d.ts.map +0 -1
  213. package/dist/commands/prototype.js +0 -370
  214. package/dist/commands/prototype.js.map +0 -1
  215. package/dist/commands/setup.d.ts +0 -26
  216. package/dist/commands/setup.d.ts.map +0 -1
  217. package/dist/commands/setup.js +0 -259
  218. package/dist/commands/setup.js.map +0 -1
  219. package/dist/commands/sync-cursor.d.ts +0 -10
  220. package/dist/commands/sync-cursor.d.ts.map +0 -1
  221. package/dist/commands/sync-cursor.js +0 -18
  222. package/dist/commands/sync-cursor.js.map +0 -1
  223. package/dist/commands/template-regen.d.ts +0 -24
  224. package/dist/commands/template-regen.d.ts.map +0 -1
  225. package/dist/commands/template-regen.js +0 -240
  226. package/dist/commands/template-regen.js.map +0 -1
  227. package/dist/commands/template.d.ts +0 -3
  228. package/dist/commands/template.d.ts.map +0 -1
  229. package/dist/commands/template.js +0 -1285
  230. package/dist/commands/template.js.map +0 -1
  231. package/dist/commands/validate.d.ts +0 -10
  232. package/dist/commands/validate.d.ts.map +0 -1
  233. package/dist/commands/validate.js +0 -89
  234. package/dist/commands/validate.js.map +0 -1
  235. package/dist/comments/anchor.d.ts +0 -16
  236. package/dist/comments/anchor.d.ts.map +0 -1
  237. package/dist/comments/anchor.js +0 -59
  238. package/dist/comments/anchor.js.map +0 -1
  239. package/dist/comments/inbox.d.ts +0 -82
  240. package/dist/comments/inbox.d.ts.map +0 -1
  241. package/dist/comments/inbox.js +0 -179
  242. package/dist/comments/inbox.js.map +0 -1
  243. package/dist/comments/paths.d.ts +0 -12
  244. package/dist/comments/paths.d.ts.map +0 -1
  245. package/dist/comments/paths.js +0 -54
  246. package/dist/comments/paths.js.map +0 -1
  247. package/dist/comments/plan.d.ts +0 -20
  248. package/dist/comments/plan.d.ts.map +0 -1
  249. package/dist/comments/plan.js +0 -62
  250. package/dist/comments/plan.js.map +0 -1
  251. package/dist/comments/storage.d.ts +0 -30
  252. package/dist/comments/storage.d.ts.map +0 -1
  253. package/dist/comments/storage.js +0 -272
  254. package/dist/comments/storage.js.map +0 -1
  255. package/dist/comments/types.d.ts +0 -54
  256. package/dist/comments/types.d.ts.map +0 -1
  257. package/dist/comments/types.js +0 -2
  258. package/dist/comments/types.js.map +0 -1
  259. package/dist/config/load.d.ts +0 -47
  260. package/dist/config/load.d.ts.map +0 -1
  261. package/dist/config/load.js +0 -148
  262. package/dist/config/load.js.map +0 -1
  263. package/dist/config/types.d.ts +0 -56
  264. package/dist/config/types.d.ts.map +0 -1
  265. package/dist/config/types.js +0 -2
  266. package/dist/config/types.js.map +0 -1
  267. package/dist/core/adopt/apply.d.ts +0 -15
  268. package/dist/core/adopt/apply.d.ts.map +0 -1
  269. package/dist/core/adopt/apply.js +0 -127
  270. package/dist/core/adopt/apply.js.map +0 -1
  271. package/dist/core/adopt/bootstrap.d.ts +0 -16
  272. package/dist/core/adopt/bootstrap.d.ts.map +0 -1
  273. package/dist/core/adopt/bootstrap.js +0 -195
  274. package/dist/core/adopt/bootstrap.js.map +0 -1
  275. package/dist/core/adopt/classify.d.ts +0 -22
  276. package/dist/core/adopt/classify.d.ts.map +0 -1
  277. package/dist/core/adopt/classify.js +0 -295
  278. package/dist/core/adopt/classify.js.map +0 -1
  279. package/dist/core/adopt/paths.d.ts +0 -10
  280. package/dist/core/adopt/paths.d.ts.map +0 -1
  281. package/dist/core/adopt/paths.js +0 -16
  282. package/dist/core/adopt/paths.js.map +0 -1
  283. package/dist/core/adopt/plan.d.ts +0 -10
  284. package/dist/core/adopt/plan.d.ts.map +0 -1
  285. package/dist/core/adopt/plan.js +0 -269
  286. package/dist/core/adopt/plan.js.map +0 -1
  287. package/dist/core/adopt/scan.d.ts +0 -5
  288. package/dist/core/adopt/scan.d.ts.map +0 -1
  289. package/dist/core/adopt/scan.js +0 -169
  290. package/dist/core/adopt/scan.js.map +0 -1
  291. package/dist/core/adopt/setup.d.ts +0 -7
  292. package/dist/core/adopt/setup.d.ts.map +0 -1
  293. package/dist/core/adopt/setup.js +0 -64
  294. package/dist/core/adopt/setup.js.map +0 -1
  295. package/dist/core/adopt/tasks.d.ts +0 -9
  296. package/dist/core/adopt/tasks.d.ts.map +0 -1
  297. package/dist/core/adopt/tasks.js +0 -153
  298. package/dist/core/adopt/tasks.js.map +0 -1
  299. package/dist/core/adopt/types.d.ts +0 -75
  300. package/dist/core/adopt/types.d.ts.map +0 -1
  301. package/dist/core/adopt/types.js +0 -2
  302. package/dist/core/adopt/types.js.map +0 -1
  303. package/dist/core/adopt/validate.d.ts +0 -20
  304. package/dist/core/adopt/validate.d.ts.map +0 -1
  305. package/dist/core/adopt/validate.js +0 -129
  306. package/dist/core/adopt/validate.js.map +0 -1
  307. package/dist/core/docops/dual-write.d.ts +0 -12
  308. package/dist/core/docops/dual-write.d.ts.map +0 -1
  309. package/dist/core/docops/dual-write.js +0 -44
  310. package/dist/core/docops/dual-write.js.map +0 -1
  311. package/dist/core/engine/local-adapter.d.ts +0 -3
  312. package/dist/core/engine/local-adapter.d.ts.map +0 -1
  313. package/dist/core/engine/local-adapter.js +0 -18
  314. package/dist/core/engine/local-adapter.js.map +0 -1
  315. package/dist/core/graph/rules/default-impact.json +0 -24
  316. package/dist/core/operations/adopt-gates.d.ts +0 -19
  317. package/dist/core/operations/adopt-gates.d.ts.map +0 -1
  318. package/dist/core/operations/adopt-gates.js +0 -71
  319. package/dist/core/operations/adopt-gates.js.map +0 -1
  320. package/dist/core/operations/adopt-plan.d.ts +0 -15
  321. package/dist/core/operations/adopt-plan.d.ts.map +0 -1
  322. package/dist/core/operations/adopt-plan.js +0 -24
  323. package/dist/core/operations/adopt-plan.js.map +0 -1
  324. package/dist/core/operations/adopt.d.ts +0 -11
  325. package/dist/core/operations/adopt.d.ts.map +0 -1
  326. package/dist/core/operations/adopt.js +0 -150
  327. package/dist/core/operations/adopt.js.map +0 -1
  328. package/dist/core/operations/analyze.d.ts +0 -12
  329. package/dist/core/operations/analyze.d.ts.map +0 -1
  330. package/dist/core/operations/analyze.js +0 -53
  331. package/dist/core/operations/analyze.js.map +0 -1
  332. package/dist/core/prototype/spa-route-fallbacks.d.ts +0 -21
  333. package/dist/core/prototype/spa-route-fallbacks.d.ts.map +0 -1
  334. package/dist/core/prototype/spa-route-fallbacks.js +0 -93
  335. package/dist/core/prototype/spa-route-fallbacks.js.map +0 -1
  336. package/dist/graph/InMemoryGraph.d.ts +0 -2
  337. package/dist/graph/InMemoryGraph.d.ts.map +0 -1
  338. package/dist/graph/InMemoryGraph.js +0 -2
  339. package/dist/graph/InMemoryGraph.js.map +0 -1
  340. package/dist/graph/bundles.d.ts +0 -32
  341. package/dist/graph/bundles.d.ts.map +0 -1
  342. package/dist/graph/bundles.js +0 -109
  343. package/dist/graph/bundles.js.map +0 -1
  344. package/dist/graph/defaults.d.ts +0 -23
  345. package/dist/graph/defaults.d.ts.map +0 -1
  346. package/dist/graph/defaults.js +0 -25
  347. package/dist/graph/defaults.js.map +0 -1
  348. package/dist/graph/detail-sections.d.ts +0 -28
  349. package/dist/graph/detail-sections.d.ts.map +0 -1
  350. package/dist/graph/detail-sections.js +0 -220
  351. package/dist/graph/detail-sections.js.map +0 -1
  352. package/dist/graph/doc-extract.d.ts +0 -84
  353. package/dist/graph/doc-extract.d.ts.map +0 -1
  354. package/dist/graph/doc-extract.js +0 -821
  355. package/dist/graph/doc-extract.js.map +0 -1
  356. package/dist/graph/impact.d.ts +0 -5
  357. package/dist/graph/impact.d.ts.map +0 -1
  358. package/dist/graph/impact.js +0 -7
  359. package/dist/graph/impact.js.map +0 -1
  360. package/dist/graph/knowledge.d.ts +0 -11
  361. package/dist/graph/knowledge.d.ts.map +0 -1
  362. package/dist/graph/knowledge.js +0 -62
  363. package/dist/graph/knowledge.js.map +0 -1
  364. package/dist/graph/layer-audit.d.ts +0 -5
  365. package/dist/graph/layer-audit.d.ts.map +0 -1
  366. package/dist/graph/layer-audit.js +0 -29
  367. package/dist/graph/layer-audit.js.map +0 -1
  368. package/dist/graph/load.d.ts +0 -4
  369. package/dist/graph/load.d.ts.map +0 -1
  370. package/dist/graph/load.js +0 -12
  371. package/dist/graph/load.js.map +0 -1
  372. package/dist/graph/loadGraph.d.ts +0 -3
  373. package/dist/graph/loadGraph.d.ts.map +0 -1
  374. package/dist/graph/loadGraph.js +0 -7
  375. package/dist/graph/loadGraph.js.map +0 -1
  376. package/dist/graph/merge.d.ts +0 -27
  377. package/dist/graph/merge.d.ts.map +0 -1
  378. package/dist/graph/merge.js +0 -239
  379. package/dist/graph/merge.js.map +0 -1
  380. package/dist/graph/path-target-edges.d.ts +0 -2
  381. package/dist/graph/path-target-edges.d.ts.map +0 -1
  382. package/dist/graph/path-target-edges.js +0 -2
  383. package/dist/graph/path-target-edges.js.map +0 -1
  384. package/dist/graph/provenance.d.ts +0 -19
  385. package/dist/graph/provenance.d.ts.map +0 -1
  386. package/dist/graph/provenance.js +0 -199
  387. package/dist/graph/provenance.js.map +0 -1
  388. package/dist/graph/query.d.ts +0 -3
  389. package/dist/graph/query.d.ts.map +0 -1
  390. package/dist/graph/query.js +0 -2
  391. package/dist/graph/query.js.map +0 -1
  392. package/dist/graph/resolve.d.ts +0 -15
  393. package/dist/graph/resolve.d.ts.map +0 -1
  394. package/dist/graph/resolve.js +0 -117
  395. package/dist/graph/resolve.js.map +0 -1
  396. package/dist/graph/source-refs.d.ts +0 -2
  397. package/dist/graph/source-refs.d.ts.map +0 -1
  398. package/dist/graph/source-refs.js +0 -30
  399. package/dist/graph/source-refs.js.map +0 -1
  400. package/dist/graph/translation.d.ts +0 -14
  401. package/dist/graph/translation.d.ts.map +0 -1
  402. package/dist/graph/translation.js +0 -65
  403. package/dist/graph/translation.js.map +0 -1
  404. package/dist/index/doc-semantics.d.ts +0 -14
  405. package/dist/index/doc-semantics.d.ts.map +0 -1
  406. package/dist/index/doc-semantics.js +0 -101
  407. package/dist/index/doc-semantics.js.map +0 -1
  408. package/dist/index/docs-build.d.ts +0 -40
  409. package/dist/index/docs-build.d.ts.map +0 -1
  410. package/dist/index/docs-build.js +0 -136
  411. package/dist/index/docs-build.js.map +0 -1
  412. package/dist/index/docs-config.d.ts +0 -19
  413. package/dist/index/docs-config.d.ts.map +0 -1
  414. package/dist/index/docs-config.js +0 -5
  415. package/dist/index/docs-config.js.map +0 -1
  416. package/dist/interfaces/cli/format/adopt.d.ts +0 -23
  417. package/dist/interfaces/cli/format/adopt.d.ts.map +0 -1
  418. package/dist/interfaces/cli/format/adopt.js +0 -89
  419. package/dist/interfaces/cli/format/adopt.js.map +0 -1
  420. package/dist/interfaces/mcp/tools/adopt.d.ts +0 -22
  421. package/dist/interfaces/mcp/tools/adopt.d.ts.map +0 -1
  422. package/dist/interfaces/mcp/tools/adopt.js +0 -55
  423. package/dist/interfaces/mcp/tools/adopt.js.map +0 -1
  424. package/dist/lang/diff.d.ts +0 -12
  425. package/dist/lang/diff.d.ts.map +0 -1
  426. package/dist/lang/diff.js +0 -71
  427. package/dist/lang/diff.js.map +0 -1
  428. package/dist/lang/paths.d.ts +0 -16
  429. package/dist/lang/paths.d.ts.map +0 -1
  430. package/dist/lang/paths.js +0 -32
  431. package/dist/lang/paths.js.map +0 -1
  432. package/dist/lang/queue-layout.d.ts +0 -11
  433. package/dist/lang/queue-layout.d.ts.map +0 -1
  434. package/dist/lang/queue-layout.js +0 -56
  435. package/dist/lang/queue-layout.js.map +0 -1
  436. package/dist/lang/queue-store.d.ts +0 -23
  437. package/dist/lang/queue-store.d.ts.map +0 -1
  438. package/dist/lang/queue-store.js +0 -285
  439. package/dist/lang/queue-store.js.map +0 -1
  440. package/dist/lang/queue-types.d.ts +0 -122
  441. package/dist/lang/queue-types.d.ts.map +0 -1
  442. package/dist/lang/queue-types.js +0 -2
  443. package/dist/lang/queue-types.js.map +0 -1
  444. package/dist/lang/queue.d.ts +0 -17
  445. package/dist/lang/queue.d.ts.map +0 -1
  446. package/dist/lang/queue.js +0 -362
  447. package/dist/lang/queue.js.map +0 -1
  448. package/dist/lang/sections.d.ts +0 -26
  449. package/dist/lang/sections.d.ts.map +0 -1
  450. package/dist/lang/sections.js +0 -85
  451. package/dist/lang/sections.js.map +0 -1
  452. package/dist/markdown/parse.d.ts +0 -25
  453. package/dist/markdown/parse.d.ts.map +0 -1
  454. package/dist/markdown/parse.js +0 -100
  455. package/dist/markdown/parse.js.map +0 -1
  456. package/dist/prototype/build-base-path.d.ts +0 -11
  457. package/dist/prototype/build-base-path.d.ts.map +0 -1
  458. package/dist/prototype/build-base-path.js +0 -84
  459. package/dist/prototype/build-base-path.js.map +0 -1
  460. package/dist/prototype/build-manifest.d.ts +0 -21
  461. package/dist/prototype/build-manifest.d.ts.map +0 -1
  462. package/dist/prototype/build-manifest.js +0 -171
  463. package/dist/prototype/build-manifest.js.map +0 -1
  464. package/dist/prototype/config.d.ts +0 -21
  465. package/dist/prototype/config.d.ts.map +0 -1
  466. package/dist/prototype/config.js +0 -131
  467. package/dist/prototype/config.js.map +0 -1
  468. package/dist/prototype/deploy-path.d.ts +0 -9
  469. package/dist/prototype/deploy-path.d.ts.map +0 -1
  470. package/dist/prototype/deploy-path.js +0 -21
  471. package/dist/prototype/deploy-path.js.map +0 -1
  472. package/dist/prototype/htpasswd.d.ts +0 -8
  473. package/dist/prototype/htpasswd.d.ts.map +0 -1
  474. package/dist/prototype/htpasswd.js +0 -36
  475. package/dist/prototype/htpasswd.js.map +0 -1
  476. package/dist/prototype/nginx-config.d.ts +0 -16
  477. package/dist/prototype/nginx-config.d.ts.map +0 -1
  478. package/dist/prototype/nginx-config.js +0 -39
  479. package/dist/prototype/nginx-config.js.map +0 -1
  480. package/dist/prototype/parse-screen-index.d.ts +0 -10
  481. package/dist/prototype/parse-screen-index.d.ts.map +0 -1
  482. package/dist/prototype/parse-screen-index.js +0 -109
  483. package/dist/prototype/parse-screen-index.js.map +0 -1
  484. package/dist/prototype/preview-uri.d.ts +0 -8
  485. package/dist/prototype/preview-uri.d.ts.map +0 -1
  486. package/dist/prototype/preview-uri.js +0 -35
  487. package/dist/prototype/preview-uri.js.map +0 -1
  488. package/dist/prototype/relative-assets.d.ts +0 -9
  489. package/dist/prototype/relative-assets.d.ts.map +0 -1
  490. package/dist/prototype/relative-assets.js +0 -23
  491. package/dist/prototype/relative-assets.js.map +0 -1
  492. package/dist/prototype/resolve-default-screen.d.ts +0 -17
  493. package/dist/prototype/resolve-default-screen.d.ts.map +0 -1
  494. package/dist/prototype/resolve-default-screen.js +0 -31
  495. package/dist/prototype/resolve-default-screen.js.map +0 -1
  496. package/dist/prototype/rewrite-build-assets.d.ts +0 -8
  497. package/dist/prototype/rewrite-build-assets.d.ts.map +0 -1
  498. package/dist/prototype/rewrite-build-assets.js +0 -40
  499. package/dist/prototype/rewrite-build-assets.js.map +0 -1
  500. package/dist/prototype/route-defaults.d.ts +0 -43
  501. package/dist/prototype/route-defaults.d.ts.map +0 -1
  502. package/dist/prototype/route-defaults.js +0 -50
  503. package/dist/prototype/route-defaults.js.map +0 -1
  504. package/dist/prototype/screen-doc-paths.d.ts +0 -15
  505. package/dist/prototype/screen-doc-paths.d.ts.map +0 -1
  506. package/dist/prototype/screen-doc-paths.js +0 -38
  507. package/dist/prototype/screen-doc-paths.js.map +0 -1
  508. package/dist/prototype/spa-route-fallbacks.d.ts +0 -21
  509. package/dist/prototype/spa-route-fallbacks.d.ts.map +0 -1
  510. package/dist/prototype/spa-route-fallbacks.js +0 -93
  511. package/dist/prototype/spa-route-fallbacks.js.map +0 -1
  512. package/dist/prototype/theme-preview.d.ts +0 -17
  513. package/dist/prototype/theme-preview.d.ts.map +0 -1
  514. package/dist/prototype/theme-preview.js +0 -73
  515. package/dist/prototype/theme-preview.js.map +0 -1
  516. package/dist/prototype/themes.d.ts +0 -6
  517. package/dist/prototype/themes.d.ts.map +0 -1
  518. package/dist/prototype/themes.js +0 -55
  519. package/dist/prototype/themes.js.map +0 -1
  520. package/dist/prototype/types.d.ts +0 -160
  521. package/dist/prototype/types.d.ts.map +0 -1
  522. package/dist/prototype/types.js +0 -2
  523. package/dist/prototype/types.js.map +0 -1
  524. package/dist/prototype/validate.d.ts +0 -16
  525. package/dist/prototype/validate.d.ts.map +0 -1
  526. package/dist/prototype/validate.js +0 -149
  527. package/dist/prototype/validate.js.map +0 -1
  528. package/dist/registry/build.d.ts +0 -5
  529. package/dist/registry/build.d.ts.map +0 -1
  530. package/dist/registry/build.js +0 -71
  531. package/dist/registry/build.js.map +0 -1
  532. package/dist/registry/slug.d.ts +0 -4
  533. package/dist/registry/slug.d.ts.map +0 -1
  534. package/dist/registry/slug.js +0 -16
  535. package/dist/registry/slug.js.map +0 -1
  536. package/dist/registry/structure-patch.d.ts +0 -6
  537. package/dist/registry/structure-patch.d.ts.map +0 -1
  538. package/dist/registry/structure-patch.js +0 -49
  539. package/dist/registry/structure-patch.js.map +0 -1
  540. package/dist/template/scan.d.ts +0 -21
  541. package/dist/template/scan.d.ts.map +0 -1
  542. package/dist/template/scan.js +0 -84
  543. package/dist/template/scan.js.map +0 -1
  544. package/dist/template/validate.d.ts +0 -10
  545. package/dist/template/validate.d.ts.map +0 -1
  546. package/dist/template/validate.js +0 -64
  547. package/dist/template/validate.js.map +0 -1
  548. package/dist/util/fs.d.ts +0 -6
  549. package/dist/util/fs.d.ts.map +0 -1
  550. package/dist/util/fs.js +0 -24
  551. package/dist/util/fs.js.map +0 -1
  552. package/dist/util/git-diff.d.ts +0 -16
  553. package/dist/util/git-diff.d.ts.map +0 -1
  554. package/dist/util/git-diff.js +0 -93
  555. package/dist/util/git-diff.js.map +0 -1
  556. package/dist/util/gitignore.d.ts +0 -9
  557. package/dist/util/gitignore.d.ts.map +0 -1
  558. package/dist/util/gitignore.js +0 -44
  559. package/dist/util/gitignore.js.map +0 -1
  560. package/dist/util/open-browser.d.ts +0 -3
  561. package/dist/util/open-browser.d.ts.map +0 -1
  562. package/dist/util/open-browser.js +0 -24
  563. package/dist/util/open-browser.js.map +0 -1
  564. package/dist/util/paths.d.ts +0 -16
  565. package/dist/util/paths.d.ts.map +0 -1
  566. package/dist/util/paths.js +0 -19
  567. package/dist/util/paths.js.map +0 -1
  568. package/dist/util/prompt.d.ts +0 -14
  569. package/dist/util/prompt.d.ts.map +0 -1
  570. package/dist/util/prompt.js +0 -65
  571. package/dist/util/prompt.js.map +0 -1
  572. package/dist/visualize/html.d.ts +0 -13
  573. package/dist/visualize/html.d.ts.map +0 -1
  574. package/dist/visualize/html.js +0 -766
  575. package/dist/visualize/html.js.map +0 -1
  576. package/dist/visualize/stats.d.ts +0 -8
  577. package/dist/visualize/stats.d.ts.map +0 -1
  578. package/dist/visualize/stats.js +0 -9
  579. 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"}