@codeyam/codeyam-cli 0.1.0-staging.15d0f46 → 0.1.0-staging.1669d45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/analyzer-template/.build-info.json +7 -7
- package/analyzer-template/common/execAsync.ts +1 -1
- package/analyzer-template/log.txt +3 -3
- package/analyzer-template/package.json +9 -5
- package/analyzer-template/packages/ai/index.ts +5 -3
- package/analyzer-template/packages/ai/package.json +1 -1
- package/analyzer-template/packages/ai/src/lib/__mocks__/completionCall.ts +122 -0
- package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +152 -6
- package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +107 -1
- package/analyzer-template/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.ts +644 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +42 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.ts +18 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.ts +38 -1
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.ts +301 -1
- package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +972 -106
- package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +232 -0
- package/analyzer-template/packages/ai/src/lib/checkAllAttributes.ts +29 -10
- package/analyzer-template/packages/ai/src/lib/completionCall.ts +18 -2
- package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +1409 -138
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +2 -1
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +771 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +233 -75
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +19 -1
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +39 -4
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +23 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.ts +98 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +42 -2
- package/analyzer-template/packages/ai/src/lib/deepEqual.ts +30 -0
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +74 -7
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +89 -112
- package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +6 -0
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +486 -86
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +182 -104
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +201 -0
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +528 -0
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +1019 -0
- package/analyzer-template/packages/ai/src/lib/getConditionalUsagesFromCode.ts +143 -31
- package/analyzer-template/packages/ai/src/lib/guessScenarioDataFromDescription.ts +8 -2
- package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +276 -3
- package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +33 -3
- package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +7 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.ts +1 -1
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +32 -102
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +71 -4
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +14 -53
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.ts +58 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.ts +28 -2
- package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +690 -0
- package/analyzer-template/packages/ai/src/lib/splitOutsideParentheses.ts +5 -1
- package/analyzer-template/packages/ai/src/lib/validateExecutionFlowPaths.ts +531 -0
- package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +102 -0
- package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +8 -1
- package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +14 -0
- package/analyzer-template/packages/analyze/src/lib/asts/nodes/index.ts +1 -0
- package/analyzer-template/packages/analyze/src/lib/asts/nodes/isAsyncFunction.ts +67 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +458 -267
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +18 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +3 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +31 -15
- package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +11 -7
- package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +11 -12
- package/analyzer-template/packages/analyze/src/lib/files/enums/steps.ts +1 -1
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +196 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.ts +102 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +588 -52
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.ts +1 -1
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.ts +28 -62
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +299 -133
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +156 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +78 -83
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +4 -8
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +384 -94
- package/analyzer-template/packages/aws/codebuild/index.ts +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts +11 -1
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts.map +1 -1
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js +29 -18
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js.map +1 -1
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts +2 -2
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts.map +1 -1
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js +2 -2
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js.map +1 -1
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts +8 -18
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts.map +1 -1
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js +17 -61
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js.map +1 -1
- package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.d.ts +15 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.js +31 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.d.ts.map +1 -1
- package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js +8 -1
- package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js.map +1 -1
- package/analyzer-template/packages/aws/package.json +2 -2
- package/analyzer-template/packages/aws/s3/index.ts +1 -0
- package/analyzer-template/packages/aws/src/lib/codebuild/waitForBuild.ts +43 -19
- package/analyzer-template/packages/aws/src/lib/ecs/ecsDefineContainer.ts +3 -3
- package/analyzer-template/packages/aws/src/lib/ecs/ecsTaskFactory.ts +17 -69
- package/analyzer-template/packages/aws/src/lib/s3/checkS3ObjectExists.ts +47 -0
- package/analyzer-template/packages/aws/src/lib/s3/uploadFileToS3.ts +8 -1
- package/analyzer-template/packages/database/src/lib/kysely/db.ts +4 -4
- package/analyzer-template/packages/database/src/lib/kysely/tableRelations.ts +2 -2
- package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +36 -9
- package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +7 -3
- package/analyzer-template/packages/generate/index.ts +3 -0
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts +17 -1
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +193 -0
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.ts +73 -0
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.ts +9 -4
- package/analyzer-template/packages/generate/src/lib/deepMerge.ts +26 -1
- package/analyzer-template/packages/generate/src/lib/scenarioComponentForServer.ts +114 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +2 -2
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +2 -2
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tableRelations.d.ts +2 -2
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts +1 -11
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +30 -7
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js +9 -3
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +2 -6
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +7 -4
- package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
- package/analyzer-template/packages/github/dist/generate/index.d.ts +3 -0
- package/analyzer-template/packages/github/dist/generate/index.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/generate/index.js +3 -0
- package/analyzer-template/packages/github/dist/generate/index.js.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts +9 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts +20 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +8 -4
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.js +27 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.js.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts +8 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js +89 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js +10 -0
- package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js.map +1 -1
- package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js +3 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js.map +1 -1
- package/analyzer-template/packages/github/dist/types/index.d.ts +2 -2
- package/analyzer-template/packages/github/dist/types/index.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/index.js.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts +63 -13
- package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +11 -6
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +146 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts.map +1 -1
- package/analyzer-template/packages/github/src/lib/loadOrCreateCommit.ts +14 -0
- package/analyzer-template/packages/github/src/lib/syncPrimaryBranch.ts +2 -0
- package/analyzer-template/packages/process/index.ts +2 -0
- package/analyzer-template/packages/process/package.json +12 -0
- package/analyzer-template/packages/process/tsconfig.json +8 -0
- package/analyzer-template/packages/types/index.ts +4 -0
- package/analyzer-template/packages/types/src/types/Analysis.ts +79 -13
- package/analyzer-template/packages/types/src/types/Entity.ts +2 -0
- package/analyzer-template/packages/types/src/types/Scenario.ts +11 -10
- package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +161 -0
- package/analyzer-template/packages/types/src/types/StatementInfo.ts +2 -0
- package/analyzer-template/packages/utils/dist/types/index.d.ts +2 -2
- package/analyzer-template/packages/utils/dist/types/index.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/index.js.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts +63 -13
- package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +11 -6
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +146 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts.map +1 -1
- package/analyzer-template/playwright/capture.ts +37 -18
- package/analyzer-template/playwright/getCodeYamInfo.ts +12 -7
- package/analyzer-template/playwright/takeElementScreenshot.ts +26 -11
- package/analyzer-template/playwright/waitForServer.ts +21 -6
- package/analyzer-template/project/analyzeBaselineCommit.ts +4 -0
- package/analyzer-template/project/analyzeBranchCommit.ts +4 -0
- package/analyzer-template/project/analyzeFileEntities.ts +4 -0
- package/analyzer-template/project/analyzeRegularCommit.ts +4 -0
- package/analyzer-template/project/constructMockCode.ts +868 -132
- package/analyzer-template/project/controller/startController.ts +16 -1
- package/analyzer-template/project/executeLibraryFunctionDirect.ts +7 -3
- package/analyzer-template/project/mocks/analyzeFileMock.ts +8 -7
- package/analyzer-template/project/orchestrateCapture/KyselyAnalysisLoader.ts +3 -6
- package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +49 -33
- package/analyzer-template/project/orchestrateCapture.ts +10 -3
- package/analyzer-template/project/reconcileMockDataKeys.ts +102 -2
- package/analyzer-template/project/runAnalysis.ts +7 -0
- package/analyzer-template/project/serverOnlyModules.ts +127 -2
- package/analyzer-template/project/start.ts +26 -4
- package/analyzer-template/project/startScenarioCapture.ts +72 -40
- package/analyzer-template/project/writeMockDataTsx.ts +118 -55
- package/analyzer-template/project/writeScenarioClientWrapper.ts +21 -0
- package/analyzer-template/project/writeScenarioComponents.ts +263 -92
- package/analyzer-template/project/writeScenarioFiles.ts +26 -0
- package/analyzer-template/project/writeSimpleRoot.ts +13 -15
- package/analyzer-template/scripts/comboWorkerLoop.cjs +1 -0
- package/analyzer-template/scripts/defaultCmd.sh +9 -0
- package/analyzer-template/tsconfig.json +2 -1
- package/background/src/lib/local/createLocalAnalyzer.js +1 -29
- package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
- package/background/src/lib/local/execAsync.js +1 -1
- package/background/src/lib/local/execAsync.js.map +1 -1
- package/background/src/lib/virtualized/common/execAsync.js +1 -1
- package/background/src/lib/virtualized/common/execAsync.js.map +1 -1
- package/background/src/lib/virtualized/project/analyzeBaselineCommit.js +2 -1
- package/background/src/lib/virtualized/project/analyzeBaselineCommit.js.map +1 -1
- package/background/src/lib/virtualized/project/analyzeBranchCommit.js +2 -1
- package/background/src/lib/virtualized/project/analyzeBranchCommit.js.map +1 -1
- package/background/src/lib/virtualized/project/analyzeFileEntities.js +2 -1
- package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
- package/background/src/lib/virtualized/project/analyzeRegularCommit.js +2 -1
- package/background/src/lib/virtualized/project/analyzeRegularCommit.js.map +1 -1
- package/background/src/lib/virtualized/project/constructMockCode.js +799 -121
- package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
- package/background/src/lib/virtualized/project/controller/startController.js +11 -1
- package/background/src/lib/virtualized/project/controller/startController.js.map +1 -1
- package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js +6 -3
- package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js.map +1 -1
- package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js +7 -7
- package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js.map +1 -1
- package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js +3 -2
- package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js.map +1 -1
- package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +42 -28
- package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
- package/background/src/lib/virtualized/project/orchestrateCapture.js +7 -4
- package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +87 -2
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
- package/background/src/lib/virtualized/project/runAnalysis.js +6 -0
- package/background/src/lib/virtualized/project/runAnalysis.js.map +1 -1
- package/background/src/lib/virtualized/project/serverOnlyModules.js +106 -3
- package/background/src/lib/virtualized/project/serverOnlyModules.js.map +1 -1
- package/background/src/lib/virtualized/project/start.js +21 -4
- package/background/src/lib/virtualized/project/start.js.map +1 -1
- package/background/src/lib/virtualized/project/startScenarioCapture.js +56 -30
- package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
- package/background/src/lib/virtualized/project/writeMockDataTsx.js +110 -48
- package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
- package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js +15 -0
- package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js.map +1 -0
- package/background/src/lib/virtualized/project/writeScenarioComponents.js +211 -75
- package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
- package/background/src/lib/virtualized/project/writeScenarioFiles.js +19 -0
- package/background/src/lib/virtualized/project/writeScenarioFiles.js.map +1 -1
- package/background/src/lib/virtualized/project/writeSimpleRoot.js +13 -13
- package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
- package/codeyam-cli/src/cli.js +5 -1
- package/codeyam-cli/src/cli.js.map +1 -1
- package/codeyam-cli/src/commands/analyze.js +1 -1
- package/codeyam-cli/src/commands/analyze.js.map +1 -1
- package/codeyam-cli/src/commands/baseline.js +174 -0
- package/codeyam-cli/src/commands/baseline.js.map +1 -0
- package/codeyam-cli/src/commands/debug.js +28 -18
- package/codeyam-cli/src/commands/debug.js.map +1 -1
- package/codeyam-cli/src/commands/default.js +0 -15
- package/codeyam-cli/src/commands/default.js.map +1 -1
- package/codeyam-cli/src/commands/recapture.js +44 -23
- package/codeyam-cli/src/commands/recapture.js.map +1 -1
- package/codeyam-cli/src/commands/report.js +72 -24
- package/codeyam-cli/src/commands/report.js.map +1 -1
- package/codeyam-cli/src/commands/start.js +8 -12
- package/codeyam-cli/src/commands/start.js.map +1 -1
- package/codeyam-cli/src/commands/status.js +23 -1
- package/codeyam-cli/src/commands/status.js.map +1 -1
- package/codeyam-cli/src/commands/test-startup.js +1 -1
- package/codeyam-cli/src/commands/test-startup.js.map +1 -1
- package/codeyam-cli/src/commands/wipe.js +108 -0
- package/codeyam-cli/src/commands/wipe.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js +81 -0
- package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +27 -27
- package/codeyam-cli/src/utils/analysisRunner.js +8 -13
- package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
- package/codeyam-cli/src/utils/backgroundServer.js +12 -2
- package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/utils/database.js +91 -5
- package/codeyam-cli/src/utils/database.js.map +1 -1
- package/codeyam-cli/src/utils/generateReport.js +253 -106
- package/codeyam-cli/src/utils/generateReport.js.map +1 -1
- package/codeyam-cli/src/utils/git.js +79 -0
- package/codeyam-cli/src/utils/git.js.map +1 -0
- package/codeyam-cli/src/utils/install-skills.js +11 -11
- package/codeyam-cli/src/utils/install-skills.js.map +1 -1
- package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +38 -0
- package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -1
- package/codeyam-cli/src/utils/queue/job.js +239 -16
- package/codeyam-cli/src/utils/queue/job.js.map +1 -1
- package/codeyam-cli/src/utils/queue/manager.js +19 -7
- package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
- package/codeyam-cli/src/utils/queue/persistence.js.map +1 -1
- package/codeyam-cli/src/utils/serverState.js.map +1 -1
- package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +5 -5
- package/codeyam-cli/src/utils/versionInfo.js +25 -19
- package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
- package/codeyam-cli/src/utils/wipe.js +128 -0
- package/codeyam-cli/src/utils/wipe.js.map +1 -0
- package/codeyam-cli/src/webserver/app/lib/database.js +96 -0
- package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
- package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
- package/codeyam-cli/src/webserver/backgroundServer.js +2 -5
- package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/EntityItem-vauWK972.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-DKdsUF7Y.js → EntityTypeBadge-COi5OvsN.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-BwdQv49w.js +41 -0
- package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-CEleMv_j.js +34 -0
- package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-D68KarMg.js +25 -0
- package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-L75Wvqgw.js +3 -0
- package/codeyam-cli/src/webserver/build/client/assets/LoadingDots-C53WM8qn.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/LogViewer-CrNkmy4i.js +3 -0
- package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-DzJRkCkr.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-CQifa1n-.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-CyaBFX7l.js +20 -0
- package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-CWjSsLqY.js → TruncatedFilePath-D36O1rzU.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/_index-Be83mo_j.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-BN6wu6Y-.js +37 -0
- package/codeyam-cli/src/webserver/build/client/assets/chevron-down-DgTPh8H-.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/chunk-EPOLDU6W-DdQKK6on.js +51 -0
- package/codeyam-cli/src/webserver/build/client/assets/circle-check-Dmr2bb1R.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-Do4ZLUYa.js +21 -0
- package/codeyam-cli/src/webserver/build/client/assets/{cy-logo-cli-C1gnJVOL.svg → cy-logo-cli-CCKUIm0S.svg} +2 -2
- package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-DcX-ZS3p.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-Bn6aCAy_.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha._-CbdFyxZh.js +23 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-B4iCfs5M.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-wDWZZO1W.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-BMbl7MeQ.js +5 -0
- package/codeyam-cli/src/webserver/build/client/assets/entry.client-5wRKRIH9.js +29 -0
- package/codeyam-cli/src/webserver/build/client/assets/executionFlowCoverage-BWhdfn70.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-DD3SDH7t.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/files-DKyMFI90.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/git-zXjT7J0G.js +15 -0
- package/codeyam-cli/src/webserver/build/client/assets/globals-DTTQ3gY7.css +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/html2canvas-pro.esm-fmIEn3Bc.js +9 -0
- package/codeyam-cli/src/webserver/build/client/assets/index-DLbXwndH.js +9 -0
- package/codeyam-cli/src/webserver/build/client/assets/index-gPZ-lad1.js +3 -0
- package/codeyam-cli/src/webserver/build/client/assets/loader-circle-BsPXJ81F.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/manifest-22590fcf.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/preload-helper-ckwbz45p.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/root-BsAarjAM.js +57 -0
- package/codeyam-cli/src/webserver/build/client/assets/scenarioStatus-B_8jpV3e.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/search-P2FKIUql.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/settings-B2eDuBj8.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/simulations-L18M6-kN.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-BDz7kbVA.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-29dDmbH8.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-CmrTPlIB.js → useLastLogLine-BUm0UVJm.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/useReportContext-CkIOKTrZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{useToast-C1ig_BmP.js → useToast-KKw5kTn-.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/index-BND5I5fv.js +1 -0
- package/codeyam-cli/src/webserver/build/server/assets/server-build-CFXnd7MG.js +228 -0
- package/codeyam-cli/src/webserver/build/server/index.js +1 -1
- package/codeyam-cli/src/webserver/build-info.json +5 -5
- package/codeyam-cli/src/webserver/devServer.js +1 -3
- package/codeyam-cli/src/webserver/devServer.js.map +1 -1
- package/codeyam-cli/src/webserver/server.js +35 -25
- package/codeyam-cli/src/webserver/server.js.map +1 -1
- package/codeyam-cli/templates/{codeyam-debug-skill.md → codeyam:debug.md} +1 -1
- package/codeyam-cli/templates/codeyam:diagnose.md +625 -0
- package/codeyam-cli/templates/{codeyam-setup-skill.md → codeyam:setup.md} +139 -4
- package/codeyam-cli/templates/{codeyam-sim-skill.md → codeyam:sim.md} +1 -1
- package/codeyam-cli/templates/{codeyam-test-skill.md → codeyam:test.md} +1 -1
- package/codeyam-cli/templates/{codeyam-verify-skill.md → codeyam:verify.md} +1 -1
- package/package.json +8 -8
- package/packages/ai/index.js +2 -4
- package/packages/ai/index.js.map +1 -1
- package/packages/ai/src/lib/analyzeScope.js +107 -0
- package/packages/ai/src/lib/analyzeScope.js.map +1 -1
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +76 -1
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
- package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js +435 -0
- package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js.map +1 -0
- package/packages/ai/src/lib/astScopes/methodSemantics.js +29 -0
- package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
- package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js +8 -0
- package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js.map +1 -1
- package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js +23 -0
- package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js.map +1 -1
- package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js +239 -1
- package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js.map +1 -1
- package/packages/ai/src/lib/astScopes/processExpression.js +728 -87
- package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
- package/packages/ai/src/lib/checkAllAttributes.js +24 -9
- package/packages/ai/src/lib/checkAllAttributes.js.map +1 -1
- package/packages/ai/src/lib/completionCall.js +17 -1
- package/packages/ai/src/lib/completionCall.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +1126 -82
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +2 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +482 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +173 -55
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +16 -1
- package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +35 -2
- package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +20 -0
- package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js +86 -0
- package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +34 -3
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
- package/packages/ai/src/lib/deepEqual.js +32 -0
- package/packages/ai/src/lib/deepEqual.js.map +1 -0
- package/packages/ai/src/lib/generateChangesEntityScenarioData.js +62 -5
- package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
- package/packages/ai/src/lib/generateChangesEntityScenarios.js +81 -90
- package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
- package/packages/ai/src/lib/generateEntityDataStructure.js +5 -0
- package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
- package/packages/ai/src/lib/generateEntityScenarioData.js +398 -81
- package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
- package/packages/ai/src/lib/generateEntityScenarios.js +168 -82
- package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
- package/packages/ai/src/lib/generateExecutionFlows.js +123 -0
- package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -0
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js +380 -0
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js.map +1 -0
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +742 -0
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -0
- package/packages/ai/src/lib/getConditionalUsagesFromCode.js +84 -14
- package/packages/ai/src/lib/getConditionalUsagesFromCode.js.map +1 -1
- package/packages/ai/src/lib/guessScenarioDataFromDescription.js +2 -1
- package/packages/ai/src/lib/guessScenarioDataFromDescription.js.map +1 -1
- package/packages/ai/src/lib/isolateScopes.js +231 -4
- package/packages/ai/src/lib/isolateScopes.js.map +1 -1
- package/packages/ai/src/lib/mergeStatements.js +26 -3
- package/packages/ai/src/lib/mergeStatements.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +6 -0
- package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js +1 -1
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +21 -64
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +58 -4
- package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +10 -34
- package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js +45 -0
- package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js +16 -3
- package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js.map +1 -1
- package/packages/ai/src/lib/resolvePathToControllable.js +563 -0
- package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -0
- package/packages/ai/src/lib/splitOutsideParentheses.js +3 -1
- package/packages/ai/src/lib/splitOutsideParentheses.js.map +1 -1
- package/packages/ai/src/lib/worker/SerializableDataStructure.js +22 -0
- package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
- package/packages/ai/src/lib/worker/analyzeScopeWorker.js +4 -0
- package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -1
- package/packages/analyze/src/lib/FileAnalyzer.js +15 -0
- package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
- package/packages/analyze/src/lib/asts/nodes/index.js +1 -0
- package/packages/analyze/src/lib/asts/nodes/index.js.map +1 -1
- package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js +52 -0
- package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +214 -50
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +10 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +2 -0
- package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
- package/packages/analyze/src/lib/files/analyzeChange.js +21 -11
- package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
- package/packages/analyze/src/lib/files/analyzeEntity.js +9 -8
- package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
- package/packages/analyze/src/lib/files/analyzeInitial.js +9 -10
- package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
- package/packages/analyze/src/lib/files/enums/steps.js +1 -1
- package/packages/analyze/src/lib/files/enums/steps.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +159 -0
- package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js +85 -0
- package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +458 -48
- package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js +29 -34
- package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +235 -81
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +96 -0
- package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +56 -69
- package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +4 -8
- package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +307 -89
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
- package/packages/aws/src/lib/ecs/ecsDefineContainer.js +2 -2
- package/packages/aws/src/lib/ecs/ecsDefineContainer.js.map +1 -1
- package/packages/aws/src/lib/ecs/ecsTaskFactory.js +17 -61
- package/packages/aws/src/lib/ecs/ecsTaskFactory.js.map +1 -1
- package/packages/database/src/lib/kysely/db.js +2 -2
- package/packages/database/src/lib/kysely/tables/debugReportsTable.js +9 -3
- package/packages/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
- package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +7 -4
- package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
- package/packages/generate/index.js +3 -0
- package/packages/generate/index.js.map +1 -1
- package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
- package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
- package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
- package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
- package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
- package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
- package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +8 -4
- package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
- package/packages/generate/src/lib/deepMerge.js +27 -1
- package/packages/generate/src/lib/deepMerge.js.map +1 -1
- package/packages/generate/src/lib/scenarioComponentForServer.js +89 -0
- package/packages/generate/src/lib/scenarioComponentForServer.js.map +1 -0
- package/packages/github/src/lib/loadOrCreateCommit.js +10 -0
- package/packages/github/src/lib/loadOrCreateCommit.js.map +1 -1
- package/packages/github/src/lib/syncPrimaryBranch.js +3 -0
- package/packages/github/src/lib/syncPrimaryBranch.js.map +1 -1
- package/packages/process/index.js +3 -0
- package/packages/process/index.js.map +1 -0
- package/packages/process/src/GlobalProcessManager.js.map +1 -0
- package/{background/src/lib/process → packages/process/src}/ProcessManager.js +1 -1
- package/packages/process/src/ProcessManager.js.map +1 -0
- package/packages/process/src/index.js.map +1 -0
- package/packages/process/src/managedExecAsync.js.map +1 -0
- package/packages/types/index.js.map +1 -1
- package/scripts/finalize-analyzer.cjs +3 -1
- package/analyzer-template/packages/ai/src/lib/findMatchingAttribute.ts +0 -102
- package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +0 -197
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +0 -271
- package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +0 -294
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.ts +0 -67
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +0 -115
- package/analyzer-template/process/INTEGRATION_COMPLETE.md +0 -333
- package/analyzer-template/process/INTEGRATION_EXAMPLE.md +0 -525
- package/analyzer-template/process/README.md +0 -507
- package/background/src/lib/process/GlobalProcessManager.js.map +0 -1
- package/background/src/lib/process/ProcessManager.js.map +0 -1
- package/background/src/lib/process/index.js.map +0 -1
- package/background/src/lib/process/managedExecAsync.js.map +0 -1
- package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js +0 -238
- package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js.map +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/EntityItem-D0VW1-W7.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-BAk4S4pI.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-Y756iZxZ.js +0 -25
- package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-zzrrjW1p.js +0 -3
- package/codeyam-cli/src/webserver/build/client/assets/LogViewer-QMn7bJg6.js +0 -3
- package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-DmP5mRxX.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-BXwvsbLw.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-DAmUX_1y.js +0 -5
- package/codeyam-cli/src/webserver/build/client/assets/_index-Df-nk4J5.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-_ZUyFdie.js +0 -7
- package/codeyam-cli/src/webserver/build/client/assets/chevron-down-Eoh0PhcW.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/chunk-WWGJGFF6-CZgPLy5i.js +0 -26
- package/codeyam-cli/src/webserver/build/client/assets/circle-check-DI-p9ZLZ.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-DvyV2x6y.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-DURu2qlF.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha._-DDobn9Xh.js +0 -16
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-CGdWnLD_.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-DgMmzrKs.js +0 -5
- package/codeyam-cli/src/webserver/build/client/assets/entry.client-DEVXuhkn.js +0 -13
- package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-WPRQyc68.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/files-B9u3lJer.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/git-YGnKIuHU.js +0 -11
- package/codeyam-cli/src/webserver/build/client/assets/globals-28lrWTTo.css +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/html2canvas-pro.esm-XQCGvadH.js +0 -5
- package/codeyam-cli/src/webserver/build/client/assets/index-CJ0uPJjV.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/index-CfqeA2XG.js +0 -3
- package/codeyam-cli/src/webserver/build/client/assets/loader-circle-DIjSvh6B.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-8125c15c.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/preload-helper-BXl3LOEh.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/root-C-g286WP.js +0 -16
- package/codeyam-cli/src/webserver/build/client/assets/search-xBKWfOxd.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/settings-DVY_wGOx.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/simulations-Be1pJo5A.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-CR-FkSvx.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/useReportContext-DABetnSj.js +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/index-DcR7DH9q.js +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/server-build-BDBrfp7e.js +0 -175
- package/codeyam-cli/templates/debug-codeyam.md +0 -527
- package/packages/ai/src/lib/findMatchingAttribute.js +0 -77
- package/packages/ai/src/lib/findMatchingAttribute.js.map +0 -1
- package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +0 -136
- package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +0 -1
- package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +0 -220
- package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +0 -1
- package/packages/ai/src/lib/generateEntityKeyAttributes.js +0 -241
- package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +0 -1
- package/packages/ai/src/lib/isFrontend.js +0 -5
- package/packages/ai/src/lib/isFrontend.js.map +0 -1
- package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js +0 -40
- package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js.map +0 -1
- package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +0 -72
- package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +0 -1
- /package/analyzer-template/{process → packages/process/src}/GlobalProcessManager.ts +0 -0
- /package/analyzer-template/{process → packages/process/src}/ProcessManager.ts +0 -0
- /package/analyzer-template/{process → packages/process/src}/index.ts +0 -0
- /package/analyzer-template/{process → packages/process/src}/managedExecAsync.ts +0 -0
- /package/{background/src/lib/process → packages/process/src}/GlobalProcessManager.js +0 -0
- /package/{background/src/lib/process → packages/process/src}/index.js +0 -0
- /package/{background/src/lib/process → packages/process/src}/managedExecAsync.js +0 -0
|
@@ -38,6 +38,10 @@ export interface AnalysisOptions {
|
|
|
38
38
|
forceAll?: boolean;
|
|
39
39
|
updateProgress?: (detail: string) => void;
|
|
40
40
|
modelString?: string;
|
|
41
|
+
/** Process data structure preparation sequentially instead of in parallel (for debugging) */
|
|
42
|
+
sequentialDataStructurePrep?: boolean;
|
|
43
|
+
/** Called after data structures are prepared, signaling orchestration can begin */
|
|
44
|
+
onAnalysisProducing?: () => void;
|
|
41
45
|
}
|
|
42
46
|
|
|
43
47
|
interface AnalyzeEntitiesArgs {
|
|
@@ -113,6 +117,14 @@ export default async function analyzeEntities({
|
|
|
113
117
|
'Data structure preparation',
|
|
114
118
|
);
|
|
115
119
|
|
|
120
|
+
// Signal that analysis can now produce captures
|
|
121
|
+
// This allows orchestration to start polling for ready analyses
|
|
122
|
+
awsLogDebugLevel(
|
|
123
|
+
1,
|
|
124
|
+
'Data structures prepared, analysis can now produce captures',
|
|
125
|
+
);
|
|
126
|
+
options.onAnalysisProducing?.();
|
|
127
|
+
|
|
116
128
|
// Persist entities so isolatedDataStructure is available in future runs.
|
|
117
129
|
// This ensures stable dependencyAnalyzedTreeSha across multiple analyzeEntities calls.
|
|
118
130
|
const entitiesWithDataStructure = Array.from(allEntities).filter(
|
|
@@ -376,6 +388,12 @@ export default async function analyzeEntities({
|
|
|
376
388
|
// Circular dependency detected in path - skip
|
|
377
389
|
continue;
|
|
378
390
|
}
|
|
391
|
+
// If already visited via another traversal path, skip to avoid deadlock.
|
|
392
|
+
// Its subtree has been fully explored; any leaves are already in leafKeys.
|
|
393
|
+
// Blocking on it would just propagate the block and cause stuck analysis.
|
|
394
|
+
if (visited.has(dependentEntityKey)) {
|
|
395
|
+
continue;
|
|
396
|
+
}
|
|
379
397
|
isLeaf = false;
|
|
380
398
|
visitEntity(dependentEntity, [...path, dependentEntityKey]);
|
|
381
399
|
}
|
|
@@ -161,6 +161,9 @@ export default async function findOrCreateEntity({
|
|
|
161
161
|
const defaultExport = fileAnalyzer.isDefaultExport(entity.name);
|
|
162
162
|
entity.metadata.namedExport = !defaultExport;
|
|
163
163
|
|
|
164
|
+
// Detect if the entity is an async function/component (Server Component in Next.js)
|
|
165
|
+
entity.metadata.isAsync = fileAnalyzer.isEntityAsync(localEntityName);
|
|
166
|
+
|
|
164
167
|
if (defaultExport) {
|
|
165
168
|
const allEntityNodes = fileAnalyzer.getAllEntityNodes();
|
|
166
169
|
entity.metadata.exportAlias = Object.keys(allEntityNodes).find(
|
|
@@ -7,7 +7,7 @@ import type {
|
|
|
7
7
|
import generateDataStructure from './scenarios/generateDataStructure';
|
|
8
8
|
import generateChangesScenarioData from './scenarios/generateChangesScenarioData';
|
|
9
9
|
import generateChangesScenarios from './scenarios/generateChangesScenarios';
|
|
10
|
-
import
|
|
10
|
+
import generateExecutionFlows from './scenarios/generateExecutionFlows';
|
|
11
11
|
import { upsertAnalysesWithScenarios } from '~codeyam/database';
|
|
12
12
|
import { Step } from './enums/steps';
|
|
13
13
|
import recordStep from './recordStep';
|
|
@@ -22,6 +22,7 @@ import {
|
|
|
22
22
|
pushAnalysisError,
|
|
23
23
|
Semaphore,
|
|
24
24
|
} from '~codeyam/utils';
|
|
25
|
+
import deepEqual from '../utils/deepEqual';
|
|
25
26
|
|
|
26
27
|
export interface AnalyzeChangeArgs {
|
|
27
28
|
previousAnalysis: Analysis;
|
|
@@ -115,33 +116,48 @@ export default async function analyzeChange({
|
|
|
115
116
|
}
|
|
116
117
|
}
|
|
117
118
|
|
|
118
|
-
//
|
|
119
|
-
if (!steps || steps.includes(Step.
|
|
120
|
-
awsLogDebugLevel(1, `
|
|
119
|
+
// ExecutionFlows phase: I/O-bound LLM call, can run in parallel with other entities' Structure
|
|
120
|
+
if (!steps || steps.includes(Step.ExecutionFlows)) {
|
|
121
|
+
awsLogDebugLevel(1, `Generating execution flows for ${entity.name}...`);
|
|
121
122
|
|
|
122
|
-
const { step:
|
|
123
|
-
'
|
|
123
|
+
const { step: executionFlowsStep } = await recordStep(
|
|
124
|
+
'generateExecutionFlows',
|
|
124
125
|
() =>
|
|
125
|
-
|
|
126
|
+
generateExecutionFlows({
|
|
126
127
|
entity,
|
|
127
128
|
analysis,
|
|
128
|
-
dependentAnalyses,
|
|
129
129
|
model,
|
|
130
130
|
updateProgress,
|
|
131
|
+
dependentAnalyses,
|
|
131
132
|
}),
|
|
132
133
|
);
|
|
133
|
-
analysis.status.steps.push(
|
|
134
|
+
analysis.status.steps.push(executionFlowsStep);
|
|
134
135
|
}
|
|
135
136
|
|
|
136
|
-
|
|
137
|
-
analysis.metadata.scenariosDataStructure
|
|
138
|
-
previousAnalysis.metadata.scenariosDataStructure
|
|
139
|
-
)
|
|
137
|
+
const dataStructureUnchanged = deepEqual(
|
|
138
|
+
analysis.metadata.scenariosDataStructure,
|
|
139
|
+
previousAnalysis.metadata.scenariosDataStructure,
|
|
140
|
+
);
|
|
141
|
+
|
|
142
|
+
const executionFlowsUnchanged = deepEqual(
|
|
143
|
+
analysis.metadata.executionFlows,
|
|
144
|
+
previousAnalysis.metadata.executionFlows,
|
|
145
|
+
);
|
|
146
|
+
|
|
147
|
+
if (dataStructureUnchanged && executionFlowsUnchanged) {
|
|
140
148
|
awsLogDebugLevel(
|
|
141
149
|
1,
|
|
142
|
-
`Data structure unchanged, reusing previous scenarios for ${entity.name}...`,
|
|
150
|
+
`Data structure and execution flows unchanged, reusing previous scenarios for ${entity.name}...`,
|
|
143
151
|
);
|
|
144
|
-
|
|
152
|
+
// Reuse previous scenarios but mark them for recapture if entity code changed
|
|
153
|
+
analysis.scenarios = previousAnalysis.scenarios.map((scenario) => ({
|
|
154
|
+
...scenario,
|
|
155
|
+
metadata: {
|
|
156
|
+
...scenario.metadata,
|
|
157
|
+
// Only mark for recapture if entity code actually changed
|
|
158
|
+
needsRecapture: entityChanged,
|
|
159
|
+
},
|
|
160
|
+
}));
|
|
145
161
|
} else {
|
|
146
162
|
if (!steps || steps.includes(Step.Scenarios)) {
|
|
147
163
|
awsLogDebugLevel(1, `Generating scenarios for ${entity.name}...`);
|
|
@@ -230,7 +230,7 @@ export default async function analyzeEntity({
|
|
|
230
230
|
|
|
231
231
|
// For partial analyses, skip Step.Structure to reuse existing mergedDataStructure
|
|
232
232
|
if (isPartialAnalysis && !steps) {
|
|
233
|
-
steps = [Step.
|
|
233
|
+
steps = [Step.ExecutionFlows, Step.Scenarios, Step.Data];
|
|
234
234
|
awsLog(
|
|
235
235
|
'CodeYam: continuing from partial analysis, skipping Structure step',
|
|
236
236
|
{
|
|
@@ -271,13 +271,17 @@ export default async function analyzeEntity({
|
|
|
271
271
|
});
|
|
272
272
|
}
|
|
273
273
|
|
|
274
|
+
// Return early if analysis is already complete for its purpose:
|
|
275
|
+
// - Full analysis: has analyzedTreeSha
|
|
276
|
+
// - Dependency analysis: has executionFlows (Structure + ExecutionFlows already ran)
|
|
277
|
+
const isCompleteDependencyAnalysis =
|
|
278
|
+
analyzeAsDependency && !!existingAnalysis.metadata?.executionFlows;
|
|
279
|
+
|
|
274
280
|
if (
|
|
275
281
|
!force &&
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
// existingAnalysis.status?.readyToBeCaptured ||
|
|
280
|
-
// branchCommitSha)
|
|
282
|
+
existingAnalysis.dependencyAnalyzedTreeSha ===
|
|
283
|
+
dependencyAnalyzedTreeSha &&
|
|
284
|
+
(!!existingAnalysis.analyzedTreeSha || isCompleteDependencyAnalysis)
|
|
281
285
|
) {
|
|
282
286
|
awsLogDebugLevel(1, `Using existing analysis for ${entity.name}...`);
|
|
283
287
|
awsLog('Returning existing analysis', {
|
|
@@ -375,7 +379,7 @@ export default async function analyzeEntity({
|
|
|
375
379
|
}
|
|
376
380
|
|
|
377
381
|
if (!steps || steps?.includes(Step.Scenarios)) {
|
|
378
|
-
delete existingAnalysis.metadata.
|
|
382
|
+
delete existingAnalysis.metadata.executionFlows;
|
|
379
383
|
}
|
|
380
384
|
|
|
381
385
|
if (!steps || steps?.includes(Step.Data)) {
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
pushAnalysisError,
|
|
19
19
|
Semaphore,
|
|
20
20
|
} from '~codeyam/utils';
|
|
21
|
-
import
|
|
21
|
+
import generateExecutionFlows from './scenarios/generateExecutionFlows';
|
|
22
22
|
|
|
23
23
|
export interface AnalyzeInitialArgs {
|
|
24
24
|
analysis: Analysis;
|
|
@@ -83,30 +83,30 @@ export default async function analyzeInitial({
|
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
// Short-circuit for test mocking: only generate data structure, skip
|
|
86
|
+
// Short-circuit for test mocking: only generate data structure, skip execution flows and scenarios
|
|
87
87
|
if (process.env.ONLY_DATA_STRUCTURE === 'true') {
|
|
88
88
|
awsLog(
|
|
89
|
-
'CodeYam: Skipping
|
|
89
|
+
'CodeYam: Skipping execution flows and scenario generation (ONLY_DATA_STRUCTURE=true)',
|
|
90
90
|
);
|
|
91
91
|
return { analysis };
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
-
//
|
|
95
|
-
if (!steps || steps.includes(Step.
|
|
96
|
-
awsLogDebugLevel(1, `
|
|
94
|
+
// ExecutionFlows phase: I/O-bound LLM call, can run in parallel with other entities' Structure
|
|
95
|
+
if (!steps || steps.includes(Step.ExecutionFlows)) {
|
|
96
|
+
awsLogDebugLevel(1, `Generating execution flows for ${entity.name}...`);
|
|
97
97
|
|
|
98
|
-
const { step:
|
|
99
|
-
'
|
|
98
|
+
const { step: executionFlowsStep } = await recordStep(
|
|
99
|
+
'generateExecutionFlows',
|
|
100
100
|
() =>
|
|
101
|
-
|
|
101
|
+
generateExecutionFlows({
|
|
102
102
|
entity,
|
|
103
103
|
analysis,
|
|
104
|
-
dependentAnalyses,
|
|
105
104
|
model,
|
|
106
105
|
updateProgress,
|
|
106
|
+
dependentAnalyses,
|
|
107
107
|
}),
|
|
108
108
|
);
|
|
109
|
-
analysis.status.steps.push(
|
|
109
|
+
analysis.status.steps.push(executionFlowsStep);
|
|
110
110
|
}
|
|
111
111
|
|
|
112
112
|
if (analyzeAsDependency) {
|
|
@@ -176,7 +176,6 @@ export default async function analyzeInitial({
|
|
|
176
176
|
analysis.status.steps.push(mockDataStep);
|
|
177
177
|
}
|
|
178
178
|
} catch (error) {
|
|
179
|
-
console.log(error);
|
|
180
179
|
pushAnalysisError({
|
|
181
180
|
status: analysis.status,
|
|
182
181
|
error,
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { DataStructure } from '~codeyam/types';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Enriches mocked dependency array types with fields from child component signatures.
|
|
5
|
+
*
|
|
6
|
+
* When a mocked dependency (e.g., getSurveysAction) returns an array, and elements
|
|
7
|
+
* from that array are passed to child components (e.g., SurveyCard), the child's
|
|
8
|
+
* signatureSchema specifies required fields (e.g., survey.updatedAt). This function
|
|
9
|
+
* enriches the mocked dependency's returnValueSchema so the LLM knows what fields
|
|
10
|
+
* to generate for array elements.
|
|
11
|
+
*
|
|
12
|
+
* Example:
|
|
13
|
+
* - getSurveysAction returns { data: array }
|
|
14
|
+
* - SurveyCard expects signature[0].survey.updatedAt: date
|
|
15
|
+
* - After enrichment: getSurveysAction().data[]: object, data[].updatedAt: date
|
|
16
|
+
*/
|
|
17
|
+
export default function enrichArrayTypesFromChildSignatures(
|
|
18
|
+
importedExports: {
|
|
19
|
+
filePath?: string;
|
|
20
|
+
name: string;
|
|
21
|
+
isMocked?: boolean;
|
|
22
|
+
}[],
|
|
23
|
+
dependencySchemas: DataStructure['dependencySchemas'],
|
|
24
|
+
): void {
|
|
25
|
+
// Find all mocked dependencies with array return types
|
|
26
|
+
const mockedArrayPaths: {
|
|
27
|
+
filePath: string;
|
|
28
|
+
entityName: string;
|
|
29
|
+
arrayPath: string; // e.g., "getSurveysAction().functionCallReturnValue.data"
|
|
30
|
+
}[] = [];
|
|
31
|
+
|
|
32
|
+
for (const importedExport of importedExports) {
|
|
33
|
+
if (!importedExport.isMocked || !importedExport.filePath) continue;
|
|
34
|
+
|
|
35
|
+
const schema =
|
|
36
|
+
dependencySchemas?.[importedExport.filePath]?.[importedExport.name]
|
|
37
|
+
?.returnValueSchema;
|
|
38
|
+
if (!schema) continue;
|
|
39
|
+
|
|
40
|
+
// Find paths that are top-level data arrays (not deeply nested, not direct returns)
|
|
41
|
+
// We only want to enrich arrays that likely contain objects passed to children
|
|
42
|
+
// e.g., getSurveysAction().data but NOT:
|
|
43
|
+
// - wrapThrows().data.createdBy (deeply nested)
|
|
44
|
+
// - getStatusOptions().functionCallReturnValue (direct array return - usually options/primitives)
|
|
45
|
+
for (const [path, type] of Object.entries(schema)) {
|
|
46
|
+
if (type !== 'array') continue;
|
|
47
|
+
|
|
48
|
+
// Skip paths with computed property patterns like [key], [i], [0], etc.
|
|
49
|
+
// These represent dynamic access patterns, not simple data arrays
|
|
50
|
+
// We only match brackets with content (not empty [] which indicates array element type)
|
|
51
|
+
if (/\[[^\]]+\]/.test(path)) {
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// Skip direct array returns (e.g., getStatusOptions().functionCallReturnValue)
|
|
56
|
+
// These are typically specialized arrays like [{label, value}], not entity arrays
|
|
57
|
+
if (path.endsWith('.functionCallReturnValue')) {
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// Check if this is a top-level array (at most one property after functionCallReturnValue)
|
|
62
|
+
// e.g., "foo().functionCallReturnValue.data" is top-level
|
|
63
|
+
// e.g., "foo().functionCallReturnValue.data.createdBy" is nested (skip)
|
|
64
|
+
const returnValueMatch = path.match(/\.functionCallReturnValue\.(.+)$/);
|
|
65
|
+
if (returnValueMatch) {
|
|
66
|
+
const afterReturnValue = returnValueMatch[1];
|
|
67
|
+
// If there's more than one property access, it's nested
|
|
68
|
+
const propertyCount = afterReturnValue.split('.').length;
|
|
69
|
+
if (propertyCount > 1) {
|
|
70
|
+
continue; // Skip deeply nested arrays
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
mockedArrayPaths.push({
|
|
75
|
+
filePath: importedExport.filePath,
|
|
76
|
+
entityName: importedExport.name,
|
|
77
|
+
arrayPath: path,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
if (mockedArrayPaths.length === 0) return;
|
|
83
|
+
|
|
84
|
+
// Find all non-mocked child components and extract their signature fields
|
|
85
|
+
// We check both direct imports AND all schemas in dependencySchemas because
|
|
86
|
+
// transitive dependencies (e.g., SurveyCard imported by SurveysList imported by SurveysPage)
|
|
87
|
+
// may have signature schemas that we need to use for enrichment.
|
|
88
|
+
const childSignatureFields: {
|
|
89
|
+
filePath: string;
|
|
90
|
+
entityName: string;
|
|
91
|
+
// Map of prop paths to types, e.g., { "survey.id": "string", "survey.updatedAt": "date" }
|
|
92
|
+
propFields: Record<string, string>;
|
|
93
|
+
}[] = [];
|
|
94
|
+
|
|
95
|
+
// Helper to extract prop fields from a signature schema
|
|
96
|
+
const extractPropFields = (
|
|
97
|
+
schema: Record<string, string>,
|
|
98
|
+
): Record<string, string> => {
|
|
99
|
+
const propFields: Record<string, string> = {};
|
|
100
|
+
for (const [path, type] of Object.entries(schema)) {
|
|
101
|
+
// Match signature[0].propName.field patterns
|
|
102
|
+
const match = path.match(/^signature\[0\]\.(\w+)\.(.+)$/);
|
|
103
|
+
if (match) {
|
|
104
|
+
const [, , fieldPath] = match;
|
|
105
|
+
// Store as "fieldPath" without the prop name prefix
|
|
106
|
+
// e.g., signature[0].survey.updatedAt -> updatedAt
|
|
107
|
+
propFields[fieldPath] = type;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return propFields;
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
// First, check direct imports (non-mocked)
|
|
114
|
+
const processedSchemas = new Set<string>();
|
|
115
|
+
for (const importedExport of importedExports) {
|
|
116
|
+
// Skip mocked dependencies - we want child components
|
|
117
|
+
if (importedExport.isMocked || !importedExport.filePath) continue;
|
|
118
|
+
|
|
119
|
+
const schemaKey = `${importedExport.filePath}::${importedExport.name}`;
|
|
120
|
+
processedSchemas.add(schemaKey);
|
|
121
|
+
|
|
122
|
+
const schema =
|
|
123
|
+
dependencySchemas?.[importedExport.filePath]?.[importedExport.name]
|
|
124
|
+
?.signatureSchema;
|
|
125
|
+
if (!schema) continue;
|
|
126
|
+
|
|
127
|
+
const propFields = extractPropFields(schema);
|
|
128
|
+
if (Object.keys(propFields).length > 0) {
|
|
129
|
+
childSignatureFields.push({
|
|
130
|
+
filePath: importedExport.filePath,
|
|
131
|
+
entityName: importedExport.name,
|
|
132
|
+
propFields,
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// Also check all schemas in dependencySchemas for transitive child components
|
|
138
|
+
// that may not be in importedExports but have signature schemas with prop fields
|
|
139
|
+
if (dependencySchemas) {
|
|
140
|
+
for (const [filePath, entities] of Object.entries(dependencySchemas)) {
|
|
141
|
+
for (const [entityName, schemas] of Object.entries(entities)) {
|
|
142
|
+
const schemaKey = `${filePath}::${entityName}`;
|
|
143
|
+
// Skip already processed schemas
|
|
144
|
+
if (processedSchemas.has(schemaKey)) continue;
|
|
145
|
+
|
|
146
|
+
const signatureSchema = schemas?.signatureSchema;
|
|
147
|
+
if (!signatureSchema) continue;
|
|
148
|
+
|
|
149
|
+
const propFields = extractPropFields(signatureSchema);
|
|
150
|
+
if (Object.keys(propFields).length > 0) {
|
|
151
|
+
childSignatureFields.push({
|
|
152
|
+
filePath,
|
|
153
|
+
entityName,
|
|
154
|
+
propFields,
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
if (childSignatureFields.length === 0) return;
|
|
162
|
+
|
|
163
|
+
// Enrich mocked dependency arrays with child signature fields
|
|
164
|
+
// Only enrich arrays that don't already have element types defined
|
|
165
|
+
// A more sophisticated approach would trace the data flow to match specific arrays to specific children
|
|
166
|
+
for (const { filePath, entityName, arrayPath } of mockedArrayPaths) {
|
|
167
|
+
const schema = dependencySchemas[filePath][entityName].returnValueSchema;
|
|
168
|
+
|
|
169
|
+
// Check if this array already has element type definitions
|
|
170
|
+
// If so, skip it - it's likely a specialized array like [null] for refs
|
|
171
|
+
const elementPathPrefix = `${arrayPath}[`;
|
|
172
|
+
const hasExistingElementType = Object.keys(schema).some((path) =>
|
|
173
|
+
path.startsWith(elementPathPrefix),
|
|
174
|
+
);
|
|
175
|
+
|
|
176
|
+
if (hasExistingElementType) {
|
|
177
|
+
// Array already has element type info (e.g., useAutoAnimate()[0]: null)
|
|
178
|
+
// Don't override it with child signature fields
|
|
179
|
+
continue;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
// Add array element type
|
|
183
|
+
const elementPath = `${arrayPath}[]`;
|
|
184
|
+
schema[elementPath] = 'object';
|
|
185
|
+
|
|
186
|
+
// Add fields from all child signatures to the array element
|
|
187
|
+
for (const { propFields } of childSignatureFields) {
|
|
188
|
+
for (const [fieldPath, type] of Object.entries(propFields)) {
|
|
189
|
+
const fullPath = `${elementPath}.${fieldPath}`;
|
|
190
|
+
if (!schema[fullPath]) {
|
|
191
|
+
schema[fullPath] = type;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { DataStructure } from '~codeyam/types';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Enriches mocked dependency return value types using sourceEquivalencies.
|
|
5
|
+
*
|
|
6
|
+
* When a mocked dependency returns a value with an `unknown` type, and that value
|
|
7
|
+
* is passed to a child component, we can infer the type from the child's signature.
|
|
8
|
+
* The sourceEquivalencies track this data flow.
|
|
9
|
+
*
|
|
10
|
+
* Example:
|
|
11
|
+
* - trpc.quote.getQuoteQuestionAnswers.useQuery().functionCallReturnValue.data is `unknown`
|
|
12
|
+
* - sourceEquivalencies shows this data flows to QuoteHeaderExcel().signature[0].questionAnswers
|
|
13
|
+
* - QuoteHeaderExcel's signatureSchema says signature[0].questionAnswers is `array | undefined`
|
|
14
|
+
* - Therefore, data should be `array | undefined`
|
|
15
|
+
*
|
|
16
|
+
* Without this enrichment, fillInDirectSchemaGapsAndUnknowns will guess the type
|
|
17
|
+
* based on the property name, often incorrectly (e.g., 'data' becomes 'number'
|
|
18
|
+
* because pluralize.isPlural('data') returns true).
|
|
19
|
+
*/
|
|
20
|
+
export default function enrichUnknownTypesFromSourceEquivalencies(
|
|
21
|
+
isolatedDependencySchemas: DataStructure['dependencySchemas'],
|
|
22
|
+
mergedDependencySchemas: DataStructure['dependencySchemas'],
|
|
23
|
+
mockedImports: { filePath?: string; name: string; isMocked?: boolean }[],
|
|
24
|
+
): void {
|
|
25
|
+
// Build a map of mocked dependency schemas for quick lookup
|
|
26
|
+
const mockedSchemas = new Map<string, Record<string, string>>();
|
|
27
|
+
for (const imp of mockedImports) {
|
|
28
|
+
if (!imp.isMocked || !imp.filePath) continue;
|
|
29
|
+
const schema =
|
|
30
|
+
mergedDependencySchemas?.[imp.filePath]?.[imp.name]?.returnValueSchema;
|
|
31
|
+
if (schema) {
|
|
32
|
+
mockedSchemas.set(`${imp.filePath}:${imp.name}`, schema);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
if (mockedSchemas.size === 0) return;
|
|
37
|
+
|
|
38
|
+
// Iterate over all sourceEquivalencies in all dependency schemas
|
|
39
|
+
for (const filePath in isolatedDependencySchemas) {
|
|
40
|
+
for (const entityName in isolatedDependencySchemas[filePath]) {
|
|
41
|
+
const depSchema = isolatedDependencySchemas[filePath][entityName];
|
|
42
|
+
const sourceEquivs = depSchema.sourceEquivalencies;
|
|
43
|
+
if (!sourceEquivs) continue;
|
|
44
|
+
|
|
45
|
+
// For each sourceEquivalency: key is destination, value contains sources
|
|
46
|
+
for (const [destinationPath, sources] of Object.entries(sourceEquivs)) {
|
|
47
|
+
// Parse the destination to get the child entity name and signature path
|
|
48
|
+
// e.g., "QuoteHeaderExcel().signature[0].questionAnswers" ->
|
|
49
|
+
// entityName: "QuoteHeaderExcel", sigPath: "signature[0].questionAnswers"
|
|
50
|
+
const destMatch = destinationPath.match(/^(\w+)\(\)\.(.+)$/);
|
|
51
|
+
if (!destMatch) continue;
|
|
52
|
+
|
|
53
|
+
const [, destEntityName, destSigPath] = destMatch;
|
|
54
|
+
|
|
55
|
+
// Find the child's signatureSchema to get the destination type
|
|
56
|
+
let destType: string | undefined;
|
|
57
|
+
for (const depFilePath in mergedDependencySchemas) {
|
|
58
|
+
const childSchema =
|
|
59
|
+
mergedDependencySchemas[depFilePath][destEntityName];
|
|
60
|
+
if (childSchema?.signatureSchema?.[destSigPath]) {
|
|
61
|
+
destType = childSchema.signatureSchema[destSigPath];
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
if (!destType || destType === 'unknown') continue;
|
|
67
|
+
|
|
68
|
+
// Now check each source to see if it's a mocked dependency with unknown type
|
|
69
|
+
for (const source of sources) {
|
|
70
|
+
const { scopeNodeName, schemaPath } = source;
|
|
71
|
+
|
|
72
|
+
// Find which mocked dependency this belongs to
|
|
73
|
+
for (const [key, schema] of mockedSchemas) {
|
|
74
|
+
const [mockedFilePath, mockedName] = key.split(':');
|
|
75
|
+
|
|
76
|
+
// Check if this source path is in the mocked dependency's schema
|
|
77
|
+
// The schemaPath contains the full path like:
|
|
78
|
+
// "trpc.quote.getQuoteQuestionAnswers.useQuery(...).functionCallReturnValue.data"
|
|
79
|
+
// We need to find it in the returnValueSchema
|
|
80
|
+
if (schema[schemaPath] === 'unknown') {
|
|
81
|
+
// Found an unknown type that flows to a known type!
|
|
82
|
+
schema[schemaPath] = destType;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// Also check without the functionCallReturnValue part
|
|
86
|
+
// (some schemas might have the transformed path)
|
|
87
|
+
const transformedPath = schemaPath.replace(
|
|
88
|
+
/\.functionCallReturnValue/g,
|
|
89
|
+
'',
|
|
90
|
+
);
|
|
91
|
+
if (
|
|
92
|
+
transformedPath !== schemaPath &&
|
|
93
|
+
schema[transformedPath] === 'unknown'
|
|
94
|
+
) {
|
|
95
|
+
schema[transformedPath] = destType;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|