@codeyam/codeyam-cli 0.1.0-staging.1 → 0.1.0-staging.da5baf5
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 +5 -5
- package/analyzer-template/packages/ai/index.ts +2 -1
- package/analyzer-template/packages/ai/package.json +2 -2
- package/analyzer-template/packages/ai/scripts/ai-test-matrix.mjs +424 -0
- package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +24 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +6 -16
- package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +197 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/paths.ts +28 -2
- package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +127 -4
- package/analyzer-template/packages/ai/src/lib/checkAllAttributes.ts +1 -3
- package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +1821 -542
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.ts +138 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +1 -1
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.ts +139 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/DebugTracer.ts +224 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/PathManager.ts +203 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/README.md +294 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.ts +161 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/VisitedTracker.ts +235 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +14 -6
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/selectBestValue.ts +70 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/uniqueIdUtils.ts +113 -0
- package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +36 -0
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityDocumentation.ts +20 -2
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +51 -107
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +56 -160
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +79 -265
- package/analyzer-template/packages/ai/src/lib/generateEntityDocumentation.ts +16 -2
- package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +53 -176
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +53 -154
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +84 -254
- package/analyzer-template/packages/ai/src/lib/generateStatementAnalysis.ts +48 -71
- package/analyzer-template/packages/ai/src/lib/getConditionalUsagesFromCode.ts +27 -6
- package/analyzer-template/packages/ai/src/lib/getLLMCallStats.ts +0 -14
- package/analyzer-template/packages/ai/src/lib/modelInfo.ts +15 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +42 -4
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityDocumentationGenerator.ts +8 -33
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.ts +54 -62
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +93 -109
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityDocumentationGenerator.ts +8 -27
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +33 -38
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +30 -30
- package/analyzer-template/packages/ai/src/lib/types/index.ts +2 -0
- package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +39 -0
- package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +52 -6
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.ts +238 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getDeclaredEntityNode.ts +25 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/index.ts +2 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +8 -10
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +6 -1
- package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +34 -15
- package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +17 -3
- package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +35 -16
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +7 -1
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +9 -1
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +6 -1
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +9 -1
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +15 -7
- package/analyzer-template/packages/aws/package.json +2 -2
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts +28 -21
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.ts +18 -11
- package/analyzer-template/packages/generate/src/lib/scenarioComponent.ts +6 -3
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +28 -21
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js +18 -11
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.js +5 -3
- package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.js.map +1 -1
- package/analyzer-template/packages/github/dist/utils/index.d.ts +2 -0
- package/analyzer-template/packages/github/dist/utils/index.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/utils/index.js +2 -0
- package/analyzer-template/packages/github/dist/utils/index.js.map +1 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.d.ts +25 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.js +40 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/Semaphore.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getNextRoutePath.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getNextRoutePath.js +5 -3
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getNextRoutePath.js.map +1 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.js +2 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js +2 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js.map +1 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.d.ts +12 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.js +32 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.js.map +1 -0
- package/analyzer-template/packages/ui-components/src/scenario-editor/components/DataItemEditor.tsx +1 -1
- package/analyzer-template/packages/utils/dist/utils/index.d.ts +2 -0
- package/analyzer-template/packages/utils/dist/utils/index.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/index.js +2 -0
- package/analyzer-template/packages/utils/dist/utils/index.js.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.d.ts +25 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.js +40 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/Semaphore.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getNextRoutePath.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getNextRoutePath.js +5 -3
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getNextRoutePath.js.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.js +2 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js +2 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.d.ts +12 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.js +32 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.js.map +1 -0
- package/analyzer-template/packages/utils/index.ts +2 -0
- package/analyzer-template/packages/utils/src/lib/Semaphore.ts +42 -0
- package/analyzer-template/packages/utils/src/lib/frameworks/getNextRoutePath.ts +8 -3
- package/analyzer-template/packages/utils/src/lib/frameworks/getRemixRoutePath.ts +2 -1
- package/analyzer-template/packages/utils/src/lib/frameworks/nextRouteFileNameToRoute.ts +2 -1
- package/analyzer-template/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.ts +1 -0
- package/analyzer-template/packages/utils/src/lib/frameworks/sanitizeNextRouteSegments.ts +33 -0
- package/analyzer-template/project/constructMockCode.ts +170 -6
- package/analyzer-template/project/reconcileMockDataKeys.ts +13 -0
- package/analyzer-template/project/startScenarioCapture.ts +24 -0
- package/analyzer-template/project/trackGeneratedFiles.ts +41 -0
- package/analyzer-template/project/writeMockDataTsx.ts +125 -4
- package/analyzer-template/project/writeScenarioComponents.ts +175 -45
- package/analyzer-template/project/writeUniversalMocks.ts +72 -10
- package/background/src/lib/virtualized/project/constructMockCode.js +158 -7
- package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +12 -0
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
- package/background/src/lib/virtualized/project/startScenarioCapture.js +18 -0
- package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
- package/background/src/lib/virtualized/project/trackGeneratedFiles.js +30 -0
- package/background/src/lib/virtualized/project/trackGeneratedFiles.js.map +1 -0
- package/background/src/lib/virtualized/project/writeMockDataTsx.js +95 -3
- package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
- package/background/src/lib/virtualized/project/writeScenarioComponents.js +130 -28
- package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
- package/background/src/lib/virtualized/project/writeUniversalMocks.js +59 -9
- package/background/src/lib/virtualized/project/writeUniversalMocks.js.map +1 -1
- package/codeyam-cli/scripts/apply-setup.js +288 -0
- package/codeyam-cli/scripts/apply-setup.js.map +1 -0
- package/codeyam-cli/scripts/extract-setup.js +130 -0
- package/codeyam-cli/scripts/extract-setup.js.map +1 -0
- package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js +238 -0
- package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js.map +1 -0
- package/codeyam-cli/src/cli.js +4 -0
- package/codeyam-cli/src/cli.js.map +1 -1
- package/codeyam-cli/src/codeyam-cli.js +0 -0
- package/codeyam-cli/src/commands/debug.js +190 -0
- package/codeyam-cli/src/commands/debug.js.map +1 -0
- package/codeyam-cli/src/commands/init.js +4 -23
- package/codeyam-cli/src/commands/init.js.map +1 -1
- package/codeyam-cli/src/commands/setup-sandbox.js +164 -0
- package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/cleanupAnalysisFiles.test.js +6 -6
- package/codeyam-cli/src/utils/__tests__/cleanupAnalysisFiles.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +8 -0
- package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
- package/codeyam-cli/src/utils/analysisRunner.js +4 -3
- package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
- package/codeyam-cli/src/utils/backgroundServer.js +25 -5
- package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/utils/cleanupAnalysisFiles.js +2 -2
- package/codeyam-cli/src/utils/cleanupAnalysisFiles.js.map +1 -1
- package/codeyam-cli/src/utils/fileWatcher.js +75 -5
- package/codeyam-cli/src/utils/fileWatcher.js.map +1 -1
- package/codeyam-cli/src/utils/queue/job.js +3 -2
- package/codeyam-cli/src/utils/queue/job.js.map +1 -1
- package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +4 -0
- package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
- package/codeyam-cli/src/utils/webappDetection.js +2 -1
- package/codeyam-cli/src/utils/webappDetection.js.map +1 -1
- package/codeyam-cli/src/webserver/app/lib/database.js +63 -2
- package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
- package/codeyam-cli/src/webserver/backgroundServer.js +15 -35
- package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-BFRmw1TF.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-Dh-FldQK.js → InteractivePreview-CRfBaL5B.js} +3 -3
- package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-BYVx9KFp.js +3 -0
- package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-Dp6DC845.js → LogViewer-CRcT5fOZ.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-Bual6h18.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/ScenarioPreview-Dj4Mm0AR.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-wtCIkGzq.js +5 -0
- package/codeyam-cli/src/webserver/build/client/assets/_index-Cjdlwanz.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-Dv3k2aEm.js +10 -0
- package/codeyam-cli/src/webserver/build/client/assets/chart-column-DOftqM9U.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/chunk-WWGJGFF6-De6i8FUT.js +26 -0
- package/codeyam-cli/src/webserver/build/client/assets/circle-alert-0WShkwuc.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/clock-DXui5oLF.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-DPFKgE96.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-1Z6D0fLM.js → entity._sha._-BxaXKsIx.js} +10 -10
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-BRD2FrH5.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-69R47Ffu.js +5 -0
- package/codeyam-cli/src/webserver/build/client/assets/{entityVersioning-DO2gCvXv.js → entityVersioning-Bk_YB1jM.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/entry.client-B5l8I1m3.js +5 -0
- package/codeyam-cli/src/webserver/build/client/assets/file-text-fb2mx25c.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/files-l_Eh9jQG.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/git-BCnOUEl9.js +12 -0
- package/codeyam-cli/src/webserver/build/client/assets/globals-BxkM6Up7.css +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/index-BgDzgbQW.js +8 -0
- package/codeyam-cli/src/webserver/build/client/assets/loader-circle-DE3HAwpF.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/manifest-5579bc45.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/root-o8NMI2bW.js +16 -0
- package/codeyam-cli/src/webserver/build/client/assets/search-BymWwY_X.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/settings-C7G4GDvW.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/settings-Dc4MlMpK.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/simulations-Duh3oShE.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-BBlyqxij.js → useLastLogLine-AlhS7g5F.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/useToast-XY00p4rI.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/zap-Dra7vum1.js +1 -0
- package/codeyam-cli/src/webserver/build/server/assets/index-Dpr7o3dP.js +1 -0
- package/codeyam-cli/src/webserver/build/server/assets/server-build-BM5nyvlV.js +166 -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/server.js +1 -1
- package/codeyam-cli/src/webserver/server.js.map +1 -1
- package/codeyam-cli/templates/codeyam-setup-skill.md +85 -94
- package/package.json +7 -10
- package/packages/ai/index.js +1 -2
- package/packages/ai/index.js.map +1 -1
- package/packages/ai/src/lib/analyzeScope.js +13 -0
- package/packages/ai/src/lib/analyzeScope.js.map +1 -1
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +6 -15
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
- package/packages/ai/src/lib/astScopes/methodSemantics.js +134 -0
- package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -1
- package/packages/ai/src/lib/astScopes/paths.js +28 -3
- package/packages/ai/src/lib/astScopes/paths.js.map +1 -1
- package/packages/ai/src/lib/astScopes/processExpression.js +111 -3
- package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
- package/packages/ai/src/lib/checkAllAttributes.js +1 -3
- package/packages/ai/src/lib/checkAllAttributes.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +1320 -396
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.js +137 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +1 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +112 -0
- package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/DebugTracer.js +176 -0
- package/packages/ai/src/lib/dataStructure/helpers/DebugTracer.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/PathManager.js +178 -0
- package/packages/ai/src/lib/dataStructure/helpers/PathManager.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js +138 -0
- package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/VisitedTracker.js +199 -0
- package/packages/ai/src/lib/dataStructure/helpers/VisitedTracker.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +14 -6
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/selectBestValue.js +62 -0
- package/packages/ai/src/lib/dataStructure/helpers/selectBestValue.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/uniqueIdUtils.js +90 -0
- package/packages/ai/src/lib/dataStructure/helpers/uniqueIdUtils.js.map +1 -0
- package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +22 -0
- package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +1 -1
- package/packages/ai/src/lib/generateChangesEntityDocumentation.js +19 -1
- package/packages/ai/src/lib/generateChangesEntityDocumentation.js.map +1 -1
- package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +51 -107
- package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +1 -1
- package/packages/ai/src/lib/generateChangesEntityScenarioData.js +55 -156
- package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
- package/packages/ai/src/lib/generateChangesEntityScenarios.js +79 -262
- package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
- package/packages/ai/src/lib/generateEntityDocumentation.js +15 -1
- package/packages/ai/src/lib/generateEntityDocumentation.js.map +1 -1
- package/packages/ai/src/lib/generateEntityKeyAttributes.js +53 -176
- package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +1 -1
- package/packages/ai/src/lib/generateEntityScenarioData.js +52 -152
- package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
- package/packages/ai/src/lib/generateEntityScenarios.js +88 -258
- package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
- package/packages/ai/src/lib/generateStatementAnalysis.js +46 -71
- package/packages/ai/src/lib/generateStatementAnalysis.js.map +1 -1
- package/packages/ai/src/lib/getConditionalUsagesFromCode.js +13 -8
- package/packages/ai/src/lib/getConditionalUsagesFromCode.js.map +1 -1
- package/packages/ai/src/lib/getLLMCallStats.js +0 -14
- package/packages/ai/src/lib/getLLMCallStats.js.map +1 -1
- package/packages/ai/src/lib/modelInfo.js +15 -0
- package/packages/ai/src/lib/modelInfo.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +36 -3
- package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityDocumentationGenerator.js +8 -33
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityDocumentationGenerator.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js +35 -41
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +59 -72
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateEntityDocumentationGenerator.js +8 -27
- package/packages/ai/src/lib/promptGenerators/generateEntityDocumentationGenerator.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +24 -27
- package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +21 -22
- package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
- package/packages/ai/src/lib/types/index.js +2 -0
- package/packages/ai/src/lib/types/index.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/analyze/src/lib/FileAnalyzer.js +45 -5
- package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js +191 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getDeclaredEntityNode.js +16 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getDeclaredEntityNode.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/index.js +2 -0
- package/packages/analyze/src/lib/asts/sourceFiles/index.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +6 -8
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +5 -1
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
- package/packages/analyze/src/lib/files/analyzeChange.js +21 -9
- package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
- package/packages/analyze/src/lib/files/analyzeEntity.js +10 -4
- package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
- package/packages/analyze/src/lib/files/analyzeInitial.js +21 -9
- package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +6 -1
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +9 -1
- package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +5 -1
- package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +9 -1
- package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +16 -7
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
- package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +28 -21
- package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
- package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js +18 -11
- package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js.map +1 -1
- package/packages/generate/src/lib/scenarioComponent.js +5 -3
- package/packages/generate/src/lib/scenarioComponent.js.map +1 -1
- package/packages/utils/index.js +2 -0
- package/packages/utils/index.js.map +1 -1
- package/packages/utils/src/lib/Semaphore.js +40 -0
- package/packages/utils/src/lib/Semaphore.js.map +1 -0
- package/packages/utils/src/lib/frameworks/getNextRoutePath.js +5 -3
- package/packages/utils/src/lib/frameworks/getNextRoutePath.js.map +1 -1
- package/packages/utils/src/lib/frameworks/getRemixRoutePath.js +2 -1
- package/packages/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -1
- package/packages/utils/src/lib/frameworks/nextRouteFileNameToRoute.js +2 -1
- package/packages/utils/src/lib/frameworks/nextRouteFileNameToRoute.js.map +1 -1
- package/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +1 -0
- package/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -1
- package/packages/utils/src/lib/frameworks/sanitizeNextRouteSegments.js +32 -0
- package/packages/utils/src/lib/frameworks/sanitizeNextRouteSegments.js.map +1 -0
- package/analyzer-template/packages/ai/src/lib/generateEntityDataMap.ts +0 -375
- package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-GqWwt5wG.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-p0fuyqGQ.js +0 -3
- package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-xwuhwsZH.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/ScenarioPreview-Bl2IRh55.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-M2QuSHKC.js +0 -5
- package/codeyam-cli/src/webserver/build/client/assets/_index-CAVtep9Q.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-CLmzsLsT.js +0 -10
- package/codeyam-cli/src/webserver/build/client/assets/chart-column-B2I7jQx2.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/circle-alert-GwwOAbhw.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/components-CAx5ONX_.js +0 -40
- package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-CgyOwWip.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-DGy3zrli.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-ChAdTrrU.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-D9L7267w.js +0 -5
- package/codeyam-cli/src/webserver/build/client/assets/entry.client-C6FRgjPr.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/files-C3-cQjgv.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/git-Dp4EB9nv.js +0 -12
- package/codeyam-cli/src/webserver/build/client/assets/globals-Da3jt49-.css +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/loader-circle-DN7Vr40D.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-172a4629.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/root-COyVTsPq.js +0 -16
- package/codeyam-cli/src/webserver/build/client/assets/search-CvyP_1Lo.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/settings-Hbf8b7J_.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/settings-MZc4XdmE.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/simulations-BMBi0VzO.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/useToast-C_VxoXTh.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/zap-B4gsLUZQ.js +0 -1
- package/codeyam-cli/src/webserver/build/client/cy-logo-cli.svg +0 -13
- package/codeyam-cli/src/webserver/build/server/assets/index-eAULANMV.js +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/server-build-lutv16q5.js +0 -161
- package/codeyam-cli/src/webserver/public/cy-logo-cli.svg +0 -13
- package/packages/ai/src/lib/generateEntityDataMap.js +0 -335
- package/packages/ai/src/lib/generateEntityDataMap.js.map +0 -1
- package/packages/ai/src/lib/promptGenerators/generateEntityDataMapGenerator.js +0 -17
- package/packages/ai/src/lib/promptGenerators/generateEntityDataMapGenerator.js.map +0 -1
|
@@ -16,7 +16,12 @@ import { AI } from '~codeyam/ai';
|
|
|
16
16
|
import extractDiffLines from './extractDiffLines';
|
|
17
17
|
import analyzeCodeChange from './analyzeCodeChange';
|
|
18
18
|
import relevantDiffPart from './relevantDiffPart';
|
|
19
|
-
import {
|
|
19
|
+
import {
|
|
20
|
+
awsLog,
|
|
21
|
+
awsLogDebugLevel,
|
|
22
|
+
pushAnalysisError,
|
|
23
|
+
Semaphore,
|
|
24
|
+
} from '~codeyam/utils';
|
|
20
25
|
|
|
21
26
|
export interface AnalyzeChangeArgs {
|
|
22
27
|
previousAnalysis: Analysis;
|
|
@@ -29,6 +34,8 @@ export interface AnalyzeChangeArgs {
|
|
|
29
34
|
steps?: string[];
|
|
30
35
|
updateProgress?: (detail: string) => void;
|
|
31
36
|
model: AI.Model;
|
|
37
|
+
/** Semaphore to serialize CPU-intensive Structure phase */
|
|
38
|
+
structureSemaphore?: Semaphore;
|
|
32
39
|
}
|
|
33
40
|
|
|
34
41
|
export default async function analyzeChange({
|
|
@@ -42,6 +49,7 @@ export default async function analyzeChange({
|
|
|
42
49
|
steps,
|
|
43
50
|
updateProgress,
|
|
44
51
|
model,
|
|
52
|
+
structureSemaphore,
|
|
45
53
|
}: AnalyzeChangeArgs) {
|
|
46
54
|
analysis.entity = entity;
|
|
47
55
|
awsLog('CodeYam: Analyzing change entity', {
|
|
@@ -79,24 +87,35 @@ export default async function analyzeChange({
|
|
|
79
87
|
});
|
|
80
88
|
}
|
|
81
89
|
|
|
90
|
+
// Structure phase: CPU-intensive, serialize via semaphore if provided
|
|
82
91
|
if (!steps || steps.includes(Step.Structure)) {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
92
|
+
if (structureSemaphore) {
|
|
93
|
+
await structureSemaphore.acquire();
|
|
94
|
+
}
|
|
95
|
+
try {
|
|
96
|
+
awsLogDebugLevel(
|
|
97
|
+
1,
|
|
98
|
+
`Merging dependent data structures for ${entity.name}...`,
|
|
99
|
+
);
|
|
87
100
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
101
|
+
const { step: dataStructureStep } = await recordStep(
|
|
102
|
+
'generateDataStructure',
|
|
103
|
+
() =>
|
|
104
|
+
generateDataStructure({
|
|
105
|
+
entity,
|
|
106
|
+
dependentAnalyses,
|
|
107
|
+
analysis,
|
|
108
|
+
}),
|
|
109
|
+
);
|
|
110
|
+
analysis.status.steps.push(dataStructureStep);
|
|
111
|
+
} finally {
|
|
112
|
+
if (structureSemaphore) {
|
|
113
|
+
structureSemaphore.release();
|
|
114
|
+
}
|
|
115
|
+
}
|
|
98
116
|
}
|
|
99
117
|
|
|
118
|
+
// KeyAttributes phase: I/O-bound LLM call, can run in parallel with other entities' Structure
|
|
100
119
|
if (!steps || steps.includes(Step.KeyAttributes)) {
|
|
101
120
|
awsLogDebugLevel(1, `Determining key attributes for ${entity.name}...`);
|
|
102
121
|
|
|
@@ -31,7 +31,12 @@ import relevantDiffPart from './relevantDiffPart';
|
|
|
31
31
|
import { Step } from './enums/steps';
|
|
32
32
|
import { ImmutableAnalysisContext } from '../analysisContext';
|
|
33
33
|
import generateAnalyzedTreeSha from './analyze/generateAnalyzedTreeSha';
|
|
34
|
-
import {
|
|
34
|
+
import {
|
|
35
|
+
awsLog,
|
|
36
|
+
awsLogDebugLevel,
|
|
37
|
+
pushAnalysisError,
|
|
38
|
+
Semaphore,
|
|
39
|
+
} from '~codeyam/utils';
|
|
35
40
|
|
|
36
41
|
export interface AnalyzeEntityArgs {
|
|
37
42
|
project: Project;
|
|
@@ -50,6 +55,8 @@ export interface AnalyzeEntityArgs {
|
|
|
50
55
|
forceAll?: boolean;
|
|
51
56
|
updateProgress?: (detail: string) => void;
|
|
52
57
|
modelString?: string;
|
|
58
|
+
/** Semaphore to serialize CPU-intensive Structure phase */
|
|
59
|
+
structureSemaphore?: Semaphore;
|
|
53
60
|
}
|
|
54
61
|
|
|
55
62
|
/**
|
|
@@ -77,6 +84,7 @@ export default async function analyzeEntity({
|
|
|
77
84
|
forceAll,
|
|
78
85
|
updateProgress,
|
|
79
86
|
modelString,
|
|
87
|
+
structureSemaphore,
|
|
80
88
|
}: AnalyzeEntityArgs): Promise<{
|
|
81
89
|
analysis: Analysis;
|
|
82
90
|
dependentAnalyses?: ReadonlyAnalysisMap;
|
|
@@ -476,6 +484,7 @@ export default async function analyzeEntity({
|
|
|
476
484
|
steps,
|
|
477
485
|
updateProgress,
|
|
478
486
|
model,
|
|
487
|
+
structureSemaphore,
|
|
479
488
|
})
|
|
480
489
|
: analyzeInitial({
|
|
481
490
|
analysis,
|
|
@@ -485,6 +494,7 @@ export default async function analyzeEntity({
|
|
|
485
494
|
steps,
|
|
486
495
|
updateProgress,
|
|
487
496
|
model,
|
|
497
|
+
structureSemaphore,
|
|
488
498
|
}),
|
|
489
499
|
]);
|
|
490
500
|
|
|
@@ -498,8 +508,12 @@ export default async function analyzeEntity({
|
|
|
498
508
|
analysis = analysisResult.analysis;
|
|
499
509
|
|
|
500
510
|
analysis.completedAt = new Date().toISOString();
|
|
501
|
-
// Don't set analyzedTreeSha when
|
|
502
|
-
|
|
511
|
+
// Don't set analyzedTreeSha when:
|
|
512
|
+
// 1. ONLY_DATA_STRUCTURE=true - so full analysis can re-analyze later
|
|
513
|
+
// 2. analyzeAsDependency=true - dependency analyses only generate Structure+KeyAttributes,
|
|
514
|
+
// not scenarios. Leaving analyzedTreeSha unset allows partial analysis detection to work
|
|
515
|
+
// when the entity is later analyzed directly.
|
|
516
|
+
if (process.env.ONLY_DATA_STRUCTURE !== 'true' && !analyzeAsDependency) {
|
|
503
517
|
analysis.analyzedTreeSha = generateAnalyzedTreeSha(analysis);
|
|
504
518
|
}
|
|
505
519
|
} catch (error) {
|
|
@@ -12,7 +12,12 @@ import {
|
|
|
12
12
|
type ReadonlyAnalysisMap,
|
|
13
13
|
} from '~codeyam/types';
|
|
14
14
|
import { upsertAnalysesWithScenarios } from '~codeyam/supabase';
|
|
15
|
-
import {
|
|
15
|
+
import {
|
|
16
|
+
awsLog,
|
|
17
|
+
awsLogDebugLevel,
|
|
18
|
+
pushAnalysisError,
|
|
19
|
+
Semaphore,
|
|
20
|
+
} from '~codeyam/utils';
|
|
16
21
|
import generateKeyAttributes from './scenarios/generateKeyAttributes';
|
|
17
22
|
|
|
18
23
|
export interface AnalyzeInitialArgs {
|
|
@@ -23,6 +28,8 @@ export interface AnalyzeInitialArgs {
|
|
|
23
28
|
steps?: string[];
|
|
24
29
|
updateProgress?: (detail: string) => void;
|
|
25
30
|
model: AI.Model;
|
|
31
|
+
/** Semaphore to serialize CPU-intensive Structure phase */
|
|
32
|
+
structureSemaphore?: Semaphore;
|
|
26
33
|
}
|
|
27
34
|
|
|
28
35
|
export default async function analyzeInitial({
|
|
@@ -33,6 +40,7 @@ export default async function analyzeInitial({
|
|
|
33
40
|
steps,
|
|
34
41
|
updateProgress,
|
|
35
42
|
model,
|
|
43
|
+
structureSemaphore,
|
|
36
44
|
}: AnalyzeInitialArgs) {
|
|
37
45
|
analysis.entity = entity;
|
|
38
46
|
awsLog('CodeYam: Analyzing initial entity', {
|
|
@@ -47,22 +55,32 @@ export default async function analyzeInitial({
|
|
|
47
55
|
});
|
|
48
56
|
|
|
49
57
|
try {
|
|
58
|
+
// Structure phase: CPU-intensive, serialize via semaphore if provided
|
|
50
59
|
if (!steps || steps.includes(Step.Structure)) {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
60
|
+
if (structureSemaphore) {
|
|
61
|
+
await structureSemaphore.acquire();
|
|
62
|
+
}
|
|
63
|
+
try {
|
|
64
|
+
awsLogDebugLevel(
|
|
65
|
+
1,
|
|
66
|
+
`Merging dependent data structures for ${entity.name}...`,
|
|
67
|
+
);
|
|
68
|
+
|
|
69
|
+
const { step: dataStructureStep } = await recordStep(
|
|
70
|
+
'generateDataStructure',
|
|
71
|
+
() =>
|
|
72
|
+
generateDataStructure({
|
|
73
|
+
entity,
|
|
74
|
+
dependentAnalyses,
|
|
75
|
+
analysis,
|
|
76
|
+
}),
|
|
77
|
+
);
|
|
78
|
+
analysis.status.steps.push(dataStructureStep);
|
|
79
|
+
} finally {
|
|
80
|
+
if (structureSemaphore) {
|
|
81
|
+
structureSemaphore.release();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
66
84
|
}
|
|
67
85
|
|
|
68
86
|
// Short-circuit for test mocking: only generate data structure, skip key attributes and scenarios
|
|
@@ -73,6 +91,7 @@ export default async function analyzeInitial({
|
|
|
73
91
|
return { analysis };
|
|
74
92
|
}
|
|
75
93
|
|
|
94
|
+
// KeyAttributes phase: I/O-bound LLM call, can run in parallel with other entities' Structure
|
|
76
95
|
if (!steps || steps.includes(Step.KeyAttributes)) {
|
|
77
96
|
awsLogDebugLevel(1, `Determining key attributes for ${entity.name}...`);
|
|
78
97
|
|
|
@@ -54,8 +54,14 @@ export default function generateDataStructure({
|
|
|
54
54
|
const nonMockedDependentAnalyses: ReadonlyAnalysisMap =
|
|
55
55
|
allImportedExports.reduce((acc, importedExport) => {
|
|
56
56
|
if (importedExport.isMocked) return acc;
|
|
57
|
+
// Use resolvedFilePath when available (for re-exports from index files)
|
|
58
|
+
// to find the actual analysis of the component
|
|
59
|
+
const lookupPath =
|
|
60
|
+
('resolvedFilePath' in importedExport &&
|
|
61
|
+
importedExport.resolvedFilePath) ||
|
|
62
|
+
importedExport.filePath;
|
|
57
63
|
const relevantDependencyAnalysis =
|
|
58
|
-
dependentAnalyses[
|
|
64
|
+
dependentAnalyses[lookupPath]?.[importedExport.name];
|
|
59
65
|
|
|
60
66
|
if (!relevantDependencyAnalysis) {
|
|
61
67
|
// console.info(
|
|
@@ -8,6 +8,7 @@ import measureAndReportExecutionTime from '../../utils/measureAndReportExecution
|
|
|
8
8
|
import { AI, generateEntityKeyAttributes } from '~codeyam/ai';
|
|
9
9
|
import { awsLog } from '~codeyam/utils';
|
|
10
10
|
import { gatherRelevantDependentKeyAttributes } from '~codeyam/ai';
|
|
11
|
+
import { gatherDataForMocks } from './generateScenarioData';
|
|
11
12
|
|
|
12
13
|
export interface GenerateEntityKeyAttributesArgs {
|
|
13
14
|
entity: Entity;
|
|
@@ -28,7 +29,14 @@ export default async function generateKeyAttributes({
|
|
|
28
29
|
}: GenerateEntityKeyAttributesArgs): Promise<void> {
|
|
29
30
|
if (!['visual', 'library'].includes(entity.entityType)) return;
|
|
30
31
|
|
|
31
|
-
|
|
32
|
+
// Merge direct dataForMocks with recursively gathered data from dependencies
|
|
33
|
+
const structure = {
|
|
34
|
+
arguments: analysis.metadata.scenariosDataStructure?.arguments ?? [],
|
|
35
|
+
dataForMocks: {
|
|
36
|
+
...(analysis.metadata.scenariosDataStructure?.dataForMocks ?? {}),
|
|
37
|
+
...gatherDataForMocks(analysis, dependentAnalyses),
|
|
38
|
+
},
|
|
39
|
+
};
|
|
32
40
|
|
|
33
41
|
awsLog(`🔮 Generating ${error ? 'error ' : ''}scenarios for`, {
|
|
34
42
|
filePath: entity.filePath,
|
|
@@ -104,8 +104,13 @@ export function gatherDataForMocks(
|
|
|
104
104
|
// regardless of whether we found a relevantKey above.
|
|
105
105
|
// This ensures transitive dependencies are included.
|
|
106
106
|
// For example: Activity -> CurrentActivityTab -> useLastLogLine
|
|
107
|
+
// Use resolvedFilePath when available (for re-exports from index files)
|
|
108
|
+
const lookupPath =
|
|
109
|
+
('resolvedFilePath' in importedExport &&
|
|
110
|
+
importedExport.resolvedFilePath) ||
|
|
111
|
+
importedExport.filePath;
|
|
107
112
|
const dependentAnalysis =
|
|
108
|
-
dependentAnalyses?.[
|
|
113
|
+
dependentAnalyses?.[lookupPath]?.[importedExport.name];
|
|
109
114
|
|
|
110
115
|
if (dependentAnalysis && !analysesGathered.has(dependentAnalysis.id)) {
|
|
111
116
|
analysesGathered.add(dependentAnalysis.id);
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
import measureAndReportExecutionTime from '../../utils/measureAndReportExecutionTime';
|
|
8
8
|
import { AI, generateEntityScenarios } from '~codeyam/ai';
|
|
9
9
|
import { awsLog } from '~codeyam/utils';
|
|
10
|
+
import { gatherDataForMocks } from './generateScenarioData';
|
|
10
11
|
|
|
11
12
|
export interface GenerateScenariosArgs {
|
|
12
13
|
entity: Entity;
|
|
@@ -27,7 +28,14 @@ export default async function generateScenarios({
|
|
|
27
28
|
}: GenerateScenariosArgs): Promise<void> {
|
|
28
29
|
if (!['visual', 'library'].includes(entity.entityType)) return;
|
|
29
30
|
|
|
30
|
-
|
|
31
|
+
// Merge direct dataForMocks with recursively gathered data from dependencies
|
|
32
|
+
const structure = {
|
|
33
|
+
arguments: analysis.metadata.scenariosDataStructure?.arguments ?? [],
|
|
34
|
+
dataForMocks: {
|
|
35
|
+
...(analysis.metadata.scenariosDataStructure?.dataForMocks ?? {}),
|
|
36
|
+
...gatherDataForMocks(analysis, dependentAnalyses),
|
|
37
|
+
},
|
|
38
|
+
};
|
|
31
39
|
|
|
32
40
|
awsLog(`🔮 Generating ${error ? 'error ' : ''}scenarios for`, {
|
|
33
41
|
filePath: entity.filePath,
|
package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts
CHANGED
|
@@ -696,13 +696,23 @@ export default function mergeInDependentDataStructure({
|
|
|
696
696
|
});
|
|
697
697
|
|
|
698
698
|
// First, normalize any returnValue. paths that were written by equivalency processing
|
|
699
|
-
// to the standard functionName().functionCallReturnValue. format
|
|
699
|
+
// to the standard functionName().functionCallReturnValue. format.
|
|
700
|
+
// Also delete returnValue[] artifact paths that don't represent actual array structure.
|
|
700
701
|
const pathsToNormalize: [string, string][] = [];
|
|
702
|
+
const pathsToDelete: string[] = [];
|
|
701
703
|
for (const path in depSchema.returnValueSchema) {
|
|
702
704
|
if (path === 'returnValue' || path.startsWith('returnValue.')) {
|
|
703
705
|
pathsToNormalize.push([path, depSchema.returnValueSchema[path]]);
|
|
706
|
+
} else if (path.match(/^returnValue\[\d*\]/)) {
|
|
707
|
+
// Delete returnValue[] and returnValue[n] paths - these are artifacts from
|
|
708
|
+
// equivalency processing and don't represent the actual structure of mocked dependencies.
|
|
709
|
+
// The correct structure comes from srcSchema (dependencySchemas).
|
|
710
|
+
pathsToDelete.push(path);
|
|
704
711
|
}
|
|
705
712
|
}
|
|
713
|
+
for (const path of pathsToDelete) {
|
|
714
|
+
delete depSchema.returnValueSchema[path];
|
|
715
|
+
}
|
|
706
716
|
for (const [path, value] of pathsToNormalize) {
|
|
707
717
|
delete depSchema.returnValueSchema[path];
|
|
708
718
|
const normalizedPath =
|
|
@@ -734,9 +744,8 @@ export default function mergeInDependentDataStructure({
|
|
|
734
744
|
`${dependency.name}().functionCallReturnValue.`,
|
|
735
745
|
);
|
|
736
746
|
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
}
|
|
747
|
+
// Always write srcSchema values - they take precedence over equivalency-derived values
|
|
748
|
+
depSchema.returnValueSchema[normalizedPath] = value;
|
|
740
749
|
continue;
|
|
741
750
|
}
|
|
742
751
|
|
|
@@ -744,9 +753,8 @@ export default function mergeInDependentDataStructure({
|
|
|
744
753
|
// These are needed for constructMockCode to build the proper mock data hierarchy
|
|
745
754
|
// Example: supabase.auth.getSession().functionCallReturnValue.data.session
|
|
746
755
|
if (path.includes('.functionCallReturnValue')) {
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
}
|
|
756
|
+
// Always write srcSchema values - they take precedence over equivalency-derived values
|
|
757
|
+
depSchema.returnValueSchema[path] = value;
|
|
750
758
|
continue;
|
|
751
759
|
}
|
|
752
760
|
|
|
@@ -11,10 +11,10 @@
|
|
|
11
11
|
"author": "",
|
|
12
12
|
"license": "ISC",
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@aws-sdk/client-codebuild": "^3.
|
|
14
|
+
"@aws-sdk/client-codebuild": "^3.948.0",
|
|
15
15
|
"@aws-sdk/client-cloudwatch-logs": "^3.940.0",
|
|
16
16
|
"@aws-sdk/client-dynamodb": "^3.899.0",
|
|
17
|
-
"@aws-sdk/client-ecr": "^3.
|
|
17
|
+
"@aws-sdk/client-ecr": "^3.948.0",
|
|
18
18
|
"@aws-sdk/client-ecs": "^3.937.0",
|
|
19
19
|
"@aws-sdk/client-s3": "^3.899.0",
|
|
20
20
|
"@aws-sdk/client-sqs": "^3.940.0",
|
|
@@ -39,7 +39,6 @@ export default function componentScenarioPageNext({
|
|
|
39
39
|
type ReactNode,
|
|
40
40
|
type ChangeEvent
|
|
41
41
|
} from 'react';
|
|
42
|
-
import Head from 'next/head';
|
|
43
42
|
${analysis.scenarios?.length > 0 && `import { scenarios } from "${relativeMocksDir}/MockData_${safeFileName(scenario.name)}";`}
|
|
44
43
|
${getComponentImportStatement({
|
|
45
44
|
file,
|
|
@@ -58,17 +57,7 @@ ${getComponentImportStatement({
|
|
|
58
57
|
// Inject image interception code at module level to run before any rendering
|
|
59
58
|
${getImageReplacementCode()}
|
|
60
59
|
|
|
61
|
-
|
|
62
|
-
const NextHead = () => {
|
|
63
|
-
return (
|
|
64
|
-
<Head>
|
|
65
|
-
<title>${fileName}: ${escapeQuotes(scenario.name)} CodeYam Demo v${VERSION}</title>
|
|
66
|
-
<meta name="description" content="This is a demo of the ${fileName} component" />
|
|
67
|
-
</Head>
|
|
68
|
-
)
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
function Scenario({ name, width, children }: { name: string, width: string, children: ReactNode }) {
|
|
60
|
+
function Scenario({ name, width, height, children }: { name: string, width: string, height: string, children: ReactNode }) {
|
|
72
61
|
|
|
73
62
|
useEffect(() => {
|
|
74
63
|
if (typeof window === 'undefined') return;
|
|
@@ -89,14 +78,14 @@ function Scenario({ name, width, children }: { name: string, width: string, chil
|
|
|
89
78
|
return Math.max(100, bodyHeight, htmlHeight, scrollHeight);
|
|
90
79
|
}
|
|
91
80
|
|
|
92
|
-
const
|
|
93
|
-
parent.postMessage({ type: 'codeyam-resize', name, height }, '*');
|
|
81
|
+
const calculatedHeight = calculateHeight();
|
|
82
|
+
parent.postMessage({ type: 'codeyam-resize', name, height: calculatedHeight }, '*');
|
|
94
83
|
|
|
95
84
|
const eventListener = (event) => {
|
|
96
85
|
if (event.data.name === name) {
|
|
97
86
|
if (event.data.type === 'codeyam-respond') {
|
|
98
|
-
const
|
|
99
|
-
parent.postMessage({ type: 'codeyam-resize', name, height }, '*');
|
|
87
|
+
const calculatedHeight = calculateHeight();
|
|
88
|
+
parent.postMessage({ type: 'codeyam-resize', name, height: calculatedHeight }, '*');
|
|
100
89
|
}
|
|
101
90
|
}
|
|
102
91
|
};
|
|
@@ -108,9 +97,9 @@ function Scenario({ name, width, children }: { name: string, width: string, chil
|
|
|
108
97
|
return (
|
|
109
98
|
<div className='w-full flex items-center justify-center'>
|
|
110
99
|
<div id='component' style={{
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
100
|
+
minWidth: width !== 'auto' ? \`min(\${width}, 100vw)\` : undefined,
|
|
101
|
+
height: height !== 'auto' ? height : undefined,
|
|
102
|
+
minHeight: height !== 'auto' ? height : undefined,
|
|
114
103
|
display: 'block',
|
|
115
104
|
padding: '6px'
|
|
116
105
|
}}>
|
|
@@ -121,13 +110,31 @@ function Scenario({ name, width, children }: { name: string, width: string, chil
|
|
|
121
110
|
}
|
|
122
111
|
|
|
123
112
|
export default function Index() {
|
|
113
|
+
const [searchParams] = useState(() =>
|
|
114
|
+
typeof window !== 'undefined'
|
|
115
|
+
? new URLSearchParams(window.location.search)
|
|
116
|
+
: new URLSearchParams()
|
|
117
|
+
);
|
|
118
|
+
const widthOverride = searchParams.get('width');
|
|
119
|
+
const heightOverride = searchParams.get('height') || 'auto';
|
|
120
|
+
|
|
121
|
+
useEffect(() => {
|
|
122
|
+
document.title = "${fileName}: ${escapeQuotes(scenario.name)} CodeYam Demo v${VERSION}";
|
|
123
|
+
let metaDesc = document.querySelector('meta[name="description"]');
|
|
124
|
+
if (!metaDesc) {
|
|
125
|
+
metaDesc = document.createElement('meta');
|
|
126
|
+
metaDesc.setAttribute('name', 'description');
|
|
127
|
+
document.head.appendChild(metaDesc);
|
|
128
|
+
}
|
|
129
|
+
metaDesc.setAttribute('content', "This is a demo of the ${fileName} component");
|
|
130
|
+
}, []);
|
|
131
|
+
|
|
124
132
|
${getIFrameMessageListenerCode({ scenarioName: scenario.name })}
|
|
125
133
|
${getNextJsErrorClosingCode()}
|
|
126
134
|
|
|
127
135
|
return (
|
|
128
136
|
<div className='flex flex-col justify-center items-center h-screen' data-version={version}>
|
|
129
|
-
|
|
130
|
-
${scenarioComponent(entity, analysis, scenario)}
|
|
137
|
+
${scenarioComponent(entity, analysis, scenario, { useOverrides: true })}
|
|
131
138
|
</div>
|
|
132
139
|
);
|
|
133
140
|
}`;
|
|
@@ -18,8 +18,6 @@ export default function componentScenarioPageRemix(
|
|
|
18
18
|
mocksDir: string,
|
|
19
19
|
) {
|
|
20
20
|
return `import { ReactNode, useEffect, useCallback, useState } from 'react';
|
|
21
|
-
import type { MetaFunction } from "@remix-run/node";
|
|
22
|
-
import { useSearchParams } from "@remix-run/react";
|
|
23
21
|
${analysis.scenarios?.length > 0 && `import { scenarios } from "${mocksDir}/MockData_${safeFileName(scenario.name)}";`}
|
|
24
22
|
${getComponentImportStatement({
|
|
25
23
|
file,
|
|
@@ -38,13 +36,6 @@ ${getComponentImportStatement({
|
|
|
38
36
|
// Inject image interception code at module level to run before any rendering
|
|
39
37
|
${getImageReplacementCode()}
|
|
40
38
|
|
|
41
|
-
export const meta: MetaFunction = () => {
|
|
42
|
-
return [
|
|
43
|
-
{ title: "${file.name}: ${escapeQuotes(scenario.name)} CodeYam Demo v${VERSION}" },
|
|
44
|
-
{ name: "description", content: "This is a demo of the ${file.name} component under the scenario: ${escapeQuotes(scenario.description)}" },
|
|
45
|
-
];
|
|
46
|
-
};
|
|
47
|
-
|
|
48
39
|
function Scenario({ name, width, height, children }: { name: string, width: string, height: string, children: ReactNode }) {
|
|
49
40
|
|
|
50
41
|
useEffect(() => {
|
|
@@ -85,7 +76,7 @@ function Scenario({ name, width, height, children }: { name: string, width: stri
|
|
|
85
76
|
return (
|
|
86
77
|
<div className='w-full flex items-center justify-center'>
|
|
87
78
|
<div id='component' style={{
|
|
88
|
-
minWidth: \`min(\${width}, 100vw)
|
|
79
|
+
minWidth: width !== 'auto' ? \`min(\${width}, 100vw)\` : undefined,
|
|
89
80
|
height: height !== 'auto' ? height : undefined,
|
|
90
81
|
minHeight: height !== 'auto' ? height : undefined,
|
|
91
82
|
display: 'block',
|
|
@@ -98,9 +89,25 @@ function Scenario({ name, width, height, children }: { name: string, width: stri
|
|
|
98
89
|
}
|
|
99
90
|
|
|
100
91
|
export default function Index() {
|
|
101
|
-
const [searchParams] =
|
|
92
|
+
const [searchParams] = useState(() =>
|
|
93
|
+
typeof window !== 'undefined'
|
|
94
|
+
? new URLSearchParams(window.location.search)
|
|
95
|
+
: new URLSearchParams()
|
|
96
|
+
);
|
|
102
97
|
const widthOverride = searchParams.get('width');
|
|
103
98
|
const heightOverride = searchParams.get('height') || 'auto';
|
|
99
|
+
|
|
100
|
+
useEffect(() => {
|
|
101
|
+
document.title = "${file.name}: ${escapeQuotes(scenario.name)} CodeYam Demo v${VERSION}";
|
|
102
|
+
let metaDesc = document.querySelector('meta[name="description"]');
|
|
103
|
+
if (!metaDesc) {
|
|
104
|
+
metaDesc = document.createElement('meta');
|
|
105
|
+
metaDesc.setAttribute('name', 'description');
|
|
106
|
+
document.head.appendChild(metaDesc);
|
|
107
|
+
}
|
|
108
|
+
metaDesc.setAttribute('content', "This is a demo of the ${file.name} component under the scenario: ${escapeQuotes(scenario.description)}");
|
|
109
|
+
}, []);
|
|
110
|
+
|
|
104
111
|
${getIFrameMessageListenerCode({ scenarioName: scenario.name })}
|
|
105
112
|
|
|
106
113
|
return (
|
|
@@ -2,6 +2,9 @@ import type { Analysis, Entity, Scenario } from '~codeyam/types';
|
|
|
2
2
|
import { safeFileName } from '~codeyam/utils';
|
|
3
3
|
import handleWrappers from './handleWrappers';
|
|
4
4
|
|
|
5
|
+
// Escape double quotes for use in JavaScript string literals
|
|
6
|
+
const escapeForJsString = (s: string): string => s.replace(/"/g, '\\"');
|
|
7
|
+
|
|
5
8
|
const dimensionString = (dimension?: string | number) => {
|
|
6
9
|
if (!dimension) return 'auto';
|
|
7
10
|
if (typeof dimension === 'string') {
|
|
@@ -83,9 +86,9 @@ export default function scenarioComponent(
|
|
|
83
86
|
.map((name) =>
|
|
84
87
|
isNaN(parseInt(name))
|
|
85
88
|
? name.endsWith(')')
|
|
86
|
-
? `${name.split('(')[0]}={() => _getScenarioProps({ argumentIndex: 0, propName: "${name}" }) as any}`
|
|
87
|
-
: `${name}={_getScenarioProps({ argumentIndex: 0, propName: "${name}" }) as any}`
|
|
88
|
-
: `positionalArgument_${name}={_getScenarioProps({ argumentIndex: 0, propName: "positionalArgument_${name}" }) as any}`,
|
|
89
|
+
? `${name.split('(')[0]}={() => _getScenarioProps({ argumentIndex: 0, propName: "${escapeForJsString(name)}" }) as any}`
|
|
90
|
+
: `${name}={_getScenarioProps({ argumentIndex: 0, propName: "${escapeForJsString(name)}" }) as any}`
|
|
91
|
+
: `positionalArgument_${name}={_getScenarioProps({ argumentIndex: 0, propName: "positionalArgument_${escapeForJsString(name)}" }) as any}`,
|
|
89
92
|
)
|
|
90
93
|
.join(argsSpacing)}\n >`
|
|
91
94
|
: `>`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"componentScenarioPageNext.d.ts","sourceRoot":"","sources":["../../../../../../generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAW5E,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,EAChD,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,WAAW,EACX,OAAO,EACP,QAAQ,EACR,gBAAgB,GACjB,EAAE;IACD,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,QAAQ,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,
|
|
1
|
+
{"version":3,"file":"componentScenarioPageNext.d.ts","sourceRoot":"","sources":["../../../../../../generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAW5E,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,EAChD,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,WAAW,EACX,OAAO,EACP,QAAQ,EACR,gBAAgB,GACjB,EAAE;IACD,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,QAAQ,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,UAiHA"}
|
|
@@ -19,7 +19,6 @@ export default function componentScenarioPageNext({ file, entity, analysis, curr
|
|
|
19
19
|
type ReactNode,
|
|
20
20
|
type ChangeEvent
|
|
21
21
|
} from 'react';
|
|
22
|
-
import Head from 'next/head';
|
|
23
22
|
${analysis.scenarios?.length > 0 && `import { scenarios } from "${relativeMocksDir}/MockData_${safeFileName(scenario.name)}";`}
|
|
24
23
|
${getComponentImportStatement({
|
|
25
24
|
file,
|
|
@@ -37,17 +36,7 @@ ${getComponentImportStatement({
|
|
|
37
36
|
// Inject image interception code at module level to run before any rendering
|
|
38
37
|
${getImageReplacementCode()}
|
|
39
38
|
|
|
40
|
-
|
|
41
|
-
const NextHead = () => {
|
|
42
|
-
return (
|
|
43
|
-
<Head>
|
|
44
|
-
<title>${fileName}: ${escapeQuotes(scenario.name)} CodeYam Demo v${VERSION}</title>
|
|
45
|
-
<meta name="description" content="This is a demo of the ${fileName} component" />
|
|
46
|
-
</Head>
|
|
47
|
-
)
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
function Scenario({ name, width, children }: { name: string, width: string, children: ReactNode }) {
|
|
39
|
+
function Scenario({ name, width, height, children }: { name: string, width: string, height: string, children: ReactNode }) {
|
|
51
40
|
|
|
52
41
|
useEffect(() => {
|
|
53
42
|
if (typeof window === 'undefined') return;
|
|
@@ -68,14 +57,14 @@ function Scenario({ name, width, children }: { name: string, width: string, chil
|
|
|
68
57
|
return Math.max(100, bodyHeight, htmlHeight, scrollHeight);
|
|
69
58
|
}
|
|
70
59
|
|
|
71
|
-
const
|
|
72
|
-
parent.postMessage({ type: 'codeyam-resize', name, height }, '*');
|
|
60
|
+
const calculatedHeight = calculateHeight();
|
|
61
|
+
parent.postMessage({ type: 'codeyam-resize', name, height: calculatedHeight }, '*');
|
|
73
62
|
|
|
74
63
|
const eventListener = (event) => {
|
|
75
64
|
if (event.data.name === name) {
|
|
76
65
|
if (event.data.type === 'codeyam-respond') {
|
|
77
|
-
const
|
|
78
|
-
parent.postMessage({ type: 'codeyam-resize', name, height }, '*');
|
|
66
|
+
const calculatedHeight = calculateHeight();
|
|
67
|
+
parent.postMessage({ type: 'codeyam-resize', name, height: calculatedHeight }, '*');
|
|
79
68
|
}
|
|
80
69
|
}
|
|
81
70
|
};
|
|
@@ -87,9 +76,9 @@ function Scenario({ name, width, children }: { name: string, width: string, chil
|
|
|
87
76
|
return (
|
|
88
77
|
<div className='w-full flex items-center justify-center'>
|
|
89
78
|
<div id='component' style={{
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
79
|
+
minWidth: width !== 'auto' ? \`min(\${width}, 100vw)\` : undefined,
|
|
80
|
+
height: height !== 'auto' ? height : undefined,
|
|
81
|
+
minHeight: height !== 'auto' ? height : undefined,
|
|
93
82
|
display: 'block',
|
|
94
83
|
padding: '6px'
|
|
95
84
|
}}>
|
|
@@ -100,13 +89,31 @@ function Scenario({ name, width, children }: { name: string, width: string, chil
|
|
|
100
89
|
}
|
|
101
90
|
|
|
102
91
|
export default function Index() {
|
|
92
|
+
const [searchParams] = useState(() =>
|
|
93
|
+
typeof window !== 'undefined'
|
|
94
|
+
? new URLSearchParams(window.location.search)
|
|
95
|
+
: new URLSearchParams()
|
|
96
|
+
);
|
|
97
|
+
const widthOverride = searchParams.get('width');
|
|
98
|
+
const heightOverride = searchParams.get('height') || 'auto';
|
|
99
|
+
|
|
100
|
+
useEffect(() => {
|
|
101
|
+
document.title = "${fileName}: ${escapeQuotes(scenario.name)} CodeYam Demo v${VERSION}";
|
|
102
|
+
let metaDesc = document.querySelector('meta[name="description"]');
|
|
103
|
+
if (!metaDesc) {
|
|
104
|
+
metaDesc = document.createElement('meta');
|
|
105
|
+
metaDesc.setAttribute('name', 'description');
|
|
106
|
+
document.head.appendChild(metaDesc);
|
|
107
|
+
}
|
|
108
|
+
metaDesc.setAttribute('content', "This is a demo of the ${fileName} component");
|
|
109
|
+
}, []);
|
|
110
|
+
|
|
103
111
|
${getIFrameMessageListenerCode({ scenarioName: scenario.name })}
|
|
104
112
|
${getNextJsErrorClosingCode()}
|
|
105
113
|
|
|
106
114
|
return (
|
|
107
115
|
<div className='flex flex-col justify-center items-center h-screen' data-version={version}>
|
|
108
|
-
|
|
109
|
-
${scenarioComponent(entity, analysis, scenario)}
|
|
116
|
+
${scenarioComponent(entity, analysis, scenario, { useOverrides: true })}
|
|
110
117
|
</div>
|
|
111
118
|
);
|
|
112
119
|
}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"componentScenarioPageNext.js","sourceRoot":"","sources":["../../../../../../generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,2BAA2B,MAAM,gCAAgC,CAAC;AACzE,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AACrD,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AAEpE,MAAM,OAAO,GAAG,OAAO,CAAC;AAExB,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,EAChD,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,WAAW,EACX,OAAO,EACP,QAAQ,EACR,gBAAgB,GASjB;IACC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzC,OAAO
|
|
1
|
+
{"version":3,"file":"componentScenarioPageNext.js","sourceRoot":"","sources":["../../../../../../generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,2BAA2B,MAAM,gCAAgC,CAAC;AACzE,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AACrD,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AAEpE,MAAM,OAAO,GAAG,OAAO,CAAC;AAExB,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,EAChD,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,WAAW,EACX,OAAO,EACP,QAAQ,EACR,gBAAgB,GASjB;IACC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzC,OAAO;;;;;;;;;;;EAWP,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,IAAI,8BAA8B,gBAAgB,aAAa,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI;EAC5H,2BAA2B,CAAC;QAC5B,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,WAAW;QACX,OAAO;QACP,QAAQ;QACR,OAAO,EAAE,IAAI;QACb,WAAW,EACT,MAAM,CAAC,IAAI,KAAK,SAAS;YACzB,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,IAAI,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC;YAC7D,MAAM,CAAC,UAAU,KAAK,SAAS;KAClC,CAAC;;;EAGA,uBAAuB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAgEH,QAAQ,KAAK,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,OAAO;;;;;;;8DAO3B,QAAQ;;;IAGlE,4BAA4B,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC7D,yBAAyB,EAAE;;;;QAIvB,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;;;EAG3E,CAAC;AACH,CAAC"}
|