@codeyam/codeyam-cli 0.1.0-staging.ad88eeb → 0.1.0-staging.b6c4c78

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 (279) hide show
  1. package/analyzer-template/.build-info.json +7 -7
  2. package/analyzer-template/log.txt +3 -3
  3. package/analyzer-template/package.json +2 -2
  4. package/analyzer-template/packages/ai/package.json +1 -1
  5. package/analyzer-template/packages/aws/package.json +1 -1
  6. package/analyzer-template/packages/database/package.json +1 -1
  7. package/analyzer-template/packages/database/src/lib/kysely/tables/editorScenariosTable.ts +72 -0
  8. package/analyzer-template/packages/database/src/lib/loadEntities.ts +0 -6
  9. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +0 -65
  10. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts +6 -0
  11. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts.map +1 -1
  12. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js +72 -0
  13. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -1
  14. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
  15. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +0 -6
  16. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
  17. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  18. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +0 -25
  19. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  20. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js +45 -0
  21. package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js.map +1 -0
  22. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js +101 -47
  23. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js.map +1 -1
  24. package/codeyam-cli/src/commands/editor.js +1810 -386
  25. package/codeyam-cli/src/commands/editor.js.map +1 -1
  26. package/codeyam-cli/src/commands/init.js +68 -34
  27. package/codeyam-cli/src/commands/init.js.map +1 -1
  28. package/codeyam-cli/src/data/techStacks.js +2 -7
  29. package/codeyam-cli/src/data/techStacks.js.map +1 -1
  30. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js +173 -0
  31. package/codeyam-cli/src/utils/__tests__/analyzerFinalization.test.js.map +1 -0
  32. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js +46 -0
  33. package/codeyam-cli/src/utils/__tests__/backgroundServer.test.js.map +1 -0
  34. package/codeyam-cli/src/utils/__tests__/editorApi.test.js +18 -8
  35. package/codeyam-cli/src/utils/__tests__/editorApi.test.js.map +1 -1
  36. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js +353 -1
  37. package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -1
  38. package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js +76 -0
  39. package/codeyam-cli/src/utils/__tests__/editorBroadcastViewport.test.js.map +1 -0
  40. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js +27 -2
  41. package/codeyam-cli/src/utils/__tests__/editorDevServer.test.js.map +1 -1
  42. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js +6 -3
  43. package/codeyam-cli/src/utils/__tests__/editorEntityChangeStatus.test.js.map +1 -1
  44. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js +223 -0
  45. package/codeyam-cli/src/utils/__tests__/editorEntityHelpers.test.js.map +1 -0
  46. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js +163 -1
  47. package/codeyam-cli/src/utils/__tests__/editorLoaderHelpers.test.js.map +1 -1
  48. package/codeyam-cli/src/utils/__tests__/editorMigration.test.js +430 -0
  49. package/codeyam-cli/src/utils/__tests__/editorMigration.test.js.map +1 -0
  50. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js +88 -1
  51. package/codeyam-cli/src/utils/__tests__/editorPreview.test.js.map +1 -1
  52. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js +47 -1
  53. package/codeyam-cli/src/utils/__tests__/editorProxySession.test.js.map +1 -1
  54. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js +968 -1
  55. package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js.map +1 -1
  56. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js +67 -0
  57. package/codeyam-cli/src/utils/__tests__/editorSeedAdapter.test.js.map +1 -1
  58. package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js +66 -0
  59. package/codeyam-cli/src/utils/__tests__/editorSessionFilter.test.js.map +1 -0
  60. package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js +53 -0
  61. package/codeyam-cli/src/utils/__tests__/editorShouldRevalidate.test.js.map +1 -0
  62. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js +102 -10
  63. package/codeyam-cli/src/utils/__tests__/entityChangeStatus.test.js.map +1 -1
  64. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js +30 -2
  65. package/codeyam-cli/src/utils/__tests__/parseRegisterArg.test.js.map +1 -1
  66. package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js +118 -0
  67. package/codeyam-cli/src/utils/__tests__/routePatternMatching.test.js.map +1 -0
  68. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js +227 -0
  69. package/codeyam-cli/src/utils/__tests__/scenarioCoverage.test.js.map +1 -0
  70. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js +426 -218
  71. package/codeyam-cli/src/utils/__tests__/scenariosManifest.test.js.map +1 -1
  72. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +1 -0
  73. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  74. package/codeyam-cli/src/utils/analysisRunner.js +3 -1
  75. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  76. package/codeyam-cli/src/utils/analyzer.js +9 -0
  77. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  78. package/codeyam-cli/src/utils/analyzerFinalization.js +100 -0
  79. package/codeyam-cli/src/utils/analyzerFinalization.js.map +1 -0
  80. package/codeyam-cli/src/utils/backgroundServer.js +92 -16
  81. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  82. package/codeyam-cli/src/utils/database.js +37 -2
  83. package/codeyam-cli/src/utils/database.js.map +1 -1
  84. package/codeyam-cli/src/utils/editorApi.js +11 -5
  85. package/codeyam-cli/src/utils/editorApi.js.map +1 -1
  86. package/codeyam-cli/src/utils/editorAudit.js +51 -0
  87. package/codeyam-cli/src/utils/editorAudit.js.map +1 -1
  88. package/codeyam-cli/src/utils/editorBroadcastViewport.js +26 -0
  89. package/codeyam-cli/src/utils/editorBroadcastViewport.js.map +1 -0
  90. package/codeyam-cli/src/utils/editorDevServer.js +5 -1
  91. package/codeyam-cli/src/utils/editorDevServer.js.map +1 -1
  92. package/codeyam-cli/src/utils/editorEntityChangeStatus.js +1 -1
  93. package/codeyam-cli/src/utils/editorEntityChangeStatus.js.map +1 -1
  94. package/codeyam-cli/src/utils/editorEntityHelpers.js +129 -0
  95. package/codeyam-cli/src/utils/editorEntityHelpers.js.map +1 -0
  96. package/codeyam-cli/src/utils/editorLoaderHelpers.js +60 -1
  97. package/codeyam-cli/src/utils/editorLoaderHelpers.js.map +1 -1
  98. package/codeyam-cli/src/utils/editorMigration.js +224 -0
  99. package/codeyam-cli/src/utils/editorMigration.js.map +1 -0
  100. package/codeyam-cli/src/utils/editorPreview.js +31 -0
  101. package/codeyam-cli/src/utils/editorPreview.js.map +1 -1
  102. package/codeyam-cli/src/utils/editorScenarios.js +309 -0
  103. package/codeyam-cli/src/utils/editorScenarios.js.map +1 -1
  104. package/codeyam-cli/src/utils/editorSeedAdapter.js +183 -4
  105. package/codeyam-cli/src/utils/editorSeedAdapter.js.map +1 -1
  106. package/codeyam-cli/src/utils/editorShouldRevalidate.js +21 -0
  107. package/codeyam-cli/src/utils/editorShouldRevalidate.js.map +1 -0
  108. package/codeyam-cli/src/utils/entityChangeStatus.js +16 -3
  109. package/codeyam-cli/src/utils/entityChangeStatus.js.map +1 -1
  110. package/codeyam-cli/src/utils/entityChangeStatus.server.js +41 -3
  111. package/codeyam-cli/src/utils/entityChangeStatus.server.js.map +1 -1
  112. package/codeyam-cli/src/utils/install-skills.js +9 -0
  113. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  114. package/codeyam-cli/src/utils/parseRegisterArg.js.map +1 -1
  115. package/codeyam-cli/src/utils/progress.js +2 -2
  116. package/codeyam-cli/src/utils/progress.js.map +1 -1
  117. package/codeyam-cli/src/utils/routePatternMatching.js +129 -0
  118. package/codeyam-cli/src/utils/routePatternMatching.js.map +1 -0
  119. package/codeyam-cli/src/utils/scenarioCoverage.js +74 -0
  120. package/codeyam-cli/src/utils/scenarioCoverage.js.map +1 -0
  121. package/codeyam-cli/src/utils/scenariosManifest.js +207 -75
  122. package/codeyam-cli/src/utils/scenariosManifest.js.map +1 -1
  123. package/codeyam-cli/src/utils/serverState.js +30 -0
  124. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  125. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +1 -0
  126. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  127. package/codeyam-cli/src/utils/simulationGateMiddleware.js +8 -1
  128. package/codeyam-cli/src/utils/simulationGateMiddleware.js.map +1 -1
  129. package/codeyam-cli/src/utils/slugUtils.js +25 -0
  130. package/codeyam-cli/src/utils/slugUtils.js.map +1 -0
  131. package/codeyam-cli/src/utils/syncMocksMiddleware.js +2 -2
  132. package/codeyam-cli/src/utils/syncMocksMiddleware.js.map +1 -1
  133. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js +40 -0
  134. package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js.map +1 -0
  135. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js +389 -0
  136. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js.map +1 -1
  137. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js +146 -0
  138. package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js.map +1 -0
  139. package/codeyam-cli/src/webserver/app/lib/clientErrors.js +65 -0
  140. package/codeyam-cli/src/webserver/app/lib/clientErrors.js.map +1 -0
  141. package/codeyam-cli/src/webserver/app/lib/git.js +3 -2
  142. package/codeyam-cli/src/webserver/app/lib/git.js.map +1 -1
  143. package/codeyam-cli/src/webserver/app/types/editor.js +8 -0
  144. package/codeyam-cli/src/webserver/app/types/editor.js.map +1 -0
  145. package/codeyam-cli/src/webserver/backgroundServer.js +18 -4
  146. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  147. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-CzTDWkF2.js +1 -0
  148. package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-BcgbViKV.js → EntityItem-BFbq6iFk.js} +3 -3
  149. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-CQgyEGV-.js +1 -0
  150. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-CQIG2qda.js → EntityTypeIcon-B6OMi58N.js} +1 -1
  151. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-DuYodzo1.js +1 -0
  152. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-CXo9EeCl.js +25 -0
  153. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-DYCNb2It.js +3 -0
  154. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-BU_OAEMP.js → LoadingDots-By5zI316.js} +1 -1
  155. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-ceAyBX-H.js → LogViewer-CZgY3sxX.js} +3 -3
  156. package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-BzHcG7SE.js → ReportIssueModal-CnYYwRDw.js} +2 -2
  157. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-CDoF7ZpU.js +1 -0
  158. package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-0DY_NKil.js → ScenarioViewer-DrnfvaLL.js} +3 -3
  159. package/codeyam-cli/src/webserver/build/client/assets/Spinner-Df3UCi8k.js +34 -0
  160. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-CK7-NaPZ.js +1 -0
  161. package/codeyam-cli/src/webserver/build/client/assets/ViewportInspectBar-DRKR9T0U.js +1 -0
  162. package/codeyam-cli/src/webserver/build/client/assets/{_index-DLxKhri3.js → _index-ClR-g3tY.js} +2 -2
  163. package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-BcY3q6nt.js → activity.(_tab)-DTH6ydEA.js} +3 -3
  164. package/codeyam-cli/src/webserver/build/client/assets/{addon-web-links-Duc5hnl7.js → addon-web-links-74hnHF59.js} +1 -1
  165. package/codeyam-cli/src/webserver/build/client/assets/{agent-transcripts-Bni3iiUj.js → agent-transcripts-B8CYhCO9.js} +3 -3
  166. package/codeyam-cli/src/webserver/build/client/assets/api.editor-rename-scenario-l0sNRNKZ.js +1 -0
  167. package/codeyam-cli/src/webserver/build/client/assets/api.editor-save-seed-state-l0sNRNKZ.js +1 -0
  168. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-coverage-l0sNRNKZ.js +1 -0
  169. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-prompt-l0sNRNKZ.js +1 -0
  170. package/codeyam-cli/src/webserver/build/client/assets/api.editor-session-l0sNRNKZ.js +1 -0
  171. package/codeyam-cli/src/webserver/build/client/assets/{book-open-BYOypzCa.js → book-open-CLaoh4ac.js} +1 -1
  172. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-C_Pmso5S.js → chevron-down-BZ2DZxbW.js} +1 -1
  173. package/codeyam-cli/src/webserver/build/client/assets/{chunk-JZWAC4HX-C4pqxYJB.js → chunk-JZWAC4HX-BBXArFPl.js} +13 -21
  174. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-BVMi9VA5.js → circle-check-CT4unAk-.js} +1 -1
  175. package/codeyam-cli/src/webserver/build/client/assets/{copy-n2FB0_Sw.js → copy-zK0B6Nu-.js} +1 -1
  176. package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-CC6AbExI.js → createLucideIcon-DJB0YQJL.js} +1 -1
  177. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-CkXFP_i-.js +1 -0
  178. package/codeyam-cli/src/webserver/build/client/assets/editor._tab-DPw7NZHc.js +1 -0
  179. package/codeyam-cli/src/webserver/build/client/assets/editor.entity.(_sha)-y_5LB2iU.js +58 -0
  180. package/codeyam-cli/src/webserver/build/client/assets/editorPreview-DBa7T2FK.js +41 -0
  181. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-BF4oLwaE.js → entity._sha._-BqAN7hyG.js} +2 -2
  182. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-BOi8kpwd.js +6 -0
  183. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-Dg1NhIms.js +6 -0
  184. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-CJX6kkkV.js +6 -0
  185. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-BMvVHNXU.js → entity._sha_.edit._scenarioId-BhVjZhKg.js} +2 -2
  186. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-DTvKq3TY.js → entry.client-_gzKltPN.js} +6 -6
  187. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-Daa96Fr1.js +1 -0
  188. package/codeyam-cli/src/webserver/build/client/assets/files-CV_17tZS.js +1 -0
  189. package/codeyam-cli/src/webserver/build/client/assets/git-D-YXmMbR.js +1 -0
  190. package/codeyam-cli/src/webserver/build/client/assets/globals-BCTpZEY8.css +1 -0
  191. package/codeyam-cli/src/webserver/build/client/assets/{index-yHOVb4rc.js → index-Blo6EK8G.js} +1 -1
  192. package/codeyam-cli/src/webserver/build/client/assets/{index-10oVnAAH.js → index-BsX0F-9C.js} +1 -1
  193. package/codeyam-cli/src/webserver/build/client/assets/{index-BcvgDzbZ.js → index-CCrgCshv.js} +1 -1
  194. package/codeyam-cli/src/webserver/build/client/assets/jsx-runtime-D_zvdyIk.js +9 -0
  195. package/codeyam-cli/src/webserver/build/client/assets/labs-Byazq8Pv.js +1 -0
  196. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-DaAZ_H2w.js → loader-circle-DVQ0oHR7.js} +1 -1
  197. package/codeyam-cli/src/webserver/build/client/assets/manifest-5f1c29f5.js +1 -0
  198. package/codeyam-cli/src/webserver/build/client/assets/memory-b-VmA2Vj.js +101 -0
  199. package/codeyam-cli/src/webserver/build/client/assets/{pause-f5-1lKBt.js → pause-DGcndCAa.js} +1 -1
  200. package/codeyam-cli/src/webserver/build/client/assets/root-BBCQJ_ZM.js +67 -0
  201. package/codeyam-cli/src/webserver/build/client/assets/{search-Di64LWVb.js → search-C0Uw0bcK.js} +1 -1
  202. package/codeyam-cli/src/webserver/build/client/assets/settings-OoNgHIfW.js +1 -0
  203. package/codeyam-cli/src/webserver/build/client/assets/simulations-Bcemfu8a.js +1 -0
  204. package/codeyam-cli/src/webserver/build/client/assets/{terminal-Br7MOqts.js → terminal-BgMmG7R9.js} +1 -1
  205. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-BLdiCuG-.js → triangle-alert-Cs87hJYK.js} +1 -1
  206. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-BR3Rs7JY.js +1 -0
  207. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-C14nCb1q.js → useLastLogLine-BxxP_XF9.js} +1 -1
  208. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-BermyNU5.js +1 -0
  209. package/codeyam-cli/src/webserver/build/client/assets/useToast-a_QN_W9_.js +1 -0
  210. package/codeyam-cli/src/webserver/build/client/sound-test.html +98 -0
  211. package/codeyam-cli/src/webserver/build/server/assets/index-BLKsJR3o.js +1 -0
  212. package/codeyam-cli/src/webserver/build/server/assets/init-C2iMAqYu.js +10 -0
  213. package/codeyam-cli/src/webserver/build/server/assets/server-build-DR42Xd5a.js +489 -0
  214. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  215. package/codeyam-cli/src/webserver/build-info.json +5 -5
  216. package/codeyam-cli/src/webserver/editorProxy.js +309 -13
  217. package/codeyam-cli/src/webserver/editorProxy.js.map +1 -1
  218. package/codeyam-cli/src/webserver/idleDetector.js +73 -0
  219. package/codeyam-cli/src/webserver/idleDetector.js.map +1 -0
  220. package/codeyam-cli/src/webserver/mockStateEvents.js +28 -0
  221. package/codeyam-cli/src/webserver/mockStateEvents.js.map +1 -0
  222. package/codeyam-cli/src/webserver/public/sound-test.html +98 -0
  223. package/codeyam-cli/src/webserver/server.js +55 -4
  224. package/codeyam-cli/src/webserver/server.js.map +1 -1
  225. package/codeyam-cli/src/webserver/terminalServer.js +153 -33
  226. package/codeyam-cli/src/webserver/terminalServer.js.map +1 -1
  227. package/codeyam-cli/templates/chrome-extension-react/README.md +46 -0
  228. package/codeyam-cli/templates/chrome-extension-react/package.json +1 -0
  229. package/codeyam-cli/templates/chrome-extension-react/vite.config.ts +6 -0
  230. package/codeyam-cli/templates/codeyam-editor-claude.md +84 -5
  231. package/codeyam-cli/templates/editor-step-hook.py +107 -24
  232. package/codeyam-cli/templates/expo-react-native/README.md +41 -0
  233. package/codeyam-cli/templates/expo-react-native/package.json +1 -0
  234. package/codeyam-cli/templates/nextjs-prisma-sqlite/DATABASE.md +14 -0
  235. package/codeyam-cli/templates/nextjs-prisma-sqlite/README.md +53 -0
  236. package/codeyam-cli/templates/nextjs-prisma-sqlite/package.json +1 -0
  237. package/codeyam-cli/templates/nextjs-prisma-sqlite/seed-adapter.ts +42 -7
  238. package/codeyam-cli/templates/nextjs-prisma-supabase/README.md +52 -0
  239. package/codeyam-cli/templates/nextjs-prisma-supabase/package.json +1 -0
  240. package/codeyam-cli/templates/seed-adapters/supabase.ts +282 -0
  241. package/codeyam-cli/templates/skills/codeyam-dev-mode/SKILL.md +1 -1
  242. package/codeyam-cli/templates/skills/codeyam-editor/SKILL.md +76 -10
  243. package/package.json +1 -1
  244. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js +72 -0
  245. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -1
  246. package/packages/database/src/lib/loadEntities.js +0 -6
  247. package/packages/database/src/lib/loadEntities.js.map +1 -1
  248. package/packages/database/src/lib/updateCommitMetadata.js +0 -25
  249. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  250. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-BPXZwM4t.js +0 -1
  251. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-g3saevPb.js +0 -1
  252. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-Bu6c6aDe.js +0 -1
  253. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-DYFW3lDD.js +0 -25
  254. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-DLeucoVX.js +0 -3
  255. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-BED4B6sP.js +0 -1
  256. package/codeyam-cli/src/webserver/build/client/assets/Spinner-Bb5uFQ5V.js +0 -34
  257. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-C8OKAR5x.js +0 -1
  258. package/codeyam-cli/src/webserver/build/client/assets/ViewportInspectBar-oAf2Kqsf.js +0 -1
  259. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-Csi0_PMl.js +0 -1
  260. package/codeyam-cli/src/webserver/build/client/assets/editor-BuT_Huj0.js +0 -10
  261. package/codeyam-cli/src/webserver/build/client/assets/editorPreview-B7ztwLut.js +0 -41
  262. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-D5rYBT5x.js +0 -6
  263. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-CF164ouH.js +0 -6
  264. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-p9hhkjJM.js +0 -6
  265. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-cPo8LiG3.js +0 -1
  266. package/codeyam-cli/src/webserver/build/client/assets/files-BZrlFE1F.js +0 -1
  267. package/codeyam-cli/src/webserver/build/client/assets/git-DdZcvjGh.js +0 -1
  268. package/codeyam-cli/src/webserver/build/client/assets/globals-BkWJ_UNc.css +0 -1
  269. package/codeyam-cli/src/webserver/build/client/assets/labs-Zk7ryIM1.js +0 -1
  270. package/codeyam-cli/src/webserver/build/client/assets/manifest-b0f1372e.js +0 -1
  271. package/codeyam-cli/src/webserver/build/client/assets/memory-Bl2rpw8u.js +0 -96
  272. package/codeyam-cli/src/webserver/build/client/assets/root-B_X8HS1x.js +0 -67
  273. package/codeyam-cli/src/webserver/build/client/assets/settings-0OrEMU6J.js +0 -1
  274. package/codeyam-cli/src/webserver/build/client/assets/simulations-DWT-CvLy.js +0 -1
  275. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-CrAK28Bc.js +0 -1
  276. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-O-jkvSPx.js +0 -1
  277. package/codeyam-cli/src/webserver/build/client/assets/useToast-9FIWuYfK.js +0 -1
  278. package/codeyam-cli/src/webserver/build/server/assets/index-CbF6h3dj.js +0 -1
  279. package/codeyam-cli/src/webserver/build/server/assets/server-build-DRFwTJqO.js +0 -367
@@ -1,4 +1,6 @@
1
- import { isComponent, classifyGlossaryEntries, computeAudit, filterGlossaryByChangeStatus, } from "../editorAudit.js";
1
+ import Database from 'better-sqlite3';
2
+ import { Kysely, SqliteDialect } from 'kysely';
3
+ import { isComponent, classifyGlossaryEntries, computeAudit, filterGlossaryByChangeStatus, resolveAuditSessionScope, queryScenarioCounts, } from "../editorAudit.js";
2
4
  describe('editorAudit', () => {
3
5
  describe('isComponent', () => {
4
6
  it('should return true for JSX.Element return type', () => {
@@ -631,5 +633,355 @@ describe('editorAudit', () => {
631
633
  expect(filtered.map((e) => e.name)).toContain('DrinkCard');
632
634
  });
633
635
  });
636
+ // ── resolveAuditSessionScope ──────────────────────────────────────
637
+ describe('resolveAuditSessionScope', () => {
638
+ it('should scope to session when entityChangeStatus has entries and featureStartedAt exists', () => {
639
+ const result = resolveAuditSessionScope({
640
+ featureStartedAt: '2026-03-12T14:01:31.291Z',
641
+ entityChangeStatus: {
642
+ ArticleCard: { status: 'new' },
643
+ LibraryHeader: { status: 'new' },
644
+ },
645
+ });
646
+ expect(result.featureStartedAt).toBe('2026-03-12T14:01:31.291Z');
647
+ expect(result.entityChangeStatus).toEqual({
648
+ ArticleCard: { status: 'new' },
649
+ LibraryHeader: { status: 'new' },
650
+ });
651
+ });
652
+ it('should NOT scope scenario counts to session when entityChangeStatus is empty', () => {
653
+ // This is the testapp bug: entityChangeStatus computation returned empty,
654
+ // so the glossary filter falls back to "audit all components", but the
655
+ // scenario count query still filters by featureStartedAt — causing
656
+ // Feature 1 components to appear as "no scenarios" even though they have them.
657
+ const result = resolveAuditSessionScope({
658
+ featureStartedAt: '2026-03-12T14:01:31.291Z',
659
+ entityChangeStatus: undefined,
660
+ });
661
+ // When we can't scope the glossary, we shouldn't scope scenario counts either
662
+ expect(result.featureStartedAt).toBeNull();
663
+ });
664
+ it('should NOT scope scenario counts to session when entityChangeStatus is an empty object', () => {
665
+ const result = resolveAuditSessionScope({
666
+ featureStartedAt: '2026-03-12T14:01:31.291Z',
667
+ entityChangeStatus: {},
668
+ });
669
+ expect(result.featureStartedAt).toBeNull();
670
+ });
671
+ it('should return null featureStartedAt when none was provided', () => {
672
+ const result = resolveAuditSessionScope({
673
+ featureStartedAt: null,
674
+ entityChangeStatus: { Header: { status: 'new' } },
675
+ });
676
+ expect(result.featureStartedAt).toBeNull();
677
+ });
678
+ it('should pass through entityChangeStatus unchanged when it has entries', () => {
679
+ const ecs = {
680
+ ArticleCard: { status: 'new' },
681
+ Header: { status: 'edited' },
682
+ };
683
+ const result = resolveAuditSessionScope({
684
+ featureStartedAt: '2026-03-12T14:01:31.291Z',
685
+ entityChangeStatus: ecs,
686
+ });
687
+ expect(result.entityChangeStatus).toBe(ecs);
688
+ });
689
+ describe('multi-feature audit scenario (testapp reproduction)', () => {
690
+ // Reproduces the exact testapp bug:
691
+ // - Feature 1 built 8 components with scenarios at 13:28-13:30
692
+ // - Feature 2 starts at 14:01, builds 4 new components with scenarios at 14:14-14:16
693
+ // - entityChangeStatus computation returns empty (fails/returns {})
694
+ // - Glossary includes ALL 12 components
695
+ // - Scenario counts only include Feature 2 scenarios (after 14:01)
696
+ // - Result: Feature 1's 8 components reported as "no scenarios"
697
+ const allComponents = [
698
+ // Feature 1 components
699
+ {
700
+ name: 'Header',
701
+ filePath: 'src/components/Header.tsx',
702
+ returnType: 'JSX.Element',
703
+ },
704
+ {
705
+ name: 'Logo',
706
+ filePath: 'src/components/Logo.tsx',
707
+ returnType: 'JSX.Element',
708
+ },
709
+ {
710
+ name: 'TabBar',
711
+ filePath: 'src/components/TabBar.tsx',
712
+ returnType: 'JSX.Element',
713
+ },
714
+ {
715
+ name: 'ArticlePreview',
716
+ filePath: 'src/components/ArticlePreview.tsx',
717
+ returnType: 'JSX.Element',
718
+ },
719
+ {
720
+ name: 'SaveButton',
721
+ filePath: 'src/components/SaveButton.tsx',
722
+ returnType: 'JSX.Element',
723
+ },
724
+ {
725
+ name: 'StatusBanner',
726
+ filePath: 'src/components/StatusBanner.tsx',
727
+ returnType: 'JSX.Element',
728
+ },
729
+ {
730
+ name: 'EmptyState',
731
+ filePath: 'src/components/EmptyState.tsx',
732
+ returnType: 'JSX.Element',
733
+ },
734
+ {
735
+ name: 'ArticleRow',
736
+ filePath: 'src/components/ArticleRow.tsx',
737
+ returnType: 'JSX.Element',
738
+ },
739
+ // Feature 2 components
740
+ {
741
+ name: 'ArticleCard',
742
+ filePath: 'src/components/ArticleCard.tsx',
743
+ returnType: 'JSX.Element',
744
+ },
745
+ {
746
+ name: 'LibraryHeader',
747
+ filePath: 'src/components/LibraryHeader.tsx',
748
+ returnType: 'JSX.Element',
749
+ },
750
+ {
751
+ name: 'ArticleCardGrid',
752
+ filePath: 'src/components/ArticleCardGrid.tsx',
753
+ returnType: 'JSX.Element',
754
+ },
755
+ {
756
+ name: 'OpenLibraryButton',
757
+ filePath: 'src/components/OpenLibraryButton.tsx',
758
+ returnType: 'JSX.Element',
759
+ },
760
+ ];
761
+ // All scenarios that exist in the DB (both features)
762
+ const allScenarioCounts = {
763
+ Header: 2,
764
+ Logo: 1,
765
+ TabBar: 3,
766
+ ArticlePreview: 4,
767
+ SaveButton: 2,
768
+ StatusBanner: 2,
769
+ EmptyState: 2,
770
+ ArticleRow: 3,
771
+ ArticleCard: 4,
772
+ LibraryHeader: 3,
773
+ ArticleCardGrid: 2,
774
+ OpenLibraryButton: 1,
775
+ };
776
+ // Only Feature 2 scenarios (created after featureStartedAt)
777
+ const sessionScopedCounts = {
778
+ ArticleCard: 4,
779
+ LibraryHeader: 3,
780
+ ArticleCardGrid: 2,
781
+ OpenLibraryButton: 1,
782
+ };
783
+ it('should pass audit when entityChangeStatus is empty and all scenarios are counted', () => {
784
+ // With the fix: resolveAuditSessionScope nullifies featureStartedAt
785
+ // when entityChangeStatus is empty, so ALL scenarios are counted
786
+ const scope = resolveAuditSessionScope({
787
+ featureStartedAt: '2026-03-12T14:01:31.291Z',
788
+ entityChangeStatus: undefined,
789
+ });
790
+ // Glossary filter: returns all (no change status to filter by)
791
+ const filtered = filterGlossaryByChangeStatus(allComponents, scope.entityChangeStatus);
792
+ expect(filtered).toHaveLength(12);
793
+ // Since featureStartedAt is now null, the route would query ALL scenarios
794
+ // (not session-scoped), giving us allScenarioCounts
795
+ const countsToUse = scope.featureStartedAt
796
+ ? sessionScopedCounts
797
+ : allScenarioCounts;
798
+ const { components } = classifyGlossaryEntries(filtered);
799
+ const result = computeAudit({
800
+ components,
801
+ functions: [],
802
+ scenarioCounts: countsToUse,
803
+ testFileExistence: {},
804
+ });
805
+ // Every component should have scenarios
806
+ expect(result.summary.componentsMissing).toBe(0);
807
+ expect(result.summary.componentsOk).toBe(12);
808
+ expect(result.summary.allPassing).toBe(true);
809
+ });
810
+ it('demonstrates the bug: session-scoped counts with unscoped glossary fails Feature 1', () => {
811
+ // WITHOUT the fix: entityChangeStatus is empty so all 12 components are audited,
812
+ // but scenario counts are session-scoped so Feature 1 components get 0
813
+ const filtered = filterGlossaryByChangeStatus(allComponents, undefined);
814
+ expect(filtered).toHaveLength(12);
815
+ const { components } = classifyGlossaryEntries(filtered);
816
+ const result = computeAudit({
817
+ components,
818
+ functions: [],
819
+ scenarioCounts: sessionScopedCounts, // BUG: only Feature 2 scenarios
820
+ testFileExistence: {},
821
+ });
822
+ // This is the broken behavior — 8 components incorrectly flagged
823
+ expect(result.summary.componentsMissing).toBe(8);
824
+ expect(result.summary.allPassing).toBe(false);
825
+ });
826
+ it('should correctly scope audit when entityChangeStatus is available', () => {
827
+ // When entityChangeStatus works, only Feature 2 components are audited
828
+ // and only Feature 2 scenarios are counted — both filters agree
829
+ const ecs = {
830
+ ArticleCard: { status: 'new' },
831
+ LibraryHeader: { status: 'new' },
832
+ ArticleCardGrid: { status: 'new' },
833
+ OpenLibraryButton: { status: 'new' },
834
+ };
835
+ const scope = resolveAuditSessionScope({
836
+ featureStartedAt: '2026-03-12T14:01:31.291Z',
837
+ entityChangeStatus: ecs,
838
+ });
839
+ // featureStartedAt preserved — session scoping is valid
840
+ expect(scope.featureStartedAt).toBe('2026-03-12T14:01:31.291Z');
841
+ const filtered = filterGlossaryByChangeStatus(allComponents, scope.entityChangeStatus);
842
+ expect(filtered).toHaveLength(4); // Only Feature 2 components
843
+ const { components } = classifyGlossaryEntries(filtered);
844
+ const result = computeAudit({
845
+ components,
846
+ functions: [],
847
+ scenarioCounts: sessionScopedCounts,
848
+ testFileExistence: {},
849
+ });
850
+ expect(result.summary.componentsMissing).toBe(0);
851
+ expect(result.summary.componentsOk).toBe(4);
852
+ expect(result.summary.allPassing).toBe(true);
853
+ });
854
+ });
855
+ });
856
+ // ── queryScenarioCounts ─────────────────────────────────────────────
857
+ describe('queryScenarioCounts', () => {
858
+ let db;
859
+ let rawDb;
860
+ const projectId = 'test-project-id';
861
+ beforeEach(async () => {
862
+ rawDb = new Database(':memory:');
863
+ db = new Kysely({ dialect: new SqliteDialect({ database: rawDb }) });
864
+ await db.schema
865
+ .createTable('editor_scenarios')
866
+ .addColumn('id', 'varchar', (col) => col.primaryKey())
867
+ .addColumn('project_id', 'varchar', (col) => col.notNull())
868
+ .addColumn('name', 'varchar', (col) => col.notNull())
869
+ .addColumn('description', 'text')
870
+ .addColumn('component_name', 'varchar')
871
+ .addColumn('component_path', 'varchar')
872
+ .addColumn('url', 'varchar')
873
+ .addColumn('type', 'varchar')
874
+ .addColumn('screenshot_path', 'varchar')
875
+ .addColumn('viewport_width', 'integer')
876
+ .addColumn('viewport_height', 'integer')
877
+ .addColumn('dimension', 'varchar')
878
+ .addColumn('created_at', 'datetime')
879
+ .addColumn('updated_at', 'datetime')
880
+ .execute();
881
+ });
882
+ afterEach(async () => {
883
+ await db.destroy();
884
+ });
885
+ it('should count all scenarios when featureStartedAt is null', async () => {
886
+ await db
887
+ .insertInto('editor_scenarios')
888
+ .values({
889
+ id: 'sc-1',
890
+ project_id: projectId,
891
+ name: 'ArticleRow - Default',
892
+ component_name: 'ArticleRow',
893
+ viewport_width: 1280,
894
+ viewport_height: 720,
895
+ created_at: '2026-03-12 13:00:00',
896
+ })
897
+ .execute();
898
+ const counts = await queryScenarioCounts(db, projectId, null);
899
+ expect(counts).toEqual({ ArticleRow: 1 });
900
+ });
901
+ it('should count scenarios created after featureStartedAt', async () => {
902
+ await db
903
+ .insertInto('editor_scenarios')
904
+ .values({
905
+ id: 'sc-1',
906
+ project_id: projectId,
907
+ name: 'ArticleRow - Default',
908
+ component_name: 'ArticleRow',
909
+ viewport_width: 1280,
910
+ viewport_height: 720,
911
+ created_at: '2026-03-12 14:30:00',
912
+ })
913
+ .execute();
914
+ const counts = await queryScenarioCounts(db, projectId, '2026-03-12T14:01:31.291Z');
915
+ expect(counts).toEqual({ ArticleRow: 1 });
916
+ });
917
+ it('should exclude scenarios created before featureStartedAt', async () => {
918
+ await db
919
+ .insertInto('editor_scenarios')
920
+ .values({
921
+ id: 'sc-1',
922
+ project_id: projectId,
923
+ name: 'ArticleRow - Default',
924
+ component_name: 'ArticleRow',
925
+ viewport_width: 1280,
926
+ viewport_height: 720,
927
+ created_at: '2026-03-12 13:00:00',
928
+ })
929
+ .execute();
930
+ const counts = await queryScenarioCounts(db, projectId, '2026-03-12T14:01:31.291Z');
931
+ expect(counts).toEqual({});
932
+ });
933
+ it('should count re-registered scenarios whose updated_at is after featureStartedAt', async () => {
934
+ // This is the bug: a scenario from Feature 1 (created_at before featureStartedAt)
935
+ // is re-registered in Feature 2 (updated_at after featureStartedAt).
936
+ // The audit should count it because it was actively re-registered in this session.
937
+ await db
938
+ .insertInto('editor_scenarios')
939
+ .values({
940
+ id: 'sc-1',
941
+ project_id: projectId,
942
+ name: 'ArticleRow - Default',
943
+ component_name: 'ArticleRow',
944
+ viewport_width: 400,
945
+ viewport_height: 600,
946
+ created_at: '2026-03-12 13:28:00', // Feature 1
947
+ updated_at: '2026-03-12 14:32:00', // Re-registered in Feature 2
948
+ })
949
+ .execute();
950
+ const counts = await queryScenarioCounts(db, projectId, '2026-03-12T14:01:31.291Z');
951
+ // Should count because updated_at is after featureStartedAt
952
+ expect(counts).toEqual({ ArticleRow: 1 });
953
+ });
954
+ it('should handle mixed scenarios: some new, some re-registered', async () => {
955
+ // ArticleCard: new in Feature 2 (created_at after featureStartedAt)
956
+ await db
957
+ .insertInto('editor_scenarios')
958
+ .values({
959
+ id: 'sc-1',
960
+ project_id: projectId,
961
+ name: 'ArticleCard - Default',
962
+ component_name: 'ArticleCard',
963
+ viewport_width: 1280,
964
+ viewport_height: 720,
965
+ created_at: '2026-03-12 14:14:00',
966
+ })
967
+ .execute();
968
+ // ArticleRow: from Feature 1, re-registered in Feature 2
969
+ await db
970
+ .insertInto('editor_scenarios')
971
+ .values({
972
+ id: 'sc-2',
973
+ project_id: projectId,
974
+ name: 'ArticleRow - Default',
975
+ component_name: 'ArticleRow',
976
+ viewport_width: 400,
977
+ viewport_height: 600,
978
+ created_at: '2026-03-12 13:28:00', // Feature 1
979
+ updated_at: '2026-03-12 14:32:00', // Re-registered in Feature 2
980
+ })
981
+ .execute();
982
+ const counts = await queryScenarioCounts(db, projectId, '2026-03-12T14:01:31.291Z');
983
+ expect(counts).toEqual({ ArticleCard: 1, ArticleRow: 1 });
984
+ });
985
+ });
634
986
  });
635
987
  //# sourceMappingURL=editorAudit.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"editorAudit.test.js","sourceRoot":"","sources":["../../../../../src/utils/__tests__/editorAudit.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editorAudit.test.js","sourceRoot":"","sources":["../../../../../src/utils/__tests__/editorAudit.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Test for broadcastViewportThenRefresh — a utility that ensures
3
+ * set-viewport is broadcast BEFORE preview refresh.
4
+ *
5
+ * Bug: codeyam editor register calls broadcastPreviewRefresh but not
6
+ * broadcastSetViewport, so the preview iframe stays at whatever viewport
7
+ * was previously active (e.g. Desktop 1440x900) instead of switching to
8
+ * the registered scenario's dimension (e.g. Extension Popup 400x600).
9
+ *
10
+ * The fix: extract a broadcastViewportThenRefresh utility that both
11
+ * the register endpoint and the preview endpoint use.
12
+ */
13
+ const mockBroadcastSetViewport = jest.fn().mockReturnValue(1);
14
+ const mockBroadcastPreviewRefresh = jest.fn().mockReturnValue(1);
15
+ jest.mock('../../webserver/terminalServer', () => ({
16
+ broadcastSetViewport: mockBroadcastSetViewport,
17
+ broadcastPreviewRefresh: mockBroadcastPreviewRefresh,
18
+ }));
19
+ import { broadcastViewportThenRefresh } from "../editorBroadcastViewport.js";
20
+ describe('broadcastViewportThenRefresh', () => {
21
+ beforeEach(() => {
22
+ mockBroadcastSetViewport.mockClear();
23
+ mockBroadcastPreviewRefresh.mockClear();
24
+ });
25
+ it('should broadcast set-viewport with resolved dimension before preview refresh', () => {
26
+ broadcastViewportThenRefresh({
27
+ dimension: 'Extension Popup',
28
+ viewport: { width: 400, height: 600 },
29
+ refreshPath: '/popup',
30
+ scenarioId: 'scenario-1',
31
+ });
32
+ expect(mockBroadcastSetViewport).toHaveBeenCalledWith({
33
+ name: 'Extension Popup',
34
+ width: 400,
35
+ height: 600,
36
+ });
37
+ expect(mockBroadcastPreviewRefresh).toHaveBeenCalledWith('/popup', 'scenario-1');
38
+ // Viewport must be set BEFORE the refresh signal
39
+ expect(mockBroadcastSetViewport.mock.invocationCallOrder[0]).toBeLessThan(mockBroadcastPreviewRefresh.mock.invocationCallOrder[0]);
40
+ });
41
+ it('should skip set-viewport when dimension is not provided', () => {
42
+ broadcastViewportThenRefresh({
43
+ dimension: undefined,
44
+ viewport: { width: 1440, height: 900 },
45
+ refreshPath: '/',
46
+ scenarioId: 'scenario-2',
47
+ });
48
+ expect(mockBroadcastSetViewport).not.toHaveBeenCalled();
49
+ expect(mockBroadcastPreviewRefresh).toHaveBeenCalledWith('/', 'scenario-2');
50
+ });
51
+ it('should still refresh even if set-viewport throws', () => {
52
+ mockBroadcastSetViewport.mockImplementationOnce(() => {
53
+ throw new Error('no WebSocket sessions');
54
+ });
55
+ broadcastViewportThenRefresh({
56
+ dimension: 'Mobile',
57
+ viewport: { width: 375, height: 667 },
58
+ refreshPath: '/page',
59
+ scenarioId: 'scenario-3',
60
+ });
61
+ expect(mockBroadcastPreviewRefresh).toHaveBeenCalledWith('/page', 'scenario-3');
62
+ });
63
+ it('should handle undefined refreshPath and scenarioId', () => {
64
+ broadcastViewportThenRefresh({
65
+ dimension: 'Desktop',
66
+ viewport: { width: 1440, height: 900 },
67
+ });
68
+ expect(mockBroadcastSetViewport).toHaveBeenCalledWith({
69
+ name: 'Desktop',
70
+ width: 1440,
71
+ height: 900,
72
+ });
73
+ expect(mockBroadcastPreviewRefresh).toHaveBeenCalledWith(undefined, undefined);
74
+ });
75
+ });
76
+ //# sourceMappingURL=editorBroadcastViewport.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editorBroadcastViewport.test.js","sourceRoot":"","sources":["../../../../../src/utils/__tests__/editorBroadcastViewport.test.ts"],"names":[],"mappings":"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"}
@@ -183,18 +183,43 @@ describe('editorDevServer', () => {
183
183
  });
184
184
  expect(result.action).toBe('error');
185
185
  });
186
- it('should return stopped for zero exit code', () => {
186
+ it('should return stopped for zero exit code when server was running', () => {
187
187
  expect(determineProcessExitState({
188
188
  exitCode: 0,
189
189
  uptime: 30000,
190
190
  retryCount: 0,
191
+ wasRunning: true,
191
192
  })).toEqual({ action: 'stopped' });
192
193
  });
193
- it('should return stopped for null exit code', () => {
194
+ it('should return stopped for null exit code when server was running', () => {
194
195
  expect(determineProcessExitState({
195
196
  exitCode: null,
196
197
  uptime: 30000,
197
198
  retryCount: 0,
199
+ wasRunning: true,
200
+ })).toEqual({ action: 'stopped' });
201
+ });
202
+ it('should return error when process exits with code 0 but never started serving', () => {
203
+ expect(determineProcessExitState({
204
+ exitCode: 0,
205
+ uptime: 5000,
206
+ retryCount: 0,
207
+ wasRunning: false,
208
+ })).toEqual({ action: 'error' });
209
+ });
210
+ it('should return error when process exits with null code but never started serving', () => {
211
+ expect(determineProcessExitState({
212
+ exitCode: null,
213
+ uptime: 15000,
214
+ retryCount: 0,
215
+ wasRunning: false,
216
+ })).toEqual({ action: 'error' });
217
+ });
218
+ it('should still return stopped for code 0 when wasRunning is not provided (backward compat)', () => {
219
+ expect(determineProcessExitState({
220
+ exitCode: 0,
221
+ uptime: 30000,
222
+ retryCount: 0,
198
223
  })).toEqual({ action: 'stopped' });
199
224
  });
200
225
  });