@codeyam/codeyam-cli 0.1.0-staging.1669d45 → 0.1.0-staging.323686
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/log.txt +3 -3
- package/analyzer-template/package.json +3 -3
- package/analyzer-template/packages/ai/index.ts +9 -1
- package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +48 -34
- package/analyzer-template/packages/ai/src/lib/astScopes/arrayDerivationDetector.ts +199 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +31 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +139 -23
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.ts +6 -126
- package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +277 -8
- package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +73 -1
- package/analyzer-template/packages/ai/src/lib/completionCall.ts +198 -34
- package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +108 -1
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +205 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +10 -2
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +23 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +87 -2
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +32 -7
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.ts +129 -0
- package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +156 -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/generateEntityScenarioData.ts +626 -6
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +26 -1
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +375 -6
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +1003 -45
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.ts +239 -0
- 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 +23 -6
- package/analyzer-template/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.ts +391 -0
- package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +154 -32
- package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +22 -1
- package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +114 -2
- package/analyzer-template/packages/analyze/src/lib/analysisContext.ts +44 -4
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +10 -13
- package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +6 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +33 -7
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +142 -73
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +42 -5
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +1 -1
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +77 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.ts +56 -11
- package/analyzer-template/packages/aws/package.json +1 -1
- package/analyzer-template/packages/database/src/lib/kysely/db.ts +8 -1
- package/analyzer-template/packages/database/src/lib/kysely/tables/commitsTable.ts +6 -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/updateCommitMetadata.ts +7 -14
- 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 +8 -1
- 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/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/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/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/types/index.d.ts +1 -1
- 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 +25 -1
- 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/ScenariosDataStructure.d.ts +51 -1
- package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.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/types/index.ts +1 -0
- package/analyzer-template/packages/types/src/types/Analysis.ts +25 -0
- package/analyzer-template/packages/types/src/types/Commit.ts +2 -0
- package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +64 -1
- package/analyzer-template/packages/utils/dist/types/index.d.ts +1 -1
- 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 +25 -1
- 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/ScenariosDataStructure.d.ts +51 -1
- package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.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/safeFileName.ts +48 -3
- package/analyzer-template/playwright/capture.ts +20 -8
- package/analyzer-template/playwright/captureStatic.ts +1 -1
- package/analyzer-template/project/analyzeBaselineCommit.ts +5 -0
- package/analyzer-template/project/analyzeRegularCommit.ts +5 -0
- package/analyzer-template/project/captureLibraryFunctionDirect.ts +29 -26
- package/analyzer-template/project/constructMockCode.ts +314 -29
- package/analyzer-template/project/createEntitiesAndSortFiles.ts +83 -0
- package/analyzer-template/project/loadReadyToBeCaptured.ts +65 -41
- package/analyzer-template/project/orchestrateCapture/AwsCaptureTaskRunner.ts +12 -4
- package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +18 -7
- package/analyzer-template/project/orchestrateCapture/taskRunner.ts +4 -2
- package/analyzer-template/project/orchestrateCapture.ts +71 -6
- package/analyzer-template/project/reconcileMockDataKeys.ts +152 -9
- package/analyzer-template/project/runAnalysis.ts +4 -0
- package/analyzer-template/project/start.ts +35 -11
- package/analyzer-template/project/writeMockDataTsx.ts +114 -2
- package/analyzer-template/project/writeScenarioComponents.ts +101 -8
- package/analyzer-template/scripts/comboWorkerLoop.cjs +98 -50
- package/background/src/lib/virtualized/project/analyzeBaselineCommit.js +5 -0
- package/background/src/lib/virtualized/project/analyzeBaselineCommit.js.map +1 -1
- package/background/src/lib/virtualized/project/analyzeRegularCommit.js +5 -0
- 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 +255 -4
- package/background/src/lib/virtualized/project/constructMockCode.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/loadReadyToBeCaptured.js +19 -8
- package/background/src/lib/virtualized/project/loadReadyToBeCaptured.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/SequentialCaptureTaskRunner.js +7 -5
- package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
- package/background/src/lib/virtualized/project/orchestrateCapture.js +58 -6
- package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +126 -9
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
- package/background/src/lib/virtualized/project/runAnalysis.js +3 -0
- package/background/src/lib/virtualized/project/runAnalysis.js.map +1 -1
- package/background/src/lib/virtualized/project/start.js +32 -11
- package/background/src/lib/virtualized/project/start.js.map +1 -1
- package/background/src/lib/virtualized/project/writeMockDataTsx.js +89 -2
- package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
- package/background/src/lib/virtualized/project/writeScenarioComponents.js +57 -8
- package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
- package/codeyam-cli/src/cli.js +2 -0
- package/codeyam-cli/src/cli.js.map +1 -1
- package/codeyam-cli/src/commands/memory.js +273 -0
- package/codeyam-cli/src/commands/memory.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +4 -0
- package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
- package/codeyam-cli/src/utils/analysisRunner.js +21 -2
- package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
- package/codeyam-cli/src/utils/install-skills.js +20 -6
- package/codeyam-cli/src/utils/install-skills.js.map +1 -1
- package/codeyam-cli/src/utils/queue/job.js +1 -0
- package/codeyam-cli/src/utils/queue/job.js.map +1 -1
- package/codeyam-cli/src/utils/queue/manager.js +6 -0
- package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
- package/codeyam-cli/src/utils/rules/index.js +5 -0
- package/codeyam-cli/src/utils/rules/index.js.map +1 -0
- package/codeyam-cli/src/utils/rules/parser.js +106 -0
- package/codeyam-cli/src/utils/rules/parser.js.map +1 -0
- package/codeyam-cli/src/utils/rules/pathMatcher.js +18 -0
- package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -0
- package/codeyam-cli/src/utils/rules/staleness.js +132 -0
- package/codeyam-cli/src/utils/rules/staleness.js.map +1 -0
- package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +2 -0
- package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
- package/codeyam-cli/src/webserver/app/lib/database.js +7 -3
- package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
- package/codeyam-cli/src/webserver/bootstrap.js +40 -0
- package/codeyam-cli/src/webserver/bootstrap.js.map +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/EntityItem-DsN1wKrm.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-COi5OvsN.js → EntityTypeBadge-DLqD3qNt.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-BwdQv49w.js → EntityTypeIcon-Ba2JVPzP.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{InlineSpinner-CEleMv_j.js → InlineSpinner-C8lyxW9k.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-D68KarMg.js → InteractivePreview-aht4aafF.js} +2 -2
- package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-L75Wvqgw.js → LibraryFunctionPreview-CVtiBnY5.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-C53WM8qn.js → LoadingDots-B0GLXMsr.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-CrNkmy4i.js → LogViewer-xgeCVgSM.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-OApQuNyq.js +16 -0
- package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-CQifa1n-.js → SafeScreenshot-DuDvi0jm.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-CyaBFX7l.js → ScenarioViewer-DzccYyI8.js} +3 -13
- package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-D36O1rzU.js → TruncatedFilePath-DyFZkK0l.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/_index-BwqWJOgH.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-BwavGCpm.js +32 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.health-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/{chevron-down-DgTPh8H-.js → chevron-down-Cx24_aWc.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{chunk-EPOLDU6W-DdQKK6on.js → chunk-EPOLDU6W-CXRTFQ3F.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{circle-check-Dmr2bb1R.js → circle-check-BOARzkeR.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/copy-Bb-80kDT.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-Do4ZLUYa.js → createLucideIcon-BdhJEx6B.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-BBnGWYga.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-CbdFyxZh.js → entity._sha._-BJUiQqZF.js} +12 -12
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha.scenarios._scenarioId.fullscreen-B4iCfs5M.js → entity._sha.scenarios._scenarioId.fullscreen-DavjRmOY.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.create-scenario-wDWZZO1W.js → entity._sha_.create-scenario-D1T4TGjf.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-BMbl7MeQ.js → entity._sha_.edit._scenarioId-CTBG2mmz.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entry.client-5wRKRIH9.js → entry.client-CS2cb_eZ.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/file-code-Dhef1kWN.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/{fileTableUtils-DD3SDH7t.js → fileTableUtils-DMJ7zii9.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/files-CJ6lTdTA.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{git-zXjT7J0G.js → git-CPTZZ-JZ.js} +8 -8
- package/codeyam-cli/src/webserver/build/client/assets/globals-D3yhhV8x.css +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{index-DLbXwndH.js → index-B1h680n5.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{index-gPZ-lad1.js → index-lzqtyFU8.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-BsPXJ81F.js → loader-circle-B7B9V-bu.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-7522edd4.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/memory-yxFcrxBX.js +92 -0
- package/codeyam-cli/src/webserver/build/client/assets/root-eVAaavTS.js +62 -0
- package/codeyam-cli/src/webserver/build/client/assets/{search-P2FKIUql.js → search-CxXUmBSd.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{settings-B2eDuBj8.js → settings-CS5f3WzT.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{simulations-L18M6-kN.js → simulations-DwFIBT09.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-BDz7kbVA.js → triangle-alert-B6LgvRJg.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useCustomSizes-29dDmbH8.js → useCustomSizes-C1v1PQzo.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-BUm0UVJm.js → useLastLogLine-aSv48UbS.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useReportContext-CkIOKTrZ.js → useReportContext-DYxHZQuP.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useToast-KKw5kTn-.js → useToast-mBRpZPiu.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/index-DVzYx8PN.js +1 -0
- package/codeyam-cli/src/webserver/build/server/assets/server-build-4Cr0uToj.js +257 -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/templates/codeyam-memory-hook.sh +200 -0
- package/codeyam-cli/templates/codeyam:debug.md +47 -3
- package/codeyam-cli/templates/codeyam:diagnose.md +203 -25
- package/codeyam-cli/templates/codeyam:memory.md +462 -0
- package/codeyam-cli/templates/codeyam:new-rule.md +13 -0
- package/package.json +8 -5
- package/packages/ai/index.js +5 -2
- package/packages/ai/index.js.map +1 -1
- package/packages/ai/src/lib/analyzeScope.js +41 -17
- 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 +24 -0
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
- package/packages/ai/src/lib/astScopes/methodSemantics.js +109 -23
- package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
- package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js +1 -102
- package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js.map +1 -1
- package/packages/ai/src/lib/astScopes/processExpression.js +228 -11
- package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
- package/packages/ai/src/lib/completionCall.js +161 -30
- package/packages/ai/src/lib/completionCall.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +86 -1
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +179 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +7 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +19 -0
- package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +70 -2
- package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +29 -7
- 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 +111 -0
- package/packages/ai/src/lib/dataStructureChunking.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/generateEntityScenarioData.js +510 -7
- package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
- package/packages/ai/src/lib/generateEntityScenarios.js +19 -1
- package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
- package/packages/ai/src/lib/generateExecutionFlows.js +273 -4
- package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -1
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +738 -40
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -1
- package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js +194 -0
- package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js.map +1 -0
- 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 +15 -7
- package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.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 +131 -27
- package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -1
- package/packages/ai/src/lib/worker/SerializableDataStructure.js +7 -0
- package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
- package/packages/ai/src/lib/worker/analyzeScopeWorker.js +94 -1
- package/packages/ai/src/lib/worker/analyzeScopeWorker.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/files/analyze/analyzeEntities/prepareDataStructures.js +8 -4
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.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/validateDependencyAnalyses.js +31 -7
- package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +116 -66
- package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +37 -5
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +65 -0
- 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/database/src/lib/kysely/db.js +8 -1
- 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/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/updateCommitMetadata.js +5 -4
- package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
- package/packages/types/index.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 +3 -3
- package/codeyam-cli/src/webserver/build/client/assets/EntityItem-vauWK972.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-DzJRkCkr.js +0 -11
- package/codeyam-cli/src/webserver/build/client/assets/_index-Be83mo_j.js +0 -11
- package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-BN6wu6Y-.js +0 -37
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-Bn6aCAy_.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/files-DKyMFI90.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/globals-DTTQ3gY7.css +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-22590fcf.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/root-BsAarjAM.js +0 -57
- package/codeyam-cli/src/webserver/build/server/assets/index-BND5I5fv.js +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/server-build-CFXnd7MG.js +0 -228
|
@@ -48,6 +48,11 @@ export default async function analyzeBaselineCommit({ project, projectAnalyzer,
|
|
|
48
48
|
entitiesAnalyzedAt: now,
|
|
49
49
|
},
|
|
50
50
|
archiveCurrentRun: true,
|
|
51
|
+
updateCallback(metadata) {
|
|
52
|
+
if (metadata.currentRun?.captureCompletedAt) {
|
|
53
|
+
metadata.currentRun.completedAt = now;
|
|
54
|
+
}
|
|
55
|
+
},
|
|
51
56
|
});
|
|
52
57
|
awsLog(`CodeYam: Marking baseline completed for project ${project.slug}`);
|
|
53
58
|
project.metadata = await updateProjectMetadata({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzeBaselineCommit.js","sourceRoot":"","sources":["../../../../../../../background/src/lib/virtualized/project/analyzeBaselineCommit.ts"],"names":[],"mappings":"AAEA,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAwBxC,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,qBAAqB,CAAC,EAClD,OAAO,EACP,eAAe,EACf,YAAY,EACZ,WAAW,EACX,WAAW,EACX,OAAO,EACP,KAAK,EACL,eAAe,GAAG,EAAE,EACpB,KAAK,GAAG,KAAK,EACb,SAAS,EACT,mBAAmB,GACO;IAC1B,MAAM,CAAC,iDAAiD,EAAE;QACxD,WAAW;KACZ,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,QAAQ,EAAE,iBAAiB,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAC;IACJ,CAAC;IAED,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;IACpE,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,wCAAwC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,mBAAmB,CAAC;QAC7C,OAAO;QACP,eAAe;QACf,YAAY;QACZ,WAAW;QACX,OAAO;QACP,KAAK;QACL,SAAS;QACT,mBAAmB;KACpB,CAAC,CAAC;IAEH,IAAI,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;SAC3D,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,QAAQ,EAAE,eAAe;QACzB,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,UAAU,EAAE,CAAC,CAAC,EAAE;QAChB,MAAM,EAAE,IAAI;KACb,CAAC,CAAC,CAAC;IAEN,MAAM,wBAAwB,GAAG,MAAM,oBAAoB,CAAC;QAC1D,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,QAAQ,EAAE,eAAe;QACzB,WAAW,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;KACvE,CAAC,CAAC;IAEH,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,UAAU;QACZ,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,KAAK,CAAC,CAAC,UAAU,CAAC,CACzE,CAAC;IAEF,MAAM,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;IAE/C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,YAAY,CAAC,QAAQ,GAAG,MAAM,oBAAoB,CAAC;QACjD,QAAQ,EAAE,YAAY,CAAC,EAAE;QACzB,eAAe,EAAE;YACf,mBAAmB,EAAE,GAAG;SACzB;QACD,cAAc,EAAE;YACd,kBAAkB,EAAE,GAAG;SACxB;QACD,iBAAiB,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"analyzeBaselineCommit.js","sourceRoot":"","sources":["../../../../../../../background/src/lib/virtualized/project/analyzeBaselineCommit.ts"],"names":[],"mappings":"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"}
|
|
@@ -148,6 +148,11 @@ export default async function analyzeRegularCommit({ project, projectAnalyzer, c
|
|
|
148
148
|
// In local mode (CLI), let job.js handle archiving after BOTH analysis AND capture complete
|
|
149
149
|
// In cloud mode (Docker), archive immediately after analysis completes
|
|
150
150
|
archiveCurrentRun: !isLocalMode,
|
|
151
|
+
updateCallback(metadata) {
|
|
152
|
+
if (metadata.currentRun?.captureCompletedAt) {
|
|
153
|
+
metadata.currentRun.completedAt = now;
|
|
154
|
+
}
|
|
155
|
+
},
|
|
151
156
|
});
|
|
152
157
|
}
|
|
153
158
|
if (backgroundJob) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzeRegularCommit.js","sourceRoot":"","sources":["../../../../../../../background/src/lib/virtualized/project/analyzeRegularCommit.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"analyzeRegularCommit.js","sourceRoot":"","sources":["../../../../../../../background/src/lib/virtualized/project/analyzeRegularCommit.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,8 +56,8 @@ export default async function captureLibraryFunctionDirect(analysis, scenario) {
|
|
|
56
56
|
targetScenario.metadata.executionResult = executionResult;
|
|
57
57
|
}
|
|
58
58
|
});
|
|
59
|
-
// Mark scenario as complete
|
|
60
|
-
await
|
|
59
|
+
// Mark scenario as complete (use WithScenarios variant to get actual scenario count)
|
|
60
|
+
await updateFreshAnalysisStatusWithScenarios(analysis.id, (freshStatus, dbScenarios, _inAnalysis) => {
|
|
61
61
|
freshStatus.scenarios || (freshStatus.scenarios = []);
|
|
62
62
|
const scenarioStatus = freshStatus.scenarios.find((s) => s.name === scenario.name);
|
|
63
63
|
if (scenarioStatus) {
|
|
@@ -71,7 +71,7 @@ export default async function captureLibraryFunctionDirect(analysis, scenario) {
|
|
|
71
71
|
});
|
|
72
72
|
}
|
|
73
73
|
// Check if all scenarios are done
|
|
74
|
-
const allScenariosAvailable = freshStatus.scenarios.length >=
|
|
74
|
+
const allScenariosAvailable = freshStatus.scenarios.length >= dbScenarios.length;
|
|
75
75
|
if (allScenariosAvailable &&
|
|
76
76
|
freshStatus.scenarios.every((s) => !!s.finishedAt)) {
|
|
77
77
|
freshStatus.finishedAt = new Date().toISOString();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captureLibraryFunctionDirect.js","sourceRoot":"","sources":["../../../../../../../background/src/lib/virtualized/project/captureLibraryFunctionDirect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EACL,yBAAyB,EACzB,sCAAsC,EACtC,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAE1E;;;GAGG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,4BAA4B,CACxD,QAAkB,EAClB,QAAkB;IAElB,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;IAE5B,MAAM,CAAC,mDAAmD,EAAE;QAC1D,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,UAAU,EAAE,MAAM,CAAC,IAAI;QACvB,YAAY,EAAE,QAAQ,CAAC,IAAI;KAC5B,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,8DAA8D;QAC9D,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC;gBACtC,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,oCAAoC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;YACrE,CAAC;YAED,QAAQ,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;QACpC,CAAC;QAED,2BAA2B;QAC3B,MAAM,yBAAyB,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE;YACxE,WAAW,CAAC,SAAS,KAArB,WAAW,CAAC,SAAS,GAAK,EAAE,EAAC;YAC7B,MAAM,cAAc,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAC/C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAChC,CAAC;YACF,IAAI,cAAc,EAAE,CAAC;gBACnB,cAAc,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBACpD,OAAO,cAAc,CAAC,KAAK,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC;oBACzB,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,gCAAgC;QAChC,MAAM,eAAe,GAAG,MAAM,4BAA4B,CACxD,QAAQ,EACR,QAAQ,CACT,CAAC;QAEF,MAAM,CAAC,2BAA2B,EAAE;YAClC,UAAU,EAAE,QAAQ,CAAC,EAAE;YACvB,UAAU,EAAE,MAAM,CAAC,IAAI;YACvB,YAAY,EAAE,QAAQ,CAAC,IAAI;YAC3B,QAAQ,EAAE,CAAC,CAAC,eAAe,CAAC,KAAK;YACjC,WAAW,EAAE,eAAe,CAAC,WAAW;SACzC,CAAC,CAAC;QAEH,kDAAkD;QAClD,MAAM,sCAAsC,CAC1C,QAAQ,CAAC,EAAE,EACX,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE;YACrB,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC;YACnE,IAAI,cAAc,EAAE,CAAC;gBACnB,cAAc,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ,IAAI,EAAE,CAAC;gBACxD,cAAc,CAAC,QAAQ,CAAC,eAAe,GAAG,eAAe,CAAC;YAC5D,CAAC;QACH,CAAC,CACF,CAAC;QAEF,
|
|
1
|
+
{"version":3,"file":"captureLibraryFunctionDirect.js","sourceRoot":"","sources":["../../../../../../../background/src/lib/virtualized/project/captureLibraryFunctionDirect.ts"],"names":[],"mappings":"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"}
|
|
@@ -225,6 +225,18 @@ function isValidKey(key) {
|
|
|
225
225
|
return false;
|
|
226
226
|
return !/\s/.test(keyWithOutArguments);
|
|
227
227
|
}
|
|
228
|
+
/**
|
|
229
|
+
* Known hooks that return tuples [value, setter] instead of arrays.
|
|
230
|
+
* These should NOT use the .map() pattern even when the schema has generic array access ([]).
|
|
231
|
+
* Instead, they should return [data, () => {}] where data is from scenarios().
|
|
232
|
+
*/
|
|
233
|
+
const TUPLE_RETURNING_HOOKS = new Set([
|
|
234
|
+
'useAtom', // Jotai
|
|
235
|
+
'useState', // React
|
|
236
|
+
'useReducer', // React
|
|
237
|
+
'useRecoilState', // Recoil
|
|
238
|
+
'useImmerAtom', // Jotai with Immer
|
|
239
|
+
]);
|
|
228
240
|
export default function constructMockCode(mockName, dependencySchemas, entityType, _canonicalKey, // DEPRECATED: No longer used, kept for API compatibility
|
|
229
241
|
options) {
|
|
230
242
|
// Check if mockName is a call signature (e.g., "useFetcher<User>()", "db.select(query)")
|
|
@@ -399,6 +411,87 @@ options) {
|
|
|
399
411
|
const pathDepth = splitOutsideParenthesesAndArrays(dataStructurePath).length;
|
|
400
412
|
const isRootArray = dataStructureValue === 'array' &&
|
|
401
413
|
(dataStructurePath === 'returnValue' || pathDepth <= mockNameParts.length);
|
|
414
|
+
// OPTIMIZATION: Early return for tuple-returning hooks (useAtom, useState, etc.)
|
|
415
|
+
// These hooks have simple [value, setter] return patterns that don't need the full
|
|
416
|
+
// 9216-key schema processing. Check if this is a tuple-returning hook and generate
|
|
417
|
+
// the mock code directly without iterating over all schema keys.
|
|
418
|
+
if (TUPLE_RETURNING_HOOKS.has(baseMockName) && isFunction) {
|
|
419
|
+
// Check if schema has generic array pattern (indicates tuple return like [value, setter])
|
|
420
|
+
const schemaKeys = Object.keys(relevantReturnValueSchema ?? {});
|
|
421
|
+
const hasGenericArrayInSchema = schemaKeys.some((k) => k.includes('.functionCallReturnValue[]') ||
|
|
422
|
+
k === `${dataKey}.functionCallReturnValue[]` ||
|
|
423
|
+
k === 'returnValue[]');
|
|
424
|
+
// Check for differentiated tuple indices (e.g., functionCallReturnValue[2], [3]) which would NOT be a standard tuple
|
|
425
|
+
// We only check indices immediately after functionCallReturnValue, not nested indices like signature[2]
|
|
426
|
+
const tupleHasDifferentiatedIndices = schemaKeys.some((k) => {
|
|
427
|
+
// Look for .functionCallReturnValue[N] where N >= 2
|
|
428
|
+
const match = k.match(/\.functionCallReturnValue\[(\d+)\]/);
|
|
429
|
+
if (!match)
|
|
430
|
+
return false;
|
|
431
|
+
const idx = parseInt(match[1], 10);
|
|
432
|
+
return idx >= 2;
|
|
433
|
+
});
|
|
434
|
+
const isTupleReturningHook = hasGenericArrayInSchema && !tupleHasDifferentiatedIndices;
|
|
435
|
+
if (isTupleReturningHook) {
|
|
436
|
+
// Find all call patterns for this hook (e.g., useAtom(quoteFilterAtom), useAtom(supplierAtom))
|
|
437
|
+
const hookCallPatterns = Object.keys(relevantReturnValueSchema ?? {})
|
|
438
|
+
.filter((k) => {
|
|
439
|
+
const regex = new RegExp(`^${baseMockName}\\([^)]+\\)$`);
|
|
440
|
+
return regex.test(k);
|
|
441
|
+
})
|
|
442
|
+
.map((k) => {
|
|
443
|
+
const match = k.match(/\(([^)]+)\)/);
|
|
444
|
+
return { key: k, arg: match?.[1] ?? '' };
|
|
445
|
+
});
|
|
446
|
+
let tupleReturnCode;
|
|
447
|
+
if (hookCallPatterns.length > 1) {
|
|
448
|
+
// Multiple patterns - generate conditional dispatch
|
|
449
|
+
const conditions = hookCallPatterns
|
|
450
|
+
.map(({ key, arg }) => `if (argLabel === '${arg}' || argStr.includes('${arg}')) {\n return [scenarios().data()?.["${key}"]?.[0] ?? [], () => {}];\n }`)
|
|
451
|
+
.join('\n ');
|
|
452
|
+
const fallbackKey = hookCallPatterns[0]?.key ?? dataKey;
|
|
453
|
+
tupleReturnCode = `(() => {
|
|
454
|
+
// Dynamic dispatch for tuple-returning hook with multiple argument patterns
|
|
455
|
+
const argLabel = args[0]?.debugLabel ?? '';
|
|
456
|
+
const argStr = args[0]?.toString?.() ?? String(args[0] ?? '');
|
|
457
|
+
${conditions}
|
|
458
|
+
return [scenarios().data()?.["${fallbackKey}"]?.[0] ?? [], () => {}];
|
|
459
|
+
})()`;
|
|
460
|
+
}
|
|
461
|
+
else {
|
|
462
|
+
// Single or no patterns - use dynamic dispatch
|
|
463
|
+
const fallbackKey = hookCallPatterns[0]?.key ?? `${baseMockName}()`;
|
|
464
|
+
tupleReturnCode = `(() => {
|
|
465
|
+
// Dynamic dispatch for tuple-returning hook
|
|
466
|
+
const argLabel = args[0]?.debugLabel ?? '';
|
|
467
|
+
const argStr = args[0]?.toString?.() ?? '';
|
|
468
|
+
const allData = scenarios().data() ?? {};
|
|
469
|
+
if (argLabel) {
|
|
470
|
+
const labelKey = '${baseMockName}(' + argLabel + ')';
|
|
471
|
+
if (allData[labelKey]) {
|
|
472
|
+
return [allData[labelKey]?.[0] ?? [], () => {}];
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
const keys = Object.keys(allData).filter(k => k.startsWith('${baseMockName}('));
|
|
476
|
+
for (const key of keys) {
|
|
477
|
+
const keyArg = key.slice(${baseMockName.length + 1}, -1);
|
|
478
|
+
if (argStr.includes(keyArg)) {
|
|
479
|
+
return [allData[key]?.[0] ?? [], () => {}];
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
return [allData[keys[0] ?? '${fallbackKey}']?.[0] ?? [], () => {}];
|
|
483
|
+
})()`;
|
|
484
|
+
}
|
|
485
|
+
const safeFunctionName = options?.uniqueFunctionSuffix
|
|
486
|
+
? `${baseMockName}_${options.uniqueFunctionSuffix}`
|
|
487
|
+
: options?.keepOriginalFunctionName
|
|
488
|
+
? baseMockName
|
|
489
|
+
: mockNameIsCallSignature && derivedFunctionName
|
|
490
|
+
? derivedFunctionName
|
|
491
|
+
: baseMockName;
|
|
492
|
+
return `function ${safeFunctionName}(...args) {\n return ${tupleReturnCode};\n}`;
|
|
493
|
+
}
|
|
494
|
+
}
|
|
402
495
|
const returnValueParts = {
|
|
403
496
|
name: dataStructureName,
|
|
404
497
|
isArray: isRootArray,
|
|
@@ -679,7 +772,102 @@ options) {
|
|
|
679
772
|
return ARRAY_PROTOTYPE_METHODS.has(methodName);
|
|
680
773
|
});
|
|
681
774
|
let returnValueContents = '';
|
|
682
|
-
if (
|
|
775
|
+
// Check if this is a known tuple-returning hook (useAtom, useState, etc.)
|
|
776
|
+
// These should return [value, setter] tuples, not arrays or data paths
|
|
777
|
+
// Check isGenericArray from current context OR from schema for root level calls
|
|
778
|
+
// (at root level, isGenericArray might not be set yet but the schema contains [] pattern)
|
|
779
|
+
const hasGenericArrayInSchema = root &&
|
|
780
|
+
TUPLE_RETURNING_HOOKS.has(baseMockName) &&
|
|
781
|
+
Object.keys(relevantReturnValueSchema ?? {}).some((k) => k.includes('.functionCallReturnValue[]'));
|
|
782
|
+
// Check if there are array indices beyond what a standard 2-element tuple would have
|
|
783
|
+
// For tuple-returning hooks, [0] and [1] are expected (value and setter)
|
|
784
|
+
// Only consider it "differentiated" if there are indices >= 2 (e.g., [2], [3])
|
|
785
|
+
const tupleHasDifferentiatedIndices = nested?.some((n) => {
|
|
786
|
+
const indexMatch = n.name.match(/^\[(\d+)\]$/);
|
|
787
|
+
if (!indexMatch)
|
|
788
|
+
return false;
|
|
789
|
+
const index = parseInt(indexMatch[1], 10);
|
|
790
|
+
return index >= 2;
|
|
791
|
+
});
|
|
792
|
+
const isTupleReturningHook = TUPLE_RETURNING_HOOKS.has(baseMockName) &&
|
|
793
|
+
(isGenericArray || hasGenericArrayInSchema) &&
|
|
794
|
+
!tupleHasDifferentiatedIndices;
|
|
795
|
+
// Debug logging for tuple-returning hooks
|
|
796
|
+
if (TUPLE_RETURNING_HOOKS.has(baseMockName) && root) {
|
|
797
|
+
const schemaKeys = Object.keys(relevantReturnValueSchema ?? {});
|
|
798
|
+
const hasArrayPattern = schemaKeys.some((k) => k.includes('.functionCallReturnValue[]'));
|
|
799
|
+
console.log(`CodeYam: Tuple hook check for ${baseMockName} (root):`, `hasGenericArrayInSchema=${hasGenericArrayInSchema}`, `hasArrayPattern=${hasArrayPattern}`, `tupleHasDifferentiatedIndices=${tupleHasDifferentiatedIndices}`, `isTupleReturningHook=${isTupleReturningHook}`, `schemaKeysSample=${schemaKeys.slice(0, 5).join(', ')}`);
|
|
800
|
+
}
|
|
801
|
+
if (isTupleReturningHook) {
|
|
802
|
+
// Tuple-returning hooks should return [value, setter] tuple
|
|
803
|
+
// The value is the first element from scenarios data, setter is a no-op
|
|
804
|
+
// Default to [] when data is undefined to prevent errors like ".includes is not a function"
|
|
805
|
+
// Check if there are multiple call patterns for this hook in the schema
|
|
806
|
+
// (e.g., useAtom(quoteFilterAtom) and useAtom(supplierAtom))
|
|
807
|
+
const hookCallPatterns = Object.keys(relevantReturnValueSchema ?? {})
|
|
808
|
+
.filter((k) => {
|
|
809
|
+
// Match patterns like "useAtom(someArg)" but not nested paths like "useAtom(x).foo"
|
|
810
|
+
const regex = new RegExp(`^${baseMockName}\\([^)]+\\)$`);
|
|
811
|
+
return regex.test(k);
|
|
812
|
+
})
|
|
813
|
+
.map((k) => {
|
|
814
|
+
// Extract the argument from the key like "useAtom(quoteFilterAtom)" -> "quoteFilterAtom"
|
|
815
|
+
const match = k.match(/\(([^)]+)\)/);
|
|
816
|
+
return { key: k, arg: match?.[1] ?? '' };
|
|
817
|
+
});
|
|
818
|
+
if (hookCallPatterns.length > 1) {
|
|
819
|
+
// Multiple patterns - generate conditional dispatch based on first argument
|
|
820
|
+
// For Jotai atoms, we use debugLabel; for others, we try to match the argument string
|
|
821
|
+
const conditions = hookCallPatterns
|
|
822
|
+
.map(({ key, arg }) => `if (argLabel === '${arg}' || argStr.includes('${arg}')) {\n return [scenarios().data()?.["${key}"]?.[0] ?? [], () => {}];\n }`)
|
|
823
|
+
.join('\n ');
|
|
824
|
+
// Use the first pattern as fallback
|
|
825
|
+
const fallbackKey = hookCallPatterns[0]?.key ?? dataKey;
|
|
826
|
+
returnValueContents = `(() => {
|
|
827
|
+
// Dynamic dispatch for tuple-returning hook with multiple argument patterns
|
|
828
|
+
const argLabel = args[0]?.debugLabel ?? '';
|
|
829
|
+
const argStr = args[0]?.toString?.() ?? String(args[0] ?? '');
|
|
830
|
+
${conditions}
|
|
831
|
+
// Fallback to first pattern
|
|
832
|
+
return [scenarios().data()?.["${fallbackKey}"]?.[0] ?? [], () => {}];
|
|
833
|
+
})()`;
|
|
834
|
+
}
|
|
835
|
+
else {
|
|
836
|
+
// Single pattern or no patterns - use dynamic dispatch to handle case where
|
|
837
|
+
// the mock is used with different atoms than what was captured in the schema.
|
|
838
|
+
// Use the first argument to construct the data key dynamically.
|
|
839
|
+
const fallbackKey = hookCallPatterns[0]?.key ?? `${baseMockName}()`;
|
|
840
|
+
returnValueContents = `(() => {
|
|
841
|
+
// Dynamic dispatch for tuple-returning hook
|
|
842
|
+
// Try to construct key from argument's debugLabel (Jotai atoms) or toString
|
|
843
|
+
const argLabel = args[0]?.debugLabel ?? '';
|
|
844
|
+
const argStr = args[0]?.toString?.() ?? '';
|
|
845
|
+
const allData = scenarios().data() ?? {};
|
|
846
|
+
|
|
847
|
+
// Try to find a matching key using debugLabel first
|
|
848
|
+
if (argLabel) {
|
|
849
|
+
const labelKey = '${baseMockName}(' + argLabel + ')';
|
|
850
|
+
if (allData[labelKey]) {
|
|
851
|
+
return [allData[labelKey]?.[0] ?? [], () => {}];
|
|
852
|
+
}
|
|
853
|
+
}
|
|
854
|
+
|
|
855
|
+
// Try to find any matching key that contains part of the argument string
|
|
856
|
+
const keys = Object.keys(allData).filter(k => k.startsWith('${baseMockName}('));
|
|
857
|
+
for (const key of keys) {
|
|
858
|
+
const keyArg = key.slice(${baseMockName.length + 1}, -1);
|
|
859
|
+
if (argStr.includes(keyArg)) {
|
|
860
|
+
return [allData[key]?.[0] ?? [], () => {}];
|
|
861
|
+
}
|
|
862
|
+
}
|
|
863
|
+
|
|
864
|
+
// Fallback to first matching key or default
|
|
865
|
+
const fallback = keys[0] ?? '${fallbackKey}';
|
|
866
|
+
return [allData[fallback]?.[0] ?? [], () => {}];
|
|
867
|
+
})()`;
|
|
868
|
+
}
|
|
869
|
+
}
|
|
870
|
+
else if (!returnsFunctionArgs &&
|
|
683
871
|
nestedContent.length === 0 &&
|
|
684
872
|
dataPaths.length === 1) {
|
|
685
873
|
returnValueContents = dataPaths[0];
|
|
@@ -1043,7 +1231,36 @@ options) {
|
|
|
1043
1231
|
}
|
|
1044
1232
|
}
|
|
1045
1233
|
else {
|
|
1046
|
-
|
|
1234
|
+
// When we have a single data path and nested content that creates an object structure,
|
|
1235
|
+
// and we're NOT at the root level, we need to handle the case where the parent data
|
|
1236
|
+
// value is null or undefined. Without this check, `{ ...null, prop: null?.["prop"] }`
|
|
1237
|
+
// creates `{ prop: undefined }` instead of `null`, causing errors like
|
|
1238
|
+
// "Cannot read properties of undefined (reading 'some')" when code does
|
|
1239
|
+
// data?.prop.some(...) because data is an object with prop: undefined, not null.
|
|
1240
|
+
// We only apply this to non-root cases because root-level mocks are expected to exist.
|
|
1241
|
+
// We also skip structural elements (like [0] inside arrays) because the null check
|
|
1242
|
+
// syntax doesn't work inside .map() callbacks where structural elements are used.
|
|
1243
|
+
// We also skip array index elements ([0], [1], etc.) because they represent tuple/array
|
|
1244
|
+
// elements, not properties that could be null.
|
|
1245
|
+
// We also only apply this when we're inside a function return value context - i.e.,
|
|
1246
|
+
// when the data path contains a function call pattern like ?.["someFunction(...)"].
|
|
1247
|
+
// This prevents adding null checks to intermediate objects in chains like supabase.auth.
|
|
1248
|
+
const hasNestedContent = nestedContent.filter(Boolean).length > 0;
|
|
1249
|
+
const isArrayIndexElement = name.match(/^\[\d*\]$/);
|
|
1250
|
+
// Check if data path contains a function call pattern, indicating we're inside a function return value
|
|
1251
|
+
const isInsideFunctionReturnValue = dataPaths.length === 1 &&
|
|
1252
|
+
dataPaths[0].match(/\?\.\["\w+\([^"]*\)"\]/);
|
|
1253
|
+
if (!root &&
|
|
1254
|
+
!returnValue.isStructural &&
|
|
1255
|
+
!isArrayIndexElement &&
|
|
1256
|
+
isInsideFunctionReturnValue &&
|
|
1257
|
+
hasNestedContent) {
|
|
1258
|
+
// Wrap with null check: if parent is null/undefined, return it directly; otherwise create object
|
|
1259
|
+
returnValueContents = `${dataPaths[0]} == null ? ${dataPaths[0]} : {\n${indent(levelContents)}\n}`;
|
|
1260
|
+
}
|
|
1261
|
+
else {
|
|
1262
|
+
returnValueContents = `{\n${indent(levelContents)}\n}`;
|
|
1263
|
+
}
|
|
1047
1264
|
}
|
|
1048
1265
|
}
|
|
1049
1266
|
if (root) {
|
|
@@ -1158,7 +1375,31 @@ options) {
|
|
|
1158
1375
|
return content;
|
|
1159
1376
|
};
|
|
1160
1377
|
// Create the return value structure
|
|
1161
|
-
|
|
1378
|
+
// OPTIMIZATION: Filter keys to only those starting with baseMockName before sorting.
|
|
1379
|
+
// This dramatically reduces processing time for large schemas (e.g., 9216 keys -> ~100 relevant keys).
|
|
1380
|
+
// Without this filter, the loop would call splitOutsideParenthesesAndArrays on every key
|
|
1381
|
+
// even though most are filtered out later by the baseMockName check.
|
|
1382
|
+
const allSchemaKeys = Object.keys(relevantReturnValueSchema ?? {});
|
|
1383
|
+
const relevantKeys = allSchemaKeys.filter((key) => {
|
|
1384
|
+
// Fast prefix check - key must start with baseMockName followed by ( or < or .
|
|
1385
|
+
// This matches: "useAtom()", "useAtom<T>()", "useAtom.something", but not "useAtomValue()"
|
|
1386
|
+
if (key === baseMockName)
|
|
1387
|
+
return true;
|
|
1388
|
+
if (key.startsWith(baseMockName + '('))
|
|
1389
|
+
return true;
|
|
1390
|
+
if (key.startsWith(baseMockName + '<'))
|
|
1391
|
+
return true;
|
|
1392
|
+
if (key.startsWith(baseMockName + '.'))
|
|
1393
|
+
return true;
|
|
1394
|
+
// Also include 'returnValue' paths which are normalized later
|
|
1395
|
+
if (key === 'returnValue' ||
|
|
1396
|
+
key.startsWith('returnValue.') ||
|
|
1397
|
+
key.startsWith('returnValue['))
|
|
1398
|
+
return true;
|
|
1399
|
+
return false;
|
|
1400
|
+
});
|
|
1401
|
+
const schemaKeyCount = relevantKeys.length;
|
|
1402
|
+
const sortedKeys = relevantKeys.sort((a, b) => {
|
|
1162
1403
|
const aParts = splitOutsideParenthesesAndArrays(a);
|
|
1163
1404
|
const bParts = splitOutsideParenthesesAndArrays(b);
|
|
1164
1405
|
const maxLength = Math.max(aParts.length, bParts.length);
|
|
@@ -1754,7 +1995,17 @@ options) {
|
|
|
1754
1995
|
: enhancedContents;
|
|
1755
1996
|
// Inline the return value directly in the function to avoid module-level const
|
|
1756
1997
|
// that would be evaluated before scenario context is ready
|
|
1757
|
-
|
|
1998
|
+
// Add fallback for simple data path returns to prevent undefined errors (e.g., createTheme)
|
|
1999
|
+
// Only add fallback if returnValue is a simple data accessor (starts with scenarios().data())
|
|
2000
|
+
// and doesn't already have nested structure (object literal, array, or method chains like .map())
|
|
2001
|
+
const isSimpleDataPath = returnValue.startsWith('scenarios().data()') &&
|
|
2002
|
+
!returnValue.trim().startsWith('{') &&
|
|
2003
|
+
!returnValue.trim().startsWith('[') &&
|
|
2004
|
+
!returnValue.includes('.map('); // Exclude method chains
|
|
2005
|
+
const safeReturnValue = isSimpleDataPath
|
|
2006
|
+
? `${returnValue} ?? {}`
|
|
2007
|
+
: returnValue;
|
|
2008
|
+
return `${isRootAsyncFunction ? 'async ' : ''}function ${safeFunctionName}(...args) {\n${indent(`return ${safeReturnValue};`)}\n}`;
|
|
1758
2009
|
}
|
|
1759
2010
|
else {
|
|
1760
2011
|
// Generate safe const name:
|