@codeyam/codeyam-cli 0.1.0-staging.1 → 0.1.0-staging.da5baf5

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 (393) 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 +5 -5
  4. package/analyzer-template/packages/ai/index.ts +2 -1
  5. package/analyzer-template/packages/ai/package.json +2 -2
  6. package/analyzer-template/packages/ai/scripts/ai-test-matrix.mjs +424 -0
  7. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +24 -0
  8. package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +6 -16
  9. package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +197 -0
  10. package/analyzer-template/packages/ai/src/lib/astScopes/paths.ts +28 -2
  11. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +127 -4
  12. package/analyzer-template/packages/ai/src/lib/checkAllAttributes.ts +1 -3
  13. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +1821 -542
  14. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.ts +138 -0
  15. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +1 -1
  16. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.ts +139 -0
  17. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/DebugTracer.ts +224 -0
  18. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/PathManager.ts +203 -0
  19. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/README.md +294 -0
  20. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.ts +161 -0
  21. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/VisitedTracker.ts +235 -0
  22. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +14 -6
  23. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/selectBestValue.ts +70 -0
  24. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/uniqueIdUtils.ts +113 -0
  25. package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +36 -0
  26. package/analyzer-template/packages/ai/src/lib/generateChangesEntityDocumentation.ts +20 -2
  27. package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +51 -107
  28. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +56 -160
  29. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +79 -265
  30. package/analyzer-template/packages/ai/src/lib/generateEntityDocumentation.ts +16 -2
  31. package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +53 -176
  32. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +53 -154
  33. package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +84 -254
  34. package/analyzer-template/packages/ai/src/lib/generateStatementAnalysis.ts +48 -71
  35. package/analyzer-template/packages/ai/src/lib/getConditionalUsagesFromCode.ts +27 -6
  36. package/analyzer-template/packages/ai/src/lib/getLLMCallStats.ts +0 -14
  37. package/analyzer-template/packages/ai/src/lib/modelInfo.ts +15 -0
  38. package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +42 -4
  39. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityDocumentationGenerator.ts +8 -33
  40. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.ts +54 -62
  41. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +93 -109
  42. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityDocumentationGenerator.ts +8 -27
  43. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +33 -38
  44. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +30 -30
  45. package/analyzer-template/packages/ai/src/lib/types/index.ts +2 -0
  46. package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +39 -0
  47. package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +52 -6
  48. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.ts +238 -0
  49. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getDeclaredEntityNode.ts +25 -0
  50. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/index.ts +2 -0
  51. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +8 -10
  52. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +6 -1
  53. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +34 -15
  54. package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +17 -3
  55. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +35 -16
  56. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +7 -1
  57. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +9 -1
  58. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +6 -1
  59. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +9 -1
  60. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +15 -7
  61. package/analyzer-template/packages/aws/package.json +2 -2
  62. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts +28 -21
  63. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.ts +18 -11
  64. package/analyzer-template/packages/generate/src/lib/scenarioComponent.ts +6 -3
  65. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts.map +1 -1
  66. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +28 -21
  67. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  68. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.d.ts.map +1 -1
  69. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js +18 -11
  70. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js.map +1 -1
  71. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.d.ts.map +1 -1
  72. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.js +5 -3
  73. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.js.map +1 -1
  74. package/analyzer-template/packages/github/dist/utils/index.d.ts +2 -0
  75. package/analyzer-template/packages/github/dist/utils/index.d.ts.map +1 -1
  76. package/analyzer-template/packages/github/dist/utils/index.js +2 -0
  77. package/analyzer-template/packages/github/dist/utils/index.js.map +1 -1
  78. package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.d.ts +25 -0
  79. package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.d.ts.map +1 -0
  80. package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.js +40 -0
  81. package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.js.map +1 -0
  82. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getNextRoutePath.d.ts.map +1 -1
  83. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getNextRoutePath.js +5 -3
  84. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getNextRoutePath.js.map +1 -1
  85. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.d.ts.map +1 -1
  86. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.js +2 -1
  87. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -1
  88. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.d.ts.map +1 -1
  89. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js +2 -1
  90. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js.map +1 -1
  91. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.d.ts.map +1 -1
  92. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +1 -0
  93. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -1
  94. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.d.ts +12 -0
  95. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.d.ts.map +1 -0
  96. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.js +32 -0
  97. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.js.map +1 -0
  98. package/analyzer-template/packages/ui-components/src/scenario-editor/components/DataItemEditor.tsx +1 -1
  99. package/analyzer-template/packages/utils/dist/utils/index.d.ts +2 -0
  100. package/analyzer-template/packages/utils/dist/utils/index.d.ts.map +1 -1
  101. package/analyzer-template/packages/utils/dist/utils/index.js +2 -0
  102. package/analyzer-template/packages/utils/dist/utils/index.js.map +1 -1
  103. package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.d.ts +25 -0
  104. package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.d.ts.map +1 -0
  105. package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.js +40 -0
  106. package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.js.map +1 -0
  107. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getNextRoutePath.d.ts.map +1 -1
  108. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getNextRoutePath.js +5 -3
  109. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getNextRoutePath.js.map +1 -1
  110. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.d.ts.map +1 -1
  111. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.js +2 -1
  112. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -1
  113. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.d.ts.map +1 -1
  114. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js +2 -1
  115. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js.map +1 -1
  116. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.d.ts.map +1 -1
  117. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +1 -0
  118. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -1
  119. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.d.ts +12 -0
  120. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.d.ts.map +1 -0
  121. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.js +32 -0
  122. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.js.map +1 -0
  123. package/analyzer-template/packages/utils/index.ts +2 -0
  124. package/analyzer-template/packages/utils/src/lib/Semaphore.ts +42 -0
  125. package/analyzer-template/packages/utils/src/lib/frameworks/getNextRoutePath.ts +8 -3
  126. package/analyzer-template/packages/utils/src/lib/frameworks/getRemixRoutePath.ts +2 -1
  127. package/analyzer-template/packages/utils/src/lib/frameworks/nextRouteFileNameToRoute.ts +2 -1
  128. package/analyzer-template/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.ts +1 -0
  129. package/analyzer-template/packages/utils/src/lib/frameworks/sanitizeNextRouteSegments.ts +33 -0
  130. package/analyzer-template/project/constructMockCode.ts +170 -6
  131. package/analyzer-template/project/reconcileMockDataKeys.ts +13 -0
  132. package/analyzer-template/project/startScenarioCapture.ts +24 -0
  133. package/analyzer-template/project/trackGeneratedFiles.ts +41 -0
  134. package/analyzer-template/project/writeMockDataTsx.ts +125 -4
  135. package/analyzer-template/project/writeScenarioComponents.ts +175 -45
  136. package/analyzer-template/project/writeUniversalMocks.ts +72 -10
  137. package/background/src/lib/virtualized/project/constructMockCode.js +158 -7
  138. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  139. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +12 -0
  140. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  141. package/background/src/lib/virtualized/project/startScenarioCapture.js +18 -0
  142. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  143. package/background/src/lib/virtualized/project/trackGeneratedFiles.js +30 -0
  144. package/background/src/lib/virtualized/project/trackGeneratedFiles.js.map +1 -0
  145. package/background/src/lib/virtualized/project/writeMockDataTsx.js +95 -3
  146. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  147. package/background/src/lib/virtualized/project/writeScenarioComponents.js +130 -28
  148. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  149. package/background/src/lib/virtualized/project/writeUniversalMocks.js +59 -9
  150. package/background/src/lib/virtualized/project/writeUniversalMocks.js.map +1 -1
  151. package/codeyam-cli/scripts/apply-setup.js +288 -0
  152. package/codeyam-cli/scripts/apply-setup.js.map +1 -0
  153. package/codeyam-cli/scripts/extract-setup.js +130 -0
  154. package/codeyam-cli/scripts/extract-setup.js.map +1 -0
  155. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js +238 -0
  156. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js.map +1 -0
  157. package/codeyam-cli/src/cli.js +4 -0
  158. package/codeyam-cli/src/cli.js.map +1 -1
  159. package/codeyam-cli/src/codeyam-cli.js +0 -0
  160. package/codeyam-cli/src/commands/debug.js +190 -0
  161. package/codeyam-cli/src/commands/debug.js.map +1 -0
  162. package/codeyam-cli/src/commands/init.js +4 -23
  163. package/codeyam-cli/src/commands/init.js.map +1 -1
  164. package/codeyam-cli/src/commands/setup-sandbox.js +164 -0
  165. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -0
  166. package/codeyam-cli/src/utils/__tests__/cleanupAnalysisFiles.test.js +6 -6
  167. package/codeyam-cli/src/utils/__tests__/cleanupAnalysisFiles.test.js.map +1 -1
  168. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +8 -0
  169. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  170. package/codeyam-cli/src/utils/analysisRunner.js +4 -3
  171. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  172. package/codeyam-cli/src/utils/backgroundServer.js +25 -5
  173. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  174. package/codeyam-cli/src/utils/cleanupAnalysisFiles.js +2 -2
  175. package/codeyam-cli/src/utils/cleanupAnalysisFiles.js.map +1 -1
  176. package/codeyam-cli/src/utils/fileWatcher.js +75 -5
  177. package/codeyam-cli/src/utils/fileWatcher.js.map +1 -1
  178. package/codeyam-cli/src/utils/queue/job.js +3 -2
  179. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  180. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +4 -0
  181. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  182. package/codeyam-cli/src/utils/webappDetection.js +2 -1
  183. package/codeyam-cli/src/utils/webappDetection.js.map +1 -1
  184. package/codeyam-cli/src/webserver/app/lib/database.js +63 -2
  185. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  186. package/codeyam-cli/src/webserver/backgroundServer.js +15 -35
  187. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  188. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-BFRmw1TF.js +1 -0
  189. package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-Dh-FldQK.js → InteractivePreview-CRfBaL5B.js} +3 -3
  190. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-BYVx9KFp.js +3 -0
  191. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-Dp6DC845.js → LogViewer-CRcT5fOZ.js} +1 -1
  192. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-Bual6h18.js +1 -0
  193. package/codeyam-cli/src/webserver/build/client/assets/ScenarioPreview-Dj4Mm0AR.js +6 -0
  194. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-wtCIkGzq.js +5 -0
  195. package/codeyam-cli/src/webserver/build/client/assets/_index-Cjdlwanz.js +1 -0
  196. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-Dv3k2aEm.js +10 -0
  197. package/codeyam-cli/src/webserver/build/client/assets/chart-column-DOftqM9U.js +1 -0
  198. package/codeyam-cli/src/webserver/build/client/assets/chunk-WWGJGFF6-De6i8FUT.js +26 -0
  199. package/codeyam-cli/src/webserver/build/client/assets/circle-alert-0WShkwuc.js +1 -0
  200. package/codeyam-cli/src/webserver/build/client/assets/clock-DXui5oLF.js +1 -0
  201. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-DPFKgE96.js +1 -0
  202. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-1Z6D0fLM.js → entity._sha._-BxaXKsIx.js} +10 -10
  203. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-BRD2FrH5.js +1 -0
  204. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-69R47Ffu.js +5 -0
  205. package/codeyam-cli/src/webserver/build/client/assets/{entityVersioning-DO2gCvXv.js → entityVersioning-Bk_YB1jM.js} +1 -1
  206. package/codeyam-cli/src/webserver/build/client/assets/entry.client-B5l8I1m3.js +5 -0
  207. package/codeyam-cli/src/webserver/build/client/assets/file-text-fb2mx25c.js +1 -0
  208. package/codeyam-cli/src/webserver/build/client/assets/files-l_Eh9jQG.js +1 -0
  209. package/codeyam-cli/src/webserver/build/client/assets/git-BCnOUEl9.js +12 -0
  210. package/codeyam-cli/src/webserver/build/client/assets/globals-BxkM6Up7.css +1 -0
  211. package/codeyam-cli/src/webserver/build/client/assets/index-BgDzgbQW.js +8 -0
  212. package/codeyam-cli/src/webserver/build/client/assets/loader-circle-DE3HAwpF.js +1 -0
  213. package/codeyam-cli/src/webserver/build/client/assets/manifest-5579bc45.js +1 -0
  214. package/codeyam-cli/src/webserver/build/client/assets/root-o8NMI2bW.js +16 -0
  215. package/codeyam-cli/src/webserver/build/client/assets/search-BymWwY_X.js +1 -0
  216. package/codeyam-cli/src/webserver/build/client/assets/settings-C7G4GDvW.js +1 -0
  217. package/codeyam-cli/src/webserver/build/client/assets/settings-Dc4MlMpK.js +1 -0
  218. package/codeyam-cli/src/webserver/build/client/assets/simulations-Duh3oShE.js +1 -0
  219. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-BBlyqxij.js → useLastLogLine-AlhS7g5F.js} +1 -1
  220. package/codeyam-cli/src/webserver/build/client/assets/useToast-XY00p4rI.js +1 -0
  221. package/codeyam-cli/src/webserver/build/client/assets/zap-Dra7vum1.js +1 -0
  222. package/codeyam-cli/src/webserver/build/server/assets/index-Dpr7o3dP.js +1 -0
  223. package/codeyam-cli/src/webserver/build/server/assets/server-build-BM5nyvlV.js +166 -0
  224. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  225. package/codeyam-cli/src/webserver/build-info.json +5 -5
  226. package/codeyam-cli/src/webserver/server.js +1 -1
  227. package/codeyam-cli/src/webserver/server.js.map +1 -1
  228. package/codeyam-cli/templates/codeyam-setup-skill.md +85 -94
  229. package/package.json +7 -10
  230. package/packages/ai/index.js +1 -2
  231. package/packages/ai/index.js.map +1 -1
  232. package/packages/ai/src/lib/analyzeScope.js +13 -0
  233. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  234. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +6 -15
  235. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  236. package/packages/ai/src/lib/astScopes/methodSemantics.js +134 -0
  237. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  238. package/packages/ai/src/lib/astScopes/paths.js +28 -3
  239. package/packages/ai/src/lib/astScopes/paths.js.map +1 -1
  240. package/packages/ai/src/lib/astScopes/processExpression.js +111 -3
  241. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  242. package/packages/ai/src/lib/checkAllAttributes.js +1 -3
  243. package/packages/ai/src/lib/checkAllAttributes.js.map +1 -1
  244. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +1320 -396
  245. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  246. package/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.js +137 -1
  247. package/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.js.map +1 -1
  248. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +1 -1
  249. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
  250. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +112 -0
  251. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js.map +1 -0
  252. package/packages/ai/src/lib/dataStructure/helpers/DebugTracer.js +176 -0
  253. package/packages/ai/src/lib/dataStructure/helpers/DebugTracer.js.map +1 -0
  254. package/packages/ai/src/lib/dataStructure/helpers/PathManager.js +178 -0
  255. package/packages/ai/src/lib/dataStructure/helpers/PathManager.js.map +1 -0
  256. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js +138 -0
  257. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js.map +1 -0
  258. package/packages/ai/src/lib/dataStructure/helpers/VisitedTracker.js +199 -0
  259. package/packages/ai/src/lib/dataStructure/helpers/VisitedTracker.js.map +1 -0
  260. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +14 -6
  261. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  262. package/packages/ai/src/lib/dataStructure/helpers/selectBestValue.js +62 -0
  263. package/packages/ai/src/lib/dataStructure/helpers/selectBestValue.js.map +1 -0
  264. package/packages/ai/src/lib/dataStructure/helpers/uniqueIdUtils.js +90 -0
  265. package/packages/ai/src/lib/dataStructure/helpers/uniqueIdUtils.js.map +1 -0
  266. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +22 -0
  267. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +1 -1
  268. package/packages/ai/src/lib/generateChangesEntityDocumentation.js +19 -1
  269. package/packages/ai/src/lib/generateChangesEntityDocumentation.js.map +1 -1
  270. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +51 -107
  271. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +1 -1
  272. package/packages/ai/src/lib/generateChangesEntityScenarioData.js +55 -156
  273. package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
  274. package/packages/ai/src/lib/generateChangesEntityScenarios.js +79 -262
  275. package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
  276. package/packages/ai/src/lib/generateEntityDocumentation.js +15 -1
  277. package/packages/ai/src/lib/generateEntityDocumentation.js.map +1 -1
  278. package/packages/ai/src/lib/generateEntityKeyAttributes.js +53 -176
  279. package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +1 -1
  280. package/packages/ai/src/lib/generateEntityScenarioData.js +52 -152
  281. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  282. package/packages/ai/src/lib/generateEntityScenarios.js +88 -258
  283. package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
  284. package/packages/ai/src/lib/generateStatementAnalysis.js +46 -71
  285. package/packages/ai/src/lib/generateStatementAnalysis.js.map +1 -1
  286. package/packages/ai/src/lib/getConditionalUsagesFromCode.js +13 -8
  287. package/packages/ai/src/lib/getConditionalUsagesFromCode.js.map +1 -1
  288. package/packages/ai/src/lib/getLLMCallStats.js +0 -14
  289. package/packages/ai/src/lib/getLLMCallStats.js.map +1 -1
  290. package/packages/ai/src/lib/modelInfo.js +15 -0
  291. package/packages/ai/src/lib/modelInfo.js.map +1 -1
  292. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +36 -3
  293. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
  294. package/packages/ai/src/lib/promptGenerators/generateChangesEntityDocumentationGenerator.js +8 -33
  295. package/packages/ai/src/lib/promptGenerators/generateChangesEntityDocumentationGenerator.js.map +1 -1
  296. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js +35 -41
  297. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js.map +1 -1
  298. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +59 -72
  299. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
  300. package/packages/ai/src/lib/promptGenerators/generateEntityDocumentationGenerator.js +8 -27
  301. package/packages/ai/src/lib/promptGenerators/generateEntityDocumentationGenerator.js.map +1 -1
  302. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +24 -27
  303. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  304. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +21 -22
  305. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
  306. package/packages/ai/src/lib/types/index.js +2 -0
  307. package/packages/ai/src/lib/types/index.js.map +1 -1
  308. package/packages/ai/src/lib/worker/SerializableDataStructure.js +7 -0
  309. package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
  310. package/packages/analyze/src/lib/FileAnalyzer.js +45 -5
  311. package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
  312. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js +191 -0
  313. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js.map +1 -0
  314. package/packages/analyze/src/lib/asts/sourceFiles/getDeclaredEntityNode.js +16 -0
  315. package/packages/analyze/src/lib/asts/sourceFiles/getDeclaredEntityNode.js.map +1 -0
  316. package/packages/analyze/src/lib/asts/sourceFiles/index.js +2 -0
  317. package/packages/analyze/src/lib/asts/sourceFiles/index.js.map +1 -1
  318. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +6 -8
  319. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  320. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +5 -1
  321. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  322. package/packages/analyze/src/lib/files/analyzeChange.js +21 -9
  323. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  324. package/packages/analyze/src/lib/files/analyzeEntity.js +10 -4
  325. package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
  326. package/packages/analyze/src/lib/files/analyzeInitial.js +21 -9
  327. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  328. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +6 -1
  329. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  330. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +9 -1
  331. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +1 -1
  332. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +5 -1
  333. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
  334. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +9 -1
  335. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
  336. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +16 -7
  337. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  338. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +28 -21
  339. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  340. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js +18 -11
  341. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js.map +1 -1
  342. package/packages/generate/src/lib/scenarioComponent.js +5 -3
  343. package/packages/generate/src/lib/scenarioComponent.js.map +1 -1
  344. package/packages/utils/index.js +2 -0
  345. package/packages/utils/index.js.map +1 -1
  346. package/packages/utils/src/lib/Semaphore.js +40 -0
  347. package/packages/utils/src/lib/Semaphore.js.map +1 -0
  348. package/packages/utils/src/lib/frameworks/getNextRoutePath.js +5 -3
  349. package/packages/utils/src/lib/frameworks/getNextRoutePath.js.map +1 -1
  350. package/packages/utils/src/lib/frameworks/getRemixRoutePath.js +2 -1
  351. package/packages/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -1
  352. package/packages/utils/src/lib/frameworks/nextRouteFileNameToRoute.js +2 -1
  353. package/packages/utils/src/lib/frameworks/nextRouteFileNameToRoute.js.map +1 -1
  354. package/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +1 -0
  355. package/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -1
  356. package/packages/utils/src/lib/frameworks/sanitizeNextRouteSegments.js +32 -0
  357. package/packages/utils/src/lib/frameworks/sanitizeNextRouteSegments.js.map +1 -0
  358. package/analyzer-template/packages/ai/src/lib/generateEntityDataMap.ts +0 -375
  359. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-GqWwt5wG.js +0 -1
  360. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-p0fuyqGQ.js +0 -3
  361. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-xwuhwsZH.js +0 -1
  362. package/codeyam-cli/src/webserver/build/client/assets/ScenarioPreview-Bl2IRh55.js +0 -1
  363. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-M2QuSHKC.js +0 -5
  364. package/codeyam-cli/src/webserver/build/client/assets/_index-CAVtep9Q.js +0 -1
  365. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-CLmzsLsT.js +0 -10
  366. package/codeyam-cli/src/webserver/build/client/assets/chart-column-B2I7jQx2.js +0 -1
  367. package/codeyam-cli/src/webserver/build/client/assets/circle-alert-GwwOAbhw.js +0 -1
  368. package/codeyam-cli/src/webserver/build/client/assets/components-CAx5ONX_.js +0 -40
  369. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-CgyOwWip.js +0 -1
  370. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-DGy3zrli.js +0 -1
  371. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-ChAdTrrU.js +0 -1
  372. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-D9L7267w.js +0 -5
  373. package/codeyam-cli/src/webserver/build/client/assets/entry.client-C6FRgjPr.js +0 -1
  374. package/codeyam-cli/src/webserver/build/client/assets/files-C3-cQjgv.js +0 -1
  375. package/codeyam-cli/src/webserver/build/client/assets/git-Dp4EB9nv.js +0 -12
  376. package/codeyam-cli/src/webserver/build/client/assets/globals-Da3jt49-.css +0 -1
  377. package/codeyam-cli/src/webserver/build/client/assets/loader-circle-DN7Vr40D.js +0 -1
  378. package/codeyam-cli/src/webserver/build/client/assets/manifest-172a4629.js +0 -1
  379. package/codeyam-cli/src/webserver/build/client/assets/root-COyVTsPq.js +0 -16
  380. package/codeyam-cli/src/webserver/build/client/assets/search-CvyP_1Lo.js +0 -1
  381. package/codeyam-cli/src/webserver/build/client/assets/settings-Hbf8b7J_.js +0 -1
  382. package/codeyam-cli/src/webserver/build/client/assets/settings-MZc4XdmE.js +0 -1
  383. package/codeyam-cli/src/webserver/build/client/assets/simulations-BMBi0VzO.js +0 -1
  384. package/codeyam-cli/src/webserver/build/client/assets/useToast-C_VxoXTh.js +0 -1
  385. package/codeyam-cli/src/webserver/build/client/assets/zap-B4gsLUZQ.js +0 -1
  386. package/codeyam-cli/src/webserver/build/client/cy-logo-cli.svg +0 -13
  387. package/codeyam-cli/src/webserver/build/server/assets/index-eAULANMV.js +0 -1
  388. package/codeyam-cli/src/webserver/build/server/assets/server-build-lutv16q5.js +0 -161
  389. package/codeyam-cli/src/webserver/public/cy-logo-cli.svg +0 -13
  390. package/packages/ai/src/lib/generateEntityDataMap.js +0 -335
  391. package/packages/ai/src/lib/generateEntityDataMap.js.map +0 -1
  392. package/packages/ai/src/lib/promptGenerators/generateEntityDataMapGenerator.js +0 -17
  393. package/packages/ai/src/lib/promptGenerators/generateEntityDataMapGenerator.js.map +0 -1
@@ -5,7 +5,20 @@ import { getRelativePath } from "../../../../../packages/generate/index.js";
5
5
  import { safeFileName, CODEYAM_MOCKS_DIRNAME, PROJECT_RELATIVE_PATH, } from "../../../../../packages/utils/index.js";
6
6
  export default async function writeUniversalMocks({ analysis, projectAnalyzer, framework, rootPath, fileStore, }) {
7
7
  const { project } = projectAnalyzer;
8
- for (const universalMock of project.metadata?.universalMocks ?? []) {
8
+ // Group node_module mocks by filePath to merge multiple exports into one file
9
+ // This prevents later mocks from overwriting earlier ones for the same package
10
+ const nodeModuleMocksByPath = new Map();
11
+ const universalMocks = project.metadata?.universalMocks ?? [];
12
+ for (const mock of universalMocks) {
13
+ if (mock.nodeModule) {
14
+ const existing = nodeModuleMocksByPath.get(mock.filePath) ?? [];
15
+ existing.push(mock);
16
+ nodeModuleMocksByPath.set(mock.filePath, existing);
17
+ }
18
+ }
19
+ // Track which filePaths we've already processed (for node_modules)
20
+ const processedNodeModulePaths = new Set();
21
+ for (const universalMock of universalMocks) {
9
22
  console.log('CodeYam: Initializing universal mock', universalMock.filePath, universalMock.entityName);
10
23
  try {
11
24
  let mockPath = '';
@@ -24,12 +37,22 @@ export default async function writeUniversalMocks({ analysis, projectAnalyzer, f
24
37
  mockContent = file.content;
25
38
  mockPath = path.join(rootPath ?? PROJECT_RELATIVE_PATH, universalMock.filePath);
26
39
  const fileAnalyzer = projectAnalyzer.getFileAnalyzer(file);
27
- if (fileAnalyzer.getAllEntityNodes()[universalMock.entityName]) {
28
- const entityCode = fileAnalyzer.getEntityCode(universalMock.entityName);
40
+ // Use getAllDeclaredEntityNodes to avoid incorrectly matching identifier references
41
+ if (fileAnalyzer.getAllDeclaredEntityNodes()[universalMock.entityName]) {
42
+ const entityCode = fileAnalyzer.getDeclaredEntityCode(universalMock.entityName);
29
43
  mockContent = file.content.replace(entityCode, universalMock.content);
30
44
  }
31
45
  }
32
46
  else {
47
+ // For node_modules, check if we've already processed this path
48
+ // (multiple mocks for the same package should be merged)
49
+ if (universalMock.nodeModule) {
50
+ if (processedNodeModulePaths.has(universalMock.filePath)) {
51
+ // Already processed as part of a merged mock, skip
52
+ continue;
53
+ }
54
+ processedNodeModulePaths.add(universalMock.filePath);
55
+ }
33
56
  const appPath = getAppPath(project, framework, false, universalMock.filePath);
34
57
  // For node_modules, strip extension before creating mock path
35
58
  // This handles both old format (with extension) and new format (without)
@@ -37,14 +60,35 @@ export default async function writeUniversalMocks({ analysis, projectAnalyzer, f
37
60
  ? universalMock.filePath.replace(/\.(ts|tsx|js|jsx)$/, '')
38
61
  : universalMock.filePath;
39
62
  mockPath = path.join(appPath, CODEYAM_MOCKS_DIRNAME, safeFileName(filePathForMockFile) + '.tsx');
40
- const exportName = universalMock.entityName === 'default'
41
- ? 'default'
42
- : `{ ${universalMock.entityName} }`;
43
- if (exportName === 'default') {
44
- mockContent = `export default ${universalMock.content}`;
63
+ // For node_modules, merge all mocks for this filePath
64
+ const mocksToProcess = universalMock.nodeModule
65
+ ? (nodeModuleMocksByPath.get(universalMock.filePath) ?? [
66
+ universalMock,
67
+ ])
68
+ : [universalMock];
69
+ const contentParts = [];
70
+ const namedExports = [];
71
+ let hasDefaultExport = false;
72
+ for (const mock of mocksToProcess) {
73
+ if (mock.entityName === 'default') {
74
+ hasDefaultExport = true;
75
+ contentParts.push(`export default ${mock.content}`);
76
+ }
77
+ else {
78
+ contentParts.push(mock.content);
79
+ namedExports.push(mock.entityName);
80
+ }
81
+ }
82
+ // Build the final mock content
83
+ if (namedExports.length > 0) {
84
+ mockContent = contentParts.join('\n\n');
85
+ // Only add export statement for non-default exports if not already in content
86
+ if (!hasDefaultExport || namedExports.length > 0) {
87
+ mockContent += `\n\nexport { ${namedExports.join(', ')} };`;
88
+ }
45
89
  }
46
90
  else {
47
- mockContent = `${universalMock.content}\n\nexport { ${universalMock.entityName} };`;
91
+ mockContent = contentParts.join('\n\n');
48
92
  }
49
93
  }
50
94
  const mockDataImport = new RegExp(`import { scenarios } from ['"]\.+\/[Mm]ockData(.js)*['"];`, 'g');
@@ -72,6 +116,12 @@ export default async function writeUniversalMocks({ analysis, projectAnalyzer, f
72
116
  const importRegEx = new RegExp(`['"]${filePathForMatching.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}['"]`, 'g');
73
117
  const allSourceFiles = projectAnalyzer.getAllSourceFiles();
74
118
  for (const sourceFile of allSourceFiles) {
119
+ // Skip JSON files - they should not have imports rewritten
120
+ // This can happen when resolveJsonModule is enabled in tsconfig
121
+ // and package.json is included in the TypeScript program
122
+ if (sourceFile.path.endsWith('.json')) {
123
+ continue;
124
+ }
75
125
  if (importRegEx.test(sourceFile.content)) {
76
126
  const relativeMockPath = getRelativePath(sourceFile.path, mockPath);
77
127
  const newContent = sourceFile.content.replace(importRegEx, `'${relativeMockPath}'`);
@@ -1 +1 @@
1
- {"version":3,"file":"writeUniversalMocks.js","sourceRoot":"","sources":["../../../../../../../background/src/lib/virtualized/project/writeUniversalMocks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"writeUniversalMocks.js","sourceRoot":"","sources":["../../../../../../../background/src/lib/virtualized/project/writeUniversalMocks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,288 @@
1
+ #!/usr/bin/env npx tsx
2
+ /**
3
+ * Apply project setup configuration from fixtures to a target project.
4
+ *
5
+ * Usage:
6
+ * npx tsx codeyam-cli/scripts/apply-setup.ts --project cal.com --target /path/to/target-project
7
+ *
8
+ * This script:
9
+ * 1. Reads setup.json from codeyam-cli/scripts/fixtures/{project}/
10
+ * 2. Creates/updates .codeyam/ directory structure in target
11
+ * 3. Writes .codeyam/config.json
12
+ * 4. Copies universal mock files to .codeyam/universal-mocks/
13
+ * 5. Creates/updates SQLite database with project metadata
14
+ */
15
+ import * as fs from 'fs';
16
+ import * as path from 'path';
17
+ import { fileURLToPath } from 'url';
18
+ import { parseArgs } from 'util';
19
+ import { randomUUID } from 'crypto';
20
+ import { getSqliteDatabase, createSqliteSchema, upsertProjects, upsertBranches, loadBranches, } from "../../packages/supabase/index.js";
21
+ const __filename = fileURLToPath(import.meta.url);
22
+ const __dirname = path.dirname(__filename);
23
+ async function main() {
24
+ const { values } = parseArgs({
25
+ options: {
26
+ project: { type: 'string', short: 'p' },
27
+ target: { type: 'string', short: 't' },
28
+ },
29
+ });
30
+ const projectName = values.project;
31
+ const targetPath = values.target;
32
+ if (!projectName || !targetPath) {
33
+ console.error('Usage: npx tsx apply-setup.ts --project <name> --target <path>');
34
+ console.error(' --project, -p Name of the fixture to apply (e.g., "cal.com")');
35
+ console.error(' --target, -t Path to the target project');
36
+ process.exit(1);
37
+ }
38
+ const fixturesDir = path.join(__dirname, 'fixtures', projectName);
39
+ const setupJsonPath = path.join(fixturesDir, 'setup.json');
40
+ const fixtureMocksDir = path.join(fixturesDir, 'universal-mocks');
41
+ const codeyamDir = path.join(targetPath, '.codeyam');
42
+ const configJsonPath = path.join(codeyamDir, 'config.json');
43
+ const targetMocksDir = path.join(codeyamDir, 'universal-mocks');
44
+ const dbPath = path.join(codeyamDir, 'db.sqlite3');
45
+ // Validate fixture exists
46
+ if (!fs.existsSync(setupJsonPath)) {
47
+ console.error(`Error: Fixture not found at ${setupJsonPath}`);
48
+ console.error(`Available fixtures:`);
49
+ const fixtures = fs.readdirSync(path.join(__dirname, 'fixtures'));
50
+ for (const f of fixtures) {
51
+ console.error(` - ${f}`);
52
+ }
53
+ process.exit(1);
54
+ }
55
+ // Validate target exists
56
+ if (!fs.existsSync(targetPath)) {
57
+ console.error(`Error: Target path does not exist: ${targetPath}`);
58
+ process.exit(1);
59
+ }
60
+ console.log(`Applying fixture: ${projectName}`);
61
+ console.log(`Target project: ${targetPath}`);
62
+ // Read fixture
63
+ const fixture = JSON.parse(await fs.promises.readFile(setupJsonPath, 'utf-8'));
64
+ // Create .codeyam directory structure
65
+ console.log('\n1. Creating .codeyam directory structure...');
66
+ await fs.promises.mkdir(codeyamDir, { recursive: true });
67
+ await fs.promises.mkdir(path.join(codeyamDir, 'results'), {
68
+ recursive: true,
69
+ });
70
+ await fs.promises.mkdir(path.join(codeyamDir, 'captures'), {
71
+ recursive: true,
72
+ });
73
+ console.log(` Created: ${codeyamDir}`);
74
+ // Write config.json
75
+ console.log('\n2. Writing config.json...');
76
+ const configJson = {
77
+ projectSlug: fixture.projectSlug,
78
+ packageManager: fixture.packageManager,
79
+ webapps: fixture.webapps,
80
+ environmentVariables: [],
81
+ createdAt: new Date().toISOString(),
82
+ branchId: null, // Will be set when branch is created
83
+ };
84
+ await fs.promises.writeFile(configJsonPath, JSON.stringify(configJson, null, 2), 'utf-8');
85
+ console.log(` Wrote: ${configJsonPath}`);
86
+ // Copy universal mocks
87
+ console.log('\n3. Copying universal mocks...');
88
+ if (fs.existsSync(fixtureMocksDir)) {
89
+ // Remove existing mocks dir if it exists
90
+ if (fs.existsSync(targetMocksDir)) {
91
+ await fs.promises.rm(targetMocksDir, { recursive: true });
92
+ }
93
+ // Copy fixture mocks to target
94
+ await fs.promises.cp(fixtureMocksDir, targetMocksDir, { recursive: true });
95
+ // Count files copied
96
+ const countFiles = (dir) => {
97
+ let count = 0;
98
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
99
+ for (const entry of entries) {
100
+ if (entry.isDirectory()) {
101
+ count += countFiles(path.join(dir, entry.name));
102
+ }
103
+ else {
104
+ count++;
105
+ }
106
+ }
107
+ return count;
108
+ };
109
+ const fileCount = countFiles(targetMocksDir);
110
+ console.log(` Copied: ${fileCount} mock file(s)`);
111
+ }
112
+ else {
113
+ console.log(' No universal mocks in fixture');
114
+ }
115
+ // Read mock file contents to build full universalMocks array
116
+ const universalMocksWithContent = await readMocksWithContent(targetMocksDir, fixture.universalMocks);
117
+ // Setup SQLite database
118
+ console.log('\n4. Setting up SQLite database...');
119
+ // Set the SQLITE_PATH so getSqliteDatabase knows where to look
120
+ process.env.SQLITE_PATH = dbPath;
121
+ const db = getSqliteDatabase(dbPath);
122
+ try {
123
+ // Check if tables exist, create if not
124
+ const tableCheck = await db
125
+ .selectFrom('projects')
126
+ .select(db.fn.count('id').as('count'))
127
+ .executeTakeFirst()
128
+ .catch(() => { });
129
+ if (!tableCheck) {
130
+ console.log(' Creating database schema...');
131
+ await createSqliteSchema(db);
132
+ }
133
+ // Create/update project
134
+ const projectId = randomUUID();
135
+ const project = {
136
+ id: projectId,
137
+ name: fixture.projectSlug,
138
+ slug: fixture.projectSlug,
139
+ path: `local:${targetPath}`,
140
+ metadata: {
141
+ packageManager: fixture.packageManager,
142
+ webapps: fixture.webapps,
143
+ universalMocks: universalMocksWithContent,
144
+ unapprovedPaths: fixture.unapprovedPaths,
145
+ },
146
+ };
147
+ // Check if project already exists
148
+ const existingProject = await db
149
+ .selectFrom('projects')
150
+ .selectAll()
151
+ .where('slug', '=', fixture.projectSlug)
152
+ .executeTakeFirst();
153
+ let finalProjectId;
154
+ if (existingProject) {
155
+ // Update existing project's metadata
156
+ console.log(` Updating existing project: ${fixture.projectSlug}`);
157
+ await db
158
+ .updateTable('projects')
159
+ .set({
160
+ metadata: JSON.stringify(project.metadata),
161
+ updated_at: new Date().toISOString(),
162
+ })
163
+ .where('slug', '=', fixture.projectSlug)
164
+ .execute();
165
+ finalProjectId = existingProject.id;
166
+ }
167
+ else {
168
+ // Insert new project
169
+ console.log(` Creating new project: ${fixture.projectSlug}`);
170
+ await upsertProjects([project]);
171
+ finalProjectId = projectId;
172
+ }
173
+ // Create/update _local branch
174
+ console.log('\n5. Creating _local branch...');
175
+ const existingBranches = await loadBranches({
176
+ projectId: finalProjectId,
177
+ names: ['_local'],
178
+ });
179
+ let branchId;
180
+ if (existingBranches && existingBranches.length > 0) {
181
+ console.log(' Using existing _local branch');
182
+ branchId = existingBranches[0].id;
183
+ }
184
+ else {
185
+ console.log(' Creating new _local branch');
186
+ const localBranch = {
187
+ projectId: finalProjectId,
188
+ name: '_local',
189
+ ref: '_local',
190
+ primary: true,
191
+ activeAt: new Date().toISOString(),
192
+ contentChangedAt: new Date().toISOString(),
193
+ metadata: {
194
+ contributors: [
195
+ {
196
+ username: 'local-dev',
197
+ avatarUrl: 'https://github.com/identicons/local-dev.png',
198
+ },
199
+ ],
200
+ commits: { total: 0, last7Days: [] },
201
+ timeline: [
202
+ {
203
+ title: 'Local branch created',
204
+ date: new Date().toISOString(),
205
+ authors: [
206
+ {
207
+ username: 'local-dev',
208
+ avatarUrl: 'https://github.com/identicons/local-dev.png',
209
+ },
210
+ ],
211
+ sha: 'local-init',
212
+ },
213
+ ],
214
+ },
215
+ };
216
+ const createdBranches = await upsertBranches([localBranch]);
217
+ if (!createdBranches || createdBranches.length === 0) {
218
+ throw new Error('Failed to create _local branch');
219
+ }
220
+ branchId = createdBranches[0].id;
221
+ }
222
+ // Update config.json with the branch ID
223
+ configJson.branchId = branchId;
224
+ await fs.promises.writeFile(configJsonPath, JSON.stringify(configJson, null, 2), 'utf-8');
225
+ console.log(` Updated config.json with branchId: ${branchId}`);
226
+ console.log(' Database updated successfully');
227
+ }
228
+ finally {
229
+ await db.destroy();
230
+ }
231
+ console.log('\nSetup complete!');
232
+ console.log(`\nNext steps:`);
233
+ console.log(` cd ${targetPath}`);
234
+ console.log(` codeyam start`);
235
+ }
236
+ /**
237
+ * Read mock files and merge content with fixture metadata
238
+ */
239
+ async function readMocksWithContent(mocksDir, mockMetadata) {
240
+ if (!fs.existsSync(mocksDir)) {
241
+ return mockMetadata;
242
+ }
243
+ // Build a map of file contents by path
244
+ const fileContents = new Map();
245
+ const readAllFiles = async (dir, basePath = '') => {
246
+ const entries = await fs.promises.readdir(dir, { withFileTypes: true });
247
+ for (const entry of entries) {
248
+ const fullPath = path.join(dir, entry.name);
249
+ const relativePath = path.join(basePath, entry.name);
250
+ if (entry.isDirectory()) {
251
+ await readAllFiles(fullPath, relativePath);
252
+ }
253
+ else if (/\.(ts|tsx|js|jsx)$/.test(entry.name)) {
254
+ const content = await fs.promises.readFile(fullPath, 'utf-8');
255
+ // Normalize path separators
256
+ const normalizedPath = relativePath.replace(/\\/g, '/');
257
+ fileContents.set(normalizedPath, content);
258
+ }
259
+ }
260
+ };
261
+ await readAllFiles(mocksDir);
262
+ // Merge content into metadata
263
+ // For each mock, find its content by matching filePath
264
+ return mockMetadata.map((mock) => {
265
+ // The filePath in metadata might not have the full path structure
266
+ // Try to find matching file content
267
+ let content = '';
268
+ for (const [filePath, fileContent] of fileContents) {
269
+ if (filePath.endsWith(mock.filePath) ||
270
+ mock.filePath.endsWith(filePath)) {
271
+ // Extract just this entity's code from the file
272
+ // For now, use the full file content - the sync logic will handle extraction
273
+ content = fileContent;
274
+ break;
275
+ }
276
+ }
277
+ return {
278
+ ...mock,
279
+ content,
280
+ projectId: '', // Will be set by database
281
+ };
282
+ });
283
+ }
284
+ main().catch((error) => {
285
+ console.error('Error:', error);
286
+ process.exit(1);
287
+ });
288
+ //# sourceMappingURL=apply-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-setup.js","sourceRoot":"","sources":["../../../scripts/apply-setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ #!/usr/bin/env npx tsx
2
+ /**
3
+ * Extract project setup configuration from a .codeyam database and save as fixtures.
4
+ *
5
+ * Usage:
6
+ * npx tsx codeyam-cli/scripts/extract-setup.ts --project cal.com --source /path/to/cal.com
7
+ *
8
+ * This script:
9
+ * 1. Connects to the SQLite database at {source}/.codeyam/db.sqlite3
10
+ * 2. Extracts project metadata (webapps, universalMocks, etc.)
11
+ * 3. Writes setup.json to codeyam-cli/scripts/fixtures/{project}/
12
+ * 4. Copies universal mock files to fixtures/{project}/universal-mocks/
13
+ */
14
+ import * as fs from 'fs';
15
+ import * as path from 'path';
16
+ import { fileURLToPath } from 'url';
17
+ import { parseArgs } from 'util';
18
+ import { getSqliteDatabase } from "../../packages/supabase/index.js";
19
+ const __filename = fileURLToPath(import.meta.url);
20
+ const __dirname = path.dirname(__filename);
21
+ async function main() {
22
+ const { values } = parseArgs({
23
+ options: {
24
+ project: { type: 'string', short: 'p' },
25
+ source: { type: 'string', short: 's' },
26
+ },
27
+ });
28
+ const projectName = values.project;
29
+ const sourcePath = values.source;
30
+ if (!projectName || !sourcePath) {
31
+ console.error('Usage: npx tsx extract-setup.ts --project <name> --source <path>');
32
+ console.error(' --project, -p Name for the fixture (e.g., "cal.com")');
33
+ console.error(' --source, -s Path to the project with .codeyam folder');
34
+ process.exit(1);
35
+ }
36
+ const dbPath = path.join(sourcePath, '.codeyam', 'db.sqlite3');
37
+ const sourceMocksDir = path.join(sourcePath, '.codeyam', 'universal-mocks');
38
+ const fixturesDir = path.join(__dirname, 'fixtures', projectName);
39
+ const targetMocksDir = path.join(fixturesDir, 'universal-mocks');
40
+ // Validate source exists
41
+ if (!fs.existsSync(dbPath)) {
42
+ console.error(`Error: Database not found at ${dbPath}`);
43
+ process.exit(1);
44
+ }
45
+ console.log(`Extracting setup from: ${sourcePath}`);
46
+ console.log(`Writing fixtures to: ${fixturesDir}`);
47
+ // Connect to SQLite
48
+ const db = getSqliteDatabase(dbPath);
49
+ try {
50
+ // Query project metadata
51
+ const project = await db
52
+ .selectFrom('projects')
53
+ .selectAll()
54
+ .executeTakeFirst();
55
+ if (!project) {
56
+ console.error('Error: No project found in database');
57
+ process.exit(1);
58
+ }
59
+ // Parse metadata (it's stored as JSON string in SQLite)
60
+ const metadata = typeof project.metadata === 'string'
61
+ ? JSON.parse(project.metadata)
62
+ : (project.metadata ?? {});
63
+ // Also check configuration column (some projects use this)
64
+ const configuration = typeof project.configuration === 'string'
65
+ ? JSON.parse(project.configuration)
66
+ : (project.configuration ?? {});
67
+ // Merge metadata and configuration (configuration takes precedence)
68
+ const mergedConfig = { ...metadata, ...configuration };
69
+ // Build fixture data
70
+ const fixture = {
71
+ projectSlug: project.slug,
72
+ packageManager: mergedConfig.packageManager ?? 'npm',
73
+ webapps: mergedConfig.webapps ?? [],
74
+ universalMocks: (mergedConfig.universalMocks ?? []).map((mock) => ({
75
+ // Strip content from mocks - we'll store files separately
76
+ filePath: mock.filePath,
77
+ entityName: mock.entityName,
78
+ nodeModule: mock.nodeModule,
79
+ metadata: mock.metadata,
80
+ })),
81
+ unapprovedPaths: mergedConfig.unapprovedPaths,
82
+ pathsToIgnore: mergedConfig.pathsToIgnore,
83
+ };
84
+ // Create fixtures directory
85
+ await fs.promises.mkdir(fixturesDir, { recursive: true });
86
+ // Write setup.json
87
+ const setupJsonPath = path.join(fixturesDir, 'setup.json');
88
+ await fs.promises.writeFile(setupJsonPath, JSON.stringify(fixture, null, 2), 'utf-8');
89
+ console.log(` Wrote: ${setupJsonPath}`);
90
+ // Copy universal mocks directory if it exists
91
+ if (fs.existsSync(sourceMocksDir)) {
92
+ // Remove existing target mocks dir if it exists
93
+ if (fs.existsSync(targetMocksDir)) {
94
+ await fs.promises.rm(targetMocksDir, { recursive: true });
95
+ }
96
+ // Copy the directory
97
+ await fs.promises.cp(sourceMocksDir, targetMocksDir, { recursive: true });
98
+ // Count files copied
99
+ const countFiles = (dir) => {
100
+ let count = 0;
101
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
102
+ for (const entry of entries) {
103
+ if (entry.isDirectory()) {
104
+ count += countFiles(path.join(dir, entry.name));
105
+ }
106
+ else {
107
+ count++;
108
+ }
109
+ }
110
+ return count;
111
+ };
112
+ const fileCount = countFiles(targetMocksDir);
113
+ console.log(` Copied: ${fileCount} mock file(s) to ${targetMocksDir}`);
114
+ }
115
+ else {
116
+ console.log(' No universal-mocks directory found to copy');
117
+ }
118
+ console.log('\nExtraction complete!');
119
+ console.log(`\nTo commit fixtures to git:`);
120
+ console.log(` git add codeyam-cli/scripts/fixtures/${projectName}/`);
121
+ }
122
+ finally {
123
+ await db.destroy();
124
+ }
125
+ }
126
+ main().catch((error) => {
127
+ console.error('Error:', error);
128
+ process.exit(1);
129
+ });
130
+ //# sourceMappingURL=extract-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-setup.js","sourceRoot":"","sources":["../../../scripts/extract-setup.ts"],"names":[],"mappings":"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"}