@codeyam/codeyam-cli 0.1.0-staging.e38f7bd → 0.1.0-staging.fef152f
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 +8 -8
- package/analyzer-template/common/execAsync.ts +1 -1
- package/analyzer-template/log.txt +3 -3
- package/analyzer-template/package.json +30 -26
- package/analyzer-template/packages/ai/index.ts +21 -5
- package/analyzer-template/packages/ai/package.json +4 -4
- package/analyzer-template/packages/ai/src/lib/__mocks__/completionCall.ts +122 -0
- package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +228 -24
- package/analyzer-template/packages/ai/src/lib/astScopes/arrayDerivationDetector.ts +199 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +205 -10
- package/analyzer-template/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.ts +644 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +181 -23
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.ts +10 -17
- 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 +181 -1
- package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +1619 -125
- package/analyzer-template/packages/ai/src/lib/astScopes/sharedPatterns.ts +28 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +324 -5
- package/analyzer-template/packages/ai/src/lib/checkAllAttributes.ts +29 -10
- package/analyzer-template/packages/ai/src/lib/completionCall.ts +216 -36
- package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +2761 -390
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +21 -4
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +976 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +243 -77
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.ts +16 -3
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.ts +6 -4
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +71 -2
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +161 -19
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.ts +70 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +163 -14
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.ts +98 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.ts +179 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.ts +40 -30
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +441 -82
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.ts +129 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.ts +35 -0
- package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +183 -0
- package/analyzer-template/packages/ai/src/lib/deepEqual.ts +30 -0
- package/analyzer-template/packages/ai/src/lib/e2eDataTracking.ts +334 -0
- package/analyzer-template/packages/ai/src/lib/extractCriticalDataKeys.ts +120 -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 +63 -2
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +1419 -101
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +216 -109
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +710 -0
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +528 -0
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +2484 -0
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.ts +239 -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 +328 -7
- package/analyzer-template/packages/ai/src/lib/mergeJsonTypeDefinitions.ts +5 -0
- package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +111 -87
- package/analyzer-template/packages/ai/src/lib/promptGenerators/collapseNullableObjects.ts +118 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +17 -7
- 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/generateChunkPrompt.ts +82 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateCriticalKeysPrompt.ts +103 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +110 -6
- 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/promptGenerators/simplifyKeysForLLM.ts +391 -0
- package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +824 -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 +127 -3
- package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +121 -2
- package/analyzer-template/packages/analyze/index.ts +2 -0
- package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +79 -59
- package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +113 -26
- package/analyzer-template/packages/analyze/src/lib/analysisContext.ts +44 -4
- package/analyzer-template/packages/analyze/src/lib/asts/nodes/getNodeType.ts +1 -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/asts/sourceFiles/getAllDeclaredEntityNodes.ts +19 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.ts +19 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExports.ts +11 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.ts +8 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.ts +49 -1
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.ts +2 -1
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +570 -180
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +54 -1
- package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +6 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +3 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +4 -2
- package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +33 -10
- 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/analyzeRemixRoute.ts +4 -5
- package/analyzer-template/packages/analyze/src/lib/files/enums/steps.ts +1 -1
- package/analyzer-template/packages/analyze/src/lib/files/getImportedExports.ts +22 -13
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +1315 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +313 -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 +711 -78
- 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 +550 -137
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +264 -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 +1067 -167
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.ts +56 -11
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/propagateArrayItemSchemas.ts +474 -0
- package/analyzer-template/packages/analyze/src/lib/files/setImportedExports.ts +2 -1
- package/analyzer-template/packages/analyze/src/lib/index.ts +1 -0
- package/analyzer-template/packages/analyze/src/lib/utils/getFileByPath.ts +19 -0
- 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 +10 -10
- 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/package.json +1 -1
- package/analyzer-template/packages/database/src/lib/analysisBranchToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/analysisToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/branchToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/commitBranchToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/commitToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/fileToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/kysely/db.ts +18 -5
- package/analyzer-template/packages/database/src/lib/kysely/tableRelations.ts +2 -2
- package/analyzer-template/packages/database/src/lib/kysely/tables/commitsTable.ts +6 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +36 -9
- package/analyzer-template/packages/database/src/lib/kysely/tables/labsRequestsTable.ts +52 -0
- package/analyzer-template/packages/database/src/lib/loadAnalyses.ts +58 -1
- package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +13 -0
- package/analyzer-template/packages/database/src/lib/loadBranch.ts +16 -1
- package/analyzer-template/packages/database/src/lib/loadCommit.ts +11 -0
- package/analyzer-template/packages/database/src/lib/loadCommits.ts +28 -0
- package/analyzer-template/packages/database/src/lib/loadEntities.ts +26 -3
- package/analyzer-template/packages/database/src/lib/loadEntityBranches.ts +12 -0
- package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +30 -5
- package/analyzer-template/packages/database/src/lib/projectToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/saveFiles.ts +1 -1
- package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +7 -14
- package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +1 -1
- 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/directExecutionScript.ts +17 -2
- package/analyzer-template/packages/generate/src/lib/getComponentScenarioPath.ts +8 -3
- package/analyzer-template/packages/generate/src/lib/scenarioComponentForServer.ts +114 -0
- package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +4 -2
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +13 -3
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
- 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/commitsTable.d.ts +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js +3 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js.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/labsRequestsTable.d.ts +23 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
- 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/loadAnalyses.d.ts +2 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js +45 -2
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +8 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js +11 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js +7 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts +3 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +22 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts +3 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +23 -4
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js +9 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js.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 +23 -5
- package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts +2 -2
- package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +5 -4
- package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.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/directExecutionScript.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/directExecutionScript.js +10 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/directExecutionScript.js.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentScenarioPath.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentScenarioPath.js +7 -3
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentScenarioPath.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 +87 -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/Commit.d.ts +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/Commit.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/ProjectMetadata.d.ts +7 -0
- package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.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 +199 -3
- package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
- package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.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/dist/utils/src/lib/applyUniversalMocks.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/applyUniversalMocks.js +26 -2
- package/analyzer-template/packages/github/dist/utils/src/lib/applyUniversalMocks.js.map +1 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.js +25 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts +9 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js +29 -3
- package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js.map +1 -1
- package/analyzer-template/packages/github/package.json +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 +5 -0
- package/analyzer-template/packages/types/src/types/Analysis.ts +104 -13
- package/analyzer-template/packages/types/src/types/Commit.ts +2 -0
- package/analyzer-template/packages/types/src/types/Entity.ts +2 -0
- package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +7 -0
- package/analyzer-template/packages/types/src/types/Scenario.ts +11 -10
- package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +228 -3
- package/analyzer-template/packages/types/src/types/ScopeAnalysis.ts +6 -1
- package/analyzer-template/packages/types/src/types/StatementInfo.ts +2 -0
- package/analyzer-template/packages/ui-components/package.json +4 -4
- package/analyzer-template/packages/ui-components/src/components/ScenarioDetailInteractiveView.tsx +23 -7
- 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 +87 -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/Commit.d.ts +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Commit.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/ProjectMetadata.d.ts +7 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.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 +199 -3
- package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
- package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.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/packages/utils/dist/utils/src/lib/applyUniversalMocks.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/applyUniversalMocks.js +26 -2
- package/analyzer-template/packages/utils/dist/utils/src/lib/applyUniversalMocks.js.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +98 -3
- package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.js +25 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts +9 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js +29 -3
- package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js.map +1 -1
- package/analyzer-template/packages/utils/src/lib/applyUniversalMocks.ts +28 -2
- package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +121 -3
- package/analyzer-template/packages/utils/src/lib/lightweightEntityExtractor.ts +27 -0
- package/analyzer-template/packages/utils/src/lib/safeFileName.ts +48 -3
- package/analyzer-template/playwright/capture.ts +57 -26
- package/analyzer-template/playwright/captureStatic.ts +1 -1
- package/analyzer-template/playwright/getCodeYamInfo.ts +12 -7
- package/analyzer-template/playwright/takeElementScreenshot.ts +26 -11
- package/analyzer-template/playwright/takeScreenshot.ts +15 -9
- package/analyzer-template/playwright/waitForServer.ts +21 -6
- package/analyzer-template/project/TESTING.md +83 -0
- package/analyzer-template/project/analyzeBaselineCommit.ts +9 -0
- package/analyzer-template/project/analyzeBranchCommit.ts +4 -0
- package/analyzer-template/project/analyzeFileEntities.ts +4 -0
- package/analyzer-template/project/analyzeRegularCommit.ts +9 -0
- package/analyzer-template/project/captureLibraryFunctionDirect.ts +29 -26
- package/analyzer-template/project/constructMockCode.ts +1347 -159
- package/analyzer-template/project/controller/startController.ts +16 -1
- package/analyzer-template/project/createEntitiesAndSortFiles.ts +83 -0
- package/analyzer-template/project/executeLibraryFunctionDirect.ts +7 -3
- package/analyzer-template/project/loadReadyToBeCaptured.ts +82 -42
- package/analyzer-template/project/mocks/analyzeFileMock.ts +8 -7
- package/analyzer-template/project/orchestrateCapture/AwsCaptureTaskRunner.ts +12 -4
- package/analyzer-template/project/orchestrateCapture/KyselyAnalysisLoader.ts +13 -9
- package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +93 -42
- package/analyzer-template/project/orchestrateCapture/taskRunner.ts +4 -2
- package/analyzer-template/project/orchestrateCapture.ts +92 -13
- package/analyzer-template/project/reconcileMockDataKeys.ts +245 -2
- package/analyzer-template/project/runAnalysis.ts +11 -0
- package/analyzer-template/project/runMultiScenarioServer.ts +11 -10
- package/analyzer-template/project/serverOnlyModules.ts +413 -0
- package/analyzer-template/project/start.ts +72 -19
- package/analyzer-template/project/startScenarioCapture.ts +79 -41
- package/analyzer-template/project/writeMockDataTsx.ts +466 -73
- package/analyzer-template/project/writeScenarioClientWrapper.ts +21 -0
- package/analyzer-template/project/writeScenarioComponents.ts +1509 -226
- package/analyzer-template/project/writeScenarioFiles.ts +26 -0
- package/analyzer-template/project/writeSimpleRoot.ts +56 -22
- package/analyzer-template/project/writeUniversalMocks.ts +32 -11
- package/analyzer-template/scripts/comboWorkerLoop.cjs +99 -50
- package/analyzer-template/scripts/defaultCmd.sh +9 -0
- package/analyzer-template/tsconfig.json +2 -1
- package/background/src/lib/local/createLocalAnalyzer.js +2 -30
- 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 +7 -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 +7 -1
- package/background/src/lib/virtualized/project/analyzeRegularCommit.js.map +1 -1
- package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js +3 -3
- package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js.map +1 -1
- package/background/src/lib/virtualized/project/constructMockCode.js +1194 -120
- 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/createEntitiesAndSortFiles.js +73 -1
- package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.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/loadReadyToBeCaptured.js +34 -9
- package/background/src/lib/virtualized/project/loadReadyToBeCaptured.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/AwsCaptureTaskRunner.js +2 -2
- package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js.map +1 -1
- package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js +12 -6
- package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js.map +1 -1
- package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +73 -36
- package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
- package/background/src/lib/virtualized/project/orchestrateCapture.js +76 -14
- package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +204 -2
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
- package/background/src/lib/virtualized/project/runAnalysis.js +9 -0
- package/background/src/lib/virtualized/project/runAnalysis.js.map +1 -1
- package/background/src/lib/virtualized/project/runMultiScenarioServer.js +11 -9
- package/background/src/lib/virtualized/project/runMultiScenarioServer.js.map +1 -1
- package/background/src/lib/virtualized/project/serverOnlyModules.js +338 -0
- package/background/src/lib/virtualized/project/serverOnlyModules.js.map +1 -0
- package/background/src/lib/virtualized/project/start.js +62 -19
- package/background/src/lib/virtualized/project/start.js.map +1 -1
- package/background/src/lib/virtualized/project/startScenarioCapture.js +61 -31
- package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
- package/background/src/lib/virtualized/project/writeMockDataTsx.js +404 -62
- 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 +1112 -153
- 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 +57 -20
- package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
- package/background/src/lib/virtualized/project/writeUniversalMocks.js +27 -12
- package/background/src/lib/virtualized/project/writeUniversalMocks.js.map +1 -1
- package/codeyam-cli/scripts/apply-setup.js +180 -0
- package/codeyam-cli/scripts/apply-setup.js.map +1 -1
- package/codeyam-cli/src/cli.js +38 -17
- package/codeyam-cli/src/cli.js.map +1 -1
- package/codeyam-cli/src/codeyam-cli.js +18 -2
- package/codeyam-cli/src/codeyam-cli.js.map +1 -1
- package/codeyam-cli/src/commands/analyze.js +5 -3
- package/codeyam-cli/src/commands/analyze.js.map +1 -1
- package/codeyam-cli/src/commands/baseline.js +176 -0
- package/codeyam-cli/src/commands/baseline.js.map +1 -0
- package/codeyam-cli/src/commands/debug.js +44 -18
- package/codeyam-cli/src/commands/debug.js.map +1 -1
- package/codeyam-cli/src/commands/default.js +30 -34
- package/codeyam-cli/src/commands/default.js.map +1 -1
- package/codeyam-cli/src/commands/detect-universal-mocks.js +2 -0
- package/codeyam-cli/src/commands/detect-universal-mocks.js.map +1 -1
- package/codeyam-cli/src/commands/init.js +49 -257
- package/codeyam-cli/src/commands/init.js.map +1 -1
- package/codeyam-cli/src/commands/memory.js +254 -0
- package/codeyam-cli/src/commands/memory.js.map +1 -0
- package/codeyam-cli/src/commands/recapture.js +228 -0
- package/codeyam-cli/src/commands/recapture.js.map +1 -0
- package/codeyam-cli/src/commands/report.js +72 -24
- package/codeyam-cli/src/commands/report.js.map +1 -1
- package/codeyam-cli/src/commands/setup-sandbox.js +2 -0
- package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -1
- package/codeyam-cli/src/commands/setup-simulations.js +284 -0
- package/codeyam-cli/src/commands/setup-simulations.js.map +1 -0
- 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 +3 -1
- package/codeyam-cli/src/commands/test-startup.js.map +1 -1
- package/codeyam-cli/src/commands/verify.js +14 -2
- package/codeyam-cli/src/commands/verify.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__/npmVersionCheck.test.js +185 -0
- package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.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 +128 -82
- package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
- package/codeyam-cli/src/utils/analysisRunner.js +29 -15
- package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
- package/codeyam-cli/src/utils/analyzer.js +7 -0
- package/codeyam-cli/src/utils/analyzer.js.map +1 -1
- package/codeyam-cli/src/utils/backgroundServer.js +104 -23
- 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 +76 -42
- package/codeyam-cli/src/utils/install-skills.js.map +1 -1
- package/codeyam-cli/src/utils/labsAutoCheck.js +19 -0
- package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -0
- package/codeyam-cli/src/utils/npmVersionCheck.js +76 -0
- package/codeyam-cli/src/utils/npmVersionCheck.js.map +1 -0
- package/codeyam-cli/src/utils/progress.js +7 -0
- package/codeyam-cli/src/utils/progress.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 +249 -16
- package/codeyam-cli/src/utils/queue/job.js.map +1 -1
- package/codeyam-cli/src/utils/queue/manager.js +103 -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/requireSimulations.js +10 -0
- package/codeyam-cli/src/utils/requireSimulations.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js +82 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +230 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +67 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js +105 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js +34 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js +162 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +74 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +376 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +116 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js +127 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js +50 -0
- package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +116 -0
- package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/index.js +5 -0
- package/codeyam-cli/src/utils/ruleReflection/index.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js +44 -0
- package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js +85 -0
- package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/types.js +5 -0
- package/codeyam-cli/src/utils/ruleReflection/types.js.map +1 -0
- package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js +84 -0
- package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js.map +1 -0
- package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +293 -0
- package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -0
- package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js +83 -0
- package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js.map +1 -0
- package/codeyam-cli/src/utils/rules/index.js +7 -0
- package/codeyam-cli/src/utils/rules/index.js.map +1 -0
- package/codeyam-cli/src/utils/rules/parser.js +83 -0
- package/codeyam-cli/src/utils/rules/parser.js.map +1 -0
- package/codeyam-cli/src/utils/rules/pathMatcher.js +28 -0
- package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -0
- package/codeyam-cli/src/utils/rules/ruleState.js +150 -0
- package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -0
- package/codeyam-cli/src/utils/rules/sourceFiles.js +47 -0
- package/codeyam-cli/src/utils/rules/sourceFiles.js.map +1 -0
- package/codeyam-cli/src/utils/rules/staleness.js +137 -0
- package/codeyam-cli/src/utils/rules/staleness.js.map +1 -0
- package/codeyam-cli/src/utils/serverState.js +37 -10
- package/codeyam-cli/src/utils/serverState.js.map +1 -1
- package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +21 -42
- package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
- package/codeyam-cli/src/utils/simulationGateMiddleware.js +138 -0
- package/codeyam-cli/src/utils/simulationGateMiddleware.js.map +1 -0
- package/codeyam-cli/src/utils/syncMocksMiddleware.js +5 -24
- package/codeyam-cli/src/utils/syncMocksMiddleware.js.map +1 -1
- package/codeyam-cli/src/utils/versionInfo.js +67 -15
- 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/__tests__/dependency-smoke.test.js +66 -0
- package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js.map +1 -0
- package/codeyam-cli/src/webserver/app/lib/database.js +118 -6
- 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 +55 -10
- package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/webserver/bootstrap.js +60 -0
- package/codeyam-cli/src/webserver/bootstrap.js.map +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/CopyButton-jNYXRRNI.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/EntityItem-bwuHPyTa.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-kykTbcnD.js → EntityTypeBadge-CvzqMxcu.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-BH0XDim7.js +41 -0
- package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-EhOseatT.js +34 -0
- package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-yjIHlOGa.js +25 -0
- package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-Cq5o8jL4.js +3 -0
- package/codeyam-cli/src/webserver/build/client/assets/LoadingDots-BvMu2i-g.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/LogViewer-kgBTLoJD.js +3 -0
- package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-BzPgx-xO.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-CwZrv-Ok.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-BX2Ny2Qj.js +10 -0
- package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-C06nsHKY.js → TruncatedFilePath-CDpEprKa.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/_index-BRx8ZGZo.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-4S4yPfFw.js +27 -0
- package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-DHKuQSmR.js +17 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.agent-transcripts-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.health-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.labs-unlock-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.memory-profile-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.restart-server-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.save-fixture-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/book-open-D4IPYH_y.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/chevron-down-CG65viiV.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/chunk-JZWAC4HX-DB3aFuEO.js +51 -0
- package/codeyam-cli/src/webserver/build/client/assets/circle-check-igfMr5DY.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/copy-Coc4o_8c.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-D1zB-pYc.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-JTAjQ54M.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-CYqBrC9s.js → entity._sha._-B0h9AqE6.js} +22 -15
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DjLxr2JB.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-CtYowLOt.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-PePWg17F.js +5 -0
- package/codeyam-cli/src/webserver/build/client/assets/entry.client-I-Wo99C_.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-9sMMAiWJ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/files-Co65J0s3.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/git-BdHOxVfg.js +15 -0
- package/codeyam-cli/src/webserver/build/client/assets/globals-Dzl-jeq-.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-CUM5iXwc.js +9 -0
- package/codeyam-cli/src/webserver/build/client/assets/index-_417gcQW.js +3 -0
- package/codeyam-cli/src/webserver/build/client/assets/labs-DAvt-sy-.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/loader-circle-TzRHMVog.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/manifest-2d0e2ebb.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/memory-DVGtTawo.js +92 -0
- package/codeyam-cli/src/webserver/build/client/assets/pause-hjzB7t2z.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/preload-helper-ckwbz45p.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/root-Bg3WICdl.js +62 -0
- package/codeyam-cli/src/webserver/build/client/assets/scenarioStatus-B_8jpV3e.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/search-DcAwD_Ln.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/settings-CclxrcPK.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/simulations-DVNJVQgD.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/terminal-DbEAHMbA.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-CAD5b1o_.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-BqgrAzs3.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-Blr5oZDE.js → useLastLogLine-DAFqfEDH.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/useReportContext-DZlYx2c4.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{useToast-Bbf4Hokd.js → useToast-ihdMtlf6.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/index-CpreP2n8.js +1 -0
- package/codeyam-cli/src/webserver/build/server/assets/server-build-DyvoFrHR.js +273 -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} +48 -4
- package/codeyam-cli/templates/codeyam-diagnose.md +481 -0
- package/codeyam-cli/templates/codeyam-memory-hook.sh +199 -0
- package/codeyam-cli/templates/codeyam-memory.md +396 -0
- package/codeyam-cli/templates/codeyam-new-rule.md +13 -0
- package/codeyam-cli/templates/{codeyam-setup-skill.md → codeyam-setup.md} +151 -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/codeyam-cli/templates/rule-notification-hook.py +56 -0
- package/codeyam-cli/templates/rule-reflection-hook.py +627 -0
- package/codeyam-cli/templates/rules-instructions.md +132 -0
- package/package.json +26 -23
- package/packages/ai/index.js +8 -6
- package/packages/ai/index.js.map +1 -1
- package/packages/ai/src/lib/analyzeScope.js +181 -13
- package/packages/ai/src/lib/analyzeScope.js.map +1 -1
- package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js +150 -0
- package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js.map +1 -0
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +154 -9
- 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 +138 -23
- package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
- package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js +10 -14
- package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.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 +138 -1
- package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js.map +1 -1
- package/packages/ai/src/lib/astScopes/processExpression.js +1235 -104
- package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
- package/packages/ai/src/lib/astScopes/sharedPatterns.js +25 -0
- package/packages/ai/src/lib/astScopes/sharedPatterns.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 +178 -31
- package/packages/ai/src/lib/completionCall.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +2171 -224
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +19 -4
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +661 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +180 -56
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +13 -3
- package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js +6 -4
- package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +66 -2
- package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +139 -13
- package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js +63 -0
- package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +142 -12
- 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/convertTypeAnnotationsToValues.js +173 -0
- package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js +37 -20
- package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +371 -73
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js +107 -0
- package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js.map +1 -0
- package/packages/ai/src/lib/dataStructureChunking.js +130 -0
- package/packages/ai/src/lib/dataStructureChunking.js.map +1 -0
- package/packages/ai/src/lib/deepEqual.js +32 -0
- package/packages/ai/src/lib/deepEqual.js.map +1 -0
- package/packages/ai/src/lib/e2eDataTracking.js +241 -0
- package/packages/ai/src/lib/e2eDataTracking.js.map +1 -0
- package/packages/ai/src/lib/extractCriticalDataKeys.js +96 -0
- package/packages/ai/src/lib/extractCriticalDataKeys.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 +50 -1
- package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
- package/packages/ai/src/lib/generateEntityScenarioData.js +1127 -91
- package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
- package/packages/ai/src/lib/generateEntityScenarios.js +193 -83
- package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
- package/packages/ai/src/lib/generateExecutionFlows.js +495 -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 +1807 -0
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -0
- package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js +194 -0
- package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.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 +270 -7
- package/packages/ai/src/lib/isolateScopes.js.map +1 -1
- package/packages/ai/src/lib/mergeJsonTypeDefinitions.js +5 -0
- package/packages/ai/src/lib/mergeJsonTypeDefinitions.js.map +1 -1
- package/packages/ai/src/lib/mergeStatements.js +88 -46
- package/packages/ai/src/lib/mergeStatements.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js +97 -0
- package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +16 -4
- 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/generateChunkPrompt.js +54 -0
- package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +83 -6
- 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/promptGenerators/simplifyKeysForLLM.js +335 -0
- package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js.map +1 -0
- package/packages/ai/src/lib/resolvePathToControllable.js +677 -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 +29 -0
- package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
- package/packages/ai/src/lib/worker/analyzeScopeWorker.js +98 -1
- package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -1
- package/packages/analyze/index.js +1 -0
- package/packages/analyze/index.js.map +1 -1
- package/packages/analyze/src/lib/FileAnalyzer.js +75 -36
- package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
- package/packages/analyze/src/lib/ProjectAnalyzer.js +96 -26
- package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
- package/packages/analyze/src/lib/analysisContext.js +30 -5
- package/packages/analyze/src/lib/analysisContext.js.map +1 -1
- package/packages/analyze/src/lib/asts/nodes/getNodeType.js +1 -0
- package/packages/analyze/src/lib/asts/nodes/getNodeType.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/asts/sourceFiles/getAllDeclaredEntityNodes.js +14 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js.map +1 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js +14 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js.map +1 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js +6 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js.map +1 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js +6 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js.map +1 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js +39 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js.map +1 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js +2 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +428 -123
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +42 -1
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +5 -0
- package/packages/analyze/src/lib/files/analyze/dependencyResolver.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/analyze/gatherEntityMap.js +2 -1
- package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +31 -10
- package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.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/analyzeRemixRoute.js +3 -2
- package/packages/analyze/src/lib/files/analyzeRemixRoute.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/getImportedExports.js +17 -8
- package/packages/analyze/src/lib/files/getImportedExports.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +880 -0
- package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +255 -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 +550 -62
- 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 +404 -85
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +144 -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 +875 -141
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js +46 -9
- package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js.map +1 -1
- package/packages/analyze/src/lib/files/setImportedExports.js +2 -1
- package/packages/analyze/src/lib/files/setImportedExports.js.map +1 -1
- package/packages/analyze/src/lib/index.js +1 -0
- package/packages/analyze/src/lib/index.js.map +1 -1
- package/packages/analyze/src/lib/utils/getFileByPath.js +12 -0
- package/packages/analyze/src/lib/utils/getFileByPath.js.map +1 -0
- 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/analysisBranchToDb.js +1 -1
- package/packages/database/src/lib/analysisBranchToDb.js.map +1 -1
- package/packages/database/src/lib/analysisToDb.js +1 -1
- package/packages/database/src/lib/analysisToDb.js.map +1 -1
- package/packages/database/src/lib/branchToDb.js +1 -1
- package/packages/database/src/lib/branchToDb.js.map +1 -1
- package/packages/database/src/lib/commitBranchToDb.js +1 -1
- package/packages/database/src/lib/commitBranchToDb.js.map +1 -1
- package/packages/database/src/lib/commitToDb.js +1 -1
- package/packages/database/src/lib/commitToDb.js.map +1 -1
- package/packages/database/src/lib/fileToDb.js +1 -1
- package/packages/database/src/lib/fileToDb.js.map +1 -1
- package/packages/database/src/lib/kysely/db.js +13 -3
- package/packages/database/src/lib/kysely/db.js.map +1 -1
- package/packages/database/src/lib/kysely/tables/commitsTable.js +3 -0
- package/packages/database/src/lib/kysely/tables/commitsTable.js.map +1 -1
- 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/kysely/tables/labsRequestsTable.js +35 -0
- package/packages/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
- package/packages/database/src/lib/loadAnalyses.js +45 -2
- package/packages/database/src/lib/loadAnalyses.js.map +1 -1
- package/packages/database/src/lib/loadAnalysis.js +8 -0
- package/packages/database/src/lib/loadAnalysis.js.map +1 -1
- package/packages/database/src/lib/loadBranch.js +11 -1
- package/packages/database/src/lib/loadBranch.js.map +1 -1
- package/packages/database/src/lib/loadCommit.js +7 -0
- package/packages/database/src/lib/loadCommit.js.map +1 -1
- package/packages/database/src/lib/loadCommits.js +22 -1
- package/packages/database/src/lib/loadCommits.js.map +1 -1
- package/packages/database/src/lib/loadEntities.js +23 -4
- package/packages/database/src/lib/loadEntities.js.map +1 -1
- package/packages/database/src/lib/loadEntityBranches.js +9 -0
- package/packages/database/src/lib/loadEntityBranches.js.map +1 -1
- package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +23 -5
- package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
- package/packages/database/src/lib/projectToDb.js +1 -1
- package/packages/database/src/lib/projectToDb.js.map +1 -1
- package/packages/database/src/lib/saveFiles.js +1 -1
- package/packages/database/src/lib/saveFiles.js.map +1 -1
- package/packages/database/src/lib/scenarioToDb.js +1 -1
- package/packages/database/src/lib/scenarioToDb.js.map +1 -1
- package/packages/database/src/lib/updateCommitMetadata.js +5 -4
- package/packages/database/src/lib/updateCommitMetadata.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/directExecutionScript.js +10 -1
- package/packages/generate/src/lib/directExecutionScript.js.map +1 -1
- package/packages/generate/src/lib/getComponentScenarioPath.js +7 -3
- package/packages/generate/src/lib/getComponentScenarioPath.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/packages/utils/src/lib/applyUniversalMocks.js +26 -2
- package/packages/utils/src/lib/applyUniversalMocks.js.map +1 -1
- package/packages/utils/src/lib/fs/rsyncCopy.js +98 -3
- package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
- package/packages/utils/src/lib/lightweightEntityExtractor.js +25 -0
- package/packages/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
- package/packages/utils/src/lib/safeFileName.js +29 -3
- package/packages/utils/src/lib/safeFileName.js.map +1 -1
- package/scripts/finalize-analyzer.cjs +8 -74
- 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/ai/src/lib/transformMockDataToMatchSchema.ts +0 -156
- 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-D4htqD-x.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-Catz6XEN.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-TlHocYno.js +0 -26
- package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-CVMmGuIc.js +0 -3
- package/codeyam-cli/src/webserver/build/client/assets/LogViewer-JkfQ-VaI.js +0 -3
- package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-CVZ0H4BL.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-BrMAP1nP.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-CJhE4cCv.js +0 -5
- package/codeyam-cli/src/webserver/build/client/assets/_index-faVIcr_i.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-CLMa2sgx.js +0 -7
- package/codeyam-cli/src/webserver/build/client/assets/chevron-down-DwYjrK_h.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/chunk-WWGJGFF6-CgXbbZRx.js +0 -26
- package/codeyam-cli/src/webserver/build/client/assets/circle-check-B2oHQ-zo.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-BBYuR56H.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-CT0Q5lVu.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-Bj5GHkhb.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-eW5z9AyZ.js +0 -5
- package/codeyam-cli/src/webserver/build/client/assets/entry.client-B9tSboXM.js +0 -5
- package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-CmO-EZAB.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/files-DLinnTOx.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/git-CIxwBQvb.js +0 -12
- package/codeyam-cli/src/webserver/build/client/assets/globals-xPz593l2.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-_LjBsTxX.js +0 -8
- package/codeyam-cli/src/webserver/build/client/assets/loader-circle-D_EGChhq.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-ca438c41.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/root-CHHYHuzL.js +0 -16
- package/codeyam-cli/src/webserver/build/client/assets/search-DY8yoDpH.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/server-build-CMKNK2uU.css +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/settings-BT6wVHd5.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/simulations-gv3H7JV7.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-BthANBVv.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/useReportContext-CANr3QJ5.js +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/index-BtBPtyHx.js +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/server-build-N2cTnejq.js +0 -166
- package/codeyam-cli/templates/debug-command.md +0 -141
- 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/ai/src/lib/transformMockDataToMatchSchema.js +0 -124
- package/packages/ai/src/lib/transformMockDataToMatchSchema.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/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-CMKNK2uU.css → styles-CMKNK2uU.css} +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
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
// import { writeFile } from 'fs/promises';
|
|
2
1
|
import {
|
|
3
2
|
convertDotNotation,
|
|
4
3
|
fillInDirectSchemaGapsAndUnknowns,
|
|
4
|
+
buildSchemaIndexes,
|
|
5
|
+
type SchemaIndexes,
|
|
5
6
|
joinParenthesesAndArrays,
|
|
7
|
+
mergeJsonTypeDefinitions,
|
|
6
8
|
splitOutsideParenthesesAndArrays,
|
|
7
9
|
} from '~codeyam/ai';
|
|
8
10
|
import { DataStructure, JsonTypeDefinition } from '~codeyam/types';
|
|
@@ -15,6 +17,65 @@ function cleanFunctionName(name: string): string {
|
|
|
15
17
|
return name?.split('<')[0];
|
|
16
18
|
}
|
|
17
19
|
|
|
20
|
+
/**
|
|
21
|
+
* Escapes special regex characters in a string.
|
|
22
|
+
*/
|
|
23
|
+
function escapeRegExp(str: string): string {
|
|
24
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Counts only DIRECT function calls, excluding method chains on return values.
|
|
29
|
+
*
|
|
30
|
+
* When a hook returns an object with methods that are later called, the analysis
|
|
31
|
+
* tracks those as call signatures like 'useAuth().functionCallReturnValue.signOut()'.
|
|
32
|
+
* These are NOT separate calls to useAuth - they're method invocations on the return value.
|
|
33
|
+
*
|
|
34
|
+
* This function filters out such method chains to get the true count of direct calls.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* // One direct call, one method on return value
|
|
38
|
+
* countDirectCalls(['useAuth()', 'useAuth().functionCallReturnValue.signOut()']) // => 1
|
|
39
|
+
*
|
|
40
|
+
* // Two direct calls
|
|
41
|
+
* countDirectCalls(['useFetcher()', 'useFetcher()']) // => 2
|
|
42
|
+
*/
|
|
43
|
+
function countDirectCalls(calls: string[]): number {
|
|
44
|
+
return calls.filter((sig) => !sig.includes('.functionCallReturnValue.'))
|
|
45
|
+
.length;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Checks if all direct calls (non-method-chain calls) are identical.
|
|
50
|
+
* This happens when destructuring a hook call:
|
|
51
|
+
* const { authLoading, signOut } = useAuth();
|
|
52
|
+
* produces calls: ['useAuth()', 'useAuth()'] (same signature repeated)
|
|
53
|
+
*
|
|
54
|
+
* In this case, we should use the full unqualified schema since there's
|
|
55
|
+
* really only ONE function call, not multiple different calls.
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* // Same call repeated (from destructuring)
|
|
59
|
+
* allDirectCallsIdentical(['useAuth()', 'useAuth()']) // => true
|
|
60
|
+
*
|
|
61
|
+
* // Different calls
|
|
62
|
+
* allDirectCallsIdentical(['useFetcher<User>()', 'useFetcher<Report>()']) // => false
|
|
63
|
+
*
|
|
64
|
+
* // Single call
|
|
65
|
+
* allDirectCallsIdentical(['useAuth()']) // => true
|
|
66
|
+
*
|
|
67
|
+
* // With method chain (method chain is ignored)
|
|
68
|
+
* allDirectCallsIdentical(['useAuth()', 'useAuth().functionCallReturnValue.signOut()']) // => true
|
|
69
|
+
*/
|
|
70
|
+
function allDirectCallsIdentical(calls: string[]): boolean {
|
|
71
|
+
const directCalls = calls.filter(
|
|
72
|
+
(sig) => !sig.includes('.functionCallReturnValue.'),
|
|
73
|
+
);
|
|
74
|
+
if (directCalls.length === 0) return true;
|
|
75
|
+
const firstCall = directCalls[0];
|
|
76
|
+
return directCalls.every((call) => call === firstCall);
|
|
77
|
+
}
|
|
78
|
+
|
|
18
79
|
/**
|
|
19
80
|
* Preprocesses the schema to:
|
|
20
81
|
* 1. Filter out all signature paths
|
|
@@ -68,9 +129,30 @@ function preprocessSchemaForMocks(
|
|
|
68
129
|
return result;
|
|
69
130
|
}
|
|
70
131
|
|
|
132
|
+
/**
|
|
133
|
+
* Options for gatherDataForMocks
|
|
134
|
+
*/
|
|
135
|
+
export interface GatherDataForMocksOptions {
|
|
136
|
+
/**
|
|
137
|
+
* When provided, generates canonical keys in format `EntityName::hookName::index`.
|
|
138
|
+
* This ensures consistent keys across scenarios regardless of variable names
|
|
139
|
+
* chosen during analysis.
|
|
140
|
+
*/
|
|
141
|
+
entityName?: string;
|
|
142
|
+
}
|
|
143
|
+
|
|
71
144
|
/**
|
|
72
145
|
* Processes a single call (with optional variable name) and returns the mock data entry.
|
|
73
146
|
* Returns null if no valid schema is found.
|
|
147
|
+
*
|
|
148
|
+
* @param importedExport - The imported export to process
|
|
149
|
+
* @param dependencySchemas - The dependency schemas
|
|
150
|
+
* @param callIndex - The index of the call to process
|
|
151
|
+
* @param variableNameOccurrence - When a variable name is reused, this is the occurrence index
|
|
152
|
+
* (e.g., first 'data' = 0, second 'data' = 1)
|
|
153
|
+
* Used to disambiguate keys when the same variable is reused.
|
|
154
|
+
* @param options - Additional options including entityName for canonical key generation
|
|
155
|
+
* @param hookCallIndex - The global index of this hook call for canonical key generation
|
|
74
156
|
*/
|
|
75
157
|
function processCall(
|
|
76
158
|
importedExport: {
|
|
@@ -82,30 +164,194 @@ function processCall(
|
|
|
82
164
|
},
|
|
83
165
|
dependencySchemas: DataStructure['dependencySchemas'],
|
|
84
166
|
callIndex: number,
|
|
167
|
+
variableNameOccurrence: number | undefined,
|
|
168
|
+
options: GatherDataForMocksOptions | undefined,
|
|
169
|
+
hookCallIndex: number,
|
|
170
|
+
prebuiltIndexes?: SchemaIndexes,
|
|
85
171
|
): { key: string; value: JsonTypeDefinition } | null {
|
|
86
172
|
const callName = importedExport.calls?.[callIndex] ?? importedExport.name;
|
|
87
|
-
|
|
173
|
+
|
|
174
|
+
// Determine if we should use variable-qualified schema or base schema.
|
|
175
|
+
// Use variable-qualified schema when:
|
|
176
|
+
// 1. variableNameOccurrence is defined (we're processing multiple DISTINCT calls), OR
|
|
177
|
+
// 2. Single call with single variable name (directCallCount === 1 && varNamesLength === 1)
|
|
178
|
+
// Use base schema when:
|
|
179
|
+
// - Multiple calls that are all identical (destructuring case: const { a, b } = useHook())
|
|
180
|
+
// - directCallCount !== varNamesLength (rest spread or method chain case)
|
|
181
|
+
// This is important for rest spread destructuring like: const { x, y, ...data } = useLoaderData()
|
|
182
|
+
// where data.queueState.jobs should come from the base schema, not from a variable-qualified schema.
|
|
183
|
+
// Also important: method chains like useAuth().functionCallReturnValue.signOut() should NOT count
|
|
184
|
+
// as separate calls - only direct hook calls count.
|
|
185
|
+
const directCallCount = countDirectCalls(importedExport.calls ?? []);
|
|
186
|
+
const varNamesLength = importedExport.callVariableNames?.length ?? 0;
|
|
187
|
+
const shouldUseVariableQualifiedSchema =
|
|
188
|
+
variableNameOccurrence !== undefined ||
|
|
189
|
+
(directCallCount === 1 && varNamesLength === 1);
|
|
190
|
+
const variableName = shouldUseVariableQualifiedSchema
|
|
191
|
+
? importedExport.callVariableNames?.[callIndex]
|
|
192
|
+
: undefined;
|
|
88
193
|
|
|
89
194
|
// Build the schema lookup key - use variable-qualified key if available
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
195
|
+
// When the same variable name is reused (variableNameOccurrence > 0), try indexed lookup first
|
|
196
|
+
// e.g., "useFetcher::fetcher[1]" for the second use of "fetcher"
|
|
197
|
+
const indexedVariableName =
|
|
198
|
+
variableName &&
|
|
199
|
+
variableNameOccurrence !== undefined &&
|
|
200
|
+
variableNameOccurrence > 0
|
|
201
|
+
? `${variableName}[${variableNameOccurrence}]`
|
|
202
|
+
: variableName;
|
|
203
|
+
|
|
204
|
+
// Schema lookup order (most specific to least specific):
|
|
205
|
+
// 1. Call signature (e.g., 'useLoaderData<typeof loader>()')
|
|
206
|
+
// 2. Variable-qualified key with index (e.g., 'useFetcher::fetcher[1]')
|
|
207
|
+
// 3. Variable-qualified key without index (e.g., 'useFetcher::fetcher')
|
|
208
|
+
// 4. Base name (e.g., 'useLoaderData')
|
|
209
|
+
|
|
210
|
+
let rawSchema: Record<string, string> = {};
|
|
211
|
+
|
|
212
|
+
// 1. Try call signature first (most specific - new format)
|
|
213
|
+
if (callName !== importedExport.name) {
|
|
214
|
+
rawSchema =
|
|
215
|
+
dependencySchemas?.[importedExport.filePath]?.[callName]
|
|
216
|
+
?.returnValueSchema ?? {};
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
// 2. Try variable-qualified key with index
|
|
220
|
+
if (Object.keys(rawSchema).length === 0 && indexedVariableName) {
|
|
221
|
+
const indexedKey = `${importedExport.name}::${indexedVariableName}`;
|
|
222
|
+
rawSchema =
|
|
223
|
+
dependencySchemas?.[importedExport.filePath]?.[indexedKey]
|
|
224
|
+
?.returnValueSchema ?? {};
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
// 3. Try variable-qualified key without index (fallback for indexed lookup)
|
|
228
|
+
if (
|
|
229
|
+
Object.keys(rawSchema).length === 0 &&
|
|
230
|
+
variableNameOccurrence !== undefined &&
|
|
231
|
+
variableNameOccurrence > 0 &&
|
|
232
|
+
variableName
|
|
233
|
+
) {
|
|
234
|
+
const nonIndexedKey = `${importedExport.name}::${variableName}`;
|
|
235
|
+
rawSchema =
|
|
236
|
+
dependencySchemas?.[importedExport.filePath]?.[nonIndexedKey]
|
|
237
|
+
?.returnValueSchema ?? {};
|
|
238
|
+
}
|
|
93
239
|
|
|
94
|
-
|
|
95
|
-
|
|
240
|
+
// 4. Get base name schema and merge with call-specific schema
|
|
241
|
+
// The base schema often has more complete array element details that the
|
|
242
|
+
// call-specific schema might be missing. Instead of using as fallback only
|
|
243
|
+
// when empty, MERGE both schemas so we get the most complete picture.
|
|
244
|
+
//
|
|
245
|
+
// HOWEVER: For type-parameterized calls where the base schema contains paths
|
|
246
|
+
// from MULTIPLE DIFFERENT type parameters, DON'T merge to avoid contamination.
|
|
247
|
+
// The call-specific schema (rawSchema) is already isolated and complete.
|
|
248
|
+
const baseSchema =
|
|
249
|
+
dependencySchemas?.[importedExport.filePath]?.[importedExport.name]
|
|
96
250
|
?.returnValueSchema ?? {};
|
|
97
251
|
|
|
98
|
-
//
|
|
99
|
-
const
|
|
100
|
-
|
|
101
|
-
? (dependencySchemas?.[importedExport.filePath]?.[importedExport.name]
|
|
102
|
-
?.returnValueSchema ?? {})
|
|
103
|
-
: rawSchema;
|
|
252
|
+
// Check if this is a type-parameterized call with a call-specific schema
|
|
253
|
+
const hasTypeParams = callName.includes('<') && callName.includes('>');
|
|
254
|
+
const hasCallSpecificSchema = Object.keys(rawSchema).length > 0;
|
|
104
255
|
|
|
105
|
-
//
|
|
106
|
-
|
|
256
|
+
// Check if the base schema has multiple DIFFERENT type parameter variants
|
|
257
|
+
// If so, merging would bring in wrong fields from other variants
|
|
258
|
+
let baseHasMultipleTypeParamVariants = false;
|
|
259
|
+
if (hasTypeParams && hasCallSpecificSchema) {
|
|
260
|
+
const baseFunctionName = cleanFunctionName(callName.split('(')[0]);
|
|
261
|
+
const typeParamVariantsInBase = new Set<string>();
|
|
262
|
+
|
|
263
|
+
for (const path of Object.keys(baseSchema)) {
|
|
264
|
+
// Look for paths like "useFetcher<TypeA>(...)" or "useFetcher<TypeB>(...)"
|
|
265
|
+
const match = path.match(
|
|
266
|
+
new RegExp(`^${escapeRegExp(baseFunctionName)}<([^>]+)>\\(`),
|
|
267
|
+
);
|
|
268
|
+
if (match) {
|
|
269
|
+
typeParamVariantsInBase.add(match[1]);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
baseHasMultipleTypeParamVariants = typeParamVariantsInBase.size > 1;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
// For type-parameterized calls where we have a call-specific schema, we need to
|
|
276
|
+
// be careful about merging with the base schema. The base schema may contain
|
|
277
|
+
// merged data from ALL type parameter variants, which would pollute the result.
|
|
278
|
+
let mergedSchema: Record<string, string>;
|
|
279
|
+
if (hasCallSpecificSchema && hasTypeParams) {
|
|
280
|
+
if (baseHasMultipleTypeParamVariants) {
|
|
281
|
+
// Base schema has paths with different type parameters - filter to only
|
|
282
|
+
// include paths matching the current type parameter.
|
|
283
|
+
const typeParamMatch = callName.match(/<([^>]+)>/);
|
|
284
|
+
const currentTypeParam = typeParamMatch ? typeParamMatch[1] : null;
|
|
285
|
+
const baseFunctionName = cleanFunctionName(callName.split('(')[0]);
|
|
286
|
+
|
|
287
|
+
if (currentTypeParam) {
|
|
288
|
+
// Filter base schema to only include paths that:
|
|
289
|
+
// 1. Match current type param (e.g., useLoaderData<LoaderData>())
|
|
290
|
+
// 2. OR don't have any type param (generic paths like useLoaderData())
|
|
291
|
+
const filteredBaseSchema: Record<string, string> = {};
|
|
292
|
+
for (const [path, type] of Object.entries(baseSchema)) {
|
|
293
|
+
// Check if path has a type parameter for this function
|
|
294
|
+
const pathTypeParamMatch = path.match(
|
|
295
|
+
new RegExp(`^${escapeRegExp(baseFunctionName)}<([^>]+)>\\(`),
|
|
296
|
+
);
|
|
297
|
+
if (pathTypeParamMatch) {
|
|
298
|
+
// Path has a type param - only include if it matches current
|
|
299
|
+
if (pathTypeParamMatch[1] === currentTypeParam) {
|
|
300
|
+
filteredBaseSchema[path] = type;
|
|
301
|
+
}
|
|
302
|
+
// Otherwise skip (it's for a different type param variant)
|
|
303
|
+
} else {
|
|
304
|
+
// Path doesn't have a type param for this function - include it
|
|
305
|
+
// (could be generic paths or paths for other functions)
|
|
306
|
+
filteredBaseSchema[path] = type;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
mergedSchema = { ...filteredBaseSchema, ...rawSchema };
|
|
310
|
+
} else {
|
|
311
|
+
// Couldn't extract type param - fall back to rawSchema only
|
|
312
|
+
mergedSchema = rawSchema;
|
|
313
|
+
}
|
|
314
|
+
} else {
|
|
315
|
+
// Base schema has zero or one type-parameterized variant.
|
|
316
|
+
// When there's only one variant, the base schema paths are safe to merge
|
|
317
|
+
// (no contamination from other variants). This is important for cases like:
|
|
318
|
+
// - Array element details (gitStatus[].path) that are in base but not call-specific
|
|
319
|
+
// - Enriched paths that should be preserved
|
|
320
|
+
// Filter to only include paths matching current type param or generic paths.
|
|
321
|
+
const typeParamMatch = callName.match(/<([^>]+)>/);
|
|
322
|
+
const currentTypeParam = typeParamMatch ? typeParamMatch[1] : null;
|
|
323
|
+
const baseFunctionName = cleanFunctionName(callName.split('(')[0]);
|
|
324
|
+
|
|
325
|
+
if (currentTypeParam) {
|
|
326
|
+
const filteredBaseSchema: Record<string, string> = {};
|
|
327
|
+
for (const [path, type] of Object.entries(baseSchema)) {
|
|
328
|
+
const pathTypeParamMatch = path.match(
|
|
329
|
+
new RegExp(`^${escapeRegExp(baseFunctionName)}<([^>]+)>\\(`),
|
|
330
|
+
);
|
|
331
|
+
if (pathTypeParamMatch) {
|
|
332
|
+
// Path has a type param - only include if it matches current
|
|
333
|
+
if (pathTypeParamMatch[1] === currentTypeParam) {
|
|
334
|
+
filteredBaseSchema[path] = type;
|
|
335
|
+
}
|
|
336
|
+
} else {
|
|
337
|
+
// Path doesn't have a type param - include generic paths
|
|
338
|
+
filteredBaseSchema[path] = type;
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
mergedSchema = { ...filteredBaseSchema, ...rawSchema };
|
|
342
|
+
} else {
|
|
343
|
+
// No type param to extract - merge normally
|
|
344
|
+
mergedSchema = { ...baseSchema, ...rawSchema };
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
} else if (Object.keys(rawSchema).length === 0) {
|
|
348
|
+
mergedSchema = baseSchema;
|
|
349
|
+
} else {
|
|
350
|
+
mergedSchema = { ...baseSchema, ...rawSchema };
|
|
351
|
+
}
|
|
107
352
|
|
|
108
|
-
|
|
353
|
+
// Preprocess to filter signatures and extract functionCallReturnValue
|
|
354
|
+
let preprocessedSchema = preprocessSchemaForMocks(mergedSchema);
|
|
109
355
|
|
|
110
356
|
const isFunctionNameWithoutFunction = (
|
|
111
357
|
path: string,
|
|
@@ -161,26 +407,28 @@ function processCall(
|
|
|
161
407
|
if (callName.includes('(') && !callName.includes('<')) {
|
|
162
408
|
// Extract the base function name and create generic call
|
|
163
409
|
const baseFunctionName = callName.split('(')[0];
|
|
164
|
-
const genericCall = variableName
|
|
165
|
-
? `${baseFunctionName}()::${variableName}`
|
|
166
|
-
: baseFunctionName + '()';
|
|
167
410
|
|
|
168
|
-
//
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
411
|
+
// For path matching, use non-qualified call names since schema paths don't include
|
|
412
|
+
// variable qualifiers. Variable qualifiers are only for schema lookup, not path matching.
|
|
413
|
+
const genericCallForMatching = baseFunctionName + '()';
|
|
414
|
+
const specificCallForMatching = callName;
|
|
172
415
|
|
|
173
416
|
// Only merge if the callName has arguments (not just empty parens)
|
|
174
|
-
if (
|
|
417
|
+
if (specificCallForMatching !== genericCallForMatching) {
|
|
175
418
|
const mergedSchema: Record<string, string> = {
|
|
176
419
|
...preprocessedSchema,
|
|
177
420
|
};
|
|
178
421
|
for (const path of Object.keys(preprocessedSchema)) {
|
|
179
|
-
if (path.startsWith(
|
|
422
|
+
if (path.startsWith(genericCallForMatching)) {
|
|
180
423
|
// Create corresponding specific path
|
|
181
|
-
const specificPath =
|
|
182
|
-
|
|
183
|
-
if
|
|
424
|
+
const specificPath =
|
|
425
|
+
specificCallForMatching + path.slice(genericCallForMatching.length);
|
|
426
|
+
// Add if the specific path doesn't exist, OR if it exists but is "unknown"
|
|
427
|
+
// The generic call's schema often has more precise type info than the specific call
|
|
428
|
+
if (
|
|
429
|
+
!mergedSchema[specificPath] ||
|
|
430
|
+
mergedSchema[specificPath] === 'unknown'
|
|
431
|
+
) {
|
|
184
432
|
mergedSchema[specificPath] = preprocessedSchema[path];
|
|
185
433
|
}
|
|
186
434
|
}
|
|
@@ -189,38 +437,66 @@ function processCall(
|
|
|
189
437
|
}
|
|
190
438
|
}
|
|
191
439
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
}
|
|
440
|
+
// Two-pass function name filtering to avoid O(k²) retroactive deletion.
|
|
441
|
+
// Pass 1: Discover all unique function names from paths ending with ')'
|
|
442
|
+
const functionNameSet = new Set<string>();
|
|
443
|
+
const schemaKeys = Object.keys(preprocessedSchema);
|
|
444
|
+
for (const path of schemaKeys) {
|
|
445
|
+
if (path.endsWith(')')) {
|
|
446
|
+
const pathParts = splitOutsideParenthesesAndArrays(path);
|
|
447
|
+
const functionName = joinParenthesesAndArrays([
|
|
448
|
+
...pathParts.slice(0, -1),
|
|
449
|
+
pathParts[pathParts.length - 1].split('(')[0],
|
|
450
|
+
]);
|
|
451
|
+
functionNameSet.add(functionName);
|
|
452
|
+
}
|
|
453
|
+
}
|
|
207
454
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
455
|
+
// Index function names by first segment for O(1) bucket lookup instead of
|
|
456
|
+
// checking all function names for every path. Most paths only need to check
|
|
457
|
+
// 1-2 function names instead of all F.
|
|
458
|
+
const fnByFirstSegment = new Map<string, string[]>();
|
|
459
|
+
for (const fn of functionNameSet) {
|
|
460
|
+
const dotIdx = fn.indexOf('.');
|
|
461
|
+
const firstSeg = dotIdx >= 0 ? fn.slice(0, dotIdx) : fn;
|
|
462
|
+
let bucket = fnByFirstSegment.get(firstSeg);
|
|
463
|
+
if (!bucket) {
|
|
464
|
+
bucket = [];
|
|
465
|
+
fnByFirstSegment.set(firstSeg, bucket);
|
|
466
|
+
}
|
|
467
|
+
bucket.push(fn);
|
|
468
|
+
}
|
|
211
469
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
470
|
+
// Pass 2: Filter paths that match any discovered function name prefix.
|
|
471
|
+
// Use indexed lookup: extract path's first segment, check only matching function names.
|
|
472
|
+
const relevantMergedDependencySchema: Record<string, string> = {};
|
|
473
|
+
for (const path of schemaKeys) {
|
|
474
|
+
// Extract first segment of path (before first '.', '(', or '<')
|
|
475
|
+
const dotIdx = path.indexOf('.');
|
|
476
|
+
const parenIdx = path.indexOf('(');
|
|
477
|
+
const angleIdx = path.indexOf('<');
|
|
478
|
+
let minIdx = path.length;
|
|
479
|
+
if (dotIdx >= 0 && dotIdx < minIdx) minIdx = dotIdx;
|
|
480
|
+
if (parenIdx >= 0 && parenIdx < minIdx) minIdx = parenIdx;
|
|
481
|
+
if (angleIdx >= 0 && angleIdx < minIdx) minIdx = angleIdx;
|
|
482
|
+
const firstSeg = path.slice(0, minIdx);
|
|
483
|
+
|
|
484
|
+
const candidates = fnByFirstSegment.get(firstSeg);
|
|
485
|
+
if (
|
|
486
|
+
!candidates ||
|
|
487
|
+
!candidates.some((fn) => isFunctionNameWithoutFunction(path, fn))
|
|
488
|
+
) {
|
|
489
|
+
relevantMergedDependencySchema[path] = preprocessedSchema[path];
|
|
490
|
+
}
|
|
491
|
+
}
|
|
217
492
|
|
|
218
|
-
const
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
493
|
+
const filledSchema = fillInDirectSchemaGapsAndUnknowns({
|
|
494
|
+
scopeName: importedExport.name,
|
|
495
|
+
schema: relevantMergedDependencySchema,
|
|
496
|
+
prebuiltIndexes,
|
|
497
|
+
});
|
|
498
|
+
|
|
499
|
+
const schema = convertDotNotation(filledSchema);
|
|
224
500
|
|
|
225
501
|
// Determine if this is an object-style or hook-style dependency:
|
|
226
502
|
// - Hook-style: calls = ['useAuth()'] - call starts with name + '('
|
|
@@ -235,13 +511,11 @@ function processCall(
|
|
|
235
511
|
? `${baseSchemaKey}::${variableName}`
|
|
236
512
|
: baseSchemaKey;
|
|
237
513
|
|
|
238
|
-
// Build output key -
|
|
239
|
-
// This
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
? importedExport.name
|
|
244
|
-
: callName;
|
|
514
|
+
// Build output key - use the ORIGINAL CALL SIGNATURE from the code
|
|
515
|
+
// This makes it clear to the LLM exactly which call needs which data.
|
|
516
|
+
// Example: useFetcher<{ data: UserData }>() vs useFetcher<{ data: ReportData }>()
|
|
517
|
+
// Example: db.select(usersQuery) vs db.select(postsQuery)
|
|
518
|
+
const outputKey = callName;
|
|
245
519
|
|
|
246
520
|
// Try to find return value - check with variable qualifier first, then without
|
|
247
521
|
let returnValue = schema[schemaKey];
|
|
@@ -251,6 +525,38 @@ function processCall(
|
|
|
251
525
|
if (!returnValue) {
|
|
252
526
|
returnValue = schema['returnValue'];
|
|
253
527
|
}
|
|
528
|
+
// Fallback for function call return values (e.g., useFetcher returns via functionCallReturnValue)
|
|
529
|
+
if (!returnValue) {
|
|
530
|
+
returnValue = schema['functionCallReturnValue'];
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
// Handle method-chain style calls (e.g., createClient().from("workouts").select("*") or db.select(query))
|
|
534
|
+
// After convertDotNotation, the schema is nested: { "createClient()": { "from(...)": { ... } } }
|
|
535
|
+
// We need to navigate the nested structure using the call signature parts.
|
|
536
|
+
// For object-style dependencies (isObjectStyle=true), the baseSchemaKey is just the object name (e.g., "db"),
|
|
537
|
+
// so returnValue might be the parent object, not the actual return value of the method chain.
|
|
538
|
+
// We should always try method-chain navigation for calls with dots and parens.
|
|
539
|
+
if (callName.includes('.') && callName.includes('(')) {
|
|
540
|
+
const callParts = splitOutsideParenthesesAndArrays(callName);
|
|
541
|
+
let current: unknown = schema;
|
|
542
|
+
for (const part of callParts) {
|
|
543
|
+
if (
|
|
544
|
+
current &&
|
|
545
|
+
typeof current === 'object' &&
|
|
546
|
+
!Array.isArray(current) &&
|
|
547
|
+
part in (current as Record<string, unknown>)
|
|
548
|
+
) {
|
|
549
|
+
current = (current as Record<string, unknown>)[part];
|
|
550
|
+
} else {
|
|
551
|
+
current = undefined;
|
|
552
|
+
break;
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
// Use method-chain result if found, otherwise keep previous returnValue
|
|
556
|
+
if (current !== undefined) {
|
|
557
|
+
returnValue = current as typeof returnValue;
|
|
558
|
+
}
|
|
559
|
+
}
|
|
254
560
|
|
|
255
561
|
if (!returnValue) {
|
|
256
562
|
return null;
|
|
@@ -259,6 +565,27 @@ function processCall(
|
|
|
259
565
|
return { key: outputKey, value: returnValue as JsonTypeDefinition };
|
|
260
566
|
}
|
|
261
567
|
|
|
568
|
+
/**
|
|
569
|
+
* Adds a result to the accumulator, merging schemas if the key already exists.
|
|
570
|
+
* This handles the case where the same call signature appears multiple times
|
|
571
|
+
* (e.g., two calls to useFetcher() with the same generic type).
|
|
572
|
+
*/
|
|
573
|
+
function addResultToAccumulator(
|
|
574
|
+
acc: { [key: string]: JsonTypeDefinition },
|
|
575
|
+
key: string,
|
|
576
|
+
value: JsonTypeDefinition,
|
|
577
|
+
): void {
|
|
578
|
+
if (acc[key]) {
|
|
579
|
+
// Key already exists - merge the schemas
|
|
580
|
+
acc[key] = mergeJsonTypeDefinitions(
|
|
581
|
+
acc[key] as Record<string, unknown>,
|
|
582
|
+
value as Record<string, unknown>,
|
|
583
|
+
) as JsonTypeDefinition;
|
|
584
|
+
} else {
|
|
585
|
+
acc[key] = value;
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
|
|
262
589
|
export default function gatherDataForMocks(
|
|
263
590
|
importedExports: {
|
|
264
591
|
filePath?: string;
|
|
@@ -268,31 +595,335 @@ export default function gatherDataForMocks(
|
|
|
268
595
|
callVariableNames?: string[];
|
|
269
596
|
}[],
|
|
270
597
|
dependencySchemas: DataStructure['dependencySchemas'],
|
|
598
|
+
options?: GatherDataForMocksOptions,
|
|
271
599
|
) {
|
|
272
|
-
|
|
600
|
+
// Build schema indexes ONCE from all dependency schemas combined.
|
|
601
|
+
// This avoids rebuilding indexes (~1-2 seconds for 18k keys) for each processCall.
|
|
602
|
+
//
|
|
603
|
+
// IMPORTANT: We must preprocess schemas BEFORE building indexes!
|
|
604
|
+
// The schemas contain .functionCallReturnValue paths that get stripped during processing.
|
|
605
|
+
// If we build indexes from original paths, lookups with preprocessed paths will fail.
|
|
606
|
+
// Example: 'hook().functionCallReturnValue.x.length' → index maps 'hook().functionCallReturnValue.x' → ['length']
|
|
607
|
+
// But preprocessed path 'hook().x.length' looks for 'hook().x' which doesn't exist in the index.
|
|
608
|
+
const allSchemaKeys: Record<string, string> = {};
|
|
609
|
+
if (dependencySchemas) {
|
|
610
|
+
for (const filePath in dependencySchemas) {
|
|
611
|
+
for (const entityName in dependencySchemas[filePath]) {
|
|
612
|
+
const schema =
|
|
613
|
+
dependencySchemas[filePath][entityName]?.returnValueSchema;
|
|
614
|
+
if (schema) {
|
|
615
|
+
// Preprocess each schema to remove .functionCallReturnValue before collecting
|
|
616
|
+
const preprocessed = preprocessSchemaForMocks(schema);
|
|
617
|
+
Object.assign(allSchemaKeys, preprocessed);
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
}
|
|
622
|
+
const prebuiltIndexes =
|
|
623
|
+
Object.keys(allSchemaKeys).length > 0
|
|
624
|
+
? buildSchemaIndexes(allSchemaKeys)
|
|
625
|
+
: undefined;
|
|
626
|
+
|
|
627
|
+
// Track the global index for each hook name across all imports
|
|
628
|
+
// This enables canonical keys like EntityName::useLoaderData::0, EntityName::useFetcher::0, etc.
|
|
629
|
+
const hookCallIndices: Record<string, number> = {};
|
|
630
|
+
|
|
631
|
+
const result = importedExports.reduce(
|
|
273
632
|
(acc, importedExport) => {
|
|
274
633
|
if (!importedExport.isMocked) return acc;
|
|
275
634
|
|
|
276
|
-
//
|
|
277
|
-
const
|
|
278
|
-
|
|
279
|
-
|
|
635
|
+
// Get the clean hook name for indexing
|
|
636
|
+
const hookName = cleanFunctionName(importedExport.name);
|
|
637
|
+
|
|
638
|
+
// Check if we have multiple DISTINCT direct calls with variable names.
|
|
639
|
+
// Important: Only count direct calls to the function, not method chains on its return value.
|
|
640
|
+
// For example, ['useAuth()', 'useAuth().functionCallReturnValue.signOut()'] has only 1 direct call.
|
|
641
|
+
//
|
|
642
|
+
// ALSO: If all direct calls are IDENTICAL (same signature repeated), this is from
|
|
643
|
+
// destructuring like `const { a, b } = useHook()` and we should use the FULL unqualified
|
|
644
|
+
// schema, not iterate through partial variable-qualified schemas.
|
|
645
|
+
const directCallCount = countDirectCalls(importedExport.calls ?? []);
|
|
646
|
+
const hasMultipleDistinctCalls =
|
|
647
|
+
directCallCount > 1 &&
|
|
280
648
|
importedExport.callVariableNames &&
|
|
281
|
-
importedExport.callVariableNames.length ===
|
|
649
|
+
importedExport.callVariableNames.length === directCallCount &&
|
|
650
|
+
!allDirectCallsIdentical(importedExport.calls ?? []);
|
|
651
|
+
|
|
652
|
+
// Check for multiple distinct method-chain calls WITHOUT callVariableNames.
|
|
653
|
+
// This pattern is common with tRPC, Supabase, etc. where a single import
|
|
654
|
+
// (e.g., `trpc`) is used with multiple different method chains (e.g.,
|
|
655
|
+
// `trpc.useUtils()`, `trpc.quote.getQuotesByOrg.useQuery()`).
|
|
656
|
+
// These should each get their own entry in dataForMocks.
|
|
657
|
+
//
|
|
658
|
+
// IMPORTANT: This is DIFFERENT from the rest spread pattern where a function
|
|
659
|
+
// like useLoaderData is called directly, and other calls are method chains
|
|
660
|
+
// on its return value (e.g., `useLoaderData<typeof loader>()` with
|
|
661
|
+
// `useLoaderData<typeof loader>().uncommittedEntitiesList.filter(...)`).
|
|
662
|
+
// In that case, all the additional calls start with the base function call.
|
|
663
|
+
const directCalls = (importedExport.calls ?? []).filter(
|
|
664
|
+
(sig) => !sig.includes('.functionCallReturnValue.'),
|
|
665
|
+
);
|
|
666
|
+
const uniqueDirectCalls = [...new Set(directCalls)];
|
|
667
|
+
|
|
668
|
+
// Check if any call is a direct invocation of the import (e.g., `useLoaderData<typeof loader>()`)
|
|
669
|
+
// as opposed to all being property accesses (e.g., `trpc.useUtils()`, `trpc.quote.xxx()`).
|
|
670
|
+
// If there's a direct function call, the other calls are likely method chains on its result.
|
|
671
|
+
const baseName = importedExport.name;
|
|
672
|
+
const hasDirectFunctionCall = directCalls.some((sig) => {
|
|
673
|
+
// Pattern: baseName() or baseName<...>()
|
|
674
|
+
// This matches "useLoaderData()", "useLoaderData<typeof loader>()", etc.
|
|
675
|
+
// but NOT "trpc.useUtils()" which has a dot before the parens
|
|
676
|
+
const baseCallPattern = new RegExp(`^${baseName}(<[^>]*>)?\\(`);
|
|
677
|
+
return baseCallPattern.test(sig);
|
|
678
|
+
});
|
|
679
|
+
|
|
680
|
+
const hasMultipleDistinctMethodChains =
|
|
681
|
+
!hasMultipleDistinctCalls &&
|
|
682
|
+
uniqueDirectCalls.length > 1 &&
|
|
683
|
+
!allDirectCallsIdentical(directCalls) &&
|
|
684
|
+
!hasDirectFunctionCall; // Exclude rest spread patterns
|
|
685
|
+
|
|
686
|
+
if (hasMultipleDistinctMethodChains) {
|
|
687
|
+
// For multiple method-chain calls on the same import, create a NESTED structure
|
|
688
|
+
// under the base import name. This allows constructMockCode to generate a
|
|
689
|
+
// combined mock object with all method chains.
|
|
690
|
+
//
|
|
691
|
+
// Example: For calls ['trpc.useUtils()', 'trpc.quote.getQuotesByOrg.useQuery()'],
|
|
692
|
+
// create: { "trpc": { "useUtils()": {...}, "quote": { "getQuotesByOrg": { "useQuery()": {...} } } } }
|
|
693
|
+
const nestedResult: Record<string, unknown> = {};
|
|
694
|
+
|
|
695
|
+
for (let i = 0; i < uniqueDirectCalls.length; i++) {
|
|
696
|
+
// Find the index of this call in the original calls array
|
|
697
|
+
const callIndex = (importedExport.calls ?? []).indexOf(
|
|
698
|
+
uniqueDirectCalls[i],
|
|
699
|
+
);
|
|
700
|
+
if (callIndex === -1) continue;
|
|
701
|
+
|
|
702
|
+
const hookCallIndex = hookCallIndices[hookName] ?? 0;
|
|
703
|
+
hookCallIndices[hookName] = hookCallIndex + 1;
|
|
704
|
+
|
|
705
|
+
const processResult = processCall(
|
|
706
|
+
importedExport,
|
|
707
|
+
dependencySchemas,
|
|
708
|
+
callIndex,
|
|
709
|
+
undefined,
|
|
710
|
+
options,
|
|
711
|
+
hookCallIndex,
|
|
712
|
+
prebuiltIndexes,
|
|
713
|
+
);
|
|
714
|
+
|
|
715
|
+
if (processResult) {
|
|
716
|
+
// The key is like "trpc.useUtils()" or "trpc.quote.getQuotesByOrg.useQuery()"
|
|
717
|
+
// We need to nest the value at the path AFTER the base name
|
|
718
|
+
const callSignature = processResult.key;
|
|
719
|
+
|
|
720
|
+
// Split the call signature into path parts, handling parens
|
|
721
|
+
// e.g., "trpc.useUtils()" -> ["trpc", "useUtils()"]
|
|
722
|
+
// e.g., "trpc.quote.getQuotesByOrg.useQuery()" -> ["trpc", "quote", "getQuotesByOrg", "useQuery()"]
|
|
723
|
+
const pathParts = splitOutsideParenthesesAndArrays(callSignature);
|
|
724
|
+
|
|
725
|
+
// Skip the base name (first part) and nest the value at the remaining path
|
|
726
|
+
if (pathParts.length > 1 && pathParts[0] === baseName) {
|
|
727
|
+
const nestedPath = pathParts.slice(1);
|
|
728
|
+
|
|
729
|
+
// Set the value at the nested path, merging with existing structure
|
|
730
|
+
let current = nestedResult;
|
|
731
|
+
for (let j = 0; j < nestedPath.length - 1; j++) {
|
|
732
|
+
const part = nestedPath[j];
|
|
733
|
+
if (!(part in current)) {
|
|
734
|
+
current[part] = {};
|
|
735
|
+
}
|
|
736
|
+
current = current[part] as Record<string, unknown>;
|
|
737
|
+
}
|
|
738
|
+
// Set the leaf value
|
|
739
|
+
const leafKey = nestedPath[nestedPath.length - 1];
|
|
740
|
+
current[leafKey] = processResult.value;
|
|
741
|
+
}
|
|
742
|
+
}
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
// Add the nested result under the base import name
|
|
746
|
+
if (Object.keys(nestedResult).length > 0) {
|
|
747
|
+
addResultToAccumulator(
|
|
748
|
+
acc,
|
|
749
|
+
baseName,
|
|
750
|
+
nestedResult as JsonTypeDefinition,
|
|
751
|
+
);
|
|
752
|
+
}
|
|
753
|
+
} else if (hasMultipleDistinctCalls) {
|
|
754
|
+
// Track how many times each variable name has been seen
|
|
755
|
+
// to disambiguate keys when the same variable is reused
|
|
756
|
+
const variableNameCounts: Record<string, number> = {};
|
|
282
757
|
|
|
283
|
-
if (hasMultipleCalls) {
|
|
284
758
|
// Process each call separately with its variable name
|
|
285
759
|
for (let i = 0; i < importedExport.calls!.length; i++) {
|
|
286
|
-
const
|
|
287
|
-
|
|
288
|
-
|
|
760
|
+
const varName = importedExport.callVariableNames![i];
|
|
761
|
+
|
|
762
|
+
// Calculate the occurrence index for this variable name
|
|
763
|
+
const occurrence = variableNameCounts[varName] ?? 0;
|
|
764
|
+
variableNameCounts[varName] = occurrence + 1;
|
|
765
|
+
|
|
766
|
+
// Get the current hook call index and increment for next call
|
|
767
|
+
const hookCallIndex = hookCallIndices[hookName] ?? 0;
|
|
768
|
+
hookCallIndices[hookName] = hookCallIndex + 1;
|
|
769
|
+
|
|
770
|
+
const processResult = processCall(
|
|
771
|
+
importedExport,
|
|
772
|
+
dependencySchemas,
|
|
773
|
+
i,
|
|
774
|
+
occurrence,
|
|
775
|
+
options,
|
|
776
|
+
hookCallIndex,
|
|
777
|
+
prebuiltIndexes,
|
|
778
|
+
);
|
|
779
|
+
if (processResult) {
|
|
780
|
+
addResultToAccumulator(acc, processResult.key, processResult.value);
|
|
781
|
+
}
|
|
782
|
+
}
|
|
783
|
+
} else if (
|
|
784
|
+
// Handle multiple UNIQUE type-parameterized direct calls when variable count doesn't match.
|
|
785
|
+
// This happens when a hook is called with different type parameters (useFetcher<TypeA>(), useFetcher<TypeB>()),
|
|
786
|
+
// but the callVariableNames count doesn't match directCallCount (common with rest spread patterns).
|
|
787
|
+
// Each unique call signature should get its own entry in dataForMocks.
|
|
788
|
+
uniqueDirectCalls.length > 1 &&
|
|
789
|
+
!allDirectCallsIdentical(directCalls) &&
|
|
790
|
+
hasDirectFunctionCall
|
|
791
|
+
) {
|
|
792
|
+
// Process each UNIQUE direct call signature
|
|
793
|
+
for (let i = 0; i < uniqueDirectCalls.length; i++) {
|
|
794
|
+
const callSignature = uniqueDirectCalls[i];
|
|
795
|
+
|
|
796
|
+
// Find the index of this call in the original calls array
|
|
797
|
+
const callIndex = (importedExport.calls ?? []).indexOf(callSignature);
|
|
798
|
+
if (callIndex === -1) continue;
|
|
799
|
+
|
|
800
|
+
const hookCallIndex = hookCallIndices[hookName] ?? 0;
|
|
801
|
+
hookCallIndices[hookName] = hookCallIndex + 1;
|
|
802
|
+
|
|
803
|
+
const processResult = processCall(
|
|
804
|
+
importedExport,
|
|
805
|
+
dependencySchemas,
|
|
806
|
+
callIndex,
|
|
807
|
+
undefined,
|
|
808
|
+
options,
|
|
809
|
+
hookCallIndex,
|
|
810
|
+
prebuiltIndexes,
|
|
811
|
+
);
|
|
812
|
+
|
|
813
|
+
if (processResult) {
|
|
814
|
+
addResultToAccumulator(acc, processResult.key, processResult.value);
|
|
289
815
|
}
|
|
290
816
|
}
|
|
291
817
|
} else {
|
|
292
|
-
//
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
818
|
+
// Single calls, or multiple identical calls (from destructuring)
|
|
819
|
+
// Get the current hook call index and increment for next call
|
|
820
|
+
const hookCallIndex = hookCallIndices[hookName] ?? 0;
|
|
821
|
+
hookCallIndices[hookName] = hookCallIndex + 1;
|
|
822
|
+
|
|
823
|
+
// First, try to get result from unqualified schema
|
|
824
|
+
const processResult = processCall(
|
|
825
|
+
importedExport,
|
|
826
|
+
dependencySchemas,
|
|
827
|
+
0,
|
|
828
|
+
undefined,
|
|
829
|
+
options,
|
|
830
|
+
hookCallIndex,
|
|
831
|
+
prebuiltIndexes,
|
|
832
|
+
);
|
|
833
|
+
|
|
834
|
+
// Check if we got a meaningful result (not empty object or null)
|
|
835
|
+
// Arrays are always meaningful (even empty ones represent valid data structure)
|
|
836
|
+
const hasUnqualifiedResult =
|
|
837
|
+
processResult &&
|
|
838
|
+
processResult.value !== null &&
|
|
839
|
+
(typeof processResult.value !== 'object' ||
|
|
840
|
+
Array.isArray(processResult.value) ||
|
|
841
|
+
Object.keys(processResult.value as object).length > 0);
|
|
842
|
+
|
|
843
|
+
// Check if we have multiple callVariableNames that are DIFFERENT
|
|
844
|
+
// (e.g., from parent + child components using the same hook differently)
|
|
845
|
+
// In this case, we should also merge in variable-qualified schemas
|
|
846
|
+
// to capture all destructured properties from both parent and child.
|
|
847
|
+
const uniqueCallVarNames = new Set(
|
|
848
|
+
importedExport.callVariableNames ?? [],
|
|
849
|
+
);
|
|
850
|
+
const hasDifferentVarNames =
|
|
851
|
+
importedExport.callVariableNames &&
|
|
852
|
+
importedExport.callVariableNames.length > 1 &&
|
|
853
|
+
uniqueCallVarNames.size > 1 &&
|
|
854
|
+
// Only merge variable-qualified schemas when calls are all identical
|
|
855
|
+
// (e.g., useFlags() repeated). Don't do this for method chains
|
|
856
|
+
// or rest spread cases where calls.length !== callVariableNames.length
|
|
857
|
+
allDirectCallsIdentical(importedExport.calls ?? []);
|
|
858
|
+
|
|
859
|
+
if (hasUnqualifiedResult) {
|
|
860
|
+
let finalValue = processResult.value;
|
|
861
|
+
|
|
862
|
+
// If we have different variable names (e.g., from parent and child components),
|
|
863
|
+
// also merge in variable-qualified schemas to ensure we capture all properties.
|
|
864
|
+
// This handles the case where parent uses useFlags().enableNewAdminDashboard
|
|
865
|
+
// and child uses useFlags().flagShowReferenceIdOnQuoteTable.
|
|
866
|
+
if (hasDifferentVarNames) {
|
|
867
|
+
let mergedValue = processResult.value as JsonTypeDefinition;
|
|
868
|
+
for (let i = 0; i < importedExport.callVariableNames!.length; i++) {
|
|
869
|
+
const varQualifiedResult = processCall(
|
|
870
|
+
importedExport,
|
|
871
|
+
dependencySchemas,
|
|
872
|
+
i,
|
|
873
|
+
0, // Use 0 to trigger variable-qualified lookup
|
|
874
|
+
options,
|
|
875
|
+
hookCallIndex,
|
|
876
|
+
prebuiltIndexes,
|
|
877
|
+
);
|
|
878
|
+
if (varQualifiedResult && varQualifiedResult.value) {
|
|
879
|
+
mergedValue = mergeJsonTypeDefinitions(
|
|
880
|
+
mergedValue as Record<string, unknown>,
|
|
881
|
+
varQualifiedResult.value as Record<string, unknown>,
|
|
882
|
+
) as JsonTypeDefinition;
|
|
883
|
+
}
|
|
884
|
+
}
|
|
885
|
+
finalValue = mergedValue;
|
|
886
|
+
}
|
|
887
|
+
|
|
888
|
+
addResultToAccumulator(
|
|
889
|
+
acc,
|
|
890
|
+
processResult.key,
|
|
891
|
+
finalValue as JsonTypeDefinition,
|
|
892
|
+
);
|
|
893
|
+
} else if (
|
|
894
|
+
directCallCount > 1 &&
|
|
895
|
+
allDirectCallsIdentical(importedExport.calls ?? []) &&
|
|
896
|
+
importedExport.callVariableNames &&
|
|
897
|
+
importedExport.callVariableNames.length > 0
|
|
898
|
+
) {
|
|
899
|
+
// No unqualified schema exists, but we have multiple identical calls with variable names
|
|
900
|
+
// Merge all the variable-qualified schemas together
|
|
901
|
+
const callSignature =
|
|
902
|
+
importedExport.calls?.[0] ?? `${importedExport.name}()`;
|
|
903
|
+
let mergedValue: JsonTypeDefinition = {};
|
|
904
|
+
|
|
905
|
+
for (let i = 0; i < importedExport.callVariableNames.length; i++) {
|
|
906
|
+
const varQualifiedResult = processCall(
|
|
907
|
+
importedExport,
|
|
908
|
+
dependencySchemas,
|
|
909
|
+
i,
|
|
910
|
+
0, // Use 0 to trigger variable-qualified lookup
|
|
911
|
+
options,
|
|
912
|
+
hookCallIndex,
|
|
913
|
+
prebuiltIndexes,
|
|
914
|
+
);
|
|
915
|
+
if (varQualifiedResult && varQualifiedResult.value) {
|
|
916
|
+
// Deep merge the value into the accumulated result
|
|
917
|
+
mergedValue = mergeJsonTypeDefinitions(
|
|
918
|
+
mergedValue,
|
|
919
|
+
varQualifiedResult.value,
|
|
920
|
+
);
|
|
921
|
+
}
|
|
922
|
+
}
|
|
923
|
+
|
|
924
|
+
if (Object.keys(mergedValue as object).length > 0) {
|
|
925
|
+
addResultToAccumulator(acc, callSignature, mergedValue);
|
|
926
|
+
}
|
|
296
927
|
}
|
|
297
928
|
}
|
|
298
929
|
|
|
@@ -300,4 +931,6 @@ export default function gatherDataForMocks(
|
|
|
300
931
|
},
|
|
301
932
|
{} as { [importAlias: string]: JsonTypeDefinition },
|
|
302
933
|
);
|
|
934
|
+
|
|
935
|
+
return result;
|
|
303
936
|
}
|