@codeyam/codeyam-cli 0.0.0 → 0.1.0-staging.036391e
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 +10 -0
- package/analyzer-template/common/checkPID.ts +9 -0
- package/analyzer-template/common/closePort.ts +19 -0
- package/analyzer-template/common/constants.ts +2 -0
- package/analyzer-template/common/copy.ts +20 -0
- package/analyzer-template/common/deleteFolder.ts +8 -0
- package/analyzer-template/common/execAsync.ts +191 -0
- package/analyzer-template/common/getPID.ts +41 -0
- package/analyzer-template/common/measureAndRepordExecutionTime.ts +16 -0
- package/analyzer-template/common/measureExecutionTime.ts +16 -0
- package/analyzer-template/common/openPage.ts +20 -0
- package/analyzer-template/common/readFile.ts +20 -0
- package/analyzer-template/common/removeQueryParamsFromFileNames.ts +34 -0
- package/analyzer-template/common/replacePaths.ts +88 -0
- package/analyzer-template/common/writeFile.ts +28 -0
- package/analyzer-template/log.txt +7 -0
- package/analyzer-template/package.json +74 -0
- package/analyzer-template/packages/ai/client.ts +23 -0
- package/analyzer-template/packages/ai/index.ts +117 -0
- package/analyzer-template/packages/ai/package.json +22 -0
- package/analyzer-template/packages/ai/scripts/ai-test-matrix.mjs +424 -0
- package/analyzer-template/packages/ai/src/lib/__mocks__/completionCall.ts +240 -0
- package/analyzer-template/packages/ai/src/lib/aiConfig.ts +30 -0
- package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +790 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/arrayDerivationDetector.ts +199 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +1092 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.ts +644 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +937 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/nodeToSource.ts +59 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/paths.ts +714 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/blockHandler.ts +28 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/breakStatementHandler.ts +21 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/doStatementHandler.ts +27 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.ts +61 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/forOfStatementHandler.ts +112 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/forStatementHandler.ts +64 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/functionDeclarationHandler.ts +212 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.ts +65 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/patternHandler.ts +32 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/returnStatementHandler.ts +63 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/standaloneExpressionHandler.ts +58 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.ts +142 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/throwStatementHandler.ts +20 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/tryStatementHandler.ts +67 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/typeAndInterfaceHandler.ts +23 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.ts +271 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/whileStatementHandler.ts +29 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/processBindings.ts +255 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +3668 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/sharedPatterns.ts +127 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +637 -0
- package/analyzer-template/packages/ai/src/lib/astScopes.ts +22 -0
- package/analyzer-template/packages/ai/src/lib/checkAllAttributes.ts +44 -0
- package/analyzer-template/packages/ai/src/lib/cleanOutBoundary.ts +33 -0
- package/analyzer-template/packages/ai/src/lib/cleanStructure.ts +201 -0
- package/analyzer-template/packages/ai/src/lib/codeQualityEntityAnalysis.ts +26 -0
- package/analyzer-template/packages/ai/src/lib/commitMessage.ts +16 -0
- package/analyzer-template/packages/ai/src/lib/completionCall.ts +681 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +6278 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/EquivalencyManager.ts +45 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/EquivalencyManagerTemplate.ts +18 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.ts +577 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.ts +144 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +593 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +976 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +1341 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.ts +152 -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 +163 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/VisitedTracker.ts +235 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +231 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +1192 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanPath.ts +25 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanPathOfNonTransformingFunctions.ts +58 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanScopeNodeName.ts +3 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.ts +70 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +364 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.ts +98 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.ts +179 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.ts +153 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/determineIsFunctionCall.ts +16 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/ensureSchemaConsistency.ts +83 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +1065 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.ts +129 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/getFunctionCallRoot.ts +41 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/getFunctionCallScopeNodeName.ts +15 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/getFunctionCallSignature.ts +17 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/isGenericArray.ts +83 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/knownMethodCalls.ts +138 -0
- 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/dataStructure/typeUtils.ts +161 -0
- package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +156 -0
- package/analyzer-template/packages/ai/src/lib/deepEqual.ts +30 -0
- package/analyzer-template/packages/ai/src/lib/describeCodeChange.ts +56 -0
- package/analyzer-template/packages/ai/src/lib/e2eDataTracking.ts +334 -0
- package/analyzer-template/packages/ai/src/lib/extractCriticalDataKeys.ts +120 -0
- package/analyzer-template/packages/ai/src/lib/extractOverlappingMocks.ts +63 -0
- package/analyzer-template/packages/ai/src/lib/generateBranchSummary.ts +55 -0
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityDocumentation.ts +82 -0
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +488 -0
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +386 -0
- package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +153 -0
- package/analyzer-template/packages/ai/src/lib/generateEntityDocumentation.ts +84 -0
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +1680 -0
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +447 -0
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +578 -0
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +528 -0
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +2267 -0
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.ts +239 -0
- package/analyzer-template/packages/ai/src/lib/generateStatementAnalysis.ts +1789 -0
- package/analyzer-template/packages/ai/src/lib/getCodeExplanation.ts +52 -0
- package/analyzer-template/packages/ai/src/lib/getConditionalUsagesFromCode.ts +442 -0
- package/analyzer-template/packages/ai/src/lib/getLLMCallCost.ts +26 -0
- package/analyzer-template/packages/ai/src/lib/getLLMCallStats.ts +40 -0
- package/analyzer-template/packages/ai/src/lib/guessScenarioDataFromDescription.ts +125 -0
- package/analyzer-template/packages/ai/src/lib/guessScenarioDataFromName.ts +87 -0
- package/analyzer-template/packages/ai/src/lib/identifyReserved.ts +734 -0
- package/analyzer-template/packages/ai/src/lib/index.ts +26 -0
- package/analyzer-template/packages/ai/src/lib/instantiatedInScope.ts +212 -0
- package/analyzer-template/packages/ai/src/lib/isFrontend.ts +4 -0
- package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +1219 -0
- package/analyzer-template/packages/ai/src/lib/isolateStatements.ts +1072 -0
- package/analyzer-template/packages/ai/src/lib/jsonTypeDefinitionToStandardTypeDefinition.ts +48 -0
- package/analyzer-template/packages/ai/src/lib/logOrderedMap.ts +49 -0
- package/analyzer-template/packages/ai/src/lib/mergeJsonTypeDefinitions.ts +53 -0
- package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +289 -0
- package/analyzer-template/packages/ai/src/lib/modelInfo.ts +249 -0
- package/analyzer-template/packages/ai/src/lib/openai/index.ts +100 -0
- package/analyzer-template/packages/ai/src/lib/parsers/fileContentToLines.ts +12 -0
- package/analyzer-template/packages/ai/src/lib/parsers/parseJsonSafe.ts +45 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/branchSummaryGenerator.ts +13 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/codeQualityEntityAnalysisGenerator.ts +53 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/commitMessageGenerator.ts +37 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +300 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityDocumentationGenerator.ts +22 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.ts +120 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +106 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChunkPrompt.ts +82 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateCriticalKeysPrompt.ts +103 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityDataMapGenerator.ts +20 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityDataStructureGenerator.ts +18 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityDocumentationGenerator.ts +16 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityPropsStructureGenerator.ts +24 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +139 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +30 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.ts +58 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/getComponentExamplesGenerator.ts +20 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/guessEditScenarioDataFromDescriptionGenerator.ts +56 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.ts +50 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/guessScenarioDataFromNameGenerator.ts +41 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/index.ts +10 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/noErrorAttributes.ts +19 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.ts +391 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/summarizeDiffGenerator.ts +10 -0
- package/analyzer-template/packages/ai/src/lib/providers.ts +47 -0
- package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +824 -0
- package/analyzer-template/packages/ai/src/lib/services/aiServiceMode.ts +166 -0
- package/analyzer-template/packages/ai/src/lib/services/claudeCliAIService.ts +283 -0
- package/analyzer-template/packages/ai/src/lib/splitOutsideParentheses.ts +337 -0
- package/analyzer-template/packages/ai/src/lib/summarizeDiff.ts +25 -0
- package/analyzer-template/packages/ai/src/lib/types/index.ts +96 -0
- package/analyzer-template/packages/ai/src/lib/validateDataStructure.ts +434 -0
- package/analyzer-template/packages/ai/src/lib/validateExecutionFlowPaths.ts +531 -0
- package/analyzer-template/packages/ai/src/lib/validateJson.ts +65 -0
- package/analyzer-template/packages/ai/src/lib/validatePlaywrightInstructions.ts +225 -0
- package/analyzer-template/packages/ai/src/lib/validateTypeStructure.ts +93 -0
- package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +353 -0
- package/analyzer-template/packages/ai/src/lib/worker/__mocks__/analyzeScopeWorkerPaths.ts +5 -0
- package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +218 -0
- package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorkerPaths.ts +26 -0
- package/analyzer-template/packages/ai/src/lib/worker/fuzzyMatchFunctionName.ts +77 -0
- package/analyzer-template/packages/ai/src/lib/wrapperDetection/detectWrapperRequirements.ts +134 -0
- package/analyzer-template/packages/ai/src/lib/wrapperDetection/index.ts +9 -0
- package/analyzer-template/packages/ai/src/lib/wrapperDetection/knownLibraryHooks.ts +95 -0
- package/analyzer-template/packages/ai/src/lib/wrapperDetection/patterns/detectThrowOnMissingPatterns.ts +189 -0
- package/analyzer-template/packages/ai/src/lib/wrapperDetection/patterns/detectUseContextCalls.ts +127 -0
- package/analyzer-template/packages/ai/tsconfig.json +10 -0
- package/analyzer-template/packages/analyze/README.md +131 -0
- package/analyzer-template/packages/analyze/TODOS.md +46 -0
- package/analyzer-template/packages/analyze/index.ts +113 -0
- package/analyzer-template/packages/analyze/package.json +13 -0
- package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +1135 -0
- package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +411 -0
- package/analyzer-template/packages/analyze/src/lib/analysisContext.ts +348 -0
- package/analyzer-template/packages/analyze/src/lib/asts/index.ts +241 -0
- package/analyzer-template/packages/analyze/src/lib/asts/nodes/getCallExpressionNames.ts +37 -0
- package/analyzer-template/packages/analyze/src/lib/asts/nodes/getFunctionNodeType.ts +25 -0
- package/analyzer-template/packages/analyze/src/lib/asts/nodes/getNodeType.ts +130 -0
- package/analyzer-template/packages/analyze/src/lib/asts/nodes/getReactComponentType.ts +39 -0
- package/analyzer-template/packages/analyze/src/lib/asts/nodes/index.ts +184 -0
- package/analyzer-template/packages/analyze/src/lib/asts/nodes/isAsyncFunction.ts +67 -0
- package/analyzer-template/packages/analyze/src/lib/asts/nodes/isDefaultExport.ts +76 -0
- package/analyzer-template/packages/analyze/src/lib/asts/nodes/propsNodeToPropsData.ts +540 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.ts +257 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllEntities.ts +6 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.ts +255 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExportedNodes.ts +133 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExports.ts +254 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getComponentProps.ts +33 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getComponentType.ts +41 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getDeclaredEntityNode.ts +25 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getDefaultExportedFunctionNode.ts +53 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getEntityNode.ts +26 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getImportMappings.ts +40 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.ts +135 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getPropsFromFunctionalComponent.ts +96 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getPseudoFile.ts +40 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getResolvedImportedTypes.ts +84 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.ts +166 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getSourceFile.ts +13 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.ts +26 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForImports.ts +21 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/index.ts +56 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/extractClassMethods.ts +139 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +1005 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/asyncComplex.ts +165 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/asyncSimple.ts +30 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/index.ts +23 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/sequential.ts +16 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/types.ts +20 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +595 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +126 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +267 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/findPreviousAnalysis.ts +31 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/findValidExistingAnalysis.ts +25 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +141 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/generateAnalysisTreeSha.ts +160 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/generateAnalyzedTreeSha.ts +10 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/guessDefaultWidth.ts +18 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/setActiveAnalysisBranches.ts +127 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.ts +122 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +160 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +236 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyzeCodeChange.ts +70 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +552 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyzeFrameworkRoute.ts +19 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +195 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyzeNextRoute.ts +112 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyzeRemixRoute.ts +140 -0
- package/analyzer-template/packages/analyze/src/lib/files/enums/steps.ts +16 -0
- package/analyzer-template/packages/analyze/src/lib/files/extractDiffLines.ts +21 -0
- package/analyzer-template/packages/analyze/src/lib/files/fileAnalyzerFromCode.ts +57 -0
- package/analyzer-template/packages/analyze/src/lib/files/findScenarioData.ts +43 -0
- package/analyzer-template/packages/analyze/src/lib/files/getEntityCode.ts +26 -0
- package/analyzer-template/packages/analyze/src/lib/files/getEntityType.ts +29 -0
- package/analyzer-template/packages/analyze/src/lib/files/getImportedExports.ts +266 -0
- package/analyzer-template/packages/analyze/src/lib/files/getNodeModuleImports.ts +37 -0
- package/analyzer-template/packages/analyze/src/lib/files/newAnalysis.ts +43 -0
- package/analyzer-template/packages/analyze/src/lib/files/recordStep.ts +35 -0
- package/analyzer-template/packages/analyze/src/lib/files/relevantDiffPart.ts +74 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +1315 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/detectChangedDataStructureFields.ts +102 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +313 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.ts +102 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/findImportedEntity.ts +36 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/findRelevantExportInfo.ts +52 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +911 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.ts +176 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.ts +232 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +826 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +264 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +234 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +134 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/isolateDataStructure.ts +71 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +1793 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.ts +244 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/propagateArrayItemSchemas.ts +474 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/reproduceImports.ts +60 -0
- package/analyzer-template/packages/analyze/src/lib/files/setImportedExports.ts +313 -0
- package/analyzer-template/packages/analyze/src/lib/index.ts +7 -0
- package/analyzer-template/packages/analyze/src/lib/projects/index.ts +48 -0
- package/analyzer-template/packages/analyze/src/lib/types/index.ts +17 -0
- package/analyzer-template/packages/analyze/src/lib/utils/deepEqual.ts +30 -0
- package/analyzer-template/packages/analyze/src/lib/utils/getAnalysisError.ts +13 -0
- package/analyzer-template/packages/analyze/src/lib/utils/getFileByPath.ts +19 -0
- package/analyzer-template/packages/analyze/src/lib/utils/measureAndReportExecutionTime.ts +22 -0
- package/analyzer-template/packages/analyze/src/lib/utils/measureExecutionTime.ts +16 -0
- package/analyzer-template/packages/analyze/tsconfig.json +10 -0
- package/analyzer-template/packages/aws/cloudwatch/index.ts +6 -0
- package/analyzer-template/packages/aws/codebuild/index.ts +7 -0
- package/analyzer-template/packages/aws/dist/src/lib/cloudwatch/getTaskLogs.d.ts +10 -0
- package/analyzer-template/packages/aws/dist/src/lib/cloudwatch/getTaskLogs.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/cloudwatch/getTaskLogs.js +31 -0
- package/analyzer-template/packages/aws/dist/src/lib/cloudwatch/getTaskLogs.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/checkForCodeBuild.d.ts +2 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/checkForCodeBuild.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/checkForCodeBuild.js +32 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/checkForCodeBuild.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/checkForCodeBuildProject.d.ts +2 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/checkForCodeBuildProject.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/checkForCodeBuildProject.js +28 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/checkForCodeBuildProject.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/createCodeBuildProject.d.ts +2 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/createCodeBuildProject.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/createCodeBuildProject.js +40 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/createCodeBuildProject.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/triggerCodeBuild.d.ts +14 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/triggerCodeBuild.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/triggerCodeBuild.js +29 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/triggerCodeBuild.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts +12 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js +61 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/loadLlmCall.d.ts +3 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/loadLlmCall.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/loadLlmCall.js +26 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/loadLlmCall.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/loadLlmCalls.d.ts +3 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/loadLlmCalls.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/loadLlmCalls.js +35 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/loadLlmCalls.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/provisionTable.d.ts +2 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/provisionTable.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/provisionTable.js +66 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/provisionTable.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/saveLlmCall.d.ts +25 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/saveLlmCall.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/saveLlmCall.js +67 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/saveLlmCall.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/tableNames.d.ts +2 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/tableNames.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/tableNames.js +6 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/tableNames.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/types.d.ts +25 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/types.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/types.js +2 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/types.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecr/checkForECRImage.d.ts +9 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecr/checkForECRImage.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecr/checkForECRImage.js +36 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecr/checkForECRImage.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecr/createECRRepository.d.ts +2 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecr/createECRRepository.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecr/createECRRepository.js +49 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecr/createECRRepository.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsCheckTaskStatus.d.ts +2 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsCheckTaskStatus.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsCheckTaskStatus.js +36 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsCheckTaskStatus.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsCreateTaskDefinition.d.ts +11 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsCreateTaskDefinition.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsCreateTaskDefinition.js +138 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsCreateTaskDefinition.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts +11 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js +30 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsStartTask.d.ts +3 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsStartTask.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsStartTask.js +51 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsStartTask.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts +24 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js +43 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.d.ts +15 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.js +31 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/getPresignedUrl.d.ts +23 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/getPresignedUrl.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/getPresignedUrl.js +30 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/getPresignedUrl.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.d.ts +9 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js +31 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/sqs/getSqsQueueSizeStats.d.ts +7 -0
- package/analyzer-template/packages/aws/dist/src/lib/sqs/getSqsQueueSizeStats.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/sqs/getSqsQueueSizeStats.js +15 -0
- package/analyzer-template/packages/aws/dist/src/lib/sqs/getSqsQueueSizeStats.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/sqs/sendSqsMessage.d.ts +5 -0
- package/analyzer-template/packages/aws/dist/src/lib/sqs/sendSqsMessage.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/sqs/sendSqsMessage.js +9 -0
- package/analyzer-template/packages/aws/dist/src/lib/sqs/sendSqsMessage.js.map +1 -0
- package/analyzer-template/packages/aws/dist/types.d.ts +8 -0
- package/analyzer-template/packages/aws/dist/types.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/types.js +2 -0
- package/analyzer-template/packages/aws/dist/types.js.map +1 -0
- package/analyzer-template/packages/aws/dynamodb/index.ts +10 -0
- package/analyzer-template/packages/aws/ecr/index.ts +4 -0
- package/analyzer-template/packages/aws/ecs/index.ts +6 -0
- package/analyzer-template/packages/aws/package.json +25 -0
- package/analyzer-template/packages/aws/s3/index.ts +7 -0
- package/analyzer-template/packages/aws/sqs/index.ts +3 -0
- package/analyzer-template/packages/aws/src/lib/cloudwatch/getTaskLogs.ts +50 -0
- package/analyzer-template/packages/aws/src/lib/codebuild/checkForCodeBuild.ts +43 -0
- package/analyzer-template/packages/aws/src/lib/codebuild/checkForCodeBuildProject.ts +30 -0
- package/analyzer-template/packages/aws/src/lib/codebuild/createCodeBuildProject.ts +51 -0
- package/analyzer-template/packages/aws/src/lib/codebuild/triggerCodeBuild.ts +52 -0
- package/analyzer-template/packages/aws/src/lib/codebuild/waitForBuild.ts +87 -0
- package/analyzer-template/packages/aws/src/lib/dynamodb/loadLlmCall.ts +31 -0
- package/analyzer-template/packages/aws/src/lib/dynamodb/loadLlmCalls.ts +44 -0
- package/analyzer-template/packages/aws/src/lib/dynamodb/provisionTable.ts +81 -0
- package/analyzer-template/packages/aws/src/lib/dynamodb/saveLlmCall.ts +118 -0
- package/analyzer-template/packages/aws/src/lib/dynamodb/tableNames.ts +5 -0
- package/analyzer-template/packages/aws/src/lib/dynamodb/types.ts +26 -0
- package/analyzer-template/packages/aws/src/lib/ecr/checkForECRImage.ts +55 -0
- package/analyzer-template/packages/aws/src/lib/ecr/createECRRepository.ts +63 -0
- package/analyzer-template/packages/aws/src/lib/ecs/ecsCheckTaskStatus.ts +43 -0
- package/analyzer-template/packages/aws/src/lib/ecs/ecsCreateTaskDefinition.ts +225 -0
- package/analyzer-template/packages/aws/src/lib/ecs/ecsDefineContainer.ts +43 -0
- package/analyzer-template/packages/aws/src/lib/ecs/ecsStartTask.ts +72 -0
- package/analyzer-template/packages/aws/src/lib/ecs/ecsTaskFactory.ts +57 -0
- package/analyzer-template/packages/aws/src/lib/s3/checkS3ObjectExists.ts +47 -0
- package/analyzer-template/packages/aws/src/lib/s3/getPresignedUrl.ts +62 -0
- package/analyzer-template/packages/aws/src/lib/s3/uploadFileToS3.ts +43 -0
- package/analyzer-template/packages/aws/src/lib/sqs/getSqsQueueSizeStats.ts +28 -0
- package/analyzer-template/packages/aws/src/lib/sqs/sendSqsMessage.ts +17 -0
- package/analyzer-template/packages/aws/tsconfig.json +11 -0
- package/analyzer-template/packages/aws/types.ts +11 -0
- package/analyzer-template/packages/database/__mocks__/index.ts +10 -0
- package/analyzer-template/packages/database/client.ts +35 -0
- package/analyzer-template/packages/database/index.ts +93 -0
- package/analyzer-template/packages/database/package.json +31 -0
- package/analyzer-template/packages/database/src/lib/analysisBranchToDb.ts +28 -0
- package/analyzer-template/packages/database/src/lib/analysisToDb.ts +59 -0
- package/analyzer-template/packages/database/src/lib/backgroundJobToDb.ts +21 -0
- package/analyzer-template/packages/database/src/lib/branchToDb.ts +24 -0
- package/analyzer-template/packages/database/src/lib/client/listenForCommits_Client.ts +30 -0
- package/analyzer-template/packages/database/src/lib/client/loadAnalysesInClient.ts +146 -0
- package/analyzer-template/packages/database/src/lib/client/loadAnalysis_Client.ts +134 -0
- package/analyzer-template/packages/database/src/lib/client/loadBranches_Client.ts +45 -0
- package/analyzer-template/packages/database/src/lib/client/loadCommit_Client.ts +79 -0
- package/analyzer-template/packages/database/src/lib/client/upsertFiles_Client.ts +50 -0
- package/analyzer-template/packages/database/src/lib/commitBranchToDb.ts +20 -0
- package/analyzer-template/packages/database/src/lib/commitToDb.ts +47 -0
- package/analyzer-template/packages/database/src/lib/createOrUpdateBranchCommitStats.ts +182 -0
- package/analyzer-template/packages/database/src/lib/createProject.ts +34 -0
- package/analyzer-template/packages/database/src/lib/createRetryFetch.ts +45 -0
- package/analyzer-template/packages/database/src/lib/dbToAnalysis.ts +76 -0
- package/analyzer-template/packages/database/src/lib/dbToAnalysisBranch.ts +28 -0
- package/analyzer-template/packages/database/src/lib/dbToBackgroundJob.ts +25 -0
- package/analyzer-template/packages/database/src/lib/dbToBranch.ts +39 -0
- package/analyzer-template/packages/database/src/lib/dbToCommit.ts +65 -0
- package/analyzer-template/packages/database/src/lib/dbToCommitBranch.ts +22 -0
- package/analyzer-template/packages/database/src/lib/dbToEntity.ts +42 -0
- package/analyzer-template/packages/database/src/lib/dbToEntityBranch.ts +17 -0
- package/analyzer-template/packages/database/src/lib/dbToFile.ts +16 -0
- package/analyzer-template/packages/database/src/lib/dbToProject.ts +30 -0
- package/analyzer-template/packages/database/src/lib/dbToScenario.ts +39 -0
- package/analyzer-template/packages/database/src/lib/dbToScenarioComment.ts +36 -0
- package/analyzer-template/packages/database/src/lib/dbToUserScenario.ts +32 -0
- package/analyzer-template/packages/database/src/lib/deleteBranch.ts +28 -0
- package/analyzer-template/packages/database/src/lib/deleteEntities.ts +32 -0
- package/analyzer-template/packages/database/src/lib/deleteFile.ts +19 -0
- package/analyzer-template/packages/database/src/lib/deleteScenarios.ts +41 -0
- package/analyzer-template/packages/database/src/lib/entityToDb.ts +83 -0
- package/analyzer-template/packages/database/src/lib/fileToDb.ts +17 -0
- package/analyzer-template/packages/database/src/lib/generateSha.ts +14 -0
- package/analyzer-template/packages/database/src/lib/jsonUpdateUtils.ts +43 -0
- package/analyzer-template/packages/database/src/lib/kysely/aggregationHelpers.ts +107 -0
- package/analyzer-template/packages/database/src/lib/kysely/db.ts +495 -0
- package/analyzer-template/packages/database/src/lib/kysely/schemaHelpers.ts +18 -0
- package/analyzer-template/packages/database/src/lib/kysely/sqliteBooleanPlugin.ts +46 -0
- package/analyzer-template/packages/database/src/lib/kysely/tableRelations.ts +108 -0
- package/analyzer-template/packages/database/src/lib/kysely/tableRelationsTypes.ts +26 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/analysesTable.ts +69 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/analysisBranchesTable.ts +46 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/backgroundJobsTable.ts +47 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/branchesTable.ts +49 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/commitBranchesTable.ts +36 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/commitsTable.ts +67 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +88 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/entitiesTable.ts +55 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/entityBranchesTable.ts +42 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/entityStatementsTable.ts +44 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/filesTable.ts +47 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/githubPayloadsTable.ts +48 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/githubUsersTable.ts +36 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/labsRequestsTable.ts +52 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/projectsTable.ts +51 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/scenarioCommentsTable.ts +44 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/scenariosTable.ts +43 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/statementsTable.ts +38 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/teamsTable.ts +34 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/userScenariosTable.ts +44 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/userTeamsTable.ts +32 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/usersTable.ts +42 -0
- package/analyzer-template/packages/database/src/lib/kysely/upsertHelpers.ts +24 -0
- package/analyzer-template/packages/database/src/lib/kysely.ts +1 -0
- package/analyzer-template/packages/database/src/lib/loadAnalyses.ts +275 -0
- package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +223 -0
- package/analyzer-template/packages/database/src/lib/loadAnalysisBranches.ts +238 -0
- package/analyzer-template/packages/database/src/lib/loadBackgroundJob.ts +23 -0
- package/analyzer-template/packages/database/src/lib/loadBranch.ts +137 -0
- package/analyzer-template/packages/database/src/lib/loadBranches.ts +52 -0
- package/analyzer-template/packages/database/src/lib/loadCommit.ts +173 -0
- package/analyzer-template/packages/database/src/lib/loadCommitBranches.ts +78 -0
- package/analyzer-template/packages/database/src/lib/loadCommitMetadata.ts +34 -0
- package/analyzer-template/packages/database/src/lib/loadCommits.ts +279 -0
- package/analyzer-template/packages/database/src/lib/loadEntities.ts +117 -0
- package/analyzer-template/packages/database/src/lib/loadEntity.ts +105 -0
- package/analyzer-template/packages/database/src/lib/loadEntityBranches.ts +178 -0
- package/analyzer-template/packages/database/src/lib/loadFile.ts +42 -0
- package/analyzer-template/packages/database/src/lib/loadFiles.ts +134 -0
- package/analyzer-template/packages/database/src/lib/loadMostRecentPreviousAnalysis.ts +132 -0
- package/analyzer-template/packages/database/src/lib/loadProject.ts +70 -0
- package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +101 -0
- package/analyzer-template/packages/database/src/lib/loadScenario.ts +38 -0
- package/analyzer-template/packages/database/src/lib/loadStatement.ts +23 -0
- package/analyzer-template/packages/database/src/lib/nullsToUndefines.ts +8 -0
- package/analyzer-template/packages/database/src/lib/projectToDb.ts +35 -0
- package/analyzer-template/packages/database/src/lib/saveBackgroundEvent.ts +19 -0
- package/analyzer-template/packages/database/src/lib/saveEntityStatements.ts +27 -0
- package/analyzer-template/packages/database/src/lib/saveFiles.ts +43 -0
- package/analyzer-template/packages/database/src/lib/saveStatement.ts +24 -0
- package/analyzer-template/packages/database/src/lib/scenarioCommentToDb.ts +35 -0
- package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +35 -0
- package/analyzer-template/packages/database/src/lib/supabase.ts +85 -0
- package/analyzer-template/packages/database/src/lib/updateBackgroundJobProgress.ts +90 -0
- package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +180 -0
- package/analyzer-template/packages/database/src/lib/updateEntityBranch.ts +29 -0
- package/analyzer-template/packages/database/src/lib/updateFreshAnalysisMetadata.ts +63 -0
- package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatus.ts +64 -0
- package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.ts +94 -0
- package/analyzer-template/packages/database/src/lib/updateProjectMetadata.ts +95 -0
- package/analyzer-template/packages/database/src/lib/upsertAnalyses.ts +58 -0
- package/analyzer-template/packages/database/src/lib/upsertAnalysesWithScenarios.ts +94 -0
- package/analyzer-template/packages/database/src/lib/upsertAnalysisBranches.ts +96 -0
- package/analyzer-template/packages/database/src/lib/upsertBackgroundJob.ts +33 -0
- package/analyzer-template/packages/database/src/lib/upsertBranches.ts +32 -0
- package/analyzer-template/packages/database/src/lib/upsertCommitBranches.ts +36 -0
- package/analyzer-template/packages/database/src/lib/upsertCommits.ts +57 -0
- package/analyzer-template/packages/database/src/lib/upsertEntities.ts +105 -0
- package/analyzer-template/packages/database/src/lib/upsertEntityBranches.ts +40 -0
- package/analyzer-template/packages/database/src/lib/upsertFiles.ts +45 -0
- package/analyzer-template/packages/database/src/lib/upsertGithubUser.ts +32 -0
- package/analyzer-template/packages/database/src/lib/upsertProjects.ts +32 -0
- package/analyzer-template/packages/database/src/lib/upsertScenarios.ts +31 -0
- package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +18 -0
- package/analyzer-template/packages/database/tsconfig.json +10 -0
- package/analyzer-template/packages/generate/index.ts +15 -0
- package/analyzer-template/packages/generate/jest.config.ts +11 -0
- package/analyzer-template/packages/generate/package.json +13 -0
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts +157 -0
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.ts +119 -0
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +193 -0
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.ts +73 -0
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.ts +86 -0
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getImageReplacementCode.ts +134 -0
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getNextJsErrorClosingCode.ts +66 -0
- package/analyzer-template/packages/generate/src/lib/constants.ts +3 -0
- package/analyzer-template/packages/generate/src/lib/deepMerge.ts +69 -0
- package/analyzer-template/packages/generate/src/lib/directExecutionScript.ts +185 -0
- package/analyzer-template/packages/generate/src/lib/escapeQuotes.ts +3 -0
- package/analyzer-template/packages/generate/src/lib/getComponentImportStatement.ts +60 -0
- package/analyzer-template/packages/generate/src/lib/getComponentImportStatements.ts +38 -0
- package/analyzer-template/packages/generate/src/lib/getComponentScenarioPath.ts +40 -0
- package/analyzer-template/packages/generate/src/lib/getRelativePath.ts +42 -0
- package/analyzer-template/packages/generate/src/lib/handleCmdk.ts +61 -0
- package/analyzer-template/packages/generate/src/lib/handleRadix.ts +362 -0
- package/analyzer-template/packages/generate/src/lib/handleWrappers.ts +30 -0
- package/analyzer-template/packages/generate/src/lib/libDemoComponent.ts +186 -0
- package/analyzer-template/packages/generate/src/lib/mergeRootRemix.ts +410 -0
- package/analyzer-template/packages/generate/src/lib/requiredNodeModuleImports.ts +55 -0
- package/analyzer-template/packages/generate/src/lib/safeFolder.ts +9 -0
- package/analyzer-template/packages/generate/src/lib/scenarioComponent.ts +122 -0
- package/analyzer-template/packages/generate/src/lib/scenarioComponentForServer.ts +114 -0
- package/analyzer-template/packages/generate/src/lib/simpleRootRemix.ts +74 -0
- package/analyzer-template/packages/generate/tsconfig.json +10 -0
- package/analyzer-template/packages/github/__mocks__/@octokit/auth-app.ts +4 -0
- package/analyzer-template/packages/github/__mocks__/@octokit/rest.ts +77 -0
- package/analyzer-template/packages/github/dist/database/index.d.ts +86 -0
- package/analyzer-template/packages/github/dist/database/index.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/index.js +84 -0
- package/analyzer-template/packages/github/dist/database/index.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.d.ts +5 -0
- package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js +19 -0
- package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.d.ts +5 -0
- package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js +26 -0
- package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/backgroundJobToDb.d.ts +7 -0
- package/analyzer-template/packages/github/dist/database/src/lib/backgroundJobToDb.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/backgroundJobToDb.js +13 -0
- package/analyzer-template/packages/github/dist/database/src/lib/backgroundJobToDb.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.d.ts +5 -0
- package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js +18 -0
- package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.d.ts +5 -0
- package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js +13 -0
- package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.d.ts +5 -0
- package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js +26 -0
- package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/createOrUpdateBranchCommitStats.d.ts +18 -0
- package/analyzer-template/packages/github/dist/database/src/lib/createOrUpdateBranchCommitStats.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/createOrUpdateBranchCommitStats.js +108 -0
- package/analyzer-template/packages/github/dist/database/src/lib/createOrUpdateBranchCommitStats.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/createProject.d.ts +2 -0
- package/analyzer-template/packages/github/dist/database/src/lib/createProject.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/createProject.js +22 -0
- package/analyzer-template/packages/github/dist/database/src/lib/createProject.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/createRetryFetch.d.ts +5 -0
- package/analyzer-template/packages/github/dist/database/src/lib/createRetryFetch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/createRetryFetch.js +42 -0
- package/analyzer-template/packages/github/dist/database/src/lib/createRetryFetch.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToAnalysis.d.ts +4 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToAnalysis.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToAnalysis.js +48 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToAnalysis.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToAnalysisBranch.d.ts +4 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToAnalysisBranch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToAnalysisBranch.js +24 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToAnalysisBranch.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToBackgroundJob.d.ts +4 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToBackgroundJob.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToBackgroundJob.js +13 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToBackgroundJob.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToBranch.d.ts +4 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToBranch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToBranch.js +22 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToBranch.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToCommit.d.ts +4 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToCommit.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToCommit.js +40 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToCommit.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToCommitBranch.d.ts +4 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToCommitBranch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToCommitBranch.js +18 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToCommitBranch.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToEntity.d.ts +4 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToEntity.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToEntity.js +23 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToEntity.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToEntityBranch.d.ts +4 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToEntityBranch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToEntityBranch.js +13 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToEntityBranch.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToFile.d.ts +4 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToFile.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToFile.js +14 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToFile.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToProject.d.ts +4 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToProject.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToProject.js +16 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToProject.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToScenario.d.ts +4 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToScenario.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToScenario.js +24 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToScenario.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToScenarioComment.d.ts +4 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToScenarioComment.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToScenarioComment.js +21 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToScenarioComment.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToUserScenario.d.ts +4 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToUserScenario.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToUserScenario.js +19 -0
- package/analyzer-template/packages/github/dist/database/src/lib/dbToUserScenario.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/deleteBranch.d.ts +5 -0
- package/analyzer-template/packages/github/dist/database/src/lib/deleteBranch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/deleteBranch.js +21 -0
- package/analyzer-template/packages/github/dist/database/src/lib/deleteBranch.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/deleteEntities.d.ts +7 -0
- package/analyzer-template/packages/github/dist/database/src/lib/deleteEntities.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/deleteEntities.js +23 -0
- package/analyzer-template/packages/github/dist/database/src/lib/deleteEntities.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/deleteFile.d.ts +32 -0
- package/analyzer-template/packages/github/dist/database/src/lib/deleteFile.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/deleteFile.js +18 -0
- package/analyzer-template/packages/github/dist/database/src/lib/deleteFile.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/deleteScenarios.d.ts +7 -0
- package/analyzer-template/packages/github/dist/database/src/lib/deleteScenarios.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/deleteScenarios.js +34 -0
- package/analyzer-template/packages/github/dist/database/src/lib/deleteScenarios.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/entityToDb.d.ts +5 -0
- package/analyzer-template/packages/github/dist/database/src/lib/entityToDb.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/entityToDb.js +54 -0
- package/analyzer-template/packages/github/dist/database/src/lib/entityToDb.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.d.ts +5 -0
- package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js +14 -0
- package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/generateSha.d.ts +2 -0
- package/analyzer-template/packages/github/dist/database/src/lib/generateSha.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/generateSha.js +15 -0
- package/analyzer-template/packages/github/dist/database/src/lib/generateSha.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/jsonUpdateUtils.d.ts +9 -0
- package/analyzer-template/packages/github/dist/database/src/lib/jsonUpdateUtils.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/jsonUpdateUtils.js +28 -0
- package/analyzer-template/packages/github/dist/database/src/lib/jsonUpdateUtils.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/aggregationHelpers.d.ts +41 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/aggregationHelpers.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/aggregationHelpers.js +66 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/aggregationHelpers.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +71 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +373 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/schemaHelpers.d.ts +4 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/schemaHelpers.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/schemaHelpers.js +17 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/schemaHelpers.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/sqliteBooleanPlugin.d.ts +7 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/sqliteBooleanPlugin.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/sqliteBooleanPlugin.js +34 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/sqliteBooleanPlugin.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tableRelations.d.ts +89 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tableRelations.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tableRelations.js +2 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tableRelations.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tableRelationsTypes.d.ts +7 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tableRelationsTypes.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tableRelationsTypes.js +7 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tableRelationsTypes.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts +97 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.js +52 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysisBranchesTable.d.ts +17 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysisBranchesTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysisBranchesTable.js +24 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysisBranchesTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/backgroundJobsTable.d.ts +27 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/backgroundJobsTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/backgroundJobsTable.js +28 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/backgroundJobsTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/branchesTable.d.ts +42 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/branchesTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/branchesTable.js +34 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/branchesTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitBranchesTable.d.ts +16 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitBranchesTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitBranchesTable.js +22 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitBranchesTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts +48 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js +47 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/commitsTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +60 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js +33 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts +68 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.js +38 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entitiesTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entityBranchesTable.d.ts +14 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entityBranchesTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entityBranchesTable.js +22 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entityBranchesTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entityStatementsTable.d.ts +16 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entityStatementsTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entityStatementsTable.js +22 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/entityStatementsTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/filesTable.d.ts +40 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/filesTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/filesTable.js +28 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/filesTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/githubPayloadsTable.d.ts +21 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/githubPayloadsTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/githubPayloadsTable.js +32 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/githubPayloadsTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/githubUsersTable.d.ts +16 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/githubUsersTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/githubUsersTable.js +22 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/githubUsersTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts +23 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/projectsTable.d.ts +25 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/projectsTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/projectsTable.js +38 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/projectsTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenarioCommentsTable.d.ts +19 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenarioCommentsTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenarioCommentsTable.js +28 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenarioCommentsTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +61 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.js +30 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/statementsTable.d.ts +17 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/statementsTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/statementsTable.js +24 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/statementsTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/teamsTable.d.ts +14 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/teamsTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/teamsTable.js +18 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/teamsTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/userScenariosTable.d.ts +17 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/userScenariosTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/userScenariosTable.js +24 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/userScenariosTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/userTeamsTable.d.ts +12 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/userTeamsTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/userTeamsTable.js +17 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/userTeamsTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/usersTable.d.ts +18 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/usersTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/usersTable.js +26 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/usersTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/upsertHelpers.d.ts +4 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/upsertHelpers.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/upsertHelpers.js +9 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/upsertHelpers.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts +16 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js +174 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalyses.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts +18 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +138 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysisBranches.d.ts +26 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysisBranches.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysisBranches.js +152 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysisBranches.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadBackgroundJob.d.ts +4 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadBackgroundJob.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadBackgroundJob.js +19 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadBackgroundJob.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.d.ts +12 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js +100 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadBranch.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadBranches.d.ts +9 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadBranches.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadBranches.js +37 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadBranches.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.d.ts +16 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js +118 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommit.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommitBranches.d.ts +11 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommitBranches.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommitBranches.js +45 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommitBranches.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommitMetadata.d.ts +23 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommitMetadata.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommitMetadata.js +26 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommitMetadata.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts +15 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +209 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts +13 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js +82 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntities.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.d.ts +16 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.js +72 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.d.ts +17 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js +123 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntityBranches.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadFile.d.ts +6 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadFile.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadFile.js +28 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadFile.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadFiles.d.ts +15 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadFiles.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadFiles.js +101 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadFiles.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadMostRecentPreviousAnalysis.d.ts +11 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadMostRecentPreviousAnalysis.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadMostRecentPreviousAnalysis.js +80 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadMostRecentPreviousAnalysis.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadProject.d.ts +9 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadProject.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadProject.js +52 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadProject.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts +8 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +68 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadScenario.d.ts +5 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadScenario.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadScenario.js +30 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadScenario.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadStatement.d.ts +3 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadStatement.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadStatement.js +21 -0
- package/analyzer-template/packages/github/dist/database/src/lib/loadStatement.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/nullsToUndefines.d.ts +2 -0
- package/analyzer-template/packages/github/dist/database/src/lib/nullsToUndefines.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/nullsToUndefines.js +7 -0
- package/analyzer-template/packages/github/dist/database/src/lib/nullsToUndefines.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.d.ts +5 -0
- package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js +18 -0
- package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/saveBackgroundEvent.d.ts +7 -0
- package/analyzer-template/packages/github/dist/database/src/lib/saveBackgroundEvent.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/saveBackgroundEvent.js +10 -0
- package/analyzer-template/packages/github/dist/database/src/lib/saveBackgroundEvent.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/saveEntityStatements.d.ts +3 -0
- package/analyzer-template/packages/github/dist/database/src/lib/saveEntityStatements.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/saveEntityStatements.js +20 -0
- package/analyzer-template/packages/github/dist/database/src/lib/saveEntityStatements.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.d.ts +5 -0
- package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js +33 -0
- package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/saveStatement.d.ts +3 -0
- package/analyzer-template/packages/github/dist/database/src/lib/saveStatement.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/saveStatement.js +22 -0
- package/analyzer-template/packages/github/dist/database/src/lib/saveStatement.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.d.ts +5 -0
- package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js +18 -0
- package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/supabase.d.ts +4 -0
- package/analyzer-template/packages/github/dist/database/src/lib/supabase.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/supabase.js +57 -0
- package/analyzer-template/packages/github/dist/database/src/lib/supabase.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/updateBackgroundJobProgress.d.ts +3 -0
- package/analyzer-template/packages/github/dist/database/src/lib/updateBackgroundJobProgress.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/updateBackgroundJobProgress.js +61 -0
- package/analyzer-template/packages/github/dist/database/src/lib/updateBackgroundJobProgress.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts +13 -0
- package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +101 -0
- package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/updateEntityBranch.d.ts +3 -0
- package/analyzer-template/packages/github/dist/database/src/lib/updateEntityBranch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/updateEntityBranch.js +21 -0
- package/analyzer-template/packages/github/dist/database/src/lib/updateEntityBranch.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisMetadata.d.ts +7 -0
- package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisMetadata.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisMetadata.js +42 -0
- package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisMetadata.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.d.ts +7 -0
- package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js +42 -0
- package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.d.ts +10 -0
- package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +70 -0
- package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/updateProjectMetadata.d.ts +10 -0
- package/analyzer-template/packages/github/dist/database/src/lib/updateProjectMetadata.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/updateProjectMetadata.js +60 -0
- package/analyzer-template/packages/github/dist/database/src/lib/updateProjectMetadata.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertAnalyses.d.ts +3 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertAnalyses.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertAnalyses.js +53 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertAnalyses.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertAnalysesWithScenarios.d.ts +7 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertAnalysesWithScenarios.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertAnalysesWithScenarios.js +62 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertAnalysesWithScenarios.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertAnalysisBranches.d.ts +3 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertAnalysisBranches.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertAnalysisBranches.js +72 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertAnalysisBranches.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertBackgroundJob.d.ts +3 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertBackgroundJob.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertBackgroundJob.js +22 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertBackgroundJob.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertBranches.d.ts +3 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertBranches.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertBranches.js +29 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertBranches.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertCommitBranches.d.ts +3 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertCommitBranches.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertCommitBranches.js +29 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertCommitBranches.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertCommits.d.ts +8 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertCommits.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertCommits.js +41 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertCommits.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertEntities.d.ts +3 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertEntities.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertEntities.js +82 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertEntities.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertEntityBranches.d.ts +3 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertEntityBranches.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertEntityBranches.js +27 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertEntityBranches.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertFiles.d.ts +3 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertFiles.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertFiles.js +32 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertFiles.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertGithubUser.d.ts +8 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertGithubUser.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertGithubUser.js +27 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertGithubUser.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertProjects.d.ts +3 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertProjects.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertProjects.js +27 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertProjects.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertScenarios.d.ts +3 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertScenarios.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertScenarios.js +28 -0
- package/analyzer-template/packages/github/dist/database/src/lib/upsertScenarios.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/index.d.ts +16 -0
- package/analyzer-template/packages/github/dist/generate/index.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/index.js +16 -0
- package/analyzer-template/packages/github/dist/generate/index.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts +11 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +136 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.d.ts +3 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js +108 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts +9 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts +20 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.d.ts +4 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +82 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getImageReplacementCode.d.ts +7 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getImageReplacementCode.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getImageReplacementCode.js +134 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getImageReplacementCode.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getNextJsErrorClosingCode.d.ts +2 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getNextJsErrorClosingCode.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getNextJsErrorClosingCode.js +67 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getNextJsErrorClosingCode.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/constants.d.ts +2 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/constants.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/constants.js +3 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/constants.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.d.ts +2 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.js +72 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/directExecutionScript.d.ts +14 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/directExecutionScript.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/directExecutionScript.js +165 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/directExecutionScript.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/escapeQuotes.d.ts +2 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/escapeQuotes.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/escapeQuotes.js +4 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/escapeQuotes.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentImportStatement.d.ts +13 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentImportStatement.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentImportStatement.js +23 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentImportStatement.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentImportStatements.d.ts +10 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentImportStatements.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentImportStatements.js +24 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentImportStatements.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentScenarioPath.d.ts +4 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentScenarioPath.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentScenarioPath.js +25 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentScenarioPath.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getRelativePath.d.ts +2 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getRelativePath.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getRelativePath.js +32 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getRelativePath.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/handleCmdk.d.ts +8 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/handleCmdk.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/handleCmdk.js +50 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/handleCmdk.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/handleRadix.d.ts +18 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/handleRadix.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/handleRadix.js +224 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/handleRadix.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/handleWrappers.d.ts +3 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/handleWrappers.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/handleWrappers.js +24 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/handleWrappers.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/libDemoComponent.d.ts +3 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/libDemoComponent.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/libDemoComponent.js +160 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/libDemoComponent.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/mergeRootRemix.d.ts +9 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/mergeRootRemix.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/mergeRootRemix.js +323 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/mergeRootRemix.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/requiredNodeModuleImports.d.ts +11 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/requiredNodeModuleImports.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/requiredNodeModuleImports.js +45 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/requiredNodeModuleImports.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/safeFolder.d.ts +2 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/safeFolder.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/safeFolder.js +11 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/safeFolder.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.d.ts +6 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.js +94 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.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/generate/src/lib/simpleRootRemix.d.ts +3 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/simpleRootRemix.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/simpleRootRemix.js +73 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/simpleRootRemix.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/index.d.ts +23 -0
- package/analyzer-template/packages/github/dist/github/index.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/index.js +23 -0
- package/analyzer-template/packages/github/dist/github/index.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/__mocks__/createProjectOctokit.d.ts +3 -0
- package/analyzer-template/packages/github/dist/github/src/lib/__mocks__/createProjectOctokit.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/__mocks__/createProjectOctokit.js +8 -0
- package/analyzer-template/packages/github/dist/github/src/lib/__mocks__/createProjectOctokit.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/constants.d.ts +4 -0
- package/analyzer-template/packages/github/dist/github/src/lib/constants.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/constants.js +4 -0
- package/analyzer-template/packages/github/dist/github/src/lib/constants.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/createProjectOctokit.d.ts +5 -0
- package/analyzer-template/packages/github/dist/github/src/lib/createProjectOctokit.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/createProjectOctokit.js +48 -0
- package/analyzer-template/packages/github/dist/github/src/lib/createProjectOctokit.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getBranch.d.ts +8 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getBranch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getBranch.js +11 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getBranch.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getBranchCommits.d.ts +12 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getBranchCommits.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getBranchCommits.js +24 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getBranchCommits.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getBranches.d.ts +6 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getBranches.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getBranches.js +14 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getBranches.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommit.d.ts +9 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommit.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommit.js +12 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommit.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommitFromGithub.d.ts +6 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommitFromGithub.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommitFromGithub.js +57 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommitFromGithub.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommits.d.ts +12 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommits.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommits.js +37 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommits.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommitsFromGithub.d.ts +13 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommitsFromGithub.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommitsFromGithub.js +163 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommitsFromGithub.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getDiffBetweenCommits.d.ts +3 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getDiffBetweenCommits.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getDiffBetweenCommits.js +26 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getDiffBetweenCommits.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getFileContent.d.ts +12 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getFileContent.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getFileContent.js +14 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getFileContent.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getFirstCommitShaAfterTimestamp.d.ts +2 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getFirstCommitShaAfterTimestamp.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getFirstCommitShaAfterTimestamp.js +22 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getFirstCommitShaAfterTimestamp.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getLatestCommit.d.ts +8 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getLatestCommit.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getLatestCommit.js +28 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getLatestCommit.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getOpenPullRequests.d.ts +9 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getOpenPullRequests.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getOpenPullRequests.js +28 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getOpenPullRequests.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getPublicReposWithQuery.d.ts +6 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getPublicReposWithQuery.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getPublicReposWithQuery.js +12 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getPublicReposWithQuery.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getPullRequestsForCommit.d.ts +607 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getPullRequestsForCommit.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getPullRequestsForCommit.js +21 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getPullRequestsForCommit.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getRepoInfo.d.ts +20 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getRepoInfo.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getRepoInfo.js +35 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getRepoInfo.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getRepoWithBranches.d.ts +7 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getRepoWithBranches.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getRepoWithBranches.js +53 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getRepoWithBranches.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getRepos.d.ts +17 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getRepos.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getRepos.js +13 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getRepos.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getTree.d.ts +6 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getTree.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getTree.js +14 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getTree.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/githubToCommit.d.ts +5 -0
- package/analyzer-template/packages/github/dist/github/src/lib/githubToCommit.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/githubToCommit.js +20 -0
- package/analyzer-template/packages/github/dist/github/src/lib/githubToCommit.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/listCommitsSince.d.ts +11 -0
- package/analyzer-template/packages/github/dist/github/src/lib/listCommitsSince.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/listCommitsSince.js +10 -0
- package/analyzer-template/packages/github/dist/github/src/lib/listCommitsSince.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.d.ts +14 -0
- package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js +149 -0
- package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncBranches.d.ts +12 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncBranches.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncBranches.js +74 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncBranches.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncHeadBranches.d.ts +6 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncHeadBranches.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncHeadBranches.js +38 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncHeadBranches.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.d.ts +9 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js +75 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncPullRequest.d.ts +27 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncPullRequest.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncPullRequest.js +48 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncPullRequest.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncRepo.d.ts +9 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncRepo.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncRepo.js +26 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncRepo.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/updateCommitBranchesInDb.d.ts +7 -0
- package/analyzer-template/packages/github/dist/github/src/lib/updateCommitBranchesInDb.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/updateCommitBranchesInDb.js +40 -0
- package/analyzer-template/packages/github/dist/github/src/lib/updateCommitBranchesInDb.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/updateFilesInDb.d.ts +13 -0
- package/analyzer-template/packages/github/dist/github/src/lib/updateFilesInDb.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/updateFilesInDb.js +74 -0
- package/analyzer-template/packages/github/dist/github/src/lib/updateFilesInDb.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/urls.d.ts +11 -0
- package/analyzer-template/packages/github/dist/github/src/lib/urls.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/urls.js +11 -0
- package/analyzer-template/packages/github/dist/github/src/lib/urls.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/index.d.ts +47 -0
- package/analyzer-template/packages/github/dist/types/index.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/index.js +4 -0
- package/analyzer-template/packages/github/dist/types/index.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/constants.d.ts +2 -0
- package/analyzer-template/packages/github/dist/types/src/constants.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/constants.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/constants.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts +9 -0
- package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js +10 -0
- package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts +207 -0
- package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Analysis.js +3 -0
- package/analyzer-template/packages/github/dist/types/src/types/Analysis.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/AnalysisBranch.d.ts +15 -0
- package/analyzer-template/packages/github/dist/types/src/types/AnalysisBranch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/AnalysisBranch.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/AnalysisBranch.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/AnalysisMap.d.ts +12 -0
- package/analyzer-template/packages/github/dist/types/src/types/AnalysisMap.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/AnalysisMap.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/AnalysisMap.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/BackgroundJob.d.ts +19 -0
- package/analyzer-template/packages/github/dist/types/src/types/BackgroundJob.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/BackgroundJob.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/BackgroundJob.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Branch.d.ts +43 -0
- package/analyzer-template/packages/github/dist/types/src/types/Branch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Branch.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/Branch.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/CodeExplanation.d.ts +4 -0
- package/analyzer-template/packages/github/dist/types/src/types/CodeExplanation.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/CodeExplanation.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/CodeExplanation.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts +88 -0
- package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Commit.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/Commit.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/CommitBranch.d.ts +11 -0
- package/analyzer-template/packages/github/dist/types/src/types/CommitBranch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/CommitBranch.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/CommitBranch.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/CommitChange.d.ts +9 -0
- package/analyzer-template/packages/github/dist/types/src/types/CommitChange.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/CommitChange.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/CommitChange.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/DeepPartial.d.ts +4 -0
- package/analyzer-template/packages/github/dist/types/src/types/DeepPartial.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/DeepPartial.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/DeepPartial.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/DeepReadonly.d.ts +4 -0
- package/analyzer-template/packages/github/dist/types/src/types/DeepReadonly.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/DeepReadonly.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/DeepReadonly.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/DependencyTreeNode.d.ts +8 -0
- package/analyzer-template/packages/github/dist/types/src/types/DependencyTreeNode.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/DependencyTreeNode.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/DependencyTreeNode.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts +100 -0
- package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Entity.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/Entity.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/EntityBranch.d.ts +8 -0
- package/analyzer-template/packages/github/dist/types/src/types/EntityBranch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/EntityBranch.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/EntityBranch.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/EntityMap.d.ts +7 -0
- package/analyzer-template/packages/github/dist/types/src/types/EntityMap.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/EntityMap.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/EntityMap.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/EntityType.d.ts +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/EntityType.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/EntityType.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/EntityType.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/File.d.ts +45 -0
- package/analyzer-template/packages/github/dist/types/src/types/File.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/File.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/File.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/FilePreMock.d.ts +7 -0
- package/analyzer-template/packages/github/dist/types/src/types/FilePreMock.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/FilePreMock.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/FilePreMock.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/FileProp.d.ts +8 -0
- package/analyzer-template/packages/github/dist/types/src/types/FileProp.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/FileProp.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/FileProp.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/FileType.d.ts +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/FileType.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/FileType.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/FileType.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubBranch.d.ts +7 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubBranch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubBranch.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubBranch.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubFile.d.ts +9 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubFile.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubFile.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubFile.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubRepoData.d.ts +9 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubRepoData.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubRepoData.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubRepoData.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubRepoInfo.d.ts +15 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubRepoInfo.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubRepoInfo.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubRepoInfo.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/JsonTypeDefinition.d.ts +4 -0
- package/analyzer-template/packages/github/dist/types/src/types/JsonTypeDefinition.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/JsonTypeDefinition.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/JsonTypeDefinition.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/LlmCall.d.ts +5 -0
- package/analyzer-template/packages/github/dist/types/src/types/LlmCall.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/LlmCall.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/LlmCall.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Mock.d.ts +35 -0
- package/analyzer-template/packages/github/dist/types/src/types/Mock.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Mock.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/Mock.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Project.d.ts +26 -0
- package/analyzer-template/packages/github/dist/types/src/types/Project.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Project.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/Project.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +53 -0
- package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/PropsWithTypes.d.ts +8 -0
- package/analyzer-template/packages/github/dist/types/src/types/PropsWithTypes.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/PropsWithTypes.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/PropsWithTypes.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +117 -0
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenarioComment.d.ts +12 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenarioComment.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenarioComment.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenarioComment.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenarioData.d.ts +13 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenarioData.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenarioData.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenarioData.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +270 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts +18 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Statement.d.ts +11 -0
- package/analyzer-template/packages/github/dist/types/src/types/Statement.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Statement.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/Statement.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts +14 -0
- package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Team.d.ts +5 -0
- package/analyzer-template/packages/github/dist/types/src/types/Team.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Team.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/Team.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/TimelineItem.d.ts +17 -0
- package/analyzer-template/packages/github/dist/types/src/types/TimelineItem.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/TimelineItem.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/TimelineItem.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/TsConfigPaths.d.ts +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/TsConfigPaths.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/TsConfigPaths.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/TsConfigPaths.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/TypeStructures.d.ts +5 -0
- package/analyzer-template/packages/github/dist/types/src/types/TypeStructures.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/TypeStructures.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/TypeStructures.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/User.d.ts +7 -0
- package/analyzer-template/packages/github/dist/types/src/types/User.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/User.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/User.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/UserScenario.d.ts +10 -0
- package/analyzer-template/packages/github/dist/types/src/types/UserScenario.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/UserScenario.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/UserScenario.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/WebContainerFileSystemTree.d.ts +14 -0
- package/analyzer-template/packages/github/dist/types/src/types/WebContainerFileSystemTree.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/WebContainerFileSystemTree.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/WebContainerFileSystemTree.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/index.d.ts +24 -0
- package/analyzer-template/packages/github/dist/utils/index.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/index.js +31 -0
- package/analyzer-template/packages/github/dist/utils/index.js.map +1 -0
- 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/analyses/pushAnalysisError.d.ts +12 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/analyses/pushAnalysisError.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/analyses/pushAnalysisError.js +10 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/analyses/pushAnalysisError.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/applyUniversalMocks.d.ts +61 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/applyUniversalMocks.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/applyUniversalMocks.js +288 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/applyUniversalMocks.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/awsLog.d.ts +8 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/awsLog.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/awsLog.js +48 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/awsLog.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.d.ts +15 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.js +25 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getFrameworkRoutePath.d.ts +15 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getFrameworkRoutePath.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getFrameworkRoutePath.js +29 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getFrameworkRoutePath.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getNextRoutePath.d.ts +13 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getNextRoutePath.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getNextRoutePath.js +22 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getNextRoutePath.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.d.ts +13 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.js +20 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/isFrameworkRoute.d.ts +3 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/isFrameworkRoute.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/isFrameworkRoute.js +7 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/isFrameworkRoute.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/isNextRoute.d.ts +3 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/isNextRoute.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/isNextRoute.js +12 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/isNextRoute.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/isRemixRoute.d.ts +3 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/isRemixRoute.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/isRemixRoute.js +8 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/isRemixRoute.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.d.ts +14 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js +26 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.d.ts +3 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +22 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.d.ts +21 -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 +62 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/getFrameworkForFile.d.ts +16 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/getFrameworkForFile.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/getFrameworkForFile.js +64 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/getFrameworkForFile.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.d.ts +32 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.js +362 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/normalizeKey.d.ts +2 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/normalizeKey.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/normalizeKey.js +4 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/normalizeKey.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts +10 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js +36 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/safeStringify.d.ts +2 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/safeStringify.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/safeStringify.js +64 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/safeStringify.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/startCommand/buildStartCommand.d.ts +18 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/startCommand/buildStartCommand.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/startCommand/buildStartCommand.js +45 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/startCommand/buildStartCommand.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/startCommand/getWebappInfo.d.ts +26 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/startCommand/getWebappInfo.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/startCommand/getWebappInfo.js +67 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/startCommand/getWebappInfo.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/startCommand/index.d.ts +3 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/startCommand/index.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/startCommand/index.js +3 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/startCommand/index.js.map +1 -0
- package/analyzer-template/packages/github/index.ts +25 -0
- package/analyzer-template/packages/github/package.json +21 -0
- package/analyzer-template/packages/github/src/lib/__mocks__/createProjectOctokit.ts +10 -0
- package/analyzer-template/packages/github/src/lib/constants.ts +3 -0
- package/analyzer-template/packages/github/src/lib/createProjectOctokit.ts +58 -0
- package/analyzer-template/packages/github/src/lib/getBranch.ts +29 -0
- package/analyzer-template/packages/github/src/lib/getBranchCommits.ts +44 -0
- package/analyzer-template/packages/github/src/lib/getBranches.ts +28 -0
- package/analyzer-template/packages/github/src/lib/getCommit.ts +25 -0
- package/analyzer-template/packages/github/src/lib/getCommitFromGithub.ts +67 -0
- package/analyzer-template/packages/github/src/lib/getCommits.ts +57 -0
- package/analyzer-template/packages/github/src/lib/getCommitsFromGithub.ts +239 -0
- package/analyzer-template/packages/github/src/lib/getDiffBetweenCommits.ts +37 -0
- package/analyzer-template/packages/github/src/lib/getFileContent.ts +42 -0
- package/analyzer-template/packages/github/src/lib/getFirstCommitShaAfterTimestamp.ts +26 -0
- package/analyzer-template/packages/github/src/lib/getLatestCommit.ts +41 -0
- package/analyzer-template/packages/github/src/lib/getOpenPullRequests.ts +39 -0
- package/analyzer-template/packages/github/src/lib/getPublicReposWithQuery.ts +21 -0
- package/analyzer-template/packages/github/src/lib/getPullRequestsForCommit.ts +30 -0
- package/analyzer-template/packages/github/src/lib/getRepoInfo.ts +56 -0
- package/analyzer-template/packages/github/src/lib/getRepoWithBranches.ts +73 -0
- package/analyzer-template/packages/github/src/lib/getRepos.ts +35 -0
- package/analyzer-template/packages/github/src/lib/getTree.ts +29 -0
- package/analyzer-template/packages/github/src/lib/githubToCommit.ts +25 -0
- package/analyzer-template/packages/github/src/lib/listCommitsSince.ts +21 -0
- package/analyzer-template/packages/github/src/lib/loadOrCreateCommit.ts +214 -0
- package/analyzer-template/packages/github/src/lib/syncBranches.ts +105 -0
- package/analyzer-template/packages/github/src/lib/syncHeadBranches.ts +54 -0
- package/analyzer-template/packages/github/src/lib/syncPrimaryBranch.ts +95 -0
- package/analyzer-template/packages/github/src/lib/syncPullRequest.ts +87 -0
- package/analyzer-template/packages/github/src/lib/syncRepo.ts +35 -0
- package/analyzer-template/packages/github/src/lib/updateCommitBranchesInDb.ts +66 -0
- package/analyzer-template/packages/github/src/lib/updateFilesInDb.ts +111 -0
- package/analyzer-template/packages/github/src/lib/urls.ts +29 -0
- package/analyzer-template/packages/github/tsconfig.json +11 -0
- package/analyzer-template/packages/process/index.ts +2 -0
- package/analyzer-template/packages/process/package.json +12 -0
- package/analyzer-template/packages/process/src/GlobalProcessManager.ts +93 -0
- package/analyzer-template/packages/process/src/ProcessManager.ts +350 -0
- package/analyzer-template/packages/process/src/index.ts +75 -0
- package/analyzer-template/packages/process/src/managedExecAsync.ts +154 -0
- package/analyzer-template/packages/process/tsconfig.json +8 -0
- package/analyzer-template/packages/types/index.ts +90 -0
- package/analyzer-template/packages/types/package.json +12 -0
- package/analyzer-template/packages/types/src/constants.ts +1 -0
- package/analyzer-template/packages/types/src/enums/ProjectFramework.ts +8 -0
- package/analyzer-template/packages/types/src/types/Analysis.ts +229 -0
- package/analyzer-template/packages/types/src/types/AnalysisBranch.ts +16 -0
- package/analyzer-template/packages/types/src/types/AnalysisMap.ts +9 -0
- package/analyzer-template/packages/types/src/types/BackgroundJob.ts +18 -0
- package/analyzer-template/packages/types/src/types/Branch.ts +43 -0
- package/analyzer-template/packages/types/src/types/CodeExplanation.ts +3 -0
- package/analyzer-template/packages/types/src/types/Commit.ts +94 -0
- package/analyzer-template/packages/types/src/types/CommitBranch.ts +11 -0
- package/analyzer-template/packages/types/src/types/CommitChange.ts +9 -0
- package/analyzer-template/packages/types/src/types/DeepPartial.ts +8 -0
- package/analyzer-template/packages/types/src/types/DeepReadonly.ts +8 -0
- package/analyzer-template/packages/types/src/types/DependencyTreeNode.ts +3 -0
- package/analyzer-template/packages/types/src/types/Entity.ts +116 -0
- package/analyzer-template/packages/types/src/types/EntityBranch.ts +8 -0
- package/analyzer-template/packages/types/src/types/EntityMap.ts +5 -0
- package/analyzer-template/packages/types/src/types/EntityType.ts +10 -0
- package/analyzer-template/packages/types/src/types/File.ts +41 -0
- package/analyzer-template/packages/types/src/types/FilePreMock.ts +7 -0
- package/analyzer-template/packages/types/src/types/FileProp.ts +8 -0
- package/analyzer-template/packages/types/src/types/FileType.ts +12 -0
- package/analyzer-template/packages/types/src/types/GithubBranch.ts +7 -0
- package/analyzer-template/packages/types/src/types/GithubFile.ts +8 -0
- package/analyzer-template/packages/types/src/types/GithubRepoData.ts +9 -0
- package/analyzer-template/packages/types/src/types/GithubRepoInfo.ts +16 -0
- package/analyzer-template/packages/types/src/types/JsonTypeDefinition.ts +3 -0
- package/analyzer-template/packages/types/src/types/LlmCall.ts +1 -0
- package/analyzer-template/packages/types/src/types/Mock.ts +28 -0
- package/analyzer-template/packages/types/src/types/Project.ts +26 -0
- package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +56 -0
- package/analyzer-template/packages/types/src/types/PropsWithTypes.ts +8 -0
- package/analyzer-template/packages/types/src/types/Scenario.ts +110 -0
- package/analyzer-template/packages/types/src/types/ScenarioComment.ts +12 -0
- package/analyzer-template/packages/types/src/types/ScenarioData.ts +8 -0
- package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +277 -0
- package/analyzer-template/packages/types/src/types/ScopeAnalysis.ts +14 -0
- package/analyzer-template/packages/types/src/types/Statement.ts +11 -0
- package/analyzer-template/packages/types/src/types/StatementInfo.ts +13 -0
- package/analyzer-template/packages/types/src/types/Team.ts +4 -0
- package/analyzer-template/packages/types/src/types/TimelineItem.ts +16 -0
- package/analyzer-template/packages/types/src/types/TsConfigPaths.ts +1 -0
- package/analyzer-template/packages/types/src/types/TypeStructures.ts +5 -0
- package/analyzer-template/packages/types/src/types/User.ts +6 -0
- package/analyzer-template/packages/types/src/types/UserScenario.ts +10 -0
- package/analyzer-template/packages/types/src/types/WebContainerFileSystemTree.ts +15 -0
- package/analyzer-template/packages/types/tsconfig.json +10 -0
- package/analyzer-template/packages/ui-components/README.md +235 -0
- package/analyzer-template/packages/ui-components/package.json +37 -0
- package/analyzer-template/packages/ui-components/src/components/ResizeControlBar.tsx +313 -0
- package/analyzer-template/packages/ui-components/src/components/ScenarioDetailInteractiveView.tsx +322 -0
- package/analyzer-template/packages/ui-components/src/components/ScenarioPreview.tsx +232 -0
- package/analyzer-template/packages/ui-components/src/components/ScenarioThumbnails.tsx +82 -0
- package/analyzer-template/packages/ui-components/src/components/ScreenSizeSelector.tsx +45 -0
- package/analyzer-template/packages/ui-components/src/index.tsx +61 -0
- package/analyzer-template/packages/ui-components/src/providers/WebContainerProvider.tsx +105 -0
- package/analyzer-template/packages/ui-components/src/scenario-editor/components/AIDataGeneratorForm.tsx +139 -0
- package/analyzer-template/packages/ui-components/src/scenario-editor/components/BooleanSwitch.tsx +42 -0
- package/analyzer-template/packages/ui-components/src/scenario-editor/components/DataItemEditor.tsx +132 -0
- package/analyzer-template/packages/ui-components/src/scenario-editor/components/DataItemLink.tsx +80 -0
- package/analyzer-template/packages/ui-components/src/scenario-editor/components/DataItemNavigation.tsx +107 -0
- package/analyzer-template/packages/ui-components/src/scenario-editor/components/InputField.tsx +67 -0
- package/analyzer-template/packages/ui-components/src/scenario-editor/components/ScenarioEditor.tsx +401 -0
- package/analyzer-template/packages/ui-components/src/scenario-editor/components/ScenarioNameForm.tsx +52 -0
- package/analyzer-template/packages/ui-components/src/scenario-editor/components/SectionExpand.tsx +55 -0
- package/analyzer-template/packages/ui-components/src/scenario-editor/components/UnionTypeOptionDropdown.tsx +38 -0
- package/analyzer-template/packages/ui-components/src/scenario-editor/index.ts +35 -0
- package/analyzer-template/packages/ui-components/src/scenario-editor/types.ts +127 -0
- package/analyzer-template/packages/ui-components/src/scenario-editor/utils.ts +72 -0
- package/analyzer-template/packages/ui-components/tsconfig.json +23 -0
- package/analyzer-template/packages/utils/dist/types/index.d.ts +47 -0
- package/analyzer-template/packages/utils/dist/types/index.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/index.js +4 -0
- package/analyzer-template/packages/utils/dist/types/index.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/constants.d.ts +2 -0
- package/analyzer-template/packages/utils/dist/types/src/constants.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/constants.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/constants.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts +9 -0
- package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js +10 -0
- package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts +207 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Analysis.js +3 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Analysis.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/AnalysisBranch.d.ts +15 -0
- package/analyzer-template/packages/utils/dist/types/src/types/AnalysisBranch.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/AnalysisBranch.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/AnalysisBranch.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/AnalysisMap.d.ts +12 -0
- package/analyzer-template/packages/utils/dist/types/src/types/AnalysisMap.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/AnalysisMap.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/AnalysisMap.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/BackgroundJob.d.ts +19 -0
- package/analyzer-template/packages/utils/dist/types/src/types/BackgroundJob.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/BackgroundJob.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/BackgroundJob.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Branch.d.ts +43 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Branch.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Branch.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Branch.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/CodeExplanation.d.ts +4 -0
- package/analyzer-template/packages/utils/dist/types/src/types/CodeExplanation.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/CodeExplanation.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/CodeExplanation.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts +88 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Commit.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Commit.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/CommitBranch.d.ts +11 -0
- package/analyzer-template/packages/utils/dist/types/src/types/CommitBranch.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/CommitBranch.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/CommitBranch.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/CommitChange.d.ts +9 -0
- package/analyzer-template/packages/utils/dist/types/src/types/CommitChange.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/CommitChange.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/CommitChange.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/DeepPartial.d.ts +4 -0
- package/analyzer-template/packages/utils/dist/types/src/types/DeepPartial.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/DeepPartial.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/DeepPartial.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/DeepReadonly.d.ts +4 -0
- package/analyzer-template/packages/utils/dist/types/src/types/DeepReadonly.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/DeepReadonly.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/DeepReadonly.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/DependencyTreeNode.d.ts +8 -0
- package/analyzer-template/packages/utils/dist/types/src/types/DependencyTreeNode.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/DependencyTreeNode.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/DependencyTreeNode.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts +100 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Entity.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Entity.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/EntityBranch.d.ts +8 -0
- package/analyzer-template/packages/utils/dist/types/src/types/EntityBranch.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/EntityBranch.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/EntityBranch.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/EntityMap.d.ts +7 -0
- package/analyzer-template/packages/utils/dist/types/src/types/EntityMap.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/EntityMap.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/EntityMap.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/EntityType.d.ts +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/EntityType.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/EntityType.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/EntityType.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/File.d.ts +45 -0
- package/analyzer-template/packages/utils/dist/types/src/types/File.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/File.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/File.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/FilePreMock.d.ts +7 -0
- package/analyzer-template/packages/utils/dist/types/src/types/FilePreMock.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/FilePreMock.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/FilePreMock.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/FileProp.d.ts +8 -0
- package/analyzer-template/packages/utils/dist/types/src/types/FileProp.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/FileProp.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/FileProp.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/FileType.d.ts +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/FileType.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/FileType.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/FileType.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubBranch.d.ts +7 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubBranch.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubBranch.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubBranch.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubFile.d.ts +9 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubFile.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubFile.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubFile.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubRepoData.d.ts +9 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubRepoData.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubRepoData.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubRepoData.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubRepoInfo.d.ts +15 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubRepoInfo.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubRepoInfo.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubRepoInfo.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/JsonTypeDefinition.d.ts +4 -0
- package/analyzer-template/packages/utils/dist/types/src/types/JsonTypeDefinition.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/JsonTypeDefinition.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/JsonTypeDefinition.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/LlmCall.d.ts +5 -0
- package/analyzer-template/packages/utils/dist/types/src/types/LlmCall.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/LlmCall.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/LlmCall.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Mock.d.ts +35 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Mock.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Mock.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Mock.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Project.d.ts +26 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Project.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Project.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Project.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +53 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/PropsWithTypes.d.ts +8 -0
- package/analyzer-template/packages/utils/dist/types/src/types/PropsWithTypes.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/PropsWithTypes.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/PropsWithTypes.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +117 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenarioComment.d.ts +12 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenarioComment.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenarioComment.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenarioComment.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenarioData.d.ts +13 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenarioData.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenarioData.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenarioData.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +270 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts +18 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Statement.d.ts +11 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Statement.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Statement.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Statement.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts +14 -0
- package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Team.d.ts +5 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Team.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Team.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Team.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/TimelineItem.d.ts +17 -0
- package/analyzer-template/packages/utils/dist/types/src/types/TimelineItem.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/TimelineItem.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/TimelineItem.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/TsConfigPaths.d.ts +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/TsConfigPaths.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/TsConfigPaths.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/TsConfigPaths.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/TypeStructures.d.ts +5 -0
- package/analyzer-template/packages/utils/dist/types/src/types/TypeStructures.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/TypeStructures.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/TypeStructures.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/User.d.ts +7 -0
- package/analyzer-template/packages/utils/dist/types/src/types/User.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/User.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/User.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/UserScenario.d.ts +10 -0
- package/analyzer-template/packages/utils/dist/types/src/types/UserScenario.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/UserScenario.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/UserScenario.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/WebContainerFileSystemTree.d.ts +14 -0
- package/analyzer-template/packages/utils/dist/types/src/types/WebContainerFileSystemTree.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/WebContainerFileSystemTree.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/WebContainerFileSystemTree.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/index.d.ts +24 -0
- package/analyzer-template/packages/utils/dist/utils/index.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/index.js +31 -0
- package/analyzer-template/packages/utils/dist/utils/index.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/server.d.ts +12 -0
- package/analyzer-template/packages/utils/dist/utils/server.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/server.js +13 -0
- package/analyzer-template/packages/utils/dist/utils/server.js.map +1 -0
- 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/__mocks__/killProcess.server.d.ts +2 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/__mocks__/killProcess.server.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/__mocks__/killProcess.server.js +5 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/__mocks__/killProcess.server.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/analyses/pushAnalysisError.d.ts +12 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/analyses/pushAnalysisError.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/analyses/pushAnalysisError.js +10 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/analyses/pushAnalysisError.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/applyUniversalMocks.d.ts +61 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/applyUniversalMocks.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/applyUniversalMocks.js +288 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/applyUniversalMocks.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/awsLog.d.ts +8 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/awsLog.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/awsLog.js +48 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/awsLog.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/commitRuns.d.ts +3 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/commitRuns.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/commitRuns.js +14 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/commitRuns.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/env/detectEnvFiles.d.ts +34 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/env/detectEnvFiles.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/env/detectEnvFiles.js +217 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/env/detectEnvFiles.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/env/index.d.ts +3 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/env/index.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/env/index.js +3 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/env/index.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/env/sanitizeEnvFiles.d.ts +25 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/env/sanitizeEnvFiles.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/env/sanitizeEnvFiles.js +145 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/env/sanitizeEnvFiles.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.d.ts +15 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.js +25 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getFrameworkRoutePath.d.ts +15 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getFrameworkRoutePath.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getFrameworkRoutePath.js +29 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getFrameworkRoutePath.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getNextRoutePath.d.ts +13 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getNextRoutePath.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getNextRoutePath.js +22 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getNextRoutePath.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.d.ts +13 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.js +20 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/isFrameworkRoute.d.ts +3 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/isFrameworkRoute.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/isFrameworkRoute.js +7 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/isFrameworkRoute.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/isNextRoute.d.ts +3 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/isNextRoute.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/isNextRoute.js +12 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/isNextRoute.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/isRemixRoute.d.ts +3 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/isRemixRoute.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/isRemixRoute.js +8 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/isRemixRoute.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.d.ts +14 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js +26 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.d.ts +3 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +22 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.d.ts +21 -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 +62 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/sanitizeNextRouteSegments.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/fs/copyNodeRepoQuickly.d.ts +9 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/fs/copyNodeRepoQuickly.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/fs/copyNodeRepoQuickly.js +181 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/fs/copyNodeRepoQuickly.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts +9 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +41 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/getFrameworkForFile.d.ts +16 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/getFrameworkForFile.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/getFrameworkForFile.js +64 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/getFrameworkForFile.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/killProcess.server.d.ts +6 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/killProcess.server.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/killProcess.server.js +102 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/killProcess.server.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/killProcessAndSubprocesses.server.d.ts +12 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/killProcessAndSubprocesses.server.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/killProcessAndSubprocesses.server.js +62 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/killProcessAndSubprocesses.server.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.d.ts +32 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.js +362 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/loadEnv.d.ts +2 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/loadEnv.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/loadEnv.js +7 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/loadEnv.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/normalizeKey.d.ts +2 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/normalizeKey.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/normalizeKey.js +4 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/normalizeKey.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts +10 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js +36 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/safeStringify.d.ts +2 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/safeStringify.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/safeStringify.js +64 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/safeStringify.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/startCommand/buildStartCommand.d.ts +18 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/startCommand/buildStartCommand.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/startCommand/buildStartCommand.js +45 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/startCommand/buildStartCommand.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/startCommand/getWebappInfo.d.ts +26 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/startCommand/getWebappInfo.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/startCommand/getWebappInfo.js +67 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/startCommand/getWebappInfo.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/startCommand/index.d.ts +3 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/startCommand/index.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/startCommand/index.js +3 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/startCommand/index.js.map +1 -0
- package/analyzer-template/packages/utils/index.ts +60 -0
- package/analyzer-template/packages/utils/package.json +14 -0
- package/analyzer-template/packages/utils/server.ts +26 -0
- package/analyzer-template/packages/utils/src/lib/Semaphore.ts +42 -0
- package/analyzer-template/packages/utils/src/lib/__mocks__/killProcess.server.ts +4 -0
- package/analyzer-template/packages/utils/src/lib/analyses/pushAnalysisError.ts +21 -0
- package/analyzer-template/packages/utils/src/lib/applyUniversalMocks.ts +449 -0
- package/analyzer-template/packages/utils/src/lib/awsLog.ts +60 -0
- package/analyzer-template/packages/utils/src/lib/commitRuns.ts +16 -0
- package/analyzer-template/packages/utils/src/lib/env/detectEnvFiles.ts +287 -0
- package/analyzer-template/packages/utils/src/lib/env/index.ts +15 -0
- package/analyzer-template/packages/utils/src/lib/env/sanitizeEnvFiles.ts +203 -0
- package/analyzer-template/packages/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.ts +40 -0
- package/analyzer-template/packages/utils/src/lib/frameworks/getFrameworkRoutePath.ts +58 -0
- package/analyzer-template/packages/utils/src/lib/frameworks/getNextRoutePath.ts +54 -0
- package/analyzer-template/packages/utils/src/lib/frameworks/getRemixRoutePath.ts +52 -0
- package/analyzer-template/packages/utils/src/lib/frameworks/isFrameworkRoute.ts +15 -0
- package/analyzer-template/packages/utils/src/lib/frameworks/isNextRoute.ts +20 -0
- package/analyzer-template/packages/utils/src/lib/frameworks/isRemixRoute.ts +14 -0
- package/analyzer-template/packages/utils/src/lib/frameworks/nextRouteFileNameToRoute.ts +36 -0
- package/analyzer-template/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.ts +28 -0
- package/analyzer-template/packages/utils/src/lib/frameworks/sanitizeNextRouteSegments.ts +67 -0
- package/analyzer-template/packages/utils/src/lib/fs/copyNodeRepoQuickly.ts +241 -0
- package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +64 -0
- package/analyzer-template/packages/utils/src/lib/getFrameworkForFile.ts +92 -0
- package/analyzer-template/packages/utils/src/lib/killProcess.server.ts +134 -0
- package/analyzer-template/packages/utils/src/lib/killProcessAndSubprocesses.server.ts +76 -0
- package/analyzer-template/packages/utils/src/lib/lightweightEntityExtractor.ts +457 -0
- package/analyzer-template/packages/utils/src/lib/loadEnv.ts +7 -0
- package/analyzer-template/packages/utils/src/lib/normalizeKey.ts +3 -0
- package/analyzer-template/packages/utils/src/lib/safeFileName.ts +55 -0
- package/analyzer-template/packages/utils/src/lib/safeStringify.ts +68 -0
- package/analyzer-template/packages/utils/src/lib/startCommand/buildStartCommand.ts +63 -0
- package/analyzer-template/packages/utils/src/lib/startCommand/getWebappInfo.ts +108 -0
- package/analyzer-template/packages/utils/src/lib/startCommand/index.ts +10 -0
- package/analyzer-template/packages/utils/tsconfig.json +11 -0
- package/analyzer-template/playwright/capture.ts +1007 -0
- package/analyzer-template/playwright/captureFromUrl.ts +252 -0
- package/analyzer-template/playwright/capturePageWithPlaywright.ts +204 -0
- package/analyzer-template/playwright/captureScreenshotLite.ts +201 -0
- package/analyzer-template/playwright/captureStatic.ts +137 -0
- package/analyzer-template/playwright/checkURL.ts +67 -0
- package/analyzer-template/playwright/compareImages.ts +149 -0
- package/analyzer-template/playwright/compareTwoImagesFromS3.ts +43 -0
- package/analyzer-template/playwright/downloadImageFromS3.ts +58 -0
- package/analyzer-template/playwright/downloadPage.ts +413 -0
- package/analyzer-template/playwright/executeInstuctions.ts +119 -0
- package/analyzer-template/playwright/findStep.ts +6 -0
- package/analyzer-template/playwright/generateStaticBuild.ts +185 -0
- package/analyzer-template/playwright/getCodeYamInfo.ts +103 -0
- package/analyzer-template/playwright/invalidateCloudFrontPath.ts +46 -0
- package/analyzer-template/playwright/takeElementScreenshot.ts +505 -0
- package/analyzer-template/playwright/takeScreenshot.ts +271 -0
- package/analyzer-template/playwright/taskComplete.ts +12 -0
- package/analyzer-template/playwright/updateBackgroundJob.ts +43 -0
- package/analyzer-template/playwright/uploadAssets.ts +118 -0
- package/analyzer-template/playwright/waitForNoServer.ts +16 -0
- package/analyzer-template/playwright/waitForServer.ts +98 -0
- package/analyzer-template/project/LazyFileStore.ts +537 -0
- package/analyzer-template/project/ScenarioIterator.ts +133 -0
- package/analyzer-template/project/TESTING.md +83 -0
- package/analyzer-template/project/analyzeAndGatherIndirectEntities.ts +131 -0
- package/analyzer-template/project/analyzeBaselineCommit.ts +195 -0
- package/analyzer-template/project/analyzeBranchCommit.ts +260 -0
- package/analyzer-template/project/analyzeFileEntities.ts +286 -0
- package/analyzer-template/project/analyzeReadyToBeCaptured.ts +51 -0
- package/analyzer-template/project/analyzeRegularCommit.ts +285 -0
- package/analyzer-template/project/backupFiles.ts +129 -0
- package/analyzer-template/project/buildCliArgs.ts +15 -0
- package/analyzer-template/project/buildProject.ts +46 -0
- package/analyzer-template/project/captureLibraryFunctionDirect.ts +144 -0
- package/analyzer-template/project/checkApprovedPath.ts +39 -0
- package/analyzer-template/project/checkConsistentAnalyses.ts +58 -0
- package/analyzer-template/project/checkConsistentEntities.ts +55 -0
- package/analyzer-template/project/clearExtension.ts +9 -0
- package/analyzer-template/project/cloneGitRepoAtCommit.ts +59 -0
- package/analyzer-template/project/constructMockCode.ts +2511 -0
- package/analyzer-template/project/controller/startController.ts +212 -0
- package/analyzer-template/project/createEntitiesAndSortFiles.ts +330 -0
- package/analyzer-template/project/emailErrorReport.ts +78 -0
- package/analyzer-template/project/executeLibraryFunctionDirect.ts +182 -0
- package/analyzer-template/project/generateCodeYamPage.ts +240 -0
- package/analyzer-template/project/generateScenarioPage.ts +56 -0
- package/analyzer-template/project/getAppPath.ts +84 -0
- package/analyzer-template/project/getCodeYamPagePath.ts +101 -0
- package/analyzer-template/project/getFilesWithEntitiesFromRepo.ts +213 -0
- package/analyzer-template/project/getScenarioPagePath.ts +119 -0
- package/analyzer-template/project/getScenarioUrl.ts +137 -0
- package/analyzer-template/project/loadReadyToBeCaptured.ts +336 -0
- package/analyzer-template/project/mocks/analyzeFileMock.ts +436 -0
- package/analyzer-template/project/orchestrateCapture/AwsCaptureTaskRunner.ts +302 -0
- package/analyzer-template/project/orchestrateCapture/KyselyAnalysisLoader.ts +154 -0
- package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +410 -0
- package/analyzer-template/project/orchestrateCapture/SupabaseAnalysisLoader.ts +85 -0
- package/analyzer-template/project/orchestrateCapture/spawnTaskProcess.ts +112 -0
- package/analyzer-template/project/orchestrateCapture/taskRunner.ts +123 -0
- package/analyzer-template/project/orchestrateCapture.ts +480 -0
- package/analyzer-template/project/prepareRepo.ts +106 -0
- package/analyzer-template/project/reconcileMockDataKeys.ts +387 -0
- package/analyzer-template/project/removeScenario.ts +9 -0
- package/analyzer-template/project/removeStrictFlagFromTsConfig.ts +37 -0
- package/analyzer-template/project/replaceImportLineContainingSubstring.ts +23 -0
- package/analyzer-template/project/runAnalysis.ts +373 -0
- package/analyzer-template/project/runMultiScenarioServer.ts +564 -0
- package/analyzer-template/project/runScenarioServer.ts +379 -0
- package/analyzer-template/project/serverOnlyModules.ts +413 -0
- package/analyzer-template/project/start.ts +659 -0
- package/analyzer-template/project/startScenarioCapture.ts +770 -0
- package/analyzer-template/project/startServer.ts +168 -0
- package/analyzer-template/project/trackGeneratedFiles.ts +41 -0
- package/analyzer-template/project/updateCommitBackgroundJob.ts +16 -0
- package/analyzer-template/project/utils/errorHandling.ts +48 -0
- package/analyzer-template/project/utils/mergeEnvVarsIntoStartCommand.ts +50 -0
- package/analyzer-template/project/utils/webappMapping.ts +95 -0
- package/analyzer-template/project/writeCodeYamPage.ts +32 -0
- package/analyzer-template/project/writeEnv.ts +54 -0
- package/analyzer-template/project/writeLibComponent.ts +50 -0
- package/analyzer-template/project/writeMockDataTsx.ts +1434 -0
- package/analyzer-template/project/writeScenario.ts +112 -0
- package/analyzer-template/project/writeScenarioClientWrapper.ts +21 -0
- package/analyzer-template/project/writeScenarioComponents.ts +3036 -0
- package/analyzer-template/project/writeScenarioFiles.ts +139 -0
- package/analyzer-template/project/writeScenarioPage.ts +59 -0
- package/analyzer-template/project/writeSimpleRoot.ts +566 -0
- package/analyzer-template/project/writeUniversalMocks.ts +250 -0
- package/analyzer-template/scripts/comboWorkerLoop.cjs +523 -0
- package/analyzer-template/scripts/defaultCmd.sh +9 -0
- package/analyzer-template/scripts/mergePackageJsonFiles.cjs +81 -0
- package/analyzer-template/scripts/postbuild.cjs +106 -0
- package/analyzer-template/tsconfig.json +20 -0
- package/background/src/lib/copyFolderToArchive.js +34 -0
- package/background/src/lib/copyFolderToArchive.js.map +1 -0
- package/background/src/lib/local/createLocalAnalyzer.js +132 -0
- package/background/src/lib/local/createLocalAnalyzer.js.map +1 -0
- package/background/src/lib/local/execAsync.js +100 -0
- package/background/src/lib/local/execAsync.js.map +1 -0
- package/background/src/lib/virtualized/common/closePort.js +17 -0
- package/background/src/lib/virtualized/common/closePort.js.map +1 -0
- package/background/src/lib/virtualized/common/constants.js +3 -0
- package/background/src/lib/virtualized/common/constants.js.map +1 -0
- package/background/src/lib/virtualized/common/copy.js +16 -0
- package/background/src/lib/virtualized/common/copy.js.map +1 -0
- package/background/src/lib/virtualized/common/execAsync.js +116 -0
- package/background/src/lib/virtualized/common/execAsync.js.map +1 -0
- package/background/src/lib/virtualized/common/getPID.js +40 -0
- package/background/src/lib/virtualized/common/getPID.js.map +1 -0
- package/background/src/lib/virtualized/common/measureAndRepordExecutionTime.js +9 -0
- package/background/src/lib/virtualized/common/measureAndRepordExecutionTime.js.map +1 -0
- package/background/src/lib/virtualized/common/measureExecutionTime.js +11 -0
- package/background/src/lib/virtualized/common/measureExecutionTime.js.map +1 -0
- package/background/src/lib/virtualized/common/openPage.js +20 -0
- package/background/src/lib/virtualized/common/openPage.js.map +1 -0
- package/background/src/lib/virtualized/common/readFile.js +21 -0
- package/background/src/lib/virtualized/common/readFile.js.map +1 -0
- package/background/src/lib/virtualized/common/writeFile.js +24 -0
- package/background/src/lib/virtualized/common/writeFile.js.map +1 -0
- package/background/src/lib/virtualized/project/LazyFileStore.js +421 -0
- package/background/src/lib/virtualized/project/LazyFileStore.js.map +1 -0
- package/background/src/lib/virtualized/project/ScenarioIterator.js +102 -0
- package/background/src/lib/virtualized/project/ScenarioIterator.js.map +1 -0
- package/background/src/lib/virtualized/project/analyzeAndGatherIndirectEntities.js +88 -0
- package/background/src/lib/virtualized/project/analyzeAndGatherIndirectEntities.js.map +1 -0
- package/background/src/lib/virtualized/project/analyzeBaselineCommit.js +114 -0
- package/background/src/lib/virtualized/project/analyzeBaselineCommit.js.map +1 -0
- package/background/src/lib/virtualized/project/analyzeBranchCommit.js +181 -0
- package/background/src/lib/virtualized/project/analyzeBranchCommit.js.map +1 -0
- package/background/src/lib/virtualized/project/analyzeFileEntities.js +193 -0
- package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -0
- package/background/src/lib/virtualized/project/analyzeReadyToBeCaptured.js +22 -0
- package/background/src/lib/virtualized/project/analyzeReadyToBeCaptured.js.map +1 -0
- package/background/src/lib/virtualized/project/analyzeRegularCommit.js +178 -0
- package/background/src/lib/virtualized/project/analyzeRegularCommit.js.map +1 -0
- package/background/src/lib/virtualized/project/backupFiles.js +114 -0
- package/background/src/lib/virtualized/project/backupFiles.js.map +1 -0
- package/background/src/lib/virtualized/project/buildCliArgs.js +18 -0
- package/background/src/lib/virtualized/project/buildCliArgs.js.map +1 -0
- package/background/src/lib/virtualized/project/buildProject.js +37 -0
- package/background/src/lib/virtualized/project/buildProject.js.map +1 -0
- package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js +107 -0
- package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js.map +1 -0
- package/background/src/lib/virtualized/project/checkApprovedPath.js +25 -0
- package/background/src/lib/virtualized/project/checkApprovedPath.js.map +1 -0
- package/background/src/lib/virtualized/project/checkConsistentAnalyses.js +34 -0
- package/background/src/lib/virtualized/project/checkConsistentAnalyses.js.map +1 -0
- package/background/src/lib/virtualized/project/checkConsistentEntities.js +37 -0
- package/background/src/lib/virtualized/project/checkConsistentEntities.js.map +1 -0
- package/background/src/lib/virtualized/project/cloneGitRepoAtCommit.js +38 -0
- package/background/src/lib/virtualized/project/cloneGitRepoAtCommit.js.map +1 -0
- package/background/src/lib/virtualized/project/constructMockCode.js +2120 -0
- package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -0
- package/background/src/lib/virtualized/project/controller/startController.js +149 -0
- package/background/src/lib/virtualized/project/controller/startController.js.map +1 -0
- package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js +221 -0
- package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js.map +1 -0
- package/background/src/lib/virtualized/project/emailErrorReport.js +50 -0
- package/background/src/lib/virtualized/project/emailErrorReport.js.map +1 -0
- package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js +157 -0
- package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js.map +1 -0
- package/background/src/lib/virtualized/project/generateCodeYamPage.js +213 -0
- package/background/src/lib/virtualized/project/generateCodeYamPage.js.map +1 -0
- package/background/src/lib/virtualized/project/generateScenarioPage.js +27 -0
- package/background/src/lib/virtualized/project/generateScenarioPage.js.map +1 -0
- package/background/src/lib/virtualized/project/getAppPath.js +79 -0
- package/background/src/lib/virtualized/project/getAppPath.js.map +1 -0
- package/background/src/lib/virtualized/project/getCodeYamPagePath.js +56 -0
- package/background/src/lib/virtualized/project/getCodeYamPagePath.js.map +1 -0
- package/background/src/lib/virtualized/project/getFilesWithEntitiesFromRepo.js +161 -0
- package/background/src/lib/virtualized/project/getFilesWithEntitiesFromRepo.js.map +1 -0
- package/background/src/lib/virtualized/project/getScenarioPagePath.js +62 -0
- package/background/src/lib/virtualized/project/getScenarioPagePath.js.map +1 -0
- package/background/src/lib/virtualized/project/getScenarioUrl.js +87 -0
- package/background/src/lib/virtualized/project/getScenarioUrl.js.map +1 -0
- package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js +217 -0
- package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js.map +1 -0
- package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js +368 -0
- package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js.map +1 -0
- package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js +196 -0
- package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js.map +1 -0
- package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js +115 -0
- package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js.map +1 -0
- package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +293 -0
- package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -0
- package/background/src/lib/virtualized/project/orchestrateCapture/spawnTaskProcess.js +71 -0
- package/background/src/lib/virtualized/project/orchestrateCapture/spawnTaskProcess.js.map +1 -0
- package/background/src/lib/virtualized/project/orchestrateCapture/taskRunner.js +2 -0
- package/background/src/lib/virtualized/project/orchestrateCapture/taskRunner.js.map +1 -0
- package/background/src/lib/virtualized/project/orchestrateCapture.js +344 -0
- package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -0
- package/background/src/lib/virtualized/project/prepareRepo.js +61 -0
- package/background/src/lib/virtualized/project/prepareRepo.js.map +1 -0
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +329 -0
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -0
- package/background/src/lib/virtualized/project/removeScenario.js +11 -0
- package/background/src/lib/virtualized/project/removeScenario.js.map +1 -0
- package/background/src/lib/virtualized/project/removeStrictFlagFromTsConfig.js +32 -0
- package/background/src/lib/virtualized/project/removeStrictFlagFromTsConfig.js.map +1 -0
- package/background/src/lib/virtualized/project/runAnalysis.js +262 -0
- package/background/src/lib/virtualized/project/runAnalysis.js.map +1 -0
- package/background/src/lib/virtualized/project/runMultiScenarioServer.js +426 -0
- package/background/src/lib/virtualized/project/runMultiScenarioServer.js.map +1 -0
- package/background/src/lib/virtualized/project/serverOnlyModules.js +338 -0
- package/background/src/lib/virtualized/project/serverOnlyModules.js.map +1 -0
- package/background/src/lib/virtualized/project/start.js +513 -0
- package/background/src/lib/virtualized/project/start.js.map +1 -0
- package/background/src/lib/virtualized/project/startScenarioCapture.js +530 -0
- package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -0
- package/background/src/lib/virtualized/project/startServer.js +128 -0
- package/background/src/lib/virtualized/project/startServer.js.map +1 -0
- 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/updateCommitBackgroundJob.js +13 -0
- package/background/src/lib/virtualized/project/updateCommitBackgroundJob.js.map +1 -0
- package/background/src/lib/virtualized/project/utils/errorHandling.js +39 -0
- package/background/src/lib/virtualized/project/utils/errorHandling.js.map +1 -0
- package/background/src/lib/virtualized/project/utils/mergeEnvVarsIntoStartCommand.js +42 -0
- package/background/src/lib/virtualized/project/utils/mergeEnvVarsIntoStartCommand.js.map +1 -0
- package/background/src/lib/virtualized/project/utils/webappMapping.js +66 -0
- package/background/src/lib/virtualized/project/utils/webappMapping.js.map +1 -0
- package/background/src/lib/virtualized/project/writeCodeYamPage.js +23 -0
- package/background/src/lib/virtualized/project/writeCodeYamPage.js.map +1 -0
- package/background/src/lib/virtualized/project/writeEnv.js +43 -0
- package/background/src/lib/virtualized/project/writeEnv.js.map +1 -0
- package/background/src/lib/virtualized/project/writeLibComponent.js +19 -0
- package/background/src/lib/virtualized/project/writeLibComponent.js.map +1 -0
- package/background/src/lib/virtualized/project/writeMockDataTsx.js +1229 -0
- package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -0
- package/background/src/lib/virtualized/project/writeScenario.js +58 -0
- package/background/src/lib/virtualized/project/writeScenario.js.map +1 -0
- 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 +2143 -0
- package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -0
- package/background/src/lib/virtualized/project/writeScenarioFiles.js +81 -0
- package/background/src/lib/virtualized/project/writeScenarioFiles.js.map +1 -0
- package/background/src/lib/virtualized/project/writeScenarioPage.js +24 -0
- package/background/src/lib/virtualized/project/writeScenarioPage.js.map +1 -0
- package/background/src/lib/virtualized/project/writeSimpleRoot.js +409 -0
- package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -0
- package/background/src/lib/virtualized/project/writeUniversalMocks.js +157 -0
- package/background/src/lib/virtualized/project/writeUniversalMocks.js.map +1 -0
- package/background/src/lib/writeFile.js +18 -0
- package/background/src/lib/writeFile.js.map +1 -0
- package/codeyam-cli/scripts/apply-setup.js +468 -0
- package/codeyam-cli/scripts/apply-setup.js.map +1 -0
- package/codeyam-cli/scripts/build-analyzer-template.js +174 -0
- package/codeyam-cli/scripts/build-analyzer-template.js.map +1 -0
- package/codeyam-cli/scripts/build-webserver-info.js +80 -0
- package/codeyam-cli/scripts/build-webserver-info.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/populateEntityTimestamps.js +72 -0
- package/codeyam-cli/scripts/populateEntityTimestamps.js.map +1 -0
- package/codeyam-cli/src/cli.js +78 -0
- package/codeyam-cli/src/cli.js.map +1 -0
- package/codeyam-cli/src/codeyam-cli.js +4 -0
- package/codeyam-cli/src/codeyam-cli.js.map +1 -0
- package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js +132 -0
- package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js.map +1 -0
- package/codeyam-cli/src/commands/__tests__/init.unapprovedPaths.test.js +73 -0
- package/codeyam-cli/src/commands/__tests__/init.unapprovedPaths.test.js.map +1 -0
- package/codeyam-cli/src/commands/__tests__/suggest.test.js +161 -0
- package/codeyam-cli/src/commands/__tests__/suggest.test.js.map +1 -0
- package/codeyam-cli/src/commands/analyze.js +136 -0
- package/codeyam-cli/src/commands/analyze.js.map +1 -0
- package/codeyam-cli/src/commands/baseline.js +174 -0
- package/codeyam-cli/src/commands/baseline.js.map +1 -0
- package/codeyam-cli/src/commands/debug.js +251 -0
- package/codeyam-cli/src/commands/debug.js.map +1 -0
- package/codeyam-cli/src/commands/default.js +84 -0
- package/codeyam-cli/src/commands/default.js.map +1 -0
- package/codeyam-cli/src/commands/detect-universal-mocks.js +118 -0
- package/codeyam-cli/src/commands/detect-universal-mocks.js.map +1 -0
- package/codeyam-cli/src/commands/entities.js +102 -0
- package/codeyam-cli/src/commands/entities.js.map +1 -0
- package/codeyam-cli/src/commands/generate-data-structure.js +251 -0
- package/codeyam-cli/src/commands/generate-data-structure.js.map +1 -0
- package/codeyam-cli/src/commands/init.js +419 -0
- package/codeyam-cli/src/commands/init.js.map +1 -0
- package/codeyam-cli/src/commands/list.js +31 -0
- package/codeyam-cli/src/commands/list.js.map +1 -0
- package/codeyam-cli/src/commands/memory.js +264 -0
- package/codeyam-cli/src/commands/memory.js.map +1 -0
- package/codeyam-cli/src/commands/queue.js +83 -0
- package/codeyam-cli/src/commands/queue.js.map +1 -0
- package/codeyam-cli/src/commands/recapture.js +226 -0
- package/codeyam-cli/src/commands/recapture.js.map +1 -0
- package/codeyam-cli/src/commands/report.js +150 -0
- package/codeyam-cli/src/commands/report.js.map +1 -0
- package/codeyam-cli/src/commands/setup-sandbox.js +165 -0
- package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -0
- package/codeyam-cli/src/commands/start.js +68 -0
- package/codeyam-cli/src/commands/start.js.map +1 -0
- package/codeyam-cli/src/commands/status.js +134 -0
- package/codeyam-cli/src/commands/status.js.map +1 -0
- package/codeyam-cli/src/commands/stop.js +28 -0
- package/codeyam-cli/src/commands/stop.js.map +1 -0
- package/codeyam-cli/src/commands/suggest.js +299 -0
- package/codeyam-cli/src/commands/suggest.js.map +1 -0
- package/codeyam-cli/src/commands/suggestUtils.js +110 -0
- package/codeyam-cli/src/commands/suggestUtils.js.map +1 -0
- package/codeyam-cli/src/commands/test-startup.js +667 -0
- package/codeyam-cli/src/commands/test-startup.js.map +1 -0
- package/codeyam-cli/src/commands/update-config.js +97 -0
- package/codeyam-cli/src/commands/update-config.js.map +1 -0
- package/codeyam-cli/src/commands/validate-mock.js +97 -0
- package/codeyam-cli/src/commands/validate-mock.js.map +1 -0
- package/codeyam-cli/src/commands/verify.js +140 -0
- package/codeyam-cli/src/commands/verify.js.map +1 -0
- package/codeyam-cli/src/commands/webapp-info.js +146 -0
- package/codeyam-cli/src/commands/webapp-info.js.map +1 -0
- package/codeyam-cli/src/commands/wipe.js +108 -0
- package/codeyam-cli/src/commands/wipe.js.map +1 -0
- package/codeyam-cli/src/state.js +9 -0
- package/codeyam-cli/src/state.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/cleanupAnalysisFiles.test.js +219 -0
- package/codeyam-cli/src/utils/__tests__/cleanupAnalysisFiles.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/entityVersioning.test.js +346 -0
- package/codeyam-cli/src/utils/__tests__/entityVersioning.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/fileMetadata.test.js +203 -0
- package/codeyam-cli/src/utils/__tests__/fileMetadata.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/fileWatcher.batch.test.js +614 -0
- package/codeyam-cli/src/utils/__tests__/fileWatcher.batch.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/fileWatcher.multiversion.test.js +587 -0
- package/codeyam-cli/src/utils/__tests__/fileWatcher.multiversion.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/fileWatcher.optimization.test.js +375 -0
- package/codeyam-cli/src/utils/__tests__/fileWatcher.optimization.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/fileWatcher.versioning.test.js +1293 -0
- package/codeyam-cli/src/utils/__tests__/fileWatcher.versioning.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/gitEntityLookup.test.js +119 -0
- package/codeyam-cli/src/utils/__tests__/gitEntityLookup.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/import-meta.test.js +37 -0
- package/codeyam-cli/src/utils/__tests__/import-meta.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/mockValidator.test.js +151 -0
- package/codeyam-cli/src/utils/__tests__/mockValidator.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js +140 -0
- package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js +81 -0
- package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +227 -0
- package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/syncUniversalMocks.test.js +132 -0
- package/codeyam-cli/src/utils/__tests__/syncUniversalMocks.test.js.map +1 -0
- package/codeyam-cli/src/utils/analysisRunner.js +272 -0
- package/codeyam-cli/src/utils/analysisRunner.js.map +1 -0
- package/codeyam-cli/src/utils/analyzer.js +252 -0
- package/codeyam-cli/src/utils/analyzer.js.map +1 -0
- package/codeyam-cli/src/utils/backgroundServer.js +88 -0
- package/codeyam-cli/src/utils/backgroundServer.js.map +1 -0
- package/codeyam-cli/src/utils/changeDetection.js +102 -0
- package/codeyam-cli/src/utils/changeDetection.js.map +1 -0
- package/codeyam-cli/src/utils/claude-code.js +39 -0
- package/codeyam-cli/src/utils/claude-code.js.map +1 -0
- package/codeyam-cli/src/utils/cleanupAnalysisFiles.js +89 -0
- package/codeyam-cli/src/utils/cleanupAnalysisFiles.js.map +1 -0
- package/codeyam-cli/src/utils/database.js +280 -0
- package/codeyam-cli/src/utils/database.js.map +1 -0
- package/codeyam-cli/src/utils/defaultUnapprovedPaths.js +92 -0
- package/codeyam-cli/src/utils/defaultUnapprovedPaths.js.map +1 -0
- package/codeyam-cli/src/utils/detectEnvironmentVariables.js +137 -0
- package/codeyam-cli/src/utils/detectEnvironmentVariables.js.map +1 -0
- package/codeyam-cli/src/utils/entityCache.js +160 -0
- package/codeyam-cli/src/utils/entityCache.js.map +1 -0
- package/codeyam-cli/src/utils/entityMetadata.js +55 -0
- package/codeyam-cli/src/utils/entityMetadata.js.map +1 -0
- package/codeyam-cli/src/utils/entityVersioning.js +166 -0
- package/codeyam-cli/src/utils/entityVersioning.js.map +1 -0
- package/codeyam-cli/src/utils/fileMetadata.js +570 -0
- package/codeyam-cli/src/utils/fileMetadata.js.map +1 -0
- package/codeyam-cli/src/utils/fileWatcher.js +1576 -0
- package/codeyam-cli/src/utils/fileWatcher.js.map +1 -0
- package/codeyam-cli/src/utils/folderBurstDetector.js +174 -0
- package/codeyam-cli/src/utils/folderBurstDetector.js.map +1 -0
- package/codeyam-cli/src/utils/generateReport.js +366 -0
- package/codeyam-cli/src/utils/generateReport.js.map +1 -0
- package/codeyam-cli/src/utils/git.js +79 -0
- package/codeyam-cli/src/utils/git.js.map +1 -0
- package/codeyam-cli/src/utils/gitEntityLookup.js +28 -0
- package/codeyam-cli/src/utils/gitEntityLookup.js.map +1 -0
- package/codeyam-cli/src/utils/install-skills.js +120 -0
- package/codeyam-cli/src/utils/install-skills.js.map +1 -0
- package/codeyam-cli/src/utils/labsAutoCheck.js +48 -0
- package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -0
- package/codeyam-cli/src/utils/memoryLogger.js +151 -0
- package/codeyam-cli/src/utils/memoryLogger.js.map +1 -0
- package/codeyam-cli/src/utils/memoryProfiler.js +168 -0
- package/codeyam-cli/src/utils/memoryProfiler.js.map +1 -0
- package/codeyam-cli/src/utils/mockValidator.js +267 -0
- package/codeyam-cli/src/utils/mockValidator.js.map +1 -0
- package/codeyam-cli/src/utils/pathIgnoring.js +127 -0
- package/codeyam-cli/src/utils/pathIgnoring.js.map +1 -0
- package/codeyam-cli/src/utils/progress.js +132 -0
- package/codeyam-cli/src/utils/progress.js.map +1 -0
- package/codeyam-cli/src/utils/project.js +27 -0
- package/codeyam-cli/src/utils/project.js.map +1 -0
- package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js +637 -0
- package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js.map +1 -0
- package/codeyam-cli/src/utils/queue/__tests__/job.pidTracking.test.js +295 -0
- package/codeyam-cli/src/utils/queue/__tests__/job.pidTracking.test.js.map +1 -0
- package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +369 -0
- package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -0
- package/codeyam-cli/src/utils/queue/__tests__/persistence.test.js +186 -0
- package/codeyam-cli/src/utils/queue/__tests__/persistence.test.js.map +1 -0
- package/codeyam-cli/src/utils/queue/heartbeat.js +141 -0
- package/codeyam-cli/src/utils/queue/heartbeat.js.map +1 -0
- package/codeyam-cli/src/utils/queue/job.js +663 -0
- package/codeyam-cli/src/utils/queue/job.js.map +1 -0
- package/codeyam-cli/src/utils/queue/manager.js +236 -0
- package/codeyam-cli/src/utils/queue/manager.js.map +1 -0
- package/codeyam-cli/src/utils/queue/persistence.js +41 -0
- package/codeyam-cli/src/utils/queue/persistence.js.map +1 -0
- package/codeyam-cli/src/utils/queue/proxyQueue.js +163 -0
- package/codeyam-cli/src/utils/queue/proxyQueue.js.map +1 -0
- package/codeyam-cli/src/utils/queue/queueFileWatcher.js +77 -0
- package/codeyam-cli/src/utils/queue/queueFileWatcher.js.map +1 -0
- package/codeyam-cli/src/utils/queue/serverDetection.js +93 -0
- package/codeyam-cli/src/utils/queue/serverDetection.js.map +1 -0
- package/codeyam-cli/src/utils/routeIdentification.js +152 -0
- package/codeyam-cli/src/utils/routeIdentification.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js +82 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +230 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +67 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js +105 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js +34 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js +162 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +75 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +285 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +115 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js +127 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js +50 -0
- package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +116 -0
- package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/index.js +5 -0
- package/codeyam-cli/src/utils/ruleReflection/index.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js +44 -0
- package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js +85 -0
- package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/types.js +5 -0
- package/codeyam-cli/src/utils/ruleReflection/types.js.map +1 -0
- package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +293 -0
- package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -0
- package/codeyam-cli/src/utils/rules/index.js +6 -0
- package/codeyam-cli/src/utils/rules/index.js.map +1 -0
- package/codeyam-cli/src/utils/rules/parser.js +78 -0
- package/codeyam-cli/src/utils/rules/parser.js.map +1 -0
- package/codeyam-cli/src/utils/rules/pathMatcher.js +18 -0
- package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -0
- package/codeyam-cli/src/utils/rules/ruleState.js +150 -0
- package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -0
- package/codeyam-cli/src/utils/rules/staleness.js +137 -0
- package/codeyam-cli/src/utils/rules/staleness.js.map +1 -0
- package/codeyam-cli/src/utils/sandbox.js +190 -0
- package/codeyam-cli/src/utils/sandbox.js.map +1 -0
- package/codeyam-cli/src/utils/secrets.js +152 -0
- package/codeyam-cli/src/utils/secrets.js.map +1 -0
- package/codeyam-cli/src/utils/secretsManager.js +189 -0
- package/codeyam-cli/src/utils/secretsManager.js.map +1 -0
- package/codeyam-cli/src/utils/serverState.js +129 -0
- package/codeyam-cli/src/utils/serverState.js.map +1 -0
- package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +109 -0
- package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -0
- package/codeyam-cli/src/utils/syncMocksMiddleware.js +51 -0
- package/codeyam-cli/src/utils/syncMocksMiddleware.js.map +1 -0
- package/codeyam-cli/src/utils/syncUncommittedEntities.js +169 -0
- package/codeyam-cli/src/utils/syncUncommittedEntities.js.map +1 -0
- package/codeyam-cli/src/utils/syncUniversalMocks.js +284 -0
- package/codeyam-cli/src/utils/syncUniversalMocks.js.map +1 -0
- package/codeyam-cli/src/utils/universal-mocks.js +152 -0
- package/codeyam-cli/src/utils/universal-mocks.js.map +1 -0
- package/codeyam-cli/src/utils/versionInfo.js +123 -0
- package/codeyam-cli/src/utils/versionInfo.js.map +1 -0
- package/codeyam-cli/src/utils/webappDetection.js +259 -0
- package/codeyam-cli/src/utils/webappDetection.js.map +1 -0
- package/codeyam-cli/src/utils/webappMapping.js +52 -0
- package/codeyam-cli/src/utils/webappMapping.js.map +1 -0
- 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 +524 -0
- package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -0
- package/codeyam-cli/src/webserver/app/lib/dbNotifier.js +88 -0
- package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -0
- package/codeyam-cli/src/webserver/app/lib/lightweightEntityExtractor.js +3 -0
- package/codeyam-cli/src/webserver/app/lib/lightweightEntityExtractor.js.map +1 -0
- package/codeyam-cli/src/webserver/backgroundServer.js +167 -0
- package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -0
- package/codeyam-cli/src/webserver/bootstrap.js +49 -0
- package/codeyam-cli/src/webserver/bootstrap.js.map +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/CopyButton-CA3JxPb7.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/EntityItem-B86KKU7e.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/EntityTypeBadge-B5ctlSYt.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-BqY8gDAW.js +41 -0
- package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-ClaLpuOo.js +34 -0
- package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-BDhPilK7.js +25 -0
- package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-VeqEBv9v.js +3 -0
- package/codeyam-cli/src/webserver/build/client/assets/LoadingDots-Bs7Nn1Jr.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/LogViewer-Bm3PmcCz.js +3 -0
- package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-C6PKeMYR.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-Gq3Ocjo6.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-BNLaXBHR.js +10 -0
- package/codeyam-cli/src/webserver/build/client/assets/TruncatedFilePath-CiwXDxLh.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/_index-B3TDXxnk.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-BtBFH820.js +27 -0
- package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-DfKzxuoe.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.agent-transcripts-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.analyze-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.branch-entity-diff-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.capture-screenshot-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.debug-setup-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.delete-scenario-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.events-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.execute-function-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.generate-report-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.generate-scenario-data-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.health-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.interactive-mode-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.kill-process-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.labs-survey-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.labs-unlock-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.llm-calls._entitySha-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.logs._projectSlug-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.memory-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.memory-profile-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.process-status-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.queue-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.recapture-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.recapture-scenario-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.restart-server-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.save-fixture-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.save-scenarios-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.screenshot._-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/book-open-PttOB2SF.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/chevron-down-TJp6ofnp.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/chunk-JZWAC4HX-JE9ZIoBl.js +51 -0
- package/codeyam-cli/src/webserver/build/client/assets/circle-check-CXhHQYrI.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/codeyam-name-logo-CvKwUgHo.svg +9 -0
- package/codeyam-cli/src/webserver/build/client/assets/copy-6y9ALfGT.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-Ca9fAY46.js +21 -0
- package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-CCKUIm0S.svg +4 -0
- package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-DcX-ZS3p.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-C5lqplTC.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha._-n38keI1k.js +23 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-CBoafmVs.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-DGgZjdFg.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-38yPijoD.js +5 -0
- package/codeyam-cli/src/webserver/build/client/assets/entry.client-BSHEfydn.js +29 -0
- package/codeyam-cli/src/webserver/build/client/assets/executionFlowCoverage-BWhdfn70.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-DCPhhSMo.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/files-0N0YJQv7.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/git-DXnyr8uP.js +15 -0
- package/codeyam-cli/src/webserver/build/client/assets/globals-DoeDFXZN.css +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/html2canvas-pro.esm-fmIEn3Bc.js +9 -0
- package/codeyam-cli/src/webserver/build/client/assets/index-CcsFv748.js +3 -0
- package/codeyam-cli/src/webserver/build/client/assets/index-ChN9-fAY.js +9 -0
- package/codeyam-cli/src/webserver/build/client/assets/labs-CmBYA0PH.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/loader-circle-CTqLEAGU.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/manifest-76786b8e.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/memory-CrNQfdMO.js +76 -0
- package/codeyam-cli/src/webserver/build/client/assets/pause-D6vreykR.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/preload-helper-ckwbz45p.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/root-QAY34PIo.js +62 -0
- package/codeyam-cli/src/webserver/build/client/assets/scenarioStatus-B_8jpV3e.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/search-B8VUL8nl.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/settings-eBI36Yv5.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/simulations-CPoAg7Zo.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/static._-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/styles-CMKNK2uU.css +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/terminal-BrCP7uQo.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-BZz2NjYa.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-DNwUduNu.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-COky1GVF.js +2 -0
- package/codeyam-cli/src/webserver/build/client/assets/useReportContext-CpZgwliL.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/useToast-Bv9JFvUO.js +1 -0
- package/codeyam-cli/src/webserver/build/client/favicon.ico +0 -0
- package/codeyam-cli/src/webserver/build/client/favicon.png +0 -0
- package/codeyam-cli/src/webserver/build/client/icons/file-icon.svg +14 -0
- package/codeyam-cli/src/webserver/build/server/assets/index-DV1ykEI6.js +1 -0
- package/codeyam-cli/src/webserver/build/server/assets/server-build-BrcVrUEv.js +260 -0
- package/codeyam-cli/src/webserver/build/server/index.js +1 -0
- package/codeyam-cli/src/webserver/build-info.json +7 -0
- package/codeyam-cli/src/webserver/devServer.js +91 -0
- package/codeyam-cli/src/webserver/devServer.js.map +1 -0
- package/codeyam-cli/src/webserver/public/favicon.ico +0 -0
- package/codeyam-cli/src/webserver/public/favicon.png +0 -0
- package/codeyam-cli/src/webserver/public/icons/file-icon.svg +14 -0
- package/codeyam-cli/src/webserver/server.js +153 -0
- package/codeyam-cli/src/webserver/server.js.map +1 -0
- package/codeyam-cli/templates/codeyam-memory-hook.sh +199 -0
- package/codeyam-cli/templates/codeyam-stop-hook.sh +284 -0
- package/codeyam-cli/templates/codeyam:debug.md +601 -0
- package/codeyam-cli/templates/codeyam:diagnose.md +805 -0
- package/codeyam-cli/templates/codeyam:memory.md +404 -0
- package/codeyam-cli/templates/codeyam:new-rule.md +13 -0
- package/codeyam-cli/templates/codeyam:setup.md +588 -0
- package/codeyam-cli/templates/codeyam:sim.md +222 -0
- package/codeyam-cli/templates/codeyam:test.md +178 -0
- package/codeyam-cli/templates/codeyam:verify.md +179 -0
- package/codeyam-cli/templates/rule-notification-hook.py +56 -0
- package/codeyam-cli/templates/rule-reflection-hook.py +590 -0
- package/codeyam-cli/templates/rules-instructions.md +123 -0
- package/package.json +81 -7
- package/packages/ai/index.js +53 -0
- package/packages/ai/index.js.map +1 -0
- package/packages/ai/src/lib/aiConfig.js +16 -0
- package/packages/ai/src/lib/aiConfig.js.map +1 -0
- package/packages/ai/src/lib/analyzeScope.js +575 -0
- package/packages/ai/src/lib/analyzeScope.js.map +1 -0
- package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js +150 -0
- package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js.map +1 -0
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +893 -0
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -0
- package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js +435 -0
- package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js.map +1 -0
- package/packages/ai/src/lib/astScopes/methodSemantics.js +652 -0
- package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -0
- package/packages/ai/src/lib/astScopes/nodeToSource.js +54 -0
- package/packages/ai/src/lib/astScopes/nodeToSource.js.map +1 -0
- package/packages/ai/src/lib/astScopes/paths.js +552 -0
- package/packages/ai/src/lib/astScopes/paths.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/blockHandler.js +24 -0
- package/packages/ai/src/lib/astScopes/patterns/blockHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/breakStatementHandler.js +18 -0
- package/packages/ai/src/lib/astScopes/patterns/breakStatementHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/doStatementHandler.js +22 -0
- package/packages/ai/src/lib/astScopes/patterns/doStatementHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js +53 -0
- package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/forOfStatementHandler.js +93 -0
- package/packages/ai/src/lib/astScopes/patterns/forOfStatementHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/forStatementHandler.js +52 -0
- package/packages/ai/src/lib/astScopes/patterns/forStatementHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/functionDeclarationHandler.js +179 -0
- package/packages/ai/src/lib/astScopes/patterns/functionDeclarationHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js +44 -0
- package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/patternHandler.js +2 -0
- package/packages/ai/src/lib/astScopes/patterns/patternHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/returnStatementHandler.js +47 -0
- package/packages/ai/src/lib/astScopes/patterns/returnStatementHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/standaloneExpressionHandler.js +51 -0
- package/packages/ai/src/lib/astScopes/patterns/standaloneExpressionHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js +110 -0
- package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/throwStatementHandler.js +16 -0
- package/packages/ai/src/lib/astScopes/patterns/throwStatementHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/tryStatementHandler.js +53 -0
- package/packages/ai/src/lib/astScopes/patterns/tryStatementHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/typeAndInterfaceHandler.js +18 -0
- package/packages/ai/src/lib/astScopes/patterns/typeAndInterfaceHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js +201 -0
- package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/whileStatementHandler.js +24 -0
- package/packages/ai/src/lib/astScopes/patterns/whileStatementHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/processBindings.js +191 -0
- package/packages/ai/src/lib/astScopes/processBindings.js.map +1 -0
- package/packages/ai/src/lib/astScopes/processExpression.js +2707 -0
- package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -0
- package/packages/ai/src/lib/astScopes/sharedPatterns.js +108 -0
- package/packages/ai/src/lib/astScopes/sharedPatterns.js.map +1 -0
- package/packages/ai/src/lib/astScopes/types.js +31 -0
- package/packages/ai/src/lib/astScopes/types.js.map +1 -0
- package/packages/ai/src/lib/astScopes.js +12 -0
- package/packages/ai/src/lib/astScopes.js.map +1 -0
- package/packages/ai/src/lib/checkAllAttributes.js +41 -0
- package/packages/ai/src/lib/checkAllAttributes.js.map +1 -0
- package/packages/ai/src/lib/cleanOutBoundary.js +31 -0
- package/packages/ai/src/lib/cleanOutBoundary.js.map +1 -0
- package/packages/ai/src/lib/codeQualityEntityAnalysis.js +13 -0
- package/packages/ai/src/lib/codeQualityEntityAnalysis.js.map +1 -0
- package/packages/ai/src/lib/commitMessage.js +12 -0
- package/packages/ai/src/lib/commitMessage.js.map +1 -0
- package/packages/ai/src/lib/completionCall.js +514 -0
- package/packages/ai/src/lib/completionCall.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +4533 -0
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/EquivalencyManager.js +2 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/EquivalencyManager.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.js +401 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.js +88 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +377 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +661 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +1004 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +122 -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 +140 -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/cleanKnownObjectFunctions.js +168 -0
- package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +877 -0
- package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/cleanPath.js +21 -0
- package/packages/ai/src/lib/dataStructure/helpers/cleanPath.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/cleanPathOfNonTransformingFunctions.js +42 -0
- package/packages/ai/src/lib/dataStructure/helpers/cleanPathOfNonTransformingFunctions.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/cleanScopeNodeName.js +4 -0
- package/packages/ai/src/lib/dataStructure/helpers/cleanScopeNodeName.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js +63 -0
- package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +334 -0
- package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js +86 -0
- package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js +173 -0
- package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js +128 -0
- package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/determineIsFunctionCall.js +12 -0
- package/packages/ai/src/lib/dataStructure/helpers/determineIsFunctionCall.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/ensureSchemaConsistency.js +73 -0
- package/packages/ai/src/lib/dataStructure/helpers/ensureSchemaConsistency.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +895 -0
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js +107 -0
- package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/getFunctionCallRoot.js +33 -0
- package/packages/ai/src/lib/dataStructure/helpers/getFunctionCallRoot.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/getFunctionCallScopeNodeName.js +8 -0
- package/packages/ai/src/lib/dataStructure/helpers/getFunctionCallScopeNodeName.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/getFunctionCallSignature.js +13 -0
- package/packages/ai/src/lib/dataStructure/helpers/getFunctionCallSignature.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/isGenericArray.js +65 -0
- package/packages/ai/src/lib/dataStructure/helpers/isGenericArray.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/knownMethodCalls.js +128 -0
- package/packages/ai/src/lib/dataStructure/helpers/knownMethodCalls.js.map +1 -0
- 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/dataStructureChunking.js +111 -0
- package/packages/ai/src/lib/dataStructureChunking.js.map +1 -0
- package/packages/ai/src/lib/deepEqual.js +32 -0
- package/packages/ai/src/lib/deepEqual.js.map +1 -0
- package/packages/ai/src/lib/describeCodeChange.js +36 -0
- package/packages/ai/src/lib/describeCodeChange.js.map +1 -0
- package/packages/ai/src/lib/e2eDataTracking.js +241 -0
- package/packages/ai/src/lib/e2eDataTracking.js.map +1 -0
- package/packages/ai/src/lib/extractCriticalDataKeys.js +96 -0
- package/packages/ai/src/lib/extractCriticalDataKeys.js.map +1 -0
- package/packages/ai/src/lib/extractOverlappingMocks.js +41 -0
- package/packages/ai/src/lib/extractOverlappingMocks.js.map +1 -0
- package/packages/ai/src/lib/generateBranchSummary.js +40 -0
- package/packages/ai/src/lib/generateBranchSummary.js.map +1 -0
- package/packages/ai/src/lib/generateChangesEntityDocumentation.js +57 -0
- package/packages/ai/src/lib/generateChangesEntityDocumentation.js.map +1 -0
- package/packages/ai/src/lib/generateChangesEntityScenarioData.js +334 -0
- package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -0
- package/packages/ai/src/lib/generateChangesEntityScenarios.js +308 -0
- package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -0
- package/packages/ai/src/lib/generateEntityDataStructure.js +113 -0
- package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -0
- package/packages/ai/src/lib/generateEntityDocumentation.js +57 -0
- package/packages/ai/src/lib/generateEntityDocumentation.js.map +1 -0
- package/packages/ai/src/lib/generateEntityScenarioData.js +1295 -0
- package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -0
- package/packages/ai/src/lib/generateEntityScenarios.js +362 -0
- package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -0
- package/packages/ai/src/lib/generateExecutionFlows.js +400 -0
- package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -0
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js +380 -0
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js.map +1 -0
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +1646 -0
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -0
- package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js +194 -0
- package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js.map +1 -0
- package/packages/ai/src/lib/generateStatementAnalysis.js +1709 -0
- package/packages/ai/src/lib/generateStatementAnalysis.js.map +1 -0
- package/packages/ai/src/lib/getCodeExplanation.js +40 -0
- package/packages/ai/src/lib/getCodeExplanation.js.map +1 -0
- package/packages/ai/src/lib/getConditionalUsagesFromCode.js +309 -0
- package/packages/ai/src/lib/getConditionalUsagesFromCode.js.map +1 -0
- package/packages/ai/src/lib/getLLMCallCost.js +12 -0
- package/packages/ai/src/lib/getLLMCallCost.js.map +1 -0
- package/packages/ai/src/lib/getLLMCallStats.js +29 -0
- package/packages/ai/src/lib/getLLMCallStats.js.map +1 -0
- package/packages/ai/src/lib/guessScenarioDataFromDescription.js +91 -0
- package/packages/ai/src/lib/guessScenarioDataFromDescription.js.map +1 -0
- package/packages/ai/src/lib/guessScenarioDataFromName.js +57 -0
- package/packages/ai/src/lib/guessScenarioDataFromName.js.map +1 -0
- package/packages/ai/src/lib/identifyReserved.js +619 -0
- package/packages/ai/src/lib/identifyReserved.js.map +1 -0
- package/packages/ai/src/lib/index.js +11 -0
- package/packages/ai/src/lib/index.js.map +1 -0
- package/packages/ai/src/lib/instantiatedInScope.js +186 -0
- package/packages/ai/src/lib/instantiatedInScope.js.map +1 -0
- package/packages/ai/src/lib/isolateScopes.js +990 -0
- package/packages/ai/src/lib/isolateScopes.js.map +1 -0
- package/packages/ai/src/lib/isolateStatements.js +882 -0
- package/packages/ai/src/lib/isolateStatements.js.map +1 -0
- package/packages/ai/src/lib/jsonTypeDefinitionToStandardTypeDefinition.js +34 -0
- package/packages/ai/src/lib/jsonTypeDefinitionToStandardTypeDefinition.js.map +1 -0
- package/packages/ai/src/lib/logOrderedMap.js +22 -0
- package/packages/ai/src/lib/logOrderedMap.js.map +1 -0
- package/packages/ai/src/lib/mergeJsonTypeDefinitions.js +50 -0
- package/packages/ai/src/lib/mergeJsonTypeDefinitions.js.map +1 -0
- package/packages/ai/src/lib/mergeStatements.js +220 -0
- package/packages/ai/src/lib/mergeStatements.js.map +1 -0
- package/packages/ai/src/lib/modelInfo.js +215 -0
- package/packages/ai/src/lib/modelInfo.js.map +1 -0
- package/packages/ai/src/lib/openai/index.js +72 -0
- package/packages/ai/src/lib/openai/index.js.map +1 -0
- package/packages/ai/src/lib/parsers/fileContentToLines.js +8 -0
- package/packages/ai/src/lib/parsers/fileContentToLines.js.map +1 -0
- package/packages/ai/src/lib/parsers/parseJsonSafe.js +40 -0
- package/packages/ai/src/lib/parsers/parseJsonSafe.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/branchSummaryGenerator.js +6 -0
- package/packages/ai/src/lib/promptGenerators/branchSummaryGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/codeQualityEntityAnalysisGenerator.js +52 -0
- package/packages/ai/src/lib/promptGenerators/codeQualityEntityAnalysisGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/commitMessageGenerator.js +36 -0
- package/packages/ai/src/lib/promptGenerators/commitMessageGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +238 -0
- package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityDocumentationGenerator.js +18 -0
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityDocumentationGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js +96 -0
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +66 -0
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js +54 -0
- package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/generateEntityDataStructureGenerator.js +14 -0
- package/packages/ai/src/lib/promptGenerators/generateEntityDataStructureGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/generateEntityDocumentationGenerator.js +15 -0
- package/packages/ai/src/lib/promptGenerators/generateEntityDocumentationGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/generateEntityPropsStructureGenerator.js +17 -0
- package/packages/ai/src/lib/promptGenerators/generateEntityPropsStructureGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +102 -0
- package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +17 -0
- package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js +45 -0
- package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/getComponentExamplesGenerator.js +15 -0
- package/packages/ai/src/lib/promptGenerators/getComponentExamplesGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/guessEditScenarioDataFromDescriptionGenerator.js +29 -0
- package/packages/ai/src/lib/promptGenerators/guessEditScenarioDataFromDescriptionGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js +26 -0
- package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/guessScenarioDataFromNameGenerator.js +21 -0
- package/packages/ai/src/lib/promptGenerators/guessScenarioDataFromNameGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/index.js +11 -0
- package/packages/ai/src/lib/promptGenerators/index.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/noErrorAttributes.js +17 -0
- package/packages/ai/src/lib/promptGenerators/noErrorAttributes.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js +335 -0
- package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/summarizeDiffGenerator.js +11 -0
- package/packages/ai/src/lib/promptGenerators/summarizeDiffGenerator.js.map +1 -0
- package/packages/ai/src/lib/providers.js +36 -0
- package/packages/ai/src/lib/providers.js.map +1 -0
- package/packages/ai/src/lib/resolvePathToControllable.js +677 -0
- package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -0
- package/packages/ai/src/lib/services/aiServiceMode.js +132 -0
- package/packages/ai/src/lib/services/aiServiceMode.js.map +1 -0
- package/packages/ai/src/lib/services/claudeCliAIService.js +204 -0
- package/packages/ai/src/lib/services/claudeCliAIService.js.map +1 -0
- package/packages/ai/src/lib/splitOutsideParentheses.js +289 -0
- package/packages/ai/src/lib/splitOutsideParentheses.js.map +1 -0
- package/packages/ai/src/lib/summarizeDiff.js +14 -0
- package/packages/ai/src/lib/summarizeDiff.js.map +1 -0
- package/packages/ai/src/lib/types/index.js +43 -0
- package/packages/ai/src/lib/types/index.js.map +1 -0
- package/packages/ai/src/lib/validateDataStructure.js +345 -0
- package/packages/ai/src/lib/validateDataStructure.js.map +1 -0
- package/packages/ai/src/lib/validateJson.js +64 -0
- package/packages/ai/src/lib/validateJson.js.map +1 -0
- package/packages/ai/src/lib/validatePlaywrightInstructions.js +162 -0
- package/packages/ai/src/lib/validatePlaywrightInstructions.js.map +1 -0
- package/packages/ai/src/lib/validateTypeStructure.js +72 -0
- package/packages/ai/src/lib/validateTypeStructure.js.map +1 -0
- package/packages/ai/src/lib/worker/SerializableDataStructure.js +128 -0
- package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -0
- package/packages/ai/src/lib/worker/analyzeScopeWorker.js +158 -0
- package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -0
- package/packages/ai/src/lib/worker/analyzeScopeWorkerPaths.js +23 -0
- package/packages/ai/src/lib/worker/analyzeScopeWorkerPaths.js.map +1 -0
- package/packages/ai/src/lib/worker/fuzzyMatchFunctionName.js +64 -0
- package/packages/ai/src/lib/worker/fuzzyMatchFunctionName.js.map +1 -0
- package/packages/ai/src/lib/wrapperDetection/detectWrapperRequirements.js +103 -0
- package/packages/ai/src/lib/wrapperDetection/detectWrapperRequirements.js.map +1 -0
- package/packages/ai/src/lib/wrapperDetection/knownLibraryHooks.js +76 -0
- package/packages/ai/src/lib/wrapperDetection/knownLibraryHooks.js.map +1 -0
- package/packages/ai/src/lib/wrapperDetection/patterns/detectThrowOnMissingPatterns.js +155 -0
- package/packages/ai/src/lib/wrapperDetection/patterns/detectThrowOnMissingPatterns.js.map +1 -0
- package/packages/ai/src/lib/wrapperDetection/patterns/detectUseContextCalls.js +95 -0
- package/packages/ai/src/lib/wrapperDetection/patterns/detectUseContextCalls.js.map +1 -0
- package/packages/analyze/index.js +99 -0
- package/packages/analyze/index.js.map +1 -0
- package/packages/analyze/src/lib/FileAnalyzer.js +847 -0
- package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -0
- package/packages/analyze/src/lib/ProjectAnalyzer.js +316 -0
- package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -0
- package/packages/analyze/src/lib/analysisContext.js +238 -0
- package/packages/analyze/src/lib/analysisContext.js.map +1 -0
- package/packages/analyze/src/lib/asts/index.js +179 -0
- package/packages/analyze/src/lib/asts/index.js.map +1 -0
- package/packages/analyze/src/lib/asts/nodes/getCallExpressionNames.js +33 -0
- package/packages/analyze/src/lib/asts/nodes/getCallExpressionNames.js.map +1 -0
- package/packages/analyze/src/lib/asts/nodes/getFunctionNodeType.js +17 -0
- package/packages/analyze/src/lib/asts/nodes/getFunctionNodeType.js.map +1 -0
- package/packages/analyze/src/lib/asts/nodes/getNodeType.js +108 -0
- package/packages/analyze/src/lib/asts/nodes/getNodeType.js.map +1 -0
- package/packages/analyze/src/lib/asts/nodes/getReactComponentType.js +36 -0
- package/packages/analyze/src/lib/asts/nodes/getReactComponentType.js.map +1 -0
- package/packages/analyze/src/lib/asts/nodes/index.js +139 -0
- package/packages/analyze/src/lib/asts/nodes/index.js.map +1 -0
- package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js +52 -0
- package/packages/analyze/src/lib/asts/nodes/isAsyncFunction.js.map +1 -0
- package/packages/analyze/src/lib/asts/nodes/isDefaultExport.js +62 -0
- package/packages/analyze/src/lib/asts/nodes/isDefaultExport.js.map +1 -0
- package/packages/analyze/src/lib/asts/nodes/propsNodeToPropsData.js +342 -0
- package/packages/analyze/src/lib/asts/nodes/propsNodeToPropsData.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js +205 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllEntities.js +5 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllEntities.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js +202 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllExportedNodes.js +104 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllExportedNodes.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js +197 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getComponentProps.js +24 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getComponentProps.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getComponentType.js +36 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getComponentType.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/getDefaultExportedFunctionNode.js +38 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getDefaultExportedFunctionNode.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getEntityNode.js +17 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getEntityNode.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getImportMappings.js +33 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getImportMappings.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js +109 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getPropsFromFunctionalComponent.js +70 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getPropsFromFunctionalComponent.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getPseudoFile.js +10 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getPseudoFile.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getResolvedImportedTypes.js +60 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getResolvedImportedTypes.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js +126 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getSourceFile.js +6 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getSourceFile.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js +17 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForImports.js +12 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForImports.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/index.js +44 -0
- package/packages/analyze/src/lib/asts/sourceFiles/index.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/extractClassMethods.js +95 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/extractClassMethods.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +758 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/asyncComplex.js +79 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/asyncComplex.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/asyncSimple.js +20 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/asyncSimple.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/index.js +16 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/index.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/sequential.js +15 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/sequential.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/types.js +2 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/types.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +371 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +88 -0
- package/packages/analyze/src/lib/files/analyze/dependencyResolver.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +173 -0
- package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/findPreviousAnalysis.js +15 -0
- package/packages/analyze/src/lib/files/analyze/findPreviousAnalysis.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/findValidExistingAnalysis.js +13 -0
- package/packages/analyze/src/lib/files/analyze/findValidExistingAnalysis.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +84 -0
- package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/generateAnalysisTreeSha.js +118 -0
- package/packages/analyze/src/lib/files/analyze/generateAnalysisTreeSha.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/generateAnalyzedTreeSha.js +7 -0
- package/packages/analyze/src/lib/files/analyze/generateAnalyzedTreeSha.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/guessDefaultWidth.js +12 -0
- package/packages/analyze/src/lib/files/analyze/guessDefaultWidth.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/setActiveAnalysisBranches.js +94 -0
- package/packages/analyze/src/lib/files/analyze/setActiveAnalysisBranches.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.js +78 -0
- package/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +106 -0
- package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -0
- package/packages/analyze/src/lib/files/analyzeChange.js +148 -0
- package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -0
- package/packages/analyze/src/lib/files/analyzeCodeChange.js +38 -0
- package/packages/analyze/src/lib/files/analyzeCodeChange.js.map +1 -0
- package/packages/analyze/src/lib/files/analyzeEntity.js +396 -0
- package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -0
- package/packages/analyze/src/lib/files/analyzeFrameworkRoute.js +13 -0
- package/packages/analyze/src/lib/files/analyzeFrameworkRoute.js.map +1 -0
- package/packages/analyze/src/lib/files/analyzeInitial.js +119 -0
- package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -0
- package/packages/analyze/src/lib/files/analyzeNextRoute.js +81 -0
- package/packages/analyze/src/lib/files/analyzeNextRoute.js.map +1 -0
- package/packages/analyze/src/lib/files/analyzeRemixRoute.js +103 -0
- package/packages/analyze/src/lib/files/analyzeRemixRoute.js.map +1 -0
- package/packages/analyze/src/lib/files/enums/steps.js +18 -0
- package/packages/analyze/src/lib/files/enums/steps.js.map +1 -0
- package/packages/analyze/src/lib/files/extractDiffLines.js +22 -0
- package/packages/analyze/src/lib/files/extractDiffLines.js.map +1 -0
- package/packages/analyze/src/lib/files/fileAnalyzerFromCode.js +41 -0
- package/packages/analyze/src/lib/files/fileAnalyzerFromCode.js.map +1 -0
- package/packages/analyze/src/lib/files/findScenarioData.js +30 -0
- package/packages/analyze/src/lib/files/findScenarioData.js.map +1 -0
- package/packages/analyze/src/lib/files/getEntityCode.js +14 -0
- package/packages/analyze/src/lib/files/getEntityCode.js.map +1 -0
- package/packages/analyze/src/lib/files/getEntityType.js +13 -0
- package/packages/analyze/src/lib/files/getEntityType.js.map +1 -0
- package/packages/analyze/src/lib/files/getImportedExports.js +195 -0
- package/packages/analyze/src/lib/files/getImportedExports.js.map +1 -0
- package/packages/analyze/src/lib/files/getNodeModuleImports.js +24 -0
- package/packages/analyze/src/lib/files/getNodeModuleImports.js.map +1 -0
- package/packages/analyze/src/lib/files/newAnalysis.js +26 -0
- package/packages/analyze/src/lib/files/newAnalysis.js.map +1 -0
- package/packages/analyze/src/lib/files/recordStep.js +24 -0
- package/packages/analyze/src/lib/files/recordStep.js.map +1 -0
- package/packages/analyze/src/lib/files/relevantDiffPart.js +63 -0
- package/packages/analyze/src/lib/files/relevantDiffPart.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +880 -0
- package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/detectChangedDataStructureFields.js +75 -0
- package/packages/analyze/src/lib/files/scenarios/detectChangedDataStructureFields.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +255 -0
- package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js +85 -0
- package/packages/analyze/src/lib/files/scenarios/enrichUnknownTypesFromSourceEquivalencies.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +684 -0
- package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js +110 -0
- package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js +158 -0
- package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +600 -0
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +144 -0
- package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +140 -0
- package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +93 -0
- package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/isolateDataStructure.js +39 -0
- package/packages/analyze/src/lib/files/scenarios/isolateDataStructure.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +1378 -0
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js +188 -0
- package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js.map +1 -0
- package/packages/analyze/src/lib/files/setImportedExports.js +208 -0
- package/packages/analyze/src/lib/files/setImportedExports.js.map +1 -0
- package/packages/analyze/src/lib/index.js +7 -0
- package/packages/analyze/src/lib/index.js.map +1 -0
- package/packages/analyze/src/lib/projects/index.js +42 -0
- package/packages/analyze/src/lib/projects/index.js.map +1 -0
- package/packages/analyze/src/lib/types/index.js +11 -0
- package/packages/analyze/src/lib/types/index.js.map +1 -0
- package/packages/analyze/src/lib/utils/deepEqual.js +32 -0
- package/packages/analyze/src/lib/utils/deepEqual.js.map +1 -0
- package/packages/analyze/src/lib/utils/getAnalysisError.js +4 -0
- package/packages/analyze/src/lib/utils/getAnalysisError.js.map +1 -0
- package/packages/analyze/src/lib/utils/getFileByPath.js +12 -0
- package/packages/analyze/src/lib/utils/getFileByPath.js.map +1 -0
- package/packages/analyze/src/lib/utils/measureAndReportExecutionTime.js +16 -0
- package/packages/analyze/src/lib/utils/measureAndReportExecutionTime.js.map +1 -0
- package/packages/analyze/src/lib/utils/measureExecutionTime.js +11 -0
- package/packages/analyze/src/lib/utils/measureExecutionTime.js.map +1 -0
- package/packages/aws/dynamodb/index.js +6 -0
- package/packages/aws/dynamodb/index.js.map +1 -0
- package/packages/aws/ecs/index.js +7 -0
- package/packages/aws/ecs/index.js.map +1 -0
- package/packages/aws/sqs/index.js +4 -0
- package/packages/aws/sqs/index.js.map +1 -0
- package/packages/aws/src/lib/dynamodb/loadLlmCall.js +26 -0
- package/packages/aws/src/lib/dynamodb/loadLlmCall.js.map +1 -0
- package/packages/aws/src/lib/dynamodb/loadLlmCalls.js +35 -0
- package/packages/aws/src/lib/dynamodb/loadLlmCalls.js.map +1 -0
- package/packages/aws/src/lib/dynamodb/provisionTable.js +66 -0
- package/packages/aws/src/lib/dynamodb/provisionTable.js.map +1 -0
- package/packages/aws/src/lib/dynamodb/saveLlmCall.js +67 -0
- package/packages/aws/src/lib/dynamodb/saveLlmCall.js.map +1 -0
- package/packages/aws/src/lib/dynamodb/tableNames.js +6 -0
- package/packages/aws/src/lib/dynamodb/tableNames.js.map +1 -0
- package/packages/aws/src/lib/dynamodb/types.js +2 -0
- package/packages/aws/src/lib/dynamodb/types.js.map +1 -0
- package/packages/aws/src/lib/ecs/ecsCheckTaskStatus.js +36 -0
- package/packages/aws/src/lib/ecs/ecsCheckTaskStatus.js.map +1 -0
- package/packages/aws/src/lib/ecs/ecsCreateTaskDefinition.js +138 -0
- package/packages/aws/src/lib/ecs/ecsCreateTaskDefinition.js.map +1 -0
- package/packages/aws/src/lib/ecs/ecsDefineContainer.js +30 -0
- package/packages/aws/src/lib/ecs/ecsDefineContainer.js.map +1 -0
- package/packages/aws/src/lib/ecs/ecsStartTask.js +51 -0
- package/packages/aws/src/lib/ecs/ecsStartTask.js.map +1 -0
- package/packages/aws/src/lib/ecs/ecsTaskFactory.js +43 -0
- package/packages/aws/src/lib/ecs/ecsTaskFactory.js.map +1 -0
- package/packages/aws/src/lib/sqs/getSqsQueueSizeStats.js +15 -0
- package/packages/aws/src/lib/sqs/getSqsQueueSizeStats.js.map +1 -0
- package/packages/aws/src/lib/sqs/sendSqsMessage.js +9 -0
- package/packages/aws/src/lib/sqs/sendSqsMessage.js.map +1 -0
- package/packages/database/index.js +84 -0
- package/packages/database/index.js.map +1 -0
- package/packages/database/src/lib/analysisBranchToDb.js +19 -0
- package/packages/database/src/lib/analysisBranchToDb.js.map +1 -0
- package/packages/database/src/lib/analysisToDb.js +26 -0
- package/packages/database/src/lib/analysisToDb.js.map +1 -0
- package/packages/database/src/lib/backgroundJobToDb.js +13 -0
- package/packages/database/src/lib/backgroundJobToDb.js.map +1 -0
- package/packages/database/src/lib/branchToDb.js +18 -0
- package/packages/database/src/lib/branchToDb.js.map +1 -0
- package/packages/database/src/lib/commitBranchToDb.js +13 -0
- package/packages/database/src/lib/commitBranchToDb.js.map +1 -0
- package/packages/database/src/lib/commitToDb.js +26 -0
- package/packages/database/src/lib/commitToDb.js.map +1 -0
- package/packages/database/src/lib/createOrUpdateBranchCommitStats.js +108 -0
- package/packages/database/src/lib/createOrUpdateBranchCommitStats.js.map +1 -0
- package/packages/database/src/lib/createProject.js +22 -0
- package/packages/database/src/lib/createProject.js.map +1 -0
- package/packages/database/src/lib/createRetryFetch.js +42 -0
- package/packages/database/src/lib/createRetryFetch.js.map +1 -0
- package/packages/database/src/lib/dbToAnalysis.js +48 -0
- package/packages/database/src/lib/dbToAnalysis.js.map +1 -0
- package/packages/database/src/lib/dbToAnalysisBranch.js +24 -0
- package/packages/database/src/lib/dbToAnalysisBranch.js.map +1 -0
- package/packages/database/src/lib/dbToBackgroundJob.js +13 -0
- package/packages/database/src/lib/dbToBackgroundJob.js.map +1 -0
- package/packages/database/src/lib/dbToBranch.js +22 -0
- package/packages/database/src/lib/dbToBranch.js.map +1 -0
- package/packages/database/src/lib/dbToCommit.js +40 -0
- package/packages/database/src/lib/dbToCommit.js.map +1 -0
- package/packages/database/src/lib/dbToCommitBranch.js +18 -0
- package/packages/database/src/lib/dbToCommitBranch.js.map +1 -0
- package/packages/database/src/lib/dbToEntity.js +23 -0
- package/packages/database/src/lib/dbToEntity.js.map +1 -0
- package/packages/database/src/lib/dbToEntityBranch.js +13 -0
- package/packages/database/src/lib/dbToEntityBranch.js.map +1 -0
- package/packages/database/src/lib/dbToFile.js +14 -0
- package/packages/database/src/lib/dbToFile.js.map +1 -0
- package/packages/database/src/lib/dbToProject.js +16 -0
- package/packages/database/src/lib/dbToProject.js.map +1 -0
- package/packages/database/src/lib/dbToScenario.js +24 -0
- package/packages/database/src/lib/dbToScenario.js.map +1 -0
- package/packages/database/src/lib/dbToScenarioComment.js +21 -0
- package/packages/database/src/lib/dbToScenarioComment.js.map +1 -0
- package/packages/database/src/lib/dbToUserScenario.js +19 -0
- package/packages/database/src/lib/dbToUserScenario.js.map +1 -0
- package/packages/database/src/lib/deleteBranch.js +21 -0
- package/packages/database/src/lib/deleteBranch.js.map +1 -0
- package/packages/database/src/lib/deleteEntities.js +23 -0
- package/packages/database/src/lib/deleteEntities.js.map +1 -0
- package/packages/database/src/lib/deleteFile.js +18 -0
- package/packages/database/src/lib/deleteFile.js.map +1 -0
- package/packages/database/src/lib/deleteScenarios.js +34 -0
- package/packages/database/src/lib/deleteScenarios.js.map +1 -0
- package/packages/database/src/lib/entityToDb.js +54 -0
- package/packages/database/src/lib/entityToDb.js.map +1 -0
- package/packages/database/src/lib/fileToDb.js +14 -0
- package/packages/database/src/lib/fileToDb.js.map +1 -0
- package/packages/database/src/lib/generateSha.js +15 -0
- package/packages/database/src/lib/generateSha.js.map +1 -0
- package/packages/database/src/lib/jsonUpdateUtils.js +28 -0
- package/packages/database/src/lib/jsonUpdateUtils.js.map +1 -0
- package/packages/database/src/lib/kysely/aggregationHelpers.js +66 -0
- package/packages/database/src/lib/kysely/aggregationHelpers.js.map +1 -0
- package/packages/database/src/lib/kysely/db.js +373 -0
- package/packages/database/src/lib/kysely/db.js.map +1 -0
- package/packages/database/src/lib/kysely/schemaHelpers.js +17 -0
- package/packages/database/src/lib/kysely/schemaHelpers.js.map +1 -0
- package/packages/database/src/lib/kysely/sqliteBooleanPlugin.js +34 -0
- package/packages/database/src/lib/kysely/sqliteBooleanPlugin.js.map +1 -0
- package/packages/database/src/lib/kysely/tableRelations.js +2 -0
- package/packages/database/src/lib/kysely/tableRelations.js.map +1 -0
- package/packages/database/src/lib/kysely/tableRelationsTypes.js +7 -0
- package/packages/database/src/lib/kysely/tableRelationsTypes.js.map +1 -0
- package/packages/database/src/lib/kysely/tables/analysesTable.js +52 -0
- package/packages/database/src/lib/kysely/tables/analysesTable.js.map +1 -0
- package/packages/database/src/lib/kysely/tables/analysisBranchesTable.js +24 -0
- package/packages/database/src/lib/kysely/tables/analysisBranchesTable.js.map +1 -0
- package/packages/database/src/lib/kysely/tables/backgroundJobsTable.js +28 -0
- package/packages/database/src/lib/kysely/tables/backgroundJobsTable.js.map +1 -0
- package/packages/database/src/lib/kysely/tables/branchesTable.js +34 -0
- package/packages/database/src/lib/kysely/tables/branchesTable.js.map +1 -0
- package/packages/database/src/lib/kysely/tables/commitBranchesTable.js +22 -0
- package/packages/database/src/lib/kysely/tables/commitBranchesTable.js.map +1 -0
- package/packages/database/src/lib/kysely/tables/commitsTable.js +47 -0
- package/packages/database/src/lib/kysely/tables/commitsTable.js.map +1 -0
- package/packages/database/src/lib/kysely/tables/debugReportsTable.js +33 -0
- package/packages/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -0
- package/packages/database/src/lib/kysely/tables/entitiesTable.js +38 -0
- package/packages/database/src/lib/kysely/tables/entitiesTable.js.map +1 -0
- package/packages/database/src/lib/kysely/tables/entityBranchesTable.js +22 -0
- package/packages/database/src/lib/kysely/tables/entityBranchesTable.js.map +1 -0
- package/packages/database/src/lib/kysely/tables/entityStatementsTable.js +22 -0
- package/packages/database/src/lib/kysely/tables/entityStatementsTable.js.map +1 -0
- package/packages/database/src/lib/kysely/tables/filesTable.js +28 -0
- package/packages/database/src/lib/kysely/tables/filesTable.js.map +1 -0
- package/packages/database/src/lib/kysely/tables/githubPayloadsTable.js +32 -0
- package/packages/database/src/lib/kysely/tables/githubPayloadsTable.js.map +1 -0
- package/packages/database/src/lib/kysely/tables/githubUsersTable.js +22 -0
- package/packages/database/src/lib/kysely/tables/githubUsersTable.js.map +1 -0
- package/packages/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
- package/packages/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
- package/packages/database/src/lib/kysely/tables/projectsTable.js +38 -0
- package/packages/database/src/lib/kysely/tables/projectsTable.js.map +1 -0
- package/packages/database/src/lib/kysely/tables/scenarioCommentsTable.js +28 -0
- package/packages/database/src/lib/kysely/tables/scenarioCommentsTable.js.map +1 -0
- package/packages/database/src/lib/kysely/tables/scenariosTable.js +30 -0
- package/packages/database/src/lib/kysely/tables/scenariosTable.js.map +1 -0
- package/packages/database/src/lib/kysely/tables/statementsTable.js +24 -0
- package/packages/database/src/lib/kysely/tables/statementsTable.js.map +1 -0
- package/packages/database/src/lib/kysely/tables/teamsTable.js +18 -0
- package/packages/database/src/lib/kysely/tables/teamsTable.js.map +1 -0
- package/packages/database/src/lib/kysely/tables/userScenariosTable.js +24 -0
- package/packages/database/src/lib/kysely/tables/userScenariosTable.js.map +1 -0
- package/packages/database/src/lib/kysely/tables/userTeamsTable.js +17 -0
- package/packages/database/src/lib/kysely/tables/userTeamsTable.js.map +1 -0
- package/packages/database/src/lib/kysely/tables/usersTable.js +26 -0
- package/packages/database/src/lib/kysely/tables/usersTable.js.map +1 -0
- package/packages/database/src/lib/kysely/upsertHelpers.js +9 -0
- package/packages/database/src/lib/kysely/upsertHelpers.js.map +1 -0
- package/packages/database/src/lib/loadAnalyses.js +174 -0
- package/packages/database/src/lib/loadAnalyses.js.map +1 -0
- package/packages/database/src/lib/loadAnalysis.js +138 -0
- package/packages/database/src/lib/loadAnalysis.js.map +1 -0
- package/packages/database/src/lib/loadAnalysisBranches.js +152 -0
- package/packages/database/src/lib/loadAnalysisBranches.js.map +1 -0
- package/packages/database/src/lib/loadBackgroundJob.js +19 -0
- package/packages/database/src/lib/loadBackgroundJob.js.map +1 -0
- package/packages/database/src/lib/loadBranch.js +100 -0
- package/packages/database/src/lib/loadBranch.js.map +1 -0
- package/packages/database/src/lib/loadBranches.js +37 -0
- package/packages/database/src/lib/loadBranches.js.map +1 -0
- package/packages/database/src/lib/loadCommit.js +118 -0
- package/packages/database/src/lib/loadCommit.js.map +1 -0
- package/packages/database/src/lib/loadCommitBranches.js +45 -0
- package/packages/database/src/lib/loadCommitBranches.js.map +1 -0
- package/packages/database/src/lib/loadCommitMetadata.js +26 -0
- package/packages/database/src/lib/loadCommitMetadata.js.map +1 -0
- package/packages/database/src/lib/loadCommits.js +209 -0
- package/packages/database/src/lib/loadCommits.js.map +1 -0
- package/packages/database/src/lib/loadEntities.js +82 -0
- package/packages/database/src/lib/loadEntities.js.map +1 -0
- package/packages/database/src/lib/loadEntity.js +72 -0
- package/packages/database/src/lib/loadEntity.js.map +1 -0
- package/packages/database/src/lib/loadEntityBranches.js +123 -0
- package/packages/database/src/lib/loadEntityBranches.js.map +1 -0
- package/packages/database/src/lib/loadFile.js +28 -0
- package/packages/database/src/lib/loadFile.js.map +1 -0
- package/packages/database/src/lib/loadFiles.js +101 -0
- package/packages/database/src/lib/loadFiles.js.map +1 -0
- package/packages/database/src/lib/loadMostRecentPreviousAnalysis.js +80 -0
- package/packages/database/src/lib/loadMostRecentPreviousAnalysis.js.map +1 -0
- package/packages/database/src/lib/loadProject.js +52 -0
- package/packages/database/src/lib/loadProject.js.map +1 -0
- package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +68 -0
- package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -0
- package/packages/database/src/lib/loadScenario.js +30 -0
- package/packages/database/src/lib/loadScenario.js.map +1 -0
- package/packages/database/src/lib/loadStatement.js +21 -0
- package/packages/database/src/lib/loadStatement.js.map +1 -0
- package/packages/database/src/lib/nullsToUndefines.js +7 -0
- package/packages/database/src/lib/nullsToUndefines.js.map +1 -0
- package/packages/database/src/lib/projectToDb.js +18 -0
- package/packages/database/src/lib/projectToDb.js.map +1 -0
- package/packages/database/src/lib/saveBackgroundEvent.js +10 -0
- package/packages/database/src/lib/saveBackgroundEvent.js.map +1 -0
- package/packages/database/src/lib/saveEntityStatements.js +20 -0
- package/packages/database/src/lib/saveEntityStatements.js.map +1 -0
- package/packages/database/src/lib/saveFiles.js +33 -0
- package/packages/database/src/lib/saveFiles.js.map +1 -0
- package/packages/database/src/lib/saveStatement.js +22 -0
- package/packages/database/src/lib/saveStatement.js.map +1 -0
- package/packages/database/src/lib/scenarioToDb.js +18 -0
- package/packages/database/src/lib/scenarioToDb.js.map +1 -0
- package/packages/database/src/lib/supabase.js +57 -0
- package/packages/database/src/lib/supabase.js.map +1 -0
- package/packages/database/src/lib/updateBackgroundJobProgress.js +61 -0
- package/packages/database/src/lib/updateBackgroundJobProgress.js.map +1 -0
- package/packages/database/src/lib/updateCommitMetadata.js +101 -0
- package/packages/database/src/lib/updateCommitMetadata.js.map +1 -0
- package/packages/database/src/lib/updateEntityBranch.js +21 -0
- package/packages/database/src/lib/updateEntityBranch.js.map +1 -0
- package/packages/database/src/lib/updateFreshAnalysisMetadata.js +42 -0
- package/packages/database/src/lib/updateFreshAnalysisMetadata.js.map +1 -0
- package/packages/database/src/lib/updateFreshAnalysisStatus.js +42 -0
- package/packages/database/src/lib/updateFreshAnalysisStatus.js.map +1 -0
- package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +70 -0
- package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -0
- package/packages/database/src/lib/updateProjectMetadata.js +60 -0
- package/packages/database/src/lib/updateProjectMetadata.js.map +1 -0
- package/packages/database/src/lib/upsertAnalyses.js +53 -0
- package/packages/database/src/lib/upsertAnalyses.js.map +1 -0
- package/packages/database/src/lib/upsertAnalysesWithScenarios.js +62 -0
- package/packages/database/src/lib/upsertAnalysesWithScenarios.js.map +1 -0
- package/packages/database/src/lib/upsertAnalysisBranches.js +72 -0
- package/packages/database/src/lib/upsertAnalysisBranches.js.map +1 -0
- package/packages/database/src/lib/upsertBackgroundJob.js +22 -0
- package/packages/database/src/lib/upsertBackgroundJob.js.map +1 -0
- package/packages/database/src/lib/upsertBranches.js +29 -0
- package/packages/database/src/lib/upsertBranches.js.map +1 -0
- package/packages/database/src/lib/upsertCommitBranches.js +29 -0
- package/packages/database/src/lib/upsertCommitBranches.js.map +1 -0
- package/packages/database/src/lib/upsertCommits.js +41 -0
- package/packages/database/src/lib/upsertCommits.js.map +1 -0
- package/packages/database/src/lib/upsertEntities.js +82 -0
- package/packages/database/src/lib/upsertEntities.js.map +1 -0
- package/packages/database/src/lib/upsertEntityBranches.js +27 -0
- package/packages/database/src/lib/upsertEntityBranches.js.map +1 -0
- package/packages/database/src/lib/upsertFiles.js +32 -0
- package/packages/database/src/lib/upsertFiles.js.map +1 -0
- package/packages/database/src/lib/upsertGithubUser.js +27 -0
- package/packages/database/src/lib/upsertGithubUser.js.map +1 -0
- package/packages/database/src/lib/upsertProjects.js +27 -0
- package/packages/database/src/lib/upsertProjects.js.map +1 -0
- package/packages/database/src/lib/upsertScenarios.js +28 -0
- package/packages/database/src/lib/upsertScenarios.js.map +1 -0
- package/packages/generate/index.js +16 -0
- package/packages/generate/index.js.map +1 -0
- package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +136 -0
- package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -0
- package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js +108 -0
- package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js.map +1 -0
- package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +189 -0
- package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -0
- package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js +53 -0
- package/packages/generate/src/lib/componentScenarioPage/generateScenarioServerComponent.js.map +1 -0
- package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +82 -0
- package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -0
- package/packages/generate/src/lib/componentScenarioPage/getImageReplacementCode.js +134 -0
- package/packages/generate/src/lib/componentScenarioPage/getImageReplacementCode.js.map +1 -0
- package/packages/generate/src/lib/componentScenarioPage/getNextJsErrorClosingCode.js +67 -0
- package/packages/generate/src/lib/componentScenarioPage/getNextJsErrorClosingCode.js.map +1 -0
- package/packages/generate/src/lib/constants.js +3 -0
- package/packages/generate/src/lib/constants.js.map +1 -0
- package/packages/generate/src/lib/deepMerge.js +72 -0
- package/packages/generate/src/lib/deepMerge.js.map +1 -0
- package/packages/generate/src/lib/directExecutionScript.js +165 -0
- package/packages/generate/src/lib/directExecutionScript.js.map +1 -0
- package/packages/generate/src/lib/escapeQuotes.js +4 -0
- package/packages/generate/src/lib/escapeQuotes.js.map +1 -0
- package/packages/generate/src/lib/getComponentImportStatement.js +23 -0
- package/packages/generate/src/lib/getComponentImportStatement.js.map +1 -0
- package/packages/generate/src/lib/getComponentImportStatements.js +24 -0
- package/packages/generate/src/lib/getComponentImportStatements.js.map +1 -0
- package/packages/generate/src/lib/getComponentScenarioPath.js +25 -0
- package/packages/generate/src/lib/getComponentScenarioPath.js.map +1 -0
- package/packages/generate/src/lib/getRelativePath.js +32 -0
- package/packages/generate/src/lib/getRelativePath.js.map +1 -0
- package/packages/generate/src/lib/handleCmdk.js +50 -0
- package/packages/generate/src/lib/handleCmdk.js.map +1 -0
- package/packages/generate/src/lib/handleRadix.js +224 -0
- package/packages/generate/src/lib/handleRadix.js.map +1 -0
- package/packages/generate/src/lib/handleWrappers.js +24 -0
- package/packages/generate/src/lib/handleWrappers.js.map +1 -0
- package/packages/generate/src/lib/libDemoComponent.js +160 -0
- package/packages/generate/src/lib/libDemoComponent.js.map +1 -0
- package/packages/generate/src/lib/mergeRootRemix.js +323 -0
- package/packages/generate/src/lib/mergeRootRemix.js.map +1 -0
- package/packages/generate/src/lib/requiredNodeModuleImports.js +45 -0
- package/packages/generate/src/lib/requiredNodeModuleImports.js.map +1 -0
- package/packages/generate/src/lib/safeFolder.js +11 -0
- package/packages/generate/src/lib/safeFolder.js.map +1 -0
- package/packages/generate/src/lib/scenarioComponent.js +94 -0
- package/packages/generate/src/lib/scenarioComponent.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/generate/src/lib/simpleRootRemix.js +73 -0
- package/packages/generate/src/lib/simpleRootRemix.js.map +1 -0
- package/packages/github/index.js +23 -0
- package/packages/github/index.js.map +1 -0
- package/packages/github/src/lib/constants.js +4 -0
- package/packages/github/src/lib/constants.js.map +1 -0
- package/packages/github/src/lib/createProjectOctokit.js +48 -0
- package/packages/github/src/lib/createProjectOctokit.js.map +1 -0
- package/packages/github/src/lib/getBranches.js +14 -0
- package/packages/github/src/lib/getBranches.js.map +1 -0
- package/packages/github/src/lib/getCommit.js +12 -0
- package/packages/github/src/lib/getCommit.js.map +1 -0
- package/packages/github/src/lib/getCommitFromGithub.js +57 -0
- package/packages/github/src/lib/getCommitFromGithub.js.map +1 -0
- package/packages/github/src/lib/getCommits.js +37 -0
- package/packages/github/src/lib/getCommits.js.map +1 -0
- package/packages/github/src/lib/getCommitsFromGithub.js +163 -0
- package/packages/github/src/lib/getCommitsFromGithub.js.map +1 -0
- package/packages/github/src/lib/getDiffBetweenCommits.js +26 -0
- package/packages/github/src/lib/getDiffBetweenCommits.js.map +1 -0
- package/packages/github/src/lib/getFirstCommitShaAfterTimestamp.js +22 -0
- package/packages/github/src/lib/getFirstCommitShaAfterTimestamp.js.map +1 -0
- package/packages/github/src/lib/getLatestCommit.js +28 -0
- package/packages/github/src/lib/getLatestCommit.js.map +1 -0
- package/packages/github/src/lib/getOpenPullRequests.js +28 -0
- package/packages/github/src/lib/getOpenPullRequests.js.map +1 -0
- package/packages/github/src/lib/getPublicReposWithQuery.js +12 -0
- package/packages/github/src/lib/getPublicReposWithQuery.js.map +1 -0
- package/packages/github/src/lib/getPullRequestsForCommit.js +21 -0
- package/packages/github/src/lib/getPullRequestsForCommit.js.map +1 -0
- package/packages/github/src/lib/getRepoInfo.js +35 -0
- package/packages/github/src/lib/getRepoInfo.js.map +1 -0
- package/packages/github/src/lib/getRepoWithBranches.js +53 -0
- package/packages/github/src/lib/getRepoWithBranches.js.map +1 -0
- package/packages/github/src/lib/getRepos.js +13 -0
- package/packages/github/src/lib/getRepos.js.map +1 -0
- package/packages/github/src/lib/getTree.js +14 -0
- package/packages/github/src/lib/getTree.js.map +1 -0
- package/packages/github/src/lib/githubToCommit.js +20 -0
- package/packages/github/src/lib/githubToCommit.js.map +1 -0
- package/packages/github/src/lib/loadOrCreateCommit.js +149 -0
- package/packages/github/src/lib/loadOrCreateCommit.js.map +1 -0
- package/packages/github/src/lib/syncHeadBranches.js +38 -0
- package/packages/github/src/lib/syncHeadBranches.js.map +1 -0
- package/packages/github/src/lib/syncPrimaryBranch.js +75 -0
- package/packages/github/src/lib/syncPrimaryBranch.js.map +1 -0
- package/packages/github/src/lib/syncPullRequest.js +48 -0
- package/packages/github/src/lib/syncPullRequest.js.map +1 -0
- package/packages/github/src/lib/updateCommitBranchesInDb.js +40 -0
- package/packages/github/src/lib/updateCommitBranchesInDb.js.map +1 -0
- package/packages/github/src/lib/updateFilesInDb.js +74 -0
- package/packages/github/src/lib/updateFilesInDb.js.map +1 -0
- package/packages/github/src/lib/urls.js +11 -0
- package/packages/github/src/lib/urls.js.map +1 -0
- package/packages/process/index.js +3 -0
- package/packages/process/index.js.map +1 -0
- package/packages/process/src/GlobalProcessManager.js +75 -0
- package/packages/process/src/GlobalProcessManager.js.map +1 -0
- package/packages/process/src/ProcessManager.js +244 -0
- package/packages/process/src/ProcessManager.js.map +1 -0
- package/packages/process/src/index.js +57 -0
- package/packages/process/src/index.js.map +1 -0
- package/packages/process/src/managedExecAsync.js +74 -0
- package/packages/process/src/managedExecAsync.js.map +1 -0
- package/packages/types/index.js +4 -0
- package/packages/types/index.js.map +1 -0
- package/packages/types/src/constants.js +2 -0
- package/packages/types/src/constants.js.map +1 -0
- package/packages/types/src/enums/ProjectFramework.js +10 -0
- package/packages/types/src/enums/ProjectFramework.js.map +1 -0
- package/packages/types/src/types/Analysis.js +3 -0
- package/packages/types/src/types/Analysis.js.map +1 -0
- package/packages/types/src/types/AnalysisBranch.js +2 -0
- package/packages/types/src/types/AnalysisBranch.js.map +1 -0
- package/packages/types/src/types/AnalysisMap.js +2 -0
- package/packages/types/src/types/AnalysisMap.js.map +1 -0
- package/packages/types/src/types/BackgroundJob.js +2 -0
- package/packages/types/src/types/BackgroundJob.js.map +1 -0
- package/packages/types/src/types/Branch.js +2 -0
- package/packages/types/src/types/Branch.js.map +1 -0
- package/packages/types/src/types/CodeExplanation.js +2 -0
- package/packages/types/src/types/CodeExplanation.js.map +1 -0
- package/packages/types/src/types/Commit.js +2 -0
- package/packages/types/src/types/Commit.js.map +1 -0
- package/packages/types/src/types/CommitBranch.js +2 -0
- package/packages/types/src/types/CommitBranch.js.map +1 -0
- package/packages/types/src/types/CommitChange.js +2 -0
- package/packages/types/src/types/CommitChange.js.map +1 -0
- package/packages/types/src/types/DeepPartial.js +2 -0
- package/packages/types/src/types/DeepPartial.js.map +1 -0
- package/packages/types/src/types/DeepReadonly.js +2 -0
- package/packages/types/src/types/DeepReadonly.js.map +1 -0
- package/packages/types/src/types/DependencyTreeNode.js +2 -0
- package/packages/types/src/types/DependencyTreeNode.js.map +1 -0
- package/packages/types/src/types/Entity.js +2 -0
- package/packages/types/src/types/Entity.js.map +1 -0
- package/packages/types/src/types/EntityBranch.js +2 -0
- package/packages/types/src/types/EntityBranch.js.map +1 -0
- package/packages/types/src/types/EntityMap.js +2 -0
- package/packages/types/src/types/EntityMap.js.map +1 -0
- package/packages/types/src/types/EntityType.js +2 -0
- package/packages/types/src/types/EntityType.js.map +1 -0
- package/packages/types/src/types/File.js +2 -0
- package/packages/types/src/types/File.js.map +1 -0
- package/packages/types/src/types/FilePreMock.js +2 -0
- package/packages/types/src/types/FilePreMock.js.map +1 -0
- package/packages/types/src/types/FileProp.js +2 -0
- package/packages/types/src/types/FileProp.js.map +1 -0
- package/packages/types/src/types/FileType.js +2 -0
- package/packages/types/src/types/FileType.js.map +1 -0
- package/packages/types/src/types/GithubBranch.js +2 -0
- package/packages/types/src/types/GithubBranch.js.map +1 -0
- package/packages/types/src/types/GithubFile.js +2 -0
- package/packages/types/src/types/GithubFile.js.map +1 -0
- package/packages/types/src/types/GithubRepoData.js +2 -0
- package/packages/types/src/types/GithubRepoData.js.map +1 -0
- package/packages/types/src/types/GithubRepoInfo.js +2 -0
- package/packages/types/src/types/GithubRepoInfo.js.map +1 -0
- package/packages/types/src/types/JsonTypeDefinition.js +2 -0
- package/packages/types/src/types/JsonTypeDefinition.js.map +1 -0
- package/packages/types/src/types/LlmCall.js +2 -0
- package/packages/types/src/types/LlmCall.js.map +1 -0
- package/packages/types/src/types/Mock.js +2 -0
- package/packages/types/src/types/Mock.js.map +1 -0
- package/packages/types/src/types/Project.js +2 -0
- package/packages/types/src/types/Project.js.map +1 -0
- package/packages/types/src/types/ProjectMetadata.js +2 -0
- package/packages/types/src/types/ProjectMetadata.js.map +1 -0
- package/packages/types/src/types/PropsWithTypes.js +2 -0
- package/packages/types/src/types/PropsWithTypes.js.map +1 -0
- package/packages/types/src/types/Scenario.js +2 -0
- package/packages/types/src/types/Scenario.js.map +1 -0
- package/packages/types/src/types/ScenarioComment.js +2 -0
- package/packages/types/src/types/ScenarioComment.js.map +1 -0
- package/packages/types/src/types/ScenarioData.js +2 -0
- package/packages/types/src/types/ScenarioData.js.map +1 -0
- package/packages/types/src/types/ScenariosDataStructure.js +2 -0
- package/packages/types/src/types/ScenariosDataStructure.js.map +1 -0
- package/packages/types/src/types/ScopeAnalysis.js +2 -0
- package/packages/types/src/types/ScopeAnalysis.js.map +1 -0
- package/packages/types/src/types/Statement.js +2 -0
- package/packages/types/src/types/Statement.js.map +1 -0
- package/packages/types/src/types/StatementInfo.js +2 -0
- package/packages/types/src/types/StatementInfo.js.map +1 -0
- package/packages/types/src/types/Team.js +2 -0
- package/packages/types/src/types/Team.js.map +1 -0
- package/packages/types/src/types/TimelineItem.js +2 -0
- package/packages/types/src/types/TimelineItem.js.map +1 -0
- package/packages/types/src/types/TsConfigPaths.js +2 -0
- package/packages/types/src/types/TsConfigPaths.js.map +1 -0
- package/packages/types/src/types/TypeStructures.js +2 -0
- package/packages/types/src/types/TypeStructures.js.map +1 -0
- package/packages/types/src/types/User.js +2 -0
- package/packages/types/src/types/User.js.map +1 -0
- package/packages/types/src/types/UserScenario.js +2 -0
- package/packages/types/src/types/UserScenario.js.map +1 -0
- package/packages/types/src/types/WebContainerFileSystemTree.js +2 -0
- package/packages/types/src/types/WebContainerFileSystemTree.js.map +1 -0
- package/packages/utils/index.js +31 -0
- package/packages/utils/index.js.map +1 -0
- package/packages/utils/server.js +13 -0
- package/packages/utils/server.js.map +1 -0
- package/packages/utils/src/lib/Semaphore.js +40 -0
- package/packages/utils/src/lib/Semaphore.js.map +1 -0
- package/packages/utils/src/lib/analyses/pushAnalysisError.js +10 -0
- package/packages/utils/src/lib/analyses/pushAnalysisError.js.map +1 -0
- package/packages/utils/src/lib/applyUniversalMocks.js +288 -0
- package/packages/utils/src/lib/applyUniversalMocks.js.map +1 -0
- package/packages/utils/src/lib/awsLog.js +48 -0
- package/packages/utils/src/lib/awsLog.js.map +1 -0
- package/packages/utils/src/lib/commitRuns.js +14 -0
- package/packages/utils/src/lib/commitRuns.js.map +1 -0
- package/packages/utils/src/lib/env/detectEnvFiles.js +217 -0
- package/packages/utils/src/lib/env/detectEnvFiles.js.map +1 -0
- package/packages/utils/src/lib/env/index.js +3 -0
- package/packages/utils/src/lib/env/index.js.map +1 -0
- package/packages/utils/src/lib/env/sanitizeEnvFiles.js +145 -0
- package/packages/utils/src/lib/env/sanitizeEnvFiles.js.map +1 -0
- package/packages/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.js +25 -0
- package/packages/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.js.map +1 -0
- package/packages/utils/src/lib/frameworks/getFrameworkRoutePath.js +29 -0
- package/packages/utils/src/lib/frameworks/getFrameworkRoutePath.js.map +1 -0
- package/packages/utils/src/lib/frameworks/getNextRoutePath.js +22 -0
- package/packages/utils/src/lib/frameworks/getNextRoutePath.js.map +1 -0
- package/packages/utils/src/lib/frameworks/getRemixRoutePath.js +20 -0
- package/packages/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -0
- package/packages/utils/src/lib/frameworks/isFrameworkRoute.js +7 -0
- package/packages/utils/src/lib/frameworks/isFrameworkRoute.js.map +1 -0
- package/packages/utils/src/lib/frameworks/isNextRoute.js +12 -0
- package/packages/utils/src/lib/frameworks/isNextRoute.js.map +1 -0
- package/packages/utils/src/lib/frameworks/isRemixRoute.js +8 -0
- package/packages/utils/src/lib/frameworks/isRemixRoute.js.map +1 -0
- package/packages/utils/src/lib/frameworks/nextRouteFileNameToRoute.js +26 -0
- package/packages/utils/src/lib/frameworks/nextRouteFileNameToRoute.js.map +1 -0
- package/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +22 -0
- package/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -0
- package/packages/utils/src/lib/frameworks/sanitizeNextRouteSegments.js +62 -0
- package/packages/utils/src/lib/frameworks/sanitizeNextRouteSegments.js.map +1 -0
- package/packages/utils/src/lib/fs/copyNodeRepoQuickly.js +181 -0
- package/packages/utils/src/lib/fs/copyNodeRepoQuickly.js.map +1 -0
- package/packages/utils/src/lib/fs/rsyncCopy.js +41 -0
- package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -0
- package/packages/utils/src/lib/getFrameworkForFile.js +64 -0
- package/packages/utils/src/lib/getFrameworkForFile.js.map +1 -0
- package/packages/utils/src/lib/killProcess.server.js +102 -0
- package/packages/utils/src/lib/killProcess.server.js.map +1 -0
- package/packages/utils/src/lib/killProcessAndSubprocesses.server.js +62 -0
- package/packages/utils/src/lib/killProcessAndSubprocesses.server.js.map +1 -0
- package/packages/utils/src/lib/lightweightEntityExtractor.js +362 -0
- package/packages/utils/src/lib/lightweightEntityExtractor.js.map +1 -0
- package/packages/utils/src/lib/loadEnv.js +7 -0
- package/packages/utils/src/lib/loadEnv.js.map +1 -0
- package/packages/utils/src/lib/normalizeKey.js +4 -0
- package/packages/utils/src/lib/normalizeKey.js.map +1 -0
- package/packages/utils/src/lib/safeFileName.js +36 -0
- package/packages/utils/src/lib/safeFileName.js.map +1 -0
- package/packages/utils/src/lib/safeStringify.js +64 -0
- package/packages/utils/src/lib/safeStringify.js.map +1 -0
- package/packages/utils/src/lib/startCommand/buildStartCommand.js +45 -0
- package/packages/utils/src/lib/startCommand/buildStartCommand.js.map +1 -0
- package/packages/utils/src/lib/startCommand/getWebappInfo.js +67 -0
- package/packages/utils/src/lib/startCommand/getWebappInfo.js.map +1 -0
- package/packages/utils/src/lib/startCommand/index.js +3 -0
- package/packages/utils/src/lib/startCommand/index.js.map +1 -0
- package/scripts/finalize-analyzer.cjs +81 -0
- package/bin.js +0 -13
|
@@ -0,0 +1,2707 @@
|
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
import * as crypto from 'crypto';
|
|
3
|
+
import { StructuredPath } from "./paths.js";
|
|
4
|
+
import { nodeToSource } from "./nodeToSource.js";
|
|
5
|
+
import { methodRegistry, ArrayPushSemantics } from "./methodSemantics.js";
|
|
6
|
+
import { isArithmeticOperator, isAssignmentOperator, isBitwiseCompoundOperator, isComparisonOperator, isDefinedType, isNumericCompoundOperator, leftOrRightType, unwrapExpression, } from "./sharedPatterns.js";
|
|
7
|
+
import { processBindingPattern } from "./processBindings.js";
|
|
8
|
+
import { extractConditionalEffectsFromTernary, findUseStateSetters, } from "./conditionalEffectsExtractor.js";
|
|
9
|
+
import { detectArrayDerivedPattern } from "./arrayDerivationDetector.js";
|
|
10
|
+
/**
|
|
11
|
+
* Checks if a JSX element has props that reference variables from the parent scope.
|
|
12
|
+
* This is used to detect unconditionally-rendered children that should have their
|
|
13
|
+
* execution flows merged into the parent.
|
|
14
|
+
*
|
|
15
|
+
* We want to track children where the parent controls data that affects the child's
|
|
16
|
+
* conditional rendering. Static props (like title="Dashboard") don't need tracking
|
|
17
|
+
* because they don't create variable execution flows.
|
|
18
|
+
*
|
|
19
|
+
* Examples:
|
|
20
|
+
* - <WorkoutsView workouts={workouts} /> → true (workouts is a variable)
|
|
21
|
+
* - <ItemList items={items} count={count} /> → true (items, count are variables)
|
|
22
|
+
* - <Header title="Dashboard" /> → false (static string)
|
|
23
|
+
* - <Footer /> → false (no props)
|
|
24
|
+
* - <Button onClick={handleClick} /> → false (only callback, no data props)
|
|
25
|
+
*
|
|
26
|
+
* @returns true if the component has at least one prop that references a variable
|
|
27
|
+
* (excluding callbacks which typically start with 'on' or 'handle')
|
|
28
|
+
*/
|
|
29
|
+
function hasDataPropsFromParent(node, componentName) {
|
|
30
|
+
const attributes = ts.isJsxElement(node)
|
|
31
|
+
? node.openingElement.attributes.properties
|
|
32
|
+
: node.attributes.properties;
|
|
33
|
+
const dataProps = [];
|
|
34
|
+
for (const attr of attributes) {
|
|
35
|
+
// Spread attributes always reference parent data: {...props}
|
|
36
|
+
if (ts.isJsxSpreadAttribute(attr)) {
|
|
37
|
+
const spreadText = attr.expression?.getText() || '...spread';
|
|
38
|
+
dataProps.push(`{...${spreadText}}`);
|
|
39
|
+
console.log(`[UnconditionalChild] ${componentName}: Found spread attribute {${spreadText}}`);
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
if (ts.isJsxAttribute(attr)) {
|
|
43
|
+
const propName = attr.name.getText();
|
|
44
|
+
// Skip callback props - they don't create data-driven execution flows
|
|
45
|
+
// Callbacks typically start with 'on' (onClick, onChange) or 'handle' (handleSubmit)
|
|
46
|
+
if (propName.startsWith('on') ||
|
|
47
|
+
propName.startsWith('handle') ||
|
|
48
|
+
propName === 'ref') {
|
|
49
|
+
console.log(`[UnconditionalChild] ${componentName}: Skipping callback prop '${propName}'`);
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
// Check if the prop value is a JSX expression (references a variable)
|
|
53
|
+
// vs a string literal which is static
|
|
54
|
+
if (attr.initializer) {
|
|
55
|
+
if (ts.isJsxExpression(attr.initializer)) {
|
|
56
|
+
// JSX expression like prop={value} - this references a variable
|
|
57
|
+
// Could be a simple identifier, property access, or more complex expression
|
|
58
|
+
const expression = attr.initializer.expression;
|
|
59
|
+
if (expression) {
|
|
60
|
+
// Skip if it's just a function/arrow function (callback)
|
|
61
|
+
if (ts.isArrowFunction(expression) ||
|
|
62
|
+
ts.isFunctionExpression(expression)) {
|
|
63
|
+
console.log(`[UnconditionalChild] ${componentName}: Skipping inline callback prop '${propName}'`);
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
// This is a data prop that references parent state/props
|
|
67
|
+
const exprText = expression.getText();
|
|
68
|
+
dataProps.push(`${propName}={${exprText}}`);
|
|
69
|
+
console.log(`[UnconditionalChild] ${componentName}: Found data prop '${propName}' = {${exprText}}`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
// String literals like prop="value" are static
|
|
74
|
+
console.log(`[UnconditionalChild] ${componentName}: Skipping static prop '${propName}'`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
const hasDataProps = dataProps.length > 0;
|
|
80
|
+
if (hasDataProps) {
|
|
81
|
+
console.log(`[UnconditionalChild] ${componentName}: Has ${dataProps.length} data props: [${dataProps.join(', ')}]`);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
console.log(`[UnconditionalChild] ${componentName}: No data props found, will NOT track`);
|
|
85
|
+
}
|
|
86
|
+
return { hasDataProps, dataProps };
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Extracts the component name from a JSX element.
|
|
90
|
+
* Returns null for intrinsic elements (div, span, etc.) since we only care about
|
|
91
|
+
* custom components for gating condition tracking.
|
|
92
|
+
*
|
|
93
|
+
* Examples:
|
|
94
|
+
* - <ChildViewer /> → "ChildViewer"
|
|
95
|
+
* - <ScenarioViewer scenario={...} /> → "ScenarioViewer"
|
|
96
|
+
* - <div> → null (intrinsic element)
|
|
97
|
+
*/
|
|
98
|
+
function getComponentNameFromJsx(node) {
|
|
99
|
+
let tagName;
|
|
100
|
+
if (ts.isJsxElement(node)) {
|
|
101
|
+
tagName = node.openingElement.tagName;
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
tagName = node.tagName;
|
|
105
|
+
}
|
|
106
|
+
// Get the text of the tag name
|
|
107
|
+
const name = tagName.getText();
|
|
108
|
+
// Check if it's a custom component (starts with uppercase) vs intrinsic element
|
|
109
|
+
// Custom components start with uppercase: <MyComponent />
|
|
110
|
+
// Intrinsic elements start with lowercase: <div />
|
|
111
|
+
if (name &&
|
|
112
|
+
name[0] === name[0].toUpperCase() &&
|
|
113
|
+
name[0] !== name[0].toLowerCase()) {
|
|
114
|
+
return name;
|
|
115
|
+
}
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Extracts condition paths from a logical AND chain expression.
|
|
120
|
+
* Used for creating gating conditions for child components.
|
|
121
|
+
*
|
|
122
|
+
* Example: `hasData && isReady && <Component />` returns ['hasData', 'isReady']
|
|
123
|
+
*/
|
|
124
|
+
function extractConditionPathsFromAndChain(expr, sourceFile) {
|
|
125
|
+
const paths = [];
|
|
126
|
+
const unwrapped = unwrapExpression(expr);
|
|
127
|
+
if (ts.isBinaryExpression(unwrapped) &&
|
|
128
|
+
unwrapped.operatorToken.kind === ts.SyntaxKind.AmpersandAmpersandToken) {
|
|
129
|
+
// Recursively get conditions from left side
|
|
130
|
+
paths.push(...extractConditionPathsFromAndChain(unwrapped.left, sourceFile));
|
|
131
|
+
// Process right side if it's not JSX (JSX is the consequence, not a condition)
|
|
132
|
+
const rightUnwrapped = unwrapExpression(unwrapped.right);
|
|
133
|
+
if (!ts.isJsxElement(rightUnwrapped) &&
|
|
134
|
+
!ts.isJsxSelfClosingElement(rightUnwrapped) &&
|
|
135
|
+
!ts.isJsxFragment(rightUnwrapped)) {
|
|
136
|
+
paths.push(...extractConditionPathsFromAndChain(unwrapped.right, sourceFile));
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
// Base case: extract path from this expression
|
|
141
|
+
const path = StructuredPath.fromNode(unwrapped, sourceFile);
|
|
142
|
+
if (path) {
|
|
143
|
+
paths.push(path.toString());
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return paths;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Finds the rightmost JSX element in an && chain.
|
|
150
|
+
* Example: `a && b && <Component />` returns <Component />
|
|
151
|
+
*/
|
|
152
|
+
function findJsxInAndChain(expr) {
|
|
153
|
+
const unwrapped = unwrapExpression(expr);
|
|
154
|
+
if (ts.isJsxElement(unwrapped) || ts.isJsxSelfClosingElement(unwrapped)) {
|
|
155
|
+
return unwrapped;
|
|
156
|
+
}
|
|
157
|
+
if (ts.isBinaryExpression(unwrapped) &&
|
|
158
|
+
unwrapped.operatorToken.kind === ts.SyntaxKind.AmpersandAmpersandToken) {
|
|
159
|
+
// Check right side first (most common case: condition && <Jsx />)
|
|
160
|
+
const rightResult = findJsxInAndChain(unwrapped.right);
|
|
161
|
+
if (rightResult)
|
|
162
|
+
return rightResult;
|
|
163
|
+
// Also check left side for rare cases
|
|
164
|
+
return findJsxInAndChain(unwrapped.left);
|
|
165
|
+
}
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Fix 32: Finds a JSX fragment in an && chain.
|
|
170
|
+
* Example: `activeTab && <><ChildA /><ChildB /></>` returns the fragment
|
|
171
|
+
* This is needed to propagate parent conditions through fragments.
|
|
172
|
+
*/
|
|
173
|
+
function findJsxFragmentInAndChain(expr) {
|
|
174
|
+
const unwrapped = unwrapExpression(expr);
|
|
175
|
+
if (ts.isJsxFragment(unwrapped)) {
|
|
176
|
+
return unwrapped;
|
|
177
|
+
}
|
|
178
|
+
if (ts.isBinaryExpression(unwrapped) &&
|
|
179
|
+
unwrapped.operatorToken.kind === ts.SyntaxKind.AmpersandAmpersandToken) {
|
|
180
|
+
// Check right side first (most common case: condition && <></>)
|
|
181
|
+
const rightResult = findJsxFragmentInAndChain(unwrapped.right);
|
|
182
|
+
if (rightResult)
|
|
183
|
+
return rightResult;
|
|
184
|
+
// Also check left side for rare cases
|
|
185
|
+
return findJsxFragmentInAndChain(unwrapped.left);
|
|
186
|
+
}
|
|
187
|
+
return null;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Detects if a property access looks like an environment variable store access.
|
|
191
|
+
* Matches patterns like `env.DATABASE_URL`, `env.IS_FORMBRICKS_CLOUD`, etc.
|
|
192
|
+
* where the object is named "env" and the property looks like an env var name.
|
|
193
|
+
*/
|
|
194
|
+
function isEnvStoreAccess(fullText) {
|
|
195
|
+
// Match: env.SOME_VAR or env.someVar (but object must be exactly "env")
|
|
196
|
+
// This catches patterns from @t3-oss/env-nextjs and similar packages
|
|
197
|
+
const envStorePattern = /^env\.[A-Z_][A-Z0-9_]*$/;
|
|
198
|
+
return envStorePattern.test(fullText);
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Converts a call expression argument to a StructuredPath.
|
|
202
|
+
*
|
|
203
|
+
* IMPORTANT: We always use the original source text for callbacks, never cyScope names.
|
|
204
|
+
* cyScope names are internal identifiers for child scopes and should NEVER appear
|
|
205
|
+
* in schema paths or call signatures. Using cyScope names causes data merge conflicts
|
|
206
|
+
* because the same callback gets different identifiers in different contexts.
|
|
207
|
+
*/
|
|
208
|
+
function getArgPathForCallSignature(arg, context) {
|
|
209
|
+
// Always use the standard path conversion - never replace with cyScope names
|
|
210
|
+
return (StructuredPath.fromNode(arg, context.sourceFile) ||
|
|
211
|
+
nodeToSource(arg, context.sourceFile));
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Builds a StructuredPath for a call expression using the original source text.
|
|
215
|
+
*
|
|
216
|
+
* IMPORTANT: This function ensures consistent call signatures by always using
|
|
217
|
+
* the original callback text, never cyScope names. This prevents schema path
|
|
218
|
+
* conflicts where the same call would have different paths.
|
|
219
|
+
*/
|
|
220
|
+
function buildCallPathFromSource(node, context) {
|
|
221
|
+
const expression = node.expression;
|
|
222
|
+
// Convert arguments using original source text
|
|
223
|
+
const argPaths = node.arguments.map((arg) => getArgPathForCallSignature(arg, context));
|
|
224
|
+
// Handle type arguments if present
|
|
225
|
+
let typeArgs = undefined;
|
|
226
|
+
if (node.typeArguments && node.typeArguments.length > 0) {
|
|
227
|
+
typeArgs = node.typeArguments.map((typeArg) => typeArg.getText(context.sourceFile));
|
|
228
|
+
}
|
|
229
|
+
if (ts.isIdentifier(expression)) {
|
|
230
|
+
// Simple function call: func(arg1, arg2)
|
|
231
|
+
return StructuredPath.fromFunction(expression.text, argPaths, typeArgs);
|
|
232
|
+
}
|
|
233
|
+
else if (ts.isPropertyAccessExpression(expression)) {
|
|
234
|
+
// Method call: obj.method(arg1, arg2)
|
|
235
|
+
const objPath = StructuredPath.fromNode(expression.expression, context.sourceFile);
|
|
236
|
+
if (!objPath)
|
|
237
|
+
return null;
|
|
238
|
+
return objPath
|
|
239
|
+
.withProperty(expression.name.text)
|
|
240
|
+
.withFunctionCall(argPaths, typeArgs);
|
|
241
|
+
}
|
|
242
|
+
else if (ts.isCallExpression(expression)) {
|
|
243
|
+
// Chained call: func(arg1)(arg2)
|
|
244
|
+
const funcPath = buildCallPathFromSource(expression, context);
|
|
245
|
+
if (!funcPath)
|
|
246
|
+
return null;
|
|
247
|
+
return funcPath.withFunctionCall(argPaths, typeArgs);
|
|
248
|
+
}
|
|
249
|
+
else if (ts.isElementAccessExpression(expression)) {
|
|
250
|
+
// Element access call: obj[key](args)
|
|
251
|
+
const basePath = StructuredPath.fromNode(expression, context.sourceFile);
|
|
252
|
+
if (!basePath)
|
|
253
|
+
return null;
|
|
254
|
+
return basePath.withFunctionCall(argPaths, typeArgs);
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
// Complex call expression
|
|
258
|
+
const basePath = StructuredPath.fromNode(expression, context.sourceFile);
|
|
259
|
+
if (!basePath)
|
|
260
|
+
return null;
|
|
261
|
+
return basePath.withFunctionCall(argPaths, typeArgs);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Checks if an expression is likely an array type.
|
|
266
|
+
* Uses TypeScript's type checker when available, falls back to heuristics.
|
|
267
|
+
*/
|
|
268
|
+
function isLikelyArrayType(expr, typeChecker) {
|
|
269
|
+
if (typeChecker) {
|
|
270
|
+
try {
|
|
271
|
+
const type = typeChecker.getTypeAtLocation(expr);
|
|
272
|
+
const typeString = typeChecker.typeToString(type);
|
|
273
|
+
// Check for common array type patterns:
|
|
274
|
+
// - T[] syntax (includes any[], string[], etc.)
|
|
275
|
+
// - Array<T> syntax
|
|
276
|
+
// - ReadonlyArray<T> syntax
|
|
277
|
+
// - readonly T[] syntax (starts with "readonly " and ends with "[]")
|
|
278
|
+
if (typeString.includes('[]') ||
|
|
279
|
+
typeString.startsWith('Array<') ||
|
|
280
|
+
typeString.startsWith('ReadonlyArray<')) {
|
|
281
|
+
return true;
|
|
282
|
+
}
|
|
283
|
+
// Check if it's a tuple or array literal type via TypeScript's type flags
|
|
284
|
+
if (type.getFlags() & ts.TypeFlags.Object) {
|
|
285
|
+
const objectType = type;
|
|
286
|
+
if (objectType.objectFlags & ts.ObjectFlags.Tuple ||
|
|
287
|
+
objectType.objectFlags & ts.ObjectFlags.ArrayLiteral) {
|
|
288
|
+
return true;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
catch {
|
|
293
|
+
// Type checking can fail in some edge cases, fall through to false
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
return false;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Marks variables used in truthiness checks as potentially undefined.
|
|
300
|
+
* When code checks `if (x)` or `x && ...`, it indicates x might be falsy (null/undefined).
|
|
301
|
+
* This function walks through the condition and adds | undefined to such variables.
|
|
302
|
+
*/
|
|
303
|
+
export function markConditionVariablesAsNullable(condition, context) {
|
|
304
|
+
const unwrapped = unwrapExpression(condition);
|
|
305
|
+
// For binary expressions with &&, mark both sides as nullable if they're truthiness checks
|
|
306
|
+
// Example: `diffView && <Component />` means diffView might be undefined
|
|
307
|
+
// Example: `a && b && <Component />` means both a and b might be undefined
|
|
308
|
+
if (ts.isBinaryExpression(unwrapped) &&
|
|
309
|
+
unwrapped.operatorToken.kind === ts.SyntaxKind.AmpersandAmpersandToken) {
|
|
310
|
+
// Recursively mark left side
|
|
311
|
+
markConditionVariablesAsNullable(unwrapped.left, context);
|
|
312
|
+
// Mark right side if it's also a truthiness check (not JSX or other consequences)
|
|
313
|
+
const rightUnwrapped = unwrapExpression(unwrapped.right);
|
|
314
|
+
// Check if right side is JSX or contains JSX
|
|
315
|
+
const isJsxConsequence = ts.isJsxElement(rightUnwrapped) ||
|
|
316
|
+
ts.isJsxSelfClosingElement(rightUnwrapped) ||
|
|
317
|
+
ts.isJsxFragment(rightUnwrapped);
|
|
318
|
+
if (!isJsxConsequence) {
|
|
319
|
+
// This handles chains like `a && b && ...` where both a and b are checks
|
|
320
|
+
markConditionVariablesAsNullable(unwrapped.right, context);
|
|
321
|
+
}
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
324
|
+
// Don't mark variables in comparison operators as nullable
|
|
325
|
+
// Example: `if (x === 5)` doesn't mean x might be undefined
|
|
326
|
+
if (ts.isBinaryExpression(unwrapped) &&
|
|
327
|
+
isComparisonOperator(unwrapped.operatorToken.kind)) {
|
|
328
|
+
return;
|
|
329
|
+
}
|
|
330
|
+
// For simple identifiers or property accesses, mark as potentially undefined
|
|
331
|
+
const path = StructuredPath.fromNode(unwrapped, context.sourceFile);
|
|
332
|
+
if (path) {
|
|
333
|
+
const currentType = context.getTypeInfo(path) || 'unknown';
|
|
334
|
+
// Only add | undefined if it's not already there
|
|
335
|
+
if (!currentType.includes('undefined')) {
|
|
336
|
+
context.addType(path, `${currentType} | undefined`);
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* Helper to extract source location from an AST node
|
|
342
|
+
*/
|
|
343
|
+
function getSourceLocation(node, sourceFile) {
|
|
344
|
+
const start = node.getStart(sourceFile);
|
|
345
|
+
const { line, character } = sourceFile.getLineAndCharacterOfPosition(start);
|
|
346
|
+
const codeSnippet = node.getText(sourceFile);
|
|
347
|
+
return {
|
|
348
|
+
lineNumber: line + 1, // Convert to 1-based
|
|
349
|
+
column: character,
|
|
350
|
+
codeSnippet: codeSnippet.length > 100
|
|
351
|
+
? codeSnippet.slice(0, 100) + '...'
|
|
352
|
+
: codeSnippet,
|
|
353
|
+
};
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Extracts the root array path from an expression that ends with .map().
|
|
357
|
+
* Handles chained methods like .filter().map(), .slice().map(), etc.
|
|
358
|
+
*
|
|
359
|
+
* Examples:
|
|
360
|
+
* - items.map(...) → "items"
|
|
361
|
+
* - data.users.map(...) → "data.users"
|
|
362
|
+
* - items.filter(...).map(...) → "items"
|
|
363
|
+
* - items.slice(0, 5).map(...) → "items"
|
|
364
|
+
*/
|
|
365
|
+
function extractArrayPathFromMapCall(expr, sourceFile) {
|
|
366
|
+
// Walk up the chain to find the root array
|
|
367
|
+
let current = expr.expression;
|
|
368
|
+
while (ts.isPropertyAccessExpression(current)) {
|
|
369
|
+
const methodName = current.name.getText(sourceFile);
|
|
370
|
+
// Common array methods that return arrays (so we keep going up)
|
|
371
|
+
const arrayReturningMethods = [
|
|
372
|
+
'map',
|
|
373
|
+
'filter',
|
|
374
|
+
'slice',
|
|
375
|
+
'concat',
|
|
376
|
+
'flat',
|
|
377
|
+
'flatMap',
|
|
378
|
+
'reverse',
|
|
379
|
+
'sort',
|
|
380
|
+
'toReversed',
|
|
381
|
+
'toSorted',
|
|
382
|
+
'toSpliced',
|
|
383
|
+
];
|
|
384
|
+
if (arrayReturningMethods.includes(methodName)) {
|
|
385
|
+
const objectExpr = current.expression;
|
|
386
|
+
// If the object is a call expression (chained method), keep going
|
|
387
|
+
if (ts.isCallExpression(objectExpr)) {
|
|
388
|
+
current = objectExpr.expression;
|
|
389
|
+
}
|
|
390
|
+
else {
|
|
391
|
+
// Found the root - it's an identifier or property access
|
|
392
|
+
const path = StructuredPath.fromNode(objectExpr, sourceFile);
|
|
393
|
+
return path ? path.toString() : null;
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
else {
|
|
397
|
+
// Not an array method we recognize
|
|
398
|
+
break;
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
return null;
|
|
402
|
+
}
|
|
403
|
+
/**
|
|
404
|
+
* Extracts JSX rendering usages from a JSX expression.
|
|
405
|
+
* Detects:
|
|
406
|
+
* - array.map() calls → 'array-map' type
|
|
407
|
+
* - string interpolations (identifiers/property access) → 'text-interpolation' type
|
|
408
|
+
*
|
|
409
|
+
* Recursively searches inside && chains and ternary expressions.
|
|
410
|
+
*
|
|
411
|
+
* @param expr The expression inside {expr}
|
|
412
|
+
* @param context The analysis context
|
|
413
|
+
*/
|
|
414
|
+
function extractJsxRenderingUsage(expr, context) {
|
|
415
|
+
const unwrapped = unwrapExpression(expr);
|
|
416
|
+
const sourceLocation = getSourceLocation(expr, context.sourceFile);
|
|
417
|
+
// Detect array.map() calls
|
|
418
|
+
if (ts.isCallExpression(unwrapped)) {
|
|
419
|
+
const calleeExpr = unwrapped.expression;
|
|
420
|
+
if (ts.isPropertyAccessExpression(calleeExpr)) {
|
|
421
|
+
const methodName = calleeExpr.name.getText(context.sourceFile);
|
|
422
|
+
if (methodName === 'map') {
|
|
423
|
+
const arrayPath = extractArrayPathFromMapCall(unwrapped, context.sourceFile);
|
|
424
|
+
if (arrayPath) {
|
|
425
|
+
context.addJsxRenderingUsage({
|
|
426
|
+
path: arrayPath,
|
|
427
|
+
renderingType: 'array-map',
|
|
428
|
+
valueType: 'array',
|
|
429
|
+
sourceLocation,
|
|
430
|
+
});
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
// Detect simple string interpolations: {title} or {user.name}
|
|
436
|
+
else if (ts.isIdentifier(unwrapped) ||
|
|
437
|
+
ts.isPropertyAccessExpression(unwrapped)) {
|
|
438
|
+
const path = StructuredPath.fromNode(unwrapped, context.sourceFile);
|
|
439
|
+
if (path) {
|
|
440
|
+
const pathStr = path.toString();
|
|
441
|
+
const typeInfo = context.getTypeInfo(path);
|
|
442
|
+
// Only track as text interpolation if it's a string type
|
|
443
|
+
// Check for 'string' type, or types that contain 'string' (but not 'string[]')
|
|
444
|
+
if (typeInfo === 'string' ||
|
|
445
|
+
(typeInfo &&
|
|
446
|
+
typeInfo.includes('string') &&
|
|
447
|
+
!typeInfo.includes('string[]'))) {
|
|
448
|
+
context.addJsxRenderingUsage({
|
|
449
|
+
path: pathStr,
|
|
450
|
+
renderingType: 'text-interpolation',
|
|
451
|
+
valueType: 'string',
|
|
452
|
+
sourceLocation,
|
|
453
|
+
});
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
// Recursively search inside && chains: {showList && items.map(...)}
|
|
458
|
+
else if (ts.isBinaryExpression(unwrapped) &&
|
|
459
|
+
unwrapped.operatorToken.kind === ts.SyntaxKind.AmpersandAmpersandToken) {
|
|
460
|
+
// Check the right side of the && chain (where .map() typically appears)
|
|
461
|
+
const rightSide = unwrapExpression(unwrapped.right);
|
|
462
|
+
extractJsxRenderingUsage(rightSide, context);
|
|
463
|
+
// Also check nested && chains on the left
|
|
464
|
+
extractJsxRenderingUsage(unwrapped.left, context);
|
|
465
|
+
}
|
|
466
|
+
// Recursively search inside ternaries: {isEmpty ? null : items.map(...)}
|
|
467
|
+
else if (ts.isConditionalExpression(unwrapped)) {
|
|
468
|
+
extractJsxRenderingUsage(unwrapped.whenTrue, context);
|
|
469
|
+
extractJsxRenderingUsage(unwrapped.whenFalse, context);
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
/**
|
|
473
|
+
* Counts the number of conditions in an && chain (excluding JSX consequence)
|
|
474
|
+
*/
|
|
475
|
+
function countConditionsInAndChain(expr) {
|
|
476
|
+
const unwrapped = unwrapExpression(expr);
|
|
477
|
+
if (ts.isBinaryExpression(unwrapped) &&
|
|
478
|
+
unwrapped.operatorToken.kind === ts.SyntaxKind.AmpersandAmpersandToken) {
|
|
479
|
+
const leftCount = countConditionsInAndChain(unwrapped.left);
|
|
480
|
+
const rightUnwrapped = unwrapExpression(unwrapped.right);
|
|
481
|
+
const isJsxConsequence = ts.isJsxElement(rightUnwrapped) ||
|
|
482
|
+
ts.isJsxSelfClosingElement(rightUnwrapped) ||
|
|
483
|
+
ts.isJsxFragment(rightUnwrapped);
|
|
484
|
+
if (isJsxConsequence) {
|
|
485
|
+
return leftCount;
|
|
486
|
+
}
|
|
487
|
+
return leftCount + countConditionsInAndChain(unwrapped.right);
|
|
488
|
+
}
|
|
489
|
+
// Single condition (not an && chain)
|
|
490
|
+
return 1;
|
|
491
|
+
}
|
|
492
|
+
/**
|
|
493
|
+
* Extracts conditionals from JSX elements by recursively traversing children.
|
|
494
|
+
*
|
|
495
|
+
* This is CRITICAL for extracting compound conditionals from JSX expressions
|
|
496
|
+
* like `{hasNewerVersion && !isActive && <Banner />}`.
|
|
497
|
+
*
|
|
498
|
+
* This function is called BEFORE the child boundary check in processExpression
|
|
499
|
+
* because JSX elements are NOT scopes - their expressions use variables from
|
|
500
|
+
* the parent scope and should have their conditionals extracted regardless of
|
|
501
|
+
* whether the JSX is within a child boundary.
|
|
502
|
+
*
|
|
503
|
+
* Fix 32: Added parentConditions parameter to track gating conditions from
|
|
504
|
+
* parent && chains. When we find a component nested inside multiple conditionals
|
|
505
|
+
* like `{activeTab && <>{ternary ? ... : <Component />}</>}`, ALL parent
|
|
506
|
+
* conditions should be added as gating conditions for the component.
|
|
507
|
+
*
|
|
508
|
+
* @param node The JSX element, self-closing element, or fragment to traverse
|
|
509
|
+
* @param context The analysis context
|
|
510
|
+
* @param parentConditions Accumulated gating conditions from parent && chains
|
|
511
|
+
*/
|
|
512
|
+
function extractConditionalsFromJsx(node, context, parentConditions = []) {
|
|
513
|
+
// Get children to process
|
|
514
|
+
let children;
|
|
515
|
+
if (ts.isJsxElement(node)) {
|
|
516
|
+
children = node.children;
|
|
517
|
+
}
|
|
518
|
+
else if (ts.isJsxFragment(node)) {
|
|
519
|
+
children = node.children;
|
|
520
|
+
}
|
|
521
|
+
// JsxSelfClosingElement has no children
|
|
522
|
+
if (!children) {
|
|
523
|
+
return;
|
|
524
|
+
}
|
|
525
|
+
for (const child of children) {
|
|
526
|
+
// Process JSX expressions: {expr}
|
|
527
|
+
if (ts.isJsxExpression(child) && child.expression) {
|
|
528
|
+
const expr = unwrapExpression(child.expression);
|
|
529
|
+
// Extract JSX rendering usages (array.map, text interpolation)
|
|
530
|
+
// This handles direct usages like {items.map(...)} or {user.name}
|
|
531
|
+
extractJsxRenderingUsage(expr, context);
|
|
532
|
+
// If the expression is an && chain, extract its conditional usages
|
|
533
|
+
if (ts.isBinaryExpression(expr) &&
|
|
534
|
+
expr.operatorToken.kind === ts.SyntaxKind.AmpersandAmpersandToken) {
|
|
535
|
+
// Mark nullable variables
|
|
536
|
+
markConditionVariablesAsNullable(expr, context);
|
|
537
|
+
// Extract conditional usage (this handles compound conditionals)
|
|
538
|
+
// Pass controlsJsxRendering: true since this conditional controls JSX rendering
|
|
539
|
+
extractConditionalUsage(expr, context, 'logical-and', {
|
|
540
|
+
controlsJsxRendering: true,
|
|
541
|
+
});
|
|
542
|
+
// Extract all condition paths from the && chain for gating tracking
|
|
543
|
+
const conditionPaths = extractConditionPathsFromAndChain(expr, context.sourceFile);
|
|
544
|
+
const sourceLocation = getSourceLocation(expr, context.sourceFile);
|
|
545
|
+
// Fix 32: Build accumulated conditions including parent conditions
|
|
546
|
+
const accumulatedConditions = [
|
|
547
|
+
...parentConditions,
|
|
548
|
+
...conditionPaths.map((path) => ({
|
|
549
|
+
path,
|
|
550
|
+
sourceLocation,
|
|
551
|
+
isNegated: false,
|
|
552
|
+
})),
|
|
553
|
+
];
|
|
554
|
+
// Track gating conditions for child components
|
|
555
|
+
// Example: {hasAnalysis && <ScenarioViewer />}
|
|
556
|
+
const jsxElement = findJsxInAndChain(expr);
|
|
557
|
+
if (jsxElement) {
|
|
558
|
+
const componentName = getComponentNameFromJsx(jsxElement);
|
|
559
|
+
if (componentName) {
|
|
560
|
+
// Fix 32: Add ALL accumulated conditions (parent + current) as gating conditions
|
|
561
|
+
for (const condition of accumulatedConditions) {
|
|
562
|
+
context.addChildBoundaryGatingCondition(componentName, {
|
|
563
|
+
path: condition.path,
|
|
564
|
+
conditionType: 'truthiness',
|
|
565
|
+
location: 'logical-and',
|
|
566
|
+
sourceLocation: condition.sourceLocation,
|
|
567
|
+
controlsJsxRendering: true,
|
|
568
|
+
isNegated: condition.isNegated,
|
|
569
|
+
});
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
// Fix 32: Recursively process nested JSX with accumulated conditions
|
|
573
|
+
if (ts.isJsxElement(jsxElement) ||
|
|
574
|
+
ts.isJsxSelfClosingElement(jsxElement)) {
|
|
575
|
+
extractConditionalsFromJsx(jsxElement, context, accumulatedConditions);
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
// Fix 32: Also check for nested JSX fragments
|
|
579
|
+
const jsxFragment = findJsxFragmentInAndChain(expr);
|
|
580
|
+
if (jsxFragment) {
|
|
581
|
+
extractConditionalsFromJsx(jsxFragment, context, accumulatedConditions);
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
// If the expression is a ternary, extract its conditional
|
|
585
|
+
else if (ts.isConditionalExpression(expr)) {
|
|
586
|
+
// Pass controlsJsxRendering: true since this conditional controls JSX rendering
|
|
587
|
+
extractConditionalUsage(expr.condition, context, 'ternary', {
|
|
588
|
+
controlsJsxRendering: true,
|
|
589
|
+
});
|
|
590
|
+
// Track gating conditions for components in both branches of the ternary
|
|
591
|
+
// Example: {isError ? <ErrorView /> : <SuccessView />}
|
|
592
|
+
const conditionPath = StructuredPath.fromNode(unwrapExpression(expr.condition), context.sourceFile);
|
|
593
|
+
const sourceLocation = getSourceLocation(expr, context.sourceFile);
|
|
594
|
+
// Recursively process the whenTrue and whenFalse branches for JSX
|
|
595
|
+
const whenTrue = unwrapExpression(expr.whenTrue);
|
|
596
|
+
const whenFalse = unwrapExpression(expr.whenFalse);
|
|
597
|
+
// Fix 32: Build conditions for whenTrue branch (parent conditions + ternary condition truthy)
|
|
598
|
+
const whenTrueConditions = [
|
|
599
|
+
...parentConditions,
|
|
600
|
+
...(conditionPath
|
|
601
|
+
? [
|
|
602
|
+
{
|
|
603
|
+
path: conditionPath.toString(),
|
|
604
|
+
sourceLocation,
|
|
605
|
+
isNegated: false,
|
|
606
|
+
},
|
|
607
|
+
]
|
|
608
|
+
: []),
|
|
609
|
+
];
|
|
610
|
+
// Fix 32: Build conditions for whenFalse branch (parent conditions + ternary condition falsy)
|
|
611
|
+
const whenFalseConditions = [
|
|
612
|
+
...parentConditions,
|
|
613
|
+
...(conditionPath
|
|
614
|
+
? [
|
|
615
|
+
{
|
|
616
|
+
path: conditionPath.toString(),
|
|
617
|
+
sourceLocation,
|
|
618
|
+
isNegated: true,
|
|
619
|
+
},
|
|
620
|
+
]
|
|
621
|
+
: []),
|
|
622
|
+
];
|
|
623
|
+
// Handle whenTrue branch (condition is truthy)
|
|
624
|
+
if (ts.isJsxElement(whenTrue) || ts.isJsxSelfClosingElement(whenTrue)) {
|
|
625
|
+
const componentName = getComponentNameFromJsx(whenTrue);
|
|
626
|
+
if (componentName) {
|
|
627
|
+
// Fix 32: Add ALL conditions (parent + ternary) as gating conditions
|
|
628
|
+
for (const condition of whenTrueConditions) {
|
|
629
|
+
context.addChildBoundaryGatingCondition(componentName, {
|
|
630
|
+
path: condition.path,
|
|
631
|
+
conditionType: 'truthiness',
|
|
632
|
+
location: 'ternary',
|
|
633
|
+
sourceLocation: condition.sourceLocation,
|
|
634
|
+
controlsJsxRendering: true,
|
|
635
|
+
isNegated: condition.isNegated,
|
|
636
|
+
});
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
if (ts.isJsxElement(whenTrue) ||
|
|
641
|
+
ts.isJsxSelfClosingElement(whenTrue) ||
|
|
642
|
+
ts.isJsxFragment(whenTrue)) {
|
|
643
|
+
extractConditionalsFromJsx(whenTrue, context, whenTrueConditions);
|
|
644
|
+
}
|
|
645
|
+
// Handle whenFalse branch (condition is falsy/negated)
|
|
646
|
+
if (ts.isJsxElement(whenFalse) ||
|
|
647
|
+
ts.isJsxSelfClosingElement(whenFalse)) {
|
|
648
|
+
const componentName = getComponentNameFromJsx(whenFalse);
|
|
649
|
+
if (componentName) {
|
|
650
|
+
// Fix 32: Add ALL conditions (parent + ternary) as gating conditions
|
|
651
|
+
for (const condition of whenFalseConditions) {
|
|
652
|
+
context.addChildBoundaryGatingCondition(componentName, {
|
|
653
|
+
path: condition.path,
|
|
654
|
+
conditionType: 'truthiness',
|
|
655
|
+
location: 'ternary',
|
|
656
|
+
sourceLocation: condition.sourceLocation,
|
|
657
|
+
controlsJsxRendering: true,
|
|
658
|
+
isNegated: condition.isNegated,
|
|
659
|
+
});
|
|
660
|
+
}
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
if (ts.isJsxElement(whenFalse) ||
|
|
664
|
+
ts.isJsxSelfClosingElement(whenFalse) ||
|
|
665
|
+
ts.isJsxFragment(whenFalse)) {
|
|
666
|
+
extractConditionalsFromJsx(whenFalse, context, whenFalseConditions);
|
|
667
|
+
}
|
|
668
|
+
// Handle chained ternaries: a ? <A/> : b ? <B/> : <C/>
|
|
669
|
+
// When whenFalse is another ConditionalExpression, recursively process it
|
|
670
|
+
else if (ts.isConditionalExpression(whenFalse)) {
|
|
671
|
+
// Extract conditional usage for the nested ternary's condition
|
|
672
|
+
extractConditionalUsage(whenFalse.condition, context, 'ternary', {
|
|
673
|
+
controlsJsxRendering: true,
|
|
674
|
+
});
|
|
675
|
+
// Get the nested condition path
|
|
676
|
+
const nestedConditionPath = StructuredPath.fromNode(unwrapExpression(whenFalse.condition), context.sourceFile);
|
|
677
|
+
const nestedSourceLocation = getSourceLocation(whenFalse, context.sourceFile);
|
|
678
|
+
const nestedWhenTrue = unwrapExpression(whenFalse.whenTrue);
|
|
679
|
+
const nestedWhenFalse = unwrapExpression(whenFalse.whenFalse);
|
|
680
|
+
// Fix 32: Build conditions for nested whenTrue (parent falsy + nested truthy)
|
|
681
|
+
const nestedWhenTrueConditions = [
|
|
682
|
+
...whenFalseConditions, // Parent ternary was falsy to get here
|
|
683
|
+
...(nestedConditionPath
|
|
684
|
+
? [
|
|
685
|
+
{
|
|
686
|
+
path: nestedConditionPath.toString(),
|
|
687
|
+
sourceLocation: nestedSourceLocation,
|
|
688
|
+
isNegated: false,
|
|
689
|
+
},
|
|
690
|
+
]
|
|
691
|
+
: []),
|
|
692
|
+
];
|
|
693
|
+
// Fix 32: Build conditions for nested whenFalse (parent falsy + nested falsy)
|
|
694
|
+
const nestedWhenFalseConditions = [
|
|
695
|
+
...whenFalseConditions, // Parent ternary was falsy to get here
|
|
696
|
+
...(nestedConditionPath
|
|
697
|
+
? [
|
|
698
|
+
{
|
|
699
|
+
path: nestedConditionPath.toString(),
|
|
700
|
+
sourceLocation: nestedSourceLocation,
|
|
701
|
+
isNegated: true,
|
|
702
|
+
},
|
|
703
|
+
]
|
|
704
|
+
: []),
|
|
705
|
+
];
|
|
706
|
+
// Handle nested whenTrue branch
|
|
707
|
+
if (ts.isJsxElement(nestedWhenTrue) ||
|
|
708
|
+
ts.isJsxSelfClosingElement(nestedWhenTrue)) {
|
|
709
|
+
const componentName = getComponentNameFromJsx(nestedWhenTrue);
|
|
710
|
+
if (componentName) {
|
|
711
|
+
// Fix 32: Add ALL accumulated conditions
|
|
712
|
+
for (const condition of nestedWhenTrueConditions) {
|
|
713
|
+
context.addChildBoundaryGatingCondition(componentName, {
|
|
714
|
+
path: condition.path,
|
|
715
|
+
conditionType: 'truthiness',
|
|
716
|
+
location: 'ternary',
|
|
717
|
+
sourceLocation: condition.sourceLocation,
|
|
718
|
+
controlsJsxRendering: true,
|
|
719
|
+
isNegated: condition.isNegated,
|
|
720
|
+
});
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
}
|
|
724
|
+
if (ts.isJsxElement(nestedWhenTrue) ||
|
|
725
|
+
ts.isJsxSelfClosingElement(nestedWhenTrue) ||
|
|
726
|
+
ts.isJsxFragment(nestedWhenTrue)) {
|
|
727
|
+
extractConditionalsFromJsx(nestedWhenTrue, context, nestedWhenTrueConditions);
|
|
728
|
+
}
|
|
729
|
+
// Handle nested whenFalse branch (this could be another chained ternary or JSX)
|
|
730
|
+
if (ts.isJsxElement(nestedWhenFalse) ||
|
|
731
|
+
ts.isJsxSelfClosingElement(nestedWhenFalse)) {
|
|
732
|
+
const componentName = getComponentNameFromJsx(nestedWhenFalse);
|
|
733
|
+
if (componentName) {
|
|
734
|
+
// Fix 32: Add ALL accumulated conditions
|
|
735
|
+
for (const condition of nestedWhenFalseConditions) {
|
|
736
|
+
context.addChildBoundaryGatingCondition(componentName, {
|
|
737
|
+
path: condition.path,
|
|
738
|
+
conditionType: 'truthiness',
|
|
739
|
+
location: 'ternary',
|
|
740
|
+
sourceLocation: condition.sourceLocation,
|
|
741
|
+
controlsJsxRendering: true,
|
|
742
|
+
isNegated: condition.isNegated,
|
|
743
|
+
});
|
|
744
|
+
}
|
|
745
|
+
}
|
|
746
|
+
}
|
|
747
|
+
if (ts.isJsxElement(nestedWhenFalse) ||
|
|
748
|
+
ts.isJsxSelfClosingElement(nestedWhenFalse) ||
|
|
749
|
+
ts.isJsxFragment(nestedWhenFalse)) {
|
|
750
|
+
extractConditionalsFromJsx(nestedWhenFalse, context, nestedWhenFalseConditions);
|
|
751
|
+
}
|
|
752
|
+
// If nestedWhenFalse is yet another ConditionalExpression, the recursion
|
|
753
|
+
// will handle it on the next iteration when this function processes it
|
|
754
|
+
else if (ts.isConditionalExpression(nestedWhenFalse)) {
|
|
755
|
+
// Recursively handle deeper nesting by wrapping in a synthetic process
|
|
756
|
+
// We create a fake JsxExpression context to reuse the same logic
|
|
757
|
+
const syntheticChild = {
|
|
758
|
+
kind: ts.SyntaxKind.JsxExpression,
|
|
759
|
+
expression: nestedWhenFalse,
|
|
760
|
+
};
|
|
761
|
+
// Process via the main JSX expression handler by recursing
|
|
762
|
+
// For now, just extract conditionals directly
|
|
763
|
+
extractConditionalUsage(nestedWhenFalse.condition, context, 'ternary', { controlsJsxRendering: true });
|
|
764
|
+
}
|
|
765
|
+
}
|
|
766
|
+
}
|
|
767
|
+
}
|
|
768
|
+
// Recursively process nested JSX elements - Fix 32: pass parent conditions
|
|
769
|
+
else if (ts.isJsxElement(child)) {
|
|
770
|
+
// Check if this is a user-defined component (vs intrinsic element like div)
|
|
771
|
+
const componentName = getComponentNameFromJsx(child);
|
|
772
|
+
if (componentName) {
|
|
773
|
+
if (parentConditions.length > 0) {
|
|
774
|
+
// If there are parent conditions, record them as gating conditions
|
|
775
|
+
console.log(`[ChildBoundary] ${componentName}: Conditionally rendered with ${parentConditions.length} gating conditions`);
|
|
776
|
+
for (const condition of parentConditions) {
|
|
777
|
+
console.log(`[ChildBoundary] ${componentName}: Adding gating condition path='${condition.path}' isNegated=${condition.isNegated}`);
|
|
778
|
+
context.addChildBoundaryGatingCondition(componentName, {
|
|
779
|
+
path: condition.path,
|
|
780
|
+
conditionType: 'truthiness',
|
|
781
|
+
location: 'ternary',
|
|
782
|
+
sourceLocation: condition.sourceLocation,
|
|
783
|
+
controlsJsxRendering: true,
|
|
784
|
+
isNegated: condition.isNegated,
|
|
785
|
+
});
|
|
786
|
+
}
|
|
787
|
+
}
|
|
788
|
+
else {
|
|
789
|
+
// No parent conditions - check if it has data props for unconditional tracking
|
|
790
|
+
console.log(`[ChildBoundary] ${componentName}: Checking for unconditional rendering with data props...`);
|
|
791
|
+
const { hasDataProps, dataProps } = hasDataPropsFromParent(child, componentName);
|
|
792
|
+
if (hasDataProps) {
|
|
793
|
+
// Fix: Track unconditionally-rendered children that receive data props
|
|
794
|
+
// These need to be tracked for flow merging even without gating conditions
|
|
795
|
+
// Example: <WorkoutsView workouts={workouts} /> - parent controls workouts data
|
|
796
|
+
console.log(`[ChildBoundary] ${componentName}: TRACKING as unconditionally-rendered with data props: [${dataProps.join(', ')}]`);
|
|
797
|
+
context.addChildBoundaryGatingCondition(componentName, {
|
|
798
|
+
path: '__unconditional__',
|
|
799
|
+
conditionType: 'truthiness',
|
|
800
|
+
location: 'unconditional',
|
|
801
|
+
controlsJsxRendering: true,
|
|
802
|
+
isNegated: false,
|
|
803
|
+
});
|
|
804
|
+
}
|
|
805
|
+
}
|
|
806
|
+
}
|
|
807
|
+
extractConditionalsFromJsx(child, context, parentConditions);
|
|
808
|
+
}
|
|
809
|
+
// Handle self-closing JSX elements (e.g., <ScenarioViewer />)
|
|
810
|
+
else if (ts.isJsxSelfClosingElement(child)) {
|
|
811
|
+
// Check if this is a user-defined component (vs intrinsic element like div)
|
|
812
|
+
const componentName = getComponentNameFromJsx(child);
|
|
813
|
+
if (componentName) {
|
|
814
|
+
if (parentConditions.length > 0) {
|
|
815
|
+
// If there are parent conditions, record them as gating conditions
|
|
816
|
+
console.log(`[ChildBoundary] ${componentName}: Conditionally rendered (self-closing) with ${parentConditions.length} gating conditions`);
|
|
817
|
+
for (const condition of parentConditions) {
|
|
818
|
+
console.log(`[ChildBoundary] ${componentName}: Adding gating condition path='${condition.path}' isNegated=${condition.isNegated}`);
|
|
819
|
+
context.addChildBoundaryGatingCondition(componentName, {
|
|
820
|
+
path: condition.path,
|
|
821
|
+
conditionType: 'truthiness',
|
|
822
|
+
location: 'ternary',
|
|
823
|
+
sourceLocation: condition.sourceLocation,
|
|
824
|
+
controlsJsxRendering: true,
|
|
825
|
+
isNegated: condition.isNegated,
|
|
826
|
+
});
|
|
827
|
+
}
|
|
828
|
+
}
|
|
829
|
+
else {
|
|
830
|
+
// No parent conditions - check if it has data props for unconditional tracking
|
|
831
|
+
console.log(`[ChildBoundary] ${componentName}: Checking for unconditional rendering (self-closing) with data props...`);
|
|
832
|
+
const { hasDataProps, dataProps } = hasDataPropsFromParent(child, componentName);
|
|
833
|
+
if (hasDataProps) {
|
|
834
|
+
// Fix: Track unconditionally-rendered children that receive data props
|
|
835
|
+
console.log(`[ChildBoundary] ${componentName}: TRACKING as unconditionally-rendered (self-closing) with data props: [${dataProps.join(', ')}]`);
|
|
836
|
+
context.addChildBoundaryGatingCondition(componentName, {
|
|
837
|
+
path: '__unconditional__',
|
|
838
|
+
conditionType: 'truthiness',
|
|
839
|
+
location: 'unconditional',
|
|
840
|
+
controlsJsxRendering: true,
|
|
841
|
+
isNegated: false,
|
|
842
|
+
});
|
|
843
|
+
}
|
|
844
|
+
}
|
|
845
|
+
}
|
|
846
|
+
// Self-closing elements have no children, so no recursion needed
|
|
847
|
+
}
|
|
848
|
+
// Recursively process nested JSX fragments - Fix 32: pass parent conditions
|
|
849
|
+
else if (ts.isJsxFragment(child)) {
|
|
850
|
+
extractConditionalsFromJsx(child, context, parentConditions);
|
|
851
|
+
}
|
|
852
|
+
}
|
|
853
|
+
}
|
|
854
|
+
/**
|
|
855
|
+
* Extracts conditional usages from a condition expression for key attribute detection.
|
|
856
|
+
* This function identifies which attributes are used in conditionals and how they're used.
|
|
857
|
+
* It also tracks compound conditionals (&&-chains) where all conditions must be true together.
|
|
858
|
+
*
|
|
859
|
+
* @param condition The condition expression to analyze
|
|
860
|
+
* @param context The analysis context
|
|
861
|
+
* @param location Where this condition appears (if, ternary, logical-and, switch)
|
|
862
|
+
* @param options Additional options including controlsJsxRendering flag
|
|
863
|
+
*/
|
|
864
|
+
export function extractConditionalUsage(condition, context, location, options = {}) {
|
|
865
|
+
const { controlsJsxRendering } = options;
|
|
866
|
+
// Internal recursive function with chain tracking
|
|
867
|
+
function extractWithChainTracking(expr, chainInfo, isNegated) {
|
|
868
|
+
const unwrapped = unwrapExpression(expr);
|
|
869
|
+
// Handle binary expressions with && (logical AND chains)
|
|
870
|
+
// Example: `a && b && <Component />` - both a and b are conditional checks
|
|
871
|
+
if (ts.isBinaryExpression(unwrapped) &&
|
|
872
|
+
unwrapped.operatorToken.kind === ts.SyntaxKind.AmpersandAmpersandToken) {
|
|
873
|
+
// Track if we're creating the chain at this level (root of the chain)
|
|
874
|
+
const isChainRoot = !chainInfo;
|
|
875
|
+
// If no chainInfo, this is the root of a new chain
|
|
876
|
+
if (isChainRoot) {
|
|
877
|
+
const chainLength = countConditionsInAndChain(unwrapped);
|
|
878
|
+
// Only create chain tracking for chains with 2+ conditions
|
|
879
|
+
if (chainLength >= 2) {
|
|
880
|
+
const chainId = `chain_${crypto.randomUUID().slice(0, 8)}`;
|
|
881
|
+
const chainExpression = unwrapped.getText(context.sourceFile);
|
|
882
|
+
const compound = {
|
|
883
|
+
chainId,
|
|
884
|
+
expression: chainExpression.length > 200
|
|
885
|
+
? chainExpression.slice(0, 200) + '...'
|
|
886
|
+
: chainExpression,
|
|
887
|
+
conditions: [],
|
|
888
|
+
location,
|
|
889
|
+
sourceLocation: getSourceLocation(unwrapped, context.sourceFile),
|
|
890
|
+
controlsJsxRendering,
|
|
891
|
+
};
|
|
892
|
+
chainInfo = {
|
|
893
|
+
chainId,
|
|
894
|
+
chainLength,
|
|
895
|
+
chainExpression: compound.expression,
|
|
896
|
+
currentPosition: 0,
|
|
897
|
+
compound,
|
|
898
|
+
};
|
|
899
|
+
}
|
|
900
|
+
}
|
|
901
|
+
// Recursively process left side
|
|
902
|
+
extractWithChainTracking(unwrapped.left, chainInfo, false);
|
|
903
|
+
// Process right side if it's not JSX (JSX is the consequence, not the condition)
|
|
904
|
+
const rightUnwrapped = unwrapExpression(unwrapped.right);
|
|
905
|
+
const isJsxConsequence = ts.isJsxElement(rightUnwrapped) ||
|
|
906
|
+
ts.isJsxSelfClosingElement(rightUnwrapped) ||
|
|
907
|
+
ts.isJsxFragment(rightUnwrapped);
|
|
908
|
+
if (!isJsxConsequence) {
|
|
909
|
+
extractWithChainTracking(unwrapped.right, chainInfo, false);
|
|
910
|
+
}
|
|
911
|
+
// If this is the root of the chain, register the compound conditional
|
|
912
|
+
if (isChainRoot && chainInfo) {
|
|
913
|
+
context.addCompoundConditional(chainInfo.compound);
|
|
914
|
+
}
|
|
915
|
+
return;
|
|
916
|
+
}
|
|
917
|
+
// Handle binary expressions with || (logical OR)
|
|
918
|
+
// When OR is inside an && chain, we need to continue chain tracking
|
|
919
|
+
// and mark conditions as OR alternatives
|
|
920
|
+
if (ts.isBinaryExpression(unwrapped) &&
|
|
921
|
+
unwrapped.operatorToken.kind === ts.SyntaxKind.BarBarToken) {
|
|
922
|
+
if (chainInfo) {
|
|
923
|
+
// We're inside an && chain - continue tracking but mark as OR alternatives
|
|
924
|
+
// Generate an orGroupId so conditions from both sides can be grouped
|
|
925
|
+
const orGroupId = chainInfo.currentOrGroupId ?? `or_${crypto.randomUUID().slice(0, 8)}`;
|
|
926
|
+
// Process left side with OR group tracking
|
|
927
|
+
const leftChainInfo = {
|
|
928
|
+
...chainInfo,
|
|
929
|
+
currentOrGroupId: orGroupId,
|
|
930
|
+
};
|
|
931
|
+
extractWithChainTracking(unwrapped.left, leftChainInfo, false);
|
|
932
|
+
// Process right side with same OR group
|
|
933
|
+
// Note: we use leftChainInfo's currentPosition which may have been updated
|
|
934
|
+
const rightChainInfo = {
|
|
935
|
+
...leftChainInfo,
|
|
936
|
+
currentPosition: chainInfo.currentPosition,
|
|
937
|
+
};
|
|
938
|
+
extractWithChainTracking(unwrapped.right, rightChainInfo, false);
|
|
939
|
+
}
|
|
940
|
+
else {
|
|
941
|
+
// Not inside a chain - OR breaks into independent conditional checks
|
|
942
|
+
extractWithChainTracking(unwrapped.left, null, false);
|
|
943
|
+
extractWithChainTracking(unwrapped.right, null, false);
|
|
944
|
+
}
|
|
945
|
+
return;
|
|
946
|
+
}
|
|
947
|
+
// Handle comparison operators (===, !==, <, >, <=, >=)
|
|
948
|
+
// Example: `if (status === 'active')` - status is compared against 'active'
|
|
949
|
+
if (ts.isBinaryExpression(unwrapped) &&
|
|
950
|
+
isComparisonOperator(unwrapped.operatorToken.kind)) {
|
|
951
|
+
// Try to extract the variable and the compared value
|
|
952
|
+
const leftPath = StructuredPath.fromNode(unwrapped.left, context.sourceFile);
|
|
953
|
+
const rightPath = StructuredPath.fromNode(unwrapped.right, context.sourceFile);
|
|
954
|
+
// Determine the compared value for computing requiredValue
|
|
955
|
+
const getRequiredValue = (literalValue, isNegatedComparison) => {
|
|
956
|
+
if (literalValue === undefined)
|
|
957
|
+
return undefined;
|
|
958
|
+
// For !== comparisons, the condition is true when NOT equal to the value
|
|
959
|
+
// For === comparisons, the condition is true when equal to the value
|
|
960
|
+
const isNotEqual = unwrapped.operatorToken.kind ===
|
|
961
|
+
ts.SyntaxKind.ExclamationEqualsEqualsToken ||
|
|
962
|
+
unwrapped.operatorToken.kind === ts.SyntaxKind.ExclamationEqualsToken;
|
|
963
|
+
if (isNotEqual) {
|
|
964
|
+
// !== 'value' means requiredValue is NOT 'value', but we express this as "not 'value'"
|
|
965
|
+
return `not ${literalValue}`;
|
|
966
|
+
}
|
|
967
|
+
return literalValue;
|
|
968
|
+
};
|
|
969
|
+
// Helper to add a condition
|
|
970
|
+
const addCondition = (path, conditionType, comparedValues, requiredValue, sourceExpr) => {
|
|
971
|
+
const usage = {
|
|
972
|
+
path,
|
|
973
|
+
conditionType,
|
|
974
|
+
comparedValues,
|
|
975
|
+
location,
|
|
976
|
+
sourceLocation: getSourceLocation(unwrapped, context.sourceFile),
|
|
977
|
+
isNegated,
|
|
978
|
+
controlsJsxRendering,
|
|
979
|
+
};
|
|
980
|
+
// Check for inline array-derived patterns (.length) on the source expression
|
|
981
|
+
if (sourceExpr) {
|
|
982
|
+
const arrayDerived = detectArrayDerivedPattern(sourceExpr);
|
|
983
|
+
if (arrayDerived) {
|
|
984
|
+
usage.derivedFrom = {
|
|
985
|
+
operation: arrayDerived.operation,
|
|
986
|
+
sourcePath: arrayDerived.sourcePath,
|
|
987
|
+
};
|
|
988
|
+
}
|
|
989
|
+
}
|
|
990
|
+
// Add chain info if part of a compound conditional
|
|
991
|
+
if (chainInfo) {
|
|
992
|
+
usage.chainId = chainInfo.chainId;
|
|
993
|
+
usage.chainPosition = chainInfo.currentPosition;
|
|
994
|
+
usage.chainLength = chainInfo.chainLength;
|
|
995
|
+
usage.chainExpression = chainInfo.chainExpression;
|
|
996
|
+
chainInfo.currentPosition++;
|
|
997
|
+
// Add to compound conditional conditions
|
|
998
|
+
chainInfo.compound.conditions.push({
|
|
999
|
+
path,
|
|
1000
|
+
conditionType,
|
|
1001
|
+
comparedValues,
|
|
1002
|
+
isNegated,
|
|
1003
|
+
requiredValue,
|
|
1004
|
+
...(chainInfo.currentOrGroupId && {
|
|
1005
|
+
orGroupId: chainInfo.currentOrGroupId,
|
|
1006
|
+
}),
|
|
1007
|
+
});
|
|
1008
|
+
}
|
|
1009
|
+
context.addConditionalUsage(usage);
|
|
1010
|
+
};
|
|
1011
|
+
// Check if left is a variable and right is a literal
|
|
1012
|
+
if (leftPath && isLiteralExpression(unwrapped.right)) {
|
|
1013
|
+
const literalValue = getLiteralValue(unwrapped.right, context);
|
|
1014
|
+
addCondition(leftPath.toLeftHandSideString(), 'comparison', literalValue !== undefined ? [literalValue] : undefined, getRequiredValue(literalValue, isNegated), unwrapped.left);
|
|
1015
|
+
return;
|
|
1016
|
+
}
|
|
1017
|
+
// Check if right is a variable and left is a literal
|
|
1018
|
+
if (rightPath && isLiteralExpression(unwrapped.left)) {
|
|
1019
|
+
const literalValue = getLiteralValue(unwrapped.left, context);
|
|
1020
|
+
addCondition(rightPath.toLeftHandSideString(), 'comparison', literalValue !== undefined ? [literalValue] : undefined, getRequiredValue(literalValue, isNegated), unwrapped.right);
|
|
1021
|
+
return;
|
|
1022
|
+
}
|
|
1023
|
+
// Both sides are variables - record both as comparisons without specific values
|
|
1024
|
+
if (leftPath) {
|
|
1025
|
+
addCondition(leftPath.toLeftHandSideString(), 'comparison', undefined, undefined, unwrapped.left);
|
|
1026
|
+
}
|
|
1027
|
+
if (rightPath) {
|
|
1028
|
+
addCondition(rightPath.toLeftHandSideString(), 'comparison', undefined, undefined, unwrapped.right);
|
|
1029
|
+
}
|
|
1030
|
+
return;
|
|
1031
|
+
}
|
|
1032
|
+
// Handle prefix unary NOT expression: !variable
|
|
1033
|
+
// Example: `if (!isVisible)` - isVisible is a truthiness check (negated)
|
|
1034
|
+
if (ts.isPrefixUnaryExpression(unwrapped) &&
|
|
1035
|
+
unwrapped.operator === ts.SyntaxKind.ExclamationToken) {
|
|
1036
|
+
extractWithChainTracking(unwrapped.operand, chainInfo, !isNegated);
|
|
1037
|
+
return;
|
|
1038
|
+
}
|
|
1039
|
+
// Handle simple identifiers or property accesses (truthiness checks)
|
|
1040
|
+
// Example: `if (x)` or `x && <JSX />` - x is checked for truthiness
|
|
1041
|
+
const path = StructuredPath.fromNode(unwrapped, context.sourceFile);
|
|
1042
|
+
if (path && !path.isLiteral()) {
|
|
1043
|
+
const pathStr = path.toLeftHandSideString();
|
|
1044
|
+
const usage = {
|
|
1045
|
+
path: pathStr,
|
|
1046
|
+
conditionType: 'truthiness',
|
|
1047
|
+
location,
|
|
1048
|
+
sourceLocation: getSourceLocation(unwrapped, context.sourceFile),
|
|
1049
|
+
isNegated,
|
|
1050
|
+
controlsJsxRendering,
|
|
1051
|
+
};
|
|
1052
|
+
// Check for inline array-derived patterns (.some(), .every(), .includes(), .length)
|
|
1053
|
+
// This populates derivedFrom so downstream code can resolve to the base array path
|
|
1054
|
+
const arrayDerived = detectArrayDerivedPattern(unwrapped);
|
|
1055
|
+
if (arrayDerived) {
|
|
1056
|
+
usage.derivedFrom = {
|
|
1057
|
+
operation: arrayDerived.operation,
|
|
1058
|
+
sourcePath: arrayDerived.sourcePath,
|
|
1059
|
+
};
|
|
1060
|
+
}
|
|
1061
|
+
// Add chain info if part of a compound conditional
|
|
1062
|
+
if (chainInfo) {
|
|
1063
|
+
usage.chainId = chainInfo.chainId;
|
|
1064
|
+
usage.chainPosition = chainInfo.currentPosition;
|
|
1065
|
+
usage.chainLength = chainInfo.chainLength;
|
|
1066
|
+
usage.chainExpression = chainInfo.chainExpression;
|
|
1067
|
+
chainInfo.currentPosition++;
|
|
1068
|
+
// Add to compound conditional conditions
|
|
1069
|
+
// For truthiness, requiredValue is true if not negated, false if negated
|
|
1070
|
+
chainInfo.compound.conditions.push({
|
|
1071
|
+
path: pathStr,
|
|
1072
|
+
conditionType: 'truthiness',
|
|
1073
|
+
isNegated,
|
|
1074
|
+
requiredValue: !isNegated,
|
|
1075
|
+
...(chainInfo.currentOrGroupId && {
|
|
1076
|
+
orGroupId: chainInfo.currentOrGroupId,
|
|
1077
|
+
}),
|
|
1078
|
+
});
|
|
1079
|
+
}
|
|
1080
|
+
context.addConditionalUsage(usage);
|
|
1081
|
+
}
|
|
1082
|
+
}
|
|
1083
|
+
// Start extraction with no chain info
|
|
1084
|
+
extractWithChainTracking(condition, null, false);
|
|
1085
|
+
}
|
|
1086
|
+
/**
|
|
1087
|
+
* Helper to check if an expression is a literal value
|
|
1088
|
+
*/
|
|
1089
|
+
function isLiteralExpression(expr) {
|
|
1090
|
+
const unwrapped = unwrapExpression(expr);
|
|
1091
|
+
return (ts.isStringLiteral(unwrapped) ||
|
|
1092
|
+
ts.isNumericLiteral(unwrapped) ||
|
|
1093
|
+
ts.isNoSubstitutionTemplateLiteral(unwrapped) ||
|
|
1094
|
+
unwrapped.kind === ts.SyntaxKind.TrueKeyword ||
|
|
1095
|
+
unwrapped.kind === ts.SyntaxKind.FalseKeyword ||
|
|
1096
|
+
unwrapped.kind === ts.SyntaxKind.NullKeyword ||
|
|
1097
|
+
unwrapped.kind === ts.SyntaxKind.UndefinedKeyword ||
|
|
1098
|
+
unwrapped.kind === ts.SyntaxKind.ThisKeyword);
|
|
1099
|
+
}
|
|
1100
|
+
/**
|
|
1101
|
+
* Helper to get the string representation of a literal value
|
|
1102
|
+
*/
|
|
1103
|
+
function getLiteralValue(expr, context) {
|
|
1104
|
+
const unwrapped = unwrapExpression(expr);
|
|
1105
|
+
if (ts.isStringLiteral(unwrapped) ||
|
|
1106
|
+
ts.isNoSubstitutionTemplateLiteral(unwrapped)) {
|
|
1107
|
+
return unwrapped.text;
|
|
1108
|
+
}
|
|
1109
|
+
if (ts.isNumericLiteral(unwrapped)) {
|
|
1110
|
+
return unwrapped.text;
|
|
1111
|
+
}
|
|
1112
|
+
if (unwrapped.kind === ts.SyntaxKind.TrueKeyword) {
|
|
1113
|
+
return 'true';
|
|
1114
|
+
}
|
|
1115
|
+
if (unwrapped.kind === ts.SyntaxKind.FalseKeyword) {
|
|
1116
|
+
return 'false';
|
|
1117
|
+
}
|
|
1118
|
+
if (unwrapped.kind === ts.SyntaxKind.NullKeyword) {
|
|
1119
|
+
return 'null';
|
|
1120
|
+
}
|
|
1121
|
+
if (unwrapped.kind === ts.SyntaxKind.UndefinedKeyword) {
|
|
1122
|
+
return 'undefined';
|
|
1123
|
+
}
|
|
1124
|
+
if (unwrapped.kind === ts.SyntaxKind.ThisKeyword) {
|
|
1125
|
+
return 'this';
|
|
1126
|
+
}
|
|
1127
|
+
return undefined;
|
|
1128
|
+
}
|
|
1129
|
+
/**
|
|
1130
|
+
* Processes an expression node recursively, establishing equivalences and types
|
|
1131
|
+
* in the analysis context as side effects.
|
|
1132
|
+
*
|
|
1133
|
+
* This is the core function for centralized expression analysis, which handles all
|
|
1134
|
+
* expression types and registers appropriate relationships and types in the context.
|
|
1135
|
+
*
|
|
1136
|
+
* @param node The expression node to process.
|
|
1137
|
+
* @param context The analysis context.
|
|
1138
|
+
* @param targetPath The base path to which this expression's value should be related.
|
|
1139
|
+
* For example, for a variable declaration `const x = y`, the targetPath would be
|
|
1140
|
+
* StructuredPath.fromBase('x'). For a return statement `return expr`, the targetPath
|
|
1141
|
+
* would be StructuredPath.fromBase('returnValue').
|
|
1142
|
+
*
|
|
1143
|
+
* When targetPath is provided, this function will establish all appropriate equivalences
|
|
1144
|
+
* and register types for targetPath. When omitted (typically for sub-expressions in
|
|
1145
|
+
* recursive calls), the function will operate without establishing external relationships.
|
|
1146
|
+
*
|
|
1147
|
+
* @returns true if the expression was processed successfully, false otherwise.
|
|
1148
|
+
*/
|
|
1149
|
+
export function processExpression({ node, context, targetPath, typeHint, }) {
|
|
1150
|
+
let inferredNodeType = context.inferTypeFromNode(node);
|
|
1151
|
+
if (inferredNodeType === 'unknown' && typeHint) {
|
|
1152
|
+
inferredNodeType = typeHint;
|
|
1153
|
+
}
|
|
1154
|
+
const unwrappedNode = unwrapExpression(node);
|
|
1155
|
+
// IMPORTANT: Mark nullable variables BEFORE checking child boundaries
|
|
1156
|
+
// JSX expressions like {showLogsForEntity && projectSlug && (<Component />)} are child boundaries,
|
|
1157
|
+
// but we still need to mark the variables as potentially undefined
|
|
1158
|
+
if (ts.isBinaryExpression(unwrappedNode) &&
|
|
1159
|
+
unwrappedNode.operatorToken.kind === ts.SyntaxKind.AmpersandAmpersandToken) {
|
|
1160
|
+
markConditionVariablesAsNullable(unwrappedNode, context);
|
|
1161
|
+
// Extract conditional usages for key attribute detection
|
|
1162
|
+
// Only call from the OUTERMOST && expression to avoid duplicates
|
|
1163
|
+
// Check if parent is also a && (meaning we're nested)
|
|
1164
|
+
const parent = unwrappedNode.parent;
|
|
1165
|
+
const parentIsAndChain = parent &&
|
|
1166
|
+
ts.isBinaryExpression(parent) &&
|
|
1167
|
+
parent.operatorToken.kind === ts.SyntaxKind.AmpersandAmpersandToken;
|
|
1168
|
+
if (!parentIsAndChain) {
|
|
1169
|
+
extractConditionalUsage(unwrappedNode, context, 'logical-and');
|
|
1170
|
+
}
|
|
1171
|
+
}
|
|
1172
|
+
// CRITICAL: Extract conditionals from JSX BEFORE checking child boundaries
|
|
1173
|
+
// JSX elements are NOT scopes - their expressions use variables from the parent scope.
|
|
1174
|
+
// Even if the JSX element is within a child boundary (e.g., because it contains callbacks),
|
|
1175
|
+
// we must still extract conditionals from JSX expression children like {x && <div>...</div>}
|
|
1176
|
+
if (ts.isJsxElement(unwrappedNode) ||
|
|
1177
|
+
ts.isJsxSelfClosingElement(unwrappedNode) ||
|
|
1178
|
+
ts.isJsxFragment(unwrappedNode)) {
|
|
1179
|
+
extractConditionalsFromJsx(unwrappedNode, context);
|
|
1180
|
+
}
|
|
1181
|
+
// If the node falls within an excluded child scope, stop processing it.
|
|
1182
|
+
if (context.isChildBoundary(node)) {
|
|
1183
|
+
return true;
|
|
1184
|
+
}
|
|
1185
|
+
// Create a path for this node
|
|
1186
|
+
let nodePath = null;
|
|
1187
|
+
// if (unwrappedNode.kind === ts.SyntaxKind.Identifier) {
|
|
1188
|
+
// console.warn(
|
|
1189
|
+
// `Got IDENTIFIER and ts.isIdentifier = ${ts.isIdentifier(unwrappedNode)}`,
|
|
1190
|
+
// unwrappedNode.getText(context.sourceFile),
|
|
1191
|
+
// );
|
|
1192
|
+
// }
|
|
1193
|
+
// Handle simple cases directly
|
|
1194
|
+
if (ts.isIdentifier(unwrappedNode)) {
|
|
1195
|
+
nodePath = StructuredPath.fromBase(unwrappedNode.text);
|
|
1196
|
+
// If targetPath is provided, establish equivalence and register type
|
|
1197
|
+
if (targetPath) {
|
|
1198
|
+
context.addEquivalence(targetPath, nodePath);
|
|
1199
|
+
context.addType(targetPath, inferredNodeType);
|
|
1200
|
+
// Propagate sub-properties from the identifier to the targetPath
|
|
1201
|
+
// This handles cases like: dataItem={{ structure: completeDataStructure }}
|
|
1202
|
+
// where completeDataStructure was defined as { 'Function Arguments': dataStructure.arguments }
|
|
1203
|
+
// We need to propagate completeDataStructure['Function Arguments'] to
|
|
1204
|
+
// ChildComponent().signature[0].dataItem.structure['Function Arguments']
|
|
1205
|
+
const nodePathStr = nodePath.toString();
|
|
1206
|
+
const equivalentVariables = context.getEquivalentVariables();
|
|
1207
|
+
const structure = context.getStructure();
|
|
1208
|
+
// Propagate existing equivalencies for sub-properties
|
|
1209
|
+
for (const [key, rawValue] of Object.entries(equivalentVariables)) {
|
|
1210
|
+
// Check if this equivalency is for a sub-property of the identifier
|
|
1211
|
+
// e.g., completeDataStructure['Function Arguments'] or completeDataStructure.foo
|
|
1212
|
+
if (key.startsWith(nodePathStr + '.') ||
|
|
1213
|
+
key.startsWith(nodePathStr + '[')) {
|
|
1214
|
+
const subPath = key.substring(nodePathStr.length);
|
|
1215
|
+
const newTargetPath = StructuredPath.fromBase(targetPath.toString() + subPath);
|
|
1216
|
+
// Handle both string and string[] values
|
|
1217
|
+
const values = Array.isArray(rawValue) ? rawValue : [rawValue];
|
|
1218
|
+
for (const value of values) {
|
|
1219
|
+
if (typeof value === 'string') {
|
|
1220
|
+
const valuePath = StructuredPath.fromBase(value);
|
|
1221
|
+
context.addEquivalence(newTargetPath, valuePath);
|
|
1222
|
+
}
|
|
1223
|
+
}
|
|
1224
|
+
}
|
|
1225
|
+
}
|
|
1226
|
+
// Propagate existing structure entries for sub-properties
|
|
1227
|
+
for (const [key, value] of Object.entries(structure)) {
|
|
1228
|
+
if (key.startsWith(nodePathStr + '.') ||
|
|
1229
|
+
key.startsWith(nodePathStr + '[')) {
|
|
1230
|
+
const subPath = key.substring(nodePathStr.length);
|
|
1231
|
+
const newTargetPath = StructuredPath.fromBase(targetPath.toString() + subPath);
|
|
1232
|
+
context.addType(newTargetPath, value);
|
|
1233
|
+
}
|
|
1234
|
+
}
|
|
1235
|
+
}
|
|
1236
|
+
context.addType(nodePath, inferredNodeType);
|
|
1237
|
+
return true;
|
|
1238
|
+
}
|
|
1239
|
+
if (ts.isStringLiteral(unwrappedNode) ||
|
|
1240
|
+
ts.isNoSubstitutionTemplateLiteral(unwrappedNode)) {
|
|
1241
|
+
nodePath = StructuredPath.createLiteralPath(unwrappedNode.getText(context.sourceFile), 'string');
|
|
1242
|
+
if (targetPath) {
|
|
1243
|
+
context.addEquivalence(targetPath, nodePath);
|
|
1244
|
+
context.addType(targetPath, 'string');
|
|
1245
|
+
}
|
|
1246
|
+
return true;
|
|
1247
|
+
}
|
|
1248
|
+
if (ts.isNumericLiteral(unwrappedNode)) {
|
|
1249
|
+
nodePath = StructuredPath.createLiteralPath(unwrappedNode.text, 'number');
|
|
1250
|
+
if (targetPath) {
|
|
1251
|
+
context.addEquivalence(targetPath, nodePath);
|
|
1252
|
+
context.addType(targetPath, 'number');
|
|
1253
|
+
}
|
|
1254
|
+
return true;
|
|
1255
|
+
}
|
|
1256
|
+
if (unwrappedNode.kind === ts.SyntaxKind.TrueKeyword ||
|
|
1257
|
+
unwrappedNode.kind === ts.SyntaxKind.FalseKeyword) {
|
|
1258
|
+
const value = unwrappedNode.kind === ts.SyntaxKind.TrueKeyword ? 'true' : 'false';
|
|
1259
|
+
nodePath = StructuredPath.createLiteralPath(value, 'boolean');
|
|
1260
|
+
if (targetPath) {
|
|
1261
|
+
context.addEquivalence(targetPath, nodePath);
|
|
1262
|
+
context.addType(targetPath, 'boolean');
|
|
1263
|
+
}
|
|
1264
|
+
return true;
|
|
1265
|
+
}
|
|
1266
|
+
if (unwrappedNode.kind === ts.SyntaxKind.NullKeyword) {
|
|
1267
|
+
nodePath = StructuredPath.createLiteralPath('null', 'null');
|
|
1268
|
+
if (targetPath) {
|
|
1269
|
+
context.addEquivalence(targetPath, nodePath);
|
|
1270
|
+
context.addType(targetPath, 'null');
|
|
1271
|
+
}
|
|
1272
|
+
return true;
|
|
1273
|
+
}
|
|
1274
|
+
if (unwrappedNode.kind === ts.SyntaxKind.UndefinedKeyword) {
|
|
1275
|
+
nodePath = StructuredPath.createLiteralPath('undefined', 'undefined');
|
|
1276
|
+
if (targetPath) {
|
|
1277
|
+
context.addEquivalence(targetPath, nodePath);
|
|
1278
|
+
context.addType(targetPath, 'undefined');
|
|
1279
|
+
}
|
|
1280
|
+
return true;
|
|
1281
|
+
}
|
|
1282
|
+
if (ts.isThisTypeNode(unwrappedNode) ||
|
|
1283
|
+
unwrappedNode.kind === ts.SyntaxKind.ThisKeyword) {
|
|
1284
|
+
nodePath = StructuredPath.createLiteralPath('this', 'object');
|
|
1285
|
+
if (targetPath) {
|
|
1286
|
+
context.addEquivalence(targetPath, nodePath);
|
|
1287
|
+
context.addType(targetPath, 'object');
|
|
1288
|
+
}
|
|
1289
|
+
return true;
|
|
1290
|
+
}
|
|
1291
|
+
// Handle Property Access: obj.prop
|
|
1292
|
+
if (ts.isPropertyAccessExpression(unwrappedNode)) {
|
|
1293
|
+
// Process the object part recursively (without targetPath)
|
|
1294
|
+
const objectProcessed = processExpression({
|
|
1295
|
+
node: unwrappedNode.expression,
|
|
1296
|
+
context,
|
|
1297
|
+
});
|
|
1298
|
+
if (!objectProcessed) {
|
|
1299
|
+
// If we couldn't process the object part, we can't process the property access
|
|
1300
|
+
// console.warn(
|
|
1301
|
+
// `processExpression: Unsupported object part: ${unwrappedNode.expression.getText(context.sourceFile)}`,
|
|
1302
|
+
// ts.isIdentifier(unwrappedNode.expression),
|
|
1303
|
+
// );
|
|
1304
|
+
context.markUnsupported(unwrappedNode.expression, `processExpression: Unsupported base expression for property access: ${ts.SyntaxKind[unwrappedNode.expression.kind]}`, false);
|
|
1305
|
+
return false;
|
|
1306
|
+
}
|
|
1307
|
+
// Get a proper path for the object
|
|
1308
|
+
const objectPath = StructuredPath.fromNode(unwrappedNode.expression, context.sourceFile);
|
|
1309
|
+
if (!objectPath) {
|
|
1310
|
+
context.markUnsupported(unwrappedNode.expression, `processExpression: Couldn't get path for property access base: ${ts.SyntaxKind[unwrappedNode.expression.kind]}`, false);
|
|
1311
|
+
return false;
|
|
1312
|
+
}
|
|
1313
|
+
// Create the property access path
|
|
1314
|
+
const propertyPath = objectPath.withProperty(unwrappedNode.name.text);
|
|
1315
|
+
// Check if this is an environment variable access
|
|
1316
|
+
const fullText = unwrappedNode.getText(context.sourceFile);
|
|
1317
|
+
if (fullText.includes('.env.') || // process.env.X, window.env.X
|
|
1318
|
+
isEnvStoreAccess(fullText) // env.X where env is likely an env config object
|
|
1319
|
+
) {
|
|
1320
|
+
context.addEnvironmentVariable(fullText);
|
|
1321
|
+
}
|
|
1322
|
+
// Infer and register type for the property
|
|
1323
|
+
context.addType(propertyPath, inferredNodeType);
|
|
1324
|
+
// If targetPath is provided, establish equivalence and propagate type
|
|
1325
|
+
if (targetPath) {
|
|
1326
|
+
context.addEquivalence(targetPath, propertyPath);
|
|
1327
|
+
context.addType(targetPath, inferredNodeType);
|
|
1328
|
+
}
|
|
1329
|
+
return true;
|
|
1330
|
+
}
|
|
1331
|
+
// Handle Binary Expressions: a + b, x === y, etc.
|
|
1332
|
+
if (ts.isBinaryExpression(unwrappedNode)) {
|
|
1333
|
+
// Check if it's an assignment first, as BinaryExpression includes assignments
|
|
1334
|
+
if (isAssignmentOperator(unwrappedNode.operatorToken.kind)) {
|
|
1335
|
+
// Check for destructuring assignment first
|
|
1336
|
+
if ((ts.isObjectBindingPattern(unwrappedNode.left) ||
|
|
1337
|
+
ts.isArrayBindingPattern(unwrappedNode.left)) &&
|
|
1338
|
+
unwrappedNode.operatorToken.kind === ts.SyntaxKind.EqualsToken) {
|
|
1339
|
+
// For destructuring assignment, we first need to process the right side
|
|
1340
|
+
const rightSideProcessed = processExpression({
|
|
1341
|
+
node: unwrappedNode.right,
|
|
1342
|
+
context,
|
|
1343
|
+
});
|
|
1344
|
+
if (!rightSideProcessed) {
|
|
1345
|
+
context.markUnsupported(unwrappedNode.right, `processExpression: Unsupported right side of destructuring assignment: ${ts.SyntaxKind[unwrappedNode.right.kind]}`, false);
|
|
1346
|
+
return false;
|
|
1347
|
+
}
|
|
1348
|
+
// Get the right side path
|
|
1349
|
+
const rightSidePath = StructuredPath.fromNode(unwrappedNode.right, context.sourceFile);
|
|
1350
|
+
if (!rightSidePath) {
|
|
1351
|
+
context.markUnsupported(unwrappedNode.right, `processExpression: Couldn't get path for right side of destructuring assignment`, false);
|
|
1352
|
+
return false;
|
|
1353
|
+
}
|
|
1354
|
+
// Process the binding pattern with the right side as source
|
|
1355
|
+
const success = processBindingPattern(unwrappedNode.left, rightSidePath, context);
|
|
1356
|
+
// If targetPath was provided, establish equivalence to the right side
|
|
1357
|
+
// This is useful when the destructuring assignment is itself part of a larger expression
|
|
1358
|
+
if (targetPath) {
|
|
1359
|
+
context.addEquivalence(targetPath, rightSidePath);
|
|
1360
|
+
context.inferAndAddType(targetPath, unwrappedNode.right);
|
|
1361
|
+
}
|
|
1362
|
+
return success;
|
|
1363
|
+
}
|
|
1364
|
+
// Regular non-destructuring assignment
|
|
1365
|
+
else {
|
|
1366
|
+
// Process the left side to ensure it's analyzed and to get its path
|
|
1367
|
+
const leftSideProcessed = processExpression({
|
|
1368
|
+
node: unwrappedNode.left,
|
|
1369
|
+
context,
|
|
1370
|
+
});
|
|
1371
|
+
if (!leftSideProcessed) {
|
|
1372
|
+
context.markUnsupported(unwrappedNode.left, `processExpression: Unsupported left side of assignment: ${ts.SyntaxKind[unwrappedNode.left.kind]}`, false);
|
|
1373
|
+
return false; // Cannot process assignment without successful LHS processing
|
|
1374
|
+
}
|
|
1375
|
+
// Get the structured path for the left side
|
|
1376
|
+
const leftSidePath = StructuredPath.fromNode(unwrappedNode.left, context.sourceFile);
|
|
1377
|
+
if (!leftSidePath) {
|
|
1378
|
+
context.markUnsupported(unwrappedNode.left, `processExpression: Couldn't get path for left side of assignment: ${ts.SyntaxKind[unwrappedNode.left.kind]}`, false);
|
|
1379
|
+
return false;
|
|
1380
|
+
}
|
|
1381
|
+
// Handle simple assignment (=)
|
|
1382
|
+
if (unwrappedNode.operatorToken.kind === ts.SyntaxKind.EqualsToken) {
|
|
1383
|
+
// Process the right side
|
|
1384
|
+
const rightSideProcessed = processExpression({
|
|
1385
|
+
node: unwrappedNode.right,
|
|
1386
|
+
context,
|
|
1387
|
+
targetPath: leftSidePath, // Pass leftSidePath as targetPath
|
|
1388
|
+
});
|
|
1389
|
+
if (!rightSideProcessed) {
|
|
1390
|
+
context.addType(leftSidePath, 'unknown');
|
|
1391
|
+
context.markUnsupported(unwrappedNode.right, `processExpression: Unsupported right side of assignment: ${ts.SyntaxKind[unwrappedNode.right.kind]}`, false);
|
|
1392
|
+
return false;
|
|
1393
|
+
}
|
|
1394
|
+
if (ts.isObjectLiteralExpression(unwrappedNode.right)) {
|
|
1395
|
+
// Just add object type - property equivalences were set up during processing
|
|
1396
|
+
context.addType(leftSidePath, 'object');
|
|
1397
|
+
}
|
|
1398
|
+
// If targetPath was provided to us, establish equivalence
|
|
1399
|
+
if (targetPath) {
|
|
1400
|
+
context.addEquivalence(targetPath, leftSidePath);
|
|
1401
|
+
context.inferAndAddType(targetPath, unwrappedNode.right);
|
|
1402
|
+
}
|
|
1403
|
+
return true;
|
|
1404
|
+
}
|
|
1405
|
+
// Handle compound assignments (+=, -=, etc.)
|
|
1406
|
+
else {
|
|
1407
|
+
// For compound assignments, we process the right side without targetPath
|
|
1408
|
+
const rightSideProcessed = processExpression({
|
|
1409
|
+
node: unwrappedNode.right,
|
|
1410
|
+
context,
|
|
1411
|
+
});
|
|
1412
|
+
if (!rightSideProcessed) {
|
|
1413
|
+
context.markUnsupported(unwrappedNode.right, `processExpression: Unsupported right side of compound assignment: ${ts.SyntaxKind[unwrappedNode.right.kind]}`, false);
|
|
1414
|
+
return false;
|
|
1415
|
+
}
|
|
1416
|
+
// Determine the result type based on operation
|
|
1417
|
+
const operatorKind = unwrappedNode.operatorToken.kind;
|
|
1418
|
+
let leftType = context.getTypeInfo(leftSidePath);
|
|
1419
|
+
if (leftType === 'unknown') {
|
|
1420
|
+
leftType = context.inferTypeFromNode(unwrappedNode.left);
|
|
1421
|
+
}
|
|
1422
|
+
const rightType = context.inferTypeFromNode(unwrappedNode.right);
|
|
1423
|
+
let resultType = 'unknown';
|
|
1424
|
+
if (operatorKind === ts.SyntaxKind.PlusEqualsToken) {
|
|
1425
|
+
// plus operator is special - it can be string or number
|
|
1426
|
+
resultType =
|
|
1427
|
+
leftType === 'string' || rightType === 'string'
|
|
1428
|
+
? 'string'
|
|
1429
|
+
: 'number';
|
|
1430
|
+
}
|
|
1431
|
+
else if (isNumericCompoundOperator(operatorKind)) {
|
|
1432
|
+
resultType = 'number';
|
|
1433
|
+
}
|
|
1434
|
+
else if (isBitwiseCompoundOperator(operatorKind)) {
|
|
1435
|
+
resultType = 'number';
|
|
1436
|
+
}
|
|
1437
|
+
else if (operatorKind === ts.SyntaxKind.AmpersandAmpersandEqualsToken) {
|
|
1438
|
+
resultType = 'boolean';
|
|
1439
|
+
}
|
|
1440
|
+
else if (operatorKind === ts.SyntaxKind.BarBarEqualsToken ||
|
|
1441
|
+
operatorKind === ts.SyntaxKind.QuestionQuestionEqualsToken) {
|
|
1442
|
+
resultType = leftOrRightType(leftType, rightType) ?? 'unknown';
|
|
1443
|
+
}
|
|
1444
|
+
else {
|
|
1445
|
+
context.markUnsupported(unwrappedNode, `processExpression: Unsupported compound assignment operator: ${ts.SyntaxKind[operatorKind]}`, false);
|
|
1446
|
+
}
|
|
1447
|
+
// Update the type of the left side
|
|
1448
|
+
context.addType(leftSidePath, resultType);
|
|
1449
|
+
context.addEquivalence(leftSidePath, StructuredPath.fromNode(unwrappedNode.right, context.sourceFile));
|
|
1450
|
+
// If targetPath was provided, establish equivalence
|
|
1451
|
+
if (targetPath) {
|
|
1452
|
+
context.addEquivalence(targetPath, leftSidePath);
|
|
1453
|
+
context.addType(targetPath, resultType);
|
|
1454
|
+
}
|
|
1455
|
+
return true;
|
|
1456
|
+
}
|
|
1457
|
+
}
|
|
1458
|
+
}
|
|
1459
|
+
// Non-assignment binary expressions (logical, arithmetic, comparison, etc.)
|
|
1460
|
+
else {
|
|
1461
|
+
// Process both sides for their side effects (without targetPath)
|
|
1462
|
+
processExpression({ node: unwrappedNode.left, context });
|
|
1463
|
+
processExpression({ node: unwrappedNode.right, context });
|
|
1464
|
+
// Determine the type of the result
|
|
1465
|
+
const operatorKind = unwrappedNode.operatorToken.kind;
|
|
1466
|
+
let resultPath = null;
|
|
1467
|
+
let resultType = 'unknown';
|
|
1468
|
+
// Type Inference Logic
|
|
1469
|
+
if (isComparisonOperator(operatorKind)) {
|
|
1470
|
+
resultType = 'boolean';
|
|
1471
|
+
// Type narrowing: if comparing a call expression with unknown return type
|
|
1472
|
+
// to a value of known type, narrow the return type
|
|
1473
|
+
const leftType = context.inferTypeFromNode(unwrappedNode.left);
|
|
1474
|
+
const rightType = context.inferTypeFromNode(unwrappedNode.right);
|
|
1475
|
+
// Check if left side is a call expression with unknown return type
|
|
1476
|
+
if (ts.isCallExpression(unwrappedNode.left) &&
|
|
1477
|
+
leftType === 'unknown' &&
|
|
1478
|
+
rightType !== 'unknown') {
|
|
1479
|
+
const leftPath = StructuredPath.fromNode(unwrappedNode.left, context.sourceFile);
|
|
1480
|
+
if (leftPath) {
|
|
1481
|
+
const returnValuePath = leftPath.withProperty('functionCallReturnValue');
|
|
1482
|
+
context.addType(returnValuePath, `${rightType} | unknown`);
|
|
1483
|
+
}
|
|
1484
|
+
}
|
|
1485
|
+
// Check if right side is a call expression with unknown return type
|
|
1486
|
+
else if (ts.isCallExpression(unwrappedNode.right) &&
|
|
1487
|
+
rightType === 'unknown' &&
|
|
1488
|
+
leftType !== 'unknown') {
|
|
1489
|
+
const rightPath = StructuredPath.fromNode(unwrappedNode.right, context.sourceFile);
|
|
1490
|
+
if (rightPath) {
|
|
1491
|
+
const returnValuePath = rightPath.withProperty('functionCallReturnValue');
|
|
1492
|
+
context.addType(returnValuePath, `${leftType} | unknown`);
|
|
1493
|
+
}
|
|
1494
|
+
}
|
|
1495
|
+
}
|
|
1496
|
+
else if (isArithmeticOperator(operatorKind)) {
|
|
1497
|
+
// For plus operator, check if either operand is a string
|
|
1498
|
+
if (operatorKind === ts.SyntaxKind.PlusToken) {
|
|
1499
|
+
const leftType = context.inferTypeFromNode(unwrappedNode.left);
|
|
1500
|
+
const rightType = context.inferTypeFromNode(unwrappedNode.right);
|
|
1501
|
+
if (leftType === 'string' || rightType === 'string') {
|
|
1502
|
+
resultType = 'string';
|
|
1503
|
+
}
|
|
1504
|
+
else {
|
|
1505
|
+
resultType = 'number';
|
|
1506
|
+
}
|
|
1507
|
+
}
|
|
1508
|
+
else {
|
|
1509
|
+
// All other arithmetic operators result in numbers
|
|
1510
|
+
resultType = 'number';
|
|
1511
|
+
}
|
|
1512
|
+
}
|
|
1513
|
+
else if (operatorKind === ts.SyntaxKind.AmpersandAmpersandToken) {
|
|
1514
|
+
// Logical AND typically results in a boolean
|
|
1515
|
+
resultType = 'boolean';
|
|
1516
|
+
// Mark the left operand as potentially undefined since it's being checked for truthiness
|
|
1517
|
+
markConditionVariablesAsNullable(unwrappedNode.left, context);
|
|
1518
|
+
}
|
|
1519
|
+
else if (operatorKind === ts.SyntaxKind.BarBarToken || // Logical OR
|
|
1520
|
+
operatorKind === ts.SyntaxKind.QuestionQuestionToken // Nullish Coalescing
|
|
1521
|
+
) {
|
|
1522
|
+
// For || and ??, the result type depends on the operands
|
|
1523
|
+
const leftType = context.inferTypeFromNode(unwrappedNode.left);
|
|
1524
|
+
const rightType = context.inferTypeFromNode(unwrappedNode.right);
|
|
1525
|
+
// For ||, if either side is boolean, result is boolean
|
|
1526
|
+
if (operatorKind === ts.SyntaxKind.BarBarToken &&
|
|
1527
|
+
(leftType === 'boolean' || rightType === 'boolean')) {
|
|
1528
|
+
resultType = 'boolean';
|
|
1529
|
+
}
|
|
1530
|
+
// Otherwise, for both || and ??, we use the first defined type
|
|
1531
|
+
else if (isDefinedType(leftType)) {
|
|
1532
|
+
resultType = leftType;
|
|
1533
|
+
}
|
|
1534
|
+
else {
|
|
1535
|
+
resultType = rightType || 'unknown';
|
|
1536
|
+
}
|
|
1537
|
+
// For || and ??, create an equivalence to the left side
|
|
1538
|
+
// This ensures the equivalency chain is preserved through fallback expressions
|
|
1539
|
+
// e.g., `const tab = segments[0] || 'default'` should trace tab back to segments[0]
|
|
1540
|
+
if (operatorKind === ts.SyntaxKind.QuestionQuestionToken) {
|
|
1541
|
+
// specifically for ?? we create an equivalence to the left side
|
|
1542
|
+
// IMPORTANT: Also process the left side recursively to apply method semantics
|
|
1543
|
+
// (e.g., for `const segments = splat?.split('/') ?? []`, we need split semantics)
|
|
1544
|
+
processExpression({
|
|
1545
|
+
node: unwrappedNode.left,
|
|
1546
|
+
context,
|
|
1547
|
+
// Don't pass targetPath here - we'll establish equivalence separately below
|
|
1548
|
+
});
|
|
1549
|
+
if (targetPath) {
|
|
1550
|
+
resultPath = StructuredPath.fromNode(unwrappedNode.left, context.sourceFile);
|
|
1551
|
+
}
|
|
1552
|
+
else {
|
|
1553
|
+
// if the expression is the target capture that the two sides are equivalent (e.g. (x ?? y).map())
|
|
1554
|
+
targetPath = StructuredPath.fromNode(unwrappedNode, context.sourceFile);
|
|
1555
|
+
resultPath = StructuredPath.fromNode(unwrappedNode.left, context.sourceFile);
|
|
1556
|
+
}
|
|
1557
|
+
}
|
|
1558
|
+
else if (operatorKind === ts.SyntaxKind.BarBarToken) {
|
|
1559
|
+
// For ||, create equivalences to BOTH sides
|
|
1560
|
+
// This enables data flow tracing through fallback expressions
|
|
1561
|
+
// e.g., `const item = items.find(...) || null` should trace to both:
|
|
1562
|
+
// - items[] (from the find result)
|
|
1563
|
+
// - null (from the fallback)
|
|
1564
|
+
if (targetPath) {
|
|
1565
|
+
// Get paths for both sides
|
|
1566
|
+
const leftPath = StructuredPath.fromNode(unwrappedNode.left, context.sourceFile);
|
|
1567
|
+
const rightPath = StructuredPath.fromNode(unwrappedNode.right, context.sourceFile);
|
|
1568
|
+
// Collect all valid paths
|
|
1569
|
+
const allPaths = [];
|
|
1570
|
+
if (leftPath)
|
|
1571
|
+
allPaths.push(leftPath);
|
|
1572
|
+
if (rightPath)
|
|
1573
|
+
allPaths.push(rightPath);
|
|
1574
|
+
// Add multiple equivalencies to track both sources
|
|
1575
|
+
if (allPaths.length > 0) {
|
|
1576
|
+
context.addMultipleEquivalencies(targetPath, allPaths);
|
|
1577
|
+
}
|
|
1578
|
+
// Process both sides to capture their internal structures
|
|
1579
|
+
processExpression({
|
|
1580
|
+
node: unwrappedNode.left,
|
|
1581
|
+
context,
|
|
1582
|
+
});
|
|
1583
|
+
processExpression({
|
|
1584
|
+
node: unwrappedNode.right,
|
|
1585
|
+
context,
|
|
1586
|
+
});
|
|
1587
|
+
// Register the type for the target path
|
|
1588
|
+
const leftType = context.inferTypeFromNode(unwrappedNode.left);
|
|
1589
|
+
const rightType = context.inferTypeFromNode(unwrappedNode.right);
|
|
1590
|
+
const orResultType = isDefinedType(leftType)
|
|
1591
|
+
? leftType
|
|
1592
|
+
: rightType || 'unknown';
|
|
1593
|
+
context.addType(targetPath, orResultType);
|
|
1594
|
+
// Return early - we've already handled equivalencies with addMultipleEquivalencies
|
|
1595
|
+
// Don't fall through to the generic addEquivalence call below
|
|
1596
|
+
return true;
|
|
1597
|
+
}
|
|
1598
|
+
// Note: When there's no targetPath, we don't recursively process
|
|
1599
|
+
// because || is often used in boolean contexts where the full expression matters
|
|
1600
|
+
}
|
|
1601
|
+
}
|
|
1602
|
+
else if (operatorKind === ts.SyntaxKind.InstanceOfKeyword) {
|
|
1603
|
+
resultType = 'boolean';
|
|
1604
|
+
}
|
|
1605
|
+
else {
|
|
1606
|
+
// Fallback for other operators
|
|
1607
|
+
resultType = inferredNodeType;
|
|
1608
|
+
context.markUnsupported(unwrappedNode, `processExpression: Unsupported binary operator: ${ts.SyntaxKind[operatorKind]}`, false);
|
|
1609
|
+
}
|
|
1610
|
+
// Get a canonical representation for the entire binary expression
|
|
1611
|
+
resultPath ?? (resultPath = nodeToSource(unwrappedNode, context.sourceFile));
|
|
1612
|
+
// Register the type for the expression
|
|
1613
|
+
context.addType(resultPath, resultType);
|
|
1614
|
+
// If targetPath is provided, establish equivalence and register type
|
|
1615
|
+
if (targetPath) {
|
|
1616
|
+
context.addEquivalence(targetPath, resultPath);
|
|
1617
|
+
context.addType(targetPath, resultType);
|
|
1618
|
+
}
|
|
1619
|
+
return true;
|
|
1620
|
+
}
|
|
1621
|
+
}
|
|
1622
|
+
// Handle Call Expressions: func(), obj.method(), func()() etc.
|
|
1623
|
+
if (ts.isCallExpression(unwrappedNode)) {
|
|
1624
|
+
// 1. Process the expression being called (e.g., 'func', 'obj.method')
|
|
1625
|
+
const calledExprProcessed = processExpression({
|
|
1626
|
+
node: unwrappedNode.expression,
|
|
1627
|
+
context,
|
|
1628
|
+
});
|
|
1629
|
+
if (!calledExprProcessed) {
|
|
1630
|
+
context.markUnsupported(unwrappedNode.expression, `processExpression: Unsupported expression being called: ${ts.SyntaxKind[unwrappedNode.expression.kind]}`, false);
|
|
1631
|
+
return false;
|
|
1632
|
+
}
|
|
1633
|
+
// Get a proper path for the called expression
|
|
1634
|
+
const calledExprPath = StructuredPath.fromNode(unwrappedNode.expression, context.sourceFile);
|
|
1635
|
+
if (!calledExprPath) {
|
|
1636
|
+
context.markUnsupported(unwrappedNode.expression, `processExpression: Couldn't get path for called expression: ${ts.SyntaxKind[unwrappedNode.expression.kind]}`, false);
|
|
1637
|
+
return false;
|
|
1638
|
+
}
|
|
1639
|
+
// Build call path using original source text for consistent schema paths.
|
|
1640
|
+
// IMPORTANT: Never use cyScope names in call paths - they are internal identifiers
|
|
1641
|
+
// that should not appear in schema paths or call signatures.
|
|
1642
|
+
const callPath = buildCallPathFromSource(unwrappedNode, context);
|
|
1643
|
+
// 2. Process all arguments recursively WITH targetPath for proper equivalence
|
|
1644
|
+
for (let i = 0; i < unwrappedNode.arguments.length; i++) {
|
|
1645
|
+
const arg = unwrappedNode.arguments[i];
|
|
1646
|
+
const childBoundary = context.isChildBoundary(arg);
|
|
1647
|
+
if (childBoundary) {
|
|
1648
|
+
context.addChildBoundaryEquivalence(callPath.withParameter(i), arg);
|
|
1649
|
+
}
|
|
1650
|
+
// Process each argument with its parameter path as targetPath
|
|
1651
|
+
// This automatically establishes all equivalences and types
|
|
1652
|
+
processExpression({
|
|
1653
|
+
node: arg,
|
|
1654
|
+
context,
|
|
1655
|
+
targetPath: callPath.withParameter(i), // Use parameter path as targetPath
|
|
1656
|
+
});
|
|
1657
|
+
// Special case for Object.keys, etc.
|
|
1658
|
+
if (calledExprPath.base === 'Object' && i === 0) {
|
|
1659
|
+
const argPath = StructuredPath.fromNode(arg, context.sourceFile);
|
|
1660
|
+
if (argPath) {
|
|
1661
|
+
context.addType(argPath, 'object');
|
|
1662
|
+
}
|
|
1663
|
+
}
|
|
1664
|
+
}
|
|
1665
|
+
// 5. Handle Method Semantics and determine return type
|
|
1666
|
+
let returnType = 'unknown';
|
|
1667
|
+
let handledBySemantics = false;
|
|
1668
|
+
// Check if it's a method call (PropertyAccess)
|
|
1669
|
+
if (ts.isPropertyAccessExpression(unwrappedNode.expression)) {
|
|
1670
|
+
const methodName = unwrappedNode.expression.name.text;
|
|
1671
|
+
const semanticsList = methodRegistry.getByMethodName(methodName);
|
|
1672
|
+
if (semanticsList && semanticsList.length > 0) {
|
|
1673
|
+
const semantics = semanticsList[0];
|
|
1674
|
+
// Get the source expression path (e.g., the object for obj.method())
|
|
1675
|
+
const sourceExpr = unwrappedNode.expression.expression;
|
|
1676
|
+
const unwrappedSourceExpr = unwrapExpression(sourceExpr);
|
|
1677
|
+
// When the source is a ternary expression like (cond ? arr : arr.slice()),
|
|
1678
|
+
// apply method semantics to BOTH branches directly. The ternary itself isn't
|
|
1679
|
+
// a variable - it's just a choice between two paths that both flow to the result.
|
|
1680
|
+
if (ts.isConditionalExpression(unwrappedSourceExpr)) {
|
|
1681
|
+
const branches = [
|
|
1682
|
+
unwrappedSourceExpr.whenTrue,
|
|
1683
|
+
unwrappedSourceExpr.whenFalse,
|
|
1684
|
+
];
|
|
1685
|
+
for (const branch of branches) {
|
|
1686
|
+
const branchPath = StructuredPath.fromNode(branch, context.sourceFile);
|
|
1687
|
+
if (branchPath) {
|
|
1688
|
+
const isArraySemantics = semantics instanceof ArrayPushSemantics;
|
|
1689
|
+
const shouldApply = !isArraySemantics ||
|
|
1690
|
+
isLikelyArrayType(branch, context.typeChecker);
|
|
1691
|
+
if (shouldApply) {
|
|
1692
|
+
semantics.addEquivalences(callPath, branchPath, context);
|
|
1693
|
+
returnType = semantics.getReturnType();
|
|
1694
|
+
handledBySemantics = true;
|
|
1695
|
+
}
|
|
1696
|
+
}
|
|
1697
|
+
}
|
|
1698
|
+
}
|
|
1699
|
+
else {
|
|
1700
|
+
// Regular (non-ternary) source expression
|
|
1701
|
+
const sourcePath = StructuredPath.fromNode(sourceExpr, context.sourceFile);
|
|
1702
|
+
if (sourcePath) {
|
|
1703
|
+
// For array-specific semantics (like push), verify the source is actually an array
|
|
1704
|
+
// This prevents router.push() from being mistakenly treated as Array.push()
|
|
1705
|
+
const isArraySemantics = semantics instanceof ArrayPushSemantics;
|
|
1706
|
+
const shouldApply = !isArraySemantics ||
|
|
1707
|
+
isLikelyArrayType(sourceExpr, context.typeChecker);
|
|
1708
|
+
if (shouldApply) {
|
|
1709
|
+
// Apply method semantics
|
|
1710
|
+
semantics.addEquivalences(callPath, sourcePath, context);
|
|
1711
|
+
returnType = semantics.getReturnType();
|
|
1712
|
+
handledBySemantics = true;
|
|
1713
|
+
}
|
|
1714
|
+
}
|
|
1715
|
+
}
|
|
1716
|
+
}
|
|
1717
|
+
}
|
|
1718
|
+
// Check if it's a method call via element access (obj['method']())
|
|
1719
|
+
else if (ts.isElementAccessExpression(unwrappedNode.expression) &&
|
|
1720
|
+
ts.isStringLiteral(unwrappedNode.expression.argumentExpression)) {
|
|
1721
|
+
const methodName = unwrappedNode.expression.argumentExpression.text;
|
|
1722
|
+
const semanticsList = methodRegistry.getByMethodName(methodName);
|
|
1723
|
+
if (semanticsList && semanticsList.length > 0) {
|
|
1724
|
+
const semantics = semanticsList[0];
|
|
1725
|
+
// Get the source expression path
|
|
1726
|
+
const sourceExpr = unwrappedNode.expression.expression;
|
|
1727
|
+
const sourcePath = StructuredPath.fromNode(sourceExpr, context.sourceFile);
|
|
1728
|
+
if (sourcePath) {
|
|
1729
|
+
// For array-specific semantics (like push), verify the source is actually an array
|
|
1730
|
+
const isArraySemantics = semantics instanceof ArrayPushSemantics;
|
|
1731
|
+
const shouldApply = !isArraySemantics ||
|
|
1732
|
+
isLikelyArrayType(sourceExpr, context.typeChecker);
|
|
1733
|
+
if (shouldApply) {
|
|
1734
|
+
// Apply method semantics
|
|
1735
|
+
semantics.addEquivalences(callPath, sourcePath, context);
|
|
1736
|
+
returnType = semantics.getReturnType();
|
|
1737
|
+
handledBySemantics = true;
|
|
1738
|
+
}
|
|
1739
|
+
}
|
|
1740
|
+
}
|
|
1741
|
+
}
|
|
1742
|
+
// 7. Determine and Add Return Type
|
|
1743
|
+
if (returnType === 'unknown') {
|
|
1744
|
+
// If semantics didn't provide a type, try inferring
|
|
1745
|
+
returnType = context.inferTypeFromNode(node);
|
|
1746
|
+
}
|
|
1747
|
+
// Register types
|
|
1748
|
+
context.addType(callPath, 'function');
|
|
1749
|
+
context.addType(calledExprPath, 'function');
|
|
1750
|
+
// Only register the function call return value if:
|
|
1751
|
+
// - It's not void, AND
|
|
1752
|
+
// - Either the result is being used (targetPath exists) OR the return type is known (not 'unknown')
|
|
1753
|
+
if (returnType !== 'void' && (targetPath || returnType !== 'unknown')) {
|
|
1754
|
+
const returnValuePath = callPath.withProperty('functionCallReturnValue');
|
|
1755
|
+
context.addType(returnValuePath, returnType);
|
|
1756
|
+
}
|
|
1757
|
+
// 8. If targetPath is provided, establish equivalence and register type
|
|
1758
|
+
if (targetPath) {
|
|
1759
|
+
context.addEquivalence(targetPath, callPath);
|
|
1760
|
+
context.addType(targetPath, returnType);
|
|
1761
|
+
}
|
|
1762
|
+
return true;
|
|
1763
|
+
}
|
|
1764
|
+
// Handle Object Literals: { a: 1, b: x, ...spread }
|
|
1765
|
+
if (ts.isObjectLiteralExpression(unwrappedNode)) {
|
|
1766
|
+
// Create a path for the object literal itself
|
|
1767
|
+
const literalSourcePath = StructuredPath.createLiteralPath(unwrappedNode.getText(context.sourceFile), 'object');
|
|
1768
|
+
// If targetPath is provided, establish property relationships
|
|
1769
|
+
// This is the main use case we're optimizing for
|
|
1770
|
+
if (targetPath) {
|
|
1771
|
+
// Process each property and establish relationships to the targetPath
|
|
1772
|
+
for (const property of unwrappedNode.properties) {
|
|
1773
|
+
if (ts.isPropertyAssignment(property)) {
|
|
1774
|
+
// Get property name
|
|
1775
|
+
let propName;
|
|
1776
|
+
if (ts.isIdentifier(property.name)) {
|
|
1777
|
+
propName = property.name.text;
|
|
1778
|
+
}
|
|
1779
|
+
else if (ts.isStringLiteral(property.name)) {
|
|
1780
|
+
propName = property.name.text;
|
|
1781
|
+
}
|
|
1782
|
+
else if (ts.isNumericLiteral(property.name)) {
|
|
1783
|
+
propName = property.name.text;
|
|
1784
|
+
}
|
|
1785
|
+
else if (ts.isComputedPropertyName(property.name)) {
|
|
1786
|
+
// Handle computed property names: { [x]: y }
|
|
1787
|
+
processExpression({ node: property.name.expression, context });
|
|
1788
|
+
const path = StructuredPath.fromNode(property.name.expression, context.sourceFile);
|
|
1789
|
+
propName = `*${path}*`;
|
|
1790
|
+
}
|
|
1791
|
+
else {
|
|
1792
|
+
// For other property name types, use text representation
|
|
1793
|
+
propName = property.name.getText(context.sourceFile);
|
|
1794
|
+
context.markSemanticLimitation(property.name, 'Complex property name might not be accurately represented.');
|
|
1795
|
+
}
|
|
1796
|
+
// Create a path for this property within the base
|
|
1797
|
+
const propPath = targetPath.withProperty(propName);
|
|
1798
|
+
// Handle child boundaries (callback functions) in object properties
|
|
1799
|
+
// This establishes equivalency between the property path and the child scope
|
|
1800
|
+
// e.g., columns[0].renderCell → cyScope1()
|
|
1801
|
+
if (context.isChildBoundary(property.initializer)) {
|
|
1802
|
+
context.addChildBoundaryEquivalence(propPath, property.initializer);
|
|
1803
|
+
}
|
|
1804
|
+
// Process the property value with propPath as targetPath
|
|
1805
|
+
// This allows nested object literals to work correctly
|
|
1806
|
+
processExpression({
|
|
1807
|
+
node: property.initializer,
|
|
1808
|
+
context,
|
|
1809
|
+
targetPath: propPath,
|
|
1810
|
+
});
|
|
1811
|
+
}
|
|
1812
|
+
else if (ts.isShorthandPropertyAssignment(property)) {
|
|
1813
|
+
// Handle shorthand form: { x } is equivalent to { x: x }
|
|
1814
|
+
const propName = property.name.text;
|
|
1815
|
+
const propPath = targetPath.withProperty(propName);
|
|
1816
|
+
// Create a path for the identifier value
|
|
1817
|
+
const valuePath = StructuredPath.fromBase(propName);
|
|
1818
|
+
// Establish the equivalence and type
|
|
1819
|
+
context.addEquivalence(propPath, valuePath);
|
|
1820
|
+
const valueType = context.inferTypeFromNode(property.name);
|
|
1821
|
+
context.addType(propPath, valueType);
|
|
1822
|
+
context.addType(valuePath, valueType);
|
|
1823
|
+
}
|
|
1824
|
+
else if (ts.isSpreadAssignment(property)) {
|
|
1825
|
+
// Handle spread: { ...obj }
|
|
1826
|
+
// Create a path for this spread source
|
|
1827
|
+
let spreadSourcePath = null;
|
|
1828
|
+
// Handle simple identifier spread: { ...obj }
|
|
1829
|
+
if (ts.isIdentifier(property.expression)) {
|
|
1830
|
+
// Process the spread expression first
|
|
1831
|
+
processExpression({ node: property.expression, context });
|
|
1832
|
+
spreadSourcePath = StructuredPath.fromBase(property.expression.text);
|
|
1833
|
+
// Establish equivalence between the target and the spread source
|
|
1834
|
+
context.addEquivalence(targetPath, spreadSourcePath);
|
|
1835
|
+
// and we know obj is an object
|
|
1836
|
+
context.addType(spreadSourcePath, 'object');
|
|
1837
|
+
}
|
|
1838
|
+
// Handle property access spread: { ...obj.prop }
|
|
1839
|
+
else if (ts.isPropertyAccessExpression(property.expression)) {
|
|
1840
|
+
// Process the spread expression first
|
|
1841
|
+
processExpression({ node: property.expression, context });
|
|
1842
|
+
spreadSourcePath = StructuredPath.fromNode(property.expression, context.sourceFile);
|
|
1843
|
+
if (spreadSourcePath) {
|
|
1844
|
+
context.addEquivalence(targetPath, spreadSourcePath);
|
|
1845
|
+
}
|
|
1846
|
+
}
|
|
1847
|
+
// Handle object literal spread: { ...{ key: value } }
|
|
1848
|
+
// This propagates sub-properties from the spread object to the target
|
|
1849
|
+
else if (ts.isObjectLiteralExpression(property.expression)) {
|
|
1850
|
+
// Recursively process the spread object literal WITH targetPath
|
|
1851
|
+
// This ensures sub-properties like { args: x } become targetPath.args = x
|
|
1852
|
+
processExpression({
|
|
1853
|
+
node: property.expression,
|
|
1854
|
+
context,
|
|
1855
|
+
targetPath,
|
|
1856
|
+
});
|
|
1857
|
+
}
|
|
1858
|
+
// Handle conditional spread: { ...(x ? {...} : {}) }
|
|
1859
|
+
else if (ts.isParenthesizedExpression(property.expression)) {
|
|
1860
|
+
// Unwrap parentheses and process
|
|
1861
|
+
const unwrapped = property.expression.expression;
|
|
1862
|
+
// Handle conditional expression inside parens: (x ? {...} : {})
|
|
1863
|
+
if (ts.isConditionalExpression(unwrapped)) {
|
|
1864
|
+
// Process both branches - whenTrue and whenFalse
|
|
1865
|
+
// For tracing, we care about non-empty branches
|
|
1866
|
+
if (ts.isObjectLiteralExpression(unwrapped.whenTrue)) {
|
|
1867
|
+
processExpression({
|
|
1868
|
+
node: unwrapped.whenTrue,
|
|
1869
|
+
context,
|
|
1870
|
+
targetPath,
|
|
1871
|
+
});
|
|
1872
|
+
}
|
|
1873
|
+
else {
|
|
1874
|
+
processExpression({ node: unwrapped.whenTrue, context });
|
|
1875
|
+
}
|
|
1876
|
+
if (ts.isObjectLiteralExpression(unwrapped.whenFalse)) {
|
|
1877
|
+
processExpression({
|
|
1878
|
+
node: unwrapped.whenFalse,
|
|
1879
|
+
context,
|
|
1880
|
+
targetPath,
|
|
1881
|
+
});
|
|
1882
|
+
}
|
|
1883
|
+
else {
|
|
1884
|
+
processExpression({ node: unwrapped.whenFalse, context });
|
|
1885
|
+
}
|
|
1886
|
+
}
|
|
1887
|
+
else {
|
|
1888
|
+
// Other parenthesized expression - just process normally
|
|
1889
|
+
processExpression({ node: property.expression, context });
|
|
1890
|
+
}
|
|
1891
|
+
}
|
|
1892
|
+
// Handle other expression types
|
|
1893
|
+
else {
|
|
1894
|
+
// Process the spread expression
|
|
1895
|
+
processExpression({ node: property.expression, context });
|
|
1896
|
+
// For complex expressions, use their source representation
|
|
1897
|
+
spreadSourcePath = nodeToSource(property.expression, context.sourceFile);
|
|
1898
|
+
if (spreadSourcePath) {
|
|
1899
|
+
context.addEquivalence(targetPath, spreadSourcePath);
|
|
1900
|
+
}
|
|
1901
|
+
// Mark semantic limitation only for complex spread expressions
|
|
1902
|
+
context.markSemanticLimitation(property, 'Complex spread assignment - individual properties not fully mapped.');
|
|
1903
|
+
}
|
|
1904
|
+
}
|
|
1905
|
+
else if (ts.isMethodDeclaration(property) ||
|
|
1906
|
+
ts.isGetAccessorDeclaration(property) ||
|
|
1907
|
+
ts.isSetAccessorDeclaration(property)) {
|
|
1908
|
+
// For methods and accessors, just mark the property as a function
|
|
1909
|
+
if (ts.isIdentifier(property.name)) {
|
|
1910
|
+
const propName = property.name.text;
|
|
1911
|
+
const propPath = targetPath.withProperty(propName);
|
|
1912
|
+
context.addType(propPath, 'function');
|
|
1913
|
+
}
|
|
1914
|
+
context.markUnsupported(property, `processExpression: Method/Accessor in object literal not fully processed: ${ts.SyntaxKind[property.kind]}`, false);
|
|
1915
|
+
}
|
|
1916
|
+
}
|
|
1917
|
+
// Mark the targetPath as an object type
|
|
1918
|
+
context.addType(targetPath, 'object');
|
|
1919
|
+
return true;
|
|
1920
|
+
}
|
|
1921
|
+
else {
|
|
1922
|
+
// No targetPath provided - just process each property for side effects
|
|
1923
|
+
for (const property of unwrappedNode.properties) {
|
|
1924
|
+
if (ts.isPropertyAssignment(property)) {
|
|
1925
|
+
processExpression({ node: property.initializer, context });
|
|
1926
|
+
}
|
|
1927
|
+
else if (ts.isShorthandPropertyAssignment(property)) {
|
|
1928
|
+
// For shorthand, establish type for the identifier
|
|
1929
|
+
const identPath = StructuredPath.fromBase(property.name.text);
|
|
1930
|
+
const idType = context.inferTypeFromNode(property.name);
|
|
1931
|
+
context.addType(identPath, idType);
|
|
1932
|
+
}
|
|
1933
|
+
else if (ts.isSpreadAssignment(property)) {
|
|
1934
|
+
// Still process the spread expression to ensure its contents are analyzed
|
|
1935
|
+
processExpression({ node: property.expression, context });
|
|
1936
|
+
// Even without a targetPath, we can still determine the type for the spread source
|
|
1937
|
+
if (ts.isIdentifier(property.expression)) {
|
|
1938
|
+
const spreadSource = StructuredPath.fromBase(property.expression.text);
|
|
1939
|
+
context.addType(spreadSource, 'object');
|
|
1940
|
+
}
|
|
1941
|
+
else if (ts.isPropertyAccessExpression(property.expression)) {
|
|
1942
|
+
const spreadSource = StructuredPath.fromNode(property.expression, context.sourceFile);
|
|
1943
|
+
if (spreadSource) {
|
|
1944
|
+
context.addType(spreadSource, 'object');
|
|
1945
|
+
}
|
|
1946
|
+
}
|
|
1947
|
+
}
|
|
1948
|
+
else if (ts.isMethodDeclaration(property) ||
|
|
1949
|
+
ts.isGetAccessorDeclaration(property) ||
|
|
1950
|
+
ts.isSetAccessorDeclaration(property)) {
|
|
1951
|
+
context.markUnsupported(property, `processExpression: Method/Accessor in object literal not fully processed: ${ts.SyntaxKind[property.kind]}`, false);
|
|
1952
|
+
}
|
|
1953
|
+
}
|
|
1954
|
+
// If we have no targetPath but we're still analyzing an object literal,
|
|
1955
|
+
// create a type registration for the literal itself
|
|
1956
|
+
context.addType(literalSourcePath, 'object');
|
|
1957
|
+
return true;
|
|
1958
|
+
}
|
|
1959
|
+
}
|
|
1960
|
+
// Handle Array Literals: [1, x, func()]
|
|
1961
|
+
if (ts.isArrayLiteralExpression(unwrappedNode)) {
|
|
1962
|
+
// Create a path for the array literal
|
|
1963
|
+
const arrayLiteralPath = StructuredPath.createLiteralPath(unwrappedNode.getText(context.sourceFile), 'array');
|
|
1964
|
+
// Process each element recursively
|
|
1965
|
+
for (let i = 0; i < unwrappedNode.elements.length; i++) {
|
|
1966
|
+
const element = unwrappedNode.elements[i];
|
|
1967
|
+
// If targetPath is provided, create element paths
|
|
1968
|
+
if (targetPath) {
|
|
1969
|
+
// Create path for this element (e.g., targetPath[0], targetPath[1])
|
|
1970
|
+
const elementPath = targetPath.withElement(i);
|
|
1971
|
+
// Process the element with elementPath as targetPath
|
|
1972
|
+
processExpression({ node: element, context, targetPath: elementPath });
|
|
1973
|
+
}
|
|
1974
|
+
else {
|
|
1975
|
+
// No targetPath, just process for side effects
|
|
1976
|
+
processExpression({ node: element, context });
|
|
1977
|
+
}
|
|
1978
|
+
}
|
|
1979
|
+
// Register type information
|
|
1980
|
+
if (targetPath) {
|
|
1981
|
+
context.addType(targetPath, 'array');
|
|
1982
|
+
}
|
|
1983
|
+
else {
|
|
1984
|
+
context.addType(arrayLiteralPath, 'array');
|
|
1985
|
+
}
|
|
1986
|
+
return true;
|
|
1987
|
+
}
|
|
1988
|
+
// Handle Element Access: arr[0], obj[key], obj['prop']
|
|
1989
|
+
if (ts.isElementAccessExpression(unwrappedNode)) {
|
|
1990
|
+
// Process the object expression
|
|
1991
|
+
const objectProcessed = processExpression({
|
|
1992
|
+
node: unwrappedNode.expression,
|
|
1993
|
+
context,
|
|
1994
|
+
});
|
|
1995
|
+
if (!objectProcessed) {
|
|
1996
|
+
context.markUnsupported(unwrappedNode.expression, `processExpression: Unsupported base expression for element access: ${ts.SyntaxKind[unwrappedNode.expression.kind]}`, false);
|
|
1997
|
+
return false;
|
|
1998
|
+
}
|
|
1999
|
+
// Get a path for the object
|
|
2000
|
+
const objectPath = StructuredPath.fromNode(unwrappedNode.expression, context.sourceFile);
|
|
2001
|
+
if (!objectPath) {
|
|
2002
|
+
context.markUnsupported(unwrappedNode.expression, `processExpression: Couldn't get path for element access base: ${ts.SyntaxKind[unwrappedNode.expression.kind]}`, false);
|
|
2003
|
+
return false;
|
|
2004
|
+
}
|
|
2005
|
+
// Process the argument expression
|
|
2006
|
+
processExpression({ node: unwrappedNode.argumentExpression, context });
|
|
2007
|
+
// Create the element access path based on argument type
|
|
2008
|
+
let elementPath;
|
|
2009
|
+
if (ts.isNumericLiteral(unwrappedNode.argumentExpression)) {
|
|
2010
|
+
// Array index: arr[0]
|
|
2011
|
+
elementPath = objectPath.withElement(parseInt(unwrappedNode.argumentExpression.text, 10));
|
|
2012
|
+
}
|
|
2013
|
+
else if (ts.isStringLiteral(unwrappedNode.argumentExpression)) {
|
|
2014
|
+
// String key: obj['prop']
|
|
2015
|
+
elementPath = objectPath.withProperty(unwrappedNode.argumentExpression.text);
|
|
2016
|
+
}
|
|
2017
|
+
else {
|
|
2018
|
+
// Dynamic access: obj[key]
|
|
2019
|
+
// Use a representation of the argument or fallback to wildcard
|
|
2020
|
+
const argText = unwrappedNode.argumentExpression.getText(context.sourceFile);
|
|
2021
|
+
elementPath = objectPath.withElement(argText || '*');
|
|
2022
|
+
}
|
|
2023
|
+
// Infer and register type
|
|
2024
|
+
context.addType(elementPath, inferredNodeType);
|
|
2025
|
+
// If targetPath is provided, establish equivalence and register type
|
|
2026
|
+
if (targetPath) {
|
|
2027
|
+
context.addEquivalence(targetPath, elementPath);
|
|
2028
|
+
context.addType(targetPath, inferredNodeType);
|
|
2029
|
+
}
|
|
2030
|
+
return true;
|
|
2031
|
+
}
|
|
2032
|
+
// Handle Conditional Expression (Ternary): cond ? trueVal : falseVal
|
|
2033
|
+
if (ts.isConditionalExpression(unwrappedNode)) {
|
|
2034
|
+
// Mark variables in the condition as potentially undefined
|
|
2035
|
+
markConditionVariablesAsNullable(unwrappedNode.condition, context);
|
|
2036
|
+
// Extract conditional usages for key attribute detection
|
|
2037
|
+
extractConditionalUsage(unwrappedNode.condition, context, 'ternary');
|
|
2038
|
+
// Extract conditional effects (setter calls in ternary branches)
|
|
2039
|
+
const knownSetters = findUseStateSetters(context.sourceFile);
|
|
2040
|
+
const effects = extractConditionalEffectsFromTernary(unwrappedNode, context, knownSetters);
|
|
2041
|
+
for (const effect of effects) {
|
|
2042
|
+
context.addConditionalEffect(effect);
|
|
2043
|
+
}
|
|
2044
|
+
// Process all parts recursively
|
|
2045
|
+
processExpression({
|
|
2046
|
+
node: unwrappedNode.condition,
|
|
2047
|
+
context,
|
|
2048
|
+
typeHint: 'boolean | unknown',
|
|
2049
|
+
}); //TODO: could we capture that this is evidence of a boolean type?
|
|
2050
|
+
// Process both branches WITH targetPath to establish equivalencies
|
|
2051
|
+
// This is critical for tracing nested properties through ternary assignments
|
|
2052
|
+
// e.g., const items = condition ? arr1 : arr2; items.map(i => i.prop)
|
|
2053
|
+
// We need items to be equivalent to both arr1 AND arr2 for proper tracing
|
|
2054
|
+
processExpression({ node: unwrappedNode.whenTrue, context, targetPath });
|
|
2055
|
+
processExpression({ node: unwrappedNode.whenFalse, context, targetPath });
|
|
2056
|
+
// Create a path for the whole expression
|
|
2057
|
+
const expressionSourcePath = nodeToSource(unwrappedNode, context.sourceFile);
|
|
2058
|
+
// Infer type based on branches
|
|
2059
|
+
const trueType = context.inferTypeFromNode(unwrappedNode.whenTrue);
|
|
2060
|
+
const falseType = context.inferTypeFromNode(unwrappedNode.whenFalse);
|
|
2061
|
+
// Determine the result type
|
|
2062
|
+
let resultType = leftOrRightType(falseType, trueType);
|
|
2063
|
+
if (!resultType) {
|
|
2064
|
+
// If we can't determine a specific type, use unknown without marking as semantic limitation
|
|
2065
|
+
// This prevents conditional expressions from marking the analysis as incomplete
|
|
2066
|
+
resultType = 'unknown';
|
|
2067
|
+
}
|
|
2068
|
+
// Register type for the expression
|
|
2069
|
+
context.addType(expressionSourcePath, resultType);
|
|
2070
|
+
// If targetPath is provided, only register type (don't overwrite branch equivalencies)
|
|
2071
|
+
// The equivalencies to individual branches (set above) are more useful for tracing
|
|
2072
|
+
// than an equivalency to the entire ternary expression text
|
|
2073
|
+
if (targetPath) {
|
|
2074
|
+
// NOTE: We intentionally do NOT add equivalence here.
|
|
2075
|
+
// The branch processing above already added equivalencies:
|
|
2076
|
+
// targetPath -> whenTrue branch
|
|
2077
|
+
// targetPath -> whenFalse branch
|
|
2078
|
+
// Adding an equivalence to expressionSourcePath would overwrite those
|
|
2079
|
+
// with a useless equivalence to the ternary text itself.
|
|
2080
|
+
//
|
|
2081
|
+
// Use updateSchemaType instead of addType because:
|
|
2082
|
+
// 1. Branch processing may have already set a type on targetPath
|
|
2083
|
+
// 2. addType has a guard that prevents overwriting specific types with 'unknown'
|
|
2084
|
+
// 3. updateSchemaType bypasses this guard, ensuring the ternary's computed type is used
|
|
2085
|
+
context.updateSchemaType(targetPath, resultType);
|
|
2086
|
+
}
|
|
2087
|
+
return true;
|
|
2088
|
+
}
|
|
2089
|
+
// Handle New Expression: new Date(), new MyClass()
|
|
2090
|
+
if (ts.isNewExpression(unwrappedNode)) {
|
|
2091
|
+
// Process the constructor expression
|
|
2092
|
+
const constructorProcessed = processExpression({
|
|
2093
|
+
node: unwrappedNode.expression,
|
|
2094
|
+
context,
|
|
2095
|
+
});
|
|
2096
|
+
if (!constructorProcessed) {
|
|
2097
|
+
context.markUnsupported(unwrappedNode.expression, `processExpression: Unsupported constructor expression: ${ts.SyntaxKind[unwrappedNode.expression.kind]}`, false);
|
|
2098
|
+
return false;
|
|
2099
|
+
}
|
|
2100
|
+
// Get a path for the constructor
|
|
2101
|
+
const constructorPath = StructuredPath.fromNode(unwrappedNode.expression, context.sourceFile);
|
|
2102
|
+
if (!constructorPath) {
|
|
2103
|
+
return false;
|
|
2104
|
+
}
|
|
2105
|
+
// Process any arguments
|
|
2106
|
+
if (unwrappedNode.arguments) {
|
|
2107
|
+
for (const arg of unwrappedNode.arguments) {
|
|
2108
|
+
processExpression({ node: arg, context });
|
|
2109
|
+
}
|
|
2110
|
+
}
|
|
2111
|
+
// Create argument paths for the function call
|
|
2112
|
+
const validArgPaths = unwrappedNode.arguments
|
|
2113
|
+
? unwrappedNode.arguments.map((arg) => StructuredPath.fromNode(arg, context.sourceFile) ??
|
|
2114
|
+
nodeToSource(arg, context.sourceFile) ??
|
|
2115
|
+
StructuredPath.literal('unknown'))
|
|
2116
|
+
: [];
|
|
2117
|
+
// Construct a path for the new expression
|
|
2118
|
+
const newCallPath = constructorPath.withFunctionCall(validArgPaths);
|
|
2119
|
+
// Infer result type
|
|
2120
|
+
let resultType = 'object';
|
|
2121
|
+
if (ts.isIdentifier(unwrappedNode.expression)) {
|
|
2122
|
+
const constructorName = unwrappedNode.expression.text;
|
|
2123
|
+
if (['String', 'Number', 'Boolean', 'Array', 'Date'].includes(constructorName)) {
|
|
2124
|
+
resultType = constructorName.toLowerCase();
|
|
2125
|
+
}
|
|
2126
|
+
}
|
|
2127
|
+
else {
|
|
2128
|
+
resultType = inferredNodeType;
|
|
2129
|
+
}
|
|
2130
|
+
// Register types
|
|
2131
|
+
context.addType(newCallPath, resultType);
|
|
2132
|
+
context.addType(constructorPath, 'function');
|
|
2133
|
+
// If targetPath is provided, establish equivalence and register type
|
|
2134
|
+
if (targetPath) {
|
|
2135
|
+
context.addEquivalence(targetPath, newCallPath);
|
|
2136
|
+
context.addType(targetPath, resultType);
|
|
2137
|
+
}
|
|
2138
|
+
return true;
|
|
2139
|
+
}
|
|
2140
|
+
// Handle Arrow Functions: (p) => p.prop, (a, b) => { ... }
|
|
2141
|
+
if (ts.isArrowFunction(unwrappedNode)) {
|
|
2142
|
+
// If this arrow function is a child boundary (e.g., a .map() callback),
|
|
2143
|
+
// don't process its parameters here - they will be processed when the
|
|
2144
|
+
// child scope is analyzed separately. This prevents parameter variables
|
|
2145
|
+
// from leaking into the parent scope's equivalencies.
|
|
2146
|
+
// Check if this arrow function is a child boundary (i.e., should be processed
|
|
2147
|
+
// as a separate child scope, not here in the parent scope).
|
|
2148
|
+
//
|
|
2149
|
+
// We use two checks because childBoundary positions can be unreliable:
|
|
2150
|
+
// 1. Position-based check (standard isChildBoundary)
|
|
2151
|
+
// 2. Text-based check: if the arrow function text doesn't appear in the
|
|
2152
|
+
// statement text, it was replaced with a cyScope placeholder
|
|
2153
|
+
const isChildBoundary = context.isChildBoundary(unwrappedNode);
|
|
2154
|
+
// Text-based child scope detection for when positions are unreliable
|
|
2155
|
+
const arrowFnText = unwrappedNode.getText(context.sourceFile);
|
|
2156
|
+
const firstLine = arrowFnText.split('\n')[0].trim();
|
|
2157
|
+
const searchText = firstLine.substring(0, Math.min(20, firstLine.length));
|
|
2158
|
+
const isInStatementText = context.statementInfo.text.includes(searchText);
|
|
2159
|
+
const isChildScope = !isInStatementText && arrowFnText.length > 10;
|
|
2160
|
+
if (isChildBoundary || isChildScope) {
|
|
2161
|
+
// The method semantics (e.g., ArrayMapSemantics) have already established
|
|
2162
|
+
// the necessary equivalences between the child scope placeholder and array elements
|
|
2163
|
+
if (targetPath) {
|
|
2164
|
+
context.addType(targetPath, 'function');
|
|
2165
|
+
}
|
|
2166
|
+
return true;
|
|
2167
|
+
}
|
|
2168
|
+
// Create a path for the function
|
|
2169
|
+
const functionPath = StructuredPath.empty();
|
|
2170
|
+
// Process parameters
|
|
2171
|
+
unwrappedNode.parameters.forEach((param, index) => {
|
|
2172
|
+
const signaturePath = functionPath.withParameter(index);
|
|
2173
|
+
if (ts.isIdentifier(param.name)) {
|
|
2174
|
+
const paramNamePath = StructuredPath.fromBase(param.name.text);
|
|
2175
|
+
// Establish equivalence between parameter name and signature path
|
|
2176
|
+
context.addEquivalence(paramNamePath, signaturePath);
|
|
2177
|
+
// Register types
|
|
2178
|
+
const paramType = context.inferTypeFromNode(param) || 'unknown';
|
|
2179
|
+
context.addType(paramNamePath, paramType);
|
|
2180
|
+
context.addType(signaturePath, paramType);
|
|
2181
|
+
}
|
|
2182
|
+
else if (ts.isObjectBindingPattern(param.name) ||
|
|
2183
|
+
ts.isArrayBindingPattern(param.name)) {
|
|
2184
|
+
const success = processBindingPattern(param.name, signaturePath, context);
|
|
2185
|
+
if (!success) {
|
|
2186
|
+
context.markUnsupported(param, `processExpression: Failed to process binding pattern: ${ts.SyntaxKind[param.kind]}`, false);
|
|
2187
|
+
}
|
|
2188
|
+
}
|
|
2189
|
+
else {
|
|
2190
|
+
context.markUnsupported(param, `processExpression: Unsupported parameter kind in ArrowFunction: ${ts.SyntaxKind[param.kind]}`, false);
|
|
2191
|
+
}
|
|
2192
|
+
});
|
|
2193
|
+
// Process function body
|
|
2194
|
+
const body = unwrappedNode.body;
|
|
2195
|
+
if (ts.isBlock(body)) {
|
|
2196
|
+
// For block bodies, process the statements inside
|
|
2197
|
+
context.processNode(body);
|
|
2198
|
+
}
|
|
2199
|
+
else {
|
|
2200
|
+
// For expression bodies, process as implicit return
|
|
2201
|
+
const returnPath = functionPath.withProperty('returnValue');
|
|
2202
|
+
processExpression({ node: body, context, targetPath: returnPath });
|
|
2203
|
+
}
|
|
2204
|
+
// If targetPath is provided, establish equivalence
|
|
2205
|
+
if (targetPath) {
|
|
2206
|
+
context.addEquivalence(targetPath, functionPath);
|
|
2207
|
+
context.addType(targetPath, 'function');
|
|
2208
|
+
}
|
|
2209
|
+
return true;
|
|
2210
|
+
}
|
|
2211
|
+
// Handle Tagged Template Expressions: sql`SELECT * FROM ${table}`
|
|
2212
|
+
if (ts.isTaggedTemplateExpression(unwrappedNode)) {
|
|
2213
|
+
// Process the tag expression (e.g., 'sql', 'css', 'gql')
|
|
2214
|
+
const tagProcessed = processExpression({
|
|
2215
|
+
node: unwrappedNode.tag,
|
|
2216
|
+
context,
|
|
2217
|
+
});
|
|
2218
|
+
if (!tagProcessed) {
|
|
2219
|
+
context.markUnsupported(unwrappedNode.tag, `processExpression: Unsupported tag expression in tagged template: ${ts.SyntaxKind[unwrappedNode.tag.kind]}`, false);
|
|
2220
|
+
return false;
|
|
2221
|
+
}
|
|
2222
|
+
// Get a path for the tag
|
|
2223
|
+
const tagPath = StructuredPath.fromNode(unwrappedNode.tag, context.sourceFile);
|
|
2224
|
+
if (tagPath) {
|
|
2225
|
+
// Mark the tag as a function
|
|
2226
|
+
context.addType(tagPath, 'function');
|
|
2227
|
+
}
|
|
2228
|
+
// Process the template part (reusing existing template processing logic)
|
|
2229
|
+
const template = unwrappedNode.template;
|
|
2230
|
+
let allSpansProcessed = true;
|
|
2231
|
+
if (ts.isTemplateExpression(template)) {
|
|
2232
|
+
// Process all template spans (interpolations)
|
|
2233
|
+
for (const span of template.templateSpans) {
|
|
2234
|
+
if (context.isChildBoundary(span.expression)) {
|
|
2235
|
+
continue;
|
|
2236
|
+
}
|
|
2237
|
+
const spanProcessed = processExpression({
|
|
2238
|
+
node: span.expression,
|
|
2239
|
+
context,
|
|
2240
|
+
targetPath: StructuredPath.empty(),
|
|
2241
|
+
});
|
|
2242
|
+
allSpansProcessed = allSpansProcessed && spanProcessed;
|
|
2243
|
+
}
|
|
2244
|
+
}
|
|
2245
|
+
// If it's NoSubstitutionTemplateLiteral, nothing more to process
|
|
2246
|
+
// Create a path for the entire tagged template expression
|
|
2247
|
+
const taggedTemplatePath = StructuredPath.fromNode(unwrappedNode, context.sourceFile);
|
|
2248
|
+
// The return type of a tagged template is unknown (depends on the tag function)
|
|
2249
|
+
context.addType(taggedTemplatePath, 'unknown');
|
|
2250
|
+
// If targetPath is provided, establish equivalence
|
|
2251
|
+
if (targetPath) {
|
|
2252
|
+
context.addEquivalence(targetPath, taggedTemplatePath);
|
|
2253
|
+
context.addType(targetPath, 'unknown');
|
|
2254
|
+
}
|
|
2255
|
+
// If we didn't fully handle all spans, mark as semantic limitation
|
|
2256
|
+
if (!allSpansProcessed && ts.isTemplateExpression(template)) {
|
|
2257
|
+
context.markSemanticLimitation(unwrappedNode, 'Tagged template contains complex expressions that may not be fully analyzed');
|
|
2258
|
+
}
|
|
2259
|
+
return true;
|
|
2260
|
+
}
|
|
2261
|
+
// Handle Template Literals: `Hello ${name}` or `Simple`
|
|
2262
|
+
if (ts.isTemplateExpression(unwrappedNode) ||
|
|
2263
|
+
ts.isNoSubstitutionTemplateLiteral(unwrappedNode)) {
|
|
2264
|
+
// Create a path for the template literal
|
|
2265
|
+
const templatePath = StructuredPath.createLiteralPath(unwrappedNode.getText(context.sourceFile), 'string');
|
|
2266
|
+
// Track if we can fully handle all expressions in the template
|
|
2267
|
+
let allSpansProcessed = true;
|
|
2268
|
+
// Process template spans if any by recursing back into processExpression
|
|
2269
|
+
if (ts.isTemplateExpression(unwrappedNode)) {
|
|
2270
|
+
for (const span of unwrappedNode.templateSpans) {
|
|
2271
|
+
if (context.isChildBoundary(span.expression)) {
|
|
2272
|
+
continue;
|
|
2273
|
+
}
|
|
2274
|
+
// Process each span with StructuredPath.empty() as targetPath
|
|
2275
|
+
// This ensures types and equivalences are established without imposing
|
|
2276
|
+
// a prefix that wouldn't make sense in a template context
|
|
2277
|
+
const spanProcessed = processExpression({
|
|
2278
|
+
node: span.expression,
|
|
2279
|
+
context,
|
|
2280
|
+
targetPath: StructuredPath.empty(), // Use empty path to trigger equivalence and type registration
|
|
2281
|
+
});
|
|
2282
|
+
allSpansProcessed = allSpansProcessed && spanProcessed;
|
|
2283
|
+
}
|
|
2284
|
+
}
|
|
2285
|
+
// Template expressions are always strings
|
|
2286
|
+
context.addType(templatePath, 'string');
|
|
2287
|
+
// Register the type with targetPath if provided
|
|
2288
|
+
if (targetPath) {
|
|
2289
|
+
context.addEquivalence(targetPath, templatePath);
|
|
2290
|
+
context.addType(targetPath, 'string');
|
|
2291
|
+
}
|
|
2292
|
+
// If we didn't fully handle all spans, still return true but with limitations noted
|
|
2293
|
+
if (!allSpansProcessed && ts.isTemplateExpression(unwrappedNode)) {
|
|
2294
|
+
context.markSemanticLimitation(unwrappedNode, 'Template literal contains complex expressions that may not be fully analyzed');
|
|
2295
|
+
}
|
|
2296
|
+
return true;
|
|
2297
|
+
}
|
|
2298
|
+
// Handle TypeOf Expression: typeof x
|
|
2299
|
+
if (ts.isTypeOfExpression(unwrappedNode)) {
|
|
2300
|
+
// Process the inner expression
|
|
2301
|
+
processExpression({ node: unwrappedNode.expression, context });
|
|
2302
|
+
// Create a path for the typeof expression
|
|
2303
|
+
const typeofPath = StructuredPath.createLiteralPath(unwrappedNode.getText(context.sourceFile), 'string');
|
|
2304
|
+
// Register the type (always string)
|
|
2305
|
+
if (targetPath) {
|
|
2306
|
+
context.addEquivalence(targetPath, typeofPath);
|
|
2307
|
+
context.addType(targetPath, 'string');
|
|
2308
|
+
}
|
|
2309
|
+
return true;
|
|
2310
|
+
}
|
|
2311
|
+
// Handle Void Expression: void x, void 0, void func()
|
|
2312
|
+
if (ts.isVoidExpression(unwrappedNode)) {
|
|
2313
|
+
// Process the inner expression for side effects
|
|
2314
|
+
processExpression({ node: unwrappedNode.expression, context });
|
|
2315
|
+
// void always returns undefined
|
|
2316
|
+
if (targetPath) {
|
|
2317
|
+
const voidPath = StructuredPath.createLiteralPath('undefined', 'undefined');
|
|
2318
|
+
context.addEquivalence(targetPath, voidPath);
|
|
2319
|
+
context.addType(targetPath, 'undefined');
|
|
2320
|
+
}
|
|
2321
|
+
return true;
|
|
2322
|
+
}
|
|
2323
|
+
// Handle Prefix Unary Expressions: ++x, --y, !z, -a
|
|
2324
|
+
if (ts.isPrefixUnaryExpression(unwrappedNode)) {
|
|
2325
|
+
// Process the operand
|
|
2326
|
+
const operandProcessed = processExpression({
|
|
2327
|
+
node: unwrappedNode.operand,
|
|
2328
|
+
context,
|
|
2329
|
+
});
|
|
2330
|
+
if (!operandProcessed) {
|
|
2331
|
+
context.markUnsupported(unwrappedNode.operand, `processExpression: Could not process operand of PrefixUnaryExpression: ${ts.SyntaxKind[unwrappedNode.operand.kind]}`, false);
|
|
2332
|
+
return false;
|
|
2333
|
+
}
|
|
2334
|
+
// Get a path for the operand
|
|
2335
|
+
const operandPath = StructuredPath.fromNode(unwrappedNode.operand, context.sourceFile);
|
|
2336
|
+
if (!operandPath) {
|
|
2337
|
+
return false;
|
|
2338
|
+
}
|
|
2339
|
+
// Determine the result type based on operator
|
|
2340
|
+
const operatorKind = unwrappedNode.operator;
|
|
2341
|
+
let resultType = 'unknown';
|
|
2342
|
+
if (operatorKind === ts.SyntaxKind.PlusPlusToken ||
|
|
2343
|
+
operatorKind === ts.SyntaxKind.MinusMinusToken) {
|
|
2344
|
+
resultType = 'number';
|
|
2345
|
+
}
|
|
2346
|
+
else if (operatorKind === ts.SyntaxKind.ExclamationToken) {
|
|
2347
|
+
resultType = 'boolean | unknown';
|
|
2348
|
+
}
|
|
2349
|
+
else if (operatorKind === ts.SyntaxKind.MinusToken ||
|
|
2350
|
+
operatorKind === ts.SyntaxKind.PlusToken ||
|
|
2351
|
+
operatorKind === ts.SyntaxKind.TildeToken) {
|
|
2352
|
+
resultType = 'number';
|
|
2353
|
+
}
|
|
2354
|
+
else {
|
|
2355
|
+
context.markUnsupported(unwrappedNode, `processExpression: Unsupported prefix unary operator: ${ts.SyntaxKind[operatorKind]}`, false);
|
|
2356
|
+
}
|
|
2357
|
+
// Register the operand's type (which is also the result)
|
|
2358
|
+
context.addType(operandPath, resultType);
|
|
2359
|
+
// If targetPath is provided, establish equivalence and register type
|
|
2360
|
+
if (targetPath) {
|
|
2361
|
+
context.addEquivalence(targetPath, operandPath);
|
|
2362
|
+
context.addType(targetPath, resultType);
|
|
2363
|
+
}
|
|
2364
|
+
return true;
|
|
2365
|
+
}
|
|
2366
|
+
// Handle Postfix Unary Expressions: x++, y--, etc.
|
|
2367
|
+
if (ts.isPostfixUnaryExpression(unwrappedNode)) {
|
|
2368
|
+
// Process the operand
|
|
2369
|
+
const operandProcessed = processExpression({
|
|
2370
|
+
node: unwrappedNode.operand,
|
|
2371
|
+
context,
|
|
2372
|
+
});
|
|
2373
|
+
if (!operandProcessed) {
|
|
2374
|
+
context.markUnsupported(unwrappedNode.operand, `processExpression: Could not process operand of PostfixUnaryExpression: ${ts.SyntaxKind[unwrappedNode.operand.kind]}`, false);
|
|
2375
|
+
return false;
|
|
2376
|
+
}
|
|
2377
|
+
// Get a path for the operand
|
|
2378
|
+
const operandPath = StructuredPath.fromNode(unwrappedNode.operand, context.sourceFile);
|
|
2379
|
+
if (!operandPath) {
|
|
2380
|
+
return false;
|
|
2381
|
+
}
|
|
2382
|
+
// Determine the result type based on operator
|
|
2383
|
+
const operatorKind = unwrappedNode.operator;
|
|
2384
|
+
let resultType = 'unknown';
|
|
2385
|
+
// Currently postfix expressions only support ++ and -- operators
|
|
2386
|
+
if (operatorKind === ts.SyntaxKind.PlusPlusToken ||
|
|
2387
|
+
operatorKind === ts.SyntaxKind.MinusMinusToken) {
|
|
2388
|
+
resultType = 'number';
|
|
2389
|
+
// Register the operand as a number
|
|
2390
|
+
context.addType(operandPath, resultType);
|
|
2391
|
+
// If it's a property access like user.age, add type for parent object
|
|
2392
|
+
if (ts.isPropertyAccessExpression(unwrappedNode.operand)) {
|
|
2393
|
+
const objectPath = StructuredPath.fromNode(unwrappedNode.operand.expression, context.sourceFile);
|
|
2394
|
+
if (objectPath) {
|
|
2395
|
+
context.addType(objectPath, 'object');
|
|
2396
|
+
}
|
|
2397
|
+
}
|
|
2398
|
+
}
|
|
2399
|
+
else {
|
|
2400
|
+
// Should never reach here (postfix only has ++ and --) but handle just in case
|
|
2401
|
+
context.markUnsupported(unwrappedNode, `processExpression: Unsupported postfix unary operator: ${ts.SyntaxKind[operatorKind]}`, false);
|
|
2402
|
+
return false;
|
|
2403
|
+
}
|
|
2404
|
+
// If targetPath is provided, establish equivalence and register type
|
|
2405
|
+
if (targetPath) {
|
|
2406
|
+
context.addEquivalence(targetPath, operandPath);
|
|
2407
|
+
context.addType(targetPath, resultType);
|
|
2408
|
+
}
|
|
2409
|
+
return true;
|
|
2410
|
+
}
|
|
2411
|
+
// Handle JSX Elements (both normal and self-closing)
|
|
2412
|
+
if (ts.isJsxElement(unwrappedNode) ||
|
|
2413
|
+
ts.isJsxSelfClosingElement(unwrappedNode)) {
|
|
2414
|
+
let openingElement;
|
|
2415
|
+
if (ts.isJsxElement(unwrappedNode)) {
|
|
2416
|
+
openingElement = unwrappedNode.openingElement;
|
|
2417
|
+
}
|
|
2418
|
+
else {
|
|
2419
|
+
openingElement = unwrappedNode;
|
|
2420
|
+
}
|
|
2421
|
+
// Extract the component/tag name
|
|
2422
|
+
const tagName = getJsxTagName(openingElement.tagName, context);
|
|
2423
|
+
if (!tagName) {
|
|
2424
|
+
context.markUnsupported(unwrappedNode, 'Unable to determine JSX element name', false);
|
|
2425
|
+
return false;
|
|
2426
|
+
}
|
|
2427
|
+
// Create a path for the component as a function call
|
|
2428
|
+
const componentPath = StructuredPath.fromFunction(tagName);
|
|
2429
|
+
// Process each attribute
|
|
2430
|
+
let allAttributesHandled = true;
|
|
2431
|
+
for (const attr of openingElement.attributes.properties) {
|
|
2432
|
+
if (ts.isJsxAttribute(attr)) {
|
|
2433
|
+
// Process JSX attribute with component path as context
|
|
2434
|
+
const attrHandled = processJsxAttribute(attr, context, componentPath, targetPath);
|
|
2435
|
+
allAttributesHandled = allAttributesHandled && attrHandled;
|
|
2436
|
+
}
|
|
2437
|
+
else if (ts.isJsxSpreadAttribute(attr)) {
|
|
2438
|
+
// Process JSX spread attribute (e.g., <Comp {...props} />)
|
|
2439
|
+
if (attr.expression) {
|
|
2440
|
+
// Process the spread expression
|
|
2441
|
+
const parameterPath = componentPath.withParameter(0);
|
|
2442
|
+
const spreadProcessed = processExpression({
|
|
2443
|
+
node: attr.expression,
|
|
2444
|
+
context,
|
|
2445
|
+
targetPath: parameterPath,
|
|
2446
|
+
});
|
|
2447
|
+
if (!spreadProcessed) {
|
|
2448
|
+
context.markUnsupported(attr.expression, `processExpression: Unsupported spread expression: ${ts.SyntaxKind[attr.expression.kind]}`, false);
|
|
2449
|
+
}
|
|
2450
|
+
allAttributesHandled = allAttributesHandled && spreadProcessed;
|
|
2451
|
+
}
|
|
2452
|
+
}
|
|
2453
|
+
}
|
|
2454
|
+
// Process children for JSX elements (not self-closing)
|
|
2455
|
+
if (ts.isJsxElement(unwrappedNode)) {
|
|
2456
|
+
for (const child of unwrappedNode.children) {
|
|
2457
|
+
// Process expressions in JSX children: <div>{expr}</div>
|
|
2458
|
+
if (ts.isJsxExpression(child) && child.expression) {
|
|
2459
|
+
// Process the expression with StructuredPath.empty() as targetPath
|
|
2460
|
+
// to trigger type registration without imposing prefix
|
|
2461
|
+
processExpression({
|
|
2462
|
+
node: child.expression,
|
|
2463
|
+
context,
|
|
2464
|
+
targetPath: StructuredPath.empty(),
|
|
2465
|
+
});
|
|
2466
|
+
}
|
|
2467
|
+
// Process nested JSX elements recursively
|
|
2468
|
+
else if (ts.isJsxElement(child) || ts.isJsxSelfClosingElement(child)) {
|
|
2469
|
+
processExpression({ node: child, context });
|
|
2470
|
+
}
|
|
2471
|
+
}
|
|
2472
|
+
}
|
|
2473
|
+
// Register component as 'jsx-component' type to distinguish from regular function calls
|
|
2474
|
+
// This allows downstream code to identify JSX components and not treat them as method chains
|
|
2475
|
+
context.addType(componentPath, 'jsx-component');
|
|
2476
|
+
// If targetPath is provided (e.g., in variable assignment), establish equivalence to hardcoded "JSX"
|
|
2477
|
+
if (targetPath) {
|
|
2478
|
+
context.addEquivalence(targetPath, StructuredPath.literal('JSX'));
|
|
2479
|
+
// Don't register a type for targetPath
|
|
2480
|
+
}
|
|
2481
|
+
return allAttributesHandled;
|
|
2482
|
+
}
|
|
2483
|
+
// Handle JSX Fragments (<>...</>)
|
|
2484
|
+
if (ts.isJsxFragment(unwrappedNode)) {
|
|
2485
|
+
// Process children
|
|
2486
|
+
for (const child of unwrappedNode.children) {
|
|
2487
|
+
// Process expressions in JSX children: <>{expr}</>
|
|
2488
|
+
if (ts.isJsxExpression(child) && child.expression) {
|
|
2489
|
+
// Process the expression to extract structure
|
|
2490
|
+
processExpression({
|
|
2491
|
+
node: child.expression,
|
|
2492
|
+
context,
|
|
2493
|
+
targetPath: StructuredPath.empty(),
|
|
2494
|
+
});
|
|
2495
|
+
}
|
|
2496
|
+
// Process nested JSX elements recursively
|
|
2497
|
+
else if (ts.isJsxElement(child) || ts.isJsxSelfClosingElement(child)) {
|
|
2498
|
+
processExpression({ node: child, context });
|
|
2499
|
+
}
|
|
2500
|
+
// Process nested fragments recursively
|
|
2501
|
+
else if (ts.isJsxFragment(child)) {
|
|
2502
|
+
processExpression({ node: child, context });
|
|
2503
|
+
}
|
|
2504
|
+
// Process JsxText (for completeness)
|
|
2505
|
+
else if (ts.isJsxText(child)) {
|
|
2506
|
+
// JsxText nodes are just string literals, no additional processing needed
|
|
2507
|
+
// But we record them for completeness
|
|
2508
|
+
}
|
|
2509
|
+
}
|
|
2510
|
+
// If targetPath is provided, establish equivalence to hardcoded "JSX"
|
|
2511
|
+
if (targetPath) {
|
|
2512
|
+
context.addEquivalence(targetPath, StructuredPath.literal('JSX'));
|
|
2513
|
+
// Don't register a type for targetPath
|
|
2514
|
+
}
|
|
2515
|
+
return true;
|
|
2516
|
+
}
|
|
2517
|
+
if (ts.isJsxOpeningElement(unwrappedNode) ||
|
|
2518
|
+
ts.isJsxOpeningFragment(unwrappedNode)) {
|
|
2519
|
+
if (unwrappedNode.parent) {
|
|
2520
|
+
return processExpression({
|
|
2521
|
+
node: unwrappedNode.parent,
|
|
2522
|
+
context,
|
|
2523
|
+
targetPath,
|
|
2524
|
+
});
|
|
2525
|
+
}
|
|
2526
|
+
// Fallback: shouldn't normally happen, but handle gracefully
|
|
2527
|
+
return true;
|
|
2528
|
+
}
|
|
2529
|
+
if (ts.isJsxClosingElement(unwrappedNode) ||
|
|
2530
|
+
ts.isJsxClosingFragment(unwrappedNode)) {
|
|
2531
|
+
// Closing elements/fragments don't carry additional information
|
|
2532
|
+
return true;
|
|
2533
|
+
}
|
|
2534
|
+
// Handle standalone JsxExpression (e.g., {expr} in JSX context)
|
|
2535
|
+
if (ts.isJsxExpression(unwrappedNode)) {
|
|
2536
|
+
if (unwrappedNode.expression) {
|
|
2537
|
+
// Process the inner expression
|
|
2538
|
+
return processExpression({
|
|
2539
|
+
node: unwrappedNode.expression,
|
|
2540
|
+
context,
|
|
2541
|
+
targetPath,
|
|
2542
|
+
});
|
|
2543
|
+
}
|
|
2544
|
+
// If there's no expression, we can just return true
|
|
2545
|
+
return true;
|
|
2546
|
+
}
|
|
2547
|
+
// Handle JsxText (text content inside JSX elements)
|
|
2548
|
+
if (ts.isJsxText(unwrappedNode)) {
|
|
2549
|
+
// JsxText is just string content in JSX, typically doesn't need
|
|
2550
|
+
// complex analysis, but we mark it as handled
|
|
2551
|
+
// If the text is non-whitespace and targetPath is provided,
|
|
2552
|
+
// we could establish a string literal equivalence
|
|
2553
|
+
const text = unwrappedNode.getText(context.sourceFile).trim();
|
|
2554
|
+
if (text && targetPath) {
|
|
2555
|
+
const literalPath = StructuredPath.createLiteralPath(`"${text}"`, 'string');
|
|
2556
|
+
context.addEquivalence(targetPath, literalPath);
|
|
2557
|
+
context.addType(targetPath, 'string');
|
|
2558
|
+
}
|
|
2559
|
+
return true;
|
|
2560
|
+
}
|
|
2561
|
+
// Handle Spread Element: ...obj, ...arr
|
|
2562
|
+
if (ts.isSpreadElement(unwrappedNode)) {
|
|
2563
|
+
// Process the expression being spread
|
|
2564
|
+
const spreadExprProcessed = processExpression({
|
|
2565
|
+
node: unwrappedNode.expression,
|
|
2566
|
+
context,
|
|
2567
|
+
});
|
|
2568
|
+
if (!spreadExprProcessed) {
|
|
2569
|
+
context.markUnsupported(unwrappedNode.expression, `processExpression: Unsupported expression in spread element: ${ts.SyntaxKind[unwrappedNode.expression.kind]}`, false);
|
|
2570
|
+
return false;
|
|
2571
|
+
}
|
|
2572
|
+
// Get a path for the spread expression
|
|
2573
|
+
const spreadExprPath = StructuredPath.fromNode(unwrappedNode.expression, context.sourceFile);
|
|
2574
|
+
if (!spreadExprPath) {
|
|
2575
|
+
context.markUnsupported(unwrappedNode.expression, `processExpression: Couldn't get path for spread element expression`, false);
|
|
2576
|
+
return false;
|
|
2577
|
+
}
|
|
2578
|
+
// Create a path for the spread element itself
|
|
2579
|
+
const spreadPath = StructuredPath.fromBase(`...${unwrappedNode.expression.getText(context.sourceFile)}`);
|
|
2580
|
+
// If targetPath is provided, establish equivalence
|
|
2581
|
+
if (targetPath) {
|
|
2582
|
+
context.addEquivalence(targetPath, spreadPath);
|
|
2583
|
+
// We don't know the exact type of the spread result as it depends on context
|
|
2584
|
+
// (object spread vs array spread), so we use the same type as the expression
|
|
2585
|
+
const spreadType = context.getTypeInfo(spreadExprPath) || 'unknown';
|
|
2586
|
+
context.addType(targetPath, spreadType);
|
|
2587
|
+
}
|
|
2588
|
+
return true;
|
|
2589
|
+
}
|
|
2590
|
+
if (ts.isDeleteExpression(unwrappedNode)) {
|
|
2591
|
+
// first just process whatever is being deleted
|
|
2592
|
+
const result = processExpression({
|
|
2593
|
+
node: unwrappedNode.expression,
|
|
2594
|
+
context,
|
|
2595
|
+
});
|
|
2596
|
+
if (!result) {
|
|
2597
|
+
context.markUnsupported(unwrappedNode.expression, `processExpression: Unsupported expression in delete: ${ts.SyntaxKind[unwrappedNode.expression.kind]}`, false);
|
|
2598
|
+
return false;
|
|
2599
|
+
}
|
|
2600
|
+
nodePath = StructuredPath.fromNode(unwrappedNode, context.sourceFile);
|
|
2601
|
+
// 'delete' is boolean typed
|
|
2602
|
+
context.addType(nodePath, 'boolean');
|
|
2603
|
+
if (targetPath) {
|
|
2604
|
+
context.addEquivalence(targetPath, nodePath);
|
|
2605
|
+
context.addType(targetPath, 'boolean');
|
|
2606
|
+
}
|
|
2607
|
+
return result;
|
|
2608
|
+
}
|
|
2609
|
+
// Handle yield expressions in generator functions
|
|
2610
|
+
if (ts.isYieldExpression(unwrappedNode)) {
|
|
2611
|
+
// yield returns whatever is yielded, or undefined if no expression
|
|
2612
|
+
if (unwrappedNode.expression) {
|
|
2613
|
+
// Process the yielded expression
|
|
2614
|
+
const result = processExpression({
|
|
2615
|
+
node: unwrappedNode.expression,
|
|
2616
|
+
context,
|
|
2617
|
+
targetPath,
|
|
2618
|
+
});
|
|
2619
|
+
return result;
|
|
2620
|
+
}
|
|
2621
|
+
// yield with no expression returns undefined
|
|
2622
|
+
if (targetPath) {
|
|
2623
|
+
context.addType(targetPath, 'undefined');
|
|
2624
|
+
}
|
|
2625
|
+
return true;
|
|
2626
|
+
}
|
|
2627
|
+
if (ts.isRegularExpressionLiteral(unwrappedNode)) {
|
|
2628
|
+
// Regular expressions are treated as string literals
|
|
2629
|
+
const regexPath = StructuredPath.createLiteralPath(unwrappedNode.getText(context.sourceFile), 'string');
|
|
2630
|
+
context.addType(regexPath, 'string');
|
|
2631
|
+
// If targetPath is provided, establish equivalence
|
|
2632
|
+
if (targetPath) {
|
|
2633
|
+
context.addEquivalence(targetPath, regexPath);
|
|
2634
|
+
context.addType(targetPath, 'string');
|
|
2635
|
+
}
|
|
2636
|
+
return true;
|
|
2637
|
+
}
|
|
2638
|
+
console.warn(`processExpression: Unsupported expression kind: ${ts.SyntaxKind[unwrappedNode.kind]}`, {
|
|
2639
|
+
nodeText: node.getText(context.sourceFile),
|
|
2640
|
+
statementName: context.statementInfo.name,
|
|
2641
|
+
statementText: context.statementInfo.text,
|
|
2642
|
+
});
|
|
2643
|
+
// For now, mark other types as unsupported and return false
|
|
2644
|
+
context.markUnsupported(unwrappedNode, `processExpression: Unsupported expression kind: ${ts.SyntaxKind[unwrappedNode.kind]}`, false);
|
|
2645
|
+
return false;
|
|
2646
|
+
}
|
|
2647
|
+
/**
|
|
2648
|
+
* Helper function to process a JSX attribute
|
|
2649
|
+
*/
|
|
2650
|
+
function processJsxAttribute(attr, context, componentPath, targetPath) {
|
|
2651
|
+
// JSX attribute names can be either simple identifiers or namespace names
|
|
2652
|
+
const attrName = ts.isIdentifier(attr.name)
|
|
2653
|
+
? attr.name.text
|
|
2654
|
+
: attr.name.name.text;
|
|
2655
|
+
// Skip attributes with no initializer (boolean props)
|
|
2656
|
+
if (!attr.initializer) {
|
|
2657
|
+
return true;
|
|
2658
|
+
}
|
|
2659
|
+
// Create path for this attribute: Component.signature[0].attributeName
|
|
2660
|
+
const attributePath = componentPath.withParameter(0).withProperty(attrName);
|
|
2661
|
+
// For string literals: <Component attr="value" />
|
|
2662
|
+
if (ts.isStringLiteral(attr.initializer)) {
|
|
2663
|
+
const literalPath = StructuredPath.createLiteralPath(`"${attr.initializer.text}"`, 'string');
|
|
2664
|
+
context.addEquivalence(attributePath, literalPath);
|
|
2665
|
+
context.addType(attributePath, 'string');
|
|
2666
|
+
return true;
|
|
2667
|
+
}
|
|
2668
|
+
// For expressions: <Component attr={value} />
|
|
2669
|
+
if (ts.isJsxExpression(attr.initializer) && attr.initializer.expression) {
|
|
2670
|
+
const expression = attr.initializer.expression;
|
|
2671
|
+
if (context.isChildBoundary(expression)) {
|
|
2672
|
+
// Create equivalency between attribute path and child scope
|
|
2673
|
+
// e.g., Grid().signature[0].renderRow → cyScope1()
|
|
2674
|
+
context.addChildBoundaryEquivalence(attributePath, expression);
|
|
2675
|
+
return true;
|
|
2676
|
+
}
|
|
2677
|
+
// Process the expression with attributePath as targetPath
|
|
2678
|
+
// This will establish all equivalences and types automatically
|
|
2679
|
+
return processExpression({
|
|
2680
|
+
node: expression,
|
|
2681
|
+
context,
|
|
2682
|
+
targetPath: attributePath,
|
|
2683
|
+
});
|
|
2684
|
+
}
|
|
2685
|
+
// Mark as unsupported if we couldn't handle the attribute
|
|
2686
|
+
context.markUnsupported(attr, `Unsupported JSX attribute initializer: ${attr.initializer?.kind ? ts.SyntaxKind[attr.initializer.kind] : 'undefined'}`, false);
|
|
2687
|
+
return false;
|
|
2688
|
+
}
|
|
2689
|
+
/**
|
|
2690
|
+
* Helper function to get a string representation of a JSX tag name
|
|
2691
|
+
*/
|
|
2692
|
+
function getJsxTagName(tagNameNode, context) {
|
|
2693
|
+
if (ts.isIdentifier(tagNameNode)) {
|
|
2694
|
+
return tagNameNode.text;
|
|
2695
|
+
}
|
|
2696
|
+
else if (ts.isPropertyAccessExpression(tagNameNode)) {
|
|
2697
|
+
const objName = getJsxTagName(tagNameNode.expression, context);
|
|
2698
|
+
return objName ? `${objName}.${tagNameNode.name.text}` : '';
|
|
2699
|
+
}
|
|
2700
|
+
else if (tagNameNode.namespace) {
|
|
2701
|
+
// Handle namespaced names like <ns:elem />
|
|
2702
|
+
const jsxNamespacedName = tagNameNode;
|
|
2703
|
+
return `${jsxNamespacedName.namespace.text}:${jsxNamespacedName.name.text}`;
|
|
2704
|
+
}
|
|
2705
|
+
return '';
|
|
2706
|
+
}
|
|
2707
|
+
//# sourceMappingURL=processExpression.js.map
|