@shapeshift-labs/frontier-lang-compiler 0.2.40 → 0.2.42

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 (658) hide show
  1. package/README.md +100 -0
  2. package/bench/compile-suite.mjs +31 -0
  3. package/bench/native-adapters.mjs +32 -0
  4. package/bench/native-import-suite.mjs +79 -0
  5. package/bench/native-matrix-suite.mjs +64 -0
  6. package/bench/native-transform-suite.mjs +125 -0
  7. package/bench/smoke.mjs +80 -375
  8. package/bench/source-change-suite.mjs +111 -0
  9. package/dist/coverage-matrix-profiles.js +19 -0
  10. package/dist/declarations/adapter-coverage.d.ts +181 -0
  11. package/dist/declarations/compile.d.ts +110 -0
  12. package/dist/declarations/import-adapter-core.d.ts +233 -0
  13. package/dist/declarations/import-adapter-options-native.d.ts +185 -0
  14. package/dist/declarations/import-adapter-options-platform.d.ts +204 -0
  15. package/dist/declarations/language-adapter-package-contracts.d.ts +190 -0
  16. package/dist/declarations/native-diff.d.ts +240 -0
  17. package/dist/declarations/native-import-contracts.d.ts +211 -0
  18. package/dist/declarations/native-import-coverage.d.ts +107 -0
  19. package/dist/declarations/native-import-losses.d.ts +199 -0
  20. package/dist/declarations/native-parser-features.d.ts +227 -0
  21. package/dist/declarations/native-parser-formats.d.ts +132 -0
  22. package/dist/declarations/native-project-admission.d.ts +160 -0
  23. package/dist/declarations/native-project.d.ts +209 -0
  24. package/dist/declarations/projection-coverage.d.ts +146 -0
  25. package/dist/declarations/projection-readiness.d.ts +115 -0
  26. package/dist/declarations/roundtrip.d.ts +200 -0
  27. package/dist/declarations/runtime.d.ts +135 -0
  28. package/dist/declarations/semantic-history.d.ts +188 -0
  29. package/dist/declarations/semantic-merge-conflicts.d.ts +82 -0
  30. package/dist/declarations/semantic-patch-bundle.d.ts +210 -0
  31. package/dist/declarations/semantic-sidecar-admission.d.ts +61 -0
  32. package/dist/declarations/semantic-sidecar.d.ts +317 -0
  33. package/dist/declarations/semantic-slice.d.ts +228 -0
  34. package/dist/declarations/source-preservation.d.ts +126 -0
  35. package/dist/declarations/target-adapters.d.ts +138 -0
  36. package/dist/declarations/universal-capability.d.ts +148 -0
  37. package/dist/declarations/universal-dialects.d.ts +242 -0
  38. package/dist/index.d.ts +28 -2570
  39. package/dist/index.js +76 -16575
  40. package/dist/internal/index-impl/ExternalSemanticIndexFormats.js +8 -0
  41. package/dist/internal/index-impl/FrontierCompileTargets.js +7 -0
  42. package/dist/internal/index-impl/NativeImportFeatureEvidencePolicies.js +111 -0
  43. package/dist/internal/index-impl/NativeImportLossKinds.js +24 -0
  44. package/dist/internal/index-impl/NativeImportReadinessBySeverity.js +6 -0
  45. package/dist/internal/index-impl/NativeImportRoundtripReadinessStatuses.js +7 -0
  46. package/dist/internal/index-impl/NativeImportTaxonomyKinds.js +19 -0
  47. package/dist/internal/index-impl/adapterCoverageCapabilityRow.js +13 -0
  48. package/dist/internal/index-impl/adapterCoverageSnapshotFromSummary.js +13 -0
  49. package/dist/internal/index-impl/adapterCoverageSourcePreservation.js +6 -0
  50. package/dist/internal/index-impl/adapterDiagnosticToLoss.js +23 -0
  51. package/dist/internal/index-impl/adapterDiagnosticsEvidence.js +27 -0
  52. package/dist/internal/index-impl/addLspSemanticTokens.js +32 -0
  53. package/dist/internal/index-impl/addLspSymbol.js +44 -0
  54. package/dist/internal/index-impl/addSet.js +5 -0
  55. package/dist/internal/index-impl/attachExternalOwnership.js +79 -0
  56. package/dist/internal/index-impl/attachNativeChangeRegionProjectionMetadata.js +13 -0
  57. package/dist/internal/index-impl/attachNativeImportLossSummary.js +11 -0
  58. package/dist/internal/index-impl/canonicalTargets.js +7 -0
  59. package/dist/internal/index-impl/clangAstChildEntries.js +9 -0
  60. package/dist/internal/index-impl/clangAstDeclaration.js +44 -0
  61. package/dist/internal/index-impl/clangAstKind.js +7 -0
  62. package/dist/internal/index-impl/clangAstNodeValue.js +7 -0
  63. package/dist/internal/index-impl/clangAstRoot.js +14 -0
  64. package/dist/internal/index-impl/clangDeclarationAction.js +7 -0
  65. package/dist/internal/index-impl/clangDeclarationName.js +10 -0
  66. package/dist/internal/index-impl/clangIncludePath.js +8 -0
  67. package/dist/internal/index-impl/clangLiteralValue.js +6 -0
  68. package/dist/internal/index-impl/clangLocPosition.js +12 -0
  69. package/dist/internal/index-impl/clangLocationKind.js +8 -0
  70. package/dist/internal/index-impl/clangPreprocessorKind.js +3 -0
  71. package/dist/internal/index-impl/clangPreprocessorRecords.js +8 -0
  72. package/dist/internal/index-impl/clangTypeName.js +9 -0
  73. package/dist/internal/index-impl/classifyNativeImportReadiness.js +9 -0
  74. package/dist/internal/index-impl/classifyNativeImportRoundtripReadiness.js +129 -0
  75. package/dist/internal/index-impl/compileFrontierDocument.js +28 -0
  76. package/dist/internal/index-impl/compileFrontierSource.js +8 -0
  77. package/dist/internal/index-impl/compileNativeSource.js +186 -0
  78. package/dist/internal/index-impl/compileTargetLanguage.js +5 -0
  79. package/dist/internal/index-impl/coverageMatrixContext.js +20 -0
  80. package/dist/internal/index-impl/createAstNormalizationContext.js +14 -0
  81. package/dist/internal/index-impl/createBabelNativeImporterAdapter.js +18 -0
  82. package/dist/internal/index-impl/createCSharpRoslynNativeImporterAdapter.js +68 -0
  83. package/dist/internal/index-impl/createClangAstNativeImporterAdapter.js +59 -0
  84. package/dist/internal/index-impl/createEstreeNativeImporterAdapter.js +12 -0
  85. package/dist/internal/index-impl/createGoAstNativeImporterAdapter.js +63 -0
  86. package/dist/internal/index-impl/createJavaAstNativeImporterAdapter.js +66 -0
  87. package/dist/internal/index-impl/createKotlinPsiNativeImporterAdapter.js +73 -0
  88. package/dist/internal/index-impl/createLightweightNativeImport.js +154 -0
  89. package/dist/internal/index-impl/createNativeImportCoverageMatrix.js +5 -0
  90. package/dist/internal/index-impl/createNativeImportFromCSharpRoslyn.js +39 -0
  91. package/dist/internal/index-impl/createNativeImportFromClangAst.js +36 -0
  92. package/dist/internal/index-impl/createNativeImportFromGoAst.js +35 -0
  93. package/dist/internal/index-impl/createNativeImportFromJavaAst.js +39 -0
  94. package/dist/internal/index-impl/createNativeImportFromKotlinPsi.js +47 -0
  95. package/dist/internal/index-impl/createNativeImportFromPythonAst.js +30 -0
  96. package/dist/internal/index-impl/createNativeImportFromRustSyn.js +30 -0
  97. package/dist/internal/index-impl/createNativeImportFromSwiftSyntax.js +37 -0
  98. package/dist/internal/index-impl/createNativeImportFromSyntaxAst.js +36 -0
  99. package/dist/internal/index-impl/createNativeImportFromTreeSitter.js +125 -0
  100. package/dist/internal/index-impl/createNativeImportFromTypeScriptAst.js +24 -0
  101. package/dist/internal/index-impl/createNativeImportResultContract.js +78 -0
  102. package/dist/internal/index-impl/createNativeParserAstFormatMatrix.js +5 -0
  103. package/dist/internal/index-impl/createNativeParserFeatureMatrix.js +5 -0
  104. package/dist/internal/index-impl/createNativeProjectImportResult.js +126 -0
  105. package/dist/internal/index-impl/createNativeRoundtripEvidence.js +117 -0
  106. package/dist/internal/index-impl/createNativeSourcePreservation.js +64 -0
  107. package/dist/internal/index-impl/createProjectImportAdmissionRecord.js +91 -0
  108. package/dist/internal/index-impl/createProjectionReadinessMatrix.js +5 -0
  109. package/dist/internal/index-impl/createProjectionTargetLossMatrix.js +5 -0
  110. package/dist/internal/index-impl/createPythonAstNativeImporterAdapter.js +52 -0
  111. package/dist/internal/index-impl/createRustSynNativeImporterAdapter.js +56 -0
  112. package/dist/internal/index-impl/createSemanticImportSidecar.js +105 -0
  113. package/dist/internal/index-impl/createSemanticImportSidecarAdmission.js +160 -0
  114. package/dist/internal/index-impl/createSemanticSlice.js +137 -0
  115. package/dist/internal/index-impl/createSwiftSyntaxNativeImporterAdapter.js +62 -0
  116. package/dist/internal/index-impl/createTreeSitterNativeImporterAdapter.js +58 -0
  117. package/dist/internal/index-impl/createTypeScriptCompilerNativeImporterAdapter.js +45 -0
  118. package/dist/internal/index-impl/createUniversalAstFromDocument.js +15 -0
  119. package/dist/internal/index-impl/createUniversalCapabilityMatrix.js +5 -0
  120. package/dist/internal/index-impl/csharpEvidenceSummary.js +18 -0
  121. package/dist/internal/index-impl/csharpGeneratedCodeLoss.js +20 -0
  122. package/dist/internal/index-impl/csharpGeneratedCodeMarker.js +16 -0
  123. package/dist/internal/index-impl/csharpGeneratedSourcePath.js +3 -0
  124. package/dist/internal/index-impl/csharpRoslynChildEntries.js +18 -0
  125. package/dist/internal/index-impl/csharpRoslynChildWithParent.js +6 -0
  126. package/dist/internal/index-impl/csharpRoslynDeclarationName.js +11 -0
  127. package/dist/internal/index-impl/csharpRoslynDeclarations.js +53 -0
  128. package/dist/internal/index-impl/csharpRoslynDirectiveKind.js +3 -0
  129. package/dist/internal/index-impl/csharpRoslynHasBody.js +3 -0
  130. package/dist/internal/index-impl/csharpRoslynKind.js +11 -0
  131. package/dist/internal/index-impl/csharpRoslynLiteralValue.js +5 -0
  132. package/dist/internal/index-impl/csharpRoslynMethodLikeKind.js +7 -0
  133. package/dist/internal/index-impl/csharpRoslynModifierNames.js +16 -0
  134. package/dist/internal/index-impl/csharpRoslynName.js +13 -0
  135. package/dist/internal/index-impl/csharpRoslynNodeValue.js +7 -0
  136. package/dist/internal/index-impl/csharpRoslynOperatorName.js +8 -0
  137. package/dist/internal/index-impl/csharpRoslynPosition.js +27 -0
  138. package/dist/internal/index-impl/csharpRoslynPositionKind.js +6 -0
  139. package/dist/internal/index-impl/csharpRoslynProblemNode.js +14 -0
  140. package/dist/internal/index-impl/csharpRoslynRecoveredKind.js +5 -0
  141. package/dist/internal/index-impl/csharpRoslynRoot.js +15 -0
  142. package/dist/internal/index-impl/csharpRoslynTypeDeclarationKind.js +8 -0
  143. package/dist/internal/index-impl/csharpRoslynTypeDeclarationSymbolKind.js +5 -0
  144. package/dist/internal/index-impl/csharpRoslynTypeName.js +19 -0
  145. package/dist/internal/index-impl/csharpRoslynUsingPath.js +5 -0
  146. package/dist/internal/index-impl/csharpRoslynVariableNames.js +10 -0
  147. package/dist/internal/index-impl/declarationRecord.js +11 -0
  148. package/dist/internal/index-impl/declarationSemanticCoverage.js +10 -0
  149. package/dist/internal/index-impl/diffNativeOwnershipRegions.js +19 -0
  150. package/dist/internal/index-impl/diffNativeSourceImports.js +166 -0
  151. package/dist/internal/index-impl/diffNativeSources.js +25 -0
  152. package/dist/internal/index-impl/diffNativeSymbols.js +41 -0
  153. package/dist/internal/index-impl/effectiveAdapterExactness.js +6 -0
  154. package/dist/internal/index-impl/effectiveNativeImporterAdapterCoverage.js +21 -0
  155. package/dist/internal/index-impl/emitForTarget.js +4 -0
  156. package/dist/internal/index-impl/emitForTargetWithSourceMap.js +11 -0
  157. package/dist/internal/index-impl/ensureTrailingNewline.js +4 -0
  158. package/dist/internal/index-impl/expandSemanticSliceSelection.js +51 -0
  159. package/dist/internal/index-impl/externalDiagnosticFact.js +22 -0
  160. package/dist/internal/index-impl/externalDiagnosticLoss.js +20 -0
  161. package/dist/internal/index-impl/externalDiagnosticSeverity.js +7 -0
  162. package/dist/internal/index-impl/externalDocument.js +12 -0
  163. package/dist/internal/index-impl/externalFact.js +10 -0
  164. package/dist/internal/index-impl/externalLanguageNameByNumber.js +23 -0
  165. package/dist/internal/index-impl/externalOccurrence.js +13 -0
  166. package/dist/internal/index-impl/externalRelation.js +10 -0
  167. package/dist/internal/index-impl/externalRelationPredicateForOccurrence.js +8 -0
  168. package/dist/internal/index-impl/externalSemanticBase.js +15 -0
  169. package/dist/internal/index-impl/externalSemanticCoverageLoss.js +17 -0
  170. package/dist/internal/index-impl/externalSemanticEvidence.js +16 -0
  171. package/dist/internal/index-impl/externalSemanticSourceMapMappings.js +26 -0
  172. package/dist/internal/index-impl/externalSymbol.js +14 -0
  173. package/dist/internal/index-impl/externalSymbolKindByNumber.js +32 -0
  174. package/dist/internal/index-impl/fileLevelNativeChangeRegion.js +23 -0
  175. package/dist/internal/index-impl/findSemanticImportRegion.js +6 -0
  176. package/dist/internal/index-impl/freezeNativeImporterAdapterCoverageSnapshot.js +13 -0
  177. package/dist/internal/index-impl/getNativeImportFeatureEvidencePolicy.js +5 -0
  178. package/dist/internal/index-impl/getNativeParserAstFormatProfile.js +4 -0
  179. package/dist/internal/index-impl/goAstChildEntries.js +23 -0
  180. package/dist/internal/index-impl/goAstDeclarationName.js +9 -0
  181. package/dist/internal/index-impl/goAstDeclarations.js +30 -0
  182. package/dist/internal/index-impl/goAstIdentName.js +5 -0
  183. package/dist/internal/index-impl/goAstImportPath.js +7 -0
  184. package/dist/internal/index-impl/goAstKind.js +15 -0
  185. package/dist/internal/index-impl/goAstLiteralValue.js +5 -0
  186. package/dist/internal/index-impl/goAstNodeValue.js +7 -0
  187. package/dist/internal/index-impl/goAstPackageName.js +5 -0
  188. package/dist/internal/index-impl/goAstPosition.js +30 -0
  189. package/dist/internal/index-impl/goAstPositionKind.js +6 -0
  190. package/dist/internal/index-impl/goAstReceiverName.js +8 -0
  191. package/dist/internal/index-impl/goAstRoot.js +12 -0
  192. package/dist/internal/index-impl/goAstTokenName.js +6 -0
  193. package/dist/internal/index-impl/goAstTypeName.js +27 -0
  194. package/dist/internal/index-impl/goAstTypeSpecSymbolKind.js +8 -0
  195. package/dist/internal/index-impl/goAstValueSpecName.js +4 -0
  196. package/dist/internal/index-impl/goAstValueSpecNames.js +7 -0
  197. package/dist/internal/index-impl/goBadAstKind.js +3 -0
  198. package/dist/internal/index-impl/goGeneratedCodeMarker.js +7 -0
  199. package/dist/internal/index-impl/goReceiverFieldCount.js +4 -0
  200. package/dist/internal/index-impl/goTypeEvidenceSummary.js +9 -0
  201. package/dist/internal/index-impl/hasNativeExactAstEvidence.js +13 -0
  202. package/dist/internal/index-impl/hashNativeSpanText.js +6 -0
  203. package/dist/internal/index-impl/identifierName.js +9 -0
  204. package/dist/internal/index-impl/ignoredCSharpRoslynField.js +31 -0
  205. package/dist/internal/index-impl/ignoredClangAstField.js +19 -0
  206. package/dist/internal/index-impl/ignoredGoAstField.js +23 -0
  207. package/dist/internal/index-impl/ignoredJavaAstField.js +29 -0
  208. package/dist/internal/index-impl/ignoredKotlinPsiField.js +26 -0
  209. package/dist/internal/index-impl/ignoredPythonAstField.js +17 -0
  210. package/dist/internal/index-impl/ignoredRustSynField.js +11 -0
  211. package/dist/internal/index-impl/ignoredSwiftSyntaxField.js +27 -0
  212. package/dist/internal/index-impl/ignoredSyntaxField.js +15 -0
  213. package/dist/internal/index-impl/importExternalSemanticIndex.js +141 -0
  214. package/dist/internal/index-impl/importNativeProject.js +26 -0
  215. package/dist/internal/index-impl/importNativeSource.js +317 -0
  216. package/dist/internal/index-impl/inferExternalSemanticIndexFormat.js +46 -0
  217. package/dist/internal/index-impl/inferredAdapterCoverageNotes.js +8 -0
  218. package/dist/internal/index-impl/inferredAdapterExactness.js +5 -0
  219. package/dist/internal/index-impl/inferredSemanticCoverageLevel.js +5 -0
  220. package/dist/internal/index-impl/isCSharpRoslynNode.js +4 -0
  221. package/dist/internal/index-impl/isClangAstNode.js +4 -0
  222. package/dist/internal/index-impl/isGoAstNode.js +4 -0
  223. package/dist/internal/index-impl/isJavaAstNode.js +4 -0
  224. package/dist/internal/index-impl/isKotlinPsiNode.js +4 -0
  225. package/dist/internal/index-impl/isNativeSourceImportResult.js +3 -0
  226. package/dist/internal/index-impl/isPythonAstNode.js +4 -0
  227. package/dist/internal/index-impl/isRustSynAstNode.js +4 -0
  228. package/dist/internal/index-impl/isSwiftSyntaxNode.js +4 -0
  229. package/dist/internal/index-impl/isSyntaxAstNode.js +3 -0
  230. package/dist/internal/index-impl/javaAnnotationProcessingSummary.js +13 -0
  231. package/dist/internal/index-impl/javaAstChildEntries.js +18 -0
  232. package/dist/internal/index-impl/javaAstChildWithParent.js +6 -0
  233. package/dist/internal/index-impl/javaAstDeclarationName.js +11 -0
  234. package/dist/internal/index-impl/javaAstDeclarations.js +35 -0
  235. package/dist/internal/index-impl/javaAstFieldNames.js +7 -0
  236. package/dist/internal/index-impl/javaAstHasBody.js +3 -0
  237. package/dist/internal/index-impl/javaAstImportPath.js +8 -0
  238. package/dist/internal/index-impl/javaAstKind.js +12 -0
  239. package/dist/internal/index-impl/javaAstLiteralValue.js +5 -0
  240. package/dist/internal/index-impl/javaAstModifierNames.js +16 -0
  241. package/dist/internal/index-impl/javaAstName.js +14 -0
  242. package/dist/internal/index-impl/javaAstNodeValue.js +8 -0
  243. package/dist/internal/index-impl/javaAstPackageName.js +5 -0
  244. package/dist/internal/index-impl/javaAstPosition.js +32 -0
  245. package/dist/internal/index-impl/javaAstPositionKind.js +7 -0
  246. package/dist/internal/index-impl/javaAstRoot.js +14 -0
  247. package/dist/internal/index-impl/javaAstTypeName.js +22 -0
  248. package/dist/internal/index-impl/javaBindingEvidenceSummary.js +10 -0
  249. package/dist/internal/index-impl/javaGeneratedCodeLoss.js +20 -0
  250. package/dist/internal/index-impl/javaGeneratedCodeMarker.js +16 -0
  251. package/dist/internal/index-impl/javaLombokAnnotationMarker.js +6 -0
  252. package/dist/internal/index-impl/javaPathEvidenceSummary.js +14 -0
  253. package/dist/internal/index-impl/javaProblemNode.js +3 -0
  254. package/dist/internal/index-impl/javaRecoveredAstKind.js +4 -0
  255. package/dist/internal/index-impl/javaTypeDeclarationKind.js +7 -0
  256. package/dist/internal/index-impl/javaTypeDeclarationSymbolKind.js +5 -0
  257. package/dist/internal/index-impl/kotlinCompilerPluginAnnotationNode.js +5 -0
  258. package/dist/internal/index-impl/kotlinContractNode.js +3 -0
  259. package/dist/internal/index-impl/kotlinCoroutineNode.js +8 -0
  260. package/dist/internal/index-impl/kotlinEvidenceSummary.js +21 -0
  261. package/dist/internal/index-impl/kotlinExpectActualNode.js +5 -0
  262. package/dist/internal/index-impl/kotlinGeneratedCodeLoss.js +22 -0
  263. package/dist/internal/index-impl/kotlinGeneratedCodeMarker.js +6 -0
  264. package/dist/internal/index-impl/kotlinGeneratedSourcePath.js +3 -0
  265. package/dist/internal/index-impl/kotlinPsiAnnotationNames.js +10 -0
  266. package/dist/internal/index-impl/kotlinPsiChildEntries.js +18 -0
  267. package/dist/internal/index-impl/kotlinPsiChildWithParent.js +6 -0
  268. package/dist/internal/index-impl/kotlinPsiDeclarationName.js +14 -0
  269. package/dist/internal/index-impl/kotlinPsiDeclarations.js +37 -0
  270. package/dist/internal/index-impl/kotlinPsiHasBody.js +3 -0
  271. package/dist/internal/index-impl/kotlinPsiImportPath.js +8 -0
  272. package/dist/internal/index-impl/kotlinPsiKind.js +13 -0
  273. package/dist/internal/index-impl/kotlinPsiModifiers.js +22 -0
  274. package/dist/internal/index-impl/kotlinPsiName.js +14 -0
  275. package/dist/internal/index-impl/kotlinPsiNodeValue.js +7 -0
  276. package/dist/internal/index-impl/kotlinPsiPackageName.js +8 -0
  277. package/dist/internal/index-impl/kotlinPsiPosition.js +27 -0
  278. package/dist/internal/index-impl/kotlinPsiPositionKind.js +6 -0
  279. package/dist/internal/index-impl/kotlinPsiProblemNode.js +10 -0
  280. package/dist/internal/index-impl/kotlinPsiRecoveredKind.js +5 -0
  281. package/dist/internal/index-impl/kotlinPsiRoot.js +15 -0
  282. package/dist/internal/index-impl/kotlinPsiTypeDeclarationKind.js +5 -0
  283. package/dist/internal/index-impl/kotlinPsiTypeDeclarationSymbolKind.js +8 -0
  284. package/dist/internal/index-impl/kotlinPsiTypeName.js +18 -0
  285. package/dist/internal/index-impl/kotlinPsiVariableNames.js +7 -0
  286. package/dist/internal/index-impl/kotlinScriptLoss.js +22 -0
  287. package/dist/internal/index-impl/kotlinUnsupportedSemanticLoss.js +23 -0
  288. package/dist/internal/index-impl/lineColumnForOffset.js +15 -0
  289. package/dist/internal/index-impl/literalSyntaxValue.js +4 -0
  290. package/dist/internal/index-impl/lossSeverityRank.js +6 -0
  291. package/dist/internal/index-impl/lspSymbolKindByNumber.js +19 -0
  292. package/dist/internal/index-impl/mapDiffSymbols.js +39 -0
  293. package/dist/internal/index-impl/matchingNativeTargetProjectionAdapter.js +4 -0
  294. package/dist/internal/index-impl/maxSemanticCoverageLevel.js +6 -0
  295. package/dist/internal/index-impl/mergeNativeLosses.js +12 -0
  296. package/dist/internal/index-impl/mergeSemanticIndexes.js +19 -0
  297. package/dist/internal/index-impl/mergeSemanticSliceSymbols.js +16 -0
  298. package/dist/internal/index-impl/missingInjectedParserResult.js +51 -0
  299. package/dist/internal/index-impl/nameFromExternalSymbol.js +10 -0
  300. package/dist/internal/index-impl/namedDeclaration.js +5 -0
  301. package/dist/internal/index-impl/nativeAstNodes.js +4 -0
  302. package/dist/internal/index-impl/nativeChangeMappingTouchesRegion.js +17 -0
  303. package/dist/internal/index-impl/nativeChangeProjectionEndpoint.js +28 -0
  304. package/dist/internal/index-impl/nativeChangeProjectionSourceMapLinks.js +33 -0
  305. package/dist/internal/index-impl/nativeChangeSpans.js +37 -0
  306. package/dist/internal/index-impl/nativeChangeSymbolTouchesRegion.js +10 -0
  307. package/dist/internal/index-impl/nativeChangeTouchedSymbol.js +21 -0
  308. package/dist/internal/index-impl/nativeChangedRegionProjectionAction.js +7 -0
  309. package/dist/internal/index-impl/nativeChangedRegionProjectionMetadata.js +49 -0
  310. package/dist/internal/index-impl/nativeChangedRegionProjectionSpanMetadata.js +12 -0
  311. package/dist/internal/index-impl/nativeCompileSourceLanguage.js +10 -0
  312. package/dist/internal/index-impl/nativeCompileTarget.js +10 -0
  313. package/dist/internal/index-impl/nativeDiffSymbolChanged.js +7 -0
  314. package/dist/internal/index-impl/nativeDiffSymbolKey.js +7 -0
  315. package/dist/internal/index-impl/nativeFeatureEvidenceRiskRank.js +6 -0
  316. package/dist/internal/index-impl/nativeImportCategoryForLossKind.js +16 -0
  317. package/dist/internal/index-impl/nativeImportEntries.js +4 -0
  318. package/dist/internal/index-impl/nativeImportFeatureEvidenceHasKey.js +5 -0
  319. package/dist/internal/index-impl/nativeImportFeatureEvidenceIds.js +10 -0
  320. package/dist/internal/index-impl/nativeImportFeatureEvidencePolicy.js +14 -0
  321. package/dist/internal/index-impl/nativeImportFeatureEvidenceReasons.js +8 -0
  322. package/dist/internal/index-impl/nativeImportFeatureEvidenceValue.js +11 -0
  323. package/dist/internal/index-impl/nativeImportFeatureEvidenceValuePresent.js +7 -0
  324. package/dist/internal/index-impl/nativeImportHasExactAstCoverage.js +5 -0
  325. package/dist/internal/index-impl/nativeImportProjectionContext.js +40 -0
  326. package/dist/internal/index-impl/nativeImportReadiness.js +6 -0
  327. package/dist/internal/index-impl/nativeImportReadinessReasons.js +16 -0
  328. package/dist/internal/index-impl/nativeImportRoundtripParser.js +10 -0
  329. package/dist/internal/index-impl/nativeImportRoundtripReasons.js +22 -0
  330. package/dist/internal/index-impl/nativeImportSourcePreservationRecord.js +6 -0
  331. package/dist/internal/index-impl/nativeImportSourceText.js +6 -0
  332. package/dist/internal/index-impl/nativeImporterAdapterCapabilityEvidence.js +59 -0
  333. package/dist/internal/index-impl/nativeImporterAdapterCoverage.js +12 -0
  334. package/dist/internal/index-impl/nativeJavaScriptImporterDeps.js +12 -0
  335. package/dist/internal/index-impl/nativeNodeId.js +8 -0
  336. package/dist/internal/index-impl/nativeProjectionDeclarationKind.js +12 -0
  337. package/dist/internal/index-impl/nativeProjectionDeclarations.js +48 -0
  338. package/dist/internal/index-impl/nativeProjectionImportOnlySymbol.js +5 -0
  339. package/dist/internal/index-impl/nativeProjectionKindForNode.js +12 -0
  340. package/dist/internal/index-impl/nativeProjectionLineComment.js +5 -0
  341. package/dist/internal/index-impl/nativeProjectionLoss.js +23 -0
  342. package/dist/internal/index-impl/nativeProjectionSourceCandidate.js +22 -0
  343. package/dist/internal/index-impl/nativeProjectionStubHeader.js +11 -0
  344. package/dist/internal/index-impl/nativeProjectionStubLosses.js +36 -0
  345. package/dist/internal/index-impl/nativeSourceChangeReasons.js +11 -0
  346. package/dist/internal/index-impl/nativeSourceChangeSummary.js +13 -0
  347. package/dist/internal/index-impl/nativeSourceCompileDeclarationGeneratedSpan.js +25 -0
  348. package/dist/internal/index-impl/nativeSourceCompileDeclarationMappings.js +31 -0
  349. package/dist/internal/index-impl/nativeSourceCompileEvidence.js +30 -0
  350. package/dist/internal/index-impl/nativeSourceCompileFileMapping.js +21 -0
  351. package/dist/internal/index-impl/nativeSourceCompileFullGeneratedSpan.js +16 -0
  352. package/dist/internal/index-impl/nativeSourceCompileGeneratedSpanForOffset.js +17 -0
  353. package/dist/internal/index-impl/nativeSourceCompileGeneratedSpanFromSource.js +13 -0
  354. package/dist/internal/index-impl/nativeSourceCompileMapTarget.js +6 -0
  355. package/dist/internal/index-impl/nativeSourceCompilePreservedMappings.js +51 -0
  356. package/dist/internal/index-impl/nativeSourceCompileSourceMaps.js +41 -0
  357. package/dist/internal/index-impl/nativeSourceCompileTargetCoverage.js +21 -0
  358. package/dist/internal/index-impl/nativeSourceCompileTargetExtension.js +10 -0
  359. package/dist/internal/index-impl/nativeSourceCompileTargetLoss.js +32 -0
  360. package/dist/internal/index-impl/nativeSourceCompileTargetLosses.js +43 -0
  361. package/dist/internal/index-impl/nativeSourceCompileTargetPath.js +9 -0
  362. package/dist/internal/index-impl/nativeTargetProjectionAdapterEvidence.js +26 -0
  363. package/dist/internal/index-impl/nativeTargetProjectionAdapterMatches.js +16 -0
  364. package/dist/internal/index-impl/nativeTargetProjectionDiagnosticToLoss.js +22 -0
  365. package/dist/internal/index-impl/normalizeAdapterDiagnostics.js +28 -0
  366. package/dist/internal/index-impl/normalizeArray.js +4 -0
  367. package/dist/internal/index-impl/normalizeCSharpRoslynKind.js +38 -0
  368. package/dist/internal/index-impl/normalizeCompileTarget.js +9 -0
  369. package/dist/internal/index-impl/normalizeDiagnosticSeverity.js +6 -0
  370. package/dist/internal/index-impl/normalizeExternalOccurrenceRole.js +9 -0
  371. package/dist/internal/index-impl/normalizeExternalSemanticIndexFormat.js +34 -0
  372. package/dist/internal/index-impl/normalizeExternalSemanticIndexPayload.js +10 -0
  373. package/dist/internal/index-impl/normalizeExternalSemanticLanguage.js +7 -0
  374. package/dist/internal/index-impl/normalizeExternalSpan.js +21 -0
  375. package/dist/internal/index-impl/normalizeExternalSymbolKind.js +6 -0
  376. package/dist/internal/index-impl/normalizeFrontierSemanticIndexPayload.js +14 -0
  377. package/dist/internal/index-impl/normalizeGenericExternalSemanticIndexPayload.js +15 -0
  378. package/dist/internal/index-impl/normalizeGleanPayload.js +210 -0
  379. package/dist/internal/index-impl/normalizeGoAstKind.js +14 -0
  380. package/dist/internal/index-impl/normalizeJavaAstKind.js +24 -0
  381. package/dist/internal/index-impl/normalizeKotlinPsiKind.js +54 -0
  382. package/dist/internal/index-impl/normalizeLossSeverity.js +6 -0
  383. package/dist/internal/index-impl/normalizeLsifPayload.js +91 -0
  384. package/dist/internal/index-impl/normalizeLspDocuments.js +15 -0
  385. package/dist/internal/index-impl/normalizeLspPayload.js +33 -0
  386. package/dist/internal/index-impl/normalizeLspSymbolKind.js +5 -0
  387. package/dist/internal/index-impl/normalizeNativeDiffImport.js +15 -0
  388. package/dist/internal/index-impl/normalizeNativeImporterAdapter.js +33 -0
  389. package/dist/internal/index-impl/normalizeNativeImporterAdapterCoverage.js +38 -0
  390. package/dist/internal/index-impl/normalizeNativeImporterAdapterObservedCoverage.js +43 -0
  391. package/dist/internal/index-impl/normalizeNativeImporterSemanticCoverage.js +18 -0
  392. package/dist/internal/index-impl/normalizeNativeLossKind.js +8 -0
  393. package/dist/internal/index-impl/normalizeNativeLossRecord.js +20 -0
  394. package/dist/internal/index-impl/normalizeNativeLossRecords.js +6 -0
  395. package/dist/internal/index-impl/normalizeNativeTargetProjectionAdapter.js +37 -0
  396. package/dist/internal/index-impl/normalizeNativeTargetProjectionAdapterCoverage.js +20 -0
  397. package/dist/internal/index-impl/normalizeParserErrors.js +18 -0
  398. package/dist/internal/index-impl/normalizeRustSynKind.js +32 -0
  399. package/dist/internal/index-impl/normalizeScipPayload.js +98 -0
  400. package/dist/internal/index-impl/normalizeSemanticDbPayload.js +57 -0
  401. package/dist/internal/index-impl/normalizeSemanticSliceRef.js +4 -0
  402. package/dist/internal/index-impl/normalizeSwiftSyntaxKind.js +45 -0
  403. package/dist/internal/index-impl/normalizeSyntaxAstRoot.js +5 -0
  404. package/dist/internal/index-impl/numberOrUndefined.js +3 -0
  405. package/dist/internal/index-impl/observeNativeImporterAdapterCoverage.js +24 -0
  406. package/dist/internal/index-impl/observeNativeImporterAdapterCoverageDetails.js +66 -0
  407. package/dist/internal/index-impl/observeNativeImporterSemanticEvidence.js +23 -0
  408. package/dist/internal/index-impl/observedAdapterExactness.js +6 -0
  409. package/dist/internal/index-impl/oneLine.js +3 -0
  410. package/dist/internal/index-impl/parseCSharpRoslynSource.js +15 -0
  411. package/dist/internal/index-impl/parseClangAstSource.js +16 -0
  412. package/dist/internal/index-impl/parseGoAstSource.js +15 -0
  413. package/dist/internal/index-impl/parseJavaAstSource.js +16 -0
  414. package/dist/internal/index-impl/parseKotlinPsiSource.js +16 -0
  415. package/dist/internal/index-impl/parsePythonAstSource.js +16 -0
  416. package/dist/internal/index-impl/parseRustSynSource.js +13 -0
  417. package/dist/internal/index-impl/parseSwiftSyntaxSource.js +15 -0
  418. package/dist/internal/index-impl/parseTreeSitterSource.js +6 -0
  419. package/dist/internal/index-impl/primitiveCSharpRoslynFields.js +23 -0
  420. package/dist/internal/index-impl/primitiveClangAstFields.js +31 -0
  421. package/dist/internal/index-impl/primitiveGoAstFields.js +22 -0
  422. package/dist/internal/index-impl/primitiveJavaAstFields.js +22 -0
  423. package/dist/internal/index-impl/primitiveKotlinPsiFields.js +24 -0
  424. package/dist/internal/index-impl/primitivePythonAstFields.js +18 -0
  425. package/dist/internal/index-impl/primitiveRustSynFields.js +16 -0
  426. package/dist/internal/index-impl/primitiveSwiftSyntaxFields.js +21 -0
  427. package/dist/internal/index-impl/primitiveSyntaxFields.js +13 -0
  428. package/dist/internal/index-impl/primitiveTypeScriptFields.js +9 -0
  429. package/dist/internal/index-impl/projectFrontierAst.js +6 -0
  430. package/dist/internal/index-impl/projectImportAdmissionDecision.js +27 -0
  431. package/dist/internal/index-impl/projectImportAdmissionMergeScore.js +316 -0
  432. package/dist/internal/index-impl/projectImportAdmissionSummaries.js +252 -0
  433. package/dist/internal/index-impl/projectNativeImportToSource.js +90 -0
  434. package/dist/internal/index-impl/projectors.js +8 -0
  435. package/dist/internal/index-impl/pythonAliasName.js +5 -0
  436. package/dist/internal/index-impl/pythonAssignmentName.js +9 -0
  437. package/dist/internal/index-impl/pythonAstChildEntries.js +11 -0
  438. package/dist/internal/index-impl/pythonAstDeclaration.js +18 -0
  439. package/dist/internal/index-impl/pythonAstKind.js +3 -0
  440. package/dist/internal/index-impl/pythonAstLiteralValue.js +6 -0
  441. package/dist/internal/index-impl/pythonAstNodeValue.js +4 -0
  442. package/dist/internal/index-impl/pythonAstRoot.js +9 -0
  443. package/dist/internal/index-impl/pythonTargetName.js +12 -0
  444. package/dist/internal/index-impl/queryNativeParserFeatureMatrix.js +5 -0
  445. package/dist/internal/index-impl/queryProjectionReadinessMatrix.js +5 -0
  446. package/dist/internal/index-impl/readSemanticSliceJson.js +7 -0
  447. package/dist/internal/index-impl/readStringArray.js +5 -0
  448. package/dist/internal/index-impl/readUniversalAstJson.js +9 -0
  449. package/dist/internal/index-impl/relationPredicateForDeclaration.js +5 -0
  450. package/dist/internal/index-impl/renderCProjectionStubs.js +11 -0
  451. package/dist/internal/index-impl/renderGenericProjectionStubs.js +5 -0
  452. package/dist/internal/index-impl/renderJavaScriptProjectionStubs.js +12 -0
  453. package/dist/internal/index-impl/renderNativeProjectionStubs.js +13 -0
  454. package/dist/internal/index-impl/renderPythonProjectionStubs.js +10 -0
  455. package/dist/internal/index-impl/renderRustProjectionStubs.js +11 -0
  456. package/dist/internal/index-impl/renderTargetAst.js +6 -0
  457. package/dist/internal/index-impl/renderTargetAstWithSourceMap.js +6 -0
  458. package/dist/internal/index-impl/renderTypeScriptProjectionStubs.js +14 -0
  459. package/dist/internal/index-impl/renderers.js +8 -0
  460. package/dist/internal/index-impl/resolveCapabilityAdapters.js +29 -0
  461. package/dist/internal/index-impl/resolveNativeProjectAdapter.js +11 -0
  462. package/dist/internal/index-impl/resolveNativeTargetProjectionAdapter.js +14 -0
  463. package/dist/internal/index-impl/runNativeImporterAdapter.js +130 -0
  464. package/dist/internal/index-impl/runNativeTargetProjectionAdapter.js +115 -0
  465. package/dist/internal/index-impl/rustSynAstRoot.js +11 -0
  466. package/dist/internal/index-impl/rustSynChildEntries.js +10 -0
  467. package/dist/internal/index-impl/rustSynColumnToOneBased.js +3 -0
  468. package/dist/internal/index-impl/rustSynDeclaration.js +40 -0
  469. package/dist/internal/index-impl/rustSynIdentName.js +12 -0
  470. package/dist/internal/index-impl/rustSynImplName.js +11 -0
  471. package/dist/internal/index-impl/rustSynKind.js +15 -0
  472. package/dist/internal/index-impl/rustSynLiteralValue.js +5 -0
  473. package/dist/internal/index-impl/rustSynMacroKind.js +3 -0
  474. package/dist/internal/index-impl/rustSynNodeValue.js +6 -0
  475. package/dist/internal/index-impl/rustSynPathName.js +21 -0
  476. package/dist/internal/index-impl/rustSynPayload.js +6 -0
  477. package/dist/internal/index-impl/rustSynSpanKind.js +5 -0
  478. package/dist/internal/index-impl/rustSynUseName.js +26 -0
  479. package/dist/internal/index-impl/rustSynVisibility.js +9 -0
  480. package/dist/internal/index-impl/rustSynWrapperKind.js +12 -0
  481. package/dist/internal/index-impl/safeNativeImporterAdapterSummary.js +8 -0
  482. package/dist/internal/index-impl/safeNativeTargetProjectionAdapterSummary.js +8 -0
  483. package/dist/internal/index-impl/safeProjectionIdentifier.js +5 -0
  484. package/dist/internal/index-impl/scipOccurrenceRole.js +8 -0
  485. package/dist/internal/index-impl/scipOccurrenceRoleSet.js +12 -0
  486. package/dist/internal/index-impl/scipRelationshipRelations.js +20 -0
  487. package/dist/internal/index-impl/scipSymbolFacts.js +31 -0
  488. package/dist/internal/index-impl/scipSymbolId.js +8 -0
  489. package/dist/internal/index-impl/scipSyntaxKind.js +8 -0
  490. package/dist/internal/index-impl/selectSemanticSliceRecords.js +70 -0
  491. package/dist/internal/index-impl/semanticDbOccurrenceRole.js +5 -0
  492. package/dist/internal/index-impl/semanticDbSymbolFacts.js +15 -0
  493. package/dist/internal/index-impl/semanticDbSymbolId.js +7 -0
  494. package/dist/internal/index-impl/semanticHistoryRecords.js +233 -0
  495. package/dist/internal/index-impl/semanticIndexFromNativeDeclarations.js +127 -0
  496. package/dist/internal/index-impl/semanticMergeAdmissionForSeverity.js +5 -0
  497. package/dist/internal/index-impl/semanticMergeConflicts.js +116 -0
  498. package/dist/internal/index-impl/semanticPatchBundleRecords.js +240 -0
  499. package/dist/internal/index-impl/semanticPredicateMatches.js +4 -0
  500. package/dist/internal/index-impl/semanticSliceAssertion.js +8 -0
  501. package/dist/internal/index-impl/semanticSliceContext.js +24 -0
  502. package/dist/internal/index-impl/semanticSliceCurrentSource.js +4 -0
  503. package/dist/internal/index-impl/semanticSliceExpectedAssertions.js +8 -0
  504. package/dist/internal/index-impl/semanticSliceImportResult.js +30 -0
  505. package/dist/internal/index-impl/semanticSliceMappingMatchesRef.js +15 -0
  506. package/dist/internal/index-impl/semanticSliceMappingTouchesSets.js +7 -0
  507. package/dist/internal/index-impl/semanticSliceNativeNodeMatchesRef.js +12 -0
  508. package/dist/internal/index-impl/semanticSliceNativeParentMap.js +7 -0
  509. package/dist/internal/index-impl/semanticSliceReadiness.js +14 -0
  510. package/dist/internal/index-impl/semanticSliceReasons.js +11 -0
  511. package/dist/internal/index-impl/semanticSliceRecords.js +62 -0
  512. package/dist/internal/index-impl/semanticSliceRegionFromMapping.js +16 -0
  513. package/dist/internal/index-impl/semanticSliceRegionFromSymbol.js +21 -0
  514. package/dist/internal/index-impl/semanticSliceRegionMatchesRef.js +12 -0
  515. package/dist/internal/index-impl/semanticSliceRegionTouchesSets.js +6 -0
  516. package/dist/internal/index-impl/semanticSliceSourceFiles.js +35 -0
  517. package/dist/internal/index-impl/semanticSliceSourceHashAssertions.js +27 -0
  518. package/dist/internal/index-impl/semanticSliceSourceHashMap.js +18 -0
  519. package/dist/internal/index-impl/semanticSliceSourceMapLinks.js +21 -0
  520. package/dist/internal/index-impl/semanticSliceSourceSpans.js +9 -0
  521. package/dist/internal/index-impl/semanticSliceSourceTextMap.js +19 -0
  522. package/dist/internal/index-impl/semanticSliceSpanTouchesSelection.js +6 -0
  523. package/dist/internal/index-impl/semanticSliceSpansOverlap.js +15 -0
  524. package/dist/internal/index-impl/semanticSliceSymbolMatchesRef.js +13 -0
  525. package/dist/internal/index-impl/semanticSliceSymbolSpan.js +3 -0
  526. package/dist/internal/index-impl/semanticSliceSymbolTouchesSets.js +7 -0
  527. package/dist/internal/index-impl/semanticSliceTouchedSymbol.js +16 -0
  528. package/dist/internal/index-impl/semanticSliceValueMatches.js +6 -0
  529. package/dist/internal/index-impl/semanticTokenModifiers.js +7 -0
  530. package/dist/internal/index-impl/serializableDiagnostic.js +13 -0
  531. package/dist/internal/index-impl/serializableIncludeGraphSummary.js +10 -0
  532. package/dist/internal/index-impl/shortNodeText.js +6 -0
  533. package/dist/internal/index-impl/sourceMapRenderers.js +8 -0
  534. package/dist/internal/index-impl/sourcePreservationFromProjectionContext.js +5 -0
  535. package/dist/internal/index-impl/sourceSpanPathMatches.js +4 -0
  536. package/dist/internal/index-impl/sourceTextForSpan.js +12 -0
  537. package/dist/internal/index-impl/spanFromCSharpLineFields.js +12 -0
  538. package/dist/internal/index-impl/spanFromCSharpLineSpan.js +18 -0
  539. package/dist/internal/index-impl/spanFromCSharpRoslynNode.js +19 -0
  540. package/dist/internal/index-impl/spanFromClangAstNode.js +17 -0
  541. package/dist/internal/index-impl/spanFromGoAstNode.js +14 -0
  542. package/dist/internal/index-impl/spanFromJavaAstNode.js +36 -0
  543. package/dist/internal/index-impl/spanFromJavaLineFields.js +12 -0
  544. package/dist/internal/index-impl/spanFromJavaRange.js +22 -0
  545. package/dist/internal/index-impl/spanFromKotlinLineFields.js +12 -0
  546. package/dist/internal/index-impl/spanFromKotlinPsiNode.js +19 -0
  547. package/dist/internal/index-impl/spanFromKotlinRange.js +18 -0
  548. package/dist/internal/index-impl/spanFromLoc.js +11 -0
  549. package/dist/internal/index-impl/spanFromLspRange.js +12 -0
  550. package/dist/internal/index-impl/spanFromPythonAstNode.js +15 -0
  551. package/dist/internal/index-impl/spanFromRustSynNode.js +20 -0
  552. package/dist/internal/index-impl/spanFromScipOccurrence.js +40 -0
  553. package/dist/internal/index-impl/spanFromSemanticDbRange.js +11 -0
  554. package/dist/internal/index-impl/spanFromSwiftLineFields.js +12 -0
  555. package/dist/internal/index-impl/spanFromSwiftRange.js +18 -0
  556. package/dist/internal/index-impl/spanFromSwiftSyntaxNode.js +19 -0
  557. package/dist/internal/index-impl/spanFromTreeSitterNode.js +13 -0
  558. package/dist/internal/index-impl/spanFromTypeScriptNode.js +15 -0
  559. package/dist/internal/index-impl/stringFromTsExpression.js +7 -0
  560. package/dist/internal/index-impl/summarizeNativeChangedRegionProjections.js +16 -0
  561. package/dist/internal/index-impl/summarizeNativeImportFeatureEvidence.js +60 -0
  562. package/dist/internal/index-impl/summarizeNativeImportLosses.js +65 -0
  563. package/dist/internal/index-impl/summarizeProjectSourcePreservation.js +15 -0
  564. package/dist/internal/index-impl/swiftEvidenceSummary.js +19 -0
  565. package/dist/internal/index-impl/swiftGeneratedCodeLoss.js +20 -0
  566. package/dist/internal/index-impl/swiftGeneratedCodeMarker.js +11 -0
  567. package/dist/internal/index-impl/swiftGeneratedSourcePath.js +3 -0
  568. package/dist/internal/index-impl/swiftSyntaxAttributeNames.js +10 -0
  569. package/dist/internal/index-impl/swiftSyntaxChildEntries.js +18 -0
  570. package/dist/internal/index-impl/swiftSyntaxChildWithParent.js +6 -0
  571. package/dist/internal/index-impl/swiftSyntaxConditionalCompilationKind.js +3 -0
  572. package/dist/internal/index-impl/swiftSyntaxDeclarationName.js +19 -0
  573. package/dist/internal/index-impl/swiftSyntaxDeclarations.js +38 -0
  574. package/dist/internal/index-impl/swiftSyntaxEnumCaseNames.js +7 -0
  575. package/dist/internal/index-impl/swiftSyntaxFunctionLikeKind.js +8 -0
  576. package/dist/internal/index-impl/swiftSyntaxHasBody.js +3 -0
  577. package/dist/internal/index-impl/swiftSyntaxImportPath.js +14 -0
  578. package/dist/internal/index-impl/swiftSyntaxKind.js +11 -0
  579. package/dist/internal/index-impl/swiftSyntaxLiteralValue.js +5 -0
  580. package/dist/internal/index-impl/swiftSyntaxMacroKind.js +3 -0
  581. package/dist/internal/index-impl/swiftSyntaxModifierNames.js +16 -0
  582. package/dist/internal/index-impl/swiftSyntaxName.js +14 -0
  583. package/dist/internal/index-impl/swiftSyntaxNodeValue.js +7 -0
  584. package/dist/internal/index-impl/swiftSyntaxOperatorName.js +6 -0
  585. package/dist/internal/index-impl/swiftSyntaxPatternName.js +6 -0
  586. package/dist/internal/index-impl/swiftSyntaxPosition.js +27 -0
  587. package/dist/internal/index-impl/swiftSyntaxPositionKind.js +6 -0
  588. package/dist/internal/index-impl/swiftSyntaxProblemNode.js +13 -0
  589. package/dist/internal/index-impl/swiftSyntaxRecoveredKind.js +7 -0
  590. package/dist/internal/index-impl/swiftSyntaxRoot.js +15 -0
  591. package/dist/internal/index-impl/swiftSyntaxTypeDeclarationKind.js +7 -0
  592. package/dist/internal/index-impl/swiftSyntaxTypeDeclarationSymbolKind.js +8 -0
  593. package/dist/internal/index-impl/swiftSyntaxTypeName.js +19 -0
  594. package/dist/internal/index-impl/swiftSyntaxVariableNames.js +7 -0
  595. package/dist/internal/index-impl/syntaxDeclaration.js +18 -0
  596. package/dist/internal/index-impl/testSemanticSlice.js +43 -0
  597. package/dist/internal/index-impl/treeSitterDeclaration.js +24 -0
  598. package/dist/internal/index-impl/treeSitterFieldText.js +5 -0
  599. package/dist/internal/index-impl/truncatedAstLoss.js +16 -0
  600. package/dist/internal/index-impl/typeScriptDeclaration.js +14 -0
  601. package/dist/internal/index-impl/typeScriptKindName.js +6 -0
  602. package/dist/internal/index-impl/typeScriptNodeValue.js +4 -0
  603. package/dist/internal/index-impl/uniqueNativeProjectionDeclarations.js +9 -0
  604. package/dist/internal/index-impl/uniqueSemanticSliceNativeNodes.js +11 -0
  605. package/dist/internal/index-impl/uniqueSemanticSliceRegions.js +15 -0
  606. package/dist/internal/index-impl/uniqueSemanticSliceSpans.js +21 -0
  607. package/dist/internal/index-impl/unverifiedNativeAstLosses.js +16 -0
  608. package/dist/internal/index-impl/uriToPath.js +11 -0
  609. package/dist/internal/index-impl/visitCSharpRoslynNode.js +87 -0
  610. package/dist/internal/index-impl/visitClangAstNode.js +62 -0
  611. package/dist/internal/index-impl/visitGoAstNode.js +99 -0
  612. package/dist/internal/index-impl/visitJavaAstNode.js +73 -0
  613. package/dist/internal/index-impl/visitKotlinPsiNode.js +108 -0
  614. package/dist/internal/index-impl/visitPythonAstNode.js +47 -0
  615. package/dist/internal/index-impl/visitRustSynNode.js +62 -0
  616. package/dist/internal/index-impl/visitSwiftSyntaxNode.js +103 -0
  617. package/dist/internal/index-impl/visitSyntaxAstNode.js +46 -0
  618. package/dist/internal/index-impl/visitTreeSitterNode.js +145 -0
  619. package/dist/internal/index-impl/visitTypeScriptAstNode.js +45 -0
  620. package/dist/internal/index-impl/withExternalEmptyLoss.js +32 -0
  621. package/dist/internal/index-impl/withNativeImportReadiness.js +53 -0
  622. package/dist/internal/index-impl/writeSemanticSliceJson.js +7 -0
  623. package/dist/internal/index-impl/writeUniversalAstJson.js +8 -0
  624. package/dist/language-adapter-package-contracts.js +289 -0
  625. package/dist/native-import-coverage-matrix.js +237 -0
  626. package/dist/native-import-language-profiles.js +169 -0
  627. package/dist/native-import-utils.js +143 -0
  628. package/dist/native-js-ts-importers.js +85 -0
  629. package/dist/native-parser-ast-format-matrix.js +147 -0
  630. package/dist/native-parser-ast-format-profiles.js +271 -0
  631. package/dist/native-parser-feature-assessment.js +118 -0
  632. package/dist/native-parser-feature-coverage.js +268 -0
  633. package/dist/native-parser-feature-matrix.js +92 -0
  634. package/dist/native-parser-feature-rows.js +219 -0
  635. package/dist/native-region-scanner-core.js +179 -0
  636. package/dist/native-region-scanner-dynamic.js +259 -0
  637. package/dist/native-region-scanner-functional.js +191 -0
  638. package/dist/native-region-scanner-js.js +310 -0
  639. package/dist/native-region-scanner-main.js +301 -0
  640. package/dist/native-region-scanner.js +62 -0
  641. package/dist/native-source-maps.js +260 -0
  642. package/dist/native-source-preservation-scanner.js +266 -0
  643. package/dist/native-source-preservation-types.d.ts +77 -0
  644. package/dist/projection-readiness-helpers.js +166 -0
  645. package/dist/projection-readiness-matrix.js +122 -0
  646. package/dist/projection-target-loss-matrix.js +318 -0
  647. package/dist/semantic-import-contract-summary.js +188 -0
  648. package/dist/semantic-import-layers.js +320 -0
  649. package/dist/semantic-import-regions.js +181 -0
  650. package/dist/semantic-import-sidecar-admission-types.d.ts +61 -0
  651. package/dist/semantic-import-sidecar-entry.js +78 -0
  652. package/dist/semantic-import-sidecar-types.d.ts +275 -0
  653. package/dist/semantic-import-source-preservation.js +198 -0
  654. package/dist/universal-capability-matrix.js +280 -0
  655. package/dist/universal-dialect-layer.js +74 -0
  656. package/dist/universal-dialect-registry.js +204 -0
  657. package/dist/universal-dialect-utils.js +110 -0
  658. package/package.json +9 -9
@@ -0,0 +1,271 @@
1
+ import {
2
+ uniqueStrings
3
+ } from './native-import-utils.js';
4
+
5
+ export const NativeParserFeatureCategories = Object.freeze([
6
+ 'syntax',
7
+ 'semantic',
8
+ 'type',
9
+ 'controlFlow',
10
+ 'macroMetaprogramming',
11
+ 'sourcePreservation'
12
+ ]);
13
+
14
+ export const NativeParserFeatureCoverageStatuses = Object.freeze([
15
+ 'full',
16
+ 'partial',
17
+ 'evidence-required',
18
+ 'missing',
19
+ 'blocked',
20
+ 'not-applicable'
21
+ ]);
22
+
23
+
24
+ export const NativeParserAstFormatProfiles = Object.freeze([
25
+ nativeParserAstFormatProfile('estree', {
26
+ kind: 'abstract-ast',
27
+ languages: ['javascript'],
28
+ parserAdapters: ['estree'],
29
+ exactness: 'exact-parser-ast',
30
+ sourceRangeModel: 'loc-range',
31
+ preservesTokens: false,
32
+ preservesTrivia: false,
33
+ supportsErrorRecovery: false,
34
+ notes: ['Community JavaScript AST shape used by many JS tooling parsers.']
35
+ }),
36
+ nativeParserAstFormatProfile('babel', {
37
+ kind: 'abstract-ast',
38
+ languages: ['javascript', 'typescript'],
39
+ parserAdapters: ['babel'],
40
+ exactness: 'exact-parser-ast',
41
+ sourceRangeModel: 'loc-range',
42
+ preservesTokens: false,
43
+ preservesTrivia: false,
44
+ supportsErrorRecovery: true,
45
+ notes: ['Babel-compatible ESTree-like ASTs can report parser errors when error recovery is enabled.']
46
+ }),
47
+ nativeParserAstFormatProfile('typescript-compiler-api', {
48
+ kind: 'compiler-ast',
49
+ languages: ['typescript', 'javascript'],
50
+ parserAdapters: ['typescript-compiler-api'],
51
+ exactness: 'exact-parser-ast',
52
+ sourceRangeModel: 'pos-end',
53
+ preservesTokens: false,
54
+ preservesTrivia: false,
55
+ supportsErrorRecovery: true,
56
+ notes: ['TypeScript SourceFile trees can be parsed without a full Program; richer type/checker evidence remains host-owned.']
57
+ }),
58
+ nativeParserAstFormatProfile('python-ast', {
59
+ kind: 'abstract-ast',
60
+ languages: ['python'],
61
+ parserAdapters: ['python-ast'],
62
+ exactness: 'exact-parser-ast',
63
+ sourceRangeModel: 'lineno-col-offset',
64
+ preservesTokens: false,
65
+ preservesTrivia: false,
66
+ supportsErrorRecovery: false,
67
+ notes: ['Python stdlib AST exposes versioned abstract grammar and source locations, but not formatting trivia.']
68
+ }),
69
+ nativeParserAstFormatProfile('rust-syn', {
70
+ aliases: ['syn'],
71
+ kind: 'abstract-ast',
72
+ languages: ['rust'],
73
+ parserAdapters: ['syn', 'rust-syn'],
74
+ exactness: 'exact-parser-ast',
75
+ sourceRangeModel: 'proc-macro2-span',
76
+ preservesTokens: false,
77
+ preservesTrivia: false,
78
+ supportsErrorRecovery: false,
79
+ notes: ['syn parses Rust token streams into an abstract syntax tree; macro expansion, name resolution, type checking, and lossless trivia remain host-owned evidence.']
80
+ }),
81
+ nativeParserAstFormatProfile('rust-analyzer-rowan', {
82
+ aliases: ['rowan', 'rust-analyzer'],
83
+ kind: 'concrete-syntax-tree',
84
+ languages: ['rust'],
85
+ parserAdapters: ['rust-analyzer-rowan'],
86
+ exactness: 'parser-tree',
87
+ sourceRangeModel: 'text-range',
88
+ preservesTokens: true,
89
+ preservesTrivia: true,
90
+ supportsIncremental: true,
91
+ supportsErrorRecovery: true,
92
+ notes: ['rust-analyzer uses rowan-backed concrete syntax trees with AST wrappers; semantic richness still depends on host analysis evidence.']
93
+ }),
94
+ nativeParserAstFormatProfile('clang-ast-json', {
95
+ aliases: ['clang', 'libclang', 'clang-json', 'clang-ast-dump-json'],
96
+ kind: 'compiler-ast',
97
+ languages: ['c', 'cpp'],
98
+ parserAdapters: ['clang', 'libclang', 'clang-ast-json'],
99
+ exactness: 'exact-parser-ast',
100
+ sourceRangeModel: 'clang-loc-range',
101
+ preservesTokens: false,
102
+ preservesTrivia: false,
103
+ supportsErrorRecovery: false,
104
+ notes: ['Clang JSON AST dumps expose compiler AST declarations and source ranges after preprocessing; compile commands, macros, inactive branches, type checking, and lossless formatting remain host-owned evidence.']
105
+ }),
106
+ nativeParserAstFormatProfile('go-ast', {
107
+ aliases: ['go/parser', 'goast', 'golang-ast'],
108
+ kind: 'compiler-ast',
109
+ languages: ['go'],
110
+ parserAdapters: ['go/ast', 'go/parser', 'go-ast'],
111
+ exactness: 'exact-parser-ast',
112
+ sourceRangeModel: 'token-position',
113
+ preservesTokens: false,
114
+ preservesTrivia: false,
115
+ supportsErrorRecovery: true,
116
+ notes: ['Go go/ast trees expose parser syntax nodes and token positions; FileSet, build tags, generated-code classification, package loading, go/types, comments/trivia, and control-flow evidence remain host-owned.']
117
+ }),
118
+ nativeParserAstFormatProfile('java-ast', {
119
+ aliases: ['javac', 'javac-tree', 'jdt', 'eclipse-jdt', 'javaparser', 'java-parser'],
120
+ kind: 'compiler-ast',
121
+ languages: ['java'],
122
+ parserAdapters: ['javac', 'jdt', 'javaparser', 'java-ast'],
123
+ exactness: 'exact-parser-ast',
124
+ sourceRangeModel: 'java-source-range',
125
+ preservesTokens: false,
126
+ preservesTrivia: false,
127
+ supportsErrorRecovery: true,
128
+ notes: ['Java compiler/parser ASTs expose package/import/type/member declarations and source ranges; classpath/module-path, bindings, annotation processors, generated sources, Lombok expansion, comments/trivia, and control-flow evidence remain host-owned.']
129
+ }),
130
+ nativeParserAstFormatProfile('kotlin-psi', {
131
+ aliases: ['kotlin-compiler', 'kotlin-compiler-psi', 'intellij-psi', 'kt-psi', 'kotlin-ast'],
132
+ kind: 'compiler-ast',
133
+ languages: ['kotlin'],
134
+ parserAdapters: ['kotlin-compiler', 'kotlin-psi', 'intellij-psi'],
135
+ exactness: 'exact-parser-ast',
136
+ sourceRangeModel: 'text-range-line-column',
137
+ preservesTokens: true,
138
+ preservesTrivia: true,
139
+ supportsErrorRecovery: true,
140
+ notes: ['Kotlin PSI exposes source syntax and IntelliJ parser errors; Analysis API symbols, FIR/K2 types, expect/actual matching, compiler plugins, generated sources, scripts, and build variants remain host-owned evidence.']
141
+ }),
142
+ nativeParserAstFormatProfile('roslyn-csharp', {
143
+ aliases: ['roslyn', 'csharp-roslyn', 'c#-roslyn', 'microsoft-codeanalysis-csharp', 'csharp-syntax'],
144
+ kind: 'compiler-ast',
145
+ languages: ['csharp'],
146
+ parserAdapters: ['roslyn', 'microsoft.codeanalysis.csharp', 'csharp-roslyn'],
147
+ exactness: 'exact-parser-ast',
148
+ sourceRangeModel: 'text-span-line-position-span',
149
+ preservesTokens: true,
150
+ preservesTrivia: true,
151
+ supportsIncremental: true,
152
+ supportsErrorRecovery: true,
153
+ notes: ['Roslyn C# syntax trees expose immutable nodes, tokens, trivia, spans, diagnostics, directives, and skipped text; SemanticModel symbols, nullable analysis, generated sources, partial type stitching, analyzer results, and project references remain host-owned evidence.']
154
+ }),
155
+ nativeParserAstFormatProfile('swift-syntax', {
156
+ aliases: ['swiftsyntax', 'swiftparser', 'swift-parser', 'swift-syntax-json'],
157
+ kind: 'concrete-syntax-tree',
158
+ languages: ['swift'],
159
+ parserAdapters: ['swift-syntax', 'swiftparser'],
160
+ exactness: 'parser-tree',
161
+ sourceRangeModel: 'absolute-position-source-location',
162
+ preservesTokens: true,
163
+ preservesTrivia: true,
164
+ supportsIncremental: false,
165
+ supportsErrorRecovery: true,
166
+ notes: ['SwiftSyntax exposes a source-accurate syntax tree with missing/unexpected nodes and token/trivia structure; SourceKit symbols, macro expansion, conditional compilation branch resolution, type checking, generated sources, and package/module dependency resolution remain host-owned evidence.']
167
+ }),
168
+ nativeParserAstFormatProfile('tree-sitter', {
169
+ kind: 'concrete-syntax-tree',
170
+ languages: ['mixed'],
171
+ parserAdapters: ['tree-sitter'],
172
+ exactness: 'parser-tree',
173
+ sourceRangeModel: 'row-column',
174
+ preservesTokens: false,
175
+ preservesTrivia: false,
176
+ supportsIncremental: true,
177
+ supportsErrorRecovery: true,
178
+ notes: ['Tree-sitter provides cross-language concrete syntax trees; language-specific queries still decide semantic richness.']
179
+ }),
180
+ nativeParserAstFormatProfile('libcst', {
181
+ kind: 'concrete-syntax-tree',
182
+ languages: ['python'],
183
+ parserAdapters: ['libcst'],
184
+ exactness: 'parser-tree',
185
+ sourceRangeModel: 'metadata-position-provider',
186
+ preservesTokens: true,
187
+ preservesTrivia: true,
188
+ supportsErrorRecovery: false,
189
+ notes: ['LibCST-style trees preserve formatting and are best treated as host-owned evidence until normalized explicitly.']
190
+ }),
191
+ nativeParserAstFormatProfile('scip', {
192
+ kind: 'semantic-index',
193
+ languages: ['mixed'],
194
+ parserAdapters: ['scip'],
195
+ exactness: 'loss-aware-native-ast',
196
+ sourceRangeModel: 'range-tuples',
197
+ preservesTokens: false,
198
+ preservesTrivia: false,
199
+ supportsErrorRecovery: false,
200
+ notes: ['SCIP is semantic index evidence rather than a full parser AST; it is useful for symbols/references and source maps.']
201
+ }),
202
+ nativeParserAstFormatProfile('lsif', {
203
+ kind: 'semantic-index',
204
+ languages: ['mixed'],
205
+ parserAdapters: ['lsif'],
206
+ exactness: 'loss-aware-native-ast',
207
+ sourceRangeModel: 'lsp-ranges',
208
+ preservesTokens: false,
209
+ preservesTrivia: false,
210
+ supportsErrorRecovery: false,
211
+ notes: ['LSIF graph dumps are semantic/source-map evidence, not complete native ASTs.']
212
+ })
213
+ ]);
214
+
215
+ export const NativeParserAstFormats = Object.freeze(NativeParserAstFormatProfiles.map((profile) => profile.id));
216
+
217
+
218
+
219
+ export function nativeParserAstFormatProfile(id, input = {}) {
220
+ return Object.freeze({
221
+ id,
222
+ aliases: Object.freeze(uniqueStrings(input.aliases ?? [])),
223
+ kind: input.kind ?? 'abstract-ast',
224
+ languages: Object.freeze(uniqueStrings(input.languages ?? [])),
225
+ parserAdapters: Object.freeze(uniqueStrings(input.parserAdapters ?? [id])),
226
+ exactness: input.exactness ?? 'unknown',
227
+ sourceRangeModel: input.sourceRangeModel ?? 'unknown',
228
+ preservesTokens: Boolean(input.preservesTokens),
229
+ preservesTrivia: Boolean(input.preservesTrivia),
230
+ supportsIncremental: Boolean(input.supportsIncremental),
231
+ supportsErrorRecovery: Boolean(input.supportsErrorRecovery),
232
+ notes: Object.freeze(uniqueStrings(input.notes ?? []))
233
+ });
234
+ }
235
+
236
+ export function normalizeParserAstFormatId(format) {
237
+ return String(format ?? '').trim().toLowerCase().replace(/[_\s]+/g, '-');
238
+ }
239
+
240
+
241
+ export function parserAstFormatIdForParser(parser) {
242
+ const text = normalizeParserAstFormatId(parser);
243
+ if (text.includes('typescript')) return 'typescript-compiler-api';
244
+ if (text.includes('python') && text.includes('ast')) return 'python-ast';
245
+ if (text === 'syn' || text.includes('rust-syn')) return 'rust-syn';
246
+ if (text.includes('rust-analyzer') || text.includes('rowan')) return 'rust-analyzer-rowan';
247
+ if (text.includes('clang') || text.includes('libclang')) return 'clang-ast-json';
248
+ if (text === 'go' || text.includes('go-parser') || text.includes('go-ast') || text.includes('go/parser') || text.includes('go/ast')) return 'go-ast';
249
+ if (text === 'java' || text.includes('javac') || text.includes('jdt') || text.includes('javaparser') || text.includes('java-parser') || text.includes('java-ast')) return 'java-ast';
250
+ if (text === 'kotlin' || text === 'kt' || text.includes('kotlin-psi') || text.includes('kotlin-compiler') || text.includes('intellij-psi') || text.includes('kt-psi')) return 'kotlin-psi';
251
+ if (text === 'csharp' || text === 'c#' || text === 'cs' || text.includes('roslyn') || text.includes('microsoft-codeanalysis-csharp') || text.includes('csharp-syntax')) return 'roslyn-csharp';
252
+ if (text.includes('swift-syntax') || text.includes('swiftsyntax') || text.includes('swiftparser') || text.includes('swift-parser')) return 'swift-syntax';
253
+ if (text.includes('tree-sitter') || text.includes('treesitter')) return 'tree-sitter';
254
+ if (text.includes('babel')) return 'babel';
255
+ if (text.includes('estree')) return 'estree';
256
+ if (text.includes('libcst')) return 'libcst';
257
+ if (text.includes('scip')) return 'scip';
258
+ if (text.includes('lsif')) return 'lsif';
259
+ return text || 'unknown';
260
+ }
261
+
262
+ export function parserAstFormatIdForImport(imported) {
263
+ return parserAstFormatIdForParser(
264
+ imported?.metadata?.adapter?.parser
265
+ ?? imported?.metadata?.astFormat
266
+ ?? imported?.nativeAst?.metadata?.astFormat
267
+ ?? imported?.nativeAst?.parser
268
+ ?? imported?.parser
269
+ ?? imported?.metadata?.parser
270
+ );
271
+ }
@@ -0,0 +1,118 @@
1
+ import {
2
+ maxSemanticMergeReadiness,
3
+ normalizeSemanticMergeReadiness,
4
+ normalizeStringList,
5
+ uniqueStrings
6
+ } from './native-import-utils.js';
7
+ import {
8
+ NativeParserFeatureCategories
9
+ } from './coverage-matrix-profiles.js';
10
+ import {
11
+ nativeParserFeatureStatusMergeReady
12
+ } from './native-parser-feature-coverage.js';
13
+
14
+ const semanticMergeReadinessRank = Object.freeze({
15
+ ready: 0,
16
+ 'ready-with-losses': 1,
17
+ 'needs-review': 2,
18
+ blocked: 3
19
+ });
20
+
21
+ export function nativeParserFeatureMergeAssessment(row, input = {}) {
22
+ const requiredFeatures = normalizeNativeParserRequiredFeatures(input.requiredFeatures);
23
+ const minimumReadiness = normalizeSemanticMergeReadiness(input.minimumReadiness ?? 'ready') ?? 'ready';
24
+ const featureReadiness = requiredFeatures.reduce(
25
+ (current, category) => maxSemanticMergeReadiness(current, row.features?.[category]?.readiness ?? 'blocked'),
26
+ 'ready'
27
+ );
28
+ const readiness = maxSemanticMergeReadiness(row.imports?.readiness ?? 'needs-review', featureReadiness);
29
+ const blockingFeatures = requiredFeatures.filter((category) => !nativeParserFeatureStatusMergeReady(row.features?.[category]?.status));
30
+ const reviewFeatures = requiredFeatures.filter((category) => {
31
+ const featureReadiness = row.features?.[category]?.readiness ?? 'blocked';
32
+ return semanticMergeReadinessRank[featureReadiness] > semanticMergeReadinessRank.ready
33
+ && semanticMergeReadinessRank[featureReadiness] <= semanticMergeReadinessRank['needs-review'];
34
+ });
35
+ const reasons = [];
36
+ if ((row.imports?.total ?? 0) === 0) reasons.push('No native import evidence matched this language/parser row.');
37
+ for (const category of blockingFeatures) {
38
+ const feature = row.features?.[category];
39
+ reasons.push(`${category} coverage is ${feature?.status ?? 'missing'}: ${(feature?.reasons ?? []).join(' ')}`);
40
+ }
41
+ if (semanticMergeReadinessRank[readiness] > semanticMergeReadinessRank[minimumReadiness]) {
42
+ reasons.push(`Readiness ${readiness} is weaker than required threshold ${minimumReadiness}.`);
43
+ }
44
+ const mergeReady = (row.imports?.total ?? 0) > 0
45
+ && blockingFeatures.length === 0
46
+ && semanticMergeReadinessRank[readiness] <= semanticMergeReadinessRank[minimumReadiness];
47
+ if (mergeReady) reasons.push(`Native import is merge-ready for required features: ${requiredFeatures.join(', ')}.`);
48
+ return Object.freeze({
49
+ mergeReady,
50
+ readiness,
51
+ requiredFeatures,
52
+ minimumReadiness,
53
+ blockingFeatures,
54
+ reviewFeatures,
55
+ reasons: uniqueStrings(reasons)
56
+ });
57
+ }
58
+
59
+ export function normalizeNativeParserRequiredFeatures(value) {
60
+ const requested = normalizeStringList(value);
61
+ const features = requested.length ? requested : ['syntax', 'semantic', 'sourcePreservation'];
62
+ return uniqueStrings(features.map(normalizeNativeParserFeatureCategory).filter((feature) => NativeParserFeatureCategories.includes(feature)));
63
+ }
64
+
65
+ function normalizeNativeParserFeatureCategory(value) {
66
+ const normalized = String(value ?? '').trim().replace(/[-_\s]+([a-zA-Z])/g, (_, letter) => letter.toUpperCase());
67
+ if (normalized.toLowerCase() === 'macrometaprogramming' || normalized.toLowerCase() === 'macro') return 'macroMetaprogramming';
68
+ if (normalized.toLowerCase() === 'controlflow' || normalized.toLowerCase() === 'cfg') return 'controlFlow';
69
+ if (normalized.toLowerCase() === 'sourcepreservation' || normalized.toLowerCase() === 'source') return 'sourcePreservation';
70
+ if (normalized.toLowerCase() === 'types') return 'type';
71
+ return normalized;
72
+ }
73
+
74
+ export function nativeParserFeatureMatrixSummary(rows) {
75
+ const summary = {
76
+ languages: new Set(),
77
+ parsers: rows.length,
78
+ imports: 0,
79
+ adapters: 0,
80
+ mergeReady: 0,
81
+ byReadiness: {},
82
+ byFeatureStatus: {},
83
+ byFeatureReadiness: {}
84
+ };
85
+ for (const row of rows) {
86
+ summary.languages.add(row.language);
87
+ summary.imports += row.imports.total;
88
+ summary.adapters += row.adapters.total;
89
+ if (row.merge.mergeReady) summary.mergeReady += 1;
90
+ summary.byReadiness[row.merge.readiness] = (summary.byReadiness[row.merge.readiness] ?? 0) + 1;
91
+ for (const [category, feature] of Object.entries(row.features)) {
92
+ summary.byFeatureStatus[category] ??= {};
93
+ summary.byFeatureReadiness[category] ??= {};
94
+ summary.byFeatureStatus[category][feature.status] = (summary.byFeatureStatus[category][feature.status] ?? 0) + 1;
95
+ summary.byFeatureReadiness[category][feature.readiness] = (summary.byFeatureReadiness[category][feature.readiness] ?? 0) + 1;
96
+ }
97
+ }
98
+ return {
99
+ ...summary,
100
+ languages: summary.languages.size
101
+ };
102
+ }
103
+
104
+ export function summarizeNativeParserFeatureLanguages(profiles, rows) {
105
+ return profiles.map((profile) => {
106
+ const languageRows = rows.filter((row) => row.language === profile.language);
107
+ return {
108
+ language: profile.language,
109
+ aliases: profile.aliases,
110
+ parserRows: languageRows.length,
111
+ parsers: languageRows.map((row) => row.parser),
112
+ imports: languageRows.reduce((sum, row) => sum + row.imports.total, 0),
113
+ adapters: languageRows.reduce((sum, row) => sum + row.adapters.total, 0),
114
+ mergeReadyParsers: languageRows.filter((row) => row.merge.mergeReady).map((row) => row.parser),
115
+ readiness: languageRows.reduce((current, row) => maxSemanticMergeReadiness(current, row.merge.readiness), 'ready')
116
+ };
117
+ });
118
+ }
@@ -0,0 +1,268 @@
1
+ import {
2
+ uniqueStrings
3
+ } from './native-import-utils.js';
4
+ import {
5
+ NativeParserFeatureCoverageStatuses
6
+ } from './coverage-matrix-profiles.js';
7
+
8
+ const nativeParserMacroMetaprogrammingLossKinds = new Set([
9
+ 'macroExpansion',
10
+ 'macroHygiene',
11
+ 'preprocessor',
12
+ 'conditionalCompilation',
13
+ 'metaprogramming',
14
+ 'reflection',
15
+ 'generatedCode'
16
+ ]);
17
+
18
+ const nativeParserTypeCoverageLossKinds = new Set([
19
+ 'typeInference',
20
+ 'overloadResolution',
21
+ 'overloadTypeInference',
22
+ 'unsupportedSemantic'
23
+ ]);
24
+
25
+ export function nativeParserSyntaxFeature(context) {
26
+ const blockingSyntaxLosses = context.losses.filter((loss) => loss.severity === 'error' && (loss.kind === 'unsupportedSyntax' || loss.kind === 'parserDiagnostic'));
27
+ const exactAst = context.adapterCoverage.effective.exactAst ?? 0;
28
+ const sourceRanges = context.adapterCoverage.effective.sourceRanges ?? 0;
29
+ const parserDiagnostics = context.adapterCoverage.effective.parserDiagnostics ?? 0;
30
+ let status = 'missing';
31
+ const reasons = [];
32
+ if (blockingSyntaxLosses.length) {
33
+ status = 'blocked';
34
+ reasons.push('Parser diagnostics or unsupported syntax errors block syntax coverage.');
35
+ } else if (exactAst > 0 && (sourceRanges > 0 || context.sourceMapMappings > 0)) {
36
+ status = 'full';
37
+ reasons.push('Exact parser AST and source-range evidence are available.');
38
+ } else if (exactAst > 0 || sourceRanges > 0 || context.nativeAstNodes > 1 || context.sourceMapMappings > 0) {
39
+ status = 'partial';
40
+ reasons.push('Syntax evidence exists, but exact AST/source-range coverage is incomplete.');
41
+ } else if (context.adapters.length || context.parserProfile) {
42
+ status = 'evidence-required';
43
+ reasons.push('Parser slot is declared, but no observed syntax import evidence is attached.');
44
+ } else {
45
+ reasons.push('No syntax parser coverage is declared or observed.');
46
+ }
47
+ return nativeParserFeatureCoverage('syntax', status, {
48
+ capabilities: {
49
+ exactAst,
50
+ sourceRanges,
51
+ parserDiagnostics,
52
+ nativeAstNodes: context.nativeAstNodes,
53
+ sourceMapMappings: context.sourceMapMappings
54
+ },
55
+ gaps: nativeParserFeatureCapabilityGaps(context.adapterCoverage, ['exactAst', 'sourceRanges', 'parserDiagnostics']),
56
+ lossKinds: nativeParserFeatureLossKindCounts(context.losses, ['unsupportedSyntax', 'parserDiagnostic']),
57
+ reasons,
58
+ notes: ['Syntax coverage covers parser AST/CST structure, diagnostics, source ranges, and source-map anchors.']
59
+ });
60
+ }
61
+
62
+ export function nativeParserSemanticFeature(context) {
63
+ const declarations = (context.adapterCoverage.effective.semanticDeclarations ?? 0) + context.semanticEvidence.declarations;
64
+ const symbols = (context.adapterCoverage.effective.semanticSymbols ?? 0) + context.semanticEvidence.symbols;
65
+ let status = 'missing';
66
+ const reasons = [];
67
+ if (symbols > 0 && declarations > 0) {
68
+ status = 'full';
69
+ reasons.push('Declaration and symbol evidence are available.');
70
+ } else if (symbols > 0 || declarations > 0 || context.nativeAstNodes > 1) {
71
+ status = 'partial';
72
+ reasons.push('Semantic evidence is present, but declaration/symbol coverage is incomplete.');
73
+ } else if (context.adapters.length || context.imports.length) {
74
+ status = 'evidence-required';
75
+ reasons.push('Import evidence exists, but no semantic declarations or symbols were observed.');
76
+ } else {
77
+ reasons.push('No semantic index evidence is declared or observed.');
78
+ }
79
+ return nativeParserFeatureCoverage('semantic', status, {
80
+ capabilities: {
81
+ declarations,
82
+ symbols,
83
+ semanticIndexLevel: nativeParserFeatureSemanticLevel(context.adapterCoverage, context.semanticEvidence)
84
+ },
85
+ gaps: nativeParserFeatureCapabilityGaps(context.adapterCoverage, ['semanticDeclarations', 'semanticSymbols']),
86
+ lossKinds: nativeParserFeatureLossKindCounts(context.losses, ['partialSemanticIndex', 'unsupportedSemantic']),
87
+ reasons,
88
+ notes: ['Semantic coverage covers declaration and symbol evidence. References, types, and control flow are reported separately.']
89
+ });
90
+ }
91
+
92
+ export function nativeParserTypeFeature(context) {
93
+ const types = (context.adapterCoverage.effective.types ?? 0) + context.semanticEvidence.types;
94
+ const typeLossKinds = nativeParserFeaturePresentLossKinds(context, nativeParserTypeCoverageLossKinds);
95
+ let status = 'missing';
96
+ const reasons = [];
97
+ if (types > 0) {
98
+ status = 'full';
99
+ reasons.push('Resolved or declared type evidence is available.');
100
+ } else if (typeLossKinds.length > 0 || context.semanticEvidence.symbols > 0) {
101
+ status = 'evidence-required';
102
+ reasons.push('Type-sensitive coverage needs compiler or language-server evidence.');
103
+ } else {
104
+ reasons.push('No type evidence is declared or observed.');
105
+ }
106
+ return nativeParserFeatureCoverage('type', status, {
107
+ capabilities: { types },
108
+ gaps: nativeParserFeatureCapabilityGaps(context.adapterCoverage, ['types']),
109
+ lossKinds: nativeParserFeatureLossKindCounts(context.losses, [...nativeParserTypeCoverageLossKinds]),
110
+ reasons,
111
+ notes: ['Type coverage covers declared/inferred type facts and overload or inference evidence.']
112
+ });
113
+ }
114
+
115
+ export function nativeParserControlFlowFeature(context) {
116
+ const controlFlow = (context.adapterCoverage.effective.controlFlow ?? 0) + context.semanticEvidence.controlFlow;
117
+ let status = 'missing';
118
+ const reasons = [];
119
+ if (controlFlow > 0) {
120
+ status = 'full';
121
+ reasons.push('Control-flow or CFG evidence is available.');
122
+ } else if (context.imports.length || context.adapters.length) {
123
+ status = 'evidence-required';
124
+ reasons.push('Control-flow evidence was not observed for this parser row.');
125
+ } else {
126
+ reasons.push('No control-flow evidence is declared or observed.');
127
+ }
128
+ return nativeParserFeatureCoverage('controlFlow', status, {
129
+ capabilities: { controlFlow },
130
+ gaps: nativeParserFeatureCapabilityGaps(context.adapterCoverage, ['controlFlow']),
131
+ lossKinds: {},
132
+ reasons,
133
+ notes: ['Control-flow coverage covers call/branch/CFG facts supplied by host parsers or semantic indexers.']
134
+ });
135
+ }
136
+
137
+ export function nativeParserMacroMetaprogrammingFeature(context, dependencies = {}) {
138
+ const macroLossKinds = nativeParserFeaturePresentLossKinds(context, nativeParserMacroMetaprogrammingLossKinds);
139
+ const macroLosses = context.losses.filter((loss) => nativeParserMacroMetaprogrammingLossKinds.has(loss.kind));
140
+ const featureEvidence = dependencies.summarizeNativeImportFeatureEvidence(macroLosses, { evidence: context.evidence });
141
+ const generatedRanges = context.adapterCoverage.effective.generatedRanges ?? 0;
142
+ let status = 'not-applicable';
143
+ const reasons = [];
144
+ if (!macroLossKinds.length) {
145
+ reasons.push('No macro, preprocessor, generator, or metaprogramming coverage risk is declared for this parser row.');
146
+ } else if (macroLosses.some((loss) => loss.severity === 'error')) {
147
+ status = 'blocked';
148
+ reasons.push('Macro or metaprogramming evidence includes blocking loss records.');
149
+ } else if (featureEvidence.missingRequiredEvidence.length > 0 || generatedRanges === 0) {
150
+ status = 'evidence-required';
151
+ reasons.push('Macro/metaprogramming coverage requires generated-range and policy evidence before merge admission.');
152
+ } else {
153
+ status = 'partial';
154
+ reasons.push('Macro/metaprogramming risk has attached evidence, but this facade still treats generated behavior as review-required.');
155
+ }
156
+ return nativeParserFeatureCoverage('macroMetaprogramming', status, {
157
+ capabilities: {
158
+ generatedRanges,
159
+ policyKinds: featureEvidence.policyKinds,
160
+ highestRisk: featureEvidence.highestRisk
161
+ },
162
+ gaps: nativeParserFeatureCapabilityGaps(context.adapterCoverage, ['generatedRanges']),
163
+ lossKinds: nativeParserFeatureLossKindCounts(context.losses, [...nativeParserMacroMetaprogrammingLossKinds]),
164
+ reasons: uniqueStrings([...reasons, ...featureEvidence.reasons]),
165
+ notes: ['Macro/metaprogramming coverage covers macros, preprocessors, generated code, reflection, and conditional compilation evidence.']
166
+ });
167
+ }
168
+
169
+ export function nativeParserSourcePreservationFeature(context) {
170
+ const exactSource = context.sourcePreservation.exactSourceAvailable;
171
+ const tokens = context.sourcePreservation.tokens + (context.adapterCoverage.effective.tokens ?? 0);
172
+ const trivia = context.sourcePreservation.trivia + (context.adapterCoverage.effective.trivia ?? 0);
173
+ const sourceRanges = context.adapterCoverage.effective.sourceRanges ?? 0;
174
+ let status = 'missing';
175
+ const reasons = [];
176
+ if (exactSource > 0 && (tokens > 0 || trivia > 0 || sourceRanges > 0)) {
177
+ status = 'full';
178
+ reasons.push('Exact source text and token/trivia or source-range evidence are available.');
179
+ } else if (exactSource > 0 || tokens > 0 || trivia > 0 || sourceRanges > 0) {
180
+ status = 'partial';
181
+ reasons.push('Source-preservation evidence exists, but exact source, tokens, trivia, or ranges are incomplete.');
182
+ } else if (context.imports.length || context.adapters.length) {
183
+ status = 'evidence-required';
184
+ reasons.push('Import or adapter evidence exists, but no exact source-preservation record was observed.');
185
+ } else {
186
+ reasons.push('No source-preservation evidence is declared or observed.');
187
+ }
188
+ return nativeParserFeatureCoverage('sourcePreservation', status, {
189
+ capabilities: {
190
+ exactSourceAvailable: exactSource,
191
+ tokens,
192
+ trivia,
193
+ comments: context.sourcePreservation.comments,
194
+ whitespace: context.sourcePreservation.whitespace,
195
+ directives: context.sourcePreservation.directives,
196
+ sourceRanges
197
+ },
198
+ gaps: nativeParserFeatureCapabilityGaps(context.adapterCoverage, ['tokens', 'trivia', 'sourceRanges']),
199
+ lossKinds: nativeParserFeatureLossKindCounts(context.losses, ['sourcePreservation', 'commentsTrivia', 'sourceMapApproximation']),
200
+ reasons,
201
+ notes: ['Source-preservation coverage covers exact source text, token/trivia retention, comments, whitespace, directives, and source ranges.']
202
+ });
203
+ }
204
+
205
+ function nativeParserFeatureCoverage(category, status, input = {}) {
206
+ const normalizedStatus = NativeParserFeatureCoverageStatuses.includes(status) ? status : 'missing';
207
+ return Object.freeze({
208
+ category,
209
+ status: normalizedStatus,
210
+ readiness: nativeParserFeatureReadinessForStatus(normalizedStatus),
211
+ mergeReady: nativeParserFeatureStatusMergeReady(normalizedStatus),
212
+ supported: normalizedStatus === 'full' || normalizedStatus === 'partial' || normalizedStatus === 'not-applicable',
213
+ capabilities: Object.freeze(input.capabilities ?? {}),
214
+ gaps: Object.freeze(uniqueStrings(input.gaps ?? [])),
215
+ lossKinds: Object.freeze(input.lossKinds ?? {}),
216
+ reasons: Object.freeze(uniqueStrings(input.reasons ?? [])),
217
+ notes: Object.freeze(uniqueStrings(input.notes ?? []))
218
+ });
219
+ }
220
+
221
+ function nativeParserFeatureReadinessForStatus(status) {
222
+ if (status === 'full' || status === 'not-applicable') return 'ready';
223
+ if (status === 'partial') return 'ready-with-losses';
224
+ if (status === 'blocked') return 'blocked';
225
+ return 'needs-review';
226
+ }
227
+
228
+ export function nativeParserFeatureStatusMergeReady(status) {
229
+ return status === 'full' || status === 'not-applicable';
230
+ }
231
+
232
+ function nativeParserFeatureSemanticLevel(adapterCoverage, semanticEvidence) {
233
+ if ((adapterCoverage.effective.types ?? 0) > 0 || (adapterCoverage.effective.controlFlow ?? 0) > 0 || semanticEvidence.types > 0 || semanticEvidence.controlFlow > 0 || semanticEvidence.references > 0) {
234
+ return 'semantic-index';
235
+ }
236
+ if ((adapterCoverage.effective.semanticDeclarations ?? 0) > 0 || (adapterCoverage.effective.semanticSymbols ?? 0) > 0 || semanticEvidence.declarations > 0 || semanticEvidence.symbols > 0) {
237
+ return 'declaration-index';
238
+ }
239
+ return 'native-ast';
240
+ }
241
+
242
+ function nativeParserFeatureCapabilityGaps(adapterCoverage, capabilities) {
243
+ const gaps = new Set();
244
+ for (const capability of capabilities) {
245
+ if ((adapterCoverage.effective?.[capability] ?? 0) === 0) gaps.add(capability);
246
+ }
247
+ for (const capability of Object.keys(adapterCoverage.gaps ?? {})) {
248
+ if (capabilities.includes(capability)) gaps.add(capability);
249
+ }
250
+ return [...gaps];
251
+ }
252
+
253
+ function nativeParserFeatureLossKindCounts(losses, kinds) {
254
+ const wanted = new Set(kinds);
255
+ const counts = {};
256
+ for (const loss of losses) {
257
+ if (!wanted.has(loss?.kind)) continue;
258
+ counts[loss.kind] = (counts[loss.kind] ?? 0) + 1;
259
+ }
260
+ return counts;
261
+ }
262
+
263
+ function nativeParserFeaturePresentLossKinds(context, kindSet) {
264
+ return uniqueStrings([
265
+ ...(context.profile.knownLossKinds ?? []),
266
+ ...Object.keys(context.lossSummary.byKind ?? {})
267
+ ].filter((kind) => kindSet.has(kind)));
268
+ }