@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,1944 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.EvidenceGraph = void 0;
|
|
40
|
+
const _assertGuard_1 = __importStar(require("typia/lib/internal/_assertGuard"));
|
|
41
|
+
const _jsonStringifyString_1 = __importStar(require("typia/lib/internal/_jsonStringifyString"));
|
|
42
|
+
const _jsonStringifyNumber_1 = __importStar(require("typia/lib/internal/_jsonStringifyNumber"));
|
|
43
|
+
const _jsonStringifyTail_1 = __importStar(require("typia/lib/internal/_jsonStringifyTail"));
|
|
44
|
+
const _jsonStringifyArray_1 = __importStar(require("typia/lib/internal/_jsonStringifyArray"));
|
|
45
|
+
const typia_1 = __importDefault(require("typia"));
|
|
46
|
+
const EvidenceFileTarget_1 = require("../targets/EvidenceFileTarget");
|
|
47
|
+
const EvidenceInventory_1 = require("./EvidenceInventory");
|
|
48
|
+
const EvidenceFingerprintIndex_1 = require("../internal/EvidenceFingerprintIndex");
|
|
49
|
+
const InventoryMerge_1 = require("../internal/InventoryMerge");
|
|
50
|
+
/**
|
|
51
|
+
* Evaluates coverage and review policies over captured, materialized populations.
|
|
52
|
+
*
|
|
53
|
+
* The checker supplies inventories, selected unit IDs, target resolutions, and
|
|
54
|
+
* reference policies. This facade validates and captures that input; it does not
|
|
55
|
+
* load files or infer declarations. Each call creates a fresh evaluator and
|
|
56
|
+
* returns an owned result, isolating prior diagnostics and caller mutations.
|
|
57
|
+
*
|
|
58
|
+
* Evaluation preserves the following boundaries:
|
|
59
|
+
*
|
|
60
|
+
* 1. Each claim selects its own semantic hosts and exclusion carriers.
|
|
61
|
+
* 2. Each reference independently judges coverage, exclusions, cardinality,
|
|
62
|
+
* checklist answers, and review freshness, even when populations overlap.
|
|
63
|
+
* 3. Incomplete analysis remains a failure rather than a passing smaller graph.
|
|
64
|
+
* 4. Findings requiring cross-reference participation are finalized after all
|
|
65
|
+
* applicable references have been examined.
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* const graph: EvidenceGraph = new EvidenceGraph(materializedInput);
|
|
69
|
+
* const first: IEvidenceGraphResult = graph.evaluate();
|
|
70
|
+
* const second: IEvidenceGraphResult = graph.evaluate();
|
|
71
|
+
* // The results have independent storage and no accumulated evaluator state.
|
|
72
|
+
*/
|
|
73
|
+
class EvidenceGraph {
|
|
74
|
+
/**
|
|
75
|
+
* Validated input snapshot owned by this facade.
|
|
76
|
+
*
|
|
77
|
+
* Evaluators read this captured policy and inventory data. Neither later caller
|
|
78
|
+
* edits nor modifications to an earlier result can change the snapshot.
|
|
79
|
+
*/
|
|
80
|
+
input;
|
|
81
|
+
/**
|
|
82
|
+
* Validates the input shape and captures an independent graph snapshot.
|
|
83
|
+
*
|
|
84
|
+
* Semantic inventory and resolution checks occur during evaluation so their
|
|
85
|
+
* findings can be reported in graph context. Construction performs no source IO.
|
|
86
|
+
*/
|
|
87
|
+
constructor(input) {
|
|
88
|
+
this.input = structuredClone((() => {
|
|
89
|
+
const _ip0 = input => undefined === input["index"] || "number" === typeof input["index"];
|
|
90
|
+
const _ip1 = input => "error" === input["severity"] || "off" === input["severity"] || "warning" === input["severity"];
|
|
91
|
+
const _ip2 = input => "object" === typeof input["inventory"] && null !== input["inventory"] && _io2(input["inventory"]);
|
|
92
|
+
const _ip3 = input => Array.isArray(input["unitIds"]) && input["unitIds"].every(elem => "string" === typeof elem);
|
|
93
|
+
const _ip4 = input => Array.isArray(input["units"]) && input["units"].every(elem => "object" === typeof elem && null !== elem && _io8(elem));
|
|
94
|
+
const _ip5 = input => Array.isArray(input["diagnostics"]) && input["diagnostics"].every(elem => "object" === typeof elem && null !== elem && _io15(elem));
|
|
95
|
+
const _ip6 = input => "string" === typeof input["id"];
|
|
96
|
+
const _ip7 = input => "string" === typeof input["file"];
|
|
97
|
+
const _iv0 = new Set(["bigquery", "c", "cpp", "csharp", "dart", "dbml", "go", "java", "javascript", "kotlin", "lua", "markdown", "matlab", "mysql", "objc", "php", "postgresql", "prisma", "python", "ruby", "rust", "scala", "sql", "sqlite", "swagger", "swift", "typescript", "zig"]);
|
|
98
|
+
const _iv1 = new Set(["column", "file", "function", "h1", "h2", "h3", "h4", "model", "operation", "property", "relation", "type"]);
|
|
99
|
+
const _ip8 = input => Array.isArray(input["withdrawals"]) && input["withdrawals"].every(elem => "object" === typeof elem && null !== elem && _io10(elem));
|
|
100
|
+
const _ip9 = input => "object" === typeof input["range"] && null !== input["range"] && _io6(input["range"]);
|
|
101
|
+
const _ip10 = input => "object" === typeof input["location"] && null !== input["location"] && _io5(input["location"]);
|
|
102
|
+
const _ip11 = input => Array.isArray(input["segments"]) && input["segments"].every(elem => "string" === typeof elem);
|
|
103
|
+
const _ip12 = input => "string" === typeof input["hostId"];
|
|
104
|
+
const _ip13 = input => "string" === typeof input["target"];
|
|
105
|
+
const _ip14 = input => "object" === typeof input["resolution"] && null !== input["resolution"] && _io19(input["resolution"]);
|
|
106
|
+
const _ap0 = (input, _path, _exceptionable = true) => undefined === input["index"] || "number" === typeof input["index"] || _assertGuard_1._assertGuard(_exceptionable, {
|
|
107
|
+
method: "typia.assert",
|
|
108
|
+
path: _path + ".index",
|
|
109
|
+
expected: "(number | undefined)",
|
|
110
|
+
value: input["index"]
|
|
111
|
+
}, _errorFactory);
|
|
112
|
+
const _ap1 = (input, _path, _exceptionable = true) => "error" === input["severity"] || "off" === input["severity"] || "warning" === input["severity"] || _assertGuard_1._assertGuard(_exceptionable, {
|
|
113
|
+
method: "typia.assert",
|
|
114
|
+
path: _path + ".severity",
|
|
115
|
+
expected: "(\"error\" | \"off\" | \"warning\")",
|
|
116
|
+
value: input["severity"]
|
|
117
|
+
}, _errorFactory);
|
|
118
|
+
const _ap2 = (input, _path, _exceptionable = true) => ("object" === typeof input["inventory"] && null !== input["inventory"] || _assertGuard_1._assertGuard(_exceptionable, {
|
|
119
|
+
method: "typia.assert",
|
|
120
|
+
path: _path + ".inventory",
|
|
121
|
+
expected: "IEvidenceInventory",
|
|
122
|
+
value: input["inventory"]
|
|
123
|
+
}, _errorFactory)) && _ao2(input["inventory"], _path + ".inventory", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
124
|
+
method: "typia.assert",
|
|
125
|
+
path: _path + ".inventory",
|
|
126
|
+
expected: "IEvidenceInventory",
|
|
127
|
+
value: input["inventory"]
|
|
128
|
+
}, _errorFactory);
|
|
129
|
+
const _ap3 = (input, _path, _exceptionable = true) => (Array.isArray(input["unitIds"]) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
130
|
+
method: "typia.assert",
|
|
131
|
+
path: _path + ".unitIds",
|
|
132
|
+
expected: "Array<string>",
|
|
133
|
+
value: input["unitIds"]
|
|
134
|
+
}, _errorFactory)) && input["unitIds"].every((elem, _index25) => "string" === typeof elem || _assertGuard_1._assertGuard(_exceptionable, {
|
|
135
|
+
method: "typia.assert",
|
|
136
|
+
path: _path + ".unitIds[" + _index25 + "]",
|
|
137
|
+
expected: "string",
|
|
138
|
+
value: elem
|
|
139
|
+
}, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
140
|
+
method: "typia.assert",
|
|
141
|
+
path: _path + ".unitIds",
|
|
142
|
+
expected: "Array<string>",
|
|
143
|
+
value: input["unitIds"]
|
|
144
|
+
}, _errorFactory);
|
|
145
|
+
const _ap4 = (input, _path, _exceptionable = true) => (Array.isArray(input["units"]) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
146
|
+
method: "typia.assert",
|
|
147
|
+
path: _path + ".units",
|
|
148
|
+
expected: "Array<IEvidenceUnit>",
|
|
149
|
+
value: input["units"]
|
|
150
|
+
}, _errorFactory)) && input["units"].every((elem, _index30) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
|
|
151
|
+
method: "typia.assert",
|
|
152
|
+
path: _path + ".units[" + _index30 + "]",
|
|
153
|
+
expected: "IEvidenceUnit",
|
|
154
|
+
value: elem
|
|
155
|
+
}, _errorFactory)) && _ao8(elem, _path + ".units[" + _index30 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
156
|
+
method: "typia.assert",
|
|
157
|
+
path: _path + ".units[" + _index30 + "]",
|
|
158
|
+
expected: "IEvidenceUnit",
|
|
159
|
+
value: elem
|
|
160
|
+
}, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
161
|
+
method: "typia.assert",
|
|
162
|
+
path: _path + ".units",
|
|
163
|
+
expected: "Array<IEvidenceUnit>",
|
|
164
|
+
value: input["units"]
|
|
165
|
+
}, _errorFactory);
|
|
166
|
+
const _ap5 = (input, _path, _exceptionable = true) => (Array.isArray(input["diagnostics"]) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
167
|
+
method: "typia.assert",
|
|
168
|
+
path: _path + ".diagnostics",
|
|
169
|
+
expected: "Array<IEvidenceDiagnostic>",
|
|
170
|
+
value: input["diagnostics"]
|
|
171
|
+
}, _errorFactory)) && input["diagnostics"].every((elem, _index35) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
|
|
172
|
+
method: "typia.assert",
|
|
173
|
+
path: _path + ".diagnostics[" + _index35 + "]",
|
|
174
|
+
expected: "IEvidenceDiagnostic",
|
|
175
|
+
value: elem
|
|
176
|
+
}, _errorFactory)) && _ao15(elem, _path + ".diagnostics[" + _index35 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
177
|
+
method: "typia.assert",
|
|
178
|
+
path: _path + ".diagnostics[" + _index35 + "]",
|
|
179
|
+
expected: "IEvidenceDiagnostic",
|
|
180
|
+
value: elem
|
|
181
|
+
}, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
182
|
+
method: "typia.assert",
|
|
183
|
+
path: _path + ".diagnostics",
|
|
184
|
+
expected: "Array<IEvidenceDiagnostic>",
|
|
185
|
+
value: input["diagnostics"]
|
|
186
|
+
}, _errorFactory);
|
|
187
|
+
const _ap6 = (input, _path, _exceptionable = true) => "string" === typeof input["id"] || _assertGuard_1._assertGuard(_exceptionable, {
|
|
188
|
+
method: "typia.assert",
|
|
189
|
+
path: _path + ".id",
|
|
190
|
+
expected: "string",
|
|
191
|
+
value: input["id"]
|
|
192
|
+
}, _errorFactory);
|
|
193
|
+
const _ap7 = (input, _path, _exceptionable = true) => "string" === typeof input["file"] || _assertGuard_1._assertGuard(_exceptionable, {
|
|
194
|
+
method: "typia.assert",
|
|
195
|
+
path: _path + ".file",
|
|
196
|
+
expected: "string",
|
|
197
|
+
value: input["file"]
|
|
198
|
+
}, _errorFactory);
|
|
199
|
+
const _av0 = new Set(["bigquery", "c", "cpp", "csharp", "dart", "dbml", "go", "java", "javascript", "kotlin", "lua", "markdown", "matlab", "mysql", "objc", "php", "postgresql", "prisma", "python", "ruby", "rust", "scala", "sql", "sqlite", "swagger", "swift", "typescript", "zig"]);
|
|
200
|
+
const _ae0 = "(\"bigquery\" | \"c\" | \"cpp\" | \"csharp\" | \"dart\" | \"dbml\" | \"go\" | \"java\" | \"javascript\" | \"kotlin\" | \"lua\" | \"markdown\" | \"matlab\" | \"mysql\" | \"objc\" | \"php\" | \"postgresql\" | \"prisma\" | \"python\" | \"ruby\" | \"rust\" | \"scala\" | \"sql\" | \"sqlite\" | \"swagger\" | \"swift\" | \"typescript\" | \"zig\")";
|
|
201
|
+
const _av1 = new Set(["column", "file", "function", "h1", "h2", "h3", "h4", "model", "operation", "property", "relation", "type"]);
|
|
202
|
+
const _ap8 = (input, _path, _exceptionable = true) => (Array.isArray(input["withdrawals"]) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
203
|
+
method: "typia.assert",
|
|
204
|
+
path: _path + ".withdrawals",
|
|
205
|
+
expected: "Array<IEvidenceWithdrawal>",
|
|
206
|
+
value: input["withdrawals"]
|
|
207
|
+
}, _errorFactory)) && input["withdrawals"].every((elem, _index40) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
|
|
208
|
+
method: "typia.assert",
|
|
209
|
+
path: _path + ".withdrawals[" + _index40 + "]",
|
|
210
|
+
expected: "IEvidenceWithdrawal",
|
|
211
|
+
value: elem
|
|
212
|
+
}, _errorFactory)) && _ao10(elem, _path + ".withdrawals[" + _index40 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
213
|
+
method: "typia.assert",
|
|
214
|
+
path: _path + ".withdrawals[" + _index40 + "]",
|
|
215
|
+
expected: "IEvidenceWithdrawal",
|
|
216
|
+
value: elem
|
|
217
|
+
}, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
218
|
+
method: "typia.assert",
|
|
219
|
+
path: _path + ".withdrawals",
|
|
220
|
+
expected: "Array<IEvidenceWithdrawal>",
|
|
221
|
+
value: input["withdrawals"]
|
|
222
|
+
}, _errorFactory);
|
|
223
|
+
const _ap9 = (input, _path, _exceptionable = true) => ("object" === typeof input["range"] && null !== input["range"] || _assertGuard_1._assertGuard(_exceptionable, {
|
|
224
|
+
method: "typia.assert",
|
|
225
|
+
path: _path + ".range",
|
|
226
|
+
expected: "IEvidenceSourceRange",
|
|
227
|
+
value: input["range"]
|
|
228
|
+
}, _errorFactory)) && _ao6(input["range"], _path + ".range", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
229
|
+
method: "typia.assert",
|
|
230
|
+
path: _path + ".range",
|
|
231
|
+
expected: "IEvidenceSourceRange",
|
|
232
|
+
value: input["range"]
|
|
233
|
+
}, _errorFactory);
|
|
234
|
+
const _ap10 = (input, _path, _exceptionable = true) => ("object" === typeof input["location"] && null !== input["location"] || _assertGuard_1._assertGuard(_exceptionable, {
|
|
235
|
+
method: "typia.assert",
|
|
236
|
+
path: _path + ".location",
|
|
237
|
+
expected: "IEvidenceSourceLocation",
|
|
238
|
+
value: input["location"]
|
|
239
|
+
}, _errorFactory)) && _ao5(input["location"], _path + ".location", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
240
|
+
method: "typia.assert",
|
|
241
|
+
path: _path + ".location",
|
|
242
|
+
expected: "IEvidenceSourceLocation",
|
|
243
|
+
value: input["location"]
|
|
244
|
+
}, _errorFactory);
|
|
245
|
+
const _ap11 = (input, _path, _exceptionable = true) => (Array.isArray(input["segments"]) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
246
|
+
method: "typia.assert",
|
|
247
|
+
path: _path + ".segments",
|
|
248
|
+
expected: "Array<string>",
|
|
249
|
+
value: input["segments"]
|
|
250
|
+
}, _errorFactory)) && input["segments"].every((elem, _index42) => "string" === typeof elem || _assertGuard_1._assertGuard(_exceptionable, {
|
|
251
|
+
method: "typia.assert",
|
|
252
|
+
path: _path + ".segments[" + _index42 + "]",
|
|
253
|
+
expected: "string",
|
|
254
|
+
value: elem
|
|
255
|
+
}, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
256
|
+
method: "typia.assert",
|
|
257
|
+
path: _path + ".segments",
|
|
258
|
+
expected: "Array<string>",
|
|
259
|
+
value: input["segments"]
|
|
260
|
+
}, _errorFactory);
|
|
261
|
+
const _ap12 = (input, _path, _exceptionable = true) => "string" === typeof input["hostId"] || _assertGuard_1._assertGuard(_exceptionable, {
|
|
262
|
+
method: "typia.assert",
|
|
263
|
+
path: _path + ".hostId",
|
|
264
|
+
expected: "string",
|
|
265
|
+
value: input["hostId"]
|
|
266
|
+
}, _errorFactory);
|
|
267
|
+
const _ap13 = (input, _path, _exceptionable = true) => "string" === typeof input["target"] || _assertGuard_1._assertGuard(_exceptionable, {
|
|
268
|
+
method: "typia.assert",
|
|
269
|
+
path: _path + ".target",
|
|
270
|
+
expected: "string",
|
|
271
|
+
value: input["target"]
|
|
272
|
+
}, _errorFactory);
|
|
273
|
+
const _ap14 = (input, _path, _exceptionable = true) => ("object" === typeof input["resolution"] && null !== input["resolution"] || _assertGuard_1._assertGuard(_exceptionable, {
|
|
274
|
+
method: "typia.assert",
|
|
275
|
+
path: _path + ".resolution",
|
|
276
|
+
expected: "IEvidenceTargetResolution",
|
|
277
|
+
value: input["resolution"]
|
|
278
|
+
}, _errorFactory)) && _ao19(input["resolution"], _path + ".resolution", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
279
|
+
method: "typia.assert",
|
|
280
|
+
path: _path + ".resolution",
|
|
281
|
+
expected: "IEvidenceTargetResolution",
|
|
282
|
+
value: input["resolution"]
|
|
283
|
+
}, _errorFactory);
|
|
284
|
+
const _ae1 = "(\"ambiguous\" | \"hidden\" | \"incomplete\" | \"malformed\" | \"missing-file\" | \"missing-member\" | \"out-of-population\" | \"resolved\" | \"unsupported-host\")";
|
|
285
|
+
const _ao0 = (input, _path, _exceptionable = true) => (Array.isArray(input.claims) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
286
|
+
method: "typia.assert",
|
|
287
|
+
path: _path + ".claims",
|
|
288
|
+
expected: "Array<IEvidenceGraphClaim>",
|
|
289
|
+
value: input.claims
|
|
290
|
+
}, _errorFactory)) && input.claims.every((elem, _index24) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
|
|
291
|
+
method: "typia.assert",
|
|
292
|
+
path: _path + ".claims[" + _index24 + "]",
|
|
293
|
+
expected: "IEvidenceGraphClaim",
|
|
294
|
+
value: elem
|
|
295
|
+
}, _errorFactory)) && _ao1(elem, _path + ".claims[" + _index24 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
296
|
+
method: "typia.assert",
|
|
297
|
+
path: _path + ".claims[" + _index24 + "]",
|
|
298
|
+
expected: "IEvidenceGraphClaim",
|
|
299
|
+
value: elem
|
|
300
|
+
}, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
301
|
+
method: "typia.assert",
|
|
302
|
+
path: _path + ".claims",
|
|
303
|
+
expected: "Array<IEvidenceGraphClaim>",
|
|
304
|
+
value: input.claims
|
|
305
|
+
}, _errorFactory);
|
|
306
|
+
const _ao1 = (input, _path, _exceptionable = true) => _ap0(input, _path, true && _exceptionable) && (undefined === input.name || "string" === typeof input.name || _assertGuard_1._assertGuard(_exceptionable, {
|
|
307
|
+
method: "typia.assert",
|
|
308
|
+
path: _path + ".name",
|
|
309
|
+
expected: "(string | undefined)",
|
|
310
|
+
value: input.name
|
|
311
|
+
}, _errorFactory)) && _ap1(input, _path, true && _exceptionable) && _ap2(input, _path, true && _exceptionable) && _ap3(input, _path, true && _exceptionable) && (undefined === input.exclusionHostIds || (Array.isArray(input.exclusionHostIds) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
312
|
+
method: "typia.assert",
|
|
313
|
+
path: _path + ".exclusionHostIds",
|
|
314
|
+
expected: "(Array<string> | undefined)",
|
|
315
|
+
value: input.exclusionHostIds
|
|
316
|
+
}, _errorFactory)) && input.exclusionHostIds.every((elem, _index26) => "string" === typeof elem || _assertGuard_1._assertGuard(_exceptionable, {
|
|
317
|
+
method: "typia.assert",
|
|
318
|
+
path: _path + ".exclusionHostIds[" + _index26 + "]",
|
|
319
|
+
expected: "string",
|
|
320
|
+
value: elem
|
|
321
|
+
}, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
322
|
+
method: "typia.assert",
|
|
323
|
+
path: _path + ".exclusionHostIds",
|
|
324
|
+
expected: "(Array<string> | undefined)",
|
|
325
|
+
value: input.exclusionHostIds
|
|
326
|
+
}, _errorFactory)) && ((Array.isArray(input.references) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
327
|
+
method: "typia.assert",
|
|
328
|
+
path: _path + ".references",
|
|
329
|
+
expected: "Array<IEvidenceGraphReference>",
|
|
330
|
+
value: input.references
|
|
331
|
+
}, _errorFactory)) && input.references.every((elem, _index27) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
|
|
332
|
+
method: "typia.assert",
|
|
333
|
+
path: _path + ".references[" + _index27 + "]",
|
|
334
|
+
expected: "IEvidenceGraphReference",
|
|
335
|
+
value: elem
|
|
336
|
+
}, _errorFactory)) && _ao17(elem, _path + ".references[" + _index27 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
337
|
+
method: "typia.assert",
|
|
338
|
+
path: _path + ".references[" + _index27 + "]",
|
|
339
|
+
expected: "IEvidenceGraphReference",
|
|
340
|
+
value: elem
|
|
341
|
+
}, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
342
|
+
method: "typia.assert",
|
|
343
|
+
path: _path + ".references",
|
|
344
|
+
expected: "Array<IEvidenceGraphReference>",
|
|
345
|
+
value: input.references
|
|
346
|
+
}, _errorFactory));
|
|
347
|
+
const _ao10 = (input, _path, _exceptionable = true) => ("hidden" === input.tag || "ignore" === input.tag || "internal" === input.tag || _assertGuard_1._assertGuard(_exceptionable, {
|
|
348
|
+
method: "typia.assert",
|
|
349
|
+
path: _path + ".tag",
|
|
350
|
+
expected: "(\"hidden\" | \"ignore\" | \"internal\")",
|
|
351
|
+
value: input.tag
|
|
352
|
+
}, _errorFactory)) && _ap10(input, _path, true && _exceptionable);
|
|
353
|
+
const _ao11 = (input, _path, _exceptionable = true) => _ap7(input, _path, true && _exceptionable) && _ap11(input, _path, true && _exceptionable) && ("string" === typeof input.unitId || _assertGuard_1._assertGuard(_exceptionable, {
|
|
354
|
+
method: "typia.assert",
|
|
355
|
+
path: _path + ".unitId",
|
|
356
|
+
expected: "string",
|
|
357
|
+
value: input.unitId
|
|
358
|
+
}, _errorFactory));
|
|
359
|
+
const _ao12 = (input, _path, _exceptionable = true) => _ap6(input, _path, true && _exceptionable) && _ap7(input, _path, true && _exceptionable) && _ap9(input, _path, true && _exceptionable) && (undefined === input.origins || (Array.isArray(input.origins) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
360
|
+
method: "typia.assert",
|
|
361
|
+
path: _path + ".origins",
|
|
362
|
+
expected: "(Array<string> | undefined)",
|
|
363
|
+
value: input.origins
|
|
364
|
+
}, _errorFactory)) && input.origins.every((elem, _index43) => "string" === typeof elem || _assertGuard_1._assertGuard(_exceptionable, {
|
|
365
|
+
method: "typia.assert",
|
|
366
|
+
path: _path + ".origins[" + _index43 + "]",
|
|
367
|
+
expected: "string",
|
|
368
|
+
value: elem
|
|
369
|
+
}, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
370
|
+
method: "typia.assert",
|
|
371
|
+
path: _path + ".origins",
|
|
372
|
+
expected: "(Array<string> | undefined)",
|
|
373
|
+
value: input.origins
|
|
374
|
+
}, _errorFactory)) && (undefined === input.siteId || "string" === typeof input.siteId || _assertGuard_1._assertGuard(_exceptionable, {
|
|
375
|
+
method: "typia.assert",
|
|
376
|
+
path: _path + ".siteId",
|
|
377
|
+
expected: "(string | undefined)",
|
|
378
|
+
value: input.siteId
|
|
379
|
+
}, _errorFactory)) && _ap3(input, _path, true && _exceptionable) && ("attached" === input.attachment || "unattached" === input.attachment || "unsupported" === input.attachment || _assertGuard_1._assertGuard(_exceptionable, {
|
|
380
|
+
method: "typia.assert",
|
|
381
|
+
path: _path + ".attachment",
|
|
382
|
+
expected: "(\"attached\" | \"unattached\" | \"unsupported\")",
|
|
383
|
+
value: input.attachment
|
|
384
|
+
}, _errorFactory)) && (undefined === input.problem || "string" === typeof input.problem || _assertGuard_1._assertGuard(_exceptionable, {
|
|
385
|
+
method: "typia.assert",
|
|
386
|
+
path: _path + ".problem",
|
|
387
|
+
expected: "(string | undefined)",
|
|
388
|
+
value: input.problem
|
|
389
|
+
}, _errorFactory));
|
|
390
|
+
const _ao13 = (input, _path, _exceptionable = true) => _ap12(input, _path, true && _exceptionable) && _ap13(input, _path, true && _exceptionable) && _ap10(input, _path, true && _exceptionable) && _ap6(input, _path, true && _exceptionable) && ("evidence" === input.kind || "evidenceExclude" === input.kind || _assertGuard_1._assertGuard(_exceptionable, {
|
|
391
|
+
method: "typia.assert",
|
|
392
|
+
path: _path + ".kind",
|
|
393
|
+
expected: "(\"evidence\" | \"evidenceExclude\")",
|
|
394
|
+
value: input.kind
|
|
395
|
+
}, _errorFactory)) && ("string" === typeof input.reason || _assertGuard_1._assertGuard(_exceptionable, {
|
|
396
|
+
method: "typia.assert",
|
|
397
|
+
path: _path + ".reason",
|
|
398
|
+
expected: "string",
|
|
399
|
+
value: input.reason
|
|
400
|
+
}, _errorFactory));
|
|
401
|
+
const _ao14 = (input, _path, _exceptionable = true) => _ap12(input, _path, true && _exceptionable) && _ap13(input, _path, true && _exceptionable) && _ap10(input, _path, true && _exceptionable) && _ap6(input, _path, true && _exceptionable) && ("evidence" === input.reviews || "evidenceExclude" === input.reviews || _assertGuard_1._assertGuard(_exceptionable, {
|
|
402
|
+
method: "typia.assert",
|
|
403
|
+
path: _path + ".reviews",
|
|
404
|
+
expected: "(\"evidence\" | \"evidenceExclude\")",
|
|
405
|
+
value: input.reviews
|
|
406
|
+
}, _errorFactory)) && (undefined === input.fingerprint || "string" === typeof input.fingerprint || _assertGuard_1._assertGuard(_exceptionable, {
|
|
407
|
+
method: "typia.assert",
|
|
408
|
+
path: _path + ".fingerprint",
|
|
409
|
+
expected: "(string | undefined)",
|
|
410
|
+
value: input.fingerprint
|
|
411
|
+
}, _errorFactory)) && ("string" === typeof input.description || _assertGuard_1._assertGuard(_exceptionable, {
|
|
412
|
+
method: "typia.assert",
|
|
413
|
+
path: _path + ".description",
|
|
414
|
+
expected: "string",
|
|
415
|
+
value: input.description
|
|
416
|
+
}, _errorFactory));
|
|
417
|
+
const _ao15 = (input, _path, _exceptionable = true) => ("string" === typeof input.code || _assertGuard_1._assertGuard(_exceptionable, {
|
|
418
|
+
method: "typia.assert",
|
|
419
|
+
path: _path + ".code",
|
|
420
|
+
expected: "string",
|
|
421
|
+
value: input.code
|
|
422
|
+
}, _errorFactory)) && ("error" === input.severity || "warning" === input.severity || _assertGuard_1._assertGuard(_exceptionable, {
|
|
423
|
+
method: "typia.assert",
|
|
424
|
+
path: _path + ".severity",
|
|
425
|
+
expected: "(\"error\" | \"warning\")",
|
|
426
|
+
value: input.severity
|
|
427
|
+
}, _errorFactory)) && ("string" === typeof input.message || _assertGuard_1._assertGuard(_exceptionable, {
|
|
428
|
+
method: "typia.assert",
|
|
429
|
+
path: _path + ".message",
|
|
430
|
+
expected: "string",
|
|
431
|
+
value: input.message
|
|
432
|
+
}, _errorFactory)) && ("string" === typeof input.repair || _assertGuard_1._assertGuard(_exceptionable, {
|
|
433
|
+
method: "typia.assert",
|
|
434
|
+
path: _path + ".repair",
|
|
435
|
+
expected: "string",
|
|
436
|
+
value: input.repair
|
|
437
|
+
}, _errorFactory)) && (undefined === input.location || ("object" === typeof input.location && null !== input.location || _assertGuard_1._assertGuard(_exceptionable, {
|
|
438
|
+
method: "typia.assert",
|
|
439
|
+
path: _path + ".location",
|
|
440
|
+
expected: "(IEvidenceSourceLocation | undefined)",
|
|
441
|
+
value: input.location
|
|
442
|
+
}, _errorFactory)) && _ao5(input.location, _path + ".location", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
443
|
+
method: "typia.assert",
|
|
444
|
+
path: _path + ".location",
|
|
445
|
+
expected: "(IEvidenceSourceLocation | undefined)",
|
|
446
|
+
value: input.location
|
|
447
|
+
}, _errorFactory)) && (undefined === input.claim || "number" === typeof input.claim || _assertGuard_1._assertGuard(_exceptionable, {
|
|
448
|
+
method: "typia.assert",
|
|
449
|
+
path: _path + ".claim",
|
|
450
|
+
expected: "(number | undefined)",
|
|
451
|
+
value: input.claim
|
|
452
|
+
}, _errorFactory)) && (undefined === input.reference || "number" === typeof input.reference || _assertGuard_1._assertGuard(_exceptionable, {
|
|
453
|
+
method: "typia.assert",
|
|
454
|
+
path: _path + ".reference",
|
|
455
|
+
expected: "(number | undefined)",
|
|
456
|
+
value: input.reference
|
|
457
|
+
}, _errorFactory)) && (undefined === input.hostId || "string" === typeof input.hostId || _assertGuard_1._assertGuard(_exceptionable, {
|
|
458
|
+
method: "typia.assert",
|
|
459
|
+
path: _path + ".hostId",
|
|
460
|
+
expected: "(string | undefined)",
|
|
461
|
+
value: input.hostId
|
|
462
|
+
}, _errorFactory)) && (undefined === input.target || "string" === typeof input.target || _assertGuard_1._assertGuard(_exceptionable, {
|
|
463
|
+
method: "typia.assert",
|
|
464
|
+
path: _path + ".target",
|
|
465
|
+
expected: "(string | undefined)",
|
|
466
|
+
value: input.target
|
|
467
|
+
}, _errorFactory));
|
|
468
|
+
const _ao16 = (input, _path, _exceptionable = true) => ("string" === typeof input.path || _assertGuard_1._assertGuard(_exceptionable, {
|
|
469
|
+
method: "typia.assert",
|
|
470
|
+
path: _path + ".path",
|
|
471
|
+
expected: "string",
|
|
472
|
+
value: input.path
|
|
473
|
+
}, _errorFactory)) && ("boolean" === typeof input.recursive || _assertGuard_1._assertGuard(_exceptionable, {
|
|
474
|
+
method: "typia.assert",
|
|
475
|
+
path: _path + ".recursive",
|
|
476
|
+
expected: "boolean",
|
|
477
|
+
value: input.recursive
|
|
478
|
+
}, _errorFactory));
|
|
479
|
+
const _ao17 = (input, _path, _exceptionable = true) => _ap0(input, _path, true && _exceptionable) && _ap1(input, _path, true && _exceptionable) && _ap2(input, _path, true && _exceptionable) && _ap3(input, _path, true && _exceptionable) && ((Array.isArray(input.resolutions) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
480
|
+
method: "typia.assert",
|
|
481
|
+
path: _path + ".resolutions",
|
|
482
|
+
expected: "Array<IEvidenceGraphResolution>",
|
|
483
|
+
value: input.resolutions
|
|
484
|
+
}, _errorFactory)) && input.resolutions.every((elem, _index44) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
|
|
485
|
+
method: "typia.assert",
|
|
486
|
+
path: _path + ".resolutions[" + _index44 + "]",
|
|
487
|
+
expected: "IEvidenceGraphResolution",
|
|
488
|
+
value: elem
|
|
489
|
+
}, _errorFactory)) && _ao18(elem, _path + ".resolutions[" + _index44 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
490
|
+
method: "typia.assert",
|
|
491
|
+
path: _path + ".resolutions[" + _index44 + "]",
|
|
492
|
+
expected: "IEvidenceGraphResolution",
|
|
493
|
+
value: elem
|
|
494
|
+
}, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
495
|
+
method: "typia.assert",
|
|
496
|
+
path: _path + ".resolutions",
|
|
497
|
+
expected: "Array<IEvidenceGraphResolution>",
|
|
498
|
+
value: input.resolutions
|
|
499
|
+
}, _errorFactory)) && (undefined === input.reviewResolutions || (Array.isArray(input.reviewResolutions) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
500
|
+
method: "typia.assert",
|
|
501
|
+
path: _path + ".reviewResolutions",
|
|
502
|
+
expected: "(Array<IEvidenceGraphReviewResolution> | undefined)",
|
|
503
|
+
value: input.reviewResolutions
|
|
504
|
+
}, _errorFactory)) && input.reviewResolutions.every((elem, _index45) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
|
|
505
|
+
method: "typia.assert",
|
|
506
|
+
path: _path + ".reviewResolutions[" + _index45 + "]",
|
|
507
|
+
expected: "IEvidenceGraphReviewResolution",
|
|
508
|
+
value: elem
|
|
509
|
+
}, _errorFactory)) && _ao21(elem, _path + ".reviewResolutions[" + _index45 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
510
|
+
method: "typia.assert",
|
|
511
|
+
path: _path + ".reviewResolutions[" + _index45 + "]",
|
|
512
|
+
expected: "IEvidenceGraphReviewResolution",
|
|
513
|
+
value: elem
|
|
514
|
+
}, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
515
|
+
method: "typia.assert",
|
|
516
|
+
path: _path + ".reviewResolutions",
|
|
517
|
+
expected: "(Array<IEvidenceGraphReviewResolution> | undefined)",
|
|
518
|
+
value: input.reviewResolutions
|
|
519
|
+
}, _errorFactory)) && (undefined === input.noEvidenceExclude || "boolean" === typeof input.noEvidenceExclude || _assertGuard_1._assertGuard(_exceptionable, {
|
|
520
|
+
method: "typia.assert",
|
|
521
|
+
path: _path + ".noEvidenceExclude",
|
|
522
|
+
expected: "(boolean | undefined)",
|
|
523
|
+
value: input.noEvidenceExclude
|
|
524
|
+
}, _errorFactory)) && (undefined === input.uniqueEvidence || "boolean" === typeof input.uniqueEvidence || _assertGuard_1._assertGuard(_exceptionable, {
|
|
525
|
+
method: "typia.assert",
|
|
526
|
+
path: _path + ".uniqueEvidence",
|
|
527
|
+
expected: "(boolean | undefined)",
|
|
528
|
+
value: input.uniqueEvidence
|
|
529
|
+
}, _errorFactory)) && (undefined === input.singleEvidencePerSymbol || "boolean" === typeof input.singleEvidencePerSymbol || _assertGuard_1._assertGuard(_exceptionable, {
|
|
530
|
+
method: "typia.assert",
|
|
531
|
+
path: _path + ".singleEvidencePerSymbol",
|
|
532
|
+
expected: "(boolean | undefined)",
|
|
533
|
+
value: input.singleEvidencePerSymbol
|
|
534
|
+
}, _errorFactory)) && (undefined === input.checklist || "boolean" === typeof input.checklist || _assertGuard_1._assertGuard(_exceptionable, {
|
|
535
|
+
method: "typia.assert",
|
|
536
|
+
path: _path + ".checklist",
|
|
537
|
+
expected: "(boolean | undefined)",
|
|
538
|
+
value: input.checklist
|
|
539
|
+
}, _errorFactory)) && (undefined === input.requireReview || "boolean" === typeof input.requireReview || _assertGuard_1._assertGuard(_exceptionable, {
|
|
540
|
+
method: "typia.assert",
|
|
541
|
+
path: _path + ".requireReview",
|
|
542
|
+
expected: "(boolean | undefined)",
|
|
543
|
+
value: input.requireReview
|
|
544
|
+
}, _errorFactory));
|
|
545
|
+
const _ao18 = (input, _path, _exceptionable = true) => ("string" === typeof input.declarationId || _assertGuard_1._assertGuard(_exceptionable, {
|
|
546
|
+
method: "typia.assert",
|
|
547
|
+
path: _path + ".declarationId",
|
|
548
|
+
expected: "string",
|
|
549
|
+
value: input.declarationId
|
|
550
|
+
}, _errorFactory)) && _ap14(input, _path, true && _exceptionable);
|
|
551
|
+
const _ao19 = (input, _path, _exceptionable = true) => ("ambiguous" === input.status || "hidden" === input.status || "incomplete" === input.status || "malformed" === input.status || "missing-file" === input.status || "missing-member" === input.status || "out-of-population" === input.status || "resolved" === input.status || "unsupported-host" === input.status || _assertGuard_1._assertGuard(_exceptionable, {
|
|
552
|
+
method: "typia.assert",
|
|
553
|
+
path: _path + ".status",
|
|
554
|
+
expected: _ae1,
|
|
555
|
+
value: input.status
|
|
556
|
+
}, _errorFactory)) && ((Array.isArray(input.addresses) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
557
|
+
method: "typia.assert",
|
|
558
|
+
path: _path + ".addresses",
|
|
559
|
+
expected: "Array<IEvidenceAddress>",
|
|
560
|
+
value: input.addresses
|
|
561
|
+
}, _errorFactory)) && input.addresses.every((elem, _index46) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
|
|
562
|
+
method: "typia.assert",
|
|
563
|
+
path: _path + ".addresses[" + _index46 + "]",
|
|
564
|
+
expected: "IEvidenceAddress",
|
|
565
|
+
value: elem
|
|
566
|
+
}, _errorFactory)) && _ao20(elem, _path + ".addresses[" + _index46 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
567
|
+
method: "typia.assert",
|
|
568
|
+
path: _path + ".addresses[" + _index46 + "]",
|
|
569
|
+
expected: "IEvidenceAddress",
|
|
570
|
+
value: elem
|
|
571
|
+
}, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
572
|
+
method: "typia.assert",
|
|
573
|
+
path: _path + ".addresses",
|
|
574
|
+
expected: "Array<IEvidenceAddress>",
|
|
575
|
+
value: input.addresses
|
|
576
|
+
}, _errorFactory)) && _ap4(input, _path, true && _exceptionable) && _ap8(input, _path, true && _exceptionable) && _ap5(input, _path, true && _exceptionable);
|
|
577
|
+
const _ao2 = (input, _path, _exceptionable = true) => (1 === input.schemaVersion || _assertGuard_1._assertGuard(_exceptionable, {
|
|
578
|
+
method: "typia.assert",
|
|
579
|
+
path: _path + ".schemaVersion",
|
|
580
|
+
expected: "1",
|
|
581
|
+
value: input.schemaVersion
|
|
582
|
+
}, _errorFactory)) && ((Array.isArray(input.sources) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
583
|
+
method: "typia.assert",
|
|
584
|
+
path: _path + ".sources",
|
|
585
|
+
expected: "Array<IEvidenceSourceFile>",
|
|
586
|
+
value: input.sources
|
|
587
|
+
}, _errorFactory)) && input.sources.every((elem, _index28) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
|
|
588
|
+
method: "typia.assert",
|
|
589
|
+
path: _path + ".sources[" + _index28 + "]",
|
|
590
|
+
expected: "IEvidenceSourceFile",
|
|
591
|
+
value: elem
|
|
592
|
+
}, _errorFactory)) && _ao3(elem, _path + ".sources[" + _index28 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
593
|
+
method: "typia.assert",
|
|
594
|
+
path: _path + ".sources[" + _index28 + "]",
|
|
595
|
+
expected: "IEvidenceSourceFile",
|
|
596
|
+
value: elem
|
|
597
|
+
}, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
598
|
+
method: "typia.assert",
|
|
599
|
+
path: _path + ".sources",
|
|
600
|
+
expected: "Array<IEvidenceSourceFile>",
|
|
601
|
+
value: input.sources
|
|
602
|
+
}, _errorFactory)) && ((Array.isArray(input.annotationRanges) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
603
|
+
method: "typia.assert",
|
|
604
|
+
path: _path + ".annotationRanges",
|
|
605
|
+
expected: "Array<IEvidenceSourceLocation>",
|
|
606
|
+
value: input.annotationRanges
|
|
607
|
+
}, _errorFactory)) && input.annotationRanges.every((elem, _index29) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
|
|
608
|
+
method: "typia.assert",
|
|
609
|
+
path: _path + ".annotationRanges[" + _index29 + "]",
|
|
610
|
+
expected: "IEvidenceSourceLocation",
|
|
611
|
+
value: elem
|
|
612
|
+
}, _errorFactory)) && _ao5(elem, _path + ".annotationRanges[" + _index29 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
613
|
+
method: "typia.assert",
|
|
614
|
+
path: _path + ".annotationRanges[" + _index29 + "]",
|
|
615
|
+
expected: "IEvidenceSourceLocation",
|
|
616
|
+
value: elem
|
|
617
|
+
}, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
618
|
+
method: "typia.assert",
|
|
619
|
+
path: _path + ".annotationRanges",
|
|
620
|
+
expected: "Array<IEvidenceSourceLocation>",
|
|
621
|
+
value: input.annotationRanges
|
|
622
|
+
}, _errorFactory)) && _ap4(input, _path, true && _exceptionable) && ((Array.isArray(input.addresses) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
623
|
+
method: "typia.assert",
|
|
624
|
+
path: _path + ".addresses",
|
|
625
|
+
expected: "Array<IEvidencePublicAddress>",
|
|
626
|
+
value: input.addresses
|
|
627
|
+
}, _errorFactory)) && input.addresses.every((elem, _index31) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
|
|
628
|
+
method: "typia.assert",
|
|
629
|
+
path: _path + ".addresses[" + _index31 + "]",
|
|
630
|
+
expected: "IEvidencePublicAddress",
|
|
631
|
+
value: elem
|
|
632
|
+
}, _errorFactory)) && _ao11(elem, _path + ".addresses[" + _index31 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
633
|
+
method: "typia.assert",
|
|
634
|
+
path: _path + ".addresses[" + _index31 + "]",
|
|
635
|
+
expected: "IEvidencePublicAddress",
|
|
636
|
+
value: elem
|
|
637
|
+
}, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
638
|
+
method: "typia.assert",
|
|
639
|
+
path: _path + ".addresses",
|
|
640
|
+
expected: "Array<IEvidencePublicAddress>",
|
|
641
|
+
value: input.addresses
|
|
642
|
+
}, _errorFactory)) && ((Array.isArray(input.hosts) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
643
|
+
method: "typia.assert",
|
|
644
|
+
path: _path + ".hosts",
|
|
645
|
+
expected: "Array<IEvidenceHost>",
|
|
646
|
+
value: input.hosts
|
|
647
|
+
}, _errorFactory)) && input.hosts.every((elem, _index32) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
|
|
648
|
+
method: "typia.assert",
|
|
649
|
+
path: _path + ".hosts[" + _index32 + "]",
|
|
650
|
+
expected: "IEvidenceHost",
|
|
651
|
+
value: elem
|
|
652
|
+
}, _errorFactory)) && _ao12(elem, _path + ".hosts[" + _index32 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
653
|
+
method: "typia.assert",
|
|
654
|
+
path: _path + ".hosts[" + _index32 + "]",
|
|
655
|
+
expected: "IEvidenceHost",
|
|
656
|
+
value: elem
|
|
657
|
+
}, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
658
|
+
method: "typia.assert",
|
|
659
|
+
path: _path + ".hosts",
|
|
660
|
+
expected: "Array<IEvidenceHost>",
|
|
661
|
+
value: input.hosts
|
|
662
|
+
}, _errorFactory)) && ((Array.isArray(input.declarations) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
663
|
+
method: "typia.assert",
|
|
664
|
+
path: _path + ".declarations",
|
|
665
|
+
expected: "Array<IEvidenceDeclaration>",
|
|
666
|
+
value: input.declarations
|
|
667
|
+
}, _errorFactory)) && input.declarations.every((elem, _index33) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
|
|
668
|
+
method: "typia.assert",
|
|
669
|
+
path: _path + ".declarations[" + _index33 + "]",
|
|
670
|
+
expected: "IEvidenceDeclaration",
|
|
671
|
+
value: elem
|
|
672
|
+
}, _errorFactory)) && _ao13(elem, _path + ".declarations[" + _index33 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
673
|
+
method: "typia.assert",
|
|
674
|
+
path: _path + ".declarations[" + _index33 + "]",
|
|
675
|
+
expected: "IEvidenceDeclaration",
|
|
676
|
+
value: elem
|
|
677
|
+
}, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
678
|
+
method: "typia.assert",
|
|
679
|
+
path: _path + ".declarations",
|
|
680
|
+
expected: "Array<IEvidenceDeclaration>",
|
|
681
|
+
value: input.declarations
|
|
682
|
+
}, _errorFactory)) && ((Array.isArray(input.reviews) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
683
|
+
method: "typia.assert",
|
|
684
|
+
path: _path + ".reviews",
|
|
685
|
+
expected: "Array<IEvidenceReview>",
|
|
686
|
+
value: input.reviews
|
|
687
|
+
}, _errorFactory)) && input.reviews.every((elem, _index34) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
|
|
688
|
+
method: "typia.assert",
|
|
689
|
+
path: _path + ".reviews[" + _index34 + "]",
|
|
690
|
+
expected: "IEvidenceReview",
|
|
691
|
+
value: elem
|
|
692
|
+
}, _errorFactory)) && _ao14(elem, _path + ".reviews[" + _index34 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
693
|
+
method: "typia.assert",
|
|
694
|
+
path: _path + ".reviews[" + _index34 + "]",
|
|
695
|
+
expected: "IEvidenceReview",
|
|
696
|
+
value: elem
|
|
697
|
+
}, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
698
|
+
method: "typia.assert",
|
|
699
|
+
path: _path + ".reviews",
|
|
700
|
+
expected: "Array<IEvidenceReview>",
|
|
701
|
+
value: input.reviews
|
|
702
|
+
}, _errorFactory)) && _ap5(input, _path, true && _exceptionable) && ((Array.isArray(input.dependencies) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
703
|
+
method: "typia.assert",
|
|
704
|
+
path: _path + ".dependencies",
|
|
705
|
+
expected: "Array<IEvidenceSourceDependency>",
|
|
706
|
+
value: input.dependencies
|
|
707
|
+
}, _errorFactory)) && input.dependencies.every((elem, _index36) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
|
|
708
|
+
method: "typia.assert",
|
|
709
|
+
path: _path + ".dependencies[" + _index36 + "]",
|
|
710
|
+
expected: "IEvidenceSourceDependency",
|
|
711
|
+
value: elem
|
|
712
|
+
}, _errorFactory)) && _ao16(elem, _path + ".dependencies[" + _index36 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
713
|
+
method: "typia.assert",
|
|
714
|
+
path: _path + ".dependencies[" + _index36 + "]",
|
|
715
|
+
expected: "IEvidenceSourceDependency",
|
|
716
|
+
value: elem
|
|
717
|
+
}, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
718
|
+
method: "typia.assert",
|
|
719
|
+
path: _path + ".dependencies",
|
|
720
|
+
expected: "Array<IEvidenceSourceDependency>",
|
|
721
|
+
value: input.dependencies
|
|
722
|
+
}, _errorFactory)) && ("boolean" === typeof input.complete || _assertGuard_1._assertGuard(_exceptionable, {
|
|
723
|
+
method: "typia.assert",
|
|
724
|
+
path: _path + ".complete",
|
|
725
|
+
expected: "boolean",
|
|
726
|
+
value: input.complete
|
|
727
|
+
}, _errorFactory));
|
|
728
|
+
const _ao20 = (input, _path, _exceptionable = true) => _ap7(input, _path, true && _exceptionable) && _ap11(input, _path, true && _exceptionable);
|
|
729
|
+
const _ao21 = (input, _path, _exceptionable = true) => ("string" === typeof input.reviewId || _assertGuard_1._assertGuard(_exceptionable, {
|
|
730
|
+
method: "typia.assert",
|
|
731
|
+
path: _path + ".reviewId",
|
|
732
|
+
expected: "string",
|
|
733
|
+
value: input.reviewId
|
|
734
|
+
}, _errorFactory)) && _ap14(input, _path, true && _exceptionable);
|
|
735
|
+
const _ao3 = (input, _path, _exceptionable = true) => _ap6(input, _path, true && _exceptionable) && ("string" === typeof input.physicalPath || _assertGuard_1._assertGuard(_exceptionable, {
|
|
736
|
+
method: "typia.assert",
|
|
737
|
+
path: _path + ".physicalPath",
|
|
738
|
+
expected: "string",
|
|
739
|
+
value: input.physicalPath
|
|
740
|
+
}, _errorFactory)) && ("string" === typeof input.content || _assertGuard_1._assertGuard(_exceptionable, {
|
|
741
|
+
method: "typia.assert",
|
|
742
|
+
path: _path + ".content",
|
|
743
|
+
expected: "string",
|
|
744
|
+
value: input.content
|
|
745
|
+
}, _errorFactory)) && ("string" === typeof input.digest || _assertGuard_1._assertGuard(_exceptionable, {
|
|
746
|
+
method: "typia.assert",
|
|
747
|
+
path: _path + ".digest",
|
|
748
|
+
expected: "string",
|
|
749
|
+
value: input.digest
|
|
750
|
+
}, _errorFactory)) && ((Array.isArray(input.addresses) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
751
|
+
method: "typia.assert",
|
|
752
|
+
path: _path + ".addresses",
|
|
753
|
+
expected: "Array<IEvidenceSourceAddress>",
|
|
754
|
+
value: input.addresses
|
|
755
|
+
}, _errorFactory)) && input.addresses.every((elem, _index37) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
|
|
756
|
+
method: "typia.assert",
|
|
757
|
+
path: _path + ".addresses[" + _index37 + "]",
|
|
758
|
+
expected: "IEvidenceSourceAddress",
|
|
759
|
+
value: elem
|
|
760
|
+
}, _errorFactory)) && _ao4(elem, _path + ".addresses[" + _index37 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
761
|
+
method: "typia.assert",
|
|
762
|
+
path: _path + ".addresses[" + _index37 + "]",
|
|
763
|
+
expected: "IEvidenceSourceAddress",
|
|
764
|
+
value: elem
|
|
765
|
+
}, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
766
|
+
method: "typia.assert",
|
|
767
|
+
path: _path + ".addresses",
|
|
768
|
+
expected: "Array<IEvidenceSourceAddress>",
|
|
769
|
+
value: input.addresses
|
|
770
|
+
}, _errorFactory));
|
|
771
|
+
const _ao4 = (input, _path, _exceptionable = true) => ("string" === typeof input.absolute || _assertGuard_1._assertGuard(_exceptionable, {
|
|
772
|
+
method: "typia.assert",
|
|
773
|
+
path: _path + ".absolute",
|
|
774
|
+
expected: "string",
|
|
775
|
+
value: input.absolute
|
|
776
|
+
}, _errorFactory)) && ("string" === typeof input.relative || _assertGuard_1._assertGuard(_exceptionable, {
|
|
777
|
+
method: "typia.assert",
|
|
778
|
+
path: _path + ".relative",
|
|
779
|
+
expected: "string",
|
|
780
|
+
value: input.relative
|
|
781
|
+
}, _errorFactory)) && ("string" === typeof input.display || _assertGuard_1._assertGuard(_exceptionable, {
|
|
782
|
+
method: "typia.assert",
|
|
783
|
+
path: _path + ".display",
|
|
784
|
+
expected: "string",
|
|
785
|
+
value: input.display
|
|
786
|
+
}, _errorFactory)) && (undefined === input.selected || "boolean" === typeof input.selected || _assertGuard_1._assertGuard(_exceptionable, {
|
|
787
|
+
method: "typia.assert",
|
|
788
|
+
path: _path + ".selected",
|
|
789
|
+
expected: "(boolean | undefined)",
|
|
790
|
+
value: input.selected
|
|
791
|
+
}, _errorFactory));
|
|
792
|
+
const _ao5 = (input, _path, _exceptionable = true) => _ap7(input, _path, true && _exceptionable) && (undefined === input.range || ("object" === typeof input.range && null !== input.range || _assertGuard_1._assertGuard(_exceptionable, {
|
|
793
|
+
method: "typia.assert",
|
|
794
|
+
path: _path + ".range",
|
|
795
|
+
expected: "(IEvidenceSourceRange | undefined)",
|
|
796
|
+
value: input.range
|
|
797
|
+
}, _errorFactory)) && _ao6(input.range, _path + ".range", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
798
|
+
method: "typia.assert",
|
|
799
|
+
path: _path + ".range",
|
|
800
|
+
expected: "(IEvidenceSourceRange | undefined)",
|
|
801
|
+
value: input.range
|
|
802
|
+
}, _errorFactory));
|
|
803
|
+
const _ao6 = (input, _path, _exceptionable = true) => (("object" === typeof input.start && null !== input.start || _assertGuard_1._assertGuard(_exceptionable, {
|
|
804
|
+
method: "typia.assert",
|
|
805
|
+
path: _path + ".start",
|
|
806
|
+
expected: "IEvidenceSourcePosition",
|
|
807
|
+
value: input.start
|
|
808
|
+
}, _errorFactory)) && _ao7(input.start, _path + ".start", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
809
|
+
method: "typia.assert",
|
|
810
|
+
path: _path + ".start",
|
|
811
|
+
expected: "IEvidenceSourcePosition",
|
|
812
|
+
value: input.start
|
|
813
|
+
}, _errorFactory)) && (("object" === typeof input.end && null !== input.end || _assertGuard_1._assertGuard(_exceptionable, {
|
|
814
|
+
method: "typia.assert",
|
|
815
|
+
path: _path + ".end",
|
|
816
|
+
expected: "IEvidenceSourcePosition",
|
|
817
|
+
value: input.end
|
|
818
|
+
}, _errorFactory)) && _ao7(input.end, _path + ".end", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
819
|
+
method: "typia.assert",
|
|
820
|
+
path: _path + ".end",
|
|
821
|
+
expected: "IEvidenceSourcePosition",
|
|
822
|
+
value: input.end
|
|
823
|
+
}, _errorFactory));
|
|
824
|
+
const _ao7 = (input, _path, _exceptionable = true) => ("number" === typeof input.offset || _assertGuard_1._assertGuard(_exceptionable, {
|
|
825
|
+
method: "typia.assert",
|
|
826
|
+
path: _path + ".offset",
|
|
827
|
+
expected: "number",
|
|
828
|
+
value: input.offset
|
|
829
|
+
}, _errorFactory)) && ("number" === typeof input.line || _assertGuard_1._assertGuard(_exceptionable, {
|
|
830
|
+
method: "typia.assert",
|
|
831
|
+
path: _path + ".line",
|
|
832
|
+
expected: "number",
|
|
833
|
+
value: input.line
|
|
834
|
+
}, _errorFactory)) && ("number" === typeof input.column || _assertGuard_1._assertGuard(_exceptionable, {
|
|
835
|
+
method: "typia.assert",
|
|
836
|
+
path: _path + ".column",
|
|
837
|
+
expected: "number",
|
|
838
|
+
value: input.column
|
|
839
|
+
}, _errorFactory));
|
|
840
|
+
const _ao8 = (input, _path, _exceptionable = true) => _ap6(input, _path, true && _exceptionable) && (undefined === input.parentId || "string" === typeof input.parentId || _assertGuard_1._assertGuard(_exceptionable, {
|
|
841
|
+
method: "typia.assert",
|
|
842
|
+
path: _path + ".parentId",
|
|
843
|
+
expected: "(string | undefined)",
|
|
844
|
+
value: input.parentId
|
|
845
|
+
}, _errorFactory)) && (true === _av0.has(input.type) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
846
|
+
method: "typia.assert",
|
|
847
|
+
path: _path + ".type",
|
|
848
|
+
expected: _ae0,
|
|
849
|
+
value: input.type
|
|
850
|
+
}, _errorFactory)) && (true === _av1.has(input.symbol) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
851
|
+
method: "typia.assert",
|
|
852
|
+
path: _path + ".symbol",
|
|
853
|
+
expected: "(\"column\" | \"file\" | \"function\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"model\" | \"operation\" | \"property\" | \"relation\" | \"type\")",
|
|
854
|
+
value: input.symbol
|
|
855
|
+
}, _errorFactory)) && ((Array.isArray(input.identity) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
856
|
+
method: "typia.assert",
|
|
857
|
+
path: _path + ".identity",
|
|
858
|
+
expected: "Array<string>",
|
|
859
|
+
value: input.identity
|
|
860
|
+
}, _errorFactory)) && input.identity.every((elem, _index38) => "string" === typeof elem || _assertGuard_1._assertGuard(_exceptionable, {
|
|
861
|
+
method: "typia.assert",
|
|
862
|
+
path: _path + ".identity[" + _index38 + "]",
|
|
863
|
+
expected: "string",
|
|
864
|
+
value: elem
|
|
865
|
+
}, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
866
|
+
method: "typia.assert",
|
|
867
|
+
path: _path + ".identity",
|
|
868
|
+
expected: "Array<string>",
|
|
869
|
+
value: input.identity
|
|
870
|
+
}, _errorFactory)) && ("string" === typeof input.name || _assertGuard_1._assertGuard(_exceptionable, {
|
|
871
|
+
method: "typia.assert",
|
|
872
|
+
path: _path + ".name",
|
|
873
|
+
expected: "string",
|
|
874
|
+
value: input.name
|
|
875
|
+
}, _errorFactory)) && (undefined === input.contentDigest || "string" === typeof input.contentDigest || _assertGuard_1._assertGuard(_exceptionable, {
|
|
876
|
+
method: "typia.assert",
|
|
877
|
+
path: _path + ".contentDigest",
|
|
878
|
+
expected: "(string | undefined)",
|
|
879
|
+
value: input.contentDigest
|
|
880
|
+
}, _errorFactory)) && ((Array.isArray(input.sites) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
881
|
+
method: "typia.assert",
|
|
882
|
+
path: _path + ".sites",
|
|
883
|
+
expected: "Array<IEvidenceUnitSite>",
|
|
884
|
+
value: input.sites
|
|
885
|
+
}, _errorFactory)) && input.sites.every((elem, _index39) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
|
|
886
|
+
method: "typia.assert",
|
|
887
|
+
path: _path + ".sites[" + _index39 + "]",
|
|
888
|
+
expected: "IEvidenceUnitSite",
|
|
889
|
+
value: elem
|
|
890
|
+
}, _errorFactory)) && _ao9(elem, _path + ".sites[" + _index39 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
891
|
+
method: "typia.assert",
|
|
892
|
+
path: _path + ".sites[" + _index39 + "]",
|
|
893
|
+
expected: "IEvidenceUnitSite",
|
|
894
|
+
value: elem
|
|
895
|
+
}, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
896
|
+
method: "typia.assert",
|
|
897
|
+
path: _path + ".sites",
|
|
898
|
+
expected: "Array<IEvidenceUnitSite>",
|
|
899
|
+
value: input.sites
|
|
900
|
+
}, _errorFactory)) && _ap8(input, _path, true && _exceptionable);
|
|
901
|
+
const _ao9 = (input, _path, _exceptionable = true) => _ap6(input, _path, true && _exceptionable) && _ap7(input, _path, true && _exceptionable) && _ap9(input, _path, true && _exceptionable) && ((Array.isArray(input.content) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
902
|
+
method: "typia.assert",
|
|
903
|
+
path: _path + ".content",
|
|
904
|
+
expected: "Array<IEvidenceSourceRange>",
|
|
905
|
+
value: input.content
|
|
906
|
+
}, _errorFactory)) && input.content.every((elem, _index41) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
|
|
907
|
+
method: "typia.assert",
|
|
908
|
+
path: _path + ".content[" + _index41 + "]",
|
|
909
|
+
expected: "IEvidenceSourceRange",
|
|
910
|
+
value: elem
|
|
911
|
+
}, _errorFactory)) && _ao6(elem, _path + ".content[" + _index41 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
912
|
+
method: "typia.assert",
|
|
913
|
+
path: _path + ".content[" + _index41 + "]",
|
|
914
|
+
expected: "IEvidenceSourceRange",
|
|
915
|
+
value: elem
|
|
916
|
+
}, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
|
|
917
|
+
method: "typia.assert",
|
|
918
|
+
path: _path + ".content",
|
|
919
|
+
expected: "Array<IEvidenceSourceRange>",
|
|
920
|
+
value: input.content
|
|
921
|
+
}, _errorFactory));
|
|
922
|
+
const _io0 = input => Array.isArray(input.claims) && input.claims.every(elem => "object" === typeof elem && null !== elem && _io1(elem));
|
|
923
|
+
const _io1 = input => _ip0(input) && (undefined === input.name || "string" === typeof input.name) && _ip1(input) && _ip2(input) && _ip3(input) && (undefined === input.exclusionHostIds || Array.isArray(input.exclusionHostIds) && input.exclusionHostIds.every(elem => "string" === typeof elem)) && (Array.isArray(input.references) && input.references.every(elem => "object" === typeof elem && null !== elem && _io17(elem)));
|
|
924
|
+
const _io10 = input => ("hidden" === input.tag || "ignore" === input.tag || "internal" === input.tag) && _ip10(input);
|
|
925
|
+
const _io11 = input => _ip7(input) && _ip11(input) && "string" === typeof input.unitId;
|
|
926
|
+
const _io12 = input => _ip6(input) && _ip7(input) && _ip9(input) && (undefined === input.origins || Array.isArray(input.origins) && input.origins.every(elem => "string" === typeof elem)) && (undefined === input.siteId || "string" === typeof input.siteId) && _ip3(input) && ("attached" === input.attachment || "unattached" === input.attachment || "unsupported" === input.attachment) && (undefined === input.problem || "string" === typeof input.problem);
|
|
927
|
+
const _io13 = input => _ip12(input) && _ip13(input) && _ip10(input) && _ip6(input) && ("evidence" === input.kind || "evidenceExclude" === input.kind) && "string" === typeof input.reason;
|
|
928
|
+
const _io14 = input => _ip12(input) && _ip13(input) && _ip10(input) && _ip6(input) && ("evidence" === input.reviews || "evidenceExclude" === input.reviews) && (undefined === input.fingerprint || "string" === typeof input.fingerprint) && "string" === typeof input.description;
|
|
929
|
+
const _io15 = input => "string" === typeof input.code && ("error" === input.severity || "warning" === input.severity) && "string" === typeof input.message && "string" === typeof input.repair && (undefined === input.location || "object" === typeof input.location && null !== input.location && _io5(input.location)) && (undefined === input.claim || "number" === typeof input.claim) && (undefined === input.reference || "number" === typeof input.reference) && (undefined === input.hostId || "string" === typeof input.hostId) && (undefined === input.target || "string" === typeof input.target);
|
|
930
|
+
const _io16 = input => "string" === typeof input.path && "boolean" === typeof input.recursive;
|
|
931
|
+
const _io17 = input => _ip0(input) && _ip1(input) && _ip2(input) && _ip3(input) && (Array.isArray(input.resolutions) && input.resolutions.every(elem => "object" === typeof elem && null !== elem && _io18(elem))) && (undefined === input.reviewResolutions || Array.isArray(input.reviewResolutions) && input.reviewResolutions.every(elem => "object" === typeof elem && null !== elem && _io21(elem))) && (undefined === input.noEvidenceExclude || "boolean" === typeof input.noEvidenceExclude) && (undefined === input.uniqueEvidence || "boolean" === typeof input.uniqueEvidence) && (undefined === input.singleEvidencePerSymbol || "boolean" === typeof input.singleEvidencePerSymbol) && (undefined === input.checklist || "boolean" === typeof input.checklist) && (undefined === input.requireReview || "boolean" === typeof input.requireReview);
|
|
932
|
+
const _io18 = input => "string" === typeof input.declarationId && _ip14(input);
|
|
933
|
+
const _io19 = input => ("ambiguous" === input.status || "hidden" === input.status || "incomplete" === input.status || "malformed" === input.status || "missing-file" === input.status || "missing-member" === input.status || "out-of-population" === input.status || "resolved" === input.status || "unsupported-host" === input.status) && (Array.isArray(input.addresses) && input.addresses.every(elem => "object" === typeof elem && null !== elem && _io20(elem))) && _ip4(input) && _ip8(input) && _ip5(input);
|
|
934
|
+
const _io2 = input => 1 === input.schemaVersion && (Array.isArray(input.sources) && input.sources.every(elem => "object" === typeof elem && null !== elem && _io3(elem))) && (Array.isArray(input.annotationRanges) && input.annotationRanges.every(elem => "object" === typeof elem && null !== elem && _io5(elem))) && _ip4(input) && (Array.isArray(input.addresses) && input.addresses.every(elem => "object" === typeof elem && null !== elem && _io11(elem))) && (Array.isArray(input.hosts) && input.hosts.every(elem => "object" === typeof elem && null !== elem && _io12(elem))) && (Array.isArray(input.declarations) && input.declarations.every(elem => "object" === typeof elem && null !== elem && _io13(elem))) && (Array.isArray(input.reviews) && input.reviews.every(elem => "object" === typeof elem && null !== elem && _io14(elem))) && _ip5(input) && (Array.isArray(input.dependencies) && input.dependencies.every(elem => "object" === typeof elem && null !== elem && _io16(elem))) && "boolean" === typeof input.complete;
|
|
935
|
+
const _io20 = input => _ip7(input) && _ip11(input);
|
|
936
|
+
const _io21 = input => "string" === typeof input.reviewId && _ip14(input);
|
|
937
|
+
const _io3 = input => _ip6(input) && "string" === typeof input.physicalPath && "string" === typeof input.content && "string" === typeof input.digest && (Array.isArray(input.addresses) && input.addresses.every(elem => "object" === typeof elem && null !== elem && _io4(elem)));
|
|
938
|
+
const _io4 = input => "string" === typeof input.absolute && "string" === typeof input.relative && "string" === typeof input.display && (undefined === input.selected || "boolean" === typeof input.selected);
|
|
939
|
+
const _io5 = input => _ip7(input) && (undefined === input.range || "object" === typeof input.range && null !== input.range && _io6(input.range));
|
|
940
|
+
const _io6 = input => "object" === typeof input.start && null !== input.start && _io7(input.start) && ("object" === typeof input.end && null !== input.end && _io7(input.end));
|
|
941
|
+
const _io7 = input => "number" === typeof input.offset && "number" === typeof input.line && "number" === typeof input.column;
|
|
942
|
+
const _io8 = input => _ip6(input) && (undefined === input.parentId || "string" === typeof input.parentId) && true === _iv0.has(input.type) && true === _iv1.has(input.symbol) && (Array.isArray(input.identity) && input.identity.every(elem => "string" === typeof elem)) && "string" === typeof input.name && (undefined === input.contentDigest || "string" === typeof input.contentDigest) && (Array.isArray(input.sites) && input.sites.every(elem => "object" === typeof elem && null !== elem && _io9(elem))) && _ip8(input);
|
|
943
|
+
const _io9 = input => _ip6(input) && _ip7(input) && _ip9(input) && (Array.isArray(input.content) && input.content.every(elem => "object" === typeof elem && null !== elem && _io6(elem)));
|
|
944
|
+
const __is = input => "object" === typeof input && null !== input && _io0(input);
|
|
945
|
+
let _errorFactory;
|
|
946
|
+
return (input, errorFactory) => {
|
|
947
|
+
if (false === __is(input)) {
|
|
948
|
+
_errorFactory = errorFactory;
|
|
949
|
+
((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _assertGuard_1._assertGuard(true, {
|
|
950
|
+
method: "typia.assert",
|
|
951
|
+
path: _path + "",
|
|
952
|
+
expected: "IEvidenceGraphInput",
|
|
953
|
+
value: input
|
|
954
|
+
}, _errorFactory)) && _ao0(input, _path + "", true) || _assertGuard_1._assertGuard(true, {
|
|
955
|
+
method: "typia.assert",
|
|
956
|
+
path: _path + "",
|
|
957
|
+
expected: "IEvidenceGraphInput",
|
|
958
|
+
value: input
|
|
959
|
+
}, _errorFactory))(input, "$input", true);
|
|
960
|
+
}
|
|
961
|
+
return input;
|
|
962
|
+
};
|
|
963
|
+
})()(input));
|
|
964
|
+
}
|
|
965
|
+
/**
|
|
966
|
+
* Evaluates every independent obligation in the captured input.
|
|
967
|
+
*
|
|
968
|
+
* A fresh evaluator prevents coverage sets and deferred diagnostics from leaking
|
|
969
|
+
* across calls. The returned clone also prevents consumers from mutating records
|
|
970
|
+
* retained by the facade.
|
|
971
|
+
*/
|
|
972
|
+
evaluate() {
|
|
973
|
+
return structuredClone(new GraphEvaluator(this.input).evaluate());
|
|
974
|
+
}
|
|
975
|
+
/**
|
|
976
|
+
* Captures and evaluates input without retaining a graph facade.
|
|
977
|
+
*
|
|
978
|
+
* This convenience entry point has the same validation and result ownership as
|
|
979
|
+
* construction followed by the instance `evaluate` method.
|
|
980
|
+
*/
|
|
981
|
+
static evaluate(input) {
|
|
982
|
+
return new EvidenceGraph(input).evaluate();
|
|
983
|
+
}
|
|
984
|
+
}
|
|
985
|
+
exports.EvidenceGraph = EvidenceGraph;
|
|
986
|
+
/**
|
|
987
|
+
* Owns coverage accumulation and deferred findings for one graph evaluation.
|
|
988
|
+
*
|
|
989
|
+
* Claim and reference contexts keep local populations and resolutions, while this
|
|
990
|
+
* controller records whether acknowledgements participate anywhere in the graph.
|
|
991
|
+
* That shared participation state is needed to avoid declaring an unhosted
|
|
992
|
+
* checklist citation invalid before another applicable reference can explain it.
|
|
993
|
+
*
|
|
994
|
+
* The public facade creates a new controller for every evaluation. Its sets and
|
|
995
|
+
* maps therefore describe one traversal only and must not become facade caches.
|
|
996
|
+
*/
|
|
997
|
+
class GraphEvaluator {
|
|
998
|
+
/**
|
|
999
|
+
* Acknowledgements handled by a complete applicable obligation.
|
|
1000
|
+
*
|
|
1001
|
+
* Final checklist reporting consults this set across references, preventing a
|
|
1002
|
+
* citation accepted elsewhere from receiving a premature unhosted finding.
|
|
1003
|
+
*/
|
|
1004
|
+
answeredDeclarations = new Set();
|
|
1005
|
+
/**
|
|
1006
|
+
* Findings accumulated during this single traversal.
|
|
1007
|
+
*
|
|
1008
|
+
* Finalization deduplicates equivalent findings after all claims are evaluated.
|
|
1009
|
+
* The array is never reused by a later facade invocation.
|
|
1010
|
+
*/
|
|
1011
|
+
diagnostics = [];
|
|
1012
|
+
/**
|
|
1013
|
+
* Acknowledgements whose participation is uncertain because analysis failed.
|
|
1014
|
+
*
|
|
1015
|
+
* Deferred reporting must not infer invalid ownership from a reference that
|
|
1016
|
+
* could not supply a complete population or resolution.
|
|
1017
|
+
*/
|
|
1018
|
+
uncertainDeclarations = new Set();
|
|
1019
|
+
/**
|
|
1020
|
+
* Checklist statements awaiting graph-wide participation finalization.
|
|
1021
|
+
*
|
|
1022
|
+
* Each record retains its diagnostic boundary and severity. Later references
|
|
1023
|
+
* can establish that the statement was handled or that its status is uncertain.
|
|
1024
|
+
*/
|
|
1025
|
+
unhostedChecklists = new Map();
|
|
1026
|
+
/**
|
|
1027
|
+
* Captured facade input used to create this traversal's claim contexts.
|
|
1028
|
+
*
|
|
1029
|
+
* The controller relies on the facade's shape validation and copy ownership;
|
|
1030
|
+
* it adds evaluation state without replacing or reloading source populations.
|
|
1031
|
+
*/
|
|
1032
|
+
input;
|
|
1033
|
+
/**
|
|
1034
|
+
* Binds captured input to empty per-evaluation state.
|
|
1035
|
+
*
|
|
1036
|
+
* The facade owns input validation and cloning. Keeping construction separate
|
|
1037
|
+
* from traversal lets every evaluation start with empty participation sets.
|
|
1038
|
+
*/
|
|
1039
|
+
constructor(input) {
|
|
1040
|
+
this.input = input;
|
|
1041
|
+
}
|
|
1042
|
+
/**
|
|
1043
|
+
* Evaluates claims, then finalizes findings that depend on reference participation.
|
|
1044
|
+
*
|
|
1045
|
+
* Inactive obligations do not affect completeness. Every active claim and
|
|
1046
|
+
* reference must be complete, and the final diagnostic list must be empty,
|
|
1047
|
+
* before this graph result is successful.
|
|
1048
|
+
*/
|
|
1049
|
+
evaluate() {
|
|
1050
|
+
const claims = this.input.claims.map((claim, index) => this.evaluateClaim(claim, index));
|
|
1051
|
+
// A citation can participate in another reference. Decide deferred checklist
|
|
1052
|
+
// findings only after every claim has recorded accepted or uncertain usage.
|
|
1053
|
+
this.reportUnhostedChecklists();
|
|
1054
|
+
const diagnostics = InventoryMerge_1.InventoryMerge.unique(this.diagnostics, (diagnostic) => (() => {
|
|
1055
|
+
const _so0 = input => `{${_jsonStringifyTail_1._jsonStringifyTail(`"code":${_jsonStringifyString_1._jsonStringifyString(input.code)},"severity":${"\"" + input.severity + "\""},"message":${_jsonStringifyString_1._jsonStringifyString(input.message)},"repair":${_jsonStringifyString_1._jsonStringifyString(input.repair)},${undefined === input.location ? "" : `"location":${undefined !== input.location ? _so1(input.location) : undefined},`}${undefined === input.claim ? "" : `"claim":${undefined !== input.claim ? String(_jsonStringifyNumber_1._jsonStringifyNumber(input.claim)) : undefined},`}${undefined === input.reference ? "" : `"reference":${undefined !== input.reference ? String(_jsonStringifyNumber_1._jsonStringifyNumber(input.reference)) : undefined},`}${undefined === input.hostId ? "" : `"hostId":${undefined !== input.hostId ? _jsonStringifyString_1._jsonStringifyString(input.hostId) : undefined},`}${undefined === input.target ? "" : `"target":${undefined !== input.target ? _jsonStringifyString_1._jsonStringifyString(input.target) : undefined}`}`)}}`;
|
|
1056
|
+
const _so1 = input => `{${_jsonStringifyTail_1._jsonStringifyTail(`"file":${_jsonStringifyString_1._jsonStringifyString(input.file)},${undefined === input.range ? "" : `"range":${undefined !== input.range ? _so2(input.range) : undefined}`}`)}}`;
|
|
1057
|
+
const _so2 = input => `{"start":${_so3(input.start)},"end":${_so3(input.end)}}`;
|
|
1058
|
+
const _so3 = input => `{"offset":${String(_jsonStringifyNumber_1._jsonStringifyNumber(input.offset))},"line":${String(_jsonStringifyNumber_1._jsonStringifyNumber(input.line))},"column":${String(_jsonStringifyNumber_1._jsonStringifyNumber(input.column))}}`;
|
|
1059
|
+
const _io1 = input => "string" === typeof input.file && (undefined === input.range || "object" === typeof input.range && null !== input.range && _io2(input.range));
|
|
1060
|
+
const _io2 = input => "object" === typeof input.start && null !== input.start && _io3(input.start) && ("object" === typeof input.end && null !== input.end && _io3(input.end));
|
|
1061
|
+
const _io3 = input => "number" === typeof input.offset && "number" === typeof input.line && "number" === typeof input.column;
|
|
1062
|
+
return input => _so0(input);
|
|
1063
|
+
})()(diagnostic));
|
|
1064
|
+
const complete = claims.every((claim) => !claim.active ||
|
|
1065
|
+
(claim.complete &&
|
|
1066
|
+
claim.obligations.every((obligation) => !obligation.active || obligation.complete)));
|
|
1067
|
+
return {
|
|
1068
|
+
success: complete && diagnostics.length === 0,
|
|
1069
|
+
claims,
|
|
1070
|
+
diagnostics,
|
|
1071
|
+
};
|
|
1072
|
+
}
|
|
1073
|
+
/**
|
|
1074
|
+
* Evaluates one claim and establishes its independent obligation boundaries.
|
|
1075
|
+
*
|
|
1076
|
+
* Disabled claims produce inactive reference records without touching their
|
|
1077
|
+
* inventories. A complete claim with no selected units is likewise inactive;
|
|
1078
|
+
* otherwise an incomplete claim remains active and marks every child
|
|
1079
|
+
* obligation incomplete so missing extraction cannot reduce required coverage.
|
|
1080
|
+
*/
|
|
1081
|
+
evaluateClaim(claim, claimIndex) {
|
|
1082
|
+
if (claim.severity === "off")
|
|
1083
|
+
return {
|
|
1084
|
+
claim: this.claimIndex(claimIndex),
|
|
1085
|
+
active: false,
|
|
1086
|
+
complete: true,
|
|
1087
|
+
obligations: claim.references.map((reference, referenceIndex) => this.inactiveObligation(claimIndex, referenceIndex, reference)),
|
|
1088
|
+
};
|
|
1089
|
+
const inventory = new EvidenceInventory_1.EvidenceInventory([claim.inventory]);
|
|
1090
|
+
const snapshot = inventory.snapshot();
|
|
1091
|
+
const population = inventory.select(claim.unitIds);
|
|
1092
|
+
const context = {
|
|
1093
|
+
claim,
|
|
1094
|
+
inventory: snapshot,
|
|
1095
|
+
population,
|
|
1096
|
+
index: claimIndex,
|
|
1097
|
+
};
|
|
1098
|
+
this.diagnostics.push(...snapshot.diagnostics.map((diagnostic) => this.context(diagnostic, claim.severity, claimIndex)));
|
|
1099
|
+
if (!snapshot.complete)
|
|
1100
|
+
for (const declaration of snapshot.declarations)
|
|
1101
|
+
this.uncertainDeclarations.add(declaration.id);
|
|
1102
|
+
if (snapshot.complete && population.units.length === 0)
|
|
1103
|
+
return {
|
|
1104
|
+
claim: this.claimIndex(claimIndex),
|
|
1105
|
+
active: false,
|
|
1106
|
+
complete: true,
|
|
1107
|
+
obligations: claim.references.map((reference, referenceIndex) => this.inactiveObligation(claimIndex, referenceIndex, reference)),
|
|
1108
|
+
};
|
|
1109
|
+
const obligations = claim.references.map((reference, referenceIndex) => snapshot.complete
|
|
1110
|
+
? this.evaluateReference(context, reference, referenceIndex)
|
|
1111
|
+
: this.incompleteObligation(claimIndex, referenceIndex, reference));
|
|
1112
|
+
return {
|
|
1113
|
+
claim: this.claimIndex(claimIndex),
|
|
1114
|
+
active: true,
|
|
1115
|
+
complete: snapshot.complete,
|
|
1116
|
+
obligations,
|
|
1117
|
+
};
|
|
1118
|
+
}
|
|
1119
|
+
/**
|
|
1120
|
+
* Prepares one reference obligation and stops before coverage when its inputs are uncertain.
|
|
1121
|
+
*
|
|
1122
|
+
* Reference selection, acknowledgement resolution, and review resolution are
|
|
1123
|
+
* validated at this boundary because each reference owns them independently.
|
|
1124
|
+
* Any incomplete inventory or resolution records participation as uncertain
|
|
1125
|
+
* and returns an incomplete obligation instead of deriving coverage from a
|
|
1126
|
+
* potentially smaller population.
|
|
1127
|
+
*/
|
|
1128
|
+
evaluateReference(context, reference, referenceIndex) {
|
|
1129
|
+
const { claim, inventory: claimInventory, index: claimIndex } = context;
|
|
1130
|
+
if (reference.severity === "off")
|
|
1131
|
+
return this.inactiveObligation(claimIndex, referenceIndex, reference);
|
|
1132
|
+
const inventory = new EvidenceInventory_1.EvidenceInventory([reference.inventory]);
|
|
1133
|
+
const snapshot = inventory.snapshot();
|
|
1134
|
+
const population = inventory.select(reference.unitIds);
|
|
1135
|
+
this.validateReferencePolicy(claim, reference, population, claimIndex, referenceIndex);
|
|
1136
|
+
this.diagnostics.push(...snapshot.diagnostics.map((diagnostic) => this.context(diagnostic, reference.severity, claimIndex, referenceIndex)));
|
|
1137
|
+
if (!snapshot.complete)
|
|
1138
|
+
for (const declaration of claimInventory.declarations)
|
|
1139
|
+
this.uncertainDeclarations.add(declaration.id);
|
|
1140
|
+
const unitIds = population.units.map((unit) => unit.id);
|
|
1141
|
+
if (!snapshot.complete)
|
|
1142
|
+
return this.obligation(claimIndex, referenceIndex, true, false, unitIds, [], []);
|
|
1143
|
+
if (unitIds.length === 0) {
|
|
1144
|
+
this.diagnostics.push(this.problem("graph-empty-reference", reference.severity, "The reference contains no selected evidence units.", "Select symbol kinds present in the reference files or correct its source selection.", claimIndex, referenceIndex));
|
|
1145
|
+
return this.obligation(claimIndex, referenceIndex, true, true, [], [], []);
|
|
1146
|
+
}
|
|
1147
|
+
const resolutions = this.resolutions(claimInventory, reference, claimIndex, referenceIndex);
|
|
1148
|
+
const reviewResolutions = this.reviewResolutions(claimInventory, reference, claimIndex, referenceIndex);
|
|
1149
|
+
for (const entry of resolutions)
|
|
1150
|
+
this.diagnostics.push(...entry.resolution.diagnostics.map((diagnostic) => this.context(diagnostic, reference.severity, claimIndex, referenceIndex)));
|
|
1151
|
+
for (const entry of reviewResolutions)
|
|
1152
|
+
this.diagnostics.push(...entry.resolution.diagnostics.map((diagnostic) => this.context(diagnostic, reference.severity, claimIndex, referenceIndex)));
|
|
1153
|
+
const incomplete = [
|
|
1154
|
+
...resolutions.map((entry) => entry.resolution.status),
|
|
1155
|
+
...reviewResolutions.map((entry) => entry.resolution.status),
|
|
1156
|
+
].includes("incomplete");
|
|
1157
|
+
if (incomplete) {
|
|
1158
|
+
for (const entry of resolutions)
|
|
1159
|
+
if (entry.resolution.status === "incomplete")
|
|
1160
|
+
this.uncertainDeclarations.add(entry.declarationId);
|
|
1161
|
+
if (reviewResolutions.some((entry) => entry.resolution.status === "incomplete"))
|
|
1162
|
+
for (const declaration of claimInventory.declarations)
|
|
1163
|
+
this.uncertainDeclarations.add(declaration.id);
|
|
1164
|
+
return this.obligation(claimIndex, referenceIndex, true, false, unitIds, [], []);
|
|
1165
|
+
}
|
|
1166
|
+
return this.cover({
|
|
1167
|
+
claim: context,
|
|
1168
|
+
reference,
|
|
1169
|
+
inventory: snapshot,
|
|
1170
|
+
population,
|
|
1171
|
+
index: referenceIndex,
|
|
1172
|
+
resolutions,
|
|
1173
|
+
reviewResolutions,
|
|
1174
|
+
});
|
|
1175
|
+
}
|
|
1176
|
+
/**
|
|
1177
|
+
* Evaluates acknowledgements against one independent reference context.
|
|
1178
|
+
*
|
|
1179
|
+
* Coverage, exclusion conflicts, reviews, and cardinality all use this same
|
|
1180
|
+
* claim/reference boundary. The method retains one edge per accepted statement
|
|
1181
|
+
* so reports can explain both the selected units it covers and the host that
|
|
1182
|
+
* accepted responsibility for them.
|
|
1183
|
+
*/
|
|
1184
|
+
cover(context) {
|
|
1185
|
+
const { claim: { claim, inventory: claimInventory, population: claimPopulation, index: claimIndex, }, reference, index: referenceIndex, inventory: referenceInventory, population: referencePopulation, resolutions, } = context;
|
|
1186
|
+
const declarations = new Map(claimInventory.declarations.map((declaration) => [
|
|
1187
|
+
declaration.id,
|
|
1188
|
+
declaration,
|
|
1189
|
+
]));
|
|
1190
|
+
const selectedHosts = new Map(claimPopulation.hosts.map((host) => [host.id, host.unitIds]));
|
|
1191
|
+
const attachedHosts = new Set(claimInventory.hosts
|
|
1192
|
+
.filter((host) => host.attachment === "attached")
|
|
1193
|
+
.map((host) => host.id));
|
|
1194
|
+
const exclusionHosts = new Set(claim.exclusionHostIds === undefined
|
|
1195
|
+
? attachedHosts
|
|
1196
|
+
: claim.exclusionHostIds.filter((id) => attachedHosts.has(id)));
|
|
1197
|
+
const units = new Map(referenceInventory.units.map((unit) => [unit.id, unit]));
|
|
1198
|
+
const selectedUnits = referencePopulation.units;
|
|
1199
|
+
const selectedUnitIds = new Set(selectedUnits.map((unit) => unit.id));
|
|
1200
|
+
const scopeIds = new Set(referencePopulation.scopes.map((unit) => unit.id));
|
|
1201
|
+
const fingerprints = new EvidenceFingerprintIndex_1.EvidenceFingerprintIndex(referenceInventory);
|
|
1202
|
+
const checklist = reference.checklist === true;
|
|
1203
|
+
const explainedByHost = new Map();
|
|
1204
|
+
const covered = new Set();
|
|
1205
|
+
const edges = [];
|
|
1206
|
+
for (const entry of resolutions) {
|
|
1207
|
+
const declaration = declarations.get(entry.declarationId);
|
|
1208
|
+
if (declaration === undefined) {
|
|
1209
|
+
this.diagnostics.push(this.problem("graph-resolution-declaration", reference.severity, `Resolution '${entry.declarationId}' has no claim acknowledgement.`, "Rebuild target resolutions from this claim inventory before evaluating the graph.", claimIndex, referenceIndex));
|
|
1210
|
+
continue;
|
|
1211
|
+
}
|
|
1212
|
+
if (entry.resolution.status !== "resolved")
|
|
1213
|
+
continue;
|
|
1214
|
+
const target = entry.resolution.units[0];
|
|
1215
|
+
if (target === undefined ||
|
|
1216
|
+
entry.resolution.units.length !== 1 ||
|
|
1217
|
+
!scopeIds.has(target.id)) {
|
|
1218
|
+
this.diagnostics.push(this.problem("graph-resolution-scope", reference.severity, `Resolved target '${declaration.target}' is outside this reference's selected structural scopes.`, "Resolve the declaration with this reference's exact selected unit IDs.", claimIndex, referenceIndex, declaration));
|
|
1219
|
+
continue;
|
|
1220
|
+
}
|
|
1221
|
+
let unitIds = selectedUnits
|
|
1222
|
+
.filter((unit) => this.descends(unit, target.id, units))
|
|
1223
|
+
.map((unit) => unit.id);
|
|
1224
|
+
if (unitIds.length === 0)
|
|
1225
|
+
continue;
|
|
1226
|
+
const hostUnitIds = selectedHosts.get(declaration.hostId) ?? [];
|
|
1227
|
+
if (declaration.kind === "evidence" &&
|
|
1228
|
+
hostUnitIds.length === 0 &&
|
|
1229
|
+
checklist) {
|
|
1230
|
+
this.recordUnhostedChecklist(declaration, reference.severity, claimIndex, referenceIndex);
|
|
1231
|
+
continue;
|
|
1232
|
+
}
|
|
1233
|
+
if ((declaration.kind === "evidence" && hostUnitIds.length === 0) ||
|
|
1234
|
+
(declaration.kind === "evidenceExclude" &&
|
|
1235
|
+
!exclusionHosts.has(declaration.hostId))) {
|
|
1236
|
+
this.diagnostics.push(this.problem("graph-out-of-scope-host", reference.severity, `@${declaration.kind} for '${declaration.target}' is outside its eligible claim hosts.`, declaration.kind === "evidence"
|
|
1237
|
+
? "Move the acknowledgement to a host selected by the claim's symbol kinds."
|
|
1238
|
+
: "Move the exclusion to an eligible public carrier in the claim files.", claimIndex, referenceIndex, declaration));
|
|
1239
|
+
continue;
|
|
1240
|
+
}
|
|
1241
|
+
if (declaration.kind === "evidenceExclude" &&
|
|
1242
|
+
reference.noEvidenceExclude === true) {
|
|
1243
|
+
this.diagnostics.push(this.problem("graph-forbidden-exclusion", reference.severity, `@evidenceExclude for '${declaration.target}' is forbidden by noEvidenceExclude.`, "Remove the exclusion and cite the implemented target with positive @evidence.", claimIndex, referenceIndex, declaration));
|
|
1244
|
+
continue;
|
|
1245
|
+
}
|
|
1246
|
+
if (checklist && hostUnitIds.length === 0) {
|
|
1247
|
+
this.recordUnhostedChecklist(declaration, reference.severity, claimIndex, referenceIndex);
|
|
1248
|
+
continue;
|
|
1249
|
+
}
|
|
1250
|
+
if (checklist &&
|
|
1251
|
+
declaration.kind === "evidence" &&
|
|
1252
|
+
!selectedUnitIds.has(target.id)) {
|
|
1253
|
+
this.answeredDeclarations.add(declaration.id);
|
|
1254
|
+
this.diagnostics.push(this.problem("graph-checklist-aggregate", reference.severity, `Positive checklist target '${declaration.target}' names an unselected aggregate containing ${unitIds.length} selected item(s).`, "Cite each selected checklist item this host answers, or exclude the aggregate when none of it applies.", claimIndex, referenceIndex, declaration));
|
|
1255
|
+
for (const hostUnitId of hostUnitIds) {
|
|
1256
|
+
let explained = explainedByHost.get(hostUnitId);
|
|
1257
|
+
if (explained === undefined) {
|
|
1258
|
+
explained = new Set();
|
|
1259
|
+
explainedByHost.set(hostUnitId, explained);
|
|
1260
|
+
}
|
|
1261
|
+
for (const unitId of unitIds)
|
|
1262
|
+
explained.add(unitId);
|
|
1263
|
+
}
|
|
1264
|
+
continue;
|
|
1265
|
+
}
|
|
1266
|
+
if (checklist && declaration.kind === "evidence")
|
|
1267
|
+
unitIds = [target.id];
|
|
1268
|
+
this.conflicts(declaration, target.id, hostUnitIds, unitIds, edges, declarations, reference.severity, claimIndex, referenceIndex, checklist);
|
|
1269
|
+
edges.push({
|
|
1270
|
+
declarationId: declaration.id,
|
|
1271
|
+
hostId: declaration.hostId,
|
|
1272
|
+
hostUnitIds,
|
|
1273
|
+
kind: declaration.kind,
|
|
1274
|
+
targetUnitId: target.id,
|
|
1275
|
+
unitIds,
|
|
1276
|
+
fingerprint: fingerprints.inspect(target.id).fingerprint,
|
|
1277
|
+
});
|
|
1278
|
+
this.answeredDeclarations.add(declaration.id);
|
|
1279
|
+
if (!checklist)
|
|
1280
|
+
for (const id of unitIds)
|
|
1281
|
+
covered.add(id);
|
|
1282
|
+
}
|
|
1283
|
+
this.evaluateReviews(context, edges);
|
|
1284
|
+
if (checklist)
|
|
1285
|
+
return this.checklistObligation(context, edges, explainedByHost);
|
|
1286
|
+
this.cardinality(context, edges);
|
|
1287
|
+
const coveredUnitIds = selectedUnits
|
|
1288
|
+
.filter((unit) => covered.has(unit.id))
|
|
1289
|
+
.map((unit) => unit.id);
|
|
1290
|
+
const missingUnits = selectedUnits.filter((unit) => !covered.has(unit.id));
|
|
1291
|
+
for (const unit of missingUnits)
|
|
1292
|
+
this.diagnostics.push(this.problem("graph-missing-acknowledgement", reference.severity, `Missing acknowledgement for '${this.display(referenceInventory, unit)}'.`, reference.noEvidenceExclude === true
|
|
1293
|
+
? "Cite the claim artifact that implements this unit with positive @evidence."
|
|
1294
|
+
: "Cite the claim artifact that implements this unit with @evidence, or exclude it on an eligible carrier when it does not apply.", claimIndex, referenceIndex, undefined, unit));
|
|
1295
|
+
return this.obligation(claimIndex, referenceIndex, true, true, selectedUnits.map((unit) => unit.id), coveredUnitIds, missingUnits.map((unit) => unit.id), edges);
|
|
1296
|
+
}
|
|
1297
|
+
/**
|
|
1298
|
+
* Computes checklist coverage separately for every selected claim host.
|
|
1299
|
+
*
|
|
1300
|
+
* A checklist does not permit one host's acknowledgement to answer another
|
|
1301
|
+
* host's obligation. Aggregate citations that were diagnosed earlier are kept
|
|
1302
|
+
* as explanations, allowing the result to distinguish an explicitly invalid
|
|
1303
|
+
* aggregate answer from an entirely absent answer.
|
|
1304
|
+
*/
|
|
1305
|
+
checklistObligation(context, edges, explainedByHost) {
|
|
1306
|
+
const { claim: { inventory: claimInventory, population: claimPopulation, index: claimIndex, }, reference, index: referenceIndex, inventory: referenceInventory, } = context;
|
|
1307
|
+
const selectedUnits = context.population.units;
|
|
1308
|
+
const coveredByHost = new Map(claimPopulation.units.map((unit) => [unit.id, new Set()]));
|
|
1309
|
+
for (const edge of edges)
|
|
1310
|
+
for (const hostUnitId of edge.hostUnitIds) {
|
|
1311
|
+
const covered = coveredByHost.get(hostUnitId);
|
|
1312
|
+
if (covered === undefined)
|
|
1313
|
+
continue;
|
|
1314
|
+
for (const unitId of edge.unitIds)
|
|
1315
|
+
covered.add(unitId);
|
|
1316
|
+
}
|
|
1317
|
+
const hostCoverage = claimPopulation.units.map((host) => {
|
|
1318
|
+
const covered = coveredByHost.get(host.id) ?? new Set();
|
|
1319
|
+
const explained = explainedByHost.get(host.id) ?? new Set();
|
|
1320
|
+
const coveredUnitIds = selectedUnits
|
|
1321
|
+
.filter((unit) => covered.has(unit.id))
|
|
1322
|
+
.map((unit) => unit.id);
|
|
1323
|
+
const missingUnits = selectedUnits.filter((unit) => !covered.has(unit.id));
|
|
1324
|
+
const explainedUnitIds = missingUnits
|
|
1325
|
+
.filter((unit) => explained.has(unit.id))
|
|
1326
|
+
.map((unit) => unit.id);
|
|
1327
|
+
const reportable = missingUnits.filter((unit) => !explained.has(unit.id));
|
|
1328
|
+
if (reportable.length !== 0)
|
|
1329
|
+
this.diagnostics.push(this.problem("graph-checklist-missing", reference.severity, `Host '${this.display(claimInventory, host)}' has not acknowledged ${reportable.length} of ${selectedUnits.length} checklist item(s): ${reportable
|
|
1330
|
+
.map((unit) => `'${this.display(referenceInventory, unit)}'`)
|
|
1331
|
+
.join(", ")}.`, reference.noEvidenceExclude === true
|
|
1332
|
+
? "Cite every missing checklist item from this host with positive @evidence."
|
|
1333
|
+
: "Cite every missing checklist item from this host, or exclude the scope that does not apply.", claimIndex, referenceIndex, undefined, host));
|
|
1334
|
+
return {
|
|
1335
|
+
hostUnitId: host.id,
|
|
1336
|
+
coveredUnitIds,
|
|
1337
|
+
missingUnitIds: missingUnits.map((unit) => unit.id),
|
|
1338
|
+
explainedUnitIds,
|
|
1339
|
+
};
|
|
1340
|
+
});
|
|
1341
|
+
const coveredUnitIds = selectedUnits
|
|
1342
|
+
.filter((unit) => hostCoverage.every((host) => host.coveredUnitIds.includes(unit.id)))
|
|
1343
|
+
.map((unit) => unit.id);
|
|
1344
|
+
const covered = new Set(coveredUnitIds);
|
|
1345
|
+
return this.obligation(claimIndex, referenceIndex, true, true, selectedUnits.map((unit) => unit.id), coveredUnitIds, selectedUnits
|
|
1346
|
+
.filter((unit) => !covered.has(unit.id))
|
|
1347
|
+
.map((unit) => unit.id), edges, hostCoverage);
|
|
1348
|
+
}
|
|
1349
|
+
/**
|
|
1350
|
+
* Enforces cardinality policies over positive coverage edges.
|
|
1351
|
+
*
|
|
1352
|
+
* Exclusions do not count as evidence, and aliases cannot inflate counts
|
|
1353
|
+
* because sets use semantic identities. This runs after edge creation so the
|
|
1354
|
+
* policy observes the same host and target scopes reported to callers.
|
|
1355
|
+
*/
|
|
1356
|
+
cardinality(context, edges) {
|
|
1357
|
+
const { claim: { inventory: claimInventory, population: claimPopulation, index: claimIndex, }, reference, index: referenceIndex, inventory: referenceInventory, } = context;
|
|
1358
|
+
const selectedUnits = context.population.units;
|
|
1359
|
+
const evidence = edges.filter((edge) => edge.kind === "evidence");
|
|
1360
|
+
if (reference.singleEvidencePerSymbol === true)
|
|
1361
|
+
for (const host of claimPopulation.units) {
|
|
1362
|
+
const cited = new Set(evidence
|
|
1363
|
+
.filter((edge) => edge.hostUnitIds.includes(host.id))
|
|
1364
|
+
.flatMap((edge) => edge.unitIds));
|
|
1365
|
+
if (cited.size === 1)
|
|
1366
|
+
continue;
|
|
1367
|
+
this.diagnostics.push(this.problem("graph-single-evidence-per-symbol", reference.severity, `Host '${this.display(claimInventory, host)}' cites ${cited.size} distinct selected evidence unit(s); singleEvidencePerSymbol requires exactly 1.`, "Keep positive @evidence on this semantic host to exactly one selected unit.", claimIndex, referenceIndex, undefined, host));
|
|
1368
|
+
}
|
|
1369
|
+
if (reference.uniqueEvidence === true)
|
|
1370
|
+
for (const unit of selectedUnits) {
|
|
1371
|
+
const hosts = new Set(evidence
|
|
1372
|
+
.filter((edge) => edge.unitIds.includes(unit.id))
|
|
1373
|
+
.flatMap((edge) => edge.hostUnitIds));
|
|
1374
|
+
if (hosts.size <= 1)
|
|
1375
|
+
continue;
|
|
1376
|
+
this.diagnostics.push(this.problem("graph-unique-evidence", reference.severity, `Evidence unit '${this.display(referenceInventory, unit)}' has ${hosts.size} distinct positive evidence host(s); uniqueEvidence allows at most 1.`, "Keep one selected semantic host for this unit and remove the other positive citations.", claimIndex, referenceIndex, undefined, unit));
|
|
1377
|
+
}
|
|
1378
|
+
}
|
|
1379
|
+
/**
|
|
1380
|
+
* Reports duplicate and contradictory acknowledgement scopes before adding an edge.
|
|
1381
|
+
*
|
|
1382
|
+
* Normal coverage permits one aggregate target to cover several selected units,
|
|
1383
|
+
* while checklist coverage also requires the same host to overlap. Comparing
|
|
1384
|
+
* the appropriate scopes prevents an exclusion or repeated annotation from
|
|
1385
|
+
* silently changing the meaning of an earlier acknowledgement.
|
|
1386
|
+
*/
|
|
1387
|
+
conflicts(declaration, targetUnitId, hostUnitIds, unitIds, edges, declarations, severity, claimIndex, referenceIndex, checklist) {
|
|
1388
|
+
if (declaration.kind === "evidence") {
|
|
1389
|
+
const duplicate = edges.find((edge) => edge.kind === "evidence" &&
|
|
1390
|
+
this.overlaps(edge.hostUnitIds, hostUnitIds) &&
|
|
1391
|
+
edge.targetUnitId === targetUnitId);
|
|
1392
|
+
if (duplicate !== undefined)
|
|
1393
|
+
this.diagnostics.push(this.problem("graph-duplicate-evidence", severity, `The same host repeats @evidence for '${declaration.target}'.`, "Keep one acknowledgement for this target on the semantic host.", claimIndex, referenceIndex, declaration));
|
|
1394
|
+
}
|
|
1395
|
+
const opposite = edges.find((edge) => edge.kind !== declaration.kind &&
|
|
1396
|
+
this.overlaps(edge.unitIds, unitIds) &&
|
|
1397
|
+
(!checklist || this.overlaps(edge.hostUnitIds, hostUnitIds)));
|
|
1398
|
+
if (opposite !== undefined) {
|
|
1399
|
+
const previous = declarations.get(opposite.declarationId);
|
|
1400
|
+
this.diagnostics.push(this.problem("graph-conflicting-acknowledgements", severity, `@evidence and @evidenceExclude overlap at '${declaration.target}'.`, previous === undefined
|
|
1401
|
+
? "Delete whichever acknowledgement states the wrong intent."
|
|
1402
|
+
: `Delete whichever acknowledgement states the wrong intent; the earlier declaration is '${previous.target}'.`, claimIndex, referenceIndex, declaration));
|
|
1403
|
+
}
|
|
1404
|
+
if (declaration.kind === "evidenceExclude") {
|
|
1405
|
+
const duplicate = edges.find((edge) => edge.kind === "evidenceExclude" &&
|
|
1406
|
+
this.overlaps(edge.unitIds, unitIds) &&
|
|
1407
|
+
(!checklist || this.overlaps(edge.hostUnitIds, hostUnitIds)));
|
|
1408
|
+
if (duplicate !== undefined)
|
|
1409
|
+
this.diagnostics.push(this.problem("graph-duplicate-exclusion", severity, `@evidenceExclude for '${declaration.target}' overlaps an earlier exclusion.`, "Keep one exclusion at the widest truthful scope.", claimIndex, referenceIndex, declaration));
|
|
1410
|
+
}
|
|
1411
|
+
}
|
|
1412
|
+
/**
|
|
1413
|
+
* Pairs reviews with acknowledgements by kind, host, and resolved target.
|
|
1414
|
+
*
|
|
1415
|
+
* Reviews validate fingerprints but never discharge missing coverage. This
|
|
1416
|
+
* phase first validates review statements against resolved acknowledgements,
|
|
1417
|
+
* then enforces required-review freshness only for accepted coverage edges.
|
|
1418
|
+
* A malformed review therefore remains diagnostic evidence without becoming a
|
|
1419
|
+
* substitute for the positive or exclusion statement it names.
|
|
1420
|
+
*/
|
|
1421
|
+
evaluateReviews(context, edges) {
|
|
1422
|
+
const { claim: { inventory: claimInventory, index: claimIndex }, reference, index: referenceIndex, inventory: referenceInventory, population: referencePopulation, resolutions: declarationResolutions, reviewResolutions, } = context;
|
|
1423
|
+
const declarations = new Map(claimInventory.declarations.map((declaration) => [
|
|
1424
|
+
declaration.id,
|
|
1425
|
+
declaration,
|
|
1426
|
+
]));
|
|
1427
|
+
const reviews = new Map(claimInventory.reviews.map((review) => [review.id, review]));
|
|
1428
|
+
const hosts = new Map(claimInventory.hosts.map((host) => [host.id, host]));
|
|
1429
|
+
const scopeIds = new Set(referencePopulation.scopes.map((unit) => unit.id));
|
|
1430
|
+
const acknowledgements = [];
|
|
1431
|
+
for (const entry of declarationResolutions) {
|
|
1432
|
+
const declaration = declarations.get(entry.declarationId);
|
|
1433
|
+
const target = entry.resolution.units[0];
|
|
1434
|
+
if (declaration === undefined ||
|
|
1435
|
+
entry.resolution.status !== "resolved" ||
|
|
1436
|
+
target === undefined ||
|
|
1437
|
+
entry.resolution.units.length !== 1 ||
|
|
1438
|
+
!scopeIds.has(target.id))
|
|
1439
|
+
continue;
|
|
1440
|
+
const host = hosts.get(declaration.hostId);
|
|
1441
|
+
acknowledgements.push({
|
|
1442
|
+
declaration,
|
|
1443
|
+
hostUnitIds: host?.attachment === "attached" ? host.unitIds : [],
|
|
1444
|
+
targetUnitId: target.id,
|
|
1445
|
+
});
|
|
1446
|
+
}
|
|
1447
|
+
const records = [];
|
|
1448
|
+
const duplicateKeys = new Set();
|
|
1449
|
+
for (const entry of reviewResolutions) {
|
|
1450
|
+
const review = reviews.get(entry.reviewId);
|
|
1451
|
+
if (review === undefined) {
|
|
1452
|
+
this.diagnostics.push(this.problem("graph-review-resolution-review", reference.severity, `Review resolution '${entry.reviewId}' has no claim review statement.`, "Rebuild review target resolutions from this claim inventory before evaluating the graph.", claimIndex, referenceIndex));
|
|
1453
|
+
continue;
|
|
1454
|
+
}
|
|
1455
|
+
if (entry.resolution.status !== "resolved")
|
|
1456
|
+
continue;
|
|
1457
|
+
const target = entry.resolution.units[0];
|
|
1458
|
+
if (target === undefined ||
|
|
1459
|
+
entry.resolution.units.length !== 1 ||
|
|
1460
|
+
!scopeIds.has(target.id)) {
|
|
1461
|
+
this.diagnostics.push(this.problem("graph-review-resolution-scope", reference.severity, `Resolved review target '${review.target}' is outside this reference's selected structural scopes.`, "Resolve the review with this reference's exact selected unit IDs.", claimIndex, referenceIndex, review));
|
|
1462
|
+
continue;
|
|
1463
|
+
}
|
|
1464
|
+
const host = hosts.get(review.hostId);
|
|
1465
|
+
const hostUnitIds = host?.attachment === "attached" ? host.unitIds : [];
|
|
1466
|
+
const key = JSON.stringify([review.hostId, review.reviews, target.id]);
|
|
1467
|
+
if (duplicateKeys.has(key)) {
|
|
1468
|
+
this.diagnostics.push(this.problem("graph-duplicate-review", reference.severity, `The same documentation position repeats ${this.reviewMarker(review.reviews)} for '${review.target}'.`, "Keep the review that states what was checked and remove the other.", claimIndex, referenceIndex, review));
|
|
1469
|
+
continue;
|
|
1470
|
+
}
|
|
1471
|
+
duplicateKeys.add(key);
|
|
1472
|
+
records.push({ review, hostUnitIds, targetUnitId: target.id });
|
|
1473
|
+
}
|
|
1474
|
+
for (const record of records) {
|
|
1475
|
+
const matching = acknowledgements.some((acknowledgement) => acknowledgement.declaration.kind === record.review.reviews &&
|
|
1476
|
+
acknowledgement.targetUnitId === record.targetUnitId &&
|
|
1477
|
+
this.reviewHostMatches(record, acknowledgement.declaration.hostId, acknowledgement.hostUnitIds));
|
|
1478
|
+
if (matching)
|
|
1479
|
+
continue;
|
|
1480
|
+
const opposite = acknowledgements.find((acknowledgement) => acknowledgement.declaration.kind !== record.review.reviews &&
|
|
1481
|
+
acknowledgement.targetUnitId === record.targetUnitId &&
|
|
1482
|
+
this.reviewHostMatches(record, acknowledgement.declaration.hostId, acknowledgement.hostUnitIds));
|
|
1483
|
+
this.diagnostics.push(opposite === undefined
|
|
1484
|
+
? this.problem("graph-orphan-review", reference.severity, `${this.reviewMarker(record.review.reviews)} for '${record.review.target}' has no matching acknowledgement on its semantic host.`, `Correct the target, add @${record.review.reviews} when this host answers it, or remove the review.`, claimIndex, referenceIndex, record.review)
|
|
1485
|
+
: this.problem("graph-review-kind", reference.severity, `${this.reviewMarker(record.review.reviews)} for '${record.review.target}' cannot review @${opposite.declaration.kind}.`, `Rewrite it as ${this.reviewMarker(opposite.declaration.kind)}, or correct the acknowledgement kind.`, claimIndex, referenceIndex, record.review));
|
|
1486
|
+
}
|
|
1487
|
+
if (reference.requireReview !== true)
|
|
1488
|
+
return;
|
|
1489
|
+
for (const edge of edges) {
|
|
1490
|
+
const candidates = records.filter((record) => record.review.reviews === edge.kind &&
|
|
1491
|
+
record.targetUnitId === edge.targetUnitId &&
|
|
1492
|
+
this.reviewHostMatches(record, edge.hostId, edge.hostUnitIds));
|
|
1493
|
+
const review = candidates[0]?.review;
|
|
1494
|
+
const marker = this.reviewMarker(edge.kind);
|
|
1495
|
+
const declaration = claimInventory.declarations.find((candidate) => candidate.id === edge.declarationId);
|
|
1496
|
+
if (review === undefined) {
|
|
1497
|
+
const wrongKind = records.some((record) => record.review.reviews !== edge.kind &&
|
|
1498
|
+
record.targetUnitId === edge.targetUnitId &&
|
|
1499
|
+
this.reviewHostMatches(record, edge.hostId, edge.hostUnitIds));
|
|
1500
|
+
if (wrongKind)
|
|
1501
|
+
continue;
|
|
1502
|
+
this.diagnostics.push(this.problem("graph-missing-review", reference.severity, `@${edge.kind} for '${declaration?.target ?? this.displayUnit(referenceInventory, edge.targetUnitId)}' has no matching ${marker}; the current scope fingerprint is '#${edge.fingerprint}'.`, `Add '${marker} ${declaration?.target ?? "<target>"} #${edge.fingerprint} <what you checked>' on the same semantic host.`, claimIndex, referenceIndex, declaration));
|
|
1503
|
+
continue;
|
|
1504
|
+
}
|
|
1505
|
+
if (review.fingerprint === undefined) {
|
|
1506
|
+
this.diagnostics.push(this.problem("graph-missing-review-fingerprint", reference.severity, `${marker} for '${review.target}' has no fingerprint; the current scope fingerprint is '#${edge.fingerprint}'.`, `Write '#${edge.fingerprint}' after the review target so later content changes can expire it.`, claimIndex, referenceIndex, review));
|
|
1507
|
+
continue;
|
|
1508
|
+
}
|
|
1509
|
+
if (review.fingerprint !== edge.fingerprint)
|
|
1510
|
+
this.diagnostics.push(this.problem("graph-stale-review", reference.severity, `${marker} for '${review.target}' names '#${review.fingerprint}', but the current scope fingerprint is '#${edge.fingerprint}'.`, `Review the cited content again and replace the fingerprint with '#${edge.fingerprint}', or correct the acknowledgement if it no longer applies.`, claimIndex, referenceIndex, review));
|
|
1511
|
+
}
|
|
1512
|
+
}
|
|
1513
|
+
/**
|
|
1514
|
+
* Tests whether a review belongs to an acknowledgement's semantic host population.
|
|
1515
|
+
*
|
|
1516
|
+
* Unattached reviews can match only their exact documentation host. Attached
|
|
1517
|
+
* reviews instead match any shared semantic owner, which preserves alias and
|
|
1518
|
+
* multi-owner attachment semantics without matching a different claim host.
|
|
1519
|
+
*/
|
|
1520
|
+
reviewHostMatches(review, hostId, hostUnitIds) {
|
|
1521
|
+
return review.hostUnitIds.length === 0
|
|
1522
|
+
? review.review.hostId === hostId
|
|
1523
|
+
: this.overlaps(review.hostUnitIds, hostUnitIds);
|
|
1524
|
+
}
|
|
1525
|
+
/**
|
|
1526
|
+
* Selects the review marker required by an acknowledgement kind.
|
|
1527
|
+
*
|
|
1528
|
+
* Keeping this mapping in one place makes diagnostics and repair text agree
|
|
1529
|
+
* about whether a positive citation needs @evidenceReview or an exclusion
|
|
1530
|
+
* needs @evidenceExcludeReview.
|
|
1531
|
+
*/
|
|
1532
|
+
reviewMarker(kind) {
|
|
1533
|
+
return kind === "evidence" ? "@evidenceReview" : "@evidenceExcludeReview";
|
|
1534
|
+
}
|
|
1535
|
+
/**
|
|
1536
|
+
* Formats a known semantic identity for a diagnostic.
|
|
1537
|
+
*
|
|
1538
|
+
* Resolution records can be stale or invalid, so an unknown identity remains
|
|
1539
|
+
* visible verbatim rather than causing diagnostic construction to fail.
|
|
1540
|
+
*/
|
|
1541
|
+
displayUnit(inventory, id) {
|
|
1542
|
+
const unit = inventory.units.find((candidate) => candidate.id === id);
|
|
1543
|
+
return unit === undefined ? id : this.display(inventory, unit);
|
|
1544
|
+
}
|
|
1545
|
+
/**
|
|
1546
|
+
* Validates and orders acknowledgement resolutions within one reference obligation.
|
|
1547
|
+
*
|
|
1548
|
+
* Repeated identical entries collapse to one statement. Conflicting entries
|
|
1549
|
+
* are removed and diagnosed because selecting either outcome would let source
|
|
1550
|
+
* order decide coverage; source-coordinate ordering then stabilizes all valid
|
|
1551
|
+
* edge and diagnostic processing.
|
|
1552
|
+
*/
|
|
1553
|
+
resolutions(inventory, reference, claimIndex, referenceIndex) {
|
|
1554
|
+
const declarations = new Map(inventory.declarations.map((declaration) => [
|
|
1555
|
+
declaration.id,
|
|
1556
|
+
declaration,
|
|
1557
|
+
]));
|
|
1558
|
+
const records = new Map();
|
|
1559
|
+
const conflicts = new Set();
|
|
1560
|
+
for (const entry of reference.resolutions) {
|
|
1561
|
+
if (conflicts.has(entry.declarationId))
|
|
1562
|
+
continue;
|
|
1563
|
+
const previous = records.get(entry.declarationId);
|
|
1564
|
+
if (previous !== undefined &&
|
|
1565
|
+
(() => {
|
|
1566
|
+
const _ip0 = input => Array.isArray(input["withdrawals"]) && input["withdrawals"].every(elem => "object" === typeof elem && null !== elem && _io6(elem));
|
|
1567
|
+
const _ip1 = input => "string" === typeof input["file"];
|
|
1568
|
+
const _ip2 = input => "string" === typeof input["id"];
|
|
1569
|
+
const _iv0 = new Set(["bigquery", "c", "cpp", "csharp", "dart", "dbml", "go", "java", "javascript", "kotlin", "lua", "markdown", "matlab", "mysql", "objc", "php", "postgresql", "prisma", "python", "ruby", "rust", "scala", "sql", "sqlite", "swagger", "swift", "typescript", "zig"]);
|
|
1570
|
+
const _iv1 = new Set(["column", "file", "function", "h1", "h2", "h3", "h4", "model", "operation", "property", "relation", "type"]);
|
|
1571
|
+
const _so0 = input => `{"status":${"\"" + input.status + "\""},"addresses":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.addresses, elem => _so1(elem))}]`},"units":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.units, elem => _so2(elem))}]`},"withdrawals":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.withdrawals, elem => _so6(elem))}]`},"diagnostics":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.diagnostics, elem => _so8(elem))}]`}}`;
|
|
1572
|
+
const _so1 = input => `{"file":${_jsonStringifyString_1._jsonStringifyString(input.file)},"segments":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.segments, elem => _jsonStringifyString_1._jsonStringifyString(elem))}]`}}`;
|
|
1573
|
+
const _so2 = input => `{"id":${_jsonStringifyString_1._jsonStringifyString(input.id)},${undefined === input.parentId ? "" : `"parentId":${undefined !== input.parentId ? _jsonStringifyString_1._jsonStringifyString(input.parentId) : undefined},`}"type":${"\"" + input.type + "\""},"symbol":${"\"" + input.symbol + "\""},"identity":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.identity, elem => _jsonStringifyString_1._jsonStringifyString(elem))}]`},"name":${_jsonStringifyString_1._jsonStringifyString(input.name)},${undefined === input.contentDigest ? "" : `"contentDigest":${undefined !== input.contentDigest ? _jsonStringifyString_1._jsonStringifyString(input.contentDigest) : undefined},`}"sites":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.sites, elem => _so3(elem))}]`},"withdrawals":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.withdrawals, elem => _so6(elem))}]`}}`;
|
|
1574
|
+
const _so3 = input => `{"id":${_jsonStringifyString_1._jsonStringifyString(input.id)},"file":${_jsonStringifyString_1._jsonStringifyString(input.file)},"range":${_so4(input.range)},"content":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.content, elem => _so4(elem))}]`}}`;
|
|
1575
|
+
const _so4 = input => `{"start":${_so5(input.start)},"end":${_so5(input.end)}}`;
|
|
1576
|
+
const _so5 = input => `{"offset":${String(_jsonStringifyNumber_1._jsonStringifyNumber(input.offset))},"line":${String(_jsonStringifyNumber_1._jsonStringifyNumber(input.line))},"column":${String(_jsonStringifyNumber_1._jsonStringifyNumber(input.column))}}`;
|
|
1577
|
+
const _so6 = input => `{"tag":${"\"" + input.tag + "\""},"location":${_so7(input.location)}}`;
|
|
1578
|
+
const _so7 = input => `{${_jsonStringifyTail_1._jsonStringifyTail(`"file":${_jsonStringifyString_1._jsonStringifyString(input.file)},${undefined === input.range ? "" : `"range":${undefined !== input.range ? _so4(input.range) : undefined}`}`)}}`;
|
|
1579
|
+
const _so8 = input => `{${_jsonStringifyTail_1._jsonStringifyTail(`"code":${_jsonStringifyString_1._jsonStringifyString(input.code)},"severity":${"\"" + input.severity + "\""},"message":${_jsonStringifyString_1._jsonStringifyString(input.message)},"repair":${_jsonStringifyString_1._jsonStringifyString(input.repair)},${undefined === input.location ? "" : `"location":${undefined !== input.location ? _so7(input.location) : undefined},`}${undefined === input.claim ? "" : `"claim":${undefined !== input.claim ? String(_jsonStringifyNumber_1._jsonStringifyNumber(input.claim)) : undefined},`}${undefined === input.reference ? "" : `"reference":${undefined !== input.reference ? String(_jsonStringifyNumber_1._jsonStringifyNumber(input.reference)) : undefined},`}${undefined === input.hostId ? "" : `"hostId":${undefined !== input.hostId ? _jsonStringifyString_1._jsonStringifyString(input.hostId) : undefined},`}${undefined === input.target ? "" : `"target":${undefined !== input.target ? _jsonStringifyString_1._jsonStringifyString(input.target) : undefined}`}`)}}`;
|
|
1580
|
+
const _io1 = input => _ip1(input) && (Array.isArray(input.segments) && input.segments.every(elem => "string" === typeof elem));
|
|
1581
|
+
const _io2 = input => _ip2(input) && (undefined === input.parentId || "string" === typeof input.parentId) && true === _iv0.has(input.type) && true === _iv1.has(input.symbol) && (Array.isArray(input.identity) && input.identity.every(elem => "string" === typeof elem)) && "string" === typeof input.name && (undefined === input.contentDigest || "string" === typeof input.contentDigest) && (Array.isArray(input.sites) && input.sites.every(elem => "object" === typeof elem && null !== elem && _io3(elem))) && _ip0(input);
|
|
1582
|
+
const _io3 = input => _ip2(input) && _ip1(input) && ("object" === typeof input.range && null !== input.range && _io4(input.range)) && (Array.isArray(input.content) && input.content.every(elem => "object" === typeof elem && null !== elem && _io4(elem)));
|
|
1583
|
+
const _io4 = input => "object" === typeof input.start && null !== input.start && _io5(input.start) && ("object" === typeof input.end && null !== input.end && _io5(input.end));
|
|
1584
|
+
const _io5 = input => "number" === typeof input.offset && "number" === typeof input.line && "number" === typeof input.column;
|
|
1585
|
+
const _io6 = input => ("hidden" === input.tag || "ignore" === input.tag || "internal" === input.tag) && ("object" === typeof input.location && null !== input.location && _io7(input.location));
|
|
1586
|
+
const _io7 = input => _ip1(input) && (undefined === input.range || "object" === typeof input.range && null !== input.range && _io4(input.range));
|
|
1587
|
+
const _io8 = input => "string" === typeof input.code && ("error" === input.severity || "warning" === input.severity) && "string" === typeof input.message && "string" === typeof input.repair && (undefined === input.location || "object" === typeof input.location && null !== input.location && _io7(input.location)) && (undefined === input.claim || "number" === typeof input.claim) && (undefined === input.reference || "number" === typeof input.reference) && (undefined === input.hostId || "string" === typeof input.hostId) && (undefined === input.target || "string" === typeof input.target);
|
|
1588
|
+
return input => _so0(input);
|
|
1589
|
+
})()(previous.resolution) !== (() => {
|
|
1590
|
+
const _ip0 = input => Array.isArray(input["withdrawals"]) && input["withdrawals"].every(elem => "object" === typeof elem && null !== elem && _io6(elem));
|
|
1591
|
+
const _ip1 = input => "string" === typeof input["file"];
|
|
1592
|
+
const _ip2 = input => "string" === typeof input["id"];
|
|
1593
|
+
const _iv0 = new Set(["bigquery", "c", "cpp", "csharp", "dart", "dbml", "go", "java", "javascript", "kotlin", "lua", "markdown", "matlab", "mysql", "objc", "php", "postgresql", "prisma", "python", "ruby", "rust", "scala", "sql", "sqlite", "swagger", "swift", "typescript", "zig"]);
|
|
1594
|
+
const _iv1 = new Set(["column", "file", "function", "h1", "h2", "h3", "h4", "model", "operation", "property", "relation", "type"]);
|
|
1595
|
+
const _so0 = input => `{"status":${"\"" + input.status + "\""},"addresses":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.addresses, elem => _so1(elem))}]`},"units":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.units, elem => _so2(elem))}]`},"withdrawals":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.withdrawals, elem => _so6(elem))}]`},"diagnostics":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.diagnostics, elem => _so8(elem))}]`}}`;
|
|
1596
|
+
const _so1 = input => `{"file":${_jsonStringifyString_1._jsonStringifyString(input.file)},"segments":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.segments, elem => _jsonStringifyString_1._jsonStringifyString(elem))}]`}}`;
|
|
1597
|
+
const _so2 = input => `{"id":${_jsonStringifyString_1._jsonStringifyString(input.id)},${undefined === input.parentId ? "" : `"parentId":${undefined !== input.parentId ? _jsonStringifyString_1._jsonStringifyString(input.parentId) : undefined},`}"type":${"\"" + input.type + "\""},"symbol":${"\"" + input.symbol + "\""},"identity":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.identity, elem => _jsonStringifyString_1._jsonStringifyString(elem))}]`},"name":${_jsonStringifyString_1._jsonStringifyString(input.name)},${undefined === input.contentDigest ? "" : `"contentDigest":${undefined !== input.contentDigest ? _jsonStringifyString_1._jsonStringifyString(input.contentDigest) : undefined},`}"sites":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.sites, elem => _so3(elem))}]`},"withdrawals":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.withdrawals, elem => _so6(elem))}]`}}`;
|
|
1598
|
+
const _so3 = input => `{"id":${_jsonStringifyString_1._jsonStringifyString(input.id)},"file":${_jsonStringifyString_1._jsonStringifyString(input.file)},"range":${_so4(input.range)},"content":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.content, elem => _so4(elem))}]`}}`;
|
|
1599
|
+
const _so4 = input => `{"start":${_so5(input.start)},"end":${_so5(input.end)}}`;
|
|
1600
|
+
const _so5 = input => `{"offset":${String(_jsonStringifyNumber_1._jsonStringifyNumber(input.offset))},"line":${String(_jsonStringifyNumber_1._jsonStringifyNumber(input.line))},"column":${String(_jsonStringifyNumber_1._jsonStringifyNumber(input.column))}}`;
|
|
1601
|
+
const _so6 = input => `{"tag":${"\"" + input.tag + "\""},"location":${_so7(input.location)}}`;
|
|
1602
|
+
const _so7 = input => `{${_jsonStringifyTail_1._jsonStringifyTail(`"file":${_jsonStringifyString_1._jsonStringifyString(input.file)},${undefined === input.range ? "" : `"range":${undefined !== input.range ? _so4(input.range) : undefined}`}`)}}`;
|
|
1603
|
+
const _so8 = input => `{${_jsonStringifyTail_1._jsonStringifyTail(`"code":${_jsonStringifyString_1._jsonStringifyString(input.code)},"severity":${"\"" + input.severity + "\""},"message":${_jsonStringifyString_1._jsonStringifyString(input.message)},"repair":${_jsonStringifyString_1._jsonStringifyString(input.repair)},${undefined === input.location ? "" : `"location":${undefined !== input.location ? _so7(input.location) : undefined},`}${undefined === input.claim ? "" : `"claim":${undefined !== input.claim ? String(_jsonStringifyNumber_1._jsonStringifyNumber(input.claim)) : undefined},`}${undefined === input.reference ? "" : `"reference":${undefined !== input.reference ? String(_jsonStringifyNumber_1._jsonStringifyNumber(input.reference)) : undefined},`}${undefined === input.hostId ? "" : `"hostId":${undefined !== input.hostId ? _jsonStringifyString_1._jsonStringifyString(input.hostId) : undefined},`}${undefined === input.target ? "" : `"target":${undefined !== input.target ? _jsonStringifyString_1._jsonStringifyString(input.target) : undefined}`}`)}}`;
|
|
1604
|
+
const _io1 = input => _ip1(input) && (Array.isArray(input.segments) && input.segments.every(elem => "string" === typeof elem));
|
|
1605
|
+
const _io2 = input => _ip2(input) && (undefined === input.parentId || "string" === typeof input.parentId) && true === _iv0.has(input.type) && true === _iv1.has(input.symbol) && (Array.isArray(input.identity) && input.identity.every(elem => "string" === typeof elem)) && "string" === typeof input.name && (undefined === input.contentDigest || "string" === typeof input.contentDigest) && (Array.isArray(input.sites) && input.sites.every(elem => "object" === typeof elem && null !== elem && _io3(elem))) && _ip0(input);
|
|
1606
|
+
const _io3 = input => _ip2(input) && _ip1(input) && ("object" === typeof input.range && null !== input.range && _io4(input.range)) && (Array.isArray(input.content) && input.content.every(elem => "object" === typeof elem && null !== elem && _io4(elem)));
|
|
1607
|
+
const _io4 = input => "object" === typeof input.start && null !== input.start && _io5(input.start) && ("object" === typeof input.end && null !== input.end && _io5(input.end));
|
|
1608
|
+
const _io5 = input => "number" === typeof input.offset && "number" === typeof input.line && "number" === typeof input.column;
|
|
1609
|
+
const _io6 = input => ("hidden" === input.tag || "ignore" === input.tag || "internal" === input.tag) && ("object" === typeof input.location && null !== input.location && _io7(input.location));
|
|
1610
|
+
const _io7 = input => _ip1(input) && (undefined === input.range || "object" === typeof input.range && null !== input.range && _io4(input.range));
|
|
1611
|
+
const _io8 = input => "string" === typeof input.code && ("error" === input.severity || "warning" === input.severity) && "string" === typeof input.message && "string" === typeof input.repair && (undefined === input.location || "object" === typeof input.location && null !== input.location && _io7(input.location)) && (undefined === input.claim || "number" === typeof input.claim) && (undefined === input.reference || "number" === typeof input.reference) && (undefined === input.hostId || "string" === typeof input.hostId) && (undefined === input.target || "string" === typeof input.target);
|
|
1612
|
+
return input => _so0(input);
|
|
1613
|
+
})()(entry.resolution)) {
|
|
1614
|
+
this.diagnostics.push(this.problem("graph-conflicting-resolution", reference.severity, `Acknowledgement '${entry.declarationId}' has conflicting target resolutions.`, "Resolve each acknowledgement once per reference population.", claimIndex, referenceIndex, declarations.get(entry.declarationId)));
|
|
1615
|
+
records.delete(entry.declarationId);
|
|
1616
|
+
conflicts.add(entry.declarationId);
|
|
1617
|
+
}
|
|
1618
|
+
else
|
|
1619
|
+
records.set(entry.declarationId, entry);
|
|
1620
|
+
}
|
|
1621
|
+
return Array.from(records.values()).sort((x, y) => this.compareStatements(declarations.get(x.declarationId), declarations.get(y.declarationId), x.declarationId, y.declarationId));
|
|
1622
|
+
}
|
|
1623
|
+
/**
|
|
1624
|
+
* Validates and orders review resolutions without combining them with acknowledgements.
|
|
1625
|
+
*
|
|
1626
|
+
* Reviews have their own target-resolution lifecycle. Conflicts therefore
|
|
1627
|
+
* invalidate only the review statement and cannot alter acknowledgement
|
|
1628
|
+
* coverage or mask a missing positive citation.
|
|
1629
|
+
*/
|
|
1630
|
+
reviewResolutions(inventory, reference, claimIndex, referenceIndex) {
|
|
1631
|
+
const reviews = new Map(inventory.reviews.map((review) => [review.id, review]));
|
|
1632
|
+
const records = new Map();
|
|
1633
|
+
const conflicts = new Set();
|
|
1634
|
+
for (const entry of reference.reviewResolutions ?? []) {
|
|
1635
|
+
if (conflicts.has(entry.reviewId))
|
|
1636
|
+
continue;
|
|
1637
|
+
const previous = records.get(entry.reviewId);
|
|
1638
|
+
if (previous !== undefined &&
|
|
1639
|
+
(() => {
|
|
1640
|
+
const _ip0 = input => Array.isArray(input["withdrawals"]) && input["withdrawals"].every(elem => "object" === typeof elem && null !== elem && _io6(elem));
|
|
1641
|
+
const _ip1 = input => "string" === typeof input["file"];
|
|
1642
|
+
const _ip2 = input => "string" === typeof input["id"];
|
|
1643
|
+
const _iv0 = new Set(["bigquery", "c", "cpp", "csharp", "dart", "dbml", "go", "java", "javascript", "kotlin", "lua", "markdown", "matlab", "mysql", "objc", "php", "postgresql", "prisma", "python", "ruby", "rust", "scala", "sql", "sqlite", "swagger", "swift", "typescript", "zig"]);
|
|
1644
|
+
const _iv1 = new Set(["column", "file", "function", "h1", "h2", "h3", "h4", "model", "operation", "property", "relation", "type"]);
|
|
1645
|
+
const _so0 = input => `{"status":${"\"" + input.status + "\""},"addresses":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.addresses, elem => _so1(elem))}]`},"units":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.units, elem => _so2(elem))}]`},"withdrawals":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.withdrawals, elem => _so6(elem))}]`},"diagnostics":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.diagnostics, elem => _so8(elem))}]`}}`;
|
|
1646
|
+
const _so1 = input => `{"file":${_jsonStringifyString_1._jsonStringifyString(input.file)},"segments":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.segments, elem => _jsonStringifyString_1._jsonStringifyString(elem))}]`}}`;
|
|
1647
|
+
const _so2 = input => `{"id":${_jsonStringifyString_1._jsonStringifyString(input.id)},${undefined === input.parentId ? "" : `"parentId":${undefined !== input.parentId ? _jsonStringifyString_1._jsonStringifyString(input.parentId) : undefined},`}"type":${"\"" + input.type + "\""},"symbol":${"\"" + input.symbol + "\""},"identity":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.identity, elem => _jsonStringifyString_1._jsonStringifyString(elem))}]`},"name":${_jsonStringifyString_1._jsonStringifyString(input.name)},${undefined === input.contentDigest ? "" : `"contentDigest":${undefined !== input.contentDigest ? _jsonStringifyString_1._jsonStringifyString(input.contentDigest) : undefined},`}"sites":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.sites, elem => _so3(elem))}]`},"withdrawals":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.withdrawals, elem => _so6(elem))}]`}}`;
|
|
1648
|
+
const _so3 = input => `{"id":${_jsonStringifyString_1._jsonStringifyString(input.id)},"file":${_jsonStringifyString_1._jsonStringifyString(input.file)},"range":${_so4(input.range)},"content":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.content, elem => _so4(elem))}]`}}`;
|
|
1649
|
+
const _so4 = input => `{"start":${_so5(input.start)},"end":${_so5(input.end)}}`;
|
|
1650
|
+
const _so5 = input => `{"offset":${String(_jsonStringifyNumber_1._jsonStringifyNumber(input.offset))},"line":${String(_jsonStringifyNumber_1._jsonStringifyNumber(input.line))},"column":${String(_jsonStringifyNumber_1._jsonStringifyNumber(input.column))}}`;
|
|
1651
|
+
const _so6 = input => `{"tag":${"\"" + input.tag + "\""},"location":${_so7(input.location)}}`;
|
|
1652
|
+
const _so7 = input => `{${_jsonStringifyTail_1._jsonStringifyTail(`"file":${_jsonStringifyString_1._jsonStringifyString(input.file)},${undefined === input.range ? "" : `"range":${undefined !== input.range ? _so4(input.range) : undefined}`}`)}}`;
|
|
1653
|
+
const _so8 = input => `{${_jsonStringifyTail_1._jsonStringifyTail(`"code":${_jsonStringifyString_1._jsonStringifyString(input.code)},"severity":${"\"" + input.severity + "\""},"message":${_jsonStringifyString_1._jsonStringifyString(input.message)},"repair":${_jsonStringifyString_1._jsonStringifyString(input.repair)},${undefined === input.location ? "" : `"location":${undefined !== input.location ? _so7(input.location) : undefined},`}${undefined === input.claim ? "" : `"claim":${undefined !== input.claim ? String(_jsonStringifyNumber_1._jsonStringifyNumber(input.claim)) : undefined},`}${undefined === input.reference ? "" : `"reference":${undefined !== input.reference ? String(_jsonStringifyNumber_1._jsonStringifyNumber(input.reference)) : undefined},`}${undefined === input.hostId ? "" : `"hostId":${undefined !== input.hostId ? _jsonStringifyString_1._jsonStringifyString(input.hostId) : undefined},`}${undefined === input.target ? "" : `"target":${undefined !== input.target ? _jsonStringifyString_1._jsonStringifyString(input.target) : undefined}`}`)}}`;
|
|
1654
|
+
const _io1 = input => _ip1(input) && (Array.isArray(input.segments) && input.segments.every(elem => "string" === typeof elem));
|
|
1655
|
+
const _io2 = input => _ip2(input) && (undefined === input.parentId || "string" === typeof input.parentId) && true === _iv0.has(input.type) && true === _iv1.has(input.symbol) && (Array.isArray(input.identity) && input.identity.every(elem => "string" === typeof elem)) && "string" === typeof input.name && (undefined === input.contentDigest || "string" === typeof input.contentDigest) && (Array.isArray(input.sites) && input.sites.every(elem => "object" === typeof elem && null !== elem && _io3(elem))) && _ip0(input);
|
|
1656
|
+
const _io3 = input => _ip2(input) && _ip1(input) && ("object" === typeof input.range && null !== input.range && _io4(input.range)) && (Array.isArray(input.content) && input.content.every(elem => "object" === typeof elem && null !== elem && _io4(elem)));
|
|
1657
|
+
const _io4 = input => "object" === typeof input.start && null !== input.start && _io5(input.start) && ("object" === typeof input.end && null !== input.end && _io5(input.end));
|
|
1658
|
+
const _io5 = input => "number" === typeof input.offset && "number" === typeof input.line && "number" === typeof input.column;
|
|
1659
|
+
const _io6 = input => ("hidden" === input.tag || "ignore" === input.tag || "internal" === input.tag) && ("object" === typeof input.location && null !== input.location && _io7(input.location));
|
|
1660
|
+
const _io7 = input => _ip1(input) && (undefined === input.range || "object" === typeof input.range && null !== input.range && _io4(input.range));
|
|
1661
|
+
const _io8 = input => "string" === typeof input.code && ("error" === input.severity || "warning" === input.severity) && "string" === typeof input.message && "string" === typeof input.repair && (undefined === input.location || "object" === typeof input.location && null !== input.location && _io7(input.location)) && (undefined === input.claim || "number" === typeof input.claim) && (undefined === input.reference || "number" === typeof input.reference) && (undefined === input.hostId || "string" === typeof input.hostId) && (undefined === input.target || "string" === typeof input.target);
|
|
1662
|
+
return input => _so0(input);
|
|
1663
|
+
})()(previous.resolution) !== (() => {
|
|
1664
|
+
const _ip0 = input => Array.isArray(input["withdrawals"]) && input["withdrawals"].every(elem => "object" === typeof elem && null !== elem && _io6(elem));
|
|
1665
|
+
const _ip1 = input => "string" === typeof input["file"];
|
|
1666
|
+
const _ip2 = input => "string" === typeof input["id"];
|
|
1667
|
+
const _iv0 = new Set(["bigquery", "c", "cpp", "csharp", "dart", "dbml", "go", "java", "javascript", "kotlin", "lua", "markdown", "matlab", "mysql", "objc", "php", "postgresql", "prisma", "python", "ruby", "rust", "scala", "sql", "sqlite", "swagger", "swift", "typescript", "zig"]);
|
|
1668
|
+
const _iv1 = new Set(["column", "file", "function", "h1", "h2", "h3", "h4", "model", "operation", "property", "relation", "type"]);
|
|
1669
|
+
const _so0 = input => `{"status":${"\"" + input.status + "\""},"addresses":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.addresses, elem => _so1(elem))}]`},"units":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.units, elem => _so2(elem))}]`},"withdrawals":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.withdrawals, elem => _so6(elem))}]`},"diagnostics":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.diagnostics, elem => _so8(elem))}]`}}`;
|
|
1670
|
+
const _so1 = input => `{"file":${_jsonStringifyString_1._jsonStringifyString(input.file)},"segments":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.segments, elem => _jsonStringifyString_1._jsonStringifyString(elem))}]`}}`;
|
|
1671
|
+
const _so2 = input => `{"id":${_jsonStringifyString_1._jsonStringifyString(input.id)},${undefined === input.parentId ? "" : `"parentId":${undefined !== input.parentId ? _jsonStringifyString_1._jsonStringifyString(input.parentId) : undefined},`}"type":${"\"" + input.type + "\""},"symbol":${"\"" + input.symbol + "\""},"identity":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.identity, elem => _jsonStringifyString_1._jsonStringifyString(elem))}]`},"name":${_jsonStringifyString_1._jsonStringifyString(input.name)},${undefined === input.contentDigest ? "" : `"contentDigest":${undefined !== input.contentDigest ? _jsonStringifyString_1._jsonStringifyString(input.contentDigest) : undefined},`}"sites":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.sites, elem => _so3(elem))}]`},"withdrawals":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.withdrawals, elem => _so6(elem))}]`}}`;
|
|
1672
|
+
const _so3 = input => `{"id":${_jsonStringifyString_1._jsonStringifyString(input.id)},"file":${_jsonStringifyString_1._jsonStringifyString(input.file)},"range":${_so4(input.range)},"content":${`[${_jsonStringifyArray_1._jsonStringifyArray(input.content, elem => _so4(elem))}]`}}`;
|
|
1673
|
+
const _so4 = input => `{"start":${_so5(input.start)},"end":${_so5(input.end)}}`;
|
|
1674
|
+
const _so5 = input => `{"offset":${String(_jsonStringifyNumber_1._jsonStringifyNumber(input.offset))},"line":${String(_jsonStringifyNumber_1._jsonStringifyNumber(input.line))},"column":${String(_jsonStringifyNumber_1._jsonStringifyNumber(input.column))}}`;
|
|
1675
|
+
const _so6 = input => `{"tag":${"\"" + input.tag + "\""},"location":${_so7(input.location)}}`;
|
|
1676
|
+
const _so7 = input => `{${_jsonStringifyTail_1._jsonStringifyTail(`"file":${_jsonStringifyString_1._jsonStringifyString(input.file)},${undefined === input.range ? "" : `"range":${undefined !== input.range ? _so4(input.range) : undefined}`}`)}}`;
|
|
1677
|
+
const _so8 = input => `{${_jsonStringifyTail_1._jsonStringifyTail(`"code":${_jsonStringifyString_1._jsonStringifyString(input.code)},"severity":${"\"" + input.severity + "\""},"message":${_jsonStringifyString_1._jsonStringifyString(input.message)},"repair":${_jsonStringifyString_1._jsonStringifyString(input.repair)},${undefined === input.location ? "" : `"location":${undefined !== input.location ? _so7(input.location) : undefined},`}${undefined === input.claim ? "" : `"claim":${undefined !== input.claim ? String(_jsonStringifyNumber_1._jsonStringifyNumber(input.claim)) : undefined},`}${undefined === input.reference ? "" : `"reference":${undefined !== input.reference ? String(_jsonStringifyNumber_1._jsonStringifyNumber(input.reference)) : undefined},`}${undefined === input.hostId ? "" : `"hostId":${undefined !== input.hostId ? _jsonStringifyString_1._jsonStringifyString(input.hostId) : undefined},`}${undefined === input.target ? "" : `"target":${undefined !== input.target ? _jsonStringifyString_1._jsonStringifyString(input.target) : undefined}`}`)}}`;
|
|
1678
|
+
const _io1 = input => _ip1(input) && (Array.isArray(input.segments) && input.segments.every(elem => "string" === typeof elem));
|
|
1679
|
+
const _io2 = input => _ip2(input) && (undefined === input.parentId || "string" === typeof input.parentId) && true === _iv0.has(input.type) && true === _iv1.has(input.symbol) && (Array.isArray(input.identity) && input.identity.every(elem => "string" === typeof elem)) && "string" === typeof input.name && (undefined === input.contentDigest || "string" === typeof input.contentDigest) && (Array.isArray(input.sites) && input.sites.every(elem => "object" === typeof elem && null !== elem && _io3(elem))) && _ip0(input);
|
|
1680
|
+
const _io3 = input => _ip2(input) && _ip1(input) && ("object" === typeof input.range && null !== input.range && _io4(input.range)) && (Array.isArray(input.content) && input.content.every(elem => "object" === typeof elem && null !== elem && _io4(elem)));
|
|
1681
|
+
const _io4 = input => "object" === typeof input.start && null !== input.start && _io5(input.start) && ("object" === typeof input.end && null !== input.end && _io5(input.end));
|
|
1682
|
+
const _io5 = input => "number" === typeof input.offset && "number" === typeof input.line && "number" === typeof input.column;
|
|
1683
|
+
const _io6 = input => ("hidden" === input.tag || "ignore" === input.tag || "internal" === input.tag) && ("object" === typeof input.location && null !== input.location && _io7(input.location));
|
|
1684
|
+
const _io7 = input => _ip1(input) && (undefined === input.range || "object" === typeof input.range && null !== input.range && _io4(input.range));
|
|
1685
|
+
const _io8 = input => "string" === typeof input.code && ("error" === input.severity || "warning" === input.severity) && "string" === typeof input.message && "string" === typeof input.repair && (undefined === input.location || "object" === typeof input.location && null !== input.location && _io7(input.location)) && (undefined === input.claim || "number" === typeof input.claim) && (undefined === input.reference || "number" === typeof input.reference) && (undefined === input.hostId || "string" === typeof input.hostId) && (undefined === input.target || "string" === typeof input.target);
|
|
1686
|
+
return input => _so0(input);
|
|
1687
|
+
})()(entry.resolution)) {
|
|
1688
|
+
this.diagnostics.push(this.problem("graph-conflicting-review-resolution", reference.severity, `Review '${entry.reviewId}' has conflicting target resolutions.`, "Resolve each review once per reference population.", claimIndex, referenceIndex, reviews.get(entry.reviewId)));
|
|
1689
|
+
records.delete(entry.reviewId);
|
|
1690
|
+
conflicts.add(entry.reviewId);
|
|
1691
|
+
}
|
|
1692
|
+
else
|
|
1693
|
+
records.set(entry.reviewId, entry);
|
|
1694
|
+
}
|
|
1695
|
+
return Array.from(records.values()).sort((x, y) => this.compareStatements(reviews.get(x.reviewId), reviews.get(y.reviewId), x.reviewId, y.reviewId));
|
|
1696
|
+
}
|
|
1697
|
+
/**
|
|
1698
|
+
* Orders statements by physical source position and stable identity.
|
|
1699
|
+
*
|
|
1700
|
+
* Missing locations sort before known offsets through an explicit key, making
|
|
1701
|
+
* invalid adapter records deterministic without inventing a source position.
|
|
1702
|
+
*/
|
|
1703
|
+
compareStatements(x, y, xId, yId) {
|
|
1704
|
+
const xLocation = x === undefined ? undefined : x.location;
|
|
1705
|
+
const yLocation = y === undefined ? undefined : y.location;
|
|
1706
|
+
const xOffset = xLocation?.range === undefined ? -1 : xLocation.range.start.offset;
|
|
1707
|
+
const yOffset = yLocation?.range === undefined ? -1 : yLocation.range.start.offset;
|
|
1708
|
+
const xKey = JSON.stringify([xLocation?.file ?? "", xOffset, xId]);
|
|
1709
|
+
const yKey = JSON.stringify([yLocation?.file ?? "", yOffset, yId]);
|
|
1710
|
+
return InventoryMerge_1.InventoryMerge.compare(xKey, yKey);
|
|
1711
|
+
}
|
|
1712
|
+
/**
|
|
1713
|
+
* Tests structural ancestry through explicit parent identities.
|
|
1714
|
+
*
|
|
1715
|
+
* Coverage scopes must not be inferred from display names or accessor text.
|
|
1716
|
+
* The visited set bounds malformed parent cycles so an invalid inventory can
|
|
1717
|
+
* still yield its diagnostic result without hanging graph evaluation.
|
|
1718
|
+
*/
|
|
1719
|
+
descends(unit, ancestorId, units) {
|
|
1720
|
+
const visited = new Set();
|
|
1721
|
+
let current = unit;
|
|
1722
|
+
while (current !== undefined && !visited.has(current.id)) {
|
|
1723
|
+
if (current.id === ancestorId)
|
|
1724
|
+
return true;
|
|
1725
|
+
visited.add(current.id);
|
|
1726
|
+
current =
|
|
1727
|
+
current.parentId === undefined
|
|
1728
|
+
? undefined
|
|
1729
|
+
: units.get(current.parentId);
|
|
1730
|
+
}
|
|
1731
|
+
return false;
|
|
1732
|
+
}
|
|
1733
|
+
/**
|
|
1734
|
+
* Tests whether two semantic-identity collections share a member.
|
|
1735
|
+
*
|
|
1736
|
+
* Callers use this for host and target scope relations where duplicated aliases
|
|
1737
|
+
* must not change the boolean result.
|
|
1738
|
+
*/
|
|
1739
|
+
overlaps(x, y) {
|
|
1740
|
+
const right = new Set(y);
|
|
1741
|
+
return x.some((id) => right.has(id));
|
|
1742
|
+
}
|
|
1743
|
+
/**
|
|
1744
|
+
* Formats the preferred public address of a semantic unit for diagnostics.
|
|
1745
|
+
*
|
|
1746
|
+
* An address from a selected source is preferred so the repair text reflects
|
|
1747
|
+
* the configured population. If no public address exists, the semantic name
|
|
1748
|
+
* remains a useful fallback for invalid or partially extracted inventory data.
|
|
1749
|
+
*/
|
|
1750
|
+
display(inventory, unit) {
|
|
1751
|
+
const selectedFiles = new Set(inventory.sources.flatMap((source) => source.addresses.flatMap((address) => address.selected === false
|
|
1752
|
+
? []
|
|
1753
|
+
: [EvidenceFileTarget_1.EvidenceFileTarget.normalize(address.absolute)])));
|
|
1754
|
+
const addresses = inventory.addresses
|
|
1755
|
+
.filter((address) => address.unitId === unit.id)
|
|
1756
|
+
.sort((x, y) => InventoryMerge_1.InventoryMerge.compare(JSON.stringify([x.file, x.segments]), JSON.stringify([y.file, y.segments])));
|
|
1757
|
+
const address = addresses.find((candidate) => selectedFiles.has(EvidenceFileTarget_1.EvidenceFileTarget.normalize(candidate.file))) ?? addresses[0];
|
|
1758
|
+
if (address === undefined)
|
|
1759
|
+
return unit.name;
|
|
1760
|
+
return address.segments.length === 0
|
|
1761
|
+
? address.file
|
|
1762
|
+
: EvidenceFileTarget_1.EvidenceFileTarget.format(address);
|
|
1763
|
+
}
|
|
1764
|
+
/**
|
|
1765
|
+
* Applies an obligation's severity and configured coordinates to an existing diagnostic.
|
|
1766
|
+
*
|
|
1767
|
+
* Inventory diagnostics carry adapter facts but no graph boundary. This wrapper
|
|
1768
|
+
* preserves their repair data while adding the claim/reference identity needed
|
|
1769
|
+
* to distinguish repeated populations in one check result.
|
|
1770
|
+
*/
|
|
1771
|
+
context(diagnostic, severity, claim, reference) {
|
|
1772
|
+
if (severity === "off")
|
|
1773
|
+
throw new Error("Disabled graph state cannot emit a diagnostic.");
|
|
1774
|
+
return {
|
|
1775
|
+
...diagnostic,
|
|
1776
|
+
severity,
|
|
1777
|
+
message: `${this.label(claim, reference)}: ${diagnostic.message}`,
|
|
1778
|
+
claim: this.claimIndex(claim),
|
|
1779
|
+
...(reference === undefined
|
|
1780
|
+
? {}
|
|
1781
|
+
: { reference: this.referenceIndex(claim, reference) }),
|
|
1782
|
+
};
|
|
1783
|
+
}
|
|
1784
|
+
/**
|
|
1785
|
+
* Creates a graph diagnostic with the most specific available repair location.
|
|
1786
|
+
*
|
|
1787
|
+
* A statement location wins because its annotation should be edited; otherwise
|
|
1788
|
+
* a missing-coverage finding points at the selected unit's first declaration
|
|
1789
|
+
* site. Disabled obligations are forbidden from emitting findings, protecting
|
|
1790
|
+
* the inactive-result contract.
|
|
1791
|
+
*/
|
|
1792
|
+
problem(code, severity, message, repair, claim, reference, statement, unit) {
|
|
1793
|
+
if (severity === "off")
|
|
1794
|
+
throw new Error("Disabled graph state cannot emit a diagnostic.");
|
|
1795
|
+
const site = unit === undefined ? undefined : unit.sites[0];
|
|
1796
|
+
return {
|
|
1797
|
+
code,
|
|
1798
|
+
severity,
|
|
1799
|
+
message: `${this.label(claim, reference)}: ${message}`,
|
|
1800
|
+
repair,
|
|
1801
|
+
claim: this.claimIndex(claim),
|
|
1802
|
+
reference: this.referenceIndex(claim, reference),
|
|
1803
|
+
...(statement === undefined
|
|
1804
|
+
? site === undefined
|
|
1805
|
+
? {}
|
|
1806
|
+
: { location: { file: site.file, range: site.range } }
|
|
1807
|
+
: {
|
|
1808
|
+
location: statement.location,
|
|
1809
|
+
hostId: statement.hostId,
|
|
1810
|
+
target: statement.target,
|
|
1811
|
+
}),
|
|
1812
|
+
};
|
|
1813
|
+
}
|
|
1814
|
+
/**
|
|
1815
|
+
* Formats a claim and optional reference boundary for a diagnostic message.
|
|
1816
|
+
*
|
|
1817
|
+
* Display numbering uses configured indexes rather than array positions, so
|
|
1818
|
+
* filtering or duplicated policies cannot make a report point at another
|
|
1819
|
+
* configuration entry.
|
|
1820
|
+
*/
|
|
1821
|
+
label(claim, reference) {
|
|
1822
|
+
const input = this.input.claims[claim];
|
|
1823
|
+
const name = input?.name;
|
|
1824
|
+
const configuredClaim = this.claimIndex(claim);
|
|
1825
|
+
const label = name === undefined || name.length === 0
|
|
1826
|
+
? `Claim ${configuredClaim + 1}`
|
|
1827
|
+
: `Claim ${configuredClaim + 1} ('${name}')`;
|
|
1828
|
+
return reference === undefined
|
|
1829
|
+
? label
|
|
1830
|
+
: `${label} reference ${this.referenceIndex(claim, reference) + 1}`;
|
|
1831
|
+
}
|
|
1832
|
+
/**
|
|
1833
|
+
* Maps an input claim position to its configured stable index.
|
|
1834
|
+
*
|
|
1835
|
+
* The positional fallback preserves a usable boundary for malformed or
|
|
1836
|
+
* partially constructed graph input that lacks an indexed claim record.
|
|
1837
|
+
*/
|
|
1838
|
+
claimIndex(position) {
|
|
1839
|
+
return this.input.claims[position]?.index ?? position;
|
|
1840
|
+
}
|
|
1841
|
+
/**
|
|
1842
|
+
* Maps a reference position to its configured stable index within a claim.
|
|
1843
|
+
*
|
|
1844
|
+
* This fallback mirrors claim indexing so diagnostics remain attributable even
|
|
1845
|
+
* while reporting an invalid graph structure.
|
|
1846
|
+
*/
|
|
1847
|
+
referenceIndex(claim, position) {
|
|
1848
|
+
const input = this.input.claims[claim];
|
|
1849
|
+
return input === undefined
|
|
1850
|
+
? position
|
|
1851
|
+
: (input.references[position]?.index ?? position);
|
|
1852
|
+
}
|
|
1853
|
+
/**
|
|
1854
|
+
* Rejects policy combinations that have no coherent checklist interpretation.
|
|
1855
|
+
*
|
|
1856
|
+
* Checklist asks every selected host to answer every Markdown item, whereas
|
|
1857
|
+
* cardinality and gathered exclusions impose incompatible global rules. Fail
|
|
1858
|
+
* early rather than producing coverage findings whose denominator is unclear.
|
|
1859
|
+
*/
|
|
1860
|
+
validateReferencePolicy(claim, reference, population, claimIndex, referenceIndex) {
|
|
1861
|
+
if (reference.checklist !== true)
|
|
1862
|
+
return;
|
|
1863
|
+
if (reference.uniqueEvidence === true ||
|
|
1864
|
+
reference.singleEvidencePerSymbol === true)
|
|
1865
|
+
throw new Error(`${this.label(claimIndex, referenceIndex)} combines checklist with an incompatible cardinality policy.`);
|
|
1866
|
+
if ((claim.exclusionHostIds?.length ?? 0) !== 0 &&
|
|
1867
|
+
reference.noEvidenceExclude !== true)
|
|
1868
|
+
throw new Error(`${this.label(claimIndex, referenceIndex)} combines checklist with gathered exclusion carriers.`);
|
|
1869
|
+
if (population.units.some((unit) => unit.type !== "markdown"))
|
|
1870
|
+
throw new Error(`${this.label(claimIndex, referenceIndex)} applies checklist to a non-Markdown reference population.`);
|
|
1871
|
+
}
|
|
1872
|
+
/**
|
|
1873
|
+
* Defers an unhosted checklist finding until every reference can participate.
|
|
1874
|
+
*
|
|
1875
|
+
* The same declaration may be an eligible answer under another obligation.
|
|
1876
|
+
* For duplicate deferred records, the error severity is retained over warning
|
|
1877
|
+
* so final reporting cannot weaken the strongest applicable policy.
|
|
1878
|
+
*/
|
|
1879
|
+
recordUnhostedChecklist(declaration, severity, claim, reference) {
|
|
1880
|
+
const previous = this.unhostedChecklists.get(declaration.id);
|
|
1881
|
+
if (previous === undefined ||
|
|
1882
|
+
(previous.severity === "warning" && severity === "error"))
|
|
1883
|
+
this.unhostedChecklists.set(declaration.id, {
|
|
1884
|
+
declaration,
|
|
1885
|
+
severity,
|
|
1886
|
+
claim,
|
|
1887
|
+
reference,
|
|
1888
|
+
});
|
|
1889
|
+
}
|
|
1890
|
+
/**
|
|
1891
|
+
* Reports deferred checklist annotations that remain conclusively unhosted.
|
|
1892
|
+
*
|
|
1893
|
+
* Accepted participation suppresses the finding, and uncertain participation
|
|
1894
|
+
* suppresses it as well because an incomplete reference cannot prove that the
|
|
1895
|
+
* declaration is ineligible everywhere.
|
|
1896
|
+
*/
|
|
1897
|
+
reportUnhostedChecklists() {
|
|
1898
|
+
for (const record of this.unhostedChecklists.values()) {
|
|
1899
|
+
if (this.answeredDeclarations.has(record.declaration.id) ||
|
|
1900
|
+
this.uncertainDeclarations.has(record.declaration.id))
|
|
1901
|
+
continue;
|
|
1902
|
+
this.diagnostics.push(this.problem("graph-unhosted-checklist", record.severity, `@${record.declaration.kind} for '${record.declaration.target}' is not attached to a selected checklist host.`, "Move the acknowledgement onto a selected semantic host that owes this checklist item.", record.claim, record.reference, record.declaration));
|
|
1903
|
+
}
|
|
1904
|
+
}
|
|
1905
|
+
/**
|
|
1906
|
+
* Creates a successful inactive obligation without evaluating coverage.
|
|
1907
|
+
*
|
|
1908
|
+
* The configured unit IDs are retained for query reporting, but no selected,
|
|
1909
|
+
* covered, or missing population is claimed while its policy is disabled.
|
|
1910
|
+
*/
|
|
1911
|
+
inactiveObligation(claim, reference, input) {
|
|
1912
|
+
return this.obligation(claim, reference, false, true, input.unitIds, [], []);
|
|
1913
|
+
}
|
|
1914
|
+
/**
|
|
1915
|
+
* Creates an active but incomplete obligation after analysis failure.
|
|
1916
|
+
*
|
|
1917
|
+
* It retains configured IDs for inspection while leaving coverage sets empty,
|
|
1918
|
+
* preventing callers from interpreting a partial traversal as an uncovered
|
|
1919
|
+
* or successfully covered population.
|
|
1920
|
+
*/
|
|
1921
|
+
incompleteObligation(claim, reference, input) {
|
|
1922
|
+
return this.obligation(claim, reference, input.severity !== "off", false, input.unitIds, [], []);
|
|
1923
|
+
}
|
|
1924
|
+
/**
|
|
1925
|
+
* Builds the report record for one configured claim/reference obligation.
|
|
1926
|
+
*
|
|
1927
|
+
* All paths use this constructor so active and completeness flags, configured
|
|
1928
|
+
* coordinates, coverage sets, accepted acknowledgement edges, and optional
|
|
1929
|
+
* host-local checklist coverage remain aligned in exported graph results.
|
|
1930
|
+
*/
|
|
1931
|
+
obligation(claim, reference, active, complete, unitIds, coveredUnitIds, missingUnitIds, edges = [], hostCoverage = []) {
|
|
1932
|
+
return {
|
|
1933
|
+
claim: this.claimIndex(claim),
|
|
1934
|
+
reference: this.referenceIndex(claim, reference),
|
|
1935
|
+
active,
|
|
1936
|
+
complete,
|
|
1937
|
+
unitIds,
|
|
1938
|
+
coveredUnitIds,
|
|
1939
|
+
missingUnitIds,
|
|
1940
|
+
edges,
|
|
1941
|
+
hostCoverage,
|
|
1942
|
+
};
|
|
1943
|
+
}
|
|
1944
|
+
}
|