@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.
Files changed (1076) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +516 -0
  3. package/lib/EvidenceChecker.d.ts +85 -0
  4. package/lib/EvidenceChecker.js +109 -0
  5. package/lib/adapters/bigquery/BigQueryColumnType.d.ts +14 -0
  6. package/lib/adapters/bigquery/BigQueryColumnType.js +34 -0
  7. package/lib/adapters/bigquery/BigQueryFileScanner.d.ts +97 -0
  8. package/lib/adapters/bigquery/BigQueryFileScanner.js +375 -0
  9. package/lib/adapters/bigquery/BigQueryIdentifier.d.ts +37 -0
  10. package/lib/adapters/bigquery/BigQueryIdentifier.js +88 -0
  11. package/lib/adapters/bigquery/BigQueryString.d.ts +14 -0
  12. package/lib/adapters/bigquery/BigQueryString.js +82 -0
  13. package/lib/adapters/bigquery/BigQueryWithdrawals.d.ts +14 -0
  14. package/lib/adapters/bigquery/BigQueryWithdrawals.js +70 -0
  15. package/lib/adapters/bigquery/EvidenceBigQueryAdapter.d.ts +17 -0
  16. package/lib/adapters/bigquery/EvidenceBigQueryAdapter.js +27 -0
  17. package/lib/adapters/c/CAdapter.d.ts +48 -0
  18. package/lib/adapters/c/CAdapter.js +677 -0
  19. package/lib/adapters/c/CDeclarationForm.d.ts +8 -0
  20. package/lib/adapters/c/CDeclarationForm.js +2 -0
  21. package/lib/adapters/c/CDeclaratorKind.d.ts +8 -0
  22. package/lib/adapters/c/CDeclaratorKind.js +2 -0
  23. package/lib/adapters/c/CDocumentation.d.ts +12 -0
  24. package/lib/adapters/c/CDocumentation.js +35 -0
  25. package/lib/adapters/c/CFileScanner.d.ts +64 -0
  26. package/lib/adapters/c/CFileScanner.js +505 -0
  27. package/lib/adapters/c/CSyntax.d.ts +24 -0
  28. package/lib/adapters/c/CSyntax.js +164 -0
  29. package/lib/adapters/c/EvidenceCAdapter.d.ts +15 -0
  30. package/lib/adapters/c/EvidenceCAdapter.js +19 -0
  31. package/lib/adapters/c/ICDeclaration.d.ts +74 -0
  32. package/lib/adapters/c/ICDeclaration.js +2 -0
  33. package/lib/adapters/c/ICDeclarationAddress.d.ts +28 -0
  34. package/lib/adapters/c/ICDeclarationAddress.js +2 -0
  35. package/lib/adapters/c/ICDeclarationGroup.d.ts +23 -0
  36. package/lib/adapters/c/ICDeclarationGroup.js +2 -0
  37. package/lib/adapters/c/ICDeclaratorShape.d.ts +30 -0
  38. package/lib/adapters/c/ICDeclaratorShape.js +2 -0
  39. package/lib/adapters/c/ICDocumentation.d.ts +36 -0
  40. package/lib/adapters/c/ICDocumentation.js +2 -0
  41. package/lib/adapters/c/ICDocumentationAttachment.d.ts +21 -0
  42. package/lib/adapters/c/ICDocumentationAttachment.js +2 -0
  43. package/lib/adapters/c/ICFileAnalysis.d.ts +44 -0
  44. package/lib/adapters/c/ICFileAnalysis.js +2 -0
  45. package/lib/adapters/c/ICTypeContext.d.ts +21 -0
  46. package/lib/adapters/c/ICTypeContext.js +2 -0
  47. package/lib/adapters/cpp/CppAccess.d.ts +7 -0
  48. package/lib/adapters/cpp/CppAccess.js +2 -0
  49. package/lib/adapters/cpp/CppAdapter.d.ts +50 -0
  50. package/lib/adapters/cpp/CppAdapter.js +707 -0
  51. package/lib/adapters/cpp/CppAliasKind.d.ts +7 -0
  52. package/lib/adapters/cpp/CppAliasKind.js +2 -0
  53. package/lib/adapters/cpp/CppDeclarationForm.d.ts +7 -0
  54. package/lib/adapters/cpp/CppDeclarationForm.js +2 -0
  55. package/lib/adapters/cpp/CppDeclaratorKind.d.ts +7 -0
  56. package/lib/adapters/cpp/CppDeclaratorKind.js +2 -0
  57. package/lib/adapters/cpp/CppDocumentation.d.ts +12 -0
  58. package/lib/adapters/cpp/CppDocumentation.js +35 -0
  59. package/lib/adapters/cpp/CppFileScanner.d.ts +79 -0
  60. package/lib/adapters/cpp/CppFileScanner.js +792 -0
  61. package/lib/adapters/cpp/CppScopeKind.d.ts +7 -0
  62. package/lib/adapters/cpp/CppScopeKind.js +2 -0
  63. package/lib/adapters/cpp/CppSyntax.d.ts +31 -0
  64. package/lib/adapters/cpp/CppSyntax.js +342 -0
  65. package/lib/adapters/cpp/CppVisibility.d.ts +7 -0
  66. package/lib/adapters/cpp/CppVisibility.js +2 -0
  67. package/lib/adapters/cpp/EvidenceCppAdapter.d.ts +16 -0
  68. package/lib/adapters/cpp/EvidenceCppAdapter.js +20 -0
  69. package/lib/adapters/cpp/ICppAlias.d.ts +44 -0
  70. package/lib/adapters/cpp/ICppAlias.js +2 -0
  71. package/lib/adapters/cpp/ICppDeclaration.d.ts +55 -0
  72. package/lib/adapters/cpp/ICppDeclaration.js +2 -0
  73. package/lib/adapters/cpp/ICppDeclarationGroup.d.ts +25 -0
  74. package/lib/adapters/cpp/ICppDeclarationGroup.js +2 -0
  75. package/lib/adapters/cpp/ICppDeclaratorShape.d.ts +42 -0
  76. package/lib/adapters/cpp/ICppDeclaratorShape.js +2 -0
  77. package/lib/adapters/cpp/ICppDocumentation.d.ts +30 -0
  78. package/lib/adapters/cpp/ICppDocumentation.js +2 -0
  79. package/lib/adapters/cpp/ICppDocumentationAttachment.d.ts +16 -0
  80. package/lib/adapters/cpp/ICppDocumentationAttachment.js +2 -0
  81. package/lib/adapters/cpp/ICppFileAnalysis.d.ts +41 -0
  82. package/lib/adapters/cpp/ICppFileAnalysis.js +2 -0
  83. package/lib/adapters/cpp/ICppQualifiedName.d.ts +16 -0
  84. package/lib/adapters/cpp/ICppQualifiedName.js +2 -0
  85. package/lib/adapters/cpp/ICppResolvedAlias.d.ts +24 -0
  86. package/lib/adapters/cpp/ICppResolvedAlias.js +2 -0
  87. package/lib/adapters/cpp/ICppScopeContext.d.ts +37 -0
  88. package/lib/adapters/cpp/ICppScopeContext.js +2 -0
  89. package/lib/adapters/csharp/CSharpAccessibility.d.ts +7 -0
  90. package/lib/adapters/csharp/CSharpAccessibility.js +2 -0
  91. package/lib/adapters/csharp/CSharpAdapter.d.ts +47 -0
  92. package/lib/adapters/csharp/CSharpAdapter.js +687 -0
  93. package/lib/adapters/csharp/CSharpDeclarationForm.d.ts +7 -0
  94. package/lib/adapters/csharp/CSharpDeclarationForm.js +2 -0
  95. package/lib/adapters/csharp/CSharpDocumentation.d.ts +12 -0
  96. package/lib/adapters/csharp/CSharpDocumentation.js +35 -0
  97. package/lib/adapters/csharp/CSharpFileScanner.d.ts +54 -0
  98. package/lib/adapters/csharp/CSharpFileScanner.js +403 -0
  99. package/lib/adapters/csharp/CSharpSyntax.d.ts +23 -0
  100. package/lib/adapters/csharp/CSharpSyntax.js +174 -0
  101. package/lib/adapters/csharp/CSharpTypeKind.d.ts +7 -0
  102. package/lib/adapters/csharp/CSharpTypeKind.js +2 -0
  103. package/lib/adapters/csharp/EvidenceCSharpAdapter.d.ts +15 -0
  104. package/lib/adapters/csharp/EvidenceCSharpAdapter.js +19 -0
  105. package/lib/adapters/csharp/ICSharpDeclaration.d.ts +63 -0
  106. package/lib/adapters/csharp/ICSharpDeclaration.js +2 -0
  107. package/lib/adapters/csharp/ICSharpDeclarationAddress.d.ts +22 -0
  108. package/lib/adapters/csharp/ICSharpDeclarationAddress.js +2 -0
  109. package/lib/adapters/csharp/ICSharpDeclarationGroup.d.ts +19 -0
  110. package/lib/adapters/csharp/ICSharpDeclarationGroup.js +2 -0
  111. package/lib/adapters/csharp/ICSharpDocumentation.d.ts +43 -0
  112. package/lib/adapters/csharp/ICSharpDocumentation.js +2 -0
  113. package/lib/adapters/csharp/ICSharpDocumentationAttachment.d.ts +25 -0
  114. package/lib/adapters/csharp/ICSharpDocumentationAttachment.js +2 -0
  115. package/lib/adapters/csharp/ICSharpFileAnalysis.d.ts +51 -0
  116. package/lib/adapters/csharp/ICSharpFileAnalysis.js +2 -0
  117. package/lib/adapters/csharp/ICSharpTypeContext.d.ts +41 -0
  118. package/lib/adapters/csharp/ICSharpTypeContext.js +2 -0
  119. package/lib/adapters/dart/DartAdapter.d.ts +96 -0
  120. package/lib/adapters/dart/DartAdapter.js +616 -0
  121. package/lib/adapters/dart/DartDocumentation.d.ts +16 -0
  122. package/lib/adapters/dart/DartDocumentation.js +73 -0
  123. package/lib/adapters/dart/DartFileScanner.d.ts +112 -0
  124. package/lib/adapters/dart/DartFileScanner.js +415 -0
  125. package/lib/adapters/dart/DartLibraries.d.ts +24 -0
  126. package/lib/adapters/dart/DartLibraries.js +228 -0
  127. package/lib/adapters/dart/EvidenceDartAdapter.d.ts +15 -0
  128. package/lib/adapters/dart/EvidenceDartAdapter.js +19 -0
  129. package/lib/adapters/dart/IDartDeclaration.d.ts +69 -0
  130. package/lib/adapters/dart/IDartDeclaration.js +2 -0
  131. package/lib/adapters/dart/IDartDirective.d.ts +53 -0
  132. package/lib/adapters/dart/IDartDirective.js +2 -0
  133. package/lib/adapters/dart/IDartDocumentation.d.ts +31 -0
  134. package/lib/adapters/dart/IDartDocumentation.js +2 -0
  135. package/lib/adapters/dart/IDartDocumentationAttachment.d.ts +23 -0
  136. package/lib/adapters/dart/IDartDocumentationAttachment.js +2 -0
  137. package/lib/adapters/dart/IDartExportFilter.d.ts +22 -0
  138. package/lib/adapters/dart/IDartExportFilter.js +2 -0
  139. package/lib/adapters/dart/IDartFileAnalysis.d.ts +55 -0
  140. package/lib/adapters/dart/IDartFileAnalysis.js +2 -0
  141. package/lib/adapters/dbml/DbmlDocumentation.d.ts +15 -0
  142. package/lib/adapters/dbml/DbmlDocumentation.js +49 -0
  143. package/lib/adapters/dbml/DbmlFileScanner.d.ts +114 -0
  144. package/lib/adapters/dbml/DbmlFileScanner.js +364 -0
  145. package/lib/adapters/dbml/EvidenceDbmlAdapter.d.ts +88 -0
  146. package/lib/adapters/dbml/EvidenceDbmlAdapter.js +674 -0
  147. package/lib/adapters/dbml/IDbmlDeclaration.d.ts +38 -0
  148. package/lib/adapters/dbml/IDbmlDeclaration.js +2 -0
  149. package/lib/adapters/dbml/IDbmlDocumentation.d.ts +34 -0
  150. package/lib/adapters/dbml/IDbmlDocumentation.js +2 -0
  151. package/lib/adapters/dbml/IDbmlEndpoint.d.ts +20 -0
  152. package/lib/adapters/dbml/IDbmlEndpoint.js +2 -0
  153. package/lib/adapters/dbml/IDbmlEnum.d.ts +27 -0
  154. package/lib/adapters/dbml/IDbmlEnum.js +2 -0
  155. package/lib/adapters/dbml/IDbmlFileAnalysis.d.ts +56 -0
  156. package/lib/adapters/dbml/IDbmlFileAnalysis.js +2 -0
  157. package/lib/adapters/dbml/IDbmlRelation.d.ts +56 -0
  158. package/lib/adapters/dbml/IDbmlRelation.js +2 -0
  159. package/lib/adapters/ecmascript/EcmaScriptAdapter.d.ts +71 -0
  160. package/lib/adapters/ecmascript/EcmaScriptAdapter.js +516 -0
  161. package/lib/adapters/ecmascript/EcmaScriptExportKind.d.ts +7 -0
  162. package/lib/adapters/ecmascript/EcmaScriptExportKind.js +2 -0
  163. package/lib/adapters/ecmascript/EcmaScriptExportResolver.d.ts +175 -0
  164. package/lib/adapters/ecmascript/EcmaScriptExportResolver.js +510 -0
  165. package/lib/adapters/ecmascript/EcmaScriptFileScanner.d.ts +84 -0
  166. package/lib/adapters/ecmascript/EcmaScriptFileScanner.js +946 -0
  167. package/lib/adapters/ecmascript/EcmaScriptModuleMode.d.ts +7 -0
  168. package/lib/adapters/ecmascript/EcmaScriptModuleMode.js +2 -0
  169. package/lib/adapters/ecmascript/EcmaScriptModuleResolver.d.ts +70 -0
  170. package/lib/adapters/ecmascript/EcmaScriptModuleResolver.js +211 -0
  171. package/lib/adapters/ecmascript/EcmaScriptSyntax.d.ts +24 -0
  172. package/lib/adapters/ecmascript/EcmaScriptSyntax.js +263 -0
  173. package/lib/adapters/ecmascript/EcmaScriptType.d.ts +7 -0
  174. package/lib/adapters/ecmascript/EcmaScriptType.js +2 -0
  175. package/lib/adapters/ecmascript/IEcmaScriptBinding.d.ts +29 -0
  176. package/lib/adapters/ecmascript/IEcmaScriptBinding.js +2 -0
  177. package/lib/adapters/ecmascript/IEcmaScriptComment.d.ts +39 -0
  178. package/lib/adapters/ecmascript/IEcmaScriptComment.js +2 -0
  179. package/lib/adapters/ecmascript/IEcmaScriptCommentAttachment.d.ts +24 -0
  180. package/lib/adapters/ecmascript/IEcmaScriptCommentAttachment.js +2 -0
  181. package/lib/adapters/ecmascript/IEcmaScriptExport.d.ts +51 -0
  182. package/lib/adapters/ecmascript/IEcmaScriptExport.js +2 -0
  183. package/lib/adapters/ecmascript/IEcmaScriptFileAnalysis.d.ts +56 -0
  184. package/lib/adapters/ecmascript/IEcmaScriptFileAnalysis.js +2 -0
  185. package/lib/adapters/ecmascript/IEcmaScriptHostPosition.d.ts +25 -0
  186. package/lib/adapters/ecmascript/IEcmaScriptHostPosition.js +2 -0
  187. package/lib/adapters/ecmascript/IEcmaScriptImport.d.ts +44 -0
  188. package/lib/adapters/ecmascript/IEcmaScriptImport.js +2 -0
  189. package/lib/adapters/ecmascript/IEcmaScriptModule.d.ts +55 -0
  190. package/lib/adapters/ecmascript/IEcmaScriptModule.js +2 -0
  191. package/lib/adapters/ecmascript/IEcmaScriptModuleResolution.d.ts +40 -0
  192. package/lib/adapters/ecmascript/IEcmaScriptModuleResolution.js +2 -0
  193. package/lib/adapters/ecmascript/IEcmaScriptOwnedUnit.d.ts +45 -0
  194. package/lib/adapters/ecmascript/IEcmaScriptOwnedUnit.js +2 -0
  195. package/lib/adapters/ecmascript/IEcmaScriptResolution.d.ts +31 -0
  196. package/lib/adapters/ecmascript/IEcmaScriptResolution.js +2 -0
  197. package/lib/adapters/ecmascript/IEcmaScriptStatementContext.d.ts +58 -0
  198. package/lib/adapters/ecmascript/IEcmaScriptStatementContext.js +2 -0
  199. package/lib/adapters/ecmascript/IJavaScriptPackageJson.d.ts +16 -0
  200. package/lib/adapters/ecmascript/IJavaScriptPackageJson.js +2 -0
  201. package/lib/adapters/go/EvidenceGoAdapter.d.ts +15 -0
  202. package/lib/adapters/go/EvidenceGoAdapter.js +19 -0
  203. package/lib/adapters/go/GoAdapter.d.ts +43 -0
  204. package/lib/adapters/go/GoAdapter.js +509 -0
  205. package/lib/adapters/go/GoDeclarationForm.d.ts +7 -0
  206. package/lib/adapters/go/GoDeclarationForm.js +2 -0
  207. package/lib/adapters/go/GoFileScanner.d.ts +57 -0
  208. package/lib/adapters/go/GoFileScanner.js +288 -0
  209. package/lib/adapters/go/GoPackageResolver.d.ts +147 -0
  210. package/lib/adapters/go/GoPackageResolver.js +306 -0
  211. package/lib/adapters/go/GoSyntax.d.ts +17 -0
  212. package/lib/adapters/go/GoSyntax.js +107 -0
  213. package/lib/adapters/go/IGoDeclaration.d.ts +53 -0
  214. package/lib/adapters/go/IGoDeclaration.js +2 -0
  215. package/lib/adapters/go/IGoDocumentation.d.ts +35 -0
  216. package/lib/adapters/go/IGoDocumentation.js +2 -0
  217. package/lib/adapters/go/IGoDocumentationAttachment.d.ts +20 -0
  218. package/lib/adapters/go/IGoDocumentationAttachment.js +2 -0
  219. package/lib/adapters/go/IGoFileAnalysis.d.ts +60 -0
  220. package/lib/adapters/go/IGoFileAnalysis.js +2 -0
  221. package/lib/adapters/go/IGoMaterializedDeclaration.d.ts +28 -0
  222. package/lib/adapters/go/IGoMaterializedDeclaration.js +2 -0
  223. package/lib/adapters/java/EvidenceJavaAdapter.d.ts +15 -0
  224. package/lib/adapters/java/EvidenceJavaAdapter.js +19 -0
  225. package/lib/adapters/java/IJavaDeclaration.d.ts +65 -0
  226. package/lib/adapters/java/IJavaDeclaration.js +2 -0
  227. package/lib/adapters/java/IJavaDocumentation.d.ts +35 -0
  228. package/lib/adapters/java/IJavaDocumentation.js +2 -0
  229. package/lib/adapters/java/IJavaDocumentationAttachment.d.ts +20 -0
  230. package/lib/adapters/java/IJavaDocumentationAttachment.js +2 -0
  231. package/lib/adapters/java/IJavaFileAnalysis.d.ts +42 -0
  232. package/lib/adapters/java/IJavaFileAnalysis.js +2 -0
  233. package/lib/adapters/java/IJavaTypeContext.d.ts +39 -0
  234. package/lib/adapters/java/IJavaTypeContext.js +2 -0
  235. package/lib/adapters/java/JavaAdapter.d.ts +45 -0
  236. package/lib/adapters/java/JavaAdapter.js +572 -0
  237. package/lib/adapters/java/JavaDeclarationForm.d.ts +7 -0
  238. package/lib/adapters/java/JavaDeclarationForm.js +2 -0
  239. package/lib/adapters/java/JavaDocumentation.d.ts +12 -0
  240. package/lib/adapters/java/JavaDocumentation.js +52 -0
  241. package/lib/adapters/java/JavaFileScanner.d.ts +51 -0
  242. package/lib/adapters/java/JavaFileScanner.js +317 -0
  243. package/lib/adapters/java/JavaSyntax.d.ts +18 -0
  244. package/lib/adapters/java/JavaSyntax.js +100 -0
  245. package/lib/adapters/java/JavaTypeKind.d.ts +7 -0
  246. package/lib/adapters/java/JavaTypeKind.js +2 -0
  247. package/lib/adapters/javascript/EvidenceJavaScriptAdapter.d.ts +26 -0
  248. package/lib/adapters/javascript/EvidenceJavaScriptAdapter.js +32 -0
  249. package/lib/adapters/kotlin/EvidenceKotlinAdapter.d.ts +15 -0
  250. package/lib/adapters/kotlin/EvidenceKotlinAdapter.js +19 -0
  251. package/lib/adapters/kotlin/IKotlinDeclaration.d.ts +77 -0
  252. package/lib/adapters/kotlin/IKotlinDeclaration.js +2 -0
  253. package/lib/adapters/kotlin/IKotlinDocumentation.d.ts +31 -0
  254. package/lib/adapters/kotlin/IKotlinDocumentation.js +2 -0
  255. package/lib/adapters/kotlin/IKotlinDocumentationAttachment.d.ts +23 -0
  256. package/lib/adapters/kotlin/IKotlinDocumentationAttachment.js +2 -0
  257. package/lib/adapters/kotlin/IKotlinFileAnalysis.d.ts +39 -0
  258. package/lib/adapters/kotlin/IKotlinFileAnalysis.js +2 -0
  259. package/lib/adapters/kotlin/IKotlinResolvedType.d.ts +23 -0
  260. package/lib/adapters/kotlin/IKotlinResolvedType.js +2 -0
  261. package/lib/adapters/kotlin/IKotlinTypeReference.d.ts +44 -0
  262. package/lib/adapters/kotlin/IKotlinTypeReference.js +2 -0
  263. package/lib/adapters/kotlin/KotlinAdapter.d.ts +114 -0
  264. package/lib/adapters/kotlin/KotlinAdapter.js +649 -0
  265. package/lib/adapters/kotlin/KotlinDocumentation.d.ts +18 -0
  266. package/lib/adapters/kotlin/KotlinDocumentation.js +80 -0
  267. package/lib/adapters/kotlin/KotlinFileScanner.d.ts +153 -0
  268. package/lib/adapters/kotlin/KotlinFileScanner.js +508 -0
  269. package/lib/adapters/kotlin/KotlinReceivers.d.ts +16 -0
  270. package/lib/adapters/kotlin/KotlinReceivers.js +104 -0
  271. package/lib/adapters/lua/EvidenceLuaAdapter.d.ts +16 -0
  272. package/lib/adapters/lua/EvidenceLuaAdapter.js +20 -0
  273. package/lib/adapters/lua/ILuaDeclaration.d.ts +54 -0
  274. package/lib/adapters/lua/ILuaDeclaration.js +2 -0
  275. package/lib/adapters/lua/ILuaDocumentation.d.ts +31 -0
  276. package/lib/adapters/lua/ILuaDocumentation.js +2 -0
  277. package/lib/adapters/lua/ILuaDocumentationAttachment.d.ts +23 -0
  278. package/lib/adapters/lua/ILuaDocumentationAttachment.js +2 -0
  279. package/lib/adapters/lua/ILuaFileAnalysis.d.ts +39 -0
  280. package/lib/adapters/lua/ILuaFileAnalysis.js +2 -0
  281. package/lib/adapters/lua/ILuaValue.d.ts +39 -0
  282. package/lib/adapters/lua/ILuaValue.js +2 -0
  283. package/lib/adapters/lua/LuaAdapter.d.ts +114 -0
  284. package/lib/adapters/lua/LuaAdapter.js +647 -0
  285. package/lib/adapters/lua/LuaDocumentation.d.ts +19 -0
  286. package/lib/adapters/lua/LuaDocumentation.js +79 -0
  287. package/lib/adapters/lua/LuaFileScanner.d.ts +167 -0
  288. package/lib/adapters/lua/LuaFileScanner.js +585 -0
  289. package/lib/adapters/markdown/EvidenceMarkdownAdapter.d.ts +28 -0
  290. package/lib/adapters/markdown/EvidenceMarkdownAdapter.js +296 -0
  291. package/lib/adapters/markdown/EvidenceMarkdownRenderedEdge.d.ts +7 -0
  292. package/lib/adapters/markdown/EvidenceMarkdownRenderedEdge.js +2 -0
  293. package/lib/adapters/markdown/IMarkdownComment.d.ts +31 -0
  294. package/lib/adapters/markdown/IMarkdownComment.js +2 -0
  295. package/lib/adapters/markdown/IMarkdownFence.d.ts +25 -0
  296. package/lib/adapters/markdown/IMarkdownFence.js +2 -0
  297. package/lib/adapters/markdown/IMarkdownHeading.d.ts +25 -0
  298. package/lib/adapters/markdown/IMarkdownHeading.js +2 -0
  299. package/lib/adapters/markdown/MarkdownScanner.d.ts +102 -0
  300. package/lib/adapters/markdown/MarkdownScanner.js +471 -0
  301. package/lib/adapters/markdown/MarkdownSyntax.d.ts +34 -0
  302. package/lib/adapters/markdown/MarkdownSyntax.js +234 -0
  303. package/lib/adapters/markdown/MarkdownTarget.d.ts +17 -0
  304. package/lib/adapters/markdown/MarkdownTarget.js +38 -0
  305. package/lib/adapters/matlab/EvidenceMatlabAdapter.d.ts +15 -0
  306. package/lib/adapters/matlab/EvidenceMatlabAdapter.js +19 -0
  307. package/lib/adapters/matlab/IMatlabDeclaration.d.ts +103 -0
  308. package/lib/adapters/matlab/IMatlabDeclaration.js +2 -0
  309. package/lib/adapters/matlab/IMatlabDocumentation.d.ts +35 -0
  310. package/lib/adapters/matlab/IMatlabDocumentation.js +2 -0
  311. package/lib/adapters/matlab/IMatlabDocumentationAttachment.d.ts +20 -0
  312. package/lib/adapters/matlab/IMatlabDocumentationAttachment.js +2 -0
  313. package/lib/adapters/matlab/IMatlabFileAnalysis.d.ts +43 -0
  314. package/lib/adapters/matlab/IMatlabFileAnalysis.js +2 -0
  315. package/lib/adapters/matlab/MatlabAdapter.d.ts +104 -0
  316. package/lib/adapters/matlab/MatlabAdapter.js +625 -0
  317. package/lib/adapters/matlab/MatlabDocumentation.d.ts +18 -0
  318. package/lib/adapters/matlab/MatlabDocumentation.js +78 -0
  319. package/lib/adapters/matlab/MatlabFileScanner.d.ts +118 -0
  320. package/lib/adapters/matlab/MatlabFileScanner.js +454 -0
  321. package/lib/adapters/matlab/MatlabOwnership.d.ts +17 -0
  322. package/lib/adapters/matlab/MatlabOwnership.js +139 -0
  323. package/lib/adapters/mysql/EvidenceMysqlAdapter.d.ts +16 -0
  324. package/lib/adapters/mysql/EvidenceMysqlAdapter.js +23 -0
  325. package/lib/adapters/mysql/MysqlDocumentation.d.ts +15 -0
  326. package/lib/adapters/mysql/MysqlDocumentation.js +40 -0
  327. package/lib/adapters/mysql/MysqlFileScanner.d.ts +16 -0
  328. package/lib/adapters/mysql/MysqlFileScanner.js +78 -0
  329. package/lib/adapters/mysql/MysqlIdentifier.d.ts +13 -0
  330. package/lib/adapters/mysql/MysqlIdentifier.js +30 -0
  331. package/lib/adapters/mysql/MysqlPolicy.d.ts +39 -0
  332. package/lib/adapters/mysql/MysqlPolicy.js +173 -0
  333. package/lib/adapters/objc/EvidenceObjcAdapter.d.ts +15 -0
  334. package/lib/adapters/objc/EvidenceObjcAdapter.js +19 -0
  335. package/lib/adapters/objc/IObjcDeclaration.d.ts +79 -0
  336. package/lib/adapters/objc/IObjcDeclaration.js +2 -0
  337. package/lib/adapters/objc/IObjcDocumentation.d.ts +35 -0
  338. package/lib/adapters/objc/IObjcDocumentation.js +2 -0
  339. package/lib/adapters/objc/IObjcDocumentationAttachment.d.ts +20 -0
  340. package/lib/adapters/objc/IObjcDocumentationAttachment.js +2 -0
  341. package/lib/adapters/objc/IObjcFileAnalysis.d.ts +43 -0
  342. package/lib/adapters/objc/IObjcFileAnalysis.js +2 -0
  343. package/lib/adapters/objc/ObjcAdapter.d.ts +100 -0
  344. package/lib/adapters/objc/ObjcAdapter.js +646 -0
  345. package/lib/adapters/objc/ObjcDeclarationForm.d.ts +7 -0
  346. package/lib/adapters/objc/ObjcDeclarationForm.js +2 -0
  347. package/lib/adapters/objc/ObjcDocumentation.d.ts +8 -0
  348. package/lib/adapters/objc/ObjcDocumentation.js +11 -0
  349. package/lib/adapters/objc/ObjcFileScanner.d.ts +123 -0
  350. package/lib/adapters/objc/ObjcFileScanner.js +461 -0
  351. package/lib/adapters/php/EvidencePhpAdapter.d.ts +15 -0
  352. package/lib/adapters/php/EvidencePhpAdapter.js +19 -0
  353. package/lib/adapters/php/IPhpDeclaration.d.ts +64 -0
  354. package/lib/adapters/php/IPhpDeclaration.js +2 -0
  355. package/lib/adapters/php/IPhpDocumentation.d.ts +35 -0
  356. package/lib/adapters/php/IPhpDocumentation.js +2 -0
  357. package/lib/adapters/php/IPhpDocumentationAttachment.d.ts +20 -0
  358. package/lib/adapters/php/IPhpDocumentationAttachment.js +2 -0
  359. package/lib/adapters/php/IPhpFileAnalysis.d.ts +48 -0
  360. package/lib/adapters/php/IPhpFileAnalysis.js +2 -0
  361. package/lib/adapters/php/PhpAdapter.d.ts +108 -0
  362. package/lib/adapters/php/PhpAdapter.js +670 -0
  363. package/lib/adapters/php/PhpDocumentation.d.ts +18 -0
  364. package/lib/adapters/php/PhpDocumentation.js +80 -0
  365. package/lib/adapters/php/PhpFileScanner.d.ts +79 -0
  366. package/lib/adapters/php/PhpFileScanner.js +346 -0
  367. package/lib/adapters/postgresql/EvidencePostgresqlAdapter.d.ts +26 -0
  368. package/lib/adapters/postgresql/EvidencePostgresqlAdapter.js +41 -0
  369. package/lib/adapters/postgresql/IPostgresqlFileAnalysis.d.ts +16 -0
  370. package/lib/adapters/postgresql/IPostgresqlFileAnalysis.js +2 -0
  371. package/lib/adapters/postgresql/IPostgresqlReference.d.ts +26 -0
  372. package/lib/adapters/postgresql/IPostgresqlReference.js +2 -0
  373. package/lib/adapters/postgresql/PostgresqlFileScanner.d.ts +103 -0
  374. package/lib/adapters/postgresql/PostgresqlFileScanner.js +431 -0
  375. package/lib/adapters/postgresql/PostgresqlFingerprint.d.ts +14 -0
  376. package/lib/adapters/postgresql/PostgresqlFingerprint.js +29 -0
  377. package/lib/adapters/postgresql/PostgresqlIdentity.d.ts +20 -0
  378. package/lib/adapters/postgresql/PostgresqlIdentity.js +41 -0
  379. package/lib/adapters/postgresql/PostgresqlOwnership.d.ts +14 -0
  380. package/lib/adapters/postgresql/PostgresqlOwnership.js +668 -0
  381. package/lib/adapters/prisma/EvidencePrismaAdapter.d.ts +57 -0
  382. package/lib/adapters/prisma/EvidencePrismaAdapter.js +603 -0
  383. package/lib/adapters/prisma/IPrismaBlockHead.d.ts +21 -0
  384. package/lib/adapters/prisma/IPrismaBlockHead.js +2 -0
  385. package/lib/adapters/prisma/IPrismaCacheEntry.d.ts +22 -0
  386. package/lib/adapters/prisma/IPrismaCacheEntry.js +2 -0
  387. package/lib/adapters/prisma/IPrismaCommentRun.d.ts +51 -0
  388. package/lib/adapters/prisma/IPrismaCommentRun.js +2 -0
  389. package/lib/adapters/prisma/IPrismaDatamodel.d.ts +15 -0
  390. package/lib/adapters/prisma/IPrismaDatamodel.js +2 -0
  391. package/lib/adapters/prisma/IPrismaDatamodelField.d.ts +26 -0
  392. package/lib/adapters/prisma/IPrismaDatamodelField.js +2 -0
  393. package/lib/adapters/prisma/IPrismaDatamodelModel.d.ts +29 -0
  394. package/lib/adapters/prisma/IPrismaDatamodelModel.js +2 -0
  395. package/lib/adapters/prisma/IPrismaField.d.ts +36 -0
  396. package/lib/adapters/prisma/IPrismaField.js +2 -0
  397. package/lib/adapters/prisma/IPrismaFileAnalysis.d.ts +31 -0
  398. package/lib/adapters/prisma/IPrismaFileAnalysis.js +2 -0
  399. package/lib/adapters/prisma/IPrismaLineParts.d.ts +26 -0
  400. package/lib/adapters/prisma/IPrismaLineParts.js +2 -0
  401. package/lib/adapters/prisma/IPrismaLoadResult.d.ts +22 -0
  402. package/lib/adapters/prisma/IPrismaLoadResult.js +2 -0
  403. package/lib/adapters/prisma/IPrismaLocatedDeclaration.d.ts +20 -0
  404. package/lib/adapters/prisma/IPrismaLocatedDeclaration.js +2 -0
  405. package/lib/adapters/prisma/IPrismaLocation.d.ts +22 -0
  406. package/lib/adapters/prisma/IPrismaLocation.js +2 -0
  407. package/lib/adapters/prisma/IPrismaModel.d.ts +36 -0
  408. package/lib/adapters/prisma/IPrismaModel.js +2 -0
  409. package/lib/adapters/prisma/IPrismaOwnedUnit.d.ts +37 -0
  410. package/lib/adapters/prisma/IPrismaOwnedUnit.js +2 -0
  411. package/lib/adapters/prisma/IPrismaParser.d.ts +28 -0
  412. package/lib/adapters/prisma/IPrismaParser.js +2 -0
  413. package/lib/adapters/prisma/IPrismaPendingComment.d.ts +52 -0
  414. package/lib/adapters/prisma/IPrismaPendingComment.js +2 -0
  415. package/lib/adapters/prisma/IPrismaSchemaFile.d.ts +22 -0
  416. package/lib/adapters/prisma/IPrismaSchemaFile.js +2 -0
  417. package/lib/adapters/prisma/ITrimmedMapping.d.ts +23 -0
  418. package/lib/adapters/prisma/ITrimmedMapping.js +2 -0
  419. package/lib/adapters/prisma/PrismaCommentForm.d.ts +7 -0
  420. package/lib/adapters/prisma/PrismaCommentForm.js +2 -0
  421. package/lib/adapters/prisma/PrismaFileScanner.d.ts +70 -0
  422. package/lib/adapters/prisma/PrismaFileScanner.js +361 -0
  423. package/lib/adapters/prisma/PrismaModelLoader.d.ts +12 -0
  424. package/lib/adapters/prisma/PrismaModelLoader.js +268 -0
  425. package/lib/adapters/prisma/PrismaSyntax.d.ts +9 -0
  426. package/lib/adapters/prisma/PrismaSyntax.js +27 -0
  427. package/lib/adapters/prisma/PrismaTarget.d.ts +10 -0
  428. package/lib/adapters/prisma/PrismaTarget.js +23 -0
  429. package/lib/adapters/python/EvidencePythonAdapter.d.ts +15 -0
  430. package/lib/adapters/python/EvidencePythonAdapter.js +19 -0
  431. package/lib/adapters/python/IPythonAll.d.ts +24 -0
  432. package/lib/adapters/python/IPythonAll.js +2 -0
  433. package/lib/adapters/python/IPythonBinding.d.ts +52 -0
  434. package/lib/adapters/python/IPythonBinding.js +2 -0
  435. package/lib/adapters/python/IPythonClassContext.d.ts +36 -0
  436. package/lib/adapters/python/IPythonClassContext.js +2 -0
  437. package/lib/adapters/python/IPythonDocumentation.d.ts +47 -0
  438. package/lib/adapters/python/IPythonDocumentation.js +2 -0
  439. package/lib/adapters/python/IPythonDocumentationAttachment.d.ts +31 -0
  440. package/lib/adapters/python/IPythonDocumentationAttachment.js +2 -0
  441. package/lib/adapters/python/IPythonFileAnalysis.d.ts +63 -0
  442. package/lib/adapters/python/IPythonFileAnalysis.js +2 -0
  443. package/lib/adapters/python/IPythonHostPosition.d.ts +33 -0
  444. package/lib/adapters/python/IPythonHostPosition.js +2 -0
  445. package/lib/adapters/python/IPythonModule.d.ts +42 -0
  446. package/lib/adapters/python/IPythonModule.js +2 -0
  447. package/lib/adapters/python/IPythonOwnedUnit.d.ts +30 -0
  448. package/lib/adapters/python/IPythonOwnedUnit.js +2 -0
  449. package/lib/adapters/python/IPythonResolution.d.ts +21 -0
  450. package/lib/adapters/python/IPythonResolution.js +2 -0
  451. package/lib/adapters/python/IPythonResolvedBinding.d.ts +20 -0
  452. package/lib/adapters/python/IPythonResolvedBinding.js +2 -0
  453. package/lib/adapters/python/PythonAdapter.d.ts +43 -0
  454. package/lib/adapters/python/PythonAdapter.js +488 -0
  455. package/lib/adapters/python/PythonAllState.d.ts +7 -0
  456. package/lib/adapters/python/PythonAllState.js +2 -0
  457. package/lib/adapters/python/PythonBindingKind.d.ts +7 -0
  458. package/lib/adapters/python/PythonBindingKind.js +2 -0
  459. package/lib/adapters/python/PythonExportResolver.d.ts +146 -0
  460. package/lib/adapters/python/PythonExportResolver.js +408 -0
  461. package/lib/adapters/python/PythonFileScanner.d.ts +367 -0
  462. package/lib/adapters/python/PythonFileScanner.js +1019 -0
  463. package/lib/adapters/python/PythonResolutionMode.d.ts +7 -0
  464. package/lib/adapters/python/PythonResolutionMode.js +2 -0
  465. package/lib/adapters/python/PythonSyntax.d.ts +115 -0
  466. package/lib/adapters/python/PythonSyntax.js +298 -0
  467. package/lib/adapters/ruby/EvidenceRubyAdapter.d.ts +15 -0
  468. package/lib/adapters/ruby/EvidenceRubyAdapter.js +19 -0
  469. package/lib/adapters/ruby/IRubyConstantPath.d.ts +20 -0
  470. package/lib/adapters/ruby/IRubyConstantPath.js +2 -0
  471. package/lib/adapters/ruby/IRubyDeclaration.d.ts +105 -0
  472. package/lib/adapters/ruby/IRubyDeclaration.js +2 -0
  473. package/lib/adapters/ruby/IRubyDocumentation.d.ts +42 -0
  474. package/lib/adapters/ruby/IRubyDocumentation.js +2 -0
  475. package/lib/adapters/ruby/IRubyDocumentationAttachment.d.ts +20 -0
  476. package/lib/adapters/ruby/IRubyDocumentationAttachment.js +2 -0
  477. package/lib/adapters/ruby/IRubyFileAnalysis.d.ts +42 -0
  478. package/lib/adapters/ruby/IRubyFileAnalysis.js +2 -0
  479. package/lib/adapters/ruby/IRubyScopeContext.d.ts +48 -0
  480. package/lib/adapters/ruby/IRubyScopeContext.js +2 -0
  481. package/lib/adapters/ruby/RubyAdapter.d.ts +50 -0
  482. package/lib/adapters/ruby/RubyAdapter.js +724 -0
  483. package/lib/adapters/ruby/RubyAttributeMode.d.ts +7 -0
  484. package/lib/adapters/ruby/RubyAttributeMode.js +2 -0
  485. package/lib/adapters/ruby/RubyContainerKind.d.ts +7 -0
  486. package/lib/adapters/ruby/RubyContainerKind.js +2 -0
  487. package/lib/adapters/ruby/RubyDeclarationForm.d.ts +7 -0
  488. package/lib/adapters/ruby/RubyDeclarationForm.js +2 -0
  489. package/lib/adapters/ruby/RubyFileScanner.d.ts +332 -0
  490. package/lib/adapters/ruby/RubyFileScanner.js +990 -0
  491. package/lib/adapters/ruby/RubyMethodSide.d.ts +7 -0
  492. package/lib/adapters/ruby/RubyMethodSide.js +2 -0
  493. package/lib/adapters/ruby/RubyScopeKind.d.ts +7 -0
  494. package/lib/adapters/ruby/RubyScopeKind.js +2 -0
  495. package/lib/adapters/ruby/RubySyntax.d.ts +81 -0
  496. package/lib/adapters/ruby/RubySyntax.js +202 -0
  497. package/lib/adapters/ruby/RubyVisibility.d.ts +7 -0
  498. package/lib/adapters/ruby/RubyVisibility.js +2 -0
  499. package/lib/adapters/rust/EvidenceRustAdapter.d.ts +15 -0
  500. package/lib/adapters/rust/EvidenceRustAdapter.js +19 -0
  501. package/lib/adapters/rust/IRustDeclaration.d.ts +72 -0
  502. package/lib/adapters/rust/IRustDeclaration.js +2 -0
  503. package/lib/adapters/rust/IRustDocumentation.d.ts +41 -0
  504. package/lib/adapters/rust/IRustDocumentation.js +2 -0
  505. package/lib/adapters/rust/IRustDocumentationAttachment.d.ts +20 -0
  506. package/lib/adapters/rust/IRustDocumentationAttachment.js +2 -0
  507. package/lib/adapters/rust/IRustExportRecord.d.ts +28 -0
  508. package/lib/adapters/rust/IRustExportRecord.js +2 -0
  509. package/lib/adapters/rust/IRustExternalModule.d.ts +32 -0
  510. package/lib/adapters/rust/IRustExternalModule.js +2 -0
  511. package/lib/adapters/rust/IRustFileAnalysis.d.ts +66 -0
  512. package/lib/adapters/rust/IRustFileAnalysis.js +2 -0
  513. package/lib/adapters/rust/IRustFilePlacement.d.ts +35 -0
  514. package/lib/adapters/rust/IRustFilePlacement.js +2 -0
  515. package/lib/adapters/rust/IRustImplementation.d.ts +38 -0
  516. package/lib/adapters/rust/IRustImplementation.js +2 -0
  517. package/lib/adapters/rust/IRustLocatedDeclaration.d.ts +35 -0
  518. package/lib/adapters/rust/IRustLocatedDeclaration.js +2 -0
  519. package/lib/adapters/rust/IRustModuleRecord.d.ts +62 -0
  520. package/lib/adapters/rust/IRustModuleRecord.js +2 -0
  521. package/lib/adapters/rust/IRustPublicOccurrence.d.ts +35 -0
  522. package/lib/adapters/rust/IRustPublicOccurrence.js +2 -0
  523. package/lib/adapters/rust/IRustResolvedMember.d.ts +34 -0
  524. package/lib/adapters/rust/IRustResolvedMember.js +2 -0
  525. package/lib/adapters/rust/IRustUse.d.ts +33 -0
  526. package/lib/adapters/rust/IRustUse.js +2 -0
  527. package/lib/adapters/rust/IRustUseBinding.d.ts +26 -0
  528. package/lib/adapters/rust/IRustUseBinding.js +2 -0
  529. package/lib/adapters/rust/RustAdapter.d.ts +43 -0
  530. package/lib/adapters/rust/RustAdapter.js +503 -0
  531. package/lib/adapters/rust/RustDeclarationForm.d.ts +7 -0
  532. package/lib/adapters/rust/RustDeclarationForm.js +2 -0
  533. package/lib/adapters/rust/RustFileScanner.d.ts +61 -0
  534. package/lib/adapters/rust/RustFileScanner.js +550 -0
  535. package/lib/adapters/rust/RustModuleResolver.d.ts +70 -0
  536. package/lib/adapters/rust/RustModuleResolver.js +716 -0
  537. package/lib/adapters/rust/RustSyntax.d.ts +93 -0
  538. package/lib/adapters/rust/RustSyntax.js +244 -0
  539. package/lib/adapters/rust/RustVisibility.d.ts +7 -0
  540. package/lib/adapters/rust/RustVisibility.js +2 -0
  541. package/lib/adapters/scala/EvidenceScalaAdapter.d.ts +15 -0
  542. package/lib/adapters/scala/EvidenceScalaAdapter.js +19 -0
  543. package/lib/adapters/scala/IScalaDeclaration.d.ts +78 -0
  544. package/lib/adapters/scala/IScalaDeclaration.js +2 -0
  545. package/lib/adapters/scala/IScalaDocumentation.d.ts +35 -0
  546. package/lib/adapters/scala/IScalaDocumentation.js +2 -0
  547. package/lib/adapters/scala/IScalaDocumentationAttachment.d.ts +22 -0
  548. package/lib/adapters/scala/IScalaDocumentationAttachment.js +2 -0
  549. package/lib/adapters/scala/IScalaExport.d.ts +29 -0
  550. package/lib/adapters/scala/IScalaExport.js +2 -0
  551. package/lib/adapters/scala/IScalaFileAnalysis.d.ts +50 -0
  552. package/lib/adapters/scala/IScalaFileAnalysis.js +2 -0
  553. package/lib/adapters/scala/ScalaAdapter.d.ts +100 -0
  554. package/lib/adapters/scala/ScalaAdapter.js +638 -0
  555. package/lib/adapters/scala/ScalaDocumentation.d.ts +16 -0
  556. package/lib/adapters/scala/ScalaDocumentation.js +77 -0
  557. package/lib/adapters/scala/ScalaExports.d.ts +16 -0
  558. package/lib/adapters/scala/ScalaExports.js +136 -0
  559. package/lib/adapters/scala/ScalaFileScanner.d.ts +111 -0
  560. package/lib/adapters/scala/ScalaFileScanner.js +434 -0
  561. package/lib/adapters/sql/EvidenceSqlAdapter.d.ts +13 -0
  562. package/lib/adapters/sql/EvidenceSqlAdapter.js +28 -0
  563. package/lib/adapters/sql/ISqlAdapterOptions.d.ts +33 -0
  564. package/lib/adapters/sql/ISqlAdapterOptions.js +2 -0
  565. package/lib/adapters/sql/ISqlDeclaration.d.ts +67 -0
  566. package/lib/adapters/sql/ISqlDeclaration.js +2 -0
  567. package/lib/adapters/sql/ISqlDocumentation.d.ts +40 -0
  568. package/lib/adapters/sql/ISqlDocumentation.js +2 -0
  569. package/lib/adapters/sql/ISqlDocumentationAttachment.d.ts +18 -0
  570. package/lib/adapters/sql/ISqlDocumentationAttachment.js +2 -0
  571. package/lib/adapters/sql/ISqlFileAnalysis.d.ts +41 -0
  572. package/lib/adapters/sql/ISqlFileAnalysis.js +2 -0
  573. package/lib/adapters/sql/ISqlPolicy.d.ts +43 -0
  574. package/lib/adapters/sql/ISqlPolicy.js +2 -0
  575. package/lib/adapters/sql/SqlAdapter.d.ts +123 -0
  576. package/lib/adapters/sql/SqlAdapter.js +658 -0
  577. package/lib/adapters/sql/SqlDocumentation.d.ts +16 -0
  578. package/lib/adapters/sql/SqlDocumentation.js +91 -0
  579. package/lib/adapters/sql/SqlFileScanner.d.ts +86 -0
  580. package/lib/adapters/sql/SqlFileScanner.js +299 -0
  581. package/lib/adapters/sql/SqlPolicy.d.ts +20 -0
  582. package/lib/adapters/sql/SqlPolicy.js +111 -0
  583. package/lib/adapters/sqlite/EvidenceSqliteAdapter.d.ts +16 -0
  584. package/lib/adapters/sqlite/EvidenceSqliteAdapter.js +26 -0
  585. package/lib/adapters/sqlite/SqliteFileScanner.d.ts +83 -0
  586. package/lib/adapters/sqlite/SqliteFileScanner.js +285 -0
  587. package/lib/adapters/sqlite/SqliteSyntax.d.ts +26 -0
  588. package/lib/adapters/sqlite/SqliteSyntax.js +49 -0
  589. package/lib/adapters/swagger/EvidenceSwaggerAdapter.d.ts +55 -0
  590. package/lib/adapters/swagger/EvidenceSwaggerAdapter.js +489 -0
  591. package/lib/adapters/swagger/IRemoteSwaggerSource.d.ts +19 -0
  592. package/lib/adapters/swagger/IRemoteSwaggerSource.js +2 -0
  593. package/lib/adapters/swagger/ISwaggerCacheEntry.d.ts +18 -0
  594. package/lib/adapters/swagger/ISwaggerCacheEntry.js +2 -0
  595. package/lib/adapters/swagger/ISwaggerLoadResult.d.ts +13 -0
  596. package/lib/adapters/swagger/ISwaggerLoadResult.js +2 -0
  597. package/lib/adapters/swagger/ISwaggerOperation.d.ts +42 -0
  598. package/lib/adapters/swagger/ISwaggerOperation.js +2 -0
  599. package/lib/adapters/swagger/ISwaggerOperationLocation.d.ts +21 -0
  600. package/lib/adapters/swagger/ISwaggerOperationLocation.js +2 -0
  601. package/lib/adapters/swagger/IYamlScalarMapping.d.ts +36 -0
  602. package/lib/adapters/swagger/IYamlScalarMapping.js +2 -0
  603. package/lib/adapters/swagger/SwaggerDescription.d.ts +18 -0
  604. package/lib/adapters/swagger/SwaggerDescription.js +62 -0
  605. package/lib/adapters/swagger/SwaggerDocumentInput.d.ts +8 -0
  606. package/lib/adapters/swagger/SwaggerDocumentInput.js +2 -0
  607. package/lib/adapters/swagger/SwaggerDocumentLoader.d.ts +15 -0
  608. package/lib/adapters/swagger/SwaggerDocumentLoader.js +6962 -0
  609. package/lib/adapters/swagger/SwaggerRemoteReader.d.ts +26 -0
  610. package/lib/adapters/swagger/SwaggerRemoteReader.js +89 -0
  611. package/lib/adapters/swagger/SwaggerTarget.d.ts +14 -0
  612. package/lib/adapters/swagger/SwaggerTarget.js +29 -0
  613. package/lib/adapters/swagger/YamlScalarMapper.d.ts +11 -0
  614. package/lib/adapters/swagger/YamlScalarMapper.js +76 -0
  615. package/lib/adapters/swift/EvidenceSwiftAdapter.d.ts +15 -0
  616. package/lib/adapters/swift/EvidenceSwiftAdapter.js +19 -0
  617. package/lib/adapters/swift/ISwiftDeclaration.d.ts +91 -0
  618. package/lib/adapters/swift/ISwiftDeclaration.js +2 -0
  619. package/lib/adapters/swift/ISwiftDocumentation.d.ts +35 -0
  620. package/lib/adapters/swift/ISwiftDocumentation.js +2 -0
  621. package/lib/adapters/swift/ISwiftDocumentationAttachment.d.ts +22 -0
  622. package/lib/adapters/swift/ISwiftDocumentationAttachment.js +2 -0
  623. package/lib/adapters/swift/ISwiftFileAnalysis.d.ts +43 -0
  624. package/lib/adapters/swift/ISwiftFileAnalysis.js +2 -0
  625. package/lib/adapters/swift/SwiftAdapter.d.ts +108 -0
  626. package/lib/adapters/swift/SwiftAdapter.js +666 -0
  627. package/lib/adapters/swift/SwiftDocumentation.d.ts +16 -0
  628. package/lib/adapters/swift/SwiftDocumentation.js +75 -0
  629. package/lib/adapters/swift/SwiftFileScanner.d.ts +87 -0
  630. package/lib/adapters/swift/SwiftFileScanner.js +341 -0
  631. package/lib/adapters/swift/SwiftOwnership.d.ts +16 -0
  632. package/lib/adapters/swift/SwiftOwnership.js +141 -0
  633. package/lib/adapters/typescript/EvidenceTypeScriptAdapter.d.ts +29 -0
  634. package/lib/adapters/typescript/EvidenceTypeScriptAdapter.js +35 -0
  635. package/lib/adapters/zig/EvidenceZigAdapter.d.ts +16 -0
  636. package/lib/adapters/zig/EvidenceZigAdapter.js +20 -0
  637. package/lib/adapters/zig/IZigDeclaration.d.ts +73 -0
  638. package/lib/adapters/zig/IZigDeclaration.js +2 -0
  639. package/lib/adapters/zig/IZigDocumentation.d.ts +35 -0
  640. package/lib/adapters/zig/IZigDocumentation.js +2 -0
  641. package/lib/adapters/zig/IZigDocumentationAttachment.d.ts +21 -0
  642. package/lib/adapters/zig/IZigDocumentationAttachment.js +2 -0
  643. package/lib/adapters/zig/IZigFileAnalysis.d.ts +47 -0
  644. package/lib/adapters/zig/IZigFileAnalysis.js +2 -0
  645. package/lib/adapters/zig/ZigAdapter.d.ts +114 -0
  646. package/lib/adapters/zig/ZigAdapter.js +647 -0
  647. package/lib/adapters/zig/ZigDocumentation.d.ts +18 -0
  648. package/lib/adapters/zig/ZigDocumentation.js +80 -0
  649. package/lib/adapters/zig/ZigFileScanner.d.ts +125 -0
  650. package/lib/adapters/zig/ZigFileScanner.js +538 -0
  651. package/lib/commands/EvidenceCommand.d.ts +70 -0
  652. package/lib/commands/EvidenceCommand.js +722 -0
  653. package/lib/commands/EvidenceCommandError.d.ts +16 -0
  654. package/lib/commands/EvidenceCommandError.js +23 -0
  655. package/lib/commands/EvidenceWatcher.d.ts +134 -0
  656. package/lib/commands/EvidenceWatcher.js +500 -0
  657. package/lib/contexts/EvidenceQueryPopulationContext.d.ts +102 -0
  658. package/lib/contexts/EvidenceQueryPopulationContext.js +166 -0
  659. package/lib/contexts/IEvidenceCheckContext.d.ts +26 -0
  660. package/lib/contexts/IEvidenceCheckContext.js +2 -0
  661. package/lib/contexts/IEvidenceClaimContext.d.ts +48 -0
  662. package/lib/contexts/IEvidenceClaimContext.js +2 -0
  663. package/lib/contexts/IEvidenceGraphClaimContext.d.ts +40 -0
  664. package/lib/contexts/IEvidenceGraphClaimContext.js +2 -0
  665. package/lib/contexts/IEvidenceGraphReferenceContext.d.ts +65 -0
  666. package/lib/contexts/IEvidenceGraphReferenceContext.js +2 -0
  667. package/lib/contexts/IEvidenceQueryContext.d.ts +32 -0
  668. package/lib/contexts/IEvidenceQueryContext.js +2 -0
  669. package/lib/contexts/IEvidenceTagContext.d.ts +64 -0
  670. package/lib/contexts/IEvidenceTagContext.js +2 -0
  671. package/lib/executable/evidence.d.ts +2 -0
  672. package/lib/executable/evidence.js +14 -0
  673. package/lib/graph/EvidenceFingerprint.d.ts +27 -0
  674. package/lib/graph/EvidenceFingerprint.js +37 -0
  675. package/lib/graph/EvidenceGraph.d.ts +56 -0
  676. package/lib/graph/EvidenceGraph.js +1944 -0
  677. package/lib/graph/EvidenceInventory.d.ts +146 -0
  678. package/lib/graph/EvidenceInventory.js +1165 -0
  679. package/lib/graph/EvidenceQuery.d.ts +86 -0
  680. package/lib/graph/EvidenceQuery.js +109 -0
  681. package/lib/index.d.ts +110 -0
  682. package/lib/index.js +154 -0
  683. package/lib/internal/CanonicalJson.d.ts +20 -0
  684. package/lib/internal/CanonicalJson.js +67 -0
  685. package/lib/internal/ConfigDependencyScanner.d.ts +40 -0
  686. package/lib/internal/ConfigDependencyScanner.js +330 -0
  687. package/lib/internal/EvidenceAdapterFactory.d.ts +15 -0
  688. package/lib/internal/EvidenceAdapterFactory.js +104 -0
  689. package/lib/internal/EvidenceArtifactTypes.d.ts +20 -0
  690. package/lib/internal/EvidenceArtifactTypes.js +41 -0
  691. package/lib/internal/EvidenceConfigFormat.d.ts +11 -0
  692. package/lib/internal/EvidenceConfigFormat.js +24 -0
  693. package/lib/internal/EvidenceFingerprintIndex.d.ts +49 -0
  694. package/lib/internal/EvidenceFingerprintIndex.js +201 -0
  695. package/lib/internal/EvidenceTargetApplicability.d.ts +16 -0
  696. package/lib/internal/EvidenceTargetApplicability.js +144 -0
  697. package/lib/internal/EvidenceTargetBody.d.ts +21 -0
  698. package/lib/internal/EvidenceTargetBody.js +66 -0
  699. package/lib/internal/FileGlob.d.ts +24 -0
  700. package/lib/internal/FileGlob.js +148 -0
  701. package/lib/internal/IConfigDependencyScan.d.ts +25 -0
  702. package/lib/internal/IConfigDependencyScan.js +2 -0
  703. package/lib/internal/IConfigPackageScope.d.ts +16 -0
  704. package/lib/internal/IConfigPackageScope.js +2 -0
  705. package/lib/internal/IEvaluateTypeScriptConfigOptions.d.ts +16 -0
  706. package/lib/internal/IEvaluateTypeScriptConfigOptions.js +2 -0
  707. package/lib/internal/IEvidenceMaterializedClaim.d.ts +47 -0
  708. package/lib/internal/IEvidenceMaterializedClaim.js +2 -0
  709. package/lib/internal/IEvidenceMaterializedReference.d.ts +31 -0
  710. package/lib/internal/IEvidenceMaterializedReference.js +2 -0
  711. package/lib/internal/IEvidenceQueryPopulation.d.ts +43 -0
  712. package/lib/internal/IEvidenceQueryPopulation.js +2 -0
  713. package/lib/internal/IEvidenceResolvedAcknowledgement.d.ts +30 -0
  714. package/lib/internal/IEvidenceResolvedAcknowledgement.js +2 -0
  715. package/lib/internal/IEvidenceResolvedReview.d.ts +30 -0
  716. package/lib/internal/IEvidenceResolvedReview.js +2 -0
  717. package/lib/internal/IEvidenceTargetBody.d.ts +22 -0
  718. package/lib/internal/IEvidenceTargetBody.js +2 -0
  719. package/lib/internal/IEvidenceTargetCandidate.d.ts +23 -0
  720. package/lib/internal/IEvidenceTargetCandidate.js +2 -0
  721. package/lib/internal/IEvidenceUnhostedChecklist.d.ts +38 -0
  722. package/lib/internal/IEvidenceUnhostedChecklist.js +2 -0
  723. package/lib/internal/IEvidenceWatchAttempt.d.ts +39 -0
  724. package/lib/internal/IEvidenceWatchAttempt.js +2 -0
  725. package/lib/internal/IFileGlobPattern.d.ts +22 -0
  726. package/lib/internal/IFileGlobPattern.js +2 -0
  727. package/lib/internal/IPackageManifest.d.ts +16 -0
  728. package/lib/internal/IPackageManifest.js +2 -0
  729. package/lib/internal/IPendingEvidenceTag.d.ts +36 -0
  730. package/lib/internal/IPendingEvidenceTag.js +2 -0
  731. package/lib/internal/ITreeSitterAssetLock.d.ts +23 -0
  732. package/lib/internal/ITreeSitterAssetLock.js +2 -0
  733. package/lib/internal/ITreeSitterAssetOptions.d.ts +51 -0
  734. package/lib/internal/ITreeSitterAssetOptions.js +2 -0
  735. package/lib/internal/ITreeSitterAssetPending.d.ts +29 -0
  736. package/lib/internal/ITreeSitterAssetPending.js +2 -0
  737. package/lib/internal/ITtsxExecutables.d.ts +16 -0
  738. package/lib/internal/ITtsxExecutables.js +2 -0
  739. package/lib/internal/ITtsxManifest.d.ts +17 -0
  740. package/lib/internal/ITtsxManifest.js +2 -0
  741. package/lib/internal/InventoryMerge.d.ts +53 -0
  742. package/lib/internal/InventoryMerge.js +317 -0
  743. package/lib/internal/InventorySources.d.ts +16 -0
  744. package/lib/internal/InventorySources.js +77 -0
  745. package/lib/internal/ParserSlots.d.ts +79 -0
  746. package/lib/internal/ParserSlots.js +113 -0
  747. package/lib/internal/SourceCollector.d.ts +62 -0
  748. package/lib/internal/SourceCollector.js +301 -0
  749. package/lib/internal/SourceFailure.d.ts +17 -0
  750. package/lib/internal/SourceFailure.js +23 -0
  751. package/lib/internal/SourcePath.d.ts +43 -0
  752. package/lib/internal/SourcePath.js +93 -0
  753. package/lib/internal/SourceText.d.ts +40 -0
  754. package/lib/internal/SourceText.js +81 -0
  755. package/lib/internal/TreeSitterAssetCache.d.ts +35 -0
  756. package/lib/internal/TreeSitterAssetCache.js +456 -0
  757. package/lib/internal/TreeSitterAssetScope.d.ts +23 -0
  758. package/lib/internal/TreeSitterAssetScope.js +40 -0
  759. package/lib/internal/TreeSitterAssets.d.ts +67 -0
  760. package/lib/internal/TreeSitterAssets.js +367 -0
  761. package/lib/internal/TreeSitterRange.d.ts +17 -0
  762. package/lib/internal/TreeSitterRange.js +33 -0
  763. package/lib/internal/TreeSitterRuntime.d.ts +17 -0
  764. package/lib/internal/TreeSitterRuntime.js +57 -0
  765. package/lib/internal/WatchDependencySet.d.ts +31 -0
  766. package/lib/internal/WatchDependencySet.js +59 -0
  767. package/lib/internal/WatchDependencySnapshot.d.ts +38 -0
  768. package/lib/internal/WatchDependencySnapshot.js +191 -0
  769. package/lib/internal/createEvidenceConfigPlan.d.ts +10 -0
  770. package/lib/internal/createEvidenceConfigPlan.js +90 -0
  771. package/lib/internal/evaluateTypeScriptConfig.d.ts +9 -0
  772. package/lib/internal/evaluateTypeScriptConfig.js +341 -0
  773. package/lib/internal/parser-grammars.json +452 -0
  774. package/lib/internal/validateEvidenceConfig.d.ts +8 -0
  775. package/lib/internal/validateEvidenceConfig.js +154 -0
  776. package/lib/loaders/EvidenceConfigLoader.d.ts +36 -0
  777. package/lib/loaders/EvidenceConfigLoader.js +557 -0
  778. package/lib/loaders/EvidenceSourceLoader.d.ts +35 -0
  779. package/lib/loaders/EvidenceSourceLoader.js +50 -0
  780. package/lib/parsers/EvidenceDocumentation.d.ts +20 -0
  781. package/lib/parsers/EvidenceDocumentation.js +77 -0
  782. package/lib/parsers/EvidenceLanguageRegistry.d.ts +49 -0
  783. package/lib/parsers/EvidenceLanguageRegistry.js +652 -0
  784. package/lib/parsers/EvidenceParseSession.d.ts +141 -0
  785. package/lib/parsers/EvidenceParseSession.js +193 -0
  786. package/lib/parsers/EvidenceParser.d.ts +109 -0
  787. package/lib/parsers/EvidenceParser.js +307 -0
  788. package/lib/parsers/EvidenceParserError.d.ts +71 -0
  789. package/lib/parsers/EvidenceParserError.js +63 -0
  790. package/lib/parsers/EvidenceTagParser.d.ts +56 -0
  791. package/lib/parsers/EvidenceTagParser.js +81 -0
  792. package/lib/programmers/EvidenceCheckProgrammer.d.ts +36 -0
  793. package/lib/programmers/EvidenceCheckProgrammer.js +446 -0
  794. package/lib/programmers/EvidenceQueryProgrammer.d.ts +69 -0
  795. package/lib/programmers/EvidenceQueryProgrammer.js +970 -0
  796. package/lib/programmers/EvidenceTagProgrammer.d.ts +25 -0
  797. package/lib/programmers/EvidenceTagProgrammer.js +252 -0
  798. package/lib/reporters/EvidenceGraphReporter.d.ts +39 -0
  799. package/lib/reporters/EvidenceGraphReporter.js +193 -0
  800. package/lib/reporters/EvidenceQueryReporter.d.ts +33 -0
  801. package/lib/reporters/EvidenceQueryReporter.js +181 -0
  802. package/lib/reporters/EvidenceReporter.d.ts +33 -0
  803. package/lib/reporters/EvidenceReporter.js +117 -0
  804. package/lib/reporters/EvidenceWatchReporter.d.ts +31 -0
  805. package/lib/reporters/EvidenceWatchReporter.js +46 -0
  806. package/lib/structures/IEvidenceAdapter.d.ts +39 -0
  807. package/lib/structures/IEvidenceAdapter.js +2 -0
  808. package/lib/structures/IEvidenceAddress.d.ts +29 -0
  809. package/lib/structures/IEvidenceAddress.js +2 -0
  810. package/lib/structures/IEvidenceCheckAnalysis.d.ts +37 -0
  811. package/lib/structures/IEvidenceCheckAnalysis.js +2 -0
  812. package/lib/structures/IEvidenceCheckClaim.d.ts +48 -0
  813. package/lib/structures/IEvidenceCheckClaim.js +2 -0
  814. package/lib/structures/IEvidenceCheckCommand.d.ts +47 -0
  815. package/lib/structures/IEvidenceCheckCommand.js +2 -0
  816. package/lib/structures/IEvidenceCheckCounts.d.ts +70 -0
  817. package/lib/structures/IEvidenceCheckCounts.js +2 -0
  818. package/lib/structures/IEvidenceCheckObligation.d.ts +67 -0
  819. package/lib/structures/IEvidenceCheckObligation.js +2 -0
  820. package/lib/structures/IEvidenceCheckReport.d.ts +74 -0
  821. package/lib/structures/IEvidenceCheckReport.js +2 -0
  822. package/lib/structures/IEvidenceClaim.d.ts +12 -0
  823. package/lib/structures/IEvidenceClaim.js +2 -0
  824. package/lib/structures/IEvidenceClaimBase.d.ts +111 -0
  825. package/lib/structures/IEvidenceClaimBase.js +2 -0
  826. package/lib/structures/IEvidenceCommand.d.ts +16 -0
  827. package/lib/structures/IEvidenceCommand.js +2 -0
  828. package/lib/structures/IEvidenceCommandFailure.d.ts +58 -0
  829. package/lib/structures/IEvidenceCommandFailure.js +2 -0
  830. package/lib/structures/IEvidenceCommandResult.d.ts +31 -0
  831. package/lib/structures/IEvidenceCommandResult.js +2 -0
  832. package/lib/structures/IEvidenceCommentSyntax.d.ts +42 -0
  833. package/lib/structures/IEvidenceCommentSyntax.js +2 -0
  834. package/lib/structures/IEvidenceConfig.d.ts +42 -0
  835. package/lib/structures/IEvidenceConfig.js +2 -0
  836. package/lib/structures/IEvidenceConfigPlan.d.ts +29 -0
  837. package/lib/structures/IEvidenceConfigPlan.js +2 -0
  838. package/lib/structures/IEvidenceConfigPlanClaim.d.ts +49 -0
  839. package/lib/structures/IEvidenceConfigPlanClaim.js +2 -0
  840. package/lib/structures/IEvidenceConfigPlanReference.d.ts +40 -0
  841. package/lib/structures/IEvidenceConfigPlanReference.js +2 -0
  842. package/lib/structures/IEvidenceDatabaseClaim.d.ts +26 -0
  843. package/lib/structures/IEvidenceDatabaseClaim.js +2 -0
  844. package/lib/structures/IEvidenceDatabaseLanguage.d.ts +37 -0
  845. package/lib/structures/IEvidenceDatabaseLanguage.js +2 -0
  846. package/lib/structures/IEvidenceDatabaseLanguageAdapter.d.ts +48 -0
  847. package/lib/structures/IEvidenceDatabaseLanguageAdapter.js +2 -0
  848. package/lib/structures/IEvidenceDatabaseReference.d.ts +20 -0
  849. package/lib/structures/IEvidenceDatabaseReference.js +2 -0
  850. package/lib/structures/IEvidenceDeclaration.d.ts +37 -0
  851. package/lib/structures/IEvidenceDeclaration.js +2 -0
  852. package/lib/structures/IEvidenceDiagnostic.d.ts +66 -0
  853. package/lib/structures/IEvidenceDiagnostic.js +2 -0
  854. package/lib/structures/IEvidenceDocumentation.d.ts +51 -0
  855. package/lib/structures/IEvidenceDocumentation.js +2 -0
  856. package/lib/structures/IEvidenceDocumentedConfig.d.ts +20 -0
  857. package/lib/structures/IEvidenceDocumentedConfig.js +2 -0
  858. package/lib/structures/IEvidenceFingerprint.d.ts +49 -0
  859. package/lib/structures/IEvidenceFingerprint.js +2 -0
  860. package/lib/structures/IEvidenceGrammar.d.ts +47 -0
  861. package/lib/structures/IEvidenceGrammar.js +2 -0
  862. package/lib/structures/IEvidenceGrammarAsset.d.ts +37 -0
  863. package/lib/structures/IEvidenceGrammarAsset.js +2 -0
  864. package/lib/structures/IEvidenceGraphBoundary.d.ts +73 -0
  865. package/lib/structures/IEvidenceGraphBoundary.js +2 -0
  866. package/lib/structures/IEvidenceGraphClaim.d.ts +65 -0
  867. package/lib/structures/IEvidenceGraphClaim.js +2 -0
  868. package/lib/structures/IEvidenceGraphClaimResult.d.ts +36 -0
  869. package/lib/structures/IEvidenceGraphClaimResult.js +2 -0
  870. package/lib/structures/IEvidenceGraphCommand.d.ts +40 -0
  871. package/lib/structures/IEvidenceGraphCommand.js +2 -0
  872. package/lib/structures/IEvidenceGraphEdge.d.ts +56 -0
  873. package/lib/structures/IEvidenceGraphEdge.js +2 -0
  874. package/lib/structures/IEvidenceGraphExportEdge.d.ts +71 -0
  875. package/lib/structures/IEvidenceGraphExportEdge.js +2 -0
  876. package/lib/structures/IEvidenceGraphExportReview.d.ts +55 -0
  877. package/lib/structures/IEvidenceGraphExportReview.js +2 -0
  878. package/lib/structures/IEvidenceGraphHostCoverage.d.ts +36 -0
  879. package/lib/structures/IEvidenceGraphHostCoverage.js +2 -0
  880. package/lib/structures/IEvidenceGraphHostNode.d.ts +46 -0
  881. package/lib/structures/IEvidenceGraphHostNode.js +2 -0
  882. package/lib/structures/IEvidenceGraphInput.d.ts +24 -0
  883. package/lib/structures/IEvidenceGraphInput.js +2 -0
  884. package/lib/structures/IEvidenceGraphNode.d.ts +82 -0
  885. package/lib/structures/IEvidenceGraphNode.js +2 -0
  886. package/lib/structures/IEvidenceGraphObligation.d.ts +79 -0
  887. package/lib/structures/IEvidenceGraphObligation.js +2 -0
  888. package/lib/structures/IEvidenceGraphPolicy.d.ts +53 -0
  889. package/lib/structures/IEvidenceGraphPolicy.js +2 -0
  890. package/lib/structures/IEvidenceGraphReference.d.ts +95 -0
  891. package/lib/structures/IEvidenceGraphReference.js +2 -0
  892. package/lib/structures/IEvidenceGraphReport.d.ts +84 -0
  893. package/lib/structures/IEvidenceGraphReport.js +2 -0
  894. package/lib/structures/IEvidenceGraphResolution.d.ts +22 -0
  895. package/lib/structures/IEvidenceGraphResolution.js +2 -0
  896. package/lib/structures/IEvidenceGraphResult.d.ts +37 -0
  897. package/lib/structures/IEvidenceGraphResult.js +2 -0
  898. package/lib/structures/IEvidenceGraphReviewResolution.d.ts +23 -0
  899. package/lib/structures/IEvidenceGraphReviewResolution.js +2 -0
  900. package/lib/structures/IEvidenceHelpCommand.d.ts +14 -0
  901. package/lib/structures/IEvidenceHelpCommand.js +2 -0
  902. package/lib/structures/IEvidenceHost.d.ts +78 -0
  903. package/lib/structures/IEvidenceHost.js +2 -0
  904. package/lib/structures/IEvidenceInitCommand.d.ts +26 -0
  905. package/lib/structures/IEvidenceInitCommand.js +2 -0
  906. package/lib/structures/IEvidenceInspectCommand.d.ts +46 -0
  907. package/lib/structures/IEvidenceInspectCommand.js +2 -0
  908. package/lib/structures/IEvidenceInspectReport.d.ts +70 -0
  909. package/lib/structures/IEvidenceInspectReport.js +2 -0
  910. package/lib/structures/IEvidenceInspectedAcknowledgement.d.ts +60 -0
  911. package/lib/structures/IEvidenceInspectedAcknowledgement.js +2 -0
  912. package/lib/structures/IEvidenceInspectedObligation.d.ts +61 -0
  913. package/lib/structures/IEvidenceInspectedObligation.js +2 -0
  914. package/lib/structures/IEvidenceInspectedReview.d.ts +48 -0
  915. package/lib/structures/IEvidenceInspectedReview.js +2 -0
  916. package/lib/structures/IEvidenceInspectedUnit.d.ts +36 -0
  917. package/lib/structures/IEvidenceInspectedUnit.js +2 -0
  918. package/lib/structures/IEvidenceInspection.d.ts +73 -0
  919. package/lib/structures/IEvidenceInspection.js +2 -0
  920. package/lib/structures/IEvidenceInventory.d.ts +114 -0
  921. package/lib/structures/IEvidenceInventory.js +2 -0
  922. package/lib/structures/IEvidenceLanguage.d.ts +37 -0
  923. package/lib/structures/IEvidenceLanguage.js +2 -0
  924. package/lib/structures/IEvidenceLanguageAdapter.d.ts +49 -0
  925. package/lib/structures/IEvidenceLanguageAdapter.js +2 -0
  926. package/lib/structures/IEvidenceLanguageCandidate.d.ts +94 -0
  927. package/lib/structures/IEvidenceLanguageCandidate.js +2 -0
  928. package/lib/structures/IEvidenceLanguageGrammar.d.ts +29 -0
  929. package/lib/structures/IEvidenceLanguageGrammar.js +2 -0
  930. package/lib/structures/IEvidenceLanguagesCommand.d.ts +33 -0
  931. package/lib/structures/IEvidenceLanguagesCommand.js +2 -0
  932. package/lib/structures/IEvidenceLanguagesReport.d.ts +36 -0
  933. package/lib/structures/IEvidenceLanguagesReport.js +2 -0
  934. package/lib/structures/IEvidenceListCommand.d.ts +55 -0
  935. package/lib/structures/IEvidenceListCommand.js +2 -0
  936. package/lib/structures/IEvidenceListItem.d.ts +69 -0
  937. package/lib/structures/IEvidenceListItem.js +2 -0
  938. package/lib/structures/IEvidenceListReport.d.ts +82 -0
  939. package/lib/structures/IEvidenceListReport.js +2 -0
  940. package/lib/structures/IEvidenceMarkdownClaim.d.ts +19 -0
  941. package/lib/structures/IEvidenceMarkdownClaim.js +2 -0
  942. package/lib/structures/IEvidenceMarkdownReference.d.ts +48 -0
  943. package/lib/structures/IEvidenceMarkdownReference.js +2 -0
  944. package/lib/structures/IEvidenceParserInput.d.ts +31 -0
  945. package/lib/structures/IEvidenceParserInput.js +2 -0
  946. package/lib/structures/IEvidenceParserOptions.d.ts +19 -0
  947. package/lib/structures/IEvidenceParserOptions.js +2 -0
  948. package/lib/structures/IEvidenceParserState.d.ts +34 -0
  949. package/lib/structures/IEvidenceParserState.js +2 -0
  950. package/lib/structures/IEvidencePopulation.d.ts +63 -0
  951. package/lib/structures/IEvidencePopulation.js +2 -0
  952. package/lib/structures/IEvidenceProgrammingClaim.d.ts +28 -0
  953. package/lib/structures/IEvidenceProgrammingClaim.js +2 -0
  954. package/lib/structures/IEvidenceProgrammingReference.d.ts +20 -0
  955. package/lib/structures/IEvidenceProgrammingReference.js +2 -0
  956. package/lib/structures/IEvidencePublicAddress.d.ts +21 -0
  957. package/lib/structures/IEvidencePublicAddress.js +2 -0
  958. package/lib/structures/IEvidenceQueryScope.d.ts +41 -0
  959. package/lib/structures/IEvidenceQueryScope.js +2 -0
  960. package/lib/structures/IEvidenceReference.d.ts +12 -0
  961. package/lib/structures/IEvidenceReference.js +2 -0
  962. package/lib/structures/IEvidenceReferenceBase.d.ts +107 -0
  963. package/lib/structures/IEvidenceReferenceBase.js +2 -0
  964. package/lib/structures/IEvidenceResolution.d.ts +32 -0
  965. package/lib/structures/IEvidenceResolution.js +2 -0
  966. package/lib/structures/IEvidenceReview.d.ts +50 -0
  967. package/lib/structures/IEvidenceReview.js +2 -0
  968. package/lib/structures/IEvidenceSourceAddress.d.ts +39 -0
  969. package/lib/structures/IEvidenceSourceAddress.js +2 -0
  970. package/lib/structures/IEvidenceSourceDependency.d.ts +24 -0
  971. package/lib/structures/IEvidenceSourceDependency.js +2 -0
  972. package/lib/structures/IEvidenceSourceDiagnostic.d.ts +30 -0
  973. package/lib/structures/IEvidenceSourceDiagnostic.js +2 -0
  974. package/lib/structures/IEvidenceSourceFile.d.ts +50 -0
  975. package/lib/structures/IEvidenceSourceFile.js +2 -0
  976. package/lib/structures/IEvidenceSourceLocation.d.ts +23 -0
  977. package/lib/structures/IEvidenceSourceLocation.js +2 -0
  978. package/lib/structures/IEvidenceSourcePosition.d.ts +36 -0
  979. package/lib/structures/IEvidenceSourcePosition.js +2 -0
  980. package/lib/structures/IEvidenceSourceRange.d.ts +28 -0
  981. package/lib/structures/IEvidenceSourceRange.js +2 -0
  982. package/lib/structures/IEvidenceSourceRoot.d.ts +38 -0
  983. package/lib/structures/IEvidenceSourceRoot.js +2 -0
  984. package/lib/structures/IEvidenceSourceSelection.d.ts +23 -0
  985. package/lib/structures/IEvidenceSourceSelection.js +2 -0
  986. package/lib/structures/IEvidenceSourceSnapshot.d.ts +53 -0
  987. package/lib/structures/IEvidenceSourceSnapshot.js +2 -0
  988. package/lib/structures/IEvidenceSupportedDatabaseLanguage.d.ts +36 -0
  989. package/lib/structures/IEvidenceSupportedDatabaseLanguage.js +2 -0
  990. package/lib/structures/IEvidenceSupportedLanguage.d.ts +36 -0
  991. package/lib/structures/IEvidenceSupportedLanguage.js +2 -0
  992. package/lib/structures/IEvidenceSwaggerClaim.d.ts +17 -0
  993. package/lib/structures/IEvidenceSwaggerClaim.js +2 -0
  994. package/lib/structures/IEvidenceSwaggerReference.d.ts +23 -0
  995. package/lib/structures/IEvidenceSwaggerReference.js +2 -0
  996. package/lib/structures/IEvidenceTagParseResult.d.ts +37 -0
  997. package/lib/structures/IEvidenceTagParseResult.js +2 -0
  998. package/lib/structures/IEvidenceTargetResolution.d.ts +51 -0
  999. package/lib/structures/IEvidenceTargetResolution.js +2 -0
  1000. package/lib/structures/IEvidenceTargetStatement.d.ts +32 -0
  1001. package/lib/structures/IEvidenceTargetStatement.js +2 -0
  1002. package/lib/structures/IEvidenceUnit.d.ts +96 -0
  1003. package/lib/structures/IEvidenceUnit.js +2 -0
  1004. package/lib/structures/IEvidenceUnitSite.d.ts +44 -0
  1005. package/lib/structures/IEvidenceUnitSite.js +2 -0
  1006. package/lib/structures/IEvidenceVersionCommand.d.ts +14 -0
  1007. package/lib/structures/IEvidenceVersionCommand.js +2 -0
  1008. package/lib/structures/IEvidenceWatchCheckCycle.d.ts +60 -0
  1009. package/lib/structures/IEvidenceWatchCheckCycle.js +2 -0
  1010. package/lib/structures/IEvidenceWatchFailureCycle.d.ts +70 -0
  1011. package/lib/structures/IEvidenceWatchFailureCycle.js +2 -0
  1012. package/lib/structures/IEvidenceWatchOptions.d.ts +37 -0
  1013. package/lib/structures/IEvidenceWatchOptions.js +2 -0
  1014. package/lib/structures/IEvidenceWithdrawal.d.ts +24 -0
  1015. package/lib/structures/IEvidenceWithdrawal.js +2 -0
  1016. package/lib/structures/index.d.ts +105 -0
  1017. package/lib/structures/index.js +2 -0
  1018. package/lib/targets/EvidenceAccessor.d.ts +31 -0
  1019. package/lib/targets/EvidenceAccessor.js +165 -0
  1020. package/lib/targets/EvidenceFileTarget.d.ts +41 -0
  1021. package/lib/targets/EvidenceFileTarget.js +122 -0
  1022. package/lib/targets/EvidenceTargetResolver.d.ts +174 -0
  1023. package/lib/targets/EvidenceTargetResolver.js +403 -0
  1024. package/lib/typings/EvidenceAcknowledgementKind.d.ts +7 -0
  1025. package/lib/typings/EvidenceAcknowledgementKind.js +2 -0
  1026. package/lib/typings/EvidenceActiveSeverity.d.ts +7 -0
  1027. package/lib/typings/EvidenceActiveSeverity.js +2 -0
  1028. package/lib/typings/EvidenceArtifactType.d.ts +10 -0
  1029. package/lib/typings/EvidenceArtifactType.js +2 -0
  1030. package/lib/typings/EvidenceCheckStatus.d.ts +8 -0
  1031. package/lib/typings/EvidenceCheckStatus.js +2 -0
  1032. package/lib/typings/EvidenceCommandExitCode.d.ts +8 -0
  1033. package/lib/typings/EvidenceCommandExitCode.js +2 -0
  1034. package/lib/typings/EvidenceDatabaseSymbol.d.ts +24 -0
  1035. package/lib/typings/EvidenceDatabaseSymbol.js +2 -0
  1036. package/lib/typings/EvidenceDatabaseType.d.ts +7 -0
  1037. package/lib/typings/EvidenceDatabaseType.js +2 -0
  1038. package/lib/typings/EvidenceGrammarWasmAvailability.d.ts +7 -0
  1039. package/lib/typings/EvidenceGrammarWasmAvailability.js +2 -0
  1040. package/lib/typings/EvidenceGraphFormat.d.ts +7 -0
  1041. package/lib/typings/EvidenceGraphFormat.js +2 -0
  1042. package/lib/typings/EvidenceGraphNode.d.ts +10 -0
  1043. package/lib/typings/EvidenceGraphNode.js +2 -0
  1044. package/lib/typings/EvidenceLanguageCandidateId.d.ts +7 -0
  1045. package/lib/typings/EvidenceLanguageCandidateId.js +2 -0
  1046. package/lib/typings/EvidenceLanguageCandidateKind.d.ts +7 -0
  1047. package/lib/typings/EvidenceLanguageCandidateKind.js +2 -0
  1048. package/lib/typings/EvidenceMarkdownSymbol.d.ts +22 -0
  1049. package/lib/typings/EvidenceMarkdownSymbol.js +2 -0
  1050. package/lib/typings/EvidenceParserErrorCode.d.ts +8 -0
  1051. package/lib/typings/EvidenceParserErrorCode.js +2 -0
  1052. package/lib/typings/EvidencePopulationRole.d.ts +7 -0
  1053. package/lib/typings/EvidencePopulationRole.js +2 -0
  1054. package/lib/typings/EvidenceProgrammingSymbol.d.ts +58 -0
  1055. package/lib/typings/EvidenceProgrammingSymbol.js +2 -0
  1056. package/lib/typings/EvidenceProgrammingType.d.ts +7 -0
  1057. package/lib/typings/EvidenceProgrammingType.js +2 -0
  1058. package/lib/typings/EvidenceQueryReport.d.ts +10 -0
  1059. package/lib/typings/EvidenceQueryReport.js +2 -0
  1060. package/lib/typings/EvidenceReportFormat.d.ts +7 -0
  1061. package/lib/typings/EvidenceReportFormat.js +2 -0
  1062. package/lib/typings/EvidenceSeverity.d.ts +7 -0
  1063. package/lib/typings/EvidenceSeverity.js +2 -0
  1064. package/lib/typings/EvidenceSymbol.d.ts +11 -0
  1065. package/lib/typings/EvidenceSymbol.js +2 -0
  1066. package/lib/typings/EvidenceTargetResolutionStatus.d.ts +8 -0
  1067. package/lib/typings/EvidenceTargetResolutionStatus.js +2 -0
  1068. package/lib/typings/EvidenceUnitSelection.d.ts +7 -0
  1069. package/lib/typings/EvidenceUnitSelection.js +2 -0
  1070. package/lib/typings/EvidenceWatchCycle.d.ts +9 -0
  1071. package/lib/typings/EvidenceWatchCycle.js +2 -0
  1072. package/lib/typings/EvidenceWatchPublisher.d.ts +8 -0
  1073. package/lib/typings/EvidenceWatchPublisher.js +2 -0
  1074. package/lib/typings/index.d.ts +25 -0
  1075. package/lib/typings/index.js +2 -0
  1076. package/package.json +66 -0
@@ -0,0 +1,990 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RubyFileScanner = void 0;
4
+ const EvidenceDocumentation_1 = require("../../parsers/EvidenceDocumentation");
5
+ const RubySyntax_1 = require("./RubySyntax");
6
+ const SourceText_1 = require("../../internal/SourceText");
7
+ /**
8
+ * Extracts bounded Ruby declarations, visibility changes, and documentation carriers.
9
+ *
10
+ * The scanner follows Ruby's ordered class and module directives while retaining
11
+ * declaration records for later inventory assembly and documentation attachment.
12
+ */
13
+ class RubyFileScanner {
14
+ session;
15
+ source;
16
+ /**
17
+ * Collects declarations in source order for visibility and alias resolution.
18
+ *
19
+ * Ruby directives can alter only prior declarations, so this list preserves
20
+ * the order required to reject ambiguous or forward targets.
21
+ */
22
+ declarations = [];
23
+ /**
24
+ * Stores recognized documentation carriers by their source-range identity.
25
+ *
26
+ * Attachments are accumulated while declarations are scanned and later become
27
+ * evidence documentation mappings.
28
+ */
29
+ documentation = new Map();
30
+ /**
31
+ * Collects failures that make static Ruby surface extraction incomplete.
32
+ *
33
+ * The adapter emits these records instead of silently omitting dynamic forms.
34
+ */
35
+ diagnostics = [];
36
+ /**
37
+ * Deduplicates diagnostics encountered through overlapping syntax traversals.
38
+ *
39
+ * One unsupported directive should retain one actionable source location.
40
+ */
41
+ reported = new Set();
42
+ /**
43
+ * Remembers explicit constant visibility by lexical identity.
44
+ *
45
+ * Later declarations of the same constant inherit the most recent supported
46
+ * visibility directive in their selected source context.
47
+ */
48
+ constantVisibility = new Map();
49
+ /**
50
+ * Converts parser offsets to source ranges that survive parser cleanup.
51
+ *
52
+ * Declaration sites and attached documentation both use this one source view.
53
+ */
54
+ text;
55
+ /**
56
+ * States whether all surface-affecting Ruby constructs were classified.
57
+ *
58
+ * Unsupported dynamic behavior marks the file incomplete to protect coverage
59
+ * from a falsely reduced public population.
60
+ */
61
+ complete = true;
62
+ /**
63
+ * Supplies unique declaration-record suffixes within this source file.
64
+ *
65
+ * Synthetic aliases and module-function copies require identities distinct
66
+ * from the source declaration they derive from.
67
+ */
68
+ serial = 0;
69
+ /**
70
+ * Binds this scanner to the current parser session and selected Ruby source.
71
+ *
72
+ * Documentation is collected before declarations so adjacent comments are
73
+ * available when a site is emitted.
74
+ */
75
+ constructor(session, source) {
76
+ this.session = session;
77
+ this.source = source;
78
+ this.text = new SourceText_1.SourceText(source.content);
79
+ this.collectDocumentation();
80
+ this.collectLiteralAnnotations();
81
+ }
82
+ /**
83
+ * Produces the serializable extraction result for one Ruby source file.
84
+ *
85
+ * The root body is traversed with top-level scope state after documentation
86
+ * collection, preserving ordered visibility and attachment behavior.
87
+ */
88
+ scan() {
89
+ const root = {
90
+ kind: "top",
91
+ identity: [],
92
+ side: "instance",
93
+ visibility: "private",
94
+ moduleFunction: false,
95
+ };
96
+ this.scanBody(this.session.root, root);
97
+ return {
98
+ source: this.source,
99
+ declarations: this.declarations,
100
+ documentation: Array.from(this.documentation.values()),
101
+ diagnostics: this.diagnostics,
102
+ complete: this.complete,
103
+ };
104
+ }
105
+ /**
106
+ * Scans statements in one Ruby lexical body.
107
+ *
108
+ * Context carries ordered visibility and owner state into each statement.
109
+ */
110
+ scanBody(body, context) {
111
+ for (const statement of body.namedChildren)
112
+ this.scanStatement(statement, context);
113
+ }
114
+ /**
115
+ * Dispatches one statement to the supported Ruby surface classifier.
116
+ *
117
+ * Unrecognized nested surface changes are preserved as incomplete diagnostics.
118
+ */
119
+ scanStatement(statement, context) {
120
+ switch (statement.type) {
121
+ case "comment":
122
+ case "heredoc_body":
123
+ case "empty_statement":
124
+ return;
125
+ case "class":
126
+ this.scanContainer(statement, context, "class");
127
+ return;
128
+ case "module":
129
+ this.scanContainer(statement, context, "module");
130
+ return;
131
+ case "singleton_class":
132
+ this.scanSingletonClass(statement, context);
133
+ return;
134
+ case "method":
135
+ this.scanMethod(statement, statement, context);
136
+ return;
137
+ case "singleton_method":
138
+ this.scanSingletonMethod(statement, statement, context);
139
+ return;
140
+ case "assignment":
141
+ this.scanAssignment(statement, context);
142
+ return;
143
+ case "alias":
144
+ this.scanAlias(statement, statement, context);
145
+ return;
146
+ case "undef":
147
+ if (context.kind !== "top")
148
+ this.problem("ruby-method-removal", "Ruby undef removes methods from the selected declared surface.", "Replace the removal with an explicit final declaration or add load-order-aware analysis.", statement);
149
+ return;
150
+ case "identifier":
151
+ this.scanBareDirective(statement, context);
152
+ return;
153
+ case "call":
154
+ this.scanCall(statement, context);
155
+ return;
156
+ default:
157
+ if (this.containsSurfaceChange(statement))
158
+ this.problem("ruby-conditional-surface", `Ruby '${statement.type}' conditionally changes the selected public surface.`, "Move declarations and public-surface macros into an unconditional class or module body, or add control-flow analysis.", statement);
159
+ }
160
+ }
161
+ /**
162
+ * Extracts a class or module and traverses its owned lexical body.
163
+ *
164
+ * Owner identity and visibility state are derived before child declarations.
165
+ */
166
+ scanContainer(statement, context, kind) {
167
+ if (context.kind === "singleton") {
168
+ this.problem("ruby-singleton-constant", "A class or module declaration inside a singleton class has unsupported constant ownership.", "Declare the constant in an ordinary class or module body.", statement);
169
+ return;
170
+ }
171
+ const path = RubySyntax_1.RubySyntax.constantPath(statement.childForFieldName("name"));
172
+ if (path === undefined) {
173
+ this.problem("ruby-container-name", `A Ruby ${kind} has no statically readable constant path.`, "Use a named constant or constant path for the declaration.", statement);
174
+ return;
175
+ }
176
+ const identity = this.resolvePath(path, context);
177
+ const visibility = this.constantVisibility.get(this.identityKey(identity)) ?? "public";
178
+ this.addDeclaration(statement, statement, "type", kind, identity.at(-1) ?? "", identity.at(-1) ?? "", identity, identity, visibility, true, identity.slice(0, -1), [this.session.range(statement)], undefined, undefined, kind, kind === "class" ? RubySyntax_1.RubySyntax.superclass(statement) : undefined);
179
+ const body = statement.childForFieldName("body");
180
+ if (body === null)
181
+ return;
182
+ const nested = {
183
+ kind,
184
+ identity,
185
+ side: "instance",
186
+ visibility: "public",
187
+ moduleFunction: false,
188
+ containerKind: kind,
189
+ };
190
+ this.scanBody(body, nested);
191
+ }
192
+ /**
193
+ * Extracts a singleton-class scope with singleton member ownership.
194
+ *
195
+ * Unsupported singleton owners are reported because their address is dynamic.
196
+ */
197
+ scanSingletonClass(statement, context) {
198
+ if (context.kind === "singleton") {
199
+ this.problem("ruby-nested-singleton", "A singleton class opened from another singleton class targets an unsupported eigenclass level.", "Declare class or module singleton methods directly with def self.name.", statement);
200
+ return;
201
+ }
202
+ const value = statement.childForFieldName("value");
203
+ const identity = value?.type === "self" && context.kind !== "top"
204
+ ? context.identity
205
+ : this.resolveOptionalPath(RubySyntax_1.RubySyntax.constantPath(value), context);
206
+ if (identity === undefined || identity.length === 0) {
207
+ if (this.containsSurfaceChange(statement))
208
+ this.problem("ruby-singleton-owner", "A singleton class with public declarations has no statically selected constant owner.", "Open class << self inside a supported class or module, or use a literal constant path.", statement);
209
+ return;
210
+ }
211
+ const body = statement.childForFieldName("body");
212
+ if (body === null)
213
+ return;
214
+ const singleton = {
215
+ kind: "singleton",
216
+ identity,
217
+ side: "singleton",
218
+ visibility: "public",
219
+ moduleFunction: false,
220
+ ...(context.containerKind === undefined
221
+ ? {}
222
+ : { containerKind: context.containerKind }),
223
+ };
224
+ this.scanBody(body, singleton);
225
+ }
226
+ /**
227
+ * Extracts an instance method under the current Ruby scope.
228
+ *
229
+ * Scope visibility and module-function state determine its published form.
230
+ */
231
+ scanMethod(method, wrapper, context, forcedVisibility, forcedModuleFunction = false) {
232
+ if (context.kind === "top")
233
+ return;
234
+ const name = RubySyntax_1.RubySyntax.methodName(method.childForFieldName("name"));
235
+ if (name === undefined) {
236
+ this.problem("ruby-method-name", "A Ruby method has no statically readable name.", "Use an identifier, setter, or operator method name.", method);
237
+ return;
238
+ }
239
+ const moduleFunction = context.kind === "module" &&
240
+ context.side === "instance" &&
241
+ (forcedModuleFunction || context.moduleFunction);
242
+ const visibility = moduleFunction
243
+ ? "private"
244
+ : (forcedVisibility ??
245
+ (name === "initialize" ? "private" : context.visibility));
246
+ const declaration = this.addMethod(method, wrapper, context, name, visibility, context.side === "singleton" ? "singleton-method" : "method");
247
+ if (moduleFunction)
248
+ this.cloneModuleFunction(declaration);
249
+ }
250
+ /**
251
+ * Extracts a statically named singleton method.
252
+ *
253
+ * The receiver must resolve to the current selected owner.
254
+ */
255
+ scanSingletonMethod(method, wrapper, context, forcedVisibility) {
256
+ if (context.kind === "singleton") {
257
+ this.problem("ruby-nested-singleton", "def self.name inside a singleton class targets an unsupported eigenclass level.", "Use an ordinary def name inside class << self.", method);
258
+ return;
259
+ }
260
+ const object = method.childForFieldName("object");
261
+ const identity = object?.type === "self" && context.kind !== "top"
262
+ ? context.identity
263
+ : this.resolveOptionalPath(RubySyntax_1.RubySyntax.constantPath(object), context);
264
+ if (identity === undefined || identity.length === 0) {
265
+ if (context.kind !== "top" || object?.type !== "self")
266
+ this.problem("ruby-singleton-owner", "A singleton method has no statically selected class or module owner.", "Use def self.name inside a supported class or module, or use a literal constant path.", method);
267
+ return;
268
+ }
269
+ const name = RubySyntax_1.RubySyntax.methodName(method.childForFieldName("name"));
270
+ if (name === undefined) {
271
+ this.problem("ruby-method-name", "A Ruby singleton method has no statically readable name.", "Use an identifier, setter, or operator method name.", method);
272
+ return;
273
+ }
274
+ const owner = {
275
+ kind: "singleton",
276
+ identity,
277
+ side: "singleton",
278
+ visibility: forcedVisibility ?? "public",
279
+ moduleFunction: false,
280
+ ...(context.containerKind === undefined
281
+ ? {}
282
+ : { containerKind: context.containerKind }),
283
+ };
284
+ this.addMethod(method, wrapper, owner, name, forcedVisibility ?? "public", "singleton-method");
285
+ }
286
+ /**
287
+ * Adds a method declaration with its semantic and runtime names.
288
+ *
289
+ * The method centralizes site construction for ordinary and synthetic forms.
290
+ */
291
+ addMethod(method, wrapper, context, name, visibility, form) {
292
+ const address = this.memberAddress(context.identity, context.side, name);
293
+ return this.addDeclaration(method, wrapper, "function", form, name, name, address, address, visibility, true, context.identity, [this.session.range(method)], context.side, undefined, context.containerKind);
294
+ }
295
+ /**
296
+ * Extracts supported constant assignments from the current scope.
297
+ *
298
+ * Dynamic targets are failures because they cannot supply stable addresses.
299
+ */
300
+ scanAssignment(statement, context) {
301
+ const left = statement.childForFieldName("left");
302
+ const path = RubySyntax_1.RubySyntax.constantPath(left);
303
+ if (path === undefined) {
304
+ if (left !== null &&
305
+ left.descendantsOfType("constant").length !== 0 &&
306
+ context.kind !== "singleton")
307
+ this.problem("ruby-constant-assignment", "A compound Ruby assignment contains constants that cannot be separated safely.", "Declare each public constant with one direct assignment.", statement);
308
+ return;
309
+ }
310
+ if (context.kind === "singleton") {
311
+ this.problem("ruby-singleton-constant", "A constant assignment inside a singleton class has unsupported ownership.", "Declare the constant in an ordinary class or module body.", statement);
312
+ return;
313
+ }
314
+ const identity = this.resolvePath(path, context);
315
+ const visibility = this.constantVisibility.get(this.identityKey(identity)) ?? "public";
316
+ this.addDeclaration(statement, statement, "property", "constant", identity.at(-1) ?? "", identity.at(-1) ?? "", identity, identity, visibility, true, identity.slice(0, -1), [this.session.range(statement)], undefined, undefined, context.containerKind);
317
+ if (RubySyntax_1.RubySyntax.generatedConstant(statement.childForFieldName("right")))
318
+ this.problem("ruby-generated-constant", `Ruby constant '${identity.join("::")}' receives a runtime-generated class or module.`, "Use an explicit class or module declaration, or add generator-aware analysis for its members.", statement);
319
+ }
320
+ /**
321
+ * Dispatches a Ruby call that may alter the declared surface.
322
+ *
323
+ * Only known static directives are interpreted; the rest preserve boundaries.
324
+ */
325
+ scanCall(call, context) {
326
+ const name = RubySyntax_1.RubySyntax.callName(call);
327
+ if (name === undefined)
328
+ return;
329
+ if (!RubySyntax_1.RubySyntax.hasReceiver(call)) {
330
+ if (name === "public" || name === "private" || name === "protected") {
331
+ this.scanVisibilityCall(call, context, name);
332
+ return;
333
+ }
334
+ if (name === "public_class_method" || name === "private_class_method") {
335
+ this.scanClassVisibilityCall(call, context, name === "public_class_method" ? "public" : "private");
336
+ return;
337
+ }
338
+ if (name === "public_constant" || name === "private_constant") {
339
+ this.scanConstantVisibilityCall(call, context, name === "public_constant" ? "public" : "private");
340
+ return;
341
+ }
342
+ if (name === "attr_reader" ||
343
+ name === "attr_writer" ||
344
+ name === "attr_accessor") {
345
+ this.scanAttribute(call, call, context);
346
+ return;
347
+ }
348
+ if (name === "alias_method") {
349
+ this.scanAliasCall(call, context);
350
+ return;
351
+ }
352
+ if (name === "module_function") {
353
+ this.scanModuleFunction(call, context);
354
+ return;
355
+ }
356
+ }
357
+ if (this.surfaceCall(name))
358
+ this.problem("ruby-dynamic-surface", `Ruby call '${name}' can change the public surface without a statically complete declaration.`, "Replace it with explicit declarations or add a bounded adapter rule for this metaprogramming form.", call);
359
+ }
360
+ /**
361
+ * Handles a directive written without an explicit receiver.
362
+ *
363
+ * Such calls inherit the current lexical scope and visibility state.
364
+ */
365
+ scanBareDirective(statement, context) {
366
+ const name = statement.text;
367
+ if (name === "public" || name === "private" || name === "protected") {
368
+ context.visibility = name;
369
+ context.moduleFunction = false;
370
+ }
371
+ else if (name === "module_function") {
372
+ if (context.kind !== "module" || context.side !== "instance")
373
+ this.problem("ruby-module-function-owner", "module_function is only supported in an ordinary module body.", "Move the directive into a module or declare singleton methods explicitly.", statement);
374
+ else {
375
+ context.visibility = "private";
376
+ context.moduleFunction = true;
377
+ }
378
+ }
379
+ }
380
+ /**
381
+ * Applies a supported method-visibility directive in the current scope.
382
+ *
383
+ * Literal targets update prior selected declarations in Ruby source order.
384
+ */
385
+ scanVisibilityCall(call, context, visibility) {
386
+ const arguments_ = RubySyntax_1.RubySyntax.callArguments(call);
387
+ const wrapped = arguments_[0];
388
+ if (arguments_.length === 1 && wrapped !== undefined) {
389
+ if (wrapped.type === "method") {
390
+ this.scanMethod(wrapped, call, context, visibility);
391
+ return;
392
+ }
393
+ if (wrapped.type === "singleton_method") {
394
+ this.scanSingletonMethod(wrapped, call, context);
395
+ const name = RubySyntax_1.RubySyntax.methodName(wrapped.childForFieldName("name"));
396
+ if (name !== undefined)
397
+ this.changeMethodVisibility(context.identity, context.kind === "singleton" ? "singleton" : "instance", name, visibility, call);
398
+ return;
399
+ }
400
+ if (wrapped.type === "call" &&
401
+ ["attr_reader", "attr_writer", "attr_accessor"].includes(RubySyntax_1.RubySyntax.callName(wrapped) ?? "")) {
402
+ this.scanAttribute(wrapped, call, context, visibility);
403
+ return;
404
+ }
405
+ }
406
+ if (arguments_.length === 0) {
407
+ context.visibility = visibility;
408
+ context.moduleFunction = false;
409
+ return;
410
+ }
411
+ const names = RubySyntax_1.RubySyntax.literalNames(arguments_);
412
+ if (names === undefined || names.length === 0) {
413
+ this.dynamicDirective(call, "method visibility");
414
+ return;
415
+ }
416
+ const side = context.kind === "singleton" ? "singleton" : "instance";
417
+ for (const name of names)
418
+ this.changeMethodVisibility(context.identity, side, name, visibility, call);
419
+ }
420
+ /**
421
+ * Applies a class-method visibility directive to singleton members.
422
+ *
423
+ * Dynamic names are rejected because the selected member cannot be identified.
424
+ */
425
+ scanClassVisibilityCall(call, context, visibility) {
426
+ if (context.kind !== "class" && context.kind !== "module") {
427
+ this.problem("ruby-class-visibility-owner", "Class-method visibility is only supported in an ordinary class or module body.", "Use private or public inside class << self, or move the directive into the owning class or module body.", call);
428
+ return;
429
+ }
430
+ const arguments_ = RubySyntax_1.RubySyntax.callArguments(call);
431
+ const wrapped = arguments_[0];
432
+ if (arguments_.length === 1 && wrapped?.type === "singleton_method") {
433
+ this.scanSingletonMethod(wrapped, call, context, visibility);
434
+ return;
435
+ }
436
+ const names = RubySyntax_1.RubySyntax.literalNames(arguments_);
437
+ if (names === undefined || names.length === 0) {
438
+ this.dynamicDirective(call, "class-method visibility");
439
+ return;
440
+ }
441
+ for (const name of names)
442
+ this.changeMethodVisibility(context.identity, "singleton", name, visibility, call);
443
+ }
444
+ /**
445
+ * Applies a constant-visibility directive to selected constants.
446
+ *
447
+ * Visibility is retained for both prior records and later same-name declarations.
448
+ */
449
+ scanConstantVisibilityCall(call, context, visibility) {
450
+ if (context.kind === "singleton") {
451
+ this.dynamicDirective(call, "constant visibility");
452
+ return;
453
+ }
454
+ const names = RubySyntax_1.RubySyntax.literalNames(RubySyntax_1.RubySyntax.callArguments(call));
455
+ if (names === undefined ||
456
+ names.length === 0 ||
457
+ names.some((name) => !/^[A-Z][A-Za-z0-9_]*$/u.test(name))) {
458
+ this.dynamicDirective(call, "constant visibility");
459
+ return;
460
+ }
461
+ for (const name of names)
462
+ this.changeConstantVisibility([...context.identity, name], visibility, call);
463
+ }
464
+ /**
465
+ * Expands a static Ruby attribute directive into property declarations.
466
+ *
467
+ * Reader and writer modes retain their runtime spelling and scope visibility;
468
+ * dynamic attribute names leave the scan incomplete.
469
+ */
470
+ scanAttribute(call, wrapper, context, forcedVisibility) {
471
+ if (context.kind === "top")
472
+ return;
473
+ const callName = RubySyntax_1.RubySyntax.callName(call);
474
+ if (callName !== "attr_reader" &&
475
+ callName !== "attr_writer" &&
476
+ callName !== "attr_accessor")
477
+ return;
478
+ const arguments_ = RubySyntax_1.RubySyntax.callArguments(call);
479
+ const names = arguments_.map((argument) => RubySyntax_1.RubySyntax.literalName(argument));
480
+ if (names.length === 0 ||
481
+ names.some((name) => name === undefined || name.length === 0)) {
482
+ this.problem("ruby-dynamic-attribute", `Ruby ${callName} contains a nonliteral attribute name.`, "Use literal symbol or string names in attr_reader, attr_writer, or attr_accessor.", call);
483
+ return;
484
+ }
485
+ if (context.kind === "module" && context.moduleFunction)
486
+ this.problem("ruby-module-function-attribute", "An attribute declaration under module_function mode has unsupported copy semantics.", "Declare explicit instance and singleton accessors, or reset visibility before the attribute declaration.", call);
487
+ const visibility = forcedVisibility ?? context.visibility;
488
+ const modes = callName === "attr_reader"
489
+ ? ["read"]
490
+ : callName === "attr_writer"
491
+ ? ["write"]
492
+ : ["read", "write"];
493
+ const method = call.childForFieldName("method");
494
+ for (let index = 0; index < arguments_.length; ++index) {
495
+ const argument = arguments_[index];
496
+ const name = names[index];
497
+ if (argument === undefined || name === undefined)
498
+ continue;
499
+ for (const mode of modes) {
500
+ const runtimeName = mode === "write" ? `${name}=` : name;
501
+ const address = this.memberAddress(context.identity, context.side, name);
502
+ this.addDeclaration(argument, wrapper, "property", "attribute", name, runtimeName, address, address, visibility, true, context.identity, [
503
+ ...(method === null ? [] : [this.session.range(method)]),
504
+ this.session.range(argument),
505
+ ], context.side, mode, context.containerKind);
506
+ }
507
+ }
508
+ }
509
+ /**
510
+ * Resolves an `alias` statement against a preceding selected method.
511
+ *
512
+ * Ruby alias names must be literal so the new public address is stable.
513
+ */
514
+ scanAlias(statement, wrapper, context) {
515
+ if (context.kind === "top")
516
+ return;
517
+ const name = RubySyntax_1.RubySyntax.methodName(statement.childForFieldName("name"));
518
+ const target = RubySyntax_1.RubySyntax.methodName(statement.childForFieldName("alias"));
519
+ if (name === undefined || target === undefined) {
520
+ this.problem("ruby-alias-name", "A Ruby alias has a name that cannot be resolved statically.", "Use literal method names in the alias statement.", statement);
521
+ return;
522
+ }
523
+ this.addAlias(statement, wrapper, context, name, target);
524
+ }
525
+ /**
526
+ * Resolves an `alias_method` call with two literal method names.
527
+ *
528
+ * It delegates to the common alias path after enforcing static argument count.
529
+ */
530
+ scanAliasCall(call, context) {
531
+ if (context.kind === "top")
532
+ return;
533
+ const names = RubySyntax_1.RubySyntax.literalNames(RubySyntax_1.RubySyntax.callArguments(call));
534
+ if (names?.length !== 2) {
535
+ this.problem("ruby-alias-name", "alias_method requires two statically readable method names.", "Use two literal symbol or string method names.", call);
536
+ return;
537
+ }
538
+ const name = names[0];
539
+ const target = names[1];
540
+ if (name !== undefined && target !== undefined)
541
+ this.addAlias(call, call, context, name, target);
542
+ }
543
+ /**
544
+ * Adds an alias declaration after finding exactly one prior function target.
545
+ *
546
+ * Ambiguity is rejected because Ruby load order cannot be inferred beyond the
547
+ * selected file's ordered declaration records.
548
+ */
549
+ addAlias(statement, wrapper, context, name, targetName) {
550
+ const candidates = this.methodDeclarations(context.identity, context.side, targetName).filter((declaration) => declaration.symbol === "function");
551
+ if (candidates.length !== 1) {
552
+ this.problem("ruby-alias-target", `Ruby alias '${name}' cannot identify one selected prior method '${targetName}'.`, "Define the target method once earlier in the same selected file before aliasing it.", statement);
553
+ return;
554
+ }
555
+ const target = candidates[0];
556
+ if (target === undefined)
557
+ return;
558
+ const address = this.memberAddress(context.identity, context.side, name);
559
+ this.addDeclaration(statement, wrapper, "function", "alias", name, name, address, address, target.visibility, true, context.identity, [this.session.range(statement)], context.side, undefined, context.containerKind);
560
+ }
561
+ /**
562
+ * Applies supported `module_function` forms to instance methods.
563
+ *
564
+ * The directive privatizes the source method and creates a public singleton
565
+ * copy only when its target can be identified statically.
566
+ */
567
+ scanModuleFunction(call, context) {
568
+ if (context.kind !== "module" || context.side !== "instance") {
569
+ this.problem("ruby-module-function-owner", "module_function is only supported in an ordinary module body.", "Move the directive into a module or declare singleton methods explicitly.", call);
570
+ return;
571
+ }
572
+ const arguments_ = RubySyntax_1.RubySyntax.callArguments(call);
573
+ const wrapped = arguments_[0];
574
+ if (arguments_.length === 1 && wrapped?.type === "method") {
575
+ this.scanMethod(wrapped, call, context, "private", true);
576
+ return;
577
+ }
578
+ if (arguments_.length === 0) {
579
+ context.visibility = "private";
580
+ context.moduleFunction = true;
581
+ return;
582
+ }
583
+ const names = RubySyntax_1.RubySyntax.literalNames(arguments_);
584
+ if (names === undefined || names.length === 0) {
585
+ this.dynamicDirective(call, "module_function");
586
+ return;
587
+ }
588
+ for (const name of names) {
589
+ const candidates = this.methodDeclarations(context.identity, "instance", name).filter((declaration) => declaration.symbol === "function");
590
+ if (candidates.length !== 1) {
591
+ this.problem("ruby-module-function-target", `module_function cannot identify one selected prior method '${name}'.`, "Define the method once earlier in the same selected file or use an explicit singleton method.", call);
592
+ continue;
593
+ }
594
+ const target = candidates[0];
595
+ if (target === undefined)
596
+ continue;
597
+ target.visibility = "private";
598
+ this.cloneModuleFunction(target);
599
+ }
600
+ }
601
+ /**
602
+ * Creates the public singleton copy required by `module_function`.
603
+ *
604
+ * Documentation attachments are copied to the new declaration site relation
605
+ * so both Ruby entry points retain the source evidence mapping.
606
+ */
607
+ cloneModuleFunction(target) {
608
+ const address = this.memberAddress(target.ownerIdentity ?? [], "singleton", target.runtimeName);
609
+ const clone = {
610
+ ...target,
611
+ id: `ruby:${this.source.id}:declaration:${this.serial++}:module-function`,
612
+ form: "module-function",
613
+ identity: address,
614
+ address,
615
+ visibility: "public",
616
+ side: "singleton",
617
+ site: structuredClone(target.site),
618
+ };
619
+ this.declarations.push(clone);
620
+ for (const documentation of this.documentation.values())
621
+ for (const attachment of documentation.attachments.filter((candidate) => candidate.declarationId === target.id))
622
+ documentation.attachments.push({
623
+ declarationId: clone.id,
624
+ siteId: attachment.siteId,
625
+ });
626
+ }
627
+ /**
628
+ * Changes visibility on matching prior method declarations.
629
+ *
630
+ * Missing targets are errors because a directive must not silently alter an
631
+ * unknown population member.
632
+ */
633
+ changeMethodVisibility(ownerIdentity, side, name, visibility, call) {
634
+ const candidates = this.methodDeclarations(ownerIdentity, side, name);
635
+ if (candidates.length === 0) {
636
+ this.problem("ruby-visibility-target", `Ruby visibility directive cannot identify a selected prior ${side} method '${name}'.`, "Define the method earlier in the same selected file or add load-order-aware resolution.", call);
637
+ return;
638
+ }
639
+ for (const candidate of candidates)
640
+ candidate.visibility = visibility;
641
+ }
642
+ /**
643
+ * Changes visibility on matching constants and stores it for later records.
644
+ *
645
+ * Ruby permits the directive after declaration, so both existing and future
646
+ * selected records need the resolved lexical visibility.
647
+ */
648
+ changeConstantVisibility(identity, visibility, call) {
649
+ const key = this.identityKey(identity);
650
+ const candidates = this.declarations.filter((declaration) => (declaration.form === "class" ||
651
+ declaration.form === "module" ||
652
+ declaration.form === "constant") &&
653
+ this.identityKey(declaration.identity) === key);
654
+ if (candidates.length === 0) {
655
+ this.problem("ruby-constant-visibility-target", `Ruby constant visibility cannot identify selected prior constant '${identity.join("::")}'.`, "Declare the constant earlier in the same selected file or add load-order-aware resolution.", call);
656
+ return;
657
+ }
658
+ this.constantVisibility.set(key, visibility);
659
+ for (const candidate of candidates)
660
+ candidate.visibility = visibility;
661
+ }
662
+ /**
663
+ * Returns definition records matching one owner, side, and runtime method name.
664
+ *
665
+ * Attributes participate because their generated readers and writers are
666
+ * valid targets for Ruby visibility directives.
667
+ */
668
+ methodDeclarations(ownerIdentity, side, runtimeName) {
669
+ const owner = this.identityKey(ownerIdentity);
670
+ return this.declarations.filter((declaration) => declaration.definition &&
671
+ declaration.side === side &&
672
+ declaration.runtimeName === runtimeName &&
673
+ this.identityKey(declaration.ownerIdentity ?? []) === owner &&
674
+ (declaration.symbol === "function" || declaration.form === "attribute"));
675
+ }
676
+ /**
677
+ * Builds and records one Ruby declaration with its source site and metadata.
678
+ *
679
+ * The site begins at attached documentation when present, preserving the
680
+ * source region Evidence associates with the declaration.
681
+ */
682
+ addDeclaration(item, siteNode, symbol, form, name, runtimeName, identity, address, visibility, definition, ownerIdentity, content, side, attributeMode, containerKind, superclass) {
683
+ const documentation = this.attachedDocumentation(siteNode);
684
+ const site = {
685
+ id: this.siteId(siteNode),
686
+ file: this.source.physicalPath,
687
+ range: this.text.range(documentation?.range?.start?.offset ?? siteNode.startIndex, siteNode.endIndex),
688
+ content,
689
+ };
690
+ const declaration = {
691
+ id: `ruby:${this.source.id}:declaration:${this.serial++}:${form}:${item.startIndex}`,
692
+ name,
693
+ runtimeName,
694
+ symbol,
695
+ form,
696
+ identity,
697
+ address,
698
+ site,
699
+ visibility,
700
+ definition,
701
+ ...(ownerIdentity.length === 0 ? {} : { ownerIdentity }),
702
+ ...(side === undefined ? {} : { side }),
703
+ ...(attributeMode === undefined ? {} : { attributeMode }),
704
+ ...(containerKind === undefined ? {} : { containerKind }),
705
+ ...(superclass === undefined ? {} : { superclass }),
706
+ };
707
+ this.declarations.push(declaration);
708
+ if (documentation !== undefined)
709
+ this.attach(documentation, declaration.id, site.id);
710
+ return declaration;
711
+ }
712
+ /**
713
+ * Finds the nearest attachable documentation carrier before a declaration.
714
+ *
715
+ * Only line-leading comments without intervening content attach, preventing
716
+ * an unrelated earlier comment from becoming the declaration's evidence host.
717
+ */
718
+ attachedDocumentation(node) {
719
+ const documentation = Array.from(this.documentation.values())
720
+ .filter((candidate) => candidate.syntax !== undefined &&
721
+ this.lineLeading(candidate.range) &&
722
+ candidate.range.end.offset <= node.startIndex &&
723
+ (candidate.syntax.opening.startsWith("=begin") ||
724
+ candidate.range.start.column === node.startPosition.column + 1))
725
+ .sort((left, right) => right.range.end.offset - left.range.end.offset)[0];
726
+ if (documentation === undefined)
727
+ return undefined;
728
+ const between = this.source.content.slice(documentation.range.end.offset, node.startIndex);
729
+ return between.trim() !== "" || /\r?\n[ \t]*\r?\n/u.test(between)
730
+ ? undefined
731
+ : documentation;
732
+ }
733
+ /**
734
+ * Checks whether a documentation range begins after only whitespace on its line.
735
+ *
736
+ * Inline comments cannot attach to the following Ruby declaration.
737
+ */
738
+ lineLeading(range) {
739
+ const lineStart = Math.max(this.source.content.lastIndexOf("\n", range.start.offset - 1), this.source.content.lastIndexOf("\r", range.start.offset - 1)) + 1;
740
+ return (this.source.content.slice(lineStart, range.start.offset).trim() === "");
741
+ }
742
+ /**
743
+ * Collects supported Ruby comment carriers and contiguous hash-comment runs.
744
+ *
745
+ * Adjacent aligned comments become one mapping; blank lines and indentation
746
+ * changes deliberately break the run.
747
+ */
748
+ collectDocumentation() {
749
+ const comments = this.session.root
750
+ .descendantsOfType("comment")
751
+ .sort((left, right) => left.startIndex - right.startIndex);
752
+ for (let index = 0; index < comments.length; ++index) {
753
+ const first = comments[index];
754
+ if (first === undefined)
755
+ continue;
756
+ const syntax = RubySyntax_1.RubySyntax.commentSyntax(first);
757
+ if (syntax === undefined)
758
+ continue;
759
+ let last = first;
760
+ if (first.text.startsWith("#"))
761
+ while (index + 1 < comments.length) {
762
+ const next = comments[index + 1];
763
+ if (next === undefined)
764
+ break;
765
+ const between = this.source.content.slice(last.endIndex, next.startIndex);
766
+ if (!next.text.startsWith("#") ||
767
+ next.startPosition.column !== first.startPosition.column ||
768
+ /\r?\n[ \t]*\r?\n/u.test(between) ||
769
+ between.trim() !== "")
770
+ break;
771
+ last = next;
772
+ ++index;
773
+ }
774
+ this.ensureDocumentationRange(this.text.range(first.startIndex, last.endIndex), syntax);
775
+ }
776
+ }
777
+ /**
778
+ * Collects tag-bearing string and heredoc content as documentation mappings.
779
+ *
780
+ * These literal carriers support Evidence annotations even without comments.
781
+ */
782
+ collectLiteralAnnotations() {
783
+ const contents = [
784
+ ...this.session.root.descendantsOfType("string_content"),
785
+ ...this.session.root.descendantsOfType("heredoc_content"),
786
+ ];
787
+ for (const content of contents) {
788
+ if (!this.annotation(content.text))
789
+ continue;
790
+ const range = this.session.range(content);
791
+ const id = `ruby:${this.source.id}:documentation:${range.start.offset}:${range.end.offset}`;
792
+ this.documentation.set(id, {
793
+ id,
794
+ range,
795
+ mapping: EvidenceDocumentation_1.EvidenceDocumentation.read(this.source.content, id, range, {
796
+ opening: "",
797
+ closing: "",
798
+ tagBoundaries: true,
799
+ allowWithdrawal: false,
800
+ }),
801
+ attachments: [],
802
+ });
803
+ }
804
+ }
805
+ /**
806
+ * Returns the documentation record for one exact source range and syntax.
807
+ *
808
+ * Reuse prevents duplicate mappings when several collection paths meet.
809
+ */
810
+ ensureDocumentationRange(range, syntax) {
811
+ const key = `${range.start.offset}:${range.end.offset}`;
812
+ let documentation = this.documentation.get(key);
813
+ if (documentation === undefined) {
814
+ documentation = {
815
+ id: `ruby:${this.source.id}:documentation:${key}`,
816
+ range,
817
+ syntax,
818
+ attachments: [],
819
+ };
820
+ this.documentation.set(key, documentation);
821
+ }
822
+ return documentation;
823
+ }
824
+ /**
825
+ * Attaches documentation to a declaration site without duplicate relations.
826
+ *
827
+ * Repeated scan paths can identify the same carrier and declaration pair.
828
+ */
829
+ attach(documentation, declarationId, siteId) {
830
+ if (!documentation.attachments.some((attachment) => attachment.declarationId === declarationId &&
831
+ attachment.siteId === siteId))
832
+ documentation.attachments.push({ declarationId, siteId });
833
+ }
834
+ /**
835
+ * Detects nested syntax that can change Ruby's declared public surface.
836
+ *
837
+ * Dynamic execution boundaries are reported instead of interpreted as static
838
+ * declarations within a conditional or metaprogrammed body.
839
+ */
840
+ containsSurfaceChange(node) {
841
+ const queue = [node];
842
+ for (let index = 0; index < queue.length; ++index) {
843
+ const current = queue[index];
844
+ if (current === undefined)
845
+ continue;
846
+ if (current.type === "class" ||
847
+ current.type === "module" ||
848
+ current.type === "singleton_class" ||
849
+ current.type === "method" ||
850
+ current.type === "singleton_method" ||
851
+ current.type === "alias" ||
852
+ current.type === "undef")
853
+ return true;
854
+ if (current.type === "assignment" &&
855
+ RubySyntax_1.RubySyntax.constantPath(current.childForFieldName("left")) !== undefined)
856
+ return true;
857
+ const callName = RubySyntax_1.RubySyntax.callName(current);
858
+ if (callName !== undefined && this.surfaceCall(callName))
859
+ return true;
860
+ queue.push(...current.namedChildren);
861
+ }
862
+ return false;
863
+ }
864
+ /**
865
+ * Checks whether a call name is known to mutate Ruby declaration surface.
866
+ *
867
+ * This explicit list bounds static support and identifies dynamic directives.
868
+ */
869
+ surfaceCall(name) {
870
+ return [
871
+ "alias_method",
872
+ "attr",
873
+ "attr_accessor",
874
+ "attr_reader",
875
+ "attr_writer",
876
+ "autoload",
877
+ "class_eval",
878
+ "const_set",
879
+ "define_method",
880
+ "define_singleton_method",
881
+ "extend",
882
+ "include",
883
+ "module_eval",
884
+ "module_function",
885
+ "prepend",
886
+ "private",
887
+ "private_class_method",
888
+ "private_constant",
889
+ "protected",
890
+ "public",
891
+ "public_class_method",
892
+ "public_constant",
893
+ "refine",
894
+ "remove_const",
895
+ "remove_method",
896
+ "undef_method",
897
+ "using",
898
+ ].includes(name);
899
+ }
900
+ /**
901
+ * Reports a directive whose names or target cannot be statically resolved.
902
+ *
903
+ * The diagnostic marks the file incomplete so unsupported runtime behavior
904
+ * cannot lower coverage requirements.
905
+ */
906
+ dynamicDirective(node, description) {
907
+ this.problem("ruby-dynamic-directive", `Ruby ${description} uses names that cannot be resolved statically.`, "Use literal symbol or string names in the selected class or module body.", node);
908
+ }
909
+ /**
910
+ * Resolves a constant path against the current lexical owner when relative.
911
+ *
912
+ * Absolute paths and top-level paths retain their source segments unchanged.
913
+ */
914
+ resolvePath(path, context) {
915
+ return path.absolute || context.kind === "top"
916
+ ? path.segments
917
+ : [...context.identity, ...path.segments];
918
+ }
919
+ /**
920
+ * Resolves a constant path when a supported path is present.
921
+ *
922
+ * Absence remains undefined so callers can distinguish it from top-level paths.
923
+ */
924
+ resolveOptionalPath(path, context) {
925
+ return path === undefined ? undefined : this.resolvePath(path, context);
926
+ }
927
+ /**
928
+ * Creates a public member address for instance or singleton ownership.
929
+ *
930
+ * Singleton members use the explicit `self` segment to avoid identity clashes.
931
+ */
932
+ memberAddress(owner, side, name) {
933
+ return side === "instance" ? [...owner, name] : [...owner, "self", name];
934
+ }
935
+ /**
936
+ * Serializes a lexical identity for map keys and equality checks.
937
+ *
938
+ * JSON preserves segment boundaries that a joined string could blur.
939
+ */
940
+ identityKey(identity) {
941
+ return JSON.stringify(identity);
942
+ }
943
+ /**
944
+ * Checks whether raw Ruby carrier text contains an Evidence annotation tag.
945
+ *
946
+ * The predicate is shared by comments, strings, and heredocs.
947
+ */
948
+ annotation(raw) {
949
+ return /(?:^|[\r\n])[ \t]*(?:#[ \t]*)?@(evidenceExcludeReview|evidenceReview|evidenceExclude|evidence|link|internal|hidden|ignore)\b/u.test(raw);
950
+ }
951
+ /**
952
+ * Serializes a parser node range as a stable source-local key.
953
+ *
954
+ * The immutable selected source makes its offsets suitable for record identity.
955
+ */
956
+ nodeKey(node) {
957
+ return `${node.startIndex}:${node.endIndex}`;
958
+ }
959
+ /**
960
+ * Creates the stable declaration-site identity for a Ruby parser node.
961
+ *
962
+ * The source ID scopes a range that could recur in another selected file.
963
+ */
964
+ siteId(node) {
965
+ return `ruby:${this.source.id}:site:${this.nodeKey(node)}`;
966
+ }
967
+ /**
968
+ * Records one static-analysis failure and marks the file incomplete.
969
+ *
970
+ * A source-range key suppresses repeated diagnostics from overlapping checks.
971
+ */
972
+ problem(code, message, repair, node) {
973
+ const key = `${code}:${node.startIndex}:${node.endIndex}`;
974
+ if (this.reported.has(key))
975
+ return;
976
+ this.reported.add(key);
977
+ this.complete = false;
978
+ this.diagnostics.push({
979
+ code,
980
+ severity: "error",
981
+ message,
982
+ repair,
983
+ location: {
984
+ file: this.source.physicalPath,
985
+ range: this.session.range(node),
986
+ },
987
+ });
988
+ }
989
+ }
990
+ exports.RubyFileScanner = RubyFileScanner;