@codeyam/codeyam-cli 0.1.0-staging.b8a55ba → 0.1.0-staging.d0ad4ae
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/analyzer-template/.build-info.json +7 -7
- package/analyzer-template/common/execAsync.ts +1 -1
- package/analyzer-template/log.txt +3 -3
- package/analyzer-template/package.json +7 -4
- package/analyzer-template/packages/ai/package.json +1 -1
- package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +14 -1
- package/analyzer-template/packages/ai/src/lib/checkAllAttributes.ts +29 -10
- package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +120 -19
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +2 -1
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +91 -35
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +110 -74
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +11 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.ts +98 -0
- package/analyzer-template/packages/ai/src/lib/deepEqual.ts +30 -0
- package/analyzer-template/packages/ai/src/lib/findMatchingAttribute.ts +24 -17
- package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +214 -39
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +54 -1
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +72 -6
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +12 -5
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +39 -23
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +32 -0
- package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +14 -0
- package/analyzer-template/packages/analyze/src/lib/asts/nodes/index.ts +1 -0
- package/analyzer-template/packages/analyze/src/lib/asts/nodes/isAsyncFunction.ts +67 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +73 -69
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +6 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +3 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +22 -6
- package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +9 -5
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +49 -11
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.ts +102 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +399 -52
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.ts +128 -2
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +114 -70
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +34 -129
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +155 -79
- package/analyzer-template/packages/aws/codebuild/index.ts +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts +11 -1
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts.map +1 -1
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js +29 -18
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js.map +1 -1
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts +2 -2
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts.map +1 -1
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js +2 -2
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js.map +1 -1
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts +8 -18
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts.map +1 -1
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js +17 -61
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js.map +1 -1
- package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.d.ts.map +1 -1
- package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js +8 -1
- package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js.map +1 -1
- package/analyzer-template/packages/aws/package.json +1 -1
- package/analyzer-template/packages/aws/src/lib/codebuild/waitForBuild.ts +43 -19
- package/analyzer-template/packages/aws/src/lib/ecs/ecsDefineContainer.ts +3 -3
- package/analyzer-template/packages/aws/src/lib/ecs/ecsTaskFactory.ts +17 -69
- package/analyzer-template/packages/aws/src/lib/s3/uploadFileToS3.ts +8 -1
- package/analyzer-template/packages/generate/index.ts +3 -0
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts +17 -1
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +193 -0
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.ts +73 -0
- package/analyzer-template/packages/generate/src/lib/scenarioComponentForServer.ts +114 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/generate/index.d.ts +3 -0
- package/analyzer-template/packages/github/dist/generate/index.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/generate/index.js +3 -0
- package/analyzer-template/packages/github/dist/generate/index.js.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts +9 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts +20 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts +8 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js +89 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponentForServer.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js +10 -0
- package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js.map +1 -1
- package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js +3 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +6 -0
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
- package/analyzer-template/packages/github/src/lib/loadOrCreateCommit.ts +14 -0
- package/analyzer-template/packages/github/src/lib/syncPrimaryBranch.ts +2 -0
- package/analyzer-template/packages/process/index.ts +2 -0
- package/analyzer-template/packages/process/package.json +12 -0
- package/analyzer-template/packages/process/tsconfig.json +8 -0
- package/analyzer-template/packages/types/src/types/Entity.ts +2 -0
- package/analyzer-template/packages/types/src/types/Scenario.ts +6 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +6 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
- package/analyzer-template/playwright/capture.ts +37 -18
- package/analyzer-template/playwright/waitForServer.ts +21 -6
- package/analyzer-template/project/constructMockCode.ts +781 -140
- package/analyzer-template/project/orchestrateCapture/KyselyAnalysisLoader.ts +3 -6
- package/analyzer-template/project/orchestrateCapture.ts +10 -3
- package/analyzer-template/project/reconcileMockDataKeys.ts +28 -100
- package/analyzer-template/project/runAnalysis.ts +5 -0
- package/analyzer-template/project/serverOnlyModules.ts +127 -2
- package/analyzer-template/project/start.ts +5 -3
- package/analyzer-template/project/startScenarioCapture.ts +6 -0
- package/analyzer-template/project/writeMockDataTsx.ts +50 -22
- package/analyzer-template/project/writeScenarioClientWrapper.ts +21 -0
- package/analyzer-template/project/writeScenarioComponents.ts +162 -100
- package/analyzer-template/project/writeScenarioFiles.ts +26 -0
- package/analyzer-template/project/writeSimpleRoot.ts +11 -35
- package/analyzer-template/scripts/comboWorkerLoop.cjs +1 -0
- package/analyzer-template/scripts/defaultCmd.sh +9 -0
- package/background/src/lib/local/createLocalAnalyzer.js +1 -29
- package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
- package/background/src/lib/local/execAsync.js +1 -1
- package/background/src/lib/local/execAsync.js.map +1 -1
- package/background/src/lib/virtualized/common/execAsync.js +1 -1
- package/background/src/lib/virtualized/common/execAsync.js.map +1 -1
- package/background/src/lib/virtualized/project/constructMockCode.js +718 -127
- package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
- package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js +3 -2
- package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js.map +1 -1
- package/background/src/lib/virtualized/project/orchestrateCapture.js +7 -4
- package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +25 -61
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
- package/background/src/lib/virtualized/project/runAnalysis.js +4 -0
- package/background/src/lib/virtualized/project/runAnalysis.js.map +1 -1
- package/background/src/lib/virtualized/project/serverOnlyModules.js +106 -3
- package/background/src/lib/virtualized/project/serverOnlyModules.js.map +1 -1
- package/background/src/lib/virtualized/project/start.js +5 -3
- package/background/src/lib/virtualized/project/start.js.map +1 -1
- package/background/src/lib/virtualized/project/startScenarioCapture.js +7 -0
- package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
- package/background/src/lib/virtualized/project/writeMockDataTsx.js +52 -23
- package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
- package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js +15 -0
- package/background/src/lib/virtualized/project/writeScenarioClientWrapper.js.map +1 -0
- package/background/src/lib/virtualized/project/writeScenarioComponents.js +136 -83
- package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
- package/background/src/lib/virtualized/project/writeScenarioFiles.js +19 -0
- package/background/src/lib/virtualized/project/writeScenarioFiles.js.map +1 -1
- package/background/src/lib/virtualized/project/writeSimpleRoot.js +11 -34
- package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
- package/codeyam-cli/src/cli.js +5 -1
- package/codeyam-cli/src/cli.js.map +1 -1
- package/codeyam-cli/src/commands/analyze.js +1 -1
- package/codeyam-cli/src/commands/analyze.js.map +1 -1
- package/codeyam-cli/src/commands/baseline.js +177 -0
- package/codeyam-cli/src/commands/baseline.js.map +1 -0
- package/codeyam-cli/src/commands/status.js +23 -1
- package/codeyam-cli/src/commands/status.js.map +1 -1
- package/codeyam-cli/src/commands/test-startup.js +1 -1
- package/codeyam-cli/src/commands/test-startup.js.map +1 -1
- package/codeyam-cli/src/commands/wipe.js +108 -0
- package/codeyam-cli/src/commands/wipe.js.map +1 -0
- package/codeyam-cli/src/utils/database.js +91 -5
- package/codeyam-cli/src/utils/database.js.map +1 -1
- package/codeyam-cli/src/utils/git.js +79 -0
- package/codeyam-cli/src/utils/git.js.map +1 -0
- package/codeyam-cli/src/utils/queue/job.js +104 -0
- package/codeyam-cli/src/utils/queue/job.js.map +1 -1
- package/codeyam-cli/src/utils/queue/persistence.js.map +1 -1
- package/codeyam-cli/src/utils/wipe.js +128 -0
- package/codeyam-cli/src/utils/wipe.js.map +1 -0
- package/codeyam-cli/src/webserver/app/lib/database.js +66 -17
- package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-wXL1Z2Aq.js → EntityItem-Cmysw5OP.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-CzGX-miz.js → EntityTypeBadge-DLqD3qNt.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-CXFKsCOD.js → EntityTypeIcon-CAneekK2.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-D-9pXIaY.js → InteractivePreview-Cu16OUmx.js} +2 -2
- package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-CBQPrpT0.js → LibraryFunctionPreview-CVtiBnY5.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-D1CdlbrV.js → LoadingDots-B0GLXMsr.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-wDPcZNKx.js → LogViewer-xgeCVgSM.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-4lcOlid-.js → ReportIssueModal-DcAUIpD_.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-BfmDgXxG.js → SafeScreenshot-DuDvi0jm.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-BMKg0SAF.js +15 -0
- package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-6J7zDUD5.js → TruncatedFilePath-DyFZkK0l.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/_index-DSmTpjmK.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-BF_aK4y6.js +32 -0
- package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-BYimnrHg.js → chevron-down-Cx24_aWc.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/chunk-EPOLDU6W-CXRTFQ3F.js +51 -0
- package/codeyam-cli/src/webserver/build/client/assets/{circle-check-CaVsIRxt.js → circle-check-BOARzkeR.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-CgUsG7ib.js → createLucideIcon-BdhJEx6B.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{dev.empty-DW_hdGUc.js → dev.empty-RJCf3Tvw.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-zUEpfPsu.js → entity._sha._-D0-YwkBh.js} +12 -12
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-EylcgScH.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.create-scenario-D_3ero5o.js → entity._sha_.create-scenario-DMe7kvgo.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-CfLCUi9S.js → entity._sha_.edit._scenarioId-C1H_a_Y3.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entry.client-DKJyZfAY.js → entry.client-CS2cb_eZ.js} +6 -6
- package/codeyam-cli/src/webserver/build/client/assets/{fileTableUtils-DAtOlaWE.js → fileTableUtils-DMJ7zii9.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{files-ClR0d32A.js → files-BW7Cyeyi.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{git-D62Lxxmv.js → git-CZu4fif0.js} +2 -2
- package/codeyam-cli/src/webserver/build/client/assets/globals-wHVy_II5.css +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{index-CzNNiTkw.js → index-B1h680n5.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{index-BosqDOlH.js → index-lzqtyFU8.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-CNp9QFCX.js → loader-circle-B7B9V-bu.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{manifest-09d684be.js → manifest-2d191949.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/root-FHgpM6gc.js +56 -0
- package/codeyam-cli/src/webserver/build/client/assets/{search-DDGjYAMJ.js → search-CxXUmBSd.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{settings-DgTyB-Wg.js → settings-6D8k8Jp5.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/simulations-CDJZnWhN.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-CBc5dE1s.js → triangle-alert-B6LgvRJg.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useCustomSizes-BMIGFP-m.js → useCustomSizes-Dv18q8LD.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useInteractiveMode-Dk_FQqWJ.js → useInteractiveMode-0ToGk4K3.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-BqPPNjAl.js → useLastLogLine-aSv48UbS.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useReportContext-DsJbgMY9.js → useReportContext-1BX144Eg.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useToast-DWHcCcl1.js → useToast-mBRpZPiu.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/{index-CV6i1S1A.js → index-pU0o5t1o.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/server-build-YzfkRwdn.js +178 -0
- package/codeyam-cli/src/webserver/build/server/index.js +1 -1
- package/codeyam-cli/src/webserver/build-info.json +5 -5
- package/codeyam-cli/templates/codeyam-setup-skill.md +138 -3
- package/codeyam-cli/templates/debug-codeyam.md +7 -2
- package/package.json +5 -5
- package/packages/ai/src/lib/astScopes/processExpression.js +13 -1
- package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
- package/packages/ai/src/lib/checkAllAttributes.js +24 -9
- package/packages/ai/src/lib/checkAllAttributes.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +94 -18
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +2 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +51 -23
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +70 -54
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +11 -0
- package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js +86 -0
- package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js.map +1 -0
- package/packages/ai/src/lib/deepEqual.js +32 -0
- package/packages/ai/src/lib/deepEqual.js.map +1 -0
- package/packages/ai/src/lib/findMatchingAttribute.js +20 -16
- package/packages/ai/src/lib/findMatchingAttribute.js.map +1 -1
- package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +168 -41
- package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +1 -1
- package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +42 -1
- package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +1 -1
- package/packages/ai/src/lib/generateChangesEntityScenarioData.js +59 -3
- package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
- package/packages/ai/src/lib/generateChangesEntityScenarios.js +6 -6
- package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
- package/packages/ai/src/lib/generateEntityScenarioData.js +32 -23
- package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +20 -1
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
- package/packages/analyze/src/lib/FileAnalyzer.js +15 -0
- package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
- package/packages/analyze/src/lib/asts/nodes/index.js +1 -0
- package/packages/analyze/src/lib/asts/nodes/index.js.map +1 -1
- package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js +52 -0
- package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +59 -50
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +6 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +2 -0
- package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
- package/packages/analyze/src/lib/files/analyzeChange.js +14 -4
- package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
- package/packages/analyze/src/lib/files/analyzeEntity.js +7 -6
- package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +44 -10
- package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js +85 -0
- package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +314 -52
- package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js +97 -2
- package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +88 -52
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +26 -98
- package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +141 -75
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
- package/packages/aws/src/lib/ecs/ecsDefineContainer.js +2 -2
- package/packages/aws/src/lib/ecs/ecsDefineContainer.js.map +1 -1
- package/packages/aws/src/lib/ecs/ecsTaskFactory.js +17 -61
- package/packages/aws/src/lib/ecs/ecsTaskFactory.js.map +1 -1
- package/packages/generate/index.js +3 -0
- package/packages/generate/index.js.map +1 -1
- package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +16 -1
- package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -1
- package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
- package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
- package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
- package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
- package/packages/generate/src/lib/scenarioComponentForServer.js +89 -0
- package/packages/generate/src/lib/scenarioComponentForServer.js.map +1 -0
- package/packages/github/src/lib/loadOrCreateCommit.js +10 -0
- package/packages/github/src/lib/loadOrCreateCommit.js.map +1 -1
- package/packages/github/src/lib/syncPrimaryBranch.js +3 -0
- package/packages/github/src/lib/syncPrimaryBranch.js.map +1 -1
- package/packages/process/index.js +3 -0
- package/packages/process/index.js.map +1 -0
- package/packages/process/src/GlobalProcessManager.js.map +1 -0
- package/{background/src/lib/process → packages/process/src}/ProcessManager.js +1 -1
- package/packages/process/src/ProcessManager.js.map +1 -0
- package/packages/process/src/index.js.map +1 -0
- package/packages/process/src/managedExecAsync.js.map +1 -0
- package/analyzer-template/process/INTEGRATION_COMPLETE.md +0 -333
- package/analyzer-template/process/INTEGRATION_EXAMPLE.md +0 -525
- package/analyzer-template/process/README.md +0 -507
- package/background/src/lib/process/GlobalProcessManager.js.map +0 -1
- package/background/src/lib/process/ProcessManager.js.map +0 -1
- package/background/src/lib/process/index.js.map +0 -1
- package/background/src/lib/process/managedExecAsync.js.map +0 -1
- package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js +0 -238
- package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js.map +0 -1
- package/codeyam-cli/scripts/fixtures/formbricks/universal-mocks/apps/web/lib/instance/service.js +0 -7
- package/codeyam-cli/scripts/fixtures/formbricks/universal-mocks/apps/web/lib/instance/service.js.map +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-CUxUNEEC.js +0 -15
- package/codeyam-cli/src/webserver/build/client/assets/_index-DHImXdXq.js +0 -11
- package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-2mG6mjVb.js +0 -32
- package/codeyam-cli/src/webserver/build/client/assets/chunk-JMJ3UQ3L-BambyYE_.js +0 -51
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DyB90fWk.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/globals-C6vQASxy.css +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/root-BxJUvKau.js +0 -56
- package/codeyam-cli/src/webserver/build/client/assets/simulations-CoNWGt0K.js +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/server-build-BDlyhfrv.js +0 -175
- /package/analyzer-template/{process → packages/process/src}/GlobalProcessManager.ts +0 -0
- /package/analyzer-template/{process → packages/process/src}/ProcessManager.ts +0 -0
- /package/analyzer-template/{process → packages/process/src}/index.ts +0 -0
- /package/analyzer-template/{process → packages/process/src}/managedExecAsync.ts +0 -0
- /package/{background/src/lib/process → packages/process/src}/GlobalProcessManager.js +0 -0
- /package/{background/src/lib/process → packages/process/src}/index.js +0 -0
- /package/{background/src/lib/process → packages/process/src}/managedExecAsync.js +0 -0
package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts
CHANGED
|
@@ -21,6 +21,25 @@ function cleanFunctionName(functionName: string) {
|
|
|
21
21
|
return functionName?.split('<')[0];
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
// Extract the type parameter from a function name, e.g., 'useFetcher<{ data: UserData }>()' -> '{ data: UserData }'
|
|
25
|
+
function getTypeParameter(functionName: string): string | null {
|
|
26
|
+
if (!functionName) return null;
|
|
27
|
+
const openBracket = functionName.indexOf('<');
|
|
28
|
+
if (openBracket === -1) return null;
|
|
29
|
+
// Find matching closing bracket, accounting for nested brackets
|
|
30
|
+
let depth = 0;
|
|
31
|
+
for (let i = openBracket; i < functionName.length; i++) {
|
|
32
|
+
if (functionName[i] === '<') depth++;
|
|
33
|
+
else if (functionName[i] === '>') {
|
|
34
|
+
depth--;
|
|
35
|
+
if (depth === 0) {
|
|
36
|
+
return functionName.slice(openBracket + 1, i);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
|
|
24
43
|
// Check if schemaPathPart matches or is a function call variant of pathPart
|
|
25
44
|
// e.g., 'isEntityBeingAnalyzed(entity.sha)' matches 'isEntityBeingAnalyzed'
|
|
26
45
|
function pathPartMatches(pathPart: string, schemaPathPart: string): boolean {
|
|
@@ -74,47 +93,6 @@ export default function mergeInDependentDataStructure({
|
|
|
74
93
|
};
|
|
75
94
|
};
|
|
76
95
|
}) {
|
|
77
|
-
// writeFile(
|
|
78
|
-
// 'mergeInDependentDataStructure-debug.json',
|
|
79
|
-
// JSON.stringify(
|
|
80
|
-
// {
|
|
81
|
-
// importedExports: importedExports.map((d) => ({
|
|
82
|
-
// filePath: d.filePath,
|
|
83
|
-
// name: d.name,
|
|
84
|
-
// isMocked: d.isMocked,
|
|
85
|
-
// })),
|
|
86
|
-
// dependentAnalyses: Object.keys(dependentAnalyses).reduce(
|
|
87
|
-
// (pathAcc: Record<string, any>, filePath) => {
|
|
88
|
-
// pathAcc[filePath] = Object.keys(dependentAnalyses[filePath]).reduce(
|
|
89
|
-
// (nameAcc, name) => {
|
|
90
|
-
// nameAcc[name] = {
|
|
91
|
-
// metadata: {
|
|
92
|
-
// mergedDataStructure:
|
|
93
|
-
// dependentAnalyses[filePath][name].metadata
|
|
94
|
-
// .mergedDataStructure,
|
|
95
|
-
// },
|
|
96
|
-
// };
|
|
97
|
-
// return nameAcc;
|
|
98
|
-
// },
|
|
99
|
-
// {} as { [name: string]: {
|
|
100
|
-
// metadata?: {
|
|
101
|
-
// mergedDataStructure?: ReadonlyAnalysis['metadata']['mergedDataStructure'];
|
|
102
|
-
// };
|
|
103
|
-
// } },
|
|
104
|
-
// );
|
|
105
|
-
// return pathAcc;
|
|
106
|
-
// },
|
|
107
|
-
// {},
|
|
108
|
-
// ),
|
|
109
|
-
// rootScopeName,
|
|
110
|
-
// dataStructure,
|
|
111
|
-
// dependencySchemas,
|
|
112
|
-
// },
|
|
113
|
-
// null,
|
|
114
|
-
// 2,
|
|
115
|
-
// ),
|
|
116
|
-
// ).catch(() => {});
|
|
117
|
-
|
|
118
96
|
const mergedDataStructure: Omit<
|
|
119
97
|
DataStructure,
|
|
120
98
|
'equivalentSignatureVariables'
|
|
@@ -127,6 +105,44 @@ export default function mergeInDependentDataStructure({
|
|
|
127
105
|
environmentVariables: [...(dataStructure.environmentVariables || [])],
|
|
128
106
|
};
|
|
129
107
|
|
|
108
|
+
// Build a set of functions that have multiple DIFFERENT type parameters.
|
|
109
|
+
// For these functions, we must NOT normalize paths to avoid merging different schemas.
|
|
110
|
+
// e.g., if we have both useFetcher<{ data: UserData }>() and useFetcher<{ data: ConfigData }>(),
|
|
111
|
+
// they must stay separate and not both become 'returnValue'.
|
|
112
|
+
const functionsWithMultipleTypeParams = new Set<string>();
|
|
113
|
+
const typeParamsByFunction: Record<string, Set<string>> = {};
|
|
114
|
+
|
|
115
|
+
// Helper to scan a schema for type parameters
|
|
116
|
+
const scanSchemaForTypeParams = (schema: { [key: string]: string }) => {
|
|
117
|
+
for (const schemaPath of Object.keys(schema ?? {})) {
|
|
118
|
+
const parts = splitOutsideParenthesesAndArrays(schemaPath);
|
|
119
|
+
if (parts.length > 0) {
|
|
120
|
+
const firstPart = parts[0];
|
|
121
|
+
const typeParam = getTypeParameter(firstPart);
|
|
122
|
+
if (typeParam) {
|
|
123
|
+
const baseName = cleanFunctionName(firstPart);
|
|
124
|
+
typeParamsByFunction[baseName] ||= new Set();
|
|
125
|
+
typeParamsByFunction[baseName].add(typeParam);
|
|
126
|
+
if (typeParamsByFunction[baseName].size > 1) {
|
|
127
|
+
functionsWithMultipleTypeParams.add(baseName);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
// Scan the root entity's schema
|
|
135
|
+
scanSchemaForTypeParams(dataStructure.returnValueSchema);
|
|
136
|
+
|
|
137
|
+
// Also scan all dependency schemas for type parameters
|
|
138
|
+
for (const filePath of Object.keys(dependencySchemas ?? {})) {
|
|
139
|
+
for (const name of Object.keys(dependencySchemas[filePath] ?? {})) {
|
|
140
|
+
scanSchemaForTypeParams(
|
|
141
|
+
dependencySchemas[filePath][name]?.returnValueSchema,
|
|
142
|
+
);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
130
146
|
let equivalentSchemaPaths: {
|
|
131
147
|
equivalentRoots: {
|
|
132
148
|
schemaRootPath: string;
|
|
@@ -185,6 +201,15 @@ export default function mergeInDependentDataStructure({
|
|
|
185
201
|
const pathParts = splitOutsideParenthesesAndArrays(path);
|
|
186
202
|
if (pathParts.length > 1) {
|
|
187
203
|
if (pathParts[1].startsWith('functionCallReturnValue')) {
|
|
204
|
+
// Check if this function has multiple DIFFERENT type parameters.
|
|
205
|
+
// If so, DON'T normalize to returnValue - keep the full path to avoid
|
|
206
|
+
// merging different type-parameterized variants together.
|
|
207
|
+
// e.g., useFetcher<{ data: UserData }>().functionCallReturnValue.data
|
|
208
|
+
// should NOT be merged with useFetcher<{ data: ConfigData }>().functionCallReturnValue.data
|
|
209
|
+
const baseName = cleanFunctionName(pathParts[0]);
|
|
210
|
+
if (functionsWithMultipleTypeParams.has(baseName)) {
|
|
211
|
+
return path; // Keep the original path with type parameters
|
|
212
|
+
}
|
|
188
213
|
// functionCallReturnValue immediately follows - normalize to returnValue
|
|
189
214
|
// e.g., useAuth().functionCallReturnValue.user -> returnValue.user
|
|
190
215
|
return joinParenthesesAndArrays([
|
|
@@ -324,10 +349,14 @@ export default function mergeInDependentDataStructure({
|
|
|
324
349
|
splitOutsideParenthesesAndArrays(schemaPath);
|
|
325
350
|
|
|
326
351
|
if (schemaPathParts[0].startsWith(functionName)) {
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
352
|
+
// Only normalize if the function doesn't have multiple different type parameters
|
|
353
|
+
const baseName = cleanFunctionName(schemaPathParts[0]);
|
|
354
|
+
if (!functionsWithMultipleTypeParams.has(baseName)) {
|
|
355
|
+
schemaPathParts =
|
|
356
|
+
schemaPathParts[1] === 'functionCallReturnValue'
|
|
357
|
+
? ['returnValue', ...schemaPathParts.slice(2)]
|
|
358
|
+
: schemaPathParts.slice(1);
|
|
359
|
+
}
|
|
331
360
|
}
|
|
332
361
|
|
|
333
362
|
if (schemaPathParts.length < pathParts.length) continue;
|
|
@@ -927,6 +956,87 @@ export default function mergeInDependentDataStructure({
|
|
|
927
956
|
cleanSchema(depSchema.returnValueSchema);
|
|
928
957
|
}
|
|
929
958
|
|
|
959
|
+
// Process the input dependencySchemas FIRST (before child dependentAnalyses).
|
|
960
|
+
// This ensures the parent entity's direct usage of dependencies takes precedence.
|
|
961
|
+
// When both parent and child use the same dependency (e.g., useLoaderData),
|
|
962
|
+
// the parent's schema paths are preserved, and child's paths are merged in later.
|
|
963
|
+
//
|
|
964
|
+
// Some dependencies (like .d.ts type declaration files) may not have:
|
|
965
|
+
// - Equivalencies with the root scope
|
|
966
|
+
// - A dependent analysis (they're just type declarations)
|
|
967
|
+
// - Be marked as mocked
|
|
968
|
+
// Without this, their schemas would be lost entirely.
|
|
969
|
+
for (const filePath in dependencySchemas) {
|
|
970
|
+
for (const name in dependencySchemas[filePath]) {
|
|
971
|
+
const srcSchema = dependencySchemas[filePath][name];
|
|
972
|
+
if (!srcSchema) continue;
|
|
973
|
+
|
|
974
|
+
// Skip mocked dependencies - they were already processed above with path normalization
|
|
975
|
+
if (mockedDependencies.has(`${filePath}::${name}`)) {
|
|
976
|
+
continue;
|
|
977
|
+
}
|
|
978
|
+
|
|
979
|
+
// Check if this dependency was already processed by equivalencies
|
|
980
|
+
const existingSchema =
|
|
981
|
+
mergedDataStructure.dependencySchemas[filePath]?.[name];
|
|
982
|
+
|
|
983
|
+
// Only add if no existing schema (equivalencies didn't process it)
|
|
984
|
+
if (!existingSchema) {
|
|
985
|
+
const depSchema = findOrCreateDependentSchemas({ filePath, name });
|
|
986
|
+
for (const path in srcSchema.returnValueSchema) {
|
|
987
|
+
depSchema.returnValueSchema[path] = srcSchema.returnValueSchema[path];
|
|
988
|
+
}
|
|
989
|
+
for (const path in srcSchema.signatureSchema) {
|
|
990
|
+
depSchema.signatureSchema[path] = srcSchema.signatureSchema[path];
|
|
991
|
+
}
|
|
992
|
+
|
|
993
|
+
// Clean known object functions (like String.prototype.replace, Array.prototype.map)
|
|
994
|
+
// from the copied schema. Without this, method call paths on primitives like
|
|
995
|
+
// "projectSlug.replace(...)" would cause convertDotNotation to create nested
|
|
996
|
+
// object structures instead of preserving the primitive type.
|
|
997
|
+
cleanSchema(depSchema.returnValueSchema);
|
|
998
|
+
}
|
|
999
|
+
|
|
1000
|
+
// For functions with multiple different type parameters, also create separate entries
|
|
1001
|
+
// for each type-parameterized variant. This allows gatherDataForMocks to look up
|
|
1002
|
+
// the specific schema for each call signature.
|
|
1003
|
+
// This runs regardless of whether the base entry already existed, since we need
|
|
1004
|
+
// the separate variant entries for proper schema lookup.
|
|
1005
|
+
const baseName = cleanFunctionName(name);
|
|
1006
|
+
if (functionsWithMultipleTypeParams.has(baseName)) {
|
|
1007
|
+
// Find all unique type-parameterized call signatures in the schema
|
|
1008
|
+
const typeParamVariants = new Set<string>();
|
|
1009
|
+
for (const path of Object.keys(srcSchema.returnValueSchema)) {
|
|
1010
|
+
const parts = splitOutsideParenthesesAndArrays(path);
|
|
1011
|
+
if (
|
|
1012
|
+
parts.length > 0 &&
|
|
1013
|
+
parts[0].includes('<') &&
|
|
1014
|
+
parts[0].endsWith(')')
|
|
1015
|
+
) {
|
|
1016
|
+
typeParamVariants.add(parts[0]);
|
|
1017
|
+
}
|
|
1018
|
+
}
|
|
1019
|
+
|
|
1020
|
+
// Create a separate entry for each type-parameterized variant
|
|
1021
|
+
for (const variant of typeParamVariants) {
|
|
1022
|
+
const variantSchema = findOrCreateDependentSchemas({
|
|
1023
|
+
filePath,
|
|
1024
|
+
name: variant,
|
|
1025
|
+
});
|
|
1026
|
+
|
|
1027
|
+
// Copy only paths that belong to this variant
|
|
1028
|
+
for (const path in srcSchema.returnValueSchema) {
|
|
1029
|
+
if (path.startsWith(variant)) {
|
|
1030
|
+
variantSchema.returnValueSchema[path] =
|
|
1031
|
+
srcSchema.returnValueSchema[path];
|
|
1032
|
+
}
|
|
1033
|
+
}
|
|
1034
|
+
cleanSchema(variantSchema.returnValueSchema);
|
|
1035
|
+
}
|
|
1036
|
+
}
|
|
1037
|
+
}
|
|
1038
|
+
}
|
|
1039
|
+
|
|
930
1040
|
// Ensure ALL dependencies from dependentAnalyses are included in dependencySchemas,
|
|
931
1041
|
// even if they have no equivalencies with the root scope.
|
|
932
1042
|
// This preserves nested functionCallReturnValue paths that would otherwise be lost.
|
|
@@ -1002,39 +1112,5 @@ export default function mergeInDependentDataStructure({
|
|
|
1002
1112
|
}
|
|
1003
1113
|
}
|
|
1004
1114
|
|
|
1005
|
-
// Ensure ALL dependencies from the input dependencySchemas are preserved.
|
|
1006
|
-
// Some dependencies (like .d.ts type declaration files) may not have:
|
|
1007
|
-
// - Equivalencies with the root scope
|
|
1008
|
-
// - A dependent analysis (they're just type declarations)
|
|
1009
|
-
// - Be marked as mocked
|
|
1010
|
-
// Without this, their schemas would be lost entirely.
|
|
1011
|
-
//
|
|
1012
|
-
// IMPORTANT: Only add schemas for dependencies that weren't already processed.
|
|
1013
|
-
// If a dependency has an existing schema (even an empty one), it means the
|
|
1014
|
-
// existing processing (mocked dependencies, equivalencies, dependentAnalyses)
|
|
1015
|
-
// has already handled it and may have intentionally filtered out certain paths.
|
|
1016
|
-
for (const filePath in dependencySchemas) {
|
|
1017
|
-
for (const name in dependencySchemas[filePath]) {
|
|
1018
|
-
const srcSchema = dependencySchemas[filePath][name];
|
|
1019
|
-
if (!srcSchema) continue;
|
|
1020
|
-
|
|
1021
|
-
// Check if this dependency was already processed by any other mechanism
|
|
1022
|
-
const existingSchema =
|
|
1023
|
-
mergedDataStructure.dependencySchemas[filePath]?.[name];
|
|
1024
|
-
|
|
1025
|
-
// Only add if no existing schema at all - this means the dependency
|
|
1026
|
-
// wasn't processed through equivalencies, mocked dependencies, or dependentAnalyses
|
|
1027
|
-
if (!existingSchema) {
|
|
1028
|
-
const depSchema = findOrCreateDependentSchemas({ filePath, name });
|
|
1029
|
-
for (const path in srcSchema.returnValueSchema) {
|
|
1030
|
-
depSchema.returnValueSchema[path] = srcSchema.returnValueSchema[path];
|
|
1031
|
-
}
|
|
1032
|
-
for (const path in srcSchema.signatureSchema) {
|
|
1033
|
-
depSchema.signatureSchema[path] = srcSchema.signatureSchema[path];
|
|
1034
|
-
}
|
|
1035
|
-
}
|
|
1036
|
-
}
|
|
1037
|
-
}
|
|
1038
|
-
|
|
1039
1115
|
return mergedDataStructure;
|
|
1040
1116
|
}
|
|
@@ -4,3 +4,4 @@ export { default as codebuildCheckProject } from '../src/lib/codebuild/checkForC
|
|
|
4
4
|
export { default as codebuildCreateProject } from '../src/lib/codebuild/createCodeBuildProject';
|
|
5
5
|
export { default as codebuildTrigger } from '../src/lib/codebuild/triggerCodeBuild';
|
|
6
6
|
export { default as codebuildWaitForBuild } from '../src/lib/codebuild/waitForBuild';
|
|
7
|
+
export type { BuildResult } from '../src/lib/codebuild/waitForBuild';
|
|
@@ -1,2 +1,12 @@
|
|
|
1
|
-
export
|
|
1
|
+
export interface BuildResult {
|
|
2
|
+
status: 'SUCCEEDED' | 'FAILED' | 'TIMED_OUT';
|
|
3
|
+
buildId: string;
|
|
4
|
+
consoleUrl: string;
|
|
5
|
+
failedPhase?: {
|
|
6
|
+
phaseType: string;
|
|
7
|
+
statusCode?: string;
|
|
8
|
+
message?: string;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export default function waitForBuild(buildId: string): Promise<BuildResult>;
|
|
2
12
|
//# sourceMappingURL=waitForBuild.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"waitForBuild.d.ts","sourceRoot":"","sources":["../../../../src/lib/codebuild/waitForBuild.ts"],"names":[],"mappings":"AAKA,wBAA8B,YAAY,CACxC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"waitForBuild.d.ts","sourceRoot":"","sources":["../../../../src/lib/codebuild/waitForBuild.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAUD,wBAA8B,YAAY,CACxC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,CAAC,CA4DtB"}
|
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BatchGetBuildsCommand, CodeBuildClient, } from '@aws-sdk/client-codebuild';
|
|
2
|
+
function getConsoleUrl(buildId) {
|
|
3
|
+
// buildId format: project-name:uuid
|
|
4
|
+
// ARN format: arn:aws:codebuild:region:account:build/project-name:uuid
|
|
5
|
+
const region = process.env.AWS_REGION || 'us-east-1';
|
|
6
|
+
const encodedBuildId = encodeURIComponent(buildId);
|
|
7
|
+
return `https://${region}.console.aws.amazon.com/codesuite/codebuild/projects/${buildId.split(':')[0]}/build/${encodedBuildId}/log`;
|
|
8
|
+
}
|
|
2
9
|
export default async function waitForBuild(buildId) {
|
|
3
10
|
const codeBuildClient = new CodeBuildClient({});
|
|
4
11
|
let attempts = 0;
|
|
@@ -12,31 +19,31 @@ export default async function waitForBuild(buildId) {
|
|
|
12
19
|
if (!build) {
|
|
13
20
|
throw new Error(`Build ${buildId} not found`);
|
|
14
21
|
}
|
|
22
|
+
const consoleUrl = getConsoleUrl(buildId);
|
|
15
23
|
switch (build.buildStatus) {
|
|
16
24
|
case 'SUCCEEDED':
|
|
17
|
-
return 'SUCCEEDED';
|
|
25
|
+
return { status: 'SUCCEEDED', buildId, consoleUrl };
|
|
18
26
|
case 'FAILED':
|
|
19
27
|
case 'FAULT':
|
|
20
28
|
case 'STOPPED': {
|
|
21
29
|
// Find the first failed phase
|
|
22
30
|
const failedPhase = build.phases?.find((phase) => phase.phaseStatus === 'FAILED');
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
return 'FAILED';
|
|
31
|
+
const context = failedPhase?.contexts?.[0];
|
|
32
|
+
return {
|
|
33
|
+
status: 'FAILED',
|
|
34
|
+
buildId,
|
|
35
|
+
consoleUrl,
|
|
36
|
+
failedPhase: failedPhase
|
|
37
|
+
? {
|
|
38
|
+
phaseType: failedPhase.phaseType ?? 'UNKNOWN',
|
|
39
|
+
statusCode: context?.statusCode,
|
|
40
|
+
message: context?.message,
|
|
41
|
+
}
|
|
42
|
+
: undefined,
|
|
43
|
+
};
|
|
37
44
|
}
|
|
38
45
|
case 'TIMED_OUT':
|
|
39
|
-
return 'TIMED_OUT';
|
|
46
|
+
return { status: 'TIMED_OUT', buildId, consoleUrl };
|
|
40
47
|
case 'IN_PROGRESS':
|
|
41
48
|
await new Promise((resolve) => setTimeout(resolve, 10000)); // Wait 10 seconds
|
|
42
49
|
attempts++;
|
|
@@ -45,6 +52,10 @@ export default async function waitForBuild(buildId) {
|
|
|
45
52
|
throw new Error(`Unknown build status: ${build.buildStatus}`);
|
|
46
53
|
}
|
|
47
54
|
}
|
|
48
|
-
return
|
|
55
|
+
return {
|
|
56
|
+
status: 'TIMED_OUT',
|
|
57
|
+
buildId,
|
|
58
|
+
consoleUrl: getConsoleUrl(buildId),
|
|
59
|
+
};
|
|
49
60
|
}
|
|
50
61
|
//# sourceMappingURL=waitForBuild.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"waitForBuild.js","sourceRoot":"","sources":["../../../../src/lib/codebuild/waitForBuild.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"waitForBuild.js","sourceRoot":"","sources":["../../../../src/lib/codebuild/waitForBuild.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,eAAe,GAChB,MAAM,2BAA2B,CAAC;AAanC,SAAS,aAAa,CAAC,OAAe;IACpC,oCAAoC;IACpC,uEAAuE;IACvE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,WAAW,CAAC;IACrD,MAAM,cAAc,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,WAAW,MAAM,wDAAwD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,cAAc,MAAM,CAAC;AACtI,CAAC;AAED,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,YAAY,CACxC,OAAe;IAEf,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;IAEhD,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,sCAAsC;IAE/D,OAAO,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAI,qBAAqB,CAAC;YAC3C,GAAG,EAAE,CAAC,OAAO,CAAC;SACf,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAEjC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,SAAS,OAAO,YAAY,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAE1C,QAAQ,KAAK,CAAC,WAAW,EAAE,CAAC;YAC1B,KAAK,WAAW;gBACd,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;YACtD,KAAK,QAAQ,CAAC;YACd,KAAK,OAAO,CAAC;YACb,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,8BAA8B;gBAC9B,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,CACpC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,QAAQ,CAC1C,CAAC;gBACF,MAAM,OAAO,GAAG,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC3C,OAAO;oBACL,MAAM,EAAE,QAAQ;oBAChB,OAAO;oBACP,UAAU;oBACV,WAAW,EAAE,WAAW;wBACtB,CAAC,CAAC;4BACE,SAAS,EAAE,WAAW,CAAC,SAAS,IAAI,SAAS;4BAC7C,UAAU,EAAE,OAAO,EAAE,UAAU;4BAC/B,OAAO,EAAE,OAAO,EAAE,OAAO;yBAC1B;wBACH,CAAC,CAAC,SAAS;iBACd,CAAC;YACJ,CAAC;YACD,KAAK,WAAW;gBACd,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;YACtD,KAAK,aAAa;gBAChB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB;gBAC9E,QAAQ,EAAE,CAAC;gBACX,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM,EAAE,WAAW;QACnB,OAAO;QACP,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC;KACnC,CAAC;AACJ,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ContainerDefinition } from '@aws-sdk/client-ecs';
|
|
2
|
-
export default function ecsDefineContainer({ containerName, containerImage, environmentVariables, openPort,
|
|
2
|
+
export default function ecsDefineContainer({ containerName, containerImage, environmentVariables, openPort, command, }: {
|
|
3
3
|
containerName: string;
|
|
4
4
|
containerImage: string;
|
|
5
5
|
environmentVariables?: {
|
|
6
6
|
[key: string]: string;
|
|
7
7
|
};
|
|
8
8
|
openPort?: number;
|
|
9
|
-
|
|
9
|
+
command?: string[];
|
|
10
10
|
}): ContainerDefinition;
|
|
11
11
|
//# sourceMappingURL=ecsDefineContainer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecsDefineContainer.d.ts","sourceRoot":"","sources":["../../../../src/lib/ecs/ecsDefineContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,aAAa,EACb,cAAc,EACd,oBAAyB,EACzB,QAAQ,EACR,
|
|
1
|
+
{"version":3,"file":"ecsDefineContainer.d.ts","sourceRoot":"","sources":["../../../../src/lib/ecs/ecsDefineContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,aAAa,EACb,cAAc,EACd,oBAAyB,EACzB,QAAQ,EACR,OAAO,GACR,EAAE;IACD,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,GAAG,mBAAmB,CA4BtB"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
export default function ecsDefineContainer({ containerName, containerImage, environmentVariables = {}, openPort,
|
|
1
|
+
export default function ecsDefineContainer({ containerName, containerImage, environmentVariables = {}, openPort, command, }) {
|
|
2
2
|
return {
|
|
3
3
|
name: containerName,
|
|
4
4
|
image: containerImage,
|
|
5
5
|
essential: true,
|
|
6
|
+
command,
|
|
6
7
|
environment: Object.entries(environmentVariables).map(([name, value]) => ({
|
|
7
8
|
name,
|
|
8
9
|
value,
|
|
@@ -24,7 +25,6 @@ export default function ecsDefineContainer({ containerName, containerImage, envi
|
|
|
24
25
|
'awslogs-stream-prefix': `${process.env.ECS_CLUSTER_NAME}`,
|
|
25
26
|
},
|
|
26
27
|
},
|
|
27
|
-
dependsOn,
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
30
|
//# sourceMappingURL=ecsDefineContainer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecsDefineContainer.js","sourceRoot":"","sources":["../../../../src/lib/ecs/ecsDefineContainer.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,aAAa,EACb,cAAc,EACd,oBAAoB,GAAG,EAAE,EACzB,QAAQ,EACR,
|
|
1
|
+
{"version":3,"file":"ecsDefineContainer.js","sourceRoot":"","sources":["../../../../src/lib/ecs/ecsDefineContainer.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,aAAa,EACb,cAAc,EACd,oBAAoB,GAAG,EAAE,EACzB,QAAQ,EACR,OAAO,GAOR;IACC,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,IAAI;QACf,OAAO;QACP,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YACxE,IAAI;YACJ,KAAK;SACN,CAAC,CAAC;QACH,YAAY,EAAE,QAAQ;YACpB,CAAC,CAAC;gBACE;oBACE,aAAa,EAAE,QAAQ;oBACvB,QAAQ,EAAE,QAAQ;iBACnB;aACF;YACH,CAAC,CAAC,SAAS;QACb,gBAAgB,EAAE;YAChB,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE;gBACP,sBAAsB,EAAE,MAAM;gBAC9B,eAAe,EAAE,kBAAkB,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE;gBACxE,gBAAgB,EAAE,WAAW;gBAC7B,uBAAuB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE;aAC3D;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -4,31 +4,21 @@ export type EcsStartConfig = {
|
|
|
4
4
|
containerEnvironmentVariables: Array<[string, Record<string, string>]>;
|
|
5
5
|
};
|
|
6
6
|
/**
|
|
7
|
-
* Prepare to run an ECS task for
|
|
8
|
-
*
|
|
7
|
+
* Prepare to run an ECS task for analysis with distributed capture orchestration.
|
|
8
|
+
* Uses the unified 'combo' image which includes both analysis and capture capabilities.
|
|
9
9
|
*/
|
|
10
|
-
export declare function
|
|
11
|
-
/**
|
|
12
|
-
* Prepare to run an ECS task for the new analysis flow with distributed capture
|
|
13
|
-
* tasks orchestrated from only a 'project' image.
|
|
14
|
-
*/
|
|
15
|
-
export declare function getEcsStartConfigFoAnalysisWithOrchestration(environmentVariables: Record<string, string>): EcsStartConfig;
|
|
10
|
+
export declare function getEcsStartConfigForAnalysis(environmentVariables: Record<string, string>): EcsStartConfig;
|
|
16
11
|
/**
|
|
17
12
|
* Prepare to run an ECS worker task that implements the capture portion of the
|
|
18
|
-
* distributed orchestration
|
|
19
|
-
* from a task created with `
|
|
13
|
+
* distributed orchestration. Uses the same unified 'combo' image.
|
|
14
|
+
* This task is launched from a task created with `getEcsStartConfigForAnalysis()`
|
|
20
15
|
*/
|
|
21
16
|
export declare function getEcsStartConfigForOrchestrationTask(environmentVariables: Record<string, string>): EcsStartConfig;
|
|
22
17
|
export declare enum EcsTaskDefinitionUse {
|
|
23
|
-
|
|
24
|
-
AnalyzeWithOrchestration = "analyze-with-orchestration",
|
|
18
|
+
Analysis = "analysis",
|
|
25
19
|
OrchestrationTask = "orchestration-task"
|
|
26
20
|
}
|
|
27
21
|
export declare function getEcsTaskDefinitionName(forUse: EcsTaskDefinitionUse): string;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
Playwright = "playwright",
|
|
31
|
-
Combo = "combo"
|
|
32
|
-
}
|
|
33
|
-
export declare function getEcsImageNameForType(type: EcsImageType): string;
|
|
22
|
+
/** Returns the name of the unified Docker image used for all ECS tasks. */
|
|
23
|
+
export declare function getEcsImageName(): string;
|
|
34
24
|
//# sourceMappingURL=ecsTaskFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecsTaskFactory.d.ts","sourceRoot":"","sources":["../../../../src/lib/ecs/ecsTaskFactory.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,MAAM,MAAM,cAAc,GAAG;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,6BAA6B,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;CACxE,CAAC;AAEF;;;GAGG;AACH,wBAAgB,
|
|
1
|
+
{"version":3,"file":"ecsTaskFactory.d.ts","sourceRoot":"","sources":["../../../../src/lib/ecs/ecsTaskFactory.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,MAAM,MAAM,cAAc,GAAG;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,6BAA6B,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;CACxE,CAAC;AAEF;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3C,cAAc,CAKhB;AAED;;;;GAIG;AACH,wBAAgB,qCAAqC,CACnD,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3C,cAAc,CAOhB;AAED,oBAAY,oBAAoB;IAE9B,QAAQ,aAAa;IAErB,iBAAiB,uBAAuB;CACzC;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAS7E;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,IAAI,MAAM,CAExC"}
|
|
@@ -1,87 +1,43 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Prepare to run an ECS task for
|
|
3
|
-
*
|
|
2
|
+
* Prepare to run an ECS task for analysis with distributed capture orchestration.
|
|
3
|
+
* Uses the unified 'combo' image which includes both analysis and capture capabilities.
|
|
4
4
|
*/
|
|
5
|
-
export function
|
|
5
|
+
export function getEcsStartConfigForAnalysis(environmentVariables) {
|
|
6
6
|
return {
|
|
7
|
-
taskDefinition: getEcsTaskDefinitionName(EcsTaskDefinitionUse.
|
|
8
|
-
containerEnvironmentVariables: [
|
|
9
|
-
[
|
|
10
|
-
getEcsImageNameForType(EcsImageType.Project),
|
|
11
|
-
projectEnvironmentVariables,
|
|
12
|
-
],
|
|
13
|
-
[
|
|
14
|
-
getEcsImageNameForType(EcsImageType.Playwright),
|
|
15
|
-
playwrightEnvironmentVariables,
|
|
16
|
-
],
|
|
17
|
-
],
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Prepare to run an ECS task for the new analysis flow with distributed capture
|
|
22
|
-
* tasks orchestrated from only a 'project' image.
|
|
23
|
-
*/
|
|
24
|
-
export function getEcsStartConfigFoAnalysisWithOrchestration(environmentVariables) {
|
|
25
|
-
return {
|
|
26
|
-
taskDefinition: getEcsTaskDefinitionName(EcsTaskDefinitionUse.AnalyzeWithOrchestration),
|
|
27
|
-
containerEnvironmentVariables: [
|
|
28
|
-
[getEcsImageNameForType(EcsImageType.Project), environmentVariables],
|
|
29
|
-
],
|
|
7
|
+
taskDefinition: getEcsTaskDefinitionName(EcsTaskDefinitionUse.Analysis),
|
|
8
|
+
containerEnvironmentVariables: [[getEcsImageName(), environmentVariables]],
|
|
30
9
|
};
|
|
31
10
|
}
|
|
32
11
|
/**
|
|
33
12
|
* Prepare to run an ECS worker task that implements the capture portion of the
|
|
34
|
-
* distributed orchestration
|
|
35
|
-
* from a task created with `
|
|
13
|
+
* distributed orchestration. Uses the same unified 'combo' image.
|
|
14
|
+
* This task is launched from a task created with `getEcsStartConfigForAnalysis()`
|
|
36
15
|
*/
|
|
37
16
|
export function getEcsStartConfigForOrchestrationTask(environmentVariables) {
|
|
38
17
|
return {
|
|
39
18
|
taskDefinition: getEcsTaskDefinitionName(EcsTaskDefinitionUse.OrchestrationTask),
|
|
40
|
-
containerEnvironmentVariables: [
|
|
41
|
-
[getEcsImageNameForType(EcsImageType.Combo), environmentVariables],
|
|
42
|
-
],
|
|
19
|
+
containerEnvironmentVariables: [[getEcsImageName(), environmentVariables]],
|
|
43
20
|
};
|
|
44
21
|
}
|
|
45
22
|
export var EcsTaskDefinitionUse;
|
|
46
23
|
(function (EcsTaskDefinitionUse) {
|
|
47
|
-
/*
|
|
48
|
-
EcsTaskDefinitionUse["
|
|
49
|
-
/* A
|
|
50
|
-
EcsTaskDefinitionUse["AnalyzeWithOrchestration"] = "analyze-with-orchestration";
|
|
51
|
-
/* A worker task that combines 'project' and 'playwright' code, launched by orchestration. */
|
|
24
|
+
/* Main analysis task - runs analysis and fires up distributed capture orchestration. */
|
|
25
|
+
EcsTaskDefinitionUse["Analysis"] = "analysis";
|
|
26
|
+
/* A worker task launched by orchestration to capture scenarios. */
|
|
52
27
|
EcsTaskDefinitionUse["OrchestrationTask"] = "orchestration-task";
|
|
53
28
|
})(EcsTaskDefinitionUse || (EcsTaskDefinitionUse = {}));
|
|
54
29
|
export function getEcsTaskDefinitionName(forUse) {
|
|
55
30
|
switch (forUse) {
|
|
56
|
-
case EcsTaskDefinitionUse.
|
|
57
|
-
return `${process.env.ECR_REPOSITORY_NAME}-
|
|
58
|
-
case EcsTaskDefinitionUse.AnalyzeWithOrchestration:
|
|
59
|
-
return `${process.env.ECR_REPOSITORY_NAME}-project`;
|
|
31
|
+
case EcsTaskDefinitionUse.Analysis:
|
|
32
|
+
return `${process.env.ECR_REPOSITORY_NAME}-analysis`;
|
|
60
33
|
case EcsTaskDefinitionUse.OrchestrationTask:
|
|
61
|
-
return `${process.env.ECR_REPOSITORY_NAME}-
|
|
34
|
+
return `${process.env.ECR_REPOSITORY_NAME}-orchestration`;
|
|
62
35
|
default:
|
|
63
36
|
throw new Error(`Unknown task definition use: ${forUse}`);
|
|
64
37
|
}
|
|
65
38
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
EcsImageType["Project"] = "project";
|
|
70
|
-
/* The playwright capture process which waits for the project to be ready. */
|
|
71
|
-
EcsImageType["Playwright"] = "playwright";
|
|
72
|
-
/* A combo image that combines both project and playwright code, used by orchestration. */
|
|
73
|
-
EcsImageType["Combo"] = "combo";
|
|
74
|
-
})(EcsImageType || (EcsImageType = {}));
|
|
75
|
-
export function getEcsImageNameForType(type) {
|
|
76
|
-
switch (type) {
|
|
77
|
-
case EcsImageType.Project:
|
|
78
|
-
return `${process.env.ECR_REPOSITORY_NAME}-project`;
|
|
79
|
-
case EcsImageType.Playwright:
|
|
80
|
-
return `${process.env.ECR_REPOSITORY_NAME}-playwright`;
|
|
81
|
-
case EcsImageType.Combo:
|
|
82
|
-
return `${process.env.ECR_REPOSITORY_NAME}-combo`;
|
|
83
|
-
default:
|
|
84
|
-
throw new Error(`Unknown image type: ${type}`);
|
|
85
|
-
}
|
|
39
|
+
/** Returns the name of the unified Docker image used for all ECS tasks. */
|
|
40
|
+
export function getEcsImageName() {
|
|
41
|
+
return `${process.env.ECR_REPOSITORY_NAME}-combo`;
|
|
86
42
|
}
|
|
87
43
|
//# sourceMappingURL=ecsTaskFactory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecsTaskFactory.js","sourceRoot":"","sources":["../../../../src/lib/ecs/ecsTaskFactory.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"ecsTaskFactory.js","sourceRoot":"","sources":["../../../../src/lib/ecs/ecsTaskFactory.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAC1C,oBAA4C;IAE5C,OAAO;QACL,cAAc,EAAE,wBAAwB,CAAC,oBAAoB,CAAC,QAAQ,CAAC;QACvE,6BAA6B,EAAE,CAAC,CAAC,eAAe,EAAE,EAAE,oBAAoB,CAAC,CAAC;KAC3E,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qCAAqC,CACnD,oBAA4C;IAE5C,OAAO;QACL,cAAc,EAAE,wBAAwB,CACtC,oBAAoB,CAAC,iBAAiB,CACvC;QACD,6BAA6B,EAAE,CAAC,CAAC,eAAe,EAAE,EAAE,oBAAoB,CAAC,CAAC;KAC3E,CAAC;AACJ,CAAC;AAED,MAAM,CAAN,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC9B,wFAAwF;IACxF,6CAAqB,CAAA;IACrB,mEAAmE;IACnE,gEAAwC,CAAA;AAC1C,CAAC,EALW,oBAAoB,KAApB,oBAAoB,QAK/B;AAED,MAAM,UAAU,wBAAwB,CAAC,MAA4B;IACnE,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,oBAAoB,CAAC,QAAQ;YAChC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,WAAW,CAAC;QACvD,KAAK,oBAAoB,CAAC,iBAAiB;YACzC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,gBAAgB,CAAC;QAC5D;YACE,MAAM,IAAI,KAAK,CAAC,gCAAgC,MAAM,EAAE,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,eAAe;IAC7B,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,QAAQ,CAAC;AACpD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploadFileToS3.d.ts","sourceRoot":"","sources":["../../../../src/lib/s3/uploadFileToS3.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,UAAU,kBAAkB;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,IAAI,GAAG,WAAW,CAAC;CAC7E;AAED,wBAA8B,cAAc,CAAC,EAC3C,UAAU,EACV,GAAG,EACH,IAAI,GACL,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"uploadFileToS3.d.ts","sourceRoot":"","sources":["../../../../src/lib/s3/uploadFileToS3.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,UAAU,kBAAkB;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,IAAI,GAAG,WAAW,CAAC;CAC7E;AAED,wBAA8B,cAAc,CAAC,EAC3C,UAAU,EACV,GAAG,EACH,IAAI,GACL,EAAE,kBAAkB,iBA4BpB"}
|
|
@@ -11,10 +11,17 @@ export default async function uploadFileToS3({ bucketName, key, body, }) {
|
|
|
11
11
|
},
|
|
12
12
|
});
|
|
13
13
|
try {
|
|
14
|
+
let lastLoggedMB = 0;
|
|
14
15
|
upload.on('httpUploadProgress', (progress) => {
|
|
15
|
-
|
|
16
|
+
const loadedMB = Math.floor((progress.loaded ?? 0) / (1024 * 1024));
|
|
17
|
+
// Log every 10MB to avoid spam
|
|
18
|
+
if (loadedMB >= lastLoggedMB + 10) {
|
|
19
|
+
lastLoggedMB = loadedMB;
|
|
20
|
+
console.log(`Uploading ${key}... ${loadedMB}MB`);
|
|
21
|
+
}
|
|
16
22
|
});
|
|
17
23
|
await upload.done();
|
|
24
|
+
console.log(`Uploaded ${key}`);
|
|
18
25
|
}
|
|
19
26
|
catch (error) {
|
|
20
27
|
console.log('Error. File not uploaded.', error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploadFileToS3.js","sourceRoot":"","sources":["../../../../src/lib/s3/uploadFileToS3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAS9C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,cAAc,CAAC,EAC3C,UAAU,EACV,GAAG,EACH,IAAI,GACe;IACnB,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,MAAM,EAAE,UAAU;YAClB,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,IAAI;SACX;KACF,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,QAAQ,EAAE,EAAE;YAC3C,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"uploadFileToS3.js","sourceRoot":"","sources":["../../../../src/lib/s3/uploadFileToS3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAS9C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,cAAc,CAAC,EAC3C,UAAU,EACV,GAAG,EACH,IAAI,GACe;IACnB,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,MAAM,EAAE,UAAU;YAClB,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,IAAI;SACX;KACF,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,MAAM,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,QAAQ,EAAE,EAAE;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;YACpE,+BAA+B;YAC/B,IAAI,QAAQ,IAAI,YAAY,GAAG,EAAE,EAAE,CAAC;gBAClC,YAAY,GAAG,QAAQ,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,OAAO,QAAQ,IAAI,CAAC,CAAC;YACnD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;QAChD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|