@codeyam/codeyam-cli 0.1.0-staging.8e7b1bd → 0.1.0-staging.b8a55ba
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/analyzer-template/.build-info.json +7 -7
- package/analyzer-template/log.txt +3 -3
- package/analyzer-template/package.json +7 -6
- package/analyzer-template/packages/ai/package.json +1 -1
- package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +2 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +22 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.ts +23 -1
- package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +401 -106
- package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +60 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +661 -50
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +14 -2
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +715 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +123 -1
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +19 -1
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +23 -1
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +23 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +34 -1
- package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +236 -24
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +18 -1
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +37 -4
- package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +5 -0
- package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +213 -12
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +11 -15
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +114 -11
- 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/promptGenerators/gatherAttributesMap.ts +7 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +42 -2
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +38 -2
- package/analyzer-template/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.ts +28 -2
- package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +5 -0
- package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +8 -1
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +339 -145
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +20 -0
- package/analyzer-template/packages/analyze/src/lib/files/getImportedExports.ts +8 -1
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +158 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +107 -18
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.ts +1 -1
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +223 -103
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +10 -5
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +172 -83
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +2 -5
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +97 -27
- 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/package.json +1 -1
- package/analyzer-template/packages/aws/s3/index.ts +1 -0
- package/analyzer-template/packages/aws/src/lib/s3/checkS3ObjectExists.ts +47 -0
- package/analyzer-template/packages/database/src/lib/kysely/db.ts +4 -4
- package/analyzer-template/packages/database/src/lib/kysely/tableRelations.ts +2 -2
- package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +20 -9
- package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +3 -2
- 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/getComponentScenarioPath.ts +8 -3
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +2 -2
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +2 -2
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tableRelations.d.ts +2 -2
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts +8 -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/debugReportsTable.d.ts +14 -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/scenariosTable.d.ts +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +4 -2
- package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
- 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/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/types/index.d.ts +4 -3
- package/analyzer-template/packages/github/dist/types/index.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/index.js +1 -0
- package/analyzer-template/packages/github/dist/types/index.js.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts +31 -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/Scenario.d.ts +51 -1
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.js +21 -1
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.js.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +48 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.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/types/index.ts +8 -0
- package/analyzer-template/packages/types/src/types/Analysis.ts +32 -1
- package/analyzer-template/packages/types/src/types/Scenario.ts +75 -6
- package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +49 -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 +4 -3
- package/analyzer-template/packages/utils/dist/types/index.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/index.js +1 -0
- package/analyzer-template/packages/utils/dist/types/index.js.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts +31 -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/Scenario.d.ts +51 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js +21 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +48 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.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/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/src/lib/applyUniversalMocks.ts +28 -2
- package/analyzer-template/packages/utils/src/lib/lightweightEntityExtractor.ts +27 -0
- package/analyzer-template/playwright/takeElementScreenshot.ts +26 -11
- package/analyzer-template/playwright/takeScreenshot.ts +9 -7
- package/analyzer-template/project/TESTING.md +83 -0
- package/analyzer-template/project/constructMockCode.ts +151 -30
- package/analyzer-template/project/loadReadyToBeCaptured.ts +17 -1
- package/analyzer-template/project/orchestrateCapture/KyselyAnalysisLoader.ts +16 -9
- package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +77 -37
- package/analyzer-template/project/reconcileMockDataKeys.ts +104 -3
- package/analyzer-template/project/runMultiScenarioServer.ts +11 -10
- package/analyzer-template/project/serverOnlyModules.ts +288 -0
- package/analyzer-template/project/start.ts +10 -0
- package/analyzer-template/project/startScenarioCapture.ts +73 -41
- package/analyzer-template/project/writeMockDataTsx.ts +103 -40
- package/analyzer-template/project/writeScenarioComponents.ts +1162 -203
- package/analyzer-template/project/writeSimpleRoot.ts +26 -4
- package/analyzer-template/project/writeUniversalMocks.ts +32 -11
- package/background/src/lib/virtualized/project/constructMockCode.js +132 -25
- package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
- package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js +15 -1
- package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js.map +1 -1
- package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js +11 -6
- package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js.map +1 -1
- package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +67 -32
- package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +65 -4
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.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 +235 -0
- package/background/src/lib/virtualized/project/serverOnlyModules.js.map +1 -0
- package/background/src/lib/virtualized/project/start.js +6 -0
- package/background/src/lib/virtualized/project/start.js.map +1 -1
- package/background/src/lib/virtualized/project/startScenarioCapture.js +54 -31
- package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
- package/background/src/lib/virtualized/project/writeMockDataTsx.js +87 -34
- package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
- package/background/src/lib/virtualized/project/writeScenarioComponents.js +852 -133
- package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
- package/background/src/lib/virtualized/project/writeSimpleRoot.js +25 -2
- 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/fixtures/formbricks/universal-mocks/apps/web/lib/instance/service.js +7 -0
- package/codeyam-cli/scripts/fixtures/formbricks/universal-mocks/apps/web/lib/instance/service.js.map +1 -0
- package/codeyam-cli/src/cli.js +2 -0
- package/codeyam-cli/src/cli.js.map +1 -1
- package/codeyam-cli/src/commands/debug.js +14 -2
- package/codeyam-cli/src/commands/debug.js.map +1 -1
- package/codeyam-cli/src/commands/recapture.js +215 -0
- package/codeyam-cli/src/commands/recapture.js.map +1 -0
- package/codeyam-cli/src/commands/report.js +26 -23
- package/codeyam-cli/src/commands/report.js.map +1 -1
- package/codeyam-cli/src/utils/backgroundServer.js +2 -2
- package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/utils/generateReport.js +252 -106
- package/codeyam-cli/src/utils/generateReport.js.map +1 -1
- package/codeyam-cli/src/utils/install-skills.js +2 -7
- package/codeyam-cli/src/utils/install-skills.js.map +1 -1
- package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +38 -0
- package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -1
- package/codeyam-cli/src/utils/queue/job.js +140 -16
- package/codeyam-cli/src/utils/queue/job.js.map +1 -1
- package/codeyam-cli/src/utils/queue/manager.js +19 -7
- package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
- package/codeyam-cli/src/utils/queue/persistence.js.map +1 -1
- package/codeyam-cli/src/webserver/app/lib/database.js +47 -0
- package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
- package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
- package/codeyam-cli/src/webserver/backgroundServer.js +5 -10
- package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/webserver/bootstrap.js +9 -0
- package/codeyam-cli/src/webserver/bootstrap.js.map +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/EntityItem-wXL1Z2Aq.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-DQeyk25_.js → EntityTypeBadge-CzGX-miz.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-CXFKsCOD.js +41 -0
- package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-D-9pXIaY.js +25 -0
- package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-CBQPrpT0.js +3 -0
- package/codeyam-cli/src/webserver/build/client/assets/LoadingDots-D1CdlbrV.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/LogViewer-wDPcZNKx.js +3 -0
- package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-4lcOlid-.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-BfmDgXxG.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-CUxUNEEC.js +15 -0
- package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-ayCJdUAc.js → TruncatedFilePath-6J7zDUD5.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/_index-DHImXdXq.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-2mG6mjVb.js +32 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.link-scenario-value-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.update-key-attributes-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.update-valid-values-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/chevron-down-BYimnrHg.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/chunk-JMJ3UQ3L-BambyYE_.js +51 -0
- package/codeyam-cli/src/webserver/build/client/assets/circle-check-CaVsIRxt.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-CgUsG7ib.js +21 -0
- package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-CKnwPCDr.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-DW_hdGUc.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-FHOVOgFN.js → entity._sha._-zUEpfPsu.js} +22 -15
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DyB90fWk.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-D_3ero5o.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-CfLCUi9S.js +5 -0
- package/codeyam-cli/src/webserver/build/client/assets/entry.client-DKJyZfAY.js +29 -0
- package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-DAtOlaWE.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/files-ClR0d32A.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/git-D62Lxxmv.js +15 -0
- package/codeyam-cli/src/webserver/build/client/assets/globals-C6vQASxy.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-BosqDOlH.js +3 -0
- package/codeyam-cli/src/webserver/build/client/assets/index-CzNNiTkw.js +9 -0
- package/codeyam-cli/src/webserver/build/client/assets/keyAttributeCoverage-CTlFMihX.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/loader-circle-CNp9QFCX.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/manifest-09d684be.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/preload-helper-ckwbz45p.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/root-BxJUvKau.js +56 -0
- package/codeyam-cli/src/webserver/build/client/assets/scenarioStatus-B_8jpV3e.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/search-DDGjYAMJ.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/settings-DgTyB-Wg.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/simulations-CoNWGt0K.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-CBc5dE1s.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-BMIGFP-m.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/useInteractiveMode-Dk_FQqWJ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-DOGXmJcI.js → useLastLogLine-BqPPNjAl.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/useReportContext-DsJbgMY9.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{useToast-C07gRg7Z.js → useToast-DWHcCcl1.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/index-CV6i1S1A.js +1 -0
- package/codeyam-cli/src/webserver/build/server/assets/server-build-BDlyhfrv.js +175 -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/templates/debug-codeyam.md +620 -0
- package/package.json +14 -14
- package/packages/ai/src/lib/analyzeScope.js +2 -0
- package/packages/ai/src/lib/analyzeScope.js.map +1 -1
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +16 -0
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
- package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js +16 -0
- package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js.map +1 -1
- package/packages/ai/src/lib/astScopes/processExpression.js +305 -88
- package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +523 -42
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +12 -2
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +454 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +103 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +16 -1
- package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +19 -1
- package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +20 -0
- package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +28 -2
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
- package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +179 -17
- package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +1 -1
- package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +6 -0
- package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +1 -1
- package/packages/ai/src/lib/generateChangesEntityScenarios.js +37 -4
- package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
- package/packages/ai/src/lib/generateEntityDataStructure.js +4 -0
- package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
- package/packages/ai/src/lib/generateEntityKeyAttributes.js +176 -9
- package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +1 -1
- package/packages/ai/src/lib/generateEntityScenarioData.js +11 -15
- package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
- package/packages/ai/src/lib/generateEntityScenarios.js +105 -9
- package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
- 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/promptGenerators/gatherAttributesMap.js +6 -0
- package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +38 -2
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +38 -2
- package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
- 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/worker/SerializableDataStructure.js.map +1 -1
- package/packages/ai/src/lib/worker/analyzeScopeWorker.js +4 -0
- package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +258 -110
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +18 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
- package/packages/analyze/src/lib/files/getImportedExports.js +6 -1
- package/packages/analyze/src/lib/files/getImportedExports.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +125 -0
- package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +74 -19
- 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/generateDataStructure.js +175 -58
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +10 -5
- package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +127 -69
- package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +2 -5
- package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +74 -23
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
- package/packages/database/src/lib/kysely/db.js +2 -2
- package/packages/database/src/lib/kysely/tables/debugReportsTable.js +9 -3
- package/packages/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
- package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +4 -2
- package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
- 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/getComponentScenarioPath.js +7 -3
- package/packages/generate/src/lib/getComponentScenarioPath.js.map +1 -1
- package/packages/types/index.js +1 -0
- package/packages/types/index.js.map +1 -1
- package/packages/types/src/types/Scenario.js +21 -1
- package/packages/types/src/types/Scenario.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/lightweightEntityExtractor.js +25 -0
- package/packages/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
- package/scripts/finalize-analyzer.cjs +3 -1
- package/codeyam-cli/src/webserver/build/client/assets/EntityItem-CWKV2GEz.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-D2hFeDeg.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-C8K-4kKP.js +0 -26
- package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-DgXLv61M.js +0 -3
- package/codeyam-cli/src/webserver/build/client/assets/LogViewer-DFdLQbPS.js +0 -3
- package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-DlRDjT4h.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-7UkVL-UI.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-XjtsGuPo.js +0 -5
- package/codeyam-cli/src/webserver/build/client/assets/_index-D2eJjWLf.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-w6sbwlOd.js +0 -7
- package/codeyam-cli/src/webserver/build/client/assets/chevron-down-BBNQ8hup.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/chunk-WWGJGFF6-Bex4RrGs.js +0 -26
- package/codeyam-cli/src/webserver/build/client/assets/circle-check-cdhjVtom.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-DkgmwwRC.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-CwLmCS0J.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-YZ-kM3ZG.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-BeQlz94_.js +0 -5
- package/codeyam-cli/src/webserver/build/client/assets/entry.client-DN2XXM7Z.js +0 -5
- package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-CUeAIQNI.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/files-ccMQfhGf.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/git-JmESAHx5.js +0 -12
- package/codeyam-cli/src/webserver/build/client/assets/globals-CO-U8Bpo.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-DsL9BiOc.js +0 -8
- package/codeyam-cli/src/webserver/build/client/assets/loader-circle-COYCR2oZ.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-90adba57.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/root-DfbVEEjF.js +0 -16
- package/codeyam-cli/src/webserver/build/client/assets/search-DvK9iMBu.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-9LTbit4Z.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/simulations-BrxN5ZtV.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-Iv0p8T-1.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/useReportContext-BWmSRPH6.js +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/index-CE_1qXCG.js +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/server-build-BY_VDhiD.js +0 -166
- package/codeyam-cli/templates/debug-command.md +0 -141
- /package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-CMKNK2uU.css → styles-CMKNK2uU.css} +0 -0
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
import mergeInDependentDataStructure from './mergeInDependentDataStructure';
|
|
14
14
|
import { awsLog } from '~codeyam/utils';
|
|
15
15
|
import gatherDataForMocks from './gatherDataForMocks';
|
|
16
|
+
import enrichArrayTypesFromChildSignatures from './enrichArrayTypesFromChildSignatures';
|
|
16
17
|
|
|
17
18
|
export interface GenerateDataStructureArgs {
|
|
18
19
|
entity: Entity;
|
|
@@ -109,55 +110,6 @@ export default function generateDataStructure({
|
|
|
109
110
|
const relevantDependencyAnalysis =
|
|
110
111
|
dependentAnalyses[lookupPath]?.[importedExport.name];
|
|
111
112
|
|
|
112
|
-
// DEBUG: Track buildBranchFileMap and fileComparisons
|
|
113
|
-
if (
|
|
114
|
-
importedExport.name === 'buildBranchFileMap' ||
|
|
115
|
-
entity.name === 'GitView'
|
|
116
|
-
) {
|
|
117
|
-
console.log('🔍 DEBUG generateDataStructure:', {
|
|
118
|
-
entityName: entity.name,
|
|
119
|
-
importedExportName: importedExport.name,
|
|
120
|
-
lookupPath,
|
|
121
|
-
hasAnalysis: !!relevantDependencyAnalysis,
|
|
122
|
-
signatureSchema:
|
|
123
|
-
relevantDependencyAnalysis?.metadata?.mergedDataStructure
|
|
124
|
-
?.signatureSchema,
|
|
125
|
-
dependencySchemas: relevantDependencyAnalysis?.metadata
|
|
126
|
-
?.mergedDataStructure?.dependencySchemas
|
|
127
|
-
? Object.keys(
|
|
128
|
-
relevantDependencyAnalysis.metadata.mergedDataStructure
|
|
129
|
-
.dependencySchemas,
|
|
130
|
-
)
|
|
131
|
-
: null,
|
|
132
|
-
});
|
|
133
|
-
if (
|
|
134
|
-
relevantDependencyAnalysis?.metadata?.mergedDataStructure
|
|
135
|
-
?.signatureSchema
|
|
136
|
-
) {
|
|
137
|
-
const sig =
|
|
138
|
-
relevantDependencyAnalysis.metadata.mergedDataStructure
|
|
139
|
-
.signatureSchema;
|
|
140
|
-
console.log(
|
|
141
|
-
'🔍 DEBUG buildBranchFileMap signature keys:',
|
|
142
|
-
Object.keys(sig),
|
|
143
|
-
);
|
|
144
|
-
// Look for fileComparisons in the signature
|
|
145
|
-
for (const key of Object.keys(sig)) {
|
|
146
|
-
if (
|
|
147
|
-
key.includes('fileComparisons') ||
|
|
148
|
-
key.includes('entityDiff')
|
|
149
|
-
) {
|
|
150
|
-
console.log(
|
|
151
|
-
'🔍 DEBUG Found relevant key:',
|
|
152
|
-
key,
|
|
153
|
-
'=',
|
|
154
|
-
JSON.stringify(sig[key], null, 2),
|
|
155
|
-
);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
|
|
161
113
|
if (!relevantDependencyAnalysis) {
|
|
162
114
|
// console.info(
|
|
163
115
|
// 'CodeYam Warn: No relevant dependency analysis found for importedExport',
|
|
@@ -207,6 +159,179 @@ export default function generateDataStructure({
|
|
|
207
159
|
return acc;
|
|
208
160
|
}, {} as ReadonlyAnalysisMap);
|
|
209
161
|
|
|
162
|
+
// For non-mocked child components (like visual components), include their mocked
|
|
163
|
+
// dependencies in allImportedExports. This ensures that when a parent component
|
|
164
|
+
// renders a child that uses the same hook with different destructure patterns,
|
|
165
|
+
// both patterns get separate mock data keys.
|
|
166
|
+
//
|
|
167
|
+
// Example: DashboardPage uses QuotesTableCompact (child, not mocked).
|
|
168
|
+
// Both use useFlags hook but destructure different properties:
|
|
169
|
+
// - DashboardPage: const { enableNewAdminDashboard } = useFlags()
|
|
170
|
+
// - QuotesTableCompact: const { flagShowReferenceIdOnQuoteTable } = useFlags()
|
|
171
|
+
// We need mock data keys for BOTH destructure patterns.
|
|
172
|
+
//
|
|
173
|
+
// We need to traverse the ENTIRE dependency tree recursively because nested
|
|
174
|
+
// child components (e.g., QuotesTableCompact inside AdminDashboard inside
|
|
175
|
+
// DashboardPage) also have mocked dependencies that need mock data keys.
|
|
176
|
+
|
|
177
|
+
// Helper function to add mocked imports from an entity to allImportedExports
|
|
178
|
+
const addMockedImportsFromEntity = (childEntity: Entity | undefined) => {
|
|
179
|
+
if (!childEntity?.metadata) return;
|
|
180
|
+
|
|
181
|
+
// Add child's mocked nodeModuleImports
|
|
182
|
+
const childNodeModuleImports = childEntity.metadata.nodeModuleImports;
|
|
183
|
+
if (childNodeModuleImports) {
|
|
184
|
+
for (const moduleName of Object.keys(childNodeModuleImports)) {
|
|
185
|
+
const moduleImports = childNodeModuleImports[moduleName] || [];
|
|
186
|
+
for (const imported of moduleImports) {
|
|
187
|
+
if (!imported.isMocked) continue;
|
|
188
|
+
|
|
189
|
+
// Check if this import already exists in allImportedExports
|
|
190
|
+
const existingImport = allImportedExports.find(
|
|
191
|
+
(existing) =>
|
|
192
|
+
existing.filePath === moduleName &&
|
|
193
|
+
existing.name === imported.name,
|
|
194
|
+
);
|
|
195
|
+
|
|
196
|
+
if (existingImport) {
|
|
197
|
+
// Merge callVariableNames if the same dependency exists with different patterns
|
|
198
|
+
if (imported.callVariableNames && imported.calls) {
|
|
199
|
+
existingImport.calls = existingImport.calls || [];
|
|
200
|
+
existingImport.callVariableNames =
|
|
201
|
+
existingImport.callVariableNames || [];
|
|
202
|
+
|
|
203
|
+
// Add each call/variable pair that doesn't already exist
|
|
204
|
+
for (let i = 0; i < imported.calls.length; i++) {
|
|
205
|
+
const call = imported.calls[i];
|
|
206
|
+
const varName = imported.callVariableNames[i];
|
|
207
|
+
if (!varName) continue;
|
|
208
|
+
|
|
209
|
+
// Check if this specific callVariableName already exists
|
|
210
|
+
if (!existingImport.callVariableNames.includes(varName)) {
|
|
211
|
+
existingImport.calls.push(call);
|
|
212
|
+
existingImport.callVariableNames.push(varName);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
} else {
|
|
217
|
+
// Add new import
|
|
218
|
+
allImportedExports.push({
|
|
219
|
+
filePath: moduleName,
|
|
220
|
+
name: imported.name,
|
|
221
|
+
isDefault: imported.isDefault,
|
|
222
|
+
isMocked: imported.isMocked,
|
|
223
|
+
calls: imported.calls ? [...imported.calls] : undefined,
|
|
224
|
+
callVariableNames: imported.callVariableNames
|
|
225
|
+
? [...imported.callVariableNames]
|
|
226
|
+
: undefined,
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
// Add child's mocked importedExports
|
|
234
|
+
const childImportedExports = childEntity.metadata.importedExports;
|
|
235
|
+
if (childImportedExports) {
|
|
236
|
+
for (const imported of childImportedExports) {
|
|
237
|
+
if (!imported.isMocked) continue;
|
|
238
|
+
|
|
239
|
+
// Check if this import already exists in allImportedExports
|
|
240
|
+
const existingImport = allImportedExports.find(
|
|
241
|
+
(existing) =>
|
|
242
|
+
existing.filePath === imported.filePath &&
|
|
243
|
+
existing.name === imported.name,
|
|
244
|
+
);
|
|
245
|
+
|
|
246
|
+
if (existingImport) {
|
|
247
|
+
// Merge callVariableNames if the same dependency exists with different patterns
|
|
248
|
+
if (imported.callVariableNames && imported.calls) {
|
|
249
|
+
existingImport.calls = existingImport.calls || [];
|
|
250
|
+
existingImport.callVariableNames =
|
|
251
|
+
existingImport.callVariableNames || [];
|
|
252
|
+
|
|
253
|
+
// Add each call/variable pair that doesn't already exist
|
|
254
|
+
for (let i = 0; i < imported.calls.length; i++) {
|
|
255
|
+
const call = imported.calls[i];
|
|
256
|
+
const varName = imported.callVariableNames[i];
|
|
257
|
+
if (!varName) continue;
|
|
258
|
+
|
|
259
|
+
// Check if this specific callVariableName already exists
|
|
260
|
+
if (!existingImport.callVariableNames.includes(varName)) {
|
|
261
|
+
existingImport.calls.push(call);
|
|
262
|
+
existingImport.callVariableNames.push(varName);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
} else {
|
|
267
|
+
// Add new import
|
|
268
|
+
allImportedExports.push({
|
|
269
|
+
filePath: imported.filePath,
|
|
270
|
+
name: imported.name,
|
|
271
|
+
isDefault: imported.isDefault,
|
|
272
|
+
isMocked: imported.isMocked,
|
|
273
|
+
calls: imported.calls ? [...imported.calls] : undefined,
|
|
274
|
+
callVariableNames: imported.callVariableNames
|
|
275
|
+
? [...imported.callVariableNames]
|
|
276
|
+
: undefined,
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
};
|
|
282
|
+
|
|
283
|
+
// Recursive function to traverse the dependency tree
|
|
284
|
+
const processedAnalyses = new Set<string>();
|
|
285
|
+
const traverseDependencyTree = (analyses: ReadonlyAnalysisMap) => {
|
|
286
|
+
for (const filePath in analyses) {
|
|
287
|
+
for (const name in analyses[filePath]) {
|
|
288
|
+
const analysisKey = `${filePath}:${name}`;
|
|
289
|
+
if (processedAnalyses.has(analysisKey)) continue;
|
|
290
|
+
processedAnalyses.add(analysisKey);
|
|
291
|
+
|
|
292
|
+
const childAnalysis = analyses[filePath][name];
|
|
293
|
+
const childEntity = childAnalysis?.entity;
|
|
294
|
+
|
|
295
|
+
// Add mocked imports from this child entity
|
|
296
|
+
addMockedImportsFromEntity(childEntity as Entity | undefined);
|
|
297
|
+
|
|
298
|
+
// Recursively process this child's non-mocked children
|
|
299
|
+
// via their mergedDataStructure's nested dependentAnalyses
|
|
300
|
+
const childMergedDataStructure =
|
|
301
|
+
childAnalysis?.metadata?.mergedDataStructure;
|
|
302
|
+
if (childMergedDataStructure?.dependencySchemas) {
|
|
303
|
+
// We need to find non-mocked child components in the dependency tree
|
|
304
|
+
// These would be in the child's importedExports that are NOT mocked
|
|
305
|
+
const childImportedExports =
|
|
306
|
+
childEntity?.metadata?.importedExports ?? [];
|
|
307
|
+
const nonMockedChildDeps: ReadonlyAnalysisMap = {};
|
|
308
|
+
|
|
309
|
+
for (const dep of childImportedExports) {
|
|
310
|
+
if (dep.isMocked) continue;
|
|
311
|
+
if (dep.entityType !== 'visual') continue;
|
|
312
|
+
|
|
313
|
+
// Try to find this dependency in dependentAnalyses
|
|
314
|
+
const depFilePath = dep.resolvedFilePath ?? dep.filePath;
|
|
315
|
+
const depName = dep.resolvedName ?? dep.name;
|
|
316
|
+
|
|
317
|
+
if (dependentAnalyses[depFilePath]?.[depName]) {
|
|
318
|
+
nonMockedChildDeps[depFilePath] ||= {};
|
|
319
|
+
nonMockedChildDeps[depFilePath][depName] =
|
|
320
|
+
dependentAnalyses[depFilePath][depName];
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
if (Object.keys(nonMockedChildDeps).length > 0) {
|
|
325
|
+
traverseDependencyTree(nonMockedChildDeps);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
};
|
|
331
|
+
|
|
332
|
+
// Start traversal from direct non-mocked children
|
|
333
|
+
traverseDependencyTree(nonMockedDependentAnalyses);
|
|
334
|
+
|
|
210
335
|
// console.info(
|
|
211
336
|
// 'CODEYAM DEBUG: start merge',
|
|
212
337
|
// JSON.stringify(
|
|
@@ -239,39 +364,6 @@ export default function generateDataStructure({
|
|
|
239
364
|
dependencySchemas: isolatedDataStructure?.dependencySchemas || {},
|
|
240
365
|
});
|
|
241
366
|
|
|
242
|
-
// DEBUG: Check merged result for GitView
|
|
243
|
-
if (entity.name === 'GitView') {
|
|
244
|
-
console.log(
|
|
245
|
-
'🔍 DEBUG GitView mergedDataStructure dependency schemas:',
|
|
246
|
-
Object.keys(mergedDataStructure.dependencySchemas || {}),
|
|
247
|
-
);
|
|
248
|
-
for (const filePath of Object.keys(
|
|
249
|
-
mergedDataStructure.dependencySchemas || {},
|
|
250
|
-
)) {
|
|
251
|
-
for (const depName of Object.keys(
|
|
252
|
-
mergedDataStructure.dependencySchemas[filePath] || {},
|
|
253
|
-
)) {
|
|
254
|
-
const depSchema =
|
|
255
|
-
mergedDataStructure.dependencySchemas[filePath][depName];
|
|
256
|
-
console.log(
|
|
257
|
-
`🔍 DEBUG Merged dep ${filePath}/${depName} signature keys:`,
|
|
258
|
-
Object.keys(depSchema.signatureSchema || {}),
|
|
259
|
-
);
|
|
260
|
-
// Look for fileComparisons
|
|
261
|
-
for (const key of Object.keys(depSchema.signatureSchema || {})) {
|
|
262
|
-
if (key.includes('fileComparisons') || key.includes('entityDiff')) {
|
|
263
|
-
console.log(
|
|
264
|
-
'🔍 DEBUG MERGED Found relevant key:',
|
|
265
|
-
key,
|
|
266
|
-
'=',
|
|
267
|
-
JSON.stringify(depSchema.signatureSchema[key], null, 2),
|
|
268
|
-
);
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
|
|
275
367
|
mergedDataStructure.environmentVariables =
|
|
276
368
|
isolatedDataStructure.environmentVariables || [];
|
|
277
369
|
|
|
@@ -326,32 +418,60 @@ export default function generateDataStructure({
|
|
|
326
418
|
analysis.metadata ||= {};
|
|
327
419
|
analysis.metadata.mergedDataStructure = mergedDataStructure;
|
|
328
420
|
|
|
421
|
+
// Enrich mocked dependency array types with fields from child component signatures
|
|
422
|
+
// This ensures that when getSurveysAction returns { data: array }, and SurveyCard
|
|
423
|
+
// expects survey.updatedAt, the array element type includes updatedAt
|
|
424
|
+
enrichArrayTypesFromChildSignatures(
|
|
425
|
+
allImportedExports,
|
|
426
|
+
mergedDataStructure.dependencySchemas,
|
|
427
|
+
);
|
|
428
|
+
|
|
429
|
+
// DEBUG: Log nodeModuleImports with isMocked status
|
|
430
|
+
const nodeModuleImportsFlattened = Object.entries(
|
|
431
|
+
entity.metadata.nodeModuleImports ?? {},
|
|
432
|
+
).flatMap(([moduleName, imports]) =>
|
|
433
|
+
imports.map((i) => ({ moduleName, name: i.name, isMocked: i.isMocked })),
|
|
434
|
+
);
|
|
435
|
+
console.log(
|
|
436
|
+
'CodeYam DEBUG generateDataStructure:',
|
|
437
|
+
JSON.stringify(
|
|
438
|
+
{
|
|
439
|
+
entityName: entity.name,
|
|
440
|
+
nodeModuleImportsFlattened,
|
|
441
|
+
dependencySchemasKeys: Object.keys(
|
|
442
|
+
mergedDataStructure.dependencySchemas ?? {},
|
|
443
|
+
),
|
|
444
|
+
dependencySchemasForRemix: mergedDataStructure.dependencySchemas?.[
|
|
445
|
+
'@remix-run/react'
|
|
446
|
+
]
|
|
447
|
+
? Object.keys(
|
|
448
|
+
mergedDataStructure.dependencySchemas['@remix-run/react'],
|
|
449
|
+
)
|
|
450
|
+
: null,
|
|
451
|
+
},
|
|
452
|
+
null,
|
|
453
|
+
2,
|
|
454
|
+
),
|
|
455
|
+
);
|
|
456
|
+
|
|
329
457
|
const dataForMocks = gatherDataForMocks(
|
|
330
458
|
allImportedExports,
|
|
331
459
|
mergedDataStructure.dependencySchemas,
|
|
460
|
+
{ entityName: entity.name },
|
|
332
461
|
);
|
|
333
462
|
|
|
334
|
-
// DEBUG:
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
console.log(
|
|
347
|
-
'🔍 DEBUG dataForMocks relevant key:',
|
|
348
|
-
key,
|
|
349
|
-
'=',
|
|
350
|
-
JSON.stringify(dataForMocks[key], null, 2),
|
|
351
|
-
);
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
}
|
|
463
|
+
// DEBUG: Log the resulting dataForMocks
|
|
464
|
+
console.log(
|
|
465
|
+
'CodeYam DEBUG generateDataStructure dataForMocks result:',
|
|
466
|
+
JSON.stringify(
|
|
467
|
+
{
|
|
468
|
+
entityName: entity.name,
|
|
469
|
+
dataForMocksKeys: Object.keys(dataForMocks),
|
|
470
|
+
},
|
|
471
|
+
null,
|
|
472
|
+
2,
|
|
473
|
+
),
|
|
474
|
+
);
|
|
355
475
|
|
|
356
476
|
// console.info(
|
|
357
477
|
// 'CODEYAM DEBUG: dataForMocks',
|
|
@@ -29,13 +29,10 @@ export default async function generateKeyAttributes({
|
|
|
29
29
|
}: GenerateEntityKeyAttributesArgs): Promise<void> {
|
|
30
30
|
if (!['visual', 'library'].includes(entity.entityType)) return;
|
|
31
31
|
|
|
32
|
-
//
|
|
32
|
+
// Gather all mock data, consolidated under the root entity name
|
|
33
33
|
const structure = {
|
|
34
34
|
arguments: analysis.metadata.scenariosDataStructure?.arguments ?? [],
|
|
35
|
-
dataForMocks:
|
|
36
|
-
...(analysis.metadata.scenariosDataStructure?.dataForMocks ?? {}),
|
|
37
|
-
...gatherDataForMocks(analysis, dependentAnalyses),
|
|
38
|
-
},
|
|
35
|
+
dataForMocks: gatherDataForMocks(analysis, dependentAnalyses, entity.name),
|
|
39
36
|
};
|
|
40
37
|
|
|
41
38
|
awsLog(`🔮 Generating ${error ? 'error ' : ''}scenarios for`, {
|
|
@@ -98,6 +95,14 @@ export default async function generateKeyAttributes({
|
|
|
98
95
|
...(ka.dependencies && {
|
|
99
96
|
dependencies: ka.dependencies.map((dep) => ({ ...dep })),
|
|
100
97
|
}),
|
|
98
|
+
// Convert readonly sourceLocations array to mutable if present
|
|
99
|
+
...(ka.sourceLocations && {
|
|
100
|
+
sourceLocations: ka.sourceLocations.map((loc) => ({ ...loc })),
|
|
101
|
+
}),
|
|
102
|
+
// Convert readonly compoundConditionalIds array to mutable if present
|
|
103
|
+
...(ka.compoundConditionalIds && {
|
|
104
|
+
compoundConditionalIds: [...ka.compoundConditionalIds],
|
|
105
|
+
}),
|
|
101
106
|
})),
|
|
102
107
|
].filter(
|
|
103
108
|
(ka, index, self) =>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Analysis,
|
|
3
3
|
Entity,
|
|
4
|
+
JsonTypeDefinition,
|
|
4
5
|
ReadonlyAnalysis,
|
|
5
6
|
ReadonlyAnalysisMap,
|
|
6
7
|
} from '~codeyam/types';
|
|
@@ -21,17 +22,186 @@ export interface GenerateScenarioDataArgs {
|
|
|
21
22
|
updateProgress?: (detail: string) => void;
|
|
22
23
|
}
|
|
23
24
|
|
|
25
|
+
/**
|
|
26
|
+
* Extract the hook/function name from any mock data key format.
|
|
27
|
+
* Supports:
|
|
28
|
+
* - Canonical: "EntityName::hookName::index" -> "hookName"
|
|
29
|
+
* - Variable-qualified: "varName <- funcName" -> "funcName"
|
|
30
|
+
* - Simple with parens: "funcName()" -> "funcName"
|
|
31
|
+
* - Simple: "funcName" -> "funcName"
|
|
32
|
+
*/
|
|
33
|
+
function extractHookName(key: string): string | null {
|
|
34
|
+
// Canonical: "EntityName::hookName::index"
|
|
35
|
+
const canonicalMatch = key.match(/^[^:]+::([^:]+)::\d+$/);
|
|
36
|
+
if (canonicalMatch) return canonicalMatch[1];
|
|
37
|
+
|
|
38
|
+
// Variable-qualified: "varName <- funcName"
|
|
39
|
+
const varQualMatch = key.match(/<- (\w+)$/);
|
|
40
|
+
if (varQualMatch) return varQualMatch[1];
|
|
41
|
+
|
|
42
|
+
// Simple with parens: "funcName()" -> "funcName"
|
|
43
|
+
const simpleParensMatch = key.match(/^(\w+)\(\)$/);
|
|
44
|
+
if (simpleParensMatch) return simpleParensMatch[1];
|
|
45
|
+
|
|
46
|
+
// Simple: "funcName" (alphanumeric only)
|
|
47
|
+
const simpleMatch = key.match(/^(\w+)$/);
|
|
48
|
+
if (simpleMatch) return simpleMatch[1];
|
|
49
|
+
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Check if two schemas are structurally equivalent (same shape).
|
|
55
|
+
* Uses JSON.stringify for deep comparison.
|
|
56
|
+
*/
|
|
57
|
+
function schemasMatch(a: unknown, b: unknown): boolean {
|
|
58
|
+
return JSON.stringify(a) === JSON.stringify(b);
|
|
59
|
+
}
|
|
60
|
+
|
|
24
61
|
export function gatherDataForMocks(
|
|
25
62
|
analysis: ReadonlyAnalysis,
|
|
26
63
|
dependentAnalyses: ReadonlyAnalysisMap,
|
|
64
|
+
rootEntityName?: string,
|
|
27
65
|
): Analysis['metadata']['scenariosDataStructure']['dataForMocks'] {
|
|
28
|
-
const dataForMocks =
|
|
66
|
+
const dataForMocks: Analysis['metadata']['scenariosDataStructure']['dataForMocks'] =
|
|
67
|
+
{};
|
|
29
68
|
const analysesGathered = new Set<string>();
|
|
30
69
|
|
|
70
|
+
// Track hook indices for assigning new indices when schemas differ
|
|
71
|
+
const hookIndices: Record<string, number> = {};
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Find an existing key in dataForMocks that has the same hook name
|
|
75
|
+
* and matching schema. Returns the key if found, null otherwise.
|
|
76
|
+
*/
|
|
77
|
+
const findMatchingKey = (
|
|
78
|
+
hookName: string,
|
|
79
|
+
schema: unknown,
|
|
80
|
+
): string | null => {
|
|
81
|
+
for (const existingKey of Object.keys(dataForMocks)) {
|
|
82
|
+
const existingHook = extractHookName(existingKey);
|
|
83
|
+
if (
|
|
84
|
+
existingHook === hookName &&
|
|
85
|
+
schemasMatch(dataForMocks[existingKey], schema)
|
|
86
|
+
) {
|
|
87
|
+
return existingKey;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return null;
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Add mock data, consolidating by hook name and schema when rootEntityName is provided.
|
|
95
|
+
* - Same hook + same schema = merge into existing key
|
|
96
|
+
* - Same hook + different schema = new key with incremented index
|
|
97
|
+
* - All keys normalized to "RootEntity::hookName::index" format when rootEntityName provided
|
|
98
|
+
*/
|
|
99
|
+
const addMockData = (
|
|
100
|
+
originalKey: string,
|
|
101
|
+
schema: JsonTypeDefinition[keyof JsonTypeDefinition],
|
|
102
|
+
): void => {
|
|
103
|
+
// Skip if schema is empty object
|
|
104
|
+
if (
|
|
105
|
+
typeof schema === 'object' &&
|
|
106
|
+
schema !== null &&
|
|
107
|
+
!Array.isArray(schema) &&
|
|
108
|
+
Object.keys(schema).length === 0
|
|
109
|
+
) {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Skip null/undefined
|
|
114
|
+
if (schema === null || schema === undefined) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
const typedSchema = schema as
|
|
119
|
+
| JsonTypeDefinition
|
|
120
|
+
| string
|
|
121
|
+
| string[]
|
|
122
|
+
| JsonTypeDefinition[];
|
|
123
|
+
|
|
124
|
+
// Helper to merge schemas (only works for objects, otherwise just returns new value)
|
|
125
|
+
const mergeSchemas = (
|
|
126
|
+
existing: JsonTypeDefinition[keyof JsonTypeDefinition],
|
|
127
|
+
incoming: typeof typedSchema,
|
|
128
|
+
): JsonTypeDefinition[keyof JsonTypeDefinition] => {
|
|
129
|
+
// Only merge if both are objects (not arrays, not primitives)
|
|
130
|
+
if (
|
|
131
|
+
typeof existing === 'object' &&
|
|
132
|
+
existing !== null &&
|
|
133
|
+
!Array.isArray(existing) &&
|
|
134
|
+
typeof incoming === 'object' &&
|
|
135
|
+
incoming !== null &&
|
|
136
|
+
!Array.isArray(incoming)
|
|
137
|
+
) {
|
|
138
|
+
return mergeJsonTypeDefinitions(
|
|
139
|
+
existing as JsonTypeDefinition,
|
|
140
|
+
incoming as JsonTypeDefinition,
|
|
141
|
+
);
|
|
142
|
+
}
|
|
143
|
+
// For primitives/arrays, just use the incoming value
|
|
144
|
+
return incoming;
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
// If no rootEntityName, use legacy behavior (preserve original key)
|
|
148
|
+
if (!rootEntityName) {
|
|
149
|
+
if (dataForMocks?.[originalKey]) {
|
|
150
|
+
dataForMocks[originalKey] = mergeSchemas(
|
|
151
|
+
dataForMocks[originalKey],
|
|
152
|
+
typedSchema,
|
|
153
|
+
);
|
|
154
|
+
} else if (dataForMocks) {
|
|
155
|
+
dataForMocks[originalKey] = typedSchema;
|
|
156
|
+
}
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// Extract hook name for consolidation
|
|
161
|
+
const hookName = extractHookName(originalKey);
|
|
162
|
+
if (!hookName) {
|
|
163
|
+
// Can't parse - preserve original key
|
|
164
|
+
if (dataForMocks?.[originalKey]) {
|
|
165
|
+
dataForMocks[originalKey] = mergeSchemas(
|
|
166
|
+
dataForMocks[originalKey],
|
|
167
|
+
typedSchema,
|
|
168
|
+
);
|
|
169
|
+
} else if (dataForMocks) {
|
|
170
|
+
dataForMocks[originalKey] = typedSchema;
|
|
171
|
+
}
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// Look for existing key with same hook and matching schema
|
|
176
|
+
const matchingKey = findMatchingKey(hookName, typedSchema);
|
|
177
|
+
if (matchingKey && dataForMocks) {
|
|
178
|
+
// Same hook + same schema - merge into existing key
|
|
179
|
+
dataForMocks[matchingKey] = mergeSchemas(
|
|
180
|
+
dataForMocks[matchingKey],
|
|
181
|
+
typedSchema,
|
|
182
|
+
);
|
|
183
|
+
} else if (dataForMocks) {
|
|
184
|
+
// Different schema or first occurrence - create new canonical key
|
|
185
|
+
const index = hookIndices[hookName] ?? 0;
|
|
186
|
+
hookIndices[hookName] = index + 1;
|
|
187
|
+
const targetKey = `${rootEntityName}::${hookName}::${index}`;
|
|
188
|
+
dataForMocks[targetKey] = typedSchema;
|
|
189
|
+
}
|
|
190
|
+
};
|
|
191
|
+
|
|
31
192
|
// inner recursive function to gather data for mocks
|
|
32
193
|
const gatherDataForMocksRecursive = (
|
|
33
194
|
activeAnalysis: ReadonlyAnalysis,
|
|
34
195
|
): void => {
|
|
196
|
+
// First, process ALL keys from this analysis's dataForMocks
|
|
197
|
+
const localDataForMocks =
|
|
198
|
+
activeAnalysis.metadata?.scenariosDataStructure?.dataForMocks ?? {};
|
|
199
|
+
|
|
200
|
+
for (const [key, schema] of Object.entries(localDataForMocks)) {
|
|
201
|
+
addMockData(key, schema as JsonTypeDefinition[keyof JsonTypeDefinition]);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
// Then, recurse into dependent analyses based on imports
|
|
35
205
|
const allImportedExports = [
|
|
36
206
|
...(activeAnalysis.entity?.metadata.importedExports ?? []),
|
|
37
207
|
...Object.keys(
|
|
@@ -46,68 +216,7 @@ export function gatherDataForMocks(
|
|
|
46
216
|
),
|
|
47
217
|
];
|
|
48
218
|
|
|
49
|
-
// console.info('CODEYAM DEBUG: gatherDataForMocksRecursive START', {
|
|
50
|
-
// filePath: activeAnalysis.filePath,
|
|
51
|
-
// analysisEntityName: activeAnalysis.entityName,
|
|
52
|
-
// analysisId: activeAnalysis.id,
|
|
53
|
-
// entity: !!activeAnalysis.entity,
|
|
54
|
-
// entityName: activeAnalysis.entity?.name,
|
|
55
|
-
// allImportedExports: allImportedExports.map((ie) => ({
|
|
56
|
-
// filePath: ie.filePath,
|
|
57
|
-
// name: ie.name,
|
|
58
|
-
// })),
|
|
59
|
-
// });
|
|
60
|
-
|
|
61
219
|
for (const importedExport of allImportedExports) {
|
|
62
|
-
const localDataForMocks =
|
|
63
|
-
activeAnalysis.metadata?.scenariosDataStructure?.dataForMocks ?? {};
|
|
64
|
-
// Find relevant keys - handle both old format (starts with name)
|
|
65
|
-
// and new variable-qualified format ("varName <- functionName")
|
|
66
|
-
const relevantKeys = Object.keys(localDataForMocks).filter(
|
|
67
|
-
(key) =>
|
|
68
|
-
key.startsWith(importedExport.name) ||
|
|
69
|
-
key.endsWith(` <- ${importedExport.name}`),
|
|
70
|
-
);
|
|
71
|
-
|
|
72
|
-
// console.info('CODEYAM DEBUG: Processing import', {
|
|
73
|
-
// importedExportName: importedExport.name,
|
|
74
|
-
// importedExportFilePath: importedExport.filePath,
|
|
75
|
-
// relevantKeys,
|
|
76
|
-
// hasLocalDataForMocks: Object.keys(localDataForMocks).length > 0,
|
|
77
|
-
// localDataForMocksKeys: Object.keys(localDataForMocks),
|
|
78
|
-
// });
|
|
79
|
-
|
|
80
|
-
// First, if we have local data for this mock, add it
|
|
81
|
-
for (const relevantKey of relevantKeys) {
|
|
82
|
-
const localDataForMock = localDataForMocks[relevantKey];
|
|
83
|
-
|
|
84
|
-
// console.info('CODEYAM DEBUG: Found relevantKey', {
|
|
85
|
-
// relevantKey,
|
|
86
|
-
// localDataForMockType: typeof localDataForMock,
|
|
87
|
-
// localDataForMockValue: localDataForMock,
|
|
88
|
-
// isObject: typeof localDataForMock === 'object',
|
|
89
|
-
// objectKeysLength:
|
|
90
|
-
// typeof localDataForMock === 'object' && localDataForMock !== null
|
|
91
|
-
// ? Object.keys(localDataForMock).length
|
|
92
|
-
// : 'N/A',
|
|
93
|
-
// });
|
|
94
|
-
|
|
95
|
-
if (Object.keys(localDataForMock).length > 0) {
|
|
96
|
-
if ((dataForMocks as any)[relevantKey]) {
|
|
97
|
-
(dataForMocks as any)[relevantKey] = mergeJsonTypeDefinitions(
|
|
98
|
-
(dataForMocks as any)[relevantKey],
|
|
99
|
-
localDataForMock,
|
|
100
|
-
);
|
|
101
|
-
} else {
|
|
102
|
-
(dataForMocks as any)[relevantKey] = localDataForMock;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
// ALWAYS check for dependent analysis to gather nested dependencies,
|
|
108
|
-
// regardless of whether we found a relevantKey above.
|
|
109
|
-
// This ensures transitive dependencies are included.
|
|
110
|
-
// For example: Activity -> CurrentActivityTab -> useLastLogLine
|
|
111
220
|
// Use resolvedFilePath when available (for re-exports from index files)
|
|
112
221
|
const lookupPath =
|
|
113
222
|
('resolvedFilePath' in importedExport &&
|
|
@@ -121,30 +230,10 @@ export function gatherDataForMocks(
|
|
|
121
230
|
gatherDataForMocksRecursive(dependentAnalysis);
|
|
122
231
|
}
|
|
123
232
|
}
|
|
124
|
-
|
|
125
|
-
// console.info('CODEYAM DEBUG: gatherDataForMocksRecursive END', {
|
|
126
|
-
// filePath: activeAnalysis.filePath,
|
|
127
|
-
// entityName: activeAnalysis.entityName,
|
|
128
|
-
// currentDataForMocksKeys: Object.keys(dataForMocks),
|
|
129
|
-
// });
|
|
130
233
|
};
|
|
131
234
|
|
|
132
235
|
gatherDataForMocksRecursive(analysis);
|
|
133
236
|
|
|
134
|
-
// console.info(
|
|
135
|
-
// 'CODEYAM DEBUG: gatherDataForMocks FINAL RESULT',
|
|
136
|
-
// JSON.stringify(
|
|
137
|
-
// {
|
|
138
|
-
// filePath: analysis.filePath,
|
|
139
|
-
// entityName: analysis.entityName,
|
|
140
|
-
// dataForMocksKeys: Object.keys(dataForMocks),
|
|
141
|
-
// dataForMocks,
|
|
142
|
-
// },
|
|
143
|
-
// null,
|
|
144
|
-
// 2,
|
|
145
|
-
// ),
|
|
146
|
-
// );
|
|
147
|
-
|
|
148
237
|
return dataForMocks;
|
|
149
238
|
}
|
|
150
239
|
|
|
@@ -159,7 +248,7 @@ export default async function generateScenarioData({
|
|
|
159
248
|
|
|
160
249
|
const structure: Analysis['metadata']['scenariosDataStructure'] = {
|
|
161
250
|
arguments: analysis.metadata.scenariosDataStructure?.arguments ?? [],
|
|
162
|
-
dataForMocks: gatherDataForMocks(analysis, dependentAnalyses),
|
|
251
|
+
dataForMocks: gatherDataForMocks(analysis, dependentAnalyses, entity.name),
|
|
163
252
|
};
|
|
164
253
|
|
|
165
254
|
const scenarios = analysis.scenarios;
|