@wrtnlabs/evidence 0.0.0
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/LICENSE +21 -0
- package/README.md +516 -0
- package/lib/EvidenceChecker.d.ts +85 -0
- package/lib/EvidenceChecker.js +109 -0
- package/lib/adapters/bigquery/BigQueryColumnType.d.ts +14 -0
- package/lib/adapters/bigquery/BigQueryColumnType.js +34 -0
- package/lib/adapters/bigquery/BigQueryFileScanner.d.ts +97 -0
- package/lib/adapters/bigquery/BigQueryFileScanner.js +375 -0
- package/lib/adapters/bigquery/BigQueryIdentifier.d.ts +37 -0
- package/lib/adapters/bigquery/BigQueryIdentifier.js +88 -0
- package/lib/adapters/bigquery/BigQueryString.d.ts +14 -0
- package/lib/adapters/bigquery/BigQueryString.js +82 -0
- package/lib/adapters/bigquery/BigQueryWithdrawals.d.ts +14 -0
- package/lib/adapters/bigquery/BigQueryWithdrawals.js +70 -0
- package/lib/adapters/bigquery/EvidenceBigQueryAdapter.d.ts +17 -0
- package/lib/adapters/bigquery/EvidenceBigQueryAdapter.js +27 -0
- package/lib/adapters/c/CAdapter.d.ts +48 -0
- package/lib/adapters/c/CAdapter.js +677 -0
- package/lib/adapters/c/CDeclarationForm.d.ts +8 -0
- package/lib/adapters/c/CDeclarationForm.js +2 -0
- package/lib/adapters/c/CDeclaratorKind.d.ts +8 -0
- package/lib/adapters/c/CDeclaratorKind.js +2 -0
- package/lib/adapters/c/CDocumentation.d.ts +12 -0
- package/lib/adapters/c/CDocumentation.js +35 -0
- package/lib/adapters/c/CFileScanner.d.ts +64 -0
- package/lib/adapters/c/CFileScanner.js +505 -0
- package/lib/adapters/c/CSyntax.d.ts +24 -0
- package/lib/adapters/c/CSyntax.js +164 -0
- package/lib/adapters/c/EvidenceCAdapter.d.ts +15 -0
- package/lib/adapters/c/EvidenceCAdapter.js +19 -0
- package/lib/adapters/c/ICDeclaration.d.ts +74 -0
- package/lib/adapters/c/ICDeclaration.js +2 -0
- package/lib/adapters/c/ICDeclarationAddress.d.ts +28 -0
- package/lib/adapters/c/ICDeclarationAddress.js +2 -0
- package/lib/adapters/c/ICDeclarationGroup.d.ts +23 -0
- package/lib/adapters/c/ICDeclarationGroup.js +2 -0
- package/lib/adapters/c/ICDeclaratorShape.d.ts +30 -0
- package/lib/adapters/c/ICDeclaratorShape.js +2 -0
- package/lib/adapters/c/ICDocumentation.d.ts +36 -0
- package/lib/adapters/c/ICDocumentation.js +2 -0
- package/lib/adapters/c/ICDocumentationAttachment.d.ts +21 -0
- package/lib/adapters/c/ICDocumentationAttachment.js +2 -0
- package/lib/adapters/c/ICFileAnalysis.d.ts +44 -0
- package/lib/adapters/c/ICFileAnalysis.js +2 -0
- package/lib/adapters/c/ICTypeContext.d.ts +21 -0
- package/lib/adapters/c/ICTypeContext.js +2 -0
- package/lib/adapters/cpp/CppAccess.d.ts +7 -0
- package/lib/adapters/cpp/CppAccess.js +2 -0
- package/lib/adapters/cpp/CppAdapter.d.ts +50 -0
- package/lib/adapters/cpp/CppAdapter.js +707 -0
- package/lib/adapters/cpp/CppAliasKind.d.ts +7 -0
- package/lib/adapters/cpp/CppAliasKind.js +2 -0
- package/lib/adapters/cpp/CppDeclarationForm.d.ts +7 -0
- package/lib/adapters/cpp/CppDeclarationForm.js +2 -0
- package/lib/adapters/cpp/CppDeclaratorKind.d.ts +7 -0
- package/lib/adapters/cpp/CppDeclaratorKind.js +2 -0
- package/lib/adapters/cpp/CppDocumentation.d.ts +12 -0
- package/lib/adapters/cpp/CppDocumentation.js +35 -0
- package/lib/adapters/cpp/CppFileScanner.d.ts +79 -0
- package/lib/adapters/cpp/CppFileScanner.js +792 -0
- package/lib/adapters/cpp/CppScopeKind.d.ts +7 -0
- package/lib/adapters/cpp/CppScopeKind.js +2 -0
- package/lib/adapters/cpp/CppSyntax.d.ts +31 -0
- package/lib/adapters/cpp/CppSyntax.js +342 -0
- package/lib/adapters/cpp/CppVisibility.d.ts +7 -0
- package/lib/adapters/cpp/CppVisibility.js +2 -0
- package/lib/adapters/cpp/EvidenceCppAdapter.d.ts +16 -0
- package/lib/adapters/cpp/EvidenceCppAdapter.js +20 -0
- package/lib/adapters/cpp/ICppAlias.d.ts +44 -0
- package/lib/adapters/cpp/ICppAlias.js +2 -0
- package/lib/adapters/cpp/ICppDeclaration.d.ts +55 -0
- package/lib/adapters/cpp/ICppDeclaration.js +2 -0
- package/lib/adapters/cpp/ICppDeclarationGroup.d.ts +25 -0
- package/lib/adapters/cpp/ICppDeclarationGroup.js +2 -0
- package/lib/adapters/cpp/ICppDeclaratorShape.d.ts +42 -0
- package/lib/adapters/cpp/ICppDeclaratorShape.js +2 -0
- package/lib/adapters/cpp/ICppDocumentation.d.ts +30 -0
- package/lib/adapters/cpp/ICppDocumentation.js +2 -0
- package/lib/adapters/cpp/ICppDocumentationAttachment.d.ts +16 -0
- package/lib/adapters/cpp/ICppDocumentationAttachment.js +2 -0
- package/lib/adapters/cpp/ICppFileAnalysis.d.ts +41 -0
- package/lib/adapters/cpp/ICppFileAnalysis.js +2 -0
- package/lib/adapters/cpp/ICppQualifiedName.d.ts +16 -0
- package/lib/adapters/cpp/ICppQualifiedName.js +2 -0
- package/lib/adapters/cpp/ICppResolvedAlias.d.ts +24 -0
- package/lib/adapters/cpp/ICppResolvedAlias.js +2 -0
- package/lib/adapters/cpp/ICppScopeContext.d.ts +37 -0
- package/lib/adapters/cpp/ICppScopeContext.js +2 -0
- package/lib/adapters/csharp/CSharpAccessibility.d.ts +7 -0
- package/lib/adapters/csharp/CSharpAccessibility.js +2 -0
- package/lib/adapters/csharp/CSharpAdapter.d.ts +47 -0
- package/lib/adapters/csharp/CSharpAdapter.js +687 -0
- package/lib/adapters/csharp/CSharpDeclarationForm.d.ts +7 -0
- package/lib/adapters/csharp/CSharpDeclarationForm.js +2 -0
- package/lib/adapters/csharp/CSharpDocumentation.d.ts +12 -0
- package/lib/adapters/csharp/CSharpDocumentation.js +35 -0
- package/lib/adapters/csharp/CSharpFileScanner.d.ts +54 -0
- package/lib/adapters/csharp/CSharpFileScanner.js +403 -0
- package/lib/adapters/csharp/CSharpSyntax.d.ts +23 -0
- package/lib/adapters/csharp/CSharpSyntax.js +174 -0
- package/lib/adapters/csharp/CSharpTypeKind.d.ts +7 -0
- package/lib/adapters/csharp/CSharpTypeKind.js +2 -0
- package/lib/adapters/csharp/EvidenceCSharpAdapter.d.ts +15 -0
- package/lib/adapters/csharp/EvidenceCSharpAdapter.js +19 -0
- package/lib/adapters/csharp/ICSharpDeclaration.d.ts +63 -0
- package/lib/adapters/csharp/ICSharpDeclaration.js +2 -0
- package/lib/adapters/csharp/ICSharpDeclarationAddress.d.ts +22 -0
- package/lib/adapters/csharp/ICSharpDeclarationAddress.js +2 -0
- package/lib/adapters/csharp/ICSharpDeclarationGroup.d.ts +19 -0
- package/lib/adapters/csharp/ICSharpDeclarationGroup.js +2 -0
- package/lib/adapters/csharp/ICSharpDocumentation.d.ts +43 -0
- package/lib/adapters/csharp/ICSharpDocumentation.js +2 -0
- package/lib/adapters/csharp/ICSharpDocumentationAttachment.d.ts +25 -0
- package/lib/adapters/csharp/ICSharpDocumentationAttachment.js +2 -0
- package/lib/adapters/csharp/ICSharpFileAnalysis.d.ts +51 -0
- package/lib/adapters/csharp/ICSharpFileAnalysis.js +2 -0
- package/lib/adapters/csharp/ICSharpTypeContext.d.ts +41 -0
- package/lib/adapters/csharp/ICSharpTypeContext.js +2 -0
- package/lib/adapters/dart/DartAdapter.d.ts +96 -0
- package/lib/adapters/dart/DartAdapter.js +616 -0
- package/lib/adapters/dart/DartDocumentation.d.ts +16 -0
- package/lib/adapters/dart/DartDocumentation.js +73 -0
- package/lib/adapters/dart/DartFileScanner.d.ts +112 -0
- package/lib/adapters/dart/DartFileScanner.js +415 -0
- package/lib/adapters/dart/DartLibraries.d.ts +24 -0
- package/lib/adapters/dart/DartLibraries.js +228 -0
- package/lib/adapters/dart/EvidenceDartAdapter.d.ts +15 -0
- package/lib/adapters/dart/EvidenceDartAdapter.js +19 -0
- package/lib/adapters/dart/IDartDeclaration.d.ts +69 -0
- package/lib/adapters/dart/IDartDeclaration.js +2 -0
- package/lib/adapters/dart/IDartDirective.d.ts +53 -0
- package/lib/adapters/dart/IDartDirective.js +2 -0
- package/lib/adapters/dart/IDartDocumentation.d.ts +31 -0
- package/lib/adapters/dart/IDartDocumentation.js +2 -0
- package/lib/adapters/dart/IDartDocumentationAttachment.d.ts +23 -0
- package/lib/adapters/dart/IDartDocumentationAttachment.js +2 -0
- package/lib/adapters/dart/IDartExportFilter.d.ts +22 -0
- package/lib/adapters/dart/IDartExportFilter.js +2 -0
- package/lib/adapters/dart/IDartFileAnalysis.d.ts +55 -0
- package/lib/adapters/dart/IDartFileAnalysis.js +2 -0
- package/lib/adapters/dbml/DbmlDocumentation.d.ts +15 -0
- package/lib/adapters/dbml/DbmlDocumentation.js +49 -0
- package/lib/adapters/dbml/DbmlFileScanner.d.ts +114 -0
- package/lib/adapters/dbml/DbmlFileScanner.js +364 -0
- package/lib/adapters/dbml/EvidenceDbmlAdapter.d.ts +88 -0
- package/lib/adapters/dbml/EvidenceDbmlAdapter.js +674 -0
- package/lib/adapters/dbml/IDbmlDeclaration.d.ts +38 -0
- package/lib/adapters/dbml/IDbmlDeclaration.js +2 -0
- package/lib/adapters/dbml/IDbmlDocumentation.d.ts +34 -0
- package/lib/adapters/dbml/IDbmlDocumentation.js +2 -0
- package/lib/adapters/dbml/IDbmlEndpoint.d.ts +20 -0
- package/lib/adapters/dbml/IDbmlEndpoint.js +2 -0
- package/lib/adapters/dbml/IDbmlEnum.d.ts +27 -0
- package/lib/adapters/dbml/IDbmlEnum.js +2 -0
- package/lib/adapters/dbml/IDbmlFileAnalysis.d.ts +56 -0
- package/lib/adapters/dbml/IDbmlFileAnalysis.js +2 -0
- package/lib/adapters/dbml/IDbmlRelation.d.ts +56 -0
- package/lib/adapters/dbml/IDbmlRelation.js +2 -0
- package/lib/adapters/ecmascript/EcmaScriptAdapter.d.ts +71 -0
- package/lib/adapters/ecmascript/EcmaScriptAdapter.js +516 -0
- package/lib/adapters/ecmascript/EcmaScriptExportKind.d.ts +7 -0
- package/lib/adapters/ecmascript/EcmaScriptExportKind.js +2 -0
- package/lib/adapters/ecmascript/EcmaScriptExportResolver.d.ts +175 -0
- package/lib/adapters/ecmascript/EcmaScriptExportResolver.js +510 -0
- package/lib/adapters/ecmascript/EcmaScriptFileScanner.d.ts +84 -0
- package/lib/adapters/ecmascript/EcmaScriptFileScanner.js +946 -0
- package/lib/adapters/ecmascript/EcmaScriptModuleMode.d.ts +7 -0
- package/lib/adapters/ecmascript/EcmaScriptModuleMode.js +2 -0
- package/lib/adapters/ecmascript/EcmaScriptModuleResolver.d.ts +70 -0
- package/lib/adapters/ecmascript/EcmaScriptModuleResolver.js +211 -0
- package/lib/adapters/ecmascript/EcmaScriptSyntax.d.ts +24 -0
- package/lib/adapters/ecmascript/EcmaScriptSyntax.js +263 -0
- package/lib/adapters/ecmascript/EcmaScriptType.d.ts +7 -0
- package/lib/adapters/ecmascript/EcmaScriptType.js +2 -0
- package/lib/adapters/ecmascript/IEcmaScriptBinding.d.ts +29 -0
- package/lib/adapters/ecmascript/IEcmaScriptBinding.js +2 -0
- package/lib/adapters/ecmascript/IEcmaScriptComment.d.ts +39 -0
- package/lib/adapters/ecmascript/IEcmaScriptComment.js +2 -0
- package/lib/adapters/ecmascript/IEcmaScriptCommentAttachment.d.ts +24 -0
- package/lib/adapters/ecmascript/IEcmaScriptCommentAttachment.js +2 -0
- package/lib/adapters/ecmascript/IEcmaScriptExport.d.ts +51 -0
- package/lib/adapters/ecmascript/IEcmaScriptExport.js +2 -0
- package/lib/adapters/ecmascript/IEcmaScriptFileAnalysis.d.ts +56 -0
- package/lib/adapters/ecmascript/IEcmaScriptFileAnalysis.js +2 -0
- package/lib/adapters/ecmascript/IEcmaScriptHostPosition.d.ts +25 -0
- package/lib/adapters/ecmascript/IEcmaScriptHostPosition.js +2 -0
- package/lib/adapters/ecmascript/IEcmaScriptImport.d.ts +44 -0
- package/lib/adapters/ecmascript/IEcmaScriptImport.js +2 -0
- package/lib/adapters/ecmascript/IEcmaScriptModule.d.ts +55 -0
- package/lib/adapters/ecmascript/IEcmaScriptModule.js +2 -0
- package/lib/adapters/ecmascript/IEcmaScriptModuleResolution.d.ts +40 -0
- package/lib/adapters/ecmascript/IEcmaScriptModuleResolution.js +2 -0
- package/lib/adapters/ecmascript/IEcmaScriptOwnedUnit.d.ts +45 -0
- package/lib/adapters/ecmascript/IEcmaScriptOwnedUnit.js +2 -0
- package/lib/adapters/ecmascript/IEcmaScriptResolution.d.ts +31 -0
- package/lib/adapters/ecmascript/IEcmaScriptResolution.js +2 -0
- package/lib/adapters/ecmascript/IEcmaScriptStatementContext.d.ts +58 -0
- package/lib/adapters/ecmascript/IEcmaScriptStatementContext.js +2 -0
- package/lib/adapters/ecmascript/IJavaScriptPackageJson.d.ts +16 -0
- package/lib/adapters/ecmascript/IJavaScriptPackageJson.js +2 -0
- package/lib/adapters/go/EvidenceGoAdapter.d.ts +15 -0
- package/lib/adapters/go/EvidenceGoAdapter.js +19 -0
- package/lib/adapters/go/GoAdapter.d.ts +43 -0
- package/lib/adapters/go/GoAdapter.js +509 -0
- package/lib/adapters/go/GoDeclarationForm.d.ts +7 -0
- package/lib/adapters/go/GoDeclarationForm.js +2 -0
- package/lib/adapters/go/GoFileScanner.d.ts +57 -0
- package/lib/adapters/go/GoFileScanner.js +288 -0
- package/lib/adapters/go/GoPackageResolver.d.ts +147 -0
- package/lib/adapters/go/GoPackageResolver.js +306 -0
- package/lib/adapters/go/GoSyntax.d.ts +17 -0
- package/lib/adapters/go/GoSyntax.js +107 -0
- package/lib/adapters/go/IGoDeclaration.d.ts +53 -0
- package/lib/adapters/go/IGoDeclaration.js +2 -0
- package/lib/adapters/go/IGoDocumentation.d.ts +35 -0
- package/lib/adapters/go/IGoDocumentation.js +2 -0
- package/lib/adapters/go/IGoDocumentationAttachment.d.ts +20 -0
- package/lib/adapters/go/IGoDocumentationAttachment.js +2 -0
- package/lib/adapters/go/IGoFileAnalysis.d.ts +60 -0
- package/lib/adapters/go/IGoFileAnalysis.js +2 -0
- package/lib/adapters/go/IGoMaterializedDeclaration.d.ts +28 -0
- package/lib/adapters/go/IGoMaterializedDeclaration.js +2 -0
- package/lib/adapters/java/EvidenceJavaAdapter.d.ts +15 -0
- package/lib/adapters/java/EvidenceJavaAdapter.js +19 -0
- package/lib/adapters/java/IJavaDeclaration.d.ts +65 -0
- package/lib/adapters/java/IJavaDeclaration.js +2 -0
- package/lib/adapters/java/IJavaDocumentation.d.ts +35 -0
- package/lib/adapters/java/IJavaDocumentation.js +2 -0
- package/lib/adapters/java/IJavaDocumentationAttachment.d.ts +20 -0
- package/lib/adapters/java/IJavaDocumentationAttachment.js +2 -0
- package/lib/adapters/java/IJavaFileAnalysis.d.ts +42 -0
- package/lib/adapters/java/IJavaFileAnalysis.js +2 -0
- package/lib/adapters/java/IJavaTypeContext.d.ts +39 -0
- package/lib/adapters/java/IJavaTypeContext.js +2 -0
- package/lib/adapters/java/JavaAdapter.d.ts +45 -0
- package/lib/adapters/java/JavaAdapter.js +572 -0
- package/lib/adapters/java/JavaDeclarationForm.d.ts +7 -0
- package/lib/adapters/java/JavaDeclarationForm.js +2 -0
- package/lib/adapters/java/JavaDocumentation.d.ts +12 -0
- package/lib/adapters/java/JavaDocumentation.js +52 -0
- package/lib/adapters/java/JavaFileScanner.d.ts +51 -0
- package/lib/adapters/java/JavaFileScanner.js +317 -0
- package/lib/adapters/java/JavaSyntax.d.ts +18 -0
- package/lib/adapters/java/JavaSyntax.js +100 -0
- package/lib/adapters/java/JavaTypeKind.d.ts +7 -0
- package/lib/adapters/java/JavaTypeKind.js +2 -0
- package/lib/adapters/javascript/EvidenceJavaScriptAdapter.d.ts +26 -0
- package/lib/adapters/javascript/EvidenceJavaScriptAdapter.js +32 -0
- package/lib/adapters/kotlin/EvidenceKotlinAdapter.d.ts +15 -0
- package/lib/adapters/kotlin/EvidenceKotlinAdapter.js +19 -0
- package/lib/adapters/kotlin/IKotlinDeclaration.d.ts +77 -0
- package/lib/adapters/kotlin/IKotlinDeclaration.js +2 -0
- package/lib/adapters/kotlin/IKotlinDocumentation.d.ts +31 -0
- package/lib/adapters/kotlin/IKotlinDocumentation.js +2 -0
- package/lib/adapters/kotlin/IKotlinDocumentationAttachment.d.ts +23 -0
- package/lib/adapters/kotlin/IKotlinDocumentationAttachment.js +2 -0
- package/lib/adapters/kotlin/IKotlinFileAnalysis.d.ts +39 -0
- package/lib/adapters/kotlin/IKotlinFileAnalysis.js +2 -0
- package/lib/adapters/kotlin/IKotlinResolvedType.d.ts +23 -0
- package/lib/adapters/kotlin/IKotlinResolvedType.js +2 -0
- package/lib/adapters/kotlin/IKotlinTypeReference.d.ts +44 -0
- package/lib/adapters/kotlin/IKotlinTypeReference.js +2 -0
- package/lib/adapters/kotlin/KotlinAdapter.d.ts +114 -0
- package/lib/adapters/kotlin/KotlinAdapter.js +649 -0
- package/lib/adapters/kotlin/KotlinDocumentation.d.ts +18 -0
- package/lib/adapters/kotlin/KotlinDocumentation.js +80 -0
- package/lib/adapters/kotlin/KotlinFileScanner.d.ts +153 -0
- package/lib/adapters/kotlin/KotlinFileScanner.js +508 -0
- package/lib/adapters/kotlin/KotlinReceivers.d.ts +16 -0
- package/lib/adapters/kotlin/KotlinReceivers.js +104 -0
- package/lib/adapters/lua/EvidenceLuaAdapter.d.ts +16 -0
- package/lib/adapters/lua/EvidenceLuaAdapter.js +20 -0
- package/lib/adapters/lua/ILuaDeclaration.d.ts +54 -0
- package/lib/adapters/lua/ILuaDeclaration.js +2 -0
- package/lib/adapters/lua/ILuaDocumentation.d.ts +31 -0
- package/lib/adapters/lua/ILuaDocumentation.js +2 -0
- package/lib/adapters/lua/ILuaDocumentationAttachment.d.ts +23 -0
- package/lib/adapters/lua/ILuaDocumentationAttachment.js +2 -0
- package/lib/adapters/lua/ILuaFileAnalysis.d.ts +39 -0
- package/lib/adapters/lua/ILuaFileAnalysis.js +2 -0
- package/lib/adapters/lua/ILuaValue.d.ts +39 -0
- package/lib/adapters/lua/ILuaValue.js +2 -0
- package/lib/adapters/lua/LuaAdapter.d.ts +114 -0
- package/lib/adapters/lua/LuaAdapter.js +647 -0
- package/lib/adapters/lua/LuaDocumentation.d.ts +19 -0
- package/lib/adapters/lua/LuaDocumentation.js +79 -0
- package/lib/adapters/lua/LuaFileScanner.d.ts +167 -0
- package/lib/adapters/lua/LuaFileScanner.js +585 -0
- package/lib/adapters/markdown/EvidenceMarkdownAdapter.d.ts +28 -0
- package/lib/adapters/markdown/EvidenceMarkdownAdapter.js +296 -0
- package/lib/adapters/markdown/EvidenceMarkdownRenderedEdge.d.ts +7 -0
- package/lib/adapters/markdown/EvidenceMarkdownRenderedEdge.js +2 -0
- package/lib/adapters/markdown/IMarkdownComment.d.ts +31 -0
- package/lib/adapters/markdown/IMarkdownComment.js +2 -0
- package/lib/adapters/markdown/IMarkdownFence.d.ts +25 -0
- package/lib/adapters/markdown/IMarkdownFence.js +2 -0
- package/lib/adapters/markdown/IMarkdownHeading.d.ts +25 -0
- package/lib/adapters/markdown/IMarkdownHeading.js +2 -0
- package/lib/adapters/markdown/MarkdownScanner.d.ts +102 -0
- package/lib/adapters/markdown/MarkdownScanner.js +471 -0
- package/lib/adapters/markdown/MarkdownSyntax.d.ts +34 -0
- package/lib/adapters/markdown/MarkdownSyntax.js +234 -0
- package/lib/adapters/markdown/MarkdownTarget.d.ts +17 -0
- package/lib/adapters/markdown/MarkdownTarget.js +38 -0
- package/lib/adapters/matlab/EvidenceMatlabAdapter.d.ts +15 -0
- package/lib/adapters/matlab/EvidenceMatlabAdapter.js +19 -0
- package/lib/adapters/matlab/IMatlabDeclaration.d.ts +103 -0
- package/lib/adapters/matlab/IMatlabDeclaration.js +2 -0
- package/lib/adapters/matlab/IMatlabDocumentation.d.ts +35 -0
- package/lib/adapters/matlab/IMatlabDocumentation.js +2 -0
- package/lib/adapters/matlab/IMatlabDocumentationAttachment.d.ts +20 -0
- package/lib/adapters/matlab/IMatlabDocumentationAttachment.js +2 -0
- package/lib/adapters/matlab/IMatlabFileAnalysis.d.ts +43 -0
- package/lib/adapters/matlab/IMatlabFileAnalysis.js +2 -0
- package/lib/adapters/matlab/MatlabAdapter.d.ts +104 -0
- package/lib/adapters/matlab/MatlabAdapter.js +625 -0
- package/lib/adapters/matlab/MatlabDocumentation.d.ts +18 -0
- package/lib/adapters/matlab/MatlabDocumentation.js +78 -0
- package/lib/adapters/matlab/MatlabFileScanner.d.ts +118 -0
- package/lib/adapters/matlab/MatlabFileScanner.js +454 -0
- package/lib/adapters/matlab/MatlabOwnership.d.ts +17 -0
- package/lib/adapters/matlab/MatlabOwnership.js +139 -0
- package/lib/adapters/mysql/EvidenceMysqlAdapter.d.ts +16 -0
- package/lib/adapters/mysql/EvidenceMysqlAdapter.js +23 -0
- package/lib/adapters/mysql/MysqlDocumentation.d.ts +15 -0
- package/lib/adapters/mysql/MysqlDocumentation.js +40 -0
- package/lib/adapters/mysql/MysqlFileScanner.d.ts +16 -0
- package/lib/adapters/mysql/MysqlFileScanner.js +78 -0
- package/lib/adapters/mysql/MysqlIdentifier.d.ts +13 -0
- package/lib/adapters/mysql/MysqlIdentifier.js +30 -0
- package/lib/adapters/mysql/MysqlPolicy.d.ts +39 -0
- package/lib/adapters/mysql/MysqlPolicy.js +173 -0
- package/lib/adapters/objc/EvidenceObjcAdapter.d.ts +15 -0
- package/lib/adapters/objc/EvidenceObjcAdapter.js +19 -0
- package/lib/adapters/objc/IObjcDeclaration.d.ts +79 -0
- package/lib/adapters/objc/IObjcDeclaration.js +2 -0
- package/lib/adapters/objc/IObjcDocumentation.d.ts +35 -0
- package/lib/adapters/objc/IObjcDocumentation.js +2 -0
- package/lib/adapters/objc/IObjcDocumentationAttachment.d.ts +20 -0
- package/lib/adapters/objc/IObjcDocumentationAttachment.js +2 -0
- package/lib/adapters/objc/IObjcFileAnalysis.d.ts +43 -0
- package/lib/adapters/objc/IObjcFileAnalysis.js +2 -0
- package/lib/adapters/objc/ObjcAdapter.d.ts +100 -0
- package/lib/adapters/objc/ObjcAdapter.js +646 -0
- package/lib/adapters/objc/ObjcDeclarationForm.d.ts +7 -0
- package/lib/adapters/objc/ObjcDeclarationForm.js +2 -0
- package/lib/adapters/objc/ObjcDocumentation.d.ts +8 -0
- package/lib/adapters/objc/ObjcDocumentation.js +11 -0
- package/lib/adapters/objc/ObjcFileScanner.d.ts +123 -0
- package/lib/adapters/objc/ObjcFileScanner.js +461 -0
- package/lib/adapters/php/EvidencePhpAdapter.d.ts +15 -0
- package/lib/adapters/php/EvidencePhpAdapter.js +19 -0
- package/lib/adapters/php/IPhpDeclaration.d.ts +64 -0
- package/lib/adapters/php/IPhpDeclaration.js +2 -0
- package/lib/adapters/php/IPhpDocumentation.d.ts +35 -0
- package/lib/adapters/php/IPhpDocumentation.js +2 -0
- package/lib/adapters/php/IPhpDocumentationAttachment.d.ts +20 -0
- package/lib/adapters/php/IPhpDocumentationAttachment.js +2 -0
- package/lib/adapters/php/IPhpFileAnalysis.d.ts +48 -0
- package/lib/adapters/php/IPhpFileAnalysis.js +2 -0
- package/lib/adapters/php/PhpAdapter.d.ts +108 -0
- package/lib/adapters/php/PhpAdapter.js +670 -0
- package/lib/adapters/php/PhpDocumentation.d.ts +18 -0
- package/lib/adapters/php/PhpDocumentation.js +80 -0
- package/lib/adapters/php/PhpFileScanner.d.ts +79 -0
- package/lib/adapters/php/PhpFileScanner.js +346 -0
- package/lib/adapters/postgresql/EvidencePostgresqlAdapter.d.ts +26 -0
- package/lib/adapters/postgresql/EvidencePostgresqlAdapter.js +41 -0
- package/lib/adapters/postgresql/IPostgresqlFileAnalysis.d.ts +16 -0
- package/lib/adapters/postgresql/IPostgresqlFileAnalysis.js +2 -0
- package/lib/adapters/postgresql/IPostgresqlReference.d.ts +26 -0
- package/lib/adapters/postgresql/IPostgresqlReference.js +2 -0
- package/lib/adapters/postgresql/PostgresqlFileScanner.d.ts +103 -0
- package/lib/adapters/postgresql/PostgresqlFileScanner.js +431 -0
- package/lib/adapters/postgresql/PostgresqlFingerprint.d.ts +14 -0
- package/lib/adapters/postgresql/PostgresqlFingerprint.js +29 -0
- package/lib/adapters/postgresql/PostgresqlIdentity.d.ts +20 -0
- package/lib/adapters/postgresql/PostgresqlIdentity.js +41 -0
- package/lib/adapters/postgresql/PostgresqlOwnership.d.ts +14 -0
- package/lib/adapters/postgresql/PostgresqlOwnership.js +668 -0
- package/lib/adapters/prisma/EvidencePrismaAdapter.d.ts +57 -0
- package/lib/adapters/prisma/EvidencePrismaAdapter.js +603 -0
- package/lib/adapters/prisma/IPrismaBlockHead.d.ts +21 -0
- package/lib/adapters/prisma/IPrismaBlockHead.js +2 -0
- package/lib/adapters/prisma/IPrismaCacheEntry.d.ts +22 -0
- package/lib/adapters/prisma/IPrismaCacheEntry.js +2 -0
- package/lib/adapters/prisma/IPrismaCommentRun.d.ts +51 -0
- package/lib/adapters/prisma/IPrismaCommentRun.js +2 -0
- package/lib/adapters/prisma/IPrismaDatamodel.d.ts +15 -0
- package/lib/adapters/prisma/IPrismaDatamodel.js +2 -0
- package/lib/adapters/prisma/IPrismaDatamodelField.d.ts +26 -0
- package/lib/adapters/prisma/IPrismaDatamodelField.js +2 -0
- package/lib/adapters/prisma/IPrismaDatamodelModel.d.ts +29 -0
- package/lib/adapters/prisma/IPrismaDatamodelModel.js +2 -0
- package/lib/adapters/prisma/IPrismaField.d.ts +36 -0
- package/lib/adapters/prisma/IPrismaField.js +2 -0
- package/lib/adapters/prisma/IPrismaFileAnalysis.d.ts +31 -0
- package/lib/adapters/prisma/IPrismaFileAnalysis.js +2 -0
- package/lib/adapters/prisma/IPrismaLineParts.d.ts +26 -0
- package/lib/adapters/prisma/IPrismaLineParts.js +2 -0
- package/lib/adapters/prisma/IPrismaLoadResult.d.ts +22 -0
- package/lib/adapters/prisma/IPrismaLoadResult.js +2 -0
- package/lib/adapters/prisma/IPrismaLocatedDeclaration.d.ts +20 -0
- package/lib/adapters/prisma/IPrismaLocatedDeclaration.js +2 -0
- package/lib/adapters/prisma/IPrismaLocation.d.ts +22 -0
- package/lib/adapters/prisma/IPrismaLocation.js +2 -0
- package/lib/adapters/prisma/IPrismaModel.d.ts +36 -0
- package/lib/adapters/prisma/IPrismaModel.js +2 -0
- package/lib/adapters/prisma/IPrismaOwnedUnit.d.ts +37 -0
- package/lib/adapters/prisma/IPrismaOwnedUnit.js +2 -0
- package/lib/adapters/prisma/IPrismaParser.d.ts +28 -0
- package/lib/adapters/prisma/IPrismaParser.js +2 -0
- package/lib/adapters/prisma/IPrismaPendingComment.d.ts +52 -0
- package/lib/adapters/prisma/IPrismaPendingComment.js +2 -0
- package/lib/adapters/prisma/IPrismaSchemaFile.d.ts +22 -0
- package/lib/adapters/prisma/IPrismaSchemaFile.js +2 -0
- package/lib/adapters/prisma/ITrimmedMapping.d.ts +23 -0
- package/lib/adapters/prisma/ITrimmedMapping.js +2 -0
- package/lib/adapters/prisma/PrismaCommentForm.d.ts +7 -0
- package/lib/adapters/prisma/PrismaCommentForm.js +2 -0
- package/lib/adapters/prisma/PrismaFileScanner.d.ts +70 -0
- package/lib/adapters/prisma/PrismaFileScanner.js +361 -0
- package/lib/adapters/prisma/PrismaModelLoader.d.ts +12 -0
- package/lib/adapters/prisma/PrismaModelLoader.js +268 -0
- package/lib/adapters/prisma/PrismaSyntax.d.ts +9 -0
- package/lib/adapters/prisma/PrismaSyntax.js +27 -0
- package/lib/adapters/prisma/PrismaTarget.d.ts +10 -0
- package/lib/adapters/prisma/PrismaTarget.js +23 -0
- package/lib/adapters/python/EvidencePythonAdapter.d.ts +15 -0
- package/lib/adapters/python/EvidencePythonAdapter.js +19 -0
- package/lib/adapters/python/IPythonAll.d.ts +24 -0
- package/lib/adapters/python/IPythonAll.js +2 -0
- package/lib/adapters/python/IPythonBinding.d.ts +52 -0
- package/lib/adapters/python/IPythonBinding.js +2 -0
- package/lib/adapters/python/IPythonClassContext.d.ts +36 -0
- package/lib/adapters/python/IPythonClassContext.js +2 -0
- package/lib/adapters/python/IPythonDocumentation.d.ts +47 -0
- package/lib/adapters/python/IPythonDocumentation.js +2 -0
- package/lib/adapters/python/IPythonDocumentationAttachment.d.ts +31 -0
- package/lib/adapters/python/IPythonDocumentationAttachment.js +2 -0
- package/lib/adapters/python/IPythonFileAnalysis.d.ts +63 -0
- package/lib/adapters/python/IPythonFileAnalysis.js +2 -0
- package/lib/adapters/python/IPythonHostPosition.d.ts +33 -0
- package/lib/adapters/python/IPythonHostPosition.js +2 -0
- package/lib/adapters/python/IPythonModule.d.ts +42 -0
- package/lib/adapters/python/IPythonModule.js +2 -0
- package/lib/adapters/python/IPythonOwnedUnit.d.ts +30 -0
- package/lib/adapters/python/IPythonOwnedUnit.js +2 -0
- package/lib/adapters/python/IPythonResolution.d.ts +21 -0
- package/lib/adapters/python/IPythonResolution.js +2 -0
- package/lib/adapters/python/IPythonResolvedBinding.d.ts +20 -0
- package/lib/adapters/python/IPythonResolvedBinding.js +2 -0
- package/lib/adapters/python/PythonAdapter.d.ts +43 -0
- package/lib/adapters/python/PythonAdapter.js +488 -0
- package/lib/adapters/python/PythonAllState.d.ts +7 -0
- package/lib/adapters/python/PythonAllState.js +2 -0
- package/lib/adapters/python/PythonBindingKind.d.ts +7 -0
- package/lib/adapters/python/PythonBindingKind.js +2 -0
- package/lib/adapters/python/PythonExportResolver.d.ts +146 -0
- package/lib/adapters/python/PythonExportResolver.js +408 -0
- package/lib/adapters/python/PythonFileScanner.d.ts +367 -0
- package/lib/adapters/python/PythonFileScanner.js +1019 -0
- package/lib/adapters/python/PythonResolutionMode.d.ts +7 -0
- package/lib/adapters/python/PythonResolutionMode.js +2 -0
- package/lib/adapters/python/PythonSyntax.d.ts +115 -0
- package/lib/adapters/python/PythonSyntax.js +298 -0
- package/lib/adapters/ruby/EvidenceRubyAdapter.d.ts +15 -0
- package/lib/adapters/ruby/EvidenceRubyAdapter.js +19 -0
- package/lib/adapters/ruby/IRubyConstantPath.d.ts +20 -0
- package/lib/adapters/ruby/IRubyConstantPath.js +2 -0
- package/lib/adapters/ruby/IRubyDeclaration.d.ts +105 -0
- package/lib/adapters/ruby/IRubyDeclaration.js +2 -0
- package/lib/adapters/ruby/IRubyDocumentation.d.ts +42 -0
- package/lib/adapters/ruby/IRubyDocumentation.js +2 -0
- package/lib/adapters/ruby/IRubyDocumentationAttachment.d.ts +20 -0
- package/lib/adapters/ruby/IRubyDocumentationAttachment.js +2 -0
- package/lib/adapters/ruby/IRubyFileAnalysis.d.ts +42 -0
- package/lib/adapters/ruby/IRubyFileAnalysis.js +2 -0
- package/lib/adapters/ruby/IRubyScopeContext.d.ts +48 -0
- package/lib/adapters/ruby/IRubyScopeContext.js +2 -0
- package/lib/adapters/ruby/RubyAdapter.d.ts +50 -0
- package/lib/adapters/ruby/RubyAdapter.js +724 -0
- package/lib/adapters/ruby/RubyAttributeMode.d.ts +7 -0
- package/lib/adapters/ruby/RubyAttributeMode.js +2 -0
- package/lib/adapters/ruby/RubyContainerKind.d.ts +7 -0
- package/lib/adapters/ruby/RubyContainerKind.js +2 -0
- package/lib/adapters/ruby/RubyDeclarationForm.d.ts +7 -0
- package/lib/adapters/ruby/RubyDeclarationForm.js +2 -0
- package/lib/adapters/ruby/RubyFileScanner.d.ts +332 -0
- package/lib/adapters/ruby/RubyFileScanner.js +990 -0
- package/lib/adapters/ruby/RubyMethodSide.d.ts +7 -0
- package/lib/adapters/ruby/RubyMethodSide.js +2 -0
- package/lib/adapters/ruby/RubyScopeKind.d.ts +7 -0
- package/lib/adapters/ruby/RubyScopeKind.js +2 -0
- package/lib/adapters/ruby/RubySyntax.d.ts +81 -0
- package/lib/adapters/ruby/RubySyntax.js +202 -0
- package/lib/adapters/ruby/RubyVisibility.d.ts +7 -0
- package/lib/adapters/ruby/RubyVisibility.js +2 -0
- package/lib/adapters/rust/EvidenceRustAdapter.d.ts +15 -0
- package/lib/adapters/rust/EvidenceRustAdapter.js +19 -0
- package/lib/adapters/rust/IRustDeclaration.d.ts +72 -0
- package/lib/adapters/rust/IRustDeclaration.js +2 -0
- package/lib/adapters/rust/IRustDocumentation.d.ts +41 -0
- package/lib/adapters/rust/IRustDocumentation.js +2 -0
- package/lib/adapters/rust/IRustDocumentationAttachment.d.ts +20 -0
- package/lib/adapters/rust/IRustDocumentationAttachment.js +2 -0
- package/lib/adapters/rust/IRustExportRecord.d.ts +28 -0
- package/lib/adapters/rust/IRustExportRecord.js +2 -0
- package/lib/adapters/rust/IRustExternalModule.d.ts +32 -0
- package/lib/adapters/rust/IRustExternalModule.js +2 -0
- package/lib/adapters/rust/IRustFileAnalysis.d.ts +66 -0
- package/lib/adapters/rust/IRustFileAnalysis.js +2 -0
- package/lib/adapters/rust/IRustFilePlacement.d.ts +35 -0
- package/lib/adapters/rust/IRustFilePlacement.js +2 -0
- package/lib/adapters/rust/IRustImplementation.d.ts +38 -0
- package/lib/adapters/rust/IRustImplementation.js +2 -0
- package/lib/adapters/rust/IRustLocatedDeclaration.d.ts +35 -0
- package/lib/adapters/rust/IRustLocatedDeclaration.js +2 -0
- package/lib/adapters/rust/IRustModuleRecord.d.ts +62 -0
- package/lib/adapters/rust/IRustModuleRecord.js +2 -0
- package/lib/adapters/rust/IRustPublicOccurrence.d.ts +35 -0
- package/lib/adapters/rust/IRustPublicOccurrence.js +2 -0
- package/lib/adapters/rust/IRustResolvedMember.d.ts +34 -0
- package/lib/adapters/rust/IRustResolvedMember.js +2 -0
- package/lib/adapters/rust/IRustUse.d.ts +33 -0
- package/lib/adapters/rust/IRustUse.js +2 -0
- package/lib/adapters/rust/IRustUseBinding.d.ts +26 -0
- package/lib/adapters/rust/IRustUseBinding.js +2 -0
- package/lib/adapters/rust/RustAdapter.d.ts +43 -0
- package/lib/adapters/rust/RustAdapter.js +503 -0
- package/lib/adapters/rust/RustDeclarationForm.d.ts +7 -0
- package/lib/adapters/rust/RustDeclarationForm.js +2 -0
- package/lib/adapters/rust/RustFileScanner.d.ts +61 -0
- package/lib/adapters/rust/RustFileScanner.js +550 -0
- package/lib/adapters/rust/RustModuleResolver.d.ts +70 -0
- package/lib/adapters/rust/RustModuleResolver.js +716 -0
- package/lib/adapters/rust/RustSyntax.d.ts +93 -0
- package/lib/adapters/rust/RustSyntax.js +244 -0
- package/lib/adapters/rust/RustVisibility.d.ts +7 -0
- package/lib/adapters/rust/RustVisibility.js +2 -0
- package/lib/adapters/scala/EvidenceScalaAdapter.d.ts +15 -0
- package/lib/adapters/scala/EvidenceScalaAdapter.js +19 -0
- package/lib/adapters/scala/IScalaDeclaration.d.ts +78 -0
- package/lib/adapters/scala/IScalaDeclaration.js +2 -0
- package/lib/adapters/scala/IScalaDocumentation.d.ts +35 -0
- package/lib/adapters/scala/IScalaDocumentation.js +2 -0
- package/lib/adapters/scala/IScalaDocumentationAttachment.d.ts +22 -0
- package/lib/adapters/scala/IScalaDocumentationAttachment.js +2 -0
- package/lib/adapters/scala/IScalaExport.d.ts +29 -0
- package/lib/adapters/scala/IScalaExport.js +2 -0
- package/lib/adapters/scala/IScalaFileAnalysis.d.ts +50 -0
- package/lib/adapters/scala/IScalaFileAnalysis.js +2 -0
- package/lib/adapters/scala/ScalaAdapter.d.ts +100 -0
- package/lib/adapters/scala/ScalaAdapter.js +638 -0
- package/lib/adapters/scala/ScalaDocumentation.d.ts +16 -0
- package/lib/adapters/scala/ScalaDocumentation.js +77 -0
- package/lib/adapters/scala/ScalaExports.d.ts +16 -0
- package/lib/adapters/scala/ScalaExports.js +136 -0
- package/lib/adapters/scala/ScalaFileScanner.d.ts +111 -0
- package/lib/adapters/scala/ScalaFileScanner.js +434 -0
- package/lib/adapters/sql/EvidenceSqlAdapter.d.ts +13 -0
- package/lib/adapters/sql/EvidenceSqlAdapter.js +28 -0
- package/lib/adapters/sql/ISqlAdapterOptions.d.ts +33 -0
- package/lib/adapters/sql/ISqlAdapterOptions.js +2 -0
- package/lib/adapters/sql/ISqlDeclaration.d.ts +67 -0
- package/lib/adapters/sql/ISqlDeclaration.js +2 -0
- package/lib/adapters/sql/ISqlDocumentation.d.ts +40 -0
- package/lib/adapters/sql/ISqlDocumentation.js +2 -0
- package/lib/adapters/sql/ISqlDocumentationAttachment.d.ts +18 -0
- package/lib/adapters/sql/ISqlDocumentationAttachment.js +2 -0
- package/lib/adapters/sql/ISqlFileAnalysis.d.ts +41 -0
- package/lib/adapters/sql/ISqlFileAnalysis.js +2 -0
- package/lib/adapters/sql/ISqlPolicy.d.ts +43 -0
- package/lib/adapters/sql/ISqlPolicy.js +2 -0
- package/lib/adapters/sql/SqlAdapter.d.ts +123 -0
- package/lib/adapters/sql/SqlAdapter.js +658 -0
- package/lib/adapters/sql/SqlDocumentation.d.ts +16 -0
- package/lib/adapters/sql/SqlDocumentation.js +91 -0
- package/lib/adapters/sql/SqlFileScanner.d.ts +86 -0
- package/lib/adapters/sql/SqlFileScanner.js +299 -0
- package/lib/adapters/sql/SqlPolicy.d.ts +20 -0
- package/lib/adapters/sql/SqlPolicy.js +111 -0
- package/lib/adapters/sqlite/EvidenceSqliteAdapter.d.ts +16 -0
- package/lib/adapters/sqlite/EvidenceSqliteAdapter.js +26 -0
- package/lib/adapters/sqlite/SqliteFileScanner.d.ts +83 -0
- package/lib/adapters/sqlite/SqliteFileScanner.js +285 -0
- package/lib/adapters/sqlite/SqliteSyntax.d.ts +26 -0
- package/lib/adapters/sqlite/SqliteSyntax.js +49 -0
- package/lib/adapters/swagger/EvidenceSwaggerAdapter.d.ts +55 -0
- package/lib/adapters/swagger/EvidenceSwaggerAdapter.js +489 -0
- package/lib/adapters/swagger/IRemoteSwaggerSource.d.ts +19 -0
- package/lib/adapters/swagger/IRemoteSwaggerSource.js +2 -0
- package/lib/adapters/swagger/ISwaggerCacheEntry.d.ts +18 -0
- package/lib/adapters/swagger/ISwaggerCacheEntry.js +2 -0
- package/lib/adapters/swagger/ISwaggerLoadResult.d.ts +13 -0
- package/lib/adapters/swagger/ISwaggerLoadResult.js +2 -0
- package/lib/adapters/swagger/ISwaggerOperation.d.ts +42 -0
- package/lib/adapters/swagger/ISwaggerOperation.js +2 -0
- package/lib/adapters/swagger/ISwaggerOperationLocation.d.ts +21 -0
- package/lib/adapters/swagger/ISwaggerOperationLocation.js +2 -0
- package/lib/adapters/swagger/IYamlScalarMapping.d.ts +36 -0
- package/lib/adapters/swagger/IYamlScalarMapping.js +2 -0
- package/lib/adapters/swagger/SwaggerDescription.d.ts +18 -0
- package/lib/adapters/swagger/SwaggerDescription.js +62 -0
- package/lib/adapters/swagger/SwaggerDocumentInput.d.ts +8 -0
- package/lib/adapters/swagger/SwaggerDocumentInput.js +2 -0
- package/lib/adapters/swagger/SwaggerDocumentLoader.d.ts +15 -0
- package/lib/adapters/swagger/SwaggerDocumentLoader.js +6962 -0
- package/lib/adapters/swagger/SwaggerRemoteReader.d.ts +26 -0
- package/lib/adapters/swagger/SwaggerRemoteReader.js +89 -0
- package/lib/adapters/swagger/SwaggerTarget.d.ts +14 -0
- package/lib/adapters/swagger/SwaggerTarget.js +29 -0
- package/lib/adapters/swagger/YamlScalarMapper.d.ts +11 -0
- package/lib/adapters/swagger/YamlScalarMapper.js +76 -0
- package/lib/adapters/swift/EvidenceSwiftAdapter.d.ts +15 -0
- package/lib/adapters/swift/EvidenceSwiftAdapter.js +19 -0
- package/lib/adapters/swift/ISwiftDeclaration.d.ts +91 -0
- package/lib/adapters/swift/ISwiftDeclaration.js +2 -0
- package/lib/adapters/swift/ISwiftDocumentation.d.ts +35 -0
- package/lib/adapters/swift/ISwiftDocumentation.js +2 -0
- package/lib/adapters/swift/ISwiftDocumentationAttachment.d.ts +22 -0
- package/lib/adapters/swift/ISwiftDocumentationAttachment.js +2 -0
- package/lib/adapters/swift/ISwiftFileAnalysis.d.ts +43 -0
- package/lib/adapters/swift/ISwiftFileAnalysis.js +2 -0
- package/lib/adapters/swift/SwiftAdapter.d.ts +108 -0
- package/lib/adapters/swift/SwiftAdapter.js +666 -0
- package/lib/adapters/swift/SwiftDocumentation.d.ts +16 -0
- package/lib/adapters/swift/SwiftDocumentation.js +75 -0
- package/lib/adapters/swift/SwiftFileScanner.d.ts +87 -0
- package/lib/adapters/swift/SwiftFileScanner.js +341 -0
- package/lib/adapters/swift/SwiftOwnership.d.ts +16 -0
- package/lib/adapters/swift/SwiftOwnership.js +141 -0
- package/lib/adapters/typescript/EvidenceTypeScriptAdapter.d.ts +29 -0
- package/lib/adapters/typescript/EvidenceTypeScriptAdapter.js +35 -0
- package/lib/adapters/zig/EvidenceZigAdapter.d.ts +16 -0
- package/lib/adapters/zig/EvidenceZigAdapter.js +20 -0
- package/lib/adapters/zig/IZigDeclaration.d.ts +73 -0
- package/lib/adapters/zig/IZigDeclaration.js +2 -0
- package/lib/adapters/zig/IZigDocumentation.d.ts +35 -0
- package/lib/adapters/zig/IZigDocumentation.js +2 -0
- package/lib/adapters/zig/IZigDocumentationAttachment.d.ts +21 -0
- package/lib/adapters/zig/IZigDocumentationAttachment.js +2 -0
- package/lib/adapters/zig/IZigFileAnalysis.d.ts +47 -0
- package/lib/adapters/zig/IZigFileAnalysis.js +2 -0
- package/lib/adapters/zig/ZigAdapter.d.ts +114 -0
- package/lib/adapters/zig/ZigAdapter.js +647 -0
- package/lib/adapters/zig/ZigDocumentation.d.ts +18 -0
- package/lib/adapters/zig/ZigDocumentation.js +80 -0
- package/lib/adapters/zig/ZigFileScanner.d.ts +125 -0
- package/lib/adapters/zig/ZigFileScanner.js +538 -0
- package/lib/commands/EvidenceCommand.d.ts +70 -0
- package/lib/commands/EvidenceCommand.js +722 -0
- package/lib/commands/EvidenceCommandError.d.ts +16 -0
- package/lib/commands/EvidenceCommandError.js +23 -0
- package/lib/commands/EvidenceWatcher.d.ts +134 -0
- package/lib/commands/EvidenceWatcher.js +500 -0
- package/lib/contexts/EvidenceQueryPopulationContext.d.ts +102 -0
- package/lib/contexts/EvidenceQueryPopulationContext.js +166 -0
- package/lib/contexts/IEvidenceCheckContext.d.ts +26 -0
- package/lib/contexts/IEvidenceCheckContext.js +2 -0
- package/lib/contexts/IEvidenceClaimContext.d.ts +48 -0
- package/lib/contexts/IEvidenceClaimContext.js +2 -0
- package/lib/contexts/IEvidenceGraphClaimContext.d.ts +40 -0
- package/lib/contexts/IEvidenceGraphClaimContext.js +2 -0
- package/lib/contexts/IEvidenceGraphReferenceContext.d.ts +65 -0
- package/lib/contexts/IEvidenceGraphReferenceContext.js +2 -0
- package/lib/contexts/IEvidenceQueryContext.d.ts +32 -0
- package/lib/contexts/IEvidenceQueryContext.js +2 -0
- package/lib/contexts/IEvidenceTagContext.d.ts +64 -0
- package/lib/contexts/IEvidenceTagContext.js +2 -0
- package/lib/executable/evidence.d.ts +2 -0
- package/lib/executable/evidence.js +14 -0
- package/lib/graph/EvidenceFingerprint.d.ts +27 -0
- package/lib/graph/EvidenceFingerprint.js +37 -0
- package/lib/graph/EvidenceGraph.d.ts +56 -0
- package/lib/graph/EvidenceGraph.js +1944 -0
- package/lib/graph/EvidenceInventory.d.ts +146 -0
- package/lib/graph/EvidenceInventory.js +1165 -0
- package/lib/graph/EvidenceQuery.d.ts +86 -0
- package/lib/graph/EvidenceQuery.js +109 -0
- package/lib/index.d.ts +110 -0
- package/lib/index.js +154 -0
- package/lib/internal/CanonicalJson.d.ts +20 -0
- package/lib/internal/CanonicalJson.js +67 -0
- package/lib/internal/ConfigDependencyScanner.d.ts +40 -0
- package/lib/internal/ConfigDependencyScanner.js +330 -0
- package/lib/internal/EvidenceAdapterFactory.d.ts +15 -0
- package/lib/internal/EvidenceAdapterFactory.js +104 -0
- package/lib/internal/EvidenceArtifactTypes.d.ts +20 -0
- package/lib/internal/EvidenceArtifactTypes.js +41 -0
- package/lib/internal/EvidenceConfigFormat.d.ts +11 -0
- package/lib/internal/EvidenceConfigFormat.js +24 -0
- package/lib/internal/EvidenceFingerprintIndex.d.ts +49 -0
- package/lib/internal/EvidenceFingerprintIndex.js +201 -0
- package/lib/internal/EvidenceTargetApplicability.d.ts +16 -0
- package/lib/internal/EvidenceTargetApplicability.js +144 -0
- package/lib/internal/EvidenceTargetBody.d.ts +21 -0
- package/lib/internal/EvidenceTargetBody.js +66 -0
- package/lib/internal/FileGlob.d.ts +24 -0
- package/lib/internal/FileGlob.js +148 -0
- package/lib/internal/IConfigDependencyScan.d.ts +25 -0
- package/lib/internal/IConfigDependencyScan.js +2 -0
- package/lib/internal/IConfigPackageScope.d.ts +16 -0
- package/lib/internal/IConfigPackageScope.js +2 -0
- package/lib/internal/IEvaluateTypeScriptConfigOptions.d.ts +16 -0
- package/lib/internal/IEvaluateTypeScriptConfigOptions.js +2 -0
- package/lib/internal/IEvidenceMaterializedClaim.d.ts +47 -0
- package/lib/internal/IEvidenceMaterializedClaim.js +2 -0
- package/lib/internal/IEvidenceMaterializedReference.d.ts +31 -0
- package/lib/internal/IEvidenceMaterializedReference.js +2 -0
- package/lib/internal/IEvidenceQueryPopulation.d.ts +43 -0
- package/lib/internal/IEvidenceQueryPopulation.js +2 -0
- package/lib/internal/IEvidenceResolvedAcknowledgement.d.ts +30 -0
- package/lib/internal/IEvidenceResolvedAcknowledgement.js +2 -0
- package/lib/internal/IEvidenceResolvedReview.d.ts +30 -0
- package/lib/internal/IEvidenceResolvedReview.js +2 -0
- package/lib/internal/IEvidenceTargetBody.d.ts +22 -0
- package/lib/internal/IEvidenceTargetBody.js +2 -0
- package/lib/internal/IEvidenceTargetCandidate.d.ts +23 -0
- package/lib/internal/IEvidenceTargetCandidate.js +2 -0
- package/lib/internal/IEvidenceUnhostedChecklist.d.ts +38 -0
- package/lib/internal/IEvidenceUnhostedChecklist.js +2 -0
- package/lib/internal/IEvidenceWatchAttempt.d.ts +39 -0
- package/lib/internal/IEvidenceWatchAttempt.js +2 -0
- package/lib/internal/IFileGlobPattern.d.ts +22 -0
- package/lib/internal/IFileGlobPattern.js +2 -0
- package/lib/internal/IPackageManifest.d.ts +16 -0
- package/lib/internal/IPackageManifest.js +2 -0
- package/lib/internal/IPendingEvidenceTag.d.ts +36 -0
- package/lib/internal/IPendingEvidenceTag.js +2 -0
- package/lib/internal/ITreeSitterAssetLock.d.ts +23 -0
- package/lib/internal/ITreeSitterAssetLock.js +2 -0
- package/lib/internal/ITreeSitterAssetOptions.d.ts +51 -0
- package/lib/internal/ITreeSitterAssetOptions.js +2 -0
- package/lib/internal/ITreeSitterAssetPending.d.ts +29 -0
- package/lib/internal/ITreeSitterAssetPending.js +2 -0
- package/lib/internal/ITtsxExecutables.d.ts +16 -0
- package/lib/internal/ITtsxExecutables.js +2 -0
- package/lib/internal/ITtsxManifest.d.ts +17 -0
- package/lib/internal/ITtsxManifest.js +2 -0
- package/lib/internal/InventoryMerge.d.ts +53 -0
- package/lib/internal/InventoryMerge.js +317 -0
- package/lib/internal/InventorySources.d.ts +16 -0
- package/lib/internal/InventorySources.js +77 -0
- package/lib/internal/ParserSlots.d.ts +79 -0
- package/lib/internal/ParserSlots.js +113 -0
- package/lib/internal/SourceCollector.d.ts +62 -0
- package/lib/internal/SourceCollector.js +301 -0
- package/lib/internal/SourceFailure.d.ts +17 -0
- package/lib/internal/SourceFailure.js +23 -0
- package/lib/internal/SourcePath.d.ts +43 -0
- package/lib/internal/SourcePath.js +93 -0
- package/lib/internal/SourceText.d.ts +40 -0
- package/lib/internal/SourceText.js +81 -0
- package/lib/internal/TreeSitterAssetCache.d.ts +35 -0
- package/lib/internal/TreeSitterAssetCache.js +456 -0
- package/lib/internal/TreeSitterAssetScope.d.ts +23 -0
- package/lib/internal/TreeSitterAssetScope.js +40 -0
- package/lib/internal/TreeSitterAssets.d.ts +67 -0
- package/lib/internal/TreeSitterAssets.js +367 -0
- package/lib/internal/TreeSitterRange.d.ts +17 -0
- package/lib/internal/TreeSitterRange.js +33 -0
- package/lib/internal/TreeSitterRuntime.d.ts +17 -0
- package/lib/internal/TreeSitterRuntime.js +57 -0
- package/lib/internal/WatchDependencySet.d.ts +31 -0
- package/lib/internal/WatchDependencySet.js +59 -0
- package/lib/internal/WatchDependencySnapshot.d.ts +38 -0
- package/lib/internal/WatchDependencySnapshot.js +191 -0
- package/lib/internal/createEvidenceConfigPlan.d.ts +10 -0
- package/lib/internal/createEvidenceConfigPlan.js +90 -0
- package/lib/internal/evaluateTypeScriptConfig.d.ts +9 -0
- package/lib/internal/evaluateTypeScriptConfig.js +341 -0
- package/lib/internal/parser-grammars.json +452 -0
- package/lib/internal/validateEvidenceConfig.d.ts +8 -0
- package/lib/internal/validateEvidenceConfig.js +154 -0
- package/lib/loaders/EvidenceConfigLoader.d.ts +36 -0
- package/lib/loaders/EvidenceConfigLoader.js +557 -0
- package/lib/loaders/EvidenceSourceLoader.d.ts +35 -0
- package/lib/loaders/EvidenceSourceLoader.js +50 -0
- package/lib/parsers/EvidenceDocumentation.d.ts +20 -0
- package/lib/parsers/EvidenceDocumentation.js +77 -0
- package/lib/parsers/EvidenceLanguageRegistry.d.ts +49 -0
- package/lib/parsers/EvidenceLanguageRegistry.js +652 -0
- package/lib/parsers/EvidenceParseSession.d.ts +141 -0
- package/lib/parsers/EvidenceParseSession.js +193 -0
- package/lib/parsers/EvidenceParser.d.ts +109 -0
- package/lib/parsers/EvidenceParser.js +307 -0
- package/lib/parsers/EvidenceParserError.d.ts +71 -0
- package/lib/parsers/EvidenceParserError.js +63 -0
- package/lib/parsers/EvidenceTagParser.d.ts +56 -0
- package/lib/parsers/EvidenceTagParser.js +81 -0
- package/lib/programmers/EvidenceCheckProgrammer.d.ts +36 -0
- package/lib/programmers/EvidenceCheckProgrammer.js +446 -0
- package/lib/programmers/EvidenceQueryProgrammer.d.ts +69 -0
- package/lib/programmers/EvidenceQueryProgrammer.js +970 -0
- package/lib/programmers/EvidenceTagProgrammer.d.ts +25 -0
- package/lib/programmers/EvidenceTagProgrammer.js +252 -0
- package/lib/reporters/EvidenceGraphReporter.d.ts +39 -0
- package/lib/reporters/EvidenceGraphReporter.js +193 -0
- package/lib/reporters/EvidenceQueryReporter.d.ts +33 -0
- package/lib/reporters/EvidenceQueryReporter.js +181 -0
- package/lib/reporters/EvidenceReporter.d.ts +33 -0
- package/lib/reporters/EvidenceReporter.js +117 -0
- package/lib/reporters/EvidenceWatchReporter.d.ts +31 -0
- package/lib/reporters/EvidenceWatchReporter.js +46 -0
- package/lib/structures/IEvidenceAdapter.d.ts +39 -0
- package/lib/structures/IEvidenceAdapter.js +2 -0
- package/lib/structures/IEvidenceAddress.d.ts +29 -0
- package/lib/structures/IEvidenceAddress.js +2 -0
- package/lib/structures/IEvidenceCheckAnalysis.d.ts +37 -0
- package/lib/structures/IEvidenceCheckAnalysis.js +2 -0
- package/lib/structures/IEvidenceCheckClaim.d.ts +48 -0
- package/lib/structures/IEvidenceCheckClaim.js +2 -0
- package/lib/structures/IEvidenceCheckCommand.d.ts +47 -0
- package/lib/structures/IEvidenceCheckCommand.js +2 -0
- package/lib/structures/IEvidenceCheckCounts.d.ts +70 -0
- package/lib/structures/IEvidenceCheckCounts.js +2 -0
- package/lib/structures/IEvidenceCheckObligation.d.ts +67 -0
- package/lib/structures/IEvidenceCheckObligation.js +2 -0
- package/lib/structures/IEvidenceCheckReport.d.ts +74 -0
- package/lib/structures/IEvidenceCheckReport.js +2 -0
- package/lib/structures/IEvidenceClaim.d.ts +12 -0
- package/lib/structures/IEvidenceClaim.js +2 -0
- package/lib/structures/IEvidenceClaimBase.d.ts +111 -0
- package/lib/structures/IEvidenceClaimBase.js +2 -0
- package/lib/structures/IEvidenceCommand.d.ts +16 -0
- package/lib/structures/IEvidenceCommand.js +2 -0
- package/lib/structures/IEvidenceCommandFailure.d.ts +58 -0
- package/lib/structures/IEvidenceCommandFailure.js +2 -0
- package/lib/structures/IEvidenceCommandResult.d.ts +31 -0
- package/lib/structures/IEvidenceCommandResult.js +2 -0
- package/lib/structures/IEvidenceCommentSyntax.d.ts +42 -0
- package/lib/structures/IEvidenceCommentSyntax.js +2 -0
- package/lib/structures/IEvidenceConfig.d.ts +42 -0
- package/lib/structures/IEvidenceConfig.js +2 -0
- package/lib/structures/IEvidenceConfigPlan.d.ts +29 -0
- package/lib/structures/IEvidenceConfigPlan.js +2 -0
- package/lib/structures/IEvidenceConfigPlanClaim.d.ts +49 -0
- package/lib/structures/IEvidenceConfigPlanClaim.js +2 -0
- package/lib/structures/IEvidenceConfigPlanReference.d.ts +40 -0
- package/lib/structures/IEvidenceConfigPlanReference.js +2 -0
- package/lib/structures/IEvidenceDatabaseClaim.d.ts +26 -0
- package/lib/structures/IEvidenceDatabaseClaim.js +2 -0
- package/lib/structures/IEvidenceDatabaseLanguage.d.ts +37 -0
- package/lib/structures/IEvidenceDatabaseLanguage.js +2 -0
- package/lib/structures/IEvidenceDatabaseLanguageAdapter.d.ts +48 -0
- package/lib/structures/IEvidenceDatabaseLanguageAdapter.js +2 -0
- package/lib/structures/IEvidenceDatabaseReference.d.ts +20 -0
- package/lib/structures/IEvidenceDatabaseReference.js +2 -0
- package/lib/structures/IEvidenceDeclaration.d.ts +37 -0
- package/lib/structures/IEvidenceDeclaration.js +2 -0
- package/lib/structures/IEvidenceDiagnostic.d.ts +66 -0
- package/lib/structures/IEvidenceDiagnostic.js +2 -0
- package/lib/structures/IEvidenceDocumentation.d.ts +51 -0
- package/lib/structures/IEvidenceDocumentation.js +2 -0
- package/lib/structures/IEvidenceDocumentedConfig.d.ts +20 -0
- package/lib/structures/IEvidenceDocumentedConfig.js +2 -0
- package/lib/structures/IEvidenceFingerprint.d.ts +49 -0
- package/lib/structures/IEvidenceFingerprint.js +2 -0
- package/lib/structures/IEvidenceGrammar.d.ts +47 -0
- package/lib/structures/IEvidenceGrammar.js +2 -0
- package/lib/structures/IEvidenceGrammarAsset.d.ts +37 -0
- package/lib/structures/IEvidenceGrammarAsset.js +2 -0
- package/lib/structures/IEvidenceGraphBoundary.d.ts +73 -0
- package/lib/structures/IEvidenceGraphBoundary.js +2 -0
- package/lib/structures/IEvidenceGraphClaim.d.ts +65 -0
- package/lib/structures/IEvidenceGraphClaim.js +2 -0
- package/lib/structures/IEvidenceGraphClaimResult.d.ts +36 -0
- package/lib/structures/IEvidenceGraphClaimResult.js +2 -0
- package/lib/structures/IEvidenceGraphCommand.d.ts +40 -0
- package/lib/structures/IEvidenceGraphCommand.js +2 -0
- package/lib/structures/IEvidenceGraphEdge.d.ts +56 -0
- package/lib/structures/IEvidenceGraphEdge.js +2 -0
- package/lib/structures/IEvidenceGraphExportEdge.d.ts +71 -0
- package/lib/structures/IEvidenceGraphExportEdge.js +2 -0
- package/lib/structures/IEvidenceGraphExportReview.d.ts +55 -0
- package/lib/structures/IEvidenceGraphExportReview.js +2 -0
- package/lib/structures/IEvidenceGraphHostCoverage.d.ts +36 -0
- package/lib/structures/IEvidenceGraphHostCoverage.js +2 -0
- package/lib/structures/IEvidenceGraphHostNode.d.ts +46 -0
- package/lib/structures/IEvidenceGraphHostNode.js +2 -0
- package/lib/structures/IEvidenceGraphInput.d.ts +24 -0
- package/lib/structures/IEvidenceGraphInput.js +2 -0
- package/lib/structures/IEvidenceGraphNode.d.ts +82 -0
- package/lib/structures/IEvidenceGraphNode.js +2 -0
- package/lib/structures/IEvidenceGraphObligation.d.ts +79 -0
- package/lib/structures/IEvidenceGraphObligation.js +2 -0
- package/lib/structures/IEvidenceGraphPolicy.d.ts +53 -0
- package/lib/structures/IEvidenceGraphPolicy.js +2 -0
- package/lib/structures/IEvidenceGraphReference.d.ts +95 -0
- package/lib/structures/IEvidenceGraphReference.js +2 -0
- package/lib/structures/IEvidenceGraphReport.d.ts +84 -0
- package/lib/structures/IEvidenceGraphReport.js +2 -0
- package/lib/structures/IEvidenceGraphResolution.d.ts +22 -0
- package/lib/structures/IEvidenceGraphResolution.js +2 -0
- package/lib/structures/IEvidenceGraphResult.d.ts +37 -0
- package/lib/structures/IEvidenceGraphResult.js +2 -0
- package/lib/structures/IEvidenceGraphReviewResolution.d.ts +23 -0
- package/lib/structures/IEvidenceGraphReviewResolution.js +2 -0
- package/lib/structures/IEvidenceHelpCommand.d.ts +14 -0
- package/lib/structures/IEvidenceHelpCommand.js +2 -0
- package/lib/structures/IEvidenceHost.d.ts +78 -0
- package/lib/structures/IEvidenceHost.js +2 -0
- package/lib/structures/IEvidenceInitCommand.d.ts +26 -0
- package/lib/structures/IEvidenceInitCommand.js +2 -0
- package/lib/structures/IEvidenceInspectCommand.d.ts +46 -0
- package/lib/structures/IEvidenceInspectCommand.js +2 -0
- package/lib/structures/IEvidenceInspectReport.d.ts +70 -0
- package/lib/structures/IEvidenceInspectReport.js +2 -0
- package/lib/structures/IEvidenceInspectedAcknowledgement.d.ts +60 -0
- package/lib/structures/IEvidenceInspectedAcknowledgement.js +2 -0
- package/lib/structures/IEvidenceInspectedObligation.d.ts +61 -0
- package/lib/structures/IEvidenceInspectedObligation.js +2 -0
- package/lib/structures/IEvidenceInspectedReview.d.ts +48 -0
- package/lib/structures/IEvidenceInspectedReview.js +2 -0
- package/lib/structures/IEvidenceInspectedUnit.d.ts +36 -0
- package/lib/structures/IEvidenceInspectedUnit.js +2 -0
- package/lib/structures/IEvidenceInspection.d.ts +73 -0
- package/lib/structures/IEvidenceInspection.js +2 -0
- package/lib/structures/IEvidenceInventory.d.ts +114 -0
- package/lib/structures/IEvidenceInventory.js +2 -0
- package/lib/structures/IEvidenceLanguage.d.ts +37 -0
- package/lib/structures/IEvidenceLanguage.js +2 -0
- package/lib/structures/IEvidenceLanguageAdapter.d.ts +49 -0
- package/lib/structures/IEvidenceLanguageAdapter.js +2 -0
- package/lib/structures/IEvidenceLanguageCandidate.d.ts +94 -0
- package/lib/structures/IEvidenceLanguageCandidate.js +2 -0
- package/lib/structures/IEvidenceLanguageGrammar.d.ts +29 -0
- package/lib/structures/IEvidenceLanguageGrammar.js +2 -0
- package/lib/structures/IEvidenceLanguagesCommand.d.ts +33 -0
- package/lib/structures/IEvidenceLanguagesCommand.js +2 -0
- package/lib/structures/IEvidenceLanguagesReport.d.ts +36 -0
- package/lib/structures/IEvidenceLanguagesReport.js +2 -0
- package/lib/structures/IEvidenceListCommand.d.ts +55 -0
- package/lib/structures/IEvidenceListCommand.js +2 -0
- package/lib/structures/IEvidenceListItem.d.ts +69 -0
- package/lib/structures/IEvidenceListItem.js +2 -0
- package/lib/structures/IEvidenceListReport.d.ts +82 -0
- package/lib/structures/IEvidenceListReport.js +2 -0
- package/lib/structures/IEvidenceMarkdownClaim.d.ts +19 -0
- package/lib/structures/IEvidenceMarkdownClaim.js +2 -0
- package/lib/structures/IEvidenceMarkdownReference.d.ts +48 -0
- package/lib/structures/IEvidenceMarkdownReference.js +2 -0
- package/lib/structures/IEvidenceParserInput.d.ts +31 -0
- package/lib/structures/IEvidenceParserInput.js +2 -0
- package/lib/structures/IEvidenceParserOptions.d.ts +19 -0
- package/lib/structures/IEvidenceParserOptions.js +2 -0
- package/lib/structures/IEvidenceParserState.d.ts +34 -0
- package/lib/structures/IEvidenceParserState.js +2 -0
- package/lib/structures/IEvidencePopulation.d.ts +63 -0
- package/lib/structures/IEvidencePopulation.js +2 -0
- package/lib/structures/IEvidenceProgrammingClaim.d.ts +28 -0
- package/lib/structures/IEvidenceProgrammingClaim.js +2 -0
- package/lib/structures/IEvidenceProgrammingReference.d.ts +20 -0
- package/lib/structures/IEvidenceProgrammingReference.js +2 -0
- package/lib/structures/IEvidencePublicAddress.d.ts +21 -0
- package/lib/structures/IEvidencePublicAddress.js +2 -0
- package/lib/structures/IEvidenceQueryScope.d.ts +41 -0
- package/lib/structures/IEvidenceQueryScope.js +2 -0
- package/lib/structures/IEvidenceReference.d.ts +12 -0
- package/lib/structures/IEvidenceReference.js +2 -0
- package/lib/structures/IEvidenceReferenceBase.d.ts +107 -0
- package/lib/structures/IEvidenceReferenceBase.js +2 -0
- package/lib/structures/IEvidenceResolution.d.ts +32 -0
- package/lib/structures/IEvidenceResolution.js +2 -0
- package/lib/structures/IEvidenceReview.d.ts +50 -0
- package/lib/structures/IEvidenceReview.js +2 -0
- package/lib/structures/IEvidenceSourceAddress.d.ts +39 -0
- package/lib/structures/IEvidenceSourceAddress.js +2 -0
- package/lib/structures/IEvidenceSourceDependency.d.ts +24 -0
- package/lib/structures/IEvidenceSourceDependency.js +2 -0
- package/lib/structures/IEvidenceSourceDiagnostic.d.ts +30 -0
- package/lib/structures/IEvidenceSourceDiagnostic.js +2 -0
- package/lib/structures/IEvidenceSourceFile.d.ts +50 -0
- package/lib/structures/IEvidenceSourceFile.js +2 -0
- package/lib/structures/IEvidenceSourceLocation.d.ts +23 -0
- package/lib/structures/IEvidenceSourceLocation.js +2 -0
- package/lib/structures/IEvidenceSourcePosition.d.ts +36 -0
- package/lib/structures/IEvidenceSourcePosition.js +2 -0
- package/lib/structures/IEvidenceSourceRange.d.ts +28 -0
- package/lib/structures/IEvidenceSourceRange.js +2 -0
- package/lib/structures/IEvidenceSourceRoot.d.ts +38 -0
- package/lib/structures/IEvidenceSourceRoot.js +2 -0
- package/lib/structures/IEvidenceSourceSelection.d.ts +23 -0
- package/lib/structures/IEvidenceSourceSelection.js +2 -0
- package/lib/structures/IEvidenceSourceSnapshot.d.ts +53 -0
- package/lib/structures/IEvidenceSourceSnapshot.js +2 -0
- package/lib/structures/IEvidenceSupportedDatabaseLanguage.d.ts +36 -0
- package/lib/structures/IEvidenceSupportedDatabaseLanguage.js +2 -0
- package/lib/structures/IEvidenceSupportedLanguage.d.ts +36 -0
- package/lib/structures/IEvidenceSupportedLanguage.js +2 -0
- package/lib/structures/IEvidenceSwaggerClaim.d.ts +17 -0
- package/lib/structures/IEvidenceSwaggerClaim.js +2 -0
- package/lib/structures/IEvidenceSwaggerReference.d.ts +23 -0
- package/lib/structures/IEvidenceSwaggerReference.js +2 -0
- package/lib/structures/IEvidenceTagParseResult.d.ts +37 -0
- package/lib/structures/IEvidenceTagParseResult.js +2 -0
- package/lib/structures/IEvidenceTargetResolution.d.ts +51 -0
- package/lib/structures/IEvidenceTargetResolution.js +2 -0
- package/lib/structures/IEvidenceTargetStatement.d.ts +32 -0
- package/lib/structures/IEvidenceTargetStatement.js +2 -0
- package/lib/structures/IEvidenceUnit.d.ts +96 -0
- package/lib/structures/IEvidenceUnit.js +2 -0
- package/lib/structures/IEvidenceUnitSite.d.ts +44 -0
- package/lib/structures/IEvidenceUnitSite.js +2 -0
- package/lib/structures/IEvidenceVersionCommand.d.ts +14 -0
- package/lib/structures/IEvidenceVersionCommand.js +2 -0
- package/lib/structures/IEvidenceWatchCheckCycle.d.ts +60 -0
- package/lib/structures/IEvidenceWatchCheckCycle.js +2 -0
- package/lib/structures/IEvidenceWatchFailureCycle.d.ts +70 -0
- package/lib/structures/IEvidenceWatchFailureCycle.js +2 -0
- package/lib/structures/IEvidenceWatchOptions.d.ts +37 -0
- package/lib/structures/IEvidenceWatchOptions.js +2 -0
- package/lib/structures/IEvidenceWithdrawal.d.ts +24 -0
- package/lib/structures/IEvidenceWithdrawal.js +2 -0
- package/lib/structures/index.d.ts +105 -0
- package/lib/structures/index.js +2 -0
- package/lib/targets/EvidenceAccessor.d.ts +31 -0
- package/lib/targets/EvidenceAccessor.js +165 -0
- package/lib/targets/EvidenceFileTarget.d.ts +41 -0
- package/lib/targets/EvidenceFileTarget.js +122 -0
- package/lib/targets/EvidenceTargetResolver.d.ts +174 -0
- package/lib/targets/EvidenceTargetResolver.js +403 -0
- package/lib/typings/EvidenceAcknowledgementKind.d.ts +7 -0
- package/lib/typings/EvidenceAcknowledgementKind.js +2 -0
- package/lib/typings/EvidenceActiveSeverity.d.ts +7 -0
- package/lib/typings/EvidenceActiveSeverity.js +2 -0
- package/lib/typings/EvidenceArtifactType.d.ts +10 -0
- package/lib/typings/EvidenceArtifactType.js +2 -0
- package/lib/typings/EvidenceCheckStatus.d.ts +8 -0
- package/lib/typings/EvidenceCheckStatus.js +2 -0
- package/lib/typings/EvidenceCommandExitCode.d.ts +8 -0
- package/lib/typings/EvidenceCommandExitCode.js +2 -0
- package/lib/typings/EvidenceDatabaseSymbol.d.ts +24 -0
- package/lib/typings/EvidenceDatabaseSymbol.js +2 -0
- package/lib/typings/EvidenceDatabaseType.d.ts +7 -0
- package/lib/typings/EvidenceDatabaseType.js +2 -0
- package/lib/typings/EvidenceGrammarWasmAvailability.d.ts +7 -0
- package/lib/typings/EvidenceGrammarWasmAvailability.js +2 -0
- package/lib/typings/EvidenceGraphFormat.d.ts +7 -0
- package/lib/typings/EvidenceGraphFormat.js +2 -0
- package/lib/typings/EvidenceGraphNode.d.ts +10 -0
- package/lib/typings/EvidenceGraphNode.js +2 -0
- package/lib/typings/EvidenceLanguageCandidateId.d.ts +7 -0
- package/lib/typings/EvidenceLanguageCandidateId.js +2 -0
- package/lib/typings/EvidenceLanguageCandidateKind.d.ts +7 -0
- package/lib/typings/EvidenceLanguageCandidateKind.js +2 -0
- package/lib/typings/EvidenceMarkdownSymbol.d.ts +22 -0
- package/lib/typings/EvidenceMarkdownSymbol.js +2 -0
- package/lib/typings/EvidenceParserErrorCode.d.ts +8 -0
- package/lib/typings/EvidenceParserErrorCode.js +2 -0
- package/lib/typings/EvidencePopulationRole.d.ts +7 -0
- package/lib/typings/EvidencePopulationRole.js +2 -0
- package/lib/typings/EvidenceProgrammingSymbol.d.ts +58 -0
- package/lib/typings/EvidenceProgrammingSymbol.js +2 -0
- package/lib/typings/EvidenceProgrammingType.d.ts +7 -0
- package/lib/typings/EvidenceProgrammingType.js +2 -0
- package/lib/typings/EvidenceQueryReport.d.ts +10 -0
- package/lib/typings/EvidenceQueryReport.js +2 -0
- package/lib/typings/EvidenceReportFormat.d.ts +7 -0
- package/lib/typings/EvidenceReportFormat.js +2 -0
- package/lib/typings/EvidenceSeverity.d.ts +7 -0
- package/lib/typings/EvidenceSeverity.js +2 -0
- package/lib/typings/EvidenceSymbol.d.ts +11 -0
- package/lib/typings/EvidenceSymbol.js +2 -0
- package/lib/typings/EvidenceTargetResolutionStatus.d.ts +8 -0
- package/lib/typings/EvidenceTargetResolutionStatus.js +2 -0
- package/lib/typings/EvidenceUnitSelection.d.ts +7 -0
- package/lib/typings/EvidenceUnitSelection.js +2 -0
- package/lib/typings/EvidenceWatchCycle.d.ts +9 -0
- package/lib/typings/EvidenceWatchCycle.js +2 -0
- package/lib/typings/EvidenceWatchPublisher.d.ts +8 -0
- package/lib/typings/EvidenceWatchPublisher.js +2 -0
- package/lib/typings/index.d.ts +25 -0
- package/lib/typings/index.js +2 -0
- package/package.json +66 -0
|
@@ -0,0 +1,1019 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PythonFileScanner = void 0;
|
|
4
|
+
const EvidenceDocumentation_1 = require("../../parsers/EvidenceDocumentation");
|
|
5
|
+
const PythonSyntax_1 = require("./PythonSyntax");
|
|
6
|
+
const SourceText_1 = require("../../internal/SourceText");
|
|
7
|
+
/**
|
|
8
|
+
* Extracts Python declarations and static module bindings from one source file.
|
|
9
|
+
*
|
|
10
|
+
* This scanner classifies source-local public surface and documentation while a
|
|
11
|
+
* later snapshot-wide resolver follows imports and publishes public addresses.
|
|
12
|
+
*/
|
|
13
|
+
class PythonFileScanner {
|
|
14
|
+
session;
|
|
15
|
+
source;
|
|
16
|
+
/**
|
|
17
|
+
* Records the file's statically understood `__all__` state and names.
|
|
18
|
+
*
|
|
19
|
+
* Dynamic mutations make the analysis incomplete rather than allowing the
|
|
20
|
+
* export resolver to infer a smaller public surface.
|
|
21
|
+
*/
|
|
22
|
+
all = { state: "absent", names: [] };
|
|
23
|
+
/**
|
|
24
|
+
* Collects ordered module bindings used by later export resolution.
|
|
25
|
+
*
|
|
26
|
+
* Binding order preserves Python shadowing semantics for imports and locals.
|
|
27
|
+
*/
|
|
28
|
+
bindings = [];
|
|
29
|
+
/**
|
|
30
|
+
* Owns units indexed by their semantic identity within this source file.
|
|
31
|
+
*
|
|
32
|
+
* Repeated declaration sites contribute to the same record before it is
|
|
33
|
+
* returned as a serializable file analysis.
|
|
34
|
+
*/
|
|
35
|
+
units = new Map();
|
|
36
|
+
/**
|
|
37
|
+
* Tracks declaration positions used to identify enclosing public hosts.
|
|
38
|
+
*
|
|
39
|
+
* Position records retain nesting information after parser nodes are released.
|
|
40
|
+
*/
|
|
41
|
+
positions = new Map();
|
|
42
|
+
/**
|
|
43
|
+
* Holds parsed comment and string documentation by extraction identity.
|
|
44
|
+
*
|
|
45
|
+
* Attachments are added as declarations are recognized instead of inferred
|
|
46
|
+
* later from line adjacency.
|
|
47
|
+
*/
|
|
48
|
+
documentation = new Map();
|
|
49
|
+
/**
|
|
50
|
+
* Indexes contiguous comment runs by their final one-based source line.
|
|
51
|
+
*
|
|
52
|
+
* A declaration can attach only to an immediately preceding standalone run.
|
|
53
|
+
*/
|
|
54
|
+
commentDocumentation = new Map();
|
|
55
|
+
/**
|
|
56
|
+
* Collects diagnostics that describe unsupported public-surface constructs.
|
|
57
|
+
*
|
|
58
|
+
* They are returned with the file analysis so the adapter can retain failure
|
|
59
|
+
* context after closing the parse session.
|
|
60
|
+
*/
|
|
61
|
+
diagnostics = [];
|
|
62
|
+
/**
|
|
63
|
+
* Remembers reported source decisions to avoid duplicate diagnostics.
|
|
64
|
+
*
|
|
65
|
+
* Several traversal predicates can encounter one unsupported node.
|
|
66
|
+
*/
|
|
67
|
+
reported = new Set();
|
|
68
|
+
/**
|
|
69
|
+
* Tracks string ranges already consumed as a concatenated docstring.
|
|
70
|
+
*
|
|
71
|
+
* This prevents adjacent string literals from producing overlapping mappings.
|
|
72
|
+
*/
|
|
73
|
+
docstringParts = new Set();
|
|
74
|
+
/**
|
|
75
|
+
* Converts parser offsets into source ranges for units and documentation.
|
|
76
|
+
*
|
|
77
|
+
* The scanner owns this helper because all returned records must outlive nodes.
|
|
78
|
+
*/
|
|
79
|
+
text;
|
|
80
|
+
/**
|
|
81
|
+
* States whether every surface-affecting construct was statically classified.
|
|
82
|
+
*
|
|
83
|
+
* Unsupported dynamic forms set this false so missing declarations cannot
|
|
84
|
+
* reduce the inventory population.
|
|
85
|
+
*/
|
|
86
|
+
complete = true;
|
|
87
|
+
/**
|
|
88
|
+
* Binds the active parser session to the selected source snapshot.
|
|
89
|
+
*
|
|
90
|
+
* Comment runs are collected eagerly because later traversal intentionally
|
|
91
|
+
* skips comments while classifying executable declarations.
|
|
92
|
+
*/
|
|
93
|
+
constructor(session, source) {
|
|
94
|
+
this.session = session;
|
|
95
|
+
this.source = source;
|
|
96
|
+
this.text = new SourceText_1.SourceText(source.content);
|
|
97
|
+
this.collectCommentRuns();
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Produces the serializable extraction result for this Python source file.
|
|
101
|
+
*
|
|
102
|
+
* The first pass establishes `__all__`; the second records declarations and
|
|
103
|
+
* bindings, so public-name decisions do not depend on statement encounter order.
|
|
104
|
+
*/
|
|
105
|
+
scan() {
|
|
106
|
+
const statements = this.session.root.namedChildren.filter((statement) => statement.type !== "comment");
|
|
107
|
+
for (const statement of statements) {
|
|
108
|
+
const handled = this.scanAll(statement);
|
|
109
|
+
if (!handled && this.containsAllMutation(statement))
|
|
110
|
+
this.dynamicAll(statement);
|
|
111
|
+
}
|
|
112
|
+
for (const statement of statements) {
|
|
113
|
+
if (statement.type === "comment")
|
|
114
|
+
continue;
|
|
115
|
+
if (this.scanImport(statement))
|
|
116
|
+
continue;
|
|
117
|
+
const definition = PythonSyntax_1.PythonSyntax.definition(statement);
|
|
118
|
+
switch (definition.type) {
|
|
119
|
+
case "class_definition":
|
|
120
|
+
this.scanClass(statement, definition);
|
|
121
|
+
break;
|
|
122
|
+
case "function_definition":
|
|
123
|
+
this.scanFunction(statement, definition);
|
|
124
|
+
break;
|
|
125
|
+
case "type_alias_statement":
|
|
126
|
+
this.scanTypeAlias(statement, definition);
|
|
127
|
+
break;
|
|
128
|
+
case "expression_statement":
|
|
129
|
+
this.scanModuleExpression(statement);
|
|
130
|
+
break;
|
|
131
|
+
default:
|
|
132
|
+
if (this.containsModuleSurface(statement))
|
|
133
|
+
this.problem("python-dynamic-surface", "A control-flow statement conditionally changes the module's declared public surface.", "Move public declarations and imports to unconditional module scope.", statement);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
this.collectStringAnnotations();
|
|
137
|
+
return {
|
|
138
|
+
source: this.source,
|
|
139
|
+
all: this.all,
|
|
140
|
+
bindings: this.bindings,
|
|
141
|
+
units: Array.from(this.units.values()),
|
|
142
|
+
positions: Array.from(this.positions.values()),
|
|
143
|
+
documentation: Array.from(this.documentation.values()),
|
|
144
|
+
diagnostics: this.diagnostics,
|
|
145
|
+
complete: this.complete,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Classifies one static `__all__` assignment or augmentation.
|
|
150
|
+
*
|
|
151
|
+
* Returns whether the statement owns `__all__` handling so other surface
|
|
152
|
+
* checks do not report the same mutation as an unrelated dynamic construct.
|
|
153
|
+
*/
|
|
154
|
+
scanAll(statement) {
|
|
155
|
+
if (statement.type !== "expression_statement")
|
|
156
|
+
return false;
|
|
157
|
+
const expression = statement.namedChildren[0];
|
|
158
|
+
if (expression?.type === "assignment") {
|
|
159
|
+
if (PythonSyntax_1.PythonSyntax.assignmentName(expression) !== "__all__")
|
|
160
|
+
return false;
|
|
161
|
+
const names = PythonSyntax_1.PythonSyntax.literalSequence(expression.childForFieldName("right"));
|
|
162
|
+
if (names === undefined)
|
|
163
|
+
this.dynamicAll(expression);
|
|
164
|
+
else {
|
|
165
|
+
this.all.state = "static";
|
|
166
|
+
this.all.names = names;
|
|
167
|
+
}
|
|
168
|
+
return true;
|
|
169
|
+
}
|
|
170
|
+
if (expression?.type === "augmented_assignment") {
|
|
171
|
+
if (PythonSyntax_1.PythonSyntax.assignmentName(expression) !== "__all__")
|
|
172
|
+
return false;
|
|
173
|
+
const names = PythonSyntax_1.PythonSyntax.literalSequence(expression.childForFieldName("right"));
|
|
174
|
+
if (this.all.state !== "static" || names === undefined)
|
|
175
|
+
this.dynamicAll(expression);
|
|
176
|
+
else
|
|
177
|
+
this.all.names.push(...names);
|
|
178
|
+
return true;
|
|
179
|
+
}
|
|
180
|
+
return false;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Records bindings introduced by one supported module-scope import.
|
|
184
|
+
*
|
|
185
|
+
* Returns whether the statement was an import so declaration scanning can
|
|
186
|
+
* continue without treating it as an unsupported surface expression.
|
|
187
|
+
*/
|
|
188
|
+
scanImport(statement) {
|
|
189
|
+
if (statement.type === "import_statement") {
|
|
190
|
+
statement.namedChildren.forEach((entry, index) => {
|
|
191
|
+
if (entry.type === "aliased_import") {
|
|
192
|
+
const imported = entry.childForFieldName("name")?.text;
|
|
193
|
+
const local = PythonSyntax_1.PythonSyntax.name(entry.childForFieldName("alias"));
|
|
194
|
+
if (imported !== undefined && local !== undefined)
|
|
195
|
+
this.bindings.push({
|
|
196
|
+
kind: "namespace",
|
|
197
|
+
order: statement.startIndex + index,
|
|
198
|
+
localName: local,
|
|
199
|
+
specifier: imported,
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
else if (entry.type === "dotted_name") {
|
|
203
|
+
const imported = entry.text;
|
|
204
|
+
const local = imported.split(".")[0];
|
|
205
|
+
if (local !== undefined)
|
|
206
|
+
this.bindings.push({
|
|
207
|
+
kind: "namespace",
|
|
208
|
+
order: statement.startIndex + index,
|
|
209
|
+
localName: local,
|
|
210
|
+
specifier: local,
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
});
|
|
214
|
+
return true;
|
|
215
|
+
}
|
|
216
|
+
if (statement.type !== "import_from_statement")
|
|
217
|
+
return false;
|
|
218
|
+
const module = statement.childForFieldName("module_name");
|
|
219
|
+
const specifier = module?.text;
|
|
220
|
+
if (specifier === undefined) {
|
|
221
|
+
this.problem("python-import", "A from-import has no statically readable module name.", "Use an absolute or explicit relative module name inside the configured root.", statement);
|
|
222
|
+
return true;
|
|
223
|
+
}
|
|
224
|
+
if (specifier === "__future__")
|
|
225
|
+
return true;
|
|
226
|
+
if (statement.namedChildren.some((child) => child.type === "wildcard_import")) {
|
|
227
|
+
this.bindings.push({
|
|
228
|
+
kind: "star",
|
|
229
|
+
order: statement.startIndex,
|
|
230
|
+
specifier,
|
|
231
|
+
});
|
|
232
|
+
return true;
|
|
233
|
+
}
|
|
234
|
+
let index = 0;
|
|
235
|
+
for (const entry of statement.namedChildren) {
|
|
236
|
+
if (module !== null && entry.equals(module))
|
|
237
|
+
continue;
|
|
238
|
+
if (entry.type === "aliased_import") {
|
|
239
|
+
const imported = entry.childForFieldName("name")?.text;
|
|
240
|
+
const local = PythonSyntax_1.PythonSyntax.name(entry.childForFieldName("alias"));
|
|
241
|
+
if (imported !== undefined && local !== undefined)
|
|
242
|
+
this.bindings.push({
|
|
243
|
+
kind: "named",
|
|
244
|
+
order: statement.startIndex + index++,
|
|
245
|
+
localName: local,
|
|
246
|
+
importedName: imported,
|
|
247
|
+
specifier,
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
else if (entry.type === "dotted_name") {
|
|
251
|
+
this.bindings.push({
|
|
252
|
+
kind: "named",
|
|
253
|
+
order: statement.startIndex + index++,
|
|
254
|
+
localName: entry.text,
|
|
255
|
+
importedName: entry.text,
|
|
256
|
+
specifier,
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
return true;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Extracts a class declaration and its supported class-level members.
|
|
264
|
+
*
|
|
265
|
+
* Nested traversal carries the class identity so methods and fields receive
|
|
266
|
+
* addresses relative to their owning public type.
|
|
267
|
+
*/
|
|
268
|
+
scanClass(wrapper, definition, parent) {
|
|
269
|
+
const name = PythonSyntax_1.PythonSyntax.name(definition.childForFieldName("name"));
|
|
270
|
+
if (name === undefined || (parent !== undefined && this.private(name)))
|
|
271
|
+
return;
|
|
272
|
+
const root = parent?.root ?? this.rootToken(name, wrapper);
|
|
273
|
+
const identity = [...(parent?.identity ?? []), name];
|
|
274
|
+
const suffix = parent === undefined ? [] : [...parent.suffix, name];
|
|
275
|
+
const body = definition.childForFieldName("body");
|
|
276
|
+
const headerEnd = body?.startIndex ?? definition.endIndex;
|
|
277
|
+
const record = this.addUnit(wrapper, definition, "type", identity, root, suffix, parent?.parentId, this.text.range(wrapper.startIndex, headerEnd));
|
|
278
|
+
if (parent === undefined)
|
|
279
|
+
this.bindLocal(name, wrapper.startIndex, root);
|
|
280
|
+
if (body === null)
|
|
281
|
+
return;
|
|
282
|
+
const context = {
|
|
283
|
+
identity,
|
|
284
|
+
suffix,
|
|
285
|
+
root,
|
|
286
|
+
parentId: record.unit.id,
|
|
287
|
+
};
|
|
288
|
+
for (const statement of body.namedChildren) {
|
|
289
|
+
if (statement.type === "comment")
|
|
290
|
+
continue;
|
|
291
|
+
const child = PythonSyntax_1.PythonSyntax.definition(statement);
|
|
292
|
+
switch (child.type) {
|
|
293
|
+
case "class_definition":
|
|
294
|
+
this.scanClass(statement, child, context);
|
|
295
|
+
break;
|
|
296
|
+
case "function_definition":
|
|
297
|
+
this.scanMethod(statement, child, context);
|
|
298
|
+
break;
|
|
299
|
+
case "type_alias_statement":
|
|
300
|
+
this.scanTypeAlias(statement, child, context);
|
|
301
|
+
break;
|
|
302
|
+
case "expression_statement":
|
|
303
|
+
this.scanClassExpression(statement, context);
|
|
304
|
+
break;
|
|
305
|
+
default:
|
|
306
|
+
if (this.containsClassSurface(statement))
|
|
307
|
+
this.problem("python-dynamic-class-surface", `Control flow conditionally changes the declared surface of class '${name}'.`, "Move public nested declarations and class attributes to unconditional class scope.", statement);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Extracts a module-level function declaration.
|
|
313
|
+
*
|
|
314
|
+
* The wrapper supplies documentation attachment while the definition supplies
|
|
315
|
+
* the semantic name and source content range.
|
|
316
|
+
*/
|
|
317
|
+
scanFunction(wrapper, definition) {
|
|
318
|
+
const name = PythonSyntax_1.PythonSyntax.name(definition.childForFieldName("name"));
|
|
319
|
+
if (name === undefined)
|
|
320
|
+
return;
|
|
321
|
+
const root = this.rootToken(name, wrapper);
|
|
322
|
+
this.addUnit(wrapper, definition, "function", [name], root, [], undefined, this.session.range(wrapper));
|
|
323
|
+
this.bindLocal(name, wrapper.startIndex, root);
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Extracts a method declared in a selected class.
|
|
327
|
+
*
|
|
328
|
+
* Class context distinguishes instance and supported static-style ownership
|
|
329
|
+
* before the unit is added to the file-local collection.
|
|
330
|
+
*/
|
|
331
|
+
scanMethod(wrapper, definition, context) {
|
|
332
|
+
const name = PythonSyntax_1.PythonSyntax.name(definition.childForFieldName("name"));
|
|
333
|
+
if (name === undefined)
|
|
334
|
+
return;
|
|
335
|
+
if (name === "__init__") {
|
|
336
|
+
this.scanInstanceFields(definition, context);
|
|
337
|
+
return;
|
|
338
|
+
}
|
|
339
|
+
if (this.private(name))
|
|
340
|
+
return;
|
|
341
|
+
const decorators = PythonSyntax_1.PythonSyntax.decoratorNames(wrapper);
|
|
342
|
+
const direct = decorators.some((decorator) => decorator === "staticmethod" || decorator === "classmethod");
|
|
343
|
+
const property = decorators.some((decorator) => decorator === "property" ||
|
|
344
|
+
decorator === "cached_property" ||
|
|
345
|
+
decorator === "functools.cached_property" ||
|
|
346
|
+
decorator.endsWith(".getter") ||
|
|
347
|
+
decorator.endsWith(".setter") ||
|
|
348
|
+
decorator.endsWith(".deleter"));
|
|
349
|
+
const ownership = direct ? [] : ["prototype"];
|
|
350
|
+
this.addUnit(wrapper, definition, property ? "property" : "function", [...context.identity, ...ownership, name], context.root, [...context.suffix, ...ownership, name], context.parentId, this.session.range(wrapper));
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Extracts a statically named module-level type alias.
|
|
354
|
+
*
|
|
355
|
+
* The alias is a public type declaration when it is not private by spelling.
|
|
356
|
+
*/
|
|
357
|
+
scanTypeAlias(wrapper, definition, context) {
|
|
358
|
+
const name = PythonSyntax_1.PythonSyntax.typeAliasName(definition);
|
|
359
|
+
if (name === undefined || (context !== undefined && this.private(name)))
|
|
360
|
+
return;
|
|
361
|
+
const root = context?.root ?? this.rootToken(name, wrapper);
|
|
362
|
+
this.addUnit(wrapper, definition, "type", [...(context?.identity ?? []), name], root, context === undefined ? [] : [...context.suffix, name], context?.parentId, this.session.range(wrapper));
|
|
363
|
+
if (context === undefined)
|
|
364
|
+
this.bindLocal(name, wrapper.startIndex, root);
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* Classifies a module-scope expression that may alter public declarations.
|
|
368
|
+
*
|
|
369
|
+
* Supported assignment forms are delegated; unrecognized surface mutations
|
|
370
|
+
* become diagnostics to preserve inventory completeness.
|
|
371
|
+
*/
|
|
372
|
+
scanModuleExpression(statement) {
|
|
373
|
+
const expression = statement.namedChildren[0];
|
|
374
|
+
if (expression?.type === "assignment")
|
|
375
|
+
this.scanAssignments(statement, expression);
|
|
376
|
+
else if (expression?.type === "augmented_assignment")
|
|
377
|
+
this.scanAugmentedAssignment(statement, expression);
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Classifies a class-body expression that may define a member.
|
|
381
|
+
*
|
|
382
|
+
* Assignment handling receives the class context needed to publish member
|
|
383
|
+
* addresses and reject unsupported receiver mutation.
|
|
384
|
+
*/
|
|
385
|
+
scanClassExpression(statement, context) {
|
|
386
|
+
const expression = statement.namedChildren[0];
|
|
387
|
+
if (expression?.type === "assignment")
|
|
388
|
+
this.scanAssignments(statement, expression, context);
|
|
389
|
+
else if (expression?.type === "augmented_assignment")
|
|
390
|
+
this.scanAugmentedAssignment(statement, expression, context);
|
|
391
|
+
}
|
|
392
|
+
/**
|
|
393
|
+
* Rejects augmented assignments that can dynamically change public surface.
|
|
394
|
+
*
|
|
395
|
+
* Python does not provide a static declaration contract for these mutations.
|
|
396
|
+
*/
|
|
397
|
+
scanAugmentedAssignment(statement, assignment, context) {
|
|
398
|
+
const name = PythonSyntax_1.PythonSyntax.assignmentName(assignment);
|
|
399
|
+
if (name === undefined ||
|
|
400
|
+
name === "__all__" ||
|
|
401
|
+
(context !== undefined && this.private(name)))
|
|
402
|
+
return;
|
|
403
|
+
const root = context?.root ??
|
|
404
|
+
this.currentLocalRoot(name) ??
|
|
405
|
+
this.rootToken(name, statement);
|
|
406
|
+
this.addUnit(statement, assignment, "property", [...(context?.identity ?? []), name], root, context === undefined ? [] : [...context.suffix, name], context?.parentId, this.session.range(assignment));
|
|
407
|
+
if (context === undefined)
|
|
408
|
+
this.bindLocal(name, statement.startIndex, root);
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Extracts supported simple assignments as module or class declarations.
|
|
412
|
+
*
|
|
413
|
+
* The surrounding context determines whether the assigned name is a type,
|
|
414
|
+
* class property, or an unsupported dynamic surface change.
|
|
415
|
+
*/
|
|
416
|
+
scanAssignments(statement, assignment, context) {
|
|
417
|
+
let current = assignment;
|
|
418
|
+
let unsupported = false;
|
|
419
|
+
while (current?.type === "assignment") {
|
|
420
|
+
const left = current.childForFieldName("left");
|
|
421
|
+
const name = PythonSyntax_1.PythonSyntax.assignmentName(current);
|
|
422
|
+
if (name !== undefined) {
|
|
423
|
+
if (context === undefined || !this.private(name)) {
|
|
424
|
+
const root = context?.root ?? this.rootToken(name, current);
|
|
425
|
+
const symbol = PythonSyntax_1.PythonSyntax.typeAliasAnnotation(current) ? "type" : "property";
|
|
426
|
+
this.addUnit(statement, current, symbol, [...(context?.identity ?? []), name], root, context === undefined ? [] : [...context.suffix, name], context?.parentId, this.session.range(current));
|
|
427
|
+
if (context === undefined)
|
|
428
|
+
this.bindLocal(name, statement.startIndex, root);
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
else if (this.selectedAssignment(left, context))
|
|
432
|
+
unsupported = true;
|
|
433
|
+
current = current.childForFieldName("right");
|
|
434
|
+
}
|
|
435
|
+
if (unsupported)
|
|
436
|
+
this.problem("python-binding-pattern", "A destructuring assignment creates public names outside the supported simple-identifier form.", "Declare each public module or class attribute with its own identifier assignment.", assignment);
|
|
437
|
+
}
|
|
438
|
+
/**
|
|
439
|
+
* Extracts supported instance-field assignments from an initializer body.
|
|
440
|
+
*
|
|
441
|
+
* Only statically recognizable receiver attributes become property units.
|
|
442
|
+
*/
|
|
443
|
+
scanInstanceFields(definition, context) {
|
|
444
|
+
const receiver = PythonSyntax_1.PythonSyntax.parameterName(definition);
|
|
445
|
+
const body = definition.childForFieldName("body");
|
|
446
|
+
if (receiver === undefined || body === null)
|
|
447
|
+
return;
|
|
448
|
+
for (const statement of body.namedChildren) {
|
|
449
|
+
if (statement.type === "comment")
|
|
450
|
+
continue;
|
|
451
|
+
if (statement.type === "expression_statement") {
|
|
452
|
+
let assignment = statement.namedChildren[0] ?? null;
|
|
453
|
+
while (assignment?.type === "assignment") {
|
|
454
|
+
const left = assignment.childForFieldName("left");
|
|
455
|
+
const name = left !== null && PythonSyntax_1.PythonSyntax.attributeObject(left) === receiver
|
|
456
|
+
? PythonSyntax_1.PythonSyntax.attributeName(left)
|
|
457
|
+
: undefined;
|
|
458
|
+
if (name !== undefined && !this.private(name))
|
|
459
|
+
this.addUnit(statement, assignment, "property", [...context.identity, "prototype", name], context.root, [...context.suffix, "prototype", name], context.parentId, this.session.range(assignment));
|
|
460
|
+
else if (this.receiverAttributes(left, receiver).length !== 0)
|
|
461
|
+
this.problem("python-binding-pattern", "A destructuring assignment declares instance fields outside the supported direct receiver form.", "Assign each public instance field with its own direct receiver-name assignment.", assignment);
|
|
462
|
+
assignment = assignment.childForFieldName("right");
|
|
463
|
+
}
|
|
464
|
+
if (assignment?.type === "augmented_assignment" &&
|
|
465
|
+
this.receiverAttributes(assignment.childForFieldName("left"), receiver).length !== 0)
|
|
466
|
+
this.problem("python-dynamic-instance-field", "An augmented receiver assignment cannot establish a declared instance field.", "Initialize each public instance field with a direct assignment in __init__.", assignment);
|
|
467
|
+
}
|
|
468
|
+
else if (this.containsReceiverAssignment(statement, receiver))
|
|
469
|
+
this.problem("python-dynamic-instance-field", "A conditional or nested statement declares an instance field outside the supported constructor form.", "Move the public self-field assignment directly into __init__ or add explicit adapter support for this flow.", statement);
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
/**
|
|
473
|
+
* Adds a declaration site to its semantic unit and records its local binding.
|
|
474
|
+
*
|
|
475
|
+
* Reusing unit identity keeps repeated sites and overload-like declarations
|
|
476
|
+
* together while preserving each physical source location.
|
|
477
|
+
*/
|
|
478
|
+
addUnit(wrapper, definition, symbol, identity, root, suffix, parentId, content) {
|
|
479
|
+
const id = `python:${this.source.id}:${symbol}:${JSON.stringify(identity)}`;
|
|
480
|
+
const siteId = this.siteId(wrapper);
|
|
481
|
+
const site = {
|
|
482
|
+
id: siteId,
|
|
483
|
+
file: this.source.physicalPath,
|
|
484
|
+
range: this.session.range(wrapper),
|
|
485
|
+
content: [content],
|
|
486
|
+
};
|
|
487
|
+
let record = this.units.get(id);
|
|
488
|
+
if (record === undefined) {
|
|
489
|
+
const unit = {
|
|
490
|
+
id,
|
|
491
|
+
type: "python",
|
|
492
|
+
symbol,
|
|
493
|
+
identity,
|
|
494
|
+
name: identity.at(-1) ?? "",
|
|
495
|
+
sites: [site],
|
|
496
|
+
withdrawals: [],
|
|
497
|
+
...(parentId === undefined ? {} : { parentId }),
|
|
498
|
+
};
|
|
499
|
+
record = { unit, roots: [root], suffix };
|
|
500
|
+
this.units.set(id, record);
|
|
501
|
+
}
|
|
502
|
+
else {
|
|
503
|
+
if (!record.roots.includes(root))
|
|
504
|
+
record.roots.push(root);
|
|
505
|
+
const previous = record.unit.sites.find((candidate) => candidate.id === site.id);
|
|
506
|
+
if (previous === undefined)
|
|
507
|
+
record.unit.sites.push(site);
|
|
508
|
+
else
|
|
509
|
+
previous.content.push(content);
|
|
510
|
+
}
|
|
511
|
+
this.registerPosition(wrapper, siteId, id);
|
|
512
|
+
this.attachPrecedingComment(wrapper, siteId, id);
|
|
513
|
+
this.attachDocstring(definition, siteId, id);
|
|
514
|
+
return record;
|
|
515
|
+
}
|
|
516
|
+
/**
|
|
517
|
+
* Records a declaration position for later host selection.
|
|
518
|
+
*
|
|
519
|
+
* Positions retain parser-independent nesting and source-location metadata.
|
|
520
|
+
*/
|
|
521
|
+
registerPosition(node, siteId, unitId) {
|
|
522
|
+
const id = this.positionId(node);
|
|
523
|
+
let position = this.positions.get(id);
|
|
524
|
+
if (position === undefined) {
|
|
525
|
+
position = {
|
|
526
|
+
id,
|
|
527
|
+
siteId,
|
|
528
|
+
range: this.session.range(node),
|
|
529
|
+
unitIds: [],
|
|
530
|
+
};
|
|
531
|
+
this.positions.set(id, position);
|
|
532
|
+
}
|
|
533
|
+
if (!position.unitIds.includes(unitId))
|
|
534
|
+
position.unitIds.push(unitId);
|
|
535
|
+
}
|
|
536
|
+
/**
|
|
537
|
+
* Attaches the immediately preceding standalone comment run to a declaration.
|
|
538
|
+
*
|
|
539
|
+
* Blank lines and intervening source prevent attachment so unrelated comments
|
|
540
|
+
* cannot become evidence documentation.
|
|
541
|
+
*/
|
|
542
|
+
attachPrecedingComment(node, siteId, unitId) {
|
|
543
|
+
const documentation = this.commentDocumentation.get(node.startPosition.row);
|
|
544
|
+
if (documentation === undefined ||
|
|
545
|
+
documentation.range.start.column !== node.startPosition.column + 1 ||
|
|
546
|
+
!this.standaloneComment(documentation.range.start.offset))
|
|
547
|
+
return;
|
|
548
|
+
if (!/^[ \t]*\r?\n[ \t]*$/u.test(this.source.content.slice(documentation.range.end.offset, node.startIndex)))
|
|
549
|
+
return;
|
|
550
|
+
this.attach(documentation, this.positionId(node), siteId, unitId);
|
|
551
|
+
}
|
|
552
|
+
/**
|
|
553
|
+
* Attaches a recognized docstring mapping to a declaration site.
|
|
554
|
+
*
|
|
555
|
+
* The method records both declaration and site identities for later assembly.
|
|
556
|
+
*/
|
|
557
|
+
attachDocstring(definition, siteId, unitId) {
|
|
558
|
+
const value = PythonSyntax_1.PythonSyntax.docstring(definition.childForFieldName("body"));
|
|
559
|
+
if (value === undefined)
|
|
560
|
+
return;
|
|
561
|
+
const parts = PythonSyntax_1.PythonSyntax.docstringParts(value);
|
|
562
|
+
if (parts === undefined)
|
|
563
|
+
return;
|
|
564
|
+
for (const part of parts)
|
|
565
|
+
this.docstringParts.add(this.nodeKey(part));
|
|
566
|
+
const documentation = parts.length === 1
|
|
567
|
+
? this.ensureStringDocumentation(value)
|
|
568
|
+
: this.ensureConcatenatedDocumentation(value, parts);
|
|
569
|
+
if (documentation === undefined)
|
|
570
|
+
return;
|
|
571
|
+
this.attach(documentation, this.positionId(definition.parent?.type === "decorated_definition"
|
|
572
|
+
? definition.parent
|
|
573
|
+
: definition), siteId, unitId);
|
|
574
|
+
}
|
|
575
|
+
/**
|
|
576
|
+
* Adds one declaration-site attachment without duplicating the relation.
|
|
577
|
+
*
|
|
578
|
+
* Multiple traversal paths can reach a shared documentation mapping.
|
|
579
|
+
*/
|
|
580
|
+
attach(documentation, positionId, siteId, unitId) {
|
|
581
|
+
if (documentation.attachments.some((entry) => entry.positionId === positionId &&
|
|
582
|
+
entry.siteId === siteId &&
|
|
583
|
+
entry.unitId === unitId))
|
|
584
|
+
return;
|
|
585
|
+
documentation.attachments.push({ positionId, siteId, unitId });
|
|
586
|
+
}
|
|
587
|
+
/**
|
|
588
|
+
* Collects contiguous Python comment runs eligible for declaration attachment.
|
|
589
|
+
*
|
|
590
|
+
* The final line index allows a constant-time lookup from the next declaration.
|
|
591
|
+
*/
|
|
592
|
+
collectCommentRuns() {
|
|
593
|
+
const comments = this.session.root
|
|
594
|
+
.descendantsOfType("comment")
|
|
595
|
+
.sort((left, right) => left.startIndex - right.startIndex);
|
|
596
|
+
for (let index = 0; index < comments.length; ++index) {
|
|
597
|
+
const first = comments[index];
|
|
598
|
+
if (first === undefined)
|
|
599
|
+
continue;
|
|
600
|
+
let last = first;
|
|
601
|
+
while (this.standaloneComment(first.startIndex) &&
|
|
602
|
+
index + 1 < comments.length) {
|
|
603
|
+
const next = comments[index + 1];
|
|
604
|
+
if (next === undefined ||
|
|
605
|
+
next.startPosition.column !== first.startPosition.column ||
|
|
606
|
+
!/^[ \t]*\r?\n[ \t]*$/u.test(this.source.content.slice(last.endIndex, next.startIndex)))
|
|
607
|
+
break;
|
|
608
|
+
last = next;
|
|
609
|
+
++index;
|
|
610
|
+
}
|
|
611
|
+
const range = this.text.range(first.startIndex, last.endIndex);
|
|
612
|
+
const documentation = this.ensureDocumentationRange(range, PythonSyntax_1.PythonSyntax.commentSyntax());
|
|
613
|
+
this.commentDocumentation.set(range.end.line, documentation);
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
/**
|
|
617
|
+
* Checks whether a comment begins on an otherwise empty source line.
|
|
618
|
+
*
|
|
619
|
+
* Inline comments cannot document the following declaration.
|
|
620
|
+
*/
|
|
621
|
+
standaloneComment(offset) {
|
|
622
|
+
const start = this.source.content.lastIndexOf("\n", offset - 1) + 1;
|
|
623
|
+
return /^[ \t]*$/u.test(this.source.content.slice(start, offset));
|
|
624
|
+
}
|
|
625
|
+
/**
|
|
626
|
+
* Finds string literals that carry Evidence annotation tags.
|
|
627
|
+
*
|
|
628
|
+
* Tagged literals are retained even when they are not attachable docstrings.
|
|
629
|
+
*/
|
|
630
|
+
collectStringAnnotations() {
|
|
631
|
+
for (const string of this.session.root.descendantsOfType("string")) {
|
|
632
|
+
if (this.docstringParts.has(this.nodeKey(string)))
|
|
633
|
+
continue;
|
|
634
|
+
const syntax = PythonSyntax_1.PythonSyntax.stringSyntax(string);
|
|
635
|
+
if (syntax === undefined)
|
|
636
|
+
continue;
|
|
637
|
+
const raw = this.source.content.slice(string.startIndex + syntax.opening.length, string.endIndex - syntax.closing.length);
|
|
638
|
+
if (this.annotation(raw))
|
|
639
|
+
this.ensureDocumentation(string, syntax);
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
/**
|
|
643
|
+
* Creates or returns documentation for one string literal range.
|
|
644
|
+
*
|
|
645
|
+
* Mapping identity is derived from the stable source range.
|
|
646
|
+
*/
|
|
647
|
+
ensureStringDocumentation(node) {
|
|
648
|
+
const syntax = PythonSyntax_1.PythonSyntax.stringSyntax(node);
|
|
649
|
+
return syntax === undefined
|
|
650
|
+
? undefined
|
|
651
|
+
: this.ensureDocumentation(node, syntax);
|
|
652
|
+
}
|
|
653
|
+
/**
|
|
654
|
+
* Creates documentation for adjacent string literals forming one docstring.
|
|
655
|
+
*
|
|
656
|
+
* Consumed parts are remembered to avoid overlapping documentation mappings.
|
|
657
|
+
*/
|
|
658
|
+
ensureConcatenatedDocumentation(node, parts) {
|
|
659
|
+
const range = this.session.range(node);
|
|
660
|
+
const key = `${range.start.offset}:${range.end.offset}`;
|
|
661
|
+
let documentation = this.documentation.get(key);
|
|
662
|
+
if (documentation !== undefined)
|
|
663
|
+
return documentation;
|
|
664
|
+
const id = `python:${this.source.id}:documentation:${key}`;
|
|
665
|
+
let text = "";
|
|
666
|
+
const offsets = [];
|
|
667
|
+
const ends = [];
|
|
668
|
+
let boundary = range.end.offset;
|
|
669
|
+
for (const part of parts) {
|
|
670
|
+
const syntax = PythonSyntax_1.PythonSyntax.stringSyntax(part);
|
|
671
|
+
if (syntax === undefined)
|
|
672
|
+
continue;
|
|
673
|
+
const mapped = EvidenceDocumentation_1.EvidenceDocumentation.read(this.source.content, id, this.session.range(part), syntax);
|
|
674
|
+
text += mapped.text;
|
|
675
|
+
offsets.push(...mapped.offsets.slice(0, -1));
|
|
676
|
+
ends.push(...mapped.ends);
|
|
677
|
+
boundary = mapped.offsets.at(-1) ?? boundary;
|
|
678
|
+
}
|
|
679
|
+
offsets.push(boundary);
|
|
680
|
+
documentation = {
|
|
681
|
+
id,
|
|
682
|
+
range,
|
|
683
|
+
mapping: {
|
|
684
|
+
hostId: id,
|
|
685
|
+
text,
|
|
686
|
+
offsets,
|
|
687
|
+
ends,
|
|
688
|
+
tagBoundaries: true,
|
|
689
|
+
allowWithdrawal: true,
|
|
690
|
+
},
|
|
691
|
+
attachments: [],
|
|
692
|
+
};
|
|
693
|
+
this.documentation.set(key, documentation);
|
|
694
|
+
return documentation;
|
|
695
|
+
}
|
|
696
|
+
/**
|
|
697
|
+
* Returns the documentation carrier for a stable extraction identity.
|
|
698
|
+
*
|
|
699
|
+
* The first caller supplies mapping metadata; later callers reuse it.
|
|
700
|
+
*/
|
|
701
|
+
ensureDocumentation(node, syntax) {
|
|
702
|
+
return this.ensureDocumentationRange(this.session.range(node), syntax);
|
|
703
|
+
}
|
|
704
|
+
/**
|
|
705
|
+
* Returns documentation keyed by an exact source range.
|
|
706
|
+
*
|
|
707
|
+
* Range identity lets comments and string annotations coexist in one map.
|
|
708
|
+
*/
|
|
709
|
+
ensureDocumentationRange(range, syntax) {
|
|
710
|
+
const key = `${range.start.offset}:${range.end.offset}`;
|
|
711
|
+
let documentation = this.documentation.get(key);
|
|
712
|
+
if (documentation === undefined) {
|
|
713
|
+
documentation = {
|
|
714
|
+
id: `python:${this.source.id}:documentation:${key}`,
|
|
715
|
+
range,
|
|
716
|
+
syntax,
|
|
717
|
+
attachments: [],
|
|
718
|
+
};
|
|
719
|
+
this.documentation.set(key, documentation);
|
|
720
|
+
}
|
|
721
|
+
return documentation;
|
|
722
|
+
}
|
|
723
|
+
/**
|
|
724
|
+
* Records a local binding with its source-order precedence.
|
|
725
|
+
*
|
|
726
|
+
* Export resolution uses the latest binding to model Python shadowing.
|
|
727
|
+
*/
|
|
728
|
+
bindLocal(name, order, root) {
|
|
729
|
+
this.bindings.push({ kind: "local", localName: name, order, root });
|
|
730
|
+
}
|
|
731
|
+
/**
|
|
732
|
+
* Finds the currently winning local root for a module name.
|
|
733
|
+
*
|
|
734
|
+
* This mirrors the same ordered binding rule used by export resolution.
|
|
735
|
+
*/
|
|
736
|
+
currentLocalRoot(name) {
|
|
737
|
+
return this.bindings.findLast((binding) => binding.kind === "local" && binding.localName === name)?.root;
|
|
738
|
+
}
|
|
739
|
+
/**
|
|
740
|
+
* Creates a stable local-root token from a name and parser position.
|
|
741
|
+
*
|
|
742
|
+
* Distinct rebindings need distinct roots even when they share a name.
|
|
743
|
+
*/
|
|
744
|
+
rootToken(name, node) {
|
|
745
|
+
return `${name}:${node.startIndex}`;
|
|
746
|
+
}
|
|
747
|
+
/**
|
|
748
|
+
* Reports an `__all__` mutation that cannot be statically enumerated.
|
|
749
|
+
*
|
|
750
|
+
* Public names remain incomplete rather than being guessed from runtime code.
|
|
751
|
+
*/
|
|
752
|
+
dynamicAll(node) {
|
|
753
|
+
this.all.state = "dynamic";
|
|
754
|
+
this.problem("python-dynamic-all", "The module mutates __all__ with a form that cannot be resolved statically.", "Use a literal string list or tuple, literal '+' composition, and top-level '+=' additions.", node);
|
|
755
|
+
}
|
|
756
|
+
/**
|
|
757
|
+
* Detects nested mutations of the module's `__all__` binding.
|
|
758
|
+
*
|
|
759
|
+
* Control flow around this state prevents a complete static export population.
|
|
760
|
+
*/
|
|
761
|
+
containsAllMutation(node) {
|
|
762
|
+
const definition = PythonSyntax_1.PythonSyntax.definition(node);
|
|
763
|
+
if (definition.type === "function_definition" ||
|
|
764
|
+
definition.type === "class_definition")
|
|
765
|
+
return false;
|
|
766
|
+
if ((node.type === "assignment" || node.type === "augmented_assignment") &&
|
|
767
|
+
PythonSyntax_1.PythonSyntax.assignmentName(node) === "__all__")
|
|
768
|
+
return true;
|
|
769
|
+
if (node.type === "delete_statement")
|
|
770
|
+
return node
|
|
771
|
+
.descendantsOfType("identifier")
|
|
772
|
+
.some((identifier) => identifier.text === "__all__");
|
|
773
|
+
if (node.type === "call") {
|
|
774
|
+
const callable = node.childForFieldName("function");
|
|
775
|
+
if (callable?.type === "attribute" &&
|
|
776
|
+
PythonSyntax_1.PythonSyntax.attributeObject(callable) === "__all__")
|
|
777
|
+
return true;
|
|
778
|
+
}
|
|
779
|
+
return node.namedChildren.some((child) => this.containsAllMutation(child));
|
|
780
|
+
}
|
|
781
|
+
/**
|
|
782
|
+
* Detects nested constructs that conditionally alter module public surface.
|
|
783
|
+
*
|
|
784
|
+
* The scanner reports these boundaries instead of following executable flow.
|
|
785
|
+
*/
|
|
786
|
+
containsModuleSurface(node) {
|
|
787
|
+
const queue = [node];
|
|
788
|
+
for (let index = 0; index < queue.length; ++index) {
|
|
789
|
+
const child = queue[index];
|
|
790
|
+
if (child === undefined)
|
|
791
|
+
continue;
|
|
792
|
+
const definition = PythonSyntax_1.PythonSyntax.definition(child);
|
|
793
|
+
if (definition.type === "class_definition" ||
|
|
794
|
+
definition.type === "function_definition") {
|
|
795
|
+
if (this.selectedModuleName(PythonSyntax_1.PythonSyntax.name(definition.childForFieldName("name"))))
|
|
796
|
+
return true;
|
|
797
|
+
continue;
|
|
798
|
+
}
|
|
799
|
+
if (definition.type === "type_alias_statement" &&
|
|
800
|
+
this.selectedModuleName(PythonSyntax_1.PythonSyntax.typeAliasName(definition)))
|
|
801
|
+
return true;
|
|
802
|
+
if (child.type === "import_statement" ||
|
|
803
|
+
child.type === "import_from_statement")
|
|
804
|
+
if (this.conditionalImportSelected(child))
|
|
805
|
+
return true;
|
|
806
|
+
if (child.type === "assignment" &&
|
|
807
|
+
this.identifiers(child.childForFieldName("left")).some((name) => this.selectedModuleName(name)))
|
|
808
|
+
return true;
|
|
809
|
+
if (child.type === "augmented_assignment" &&
|
|
810
|
+
this.selectedModuleName(PythonSyntax_1.PythonSyntax.assignmentName(child)))
|
|
811
|
+
return true;
|
|
812
|
+
if (child.type === "delete_statement" &&
|
|
813
|
+
this.identifiers(child).some((name) => this.selectedModuleName(name)))
|
|
814
|
+
return true;
|
|
815
|
+
queue.push(...child.namedChildren);
|
|
816
|
+
}
|
|
817
|
+
return false;
|
|
818
|
+
}
|
|
819
|
+
/**
|
|
820
|
+
* Detects class-body constructs that dynamically alter member surface.
|
|
821
|
+
*
|
|
822
|
+
* Dynamic class execution cannot safely become selected declarations.
|
|
823
|
+
*/
|
|
824
|
+
containsClassSurface(node) {
|
|
825
|
+
const queue = [node];
|
|
826
|
+
for (let index = 0; index < queue.length; ++index) {
|
|
827
|
+
const child = queue[index];
|
|
828
|
+
if (child === undefined)
|
|
829
|
+
continue;
|
|
830
|
+
const definition = PythonSyntax_1.PythonSyntax.definition(child);
|
|
831
|
+
const declarationName = definition.type === "type_alias_statement"
|
|
832
|
+
? PythonSyntax_1.PythonSyntax.typeAliasName(definition)
|
|
833
|
+
: PythonSyntax_1.PythonSyntax.name(definition.childForFieldName("name"));
|
|
834
|
+
if ((definition.type === "class_definition" ||
|
|
835
|
+
definition.type === "function_definition" ||
|
|
836
|
+
definition.type === "type_alias_statement") &&
|
|
837
|
+
declarationName !== undefined &&
|
|
838
|
+
!this.private(declarationName))
|
|
839
|
+
return true;
|
|
840
|
+
if (definition.type === "class_definition" ||
|
|
841
|
+
definition.type === "function_definition")
|
|
842
|
+
continue;
|
|
843
|
+
if ((child.type === "assignment" ||
|
|
844
|
+
child.type === "augmented_assignment" ||
|
|
845
|
+
child.type === "delete_statement") &&
|
|
846
|
+
this.publicIdentifiers(child).length !== 0)
|
|
847
|
+
return true;
|
|
848
|
+
queue.push(...child.namedChildren);
|
|
849
|
+
}
|
|
850
|
+
return false;
|
|
851
|
+
}
|
|
852
|
+
/**
|
|
853
|
+
* Checks whether a module name is eligible for public extraction.
|
|
854
|
+
*
|
|
855
|
+
* Private spellings are excluded unless `__all__` later explicitly exposes them.
|
|
856
|
+
*/
|
|
857
|
+
selectedModuleName(name) {
|
|
858
|
+
if (name === undefined)
|
|
859
|
+
return false;
|
|
860
|
+
return this.all.state === "static"
|
|
861
|
+
? this.all.names.includes(name)
|
|
862
|
+
: !this.private(name) || this.all.names.includes(name);
|
|
863
|
+
}
|
|
864
|
+
/**
|
|
865
|
+
* Checks whether a conditional import would introduce a selected public name.
|
|
866
|
+
*
|
|
867
|
+
* Such imports make the exported surface depend on runtime control flow.
|
|
868
|
+
*/
|
|
869
|
+
conditionalImportSelected(statement) {
|
|
870
|
+
if (statement.type === "import_from_statement" &&
|
|
871
|
+
statement.namedChildren.some((child) => child.type === "wildcard_import"))
|
|
872
|
+
return this.all.state !== "static" || this.all.names.length !== 0;
|
|
873
|
+
const module = statement.childForFieldName("module_name");
|
|
874
|
+
for (const entry of statement.namedChildren) {
|
|
875
|
+
if (module !== null && entry.equals(module))
|
|
876
|
+
continue;
|
|
877
|
+
const local = entry.type === "aliased_import"
|
|
878
|
+
? PythonSyntax_1.PythonSyntax.name(entry.childForFieldName("alias"))
|
|
879
|
+
: entry.type === "dotted_name"
|
|
880
|
+
? entry.text.split(".")[0]
|
|
881
|
+
: undefined;
|
|
882
|
+
if (this.selectedModuleName(local))
|
|
883
|
+
return true;
|
|
884
|
+
}
|
|
885
|
+
return false;
|
|
886
|
+
}
|
|
887
|
+
/**
|
|
888
|
+
* Detects assignments through a receiver that can create instance fields.
|
|
889
|
+
*
|
|
890
|
+
* Receiver-aware scanning distinguishes supported initializer fields from
|
|
891
|
+
* arbitrary mutation in nested executable code.
|
|
892
|
+
*/
|
|
893
|
+
containsReceiverAssignment(node, receiver) {
|
|
894
|
+
const mutations = [
|
|
895
|
+
...node.descendantsOfType("assignment"),
|
|
896
|
+
...node.descendantsOfType("augmented_assignment"),
|
|
897
|
+
...node.descendantsOfType("delete_statement"),
|
|
898
|
+
];
|
|
899
|
+
return mutations.some((mutation) => {
|
|
900
|
+
const target = mutation.type === "delete_statement"
|
|
901
|
+
? mutation
|
|
902
|
+
: mutation.childForFieldName("left");
|
|
903
|
+
return this.receiverAttributes(target, receiver).length !== 0;
|
|
904
|
+
});
|
|
905
|
+
}
|
|
906
|
+
/**
|
|
907
|
+
* Returns literal attribute names assigned through one receiver expression.
|
|
908
|
+
*
|
|
909
|
+
* Only these names can be represented as static property declarations.
|
|
910
|
+
*/
|
|
911
|
+
receiverAttributes(node, receiver) {
|
|
912
|
+
if (node === null)
|
|
913
|
+
return [];
|
|
914
|
+
const attributes = node.type === "attribute" ? [node] : node.descendantsOfType("attribute");
|
|
915
|
+
return attributes.flatMap((attribute) => {
|
|
916
|
+
const name = PythonSyntax_1.PythonSyntax.attributeName(attribute);
|
|
917
|
+
return PythonSyntax_1.PythonSyntax.attributeObject(attribute) === receiver &&
|
|
918
|
+
name !== undefined &&
|
|
919
|
+
!this.private(name)
|
|
920
|
+
? [name]
|
|
921
|
+
: [];
|
|
922
|
+
});
|
|
923
|
+
}
|
|
924
|
+
/**
|
|
925
|
+
* Returns non-private identifiers from a syntax subtree.
|
|
926
|
+
*
|
|
927
|
+
* The helper centralizes Python underscore filtering for surface predicates.
|
|
928
|
+
*/
|
|
929
|
+
publicIdentifiers(node) {
|
|
930
|
+
return this.identifiers(node).filter((name) => !this.private(name));
|
|
931
|
+
}
|
|
932
|
+
/**
|
|
933
|
+
* Checks whether an assignment introduces a selected public identifier.
|
|
934
|
+
*
|
|
935
|
+
* The caller uses this to decide whether dynamic control flow is reportable.
|
|
936
|
+
*/
|
|
937
|
+
selectedAssignment(node, context) {
|
|
938
|
+
const names = this.identifiers(node);
|
|
939
|
+
return context === undefined
|
|
940
|
+
? names.some((name) => this.selectedModuleName(name))
|
|
941
|
+
: names.some((name) => !this.private(name));
|
|
942
|
+
}
|
|
943
|
+
/**
|
|
944
|
+
* Extracts literal identifier spellings from a parser subtree.
|
|
945
|
+
*
|
|
946
|
+
* Unnamed or computed targets are intentionally absent from this static view.
|
|
947
|
+
*/
|
|
948
|
+
identifiers(node) {
|
|
949
|
+
if (node === null)
|
|
950
|
+
return [];
|
|
951
|
+
const identifiers = node.type === "identifier"
|
|
952
|
+
? [node]
|
|
953
|
+
: node.descendantsOfType("identifier");
|
|
954
|
+
return identifiers.map((identifier) => identifier.text);
|
|
955
|
+
}
|
|
956
|
+
/**
|
|
957
|
+
* Checks Python's conventional underscore-based private spelling.
|
|
958
|
+
*
|
|
959
|
+
* `__all__` remains the explicit mechanism for exposing such a binding.
|
|
960
|
+
*/
|
|
961
|
+
private(name) {
|
|
962
|
+
return name.startsWith("_");
|
|
963
|
+
}
|
|
964
|
+
/**
|
|
965
|
+
* Checks whether raw comment or string text contains an Evidence tag.
|
|
966
|
+
*
|
|
967
|
+
* Tagged carriers are retained even when ordinary documentation attachment fails.
|
|
968
|
+
*/
|
|
969
|
+
annotation(raw) {
|
|
970
|
+
return /(?:^|[\r\n])[ \t]*(?:#[ \t]*)?@(evidenceExcludeReview|evidenceReview|evidenceExclude|evidence|link|internal|hidden|ignore)\b/u.test(raw);
|
|
971
|
+
}
|
|
972
|
+
/**
|
|
973
|
+
* Serializes a parser node's source range as a local identity component.
|
|
974
|
+
*
|
|
975
|
+
* Offsets remain stable for the immutable source snapshot.
|
|
976
|
+
*/
|
|
977
|
+
nodeKey(node) {
|
|
978
|
+
return `${node.startIndex}:${node.endIndex}`;
|
|
979
|
+
}
|
|
980
|
+
/**
|
|
981
|
+
* Creates the stable declaration-site identity for a parser node.
|
|
982
|
+
*
|
|
983
|
+
* The source ID scopes otherwise reusable range offsets.
|
|
984
|
+
*/
|
|
985
|
+
siteId(node) {
|
|
986
|
+
return `python:${this.source.id}:site:${this.nodeKey(node)}`;
|
|
987
|
+
}
|
|
988
|
+
/**
|
|
989
|
+
* Creates the stable host-position identity for a parser node.
|
|
990
|
+
*
|
|
991
|
+
* Position records use a distinct namespace from declaration sites.
|
|
992
|
+
*/
|
|
993
|
+
positionId(node) {
|
|
994
|
+
return `python:${this.source.id}:position:${this.nodeKey(node)}`;
|
|
995
|
+
}
|
|
996
|
+
/**
|
|
997
|
+
* Records one unsupported source construct and marks scanning incomplete.
|
|
998
|
+
*
|
|
999
|
+
* A source-range key prevents duplicate diagnostics from overlapping checks.
|
|
1000
|
+
*/
|
|
1001
|
+
problem(code, message, repair, node) {
|
|
1002
|
+
const key = `${code}:${node.startIndex}:${node.endIndex}`;
|
|
1003
|
+
if (this.reported.has(key))
|
|
1004
|
+
return;
|
|
1005
|
+
this.reported.add(key);
|
|
1006
|
+
this.complete = false;
|
|
1007
|
+
this.diagnostics.push({
|
|
1008
|
+
code,
|
|
1009
|
+
severity: "error",
|
|
1010
|
+
message,
|
|
1011
|
+
repair,
|
|
1012
|
+
location: {
|
|
1013
|
+
file: this.source.physicalPath,
|
|
1014
|
+
range: this.session.range(node),
|
|
1015
|
+
},
|
|
1016
|
+
});
|
|
1017
|
+
}
|
|
1018
|
+
}
|
|
1019
|
+
exports.PythonFileScanner = PythonFileScanner;
|