@codeyam/codeyam-cli 0.1.0-bleeding-edge.8afd3ee → 0.1.0-staging.036391e

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 (2306) hide show
  1. package/analyzer-template/.build-info.json +8 -8
  2. package/analyzer-template/common/execAsync.ts +2 -2
  3. package/analyzer-template/log.txt +3 -3
  4. package/analyzer-template/package.json +32 -27
  5. package/analyzer-template/packages/ai/index.ts +26 -7
  6. package/analyzer-template/packages/ai/package.json +5 -5
  7. package/analyzer-template/packages/ai/scripts/ai-test-matrix.mjs +424 -0
  8. package/analyzer-template/packages/ai/src/lib/__mocks__/completionCall.ts +122 -0
  9. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +260 -8
  10. package/analyzer-template/packages/ai/src/lib/astScopes/arrayDerivationDetector.ts +199 -0
  11. package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +245 -40
  12. package/analyzer-template/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.ts +644 -0
  13. package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +426 -20
  14. package/analyzer-template/packages/ai/src/lib/astScopes/paths.ts +42 -3
  15. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.ts +10 -17
  16. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.ts +18 -0
  17. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.ts +48 -2
  18. package/analyzer-template/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.ts +181 -1
  19. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +1715 -122
  20. package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +322 -5
  21. package/analyzer-template/packages/ai/src/lib/checkAllAttributes.ts +28 -11
  22. package/analyzer-template/packages/ai/src/lib/completionCall.ts +216 -36
  23. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +4262 -720
  24. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.ts +175 -7
  25. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +21 -4
  26. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +976 -0
  27. package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +249 -81
  28. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.ts +152 -0
  29. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/DebugTracer.ts +224 -0
  30. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/PathManager.ts +203 -0
  31. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/README.md +294 -0
  32. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.ts +163 -0
  33. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/VisitedTracker.ts +235 -0
  34. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +71 -2
  35. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +229 -21
  36. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.ts +70 -0
  37. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +106 -8
  38. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.ts +98 -0
  39. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.ts +179 -0
  40. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.ts +40 -30
  41. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +455 -88
  42. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.ts +129 -0
  43. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/getFunctionCallRoot.ts +33 -3
  44. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/selectBestValue.ts +70 -0
  45. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/uniqueIdUtils.ts +113 -0
  46. package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +156 -0
  47. package/analyzer-template/packages/ai/src/lib/deepEqual.ts +30 -0
  48. package/analyzer-template/packages/ai/src/lib/e2eDataTracking.ts +334 -0
  49. package/analyzer-template/packages/ai/src/lib/extractCriticalDataKeys.ts +120 -0
  50. package/analyzer-template/packages/ai/src/lib/generateChangesEntityDocumentation.ts +20 -2
  51. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +124 -158
  52. package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +139 -346
  53. package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +70 -7
  54. package/analyzer-template/packages/ai/src/lib/generateEntityDocumentation.ts +16 -2
  55. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +1410 -195
  56. package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +232 -295
  57. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +578 -0
  58. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +528 -0
  59. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +2267 -0
  60. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.ts +239 -0
  61. package/analyzer-template/packages/ai/src/lib/generateStatementAnalysis.ts +49 -72
  62. package/analyzer-template/packages/ai/src/lib/getConditionalUsagesFromCode.ts +170 -37
  63. package/analyzer-template/packages/ai/src/lib/getLLMCallStats.ts +0 -14
  64. package/analyzer-template/packages/ai/src/lib/guessScenarioDataFromDescription.ts +8 -2
  65. package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +328 -7
  66. package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +135 -7
  67. package/analyzer-template/packages/ai/src/lib/modelInfo.ts +15 -0
  68. package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +150 -31
  69. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityDocumentationGenerator.ts +8 -33
  70. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.ts +54 -62
  71. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +77 -150
  72. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChunkPrompt.ts +82 -0
  73. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateCriticalKeysPrompt.ts +103 -0
  74. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityDocumentationGenerator.ts +8 -27
  75. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +119 -40
  76. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +16 -49
  77. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.ts +58 -0
  78. package/analyzer-template/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.ts +28 -2
  79. package/analyzer-template/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.ts +391 -0
  80. package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +824 -0
  81. package/analyzer-template/packages/ai/src/lib/splitOutsideParentheses.ts +5 -1
  82. package/analyzer-template/packages/ai/src/lib/types/index.ts +2 -0
  83. package/analyzer-template/packages/ai/src/lib/validateExecutionFlowPaths.ts +531 -0
  84. package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +171 -2
  85. package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +121 -2
  86. package/analyzer-template/packages/analyze/index.ts +2 -0
  87. package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +230 -54
  88. package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +113 -26
  89. package/analyzer-template/packages/analyze/src/lib/analysisContext.ts +44 -4
  90. package/analyzer-template/packages/analyze/src/lib/asts/nodes/getNodeType.ts +1 -1
  91. package/analyzer-template/packages/analyze/src/lib/asts/nodes/index.ts +3 -1
  92. package/analyzer-template/packages/analyze/src/lib/asts/nodes/isAsyncFunction.ts +67 -0
  93. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.ts +19 -0
  94. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.ts +19 -0
  95. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExportedNodes.ts +4 -2
  96. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExports.ts +49 -9
  97. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.ts +8 -0
  98. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.ts +49 -1
  99. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.ts +2 -1
  100. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +744 -153
  101. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +61 -3
  102. package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +6 -0
  103. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +4 -1
  104. package/analyzer-template/packages/analyze/src/lib/files/analyze/findPreviousAnalysis.ts +1 -1
  105. package/analyzer-template/packages/analyze/src/lib/files/analyze/findValidExistingAnalysis.ts +1 -1
  106. package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +20 -10
  107. package/analyzer-template/packages/analyze/src/lib/files/analyze/setActiveAnalysisBranches.ts +1 -1
  108. package/analyzer-template/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.ts +5 -13
  109. package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +33 -10
  110. package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +65 -30
  111. package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +29 -11
  112. package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +46 -28
  113. package/analyzer-template/packages/analyze/src/lib/files/analyzeNextRoute.ts +1 -1
  114. package/analyzer-template/packages/analyze/src/lib/files/analyzeRemixRoute.ts +26 -39
  115. package/analyzer-template/packages/analyze/src/lib/files/enums/steps.ts +1 -1
  116. package/analyzer-template/packages/analyze/src/lib/files/getImportedExports.ts +135 -16
  117. package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +1315 -0
  118. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +313 -0
  119. package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.ts +102 -0
  120. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +812 -99
  121. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.ts +1 -1
  122. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.ts +28 -62
  123. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +619 -31
  124. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +264 -0
  125. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +84 -80
  126. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +8 -4
  127. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +1050 -112
  128. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.ts +61 -6
  129. package/analyzer-template/packages/analyze/src/lib/files/scenarios/propagateArrayItemSchemas.ts +474 -0
  130. package/analyzer-template/packages/analyze/src/lib/files/setImportedExports.ts +3 -2
  131. package/analyzer-template/packages/analyze/src/lib/index.ts +1 -0
  132. package/analyzer-template/packages/analyze/src/lib/utils/getFileByPath.ts +19 -0
  133. package/analyzer-template/packages/aws/codebuild/index.ts +1 -0
  134. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts +11 -1
  135. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts.map +1 -1
  136. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js +29 -18
  137. package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js.map +1 -1
  138. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts +2 -2
  139. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts.map +1 -1
  140. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js +2 -2
  141. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  142. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts +8 -18
  143. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts.map +1 -1
  144. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js +17 -61
  145. package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  146. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.d.ts +15 -0
  147. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.d.ts.map +1 -0
  148. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.js +31 -0
  149. package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.js.map +1 -0
  150. package/analyzer-template/packages/aws/dist/src/lib/s3/getPresignedUrl.d.ts +23 -0
  151. package/analyzer-template/packages/aws/dist/src/lib/s3/getPresignedUrl.d.ts.map +1 -0
  152. package/analyzer-template/packages/aws/dist/src/lib/s3/getPresignedUrl.js +30 -0
  153. package/analyzer-template/packages/aws/dist/src/lib/s3/getPresignedUrl.js.map +1 -0
  154. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.d.ts.map +1 -1
  155. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js +8 -1
  156. package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js.map +1 -1
  157. package/analyzer-template/packages/aws/package.json +10 -9
  158. package/analyzer-template/packages/aws/s3/index.ts +5 -0
  159. package/analyzer-template/packages/aws/src/lib/codebuild/waitForBuild.ts +43 -19
  160. package/analyzer-template/packages/aws/src/lib/ecs/ecsDefineContainer.ts +3 -3
  161. package/analyzer-template/packages/aws/src/lib/ecs/ecsTaskFactory.ts +17 -69
  162. package/analyzer-template/packages/aws/src/lib/s3/checkS3ObjectExists.ts +47 -0
  163. package/analyzer-template/packages/aws/src/lib/s3/getPresignedUrl.ts +62 -0
  164. package/analyzer-template/packages/aws/src/lib/s3/uploadFileToS3.ts +8 -1
  165. package/analyzer-template/packages/database/client.ts +35 -0
  166. package/analyzer-template/packages/database/package.json +31 -0
  167. package/analyzer-template/packages/database/src/lib/kysely/db.ts +495 -0
  168. package/analyzer-template/packages/database/src/lib/kysely/tableRelations.ts +108 -0
  169. package/analyzer-template/packages/database/src/lib/kysely/tables/commitsTable.ts +67 -0
  170. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +88 -0
  171. package/analyzer-template/packages/database/src/lib/kysely/tables/labsRequestsTable.ts +52 -0
  172. package/analyzer-template/packages/database/src/lib/loadAnalyses.ts +275 -0
  173. package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +223 -0
  174. package/analyzer-template/packages/database/src/lib/loadBranch.ts +137 -0
  175. package/analyzer-template/packages/database/src/lib/loadCommit.ts +173 -0
  176. package/analyzer-template/packages/database/src/lib/loadCommits.ts +279 -0
  177. package/analyzer-template/packages/database/src/lib/loadEntities.ts +117 -0
  178. package/analyzer-template/packages/database/src/lib/loadEntity.ts +105 -0
  179. package/analyzer-template/packages/database/src/lib/loadEntityBranches.ts +178 -0
  180. package/analyzer-template/packages/database/src/lib/loadFile.ts +42 -0
  181. package/analyzer-template/packages/database/src/lib/loadFiles.ts +134 -0
  182. package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +101 -0
  183. package/analyzer-template/packages/database/src/lib/loadStatement.ts +23 -0
  184. package/analyzer-template/packages/database/src/lib/saveEntityStatements.ts +27 -0
  185. package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +35 -0
  186. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +180 -0
  187. package/analyzer-template/packages/database/src/lib/updateProjectMetadata.ts +95 -0
  188. package/analyzer-template/packages/generate/index.ts +3 -0
  189. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts +44 -21
  190. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.ts +18 -11
  191. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +193 -0
  192. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.ts +73 -0
  193. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.ts +9 -4
  194. package/analyzer-template/packages/generate/src/lib/deepMerge.ts +29 -2
  195. package/analyzer-template/packages/generate/src/lib/directExecutionScript.ts +17 -2
  196. package/analyzer-template/packages/generate/src/lib/getComponentScenarioPath.ts +8 -3
  197. package/analyzer-template/packages/generate/src/lib/scenarioComponent.ts +6 -3
  198. package/analyzer-template/packages/generate/src/lib/scenarioComponentForServer.ts +114 -0
  199. package/analyzer-template/packages/github/dist/database/index.d.ts.map +1 -0
  200. package/analyzer-template/packages/github/dist/database/index.js.map +1 -0
  201. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.d.ts.map +1 -0
  202. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js.map +1 -0
  203. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.d.ts.map +1 -0
  204. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js.map +1 -0
  205. package/analyzer-template/packages/github/dist/database/src/lib/backgroundJobToDb.d.ts.map +1 -0
  206. package/analyzer-template/packages/github/dist/database/src/lib/backgroundJobToDb.js.map +1 -0
  207. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.d.ts.map +1 -0
  208. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js.map +1 -0
  209. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.d.ts.map +1 -0
  210. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js.map +1 -0
  211. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.d.ts.map +1 -0
  212. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js.map +1 -0
  213. package/analyzer-template/packages/github/dist/database/src/lib/createOrUpdateBranchCommitStats.d.ts.map +1 -0
  214. package/analyzer-template/packages/github/dist/database/src/lib/createOrUpdateBranchCommitStats.js.map +1 -0
  215. package/analyzer-template/packages/github/dist/database/src/lib/createProject.d.ts.map +1 -0
  216. package/analyzer-template/packages/github/dist/database/src/lib/createProject.js.map +1 -0
  217. package/analyzer-template/packages/github/dist/database/src/lib/createRetryFetch.d.ts.map +1 -0
  218. package/analyzer-template/packages/github/dist/database/src/lib/createRetryFetch.js.map +1 -0
  219. package/analyzer-template/packages/github/dist/database/src/lib/dbToAnalysis.d.ts.map +1 -0
  220. package/analyzer-template/packages/github/dist/database/src/lib/dbToAnalysis.js.map +1 -0
  221. package/analyzer-template/packages/github/dist/database/src/lib/dbToAnalysisBranch.d.ts.map +1 -0
  222. package/analyzer-template/packages/github/dist/database/src/lib/dbToAnalysisBranch.js.map +1 -0
  223. package/analyzer-template/packages/github/dist/database/src/lib/dbToBackgroundJob.d.ts.map +1 -0
  224. package/analyzer-template/packages/github/dist/database/src/lib/dbToBackgroundJob.js.map +1 -0
  225. package/analyzer-template/packages/github/dist/database/src/lib/dbToBranch.d.ts.map +1 -0
  226. package/analyzer-template/packages/github/dist/database/src/lib/dbToBranch.js.map +1 -0
  227. package/analyzer-template/packages/github/dist/database/src/lib/dbToCommit.d.ts.map +1 -0
  228. package/analyzer-template/packages/github/dist/database/src/lib/dbToCommit.js.map +1 -0
  229. package/analyzer-template/packages/github/dist/database/src/lib/dbToCommitBranch.d.ts.map +1 -0
  230. package/analyzer-template/packages/github/dist/database/src/lib/dbToCommitBranch.js.map +1 -0
  231. package/analyzer-template/packages/github/dist/database/src/lib/dbToEntity.d.ts.map +1 -0
  232. package/analyzer-template/packages/github/dist/database/src/lib/dbToEntity.js.map +1 -0
  233. package/analyzer-template/packages/github/dist/database/src/lib/dbToEntityBranch.d.ts.map +1 -0
  234. package/analyzer-template/packages/github/dist/database/src/lib/dbToEntityBranch.js.map +1 -0
  235. package/analyzer-template/packages/github/dist/database/src/lib/dbToFile.d.ts.map +1 -0
  236. package/analyzer-template/packages/github/dist/database/src/lib/dbToFile.js.map +1 -0
  237. package/analyzer-template/packages/github/dist/database/src/lib/dbToProject.d.ts.map +1 -0
  238. package/analyzer-template/packages/github/dist/database/src/lib/dbToProject.js.map +1 -0
  239. package/analyzer-template/packages/github/dist/database/src/lib/dbToScenario.d.ts.map +1 -0
  240. package/analyzer-template/packages/github/dist/database/src/lib/dbToScenario.js.map +1 -0
  241. package/analyzer-template/packages/github/dist/database/src/lib/dbToScenarioComment.d.ts.map +1 -0
  242. package/analyzer-template/packages/github/dist/database/src/lib/dbToScenarioComment.js.map +1 -0
  243. package/analyzer-template/packages/github/dist/database/src/lib/dbToUserScenario.d.ts.map +1 -0
  244. package/analyzer-template/packages/github/dist/database/src/lib/dbToUserScenario.js.map +1 -0
  245. package/analyzer-template/packages/github/dist/database/src/lib/deleteBranch.d.ts.map +1 -0
  246. package/analyzer-template/packages/github/dist/database/src/lib/deleteBranch.js.map +1 -0
  247. package/analyzer-template/packages/github/dist/database/src/lib/deleteEntities.d.ts.map +1 -0
  248. package/analyzer-template/packages/github/dist/database/src/lib/deleteEntities.js.map +1 -0
  249. package/analyzer-template/packages/github/dist/database/src/lib/deleteFile.d.ts.map +1 -0
  250. package/analyzer-template/packages/github/dist/database/src/lib/deleteFile.js.map +1 -0
  251. package/analyzer-template/packages/github/dist/database/src/lib/deleteScenarios.d.ts.map +1 -0
  252. package/analyzer-template/packages/github/dist/database/src/lib/deleteScenarios.js.map +1 -0
  253. package/analyzer-template/packages/github/dist/database/src/lib/entityToDb.d.ts.map +1 -0
  254. package/analyzer-template/packages/github/dist/database/src/lib/entityToDb.js.map +1 -0
  255. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.d.ts.map +1 -0
  256. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js.map +1 -0
  257. package/analyzer-template/packages/github/dist/database/src/lib/generateSha.d.ts.map +1 -0
  258. package/analyzer-template/packages/github/dist/database/src/lib/generateSha.js.map +1 -0
  259. package/analyzer-template/packages/github/dist/database/src/lib/jsonUpdateUtils.d.ts.map +1 -0
  260. package/analyzer-template/packages/github/dist/database/src/lib/jsonUpdateUtils.js.map +1 -0
  261. package/analyzer-template/packages/github/dist/database/src/lib/kysely/aggregationHelpers.d.ts.map +1 -0
  262. package/analyzer-template/packages/github/dist/database/src/lib/kysely/aggregationHelpers.js.map +1 -0
  263. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +71 -0
  264. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -0
  265. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +373 -0
  266. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -0
  267. package/analyzer-template/packages/github/dist/database/src/lib/kysely/schemaHelpers.d.ts.map +1 -0
  268. package/analyzer-template/packages/github/dist/database/src/lib/kysely/schemaHelpers.js.map +1 -0
  269. package/analyzer-template/packages/github/dist/database/src/lib/kysely/sqliteBooleanPlugin.d.ts.map +1 -0
  270. package/analyzer-template/packages/github/dist/database/src/lib/kysely/sqliteBooleanPlugin.js.map +1 -0
  271. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tableRelations.d.ts +89 -0
  272. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tableRelations.d.ts.map +1 -0
  273. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tableRelations.js.map +1 -0
  274. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tableRelationsTypes.d.ts.map +1 -0
  275. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tableRelationsTypes.js.map +1 -0
  276. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts +97 -0
  277. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts.map +1 -0
  278. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.js.map +1 -0
  279. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysisBranchesTable.d.ts.map +1 -0
  280. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysisBranchesTable.js.map +1 -0
  281. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/backgroundJobsTable.d.ts.map +1 -0
  282. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/backgroundJobsTable.js.map +1 -0
  283. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/branchesTable.d.ts.map +1 -0
  284. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/branchesTable.js.map +1 -0
  285. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitBranchesTable.d.ts.map +1 -0
  286. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitBranchesTable.js.map +1 -0
  287. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts +48 -0
  288. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts.map +1 -0
  289. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js +47 -0
  290. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js.map +1 -0
  291. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +60 -0
  292. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts.map +1 -0
  293. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js +33 -0
  294. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -0
  295. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts +68 -0
  296. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts.map +1 -0
  297. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.js.map +1 -0
  298. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entityBranchesTable.d.ts.map +1 -0
  299. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entityBranchesTable.js.map +1 -0
  300. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entityStatementsTable.d.ts.map +1 -0
  301. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entityStatementsTable.js.map +1 -0
  302. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/filesTable.d.ts.map +1 -0
  303. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/filesTable.js.map +1 -0
  304. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/githubPayloadsTable.d.ts.map +1 -0
  305. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/githubPayloadsTable.js.map +1 -0
  306. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/githubUsersTable.d.ts.map +1 -0
  307. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/githubUsersTable.js.map +1 -0
  308. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts +23 -0
  309. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts.map +1 -0
  310. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  311. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  312. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/projectsTable.d.ts.map +1 -0
  313. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/projectsTable.js.map +1 -0
  314. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenarioCommentsTable.d.ts.map +1 -0
  315. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenarioCommentsTable.js.map +1 -0
  316. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +61 -0
  317. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -0
  318. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.js.map +1 -0
  319. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/statementsTable.d.ts.map +1 -0
  320. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/statementsTable.js.map +1 -0
  321. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/teamsTable.d.ts.map +1 -0
  322. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/teamsTable.js.map +1 -0
  323. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/userScenariosTable.d.ts.map +1 -0
  324. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/userScenariosTable.js.map +1 -0
  325. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/userTeamsTable.d.ts.map +1 -0
  326. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/userTeamsTable.js.map +1 -0
  327. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/usersTable.d.ts.map +1 -0
  328. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/usersTable.js.map +1 -0
  329. package/analyzer-template/packages/github/dist/database/src/lib/kysely/upsertHelpers.d.ts.map +1 -0
  330. package/analyzer-template/packages/github/dist/database/src/lib/kysely/upsertHelpers.js.map +1 -0
  331. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts +16 -0
  332. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts.map +1 -0
  333. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js +174 -0
  334. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js.map +1 -0
  335. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -0
  336. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +138 -0
  337. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -0
  338. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysisBranches.d.ts.map +1 -0
  339. package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysisBranches.js.map +1 -0
  340. package/analyzer-template/packages/github/dist/database/src/lib/loadBackgroundJob.d.ts.map +1 -0
  341. package/analyzer-template/packages/github/dist/database/src/lib/loadBackgroundJob.js.map +1 -0
  342. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.d.ts.map +1 -0
  343. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js +100 -0
  344. package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js.map +1 -0
  345. package/analyzer-template/packages/github/dist/database/src/lib/loadBranches.d.ts.map +1 -0
  346. package/analyzer-template/packages/github/dist/database/src/lib/loadBranches.js.map +1 -0
  347. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.d.ts.map +1 -0
  348. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js +118 -0
  349. package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js.map +1 -0
  350. package/analyzer-template/packages/github/dist/database/src/lib/loadCommitBranches.d.ts.map +1 -0
  351. package/analyzer-template/packages/github/dist/database/src/lib/loadCommitBranches.js.map +1 -0
  352. package/analyzer-template/packages/github/dist/database/src/lib/loadCommitMetadata.d.ts.map +1 -0
  353. package/analyzer-template/packages/github/dist/database/src/lib/loadCommitMetadata.js.map +1 -0
  354. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts +15 -0
  355. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -0
  356. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +209 -0
  357. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -0
  358. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts +13 -0
  359. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -0
  360. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +82 -0
  361. package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -0
  362. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.d.ts.map +1 -0
  363. package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.js.map +1 -0
  364. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.d.ts.map +1 -0
  365. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js +123 -0
  366. package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js.map +1 -0
  367. package/analyzer-template/packages/github/dist/database/src/lib/loadFile.d.ts.map +1 -0
  368. package/analyzer-template/packages/github/dist/database/src/lib/loadFile.js.map +1 -0
  369. package/analyzer-template/packages/github/dist/database/src/lib/loadFiles.d.ts.map +1 -0
  370. package/analyzer-template/packages/github/dist/database/src/lib/loadFiles.js.map +1 -0
  371. package/analyzer-template/packages/github/dist/database/src/lib/loadMostRecentPreviousAnalysis.d.ts.map +1 -0
  372. package/analyzer-template/packages/github/dist/database/src/lib/loadMostRecentPreviousAnalysis.js.map +1 -0
  373. package/analyzer-template/packages/github/dist/database/src/lib/loadProject.d.ts.map +1 -0
  374. package/analyzer-template/packages/github/dist/database/src/lib/loadProject.js.map +1 -0
  375. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -0
  376. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +68 -0
  377. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -0
  378. package/analyzer-template/packages/github/dist/database/src/lib/loadScenario.d.ts.map +1 -0
  379. package/analyzer-template/packages/github/dist/database/src/lib/loadScenario.js.map +1 -0
  380. package/analyzer-template/packages/github/dist/database/src/lib/loadStatement.d.ts +3 -0
  381. package/analyzer-template/packages/github/dist/database/src/lib/loadStatement.d.ts.map +1 -0
  382. package/analyzer-template/packages/github/dist/database/src/lib/loadStatement.js.map +1 -0
  383. package/analyzer-template/packages/github/dist/database/src/lib/nullsToUndefines.d.ts.map +1 -0
  384. package/analyzer-template/packages/github/dist/database/src/lib/nullsToUndefines.js.map +1 -0
  385. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.d.ts.map +1 -0
  386. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js.map +1 -0
  387. package/analyzer-template/packages/github/dist/database/src/lib/saveBackgroundEvent.d.ts.map +1 -0
  388. package/analyzer-template/packages/github/dist/database/src/lib/saveBackgroundEvent.js.map +1 -0
  389. package/analyzer-template/packages/github/dist/database/src/lib/saveEntityStatements.d.ts.map +1 -0
  390. package/analyzer-template/packages/github/dist/database/src/lib/saveEntityStatements.js.map +1 -0
  391. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.d.ts.map +1 -0
  392. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js.map +1 -0
  393. package/analyzer-template/packages/github/dist/database/src/lib/saveStatement.d.ts.map +1 -0
  394. package/analyzer-template/packages/github/dist/database/src/lib/saveStatement.js.map +1 -0
  395. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.d.ts.map +1 -0
  396. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js +18 -0
  397. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js.map +1 -0
  398. package/analyzer-template/packages/github/dist/database/src/lib/supabase.d.ts +4 -0
  399. package/analyzer-template/packages/github/dist/database/src/lib/supabase.d.ts.map +1 -0
  400. package/analyzer-template/packages/github/dist/database/src/lib/supabase.js.map +1 -0
  401. package/analyzer-template/packages/github/dist/database/src/lib/updateBackgroundJobProgress.d.ts.map +1 -0
  402. package/analyzer-template/packages/github/dist/database/src/lib/updateBackgroundJobProgress.js.map +1 -0
  403. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts +13 -0
  404. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -0
  405. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +101 -0
  406. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -0
  407. package/analyzer-template/packages/github/dist/database/src/lib/updateEntityBranch.d.ts.map +1 -0
  408. package/analyzer-template/packages/github/dist/database/src/lib/updateEntityBranch.js.map +1 -0
  409. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisMetadata.d.ts.map +1 -0
  410. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisMetadata.js.map +1 -0
  411. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.d.ts.map +1 -0
  412. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js.map +1 -0
  413. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.d.ts.map +1 -0
  414. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -0
  415. package/analyzer-template/packages/github/dist/database/src/lib/updateProjectMetadata.d.ts.map +1 -0
  416. package/analyzer-template/packages/github/dist/database/src/lib/updateProjectMetadata.js.map +1 -0
  417. package/analyzer-template/packages/github/dist/database/src/lib/upsertAnalyses.d.ts.map +1 -0
  418. package/analyzer-template/packages/github/dist/database/src/lib/upsertAnalyses.js.map +1 -0
  419. package/analyzer-template/packages/github/dist/database/src/lib/upsertAnalysesWithScenarios.d.ts.map +1 -0
  420. package/analyzer-template/packages/github/dist/database/src/lib/upsertAnalysesWithScenarios.js.map +1 -0
  421. package/analyzer-template/packages/github/dist/database/src/lib/upsertAnalysisBranches.d.ts.map +1 -0
  422. package/analyzer-template/packages/github/dist/database/src/lib/upsertAnalysisBranches.js.map +1 -0
  423. package/analyzer-template/packages/github/dist/database/src/lib/upsertBackgroundJob.d.ts.map +1 -0
  424. package/analyzer-template/packages/github/dist/database/src/lib/upsertBackgroundJob.js.map +1 -0
  425. package/analyzer-template/packages/github/dist/database/src/lib/upsertBranches.d.ts.map +1 -0
  426. package/analyzer-template/packages/github/dist/database/src/lib/upsertBranches.js.map +1 -0
  427. package/analyzer-template/packages/github/dist/database/src/lib/upsertCommitBranches.d.ts.map +1 -0
  428. package/analyzer-template/packages/github/dist/database/src/lib/upsertCommitBranches.js.map +1 -0
  429. package/analyzer-template/packages/github/dist/database/src/lib/upsertCommits.d.ts.map +1 -0
  430. package/analyzer-template/packages/github/dist/database/src/lib/upsertCommits.js.map +1 -0
  431. package/analyzer-template/packages/github/dist/database/src/lib/upsertEntities.d.ts.map +1 -0
  432. package/analyzer-template/packages/github/dist/database/src/lib/upsertEntities.js.map +1 -0
  433. package/analyzer-template/packages/github/dist/database/src/lib/upsertEntityBranches.d.ts.map +1 -0
  434. package/analyzer-template/packages/github/dist/database/src/lib/upsertEntityBranches.js.map +1 -0
  435. package/analyzer-template/packages/github/dist/database/src/lib/upsertFiles.d.ts.map +1 -0
  436. package/analyzer-template/packages/github/dist/database/src/lib/upsertFiles.js.map +1 -0
  437. package/analyzer-template/packages/github/dist/database/src/lib/upsertGithubUser.d.ts.map +1 -0
  438. package/analyzer-template/packages/github/dist/database/src/lib/upsertGithubUser.js.map +1 -0
  439. package/analyzer-template/packages/github/dist/database/src/lib/upsertProjects.d.ts.map +1 -0
  440. package/analyzer-template/packages/github/dist/database/src/lib/upsertProjects.js.map +1 -0
  441. package/analyzer-template/packages/github/dist/database/src/lib/upsertScenarios.d.ts.map +1 -0
  442. package/analyzer-template/packages/github/dist/database/src/lib/upsertScenarios.js.map +1 -0
  443. package/analyzer-template/packages/github/dist/generate/index.d.ts +3 -0
  444. package/analyzer-template/packages/github/dist/generate/index.d.ts.map +1 -1
  445. package/analyzer-template/packages/github/dist/generate/index.js +3 -0
  446. package/analyzer-template/packages/github/dist/generate/index.js.map +1 -1
  447. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts.map +1 -1
  448. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +43 -21
  449. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  450. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.d.ts.map +1 -1
  451. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js +18 -11
  452. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js.map +1 -1
  453. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts +9 -0
  454. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -0
  455. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  456. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  457. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts +20 -0
  458. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts.map +1 -0
  459. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  460. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  461. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.d.ts.map +1 -1
  462. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +8 -4
  463. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  464. package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.d.ts.map +1 -1
  465. package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.js +30 -2
  466. package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.js.map +1 -1
  467. package/analyzer-template/packages/github/dist/generate/src/lib/directExecutionScript.d.ts.map +1 -1
  468. package/analyzer-template/packages/github/dist/generate/src/lib/directExecutionScript.js +10 -1
  469. package/analyzer-template/packages/github/dist/generate/src/lib/directExecutionScript.js.map +1 -1
  470. package/analyzer-template/packages/github/dist/generate/src/lib/getComponentScenarioPath.d.ts.map +1 -1
  471. package/analyzer-template/packages/github/dist/generate/src/lib/getComponentScenarioPath.js +7 -3
  472. package/analyzer-template/packages/github/dist/generate/src/lib/getComponentScenarioPath.js.map +1 -1
  473. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.d.ts.map +1 -1
  474. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.js +5 -3
  475. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.js.map +1 -1
  476. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts +8 -0
  477. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts.map +1 -0
  478. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js +89 -0
  479. package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  480. package/analyzer-template/packages/github/dist/github/src/lib/getCommitsFromGithub.js +1 -1
  481. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.d.ts.map +1 -1
  482. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js +11 -1
  483. package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js.map +1 -1
  484. package/analyzer-template/packages/github/dist/github/src/lib/syncBranches.js +1 -1
  485. package/analyzer-template/packages/github/dist/github/src/lib/syncHeadBranches.js +1 -1
  486. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.d.ts.map +1 -1
  487. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js +4 -1
  488. package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js.map +1 -1
  489. package/analyzer-template/packages/github/dist/github/src/lib/syncPullRequest.js +1 -1
  490. package/analyzer-template/packages/github/dist/github/src/lib/updateCommitBranchesInDb.js +1 -1
  491. package/analyzer-template/packages/github/dist/github/src/lib/updateFilesInDb.js +1 -1
  492. package/analyzer-template/packages/github/dist/types/index.d.ts +2 -2
  493. package/analyzer-template/packages/github/dist/types/index.d.ts.map +1 -1
  494. package/analyzer-template/packages/github/dist/types/index.js.map +1 -1
  495. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts +87 -9
  496. package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts.map +1 -1
  497. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts +2 -0
  498. package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts.map +1 -1
  499. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts +4 -0
  500. package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts.map +1 -1
  501. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +7 -0
  502. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  503. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +11 -6
  504. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  505. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +199 -3
  506. package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  507. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  508. package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  509. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts +2 -0
  510. package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  511. package/analyzer-template/packages/github/dist/utils/index.d.ts +3 -0
  512. package/analyzer-template/packages/github/dist/utils/index.d.ts.map +1 -1
  513. package/analyzer-template/packages/github/dist/utils/index.js +4 -0
  514. package/analyzer-template/packages/github/dist/utils/index.js.map +1 -1
  515. package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.d.ts +25 -0
  516. package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.d.ts.map +1 -0
  517. package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.js +40 -0
  518. package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.js.map +1 -0
  519. package/analyzer-template/packages/github/dist/utils/src/lib/applyUniversalMocks.d.ts.map +1 -1
  520. package/analyzer-template/packages/github/dist/utils/src/lib/applyUniversalMocks.js +65 -7
  521. package/analyzer-template/packages/github/dist/utils/src/lib/applyUniversalMocks.js.map +1 -1
  522. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.d.ts +13 -1
  523. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.d.ts.map +1 -1
  524. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.js +14 -2
  525. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.js.map +1 -1
  526. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getNextRoutePath.d.ts.map +1 -1
  527. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getNextRoutePath.js +2 -1
  528. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getNextRoutePath.js.map +1 -1
  529. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.d.ts.map +1 -1
  530. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.js +2 -1
  531. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -1
  532. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.d.ts +12 -1
  533. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.d.ts.map +1 -1
  534. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js +14 -2
  535. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js.map +1 -1
  536. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.d.ts.map +1 -1
  537. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +1 -0
  538. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -1
  539. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.d.ts +21 -0
  540. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.d.ts.map +1 -0
  541. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.js +62 -0
  542. package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.js.map +1 -0
  543. package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.d.ts.map +1 -1
  544. package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.js +42 -0
  545. package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
  546. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts +9 -1
  547. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  548. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js +32 -3
  549. package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js.map +1 -1
  550. package/analyzer-template/packages/github/dist/utils/src/lib/startCommand/buildStartCommand.d.ts +18 -0
  551. package/analyzer-template/packages/github/dist/utils/src/lib/startCommand/buildStartCommand.d.ts.map +1 -0
  552. package/analyzer-template/packages/github/dist/utils/src/lib/startCommand/buildStartCommand.js +45 -0
  553. package/analyzer-template/packages/github/dist/utils/src/lib/startCommand/buildStartCommand.js.map +1 -0
  554. package/analyzer-template/packages/github/dist/utils/src/lib/startCommand/getWebappInfo.d.ts +26 -0
  555. package/analyzer-template/packages/github/dist/utils/src/lib/startCommand/getWebappInfo.d.ts.map +1 -0
  556. package/analyzer-template/packages/github/dist/utils/src/lib/startCommand/getWebappInfo.js +67 -0
  557. package/analyzer-template/packages/github/dist/utils/src/lib/startCommand/getWebappInfo.js.map +1 -0
  558. package/analyzer-template/packages/github/dist/utils/src/lib/startCommand/index.d.ts +3 -0
  559. package/analyzer-template/packages/github/dist/utils/src/lib/startCommand/index.d.ts.map +1 -0
  560. package/analyzer-template/packages/github/dist/utils/src/lib/startCommand/index.js +3 -0
  561. package/analyzer-template/packages/github/dist/utils/src/lib/startCommand/index.js.map +1 -0
  562. package/analyzer-template/packages/github/package.json +1 -1
  563. package/analyzer-template/packages/github/src/lib/getCommitsFromGithub.ts +1 -1
  564. package/analyzer-template/packages/github/src/lib/loadOrCreateCommit.ts +15 -1
  565. package/analyzer-template/packages/github/src/lib/syncBranches.ts +1 -1
  566. package/analyzer-template/packages/github/src/lib/syncHeadBranches.ts +1 -1
  567. package/analyzer-template/packages/github/src/lib/syncPrimaryBranch.ts +3 -1
  568. package/analyzer-template/packages/github/src/lib/syncPullRequest.ts +1 -1
  569. package/analyzer-template/packages/github/src/lib/updateCommitBranchesInDb.ts +1 -1
  570. package/analyzer-template/packages/github/src/lib/updateFilesInDb.ts +1 -1
  571. package/analyzer-template/packages/process/index.ts +2 -0
  572. package/analyzer-template/packages/process/package.json +12 -0
  573. package/analyzer-template/packages/process/tsconfig.json +8 -0
  574. package/analyzer-template/packages/types/index.ts +5 -0
  575. package/analyzer-template/packages/types/src/types/Analysis.ts +104 -9
  576. package/analyzer-template/packages/types/src/types/Commit.ts +2 -0
  577. package/analyzer-template/packages/types/src/types/Entity.ts +4 -0
  578. package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +7 -0
  579. package/analyzer-template/packages/types/src/types/Scenario.ts +11 -10
  580. package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +228 -3
  581. package/analyzer-template/packages/types/src/types/ScopeAnalysis.ts +6 -1
  582. package/analyzer-template/packages/types/src/types/StatementInfo.ts +2 -0
  583. package/analyzer-template/packages/ui-components/package.json +4 -4
  584. package/analyzer-template/packages/ui-components/src/components/ScenarioDetailInteractiveView.tsx +23 -7
  585. package/analyzer-template/packages/ui-components/src/scenario-editor/components/DataItemEditor.tsx +1 -1
  586. package/analyzer-template/packages/utils/dist/types/index.d.ts +2 -2
  587. package/analyzer-template/packages/utils/dist/types/index.d.ts.map +1 -1
  588. package/analyzer-template/packages/utils/dist/types/index.js.map +1 -1
  589. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts +87 -9
  590. package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts.map +1 -1
  591. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts +2 -0
  592. package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts.map +1 -1
  593. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts +4 -0
  594. package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts.map +1 -1
  595. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +7 -0
  596. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  597. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +11 -6
  598. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  599. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +199 -3
  600. package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
  601. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
  602. package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
  603. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts +2 -0
  604. package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts.map +1 -1
  605. package/analyzer-template/packages/utils/dist/utils/index.d.ts +3 -0
  606. package/analyzer-template/packages/utils/dist/utils/index.d.ts.map +1 -1
  607. package/analyzer-template/packages/utils/dist/utils/index.js +4 -0
  608. package/analyzer-template/packages/utils/dist/utils/index.js.map +1 -1
  609. package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.d.ts +25 -0
  610. package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.d.ts.map +1 -0
  611. package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.js +40 -0
  612. package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.js.map +1 -0
  613. package/analyzer-template/packages/utils/dist/utils/src/lib/applyUniversalMocks.d.ts.map +1 -1
  614. package/analyzer-template/packages/utils/dist/utils/src/lib/applyUniversalMocks.js +65 -7
  615. package/analyzer-template/packages/utils/dist/utils/src/lib/applyUniversalMocks.js.map +1 -1
  616. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.d.ts +13 -1
  617. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.d.ts.map +1 -1
  618. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.js +14 -2
  619. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.js.map +1 -1
  620. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getNextRoutePath.d.ts.map +1 -1
  621. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getNextRoutePath.js +2 -1
  622. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getNextRoutePath.js.map +1 -1
  623. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.d.ts.map +1 -1
  624. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.js +2 -1
  625. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -1
  626. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.d.ts +12 -1
  627. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.d.ts.map +1 -1
  628. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js +14 -2
  629. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js.map +1 -1
  630. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.d.ts.map +1 -1
  631. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +1 -0
  632. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -1
  633. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.d.ts +21 -0
  634. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.d.ts.map +1 -0
  635. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.js +62 -0
  636. package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.js.map +1 -0
  637. package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.d.ts.map +1 -1
  638. package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.js +42 -0
  639. package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
  640. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts +9 -1
  641. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
  642. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js +32 -3
  643. package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js.map +1 -1
  644. package/analyzer-template/packages/utils/dist/utils/src/lib/startCommand/buildStartCommand.d.ts +18 -0
  645. package/analyzer-template/packages/utils/dist/utils/src/lib/startCommand/buildStartCommand.d.ts.map +1 -0
  646. package/analyzer-template/packages/utils/dist/utils/src/lib/startCommand/buildStartCommand.js +45 -0
  647. package/analyzer-template/packages/utils/dist/utils/src/lib/startCommand/buildStartCommand.js.map +1 -0
  648. package/analyzer-template/packages/utils/dist/utils/src/lib/startCommand/getWebappInfo.d.ts +26 -0
  649. package/analyzer-template/packages/utils/dist/utils/src/lib/startCommand/getWebappInfo.d.ts.map +1 -0
  650. package/analyzer-template/packages/utils/dist/utils/src/lib/startCommand/getWebappInfo.js +67 -0
  651. package/analyzer-template/packages/utils/dist/utils/src/lib/startCommand/getWebappInfo.js.map +1 -0
  652. package/analyzer-template/packages/utils/dist/utils/src/lib/startCommand/index.d.ts +3 -0
  653. package/analyzer-template/packages/utils/dist/utils/src/lib/startCommand/index.d.ts.map +1 -0
  654. package/analyzer-template/packages/utils/dist/utils/src/lib/startCommand/index.js +3 -0
  655. package/analyzer-template/packages/utils/dist/utils/src/lib/startCommand/index.js.map +1 -0
  656. package/analyzer-template/packages/utils/index.ts +11 -0
  657. package/analyzer-template/packages/utils/src/lib/Semaphore.ts +42 -0
  658. package/analyzer-template/packages/utils/src/lib/applyUniversalMocks.ts +74 -9
  659. package/analyzer-template/packages/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.ts +20 -1
  660. package/analyzer-template/packages/utils/src/lib/frameworks/getNextRoutePath.ts +2 -1
  661. package/analyzer-template/packages/utils/src/lib/frameworks/getRemixRoutePath.ts +2 -1
  662. package/analyzer-template/packages/utils/src/lib/frameworks/nextRouteFileNameToRoute.ts +17 -1
  663. package/analyzer-template/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.ts +1 -0
  664. package/analyzer-template/packages/utils/src/lib/frameworks/sanitizeNextRouteSegments.ts +67 -0
  665. package/analyzer-template/packages/utils/src/lib/lightweightEntityExtractor.ts +43 -0
  666. package/analyzer-template/packages/utils/src/lib/safeFileName.ts +51 -3
  667. package/analyzer-template/packages/utils/src/lib/startCommand/buildStartCommand.ts +63 -0
  668. package/analyzer-template/packages/utils/src/lib/startCommand/getWebappInfo.ts +108 -0
  669. package/analyzer-template/packages/utils/src/lib/startCommand/index.ts +10 -0
  670. package/analyzer-template/playwright/capture.ts +103 -93
  671. package/analyzer-template/playwright/captureFromUrl.ts +48 -17
  672. package/analyzer-template/playwright/captureStatic.ts +2 -2
  673. package/analyzer-template/playwright/getCodeYamInfo.ts +12 -7
  674. package/analyzer-template/playwright/takeElementScreenshot.ts +48 -11
  675. package/analyzer-template/playwright/takeScreenshot.ts +38 -10
  676. package/analyzer-template/playwright/updateBackgroundJob.ts +1 -1
  677. package/analyzer-template/playwright/waitForServer.ts +21 -6
  678. package/analyzer-template/project/LazyFileStore.ts +1 -1
  679. package/analyzer-template/project/TESTING.md +83 -0
  680. package/analyzer-template/project/analyzeBaselineCommit.ts +10 -1
  681. package/analyzer-template/project/analyzeBranchCommit.ts +5 -1
  682. package/analyzer-template/project/analyzeFileEntities.ts +5 -1
  683. package/analyzer-template/project/analyzeRegularCommit.ts +10 -1
  684. package/analyzer-template/project/captureLibraryFunctionDirect.ts +30 -27
  685. package/analyzer-template/project/constructMockCode.ts +1710 -90
  686. package/analyzer-template/project/controller/startController.ts +16 -1
  687. package/analyzer-template/project/createEntitiesAndSortFiles.ts +98 -7
  688. package/analyzer-template/project/executeLibraryFunctionDirect.ts +7 -3
  689. package/analyzer-template/project/getFilesWithEntitiesFromRepo.ts +1 -1
  690. package/analyzer-template/project/getScenarioUrl.ts +73 -5
  691. package/analyzer-template/project/loadReadyToBeCaptured.ts +198 -38
  692. package/analyzer-template/project/mocks/analyzeFileMock.ts +8 -7
  693. package/analyzer-template/project/orchestrateCapture/AwsCaptureTaskRunner.ts +12 -4
  694. package/analyzer-template/project/orchestrateCapture/KyselyAnalysisLoader.ts +15 -15
  695. package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +97 -67
  696. package/analyzer-template/project/orchestrateCapture/SupabaseAnalysisLoader.ts +6 -6
  697. package/analyzer-template/project/orchestrateCapture/taskRunner.ts +4 -2
  698. package/analyzer-template/project/orchestrateCapture.ts +89 -13
  699. package/analyzer-template/project/prepareRepo.ts +1 -1
  700. package/analyzer-template/project/reconcileMockDataKeys.ts +258 -2
  701. package/analyzer-template/project/runAnalysis.ts +12 -1
  702. package/analyzer-template/project/runMultiScenarioServer.ts +13 -16
  703. package/analyzer-template/project/runScenarioServer.ts +1 -5
  704. package/analyzer-template/project/serverOnlyModules.ts +413 -0
  705. package/analyzer-template/project/start.ts +94 -33
  706. package/analyzer-template/project/startScenarioCapture.ts +103 -41
  707. package/analyzer-template/project/startServer.ts +50 -70
  708. package/analyzer-template/project/trackGeneratedFiles.ts +41 -0
  709. package/analyzer-template/project/updateCommitBackgroundJob.ts +1 -1
  710. package/analyzer-template/project/utils/errorHandling.ts +1 -1
  711. package/analyzer-template/project/writeMockDataTsx.ts +748 -69
  712. package/analyzer-template/project/writeScenario.ts +1 -1
  713. package/analyzer-template/project/writeScenarioClientWrapper.ts +21 -0
  714. package/analyzer-template/project/writeScenarioComponents.ts +2288 -179
  715. package/analyzer-template/project/writeScenarioFiles.ts +26 -0
  716. package/analyzer-template/project/writeSimpleRoot.ts +125 -2
  717. package/analyzer-template/project/writeUniversalMocks.ts +88 -9
  718. package/analyzer-template/scripts/comboWorkerLoop.cjs +99 -50
  719. package/analyzer-template/scripts/defaultCmd.sh +9 -0
  720. package/analyzer-template/scripts/postbuild.cjs +12 -1
  721. package/analyzer-template/tsconfig.json +2 -1
  722. package/background/src/lib/local/createLocalAnalyzer.js +1 -29
  723. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  724. package/background/src/lib/local/execAsync.js +1 -1
  725. package/background/src/lib/local/execAsync.js.map +1 -1
  726. package/background/src/lib/virtualized/common/execAsync.js +2 -2
  727. package/background/src/lib/virtualized/common/execAsync.js.map +1 -1
  728. package/background/src/lib/virtualized/project/LazyFileStore.js +1 -1
  729. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js +8 -2
  730. package/background/src/lib/virtualized/project/analyzeBaselineCommit.js.map +1 -1
  731. package/background/src/lib/virtualized/project/analyzeBranchCommit.js +3 -2
  732. package/background/src/lib/virtualized/project/analyzeBranchCommit.js.map +1 -1
  733. package/background/src/lib/virtualized/project/analyzeFileEntities.js +3 -2
  734. package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
  735. package/background/src/lib/virtualized/project/analyzeRegularCommit.js +8 -2
  736. package/background/src/lib/virtualized/project/analyzeRegularCommit.js.map +1 -1
  737. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js +4 -4
  738. package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js.map +1 -1
  739. package/background/src/lib/virtualized/project/constructMockCode.js +1493 -62
  740. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  741. package/background/src/lib/virtualized/project/controller/startController.js +11 -1
  742. package/background/src/lib/virtualized/project/controller/startController.js.map +1 -1
  743. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js +83 -4
  744. package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js.map +1 -1
  745. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js +6 -3
  746. package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js.map +1 -1
  747. package/background/src/lib/virtualized/project/getFilesWithEntitiesFromRepo.js +1 -1
  748. package/background/src/lib/virtualized/project/getScenarioUrl.js +38 -3
  749. package/background/src/lib/virtualized/project/getScenarioUrl.js.map +1 -1
  750. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js +108 -6
  751. package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js.map +1 -1
  752. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js +7 -7
  753. package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js.map +1 -1
  754. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js +2 -2
  755. package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js.map +1 -1
  756. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js +13 -7
  757. package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js.map +1 -1
  758. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +73 -49
  759. package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
  760. package/background/src/lib/virtualized/project/orchestrateCapture.js +73 -14
  761. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  762. package/background/src/lib/virtualized/project/prepareRepo.js +1 -1
  763. package/background/src/lib/virtualized/project/prepareRepo.js.map +1 -1
  764. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +216 -2
  765. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  766. package/background/src/lib/virtualized/project/runAnalysis.js +10 -1
  767. package/background/src/lib/virtualized/project/runAnalysis.js.map +1 -1
  768. package/background/src/lib/virtualized/project/runMultiScenarioServer.js +13 -14
  769. package/background/src/lib/virtualized/project/runMultiScenarioServer.js.map +1 -1
  770. package/background/src/lib/virtualized/project/serverOnlyModules.js +338 -0
  771. package/background/src/lib/virtualized/project/serverOnlyModules.js.map +1 -0
  772. package/background/src/lib/virtualized/project/start.js +81 -30
  773. package/background/src/lib/virtualized/project/start.js.map +1 -1
  774. package/background/src/lib/virtualized/project/startScenarioCapture.js +79 -31
  775. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  776. package/background/src/lib/virtualized/project/startServer.js +40 -68
  777. package/background/src/lib/virtualized/project/startServer.js.map +1 -1
  778. package/background/src/lib/virtualized/project/trackGeneratedFiles.js +30 -0
  779. package/background/src/lib/virtualized/project/trackGeneratedFiles.js.map +1 -0
  780. package/background/src/lib/virtualized/project/updateCommitBackgroundJob.js +1 -1
  781. package/background/src/lib/virtualized/project/utils/errorHandling.js +1 -1
  782. package/background/src/lib/virtualized/project/writeMockDataTsx.js +640 -60
  783. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  784. package/background/src/lib/virtualized/project/writeScenario.js +1 -1
  785. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js +15 -0
  786. package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js.map +1 -0
  787. package/background/src/lib/virtualized/project/writeScenarioComponents.js +1672 -117
  788. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  789. package/background/src/lib/virtualized/project/writeScenarioFiles.js +19 -0
  790. package/background/src/lib/virtualized/project/writeScenarioFiles.js.map +1 -1
  791. package/background/src/lib/virtualized/project/writeSimpleRoot.js +113 -2
  792. package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
  793. package/background/src/lib/virtualized/project/writeUniversalMocks.js +72 -8
  794. package/background/src/lib/virtualized/project/writeUniversalMocks.js.map +1 -1
  795. package/codeyam-cli/scripts/apply-setup.js +181 -1
  796. package/codeyam-cli/scripts/apply-setup.js.map +1 -1
  797. package/codeyam-cli/scripts/extract-setup.js +1 -1
  798. package/codeyam-cli/scripts/populateEntityTimestamps.js +1 -1
  799. package/codeyam-cli/scripts/populateEntityTimestamps.js.map +1 -1
  800. package/codeyam-cli/src/cli.js +17 -1
  801. package/codeyam-cli/src/cli.js.map +1 -1
  802. package/codeyam-cli/src/codeyam-cli.js +0 -0
  803. package/codeyam-cli/src/commands/analyze.js +1 -1
  804. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  805. package/codeyam-cli/src/commands/baseline.js +174 -0
  806. package/codeyam-cli/src/commands/baseline.js.map +1 -0
  807. package/codeyam-cli/src/commands/debug.js +251 -0
  808. package/codeyam-cli/src/commands/debug.js.map +1 -0
  809. package/codeyam-cli/src/commands/default.js +0 -15
  810. package/codeyam-cli/src/commands/default.js.map +1 -1
  811. package/codeyam-cli/src/commands/detect-universal-mocks.js +1 -1
  812. package/codeyam-cli/src/commands/entities.js +1 -1
  813. package/codeyam-cli/src/commands/generate-data-structure.js +17 -8
  814. package/codeyam-cli/src/commands/generate-data-structure.js.map +1 -1
  815. package/codeyam-cli/src/commands/init.js +2 -21
  816. package/codeyam-cli/src/commands/init.js.map +1 -1
  817. package/codeyam-cli/src/commands/memory.js +264 -0
  818. package/codeyam-cli/src/commands/memory.js.map +1 -0
  819. package/codeyam-cli/src/commands/recapture.js +226 -0
  820. package/codeyam-cli/src/commands/recapture.js.map +1 -0
  821. package/codeyam-cli/src/commands/report.js +150 -0
  822. package/codeyam-cli/src/commands/report.js.map +1 -0
  823. package/codeyam-cli/src/commands/setup-sandbox.js +165 -0
  824. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -0
  825. package/codeyam-cli/src/commands/start.js +8 -12
  826. package/codeyam-cli/src/commands/start.js.map +1 -1
  827. package/codeyam-cli/src/commands/status.js +23 -1
  828. package/codeyam-cli/src/commands/status.js.map +1 -1
  829. package/codeyam-cli/src/commands/suggest.js +1 -1
  830. package/codeyam-cli/src/commands/test-startup.js +15 -6
  831. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  832. package/codeyam-cli/src/commands/webapp-info.js +146 -0
  833. package/codeyam-cli/src/commands/webapp-info.js.map +1 -0
  834. package/codeyam-cli/src/commands/wipe.js +108 -0
  835. package/codeyam-cli/src/commands/wipe.js.map +1 -0
  836. package/codeyam-cli/src/utils/__tests__/cleanupAnalysisFiles.test.js +6 -6
  837. package/codeyam-cli/src/utils/__tests__/cleanupAnalysisFiles.test.js.map +1 -1
  838. package/codeyam-cli/src/utils/__tests__/entityVersioning.test.js +2 -2
  839. package/codeyam-cli/src/utils/__tests__/fileWatcher.batch.test.js +2 -2
  840. package/codeyam-cli/src/utils/__tests__/fileWatcher.multiversion.test.js +58 -30
  841. package/codeyam-cli/src/utils/__tests__/fileWatcher.multiversion.test.js.map +1 -1
  842. package/codeyam-cli/src/utils/__tests__/fileWatcher.optimization.test.js +2 -2
  843. package/codeyam-cli/src/utils/__tests__/fileWatcher.versioning.test.js +2 -2
  844. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js +81 -0
  845. package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js.map +1 -0
  846. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +39 -27
  847. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  848. package/codeyam-cli/src/utils/analysisRunner.js +32 -17
  849. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  850. package/codeyam-cli/src/utils/analyzer.js +24 -2
  851. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  852. package/codeyam-cli/src/utils/backgroundServer.js +18 -4
  853. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  854. package/codeyam-cli/src/utils/changeDetection.js +1 -1
  855. package/codeyam-cli/src/utils/cleanupAnalysisFiles.js +2 -2
  856. package/codeyam-cli/src/utils/cleanupAnalysisFiles.js.map +1 -1
  857. package/codeyam-cli/src/utils/database.js +92 -6
  858. package/codeyam-cli/src/utils/database.js.map +1 -1
  859. package/codeyam-cli/src/utils/entityCache.js +1 -1
  860. package/codeyam-cli/src/utils/entityMetadata.js +1 -1
  861. package/codeyam-cli/src/utils/entityVersioning.js +1 -1
  862. package/codeyam-cli/src/utils/fileWatcher.js +2 -2
  863. package/codeyam-cli/src/utils/generateReport.js +366 -0
  864. package/codeyam-cli/src/utils/generateReport.js.map +1 -0
  865. package/codeyam-cli/src/utils/git.js +79 -0
  866. package/codeyam-cli/src/utils/git.js.map +1 -0
  867. package/codeyam-cli/src/utils/install-skills.js +80 -19
  868. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  869. package/codeyam-cli/src/utils/labsAutoCheck.js +48 -0
  870. package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -0
  871. package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js +3 -3
  872. package/codeyam-cli/src/utils/queue/__tests__/job.pidTracking.test.js +3 -2
  873. package/codeyam-cli/src/utils/queue/__tests__/job.pidTracking.test.js.map +1 -1
  874. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +38 -0
  875. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -1
  876. package/codeyam-cli/src/utils/queue/heartbeat.js +1 -1
  877. package/codeyam-cli/src/utils/queue/heartbeat.js.map +1 -1
  878. package/codeyam-cli/src/utils/queue/job.js +264 -26
  879. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  880. package/codeyam-cli/src/utils/queue/manager.js +103 -7
  881. package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
  882. package/codeyam-cli/src/utils/queue/persistence.js.map +1 -1
  883. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js +82 -0
  884. package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js.map +1 -0
  885. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +230 -0
  886. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -0
  887. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +67 -0
  888. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -0
  889. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js +105 -0
  890. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js.map +1 -0
  891. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js +34 -0
  892. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js.map +1 -0
  893. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js +162 -0
  894. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js.map +1 -0
  895. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +75 -0
  896. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -0
  897. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +285 -0
  898. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -0
  899. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +115 -0
  900. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -0
  901. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js +127 -0
  902. package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js.map +1 -0
  903. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js +50 -0
  904. package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js.map +1 -0
  905. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +116 -0
  906. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -0
  907. package/codeyam-cli/src/utils/ruleReflection/index.js +5 -0
  908. package/codeyam-cli/src/utils/ruleReflection/index.js.map +1 -0
  909. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js +44 -0
  910. package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js.map +1 -0
  911. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js +85 -0
  912. package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js.map +1 -0
  913. package/codeyam-cli/src/utils/ruleReflection/types.js +5 -0
  914. package/codeyam-cli/src/utils/ruleReflection/types.js.map +1 -0
  915. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +293 -0
  916. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -0
  917. package/codeyam-cli/src/utils/rules/index.js +6 -0
  918. package/codeyam-cli/src/utils/rules/index.js.map +1 -0
  919. package/codeyam-cli/src/utils/rules/parser.js +78 -0
  920. package/codeyam-cli/src/utils/rules/parser.js.map +1 -0
  921. package/codeyam-cli/src/utils/rules/pathMatcher.js +18 -0
  922. package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -0
  923. package/codeyam-cli/src/utils/rules/ruleState.js +150 -0
  924. package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -0
  925. package/codeyam-cli/src/utils/rules/staleness.js +137 -0
  926. package/codeyam-cli/src/utils/rules/staleness.js.map +1 -0
  927. package/codeyam-cli/src/utils/sandbox.js +190 -0
  928. package/codeyam-cli/src/utils/sandbox.js.map +1 -0
  929. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  930. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +11 -5
  931. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  932. package/codeyam-cli/src/utils/syncUncommittedEntities.js +1 -1
  933. package/codeyam-cli/src/utils/syncUniversalMocks.js +1 -1
  934. package/codeyam-cli/src/utils/versionInfo.js +25 -19
  935. package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
  936. package/codeyam-cli/src/utils/webappDetection.js +2 -1
  937. package/codeyam-cli/src/utils/webappDetection.js.map +1 -1
  938. package/codeyam-cli/src/utils/wipe.js +128 -0
  939. package/codeyam-cli/src/utils/wipe.js.map +1 -0
  940. package/codeyam-cli/src/webserver/app/lib/database.js +155 -6
  941. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  942. package/codeyam-cli/src/webserver/app/lib/dbNotifier.js +3 -1
  943. package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
  944. package/codeyam-cli/src/webserver/backgroundServer.js +36 -10
  945. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  946. package/codeyam-cli/src/webserver/bootstrap.js +49 -0
  947. package/codeyam-cli/src/webserver/bootstrap.js.map +1 -0
  948. package/codeyam-cli/src/webserver/build/client/assets/CopyButton-CA3JxPb7.js +1 -0
  949. package/codeyam-cli/src/webserver/build/client/assets/EntityItem-B86KKU7e.js +11 -0
  950. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-B5ctlSYt.js +1 -0
  951. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-BqY8gDAW.js +41 -0
  952. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-ClaLpuOo.js +34 -0
  953. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-BDhPilK7.js +25 -0
  954. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-VeqEBv9v.js +3 -0
  955. package/codeyam-cli/src/webserver/build/client/assets/LoadingDots-Bs7Nn1Jr.js +6 -0
  956. package/codeyam-cli/src/webserver/build/client/assets/LogViewer-Bm3PmcCz.js +3 -0
  957. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-C6PKeMYR.js +11 -0
  958. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-Gq3Ocjo6.js +1 -0
  959. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-BNLaXBHR.js +10 -0
  960. package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-CiwXDxLh.js +1 -0
  961. package/codeyam-cli/src/webserver/build/client/assets/_index-B3TDXxnk.js +11 -0
  962. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-BtBFH820.js +27 -0
  963. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-DfKzxuoe.js +11 -0
  964. package/codeyam-cli/src/webserver/build/client/assets/api.agent-transcripts-l0sNRNKZ.js +1 -0
  965. package/codeyam-cli/src/webserver/build/client/assets/api.generate-report-l0sNRNKZ.js +1 -0
  966. package/codeyam-cli/src/webserver/build/client/assets/api.health-l0sNRNKZ.js +1 -0
  967. package/codeyam-cli/src/webserver/build/client/assets/api.labs-survey-l0sNRNKZ.js +1 -0
  968. package/codeyam-cli/src/webserver/build/client/assets/api.labs-unlock-l0sNRNKZ.js +1 -0
  969. package/codeyam-cli/src/webserver/build/client/assets/api.memory-profile-l0sNRNKZ.js +1 -0
  970. package/codeyam-cli/src/webserver/build/client/assets/api.restart-server-l0sNRNKZ.js +1 -0
  971. package/codeyam-cli/src/webserver/build/client/assets/api.save-fixture-l0sNRNKZ.js +1 -0
  972. package/codeyam-cli/src/webserver/build/client/assets/book-open-PttOB2SF.js +6 -0
  973. package/codeyam-cli/src/webserver/build/client/assets/chevron-down-TJp6ofnp.js +6 -0
  974. package/codeyam-cli/src/webserver/build/client/assets/chunk-JZWAC4HX-JE9ZIoBl.js +51 -0
  975. package/codeyam-cli/src/webserver/build/client/assets/circle-check-CXhHQYrI.js +6 -0
  976. package/codeyam-cli/src/webserver/build/client/assets/codeyam-name-logo-CvKwUgHo.svg +9 -0
  977. package/codeyam-cli/src/webserver/build/client/assets/copy-6y9ALfGT.js +11 -0
  978. package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-Ca9fAY46.js +21 -0
  979. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-CCKUIm0S.svg +4 -0
  980. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-DcX-ZS3p.js +1 -0
  981. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-C5lqplTC.js +1 -0
  982. package/codeyam-cli/src/webserver/build/client/assets/entity._sha._-n38keI1k.js +23 -0
  983. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-CBoafmVs.js +6 -0
  984. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-DGgZjdFg.js +6 -0
  985. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-38yPijoD.js +5 -0
  986. package/codeyam-cli/src/webserver/build/client/assets/entry.client-BSHEfydn.js +29 -0
  987. package/codeyam-cli/src/webserver/build/client/assets/executionFlowCoverage-BWhdfn70.js +1 -0
  988. package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-DCPhhSMo.js +1 -0
  989. package/codeyam-cli/src/webserver/build/client/assets/files-0N0YJQv7.js +1 -0
  990. package/codeyam-cli/src/webserver/build/client/assets/git-DXnyr8uP.js +15 -0
  991. package/codeyam-cli/src/webserver/build/client/assets/globals-DoeDFXZN.css +1 -0
  992. package/codeyam-cli/src/webserver/build/client/assets/html2canvas-pro.esm-fmIEn3Bc.js +9 -0
  993. package/codeyam-cli/src/webserver/build/client/assets/index-CcsFv748.js +3 -0
  994. package/codeyam-cli/src/webserver/build/client/assets/index-ChN9-fAY.js +9 -0
  995. package/codeyam-cli/src/webserver/build/client/assets/labs-CmBYA0PH.js +1 -0
  996. package/codeyam-cli/src/webserver/build/client/assets/loader-circle-CTqLEAGU.js +6 -0
  997. package/codeyam-cli/src/webserver/build/client/assets/manifest-76786b8e.js +1 -0
  998. package/codeyam-cli/src/webserver/build/client/assets/memory-CrNQfdMO.js +76 -0
  999. package/codeyam-cli/src/webserver/build/client/assets/pause-D6vreykR.js +11 -0
  1000. package/codeyam-cli/src/webserver/build/client/assets/preload-helper-ckwbz45p.js +1 -0
  1001. package/codeyam-cli/src/webserver/build/client/assets/root-QAY34PIo.js +62 -0
  1002. package/codeyam-cli/src/webserver/build/client/assets/scenarioStatus-B_8jpV3e.js +1 -0
  1003. package/codeyam-cli/src/webserver/build/client/assets/search-B8VUL8nl.js +6 -0
  1004. package/codeyam-cli/src/webserver/build/client/assets/settings-eBI36Yv5.js +1 -0
  1005. package/codeyam-cli/src/webserver/build/client/assets/simulations-CPoAg7Zo.js +1 -0
  1006. package/codeyam-cli/src/webserver/build/client/assets/terminal-BrCP7uQo.js +11 -0
  1007. package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-BZz2NjYa.js +6 -0
  1008. package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-DNwUduNu.js +1 -0
  1009. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-COky1GVF.js +2 -0
  1010. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-CpZgwliL.js +1 -0
  1011. package/codeyam-cli/src/webserver/build/client/assets/useToast-Bv9JFvUO.js +1 -0
  1012. package/codeyam-cli/src/webserver/build/server/assets/index-DV1ykEI6.js +1 -0
  1013. package/codeyam-cli/src/webserver/build/server/assets/server-build-BrcVrUEv.js +260 -0
  1014. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  1015. package/codeyam-cli/src/webserver/build-info.json +5 -5
  1016. package/codeyam-cli/src/webserver/devServer.js +1 -3
  1017. package/codeyam-cli/src/webserver/devServer.js.map +1 -1
  1018. package/codeyam-cli/src/webserver/server.js +35 -25
  1019. package/codeyam-cli/src/webserver/server.js.map +1 -1
  1020. package/codeyam-cli/templates/codeyam-memory-hook.sh +199 -0
  1021. package/codeyam-cli/templates/codeyam:debug.md +601 -0
  1022. package/codeyam-cli/templates/codeyam:diagnose.md +805 -0
  1023. package/codeyam-cli/templates/codeyam:memory.md +404 -0
  1024. package/codeyam-cli/templates/codeyam:new-rule.md +13 -0
  1025. package/codeyam-cli/templates/codeyam:setup.md +588 -0
  1026. package/codeyam-cli/templates/codeyam:sim.md +222 -0
  1027. package/codeyam-cli/templates/codeyam:test.md +178 -0
  1028. package/codeyam-cli/templates/codeyam:verify.md +179 -0
  1029. package/codeyam-cli/templates/rule-notification-hook.py +56 -0
  1030. package/codeyam-cli/templates/rule-reflection-hook.py +590 -0
  1031. package/codeyam-cli/templates/rules-instructions.md +123 -0
  1032. package/package.json +25 -24
  1033. package/packages/ai/index.js +9 -8
  1034. package/packages/ai/index.js.map +1 -1
  1035. package/packages/ai/src/lib/analyzeScope.js +197 -6
  1036. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  1037. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js +150 -0
  1038. package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js.map +1 -0
  1039. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +185 -36
  1040. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  1041. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js +435 -0
  1042. package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js.map +1 -0
  1043. package/packages/ai/src/lib/astScopes/methodSemantics.js +308 -20
  1044. package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
  1045. package/packages/ai/src/lib/astScopes/paths.js +39 -4
  1046. package/packages/ai/src/lib/astScopes/paths.js.map +1 -1
  1047. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js +10 -14
  1048. package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js.map +1 -1
  1049. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js +8 -0
  1050. package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js.map +1 -1
  1051. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js +31 -1
  1052. package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js.map +1 -1
  1053. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js +138 -1
  1054. package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js.map +1 -1
  1055. package/packages/ai/src/lib/astScopes/processExpression.js +1323 -101
  1056. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  1057. package/packages/ai/src/lib/checkAllAttributes.js +23 -10
  1058. package/packages/ai/src/lib/checkAllAttributes.js.map +1 -1
  1059. package/packages/ai/src/lib/completionCall.js +178 -31
  1060. package/packages/ai/src/lib/completionCall.js.map +1 -1
  1061. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +3252 -515
  1062. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  1063. package/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.js +164 -2
  1064. package/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.js.map +1 -1
  1065. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +19 -4
  1066. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
  1067. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +661 -0
  1068. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -0
  1069. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +184 -58
  1070. package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
  1071. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +122 -0
  1072. package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js.map +1 -0
  1073. package/packages/ai/src/lib/dataStructure/helpers/DebugTracer.js +176 -0
  1074. package/packages/ai/src/lib/dataStructure/helpers/DebugTracer.js.map +1 -0
  1075. package/packages/ai/src/lib/dataStructure/helpers/PathManager.js +178 -0
  1076. package/packages/ai/src/lib/dataStructure/helpers/PathManager.js.map +1 -0
  1077. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js +140 -0
  1078. package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js.map +1 -0
  1079. package/packages/ai/src/lib/dataStructure/helpers/VisitedTracker.js +199 -0
  1080. package/packages/ai/src/lib/dataStructure/helpers/VisitedTracker.js.map +1 -0
  1081. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +66 -2
  1082. package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
  1083. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +198 -15
  1084. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
  1085. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js +63 -0
  1086. package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js.map +1 -0
  1087. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +96 -8
  1088. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  1089. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js +86 -0
  1090. package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js.map +1 -0
  1091. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js +173 -0
  1092. package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js.map +1 -0
  1093. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js +37 -20
  1094. package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js.map +1 -1
  1095. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +385 -79
  1096. package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
  1097. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js +107 -0
  1098. package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js.map +1 -0
  1099. package/packages/ai/src/lib/dataStructure/helpers/getFunctionCallRoot.js +28 -3
  1100. package/packages/ai/src/lib/dataStructure/helpers/getFunctionCallRoot.js.map +1 -1
  1101. package/packages/ai/src/lib/dataStructure/helpers/selectBestValue.js +62 -0
  1102. package/packages/ai/src/lib/dataStructure/helpers/selectBestValue.js.map +1 -0
  1103. package/packages/ai/src/lib/dataStructure/helpers/uniqueIdUtils.js +90 -0
  1104. package/packages/ai/src/lib/dataStructure/helpers/uniqueIdUtils.js.map +1 -0
  1105. package/packages/ai/src/lib/dataStructureChunking.js +111 -0
  1106. package/packages/ai/src/lib/dataStructureChunking.js.map +1 -0
  1107. package/packages/ai/src/lib/deepEqual.js +32 -0
  1108. package/packages/ai/src/lib/deepEqual.js.map +1 -0
  1109. package/packages/ai/src/lib/e2eDataTracking.js +241 -0
  1110. package/packages/ai/src/lib/e2eDataTracking.js.map +1 -0
  1111. package/packages/ai/src/lib/extractCriticalDataKeys.js +96 -0
  1112. package/packages/ai/src/lib/extractCriticalDataKeys.js.map +1 -0
  1113. package/packages/ai/src/lib/generateChangesEntityDocumentation.js +19 -1
  1114. package/packages/ai/src/lib/generateChangesEntityDocumentation.js.map +1 -1
  1115. package/packages/ai/src/lib/generateChangesEntityScenarioData.js +111 -152
  1116. package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
  1117. package/packages/ai/src/lib/generateChangesEntityScenarios.js +131 -322
  1118. package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
  1119. package/packages/ai/src/lib/generateEntityDataStructure.js +56 -6
  1120. package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
  1121. package/packages/ai/src/lib/generateEntityDocumentation.js +15 -1
  1122. package/packages/ai/src/lib/generateEntityDocumentation.js.map +1 -1
  1123. package/packages/ai/src/lib/generateEntityScenarioData.js +1119 -181
  1124. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  1125. package/packages/ai/src/lib/generateEntityScenarios.js +209 -269
  1126. package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
  1127. package/packages/ai/src/lib/generateExecutionFlows.js +400 -0
  1128. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -0
  1129. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js +380 -0
  1130. package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js.map +1 -0
  1131. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +1646 -0
  1132. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -0
  1133. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js +194 -0
  1134. package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js.map +1 -0
  1135. package/packages/ai/src/lib/generateStatementAnalysis.js +47 -72
  1136. package/packages/ai/src/lib/generateStatementAnalysis.js.map +1 -1
  1137. package/packages/ai/src/lib/getConditionalUsagesFromCode.js +97 -22
  1138. package/packages/ai/src/lib/getConditionalUsagesFromCode.js.map +1 -1
  1139. package/packages/ai/src/lib/getLLMCallStats.js +0 -14
  1140. package/packages/ai/src/lib/getLLMCallStats.js.map +1 -1
  1141. package/packages/ai/src/lib/guessScenarioDataFromDescription.js +2 -1
  1142. package/packages/ai/src/lib/guessScenarioDataFromDescription.js.map +1 -1
  1143. package/packages/ai/src/lib/isolateScopes.js +270 -7
  1144. package/packages/ai/src/lib/isolateScopes.js.map +1 -1
  1145. package/packages/ai/src/lib/mergeStatements.js +104 -6
  1146. package/packages/ai/src/lib/mergeStatements.js.map +1 -1
  1147. package/packages/ai/src/lib/modelInfo.js +15 -0
  1148. package/packages/ai/src/lib/modelInfo.js.map +1 -1
  1149. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +118 -23
  1150. package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
  1151. package/packages/ai/src/lib/promptGenerators/generateChangesEntityDocumentationGenerator.js +8 -33
  1152. package/packages/ai/src/lib/promptGenerators/generateChangesEntityDocumentationGenerator.js.map +1 -1
  1153. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js +36 -42
  1154. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js.map +1 -1
  1155. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +49 -99
  1156. package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
  1157. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js +54 -0
  1158. package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js.map +1 -0
  1159. package/packages/ai/src/lib/promptGenerators/generateEntityDocumentationGenerator.js +8 -27
  1160. package/packages/ai/src/lib/promptGenerators/generateEntityDocumentationGenerator.js.map +1 -1
  1161. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +88 -29
  1162. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  1163. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +12 -31
  1164. package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
  1165. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js +45 -0
  1166. package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js.map +1 -0
  1167. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js +16 -3
  1168. package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js.map +1 -1
  1169. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js +335 -0
  1170. package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js.map +1 -0
  1171. package/packages/ai/src/lib/resolvePathToControllable.js +677 -0
  1172. package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -0
  1173. package/packages/ai/src/lib/splitOutsideParentheses.js +3 -1
  1174. package/packages/ai/src/lib/splitOutsideParentheses.js.map +1 -1
  1175. package/packages/ai/src/lib/types/index.js +2 -0
  1176. package/packages/ai/src/lib/types/index.js.map +1 -1
  1177. package/packages/ai/src/lib/worker/SerializableDataStructure.js +36 -0
  1178. package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
  1179. package/packages/ai/src/lib/worker/analyzeScopeWorker.js +98 -1
  1180. package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -1
  1181. package/packages/analyze/index.js +1 -0
  1182. package/packages/analyze/index.js.map +1 -1
  1183. package/packages/analyze/src/lib/FileAnalyzer.js +196 -41
  1184. package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
  1185. package/packages/analyze/src/lib/ProjectAnalyzer.js +96 -26
  1186. package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
  1187. package/packages/analyze/src/lib/analysisContext.js +30 -5
  1188. package/packages/analyze/src/lib/analysisContext.js.map +1 -1
  1189. package/packages/analyze/src/lib/asts/nodes/getNodeType.js +1 -1
  1190. package/packages/analyze/src/lib/asts/nodes/getNodeType.js.map +1 -1
  1191. package/packages/analyze/src/lib/asts/nodes/index.js +3 -1
  1192. package/packages/analyze/src/lib/asts/nodes/index.js.map +1 -1
  1193. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js +52 -0
  1194. package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js.map +1 -0
  1195. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js +14 -0
  1196. package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js.map +1 -1
  1197. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js +14 -0
  1198. package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js.map +1 -1
  1199. package/packages/analyze/src/lib/asts/sourceFiles/getAllExportedNodes.js +3 -2
  1200. package/packages/analyze/src/lib/asts/sourceFiles/getAllExportedNodes.js.map +1 -1
  1201. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js +41 -9
  1202. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js.map +1 -1
  1203. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js +6 -0
  1204. package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js.map +1 -1
  1205. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js +39 -1
  1206. package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js.map +1 -1
  1207. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js +2 -1
  1208. package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js.map +1 -1
  1209. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +584 -105
  1210. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  1211. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +48 -3
  1212. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  1213. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +5 -0
  1214. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js.map +1 -1
  1215. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +3 -1
  1216. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  1217. package/packages/analyze/src/lib/files/analyze/findPreviousAnalysis.js +1 -1
  1218. package/packages/analyze/src/lib/files/analyze/findValidExistingAnalysis.js +1 -1
  1219. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +15 -3
  1220. package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
  1221. package/packages/analyze/src/lib/files/analyze/setActiveAnalysisBranches.js +1 -1
  1222. package/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.js +5 -8
  1223. package/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.js.map +1 -1
  1224. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +31 -10
  1225. package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
  1226. package/packages/analyze/src/lib/files/analyzeChange.js +42 -20
  1227. package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
  1228. package/packages/analyze/src/lib/files/analyzeEntity.js +20 -13
  1229. package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
  1230. package/packages/analyze/src/lib/files/analyzeInitial.js +30 -19
  1231. package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
  1232. package/packages/analyze/src/lib/files/analyzeNextRoute.js +1 -1
  1233. package/packages/analyze/src/lib/files/analyzeRemixRoute.js +22 -26
  1234. package/packages/analyze/src/lib/files/analyzeRemixRoute.js.map +1 -1
  1235. package/packages/analyze/src/lib/files/enums/steps.js +1 -1
  1236. package/packages/analyze/src/lib/files/enums/steps.js.map +1 -1
  1237. package/packages/analyze/src/lib/files/getImportedExports.js +103 -8
  1238. package/packages/analyze/src/lib/files/getImportedExports.js.map +1 -1
  1239. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +880 -0
  1240. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -0
  1241. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +255 -0
  1242. package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -0
  1243. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js +85 -0
  1244. package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js.map +1 -0
  1245. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +616 -71
  1246. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  1247. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js +1 -1
  1248. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js.map +1 -1
  1249. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js +29 -34
  1250. package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js.map +1 -1
  1251. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +454 -30
  1252. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  1253. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +144 -0
  1254. package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -0
  1255. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +61 -67
  1256. package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
  1257. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +8 -4
  1258. package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
  1259. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +873 -98
  1260. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  1261. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js +49 -6
  1262. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js.map +1 -1
  1263. package/packages/analyze/src/lib/files/setImportedExports.js +3 -2
  1264. package/packages/analyze/src/lib/files/setImportedExports.js.map +1 -1
  1265. package/packages/analyze/src/lib/index.js +1 -0
  1266. package/packages/analyze/src/lib/index.js.map +1 -1
  1267. package/packages/analyze/src/lib/utils/getFileByPath.js +12 -0
  1268. package/packages/analyze/src/lib/utils/getFileByPath.js.map +1 -0
  1269. package/packages/aws/src/lib/ecs/ecsDefineContainer.js +2 -2
  1270. package/packages/aws/src/lib/ecs/ecsDefineContainer.js.map +1 -1
  1271. package/packages/aws/src/lib/ecs/ecsTaskFactory.js +17 -61
  1272. package/packages/aws/src/lib/ecs/ecsTaskFactory.js.map +1 -1
  1273. package/packages/database/index.js.map +1 -0
  1274. package/packages/database/src/lib/analysisBranchToDb.js.map +1 -0
  1275. package/packages/database/src/lib/analysisToDb.js.map +1 -0
  1276. package/packages/database/src/lib/backgroundJobToDb.js.map +1 -0
  1277. package/packages/database/src/lib/branchToDb.js.map +1 -0
  1278. package/packages/database/src/lib/commitBranchToDb.js.map +1 -0
  1279. package/packages/database/src/lib/commitToDb.js.map +1 -0
  1280. package/packages/database/src/lib/createOrUpdateBranchCommitStats.js.map +1 -0
  1281. package/packages/database/src/lib/createProject.js.map +1 -0
  1282. package/packages/database/src/lib/createRetryFetch.js.map +1 -0
  1283. package/packages/database/src/lib/dbToAnalysis.js.map +1 -0
  1284. package/packages/database/src/lib/dbToAnalysisBranch.js.map +1 -0
  1285. package/packages/database/src/lib/dbToBackgroundJob.js.map +1 -0
  1286. package/packages/database/src/lib/dbToBranch.js.map +1 -0
  1287. package/packages/database/src/lib/dbToCommit.js.map +1 -0
  1288. package/packages/database/src/lib/dbToCommitBranch.js.map +1 -0
  1289. package/packages/database/src/lib/dbToEntity.js.map +1 -0
  1290. package/packages/database/src/lib/dbToEntityBranch.js.map +1 -0
  1291. package/packages/database/src/lib/dbToFile.js.map +1 -0
  1292. package/packages/database/src/lib/dbToProject.js.map +1 -0
  1293. package/packages/database/src/lib/dbToScenario.js.map +1 -0
  1294. package/packages/database/src/lib/dbToScenarioComment.js.map +1 -0
  1295. package/packages/database/src/lib/dbToUserScenario.js.map +1 -0
  1296. package/packages/database/src/lib/deleteBranch.js.map +1 -0
  1297. package/packages/database/src/lib/deleteEntities.js.map +1 -0
  1298. package/packages/database/src/lib/deleteFile.js.map +1 -0
  1299. package/packages/database/src/lib/deleteScenarios.js.map +1 -0
  1300. package/packages/database/src/lib/entityToDb.js.map +1 -0
  1301. package/packages/database/src/lib/fileToDb.js.map +1 -0
  1302. package/packages/database/src/lib/generateSha.js.map +1 -0
  1303. package/packages/database/src/lib/jsonUpdateUtils.js.map +1 -0
  1304. package/packages/database/src/lib/kysely/aggregationHelpers.js.map +1 -0
  1305. package/packages/database/src/lib/kysely/db.js +373 -0
  1306. package/packages/database/src/lib/kysely/db.js.map +1 -0
  1307. package/packages/database/src/lib/kysely/schemaHelpers.js.map +1 -0
  1308. package/packages/database/src/lib/kysely/sqliteBooleanPlugin.js.map +1 -0
  1309. package/packages/database/src/lib/kysely/tableRelations.js.map +1 -0
  1310. package/packages/database/src/lib/kysely/tableRelationsTypes.js.map +1 -0
  1311. package/packages/database/src/lib/kysely/tables/analysesTable.js.map +1 -0
  1312. package/packages/database/src/lib/kysely/tables/analysisBranchesTable.js.map +1 -0
  1313. package/packages/database/src/lib/kysely/tables/backgroundJobsTable.js.map +1 -0
  1314. package/packages/database/src/lib/kysely/tables/branchesTable.js.map +1 -0
  1315. package/packages/database/src/lib/kysely/tables/commitBranchesTable.js.map +1 -0
  1316. package/packages/database/src/lib/kysely/tables/commitsTable.js +47 -0
  1317. package/packages/database/src/lib/kysely/tables/commitsTable.js.map +1 -0
  1318. package/packages/database/src/lib/kysely/tables/debugReportsTable.js +33 -0
  1319. package/packages/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -0
  1320. package/packages/database/src/lib/kysely/tables/entitiesTable.js.map +1 -0
  1321. package/packages/database/src/lib/kysely/tables/entityBranchesTable.js.map +1 -0
  1322. package/packages/database/src/lib/kysely/tables/entityStatementsTable.js.map +1 -0
  1323. package/packages/database/src/lib/kysely/tables/filesTable.js.map +1 -0
  1324. package/packages/database/src/lib/kysely/tables/githubPayloadsTable.js.map +1 -0
  1325. package/packages/database/src/lib/kysely/tables/githubUsersTable.js.map +1 -0
  1326. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
  1327. package/packages/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
  1328. package/packages/database/src/lib/kysely/tables/projectsTable.js.map +1 -0
  1329. package/packages/database/src/lib/kysely/tables/scenarioCommentsTable.js.map +1 -0
  1330. package/packages/database/src/lib/kysely/tables/scenariosTable.js.map +1 -0
  1331. package/packages/database/src/lib/kysely/tables/statementsTable.js.map +1 -0
  1332. package/packages/database/src/lib/kysely/tables/teamsTable.js.map +1 -0
  1333. package/packages/database/src/lib/kysely/tables/userScenariosTable.js.map +1 -0
  1334. package/packages/database/src/lib/kysely/tables/userTeamsTable.js.map +1 -0
  1335. package/packages/database/src/lib/kysely/tables/usersTable.js.map +1 -0
  1336. package/packages/database/src/lib/kysely/upsertHelpers.js.map +1 -0
  1337. package/packages/database/src/lib/loadAnalyses.js +174 -0
  1338. package/packages/database/src/lib/loadAnalyses.js.map +1 -0
  1339. package/packages/database/src/lib/loadAnalysis.js +138 -0
  1340. package/packages/database/src/lib/loadAnalysis.js.map +1 -0
  1341. package/packages/database/src/lib/loadAnalysisBranches.js.map +1 -0
  1342. package/packages/database/src/lib/loadBackgroundJob.js.map +1 -0
  1343. package/packages/database/src/lib/loadBranch.js +100 -0
  1344. package/packages/database/src/lib/loadBranch.js.map +1 -0
  1345. package/packages/database/src/lib/loadBranches.js.map +1 -0
  1346. package/packages/database/src/lib/loadCommit.js +118 -0
  1347. package/packages/database/src/lib/loadCommit.js.map +1 -0
  1348. package/packages/database/src/lib/loadCommitBranches.js.map +1 -0
  1349. package/packages/database/src/lib/loadCommitMetadata.js.map +1 -0
  1350. package/packages/database/src/lib/loadCommits.js +209 -0
  1351. package/packages/database/src/lib/loadCommits.js.map +1 -0
  1352. package/packages/database/src/lib/loadEntities.js +82 -0
  1353. package/packages/database/src/lib/loadEntities.js.map +1 -0
  1354. package/packages/database/src/lib/loadEntity.js.map +1 -0
  1355. package/packages/database/src/lib/loadEntityBranches.js +123 -0
  1356. package/packages/database/src/lib/loadEntityBranches.js.map +1 -0
  1357. package/packages/database/src/lib/loadFile.js.map +1 -0
  1358. package/packages/database/src/lib/loadFiles.js.map +1 -0
  1359. package/packages/database/src/lib/loadMostRecentPreviousAnalysis.js.map +1 -0
  1360. package/packages/database/src/lib/loadProject.js.map +1 -0
  1361. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +68 -0
  1362. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -0
  1363. package/packages/database/src/lib/loadScenario.js.map +1 -0
  1364. package/packages/database/src/lib/loadStatement.js.map +1 -0
  1365. package/packages/database/src/lib/nullsToUndefines.js.map +1 -0
  1366. package/packages/database/src/lib/projectToDb.js.map +1 -0
  1367. package/packages/database/src/lib/saveBackgroundEvent.js.map +1 -0
  1368. package/packages/database/src/lib/saveEntityStatements.js.map +1 -0
  1369. package/packages/database/src/lib/saveFiles.js.map +1 -0
  1370. package/packages/database/src/lib/saveStatement.js.map +1 -0
  1371. package/packages/database/src/lib/scenarioToDb.js +18 -0
  1372. package/packages/database/src/lib/scenarioToDb.js.map +1 -0
  1373. package/packages/database/src/lib/supabase.js.map +1 -0
  1374. package/packages/database/src/lib/updateBackgroundJobProgress.js.map +1 -0
  1375. package/packages/database/src/lib/updateCommitMetadata.js +101 -0
  1376. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -0
  1377. package/packages/database/src/lib/updateEntityBranch.js.map +1 -0
  1378. package/packages/database/src/lib/updateFreshAnalysisMetadata.js.map +1 -0
  1379. package/packages/database/src/lib/updateFreshAnalysisStatus.js.map +1 -0
  1380. package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -0
  1381. package/packages/database/src/lib/updateProjectMetadata.js.map +1 -0
  1382. package/packages/database/src/lib/upsertAnalyses.js.map +1 -0
  1383. package/packages/database/src/lib/upsertAnalysesWithScenarios.js.map +1 -0
  1384. package/packages/database/src/lib/upsertAnalysisBranches.js.map +1 -0
  1385. package/packages/database/src/lib/upsertBackgroundJob.js.map +1 -0
  1386. package/packages/database/src/lib/upsertBranches.js.map +1 -0
  1387. package/packages/database/src/lib/upsertCommitBranches.js.map +1 -0
  1388. package/packages/database/src/lib/upsertCommits.js.map +1 -0
  1389. package/packages/database/src/lib/upsertEntities.js.map +1 -0
  1390. package/packages/database/src/lib/upsertEntityBranches.js.map +1 -0
  1391. package/packages/database/src/lib/upsertFiles.js.map +1 -0
  1392. package/packages/database/src/lib/upsertGithubUser.js.map +1 -0
  1393. package/packages/database/src/lib/upsertProjects.js.map +1 -0
  1394. package/packages/database/src/lib/upsertScenarios.js.map +1 -0
  1395. package/packages/generate/index.js +3 -0
  1396. package/packages/generate/index.js.map +1 -1
  1397. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +43 -21
  1398. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
  1399. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js +18 -11
  1400. package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js.map +1 -1
  1401. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
  1402. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
  1403. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
  1404. package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
  1405. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +8 -4
  1406. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  1407. package/packages/generate/src/lib/deepMerge.js +30 -2
  1408. package/packages/generate/src/lib/deepMerge.js.map +1 -1
  1409. package/packages/generate/src/lib/directExecutionScript.js +10 -1
  1410. package/packages/generate/src/lib/directExecutionScript.js.map +1 -1
  1411. package/packages/generate/src/lib/getComponentScenarioPath.js +7 -3
  1412. package/packages/generate/src/lib/getComponentScenarioPath.js.map +1 -1
  1413. package/packages/generate/src/lib/scenarioComponent.js +5 -3
  1414. package/packages/generate/src/lib/scenarioComponent.js.map +1 -1
  1415. package/packages/generate/src/lib/scenarioComponentForServer.js +89 -0
  1416. package/packages/generate/src/lib/scenarioComponentForServer.js.map +1 -0
  1417. package/packages/github/src/lib/getCommitsFromGithub.js +1 -1
  1418. package/packages/github/src/lib/loadOrCreateCommit.js +11 -1
  1419. package/packages/github/src/lib/loadOrCreateCommit.js.map +1 -1
  1420. package/packages/github/src/lib/syncHeadBranches.js +1 -1
  1421. package/packages/github/src/lib/syncPrimaryBranch.js +4 -1
  1422. package/packages/github/src/lib/syncPrimaryBranch.js.map +1 -1
  1423. package/packages/github/src/lib/syncPullRequest.js +1 -1
  1424. package/packages/github/src/lib/updateCommitBranchesInDb.js +1 -1
  1425. package/packages/github/src/lib/updateFilesInDb.js +1 -1
  1426. package/packages/process/index.js +3 -0
  1427. package/packages/process/index.js.map +1 -0
  1428. package/packages/process/src/GlobalProcessManager.js.map +1 -0
  1429. package/packages/process/src/ProcessManager.js +244 -0
  1430. package/packages/process/src/ProcessManager.js.map +1 -0
  1431. package/packages/process/src/index.js.map +1 -0
  1432. package/packages/process/src/managedExecAsync.js.map +1 -0
  1433. package/packages/types/index.js.map +1 -1
  1434. package/packages/utils/index.js +4 -0
  1435. package/packages/utils/index.js.map +1 -1
  1436. package/packages/utils/src/lib/Semaphore.js +40 -0
  1437. package/packages/utils/src/lib/Semaphore.js.map +1 -0
  1438. package/packages/utils/src/lib/applyUniversalMocks.js +65 -7
  1439. package/packages/utils/src/lib/applyUniversalMocks.js.map +1 -1
  1440. package/packages/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.js +14 -2
  1441. package/packages/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.js.map +1 -1
  1442. package/packages/utils/src/lib/frameworks/getNextRoutePath.js +2 -1
  1443. package/packages/utils/src/lib/frameworks/getNextRoutePath.js.map +1 -1
  1444. package/packages/utils/src/lib/frameworks/getRemixRoutePath.js +2 -1
  1445. package/packages/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -1
  1446. package/packages/utils/src/lib/frameworks/nextRouteFileNameToRoute.js +14 -2
  1447. package/packages/utils/src/lib/frameworks/nextRouteFileNameToRoute.js.map +1 -1
  1448. package/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +1 -0
  1449. package/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -1
  1450. package/packages/utils/src/lib/frameworks/sanitizeNextRouteSegments.js +62 -0
  1451. package/packages/utils/src/lib/frameworks/sanitizeNextRouteSegments.js.map +1 -0
  1452. package/packages/utils/src/lib/lightweightEntityExtractor.js +42 -0
  1453. package/packages/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
  1454. package/packages/utils/src/lib/safeFileName.js +32 -3
  1455. package/packages/utils/src/lib/safeFileName.js.map +1 -1
  1456. package/packages/utils/src/lib/startCommand/buildStartCommand.js +45 -0
  1457. package/packages/utils/src/lib/startCommand/buildStartCommand.js.map +1 -0
  1458. package/packages/utils/src/lib/startCommand/getWebappInfo.js +67 -0
  1459. package/packages/utils/src/lib/startCommand/getWebappInfo.js.map +1 -0
  1460. package/packages/utils/src/lib/startCommand/index.js +3 -0
  1461. package/packages/utils/src/lib/startCommand/index.js.map +1 -0
  1462. package/scripts/finalize-analyzer.cjs +6 -4
  1463. package/analyzer-template/packages/ai/src/lib/findMatchingAttribute.ts +0 -102
  1464. package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +0 -149
  1465. package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +0 -235
  1466. package/analyzer-template/packages/ai/src/lib/generateEntityDataMap.ts +0 -375
  1467. package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +0 -227
  1468. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.ts +0 -67
  1469. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +0 -101
  1470. package/analyzer-template/packages/github/dist/supabase/index.d.ts.map +0 -1
  1471. package/analyzer-template/packages/github/dist/supabase/index.js.map +0 -1
  1472. package/analyzer-template/packages/github/dist/supabase/src/lib/analysisBranchToDb.d.ts.map +0 -1
  1473. package/analyzer-template/packages/github/dist/supabase/src/lib/analysisBranchToDb.js.map +0 -1
  1474. package/analyzer-template/packages/github/dist/supabase/src/lib/analysisToDb.d.ts.map +0 -1
  1475. package/analyzer-template/packages/github/dist/supabase/src/lib/analysisToDb.js.map +0 -1
  1476. package/analyzer-template/packages/github/dist/supabase/src/lib/backgroundJobToDb.d.ts.map +0 -1
  1477. package/analyzer-template/packages/github/dist/supabase/src/lib/backgroundJobToDb.js.map +0 -1
  1478. package/analyzer-template/packages/github/dist/supabase/src/lib/branchToDb.d.ts.map +0 -1
  1479. package/analyzer-template/packages/github/dist/supabase/src/lib/branchToDb.js.map +0 -1
  1480. package/analyzer-template/packages/github/dist/supabase/src/lib/commitBranchToDb.d.ts.map +0 -1
  1481. package/analyzer-template/packages/github/dist/supabase/src/lib/commitBranchToDb.js.map +0 -1
  1482. package/analyzer-template/packages/github/dist/supabase/src/lib/commitToDb.d.ts.map +0 -1
  1483. package/analyzer-template/packages/github/dist/supabase/src/lib/commitToDb.js.map +0 -1
  1484. package/analyzer-template/packages/github/dist/supabase/src/lib/createOrUpdateBranchCommitStats.d.ts.map +0 -1
  1485. package/analyzer-template/packages/github/dist/supabase/src/lib/createOrUpdateBranchCommitStats.js.map +0 -1
  1486. package/analyzer-template/packages/github/dist/supabase/src/lib/createProject.d.ts.map +0 -1
  1487. package/analyzer-template/packages/github/dist/supabase/src/lib/createProject.js.map +0 -1
  1488. package/analyzer-template/packages/github/dist/supabase/src/lib/createRetryFetch.d.ts.map +0 -1
  1489. package/analyzer-template/packages/github/dist/supabase/src/lib/createRetryFetch.js.map +0 -1
  1490. package/analyzer-template/packages/github/dist/supabase/src/lib/dbToAnalysis.d.ts.map +0 -1
  1491. package/analyzer-template/packages/github/dist/supabase/src/lib/dbToAnalysis.js.map +0 -1
  1492. package/analyzer-template/packages/github/dist/supabase/src/lib/dbToAnalysisBranch.d.ts.map +0 -1
  1493. package/analyzer-template/packages/github/dist/supabase/src/lib/dbToAnalysisBranch.js.map +0 -1
  1494. package/analyzer-template/packages/github/dist/supabase/src/lib/dbToBackgroundJob.d.ts.map +0 -1
  1495. package/analyzer-template/packages/github/dist/supabase/src/lib/dbToBackgroundJob.js.map +0 -1
  1496. package/analyzer-template/packages/github/dist/supabase/src/lib/dbToBranch.d.ts.map +0 -1
  1497. package/analyzer-template/packages/github/dist/supabase/src/lib/dbToBranch.js.map +0 -1
  1498. package/analyzer-template/packages/github/dist/supabase/src/lib/dbToCommit.d.ts.map +0 -1
  1499. package/analyzer-template/packages/github/dist/supabase/src/lib/dbToCommit.js.map +0 -1
  1500. package/analyzer-template/packages/github/dist/supabase/src/lib/dbToCommitBranch.d.ts.map +0 -1
  1501. package/analyzer-template/packages/github/dist/supabase/src/lib/dbToCommitBranch.js.map +0 -1
  1502. package/analyzer-template/packages/github/dist/supabase/src/lib/dbToEntity.d.ts.map +0 -1
  1503. package/analyzer-template/packages/github/dist/supabase/src/lib/dbToEntity.js.map +0 -1
  1504. package/analyzer-template/packages/github/dist/supabase/src/lib/dbToEntityBranch.d.ts.map +0 -1
  1505. package/analyzer-template/packages/github/dist/supabase/src/lib/dbToEntityBranch.js.map +0 -1
  1506. package/analyzer-template/packages/github/dist/supabase/src/lib/dbToFile.d.ts.map +0 -1
  1507. package/analyzer-template/packages/github/dist/supabase/src/lib/dbToFile.js.map +0 -1
  1508. package/analyzer-template/packages/github/dist/supabase/src/lib/dbToProject.d.ts.map +0 -1
  1509. package/analyzer-template/packages/github/dist/supabase/src/lib/dbToProject.js.map +0 -1
  1510. package/analyzer-template/packages/github/dist/supabase/src/lib/dbToScenario.d.ts.map +0 -1
  1511. package/analyzer-template/packages/github/dist/supabase/src/lib/dbToScenario.js.map +0 -1
  1512. package/analyzer-template/packages/github/dist/supabase/src/lib/dbToScenarioComment.d.ts.map +0 -1
  1513. package/analyzer-template/packages/github/dist/supabase/src/lib/dbToScenarioComment.js.map +0 -1
  1514. package/analyzer-template/packages/github/dist/supabase/src/lib/dbToUserScenario.d.ts.map +0 -1
  1515. package/analyzer-template/packages/github/dist/supabase/src/lib/dbToUserScenario.js.map +0 -1
  1516. package/analyzer-template/packages/github/dist/supabase/src/lib/deleteBranch.d.ts.map +0 -1
  1517. package/analyzer-template/packages/github/dist/supabase/src/lib/deleteBranch.js.map +0 -1
  1518. package/analyzer-template/packages/github/dist/supabase/src/lib/deleteEntities.d.ts.map +0 -1
  1519. package/analyzer-template/packages/github/dist/supabase/src/lib/deleteEntities.js.map +0 -1
  1520. package/analyzer-template/packages/github/dist/supabase/src/lib/deleteFile.d.ts.map +0 -1
  1521. package/analyzer-template/packages/github/dist/supabase/src/lib/deleteFile.js.map +0 -1
  1522. package/analyzer-template/packages/github/dist/supabase/src/lib/deleteScenarios.d.ts.map +0 -1
  1523. package/analyzer-template/packages/github/dist/supabase/src/lib/deleteScenarios.js.map +0 -1
  1524. package/analyzer-template/packages/github/dist/supabase/src/lib/entityToDb.d.ts.map +0 -1
  1525. package/analyzer-template/packages/github/dist/supabase/src/lib/entityToDb.js.map +0 -1
  1526. package/analyzer-template/packages/github/dist/supabase/src/lib/fileToDb.d.ts.map +0 -1
  1527. package/analyzer-template/packages/github/dist/supabase/src/lib/fileToDb.js.map +0 -1
  1528. package/analyzer-template/packages/github/dist/supabase/src/lib/generateSha.d.ts.map +0 -1
  1529. package/analyzer-template/packages/github/dist/supabase/src/lib/generateSha.js.map +0 -1
  1530. package/analyzer-template/packages/github/dist/supabase/src/lib/jsonUpdateUtils.d.ts.map +0 -1
  1531. package/analyzer-template/packages/github/dist/supabase/src/lib/jsonUpdateUtils.js.map +0 -1
  1532. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/aggregationHelpers.d.ts.map +0 -1
  1533. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/aggregationHelpers.js.map +0 -1
  1534. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/db.d.ts +0 -67
  1535. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/db.d.ts.map +0 -1
  1536. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/db.js +0 -360
  1537. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/db.js.map +0 -1
  1538. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/schemaHelpers.d.ts.map +0 -1
  1539. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/schemaHelpers.js.map +0 -1
  1540. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/sqliteBooleanPlugin.d.ts.map +0 -1
  1541. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/sqliteBooleanPlugin.js.map +0 -1
  1542. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tableRelations.d.ts +0 -87
  1543. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tableRelations.d.ts.map +0 -1
  1544. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tableRelations.js.map +0 -1
  1545. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tableRelationsTypes.d.ts.map +0 -1
  1546. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tableRelationsTypes.js.map +0 -1
  1547. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/analysesTable.d.ts +0 -105
  1548. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/analysesTable.d.ts.map +0 -1
  1549. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/analysesTable.js.map +0 -1
  1550. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/analysisBranchesTable.d.ts.map +0 -1
  1551. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/analysisBranchesTable.js.map +0 -1
  1552. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/backgroundJobsTable.d.ts.map +0 -1
  1553. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/backgroundJobsTable.js.map +0 -1
  1554. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/branchesTable.d.ts.map +0 -1
  1555. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/branchesTable.js.map +0 -1
  1556. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/commitBranchesTable.d.ts.map +0 -1
  1557. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/commitBranchesTable.js.map +0 -1
  1558. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/commitsTable.d.ts +0 -47
  1559. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/commitsTable.d.ts.map +0 -1
  1560. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/commitsTable.js +0 -44
  1561. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/commitsTable.js.map +0 -1
  1562. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/entitiesTable.d.ts +0 -65
  1563. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/entitiesTable.d.ts.map +0 -1
  1564. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/entitiesTable.js.map +0 -1
  1565. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/entityBranchesTable.d.ts.map +0 -1
  1566. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/entityBranchesTable.js.map +0 -1
  1567. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/entityStatementsTable.d.ts.map +0 -1
  1568. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/entityStatementsTable.js.map +0 -1
  1569. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/filesTable.d.ts.map +0 -1
  1570. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/filesTable.js.map +0 -1
  1571. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/githubPayloadsTable.d.ts.map +0 -1
  1572. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/githubPayloadsTable.js.map +0 -1
  1573. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/githubUsersTable.d.ts.map +0 -1
  1574. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/githubUsersTable.js.map +0 -1
  1575. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/projectsTable.d.ts.map +0 -1
  1576. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/projectsTable.js.map +0 -1
  1577. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/scenarioCommentsTable.d.ts.map +0 -1
  1578. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/scenarioCommentsTable.js.map +0 -1
  1579. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/scenariosTable.d.ts +0 -65
  1580. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/scenariosTable.d.ts.map +0 -1
  1581. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/scenariosTable.js.map +0 -1
  1582. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/statementsTable.d.ts.map +0 -1
  1583. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/statementsTable.js.map +0 -1
  1584. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/teamsTable.d.ts.map +0 -1
  1585. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/teamsTable.js.map +0 -1
  1586. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/userScenariosTable.d.ts.map +0 -1
  1587. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/userScenariosTable.js.map +0 -1
  1588. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/userTeamsTable.d.ts.map +0 -1
  1589. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/userTeamsTable.js.map +0 -1
  1590. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/usersTable.d.ts.map +0 -1
  1591. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/usersTable.js.map +0 -1
  1592. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/upsertHelpers.d.ts.map +0 -1
  1593. package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/upsertHelpers.js.map +0 -1
  1594. package/analyzer-template/packages/github/dist/supabase/src/lib/loadAnalyses.d.ts +0 -14
  1595. package/analyzer-template/packages/github/dist/supabase/src/lib/loadAnalyses.d.ts.map +0 -1
  1596. package/analyzer-template/packages/github/dist/supabase/src/lib/loadAnalyses.js +0 -131
  1597. package/analyzer-template/packages/github/dist/supabase/src/lib/loadAnalyses.js.map +0 -1
  1598. package/analyzer-template/packages/github/dist/supabase/src/lib/loadAnalysis.d.ts.map +0 -1
  1599. package/analyzer-template/packages/github/dist/supabase/src/lib/loadAnalysis.js +0 -130
  1600. package/analyzer-template/packages/github/dist/supabase/src/lib/loadAnalysis.js.map +0 -1
  1601. package/analyzer-template/packages/github/dist/supabase/src/lib/loadAnalysisBranches.d.ts.map +0 -1
  1602. package/analyzer-template/packages/github/dist/supabase/src/lib/loadAnalysisBranches.js.map +0 -1
  1603. package/analyzer-template/packages/github/dist/supabase/src/lib/loadBackgroundJob.d.ts.map +0 -1
  1604. package/analyzer-template/packages/github/dist/supabase/src/lib/loadBackgroundJob.js.map +0 -1
  1605. package/analyzer-template/packages/github/dist/supabase/src/lib/loadBranch.d.ts.map +0 -1
  1606. package/analyzer-template/packages/github/dist/supabase/src/lib/loadBranch.js +0 -90
  1607. package/analyzer-template/packages/github/dist/supabase/src/lib/loadBranch.js.map +0 -1
  1608. package/analyzer-template/packages/github/dist/supabase/src/lib/loadBranches.d.ts.map +0 -1
  1609. package/analyzer-template/packages/github/dist/supabase/src/lib/loadBranches.js.map +0 -1
  1610. package/analyzer-template/packages/github/dist/supabase/src/lib/loadCommit.d.ts.map +0 -1
  1611. package/analyzer-template/packages/github/dist/supabase/src/lib/loadCommit.js +0 -111
  1612. package/analyzer-template/packages/github/dist/supabase/src/lib/loadCommit.js.map +0 -1
  1613. package/analyzer-template/packages/github/dist/supabase/src/lib/loadCommitBranches.d.ts.map +0 -1
  1614. package/analyzer-template/packages/github/dist/supabase/src/lib/loadCommitBranches.js.map +0 -1
  1615. package/analyzer-template/packages/github/dist/supabase/src/lib/loadCommitMetadata.d.ts.map +0 -1
  1616. package/analyzer-template/packages/github/dist/supabase/src/lib/loadCommitMetadata.js.map +0 -1
  1617. package/analyzer-template/packages/github/dist/supabase/src/lib/loadCommits.d.ts +0 -13
  1618. package/analyzer-template/packages/github/dist/supabase/src/lib/loadCommits.d.ts.map +0 -1
  1619. package/analyzer-template/packages/github/dist/supabase/src/lib/loadCommits.js +0 -188
  1620. package/analyzer-template/packages/github/dist/supabase/src/lib/loadCommits.js.map +0 -1
  1621. package/analyzer-template/packages/github/dist/supabase/src/lib/loadEntities.d.ts +0 -11
  1622. package/analyzer-template/packages/github/dist/supabase/src/lib/loadEntities.d.ts.map +0 -1
  1623. package/analyzer-template/packages/github/dist/supabase/src/lib/loadEntities.js +0 -63
  1624. package/analyzer-template/packages/github/dist/supabase/src/lib/loadEntities.js.map +0 -1
  1625. package/analyzer-template/packages/github/dist/supabase/src/lib/loadEntity.d.ts.map +0 -1
  1626. package/analyzer-template/packages/github/dist/supabase/src/lib/loadEntity.js.map +0 -1
  1627. package/analyzer-template/packages/github/dist/supabase/src/lib/loadEntityBranches.d.ts.map +0 -1
  1628. package/analyzer-template/packages/github/dist/supabase/src/lib/loadEntityBranches.js +0 -114
  1629. package/analyzer-template/packages/github/dist/supabase/src/lib/loadEntityBranches.js.map +0 -1
  1630. package/analyzer-template/packages/github/dist/supabase/src/lib/loadFile.d.ts.map +0 -1
  1631. package/analyzer-template/packages/github/dist/supabase/src/lib/loadFile.js.map +0 -1
  1632. package/analyzer-template/packages/github/dist/supabase/src/lib/loadFiles.d.ts.map +0 -1
  1633. package/analyzer-template/packages/github/dist/supabase/src/lib/loadFiles.js.map +0 -1
  1634. package/analyzer-template/packages/github/dist/supabase/src/lib/loadMostRecentPreviousAnalysis.d.ts.map +0 -1
  1635. package/analyzer-template/packages/github/dist/supabase/src/lib/loadMostRecentPreviousAnalysis.js.map +0 -1
  1636. package/analyzer-template/packages/github/dist/supabase/src/lib/loadProject.d.ts.map +0 -1
  1637. package/analyzer-template/packages/github/dist/supabase/src/lib/loadProject.js.map +0 -1
  1638. package/analyzer-template/packages/github/dist/supabase/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +0 -1
  1639. package/analyzer-template/packages/github/dist/supabase/src/lib/loadReadyToBeCapturedAnalyses.js +0 -50
  1640. package/analyzer-template/packages/github/dist/supabase/src/lib/loadReadyToBeCapturedAnalyses.js.map +0 -1
  1641. package/analyzer-template/packages/github/dist/supabase/src/lib/loadScenario.d.ts.map +0 -1
  1642. package/analyzer-template/packages/github/dist/supabase/src/lib/loadScenario.js.map +0 -1
  1643. package/analyzer-template/packages/github/dist/supabase/src/lib/loadStatement.d.ts +0 -3
  1644. package/analyzer-template/packages/github/dist/supabase/src/lib/loadStatement.d.ts.map +0 -1
  1645. package/analyzer-template/packages/github/dist/supabase/src/lib/loadStatement.js.map +0 -1
  1646. package/analyzer-template/packages/github/dist/supabase/src/lib/nullsToUndefines.d.ts.map +0 -1
  1647. package/analyzer-template/packages/github/dist/supabase/src/lib/nullsToUndefines.js.map +0 -1
  1648. package/analyzer-template/packages/github/dist/supabase/src/lib/projectToDb.d.ts.map +0 -1
  1649. package/analyzer-template/packages/github/dist/supabase/src/lib/projectToDb.js.map +0 -1
  1650. package/analyzer-template/packages/github/dist/supabase/src/lib/saveBackgroundEvent.d.ts.map +0 -1
  1651. package/analyzer-template/packages/github/dist/supabase/src/lib/saveBackgroundEvent.js.map +0 -1
  1652. package/analyzer-template/packages/github/dist/supabase/src/lib/saveEntityStatements.d.ts.map +0 -1
  1653. package/analyzer-template/packages/github/dist/supabase/src/lib/saveEntityStatements.js.map +0 -1
  1654. package/analyzer-template/packages/github/dist/supabase/src/lib/saveFiles.d.ts.map +0 -1
  1655. package/analyzer-template/packages/github/dist/supabase/src/lib/saveFiles.js.map +0 -1
  1656. package/analyzer-template/packages/github/dist/supabase/src/lib/saveStatement.d.ts.map +0 -1
  1657. package/analyzer-template/packages/github/dist/supabase/src/lib/saveStatement.js.map +0 -1
  1658. package/analyzer-template/packages/github/dist/supabase/src/lib/scenarioToDb.d.ts.map +0 -1
  1659. package/analyzer-template/packages/github/dist/supabase/src/lib/scenarioToDb.js +0 -18
  1660. package/analyzer-template/packages/github/dist/supabase/src/lib/scenarioToDb.js.map +0 -1
  1661. package/analyzer-template/packages/github/dist/supabase/src/lib/supabase.d.ts +0 -4
  1662. package/analyzer-template/packages/github/dist/supabase/src/lib/supabase.d.ts.map +0 -1
  1663. package/analyzer-template/packages/github/dist/supabase/src/lib/supabase.js.map +0 -1
  1664. package/analyzer-template/packages/github/dist/supabase/src/lib/updateBackgroundJobProgress.d.ts.map +0 -1
  1665. package/analyzer-template/packages/github/dist/supabase/src/lib/updateBackgroundJobProgress.js.map +0 -1
  1666. package/analyzer-template/packages/github/dist/supabase/src/lib/updateCommitMetadata.d.ts +0 -13
  1667. package/analyzer-template/packages/github/dist/supabase/src/lib/updateCommitMetadata.d.ts.map +0 -1
  1668. package/analyzer-template/packages/github/dist/supabase/src/lib/updateCommitMetadata.js +0 -100
  1669. package/analyzer-template/packages/github/dist/supabase/src/lib/updateCommitMetadata.js.map +0 -1
  1670. package/analyzer-template/packages/github/dist/supabase/src/lib/updateEntityBranch.d.ts.map +0 -1
  1671. package/analyzer-template/packages/github/dist/supabase/src/lib/updateEntityBranch.js.map +0 -1
  1672. package/analyzer-template/packages/github/dist/supabase/src/lib/updateFreshAnalysisMetadata.d.ts.map +0 -1
  1673. package/analyzer-template/packages/github/dist/supabase/src/lib/updateFreshAnalysisMetadata.js.map +0 -1
  1674. package/analyzer-template/packages/github/dist/supabase/src/lib/updateFreshAnalysisStatus.d.ts.map +0 -1
  1675. package/analyzer-template/packages/github/dist/supabase/src/lib/updateFreshAnalysisStatus.js.map +0 -1
  1676. package/analyzer-template/packages/github/dist/supabase/src/lib/updateFreshAnalysisStatusWithScenarios.d.ts.map +0 -1
  1677. package/analyzer-template/packages/github/dist/supabase/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +0 -1
  1678. package/analyzer-template/packages/github/dist/supabase/src/lib/updateProjectMetadata.d.ts.map +0 -1
  1679. package/analyzer-template/packages/github/dist/supabase/src/lib/updateProjectMetadata.js.map +0 -1
  1680. package/analyzer-template/packages/github/dist/supabase/src/lib/upsertAnalyses.d.ts.map +0 -1
  1681. package/analyzer-template/packages/github/dist/supabase/src/lib/upsertAnalyses.js.map +0 -1
  1682. package/analyzer-template/packages/github/dist/supabase/src/lib/upsertAnalysesWithScenarios.d.ts.map +0 -1
  1683. package/analyzer-template/packages/github/dist/supabase/src/lib/upsertAnalysesWithScenarios.js.map +0 -1
  1684. package/analyzer-template/packages/github/dist/supabase/src/lib/upsertAnalysisBranches.d.ts.map +0 -1
  1685. package/analyzer-template/packages/github/dist/supabase/src/lib/upsertAnalysisBranches.js.map +0 -1
  1686. package/analyzer-template/packages/github/dist/supabase/src/lib/upsertBackgroundJob.d.ts.map +0 -1
  1687. package/analyzer-template/packages/github/dist/supabase/src/lib/upsertBackgroundJob.js.map +0 -1
  1688. package/analyzer-template/packages/github/dist/supabase/src/lib/upsertBranches.d.ts.map +0 -1
  1689. package/analyzer-template/packages/github/dist/supabase/src/lib/upsertBranches.js.map +0 -1
  1690. package/analyzer-template/packages/github/dist/supabase/src/lib/upsertCommitBranches.d.ts.map +0 -1
  1691. package/analyzer-template/packages/github/dist/supabase/src/lib/upsertCommitBranches.js.map +0 -1
  1692. package/analyzer-template/packages/github/dist/supabase/src/lib/upsertCommits.d.ts.map +0 -1
  1693. package/analyzer-template/packages/github/dist/supabase/src/lib/upsertCommits.js.map +0 -1
  1694. package/analyzer-template/packages/github/dist/supabase/src/lib/upsertEntities.d.ts.map +0 -1
  1695. package/analyzer-template/packages/github/dist/supabase/src/lib/upsertEntities.js.map +0 -1
  1696. package/analyzer-template/packages/github/dist/supabase/src/lib/upsertEntityBranches.d.ts.map +0 -1
  1697. package/analyzer-template/packages/github/dist/supabase/src/lib/upsertEntityBranches.js.map +0 -1
  1698. package/analyzer-template/packages/github/dist/supabase/src/lib/upsertFiles.d.ts.map +0 -1
  1699. package/analyzer-template/packages/github/dist/supabase/src/lib/upsertFiles.js.map +0 -1
  1700. package/analyzer-template/packages/github/dist/supabase/src/lib/upsertGithubUser.d.ts.map +0 -1
  1701. package/analyzer-template/packages/github/dist/supabase/src/lib/upsertGithubUser.js.map +0 -1
  1702. package/analyzer-template/packages/github/dist/supabase/src/lib/upsertProjects.d.ts.map +0 -1
  1703. package/analyzer-template/packages/github/dist/supabase/src/lib/upsertProjects.js.map +0 -1
  1704. package/analyzer-template/packages/github/dist/supabase/src/lib/upsertScenarios.d.ts.map +0 -1
  1705. package/analyzer-template/packages/github/dist/supabase/src/lib/upsertScenarios.js.map +0 -1
  1706. package/analyzer-template/packages/supabase/client.ts +0 -35
  1707. package/analyzer-template/packages/supabase/package.json +0 -31
  1708. package/analyzer-template/packages/supabase/src/lib/kysely/db.ts +0 -476
  1709. package/analyzer-template/packages/supabase/src/lib/kysely/tableRelations.ts +0 -105
  1710. package/analyzer-template/packages/supabase/src/lib/kysely/tables/commitsTable.ts +0 -61
  1711. package/analyzer-template/packages/supabase/src/lib/loadAnalyses.ts +0 -218
  1712. package/analyzer-template/packages/supabase/src/lib/loadAnalysis.ts +0 -210
  1713. package/analyzer-template/packages/supabase/src/lib/loadBranch.ts +0 -122
  1714. package/analyzer-template/packages/supabase/src/lib/loadCommit.ts +0 -163
  1715. package/analyzer-template/packages/supabase/src/lib/loadCommits.ts +0 -251
  1716. package/analyzer-template/packages/supabase/src/lib/loadEntities.ts +0 -94
  1717. package/analyzer-template/packages/supabase/src/lib/loadEntity.ts +0 -110
  1718. package/analyzer-template/packages/supabase/src/lib/loadEntityBranches.ts +0 -166
  1719. package/analyzer-template/packages/supabase/src/lib/loadFile.ts +0 -47
  1720. package/analyzer-template/packages/supabase/src/lib/loadFiles.ts +0 -137
  1721. package/analyzer-template/packages/supabase/src/lib/loadReadyToBeCapturedAnalyses.ts +0 -76
  1722. package/analyzer-template/packages/supabase/src/lib/loadStatement.ts +0 -23
  1723. package/analyzer-template/packages/supabase/src/lib/saveEntityStatements.ts +0 -28
  1724. package/analyzer-template/packages/supabase/src/lib/scenarioToDb.ts +0 -34
  1725. package/analyzer-template/packages/supabase/src/lib/updateCommitMetadata.ts +0 -188
  1726. package/analyzer-template/packages/supabase/src/lib/updateProjectMetadata.ts +0 -96
  1727. package/analyzer-template/process/INTEGRATION_COMPLETE.md +0 -333
  1728. package/analyzer-template/process/INTEGRATION_EXAMPLE.md +0 -525
  1729. package/analyzer-template/process/README.md +0 -507
  1730. package/background/src/lib/process/GlobalProcessManager.js.map +0 -1
  1731. package/background/src/lib/process/ProcessManager.js +0 -244
  1732. package/background/src/lib/process/ProcessManager.js.map +0 -1
  1733. package/background/src/lib/process/index.js.map +0 -1
  1734. package/background/src/lib/process/managedExecAsync.js.map +0 -1
  1735. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js +0 -238
  1736. package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js.map +0 -1
  1737. package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-rqv54FUY.js +0 -1
  1738. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-B0oiPem-.js +0 -26
  1739. package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-DqXXjAJ7.js +0 -3
  1740. package/codeyam-cli/src/webserver/build/client/assets/LogViewer-BKKG1s2B.js +0 -3
  1741. package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-DU_jxCPD.js +0 -1
  1742. package/codeyam-cli/src/webserver/build/client/assets/ScenarioPreview-5DY-YIxu.js +0 -6
  1743. package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-DmjXUj6m.js +0 -5
  1744. package/codeyam-cli/src/webserver/build/client/assets/_index-DvSrcxsk.js +0 -1
  1745. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-CsaMd9mb.js +0 -10
  1746. package/codeyam-cli/src/webserver/build/client/assets/chart-column-VXBS6qOn.js +0 -1
  1747. package/codeyam-cli/src/webserver/build/client/assets/circle-alert-n5GUC2AS.js +0 -1
  1748. package/codeyam-cli/src/webserver/build/client/assets/clock-DKqtX8js.js +0 -1
  1749. package/codeyam-cli/src/webserver/build/client/assets/components-Dj-Ggnl2.js +0 -40
  1750. package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-C1gnJVOL.svg +0 -4
  1751. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-BbR3FwNc.js +0 -1
  1752. package/codeyam-cli/src/webserver/build/client/assets/entity._sha._-BHiWkb_W.js +0 -11
  1753. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-L7M9Vr5z.js +0 -1
  1754. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-C9w-q7P3.js +0 -5
  1755. package/codeyam-cli/src/webserver/build/client/assets/entityVersioning-Bk_YB1jM.js +0 -1
  1756. package/codeyam-cli/src/webserver/build/client/assets/entry.client-CdGoUs8A.js +0 -1
  1757. package/codeyam-cli/src/webserver/build/client/assets/file-text-B6Er7j5k.js +0 -1
  1758. package/codeyam-cli/src/webserver/build/client/assets/files-KcDVw1FY.js +0 -1
  1759. package/codeyam-cli/src/webserver/build/client/assets/git-B9uZ8eSJ.js +0 -12
  1760. package/codeyam-cli/src/webserver/build/client/assets/globals-B0f88RTV.css +0 -1
  1761. package/codeyam-cli/src/webserver/build/client/assets/loader-circle-v3c6DFp4.js +0 -1
  1762. package/codeyam-cli/src/webserver/build/client/assets/manifest-fca08d7e.js +0 -1
  1763. package/codeyam-cli/src/webserver/build/client/assets/root-Cf8VBqIb.js +0 -16
  1764. package/codeyam-cli/src/webserver/build/client/assets/search-DA14wXpu.js +0 -1
  1765. package/codeyam-cli/src/webserver/build/client/assets/server-build-CMKNK2uU.css +0 -1
  1766. package/codeyam-cli/src/webserver/build/client/assets/settings-COJUrwGu.js +0 -1
  1767. package/codeyam-cli/src/webserver/build/client/assets/settings-NU_ZquhK.js +0 -1
  1768. package/codeyam-cli/src/webserver/build/client/assets/simulations-CNaMJ-nR.js +0 -1
  1769. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-Lumm1t01.js +0 -2
  1770. package/codeyam-cli/src/webserver/build/client/assets/useToast-BRShB17p.js +0 -1
  1771. package/codeyam-cli/src/webserver/build/client/assets/zap-BvukH0eN.js +0 -1
  1772. package/codeyam-cli/src/webserver/build/client/cy-logo-cli.svg +0 -13
  1773. package/codeyam-cli/src/webserver/build/client/favicon.svg +0 -13
  1774. package/codeyam-cli/src/webserver/build/server/assets/index-DHr4rT4u.js +0 -1
  1775. package/codeyam-cli/src/webserver/build/server/assets/server-build-Bi1mj14J.js +0 -166
  1776. package/codeyam-cli/src/webserver/public/cy-logo-cli.svg +0 -13
  1777. package/codeyam-cli/src/webserver/public/favicon.svg +0 -13
  1778. package/codeyam-cli/templates/codeyam-debug-skill.md +0 -557
  1779. package/codeyam-cli/templates/codeyam-setup-skill.md +0 -468
  1780. package/codeyam-cli/templates/codeyam-sim-skill.md +0 -222
  1781. package/codeyam-cli/templates/codeyam-test-skill.md +0 -178
  1782. package/codeyam-cli/templates/codeyam-verify-skill.md +0 -179
  1783. package/packages/ai/src/lib/findMatchingAttribute.js +0 -77
  1784. package/packages/ai/src/lib/findMatchingAttribute.js.map +0 -1
  1785. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +0 -112
  1786. package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +0 -1
  1787. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +0 -190
  1788. package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +0 -1
  1789. package/packages/ai/src/lib/generateEntityDataMap.js +0 -335
  1790. package/packages/ai/src/lib/generateEntityDataMap.js.map +0 -1
  1791. package/packages/ai/src/lib/generateEntityKeyAttributes.js +0 -182
  1792. package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +0 -1
  1793. package/packages/ai/src/lib/isFrontend.js +0 -5
  1794. package/packages/ai/src/lib/isFrontend.js.map +0 -1
  1795. package/packages/ai/src/lib/promptGenerators/generateEntityDataMapGenerator.js +0 -17
  1796. package/packages/ai/src/lib/promptGenerators/generateEntityDataMapGenerator.js.map +0 -1
  1797. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js +0 -40
  1798. package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js.map +0 -1
  1799. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +0 -59
  1800. package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +0 -1
  1801. package/packages/supabase/index.js.map +0 -1
  1802. package/packages/supabase/src/lib/analysisBranchToDb.js.map +0 -1
  1803. package/packages/supabase/src/lib/analysisToDb.js.map +0 -1
  1804. package/packages/supabase/src/lib/backgroundJobToDb.js.map +0 -1
  1805. package/packages/supabase/src/lib/branchToDb.js.map +0 -1
  1806. package/packages/supabase/src/lib/commitBranchToDb.js.map +0 -1
  1807. package/packages/supabase/src/lib/commitToDb.js.map +0 -1
  1808. package/packages/supabase/src/lib/createOrUpdateBranchCommitStats.js.map +0 -1
  1809. package/packages/supabase/src/lib/createProject.js.map +0 -1
  1810. package/packages/supabase/src/lib/createRetryFetch.js.map +0 -1
  1811. package/packages/supabase/src/lib/dbToAnalysis.js.map +0 -1
  1812. package/packages/supabase/src/lib/dbToAnalysisBranch.js.map +0 -1
  1813. package/packages/supabase/src/lib/dbToBackgroundJob.js.map +0 -1
  1814. package/packages/supabase/src/lib/dbToBranch.js.map +0 -1
  1815. package/packages/supabase/src/lib/dbToCommit.js.map +0 -1
  1816. package/packages/supabase/src/lib/dbToCommitBranch.js.map +0 -1
  1817. package/packages/supabase/src/lib/dbToEntity.js.map +0 -1
  1818. package/packages/supabase/src/lib/dbToEntityBranch.js.map +0 -1
  1819. package/packages/supabase/src/lib/dbToFile.js.map +0 -1
  1820. package/packages/supabase/src/lib/dbToProject.js.map +0 -1
  1821. package/packages/supabase/src/lib/dbToScenario.js.map +0 -1
  1822. package/packages/supabase/src/lib/dbToScenarioComment.js.map +0 -1
  1823. package/packages/supabase/src/lib/dbToUserScenario.js.map +0 -1
  1824. package/packages/supabase/src/lib/deleteBranch.js.map +0 -1
  1825. package/packages/supabase/src/lib/deleteEntities.js.map +0 -1
  1826. package/packages/supabase/src/lib/deleteFile.js.map +0 -1
  1827. package/packages/supabase/src/lib/deleteScenarios.js.map +0 -1
  1828. package/packages/supabase/src/lib/entityToDb.js.map +0 -1
  1829. package/packages/supabase/src/lib/fileToDb.js.map +0 -1
  1830. package/packages/supabase/src/lib/generateSha.js.map +0 -1
  1831. package/packages/supabase/src/lib/jsonUpdateUtils.js.map +0 -1
  1832. package/packages/supabase/src/lib/kysely/aggregationHelpers.js.map +0 -1
  1833. package/packages/supabase/src/lib/kysely/db.js +0 -360
  1834. package/packages/supabase/src/lib/kysely/db.js.map +0 -1
  1835. package/packages/supabase/src/lib/kysely/schemaHelpers.js.map +0 -1
  1836. package/packages/supabase/src/lib/kysely/sqliteBooleanPlugin.js.map +0 -1
  1837. package/packages/supabase/src/lib/kysely/tableRelations.js.map +0 -1
  1838. package/packages/supabase/src/lib/kysely/tableRelationsTypes.js.map +0 -1
  1839. package/packages/supabase/src/lib/kysely/tables/analysesTable.js.map +0 -1
  1840. package/packages/supabase/src/lib/kysely/tables/analysisBranchesTable.js.map +0 -1
  1841. package/packages/supabase/src/lib/kysely/tables/backgroundJobsTable.js.map +0 -1
  1842. package/packages/supabase/src/lib/kysely/tables/branchesTable.js.map +0 -1
  1843. package/packages/supabase/src/lib/kysely/tables/commitBranchesTable.js.map +0 -1
  1844. package/packages/supabase/src/lib/kysely/tables/commitsTable.js +0 -44
  1845. package/packages/supabase/src/lib/kysely/tables/commitsTable.js.map +0 -1
  1846. package/packages/supabase/src/lib/kysely/tables/entitiesTable.js.map +0 -1
  1847. package/packages/supabase/src/lib/kysely/tables/entityBranchesTable.js.map +0 -1
  1848. package/packages/supabase/src/lib/kysely/tables/entityStatementsTable.js.map +0 -1
  1849. package/packages/supabase/src/lib/kysely/tables/filesTable.js.map +0 -1
  1850. package/packages/supabase/src/lib/kysely/tables/githubPayloadsTable.js.map +0 -1
  1851. package/packages/supabase/src/lib/kysely/tables/githubUsersTable.js.map +0 -1
  1852. package/packages/supabase/src/lib/kysely/tables/projectsTable.js.map +0 -1
  1853. package/packages/supabase/src/lib/kysely/tables/scenarioCommentsTable.js.map +0 -1
  1854. package/packages/supabase/src/lib/kysely/tables/scenariosTable.js.map +0 -1
  1855. package/packages/supabase/src/lib/kysely/tables/statementsTable.js.map +0 -1
  1856. package/packages/supabase/src/lib/kysely/tables/teamsTable.js.map +0 -1
  1857. package/packages/supabase/src/lib/kysely/tables/userScenariosTable.js.map +0 -1
  1858. package/packages/supabase/src/lib/kysely/tables/userTeamsTable.js.map +0 -1
  1859. package/packages/supabase/src/lib/kysely/tables/usersTable.js.map +0 -1
  1860. package/packages/supabase/src/lib/kysely/upsertHelpers.js.map +0 -1
  1861. package/packages/supabase/src/lib/loadAnalyses.js +0 -131
  1862. package/packages/supabase/src/lib/loadAnalyses.js.map +0 -1
  1863. package/packages/supabase/src/lib/loadAnalysis.js +0 -130
  1864. package/packages/supabase/src/lib/loadAnalysis.js.map +0 -1
  1865. package/packages/supabase/src/lib/loadAnalysisBranches.js.map +0 -1
  1866. package/packages/supabase/src/lib/loadBackgroundJob.js.map +0 -1
  1867. package/packages/supabase/src/lib/loadBranch.js +0 -90
  1868. package/packages/supabase/src/lib/loadBranch.js.map +0 -1
  1869. package/packages/supabase/src/lib/loadBranches.js.map +0 -1
  1870. package/packages/supabase/src/lib/loadCommit.js +0 -111
  1871. package/packages/supabase/src/lib/loadCommit.js.map +0 -1
  1872. package/packages/supabase/src/lib/loadCommitBranches.js.map +0 -1
  1873. package/packages/supabase/src/lib/loadCommitMetadata.js.map +0 -1
  1874. package/packages/supabase/src/lib/loadCommits.js +0 -188
  1875. package/packages/supabase/src/lib/loadCommits.js.map +0 -1
  1876. package/packages/supabase/src/lib/loadEntities.js +0 -63
  1877. package/packages/supabase/src/lib/loadEntities.js.map +0 -1
  1878. package/packages/supabase/src/lib/loadEntity.js.map +0 -1
  1879. package/packages/supabase/src/lib/loadEntityBranches.js +0 -114
  1880. package/packages/supabase/src/lib/loadEntityBranches.js.map +0 -1
  1881. package/packages/supabase/src/lib/loadFile.js.map +0 -1
  1882. package/packages/supabase/src/lib/loadFiles.js.map +0 -1
  1883. package/packages/supabase/src/lib/loadMostRecentPreviousAnalysis.js.map +0 -1
  1884. package/packages/supabase/src/lib/loadProject.js.map +0 -1
  1885. package/packages/supabase/src/lib/loadReadyToBeCapturedAnalyses.js +0 -50
  1886. package/packages/supabase/src/lib/loadReadyToBeCapturedAnalyses.js.map +0 -1
  1887. package/packages/supabase/src/lib/loadScenario.js.map +0 -1
  1888. package/packages/supabase/src/lib/loadStatement.js.map +0 -1
  1889. package/packages/supabase/src/lib/nullsToUndefines.js.map +0 -1
  1890. package/packages/supabase/src/lib/projectToDb.js.map +0 -1
  1891. package/packages/supabase/src/lib/saveBackgroundEvent.js.map +0 -1
  1892. package/packages/supabase/src/lib/saveEntityStatements.js.map +0 -1
  1893. package/packages/supabase/src/lib/saveFiles.js.map +0 -1
  1894. package/packages/supabase/src/lib/saveStatement.js.map +0 -1
  1895. package/packages/supabase/src/lib/scenarioToDb.js +0 -18
  1896. package/packages/supabase/src/lib/scenarioToDb.js.map +0 -1
  1897. package/packages/supabase/src/lib/supabase.js.map +0 -1
  1898. package/packages/supabase/src/lib/updateBackgroundJobProgress.js.map +0 -1
  1899. package/packages/supabase/src/lib/updateCommitMetadata.js +0 -100
  1900. package/packages/supabase/src/lib/updateCommitMetadata.js.map +0 -1
  1901. package/packages/supabase/src/lib/updateEntityBranch.js.map +0 -1
  1902. package/packages/supabase/src/lib/updateFreshAnalysisMetadata.js.map +0 -1
  1903. package/packages/supabase/src/lib/updateFreshAnalysisStatus.js.map +0 -1
  1904. package/packages/supabase/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +0 -1
  1905. package/packages/supabase/src/lib/updateProjectMetadata.js.map +0 -1
  1906. package/packages/supabase/src/lib/upsertAnalyses.js.map +0 -1
  1907. package/packages/supabase/src/lib/upsertAnalysesWithScenarios.js.map +0 -1
  1908. package/packages/supabase/src/lib/upsertAnalysisBranches.js.map +0 -1
  1909. package/packages/supabase/src/lib/upsertBackgroundJob.js.map +0 -1
  1910. package/packages/supabase/src/lib/upsertBranches.js.map +0 -1
  1911. package/packages/supabase/src/lib/upsertCommitBranches.js.map +0 -1
  1912. package/packages/supabase/src/lib/upsertCommits.js.map +0 -1
  1913. package/packages/supabase/src/lib/upsertEntities.js.map +0 -1
  1914. package/packages/supabase/src/lib/upsertEntityBranches.js.map +0 -1
  1915. package/packages/supabase/src/lib/upsertFiles.js.map +0 -1
  1916. package/packages/supabase/src/lib/upsertGithubUser.js.map +0 -1
  1917. package/packages/supabase/src/lib/upsertProjects.js.map +0 -1
  1918. package/packages/supabase/src/lib/upsertScenarios.js.map +0 -1
  1919. /package/analyzer-template/packages/{supabase → database}/__mocks__/index.ts +0 -0
  1920. /package/analyzer-template/packages/{supabase → database}/index.ts +0 -0
  1921. /package/analyzer-template/packages/{supabase → database}/src/lib/analysisBranchToDb.ts +0 -0
  1922. /package/analyzer-template/packages/{supabase → database}/src/lib/analysisToDb.ts +0 -0
  1923. /package/analyzer-template/packages/{supabase → database}/src/lib/backgroundJobToDb.ts +0 -0
  1924. /package/analyzer-template/packages/{supabase → database}/src/lib/branchToDb.ts +0 -0
  1925. /package/analyzer-template/packages/{supabase → database}/src/lib/client/listenForCommits_Client.ts +0 -0
  1926. /package/analyzer-template/packages/{supabase → database}/src/lib/client/loadAnalysesInClient.ts +0 -0
  1927. /package/analyzer-template/packages/{supabase → database}/src/lib/client/loadAnalysis_Client.ts +0 -0
  1928. /package/analyzer-template/packages/{supabase → database}/src/lib/client/loadBranches_Client.ts +0 -0
  1929. /package/analyzer-template/packages/{supabase → database}/src/lib/client/loadCommit_Client.ts +0 -0
  1930. /package/analyzer-template/packages/{supabase → database}/src/lib/client/upsertFiles_Client.ts +0 -0
  1931. /package/analyzer-template/packages/{supabase → database}/src/lib/commitBranchToDb.ts +0 -0
  1932. /package/analyzer-template/packages/{supabase → database}/src/lib/commitToDb.ts +0 -0
  1933. /package/analyzer-template/packages/{supabase → database}/src/lib/createOrUpdateBranchCommitStats.ts +0 -0
  1934. /package/analyzer-template/packages/{supabase → database}/src/lib/createProject.ts +0 -0
  1935. /package/analyzer-template/packages/{supabase → database}/src/lib/createRetryFetch.ts +0 -0
  1936. /package/analyzer-template/packages/{supabase → database}/src/lib/dbToAnalysis.ts +0 -0
  1937. /package/analyzer-template/packages/{supabase → database}/src/lib/dbToAnalysisBranch.ts +0 -0
  1938. /package/analyzer-template/packages/{supabase → database}/src/lib/dbToBackgroundJob.ts +0 -0
  1939. /package/analyzer-template/packages/{supabase → database}/src/lib/dbToBranch.ts +0 -0
  1940. /package/analyzer-template/packages/{supabase → database}/src/lib/dbToCommit.ts +0 -0
  1941. /package/analyzer-template/packages/{supabase → database}/src/lib/dbToCommitBranch.ts +0 -0
  1942. /package/analyzer-template/packages/{supabase → database}/src/lib/dbToEntity.ts +0 -0
  1943. /package/analyzer-template/packages/{supabase → database}/src/lib/dbToEntityBranch.ts +0 -0
  1944. /package/analyzer-template/packages/{supabase → database}/src/lib/dbToFile.ts +0 -0
  1945. /package/analyzer-template/packages/{supabase → database}/src/lib/dbToProject.ts +0 -0
  1946. /package/analyzer-template/packages/{supabase → database}/src/lib/dbToScenario.ts +0 -0
  1947. /package/analyzer-template/packages/{supabase → database}/src/lib/dbToScenarioComment.ts +0 -0
  1948. /package/analyzer-template/packages/{supabase → database}/src/lib/dbToUserScenario.ts +0 -0
  1949. /package/analyzer-template/packages/{supabase → database}/src/lib/deleteBranch.ts +0 -0
  1950. /package/analyzer-template/packages/{supabase → database}/src/lib/deleteEntities.ts +0 -0
  1951. /package/analyzer-template/packages/{supabase → database}/src/lib/deleteFile.ts +0 -0
  1952. /package/analyzer-template/packages/{supabase → database}/src/lib/deleteScenarios.ts +0 -0
  1953. /package/analyzer-template/packages/{supabase → database}/src/lib/entityToDb.ts +0 -0
  1954. /package/analyzer-template/packages/{supabase → database}/src/lib/fileToDb.ts +0 -0
  1955. /package/analyzer-template/packages/{supabase → database}/src/lib/generateSha.ts +0 -0
  1956. /package/analyzer-template/packages/{supabase → database}/src/lib/jsonUpdateUtils.ts +0 -0
  1957. /package/analyzer-template/packages/{supabase → database}/src/lib/kysely/aggregationHelpers.ts +0 -0
  1958. /package/analyzer-template/packages/{supabase → database}/src/lib/kysely/schemaHelpers.ts +0 -0
  1959. /package/analyzer-template/packages/{supabase → database}/src/lib/kysely/sqliteBooleanPlugin.ts +0 -0
  1960. /package/analyzer-template/packages/{supabase → database}/src/lib/kysely/tableRelationsTypes.ts +0 -0
  1961. /package/analyzer-template/packages/{supabase → database}/src/lib/kysely/tables/analysesTable.ts +0 -0
  1962. /package/analyzer-template/packages/{supabase → database}/src/lib/kysely/tables/analysisBranchesTable.ts +0 -0
  1963. /package/analyzer-template/packages/{supabase → database}/src/lib/kysely/tables/backgroundJobsTable.ts +0 -0
  1964. /package/analyzer-template/packages/{supabase → database}/src/lib/kysely/tables/branchesTable.ts +0 -0
  1965. /package/analyzer-template/packages/{supabase → database}/src/lib/kysely/tables/commitBranchesTable.ts +0 -0
  1966. /package/analyzer-template/packages/{supabase → database}/src/lib/kysely/tables/entitiesTable.ts +0 -0
  1967. /package/analyzer-template/packages/{supabase → database}/src/lib/kysely/tables/entityBranchesTable.ts +0 -0
  1968. /package/analyzer-template/packages/{supabase → database}/src/lib/kysely/tables/entityStatementsTable.ts +0 -0
  1969. /package/analyzer-template/packages/{supabase → database}/src/lib/kysely/tables/filesTable.ts +0 -0
  1970. /package/analyzer-template/packages/{supabase → database}/src/lib/kysely/tables/githubPayloadsTable.ts +0 -0
  1971. /package/analyzer-template/packages/{supabase → database}/src/lib/kysely/tables/githubUsersTable.ts +0 -0
  1972. /package/analyzer-template/packages/{supabase → database}/src/lib/kysely/tables/projectsTable.ts +0 -0
  1973. /package/analyzer-template/packages/{supabase → database}/src/lib/kysely/tables/scenarioCommentsTable.ts +0 -0
  1974. /package/analyzer-template/packages/{supabase → database}/src/lib/kysely/tables/scenariosTable.ts +0 -0
  1975. /package/analyzer-template/packages/{supabase → database}/src/lib/kysely/tables/statementsTable.ts +0 -0
  1976. /package/analyzer-template/packages/{supabase → database}/src/lib/kysely/tables/teamsTable.ts +0 -0
  1977. /package/analyzer-template/packages/{supabase → database}/src/lib/kysely/tables/userScenariosTable.ts +0 -0
  1978. /package/analyzer-template/packages/{supabase → database}/src/lib/kysely/tables/userTeamsTable.ts +0 -0
  1979. /package/analyzer-template/packages/{supabase → database}/src/lib/kysely/tables/usersTable.ts +0 -0
  1980. /package/analyzer-template/packages/{supabase → database}/src/lib/kysely/upsertHelpers.ts +0 -0
  1981. /package/analyzer-template/packages/{supabase → database}/src/lib/kysely.ts +0 -0
  1982. /package/analyzer-template/packages/{supabase → database}/src/lib/loadAnalysisBranches.ts +0 -0
  1983. /package/analyzer-template/packages/{supabase → database}/src/lib/loadBackgroundJob.ts +0 -0
  1984. /package/analyzer-template/packages/{supabase → database}/src/lib/loadBranches.ts +0 -0
  1985. /package/analyzer-template/packages/{supabase → database}/src/lib/loadCommitBranches.ts +0 -0
  1986. /package/analyzer-template/packages/{supabase → database}/src/lib/loadCommitMetadata.ts +0 -0
  1987. /package/analyzer-template/packages/{supabase → database}/src/lib/loadMostRecentPreviousAnalysis.ts +0 -0
  1988. /package/analyzer-template/packages/{supabase → database}/src/lib/loadProject.ts +0 -0
  1989. /package/analyzer-template/packages/{supabase → database}/src/lib/loadScenario.ts +0 -0
  1990. /package/analyzer-template/packages/{supabase → database}/src/lib/nullsToUndefines.ts +0 -0
  1991. /package/analyzer-template/packages/{supabase → database}/src/lib/projectToDb.ts +0 -0
  1992. /package/analyzer-template/packages/{supabase → database}/src/lib/saveBackgroundEvent.ts +0 -0
  1993. /package/analyzer-template/packages/{supabase → database}/src/lib/saveFiles.ts +0 -0
  1994. /package/analyzer-template/packages/{supabase → database}/src/lib/saveStatement.ts +0 -0
  1995. /package/analyzer-template/packages/{supabase → database}/src/lib/scenarioCommentToDb.ts +0 -0
  1996. /package/analyzer-template/packages/{supabase → database}/src/lib/supabase.ts +0 -0
  1997. /package/analyzer-template/packages/{supabase → database}/src/lib/updateBackgroundJobProgress.ts +0 -0
  1998. /package/analyzer-template/packages/{supabase → database}/src/lib/updateEntityBranch.ts +0 -0
  1999. /package/analyzer-template/packages/{supabase → database}/src/lib/updateFreshAnalysisMetadata.ts +0 -0
  2000. /package/analyzer-template/packages/{supabase → database}/src/lib/updateFreshAnalysisStatus.ts +0 -0
  2001. /package/analyzer-template/packages/{supabase → database}/src/lib/updateFreshAnalysisStatusWithScenarios.ts +0 -0
  2002. /package/analyzer-template/packages/{supabase → database}/src/lib/upsertAnalyses.ts +0 -0
  2003. /package/analyzer-template/packages/{supabase → database}/src/lib/upsertAnalysesWithScenarios.ts +0 -0
  2004. /package/analyzer-template/packages/{supabase → database}/src/lib/upsertAnalysisBranches.ts +0 -0
  2005. /package/analyzer-template/packages/{supabase → database}/src/lib/upsertBackgroundJob.ts +0 -0
  2006. /package/analyzer-template/packages/{supabase → database}/src/lib/upsertBranches.ts +0 -0
  2007. /package/analyzer-template/packages/{supabase → database}/src/lib/upsertCommitBranches.ts +0 -0
  2008. /package/analyzer-template/packages/{supabase → database}/src/lib/upsertCommits.ts +0 -0
  2009. /package/analyzer-template/packages/{supabase → database}/src/lib/upsertEntities.ts +0 -0
  2010. /package/analyzer-template/packages/{supabase → database}/src/lib/upsertEntityBranches.ts +0 -0
  2011. /package/analyzer-template/packages/{supabase → database}/src/lib/upsertFiles.ts +0 -0
  2012. /package/analyzer-template/packages/{supabase → database}/src/lib/upsertGithubUser.ts +0 -0
  2013. /package/analyzer-template/packages/{supabase → database}/src/lib/upsertProjects.ts +0 -0
  2014. /package/analyzer-template/packages/{supabase → database}/src/lib/upsertScenarios.ts +0 -0
  2015. /package/analyzer-template/packages/{supabase → database}/src/lib/userScenarioToDb.ts +0 -0
  2016. /package/analyzer-template/packages/{supabase → database}/tsconfig.json +0 -0
  2017. /package/analyzer-template/packages/github/dist/{supabase → database}/index.d.ts +0 -0
  2018. /package/analyzer-template/packages/github/dist/{supabase → database}/index.js +0 -0
  2019. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/analysisBranchToDb.d.ts +0 -0
  2020. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/analysisBranchToDb.js +0 -0
  2021. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/analysisToDb.d.ts +0 -0
  2022. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/analysisToDb.js +0 -0
  2023. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/backgroundJobToDb.d.ts +0 -0
  2024. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/backgroundJobToDb.js +0 -0
  2025. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/branchToDb.d.ts +0 -0
  2026. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/branchToDb.js +0 -0
  2027. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/commitBranchToDb.d.ts +0 -0
  2028. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/commitBranchToDb.js +0 -0
  2029. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/commitToDb.d.ts +0 -0
  2030. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/commitToDb.js +0 -0
  2031. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/createOrUpdateBranchCommitStats.d.ts +0 -0
  2032. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/createOrUpdateBranchCommitStats.js +0 -0
  2033. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/createProject.d.ts +0 -0
  2034. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/createProject.js +0 -0
  2035. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/createRetryFetch.d.ts +0 -0
  2036. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/createRetryFetch.js +0 -0
  2037. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/dbToAnalysis.d.ts +0 -0
  2038. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/dbToAnalysis.js +0 -0
  2039. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/dbToAnalysisBranch.d.ts +0 -0
  2040. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/dbToAnalysisBranch.js +0 -0
  2041. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/dbToBackgroundJob.d.ts +0 -0
  2042. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/dbToBackgroundJob.js +0 -0
  2043. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/dbToBranch.d.ts +0 -0
  2044. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/dbToBranch.js +0 -0
  2045. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/dbToCommit.d.ts +0 -0
  2046. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/dbToCommit.js +0 -0
  2047. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/dbToCommitBranch.d.ts +0 -0
  2048. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/dbToCommitBranch.js +0 -0
  2049. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/dbToEntity.d.ts +0 -0
  2050. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/dbToEntity.js +0 -0
  2051. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/dbToEntityBranch.d.ts +0 -0
  2052. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/dbToEntityBranch.js +0 -0
  2053. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/dbToFile.d.ts +0 -0
  2054. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/dbToFile.js +0 -0
  2055. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/dbToProject.d.ts +0 -0
  2056. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/dbToProject.js +0 -0
  2057. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/dbToScenario.d.ts +0 -0
  2058. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/dbToScenario.js +0 -0
  2059. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/dbToScenarioComment.d.ts +0 -0
  2060. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/dbToScenarioComment.js +0 -0
  2061. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/dbToUserScenario.d.ts +0 -0
  2062. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/dbToUserScenario.js +0 -0
  2063. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/deleteBranch.d.ts +0 -0
  2064. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/deleteBranch.js +0 -0
  2065. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/deleteEntities.d.ts +0 -0
  2066. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/deleteEntities.js +0 -0
  2067. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/deleteFile.d.ts +0 -0
  2068. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/deleteFile.js +0 -0
  2069. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/deleteScenarios.d.ts +0 -0
  2070. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/deleteScenarios.js +0 -0
  2071. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/entityToDb.d.ts +0 -0
  2072. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/entityToDb.js +0 -0
  2073. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/fileToDb.d.ts +0 -0
  2074. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/fileToDb.js +0 -0
  2075. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/generateSha.d.ts +0 -0
  2076. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/generateSha.js +0 -0
  2077. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/jsonUpdateUtils.d.ts +0 -0
  2078. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/jsonUpdateUtils.js +0 -0
  2079. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/aggregationHelpers.d.ts +0 -0
  2080. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/aggregationHelpers.js +0 -0
  2081. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/schemaHelpers.d.ts +0 -0
  2082. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/schemaHelpers.js +0 -0
  2083. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/sqliteBooleanPlugin.d.ts +0 -0
  2084. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/sqliteBooleanPlugin.js +0 -0
  2085. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tableRelations.js +0 -0
  2086. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tableRelationsTypes.d.ts +0 -0
  2087. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tableRelationsTypes.js +0 -0
  2088. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/analysesTable.js +0 -0
  2089. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/analysisBranchesTable.d.ts +0 -0
  2090. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/analysisBranchesTable.js +0 -0
  2091. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/backgroundJobsTable.d.ts +0 -0
  2092. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/backgroundJobsTable.js +0 -0
  2093. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/branchesTable.d.ts +0 -0
  2094. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/branchesTable.js +0 -0
  2095. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/commitBranchesTable.d.ts +0 -0
  2096. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/commitBranchesTable.js +0 -0
  2097. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/entitiesTable.js +0 -0
  2098. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/entityBranchesTable.d.ts +0 -0
  2099. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/entityBranchesTable.js +0 -0
  2100. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/entityStatementsTable.d.ts +0 -0
  2101. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/entityStatementsTable.js +0 -0
  2102. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/filesTable.d.ts +0 -0
  2103. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/filesTable.js +0 -0
  2104. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/githubPayloadsTable.d.ts +0 -0
  2105. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/githubPayloadsTable.js +0 -0
  2106. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/githubUsersTable.d.ts +0 -0
  2107. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/githubUsersTable.js +0 -0
  2108. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/projectsTable.d.ts +0 -0
  2109. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/projectsTable.js +0 -0
  2110. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/scenarioCommentsTable.d.ts +0 -0
  2111. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/scenarioCommentsTable.js +0 -0
  2112. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/scenariosTable.js +0 -0
  2113. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/statementsTable.d.ts +0 -0
  2114. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/statementsTable.js +0 -0
  2115. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/teamsTable.d.ts +0 -0
  2116. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/teamsTable.js +0 -0
  2117. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/userScenariosTable.d.ts +0 -0
  2118. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/userScenariosTable.js +0 -0
  2119. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/userTeamsTable.d.ts +0 -0
  2120. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/userTeamsTable.js +0 -0
  2121. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/usersTable.d.ts +0 -0
  2122. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/tables/usersTable.js +0 -0
  2123. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/upsertHelpers.d.ts +0 -0
  2124. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/kysely/upsertHelpers.js +0 -0
  2125. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/loadAnalysis.d.ts +0 -0
  2126. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/loadAnalysisBranches.d.ts +0 -0
  2127. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/loadAnalysisBranches.js +0 -0
  2128. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/loadBackgroundJob.d.ts +0 -0
  2129. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/loadBackgroundJob.js +0 -0
  2130. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/loadBranch.d.ts +0 -0
  2131. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/loadBranches.d.ts +0 -0
  2132. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/loadBranches.js +0 -0
  2133. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/loadCommit.d.ts +0 -0
  2134. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/loadCommitBranches.d.ts +0 -0
  2135. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/loadCommitBranches.js +0 -0
  2136. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/loadCommitMetadata.d.ts +0 -0
  2137. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/loadCommitMetadata.js +0 -0
  2138. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/loadEntity.d.ts +0 -0
  2139. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/loadEntity.js +0 -0
  2140. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/loadEntityBranches.d.ts +0 -0
  2141. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/loadFile.d.ts +0 -0
  2142. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/loadFile.js +0 -0
  2143. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/loadFiles.d.ts +0 -0
  2144. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/loadFiles.js +0 -0
  2145. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/loadMostRecentPreviousAnalysis.d.ts +0 -0
  2146. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/loadMostRecentPreviousAnalysis.js +0 -0
  2147. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/loadProject.d.ts +0 -0
  2148. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/loadProject.js +0 -0
  2149. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/loadReadyToBeCapturedAnalyses.d.ts +0 -0
  2150. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/loadScenario.d.ts +0 -0
  2151. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/loadScenario.js +0 -0
  2152. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/loadStatement.js +0 -0
  2153. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/nullsToUndefines.d.ts +0 -0
  2154. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/nullsToUndefines.js +0 -0
  2155. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/projectToDb.d.ts +0 -0
  2156. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/projectToDb.js +0 -0
  2157. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/saveBackgroundEvent.d.ts +0 -0
  2158. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/saveBackgroundEvent.js +0 -0
  2159. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/saveEntityStatements.d.ts +0 -0
  2160. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/saveEntityStatements.js +0 -0
  2161. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/saveFiles.d.ts +0 -0
  2162. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/saveFiles.js +0 -0
  2163. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/saveStatement.d.ts +0 -0
  2164. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/saveStatement.js +0 -0
  2165. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/scenarioToDb.d.ts +0 -0
  2166. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/supabase.js +0 -0
  2167. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/updateBackgroundJobProgress.d.ts +0 -0
  2168. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/updateBackgroundJobProgress.js +0 -0
  2169. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/updateEntityBranch.d.ts +0 -0
  2170. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/updateEntityBranch.js +0 -0
  2171. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/updateFreshAnalysisMetadata.d.ts +0 -0
  2172. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/updateFreshAnalysisMetadata.js +0 -0
  2173. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/updateFreshAnalysisStatus.d.ts +0 -0
  2174. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/updateFreshAnalysisStatus.js +0 -0
  2175. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/updateFreshAnalysisStatusWithScenarios.d.ts +0 -0
  2176. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/updateFreshAnalysisStatusWithScenarios.js +0 -0
  2177. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/updateProjectMetadata.d.ts +0 -0
  2178. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/updateProjectMetadata.js +0 -0
  2179. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/upsertAnalyses.d.ts +0 -0
  2180. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/upsertAnalyses.js +0 -0
  2181. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/upsertAnalysesWithScenarios.d.ts +0 -0
  2182. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/upsertAnalysesWithScenarios.js +0 -0
  2183. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/upsertAnalysisBranches.d.ts +0 -0
  2184. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/upsertAnalysisBranches.js +0 -0
  2185. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/upsertBackgroundJob.d.ts +0 -0
  2186. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/upsertBackgroundJob.js +0 -0
  2187. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/upsertBranches.d.ts +0 -0
  2188. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/upsertBranches.js +0 -0
  2189. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/upsertCommitBranches.d.ts +0 -0
  2190. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/upsertCommitBranches.js +0 -0
  2191. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/upsertCommits.d.ts +0 -0
  2192. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/upsertCommits.js +0 -0
  2193. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/upsertEntities.d.ts +0 -0
  2194. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/upsertEntities.js +0 -0
  2195. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/upsertEntityBranches.d.ts +0 -0
  2196. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/upsertEntityBranches.js +0 -0
  2197. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/upsertFiles.d.ts +0 -0
  2198. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/upsertFiles.js +0 -0
  2199. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/upsertGithubUser.d.ts +0 -0
  2200. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/upsertGithubUser.js +0 -0
  2201. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/upsertProjects.d.ts +0 -0
  2202. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/upsertProjects.js +0 -0
  2203. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/upsertScenarios.d.ts +0 -0
  2204. /package/analyzer-template/packages/github/dist/{supabase → database}/src/lib/upsertScenarios.js +0 -0
  2205. /package/analyzer-template/{process → packages/process/src}/GlobalProcessManager.ts +0 -0
  2206. /package/analyzer-template/{process → packages/process/src}/ProcessManager.ts +0 -0
  2207. /package/analyzer-template/{process → packages/process/src}/index.ts +0 -0
  2208. /package/analyzer-template/{process → packages/process/src}/managedExecAsync.ts +0 -0
  2209. /package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-CMKNK2uU.css → styles-CMKNK2uU.css} +0 -0
  2210. /package/packages/{supabase → database}/index.js +0 -0
  2211. /package/packages/{supabase → database}/src/lib/analysisBranchToDb.js +0 -0
  2212. /package/packages/{supabase → database}/src/lib/analysisToDb.js +0 -0
  2213. /package/packages/{supabase → database}/src/lib/backgroundJobToDb.js +0 -0
  2214. /package/packages/{supabase → database}/src/lib/branchToDb.js +0 -0
  2215. /package/packages/{supabase → database}/src/lib/commitBranchToDb.js +0 -0
  2216. /package/packages/{supabase → database}/src/lib/commitToDb.js +0 -0
  2217. /package/packages/{supabase → database}/src/lib/createOrUpdateBranchCommitStats.js +0 -0
  2218. /package/packages/{supabase → database}/src/lib/createProject.js +0 -0
  2219. /package/packages/{supabase → database}/src/lib/createRetryFetch.js +0 -0
  2220. /package/packages/{supabase → database}/src/lib/dbToAnalysis.js +0 -0
  2221. /package/packages/{supabase → database}/src/lib/dbToAnalysisBranch.js +0 -0
  2222. /package/packages/{supabase → database}/src/lib/dbToBackgroundJob.js +0 -0
  2223. /package/packages/{supabase → database}/src/lib/dbToBranch.js +0 -0
  2224. /package/packages/{supabase → database}/src/lib/dbToCommit.js +0 -0
  2225. /package/packages/{supabase → database}/src/lib/dbToCommitBranch.js +0 -0
  2226. /package/packages/{supabase → database}/src/lib/dbToEntity.js +0 -0
  2227. /package/packages/{supabase → database}/src/lib/dbToEntityBranch.js +0 -0
  2228. /package/packages/{supabase → database}/src/lib/dbToFile.js +0 -0
  2229. /package/packages/{supabase → database}/src/lib/dbToProject.js +0 -0
  2230. /package/packages/{supabase → database}/src/lib/dbToScenario.js +0 -0
  2231. /package/packages/{supabase → database}/src/lib/dbToScenarioComment.js +0 -0
  2232. /package/packages/{supabase → database}/src/lib/dbToUserScenario.js +0 -0
  2233. /package/packages/{supabase → database}/src/lib/deleteBranch.js +0 -0
  2234. /package/packages/{supabase → database}/src/lib/deleteEntities.js +0 -0
  2235. /package/packages/{supabase → database}/src/lib/deleteFile.js +0 -0
  2236. /package/packages/{supabase → database}/src/lib/deleteScenarios.js +0 -0
  2237. /package/packages/{supabase → database}/src/lib/entityToDb.js +0 -0
  2238. /package/packages/{supabase → database}/src/lib/fileToDb.js +0 -0
  2239. /package/packages/{supabase → database}/src/lib/generateSha.js +0 -0
  2240. /package/packages/{supabase → database}/src/lib/jsonUpdateUtils.js +0 -0
  2241. /package/packages/{supabase → database}/src/lib/kysely/aggregationHelpers.js +0 -0
  2242. /package/packages/{supabase → database}/src/lib/kysely/schemaHelpers.js +0 -0
  2243. /package/packages/{supabase → database}/src/lib/kysely/sqliteBooleanPlugin.js +0 -0
  2244. /package/packages/{supabase → database}/src/lib/kysely/tableRelations.js +0 -0
  2245. /package/packages/{supabase → database}/src/lib/kysely/tableRelationsTypes.js +0 -0
  2246. /package/packages/{supabase → database}/src/lib/kysely/tables/analysesTable.js +0 -0
  2247. /package/packages/{supabase → database}/src/lib/kysely/tables/analysisBranchesTable.js +0 -0
  2248. /package/packages/{supabase → database}/src/lib/kysely/tables/backgroundJobsTable.js +0 -0
  2249. /package/packages/{supabase → database}/src/lib/kysely/tables/branchesTable.js +0 -0
  2250. /package/packages/{supabase → database}/src/lib/kysely/tables/commitBranchesTable.js +0 -0
  2251. /package/packages/{supabase → database}/src/lib/kysely/tables/entitiesTable.js +0 -0
  2252. /package/packages/{supabase → database}/src/lib/kysely/tables/entityBranchesTable.js +0 -0
  2253. /package/packages/{supabase → database}/src/lib/kysely/tables/entityStatementsTable.js +0 -0
  2254. /package/packages/{supabase → database}/src/lib/kysely/tables/filesTable.js +0 -0
  2255. /package/packages/{supabase → database}/src/lib/kysely/tables/githubPayloadsTable.js +0 -0
  2256. /package/packages/{supabase → database}/src/lib/kysely/tables/githubUsersTable.js +0 -0
  2257. /package/packages/{supabase → database}/src/lib/kysely/tables/projectsTable.js +0 -0
  2258. /package/packages/{supabase → database}/src/lib/kysely/tables/scenarioCommentsTable.js +0 -0
  2259. /package/packages/{supabase → database}/src/lib/kysely/tables/scenariosTable.js +0 -0
  2260. /package/packages/{supabase → database}/src/lib/kysely/tables/statementsTable.js +0 -0
  2261. /package/packages/{supabase → database}/src/lib/kysely/tables/teamsTable.js +0 -0
  2262. /package/packages/{supabase → database}/src/lib/kysely/tables/userScenariosTable.js +0 -0
  2263. /package/packages/{supabase → database}/src/lib/kysely/tables/userTeamsTable.js +0 -0
  2264. /package/packages/{supabase → database}/src/lib/kysely/tables/usersTable.js +0 -0
  2265. /package/packages/{supabase → database}/src/lib/kysely/upsertHelpers.js +0 -0
  2266. /package/packages/{supabase → database}/src/lib/loadAnalysisBranches.js +0 -0
  2267. /package/packages/{supabase → database}/src/lib/loadBackgroundJob.js +0 -0
  2268. /package/packages/{supabase → database}/src/lib/loadBranches.js +0 -0
  2269. /package/packages/{supabase → database}/src/lib/loadCommitBranches.js +0 -0
  2270. /package/packages/{supabase → database}/src/lib/loadCommitMetadata.js +0 -0
  2271. /package/packages/{supabase → database}/src/lib/loadEntity.js +0 -0
  2272. /package/packages/{supabase → database}/src/lib/loadFile.js +0 -0
  2273. /package/packages/{supabase → database}/src/lib/loadFiles.js +0 -0
  2274. /package/packages/{supabase → database}/src/lib/loadMostRecentPreviousAnalysis.js +0 -0
  2275. /package/packages/{supabase → database}/src/lib/loadProject.js +0 -0
  2276. /package/packages/{supabase → database}/src/lib/loadScenario.js +0 -0
  2277. /package/packages/{supabase → database}/src/lib/loadStatement.js +0 -0
  2278. /package/packages/{supabase → database}/src/lib/nullsToUndefines.js +0 -0
  2279. /package/packages/{supabase → database}/src/lib/projectToDb.js +0 -0
  2280. /package/packages/{supabase → database}/src/lib/saveBackgroundEvent.js +0 -0
  2281. /package/packages/{supabase → database}/src/lib/saveEntityStatements.js +0 -0
  2282. /package/packages/{supabase → database}/src/lib/saveFiles.js +0 -0
  2283. /package/packages/{supabase → database}/src/lib/saveStatement.js +0 -0
  2284. /package/packages/{supabase → database}/src/lib/supabase.js +0 -0
  2285. /package/packages/{supabase → database}/src/lib/updateBackgroundJobProgress.js +0 -0
  2286. /package/packages/{supabase → database}/src/lib/updateEntityBranch.js +0 -0
  2287. /package/packages/{supabase → database}/src/lib/updateFreshAnalysisMetadata.js +0 -0
  2288. /package/packages/{supabase → database}/src/lib/updateFreshAnalysisStatus.js +0 -0
  2289. /package/packages/{supabase → database}/src/lib/updateFreshAnalysisStatusWithScenarios.js +0 -0
  2290. /package/packages/{supabase → database}/src/lib/updateProjectMetadata.js +0 -0
  2291. /package/packages/{supabase → database}/src/lib/upsertAnalyses.js +0 -0
  2292. /package/packages/{supabase → database}/src/lib/upsertAnalysesWithScenarios.js +0 -0
  2293. /package/packages/{supabase → database}/src/lib/upsertAnalysisBranches.js +0 -0
  2294. /package/packages/{supabase → database}/src/lib/upsertBackgroundJob.js +0 -0
  2295. /package/packages/{supabase → database}/src/lib/upsertBranches.js +0 -0
  2296. /package/packages/{supabase → database}/src/lib/upsertCommitBranches.js +0 -0
  2297. /package/packages/{supabase → database}/src/lib/upsertCommits.js +0 -0
  2298. /package/packages/{supabase → database}/src/lib/upsertEntities.js +0 -0
  2299. /package/packages/{supabase → database}/src/lib/upsertEntityBranches.js +0 -0
  2300. /package/packages/{supabase → database}/src/lib/upsertFiles.js +0 -0
  2301. /package/packages/{supabase → database}/src/lib/upsertGithubUser.js +0 -0
  2302. /package/packages/{supabase → database}/src/lib/upsertProjects.js +0 -0
  2303. /package/packages/{supabase → database}/src/lib/upsertScenarios.js +0 -0
  2304. /package/{background/src/lib/process → packages/process/src}/GlobalProcessManager.js +0 -0
  2305. /package/{background/src/lib/process → packages/process/src}/index.js +0 -0
  2306. /package/{background/src/lib/process → packages/process/src}/managedExecAsync.js +0 -0
@@ -1,8 +1,13 @@
1
1
  import ts from 'typescript';
2
- import { AnalysisContext, ConditionalUsage } from './types';
2
+ import * as crypto from 'crypto';
3
+ import {
4
+ AnalysisContext,
5
+ CompoundConditional,
6
+ ConditionalUsage,
7
+ } from './types';
3
8
  import { StructuredPath } from './paths';
4
9
  import { nodeToSource } from './nodeToSource';
5
- import { methodRegistry } from './methodSemantics';
10
+ import { methodRegistry, ArrayPushSemantics } from './methodSemantics';
6
11
  import {
7
12
  isArithmeticOperator,
8
13
  isAssignmentOperator,
@@ -14,6 +19,382 @@ import {
14
19
  unwrapExpression,
15
20
  } from './sharedPatterns';
16
21
  import { processBindingPattern } from './processBindings';
22
+ import {
23
+ extractConditionalEffectsFromTernary,
24
+ findUseStateSetters,
25
+ } from './conditionalEffectsExtractor';
26
+ import { detectArrayDerivedPattern } from './arrayDerivationDetector';
27
+
28
+ /**
29
+ * Checks if a JSX element has props that reference variables from the parent scope.
30
+ * This is used to detect unconditionally-rendered children that should have their
31
+ * execution flows merged into the parent.
32
+ *
33
+ * We want to track children where the parent controls data that affects the child's
34
+ * conditional rendering. Static props (like title="Dashboard") don't need tracking
35
+ * because they don't create variable execution flows.
36
+ *
37
+ * Examples:
38
+ * - <WorkoutsView workouts={workouts} /> → true (workouts is a variable)
39
+ * - <ItemList items={items} count={count} /> → true (items, count are variables)
40
+ * - <Header title="Dashboard" /> → false (static string)
41
+ * - <Footer /> → false (no props)
42
+ * - <Button onClick={handleClick} /> → false (only callback, no data props)
43
+ *
44
+ * @returns true if the component has at least one prop that references a variable
45
+ * (excluding callbacks which typically start with 'on' or 'handle')
46
+ */
47
+ function hasDataPropsFromParent(
48
+ node: ts.JsxElement | ts.JsxSelfClosingElement,
49
+ componentName: string,
50
+ ): { hasDataProps: boolean; dataProps: string[] } {
51
+ const attributes = ts.isJsxElement(node)
52
+ ? node.openingElement.attributes.properties
53
+ : node.attributes.properties;
54
+
55
+ const dataProps: string[] = [];
56
+
57
+ for (const attr of attributes) {
58
+ // Spread attributes always reference parent data: {...props}
59
+ if (ts.isJsxSpreadAttribute(attr)) {
60
+ const spreadText = attr.expression?.getText() || '...spread';
61
+ dataProps.push(`{...${spreadText}}`);
62
+ console.log(
63
+ `[UnconditionalChild] ${componentName}: Found spread attribute {${spreadText}}`,
64
+ );
65
+ continue;
66
+ }
67
+
68
+ if (ts.isJsxAttribute(attr)) {
69
+ const propName = attr.name.getText();
70
+
71
+ // Skip callback props - they don't create data-driven execution flows
72
+ // Callbacks typically start with 'on' (onClick, onChange) or 'handle' (handleSubmit)
73
+ if (
74
+ propName.startsWith('on') ||
75
+ propName.startsWith('handle') ||
76
+ propName === 'ref'
77
+ ) {
78
+ console.log(
79
+ `[UnconditionalChild] ${componentName}: Skipping callback prop '${propName}'`,
80
+ );
81
+ continue;
82
+ }
83
+
84
+ // Check if the prop value is a JSX expression (references a variable)
85
+ // vs a string literal which is static
86
+ if (attr.initializer) {
87
+ if (ts.isJsxExpression(attr.initializer)) {
88
+ // JSX expression like prop={value} - this references a variable
89
+ // Could be a simple identifier, property access, or more complex expression
90
+ const expression = attr.initializer.expression;
91
+ if (expression) {
92
+ // Skip if it's just a function/arrow function (callback)
93
+ if (
94
+ ts.isArrowFunction(expression) ||
95
+ ts.isFunctionExpression(expression)
96
+ ) {
97
+ console.log(
98
+ `[UnconditionalChild] ${componentName}: Skipping inline callback prop '${propName}'`,
99
+ );
100
+ continue;
101
+ }
102
+ // This is a data prop that references parent state/props
103
+ const exprText = expression.getText();
104
+ dataProps.push(`${propName}={${exprText}}`);
105
+ console.log(
106
+ `[UnconditionalChild] ${componentName}: Found data prop '${propName}' = {${exprText}}`,
107
+ );
108
+ }
109
+ } else {
110
+ // String literals like prop="value" are static
111
+ console.log(
112
+ `[UnconditionalChild] ${componentName}: Skipping static prop '${propName}'`,
113
+ );
114
+ }
115
+ }
116
+ }
117
+ }
118
+
119
+ const hasDataProps = dataProps.length > 0;
120
+ if (hasDataProps) {
121
+ console.log(
122
+ `[UnconditionalChild] ${componentName}: Has ${dataProps.length} data props: [${dataProps.join(', ')}]`,
123
+ );
124
+ } else {
125
+ console.log(
126
+ `[UnconditionalChild] ${componentName}: No data props found, will NOT track`,
127
+ );
128
+ }
129
+
130
+ return { hasDataProps, dataProps };
131
+ }
132
+
133
+ /**
134
+ * Extracts the component name from a JSX element.
135
+ * Returns null for intrinsic elements (div, span, etc.) since we only care about
136
+ * custom components for gating condition tracking.
137
+ *
138
+ * Examples:
139
+ * - <ChildViewer /> → "ChildViewer"
140
+ * - <ScenarioViewer scenario={...} /> → "ScenarioViewer"
141
+ * - <div> → null (intrinsic element)
142
+ */
143
+ function getComponentNameFromJsx(
144
+ node: ts.JsxElement | ts.JsxSelfClosingElement,
145
+ ): string | null {
146
+ let tagName: ts.JsxTagNameExpression;
147
+
148
+ if (ts.isJsxElement(node)) {
149
+ tagName = node.openingElement.tagName;
150
+ } else {
151
+ tagName = node.tagName;
152
+ }
153
+
154
+ // Get the text of the tag name
155
+ const name = tagName.getText();
156
+
157
+ // Check if it's a custom component (starts with uppercase) vs intrinsic element
158
+ // Custom components start with uppercase: <MyComponent />
159
+ // Intrinsic elements start with lowercase: <div />
160
+ if (
161
+ name &&
162
+ name[0] === name[0].toUpperCase() &&
163
+ name[0] !== name[0].toLowerCase()
164
+ ) {
165
+ return name;
166
+ }
167
+
168
+ return null;
169
+ }
170
+
171
+ /**
172
+ * Extracts condition paths from a logical AND chain expression.
173
+ * Used for creating gating conditions for child components.
174
+ *
175
+ * Example: `hasData && isReady && <Component />` returns ['hasData', 'isReady']
176
+ */
177
+ function extractConditionPathsFromAndChain(
178
+ expr: ts.Expression,
179
+ sourceFile: ts.SourceFile,
180
+ ): string[] {
181
+ const paths: string[] = [];
182
+ const unwrapped = unwrapExpression(expr);
183
+
184
+ if (
185
+ ts.isBinaryExpression(unwrapped) &&
186
+ unwrapped.operatorToken.kind === ts.SyntaxKind.AmpersandAmpersandToken
187
+ ) {
188
+ // Recursively get conditions from left side
189
+ paths.push(
190
+ ...extractConditionPathsFromAndChain(unwrapped.left, sourceFile),
191
+ );
192
+
193
+ // Process right side if it's not JSX (JSX is the consequence, not a condition)
194
+ const rightUnwrapped = unwrapExpression(unwrapped.right);
195
+ if (
196
+ !ts.isJsxElement(rightUnwrapped) &&
197
+ !ts.isJsxSelfClosingElement(rightUnwrapped) &&
198
+ !ts.isJsxFragment(rightUnwrapped)
199
+ ) {
200
+ paths.push(
201
+ ...extractConditionPathsFromAndChain(unwrapped.right, sourceFile),
202
+ );
203
+ }
204
+ } else {
205
+ // Base case: extract path from this expression
206
+ const path = StructuredPath.fromNode(unwrapped, sourceFile);
207
+ if (path) {
208
+ paths.push(path.toString());
209
+ }
210
+ }
211
+
212
+ return paths;
213
+ }
214
+
215
+ /**
216
+ * Finds the rightmost JSX element in an && chain.
217
+ * Example: `a && b && <Component />` returns <Component />
218
+ */
219
+ function findJsxInAndChain(
220
+ expr: ts.Expression,
221
+ ): ts.JsxElement | ts.JsxSelfClosingElement | null {
222
+ const unwrapped = unwrapExpression(expr);
223
+
224
+ if (ts.isJsxElement(unwrapped) || ts.isJsxSelfClosingElement(unwrapped)) {
225
+ return unwrapped;
226
+ }
227
+
228
+ if (
229
+ ts.isBinaryExpression(unwrapped) &&
230
+ unwrapped.operatorToken.kind === ts.SyntaxKind.AmpersandAmpersandToken
231
+ ) {
232
+ // Check right side first (most common case: condition && <Jsx />)
233
+ const rightResult = findJsxInAndChain(unwrapped.right);
234
+ if (rightResult) return rightResult;
235
+
236
+ // Also check left side for rare cases
237
+ return findJsxInAndChain(unwrapped.left);
238
+ }
239
+
240
+ return null;
241
+ }
242
+
243
+ /**
244
+ * Fix 32: Finds a JSX fragment in an && chain.
245
+ * Example: `activeTab && <><ChildA /><ChildB /></>` returns the fragment
246
+ * This is needed to propagate parent conditions through fragments.
247
+ */
248
+ function findJsxFragmentInAndChain(expr: ts.Expression): ts.JsxFragment | null {
249
+ const unwrapped = unwrapExpression(expr);
250
+
251
+ if (ts.isJsxFragment(unwrapped)) {
252
+ return unwrapped;
253
+ }
254
+
255
+ if (
256
+ ts.isBinaryExpression(unwrapped) &&
257
+ unwrapped.operatorToken.kind === ts.SyntaxKind.AmpersandAmpersandToken
258
+ ) {
259
+ // Check right side first (most common case: condition && <></>)
260
+ const rightResult = findJsxFragmentInAndChain(unwrapped.right);
261
+ if (rightResult) return rightResult;
262
+
263
+ // Also check left side for rare cases
264
+ return findJsxFragmentInAndChain(unwrapped.left);
265
+ }
266
+
267
+ return null;
268
+ }
269
+
270
+ /**
271
+ * Detects if a property access looks like an environment variable store access.
272
+ * Matches patterns like `env.DATABASE_URL`, `env.IS_FORMBRICKS_CLOUD`, etc.
273
+ * where the object is named "env" and the property looks like an env var name.
274
+ */
275
+ function isEnvStoreAccess(fullText: string): boolean {
276
+ // Match: env.SOME_VAR or env.someVar (but object must be exactly "env")
277
+ // This catches patterns from @t3-oss/env-nextjs and similar packages
278
+ const envStorePattern = /^env\.[A-Z_][A-Z0-9_]*$/;
279
+ return envStorePattern.test(fullText);
280
+ }
281
+
282
+ /**
283
+ * Converts a call expression argument to a StructuredPath.
284
+ *
285
+ * IMPORTANT: We always use the original source text for callbacks, never cyScope names.
286
+ * cyScope names are internal identifiers for child scopes and should NEVER appear
287
+ * in schema paths or call signatures. Using cyScope names causes data merge conflicts
288
+ * because the same callback gets different identifiers in different contexts.
289
+ */
290
+ function getArgPathForCallSignature(
291
+ arg: ts.Expression,
292
+ context: AnalysisContext,
293
+ ): StructuredPath {
294
+ // Always use the standard path conversion - never replace with cyScope names
295
+ return (
296
+ StructuredPath.fromNode(arg, context.sourceFile) ||
297
+ nodeToSource(arg, context.sourceFile)
298
+ );
299
+ }
300
+
301
+ /**
302
+ * Builds a StructuredPath for a call expression using the original source text.
303
+ *
304
+ * IMPORTANT: This function ensures consistent call signatures by always using
305
+ * the original callback text, never cyScope names. This prevents schema path
306
+ * conflicts where the same call would have different paths.
307
+ */
308
+ function buildCallPathFromSource(
309
+ node: ts.CallExpression,
310
+ context: AnalysisContext,
311
+ ): StructuredPath | null {
312
+ const expression = node.expression;
313
+
314
+ // Convert arguments using original source text
315
+ const argPaths = node.arguments.map((arg) =>
316
+ getArgPathForCallSignature(arg, context),
317
+ );
318
+
319
+ // Handle type arguments if present
320
+ let typeArgs: string[] | undefined = undefined;
321
+ if (node.typeArguments && node.typeArguments.length > 0) {
322
+ typeArgs = node.typeArguments.map((typeArg) =>
323
+ typeArg.getText(context.sourceFile),
324
+ );
325
+ }
326
+
327
+ if (ts.isIdentifier(expression)) {
328
+ // Simple function call: func(arg1, arg2)
329
+ return StructuredPath.fromFunction(expression.text, argPaths, typeArgs);
330
+ } else if (ts.isPropertyAccessExpression(expression)) {
331
+ // Method call: obj.method(arg1, arg2)
332
+ const objPath = StructuredPath.fromNode(
333
+ expression.expression,
334
+ context.sourceFile,
335
+ );
336
+ if (!objPath) return null;
337
+ return objPath
338
+ .withProperty(expression.name.text)
339
+ .withFunctionCall(argPaths, typeArgs);
340
+ } else if (ts.isCallExpression(expression)) {
341
+ // Chained call: func(arg1)(arg2)
342
+ const funcPath = buildCallPathFromSource(expression, context);
343
+ if (!funcPath) return null;
344
+ return funcPath.withFunctionCall(argPaths, typeArgs);
345
+ } else if (ts.isElementAccessExpression(expression)) {
346
+ // Element access call: obj[key](args)
347
+ const basePath = StructuredPath.fromNode(expression, context.sourceFile);
348
+ if (!basePath) return null;
349
+ return basePath.withFunctionCall(argPaths, typeArgs);
350
+ } else {
351
+ // Complex call expression
352
+ const basePath = StructuredPath.fromNode(expression, context.sourceFile);
353
+ if (!basePath) return null;
354
+ return basePath.withFunctionCall(argPaths, typeArgs);
355
+ }
356
+ }
357
+
358
+ /**
359
+ * Checks if an expression is likely an array type.
360
+ * Uses TypeScript's type checker when available, falls back to heuristics.
361
+ */
362
+ function isLikelyArrayType(
363
+ expr: ts.Expression,
364
+ typeChecker: ts.TypeChecker | undefined,
365
+ ): boolean {
366
+ if (typeChecker) {
367
+ try {
368
+ const type = typeChecker.getTypeAtLocation(expr);
369
+ const typeString = typeChecker.typeToString(type);
370
+ // Check for common array type patterns:
371
+ // - T[] syntax (includes any[], string[], etc.)
372
+ // - Array<T> syntax
373
+ // - ReadonlyArray<T> syntax
374
+ // - readonly T[] syntax (starts with "readonly " and ends with "[]")
375
+ if (
376
+ typeString.includes('[]') ||
377
+ typeString.startsWith('Array<') ||
378
+ typeString.startsWith('ReadonlyArray<')
379
+ ) {
380
+ return true;
381
+ }
382
+ // Check if it's a tuple or array literal type via TypeScript's type flags
383
+ if (type.getFlags() & ts.TypeFlags.Object) {
384
+ const objectType = type as ts.ObjectType;
385
+ if (
386
+ objectType.objectFlags & ts.ObjectFlags.Tuple ||
387
+ objectType.objectFlags & ts.ObjectFlags.ArrayLiteral
388
+ ) {
389
+ return true;
390
+ }
391
+ }
392
+ } catch {
393
+ // Type checking can fail in some edge cases, fall through to false
394
+ }
395
+ }
396
+ return false;
397
+ }
17
398
 
18
399
  /**
19
400
  * Marks variables used in truthiness checks as potentially undefined.
@@ -73,131 +454,1008 @@ export function markConditionVariablesAsNullable(
73
454
  }
74
455
 
75
456
  /**
76
- * Extracts conditional usages from a condition expression for key attribute detection.
77
- * This function identifies which attributes are used in conditionals and how they're used.
457
+ * Helper to extract source location from an AST node
458
+ */
459
+ function getSourceLocation(
460
+ node: ts.Node,
461
+ sourceFile: ts.SourceFile,
462
+ ): ConditionalUsage['sourceLocation'] {
463
+ const start = node.getStart(sourceFile);
464
+ const { line, character } = sourceFile.getLineAndCharacterOfPosition(start);
465
+ const codeSnippet = node.getText(sourceFile);
466
+
467
+ return {
468
+ lineNumber: line + 1, // Convert to 1-based
469
+ column: character,
470
+ codeSnippet:
471
+ codeSnippet.length > 100
472
+ ? codeSnippet.slice(0, 100) + '...'
473
+ : codeSnippet,
474
+ };
475
+ }
476
+
477
+ /**
478
+ * Extracts the root array path from an expression that ends with .map().
479
+ * Handles chained methods like .filter().map(), .slice().map(), etc.
78
480
  *
79
- * @param condition The condition expression to analyze
481
+ * Examples:
482
+ * - items.map(...) → "items"
483
+ * - data.users.map(...) → "data.users"
484
+ * - items.filter(...).map(...) → "items"
485
+ * - items.slice(0, 5).map(...) → "items"
486
+ */
487
+ function extractArrayPathFromMapCall(
488
+ expr: ts.CallExpression,
489
+ sourceFile: ts.SourceFile,
490
+ ): string | null {
491
+ // Walk up the chain to find the root array
492
+ let current: ts.Expression = expr.expression;
493
+
494
+ while (ts.isPropertyAccessExpression(current)) {
495
+ const methodName = current.name.getText(sourceFile);
496
+
497
+ // Common array methods that return arrays (so we keep going up)
498
+ const arrayReturningMethods = [
499
+ 'map',
500
+ 'filter',
501
+ 'slice',
502
+ 'concat',
503
+ 'flat',
504
+ 'flatMap',
505
+ 'reverse',
506
+ 'sort',
507
+ 'toReversed',
508
+ 'toSorted',
509
+ 'toSpliced',
510
+ ];
511
+
512
+ if (arrayReturningMethods.includes(methodName)) {
513
+ const objectExpr = current.expression;
514
+
515
+ // If the object is a call expression (chained method), keep going
516
+ if (ts.isCallExpression(objectExpr)) {
517
+ current = objectExpr.expression;
518
+ } else {
519
+ // Found the root - it's an identifier or property access
520
+ const path = StructuredPath.fromNode(objectExpr, sourceFile);
521
+ return path ? path.toString() : null;
522
+ }
523
+ } else {
524
+ // Not an array method we recognize
525
+ break;
526
+ }
527
+ }
528
+
529
+ return null;
530
+ }
531
+
532
+ /**
533
+ * Extracts JSX rendering usages from a JSX expression.
534
+ * Detects:
535
+ * - array.map() calls → 'array-map' type
536
+ * - string interpolations (identifiers/property access) → 'text-interpolation' type
537
+ *
538
+ * Recursively searches inside && chains and ternary expressions.
539
+ *
540
+ * @param expr The expression inside {expr}
80
541
  * @param context The analysis context
81
- * @param location Where this condition appears (if, ternary, logical-and, switch)
82
542
  */
83
- export function extractConditionalUsage(
84
- condition: ts.Expression,
543
+ function extractJsxRenderingUsage(
544
+ expr: ts.Expression,
85
545
  context: AnalysisContext,
86
- location: ConditionalUsage['location'],
87
546
  ): void {
88
- const unwrapped = unwrapExpression(condition);
547
+ const unwrapped = unwrapExpression(expr);
548
+ const sourceLocation = getSourceLocation(expr, context.sourceFile);
89
549
 
90
- // Handle binary expressions with && (logical AND chains)
91
- // Example: `a && b && <Component />` - both a and b are conditional checks
92
- if (
550
+ // Detect array.map() calls
551
+ if (ts.isCallExpression(unwrapped)) {
552
+ const calleeExpr = unwrapped.expression;
553
+
554
+ if (ts.isPropertyAccessExpression(calleeExpr)) {
555
+ const methodName = calleeExpr.name.getText(context.sourceFile);
556
+
557
+ if (methodName === 'map') {
558
+ const arrayPath = extractArrayPathFromMapCall(
559
+ unwrapped,
560
+ context.sourceFile,
561
+ );
562
+
563
+ if (arrayPath) {
564
+ context.addJsxRenderingUsage({
565
+ path: arrayPath,
566
+ renderingType: 'array-map',
567
+ valueType: 'array',
568
+ sourceLocation,
569
+ });
570
+ }
571
+ }
572
+ }
573
+ }
574
+ // Detect simple string interpolations: {title} or {user.name}
575
+ else if (
576
+ ts.isIdentifier(unwrapped) ||
577
+ ts.isPropertyAccessExpression(unwrapped)
578
+ ) {
579
+ const path = StructuredPath.fromNode(unwrapped, context.sourceFile);
580
+
581
+ if (path) {
582
+ const pathStr = path.toString();
583
+ const typeInfo = context.getTypeInfo(path);
584
+
585
+ // Only track as text interpolation if it's a string type
586
+ // Check for 'string' type, or types that contain 'string' (but not 'string[]')
587
+ if (
588
+ typeInfo === 'string' ||
589
+ (typeInfo &&
590
+ typeInfo.includes('string') &&
591
+ !typeInfo.includes('string[]'))
592
+ ) {
593
+ context.addJsxRenderingUsage({
594
+ path: pathStr,
595
+ renderingType: 'text-interpolation',
596
+ valueType: 'string',
597
+ sourceLocation,
598
+ });
599
+ }
600
+ }
601
+ }
602
+ // Recursively search inside && chains: {showList && items.map(...)}
603
+ else if (
93
604
  ts.isBinaryExpression(unwrapped) &&
94
605
  unwrapped.operatorToken.kind === ts.SyntaxKind.AmpersandAmpersandToken
95
606
  ) {
96
- // Recursively process left side
97
- extractConditionalUsage(unwrapped.left, context, location);
607
+ // Check the right side of the && chain (where .map() typically appears)
608
+ const rightSide = unwrapExpression(unwrapped.right);
609
+ extractJsxRenderingUsage(rightSide, context);
610
+ // Also check nested && chains on the left
611
+ extractJsxRenderingUsage(unwrapped.left, context);
612
+ }
613
+ // Recursively search inside ternaries: {isEmpty ? null : items.map(...)}
614
+ else if (ts.isConditionalExpression(unwrapped)) {
615
+ extractJsxRenderingUsage(unwrapped.whenTrue, context);
616
+ extractJsxRenderingUsage(unwrapped.whenFalse, context);
617
+ }
618
+ }
619
+
620
+ /**
621
+ * Counts the number of conditions in an && chain (excluding JSX consequence)
622
+ */
623
+ function countConditionsInAndChain(expr: ts.Expression): number {
624
+ const unwrapped = unwrapExpression(expr);
98
625
 
99
- // Process right side if it's not JSX (JSX is the consequence, not the condition)
626
+ if (
627
+ ts.isBinaryExpression(unwrapped) &&
628
+ unwrapped.operatorToken.kind === ts.SyntaxKind.AmpersandAmpersandToken
629
+ ) {
630
+ const leftCount = countConditionsInAndChain(unwrapped.left);
100
631
  const rightUnwrapped = unwrapExpression(unwrapped.right);
101
632
  const isJsxConsequence =
102
633
  ts.isJsxElement(rightUnwrapped) ||
103
634
  ts.isJsxSelfClosingElement(rightUnwrapped) ||
104
635
  ts.isJsxFragment(rightUnwrapped);
105
636
 
106
- if (!isJsxConsequence) {
107
- extractConditionalUsage(unwrapped.right, context, location);
637
+ if (isJsxConsequence) {
638
+ return leftCount;
108
639
  }
109
- return;
640
+ return leftCount + countConditionsInAndChain(unwrapped.right);
110
641
  }
111
642
 
112
- // Handle binary expressions with || (logical OR)
113
- if (
114
- ts.isBinaryExpression(unwrapped) &&
115
- unwrapped.operatorToken.kind === ts.SyntaxKind.BarBarToken
116
- ) {
117
- // Both sides of || are conditional checks
118
- extractConditionalUsage(unwrapped.left, context, location);
119
- extractConditionalUsage(unwrapped.right, context, location);
643
+ // Single condition (not an && chain)
644
+ return 1;
645
+ }
646
+
647
+ /**
648
+ * Chain tracking info for compound conditionals
649
+ */
650
+ interface ChainInfo {
651
+ chainId: string;
652
+ chainLength: number;
653
+ chainExpression: string;
654
+ currentPosition: number;
655
+ compound: CompoundConditional;
656
+ /**
657
+ * When processing OR expressions within an && chain, this tracks the
658
+ * current OR group ID. Conditions added while this is set will be marked
659
+ * as OR alternatives (only one needs to be true).
660
+ */
661
+ currentOrGroupId?: string;
662
+ }
663
+
664
+ /**
665
+ * Parent gating condition accumulated during JSX traversal.
666
+ * Used to track conditions from parent && chains that gate child components.
667
+ */
668
+ interface ParentGatingCondition {
669
+ path: string;
670
+ sourceLocation: { lineNumber: number; column: number; codeSnippet: string };
671
+ isNegated?: boolean;
672
+ }
673
+
674
+ /**
675
+ * Extracts conditionals from JSX elements by recursively traversing children.
676
+ *
677
+ * This is CRITICAL for extracting compound conditionals from JSX expressions
678
+ * like `{hasNewerVersion && !isActive && <Banner />}`.
679
+ *
680
+ * This function is called BEFORE the child boundary check in processExpression
681
+ * because JSX elements are NOT scopes - their expressions use variables from
682
+ * the parent scope and should have their conditionals extracted regardless of
683
+ * whether the JSX is within a child boundary.
684
+ *
685
+ * Fix 32: Added parentConditions parameter to track gating conditions from
686
+ * parent && chains. When we find a component nested inside multiple conditionals
687
+ * like `{activeTab && <>{ternary ? ... : <Component />}</>}`, ALL parent
688
+ * conditions should be added as gating conditions for the component.
689
+ *
690
+ * @param node The JSX element, self-closing element, or fragment to traverse
691
+ * @param context The analysis context
692
+ * @param parentConditions Accumulated gating conditions from parent && chains
693
+ */
694
+ function extractConditionalsFromJsx(
695
+ node: ts.JsxElement | ts.JsxSelfClosingElement | ts.JsxFragment,
696
+ context: AnalysisContext,
697
+ parentConditions: ParentGatingCondition[] = [],
698
+ ): void {
699
+ // Get children to process
700
+ let children: ts.NodeArray<ts.JsxChild> | undefined;
701
+
702
+ if (ts.isJsxElement(node)) {
703
+ children = node.children;
704
+ } else if (ts.isJsxFragment(node)) {
705
+ children = node.children;
706
+ }
707
+ // JsxSelfClosingElement has no children
708
+
709
+ if (!children) {
120
710
  return;
121
711
  }
122
712
 
123
- // Handle comparison operators (===, !==, <, >, <=, >=)
124
- // Example: `if (status === 'active')` - status is compared against 'active'
125
- if (
126
- ts.isBinaryExpression(unwrapped) &&
127
- isComparisonOperator(unwrapped.operatorToken.kind)
128
- ) {
129
- // Try to extract the variable and the compared value
130
- const leftPath = StructuredPath.fromNode(
131
- unwrapped.left,
132
- context.sourceFile,
133
- );
134
- const rightPath = StructuredPath.fromNode(
135
- unwrapped.right,
136
- context.sourceFile,
137
- );
713
+ for (const child of children) {
714
+ // Process JSX expressions: {expr}
715
+ if (ts.isJsxExpression(child) && child.expression) {
716
+ const expr = unwrapExpression(child.expression);
138
717
 
139
- // Check if left is a variable and right is a literal
140
- if (leftPath && isLiteralExpression(unwrapped.right)) {
141
- const literalValue = getLiteralValue(unwrapped.right, context);
142
- context.addConditionalUsage({
143
- path: leftPath.toLeftHandSideString(),
144
- conditionType: 'comparison',
145
- comparedValues: literalValue !== undefined ? [literalValue] : undefined,
146
- location,
147
- });
718
+ // Extract JSX rendering usages (array.map, text interpolation)
719
+ // This handles direct usages like {items.map(...)} or {user.name}
720
+ extractJsxRenderingUsage(expr, context);
721
+
722
+ // If the expression is an && chain, extract its conditional usages
723
+ if (
724
+ ts.isBinaryExpression(expr) &&
725
+ expr.operatorToken.kind === ts.SyntaxKind.AmpersandAmpersandToken
726
+ ) {
727
+ // Mark nullable variables
728
+ markConditionVariablesAsNullable(expr, context);
729
+ // Extract conditional usage (this handles compound conditionals)
730
+ // Pass controlsJsxRendering: true since this conditional controls JSX rendering
731
+ extractConditionalUsage(expr, context, 'logical-and', {
732
+ controlsJsxRendering: true,
733
+ });
734
+
735
+ // Extract all condition paths from the && chain for gating tracking
736
+ const conditionPaths = extractConditionPathsFromAndChain(
737
+ expr,
738
+ context.sourceFile,
739
+ );
740
+ const sourceLocation = getSourceLocation(expr, context.sourceFile);
741
+
742
+ // Fix 32: Build accumulated conditions including parent conditions
743
+ const accumulatedConditions: ParentGatingCondition[] = [
744
+ ...parentConditions,
745
+ ...conditionPaths.map((path) => ({
746
+ path,
747
+ sourceLocation,
748
+ isNegated: false,
749
+ })),
750
+ ];
751
+
752
+ // Track gating conditions for child components
753
+ // Example: {hasAnalysis && <ScenarioViewer />}
754
+ const jsxElement = findJsxInAndChain(expr);
755
+ if (jsxElement) {
756
+ const componentName = getComponentNameFromJsx(jsxElement);
757
+ if (componentName) {
758
+ // Fix 32: Add ALL accumulated conditions (parent + current) as gating conditions
759
+ for (const condition of accumulatedConditions) {
760
+ context.addChildBoundaryGatingCondition(componentName, {
761
+ path: condition.path,
762
+ conditionType: 'truthiness',
763
+ location: 'logical-and',
764
+ sourceLocation: condition.sourceLocation,
765
+ controlsJsxRendering: true,
766
+ isNegated: condition.isNegated,
767
+ });
768
+ }
769
+ }
770
+
771
+ // Fix 32: Recursively process nested JSX with accumulated conditions
772
+ if (
773
+ ts.isJsxElement(jsxElement) ||
774
+ ts.isJsxSelfClosingElement(jsxElement)
775
+ ) {
776
+ extractConditionalsFromJsx(
777
+ jsxElement,
778
+ context,
779
+ accumulatedConditions,
780
+ );
781
+ }
782
+ }
783
+
784
+ // Fix 32: Also check for nested JSX fragments
785
+ const jsxFragment = findJsxFragmentInAndChain(expr);
786
+ if (jsxFragment) {
787
+ extractConditionalsFromJsx(
788
+ jsxFragment,
789
+ context,
790
+ accumulatedConditions,
791
+ );
792
+ }
793
+ }
794
+ // If the expression is a ternary, extract its conditional
795
+ else if (ts.isConditionalExpression(expr)) {
796
+ // Pass controlsJsxRendering: true since this conditional controls JSX rendering
797
+ extractConditionalUsage(expr.condition, context, 'ternary', {
798
+ controlsJsxRendering: true,
799
+ });
800
+
801
+ // Track gating conditions for components in both branches of the ternary
802
+ // Example: {isError ? <ErrorView /> : <SuccessView />}
803
+ const conditionPath = StructuredPath.fromNode(
804
+ unwrapExpression(expr.condition),
805
+ context.sourceFile,
806
+ );
807
+ const sourceLocation = getSourceLocation(expr, context.sourceFile);
808
+
809
+ // Recursively process the whenTrue and whenFalse branches for JSX
810
+ const whenTrue = unwrapExpression(expr.whenTrue);
811
+ const whenFalse = unwrapExpression(expr.whenFalse);
812
+
813
+ // Fix 32: Build conditions for whenTrue branch (parent conditions + ternary condition truthy)
814
+ const whenTrueConditions: ParentGatingCondition[] = [
815
+ ...parentConditions,
816
+ ...(conditionPath
817
+ ? [
818
+ {
819
+ path: conditionPath.toString(),
820
+ sourceLocation,
821
+ isNegated: false,
822
+ },
823
+ ]
824
+ : []),
825
+ ];
826
+
827
+ // Fix 32: Build conditions for whenFalse branch (parent conditions + ternary condition falsy)
828
+ const whenFalseConditions: ParentGatingCondition[] = [
829
+ ...parentConditions,
830
+ ...(conditionPath
831
+ ? [
832
+ {
833
+ path: conditionPath.toString(),
834
+ sourceLocation,
835
+ isNegated: true,
836
+ },
837
+ ]
838
+ : []),
839
+ ];
840
+
841
+ // Handle whenTrue branch (condition is truthy)
842
+ if (ts.isJsxElement(whenTrue) || ts.isJsxSelfClosingElement(whenTrue)) {
843
+ const componentName = getComponentNameFromJsx(whenTrue);
844
+ if (componentName) {
845
+ // Fix 32: Add ALL conditions (parent + ternary) as gating conditions
846
+ for (const condition of whenTrueConditions) {
847
+ context.addChildBoundaryGatingCondition(componentName, {
848
+ path: condition.path,
849
+ conditionType: 'truthiness',
850
+ location: 'ternary',
851
+ sourceLocation: condition.sourceLocation,
852
+ controlsJsxRendering: true,
853
+ isNegated: condition.isNegated,
854
+ });
855
+ }
856
+ }
857
+ }
858
+ if (
859
+ ts.isJsxElement(whenTrue) ||
860
+ ts.isJsxSelfClosingElement(whenTrue) ||
861
+ ts.isJsxFragment(whenTrue)
862
+ ) {
863
+ extractConditionalsFromJsx(whenTrue, context, whenTrueConditions);
864
+ }
865
+
866
+ // Handle whenFalse branch (condition is falsy/negated)
867
+ if (
868
+ ts.isJsxElement(whenFalse) ||
869
+ ts.isJsxSelfClosingElement(whenFalse)
870
+ ) {
871
+ const componentName = getComponentNameFromJsx(whenFalse);
872
+ if (componentName) {
873
+ // Fix 32: Add ALL conditions (parent + ternary) as gating conditions
874
+ for (const condition of whenFalseConditions) {
875
+ context.addChildBoundaryGatingCondition(componentName, {
876
+ path: condition.path,
877
+ conditionType: 'truthiness',
878
+ location: 'ternary',
879
+ sourceLocation: condition.sourceLocation,
880
+ controlsJsxRendering: true,
881
+ isNegated: condition.isNegated,
882
+ });
883
+ }
884
+ }
885
+ }
886
+ if (
887
+ ts.isJsxElement(whenFalse) ||
888
+ ts.isJsxSelfClosingElement(whenFalse) ||
889
+ ts.isJsxFragment(whenFalse)
890
+ ) {
891
+ extractConditionalsFromJsx(whenFalse, context, whenFalseConditions);
892
+ }
893
+ // Handle chained ternaries: a ? <A/> : b ? <B/> : <C/>
894
+ // When whenFalse is another ConditionalExpression, recursively process it
895
+ else if (ts.isConditionalExpression(whenFalse)) {
896
+ // Extract conditional usage for the nested ternary's condition
897
+ extractConditionalUsage(whenFalse.condition, context, 'ternary', {
898
+ controlsJsxRendering: true,
899
+ });
900
+
901
+ // Get the nested condition path
902
+ const nestedConditionPath = StructuredPath.fromNode(
903
+ unwrapExpression(whenFalse.condition),
904
+ context.sourceFile,
905
+ );
906
+ const nestedSourceLocation = getSourceLocation(
907
+ whenFalse,
908
+ context.sourceFile,
909
+ );
910
+
911
+ const nestedWhenTrue = unwrapExpression(whenFalse.whenTrue);
912
+ const nestedWhenFalse = unwrapExpression(whenFalse.whenFalse);
913
+
914
+ // Fix 32: Build conditions for nested whenTrue (parent falsy + nested truthy)
915
+ const nestedWhenTrueConditions: ParentGatingCondition[] = [
916
+ ...whenFalseConditions, // Parent ternary was falsy to get here
917
+ ...(nestedConditionPath
918
+ ? [
919
+ {
920
+ path: nestedConditionPath.toString(),
921
+ sourceLocation: nestedSourceLocation,
922
+ isNegated: false,
923
+ },
924
+ ]
925
+ : []),
926
+ ];
927
+
928
+ // Fix 32: Build conditions for nested whenFalse (parent falsy + nested falsy)
929
+ const nestedWhenFalseConditions: ParentGatingCondition[] = [
930
+ ...whenFalseConditions, // Parent ternary was falsy to get here
931
+ ...(nestedConditionPath
932
+ ? [
933
+ {
934
+ path: nestedConditionPath.toString(),
935
+ sourceLocation: nestedSourceLocation,
936
+ isNegated: true,
937
+ },
938
+ ]
939
+ : []),
940
+ ];
941
+
942
+ // Handle nested whenTrue branch
943
+ if (
944
+ ts.isJsxElement(nestedWhenTrue) ||
945
+ ts.isJsxSelfClosingElement(nestedWhenTrue)
946
+ ) {
947
+ const componentName = getComponentNameFromJsx(nestedWhenTrue);
948
+ if (componentName) {
949
+ // Fix 32: Add ALL accumulated conditions
950
+ for (const condition of nestedWhenTrueConditions) {
951
+ context.addChildBoundaryGatingCondition(componentName, {
952
+ path: condition.path,
953
+ conditionType: 'truthiness',
954
+ location: 'ternary',
955
+ sourceLocation: condition.sourceLocation,
956
+ controlsJsxRendering: true,
957
+ isNegated: condition.isNegated,
958
+ });
959
+ }
960
+ }
961
+ }
962
+ if (
963
+ ts.isJsxElement(nestedWhenTrue) ||
964
+ ts.isJsxSelfClosingElement(nestedWhenTrue) ||
965
+ ts.isJsxFragment(nestedWhenTrue)
966
+ ) {
967
+ extractConditionalsFromJsx(
968
+ nestedWhenTrue,
969
+ context,
970
+ nestedWhenTrueConditions,
971
+ );
972
+ }
973
+
974
+ // Handle nested whenFalse branch (this could be another chained ternary or JSX)
975
+ if (
976
+ ts.isJsxElement(nestedWhenFalse) ||
977
+ ts.isJsxSelfClosingElement(nestedWhenFalse)
978
+ ) {
979
+ const componentName = getComponentNameFromJsx(nestedWhenFalse);
980
+ if (componentName) {
981
+ // Fix 32: Add ALL accumulated conditions
982
+ for (const condition of nestedWhenFalseConditions) {
983
+ context.addChildBoundaryGatingCondition(componentName, {
984
+ path: condition.path,
985
+ conditionType: 'truthiness',
986
+ location: 'ternary',
987
+ sourceLocation: condition.sourceLocation,
988
+ controlsJsxRendering: true,
989
+ isNegated: condition.isNegated,
990
+ });
991
+ }
992
+ }
993
+ }
994
+ if (
995
+ ts.isJsxElement(nestedWhenFalse) ||
996
+ ts.isJsxSelfClosingElement(nestedWhenFalse) ||
997
+ ts.isJsxFragment(nestedWhenFalse)
998
+ ) {
999
+ extractConditionalsFromJsx(
1000
+ nestedWhenFalse,
1001
+ context,
1002
+ nestedWhenFalseConditions,
1003
+ );
1004
+ }
1005
+ // If nestedWhenFalse is yet another ConditionalExpression, the recursion
1006
+ // will handle it on the next iteration when this function processes it
1007
+ else if (ts.isConditionalExpression(nestedWhenFalse)) {
1008
+ // Recursively handle deeper nesting by wrapping in a synthetic process
1009
+ // We create a fake JsxExpression context to reuse the same logic
1010
+ const syntheticChild = {
1011
+ kind: ts.SyntaxKind.JsxExpression,
1012
+ expression: nestedWhenFalse,
1013
+ } as unknown as ts.JsxExpression;
1014
+ // Process via the main JSX expression handler by recursing
1015
+ // For now, just extract conditionals directly
1016
+ extractConditionalUsage(
1017
+ nestedWhenFalse.condition,
1018
+ context,
1019
+ 'ternary',
1020
+ { controlsJsxRendering: true },
1021
+ );
1022
+ }
1023
+ }
1024
+ }
1025
+ }
1026
+ // Recursively process nested JSX elements - Fix 32: pass parent conditions
1027
+ else if (ts.isJsxElement(child)) {
1028
+ // Check if this is a user-defined component (vs intrinsic element like div)
1029
+ const componentName = getComponentNameFromJsx(child);
1030
+ if (componentName) {
1031
+ if (parentConditions.length > 0) {
1032
+ // If there are parent conditions, record them as gating conditions
1033
+ console.log(
1034
+ `[ChildBoundary] ${componentName}: Conditionally rendered with ${parentConditions.length} gating conditions`,
1035
+ );
1036
+ for (const condition of parentConditions) {
1037
+ console.log(
1038
+ `[ChildBoundary] ${componentName}: Adding gating condition path='${condition.path}' isNegated=${condition.isNegated}`,
1039
+ );
1040
+ context.addChildBoundaryGatingCondition(componentName, {
1041
+ path: condition.path,
1042
+ conditionType: 'truthiness',
1043
+ location: 'ternary',
1044
+ sourceLocation: condition.sourceLocation,
1045
+ controlsJsxRendering: true,
1046
+ isNegated: condition.isNegated,
1047
+ });
1048
+ }
1049
+ } else {
1050
+ // No parent conditions - check if it has data props for unconditional tracking
1051
+ console.log(
1052
+ `[ChildBoundary] ${componentName}: Checking for unconditional rendering with data props...`,
1053
+ );
1054
+ const { hasDataProps, dataProps } = hasDataPropsFromParent(
1055
+ child,
1056
+ componentName,
1057
+ );
1058
+ if (hasDataProps) {
1059
+ // Fix: Track unconditionally-rendered children that receive data props
1060
+ // These need to be tracked for flow merging even without gating conditions
1061
+ // Example: <WorkoutsView workouts={workouts} /> - parent controls workouts data
1062
+ console.log(
1063
+ `[ChildBoundary] ${componentName}: TRACKING as unconditionally-rendered with data props: [${dataProps.join(', ')}]`,
1064
+ );
1065
+ context.addChildBoundaryGatingCondition(componentName, {
1066
+ path: '__unconditional__',
1067
+ conditionType: 'truthiness',
1068
+ location: 'unconditional',
1069
+ controlsJsxRendering: true,
1070
+ isNegated: false,
1071
+ });
1072
+ }
1073
+ }
1074
+ }
1075
+ extractConditionalsFromJsx(child, context, parentConditions);
1076
+ }
1077
+ // Handle self-closing JSX elements (e.g., <ScenarioViewer />)
1078
+ else if (ts.isJsxSelfClosingElement(child)) {
1079
+ // Check if this is a user-defined component (vs intrinsic element like div)
1080
+ const componentName = getComponentNameFromJsx(child);
1081
+ if (componentName) {
1082
+ if (parentConditions.length > 0) {
1083
+ // If there are parent conditions, record them as gating conditions
1084
+ console.log(
1085
+ `[ChildBoundary] ${componentName}: Conditionally rendered (self-closing) with ${parentConditions.length} gating conditions`,
1086
+ );
1087
+ for (const condition of parentConditions) {
1088
+ console.log(
1089
+ `[ChildBoundary] ${componentName}: Adding gating condition path='${condition.path}' isNegated=${condition.isNegated}`,
1090
+ );
1091
+ context.addChildBoundaryGatingCondition(componentName, {
1092
+ path: condition.path,
1093
+ conditionType: 'truthiness',
1094
+ location: 'ternary',
1095
+ sourceLocation: condition.sourceLocation,
1096
+ controlsJsxRendering: true,
1097
+ isNegated: condition.isNegated,
1098
+ });
1099
+ }
1100
+ } else {
1101
+ // No parent conditions - check if it has data props for unconditional tracking
1102
+ console.log(
1103
+ `[ChildBoundary] ${componentName}: Checking for unconditional rendering (self-closing) with data props...`,
1104
+ );
1105
+ const { hasDataProps, dataProps } = hasDataPropsFromParent(
1106
+ child,
1107
+ componentName,
1108
+ );
1109
+ if (hasDataProps) {
1110
+ // Fix: Track unconditionally-rendered children that receive data props
1111
+ console.log(
1112
+ `[ChildBoundary] ${componentName}: TRACKING as unconditionally-rendered (self-closing) with data props: [${dataProps.join(', ')}]`,
1113
+ );
1114
+ context.addChildBoundaryGatingCondition(componentName, {
1115
+ path: '__unconditional__',
1116
+ conditionType: 'truthiness',
1117
+ location: 'unconditional',
1118
+ controlsJsxRendering: true,
1119
+ isNegated: false,
1120
+ });
1121
+ }
1122
+ }
1123
+ }
1124
+ // Self-closing elements have no children, so no recursion needed
1125
+ }
1126
+ // Recursively process nested JSX fragments - Fix 32: pass parent conditions
1127
+ else if (ts.isJsxFragment(child)) {
1128
+ extractConditionalsFromJsx(child, context, parentConditions);
1129
+ }
1130
+ }
1131
+ }
1132
+
1133
+ /**
1134
+ * Options for extractConditionalUsage
1135
+ */
1136
+ interface ExtractConditionalOptions {
1137
+ /**
1138
+ * Whether this conditional controls JSX rendering.
1139
+ * Set to true when the conditional appears in a JSX expression like {cond && <Component />}
1140
+ */
1141
+ controlsJsxRendering?: boolean;
1142
+ }
1143
+
1144
+ /**
1145
+ * Extracts conditional usages from a condition expression for key attribute detection.
1146
+ * This function identifies which attributes are used in conditionals and how they're used.
1147
+ * It also tracks compound conditionals (&&-chains) where all conditions must be true together.
1148
+ *
1149
+ * @param condition The condition expression to analyze
1150
+ * @param context The analysis context
1151
+ * @param location Where this condition appears (if, ternary, logical-and, switch)
1152
+ * @param options Additional options including controlsJsxRendering flag
1153
+ */
1154
+ export function extractConditionalUsage(
1155
+ condition: ts.Expression,
1156
+ context: AnalysisContext,
1157
+ location: ConditionalUsage['location'],
1158
+ options: ExtractConditionalOptions = {},
1159
+ ): void {
1160
+ const { controlsJsxRendering } = options;
1161
+ // Internal recursive function with chain tracking
1162
+ function extractWithChainTracking(
1163
+ expr: ts.Expression,
1164
+ chainInfo: ChainInfo | null,
1165
+ isNegated: boolean,
1166
+ ): void {
1167
+ const unwrapped = unwrapExpression(expr);
1168
+
1169
+ // Handle binary expressions with && (logical AND chains)
1170
+ // Example: `a && b && <Component />` - both a and b are conditional checks
1171
+ if (
1172
+ ts.isBinaryExpression(unwrapped) &&
1173
+ unwrapped.operatorToken.kind === ts.SyntaxKind.AmpersandAmpersandToken
1174
+ ) {
1175
+ // Track if we're creating the chain at this level (root of the chain)
1176
+ const isChainRoot = !chainInfo;
1177
+
1178
+ // If no chainInfo, this is the root of a new chain
1179
+ if (isChainRoot) {
1180
+ const chainLength = countConditionsInAndChain(unwrapped);
1181
+ // Only create chain tracking for chains with 2+ conditions
1182
+ if (chainLength >= 2) {
1183
+ const chainId = `chain_${crypto.randomUUID().slice(0, 8)}`;
1184
+ const chainExpression = unwrapped.getText(context.sourceFile);
1185
+ const compound: CompoundConditional = {
1186
+ chainId,
1187
+ expression:
1188
+ chainExpression.length > 200
1189
+ ? chainExpression.slice(0, 200) + '...'
1190
+ : chainExpression,
1191
+ conditions: [],
1192
+ location,
1193
+ sourceLocation: getSourceLocation(unwrapped, context.sourceFile),
1194
+ controlsJsxRendering,
1195
+ };
1196
+ chainInfo = {
1197
+ chainId,
1198
+ chainLength,
1199
+ chainExpression: compound.expression,
1200
+ currentPosition: 0,
1201
+ compound,
1202
+ };
1203
+ }
1204
+ }
1205
+
1206
+ // Recursively process left side
1207
+ extractWithChainTracking(unwrapped.left, chainInfo, false);
1208
+
1209
+ // Process right side if it's not JSX (JSX is the consequence, not the condition)
1210
+ const rightUnwrapped = unwrapExpression(unwrapped.right);
1211
+ const isJsxConsequence =
1212
+ ts.isJsxElement(rightUnwrapped) ||
1213
+ ts.isJsxSelfClosingElement(rightUnwrapped) ||
1214
+ ts.isJsxFragment(rightUnwrapped);
1215
+
1216
+ if (!isJsxConsequence) {
1217
+ extractWithChainTracking(unwrapped.right, chainInfo, false);
1218
+ }
1219
+
1220
+ // If this is the root of the chain, register the compound conditional
1221
+ if (isChainRoot && chainInfo) {
1222
+ context.addCompoundConditional(chainInfo.compound);
1223
+ }
148
1224
  return;
149
1225
  }
150
1226
 
151
- // Check if right is a variable and left is a literal
152
- if (rightPath && isLiteralExpression(unwrapped.left)) {
153
- const literalValue = getLiteralValue(unwrapped.left, context);
154
- context.addConditionalUsage({
155
- path: rightPath.toLeftHandSideString(),
156
- conditionType: 'comparison',
157
- comparedValues: literalValue !== undefined ? [literalValue] : undefined,
158
- location,
159
- });
1227
+ // Handle binary expressions with || (logical OR)
1228
+ // When OR is inside an && chain, we need to continue chain tracking
1229
+ // and mark conditions as OR alternatives
1230
+ if (
1231
+ ts.isBinaryExpression(unwrapped) &&
1232
+ unwrapped.operatorToken.kind === ts.SyntaxKind.BarBarToken
1233
+ ) {
1234
+ if (chainInfo) {
1235
+ // We're inside an && chain - continue tracking but mark as OR alternatives
1236
+ // Generate an orGroupId so conditions from both sides can be grouped
1237
+ const orGroupId =
1238
+ chainInfo.currentOrGroupId ?? `or_${crypto.randomUUID().slice(0, 8)}`;
1239
+
1240
+ // Process left side with OR group tracking
1241
+ const leftChainInfo = {
1242
+ ...chainInfo,
1243
+ currentOrGroupId: orGroupId,
1244
+ };
1245
+ extractWithChainTracking(unwrapped.left, leftChainInfo, false);
1246
+
1247
+ // Process right side with same OR group
1248
+ // Note: we use leftChainInfo's currentPosition which may have been updated
1249
+ const rightChainInfo = {
1250
+ ...leftChainInfo,
1251
+ currentPosition: chainInfo.currentPosition,
1252
+ };
1253
+ extractWithChainTracking(unwrapped.right, rightChainInfo, false);
1254
+ } else {
1255
+ // Not inside a chain - OR breaks into independent conditional checks
1256
+ extractWithChainTracking(unwrapped.left, null, false);
1257
+ extractWithChainTracking(unwrapped.right, null, false);
1258
+ }
160
1259
  return;
161
1260
  }
162
1261
 
163
- // Both sides are variables - record both as comparisons without specific values
164
- if (leftPath) {
165
- context.addConditionalUsage({
166
- path: leftPath.toLeftHandSideString(),
167
- conditionType: 'comparison',
168
- location,
169
- });
1262
+ // Handle comparison operators (===, !==, <, >, <=, >=)
1263
+ // Example: `if (status === 'active')` - status is compared against 'active'
1264
+ if (
1265
+ ts.isBinaryExpression(unwrapped) &&
1266
+ isComparisonOperator(unwrapped.operatorToken.kind)
1267
+ ) {
1268
+ // Try to extract the variable and the compared value
1269
+ const leftPath = StructuredPath.fromNode(
1270
+ unwrapped.left,
1271
+ context.sourceFile,
1272
+ );
1273
+ const rightPath = StructuredPath.fromNode(
1274
+ unwrapped.right,
1275
+ context.sourceFile,
1276
+ );
1277
+
1278
+ // Determine the compared value for computing requiredValue
1279
+ const getRequiredValue = (
1280
+ literalValue: string | undefined,
1281
+ isNegatedComparison: boolean,
1282
+ ): string | boolean | undefined => {
1283
+ if (literalValue === undefined) return undefined;
1284
+ // For !== comparisons, the condition is true when NOT equal to the value
1285
+ // For === comparisons, the condition is true when equal to the value
1286
+ const isNotEqual =
1287
+ unwrapped.operatorToken.kind ===
1288
+ ts.SyntaxKind.ExclamationEqualsEqualsToken ||
1289
+ unwrapped.operatorToken.kind === ts.SyntaxKind.ExclamationEqualsToken;
1290
+ if (isNotEqual) {
1291
+ // !== 'value' means requiredValue is NOT 'value', but we express this as "not 'value'"
1292
+ return `not ${literalValue}`;
1293
+ }
1294
+ return literalValue;
1295
+ };
1296
+
1297
+ // Helper to add a condition
1298
+ const addCondition = (
1299
+ path: string,
1300
+ conditionType: 'comparison' | 'truthiness',
1301
+ comparedValues?: string[],
1302
+ requiredValue?: string | boolean,
1303
+ sourceExpr?: ts.Expression,
1304
+ ) => {
1305
+ const usage: ConditionalUsage = {
1306
+ path,
1307
+ conditionType,
1308
+ comparedValues,
1309
+ location,
1310
+ sourceLocation: getSourceLocation(unwrapped, context.sourceFile),
1311
+ isNegated,
1312
+ controlsJsxRendering,
1313
+ };
1314
+
1315
+ // Check for inline array-derived patterns (.length) on the source expression
1316
+ if (sourceExpr) {
1317
+ const arrayDerived = detectArrayDerivedPattern(sourceExpr);
1318
+ if (arrayDerived) {
1319
+ usage.derivedFrom = {
1320
+ operation: arrayDerived.operation,
1321
+ sourcePath: arrayDerived.sourcePath,
1322
+ };
1323
+ }
1324
+ }
1325
+
1326
+ // Add chain info if part of a compound conditional
1327
+ if (chainInfo) {
1328
+ usage.chainId = chainInfo.chainId;
1329
+ usage.chainPosition = chainInfo.currentPosition;
1330
+ usage.chainLength = chainInfo.chainLength;
1331
+ usage.chainExpression = chainInfo.chainExpression;
1332
+ chainInfo.currentPosition++;
1333
+
1334
+ // Add to compound conditional conditions
1335
+ chainInfo.compound.conditions.push({
1336
+ path,
1337
+ conditionType,
1338
+ comparedValues,
1339
+ isNegated,
1340
+ requiredValue,
1341
+ ...(chainInfo.currentOrGroupId && {
1342
+ orGroupId: chainInfo.currentOrGroupId,
1343
+ }),
1344
+ });
1345
+ }
1346
+
1347
+ context.addConditionalUsage(usage);
1348
+ };
1349
+
1350
+ // Check if left is a variable and right is a literal
1351
+ if (leftPath && isLiteralExpression(unwrapped.right)) {
1352
+ const literalValue = getLiteralValue(unwrapped.right, context);
1353
+ addCondition(
1354
+ leftPath.toLeftHandSideString(),
1355
+ 'comparison',
1356
+ literalValue !== undefined ? [literalValue] : undefined,
1357
+ getRequiredValue(literalValue, isNegated),
1358
+ unwrapped.left, // Pass source expression for array derivation detection
1359
+ );
1360
+ return;
1361
+ }
1362
+
1363
+ // Check if right is a variable and left is a literal
1364
+ if (rightPath && isLiteralExpression(unwrapped.left)) {
1365
+ const literalValue = getLiteralValue(unwrapped.left, context);
1366
+ addCondition(
1367
+ rightPath.toLeftHandSideString(),
1368
+ 'comparison',
1369
+ literalValue !== undefined ? [literalValue] : undefined,
1370
+ getRequiredValue(literalValue, isNegated),
1371
+ unwrapped.right, // Pass source expression for array derivation detection
1372
+ );
1373
+ return;
1374
+ }
1375
+
1376
+ // Both sides are variables - record both as comparisons without specific values
1377
+ if (leftPath) {
1378
+ addCondition(
1379
+ leftPath.toLeftHandSideString(),
1380
+ 'comparison',
1381
+ undefined,
1382
+ undefined,
1383
+ unwrapped.left,
1384
+ );
1385
+ }
1386
+ if (rightPath) {
1387
+ addCondition(
1388
+ rightPath.toLeftHandSideString(),
1389
+ 'comparison',
1390
+ undefined,
1391
+ undefined,
1392
+ unwrapped.right,
1393
+ );
1394
+ }
1395
+ return;
170
1396
  }
171
- if (rightPath) {
172
- context.addConditionalUsage({
173
- path: rightPath.toLeftHandSideString(),
174
- conditionType: 'comparison',
175
- location,
176
- });
1397
+
1398
+ // Handle prefix unary NOT expression: !variable
1399
+ // Example: `if (!isVisible)` - isVisible is a truthiness check (negated)
1400
+ if (
1401
+ ts.isPrefixUnaryExpression(unwrapped) &&
1402
+ unwrapped.operator === ts.SyntaxKind.ExclamationToken
1403
+ ) {
1404
+ extractWithChainTracking(unwrapped.operand, chainInfo, !isNegated);
1405
+ return;
177
1406
  }
178
- return;
179
- }
180
1407
 
181
- // Handle prefix unary NOT expression: !variable
182
- // Example: `if (!isVisible)` - isVisible is a truthiness check
183
- if (
184
- ts.isPrefixUnaryExpression(unwrapped) &&
185
- unwrapped.operator === ts.SyntaxKind.ExclamationToken
186
- ) {
187
- extractConditionalUsage(unwrapped.operand, context, location);
188
- return;
189
- }
1408
+ // Handle simple identifiers or property accesses (truthiness checks)
1409
+ // Example: `if (x)` or `x && <JSX />` - x is checked for truthiness
1410
+ const path = StructuredPath.fromNode(unwrapped, context.sourceFile);
1411
+ if (path && !path.isLiteral()) {
1412
+ const pathStr = path.toLeftHandSideString();
1413
+ const usage: ConditionalUsage = {
1414
+ path: pathStr,
1415
+ conditionType: 'truthiness',
1416
+ location,
1417
+ sourceLocation: getSourceLocation(unwrapped, context.sourceFile),
1418
+ isNegated,
1419
+ controlsJsxRendering,
1420
+ };
1421
+
1422
+ // Check for inline array-derived patterns (.some(), .every(), .includes(), .length)
1423
+ // This populates derivedFrom so downstream code can resolve to the base array path
1424
+ const arrayDerived = detectArrayDerivedPattern(unwrapped);
1425
+ if (arrayDerived) {
1426
+ usage.derivedFrom = {
1427
+ operation: arrayDerived.operation,
1428
+ sourcePath: arrayDerived.sourcePath,
1429
+ };
1430
+ }
190
1431
 
191
- // Handle simple identifiers or property accesses (truthiness checks)
192
- // Example: `if (x)` or `x && <JSX />` - x is checked for truthiness
193
- const path = StructuredPath.fromNode(unwrapped, context.sourceFile);
194
- if (path && !path.isLiteral()) {
195
- context.addConditionalUsage({
196
- path: path.toLeftHandSideString(),
197
- conditionType: 'truthiness',
198
- location,
199
- });
1432
+ // Add chain info if part of a compound conditional
1433
+ if (chainInfo) {
1434
+ usage.chainId = chainInfo.chainId;
1435
+ usage.chainPosition = chainInfo.currentPosition;
1436
+ usage.chainLength = chainInfo.chainLength;
1437
+ usage.chainExpression = chainInfo.chainExpression;
1438
+ chainInfo.currentPosition++;
1439
+
1440
+ // Add to compound conditional conditions
1441
+ // For truthiness, requiredValue is true if not negated, false if negated
1442
+ chainInfo.compound.conditions.push({
1443
+ path: pathStr,
1444
+ conditionType: 'truthiness',
1445
+ isNegated,
1446
+ requiredValue: !isNegated,
1447
+ ...(chainInfo.currentOrGroupId && {
1448
+ orGroupId: chainInfo.currentOrGroupId,
1449
+ }),
1450
+ });
1451
+ }
1452
+
1453
+ context.addConditionalUsage(usage);
1454
+ }
200
1455
  }
1456
+
1457
+ // Start extraction with no chain info
1458
+ extractWithChainTracking(condition, null, false);
201
1459
  }
202
1460
 
203
1461
  /**
@@ -300,7 +1558,28 @@ export function processExpression({
300
1558
  ) {
301
1559
  markConditionVariablesAsNullable(unwrappedNode, context);
302
1560
  // Extract conditional usages for key attribute detection
303
- extractConditionalUsage(unwrappedNode, context, 'logical-and');
1561
+ // Only call from the OUTERMOST && expression to avoid duplicates
1562
+ // Check if parent is also a && (meaning we're nested)
1563
+ const parent = unwrappedNode.parent;
1564
+ const parentIsAndChain =
1565
+ parent &&
1566
+ ts.isBinaryExpression(parent) &&
1567
+ parent.operatorToken.kind === ts.SyntaxKind.AmpersandAmpersandToken;
1568
+ if (!parentIsAndChain) {
1569
+ extractConditionalUsage(unwrappedNode, context, 'logical-and');
1570
+ }
1571
+ }
1572
+
1573
+ // CRITICAL: Extract conditionals from JSX BEFORE checking child boundaries
1574
+ // JSX elements are NOT scopes - their expressions use variables from the parent scope.
1575
+ // Even if the JSX element is within a child boundary (e.g., because it contains callbacks),
1576
+ // we must still extract conditionals from JSX expression children like {x && <div>...</div>}
1577
+ if (
1578
+ ts.isJsxElement(unwrappedNode) ||
1579
+ ts.isJsxSelfClosingElement(unwrappedNode) ||
1580
+ ts.isJsxFragment(unwrappedNode)
1581
+ ) {
1582
+ extractConditionalsFromJsx(unwrappedNode, context);
304
1583
  }
305
1584
 
306
1585
  // If the node falls within an excluded child scope, stop processing it.
@@ -326,6 +1605,52 @@ export function processExpression({
326
1605
  if (targetPath) {
327
1606
  context.addEquivalence(targetPath, nodePath);
328
1607
  context.addType(targetPath, inferredNodeType);
1608
+
1609
+ // Propagate sub-properties from the identifier to the targetPath
1610
+ // This handles cases like: dataItem={{ structure: completeDataStructure }}
1611
+ // where completeDataStructure was defined as { 'Function Arguments': dataStructure.arguments }
1612
+ // We need to propagate completeDataStructure['Function Arguments'] to
1613
+ // ChildComponent().signature[0].dataItem.structure['Function Arguments']
1614
+ const nodePathStr = nodePath.toString();
1615
+ const equivalentVariables = context.getEquivalentVariables();
1616
+ const structure = context.getStructure();
1617
+
1618
+ // Propagate existing equivalencies for sub-properties
1619
+ for (const [key, rawValue] of Object.entries(equivalentVariables)) {
1620
+ // Check if this equivalency is for a sub-property of the identifier
1621
+ // e.g., completeDataStructure['Function Arguments'] or completeDataStructure.foo
1622
+ if (
1623
+ key.startsWith(nodePathStr + '.') ||
1624
+ key.startsWith(nodePathStr + '[')
1625
+ ) {
1626
+ const subPath = key.substring(nodePathStr.length);
1627
+ const newTargetPath = StructuredPath.fromBase(
1628
+ targetPath.toString() + subPath,
1629
+ );
1630
+ // Handle both string and string[] values
1631
+ const values = Array.isArray(rawValue) ? rawValue : [rawValue];
1632
+ for (const value of values) {
1633
+ if (typeof value === 'string') {
1634
+ const valuePath = StructuredPath.fromBase(value);
1635
+ context.addEquivalence(newTargetPath, valuePath);
1636
+ }
1637
+ }
1638
+ }
1639
+ }
1640
+
1641
+ // Propagate existing structure entries for sub-properties
1642
+ for (const [key, value] of Object.entries(structure)) {
1643
+ if (
1644
+ key.startsWith(nodePathStr + '.') ||
1645
+ key.startsWith(nodePathStr + '[')
1646
+ ) {
1647
+ const subPath = key.substring(nodePathStr.length);
1648
+ const newTargetPath = StructuredPath.fromBase(
1649
+ targetPath.toString() + subPath,
1650
+ );
1651
+ context.addType(newTargetPath, value);
1652
+ }
1653
+ }
329
1654
  }
330
1655
  context.addType(nodePath, inferredNodeType);
331
1656
  return true;
@@ -454,7 +1779,8 @@ export function processExpression({
454
1779
  // Check if this is an environment variable access
455
1780
  const fullText = unwrappedNode.getText(context.sourceFile);
456
1781
  if (
457
- fullText.includes('.env.') // simple heuristic for env var access but not great
1782
+ fullText.includes('.env.') || // process.env.X, window.env.X
1783
+ isEnvStoreAccess(fullText) // env.X where env is likely an env config object
458
1784
  ) {
459
1785
  context.addEnvironmentVariable(fullText);
460
1786
  }
@@ -756,8 +2082,19 @@ export function processExpression({
756
2082
  } else {
757
2083
  resultType = rightType || 'unknown';
758
2084
  }
2085
+ // For || and ??, create an equivalence to the left side
2086
+ // This ensures the equivalency chain is preserved through fallback expressions
2087
+ // e.g., `const tab = segments[0] || 'default'` should trace tab back to segments[0]
759
2088
  if (operatorKind === ts.SyntaxKind.QuestionQuestionToken) {
760
2089
  // specifically for ?? we create an equivalence to the left side
2090
+ // IMPORTANT: Also process the left side recursively to apply method semantics
2091
+ // (e.g., for `const segments = splat?.split('/') ?? []`, we need split semantics)
2092
+ processExpression({
2093
+ node: unwrappedNode.left,
2094
+ context,
2095
+ // Don't pass targetPath here - we'll establish equivalence separately below
2096
+ });
2097
+
761
2098
  if (targetPath) {
762
2099
  resultPath = StructuredPath.fromNode(
763
2100
  unwrappedNode.left,
@@ -774,6 +2111,57 @@ export function processExpression({
774
2111
  context.sourceFile,
775
2112
  );
776
2113
  }
2114
+ } else if (operatorKind === ts.SyntaxKind.BarBarToken) {
2115
+ // For ||, create equivalences to BOTH sides
2116
+ // This enables data flow tracing through fallback expressions
2117
+ // e.g., `const item = items.find(...) || null` should trace to both:
2118
+ // - items[] (from the find result)
2119
+ // - null (from the fallback)
2120
+ if (targetPath) {
2121
+ // Get paths for both sides
2122
+ const leftPath = StructuredPath.fromNode(
2123
+ unwrappedNode.left,
2124
+ context.sourceFile,
2125
+ );
2126
+ const rightPath = StructuredPath.fromNode(
2127
+ unwrappedNode.right,
2128
+ context.sourceFile,
2129
+ );
2130
+
2131
+ // Collect all valid paths
2132
+ const allPaths: StructuredPath[] = [];
2133
+ if (leftPath) allPaths.push(leftPath);
2134
+ if (rightPath) allPaths.push(rightPath);
2135
+
2136
+ // Add multiple equivalencies to track both sources
2137
+ if (allPaths.length > 0) {
2138
+ context.addMultipleEquivalencies(targetPath, allPaths);
2139
+ }
2140
+
2141
+ // Process both sides to capture their internal structures
2142
+ processExpression({
2143
+ node: unwrappedNode.left,
2144
+ context,
2145
+ });
2146
+ processExpression({
2147
+ node: unwrappedNode.right,
2148
+ context,
2149
+ });
2150
+
2151
+ // Register the type for the target path
2152
+ const leftType = context.inferTypeFromNode(unwrappedNode.left);
2153
+ const rightType = context.inferTypeFromNode(unwrappedNode.right);
2154
+ const orResultType = isDefinedType(leftType)
2155
+ ? leftType
2156
+ : rightType || 'unknown';
2157
+ context.addType(targetPath, orResultType);
2158
+
2159
+ // Return early - we've already handled equivalencies with addMultipleEquivalencies
2160
+ // Don't fall through to the generic addEquivalence call below
2161
+ return true;
2162
+ }
2163
+ // Note: When there's no targetPath, we don't recursively process
2164
+ // because || is often used in boolean contexts where the full expression matters
777
2165
  }
778
2166
  } else if (operatorKind === ts.SyntaxKind.InstanceOfKeyword) {
779
2167
  resultType = 'boolean';
@@ -835,9 +2223,10 @@ export function processExpression({
835
2223
  return false;
836
2224
  }
837
2225
 
838
- // Construct empty arguments list just to get the call path
839
- // We'll process each argument with its parameter path as targetPath
840
- const callPath = StructuredPath.fromNode(unwrappedNode, context.sourceFile);
2226
+ // Build call path using original source text for consistent schema paths.
2227
+ // IMPORTANT: Never use cyScope names in call paths - they are internal identifiers
2228
+ // that should not appear in schema paths or call signatures.
2229
+ const callPath = buildCallPathFromSource(unwrappedNode, context);
841
2230
 
842
2231
  // 2. Process all arguments recursively WITH targetPath for proper equivalence
843
2232
  for (let i = 0; i < unwrappedNode.arguments.length; i++) {
@@ -879,16 +2268,57 @@ export function processExpression({
879
2268
 
880
2269
  // Get the source expression path (e.g., the object for obj.method())
881
2270
  const sourceExpr = unwrappedNode.expression.expression;
882
- const sourcePath = StructuredPath.fromNode(
883
- sourceExpr,
884
- context.sourceFile,
885
- );
2271
+ const unwrappedSourceExpr = unwrapExpression(sourceExpr);
2272
+
2273
+ // When the source is a ternary expression like (cond ? arr : arr.slice()),
2274
+ // apply method semantics to BOTH branches directly. The ternary itself isn't
2275
+ // a variable - it's just a choice between two paths that both flow to the result.
2276
+ if (ts.isConditionalExpression(unwrappedSourceExpr)) {
2277
+ const branches = [
2278
+ unwrappedSourceExpr.whenTrue,
2279
+ unwrappedSourceExpr.whenFalse,
2280
+ ];
2281
+
2282
+ for (const branch of branches) {
2283
+ const branchPath = StructuredPath.fromNode(
2284
+ branch,
2285
+ context.sourceFile,
2286
+ );
2287
+ if (branchPath) {
2288
+ const isArraySemantics = semantics instanceof ArrayPushSemantics;
2289
+ const shouldApply =
2290
+ !isArraySemantics ||
2291
+ isLikelyArrayType(branch, context.typeChecker);
2292
+
2293
+ if (shouldApply) {
2294
+ semantics.addEquivalences(callPath, branchPath, context);
2295
+ returnType = semantics.getReturnType();
2296
+ handledBySemantics = true;
2297
+ }
2298
+ }
2299
+ }
2300
+ } else {
2301
+ // Regular (non-ternary) source expression
2302
+ const sourcePath = StructuredPath.fromNode(
2303
+ sourceExpr,
2304
+ context.sourceFile,
2305
+ );
886
2306
 
887
- if (sourcePath) {
888
- // Apply method semantics
889
- semantics.addEquivalences(callPath, sourcePath, context);
890
- returnType = semantics.getReturnType();
891
- handledBySemantics = true;
2307
+ if (sourcePath) {
2308
+ // For array-specific semantics (like push), verify the source is actually an array
2309
+ // This prevents router.push() from being mistakenly treated as Array.push()
2310
+ const isArraySemantics = semantics instanceof ArrayPushSemantics;
2311
+ const shouldApply =
2312
+ !isArraySemantics ||
2313
+ isLikelyArrayType(sourceExpr, context.typeChecker);
2314
+
2315
+ if (shouldApply) {
2316
+ // Apply method semantics
2317
+ semantics.addEquivalences(callPath, sourcePath, context);
2318
+ returnType = semantics.getReturnType();
2319
+ handledBySemantics = true;
2320
+ }
2321
+ }
892
2322
  }
893
2323
  }
894
2324
  }
@@ -911,10 +2341,18 @@ export function processExpression({
911
2341
  );
912
2342
 
913
2343
  if (sourcePath) {
914
- // Apply method semantics
915
- semantics.addEquivalences(callPath, sourcePath, context);
916
- returnType = semantics.getReturnType();
917
- handledBySemantics = true;
2344
+ // For array-specific semantics (like push), verify the source is actually an array
2345
+ const isArraySemantics = semantics instanceof ArrayPushSemantics;
2346
+ const shouldApply =
2347
+ !isArraySemantics ||
2348
+ isLikelyArrayType(sourceExpr, context.typeChecker);
2349
+
2350
+ if (shouldApply) {
2351
+ // Apply method semantics
2352
+ semantics.addEquivalences(callPath, sourcePath, context);
2353
+ returnType = semantics.getReturnType();
2354
+ handledBySemantics = true;
2355
+ }
918
2356
  }
919
2357
  }
920
2358
  }
@@ -987,6 +2425,13 @@ export function processExpression({
987
2425
  // Create a path for this property within the base
988
2426
  const propPath = targetPath.withProperty(propName);
989
2427
 
2428
+ // Handle child boundaries (callback functions) in object properties
2429
+ // This establishes equivalency between the property path and the child scope
2430
+ // e.g., columns[0].renderCell → cyScope1()
2431
+ if (context.isChildBoundary(property.initializer)) {
2432
+ context.addChildBoundaryEquivalence(propPath, property.initializer);
2433
+ }
2434
+
990
2435
  // Process the property value with propPath as targetPath
991
2436
  // This allows nested object literals to work correctly
992
2437
  processExpression({
@@ -1009,24 +2454,27 @@ export function processExpression({
1009
2454
  context.addType(valuePath, valueType);
1010
2455
  } else if (ts.isSpreadAssignment(property)) {
1011
2456
  // Handle spread: { ...obj }
1012
- // Process the spread expression first (without targetPath for now)
1013
- processExpression({ node: property.expression, context });
1014
-
1015
2457
  // Create a path for this spread source
1016
2458
  let spreadSourcePath: StructuredPath | null = null;
1017
2459
 
1018
2460
  // Handle simple identifier spread: { ...obj }
1019
2461
  if (ts.isIdentifier(property.expression)) {
2462
+ // Process the spread expression first
2463
+ processExpression({ node: property.expression, context });
2464
+
1020
2465
  spreadSourcePath = StructuredPath.fromBase(
1021
2466
  property.expression.text,
1022
2467
  );
1023
2468
  // Establish equivalence between the target and the spread source
1024
2469
  context.addEquivalence(targetPath, spreadSourcePath);
1025
- // and we kow obj is an object
2470
+ // and we know obj is an object
1026
2471
  context.addType(spreadSourcePath, 'object');
1027
2472
  }
1028
2473
  // Handle property access spread: { ...obj.prop }
1029
2474
  else if (ts.isPropertyAccessExpression(property.expression)) {
2475
+ // Process the spread expression first
2476
+ processExpression({ node: property.expression, context });
2477
+
1030
2478
  spreadSourcePath = StructuredPath.fromNode(
1031
2479
  property.expression,
1032
2480
  context.sourceFile,
@@ -1035,8 +2483,55 @@ export function processExpression({
1035
2483
  context.addEquivalence(targetPath, spreadSourcePath);
1036
2484
  }
1037
2485
  }
2486
+ // Handle object literal spread: { ...{ key: value } }
2487
+ // This propagates sub-properties from the spread object to the target
2488
+ else if (ts.isObjectLiteralExpression(property.expression)) {
2489
+ // Recursively process the spread object literal WITH targetPath
2490
+ // This ensures sub-properties like { args: x } become targetPath.args = x
2491
+ processExpression({
2492
+ node: property.expression,
2493
+ context,
2494
+ targetPath,
2495
+ });
2496
+ }
2497
+ // Handle conditional spread: { ...(x ? {...} : {}) }
2498
+ else if (ts.isParenthesizedExpression(property.expression)) {
2499
+ // Unwrap parentheses and process
2500
+ const unwrapped = property.expression.expression;
2501
+
2502
+ // Handle conditional expression inside parens: (x ? {...} : {})
2503
+ if (ts.isConditionalExpression(unwrapped)) {
2504
+ // Process both branches - whenTrue and whenFalse
2505
+ // For tracing, we care about non-empty branches
2506
+ if (ts.isObjectLiteralExpression(unwrapped.whenTrue)) {
2507
+ processExpression({
2508
+ node: unwrapped.whenTrue,
2509
+ context,
2510
+ targetPath,
2511
+ });
2512
+ } else {
2513
+ processExpression({ node: unwrapped.whenTrue, context });
2514
+ }
2515
+
2516
+ if (ts.isObjectLiteralExpression(unwrapped.whenFalse)) {
2517
+ processExpression({
2518
+ node: unwrapped.whenFalse,
2519
+ context,
2520
+ targetPath,
2521
+ });
2522
+ } else {
2523
+ processExpression({ node: unwrapped.whenFalse, context });
2524
+ }
2525
+ } else {
2526
+ // Other parenthesized expression - just process normally
2527
+ processExpression({ node: property.expression, context });
2528
+ }
2529
+ }
1038
2530
  // Handle other expression types
1039
2531
  else {
2532
+ // Process the spread expression
2533
+ processExpression({ node: property.expression, context });
2534
+
1040
2535
  // For complex expressions, use their source representation
1041
2536
  spreadSourcePath = nodeToSource(
1042
2537
  property.expression,
@@ -1236,14 +2731,30 @@ export function processExpression({
1236
2731
  // Extract conditional usages for key attribute detection
1237
2732
  extractConditionalUsage(unwrappedNode.condition, context, 'ternary');
1238
2733
 
2734
+ // Extract conditional effects (setter calls in ternary branches)
2735
+ const knownSetters = findUseStateSetters(context.sourceFile);
2736
+ const effects = extractConditionalEffectsFromTernary(
2737
+ unwrappedNode,
2738
+ context,
2739
+ knownSetters,
2740
+ );
2741
+ for (const effect of effects) {
2742
+ context.addConditionalEffect(effect);
2743
+ }
2744
+
1239
2745
  // Process all parts recursively
1240
2746
  processExpression({
1241
2747
  node: unwrappedNode.condition,
1242
2748
  context,
1243
2749
  typeHint: 'boolean | unknown',
1244
2750
  }); //TODO: could we capture that this is evidence of a boolean type?
1245
- processExpression({ node: unwrappedNode.whenTrue, context });
1246
- processExpression({ node: unwrappedNode.whenFalse, context });
2751
+
2752
+ // Process both branches WITH targetPath to establish equivalencies
2753
+ // This is critical for tracing nested properties through ternary assignments
2754
+ // e.g., const items = condition ? arr1 : arr2; items.map(i => i.prop)
2755
+ // We need items to be equivalent to both arr1 AND arr2 for proper tracing
2756
+ processExpression({ node: unwrappedNode.whenTrue, context, targetPath });
2757
+ processExpression({ node: unwrappedNode.whenFalse, context, targetPath });
1247
2758
 
1248
2759
  // Create a path for the whole expression
1249
2760
  const expressionSourcePath = nodeToSource(
@@ -1266,10 +2777,22 @@ export function processExpression({
1266
2777
  // Register type for the expression
1267
2778
  context.addType(expressionSourcePath, resultType);
1268
2779
 
1269
- // If targetPath is provided, establish equivalence and register type
2780
+ // If targetPath is provided, only register type (don't overwrite branch equivalencies)
2781
+ // The equivalencies to individual branches (set above) are more useful for tracing
2782
+ // than an equivalency to the entire ternary expression text
1270
2783
  if (targetPath) {
1271
- context.addEquivalence(targetPath, expressionSourcePath);
1272
- context.addType(targetPath, resultType);
2784
+ // NOTE: We intentionally do NOT add equivalence here.
2785
+ // The branch processing above already added equivalencies:
2786
+ // targetPath -> whenTrue branch
2787
+ // targetPath -> whenFalse branch
2788
+ // Adding an equivalence to expressionSourcePath would overwrite those
2789
+ // with a useless equivalence to the ternary text itself.
2790
+ //
2791
+ // Use updateSchemaType instead of addType because:
2792
+ // 1. Branch processing may have already set a type on targetPath
2793
+ // 2. addType has a guard that prevents overwriting specific types with 'unknown'
2794
+ // 3. updateSchemaType bypasses this guard, ensuring the ternary's computed type is used
2795
+ context.updateSchemaType(targetPath, resultType);
1273
2796
  }
1274
2797
 
1275
2798
  return true;
@@ -1352,6 +2875,35 @@ export function processExpression({
1352
2875
 
1353
2876
  // Handle Arrow Functions: (p) => p.prop, (a, b) => { ... }
1354
2877
  if (ts.isArrowFunction(unwrappedNode)) {
2878
+ // If this arrow function is a child boundary (e.g., a .map() callback),
2879
+ // don't process its parameters here - they will be processed when the
2880
+ // child scope is analyzed separately. This prevents parameter variables
2881
+ // from leaking into the parent scope's equivalencies.
2882
+ // Check if this arrow function is a child boundary (i.e., should be processed
2883
+ // as a separate child scope, not here in the parent scope).
2884
+ //
2885
+ // We use two checks because childBoundary positions can be unreliable:
2886
+ // 1. Position-based check (standard isChildBoundary)
2887
+ // 2. Text-based check: if the arrow function text doesn't appear in the
2888
+ // statement text, it was replaced with a cyScope placeholder
2889
+ const isChildBoundary = context.isChildBoundary(unwrappedNode);
2890
+
2891
+ // Text-based child scope detection for when positions are unreliable
2892
+ const arrowFnText = unwrappedNode.getText(context.sourceFile);
2893
+ const firstLine = arrowFnText.split('\n')[0].trim();
2894
+ const searchText = firstLine.substring(0, Math.min(20, firstLine.length));
2895
+ const isInStatementText = context.statementInfo.text.includes(searchText);
2896
+ const isChildScope = !isInStatementText && arrowFnText.length > 10;
2897
+
2898
+ if (isChildBoundary || isChildScope) {
2899
+ // The method semantics (e.g., ArrayMapSemantics) have already established
2900
+ // the necessary equivalences between the child scope placeholder and array elements
2901
+ if (targetPath) {
2902
+ context.addType(targetPath, 'function');
2903
+ }
2904
+ return true;
2905
+ }
2906
+
1355
2907
  // Create a path for the function
1356
2908
  const functionPath = StructuredPath.empty();
1357
2909
 
@@ -1563,6 +3115,24 @@ export function processExpression({
1563
3115
  return true;
1564
3116
  }
1565
3117
 
3118
+ // Handle Void Expression: void x, void 0, void func()
3119
+ if (ts.isVoidExpression(unwrappedNode)) {
3120
+ // Process the inner expression for side effects
3121
+ processExpression({ node: unwrappedNode.expression, context });
3122
+
3123
+ // void always returns undefined
3124
+ if (targetPath) {
3125
+ const voidPath = StructuredPath.createLiteralPath(
3126
+ 'undefined',
3127
+ 'undefined',
3128
+ );
3129
+ context.addEquivalence(targetPath, voidPath);
3130
+ context.addType(targetPath, 'undefined');
3131
+ }
3132
+
3133
+ return true;
3134
+ }
3135
+
1566
3136
  // Handle Prefix Unary Expressions: ++x, --y, !z, -a
1567
3137
  if (ts.isPrefixUnaryExpression(unwrappedNode)) {
1568
3138
  // Process the operand
@@ -1779,8 +3349,9 @@ export function processExpression({
1779
3349
  }
1780
3350
  }
1781
3351
 
1782
- // Register component as 'function' type (not 'JSX')
1783
- context.addType(componentPath, 'function');
3352
+ // Register component as 'jsx-component' type to distinguish from regular function calls
3353
+ // This allows downstream code to identify JSX components and not treat them as method chains
3354
+ context.addType(componentPath, 'jsx-component');
1784
3355
 
1785
3356
  // If targetPath is provided (e.g., in variable assignment), establish equivalence to hardcoded "JSX"
1786
3357
  if (targetPath) {
@@ -1960,6 +3531,25 @@ export function processExpression({
1960
3531
  return result;
1961
3532
  }
1962
3533
 
3534
+ // Handle yield expressions in generator functions
3535
+ if (ts.isYieldExpression(unwrappedNode)) {
3536
+ // yield returns whatever is yielded, or undefined if no expression
3537
+ if (unwrappedNode.expression) {
3538
+ // Process the yielded expression
3539
+ const result = processExpression({
3540
+ node: unwrappedNode.expression,
3541
+ context,
3542
+ targetPath,
3543
+ });
3544
+ return result;
3545
+ }
3546
+ // yield with no expression returns undefined
3547
+ if (targetPath) {
3548
+ context.addType(targetPath, 'undefined');
3549
+ }
3550
+ return true;
3551
+ }
3552
+
1963
3553
  if (ts.isRegularExpressionLiteral(unwrappedNode)) {
1964
3554
  // Regular expressions are treated as string literals
1965
3555
  const regexPath = StructuredPath.createLiteralPath(
@@ -2032,6 +3622,9 @@ function processJsxAttribute(
2032
3622
  if (ts.isJsxExpression(attr.initializer) && attr.initializer.expression) {
2033
3623
  const expression = attr.initializer.expression;
2034
3624
  if (context.isChildBoundary(expression)) {
3625
+ // Create equivalency between attribute path and child scope
3626
+ // e.g., Grid().signature[0].renderRow → cyScope1()
3627
+ context.addChildBoundaryEquivalence(attributePath, expression);
2035
3628
  return true;
2036
3629
  }
2037
3630